Переглянути джерело

Merge branch 'develop' of http://132.232.206.88:3000/lift-manager/lift-server into feature-wcz

wcz 5 роки тому
батько
коміт
aa0be2b0cb

+ 2 - 6
lift-business-service/src/main/java/cn/com/ty/lift/business/maintenance/controller/MaintenanceController.java

@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
 import javax.validation.Valid;
+import java.time.LocalDate;
 import java.util.List;
 
 /**
@@ -68,12 +69,7 @@ public class MaintenanceController {
      */
     @PostMapping("generate/plan")
     public RestResponse generatePlan(@Valid @RequestBody MaintenanceGenerateRequest request) {
-        boolean result = maintenancePlanService.insertBatch(request);
-        if (result) {
-            return RestResponse.success(null, MessageUtils.get("msg.add.success"));
-        } else {
-            return RestResponse.fail(MessageUtils.get("msg.add.fail"));
-        }
+        return maintenancePlanService.insertBatch(request);
     }
 
     /**

+ 67 - 15
lift-business-service/src/main/java/cn/com/ty/lift/business/maintenance/service/MaintenancePlanService.java

@@ -1,5 +1,6 @@
 package cn.com.ty.lift.business.maintenance.service;
 
+import cn.com.ty.lift.business.framework.util.MessageUtils;
 import cn.com.ty.lift.business.maintenance.dao.entity.model.request.MaintenanceDetailRequest;
 import cn.com.ty.lift.business.maintenance.dao.entity.model.request.MaintenanceGenerateRequest;
 import cn.com.ty.lift.business.project.dao.entity.ProjectLiftRelevance;
@@ -13,6 +14,7 @@ import cn.com.ty.lift.business.project.dao.entity.Project;
 import cn.com.ty.lift.business.project.service.ProjectService;
 import cn.com.ty.lift.common.base.ExportRequest;
 import cn.com.ty.lift.common.export.ExportUtils;
+import cn.com.xwy.boot.web.dto.RestResponse;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -60,8 +62,6 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
         put("planDate", "计划时间");
     }};
 
-    private QueryWrapper<MaintenancePlan> queryWrapper = new QueryWrapper<>();
-
     //保养类型 1.半月,2.季度,3.半年,4.全年
     private int[] maintenanceType = {1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 4};
 
@@ -83,6 +83,7 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
      * @date 2020/1/2 9:43 上午
      */
     public List<MaintenancePlan> detailList(MaintenanceDetailRequest request) {
+        QueryWrapper<MaintenancePlan> queryWrapper = new QueryWrapper<>();
         LambdaQueryWrapper<MaintenancePlan> lambdaQueryWrapper = queryWrapper.lambda();
         lambdaQueryWrapper.eq(MaintenancePlan::getMtCompanyId, request.getMtCompanyId());
         lambdaQueryWrapper.eq(MaintenancePlan::getProjectId, request.getProjectId());
@@ -91,15 +92,42 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
         return list(lambdaQueryWrapper);
     }
 
+    /**
+     * @return 判断结果
+     * @description 新增维保计划前置判断条件
+     * @date 2020/1/9 3:56 下午
+     */
+    public boolean preJudgment(List<MaintenancePlan> planList, LocalDate firstTime) {
+        Collection<Project> projects = projectService.getProjectList(planList);
+        for (Project entry : projects) {
+            //若首保时间早于项目开始时间,则不能新增维保计划
+            boolean startResult = firstTime.isBefore(entry.getStartDate());
+            if (startResult) return false;
+            //若首保时间晚于项目结束时间,也不能新增维保计划
+            boolean endResult = firstTime.isAfter(entry.getEndDate());
+            if (endResult) return false;
+        }
+        return true;
+    }
+
     /**
      * @param request 电梯列表
      * @return 是否成功
      * @description 批量生成维保计划
      * @date 2019/12/16 2:14 PM
      */
-    public boolean insertBatch(MaintenanceGenerateRequest request) {
+    public RestResponse insertBatch(MaintenanceGenerateRequest request) {
+        boolean result = preJudgment(request.getPlanList(), request.getFirstTime());
+        if (!result){
+            return RestResponse.fail(MessageUtils.get("msg.error.time"));
+        }
         List<MaintenancePlan> resultList = addPlan(request);
-        return saveBatch(resultList, resultList.size());
+        boolean ret = saveBatch(resultList, resultList.size());
+        if (ret) {
+            return RestResponse.success(null, MessageUtils.get("msg.add.success"));
+        } else {
+            return RestResponse.fail(MessageUtils.get("msg.add.fail"));
+        }
     }
 
     /**
@@ -110,7 +138,7 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
      */
     public List<MaintenancePlan> addPlan(MaintenanceGenerateRequest request) {
         List<MaintenancePlan> plans = request.getPlanList();
-        Collection<Project> projects = projectService.getProjectList(request);
+        Collection<Project> projects = projectService.getProjectList(request.getPlanList());
         //获取保养间隔
         int interval = request.getInterval();
         //获取从第几期开始
@@ -164,6 +192,7 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
         //返回维保计划列表
         List<MaintenancePlan> planList = new ArrayList<>();
         int times = getTimes(interval, beginTime, endTime);
+        log.info("总期数{},从第几期开始{},间隔{},开始时间{},结束时间{}", times, periods, interval, beginTime, endTime);
         int length = maintenanceType.length;
         for (int i = 0; i <= times; i++) {
             MaintenancePlan entry = new MaintenancePlan();
@@ -187,7 +216,7 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
                 entry.setPlanDate(planDate);
             }
             entry.setCount(periods);
-            System.out.printf("i:%s,期数:%s,类型:%s,计划时间:%s,%s", (i + 1), periods, entry.getType(), entry.getPlanDate(), "\n");
+            log.info("每期期数{},类型{},计划时间{}", periods, entry.getType(), entry.getPlanDate());
             periods++;
             planList.add(entry);
         }
@@ -201,6 +230,7 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
      * @date 2020/1/7 2:40 下午
      */
     public List<MaintenancePlan> findPlanList(MaintenanceModifyRequest request){
+        QueryWrapper<MaintenancePlan> queryWrapper = new QueryWrapper<>();
         LambdaQueryWrapper<MaintenancePlan> lambdaQueryWrapper = queryWrapper.lambda();
         lambdaQueryWrapper.eq(MaintenancePlan::getLiftId, request.getLiftId());
         lambdaQueryWrapper.eq(MaintenancePlan::getProjectId, request.getProjectId());
@@ -214,16 +244,35 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
      * @param mtCompanyId 公司id
      * @param liftId 电梯id
      * @return 维保计划列表
-     * @description 获取电梯所有维保计划
+     * @description 获取当前期数后的维保计划列表
      * @date 2020/1/8 10:33 上午
      */
-    public List<MaintenancePlan> findAllPlanList(Long mtCompanyId, Long liftId) {
+    public List<MaintenancePlan> findPlanList(Long mtCompanyId, Long liftId, Integer periods) {
+        QueryWrapper<MaintenancePlan> queryWrapper = new QueryWrapper<>();
         LambdaQueryWrapper<MaintenancePlan> lambdaQueryWrapper = queryWrapper.lambda();
-        lambdaQueryWrapper.eq(MaintenancePlan::getMtCompanyId,mtCompanyId);
-        lambdaQueryWrapper.eq(MaintenancePlan::getLiftId,liftId);
+        lambdaQueryWrapper.eq(MaintenancePlan::getMtCompanyId, mtCompanyId);
+        lambdaQueryWrapper.eq(MaintenancePlan::getLiftId, liftId);
+        lambdaQueryWrapper.ge(MaintenancePlan::getCount, periods);
         return list(lambdaQueryWrapper);
     }
 
+    /**
+     * @param mtCompanyId 公司id
+     * @param liftId 电梯id
+     * @param periods 期数
+     * @return 维保计划
+     * @description 获取当前期数的计划时间
+     * @date 2020/1/9 5:06 下午
+     */
+    public MaintenancePlan detail(Long mtCompanyId, Long liftId, Integer periods){
+        QueryWrapper<MaintenancePlan> queryWrapper = new QueryWrapper<>();
+        LambdaQueryWrapper<MaintenancePlan> lambdaQueryWrapper = queryWrapper.lambda();
+        lambdaQueryWrapper.eq(MaintenancePlan::getMtCompanyId, mtCompanyId);
+        lambdaQueryWrapper.eq(MaintenancePlan::getLiftId, liftId);
+        lambdaQueryWrapper.eq(MaintenancePlan::getCount, periods);
+        MaintenancePlan plan = getOne(lambdaQueryWrapper);
+        return plan;
+    }
 
     /**
      * @param request 修改维保计划请求
@@ -270,15 +319,17 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
             //按照修改时间重新生成计划
             plans = generatePlan(plan, periods, interval, updateTime, endDate);
         } else if (isNull && ObjectUtil.isNotEmpty(updateInterval)) {
-            //获取电梯所有维保计划,并清除计划
-            planList = findAllPlanList(mtCompanyId, liftId);
+            //获取当前期数后的维保计划列表,并清除计划
+            planList = findPlanList(mtCompanyId, liftId, periods);
+            MaintenancePlan entity = detail(request.getMtCompanyId(), request.getLiftId(), request.getPeriods());
+            LocalDate planDate = entity.getPlanDate();
             removeByIds(planList.stream().map(MaintenancePlan::getId).collect(Collectors.toList()));
             //更新项目电梯关联表保养间隔
             projectLiftRelevanceService.modifyPlanInterval(request.getRelevanceId(), updateInterval);
-            plans = generatePlan(plan, periods, updateInterval, entry.getFirstTime(), endDate);
+            plans = generatePlan(plan, periods, updateInterval, planDate, endDate);
         } else if (isNotNull && ObjectUtil.isNotEmpty(updateInterval)) {
-            //获取当前时间后的维保计划列表,并清除计划
-            planList = findPlanList(request);
+            //获取当前期数后的维保计划列表,并清除计划
+            planList = findPlanList(mtCompanyId, liftId, periods);
             removeByIds(planList.stream().map(MaintenancePlan::getId).collect(Collectors.toList()));
             //更新项目电梯关联表保养间隔
             projectLiftRelevanceService.modifyPlanInterval(request.getRelevanceId(), updateInterval);
@@ -296,6 +347,7 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
      * @date 2019/12/28 2:00 PM
      */
     public boolean removeMaintenancePlan(Long mtCompanyId, List<Long> liftList) {
+        QueryWrapper<MaintenancePlan> queryWrapper = new QueryWrapper<>();
         LambdaQueryWrapper<MaintenancePlan> lambdaQueryWrapper = queryWrapper.lambda();
         lambdaQueryWrapper.eq(MaintenancePlan::getMtCompanyId, mtCompanyId);
         lambdaQueryWrapper.in(MaintenancePlan::getLiftId, liftList);

+ 3 - 2
lift-business-service/src/main/java/cn/com/ty/lift/business/project/service/ProjectLiftRelevanceService.java

@@ -44,11 +44,12 @@ public class ProjectLiftRelevanceService extends ServiceImpl<ProjectLiftRelevanc
      * @date 2019/12/5 2:16 PM
      */
     public RestResponse logicDelete(ProjectLiftRelevance entry) {
+        entry.setDeleteFlag(1);
         boolean result = updateById(entry);
         if (!result) {
-            return RestResponse.fail(MessageUtils.get("msg.modify.fail"));
+            return RestResponse.fail(MessageUtils.get("msg.logic.delete.fail"));
         }
-        return RestResponse.success(null, MessageUtils.get("msg.modify.success"));
+        return RestResponse.success(null, MessageUtils.get("msg.logic.delete.success"));
     }
 
     /**

+ 2 - 3
lift-business-service/src/main/java/cn/com/ty/lift/business/project/service/ProjectService.java

@@ -137,13 +137,12 @@ public class ProjectService extends ServiceImpl<ProjectMapper,Project> {
     }
 
     /**
-     * @param request 项目id列表
+     * @param plans 项目id列表
      * @return 项目列表
      * @description 获取项目列表
      * @date 2020/1/8 9:06 下午
      */
-    public Collection<Project> getProjectList(MaintenanceGenerateRequest request) {
-        List<MaintenancePlan> plans = request.getPlanList();
+    public Collection<Project> getProjectList(List<MaintenancePlan> plans) {
         List<Long> projectIdList = plans.stream().map(MaintenancePlan::getProjectId).collect(Collectors.toList());
         return listByIds(projectIdList);
     }

+ 4 - 1
lift-business-service/src/main/resources/locale/response.properties

@@ -5,6 +5,8 @@ msg.add.success=\u65B0\u589E\u6210\u529F
 msg.add.fail=\u65B0\u589E\u5931\u8D25
 msg.modify.success=\u4FEE\u6539\u6210\u529F
 msg.modify.fail=\u4FEE\u6539\u5931\u8D25
+msg.logic.delete.success=\u5220\u9664\u6210\u529F
+msg.logic.delete.fail=\u5220\u9664\u5931\u8D25
 msg.add.batch.success=\u6279\u91CF\u65B0\u589E\u6210\u529F
 msg.add.batch.fail=\u6279\u91CF\u65B0\u589E\u5931\u8D25
 msg.modify.batch.success=\u6279\u91CF\u4FEE\u6539\u6210\u529F
@@ -17,4 +19,5 @@ msg.lift.company.exist=\u5176\u4ED6\u516C\u53F8\u5DF2\u6709\u6B64\u7535\u68AF\uF
 msg.pre.judge=\u524D\u7F6E\u6821\u9A8C\u901A\u8FC7
 notEmpty={0}\u4E0D\u80FD\u4E3A\u7A7A
 msg.project.status.update=\u9879\u76EE\u9501\u5B9A\u72B6\u6001\u66F4\u65B0\u6210\u529F\uFF0C\u9879\u76EE\u4E0B\u6682\u65F6\u6CA1\u6709\u7535\u68AF
-msg.company.lift.empty=\u8BE5\u516C\u53F8\u4E0B\u6682\u65F6\u6CA1\u6709\u7535\u68AF
+msg.company.lift.empty=\u8BE5\u516C\u53F8\u4E0B\u6682\u65F6\u6CA1\u6709\u7535\u68AF
+msg.error.time=\u9996\u4FDD\u65F6\u95F4\u5E94\u5728\u9879\u76EE\u5F00\u59CB\u65F6\u95F4\u548C\u7ED3\u675F\u65F6\u95F4\u8303\u56F4\u5185

+ 3 - 4
lift-business-service/src/main/resources/mapper/lift/LiftMapper.xml

@@ -80,7 +80,7 @@
         LEFT JOIN project_lift_relevance plr ON pclr.mt_company_id = plr.mt_company_id and pclr.lift_id = plr.lift_id
         LEFT JOIN project p ON pclr.mt_company_id = p.mt_company_id and plr.project_id = p.id
         LEFT JOIN lift_brand lb ON l.lift_brand = lb.code
-		WHERE 1=1 AND plr.delete_flag = '0'
+		WHERE plr.delete_flag = '0'
         <if test="request.mtCompanyId!=null and request.mtCompanyId!=''">
 			AND pclr.mt_company_id = #{request.mtCompanyId,jdbcType=BIGINT}
         </if>
@@ -124,7 +124,7 @@
           LEFT JOIN lift_brand lb ON l.lift_brand = lb.code
 		  LEFT JOIN user_info ui ON plr.worker_id = ui.user_id
           LEFT JOIN platform_company_lift_relevance pclr ON plr.lift_id = pclr.lift_id AND pclr.id = plr.relevance_id
-        WHERE 1=1 AND plr.delete_flag = '0'
+        WHERE plr.delete_flag = '0'
 		<if test="request.mtCompanyId!=null and request.mtCompanyId!=''">
 			AND plr.mt_company_id = #{request.mtCompanyId,jdbcType=BIGINT}
 		</if>
@@ -151,8 +151,7 @@
 		LEFT JOIN lift_brand lb ON l.lift_brand = lb.code
 		LEFT JOIN user_info ui ON plr.worker_id = ui.user_id
 		LEFT JOIN platform_company_lift_relevance pclr ON plr.lift_id = pclr.lift_id AND pclr.id = plr.relevance_id
-		WHERE 1=1
-		AND pclr.lift_company_status != '1'
+		WHERE pclr.lift_company_status != '1'
         AND plr.delete_flag = '0'
 		<if test="request.mtCompanyId!=null and request.mtCompanyId!=''">
 			AND plr.mt_company_id != #{request.mtCompanyId,jdbcType=BIGINT}

+ 3 - 2
lift-business-service/src/main/resources/mapper/maintenance/MaintenancePlanMapper.xml

@@ -20,7 +20,8 @@
 		status
 	</sql>
 
-	<select id="findByCondition" resultType="cn.com.ty.lift.business.maintenance.dao.entity.model.response.MaintenancePlanResponse" parameterType="cn.com.ty.lift.business.maintenance.dao.entity.model.request.MaintenancePlanRequest">
+	<select id="findByCondition" resultType="cn.com.ty.lift.business.maintenance.dao.entity.model.response.MaintenancePlanResponse"
+			parameterType="cn.com.ty.lift.business.maintenance.dao.entity.model.request.MaintenancePlanRequest">
 		SELECT
 		mp.id                       AS id,
 		if(isnull(mp.id), '0', '1') AS status,
@@ -45,7 +46,7 @@
 		LEFT JOIN project p ON plr.mt_company_id = p.mt_company_id AND plr.project_id = p.id
 		LEFT JOIN maintenance_plan mp ON plr.mt_company_id = mp.mt_company_id AND plr.project_id = mp.project_id
 		AND mp.status = 0 AND mp.plan_date = (SELECT MIN(plan_date) FROM maintenance_plan WHERE status = 0
-		AND mt_company_id = #{request.mtCompanyId,jdbcType=VARCHAR}) AND plr.lift_id = mp.lift_id
+		AND mt_company_id = #{request.mtCompanyId,jdbcType=VARCHAR} AND lift_id = plr.lift_id) AND plr.lift_id = mp.lift_id
 		LEFT JOIN user_info ui ON plr.worker_id = ui.user_id
 		LEFT JOIN region r ON p.region_id = r.id
 		WHERE plr.mt_company_id = #{request.mtCompanyId,jdbcType=VARCHAR}