Просмотр исходного кода

1.修改费用明细请核逻辑,调整仓储费协议业务编号~

nzf 3 лет назад
Родитель
Сommit
cf9b1c0ee7

+ 1 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/agreement/TWarehouseAgreementStorageController.java

@@ -128,7 +128,7 @@ public class TWarehouseAgreementStorageController extends BaseController {
     }
 
     /**
-     * 撤销对账
+     * 撤销仓储费协议请核
      */
     @PreAuthorize("@ss.hasPermi('agreement:agreementStorage:add')")
     @Log(title = "仓储费", businessType = BusinessType.INSERT)

+ 28 - 14
ruoyi-warehouse/src/main/java/com/ruoyi/approvalFlow/service/impl/AuditPathsServiceImpl.java

@@ -378,7 +378,7 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
                         } else {
                             tWarehouseBillsMapper.warehouseFollowUpdate(auditItems.getBillId(), fettle, at.getAuditItem());
                         }
-                        getfBillStatus(auditItems,at);
+                        getfBillStatus(auditItems,at,fettle);
                         if (Objects.equals(fettle, 6L)) {
                             if (Objects.equals(auditItems.getActId(), 120L)) {
                                 List<TWarehousebillsfees> feesList = tWarehousebillsfeesMapper.selectWarehousebillsfeesByPId(auditItems.getBillId());
@@ -666,7 +666,7 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
                         tWarehouseBills.setfId(auditItems.getBillId());
                         tWarehouseBills.setfBillstatus(fettle);
                         tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
-                        getfBillStatus(auditItems,at);
+                        getfBillStatus(auditItems,at,fettle);
                     } else if (Objects.equals(auditItems.getActId(), WarehouseActIdEnum.FEE_CHANGES.getActId().longValue())) {
                         // 费用变更审核通过处理
                         if ("T".equals(at.getIffinalItem())) {
@@ -707,13 +707,21 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
      * @param auditItems 审批流
      * @param at 审批流
      */
-    public void getfBillStatus(AuditItems auditItems,AuditItems at) {
+    public void getfBillStatus(AuditItems auditItems,AuditItems at,Long fettle) {
         List<TWarehousebillsfees> tWarehousebillsfees = tWarehousebillsfeesMapper.selectWarehousebillsfeesByPId(auditItems.getBillId());
         for (TWarehousebillsfees result : tWarehousebillsfees) {
-            if (StringUtils.isNotNull(at.getAuditItem())) {
-                result.setfReviewDate(at.getAuditItem());
-            }
-            if (result.getfBillstatus() != 6) { // 判断状态
+            if (result.getfBillstatus() != 6L) { // 判断状态
+                if (StringUtils.isNotNull(fettle)) {
+                    if (StringUtils.isNotNull(at.getAuditItem())) {
+                        result.setfReviewDate(at.getAuditItem());
+                    }
+                    result.setfBillstatus(fettle);
+                } else {
+                    if (result.getfBillstatus() == 5L) { // 如果存在审批驳回并且是 次级审批驳回的情况
+                        result.setfReviewDate(null);// 重置审批时间
+                        result.setfBillstatus(2L); // 重置一下状态
+                    }
+                }
                 tWarehousebillsfeesMapper.updateTWarehousebillsfees(result);
             }
         }
@@ -736,7 +744,7 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
             } else {
                 tWarehouseBillsMapper.warehouseApprovalUpdate(auditItems, fettle);
             }
-            getfBillStatus(auditItems,auditItems);
+            getfBillStatus(auditItems,auditItems,null);
             if (Objects.equals(auditItems.getActId(), 150L)) {
                 List<TWarehousebillsfees> feesList = tWarehousebillsfeesMapper.selectWarehousebillsfeesByPId(auditItems.getBillId());
                 for (TWarehousebillsfees wareItem : feesList) {
@@ -916,7 +924,7 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
             tWarehouseBills.setfId(auditItems.getBillId());
             tWarehouseBills.setfBillstatus(fettle);
             tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
-            getfBillStatus(auditItems,auditItems);
+            getfBillStatus(auditItems,auditItems,null);
         } else if (Objects.equals(auditItems.getActId(), WarehouseActIdEnum.FEE_CHANGES.getActId().longValue())) {
             warehousebillsModifyService.additionalFeeInformation(auditItems.getBillId(), WarehouseTypeEnum.DISMISS);
         }
@@ -1002,7 +1010,7 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
                 }
             }
             tWarehouseBillsMapper.warehouseApprovalUpdate(auditItems, fettle);
-            getfBillStatus(auditItems,auditItems);
+            getfBillStatus(auditItems,auditItems,null);
             // 撤销审批时删除审批流任务明细从表对应数据
             AuditItemsAbout.revokeDeleteAID(auditItems.getActId(),auditItems.getBillId());
         } else if (auditItems.getActId() >= 210 && auditItems.getActId() <= 230) {
@@ -1050,6 +1058,10 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                 return AjaxResult.error("审批撤销失败: 更新审批状态失败");
             }
+            if (auditItems.getActId() == 310) { // 如果是仓储费审批流
+                // 删去审批流业务编号
+                AuditItemsAbout.revokeDeleteAID(auditItems.getActId(),auditItems.getBillId());
+            }
         } else if (auditItems.getActId() == 410) {
             fettle = 2L;
             TWarehouseBills tWarehouseBills = tWarehouseBillsService.selectKaHeById(auditItems.getBillId());
@@ -1163,9 +1175,11 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
             tWarehouseBills.setfId(auditItems.getBillId());
             tWarehouseBills.setfItemstatus(fettle);
             i = tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
-            i = tWarehousebillsitemsMapper.warehouseItemfItemstatus(auditItems.getBillId(), fettle);
-            if (i != null && i > 0) {
-            } else {
+            int size = tWarehousebillsitemsMapper.selectWarehouseItemsByfPid(auditItems.getBillId()).size();
+            if (size!=0) {
+                i = tWarehousebillsitemsMapper.warehouseItemfItemstatus(auditItems.getBillId(), fettle);
+            }
+            if (i <= 0) {
                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                 return AjaxResult.error("审核失败,更新费用状态失败");
             }
@@ -1207,7 +1221,7 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
             tWarehouseBills.setfId(auditItems.getBillId());
             tWarehouseBills.setfBillstatus(fettle);
             tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
-            getfBillStatus(auditItems,auditItems);
+            getfBillStatus(auditItems,auditItems,null);
             // 撤销审批时删除审批流任务明细从表对应数据
             AuditItemsAbout.revokeDeleteAID(auditItems.getActId(),auditItems.getBillId());
         } else if (Objects.equals(auditItems.getActId(), WarehouseActIdEnum.FEE_CHANGES.getActId().longValue())) {

+ 8 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/mapper/TWarehousebillsitemsMapper.java

@@ -8,6 +8,7 @@ import com.ruoyi.warehouseBusiness.domain.dto.WarehouseDTO;
 import com.ruoyi.warehouseBusiness.domain.vo.CalculateStorageFeesInfoVO;
 import com.ruoyi.warehouseBusiness.domain.vo.WarehouseTimeIntervalVO;
 import org.apache.ibatis.annotations.Param;
+import org.springframework.security.core.parameters.P;
 
 import java.util.Date;
 import java.util.List;
@@ -280,6 +281,13 @@ public interface TWarehousebillsitemsMapper extends BaseMapper<TWarehousebillsit
     List<TWarehousebillsitems> selectListByCorpId(@Param("bills") TWarehouseBills tWarehouseBills);
 
     /**
+     * 根据 父级 id 获取仓储明细从表数据
+     * @param fPid 父级 id
+     * @return list
+     */
+    List<TWarehousebillsitems> selectWarehouseItemsByfPid(@Param("fPid") Long fPid);
+
+    /**
      * 根据日期区间计算 仓库入库数量比较
      *
      * @param warehouseDto

+ 9 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseAgreementServiceImpl.java

@@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollUtil;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.ruoyi.approvalFlow.domain.AuditItems;
+import com.ruoyi.approvalFlow.service.impl.AuditItemsAbout;
 import com.ruoyi.approvalFlow.service.impl.AuditItemsServiceImpl;
 import com.ruoyi.basicData.domain.TCorps;
 import com.ruoyi.basicData.domain.TFees;
@@ -322,6 +323,11 @@ public class TWarehouseAgreementServiceImpl implements ITWarehouseAgreementServi
             tWarehouseAgreementitemsMapper.deleteByFPid(fPid);
             annexMapper.deleteByPid(fPid, type);
         }
+        // 处理业务编号
+        List<String> fsrcBillno = new ArrayList<>();
+        if (StringUtils.isNotNull(tWarehouseAgreement.getfBillno())) {
+            fsrcBillno.add(tWarehouseAgreement.getfBillno());
+        }
         //  从表添加
         if (StringUtils.isNotNull(agreementitems) && !"[]".equals(agreementitems)) {
             JSONArray jsonDrArray = JSONArray.parseArray(agreementitems);
@@ -393,6 +399,7 @@ public class TWarehouseAgreementServiceImpl implements ITWarehouseAgreementServi
             auditItems.setAuditOpTime(new Date());
             auditItems.setAuditMsg("提交");
             auditItems.setAuditStatus("O");
+            auditItems.setfSrcBillnos(fsrcBillno);// 装载业务编号
             AjaxResult approvalFlow = auditItemsService.createApprovalFlow(auditItems);
             Long code = Long.valueOf(String.valueOf(approvalFlow.get("code"))).longValue();
             if (code.equals(500L)) {
@@ -428,6 +435,8 @@ public class TWarehouseAgreementServiceImpl implements ITWarehouseAgreementServi
                 tWarehouseAgreementitemsMapper.insertTWarehouseAgreementitems(tWarehouseAgreementitems);
             }
         }
+        // 根据业务 id (仓储费 id) 删除对应审批流数据
+        AuditItemsAbout.deleteAuditItemsData(tWarehouseAgreement.getfId());
         return AjaxResult.success();
     }
 

+ 1 - 1
ruoyi-warehouse/src/main/resources/mapper/approvalFlow/AuditItemsMapper.xml

@@ -222,7 +222,7 @@
             item.bill_id AS billId,
             corp.f_name AS refno1,
             item.refno2,
-            item.refno3,
+            item.refno3 AS refno3,
             item.refno2 AS refno4,
             item.bill_no AS billNo,
             us.user_id AS userId,

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

@@ -401,7 +401,7 @@
             <if test="fTaxrate != null">f_taxrate = #{fTaxrate},</if>
             <if test="fDc != null">f_dc = #{fDc},</if>
             <if test="fBillstatus != null">f_billstatus = #{fBillstatus},</if>
-            <if test="fReviewDate != null">f_review_date = #{fReviewDate},</if>
+            <if test="fReviewDate != null || fReviewDate == null">f_review_date = #{fReviewDate},</if>
             <if test="fStatementNo != null">f_statement_no = #{fStatementNo},</if>
             <if test="fAccamount != null">f_accamount = #{fAccamount},</if>
             <if test="fStlamount != null">f_stlamount = #{fStlamount},</if>

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

@@ -92,7 +92,6 @@
         <result property="fChargedate" column="f_chargedate"/>
         <result property="fOriginalbilldate" column="f_originalbilldate"/>
         <result property="fMblno" column="f_mblno"/>
-        <result property="fSrcBsdate" column="f_src_bsdate"/>
         <result property="fVolumn" column="f_volumn"/>
         <result property="fMarks" column="f_marks"/>
         <result property="fBillingDays" column="f_billing_days"/>
@@ -953,6 +952,58 @@
         <if test="bills.fMblno != null and bills.fMblno != ''">and item.f_mblno like concat('%',#{bills.fMblno},'%')</if>
     </select>
 
+    <select id="selectWarehouseItemsByfPid" parameterType="TWarehousebillsitems" resultMap="TWarehousebillsitemsResult">
+        SELECT
+            t.f_id fId,
+            t.f_pid fPid,
+            t.f_shipper fShipper,
+            t.f_bsdate fBsdate,
+            corp.f_name corpName,
+            t.f_mblno fMblno,
+            stor.dict_label businessType,
+            t.f_marks fMarks,
+            t.f_labour fLabour,
+            g.f_name goodsName,
+            fleet.f_name fleetName,
+            t.f_warehouse_information fWarehouseInformation,
+            t.f_warehouselocid fWarehouselocid,
+            t.f_forkliftman fForkliftman,
+            t.f_truckno fTruckno,
+            cntr.f_name cntrtypes,
+            t.f_cntrtype fCntrtype,
+            t.f_cntqty fCntqty,
+            t.f_cntrno fCntrno,
+            t.f_qty fQty,
+            t.f_truckno fTruckno,
+            t.f_driver_name fDriverName,
+            t.f_originalbilldate fOriginalbilldate,
+            t.f_grossweight fGrossweight,
+            t.f_netweight fNetweight,
+            t.f_driver_tel fDriverTel,
+            t.f_stevedore fStevedore,
+            CASE
+                WHEN t.f_billstatus = '10' THEN '计划'
+                WHEN t.f_billstatus = '20' THEN
+                    IF(w.f_billtype = 'SJRK', '待入库', IF(w.f_billtype = 'SJCK','待出库', IF(w.f_billtype = 'CKDB', '待调拨',IF(w.f_billtype = 'HWTG', '待通关', IF(w.f_billtype = 'HQZY', '待转移', '无')))))
+                WHEN t.f_billstatus = '30' THEN
+                    IF(w.f_billtype = 'SJRK', '入库中', IF(w.f_billtype = 'SJCK','出库中', IF(w.f_billtype = 'CKDB', '调拨中',IF(w.f_billtype = 'HWTG', '通关中', IF(w.f_billtype = 'HQZY', '转移中', '无')))))
+                WHEN t.f_billstatus = '40' THEN
+                    IF(w.f_billtype = 'SJRK', '已入库', IF(w.f_billtype = 'SJCK','已出库', IF(w.f_billtype = 'CKDB', '已调拨',IF(w.f_billtype = 'HWTG', '已通关', IF(w.f_billtype = 'HQZY', '已转移', '无')))))
+                END billstatus,
+            t.remark
+        FROM
+            t_warehousebills w
+                LEFT JOIN t_warehousebillsitems t ON w.f_id = t.f_pid
+                LEFT JOIN sys_dict_data stor ON stor.dict_value = t.f_business_type
+                AND stor.dict_type = 'storage_type'
+                LEFT JOIN t_goods g ON g.f_id = t.f_goodsid
+                LEFT JOIN t_corps fleet ON fleet.f_id = t.f_fleet
+                LEFT JOIN t_corps corp ON corp.f_id = w.f_corpid
+                LEFT JOIN t_cntr cntr ON cntr.f_id = t.f_cntrtype
+        where
+            t.f_pid = #{fPid}
+    </select>
+
     <select id="selectInboundQtyByTime" resultMap="WarehouseTimeIntervalResult">
         SELECT w.f_warehouseid, sum(item.f_qty) f_qty
         FROM t_warehousebills w LEFT JOIN t_warehousebillsitems item ON item.f_pid = w.f_id