1 ano atrás
pai
commit
8298cc954b

+ 2 - 0
platform-dao/src/main/java/com/platform/dao/dto/check/CheckJobDTO.java

@@ -24,6 +24,8 @@ import java.util.List;
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = true)
 public class CheckJobDTO extends BaseDTO implements Serializable {
+    private Boolean flag;
+
     private String positionId;
     /**
      * 实际执行人姓名

+ 5 - 0
platform-dao/src/main/java/com/platform/dao/dto/check/CheckStandardDTO.java

@@ -24,6 +24,11 @@ import java.util.List;
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = true)
 public class CheckStandardDTO extends BaseDTO implements Serializable {
+    private LocalDateTime searchStartTime;
+
+    private LocalDateTime searchEndTime;
+
+    private List<String> sbIdList;
 
     /**
      * 设备id

+ 7 - 0
platform-dao/src/main/java/com/platform/dao/mapper/check/CheckStandardMapper.java

@@ -18,6 +18,13 @@ import java.util.List;
 @Component
 public interface CheckStandardMapper extends MyMapper<CheckStandard> {
 
+    /**
+     * 分页查询
+     * @param dto
+     * @return
+     */
+    List<CheckStandardVO> selectList2(CheckStandardDTO dto);
+
     /**
      * 分页查询
      * @param dto

+ 23 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/check/CheckJobNum.java

@@ -0,0 +1,23 @@
+package com.platform.dao.vo.query.check;
+
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+import org.apache.poi.ss.formula.functions.T;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+/**
+ * @Description 点检记录VO结果类
+ * @Author liuyu
+ * @Date 2020-05-29 10:39:40
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+public class CheckJobNum implements Serializable {
+    private String sbName;
+    private String sbNo;
+
+    private BigDecimal count = new BigDecimal(0);
+}

+ 3 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/check/CheckStandardVO.java

@@ -26,6 +26,9 @@ import java.util.List;
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = true)
 public class CheckStandardVO extends BaseVO implements Serializable{
+    private LocalDateTime searchStartTime;
+
+    private LocalDateTime searchEndTime;
     /**
      * 排序
      */

+ 46 - 0
platform-dao/src/main/resources/mapper/check/CheckStandardMapper.xml

@@ -158,7 +158,53 @@ checkstandard.last_date,
             <if test="sbLevel != null and sbLevel != ''">
                 and sbInfo.level = #{sbLevel}
             </if>
+            <if test="sbIdList!=null and sbIdList.size>0">
+                and sbInfo.id in
+                <foreach collection="sbIdList" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+        Order By
+        checkstandard.level asc,
+        sbInfo.level asc,
+        sbInfo.no asc,
+        checkstandard.period_type asc,
+        checkstandard.period asc
+    </select>
+
+    <select id="selectList2" parameterType="com.platform.dao.dto.check.CheckStandardDTO"
+            resultType="com.platform.dao.vo.query.check.CheckStandardVO">
+        select checkstandard.*, sbInfo.name as sbName, sbInfo.no as sbNo,
+        sbInfo.level as sbLevel,
+        sbInfo.repair_user as repairUser,
+        partInfo.name as partName
+        from t_check_standard as checkstandard
+        inner join t_check_job job on job.standard_id = checkstandard.id
+        LEFT JOIN t_sb_info sbInfo on checkstandard.sb_id = sbInfo.id
+        LEFT JOIN t_part_info partInfo on checkstandard.part = partInfo.id
+        <where>
+            <include refid="List_Condition"/>
+            <if test="sbName != null and sbName != ''">
+                and sbInfo.name like concat('%',#{sbName},'%')
+            </if>
+            <if test="sbNo != null and sbNo != ''">
+                and sbInfo.no like concat('%',#{sbNo},'%')
+            </if>
+            <if test="typeId != null and typeId != ''">
+                and sbInfo.type_id  = #{typeId}
+            </if>
+            <if test="sbLevel != null and sbLevel != ''">
+                and sbInfo.level = #{sbLevel}
+            </if>
+            <if test="sbIdList!=null and sbIdList.size>0">
+                and sbInfo.id in
+                <foreach collection="sbIdList" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
         </where>
+        group by checkstandard.id
         Order By
         checkstandard.level asc,
         sbInfo.level asc,

+ 18 - 8
platform-rest/src/main/java/com/platform/rest/controller/check/CheckJobController.java

@@ -4,9 +4,11 @@ import cn.hutool.core.collection.CollectionUtil;
 import com.platform.common.util.BigDecimalUtil;
 import com.platform.common.util.R;
 import com.platform.dao.dto.check.CheckJobDTO;
+import com.platform.dao.dto.check.CheckStandardDTO;
 import com.platform.dao.dto.sb.SbInfoDTO;
 import com.platform.dao.entity.check.CheckJob;
 import com.platform.dao.enums.CheckJobStatusEnum;
+import com.platform.dao.vo.query.check.CheckJobNum;
 import com.platform.dao.vo.query.check.CheckJobVO;
 import com.platform.service.check.CheckJobService;
 import com.platform.dao.util.ExcelUtil;
@@ -117,9 +119,10 @@ public class CheckJobController {
      */
     @GetMapping("/page")
     public R<AbstractPageResultBean<CheckJobVO>> query(CheckJobDTO checkJobDTO, @RequestParam(required = false) List<Integer> statusList, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
-        if (CollectionUtil.isNotEmpty(statusList)) {
-            checkJobDTO.setStatusList(statusList);
-        }
+//        if (CollectionUtil.isNotEmpty(statusList)) {
+//            checkJobDTO.setStatusList(statusList);
+//        }
+        checkJobDTO.setStatusList(null);
         return new R<>(checkJobService.selectPageList(checkJobDTO, pageNum, pageSize));
     }
 
@@ -290,11 +293,18 @@ public class CheckJobController {
     @GetMapping("/getCheckJobVO/detail")
     public R<CheckJobVO> getCheckJobVODetail(CheckJobDTO checkJobDTO) {
         return new R<>(checkJobService.getCheckJobVODetail(checkJobDTO));
-        
-        
-        
-        
-        
     }
 
+
+    /**
+     * 查询一段时间内的设备的需要保养的次数
+     */
+    @GetMapping("/getCheckNum")
+    public R<AbstractPageResultBean<CheckJobNum>> getCheckNum(CheckStandardDTO checkJobDTO, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
+        return new R<>(checkJobService.getCheckNum(checkJobDTO,pageNum,pageSize));
+    }
+
+
+
+
 }

+ 4 - 0
platform-service/src/main/java/com/platform/service/check/CheckJobService.java

@@ -5,8 +5,10 @@ import com.platform.common.util.DateUtils;
 import com.platform.common.util.ListUtils;
 import com.platform.common.util.StringUtils;
 import com.platform.dao.dto.check.CheckJobDTO;
+import com.platform.dao.dto.check.CheckStandardDTO;
 import com.platform.dao.entity.check.CheckJob;
 import com.platform.dao.enums.CheckJobStatusEnum;
+import com.platform.dao.vo.query.check.CheckJobNum;
 import com.platform.dao.vo.query.check.CheckJobScreenVO;
 import com.platform.dao.vo.query.check.CheckJobVO;
 import com.platform.dao.vo.report.CheckJobReportVO;
@@ -27,6 +29,8 @@ import java.util.List;
  * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
  */
 public interface CheckJobService extends IBaseService<CheckJob, CheckJobDTO> {
+    AbstractPageResultBean<CheckJobNum> getCheckNum(CheckStandardDTO dto, Integer pageNum, Integer pageSize);
+
     void deleteScrapSbCheckJobs();
 
     CheckJobVO getCheckJobVODetail(CheckJobDTO checkJobDTO);

+ 89 - 0
platform-service/src/main/java/com/platform/service/check/impl/CheckJobServiceImpl.java

@@ -16,6 +16,7 @@ import com.platform.dao.bean.MyPage;
 import com.platform.dao.dto.check.CheckJobDTO;
 import com.platform.dao.dto.check.CheckPlanDTO;
 import com.platform.dao.dto.check.CheckProjectPlanRelationDTO;
+import com.platform.dao.dto.check.CheckStandardDTO;
 import com.platform.dao.dto.sb.SbInfoDTO;
 import com.platform.dao.entity.check.*;
 import com.platform.dao.entity.sb.SbInfo;
@@ -49,6 +50,7 @@ import com.platform.service.upms.SysConfigService;
 import com.platform.service.upms.SysUserDeptService;
 import com.platform.service.util.SysFileUtils;
 import lombok.AllArgsConstructor;
+import org.apache.poi.ss.formula.functions.T;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
@@ -91,6 +93,93 @@ public class CheckJobServiceImpl extends BaseServiceImpl<CheckJobMapper, CheckJo
     private SbInfoMapper sbInfoMapper;
     private SbPositionMapper sbPositionMapper;
 
+    @Override
+    public AbstractPageResultBean<CheckJobNum> getCheckNum(CheckStandardDTO dto, Integer pageNum, Integer pageSize) {
+        SbInfo info = new SbInfo();
+        info.setStatus(SbInfoStatusEnum.IN_USE.getValue());
+        List<SbInfo> sbInfos = sbInfoMapper.select(info);
+        List<String> sbIdList = sbInfos.stream().map(SbInfo::getId).collect(Collectors.toList());
+        CheckStandardDTO standardDTO = new CheckStandardDTO();
+        standardDTO.setSbIdList(sbIdList);
+        standardDTO.setSbName(dto.getSbName());
+        standardDTO.setSbNo(dto.getSbNo());
+//        PageHelper.startPage(pageNum,pageSize);
+        List<CheckStandardVO> checkStandardVOS = standardMapper.selectList2(standardDTO);
+        sbIdList = checkStandardVOS.stream().map(CheckStandardVO::getSbId).distinct().collect(Collectors.toList());
+        List<CheckJobNum> checkJobNums = new ArrayList<>();
+        for (String id:sbIdList) {
+            BigDecimal num = new BigDecimal(0);
+            CheckJobNum checkJobNum = new CheckJobNum();
+            for (CheckStandardVO vo : checkStandardVOS) {
+                if (id.equals(vo.getSbId())){
+                    checkJobNum.setSbName(vo.getSbName());
+                    checkJobNum.setSbNo(vo.getSbNo());
+                    LocalDateTime searchEndTime = dto.getSearchEndTime();
+                    LocalDateTime searchStartTime = dto.getSearchStartTime();
+                    if (searchEndTime==null || searchStartTime==null||vo.getPeriod()==null||vo.getPeriodType()==null){
+                        continue;
+                    }
+                    Integer period = 0;
+                    if (vo.getPeriodType()!=null && vo.getPeriodType().equals(CheckPlanPeriodTypeEnum.DAY.getValue())){
+                        period = vo.getPeriod();
+                        num = getNum(searchEndTime,searchStartTime,vo,num,period);
+                    }
+                    if (vo.getPeriodType()!=null && vo.getPeriodType().equals(CheckPlanPeriodTypeEnum.WEEK.getValue())){
+                        period = vo.getPeriod()*7;
+                        num = getNum(searchEndTime,searchStartTime,vo,num,period);
+                    }
+                    if (vo.getPeriodType()!=null && vo.getPeriodType().equals(CheckPlanPeriodTypeEnum.MONTH.getValue())){
+                        period = vo.getPeriod()*30;
+                        num = getNum(searchEndTime,searchStartTime,vo,num,period);
+                    }
+                    if (vo.getPeriodType()!=null && vo.getPeriodType().equals(CheckPlanPeriodTypeEnum.SEASON.getValue())){
+                        period = vo.getPeriod()*30*3;
+                        num = getNum(searchEndTime,searchStartTime,vo,num,period);
+                    }
+                    if (vo.getPeriodType()!=null && vo.getPeriodType().equals(CheckPlanPeriodTypeEnum.YEAR.getValue())){
+                        period = vo.getPeriod()*365;
+                        num = getNum(searchEndTime,searchStartTime,vo,num,period);
+                    }
+                }
+            }
+            checkJobNum.setCount(num);
+            checkJobNums.add(checkJobNum);
+        }
+        AbstractPageResultBean<CheckJobNum> pageInfo = getPageInfo(pageNum,pageSize,checkJobNums);
+        return pageInfo;
+    }
+
+    private AbstractPageResultBean<CheckJobNum> getPageInfo(Integer pageNum,Integer pageSize,List<CheckJobNum> list){
+        AbstractPageResultBean<CheckJobNum> pageInfo = new MyPage(list);
+        pageInfo.setPageNum(pageNum);
+        pageInfo.setPageSize(pageSize);
+        List<CheckJobNum> dataList = new ArrayList<>();
+        for (int i = pageSize*(pageNum-1);i<pageSize*pageNum;i++){
+            dataList.add(list.get(i));
+        }
+        pageInfo.setRows(dataList);
+        if (list!=null&&list.size()>0){
+            int pages = list.size()%pageSize==0?list.size()/pageSize:(list.size()/pageSize)+1;
+            pageInfo.setPages(pages);
+        }else {
+            pageInfo.setPages(0);
+        }
+        pageInfo.setTotal((long)list.size());
+        return pageInfo;
+    }
+    private BigDecimal getNum(LocalDateTime searchEndTime,LocalDateTime searchStartTime,CheckStandardVO vo,BigDecimal num,Integer period){
+//        do {
+            long days = DateUtils.until(searchStartTime,searchEndTime,ChronoUnit.DAYS);
+//            LocalDateTime time = searchEndTime.minusDays(period);
+//            if (time.isEqual(searchStartTime) || time.isBefore(searchStartTime)){
+//                break;
+//            }
+         long i = days/period;
+            num = new BigDecimal(i).add(num);
+//        }while (true);
+        return num;
+    }
+
     @Override
     public void deleteScrapSbCheckJobs() {
         CheckJobDTO dto = new CheckJobDTO();