Bläddra i källkod

feat:合同导入时间校验时添加合同金额相关验证,添加工单相关表istop字段设置,

ly 11 månader sedan
förälder
incheckning
9f0e297c1a
27 ändrade filer med 397 tillägg och 44 borttagningar
  1. 1 1
      src/main/java/cn/ezhizao/project/business/housingFund/mapper/BizHousingFundConfirmMapper.java
  2. 1 1
      src/main/java/cn/ezhizao/project/business/housingFund/service/IBizHousingFundConfirmService.java
  3. 4 0
      src/main/java/cn/ezhizao/project/business/housingFund/service/impl/BizHousingFundConfirmServiceImpl.java
  4. 1 0
      src/main/java/cn/ezhizao/project/business/keepAccounts/mapper/BizFinancialKeepAccountMapper.java
  5. 1 0
      src/main/java/cn/ezhizao/project/business/keepAccounts/service/IBizFinancialKeepAccountService.java
  6. 5 0
      src/main/java/cn/ezhizao/project/business/keepAccounts/service/impl/BizFinancialKeepAccountServiceImpl.java
  7. 1 1
      src/main/java/cn/ezhizao/project/business/reportTax/mapper/BizFinancialReportTaxMapper.java
  8. 1 0
      src/main/java/cn/ezhizao/project/business/reportTax/service/IBizFinancialReportTaxService.java
  9. 5 0
      src/main/java/cn/ezhizao/project/business/reportTax/service/impl/BizFinancialReportTaxServiceImpl.java
  10. 1 1
      src/main/java/cn/ezhizao/project/business/salary/mapper/BizFinancialSalaryMapper.java
  11. 1 1
      src/main/java/cn/ezhizao/project/business/salary/service/IBizFinancialSalaryService.java
  12. 5 1
      src/main/java/cn/ezhizao/project/business/salary/service/impl/BizFinancialSalaryServiceImpl.java
  13. 1 1
      src/main/java/cn/ezhizao/project/business/socialSecurity/mapper/BizSocialSecurityConfirmMapper.java
  14. 1 1
      src/main/java/cn/ezhizao/project/business/socialSecurity/service/IBizSocialSecurityConfirmService.java
  15. 5 0
      src/main/java/cn/ezhizao/project/business/socialSecurity/service/impl/BizSocialSecurityConfirmServiceImpl.java
  16. 32 8
      src/main/java/cn/ezhizao/project/business/upgrade/controller/BizWorkOrderUpdateController.java
  17. 35 7
      src/main/java/cn/ezhizao/project/business/upgrade/crmUpgradeController.java
  18. 23 0
      src/main/java/cn/ezhizao/project/business/upgrade/domain/exportModel.java
  19. 6 0
      src/main/java/cn/ezhizao/project/business/upgrade/domain/importCheckModel.java
  20. 13 0
      src/main/java/cn/ezhizao/project/business/upgrade/domain/importCheckModelVo.java
  21. 2 2
      src/main/java/cn/ezhizao/project/business/upgrade/service/IBizArchiveInputTempService.java
  22. 212 19
      src/main/java/cn/ezhizao/project/business/upgrade/service/impl/BizArchiveInputTempServiceImpl.java
  23. 8 0
      src/main/resources/mybatis/business/BizFinancialKeepAccountMapper.xml
  24. 8 0
      src/main/resources/mybatis/business/BizFinancialReportTaxMapper.xml
  25. 8 0
      src/main/resources/mybatis/business/BizFinancialSalaryMapper.xml
  26. 8 0
      src/main/resources/mybatis/business/BizHousingFundConfirmMapper.xml
  27. 8 0
      src/main/resources/mybatis/business/BizSocialSecurityConfirmMapper.xml

+ 1 - 1
src/main/java/cn/ezhizao/project/business/housingFund/mapper/BizHousingFundConfirmMapper.java

@@ -36,7 +36,7 @@ public interface BizHousingFundConfirmMapper extends BaseMapper<BizHousingFundCo
      * @return int 查询总数量
      */
     int getTotal(Map<String, Object> conditions);
-
+    void updateByWorkOrderId(List<Long> ids);
 
 }
 

+ 1 - 1
src/main/java/cn/ezhizao/project/business/housingFund/service/IBizHousingFundConfirmService.java

@@ -35,5 +35,5 @@ public interface IBizHousingFundConfirmService extends IService<BizHousingFundCo
      * @return int 查询总数量
      */
     int getTotal(Map<String, Object> conditions);
-
+    void updateByWorkOrderId(List<Long> ids);
 }

+ 4 - 0
src/main/java/cn/ezhizao/project/business/housingFund/service/impl/BizHousingFundConfirmServiceImpl.java

@@ -35,4 +35,8 @@ public class BizHousingFundConfirmServiceImpl extends ServiceImpl<BizHousingFund
         return financialHousingFundConfirmDao.getTotal(conditions);
     }
 
+    @Override
+    public void updateByWorkOrderId(List<Long> ids) {
+        financialHousingFundConfirmDao.updateByWorkOrderId(ids);
+    }
 }

+ 1 - 0
src/main/java/cn/ezhizao/project/business/keepAccounts/mapper/BizFinancialKeepAccountMapper.java

@@ -19,4 +19,5 @@ public interface BizFinancialKeepAccountMapper extends BaseMapper<BizFinancialKe
     Integer getTotal(Map<String, Object> conditions);
 
     List<BizFinancialKeepAccount> getList(BizFinancialKeepAccount conditions);
+    void updateByWorkOrderId(List<Long> ids);
 }

+ 1 - 0
src/main/java/cn/ezhizao/project/business/keepAccounts/service/IBizFinancialKeepAccountService.java

@@ -20,4 +20,5 @@ public interface IBizFinancialKeepAccountService extends IService<BizFinancialKe
      * @return int 查询总数量
      */
     Integer getTotal(Map<String,Object> conditions);
+    void updateByWorkOrderId(List<Long> ids);
 }

+ 5 - 0
src/main/java/cn/ezhizao/project/business/keepAccounts/service/impl/BizFinancialKeepAccountServiceImpl.java

@@ -24,4 +24,9 @@ public class BizFinancialKeepAccountServiceImpl extends ServiceImpl<BizFinancial
     public Integer getTotal(Map<String, Object> conditions) {
         return financialKeepAccountDao.getTotal(conditions);
     }
+
+    @Override
+    public void updateByWorkOrderId(List<Long> ids) {
+        financialKeepAccountDao.updateByWorkOrderId(ids);
+    }
 }

+ 1 - 1
src/main/java/cn/ezhizao/project/business/reportTax/mapper/BizFinancialReportTaxMapper.java

@@ -15,7 +15,7 @@ public interface BizFinancialReportTaxMapper extends BaseMapper<BizFinancialRepo
      * @return List 集合
      */
     List<BizFinancialReportTax> getList(BizFinancialReportTax conditions);
-
+    void updateByWorkOrderId(List<Long> ids);
     /**
      * 带条件的查询总数
      * @param conditions 条件

+ 1 - 0
src/main/java/cn/ezhizao/project/business/reportTax/service/IBizFinancialReportTaxService.java

@@ -20,5 +20,6 @@ public interface IBizFinancialReportTaxService extends IService<BizFinancialRepo
      * @return int 查询总数量
      */
     Integer getTotal(Map<String,Object> conditions);
+    void updateByWorkOrderId(List<Long> ids);
 }
 

+ 5 - 0
src/main/java/cn/ezhizao/project/business/reportTax/service/impl/BizFinancialReportTaxServiceImpl.java

@@ -24,4 +24,9 @@ public class BizFinancialReportTaxServiceImpl extends ServiceImpl<BizFinancialRe
         return financialReportTaxDao.getTotal(conditions);
     }
 
+    @Override
+    public void updateByWorkOrderId(List<Long> ids) {
+        financialReportTaxDao.updateByWorkOrderId(ids);
+    }
+
 }

+ 1 - 1
src/main/java/cn/ezhizao/project/business/salary/mapper/BizFinancialSalaryMapper.java

@@ -20,7 +20,7 @@ public interface BizFinancialSalaryMapper extends BaseMapper<BizFinancialSalary>
      * @return 工资集合
      */
     public List<BizFinancialSalary> getList(BizFinancialSalary bizFinancialSalary);
-
+    void updateByWorkOrderId(List<Long> ids);
     /**
      * 物理删除
      * @param bizFinancialSalary

+ 1 - 1
src/main/java/cn/ezhizao/project/business/salary/service/IBizFinancialSalaryService.java

@@ -27,5 +27,5 @@ public interface IBizFinancialSalaryService extends IService<BizFinancialSalary>
      * @return 删除结果
      */
     public int physicalDelete(BizFinancialSalary bizFinancialSalary);
-
+    void updateByWorkOrderId(List<Long> ids);
 }

+ 5 - 1
src/main/java/cn/ezhizao/project/business/salary/service/impl/BizFinancialSalaryServiceImpl.java

@@ -39,6 +39,10 @@ public class BizFinancialSalaryServiceImpl  extends ServiceImpl<BizFinancialSala
      * @return 删除结果
      */
     @Override
-    public int physicalDelete(BizFinancialSalary bizFinancialSalary){ return bizFinancialSalaryMapper.physicalDelete(bizFinancialSalary); };
+    public int physicalDelete(BizFinancialSalary bizFinancialSalary){ return bizFinancialSalaryMapper.physicalDelete(bizFinancialSalary); }
 
+    @Override
+    public void updateByWorkOrderId(List<Long> ids) {
+        bizFinancialSalaryMapper.updateByWorkOrderId(ids);
+    }
 }

+ 1 - 1
src/main/java/cn/ezhizao/project/business/socialSecurity/mapper/BizSocialSecurityConfirmMapper.java

@@ -20,7 +20,7 @@ public interface BizSocialSecurityConfirmMapper extends BaseMapper<BizSocialSecu
      * @return List 集合
      */
     List<BizSocialSecurityConfirm> getList(Map<String, Object> conditions);
-
+    void updateByWorkOrderId(List<Long> ids);
     /**
      * 根据Bean查询 列表
      *

+ 1 - 1
src/main/java/cn/ezhizao/project/business/socialSecurity/service/IBizSocialSecurityConfirmService.java

@@ -35,5 +35,5 @@ public interface IBizSocialSecurityConfirmService extends IService<BizSocialSecu
      * @return int 查询总数量
      */
     int getTotal(Map<String, Object> conditions);
-
+    void updateByWorkOrderId(List<Long> ids);
 }

+ 5 - 0
src/main/java/cn/ezhizao/project/business/socialSecurity/service/impl/BizSocialSecurityConfirmServiceImpl.java

@@ -34,4 +34,9 @@ public class BizSocialSecurityConfirmServiceImpl extends ServiceImpl<BizSocialSe
     public int getTotal(Map<String,Object> conditions) {
         return financialSocialSecurityConfirmDao.getTotal(conditions);
     }
+
+    @Override
+    public void updateByWorkOrderId(List<Long> ids) {
+        financialSocialSecurityConfirmDao.updateByWorkOrderId(ids);
+    }
 }

+ 32 - 8
src/main/java/cn/ezhizao/project/business/upgrade/controller/BizWorkOrderUpdateController.java

@@ -4,10 +4,7 @@ import java.math.BigDecimal;
 import java.math.MathContext;
 import java.math.RoundingMode;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 
@@ -19,9 +16,14 @@ import cn.ezhizao.project.business.collection.domain.BizCollectionDetail;
 import cn.ezhizao.project.business.collection.service.IBizCollectionDetailService;
 import cn.ezhizao.project.business.collection.service.impl.BizCollectionServiceImpl;
 import cn.ezhizao.project.business.entrust.service.IBizEntrustService;
-import cn.ezhizao.project.business.upgrade.domain.BizArchiveInputDetailUpdate;
-import cn.ezhizao.project.business.upgrade.domain.BizArchiveInputUpdate;
-import cn.ezhizao.project.business.upgrade.domain.BizWorkOrderDetailUpdate;
+import cn.ezhizao.project.business.housingFund.service.IBizHousingFundConfirmService;
+import cn.ezhizao.project.business.keepAccounts.domain.BizFinancialKeepAccount;
+import cn.ezhizao.project.business.keepAccounts.service.IBizFinancialKeepAccountService;
+import cn.ezhizao.project.business.reportTax.service.IBizFinancialReportTaxService;
+import cn.ezhizao.project.business.salary.service.IBizFinancialSalaryService;
+import cn.ezhizao.project.business.socialSecurity.service.IBizSocialSecurityConfirmDetailService;
+import cn.ezhizao.project.business.socialSecurity.service.IBizSocialSecurityConfirmService;
+import cn.ezhizao.project.business.upgrade.domain.*;
 import cn.ezhizao.project.business.upgrade.service.IBizArchiveInputDetailUpdateService;
 import cn.ezhizao.project.business.upgrade.service.IBizArchiveInputTempService;
 import cn.ezhizao.project.business.upgrade.service.IBizWorkOrderDetailUpdateService;
@@ -29,7 +31,6 @@ import cn.ezhizao.project.business.workOrder.domain.BizWorkOrder;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
-import cn.ezhizao.project.business.upgrade.domain.BizWorkOrderUpdate;
 import cn.ezhizao.project.business.upgrade.service.IBizWorkOrderUpdateService;
 import cn.ezhizao.framework.web.controller.BaseController;
 import cn.ezhizao.framework.web.domain.AjaxResult;
@@ -59,6 +60,17 @@ public class BizWorkOrderUpdateController extends BaseController
     private BizCollectionServiceImpl bizCollectionService;
     @Resource
     private IBizCollectionDetailService bizCollectionDetailService;
+
+    @Resource
+    private IBizFinancialKeepAccountService financialKeepAccountService;
+    @Resource
+    private IBizHousingFundConfirmService bizHousingFundConfirmService;
+    @Resource
+    private IBizFinancialReportTaxService bizFinancialReportTaxService;
+    @Resource
+    private IBizSocialSecurityConfirmService bizSocialSecurityConfirmService;
+    @Resource
+    private IBizFinancialSalaryService bizFinancialSalaryService;
     /**
      * 查询工单信息列表
      */
@@ -260,4 +272,16 @@ public class BizWorkOrderUpdateController extends BaseController
         ExcelUtil<BizWorkOrderUpdate> util = new ExcelUtil<BizWorkOrderUpdate>(BizWorkOrderUpdate.class);
         util.exportExcel(response, list, "工单信息数据");
     }
+
+    @PreAuthorize("@ss.hasPermi('business:upgrade:workOrder:edit')")
+    @Log(title = "工单信息", businessType = BusinessType.OTHER)
+    @PostMapping("/OrderDisable")
+    public AjaxResult OrderDisable(@RequestBody List<Long> ids) throws NoSuchFieldException, IllegalAccessException {
+        financialKeepAccountService.updateByWorkOrderId(ids);
+        bizHousingFundConfirmService.updateByWorkOrderId(ids);
+        bizFinancialReportTaxService.updateByWorkOrderId(ids);
+        bizSocialSecurityConfirmService.updateByWorkOrderId(ids);
+        bizFinancialSalaryService.updateByWorkOrderId(ids);
+        return success("成功");
+    }
 }

+ 35 - 7
src/main/java/cn/ezhizao/project/business/upgrade/crmUpgradeController.java

@@ -11,22 +11,22 @@ import cn.ezhizao.framework.web.controller.BaseController;
 import cn.ezhizao.framework.web.domain.AjaxResult;
 import cn.ezhizao.project.business.order.domain.OrderExcelImportLoopModel;
 import cn.ezhizao.project.business.order.service.IBizArchiveInputService;
-import cn.ezhizao.project.business.upgrade.domain.BizWorkOrderUpdate;
-import cn.ezhizao.project.business.upgrade.domain.importCheckModel;
+import cn.ezhizao.project.business.upgrade.domain.*;
 import cn.ezhizao.project.business.upgrade.service.IBizArchiveInputTempService;
 import cn.ezhizao.project.business.upgrade.service.IBizWorkOrderUpdateService;
 import cn.ezhizao.project.business.workOrder.domain.BizWorkOrder;
 import cn.ezhizao.project.business.workOrder.service.IBizWorkOrderService;
 import cn.ezhizao.project.fegin.IFeignClient;
+import cn.hutool.json.JSONObject;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
 import java.lang.reflect.Field;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -84,7 +84,12 @@ public class crmUpgradeController extends BaseController {
     public AjaxResult checkInput(@RequestParam("file") MultipartFile file) throws Exception {
         ExcelUtil<OrderExcelImportLoopModel> util = new ExcelUtil<>(OrderExcelImportLoopModel.class);
         List<OrderExcelImportLoopModel> orderList = util.importExcel(file.getInputStream());
-        Map<String, List<importCheckModel>> map = bizArchiveInputTempService.checkInput(orderList);
+//        Map<String,String> fialmap = bizArchiveInputTempService.checkexcel(orderList,getTenantId());
+//        String failureNum = fialmap.get("failureNum");
+//        if (Integer.parseInt(failureNum) > 0) {
+//            return success("错误数据",fialmap.get("failureMsg"));
+//        }
+        Map<String, List<importCheckModel>> map = bizArchiveInputTempService.checkInput(orderList,getTenantId());
         return success(map);
     }
 
@@ -136,6 +141,29 @@ public class crmUpgradeController extends BaseController {
         }
         return success("false");
     }
+
+    /**
+     * 导出档案入库列表
+     */
+    @PreAuthorize("@ss.hasPermi('business:upgrade:workOrder:export')")
+    @Log(title = "档案入库", businessType = BusinessType.EXPORT)
+    @RequestMapping("/export")
+    public void export(HttpServletResponse response, @RequestBody importCheckModelVo importCheckModelVo) throws NoSuchFieldException, IllegalAccessException, JsonProcessingException {
+//        JSONObject jsonObject = new JSONObject();
+//        ObjectMapper objectMapper = new ObjectMapper();
+//        Map map = objectMapper.readValue(data,Map.class);
+//
+//        jsonObject.put("data", data);
+//        jsonObject.get("startMonth");
+        response.setHeader("Content-Disposition","attachment;filename"+"文件.xlsx");
+        ExcelUtil<exportModel> util = new ExcelUtil<>(exportModel.class);
+        if("1".equals(importCheckModelVo.getType())){
+            util.exportExcel(response, importCheckModelVo.getData().get("endMonth"), "导入的合同结束时间小于当前时间");
+        }else if("2".equals(importCheckModelVo.getType())){
+            util.exportExcel(response, importCheckModelVo.getData().get("startMonth"), "导入的合同开始时间大于当前时间");
+        }
+    }
+
     public List<String> getExcelAnnotatedFields(Class<?> clazz) {
         Field[] fields = clazz.getDeclaredFields();
         List<String> result = new ArrayList<>();

+ 23 - 0
src/main/java/cn/ezhizao/project/business/upgrade/domain/exportModel.java

@@ -0,0 +1,23 @@
+package cn.ezhizao.project.business.upgrade.domain;
+
+import cn.ezhizao.framework.aspectj.lang.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class exportModel {
+    @Excel(name = "合同编号" ,sort = 1)
+    String contractNo;
+    @Excel(name = "客户名称" ,sort = 2)
+    String companyName;
+    @Excel(name = "服务类型" ,sort = 3)
+    String taskType;
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "开始时间" ,sort = 4)
+    String startMonth;
+    @Excel(name = "结束时间" ,sort = 5)
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    String endMonth;
+}

+ 6 - 0
src/main/java/cn/ezhizao/project/business/upgrade/domain/importCheckModel.java

@@ -1,5 +1,6 @@
 package cn.ezhizao.project.business.upgrade.domain;
 
+import cn.ezhizao.framework.aspectj.lang.annotation.Excel;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
@@ -7,11 +8,16 @@ import java.util.Date;
 
 @Data
 public class importCheckModel {
+    @Excel(name = "合同编号" ,sort = 1)
     String contractNo;
+    @Excel(name = "客户名称" ,sort = 2)
     String companyName;
+    @Excel(name = "服务类型" ,sort = 3)
     String taskType;
     @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "开始时间" ,sort = 4)
     Date startMonth;
+    @Excel(name = "结束时间" ,sort = 5)
     @JsonFormat(pattern = "yyyy-MM-dd")
     Date endMonth;
 }

+ 13 - 0
src/main/java/cn/ezhizao/project/business/upgrade/domain/importCheckModelVo.java

@@ -0,0 +1,13 @@
+package cn.ezhizao.project.business.upgrade.domain;
+
+import lombok.Data;
+
+import java.util.List;
+import java.util.Map;
+
+@Data
+public class importCheckModelVo {
+
+    Map<String,List<exportModel>> data;
+    String type;
+}

+ 2 - 2
src/main/java/cn/ezhizao/project/business/upgrade/service/IBizArchiveInputTempService.java

@@ -37,6 +37,6 @@ public interface IBizArchiveInputTempService extends IService<BizArchiveInputUpd
     public boolean deleteArchiveInput(Long tentantId,Long inputId);
 
     void inputUpgrade(Long tentantId);
-
-    Map<String,List<importCheckModel>> checkInput(List<OrderExcelImportLoopModel> orderList);
+    Map<String,String> checkexcel(List<OrderExcelImportLoopModel> orderList,Long tenantId);
+    Map<String,List<importCheckModel>> checkInput(List<OrderExcelImportLoopModel> orderList,Long tenantId);
 }

+ 212 - 19
src/main/java/cn/ezhizao/project/business/upgrade/service/impl/BizArchiveInputTempServiceImpl.java

@@ -726,7 +726,7 @@ public class BizArchiveInputTempServiceImpl extends ServiceImpl<BizArchiveInputT
     }
 
     @Override
-    public Map<String,List<importCheckModel>> checkInput(List<OrderExcelImportLoopModel> orderList) {
+    public Map<String,List<importCheckModel>> checkInput(List<OrderExcelImportLoopModel> orderList,Long tenantId) {
         importCheckModel checkmodel = null;
         //结束月小于当前时间
         List<importCheckModel> endMonthList = new ArrayList<>();
@@ -734,46 +734,46 @@ public class BizArchiveInputTempServiceImpl extends ServiceImpl<BizArchiveInputT
         List<importCheckModel> startMonthList = new ArrayList<>();
 
         List<importCheckModel> checkModelList = new ArrayList<>();
-        for(OrderExcelImportLoopModel model : orderList){
-            String companyName = model.getCompanyName();
+        for(OrderExcelImportLoopModel loopModel : orderList){
+            String companyName = loopModel.getCompanyName();
 
             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
             Long taskId = 0L;
 
-            if ("是".equals(model.getKeepAccount())) {
+            if ("是".equals(loopModel.getKeepAccount())) {
                 checkmodel = new importCheckModel();
                 checkmodel.setCompanyName(companyName);
-                checkmodel.setContractNo(model.getContractNo());
+                checkmodel.setContractNo(loopModel.getContractNo());
                 checkmodel.setTaskType("代理记账");
-                checkmodel.setStartMonth(model.getKeepAccountStartMonth());
-                checkmodel.setEndMonth(model.getKeepAccountEndMonth());
+                checkmodel.setStartMonth(loopModel.getKeepAccountStartMonth());
+                checkmodel.setEndMonth(loopModel.getKeepAccountEndMonth());
                 checkModelList.add(checkmodel);
             }
-            if ("是".equals(model.getSocialSecurity())) {
+            if ("是".equals(loopModel.getSocialSecurity())) {
                 checkmodel = new importCheckModel();
                 checkmodel.setCompanyName(companyName);
-                checkmodel.setContractNo(model.getContractNo());
+                checkmodel.setContractNo(loopModel.getContractNo());
                 checkmodel.setTaskType("社保");
-                checkmodel.setStartMonth(model.getSocialSecurityStartMonth());
-                checkmodel.setEndMonth(model.getSocialSecurityEndMonth());
+                checkmodel.setStartMonth(loopModel.getSocialSecurityStartMonth());
+                checkmodel.setEndMonth(loopModel.getSocialSecurityEndMonth());
                 checkModelList.add(checkmodel);
             }
-            if ("是".equals(model.getHousingFund())) {
+            if ("是".equals(loopModel.getHousingFund())) {
                 checkmodel = new importCheckModel();
                 checkmodel.setCompanyName(companyName);
-                checkmodel.setContractNo(model.getContractNo());
+                checkmodel.setContractNo(loopModel.getContractNo());
                 checkmodel.setTaskType("公积金");
-                checkmodel.setStartMonth(model.getHousingFundStartMonth());
-                checkmodel.setEndMonth(model.getHousingFundEndMonth());
+                checkmodel.setStartMonth(loopModel.getHousingFundStartMonth());
+                checkmodel.setEndMonth(loopModel.getHousingFundEndMonth());
                 checkModelList.add(checkmodel);
             }
-            if ("是".equals(model.getReturnTax())) {
+            if ("是".equals(loopModel.getReturnTax())) {
                 checkmodel = new importCheckModel();
                 checkmodel.setCompanyName(companyName);
-                checkmodel.setContractNo(model.getContractNo());
+                checkmodel.setContractNo(loopModel.getContractNo());
                 checkmodel.setTaskType("返税");
-                checkmodel.setStartMonth(model.getReturnTaxStartMonth());
-                checkmodel.setEndMonth(model.getReturnTaxEndMonth());
+                checkmodel.setStartMonth(loopModel.getReturnTaxStartMonth());
+                checkmodel.setEndMonth(loopModel.getReturnTaxEndMonth());
                 checkModelList.add(checkmodel);
             }
         }
@@ -811,4 +811,197 @@ public class BizArchiveInputTempServiceImpl extends ServiceImpl<BizArchiveInputT
         map.put("endMonth",endMonthList);
         return map;
     }
+    public Map<String,String> checkexcel(List<OrderExcelImportLoopModel> orderList,Long tenantId){
+        successNum = 0;
+        failureNum = 0;
+        successMsg = new StringBuilder();
+        failureMsg = new StringBuilder();
+        List<String> contractNo = orderList.stream().map(m -> m.getContractNo()).collect(Collectors.toList());
+        //合同号不能重复
+        Map<String, Long> nameCountMap = contractNo.stream()
+                .collect(Collectors.groupingBy(name -> name, Collectors.counting()));
+        List<BizCompany> companies = companyService.query().eq("tenant_id", tenantId).list();
+        List<String> contNOs = this.query().eq("service_type", 1).eq("tenant_id", tenantId).list().stream().map(m -> m.getContractNo()).collect(Collectors.toList());
+        List<importCheckModel> checkModelList = new ArrayList<>();
+        for(OrderExcelImportLoopModel loopModel : orderList) {
+            if (loopModel.getDiscountAmount() == null) {
+                loopModel.setDiscountAmount(BigDecimal.ZERO);
+            }
+            BizCompany company = companies.stream().filter(v -> v.getName().equals(loopModel.getCompanyName())).findFirst().orElse(null);
+            if (company == null) {
+                failureNum++;
+//                failureMsg.append("<br/>").append(failureNum).append("、客户 ").append(loopModel.getCompanyName()).append(" 不存在");
+                continue;
+            }
+            SysUser user = userService.selectUserByUserNameAndTenantId(loopModel.getSignerName(), String.valueOf(tenantId));
+//            if (user == null) {
+//                failureNum++;
+//                failureMsg.append("<br/>").append(failureNum).append("、员工 ").append(item.getSignerName()).append(" 不存在");
+//                continue;
+//            }
+            // 判断下订单总价单价是否和录入相符
+            // 假设 amount - discountAmount != trueAmount 跳过该订单
+            if (loopModel.getAmount() == null) {
+                failureNum++;
+                failureMsg.append("<br/>").append(failureNum).append("、订单 ").append(loopModel.getContractNo()).append(failureNum).append("服务金额不能为空");
+                continue;
+            }
+            if (loopModel.getTrueAmount() == null) {
+                failureNum++;
+                failureMsg.append("<br/>").append(failureNum).append("、订单 ").append(loopModel.getContractNo()).append(failureNum).append("实收金额不能为空");
+                continue;
+            }
+            if (loopModel.getAmount().subtract(loopModel.getDiscountAmount() == null ? BigDecimal.ZERO : loopModel.getDiscountAmount()).compareTo(loopModel.getTrueAmount()) != 0) {
+                failureNum++;
+                failureMsg.append("<br/>").append(failureNum).append("、订单 ").append(loopModel.getContractNo()).append(" 实际付款金额出错");
+                continue;
+            }
+            if (loopModel.getTrueAmount().compareTo(BigDecimal.ZERO) < 0) {
+                failureNum++;
+                failureMsg.append("<br/>").append(failureNum).append("、订单 ").append(loopModel.getContractNo()).append(" 实际付款金额小于0");
+                continue;
+            }
+            // 假设子表金额不等于订单总金额
+            BigDecimal keepAccount = loopModel.getKeepAccountAmount() == null ? BigDecimal.ZERO : loopModel.getKeepAccountAmount();
+            BigDecimal security = loopModel.getSocialSecurityAmount() == null ? BigDecimal.ZERO : loopModel.getSocialSecurityAmount();
+            BigDecimal housingFund = loopModel.getHousingFundAmount() == null ? BigDecimal.ZERO : loopModel.getHousingFundAmount();
+            BigDecimal returnTax = loopModel.getReturnTaxAmount() == null ? BigDecimal.ZERO : loopModel.getReturnTaxAmount();
+            //优惠
+            BigDecimal keepFreeAccount = loopModel.getKeepAccountFreeAmount() == null ? BigDecimal.ZERO : loopModel.getKeepAccountFreeAmount();
+            BigDecimal securityFree = loopModel.getSocialSecurityFreeAmount() == null ? BigDecimal.ZERO : loopModel.getSocialSecurityFreeAmount();
+            BigDecimal housingFundFree = loopModel.getHousingFundFreeAmount() == null ? BigDecimal.ZERO : loopModel.getHousingFundFreeAmount();
+            BigDecimal returnTaxFree = loopModel.getReturnTaxFreeAmount() == null ? BigDecimal.ZERO : loopModel.getReturnTaxFreeAmount();
+//            if (item.getAmount().compareTo(keepAccount.add(security).add(housingFund).add(returnTax)) != 0) {
+            //update 6/12 实收金额 和各项金额比较 ,各项金额填写时应该为 单价*月-优惠金额
+            if (loopModel.getTrueAmount().compareTo(keepAccount.add(security).add(housingFund).add(returnTax)) != 0) {
+                failureNum++;
+                failureMsg.append("<br/>").append(failureNum).append("、订单 ").append(loopModel.getContractNo()).append(" 实收金额不等于实际任务金额的和。");
+                continue;
+            }
+
+            if (loopModel.getDiscountAmount().compareTo(keepFreeAccount.add(securityFree).add(housingFundFree).add(returnTaxFree)) != 0) {
+                failureNum++;
+                failureMsg.append("<br/>").append(failureNum).append("、订单 ").append(loopModel.getContractNo()).append("优惠金额不等于任务优惠金额的和。");
+                continue;
+            }
+            BigDecimal keepAccountPrice = loopModel.getKeepAccountPrice() == null ? BigDecimal.ZERO : loopModel.getKeepAccountPrice();
+            BigDecimal securityPrice = loopModel.getSocialSecurityPrice() == null ? BigDecimal.ZERO : loopModel.getSocialSecurityPrice();
+            BigDecimal housingFundPrice = loopModel.getHousingFundPrice() == null ? BigDecimal.ZERO : loopModel.getHousingFundPrice();
+            BigDecimal returnTaxPrice = loopModel.getReturnTaxPrice() == null ? BigDecimal.ZERO : loopModel.getReturnTaxPrice();
+            BigDecimal keepAccountMonth = loopModel.getKeepAccountMonth() == null ? BigDecimal.ZERO : BigDecimal.valueOf(loopModel.getKeepAccountMonth());
+            BigDecimal securityMonth = loopModel.getSocialSecurityMonth() == null ? BigDecimal.ZERO : BigDecimal.valueOf(loopModel.getSocialSecurityMonth());
+            BigDecimal housingFundMonth = loopModel.getHousingFundMonth() == null ? BigDecimal.ZERO : BigDecimal.valueOf(loopModel.getHousingFundMonth());
+            BigDecimal returnTaxMonth = loopModel.getReturnTaxMonth() == null ? BigDecimal.ZERO : BigDecimal.valueOf(loopModel.getReturnTaxMonth());
+            if (loopModel.getKeepAccountStartMonth() != null && loopModel.getKeepAccountEndMonth() != null) {
+                Calendar startCalendar = Calendar.getInstance();
+                startCalendar.setTime(loopModel.getKeepAccountStartMonth());
+                Calendar endCalendar = Calendar.getInstance();
+                endCalendar.setTime(loopModel.getKeepAccountEndMonth());
+                // 计算年份和月份的差异
+                int yearDiff = endCalendar.get(Calendar.YEAR) - startCalendar.get(Calendar.YEAR);
+                int monthDiff = endCalendar.get(Calendar.MONTH) - startCalendar.get(Calendar.MONTH);
+                // 总的月份差异
+                int totalMonthsBetween = yearDiff * 12 + monthDiff + 1;
+                BigDecimal keeFreeMonth = loopModel.getKeepAccountFreeMonth() == null ? BigDecimal.ZERO : BigDecimal.valueOf(loopModel.getKeepAccountFreeMonth());
+                if (totalMonthsBetween != keepAccountMonth.add(keeFreeMonth).intValue()) {
+                    failureNum++;
+                    failureMsg.append("<br/>").append(failureNum).append(company.getName() + "的代理记账服务的服务月数+赠送月数跟结束月-开始月的时间不等,请检查数据");
+                    continue;
+                }
+
+            }
+            if (loopModel.getSocialSecurityStartMonth() != null && loopModel.getSocialSecurityEndMonth() != null) {
+                Calendar startCalendar2 = Calendar.getInstance();
+                startCalendar2.setTime(loopModel.getSocialSecurityStartMonth());
+                Calendar endCalendar2 = Calendar.getInstance();
+                endCalendar2.setTime(loopModel.getSocialSecurityEndMonth());
+                // 计算年份和月份的差异
+                int yearDiff2 = endCalendar2.get(Calendar.YEAR) - startCalendar2.get(Calendar.YEAR);
+                int monthDiff2 = endCalendar2.get(Calendar.MONTH) - startCalendar2.get(Calendar.MONTH);
+                // 总的月份差异
+                int totalMonthsBetween2 = yearDiff2 * 12 + monthDiff2 + 1;
+                BigDecimal socialSecurityMonth = loopModel.getSocialSecurityFreeMonth() == null ? BigDecimal.ZERO : BigDecimal.valueOf(loopModel.getSocialSecurityFreeMonth());
+                if (totalMonthsBetween2 != securityMonth.add(socialSecurityMonth).intValue()) {
+                    failureNum++;
+
+                    failureMsg.append("<br/>").append(failureNum).append(company.getName() + "的社保代缴服务的服务月数+赠送月数跟结束月-开始月的时间不等,请检查数据");
+                    continue;
+                }
+            }
+
+
+            if (loopModel.getHousingFundStartMonth() != null && loopModel.getHousingFundEndMonth() != null) {
+                Calendar startCalendar3 = Calendar.getInstance();
+                startCalendar3.setTime(loopModel.getHousingFundStartMonth());
+                Calendar endCalendar3 = Calendar.getInstance();
+                endCalendar3.setTime(loopModel.getHousingFundEndMonth());
+                // 计算年份和月份的差异
+                int yearDiff3 = endCalendar3.get(Calendar.YEAR) - startCalendar3.get(Calendar.YEAR);
+                int monthDiff3 = endCalendar3.get(Calendar.MONTH) - startCalendar3.get(Calendar.MONTH);
+                // 总的月份差异
+                int totalMonthsBetween3 = yearDiff3 * 12 + monthDiff3 + 1;
+                BigDecimal housingFundMonths = loopModel.getHousingFundFreeMonth() == null ? BigDecimal.ZERO : BigDecimal.valueOf(loopModel.getHousingFundFreeMonth());
+                if (totalMonthsBetween3 != housingFundMonth.add(housingFundMonths).intValue()) {
+                    failureNum++;
+                    failureMsg.append("<br/>").append(failureNum).append(company.getName() + "的公积金服务的服务月数+赠送月数跟结束月-开始月的时间不等,请检查数据");
+                    continue;
+                }
+            }
+
+            if (loopModel.getReturnTaxStartMonth() != null && loopModel.getReturnTaxEndMonth() != null) {
+                Calendar startCalendar4 = Calendar.getInstance();
+                startCalendar4.setTime(loopModel.getReturnTaxStartMonth());
+                Calendar endCalendar4 = Calendar.getInstance();
+                endCalendar4.setTime(loopModel.getReturnTaxEndMonth());
+                // 计算年份和月份的差异
+                int yearDiff4 = endCalendar4.get(Calendar.YEAR) - startCalendar4.get(Calendar.YEAR);
+                int monthDiff4 = endCalendar4.get(Calendar.MONTH) - startCalendar4.get(Calendar.MONTH);
+                // 总的月份差异
+                int totalMonthsBetween4 = yearDiff4 * 12 + monthDiff4 + 1;
+                BigDecimal returnTaxFreeMonth = loopModel.getReturnTaxFreeMonth() == null ? BigDecimal.ZERO : BigDecimal.valueOf(loopModel.getReturnTaxFreeMonth());
+                if (totalMonthsBetween4 != returnTaxMonth.add(returnTaxFreeMonth).intValue()) {
+                    failureNum++;
+                    failureMsg.append("<br/>").append(failureNum).append(company.getName() + "的返税申报服务的服务月数+赠送月数跟结束月-开始月的时间不等,请检查数据");
+                    continue;
+                }
+            }
+
+            if (nameCountMap.get(loopModel.getContractNo()) > 1L) {
+                failureNum++;
+                failureMsg.append("<br/>").append(failureNum).append("导入的合同编号 ").append(loopModel.getContractNo()).append("不能重复");
+                continue;
+            }
+            if (contNOs.contains(loopModel.getContractNo())) {
+                failureNum++;
+                failureMsg.append("<br/>").append(failureNum).append("合同编号 ").append(loopModel.getContractNo()).append("已存在不能重复导入");
+                continue;
+            }
+            //update 6/12 加单条优惠才为当月总金额
+            if (keepAccount.add(keepFreeAccount).compareTo(keepAccountPrice.multiply(keepAccountMonth)) != 0) {
+                failureNum++;
+                failureMsg.append("<br/>").append(failureNum).append("、订单 ").append(loopModel.getContractNo()).append(" 记账总金额计算值与记账单价不符。");
+                continue;
+            }
+            if (security.add(securityFree).compareTo(securityPrice.multiply(securityMonth)) != 0) {
+                failureNum++;
+                failureMsg.append("<br/>").append(failureNum).append("、订单 ").append(loopModel.getContractNo()).append(" 社保总金额计算值与社保单价不符。");
+                continue;
+            }
+            if (housingFund.add(housingFundFree).compareTo(housingFundPrice.multiply(housingFundMonth)) != 0) {
+                failureNum++;
+                failureMsg.append("<br/>").append(failureNum).append("、订单 ").append(loopModel.getContractNo()).append(" 公积金总金额计算值与公积金单价不符。");
+                continue;
+            }
+            if (returnTax.add(returnTaxFree).compareTo(returnTaxMonth.multiply(returnTaxPrice)) != 0) {
+                failureNum++;
+                failureMsg.append("<br/>").append(failureNum).append("、订单 ").append(loopModel.getContractNo()).append(" 返税总金额计算值与返税单价不符。");
+                continue;
+            }
+        }
+        Map<String,String> map = new HashMap<>();
+        map.put("failureNum",String.valueOf(failureNum));
+        map.put("failureMsg",failureMsg.toString());
+        return map;
+    }
+
 }

+ 8 - 0
src/main/resources/mybatis/business/BizFinancialKeepAccountMapper.xml

@@ -59,4 +59,12 @@
             </if>
         </if>
     </sql>
+    <update id="updateByWorkOrderId"
+    parameterType="java.util.List">
+        update biz_financial_keep_account set is_stop=1
+        WHERE work_order_id in
+        <foreach collection="ids" item="id" index="index" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
 </mapper>

+ 8 - 0
src/main/resources/mybatis/business/BizFinancialReportTaxMapper.xml

@@ -143,4 +143,12 @@
             AND t4.sum_tax = 0
         </if>
     </sql>
+    <update id="updateByWorkOrderId"
+            parameterType="java.util.List">
+        update biz_financial_keep_account set is_stop=1
+        WHERE work_order_id in
+        <foreach collection="ids" item="id" index="index" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
 </mapper>

+ 8 - 0
src/main/resources/mybatis/business/BizFinancialSalaryMapper.xml

@@ -57,4 +57,12 @@
             <!-- 删除条件为其他外键可以在这里加 -->
         </trim>
     </delete>
+    <update id="updateByWorkOrderId"
+            parameterType="java.util.List">
+        update biz_financial_keep_account set is_stop=1
+        WHERE work_order_id in
+        <foreach collection="ids" item="id" index="index" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
 </mapper>

+ 8 - 0
src/main/resources/mybatis/business/BizHousingFundConfirmMapper.xml

@@ -94,4 +94,12 @@
             </if>
         </trim>
     </sql>
+    <update id="updateByWorkOrderId"
+            parameterType="java.util.List">
+        update biz_financial_keep_account set is_stop=1
+        WHERE work_order_id in
+        <foreach collection="ids" item="id" index="index" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
 </mapper>

+ 8 - 0
src/main/resources/mybatis/business/BizSocialSecurityConfirmMapper.xml

@@ -93,4 +93,12 @@
             </if>
         </trim>
     </sql>
+    <update id="updateByWorkOrderId"
+            parameterType="java.util.List">
+        update biz_financial_keep_account set is_stop=1
+        WHERE work_order_id in
+        <foreach collection="ids" item="id" index="index" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
 </mapper>