guarantee-lsq 2 年 前
コミット
2e0578e597

+ 5 - 0
platform-dao/src/main/java/com/platform/dao/dto/sqarepartmanage/SparePartUsedDTO.java

@@ -11,6 +11,7 @@ import java.io.Serializable;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.time.LocalDate;
+import java.util.List;
 
 /**
  * @Description 备件使用表DTO
@@ -147,4 +148,8 @@ public class SparePartUsedDTO extends BaseDTO implements Serializable {
      */
     private Integer isSpecial;
 
+    private String typeId;
+
+    private List<String> typeIds;
+
 }

+ 0 - 2
platform-dao/src/main/java/com/platform/dao/entity/sqarepartmanage/SparePartUsed.java

@@ -114,12 +114,10 @@ public class SparePartUsed implements Serializable {
     /**
      * 创建人
      */
-    @Transient
     private String createdUserName;
     /**
      * 修改人
      */
-    @Transient
     private String updateUserName;
     /**
      * 部位名称

+ 2 - 1
platform-dao/src/main/java/com/platform/dao/enums/SysConfigEnum.java

@@ -48,7 +48,8 @@ public enum SysConfigEnum {
     STORE_SUPER_USERS("仓库管理中的超级用户集合"),
     REPAIR_SEND_SUCCESS_WECHAT_TEMPLATE_ID("报修后通知维修主管"),
     REPAIR_RECEIVE_SUCCESS_WECHAT_TEMPLATE_ID("报修接收后通知报修人"),
-    REPAIR_NOTICE_SUCCESS_WECHAT_TEMPLATE_ID("派工后通知维修人"),;
+    REPAIR_NOTICE_SUCCESS_WECHAT_TEMPLATE_ID("派工后通知维修人"),
+    SPARE_UPDATE_ALERT_DAY("备件更换预警设置天数");
     private final String typeName;
 
 }

+ 7 - 0
platform-dao/src/main/java/com/platform/dao/mapper/sqarepartmanage/SparePartUsedMapper.java

@@ -72,4 +72,11 @@ public interface SparePartUsedMapper extends MyMapper<SparePartUsed> {
      * @return
      */
     List<SparePartUsedVO> selectSparePartUsedListBySbId(String sbId);
+
+    /**
+     * 备件更换预警
+     * @param model
+     * @return
+     */
+    List<SparePartUsedVO> selectUpdateAlert(SparePartUsedDTO model);
 }

+ 54 - 0
platform-dao/src/main/java/com/platform/dao/vo/export/sqarepartmanage/ExportSpareUpdateAlertVO.java

@@ -0,0 +1,54 @@
+package com.platform.dao.vo.export.sqarepartmanage;
+
+import com.platform.office.annotation.Excel;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+
+/**
+ * @Description 备件更换预警表导出VO
+ * @Author liuyu
+ * @Date 2020-05-03 13:02:01
+ * @Version Copyright (c) 2019,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+public class ExportSpareUpdateAlertVO implements Serializable {
+
+    /**
+     * 主键
+     */
+    @Excel(name = "设备", orderNum = "1")
+    private String sbName;
+    /**
+     * 设备id
+     */
+    @Excel(name = "预警备件", orderNum = "2")
+    private String spareName;
+
+    /**
+     * 部位id
+     */
+    @Excel(name = "上次更换时间", orderNum = "3")
+    private LocalDate startDate;
+
+    /**
+     * 设备id
+     */
+    @Excel(name = "下次更换时间", orderNum = "4")
+    private LocalDate changeDate;
+
+    /**
+     * 投用日期
+     */
+    @Excel(name = "关联维修单", orderNum = "5")
+    private String repairNo;
+
+    /**
+     * 使用状态:1-使用中;2-已替换
+     */
+    @Excel(name = "更换人", orderNum = "6")
+    private String createdUserName;
+}

+ 0 - 1
platform-dao/src/main/java/com/platform/dao/vo/spare/SparePartUsedVO.java

@@ -143,5 +143,4 @@ public class SparePartUsedVO extends BaseVO implements Serializable {
 
     private Integer isSpecial;
 
-
 }

+ 18 - 0
platform-dao/src/main/resources/mapper/sqarepartmanage/SparePartUsedMapper.xml

@@ -156,4 +156,22 @@
         left join t_spare_part_info spareInfo on used.spare_id = spareInfo.id
         where used.sb_id = #{sbId} and used.status = 1 and spareInfo.is_special = 1
     </select>
+
+    <select id="selectUpdateAlert" parameterType="com.platform.dao.dto.sqarepartmanage.SparePartUsedDTO" resultType="com.platform.dao.vo.spare.SparePartUsedVO">
+        select sb.name as sbName,spare.name as spareName,usd.start_date,usd.change_date,usd.repair_no,usd.created_user_name from t_spare_part_used usd
+        join t_sb_info sb on usd.sb_id = sb.id
+        join t_spare_part_info spare on usd.spare_id = spare.id where usd.status = 1
+        <if test="changeDate != null">
+            and usd.change_date <![CDATA[ <= ]]> #{changeDate}
+        </if>
+        <if test="keyword != null and keyword != ''">
+            and (spare.name = #{keyword} or spare.no = #{keyword} )
+        </if>
+        <if test="typeIds != null and typeIds.size > 0">
+            AND spare.type_id in
+            <foreach item="item" index="index" collection="typeIds" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+    </select>
 </mapper>

+ 22 - 0
platform-rest/src/main/java/com/platform/rest/controller/sqarepartmanage/SparePartUsedController.java

@@ -10,6 +10,7 @@ import com.platform.dao.dto.sqarepartmanage.SparePartUsedDTO;
 import com.platform.dao.entity.sqarepartmanage.SparePartUsed;
 import com.platform.dao.util.ExcelUtil;
 import com.platform.dao.vo.export.sqarepartmanage.ExportSparePartUsedVO;
+import com.platform.dao.vo.export.sqarepartmanage.ExportSpareUpdateAlertVO;
 import com.platform.dao.vo.spare.SparePartUsedVO;
 import com.platform.rest.log.annotation.SysLog;
 import com.platform.service.sqarepartmanage.SparePartUsedService;
@@ -199,4 +200,25 @@ public class SparePartUsedController {
         return new R();
     }
 
+    /**
+     * 获取分页
+     * 备件更换预警
+     * @param pageNum  当前页码
+     * @param pageSize 每页条数
+     * @param model    维修单DTO
+     * @return R
+     */
+    @GetMapping("/update/alert/page")
+    public R<AbstractPageResultBean<SparePartUsedVO>> updateAlertPage(SparePartUsedDTO model, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
+        return new R<>(sparePartUsedService.selectUpdateAlertPage(model, pageNum, pageSize));
+    }
+
+    @GetMapping("/update/alert/export")
+    @SysLog("备件更换预警表导出")
+    //@PreAuthorize("@pms.hasPermission('sqarepartmanage-spare-part-used-export')")
+    public void exportUpdateAlert(HttpServletResponse response, SparePartUsedDTO sparePartUsedDTO) {
+        List<SparePartUsedVO> list = sparePartUsedService.selectUpdateAlertList(sparePartUsedDTO);
+        ExcelUtil.exportResponseDict(response, ExportSpareUpdateAlertVO.class, BeanConverterUtil.copyListProperties(list, ExportSpareUpdateAlertVO.class), "备件更换预警记录");
+    }
+
 }

+ 12 - 0
platform-service/src/main/java/com/platform/service/sqarepartmanage/SparePartUsedService.java

@@ -106,4 +106,16 @@ public interface SparePartUsedService extends IBaseService<SparePartUsed, SpareP
      * @param record
      */
     void saveInitialized(SparePartUsedDTO record);
+
+    /**
+     * 查询分页
+     *
+     * @param record   :
+     * @param pageNum  :
+     * @param pageSize :
+     * @return :
+     */
+    MyVOPage<SparePartUsedVO> selectUpdateAlertPage(SparePartUsedDTO record, int pageNum, int pageSize);
+
+    List<SparePartUsedVO> selectUpdateAlertList(SparePartUsedDTO model);
 }

+ 59 - 3
platform-service/src/main/java/com/platform/service/sqarepartmanage/impl/SparePartUsedServiceImpl.java

@@ -2,6 +2,7 @@ package com.platform.service.sqarepartmanage.impl;
 
 import cn.hutool.core.util.ObjectUtil;
 import com.github.pagehelper.PageHelper;
+import com.platform.common.cache.ConfigCache;
 import com.platform.common.exception.DeniedException;
 import com.platform.common.model.OauthUser;
 import com.platform.common.model.UserInfo;
@@ -10,12 +11,14 @@ import com.platform.dao.bean.MyVOPage;
 import com.platform.dao.dto.sqarepartmanage.SparePartUsedDTO;
 import com.platform.dao.entity.sqarepartmanage.SparePartInfo;
 import com.platform.dao.entity.sqarepartmanage.SparePartUsed;
+import com.platform.dao.entity.sqarepartmanage.SpareType;
 import com.platform.dao.entity.store.SpareStore;
 import com.platform.dao.enums.SparePartUsedStatusEnum;
+import com.platform.dao.enums.SysConfigEnum;
 import com.platform.dao.mapper.sqarepartmanage.SparePartInfoMapper;
 import com.platform.dao.mapper.sqarepartmanage.SparePartUsedMapper;
+import com.platform.dao.mapper.sqarepartmanage.SpareTypeMapper;
 import com.platform.dao.mapper.store.SpareStoreMapper;
-import com.platform.dao.mapper.store.SpareStoreSecondMapper;
 import com.platform.dao.vo.report.SparePartInfoReportVO;
 import com.platform.dao.vo.spare.SparePartUsedVO;
 import com.platform.service.base.impl.BaseServiceImpl;
@@ -24,6 +27,7 @@ import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 import tk.mybatis.mapper.weekend.Weekend;
+import tk.mybatis.mapper.weekend.WeekendCriteria;
 
 import java.math.BigDecimal;
 import java.time.LocalDate;
@@ -41,10 +45,9 @@ import java.util.Map;
 @AllArgsConstructor
 @Service("sparePartUsedService")
 public class SparePartUsedServiceImpl extends BaseServiceImpl<SparePartUsedMapper, SparePartUsed, SparePartUsedDTO> implements SparePartUsedService {
-
-    private SpareStoreSecondMapper spareStoreSecondMapper;
     private SpareStoreMapper spareStoreMapper;
     private SparePartInfoMapper sparePartInfoMapper;
+    private SpareTypeMapper spareTypeMapper;
     @Override
     public int batchDelete(List<String> ids) {
         ids.forEach(id -> {
@@ -338,6 +341,59 @@ public class SparePartUsedServiceImpl extends BaseServiceImpl<SparePartUsedMappe
         super.saveModelByDTO(model);
     }
 
+    @Override
+    public MyVOPage<SparePartUsedVO> selectUpdateAlertPage(SparePartUsedDTO record, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        // 查询预警天数
+        String alertDays = ConfigCache.getLabelByValueAllowNull(SysConfigEnum.SPARE_UPDATE_ALERT_DAY.name());
+        record.setChangeDate(LocalDate.now().plusDays(Integer.parseInt(alertDays)));
+        if(StringUtils.isNotBlank(record.getKeyword())){
+            record.setKeyword(record.getKeyword().trim());
+        }
+        // 根据备件类型查询
+        if (StringUtils.isNotBlank(record.getTypeId())) {
+            Weekend<SpareType> weekend = new Weekend<>(SpareType.class);
+            WeekendCriteria<SpareType, Object> weekendCriteria = weekend.weekendCriteria();
+            weekendCriteria.andEqualTo(SpareType::getParentId, record.getTypeId());
+            List<SpareType> childList = spareTypeMapper.selectByExample(weekend);
+            List<String> typeIds = new ArrayList<String>();
+            typeIds.add(record.getTypeId());
+            if (!CollectionUtils.isEmpty(childList)) {
+                childList.forEach(item -> {
+                    typeIds.add(item.getId());
+                });
+            }
+            record.setTypeIds(typeIds);
+        }
+        return new MyVOPage<>(mapper.selectUpdateAlert(record));
+    }
+
+    @Override
+    public List<SparePartUsedVO> selectUpdateAlertList(SparePartUsedDTO record) {
+        // 查询预警天数
+        String alertDays = ConfigCache.getLabelByValueAllowNull(SysConfigEnum.SPARE_UPDATE_ALERT_DAY.name());
+        record.setChangeDate(LocalDate.now().plusDays(Integer.parseInt(alertDays)));
+        if(StringUtils.isNotBlank(record.getKeyword())){
+            record.setKeyword(record.getKeyword().trim());
+        }
+        // 根据备件类型查询
+        if (StringUtils.isNotBlank(record.getTypeId())) {
+            Weekend<SpareType> weekend = new Weekend<>(SpareType.class);
+            WeekendCriteria<SpareType, Object> weekendCriteria = weekend.weekendCriteria();
+            weekendCriteria.andEqualTo(SpareType::getParentId, record.getTypeId());
+            List<SpareType> childList = spareTypeMapper.selectByExample(weekend);
+            List<String> typeIds = new ArrayList<String>();
+            typeIds.add(record.getTypeId());
+            if (!CollectionUtils.isEmpty(childList)) {
+                childList.forEach(item -> {
+                    typeIds.add(item.getId());
+                });
+            }
+            record.setTypeIds(typeIds);
+        }
+        return mapper.selectUpdateAlert(record);
+    }
+
     public static void main(String[] args) {
         LocalDate localDate = LocalDate.now();
         int year = localDate.getYear();