소스 검색

1.重新改动入库、出库、调拨、转货、场地直装时,发起请核、撤销审批、撤销请核、审批驳回、审批通过时会默认重置更改费用明细逻辑
2.完善调整单票分析上下导出按钮报表逻辑

nzf 3 년 전
부모
커밋
4022226099

+ 13 - 10
ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java

@@ -608,7 +608,8 @@ public class ExcelUtil<T>
             Cell cell;// 单元格
             String colString;//长度转成ABC后的列
             String sumString;//求和公式
-            Integer[] line = {3, 4, 6, 7, 8, 9, 12, 13};
+            // Integer[] line = {3, 4, 6, 7, 8, 9, 12, 13};
+            Integer[] line = {7, 8, 10, 11, 12, 13, 16, 17};
             cell = row.createCell(0);// 创建单元格
             cell.setCellValue("合计:");
             int totalRows = sheet.getPhysicalNumberOfRows();
@@ -616,12 +617,14 @@ public class ExcelUtil<T>
                 cell = row.createCell(l);// 创建单元格
                 cell.setCellStyle(styles.get("total"));// 设置单元格样式
                 colString = CellReference.convertNumToColString(l);  //长度转成ABC列
+                sumString = "SUM(" + colString + "2:" + colString + (totalRows-1) + ")";
+                // 注掉下方代码,避免导出 excel 时,出现数据被除以 1000 的情况
                 //求和公式 求i9至i12单元格的总和
-                if (l == 4 || l == 7) {
+                /*if (l == 8 || l == 11) {
                     sumString = "SUM(" + colString + "2:" + colString + (totalRows-1) + ") / 1000";
                 } else {
                     sumString = "SUM(" + colString + "2:" + colString + (totalRows-1) + ")";
-                }
+                }*/
                 cell.setCellFormula(sumString);// 把公式塞入合计列
             }
             wb.setForceFormulaRecalculation(true);
@@ -636,14 +639,14 @@ public class ExcelUtil<T>
                 goodsName = map.get("goodsName").toString();
             }
             Row primaryRow = sheet.createRow(list.size() + 2);
-            primaryRow.createCell(1).setCellValue("货主:");
-            cell = primaryRow.createCell(2);// 创建单元格
+            primaryRow.createCell(0).setCellValue("货主:");
+            cell = primaryRow.createCell(1);// 创建单元格
             cell.setCellValue(corpName);
-            primaryRow.createCell(3).setCellValue("提单号:");
-            cell = primaryRow.createCell(4);// 创建单元格
+            primaryRow.createCell(2).setCellValue("提单号:");
+            cell = primaryRow.createCell(3);// 创建单元格
             cell.setCellValue(mblno);
-            primaryRow.createCell(5).setCellValue("品名:");
-            cell = primaryRow.createCell(6);// 创建单元格
+            primaryRow.createCell(4).setCellValue("品名:");
+            cell = primaryRow.createCell(5);// 创建单元格
             cell.setCellValue(goodsName);
             String filename = encodingFilename(sheetName);
             out = new FileOutputStream(getAbsoluteFile(filename));
@@ -716,7 +719,7 @@ public class ExcelUtil<T>
             Cell cell;// 单元格
             String colString;//长度转成ABC后的列
             String sumString;//求和公式
-            Integer[] line = {3, 5};
+            Integer[] line = {5, 7};
             cell = row.createCell(0);// 创建单元格
             cell.setCellValue("合计:");
             int totalRows = sheet.getPhysicalNumberOfRows();

+ 50 - 17
ruoyi-warehouse/src/main/java/com/ruoyi/approvalFlow/service/impl/AuditPathsServiceImpl.java

@@ -378,8 +378,16 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
                         } else {
                             tWarehouseBillsMapper.warehouseFollowUpdate(auditItems.getBillId(), fettle, at.getAuditItem());
                         }
+                        // 根据传入的业务编号 id 获取仓库费用明细数据
+                        List<TWarehousebillsfees> tWarehousebillsfees = tWarehousebillsfeesMapper.selectTWarehousebillsfeesByPId(auditItems.getBillId());
+                        for (TWarehousebillsfees result : tWarehousebillsfees) {
+                            if (result.getfBillstatus() == 6) { // 判断状态
+                                fettle = result.getfBillstatus();
+                                break;
+                            }
+                        }
                         // 更改 fettle 值为 null 避免下一级审批人审批时,费用明细状态被重置
-                        tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), null, at.getAuditItem());
+                        tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, at.getAuditItem());
                         if (Objects.equals(fettle, 6L)) {
                             if (Objects.equals(auditItems.getActId(), 120L)) {
                                 List<TWarehousebillsfees> feesList = tWarehousebillsfeesMapper.selectWarehousebillsfeesByPId(auditItems.getBillId());
@@ -411,12 +419,12 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
                         if ("T".equals(at.getIffinalItem())) {
                             fettle = 6L;
                             // 更新费用明细
-                            /*AjaxResult ajaxResult = tFeeServiceImpl.billsfeesFollow(auditItems.getBillId());
+                            AjaxResult ajaxResult = tFeeServiceImpl.billsfeesFollow(auditItems.getBillId());
                             String code = ajaxResult.get("code").toString();
                             if ("500".equals(code)) {
                                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                                 return ajaxResult;
-                            }*/
+                            }
                         } else if ("F".equals(at.getIffinalItem())) {
                             fettle = 5L;
                         }
@@ -667,8 +675,15 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
                         tWarehouseBills.setfId(auditItems.getBillId());
                         tWarehouseBills.setfBillstatus(fettle);
                         tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
-                        // 场地直装时,避免驳回后费用明细数据被修改,对此将 fettle 改为 null
-                        tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), null, auditItems.getAuditItem());
+                        // 加一个判断,当审批通过时,做数据判断
+                        List<TWarehousebillsfees> tWarehousebillsfees = tWarehousebillsfeesMapper.selectWarehousebillsfeesByPId(auditItems.getBillId());
+                        for (TWarehousebillsfees result : tWarehousebillsfees) {
+                            if (result.getfBillstatus() == 6) { // 如果结果为 6 ,设置 fettle 值
+                                fettle = result.getfBillstatus();
+                                break;
+                            }
+                        }
+                        tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
                     } else if (Objects.equals(auditItems.getActId(), WarehouseActIdEnum.FEE_CHANGES.getActId().longValue())) {
                         // 费用变更审核通过处理
                         if ("T".equals(at.getIffinalItem())) {
@@ -721,12 +736,16 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
             } else {
                 tWarehouseBillsMapper.warehouseApprovalUpdate(auditItems, fettle);
             }
-            // tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
+
             List<TWarehousebillsfees> tWarehousebillsfees = tWarehousebillsfeesMapper.selectTWarehousebillsfeesByPId(auditItems.getBillId());
             for (TWarehousebillsfees result : tWarehousebillsfees) {
-                // 将 fettle 传值改为 null,避免驳回后出现费用明细被重置
-                tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), null, auditItems.getAuditItem());
+                if (result.getfBillstatus() == 6L) {
+                    fettle = result.getfBillstatus();
+                    break;
+                }
             }
+            // 将 fettle 传值改为 null,避免驳回后出现费用明细被重置
+            tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
             if (Objects.equals(auditItems.getActId(), 150L)) {
                 List<TWarehousebillsfees> feesList = tWarehousebillsfeesMapper.selectWarehousebillsfeesByPId(auditItems.getBillId());
                 for (TWarehousebillsfees wareItem : feesList) {
@@ -906,13 +925,15 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
             tWarehouseBills.setfId(auditItems.getBillId());
             tWarehouseBills.setfBillstatus(fettle);
             tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
-            List<TWarehousebillsfees> tWarehousebillsfees = tWarehousebillsfeesMapper.selectTWarehousebillsfeesByPId(auditItems.getBillId());
+
+            List<TWarehousebillsfees> tWarehousebillsfees = tWarehousebillsfeesMapper.selectWarehousebillsfeesByPId(auditItems.getBillId());
             for (TWarehousebillsfees result : tWarehousebillsfees) {
-                // 将 fettle 传值改为 null,避免驳回后出现费用明细被重置
-                tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), null, auditItems.getAuditItem());
+                if (result.getfBillstatus() == 6L) {
+                    fettle = result.getfBillstatus();
+                    break;
+                }
             }
-            // 注掉旧的接口
-            // tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
+            tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
         } else if (Objects.equals(auditItems.getActId(), WarehouseActIdEnum.FEE_CHANGES.getActId().longValue())) {
             warehousebillsModifyService.additionalFeeInformation(auditItems.getBillId(), WarehouseTypeEnum.DISMISS);
         }
@@ -998,8 +1019,14 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
                 }
             }
             tWarehouseBillsMapper.warehouseApprovalUpdate(auditItems, fettle);
-            // 下方注掉的接口,在大撤销请核时,会更改费用明细对应的数据状态,暂时废弃
-            // tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
+            List<TWarehousebillsfees> tWarehousebillsfees = tWarehousebillsfeesMapper.selectTWarehousebillsfeesByPId(auditItems.getBillId());
+            for (TWarehousebillsfees result : tWarehousebillsfees) {
+                if (result.getfBillstatus() == 6L) {
+                    fettle = result.getfBillstatus();
+                    break;
+                }
+            }
+            tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
             // 撤销审批时删除审批流任务明细从表对应数据
             AuditItemsAbout.revokeDeleteAID(auditItems.getActId(),auditItems.getBillId());
         } else if (auditItems.getActId() >= 210 && auditItems.getActId() <= 230) {
@@ -1189,8 +1216,14 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
             tWarehouseBills.setfId(auditItems.getBillId());
             tWarehouseBills.setfBillstatus(fettle);
             tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
-            // 注掉费用明细更改接口,防止在撤销审批时对费用明细数据重置
-            // tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
+            List<TWarehousebillsfees> tWarehousebillsfees = tWarehousebillsfeesMapper.selectWarehousebillsfeesByPId(auditItems.getBillId());
+            for (TWarehousebillsfees result : tWarehousebillsfees) {
+                if (result.getfBillstatus() == 6L) {
+                    fettle = result.getfBillstatus();
+                    break;
+                }
+            }
+            tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
             // 撤销审批时删除审批流任务明细从表对应数据
             AuditItemsAbout.revokeDeleteAID(auditItems.getActId(),auditItems.getBillId());
         } else if (Objects.equals(auditItems.getActId(), WarehouseActIdEnum.FEE_CHANGES.getActId().longValue())) {

+ 39 - 2
ruoyi-warehouse/src/main/java/com/ruoyi/reportManagement/domain/SingleAnalysisExcel.java

@@ -16,11 +16,24 @@ public class SingleAnalysisExcel {
     /** 提单号 */
     private String fMblno;
 
+    /** 序号 */
+    private Integer lineNo;
+
     /** 品名 */
+    @Excel(name = "品名")
     private String goodsName;
 
-    /** 序号 */
-    private Integer lineNo;
+    /** 货物属性 */
+    @Excel(name = "货物属性")
+    private String fBusinessTypes;
+
+    /** 属性详情 */
+    @Excel(name = "属性详情")
+    private String fMarks;
+
+    /** 库区 */
+    @Excel(name = "库区")
+    private String fWName;
 
     /** 作业类型 */
     @Excel(name = "作业类型")
@@ -83,6 +96,30 @@ public class SingleAnalysisExcel {
     /** 日期区间 */
     private List<String> bsdateList;
 
+    public String getfBusinessTypes() {
+        return fBusinessTypes;
+    }
+
+    public void setfBusinessTypes(String fBusinessTypes) {
+        this.fBusinessTypes = fBusinessTypes;
+    }
+
+    public String getfMarks() {
+        return fMarks;
+    }
+
+    public void setfMarks(String fMarks) {
+        this.fMarks = fMarks;
+    }
+
+    public String getfWName() {
+        return fWName;
+    }
+
+    public void setfWName(String fWName) {
+        this.fWName = fWName;
+    }
+
     public Long getfCorpid() {
         return fCorpid;
     }

+ 24 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/reportManagement/domain/SingleAnalysisFeesExcel.java

@@ -22,6 +22,14 @@ public class SingleAnalysisFeesExcel {
     @Excel(name = "费用")
     private String fFeeid;
 
+    /** 收/付 */
+    @Excel(name = "收/付")
+    private String fDc;
+
+    /** 结算单位 */
+    @Excel(name = "结算单位")
+    private String fCName;
+
     /** 数量 */
     @Excel(name = "数量")
     private Integer fQty;
@@ -38,6 +46,22 @@ public class SingleAnalysisFeesExcel {
     @Excel(name = "备注")
     private String remark;
 
+    public String getfCName() {
+        return fCName;
+    }
+
+    public void setfCName(String fCName) {
+        this.fCName = fCName;
+    }
+
+    public String getfDc() {
+        return fDc;
+    }
+
+    public void setfDc(String fDc) {
+        this.fDc = fDc;
+    }
+
     public Integer getLineNo() {
         return lineNo;
     }

+ 13 - 4
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java

@@ -3682,9 +3682,10 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                     if (StringUtils.isNotEmpty(tWarehouseBills.getfCustomno())) {
                         item.setfCustomno(tWarehouseBills.getfCustomno());
                     }
-                    if (StringUtils.isNotEmpty(tWarehouseBills.getRemark())) {
+                    // 防止主表备注进入明细从表备注中
+                    /*if (StringUtils.isNotEmpty(tWarehouseBills.getRemark())) {
                         item.setRemark(tWarehouseBills.getRemark());
-                    }
+                    }*/
                 }
                 if (StringUtils.isNotNull(tWhgenle)) {
                     updateTWhgenlegData(item, tWhgenle.getfId(), billsType);
@@ -5421,8 +5422,16 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         tWarehousebills.setfQty(itemInFo.getfQty());
         tWarehousebills.setfNetweight(itemInFo.getfNetweight());
         tWarehousebills.setfGrossweight(itemInFo.getfGrossweight());
-        // 注释该接口,防止撤销请核时,出现将费用明细也撤销
-        // tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(tWarehousebills.getfId(), 2L, new Date());
+        // 定义 fettle
+        Long fettle = 2L;
+        List<TWarehousebillsfees> tWarehousebillsfees = tWarehousebillsfeesMapper.selectWarehousebillsfeesByPId(tWarehousebills.getfId());
+        for (TWarehousebillsfees result : tWarehousebillsfees) {
+            if (result.getfBillstatus() == 6) { // 如果获取的数据中 状态 为 6
+                fettle = result.getfBillstatus(); // 赋值
+                break;
+            }
+        }
+        tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(tWarehousebills.getfId(), fettle, new Date());
         // 判断是否出库
         if (tWarehousebills.getfBilltype().equals(WarehouseTypeEnum.SJCK.getType())) {
             cancellationInStockFee(tWarehousebills);

+ 12 - 0
ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TWarehousebillsMapper.xml

@@ -2780,6 +2780,9 @@
             w.f_product_name goodsName,
             d.dict_label fBusinessType,
             w.f_cntval fCntval,
+            ware.f_warehouse_information fWName,
+            dict.dict_label AS fBusinessTypes,
+            w.f_marks AS fMarks,
             IF(item.f_billtype = 'SJRK' || item.f_billtype = 'HQZY' AND w.f_tocorpid = #{fCorpid} || item.f_billtype = 'CKDB', date_format( item.f_bsdate, '%Y-%m-%d' ), NULL) inBsdate,
             IF(item.f_billtype = 'SJRK' || item.f_billtype = 'HQZY' AND w.f_tocorpid = #{fCorpid} || item.f_billtype = 'CKDB' AND ware.f_id = item.f_transfer_warehouselocid, item.f_qty, 0) inQty,
             IF(item.f_billtype = 'SJRK' || item.f_billtype = 'HQZY' AND w.f_corpid = #{fCorpid} || item.f_billtype = 'CKDB' AND ware.f_id = item.f_transfer_warehouselocid, item.f_grossweight, 0.00) inGrossweight,
@@ -2811,7 +2814,10 @@
             LEFT JOIN t_corps c ON c.f_id = w.f_corpid
             LEFT JOIN t_warehouse ware ON IF(item.f_billtype = 'CKDB', ware.f_id = item.f_transfer_warehouselocid, ware.f_id = item.f_warehouselocid)
             LEFT JOIN sys_dict_data d ON d.dict_value = w.f_business_type
+            LEFT JOIN sys_dict_data dict ON dict.dict_value = item.f_business_type
         WHERE
+            dict.status = '0' AND
+            dict.dict_type = 'storage_type' AND
             w.f_corpid = #{fCorpid}
             AND item.f_mblno = #{fMblno}
             AND IF(item.f_billtype = 'CKDB' and ware.f_charg = 0, w.f_id = '', w.f_id != '')
@@ -2835,11 +2841,17 @@
             f.f_qty fQty,
             f.f_unitprice fUnitprice,
             f.f_amount fAmount,
+            CASE
+                WHEN f.f_dc = 'D' THEN '收'
+                WHEN f.f_dc = 'C' THEN '付'
+            END AS fDc,
+            tc.f_name as fCName,
             f.remark
         FROM
             t_warehousebills w
             LEFT JOIN t_warehousebillsitems item ON item.f_pid = w.f_id
             LEFT JOIN t_warehousebillsfees f ON f.f_pid = w.f_id
+            LEFT JOIN t_corps tc ON tc.f_id = f.f_corpid
             LEFT JOIN t_fees fee ON fee.f_id = f.f_feeid
             LEFT JOIN t_warehouse ware ON IF(item.f_billtype = 'CKDB', ware.f_id = item.f_transfer_warehouselocid, ware.f_id = item.f_warehouselocid)
             LEFT JOIN sys_dict_data d ON d.dict_value = f.f_business_type

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

@@ -170,7 +170,7 @@
     </select>
 
     <select id="selectTWarehousebillsfeesByPId" parameterType="Long" resultMap="TWarehousebillsfeesResult">
-        select f_id, f_pid, f_billing_deadline, src_bill_no
+        select f_id, f_pid, f_billing_deadline, src_bill_no,f_billstatus
         from t_warehousebillsfees
         where f_pid = #{fId}
           and f_billtype = 'SJCK'