Explorar o código

feat:合同导入时,需要找出同公司同服务中开始时间大于当前时间和结束时间小于当前时间的数据展示在页面上让用户确认。

ly hai 11 meses
pai
achega
68cdd56c6c

+ 1 - 0
src/main/java/cn/ezhizao/project/business/order/service/IBizArchiveInputService.java

@@ -50,4 +50,5 @@ public interface IBizArchiveInputService extends IService<BizArchiveInput>
 
     List<BizArchiveInput> getListByInput(InputVo bizArchiveInput);
     boolean addLoopTasks(BizWorkOrder workOrder);
+    boolean stopLoopTasks(BizWorkOrder workOrder);
 }

+ 19 - 0
src/main/java/cn/ezhizao/project/business/upgrade/crmUpgradeController.java

@@ -12,6 +12,7 @@ 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.service.IBizArchiveInputTempService;
 import cn.ezhizao.project.business.upgrade.service.IBizWorkOrderUpdateService;
 import cn.ezhizao.project.business.workOrder.domain.BizWorkOrder;
@@ -21,13 +22,16 @@ 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.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import java.lang.reflect.Field;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.concurrent.TimeUnit;
 
 @RestController
@@ -74,6 +78,16 @@ public class crmUpgradeController extends BaseController {
         }
     }
 
+    @Log(title = "基础版升级合同导入", businessType = BusinessType.OTHER)
+    @PreAuthorize("@ss.hasPermi('business:upgrade:order:list')")
+    @PostMapping(value = "/order/checkInput")
+    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);
+        return success(map);
+    }
+
     @Log(title = "基础版升级", businessType = BusinessType.INSERT)
     @PreAuthorize("@ss.hasPermi('business:upgrade:order:edit')")
     @PostMapping("/order/completeUpgrade")
@@ -90,10 +104,15 @@ public class crmUpgradeController extends BaseController {
             List<BizWorkOrder> waitingForUpgradingList = bizWorkOrderService.lambdaQuery().eq(BizWorkOrder::getTenantId,tenantId).list();
             bizWorkOrderUpdateService.workerUpgrade(waitingForUpgradingList,tenantId);
             tenantService.completeUpgrade(tenantId,1L);
+
+
             //升级完成需要生成循环任务
             //List<BizWorkOrderUpdate> bizWorkOrderUpdates = bizWorkOrderUpdateService.lambdaQuery().eq(BizWorkOrderUpdate::getIsNew,1).list();
             List<BizWorkOrder> bizWorkOrderList = bizWorkOrderUpdateService.getNewOrder();
             bizWorkOrderList.forEach(order->inputService.addLoopTasks(order));
+
+            List<BizWorkOrder> stopOrderList = bizWorkOrderUpdateService.getStopTaskOrder();
+            stopOrderList.forEach(order->inputService.stopLoopTasks(order));
             //工单列表页需要添加执行人的sql
         }catch (Exception e){
             logger.error(e.getMessage());

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

@@ -0,0 +1,17 @@
+package cn.ezhizao.project.business.upgrade.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class importCheckModel {
+    String contractNo;
+    String companyName;
+    String taskType;
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    Date startMonth;
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    Date endMonth;
+}

+ 2 - 0
src/main/java/cn/ezhizao/project/business/upgrade/mapper/BizWorkOrderUpdateMapper.java

@@ -35,4 +35,6 @@ public interface BizWorkOrderUpdateMapper extends BaseMapper<BizWorkOrderUpdate>
     List<BizWorkOrder> selectByUpgradeId(BizWorkOrder query);
     Long getToUpLoadCount(BizWorkOrderUpdate bizWorkOrder);
     List<BizWorkOrder> getNewOrder();
+    List<BizWorkOrder> getStopTaskOrder();
+
 }

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

@@ -1,9 +1,11 @@
 package cn.ezhizao.project.business.upgrade.service;
 
 import java.util.List;
+import java.util.Map;
 
 import cn.ezhizao.project.business.order.domain.OrderExcelImportLoopModel;
 import cn.ezhizao.project.business.order.domain.vo.InputVo;
+import cn.ezhizao.project.business.upgrade.domain.importCheckModel;
 import com.baomidou.mybatisplus.extension.service.IService;
 import cn.ezhizao.project.business.upgrade.domain.BizArchiveInputUpdate;
 
@@ -35,4 +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);
 }

+ 1 - 0
src/main/java/cn/ezhizao/project/business/upgrade/service/IBizWorkOrderUpdateService.java

@@ -36,4 +36,5 @@ public interface IBizWorkOrderUpdateService extends IService<BizWorkOrderUpdate>
     void workerUpgrade(List<BizWorkOrder> bizWorkOrder, Long tenantId);
     Long getToUpLoadCount(BizWorkOrderUpdate bizWorkOrder);
     List<BizWorkOrder> getNewOrder();
+    List<BizWorkOrder> getStopTaskOrder();
 }

+ 89 - 4
src/main/java/cn/ezhizao/project/business/upgrade/service/impl/BizArchiveInputTempServiceImpl.java

@@ -1,6 +1,7 @@
 package cn.ezhizao.project.business.upgrade.service.impl;
 
 import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 import javax.annotation.Resource;
@@ -21,15 +22,13 @@ import cn.ezhizao.project.business.order.service.IBizArchiveInputDetailService;
 import cn.ezhizao.project.business.order.service.IBizArchiveInputService;
 import cn.ezhizao.project.business.settings.domain.BizSource;
 import cn.ezhizao.project.business.settings.service.IBizSourceService;
+import cn.ezhizao.project.business.upgrade.domain.*;
 import cn.ezhizao.project.business.workOrder.domain.BizWorkOrder;
 import cn.ezhizao.project.business.workOrder.domain.BizWorkOrderDetail;
 import cn.ezhizao.project.business.workOrder.service.IBizWorkOrderDetailService;
 import cn.ezhizao.project.business.workOrder.service.IBizWorkOrderService;
 import cn.ezhizao.project.system.domain.SysUser;
 import cn.ezhizao.project.system.service.ISysUserService;
-import cn.ezhizao.project.business.upgrade.domain.BizArchiveInputDetailUpdate;
-import cn.ezhizao.project.business.upgrade.domain.BizWorkOrderDetailUpdate;
-import cn.ezhizao.project.business.upgrade.domain.BizWorkOrderUpdate;
 import cn.ezhizao.project.business.upgrade.service.IBizArchiveInputDetailUpdateService;
 import cn.ezhizao.project.business.upgrade.service.IBizWorkOrderDetailUpdateService;
 import cn.ezhizao.project.business.upgrade.service.IBizWorkOrderUpdateService;
@@ -37,7 +36,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 import cn.ezhizao.project.business.upgrade.mapper.BizArchiveInputTempMapper;
-import cn.ezhizao.project.business.upgrade.domain.BizArchiveInputUpdate;
 import cn.ezhizao.project.business.upgrade.service.IBizArchiveInputTempService;
 
 /**
@@ -726,4 +724,91 @@ public class BizArchiveInputTempServiceImpl extends ServiceImpl<BizArchiveInputT
         List<BizArchiveInputDetail> bizArchiveInputDetailList = bizArchiveInputDetailUpdateService.selectByUpgradeId(query2);
         bizArchiveInputDetailService.saveBatch(bizArchiveInputDetailList);
     }
+
+    @Override
+    public Map<String,List<importCheckModel>> checkInput(List<OrderExcelImportLoopModel> orderList) {
+        importCheckModel checkmodel = null;
+        //结束月小于当前时间
+        List<importCheckModel> endMonthList = new ArrayList<>();
+        //开始时间大于当前时间
+        List<importCheckModel> startMonthList = new ArrayList<>();
+
+        List<importCheckModel> checkModelList = new ArrayList<>();
+        for(OrderExcelImportLoopModel model : orderList){
+            String companyName = model.getCompanyName();
+
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+            Long taskId = 0L;
+
+            if ("是".equals(model.getKeepAccount())) {
+                checkmodel = new importCheckModel();
+                checkmodel.setCompanyName(companyName);
+                checkmodel.setContractNo(model.getContractNo());
+                checkmodel.setTaskType("代理记账");
+                checkmodel.setStartMonth(model.getKeepAccountStartMonth());
+                checkmodel.setEndMonth(model.getKeepAccountEndMonth());
+                checkModelList.add(checkmodel);
+            }
+            if ("是".equals(model.getSocialSecurity())) {
+                checkmodel = new importCheckModel();
+                checkmodel.setCompanyName(companyName);
+                checkmodel.setContractNo(model.getContractNo());
+                checkmodel.setTaskType("社保");
+                checkmodel.setStartMonth(model.getSocialSecurityStartMonth());
+                checkmodel.setEndMonth(model.getSocialSecurityEndMonth());
+                checkModelList.add(checkmodel);
+            }
+            if ("是".equals(model.getHousingFund())) {
+                checkmodel = new importCheckModel();
+                checkmodel.setCompanyName(companyName);
+                checkmodel.setContractNo(model.getContractNo());
+                checkmodel.setTaskType("公积金");
+                checkmodel.setStartMonth(model.getHousingFundStartMonth());
+                checkmodel.setEndMonth(model.getHousingFundEndMonth());
+                checkModelList.add(checkmodel);
+            }
+            if ("是".equals(model.getReturnTax())) {
+                checkmodel = new importCheckModel();
+                checkmodel.setCompanyName(companyName);
+                checkmodel.setContractNo(model.getContractNo());
+                checkmodel.setTaskType("返税");
+                checkmodel.setStartMonth(model.getReturnTaxStartMonth());
+                checkmodel.setEndMonth(model.getReturnTaxEndMonth());
+                checkModelList.add(checkmodel);
+            }
+        }
+
+        // 同类型分组
+        Map<String, List<importCheckModel>> groupMap = new HashMap<>();
+        for (importCheckModel groupModel : checkModelList) {
+            String key = groupModel.getCompanyName() + "-" + groupModel.getTaskType();
+            List<importCheckModel> subGroupList = groupMap.get(key);
+            if (subGroupList == null) {
+                subGroupList = new ArrayList<>();
+            }
+            subGroupList.add(groupModel);
+            groupMap.put(key, subGroupList);
+        }
+        for(List<importCheckModel> model:groupMap.values()){
+            List<importCheckModel> startList =
+                    model.stream()
+                            .sorted(Comparator.comparing(importCheckModel::getStartMonth))
+                            .collect(Collectors.toList());
+            List<importCheckModel> endList =
+                    model.stream()
+                            .sorted(Comparator.comparing(importCheckModel::getEndMonth))
+                            .collect(Collectors.toList());
+
+            if(endList.get(endList.size()-1).getEndMonth().compareTo(new Date()) < 0){
+                endMonthList.add(endList.get(endList.size()-1));
+            }
+            if(startList.get(0).getStartMonth().compareTo(new Date()) > 0){
+            startMonthList.add(startList.get(0));
+            }
+        }
+        Map<String,List<importCheckModel>> map = new HashMap<>();
+        map.put("startMonth",startMonthList);
+        map.put("endMonth",endMonthList);
+        return map;
+    }
 }

+ 4 - 0
src/main/java/cn/ezhizao/project/business/upgrade/service/impl/BizWorkOrderUpdateServiceImpl.java

@@ -95,4 +95,8 @@ public class BizWorkOrderUpdateServiceImpl  extends ServiceImpl<BizWorkOrderUpda
     public List<BizWorkOrder> getNewOrder() {
         return bizWorkOrderUpdateMapper.getNewOrder();
     }
+    @Override
+    public List<BizWorkOrder> getStopTaskOrder() {
+        return bizWorkOrderUpdateMapper.getNewOrder();
+    }
 }

+ 6 - 3
src/main/resources/mybatis/business/BizWorkOrderUpdateMapper.xml

@@ -84,7 +84,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         left join biz_task_type_detail t4 on t4.id = t1.task_type_detail_id
         left join sys_user t5 on t5.user_id = t1.service_id
         <trim prefix=" WHERE" suffix="" suffixOverrides="AND">
-            orderupdate.id is null and t1.type = 1
+            orderupdate.id is null and t1.type = 1 and t1.deleted = 0
             <if test="tenantId != null "> AND t1.tenant_id = #{tenantId}</if>
             <if test="companyName != null and companyName != '' "> AND t2.name like concat('%', #{companyName}, '%')</if>
         </trim>
@@ -93,7 +93,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         SELECT count(*) FROM biz_work_order t1
         left join biz_work_order_update orderupdate on orderupdate.id = t1.id and orderupdate.deleted = 0
         <trim prefix=" WHERE" suffix="" suffixOverrides="AND">
-            orderupdate.id is null and t1.type = 1
+            orderupdate.id is null and t1.type = 1 and t1.deleted = 0
             <if test="tenantId != null "> AND t1.tenant_id = #{tenantId}</if>
         </trim>
     </select>
@@ -120,6 +120,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </trim>
     </delete>
     <select id="getNewOrder" resultType="cn.ezhizao.project.business.workOrder.domain.BizWorkOrder">
-        select *from biz_work_order_update where is_new = 1
+        select *from biz_work_order_update where is_new = 1 and is_stop = 0;
+    </select>
+    <select id="getStopTaskOrder" resultType="cn.ezhizao.project.business.workOrder.domain.BizWorkOrder">
+        select *from biz_work_order_update where is_new = 1 and is_stop = 1;
     </select>
 </mapper>