Browse Source

采购付款供应商账期结算金额 流水添加结算状态

yzc 1 year ago
parent
commit
d61b3c718a

+ 4 - 0
hx-account/pom.xml

@@ -26,6 +26,10 @@
             <groupId>com.fjhx</groupId>
             <groupId>com.fjhx</groupId>
             <artifactId>hx-item</artifactId>
             <artifactId>hx-item</artifactId>
         </dependency>
         </dependency>
+        <dependency>
+            <groupId>com.fjhx</groupId>
+            <artifactId>hx-wms</artifactId>
+        </dependency>
     </dependencies>
     </dependencies>
 
 
 </project>
 </project>

+ 25 - 0
hx-account/src/main/java/com/fjhx/account/flow/CostControlFlow.java

@@ -1,20 +1,26 @@
 package com.fjhx.account.flow;
 package com.fjhx.account.flow;
 
 
+import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.fjhx.account.entity.cost.dto.CostControlDto;
 import com.fjhx.account.entity.cost.dto.CostControlDto;
 import com.fjhx.account.entity.cost.po.CostControl;
 import com.fjhx.account.entity.cost.po.CostControl;
+import com.fjhx.account.entity.cost.po.CostControlDetail;
+import com.fjhx.account.service.cost.CostControlDetailService;
 import com.fjhx.account.service.cost.CostControlService;
 import com.fjhx.account.service.cost.CostControlService;
 import com.fjhx.common.enums.CodingRuleEnum;
 import com.fjhx.common.enums.CodingRuleEnum;
 import com.fjhx.common.enums.FlowStatusEnum1;
 import com.fjhx.common.enums.FlowStatusEnum1;
 import com.fjhx.common.service.coding.CodingRuleService;
 import com.fjhx.common.service.coding.CodingRuleService;
 import com.fjhx.flow.core.FlowDelegate;
 import com.fjhx.flow.core.FlowDelegate;
 import com.fjhx.flow.enums.FlowStatusEnum;
 import com.fjhx.flow.enums.FlowStatusEnum;
+import com.fjhx.wms.entity.stock.po.StockJournalDetails;
+import com.fjhx.wms.service.stock.StockJournalDetailsService;
 import com.ruoyi.common.core.domain.BasePo;
 import com.ruoyi.common.core.domain.BasePo;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
 import java.util.Date;
 import java.util.Date;
+import java.util.List;
 
 
 /**
 /**
  * 费控流程
  * 费控流程
@@ -29,6 +35,10 @@ public class CostControlFlow extends FlowDelegate {
     private CostControlService costControlService;
     private CostControlService costControlService;
     @Autowired
     @Autowired
     private CodingRuleService codingRuleService;
     private CodingRuleService codingRuleService;
+    @Autowired
+    private CostControlDetailService costControlDetailService;
+    @Autowired
+    private StockJournalDetailsService stockJournalDetailsService;
 
 
     @Override
     @Override
     public String getFlowKey() {
     public String getFlowKey() {
@@ -67,6 +77,18 @@ public class CostControlFlow extends FlowDelegate {
                 .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
                 .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
                 .set(BasePo::getUpdateTime, new Date())
                 .set(BasePo::getUpdateTime, new Date())
         );
         );
+
+        List<CostControlDetail> costControlDetailList = costControlDetailService.list(q -> q.eq(CostControlDetail::getCostControlId, businessId));
+        for (CostControlDetail costControlDetail : costControlDetailList) {
+
+            //标记流水为已结算
+            String stockJournalDetailsIds = costControlDetail.getStockJournalDetailsIds();
+            if (ObjectUtil.isNotEmpty(stockJournalDetailsIds)) {
+                stockJournalDetailsService.update(q -> q
+                        .in(StockJournalDetails::getId, stockJournalDetailsIds.split(","))
+                        .set(StockJournalDetails::getSettleStatus, 2));
+            }
+        }
     }
     }
 
 
     /**
     /**
@@ -89,6 +111,9 @@ public class CostControlFlow extends FlowDelegate {
                 .set(BasePo::getUpdateTime, new Date())
                 .set(BasePo::getUpdateTime, new Date())
                 .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
                 .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
         );
         );
+
+        //取消流水结算状态
+        costControlService.cancelSettlement(costControlDetailService.list(q -> q.eq(CostControlDetail::getCostControlId, businessId)));
     }
     }
 
 
     @Override
     @Override

+ 5 - 0
hx-account/src/main/java/com/fjhx/account/service/cost/CostControlService.java

@@ -5,9 +5,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.account.entity.cost.dto.CostControlDto;
 import com.fjhx.account.entity.cost.dto.CostControlDto;
 import com.fjhx.account.entity.cost.dto.CostControlSelectDto;
 import com.fjhx.account.entity.cost.dto.CostControlSelectDto;
 import com.fjhx.account.entity.cost.po.CostControl;
 import com.fjhx.account.entity.cost.po.CostControl;
+import com.fjhx.account.entity.cost.po.CostControlDetail;
 import com.fjhx.account.entity.cost.vo.CostControlVo;
 import com.fjhx.account.entity.cost.vo.CostControlVo;
 import com.ruoyi.common.core.service.BaseService;
 import com.ruoyi.common.core.service.BaseService;
 
 
+import java.util.List;
+
 
 
 /**
 /**
  * <p>
  * <p>
@@ -50,4 +53,6 @@ public interface CostControlService extends BaseService<CostControl> {
     JSONObject getFieldInfo();
     JSONObject getFieldInfo();
 
 
     void cancellation(Long id);
     void cancellation(Long id);
+
+    void cancelSettlement(List<CostControlDetail> costControlDetailList);
 }
 }

+ 40 - 1
hx-account/src/main/java/com/fjhx/account/service/cost/impl/CostControlServiceImpl.java

@@ -24,6 +24,8 @@ import com.fjhx.file.utils.ObsFileUtil;
 import com.fjhx.flow.entity.flow.po.FlowExample;
 import com.fjhx.flow.entity.flow.po.FlowExample;
 import com.fjhx.flow.enums.FlowStatusEnum;
 import com.fjhx.flow.enums.FlowStatusEnum;
 import com.fjhx.flow.service.flow.FlowExampleService;
 import com.fjhx.flow.service.flow.FlowExampleService;
+import com.fjhx.wms.entity.stock.po.StockJournalDetails;
+import com.fjhx.wms.service.stock.StockJournalDetailsService;
 import com.ruoyi.common.core.domain.BaseIdPo;
 import com.ruoyi.common.core.domain.BaseIdPo;
 import com.ruoyi.common.core.domain.BasePo;
 import com.ruoyi.common.core.domain.BasePo;
 import com.ruoyi.common.core.domain.entity.SysDept;
 import com.ruoyi.common.core.domain.entity.SysDept;
@@ -60,6 +62,8 @@ public class CostControlServiceImpl extends ServiceImpl<CostControlMapper, CostC
     private ISysDeptService sysDeptService;
     private ISysDeptService sysDeptService;
     @Autowired
     @Autowired
     private PaymentTypeService paymentTypeService;
     private PaymentTypeService paymentTypeService;
+    @Autowired
+    private StockJournalDetailsService stockJournalDetailsService;
 
 
     @Override
     @Override
     public Page<CostControlVo> getPage(CostControlSelectDto dto) {
     public Page<CostControlVo> getPage(CostControlSelectDto dto) {
@@ -144,7 +148,12 @@ public class CostControlServiceImpl extends ServiceImpl<CostControlMapper, CostC
 
 
         //删除无效数据
         //删除无效数据
         List<Long> idList = costControlDetailList.stream().map(BaseIdPo::getId).filter(Objects::nonNull).collect(Collectors.toList());
         List<Long> idList = costControlDetailList.stream().map(BaseIdPo::getId).filter(Objects::nonNull).collect(Collectors.toList());
-        costControlDetailService.remove(q -> q.eq(CostControlDetail::getCostControlId, costControlDto.getId()).notIn(ObjectUtil.isNotEmpty(idList), BaseIdPo::getId, idList));
+        List<CostControlDetail> delList = costControlDetailService.list(q -> q.eq(CostControlDetail::getCostControlId, costControlDto.getId()).notIn(ObjectUtil.isNotEmpty(idList), BaseIdPo::getId, idList));
+        //取消流水结算状态
+        cancelSettlement(delList);
+        //删除数据
+        costControlDetailService.removeBatchByIds(delList);
+
         for (CostControlDetailDto costControlDetailDto : costControlDetailList) {
         for (CostControlDetailDto costControlDetailDto : costControlDetailList) {
             costControlDetailDto.setCostControlId(costControlDto.getId());
             costControlDetailDto.setCostControlId(costControlDto.getId());
             costControlDetailService.saveOrUpdate(costControlDetailDto);
             costControlDetailService.saveOrUpdate(costControlDetailDto);
@@ -152,6 +161,14 @@ public class CostControlServiceImpl extends ServiceImpl<CostControlMapper, CostC
             ObsFileUtil.editFile(costControlDetailDto.getFileList(), costControlDetailDto.getId(), 0);
             ObsFileUtil.editFile(costControlDetailDto.getFileList(), costControlDetailDto.getId(), 0);
             //保存发票附件
             //保存发票附件
             ObsFileUtil.editFile(costControlDetailDto.getInvoiceFileList(), costControlDetailDto.getId(), 10);
             ObsFileUtil.editFile(costControlDetailDto.getInvoiceFileList(), costControlDetailDto.getId(), 10);
+
+            //标记流水为结算中
+            String stockJournalDetailsIds = costControlDetailDto.getStockJournalDetailsIds();
+            if (ObjectUtil.isNotEmpty(stockJournalDetailsIds)) {
+                stockJournalDetailsService.update(q -> q
+                        .in(StockJournalDetails::getId, stockJournalDetailsIds.split(","))
+                        .set(StockJournalDetails::getSettleStatus, 1));
+            }
         }
         }
     }
     }
 
 
@@ -187,6 +204,9 @@ public class CostControlServiceImpl extends ServiceImpl<CostControlMapper, CostC
                 .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
                 .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
         );
         );
 
 
+        //取消流水结算状态
+        cancelSettlement(costControlDetailService.list(q -> q.eq(CostControlDetail::getCostControlId, id)));
+
         //销毁审批中的流程
         //销毁审批中的流程
         CostControl byId = getById(id);
         CostControl byId = getById(id);
         flowExampleService.update(q -> q
         flowExampleService.update(q -> q
@@ -221,4 +241,23 @@ public class CostControlServiceImpl extends ServiceImpl<CostControlMapper, CostC
         return arr;
         return arr;
     }
     }
 
 
+    /**
+     * 取消流水结算状态
+     */
+    @Override
+    public void cancelSettlement(List<CostControlDetail> costControlDetailList) {
+        for (CostControlDetail costControlDetail : costControlDetailList) {
+            //标记流水为未结算
+            String stockJournalDetailsIds = costControlDetail.getStockJournalDetailsIds();
+            if (ObjectUtil.isNotEmpty(stockJournalDetailsIds)) {
+                stockJournalDetailsService.update(q -> q
+                        .in(StockJournalDetails::getId, stockJournalDetailsIds.split(","))
+                        .set(StockJournalDetails::getSettleStatus, 0)
+                        .set(BasePo::getUpdateTime, new Date())
+                        .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
+                );
+            }
+        }
+    }
+
 }
 }

+ 5 - 0
hx-wms/src/main/java/com/fjhx/wms/entity/stock/po/StockJournalDetails.java

@@ -90,4 +90,9 @@ public class StockJournalDetails extends BasePo {
      */
      */
     @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM")
     @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM")
     private Date accountPeriod;
     private Date accountPeriod;
+
+    /**
+     * 结算状态
+     */
+    private Integer settleStatus;
 }
 }