فهرست منبع

场地直装请核、箱型箱量显示

sunhz 3 سال پیش
والد
کامیت
921671f48b

+ 71 - 24
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java

@@ -428,7 +428,45 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         } else if (tWarehousebills.getfBilltype().equals(WarehouseTypeEnum.HQZY.getType())) {
             return tWarehouseBillsMapper.selectWarehouseBusinessList1(tWarehousebills);
         } else {
-            return tWarehouseBillsMapper.selectWarehouseBusinessList(tWarehousebills);
+            List<Map<String, Object>> billsList = tWarehouseBillsMapper.selectWarehouseBusinessList(tWarehousebills);
+
+            for (Map<String, Object> billsMap : billsList) {
+                // 查询仓库明细从表数据
+                TWarehousebillsitems tWarehousebillsitems = new TWarehousebillsitems();
+                tWarehousebillsitems.setfPid(Long.parseLong(billsMap.get("fId").toString()));
+                List<Map<String, Object>> itemsList = tWarehousebillsitemsMapper.selectGoodsTransferitemsList(tWarehousebillsitems);
+
+                // 创建map统计箱型箱量
+                Map<String, Integer> countMap = new HashMap<>();
+                for (Map<String, Object> itemsMap : itemsList) {
+                    String fCntrtype = (String) itemsMap.get("fCntrtype");
+                    Integer fCntqty = (Integer) itemsMap.get("fCntqty");
+                    if (StringUtils.isNotNull(fCntrtype) && StringUtils.isNotNull(fCntqty)) {
+                        // fCntrtype是编号,根据编号查询名称
+                        TCntr tCntr = tCntrMapper.selectTCntrById(Long.parseLong(fCntrtype));
+                        String fName = tCntr.getfName();
+
+                        if (countMap.containsKey(fName)) {
+                            countMap.put(fName, countMap.get(fName) + fCntqty);
+                        } else {
+                            countMap.put(fName, fCntqty);
+                        }
+                    }
+                }
+
+                // 组装返回
+                String fCntval = "";
+                if (countMap.size() > 0) {
+                    StringBuilder sb = new StringBuilder();
+                    for (String key : countMap.keySet()) {
+                        sb.append(key).append("×").append(countMap.get(key)).append(",");
+                    }
+                    fCntval = sb.deleteCharAt(sb.length() - 1).toString();
+                }
+                billsMap.put("fCntval", fCntval);
+            }
+
+            return billsList;
         }
     }
 
@@ -702,10 +740,12 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 } else {
                     // 添加主表 业务单号
                     wbItem.setfBillno(warehouseBills.getfBillno());
-                    if (!warehouseStatus) {
-                        wbItem.setfBillstatus(1L);
-                    } else {
-                        wbItem.setfBillstatus(10L);
+                    if (!"CDZZ".equals(billsType)) {
+                        if (!warehouseStatus) {
+                            wbItem.setfBillstatus(1L);
+                        } else {
+                            wbItem.setfBillstatus(10L);
+                        }
                     }
                     wbItem.setfPid(fPid);
                     wbItem.setCreateBy(loginUser.getUser().getUserName());
@@ -1330,9 +1370,12 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 warehouseBills.setfChargedate(warehouseBills.getfBsdate());
             }
             warehouseBills.setUpdateBy(loginUser.getUser().getUserName());
+
             tEnclosureMapper.deleteByFPid(fPid);
             tWarehousebillsfeesMapper.deleteByFPid(fPid);
-            tWarehousebillsitemsMapper.deleteByFPid(fPid);
+            if (!"CDZZ".equals(billsType)) {
+                tWarehousebillsitemsMapper.deleteByFPid(fPid);
+            }
             tWarehouseBillsMapper.updateTWarehousebills(warehouseBills);
             tWarehousebillsCntrMapper.deleteTWarehousebillsCntrfPid(fPid);
         }
@@ -1355,29 +1398,33 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                     return AjaxResult.error("库存明细第" + line + "行状态异常,请确认");
                 }
             } else {
-                if (!wbItem.getfBillstatus().equals(6L)) {
+                if (!"CDZZ".equals(billsType) && !wbItem.getfBillstatus().equals(6L)) {
                     TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                     return AjaxResult.error("库存明细第" + line + "行状态异常,请确认");
                 }
             }
-            if (StringUtils.isNull(wbItem.getfChargedate())) {
-                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                return AjaxResult.error("库存明细第" + line + "行未找到仓储费计费日期,请确认");
-            }
-            if (StringUtils.isNull(wbItem.getfBillingway())) {
-                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                return AjaxResult.error("库存明细第" + line + "行未找到计费方式,请确认");
-            }
-            if (StringUtils.isNull(wbItem.getfOriginalbilldate())) {
-                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                return AjaxResult.error("库存明细第" + line + "行未找到入库日期,请确认");
+
+            if (!"CDZZ".equals(billsType)) {
+                if (StringUtils.isNull(wbItem.getfChargedate())) {
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return AjaxResult.error("库存明细第" + line + "行未找到仓储费计费日期,请确认");
+                }
+                if (StringUtils.isNull(wbItem.getfBillingway())) {
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return AjaxResult.error("库存明细第" + line + "行未找到计费方式,请确认");
+                }
+                if (StringUtils.isNull(wbItem.getfOriginalbilldate())) {
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return AjaxResult.error("库存明细第" + line + "行未找到入库日期,请确认");
+                }
+
+                wbItem.setfPid(fPid);
+                wbItem.setfBilltype(billsType);
+                wbItem.setCreateTime(new Date());
+                wbItem.setfBillno(warehouseBills.getfBillno());
+                wbItem.setCreateBy(loginUser.getUser().getUserName());
+                tWarehousebillsitemsMapper.insertTWarehousebillsitems(wbItem);
             }
-            wbItem.setfPid(fPid);
-            wbItem.setfBilltype(billsType);
-            wbItem.setCreateTime(new Date());
-            wbItem.setfBillno(warehouseBills.getfBillno());
-            wbItem.setCreateBy(loginUser.getUser().getUserName());
-            tWarehousebillsitemsMapper.insertTWarehousebillsitems(wbItem);
         }
         //  箱型数据
         if (StringUtils.isNotNull(tCntr) && !"[]".equals(tCntr)) {