yang il y a 4 ans
Parent
commit
fbbc5a2256

+ 39 - 9
lift-business-service/src/main/java/cn/com/ty/lift/business/contract/controller/ContractController.java

@@ -7,20 +7,15 @@ import cn.com.ty.lift.business.contract.dao.entity.model.response.ContractsHisto
 import cn.com.ty.lift.business.contract.service.ContractHistoryService;
 import cn.com.ty.lift.business.contract.service.ContractService;
 import cn.com.ty.lift.business.framework.util.MessageUtils;
-import cn.com.ty.lift.common.base.ExportRequest;
 import cn.com.ty.lift.common.verify.Val;
 import cn.com.ty.lift.common.verify.Validation;
 import cn.com.ty.lift.common.verify.Validator;
 import cn.com.xwy.boot.web.dto.RestResponse;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
-import java.util.List;
 import java.util.Map;
 
 /**
@@ -131,7 +126,7 @@ public class ContractController {
     @PostMapping("detail")
     @Validation(fields = {"id"})
     public RestResponse detail(@Val @RequestBody ContractRequest request) {
-        Map<String,Object> resultMap = contractService.detail(request.getId());
+        Map<String, Object> resultMap = contractService.detail(request.getId());
         return RestResponse.success(resultMap, MessageUtils.get("msg.query.detail.success"));
     }
 
@@ -140,7 +135,42 @@ public class ContractController {
      */
     @PostMapping("export")
     @Validation(fields = {"mtCompanyId"})
-    public  void export(@Val @RequestBody ContractRequest request,HttpServletResponse response) {
-        contractService.export(request,response);
+    public void export(@Val @RequestBody ContractRequest request, HttpServletResponse response) {
+        contractService.export(request, response);
     }
+
+
+    /**
+     * 维保公司ID查询项目和大修的结果集
+     *
+     * @param mtCompanyId
+     * @return
+     */
+    @PostMapping("/getIds/{id}")
+    public RestResponse getIds(@PathVariable("id") Long mtCompanyId) {
+        return RestResponse.success(contractService.getIds(mtCompanyId), MessageUtils.get("msg.query.detail.success"));
+    }
+
+    /**
+     * 获取没有关联合同的项目
+     *
+     * @param mtCompanyId 维保公司ID
+     * @return
+     */
+    @PostMapping("/getProjects/{id}")
+    public RestResponse getProjects(@PathVariable("id") Long mtCompanyId) {
+        return RestResponse.success(contractService.getProjects(mtCompanyId), MessageUtils.get("msg.query.detail.success"));
+    }
+
+    /**
+     * 获取没有关联项目的大修
+     *
+     * @param mtCompanyId
+     * @return
+     */
+    @PostMapping("/getCapitalRepairs/{id}")
+    public RestResponse getCapitalRepairs(@PathVariable("id") Long mtCompanyId) {
+        return RestResponse.success(contractService.getCapitalRepairs(mtCompanyId), MessageUtils.get("msg.query.detail.success"));
+    }
+
 }

+ 110 - 18
lift-business-service/src/main/java/cn/com/ty/lift/business/contract/service/ContractService.java

@@ -32,6 +32,7 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.stream.Collectors;
 
 import static java.math.BigDecimal.ZERO;
 
@@ -42,6 +43,7 @@ import static java.math.BigDecimal.ZERO;
  */
 @Service
 @Slf4j
+@SuppressWarnings("all")
 public class ContractService extends ServiceImpl<ContractsMapper, Contracts> {
 
     @Resource
@@ -74,20 +76,20 @@ public class ContractService extends ServiceImpl<ContractsMapper, Contracts> {
     }
 
 
-
     /**
      * @param request 新增合同数据项
      * @return 1.成功, 0.失败, 消息描述
      * @description 新增合同
      * @date 2019/12/7 3:31 PM
      */
+    // TODO: 2021/1/21  合同问题
     @Transactional(rollbackFor = Exception.class)
     public RestResponse add(ContractRequest request) {
         Contracts contracts = request.getContracts();
         Long projectId = request.getProjectId();
         Integer contractType = contracts.getType();
         if (Objects.isNull(projectId)) {
-            if (5==contractType) {
+            if (5 == contractType) {
                 //插入大修项目
                 CapitalRepair repair = new CapitalRepair();
                 repair.setProjectName(request.getProjectName());
@@ -141,12 +143,12 @@ public class ContractService extends ServiceImpl<ContractsMapper, Contracts> {
         return RestResponse.success(null, MessageUtils.get("msg.add.success"));
     }
 
-   /**
-    * @param request 续签合同数据项
-    * @return 1.成功, 0.失败, 消息描述
-    * @description 续签合同
-    * @date 2020/5/3 10:48 上午
-    */
+    /**
+     * @param request 续签合同数据项
+     * @return 1.成功, 0.失败, 消息描述
+     * @description 续签合同
+     * @date 2020/5/3 10:48 上午
+     */
     @Transactional(rollbackFor = Exception.class)
     public RestResponse renew(ContractRequest request) {
         Contracts contracts = request.getContracts();
@@ -287,10 +289,11 @@ public class ContractService extends ServiceImpl<ContractsMapper, Contracts> {
 
     /**
      * 合同导出操作
+     *
      * @param contractRequest :合同导出时的参数筛选部分
      * @return
      */
-    public void  export(ContractRequest contractRequest, HttpServletResponse response) {
+    public void export(ContractRequest contractRequest, HttpServletResponse response) {
         /**
          * 导出数据的集合
          */
@@ -321,23 +324,23 @@ public class ContractService extends ServiceImpl<ContractsMapper, Contracts> {
         /**
          * 维保和大修数据
          */
-        List<ContractExportDto> contractAllList=contractsMapper.findAllContracts(contractRequest);
+        List<ContractExportDto> contractAllList = contractsMapper.findAllContracts(contractRequest);
 
         /**
          * 临修数据
          */
-        List<ContractExportDto> contractTemList=contractsMapper.findAllErContracts(contractRequest);
+        List<ContractExportDto> contractTemList = contractsMapper.findAllErContracts(contractRequest);
 
 
         /**
          * 维保/大修合同管理数据
          */
-        List<ContractManageExportDto> findAllContractsManageData=contractsMapper.findAllContractsManageData(contractRequest);
+        List<ContractManageExportDto> findAllContractsManageData = contractsMapper.findAllContractsManageData(contractRequest);
 
         /**
          * 急修数据
          */
-        List<ContractManageExportDto> findAllErContractsManageData=contractsMapper.findAllErContractsManageData(contractRequest);
+        List<ContractManageExportDto> findAllErContractsManageData = contractsMapper.findAllErContractsManageData(contractRequest);
 
         /**
          * 数据合并
@@ -354,7 +357,7 @@ public class ContractService extends ServiceImpl<ContractsMapper, Contracts> {
          */
         ExcelWriter writer = new ExcelWriter(true, "收款管理");
         writer.setHeaderAlias(headerAlias);
-        writer.write(contractAllList,true);
+        writer.write(contractAllList, true);
         writer.autoSizeColumnAll();
         writer.setSheet("合同管理");
         Map<String, String> headerAliasE = new LinkedHashMap<>();
@@ -362,9 +365,9 @@ public class ContractService extends ServiceImpl<ContractsMapper, Contracts> {
         headerAliasE.put("memberName", "客户名称");
         headerAliasE.put("regionName", "区域");
         headerAliasE.put("contractCode", "合同编号");
-        headerAliasE.put("source","来源");
-        headerAliasE.put("type","合同类型");
-        headerAliasE.put("starDate","开始时间");
+        headerAliasE.put("source", "来源");
+        headerAliasE.put("type", "合同类型");
+        headerAliasE.put("starDate", "开始时间");
         headerAliasE.put("endDate", "结束时间");
         headerAliasE.put("liftNum", "台量");
         headerAliasE.put("moneys", "金额");
@@ -374,7 +377,7 @@ public class ContractService extends ServiceImpl<ContractsMapper, Contracts> {
         headerAliasE.put("NoPayMoney", "未收金额");
         headerAliasE.put("partsRules", "配件条款");
         writer.setHeaderAlias(headerAliasE);
-        writer.write(findAllContractsManageData,true);
+        writer.write(findAllContractsManageData, true);
         writer.autoSizeColumnAll();
         response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
         String fileName = DateUtils.generateCode() + ".xlsx";
@@ -388,4 +391,93 @@ public class ContractService extends ServiceImpl<ContractsMapper, Contracts> {
             log.error("合同数据数据导出失败", e);
         }
     }
+
+    public List<Map<String, Object>> getIds(Long mtCompanyId) {
+
+        //查询项目结果集
+        List<Project> projects = projectService.getBaseMapper().selectList(
+                new QueryWrapper<Project>()
+                        .lambda()
+                        .eq(Project::getMtCompanyId, mtCompanyId)
+                        //1.尚未开始 2:服务中 4.逾期
+                        .in(Project::getProjectStatus, 1, 2, 4)
+                        .select(Project::getId, Project::getProjectName, Project::getAddress)
+        );
+        //查询大修结果集
+        List<CapitalRepair> capitalRepairs = capitalRepairService.getBaseMapper().selectList(
+                new QueryWrapper<CapitalRepair>()
+                        .lambda()
+                        .eq(CapitalRepair::getMtCompanyId, mtCompanyId)
+                        //1:尚未开始
+                        .eq(CapitalRepair::getProjectStatus, 1)
+                        .select(CapitalRepair::getId, CapitalRepair::getProjectName, CapitalRepair::getProjectAddress)
+        );
+
+        ArrayList<Map<String, Object>> mapArrayList = new ArrayList<>();
+
+        for (Project project : projects) {
+            Map<String, Object> map = new HashMap() {{
+                put("id", project.getId().toString());
+                put("name", project.getProjectName());
+                put("address", project.getAddress());
+                put("isCapitalRepair", false);
+            }};
+            mapArrayList.add(map);
+        }
+        for (CapitalRepair capitalRepair : capitalRepairs) {
+            Map<String, Object> map = new HashMap() {{
+                put("id", capitalRepair.getId().toString());
+                put("name", capitalRepair.getProjectName());
+                put("address", capitalRepair.getProjectAddress());
+                put("isCapitalRepair", true);
+            }};
+            mapArrayList.add(map);
+        }
+
+        return mapArrayList;
+    }
+
+    public List<Project> getProjects(Long mtCompanyId) {
+
+        //查询当前维保公司下的维保项目的合同列表
+        List<Long> list = contractsMapper.selectList(
+                new QueryWrapper<Contracts>()
+                        .lambda()
+                        .eq(Contracts::getMtCompanyId, mtCompanyId)
+                        .ne(Contracts::getType, 5)
+                        .select(Contracts::getProjectId)).stream().map(n -> n.getProjectId()).collect(Collectors.toList());
+        //查询不包含合同的项目
+        List<Project> projects = projectService.getBaseMapper().selectList(
+                new QueryWrapper<Project>()
+                        .lambda()
+                        .eq(Project::getMtCompanyId, mtCompanyId)
+                        .in(Project::getProjectStatus, 1, 2, 4)
+                        .notIn(Project::getId, list)
+        );
+
+        return projects;
+
+    }
+
+    public List<CapitalRepair> getCapitalRepairs(Long mtCompanyId) {
+
+        //查询当前维保公司下的维保项目的合同列表
+        List<Long> list = contractsMapper.selectList(
+                new QueryWrapper<Contracts>()
+                        .lambda()
+                        .eq(Contracts::getMtCompanyId, mtCompanyId)
+                        .eq(Contracts::getType, 5)
+                        .select(Contracts::getProjectId)).stream().map(n -> n.getProjectId()).collect(Collectors.toList());
+
+        //查询不包含合同的大修项目
+        List<CapitalRepair> capitalRepairs = capitalRepairService.getBaseMapper().selectList(
+                new QueryWrapper<CapitalRepair>()
+                        .lambda()
+                        .eq(CapitalRepair::getMtCompanyId, mtCompanyId)
+                        .eq(CapitalRepair::getProjectStatus, 1)
+                        .notIn(CapitalRepair::getId, list)
+        );
+
+        return capitalRepairs;
+    }
 }

+ 29 - 17
lift-business-service/src/main/java/cn/com/ty/lift/business/library/service/PlatformCompanyLiftRelevanceService.java

@@ -25,6 +25,7 @@ import cn.com.xwy.boot.web.dto.RestResponse;
 import cn.hutool.core.collection.CollUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.jms.core.JmsMessagingTemplate;
 import org.springframework.stereotype.Service;
@@ -32,6 +33,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
 import javax.annotation.Resource;
+import java.time.LocalDateTime;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -130,7 +132,7 @@ public class PlatformCompanyLiftRelevanceService extends ServiceImpl<PlatformCom
      * @description 删除电梯
      * @date 2020/2/25 4:08 下午
      */
-    public boolean remove(Long id){
+    public boolean remove(Long id) {
         return removeById(id);
     }
 
@@ -165,12 +167,12 @@ public class PlatformCompanyLiftRelevanceService extends ServiceImpl<PlatformCom
 
     /**
      * @param mtCompanyId 公司id
-     * @param projectId 项目id
+     * @param projectId   项目id
      * @return List<PlatformCompanyLiftRelevance> 公司电梯关联列表
      * @description 获取公司电梯关联列表
      * @date 2020/1/11 3:06 下午
      */
-    public List<PlatformCompanyLiftRelevance> getCompanyLiftList(Long mtCompanyId, Long projectId){
+    public List<PlatformCompanyLiftRelevance> getCompanyLiftList(Long mtCompanyId, Long projectId) {
         //根据项目id和公司id查询电梯列表
         List<ProjectLiftRelevance> liftList = projectLiftRelevanceService.findLiftList(mtCompanyId, projectId);
         Collection<Long> list = liftList.stream().map(ProjectLiftRelevance::getRelevanceId).collect(Collectors.toList());
@@ -179,7 +181,7 @@ public class PlatformCompanyLiftRelevanceService extends ServiceImpl<PlatformCom
     }
 
     /**
-     * @param projectId 项目ID
+     * @param projectId   项目ID
      * @param mtCompanyId 公司ID
      * @return
      * @description 停止服务消息推送
@@ -210,7 +212,7 @@ public class PlatformCompanyLiftRelevanceService extends ServiceImpl<PlatformCom
     }
 
     /**
-     * @param projectId 项目ID
+     * @param projectId   项目ID
      * @param mtCompanyId 公司ID
      * @return
      * @description 恢复服务消息推送
@@ -253,7 +255,7 @@ public class PlatformCompanyLiftRelevanceService extends ServiceImpl<PlatformCom
         Long mtCompanyId = request.getMtCompanyId();
         Project project = new Project();
         project.setId(projectId);
-        List<PlatformCompanyLiftRelevance> resultList = getCompanyLiftList(mtCompanyId,projectId);
+        List<PlatformCompanyLiftRelevance> resultList = getCompanyLiftList(mtCompanyId, projectId);
         switch (operate) {
             //恢复服务
             case 1:
@@ -342,11 +344,15 @@ public class PlatformCompanyLiftRelevanceService extends ServiceImpl<PlatformCom
             Integer liftStatus = lift.map(Lift::getLiftStatus).orElse(null);
             // 1:弃用 2:正常
             if (Objects.equals(1, liftStatus)) return RestResponse.fail(MessageUtils.get("msg.error.lift.status"));
-            entry.setLiftCompanyStatus(CommonEnum.LiftStatus.NORMAL.getCode());
-            updateById(entry);
+            update(Wrappers.<PlatformCompanyLiftRelevance>update()
+                    .set("update_date",LocalDateTime.now())
+                    .set("lift_company_status",CommonEnum.LiftStatus.NORMAL.getCode())
+                    .eq("lift_id",request.getLiftId()));
         } else {
-            entry.setLiftCompanyStatus(CommonEnum.LiftStatus.STOP_INSURANCE.getCode());
-            updateById(entry);
+            update(Wrappers.<PlatformCompanyLiftRelevance>update()
+                    .set("update_date",LocalDateTime.now())
+                    .set("lift_company_status",CommonEnum.LiftStatus.STOP_INSURANCE.getCode())
+                    .eq("lift_id",request.getLiftId()));
             //清除维保计划
             maintenancePlanService.cleanPlan(request.getMtCompanyId(), request.getLiftId());
         }
@@ -365,14 +371,19 @@ public class PlatformCompanyLiftRelevanceService extends ServiceImpl<PlatformCom
     public RestResponse batchStopInsurance(LiftRequest request) {
         //公司电梯关联表主键id列表
         List<Long> companyIdList = request.getRelevanceIdList();
-        //批量查询公司下电梯数据
-        List<PlatformCompanyLiftRelevance> list = baseMapper.selectBatchIds(companyIdList);
-        if (CollUtil.isEmpty(list)) {
+
+        //电梯号
+        List<Long> liftIds = request.getLiftList();
+
+        if (CollUtil.isEmpty(liftIds)) {
             return RestResponse.success();
         }
-        list.forEach(entry -> entry.setLiftCompanyStatus(CommonEnum.LiftStatus.STOP_INSURANCE.getCode()));
+
         //批量更新公司下电梯信息为停保
-        boolean result = updateBatchById(list);
+        boolean result = update(Wrappers.<PlatformCompanyLiftRelevance>update()
+                .set("update_date", LocalDateTime.now())
+                .set("lift_company_status", CommonEnum.LiftStatus.STOP_INSURANCE.getCode())
+                .in("lift_id",liftIds));
         if (!result) {
             return RestResponse.fail(MessageUtils.get("msg.modify.batch.fail"));
         }
@@ -390,10 +401,11 @@ public class PlatformCompanyLiftRelevanceService extends ServiceImpl<PlatformCom
 
     /**
      * 根据维保公司id和电梯id查找关联记录
-     * @author wcz
+     *
      * @param mtCompanyId 维保公司id
-     * @param liftId 电梯id
+     * @param liftId      电梯id
      * @return PlatformCompanyLiftRelevance
+     * @author wcz
      */
     public PlatformCompanyLiftRelevance findByMtCompanyAndLift(Long mtCompanyId, Long liftId) {
         QueryWrapper<PlatformCompanyLiftRelevance> queryWrapper = new QueryWrapper<>();

+ 5 - 0
lift-business-service/src/main/java/cn/com/ty/lift/business/maintenance/dao/entity/model/response/MaintenancePlanResponse.java

@@ -75,4 +75,9 @@ public class MaintenancePlanResponse {
      * 维保工
      */
     private String workerName;
+
+    /**
+     * 保养次数
+     */
+    private Integer count;
 }

+ 4 - 1
lift-business-service/src/main/java/cn/com/ty/lift/business/maintenance/dao/entity/model/response/MtRecordResponse.java

@@ -14,8 +14,9 @@ import java.util.List;
 
 /**
  * <p>保养信息返回体</p>
+ *
  * @author wcz
- * @since  2020/1/17
+ * @since 2020/1/17
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
@@ -112,4 +113,6 @@ public class MtRecordResponse extends MaintenanceRecord {
     private List<MtRecordImg> mtRecordImgs;
 
     private Evaluation evaluation;
+
+    private Integer count;
 }

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

@@ -67,7 +67,8 @@
 		p.project_code              AS projectCode,
 		pclr.lift_company_status    AS liftStatus,
 		r.area_name                 AS regionName,
-		ui.name                     AS workerName
+		ui.name                     AS workerName,
+		if(mp.count is NULL,0,if(mp.count>24,mp.count%24,mp.count) )  as `count`
 		FROM
 		project_lift_relevance plr
 		LEFT JOIN platform_company_lift_relevance pclr ON plr.mt_company_id = pclr.mt_company_id AND plr.lift_id = pclr.lift_id

+ 5 - 4
lift-business-service/src/main/resources/mapper/maintenance/MaintenanceRecordMapper.xml

@@ -215,6 +215,7 @@
     <select id="pageRecordByCondition" resultMap="BaseResultMap"
             parameterType="cn.com.ty.lift.business.maintenance.dao.entity.model.request.MtRecordRequest">
         SELECT
+        if(mp.count is NULL,0,if(mp.count>24,mp.count%24,mp.count) )  as `count`,
         mr.*,
         li.use_company_code,
         li.registration_code,
@@ -225,12 +226,13 @@
         TimeStampDiff(MINUTE ,mr.stop_date,mr.recovery_date) AS repair_diff
         FROM
         maintenance_record mr
+        LEFT JOIN maintenance_plan  mp on mr.mt_plan_id=mp.id
         LEFT JOIN lift li ON mr.lift_id = li.id
         LEFT JOIN user_info ui ON mr.worker_id1 = ui.user_id
         LEFT JOIN project pr ON mr.project_id = pr.id AND pr.mt_company_id = mr.mt_company_id
         LEFT JOIN evaluation ev ON mr.id = ev.record_id
         LEFT JOIN region r ON pr.region_id = r.id
-        WHERE ((status = '2' AND has_evaluate = '0') or (status = '2' AND has_evaluate = '1'))
+        WHERE ((mr.status = '2' AND has_evaluate = '0') or (mr.status = '2' AND has_evaluate = '1'))
             <if test="cond.mtCompanyId != null and cond.mtCompanyId > 0">
                 AND mr.mt_company_id = #{cond.mtCompanyId}
             </if>
@@ -253,11 +255,10 @@
                 AND mr.plan_date &lt; #{cond.planEnd}
             </if>
             <if test="cond.workDate != null">
-                AND mr.work_date = #{cond.workDate}
+                AND DATE(mr.work_date) = #{cond.workDate}
             </if>
             <if test="cond.liftCodeQuery != null and cond.liftCodeQuery != ''">
-                AND li.registration_code like '%${liftCodeQuery}%'
-                OR li.custom_number like '%${liftCodeQuery}%'
+                AND li.registration_code like  CONCAT('%',#{cond.liftCodeQuery},'%')
             </if>
     </select>