Browse Source

[CODE]: 添加字段;流水号生成

maxianghua 4 years ago
parent
commit
f7b83f3781

+ 14 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/domain/TWarehousebillsfees.java

@@ -273,6 +273,20 @@ public class TWarehousebillsfees extends BaseEntity {
     @Excel(name = "业务类型(存汉字的,用来区别 如: 来车提货,出库装箱  区别)")
     private String fBusinessType;
 
+    /**
+     * 是否可修改 0 手动录入
+     */
+    private Long fSrcTypeId;
+
+    public Long getfSrcTypeId() {
+        return fSrcTypeId;
+    }
+
+    public void setfSrcTypeId(Long fSrcTypeId) {
+        this.fSrcTypeId = fSrcTypeId;
+    }
+
+
     public void setfId(Long fId) {
         this.fId = fId;
     }

+ 12 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/BillnoSerialServiceImpl.java

@@ -146,6 +146,18 @@ public class BillnoSerialServiceImpl implements IBillnoSerialService {
         } else {
             yyMMdd = DateFormatUtils.format(time, "yyMMdd");
         }
+        if ("RK".equals(billType) || "CK".equals(billType) || "DB".equals(billType) ){
+            // 流水号 是否有回收
+            BillnoDel billnoDel = new BillnoDel();
+            billnoDel.setBillType(billType);
+            List<BillnoDel> billnoDels = billnoDelMapper.selectBillnoDelList(billnoDel);
+            // 如果有数据在删除列表
+            if (StringUtils.isNotEmpty(billnoDels)) {
+                billnoDelMapper.deleteBillnoDelById(billnoDels.get(0).getId());
+                billNo = billnoDels.get(0).getBillNo();
+                return billNo;
+            }
+        }
         BillnoSerial billnoSerial = new BillnoSerial();
         billnoSerial.setBillType(billType);
         billnoSerial.setBillPrefix(yyMMdd);

+ 50 - 41
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java

@@ -6,12 +6,16 @@ import com.alibaba.fastjson.JSONObject;
 import com.ruoyi.approvalFlow.domain.AuditItems;
 import com.ruoyi.approvalFlow.mapper.AuditItemsMapper;
 import com.ruoyi.approvalFlow.service.impl.AuditItemsServiceImpl;
-import com.ruoyi.basicData.domain.*;
+import com.ruoyi.basicData.domain.TCorps;
+import com.ruoyi.basicData.domain.TFees;
+import com.ruoyi.basicData.domain.TGoods;
+import com.ruoyi.basicData.domain.TWarehouseArea;
 import com.ruoyi.basicData.mapper.*;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.entity.SysDept;
 import com.ruoyi.common.core.domain.entity.SysDictData;
 import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.domain.entity.TWarehouse;
 import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.StringUtils;
@@ -30,10 +34,10 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
-import com.ruoyi.common.core.domain.entity.TWarehouse;
 
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.stream.Collectors;
 
 import static java.util.stream.Collectors.toList;
 
@@ -449,21 +453,6 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
             JSONArray warehouseJSON = JSONArray.parseArray(tWarehousebillsitems);
             List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
             for (TWarehousebillsitems wbItem : warehousebillsitemsList) {
-                /*if(StringUtils.isNull(wbItem.getfSerialNumber())){
-                    // 生成流水号
-                    Date time = new Date();
-                    String serialNumber;
-                    if ("SJRK".equals(billsType)) { // 生成 入库 流水号
-                        serialNumber = billnoSerialServiceImpl.getSerialNumber("RK", time);
-                        wbItem.setfSerialNumber(serialNumber);
-                    } else if ("SJCK".equals(billsType)) { //生成 出库 流水号
-                        serialNumber = billnoSerialServiceImpl.getSerialNumber("CK", time);
-                        wbItem.setfSerialNumber(serialNumber);
-                    } else if ("CKDB".equals(billsType)) { //生成 出库 流水号
-                        serialNumber = billnoSerialServiceImpl.getSerialNumber("DB", time);
-                        wbItem.setfSerialNumber(serialNumber);
-                    }
-                }*/
                 boolean warehouseStatus = "SJRK".equals(billsType) || "SJCK".equals(billsType) || "CKDB".equals(billsType);
                 // 仓储计费日期
                 wbItem.setfBilltype(billsType);
@@ -1256,6 +1245,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                                       String tEnclosure, String tWarehousebillsfeesCr, String tWarehousebillsfeesDr,
                                       LoginUser loginUser, Long status, String billtystatus) {
         Map<String, Object> map = new HashMap<>();
+        List<TWarehousebillsitems> mapList= new ArrayList<>();
         if (StringUtils.isNull(warehouseBills) || "[]".equals(warehouseBills)) {
             return AjaxResult.error("未找到主表信息");
         }
@@ -1277,31 +1267,22 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         tWarehousebillsfeesMapper.deleteByFPid(tWarehouseBills.getfId());
         JSONArray warehouseJSON = JSONArray.parseArray(warehousebillsitems);
         List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
+        /**
+         * 1、 查询回收表是否有可用数据
+         * 2、 流水号生成 --> 打印一次 只记录一个号
+         */
+        Date time = new Date();
+        String serialNumber = null;
+        if ("RK".equals(billtystatus)) {
+            serialNumber = billnoSerialServiceImpl.getSerialNumber("RK", time);
+        } else if ("CK".equals(billtystatus)) { //生成 出库 流水号
+            serialNumber = billnoSerialServiceImpl.getSerialNumber("CK", time);
+        } else if ("DB".equals(billtystatus)) { //生成 出库 流水号
+            serialNumber = billnoSerialServiceImpl.getSerialNumber("DB", time);
+        }
         for (TWarehousebillsitems item : warehousebillsitemsList) {
-            // 生成流水号
-            Date time = new Date();
-            String serialNumber;
             if (item.getfBillstatus() < 30L) {
-                if(StringUtils.isNull(item.getfSerialNumber())){
-                    if ("RK".equals(billtystatus)) { // 生成 入库 流水号
-                        serialNumber = billnoSerialServiceImpl.getSerialNumber("RK", time);
-                        item.setfSerialNumber(serialNumber);
-                    } else if ("CK".equals(billtystatus)) { //生成 出库 流水号
-                        serialNumber = billnoSerialServiceImpl.getSerialNumber("CK", time);
-                        item.setfSerialNumber(serialNumber);
-                    } else if ("DB".equals(billtystatus)) { //生成 出库 流水号
-                        serialNumber = billnoSerialServiceImpl.getSerialNumber("DB", time);
-                        item.setfSerialNumber(serialNumber);
-                    }
-                }
-                if ("RK".equals(billtystatus)) { // 生成 入库 流水号
-                    serialNumber = billnoSerialServiceImpl.getSerialNumber("RK", time);
-                    item.setfSerialNumber(serialNumber);
-                } else if ("CK".equals(billtystatus)) { //生成 出库 流水号
-                    serialNumber = billnoSerialServiceImpl.getSerialNumber("CK", time);
-                    item.setfSerialNumber(serialNumber);
-                } else if ("DB".equals(billtystatus)) { //生成 出库 流水号
-                    serialNumber = billnoSerialServiceImpl.getSerialNumber("DB", time);
+                if(item.getfSerialNumber()==null ||  item.getfSerialNumber().equals("")){
                     item.setfSerialNumber(serialNumber);
                 }
                 item.setfBillstatus(status);
@@ -1315,6 +1296,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                     return AjaxResult.error("更新库存明细失败");
                 }
             }
+            mapList.add(item);
         }
         //  附件添加
         if (StringUtils.isNotEmpty(tEnclosure) && !"[]".equals(tEnclosure)) {
@@ -1360,8 +1342,9 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         // 添加成功 返回 前台
         TWarehousebillsitems tWarehousebillsitems = new TWarehousebillsitems();
         tWarehousebillsitems.setfPid(tWarehouseBills.getfId());
-        List<TWarehousebillsitems> mapList = tWarehousebillsitemsMapper.selectTWarehousebillsitemsList(tWarehousebillsitems);
+        List<TWarehousebillsitems> mapList1 = tWarehousebillsitemsMapper.selectTWarehousebillsitemsList(tWarehousebillsitems);
         map.put("warehousebillsitems", mapList);
+        map.put("warehousebillsitems1", mapList1);
         return AjaxResult.success("成功", map);
     }
 
@@ -1930,9 +1913,15 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         tWarehousebillsfeesMapper.deleteByFPid(tWarehousebills.getfId());
         JSONArray warehouseJSON = JSONArray.parseArray(warehousebillsitems);
         List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
+        /**
+         * 流水号回收
+         *  1、 获取所有流水号
+         */
+        List<String> SerialNumberList= new ArrayList<>();
         if (StringUtils.isNotEmpty(warehousebillsitemsList)) {
             int i = 1;
             for (TWarehousebillsitems wb : warehousebillsitemsList) {
+                SerialNumberList.add(wb.getfSerialNumber()); // 流水号回收
                 // 查询库存总账
                 TWhgenleg tWhgenle = queryTWhgenleg(tWarehousebills, wb);
                 if ("SJRKRevoke".equals(billsType)) { // 撤销 入库
@@ -1995,12 +1984,26 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 i++;
                 wb.setUpdateBy(loginUser.getUser().getUserName());
                 wb.setUpdateTime(new Date());
+                wb.setfSerialNumber(null);
                 if (tWarehousebillsitemsMapper.updateTWarehousebillsitems(wb) <= 0) {
                     TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                     return AjaxResult.error("新增库存明细失败");
                 }
             }
         }
+        /**
+         * 流水号回收
+         *  2、 流水号去重
+         *  3、 添加到 billno_del
+         */
+        List<String> serialNumberNewList =delRepeat(SerialNumberList);
+        serialNumberNewList.forEach(item -> {
+                BillnoDel billnoDel = new BillnoDel();
+                billnoDel.setBillType(item.substring(0,2));
+                billnoDel.setBillNo(item);
+                billnoDelMapper.insertBillnoDel(billnoDel);
+        });
+
         //  附件添加
         if (StringUtils.isNotEmpty(tEnclosure) && !"[]".equals(tEnclosure)) {
             JSONArray jsonDrArray = JSONArray.parseArray(tEnclosure);
@@ -2045,6 +2048,12 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         return AjaxResult.success();
     }
 
+
+    public static List<String> delRepeat(List<String> list) {
+        List<String> myList = list.stream().distinct().collect(Collectors.toList());
+        return myList ;
+    }
+
     /**
      * 添加 库存明细状态
      *

+ 5 - 1
ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TWarehousebillsMapper.xml

@@ -64,6 +64,7 @@
         <result property="fInwarehouseid"    column="f_inwarehouseid"    />
         <result property="fBstime"    column="f_bstime"    />
         <result property="fCartype"    column="f_cartype"    />
+        <result property="fGoodsid"    column="f_goodsid"    />
     </resultMap>
 
     <sql id="selectTWarehousebillsVo">
@@ -75,7 +76,7 @@
                f_ifdamage, f_bankcorpid, f_billtype, f_billstatus, del_flag, create_by, create_time,
                f_items_status, update_by, update_time, remark, f_billing_deadline, f_product_name,
                f_review_date, f_truckno, f_driver_name, f_driver_tel, f_driver_id_car, f_business_type,f_labour,f_fleet,
-               f_bstime,f_cartype  from t_warehousebills
+               f_bstime,f_cartype ,f_goodsid  from t_warehousebills
     </sql>
 
     <select id="selectTWarehousebillsList" parameterType="TWarehousebills" resultMap="TWarehousebillsResult">
@@ -519,6 +520,7 @@
             <if test="fInwarehouseid != null">f_inwarehouseid,</if>
             <if test="fBstime != null">f_bstime,</if>
             <if test="fCartype != null">f_cartype,</if>
+            <if test="fGoodsid != null">f_goodsid,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="fBillno != null">#{fBillno},</if>
@@ -579,6 +581,7 @@
             <if test="fInwarehouseid != null">#{fInwarehouseid},</if>
             <if test="fBstime != null">#{fBstime},</if>
             <if test="fCartype != null">#{fCartype},</if>
+            <if test="fGoodsid != null">#{fGoodsid},</if>
         </trim>
     </insert>
 
@@ -644,6 +647,7 @@
             <if test="fInwarehouseid != null">f_inwarehouseid = #{fInwarehouseid},</if>
             <if test="fBstime != null">f_bstime = #{fBstime},</if>
             <if test="fCartype != null">f_cartype = #{fCartype},</if>
+            <if test="fGoodsid != null">f_goodsid = #{fGoodsid},</if>
         </trim>
         where f_id = #{fId}
     </update>

+ 6 - 1
ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TWarehousebillsfeesMapper.xml

@@ -53,10 +53,11 @@
         <result property="fOriginalbilldate" column="f_originalbilldate"/>
         <result property="fStltypeid"    column="f_stltypeid"    />
         <result property="fBusinessType"    column="f_business_type"    />
+        <result property="fSrcTypeId"    column="f_src_type_id"    />
     </resultMap>
 
     <sql id="selectTWarehousebillsfeesVo">
-        select f_id, f_pid, f_lineno, f_corpid, f_feeid, f_feeUnitid, f_qty, f_unitprice, f_amount, f_currency, f_exrate, f_taxrate, f_dc, f_billstatus, f_review_date, f_statement_no, f_accamount, f_stlamount, f_accamount_date, f_invnos, f_invamount, f_stlamount_no, f_askamount, f_status, f_stlamount_date, del_flag, create_by, create_time, update_by, update_time, remark, src_id, src_bill_no, f_mblno, f_product_name, f_marks, f_chargedate, f_billing_deadline, f_inventory_days, f_amt, f_billing_days, f_billing_qty, f_billtype, f_billingway, f_bsdate, f_originalbilldate, f_stltypeid , f_business_type from t_warehousebillsfees
+        select f_id, f_pid, f_lineno, f_corpid, f_feeid, f_feeUnitid, f_qty, f_unitprice, f_amount, f_currency, f_exrate, f_taxrate, f_dc, f_billstatus, f_review_date, f_statement_no, f_accamount, f_stlamount, f_accamount_date, f_invnos, f_invamount, f_stlamount_no, f_askamount, f_status, f_stlamount_date, del_flag, create_by, create_time, update_by, update_time, remark, src_id, src_bill_no, f_mblno, f_product_name, f_marks, f_chargedate, f_billing_deadline, f_inventory_days, f_amt, f_billing_days, f_billing_qty, f_billtype, f_billingway, f_bsdate, f_originalbilldate, f_stltypeid , f_business_type , f_src_type_id  from t_warehousebillsfees
     </sql>
 
     <select id="selectTWarehousebillsfeesList" parameterType="TWarehousebillsfees" resultMap="TWarehousebillsfeesResult">
@@ -102,6 +103,7 @@
             <if test="fBsdate != null "> and f_bsdate = #{fBsdate}</if>
             <if test="fOriginalbilldate != null "> and f_originalbilldate = #{fOriginalbilldate}</if>
             <if test="fStltypeid != null"> and f_stltypeid = #{fStltypeid},</if>
+            <if test="fSrcTypeId != null"> and f_src_type_id = #{fSrcTypeId},</if>
         </where>
     </select>
 
@@ -202,6 +204,7 @@
             <if test="fOriginalbilldate != null">f_originalbilldate,</if>
             <if test="fStltypeid != null">f_stltypeid,</if>
             <if test="fBusinessType != null">f_business_type,</if>
+            <if test="fSrcTypeId != null">f_src_type_id,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="fPid != null">#{fPid},</if>
@@ -251,6 +254,7 @@
             <if test="fOriginalbilldate != null">#{fOriginalbilldate},</if>
             <if test="fStltypeid != null">#{fStltypeid},</if>
             <if test="fBusinessType != null">#{fBusinessType},</if>
+            <if test="fSrcTypeId != null">#{fSrcTypeId},</if>
         </trim>
     </insert>
 
@@ -303,6 +307,7 @@
             <if test="fBsdate != null">f_bsdate = #{fBsdate},</if>
             <if test="fOriginalbilldate != null">f_originalbilldate = #{fOriginalbilldate},</if>
             <if test="fStltypeid != null">f_stltypeid = #{fStltypeid},</if>
+            <if test="fSrcTypeId != null">f_src_type_id = #{fSrcTypeId},</if>
         </trim>
         where f_id = #{fId}
     </update>

+ 1 - 0
ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TWarehousebillsitemsMapper.xml

@@ -336,6 +336,7 @@
             <if test="fDriverTel != null">f_driver_tel = #{fDriverTel},</if>
             <if test="fDriverIdCar != null">f_driver_id_car = #{fDriverIdCar},</if>
             <if test="fSerialNumber != null">f_serial_number = #{fSerialNumber},</if>
+            <if test="fSerialNumber == null">f_serial_number = null ,</if>
             <if test="fIsPass != null">f_is_pass = #{fIsPass},</if>
             <if test="fBilltype != null">f_billtype = #{fBilltype},</if>
             <if test="fBillingQty != null">f_billing_qty = #{fBillingQty},</if>