Browse Source

设备关联备件查询方法协bug修复

guarantee-lsq 2 năm trước cách đây
mục cha
commit
f37b698689
15 tập tin đã thay đổi với 172 bổ sung36 xóa
  1. 2 0
      platform-dao/src/main/java/com/platform/dao/dto/sb/SbModelSpareBomDTO.java
  2. 6 0
      platform-dao/src/main/java/com/platform/dao/dto/sqarepartmanage/SparePartInfoDTO.java
  3. 5 0
      platform-dao/src/main/java/com/platform/dao/dto/store/SpareStoreDTO.java
  4. 1 1
      platform-dao/src/main/java/com/platform/dao/entity/sqarepartmanage/SparePartUsed.java
  5. 7 0
      platform-dao/src/main/java/com/platform/dao/mapper/sqarepartmanage/SparePartInfoMapper.java
  6. 7 0
      platform-dao/src/main/java/com/platform/dao/mapper/sqarepartmanage/SparePartUsedMapper.java
  7. 17 0
      platform-dao/src/main/java/com/platform/dao/vo/query/sparepartmanage/SparePartInfoVO.java
  8. 17 0
      platform-dao/src/main/resources/mapper/sqarepartmanage/SparePartInfoMapper.xml
  9. 14 0
      platform-dao/src/main/resources/mapper/sqarepartmanage/SparePartUsedMapper.xml
  10. 23 16
      platform-rest/src/main/java/com/platform/rest/controller/sqarepartmanage/SparePartInfoController.java
  11. 6 0
      platform-service/src/main/java/com/platform/service/sb/SbModelSpareBomService.java
  12. 17 0
      platform-service/src/main/java/com/platform/service/sb/impl/SbModelSpareBomServiceImpl.java
  13. 10 0
      platform-service/src/main/java/com/platform/service/sqarepartmanage/SparePartInfoService.java
  14. 38 17
      platform-service/src/main/java/com/platform/service/sqarepartmanage/impl/SparePartInfoServiceImpl.java
  15. 2 2
      platform-service/src/main/java/com/platform/service/sqarepartmanage/impl/SparePartUsedServiceImpl.java

+ 2 - 0
platform-dao/src/main/java/com/platform/dao/dto/sb/SbModelSpareBomDTO.java

@@ -119,4 +119,6 @@ public class SbModelSpareBomDTO extends BaseDTO implements Serializable {
      */
     private List<SparePartInfoDTO> sparePartInfoList;
 
+    private String oldSpareId;
+
 }

+ 6 - 0
platform-dao/src/main/java/com/platform/dao/dto/sqarepartmanage/SparePartInfoDTO.java

@@ -293,4 +293,10 @@ public class SparePartInfoDTO extends BaseDTO implements Serializable {
      * 设备列表
      */
     private List<SbModelSpareBomDTO> detailList;
+
+    /**
+     * 请求来源
+     * 参照SparePartUsedSourceEnum
+     */
+    private Integer usedSource;
 }

+ 5 - 0
platform-dao/src/main/java/com/platform/dao/dto/store/SpareStoreDTO.java

@@ -177,4 +177,9 @@ public class SpareStoreDTO extends BaseDTO implements Serializable {
      */
     private String typeNameLike;
 
+    /**
+     * 设备ID
+     */
+    private String sbId;
+
 }

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

@@ -73,7 +73,7 @@ public class SparePartUsed implements Serializable {
      */
     private LocalDate startDate;
     /**
-     * 使用状态: 0 历史 1 使用中
+     * 使用状态: 2 已废弃 1 使用中
      */
     private Integer status;
     /**

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

@@ -50,4 +50,11 @@ public interface SparePartInfoMapper extends MyMapper<SparePartInfo> {
     List<SparePartInfoVO> selectSpareInfoListBySbId(String sbId);
 
     String selectMaxNo(String typeId);
+
+    /**
+     * 查询设备关联的备件信息
+     * @param model
+     * @return
+     */
+    List<SparePartInfoVO> getSpareListBySbInfo(SparePartInfoDTO model);
 }

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

@@ -57,4 +57,11 @@ public interface SparePartUsedMapper extends MyMapper<SparePartUsed> {
      * @return
      */
     List<SparePartUsedVO> selectSparePartUsedListByRepairId(String repairId);
+
+    /**
+     * 根据条件获取单条记录
+     * @param model
+     * @return
+     */
+    SparePartUsedVO selectSpecialOne(SparePartUsedDTO model);
 }

+ 17 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/sparepartmanage/SparePartInfoVO.java

@@ -14,6 +14,7 @@ import javax.persistence.Transient;
 import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.List;
 
@@ -306,4 +307,20 @@ public class SparePartInfoVO extends BaseVO implements Serializable {
      * 备件出库信息列表
      */
     private List<OutStoreDetailVO> outStoreList;
+
+    /**
+     * 备件使用状态
+     * SparePartUsedStatusEnum
+     */
+    private Integer usedStatus;
+
+    /**
+     * 备件投入使用日期
+     */
+    private LocalDate startDate;
+
+    /**
+     * 备件下一次更换日期
+     */
+    private LocalDate changeDate;
 }

+ 17 - 0
platform-dao/src/main/resources/mapper/sqarepartmanage/SparePartInfoMapper.xml

@@ -322,4 +322,21 @@ warn_status,forecast_status,
             where id = #{item.id}
         </foreach>
     </update>
+
+    <!-- 维修和保养获取备件信息List -->
+    <select id="getSpareListBySbInfo" parameterType="com.platform.dao.dto.sqarepartmanage.SparePartInfoDTO"
+            resultType="com.platform.dao.vo.query.sparepartmanage.SparePartInfoVO">
+        select spi.* from t_sb_model_spare_bom sm left join t_spare_part_info spi on sm.spare_id = spi.id
+        <where>
+            <if test="sbId != null">
+                and sm.sb_id = #{sbId}
+            </if>
+            <if test="name != null and name != ''">
+                and spi.name like concat('%',#{name},'%')
+            </if>
+            <if test="isSpecial != null">
+                and spi.is_special = #{isSpecial}
+            </if>
+        </where>
+    </select>
 </mapper>

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

@@ -135,4 +135,18 @@
         group by YEAR(used.real_change_date), MONTH(used.real_change_date), used.spare_id
         order by YEAR(used.real_change_date) DESC, MONTH(used.real_change_date) DESC
     </select>
+
+    <select id="selectSpecialOne" parameterType="com.platform.dao.dto.sqarepartmanage.SparePartUsedDTO"
+            resultType="com.platform.dao.vo.spare.SparePartUsedVO">
+        select * from t_spare_part_used
+        <where>
+            <if test="sbId != null and sbId != ''">
+                and sb_id = #{sbId}
+            </if>
+            <if test="spareId != null and spareId != ''">
+                and spare_id = #{spareId}
+            </if>
+        </where>
+        order by created_time desc limit 1
+    </select>
 </mapper>

+ 23 - 16
platform-rest/src/main/java/com/platform/rest/controller/sqarepartmanage/SparePartInfoController.java

@@ -1,39 +1,33 @@
 package com.platform.rest.controller.sqarepartmanage;
 
+import com.platform.common.bean.AbstractPageResultBean;
 import com.platform.common.exception.BusinessException;
+import com.platform.common.util.BeanConverterUtil;
 import com.platform.common.util.R;
 import com.platform.common.util.StringUtils;
-import com.platform.dao.dto.sb.SbModelDTO;
-import com.platform.dao.dto.sb.SbModelSpareBomDTO;
+import com.platform.common.validation.group.AddGroup;
+import com.platform.common.validation.group.UpdateGroup;
 import com.platform.dao.dto.sqarepartmanage.SparePartInfoDTO;
-import com.platform.dao.entity.sb.SbModel;
 import com.platform.dao.entity.sqarepartmanage.SparePartInfo;
-import com.platform.dao.entity.sqarepartmanage.SpareType;
+import com.platform.dao.util.ExcelUtil;
 import com.platform.dao.util.SelectUtil;
-import com.platform.dao.vo.query.check.CheckStandardSpareVO;
+import com.platform.dao.vo.export.sqarepartmanage.ExportSparePartInfoVO;
+import com.platform.dao.vo.query.sparepartmanage.SparePartInfoVO;
 import com.platform.dao.vo.sb.SbModelSpareBomVO;
-import com.platform.dao.vo.sb.SbModelVO;
+import com.platform.rest.log.annotation.SysLog;
 import com.platform.service.check.CheckStandardService;
 import com.platform.service.sb.SbModelService;
 import com.platform.service.sb.SbModelSpareBomService;
 import com.platform.service.sqarepartmanage.SparePartInfoService;
-import com.platform.dao.util.ExcelUtil;
-import com.platform.dao.vo.export.sqarepartmanage.ExportSparePartInfoVO;
-import com.platform.common.util.BeanConverterUtil;
-import com.platform.common.validation.group.AddGroup;
-import com.platform.common.validation.group.UpdateGroup;
-import com.platform.service.sqarepartmanage.SpareTypeService;
+import lombok.AllArgsConstructor;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
-import lombok.AllArgsConstructor;
-import com.platform.common.bean.AbstractPageResultBean;
-import com.platform.rest.log.annotation.SysLog;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletResponse;
 import java.util.Arrays;
 import java.util.List;
-import javax.servlet.http.HttpServletResponse;
 
 /**
  * @Description 备件基础信息 控制器
@@ -286,4 +280,17 @@ public class SparePartInfoController {
         String result = sparePartInfoService.importListByUpdate(file);
         return new R<>(result);
     }
+
+    /**
+     * 根据设备的操作场景获取备件信息
+     * 比如 维修,保养
+     * @param pageNum 当前页码
+     * @param pageSize 每页条数
+     * @param sparePartInfoDTO 备件DTO
+     * @return R
+     */
+    @GetMapping("/usedSource/page")
+    public R<AbstractPageResultBean<SparePartInfoVO>> queryByUsedSource(SparePartInfoDTO sparePartInfoDTO, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
+        return new R<>(sparePartInfoService.getSpareList(sparePartInfoDTO,pageNum,pageSize));
+    }
 }

+ 6 - 0
platform-service/src/main/java/com/platform/service/sb/SbModelSpareBomService.java

@@ -72,4 +72,10 @@ public interface SbModelSpareBomService extends IBaseService<SbModelSpareBom, Sb
     List<SbModelSpareBomVO> selectExportList(SparePartInfoDTO sparePartInfoDTO);
 
     String copyFormSb(SbModelSpareBomDTO dto);
+
+    /**
+     * 修改BOM
+     * @param sbModelSpareBomDTO
+     */
+    void modModelByDTO(SbModelSpareBomDTO sbModelSpareBomDTO);
 }

+ 17 - 0
platform-service/src/main/java/com/platform/service/sb/impl/SbModelSpareBomServiceImpl.java

@@ -8,6 +8,7 @@ import com.platform.common.model.UserInfo;
 import com.platform.common.util.BeanConverterUtil;
 import com.platform.common.util.IdGeneratorUtils;
 import com.platform.common.util.SecurityUtils;
+import com.platform.common.util.StringUtils;
 import com.platform.dao.bean.MyPage;
 import com.platform.dao.dto.check.CheckProjectStandardRelationDTO;
 import com.platform.dao.dto.check.CheckStandardDTO;
@@ -208,4 +209,20 @@ public class SbModelSpareBomServiceImpl extends BaseServiceImpl<SbModelSpareBomM
         return new MyPage(mapper.selectVOList(record));
     }
 
+    @Override
+    public void modModelByDTO(SbModelSpareBomDTO model) {
+        // 校验
+        if(!model.getSpareId().equals(model.getOldSpareId())){
+            SbModelSpareBomDTO queryDTO = new SbModelSpareBomDTO();
+            queryDTO.setSpareId(model.getSpareId());
+            if(StringUtils.isNotBlank(model.getSbId())){
+                queryDTO.setSbId(model.getSbId());
+            }
+            int count = this.getCountByDTO(queryDTO);
+            if(count != 0){
+                throw new BusinessException("您将要修改的备件BOM,已经存在,请检查!备件名称: " + model.getSpareName());
+            }
+        }
+        super.modModelByDTO(model);
+    }
 }

+ 10 - 0
platform-service/src/main/java/com/platform/service/sqarepartmanage/SparePartInfoService.java

@@ -2,6 +2,7 @@ package com.platform.service.sqarepartmanage;
 
 import com.platform.common.bean.AbstractPageResultBean;
 import com.platform.dao.dto.sqarepartmanage.SparePartInfoDTO;
+import com.platform.dao.dto.store.SpareStoreDTO;
 import com.platform.dao.entity.sqarepartmanage.SparePartInfo;
 import com.platform.dao.vo.query.sparepartmanage.SparePartInfoVO;
 import com.platform.dao.vo.sb.SbInfoVO;
@@ -79,4 +80,13 @@ public interface SparePartInfoService extends IBaseService<SparePartInfo, SpareP
     void generateQrCodeAll();
 
     void modImagesByDTO(SparePartInfoDTO sbInfoDTO);
+
+    /**
+     * 根据sbId来获取设备的备件信息list
+     * @param record
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    AbstractPageResultBean<SparePartInfoVO> getSpareList(SparePartInfoDTO record, int pageNum, int pageSize);
 }

+ 38 - 17
platform-service/src/main/java/com/platform/service/sqarepartmanage/impl/SparePartInfoServiceImpl.java

@@ -7,31 +7,22 @@ import com.platform.common.bean.AbstractPageResultBean;
 import com.platform.common.cache.ConfigCache;
 import com.platform.common.constant.CommonConstants;
 import com.platform.common.exception.BusinessException;
+import com.platform.common.exception.DeniedException;
 import com.platform.common.model.UserInfo;
 import com.platform.common.util.*;
 import com.platform.dao.bean.MyPage;
-import com.platform.dao.dto.check.CheckStandardDTO;
 import com.platform.dao.dto.check.CheckStandardSpareDTO;
-import com.platform.dao.dto.repair.RepairApplicationFormDTO;
-import com.platform.dao.dto.sb.SbInfoDTO;
 import com.platform.dao.dto.sb.SbModelSpareBomDTO;
 import com.platform.dao.dto.sqarepartmanage.SparePartInfoDTO;
-import com.platform.dao.dto.store.InStoreDetailDTO;
-import com.platform.dao.dto.store.SpareStoreDTO;
+import com.platform.dao.dto.sqarepartmanage.SparePartUsedDTO;
 import com.platform.dao.entity.check.CheckJob;
-import com.platform.dao.entity.check.CheckStandard;
-import com.platform.dao.entity.check.CheckStandardSpare;
-import com.platform.dao.entity.sb.SbInfo;
 import com.platform.dao.entity.sb.SbModel;
 import com.platform.dao.entity.sb.SbModelSpareBom;
 import com.platform.dao.entity.sqarepartmanage.SparePartInfo;
 import com.platform.dao.entity.sqarepartmanage.SpareType;
-import com.platform.dao.entity.store.InStoreDetail;
 import com.platform.dao.entity.store.SpareStore;
 import com.platform.dao.entity.store.Store;
-import com.platform.dao.entity.upms.SysDept;
 import com.platform.dao.entity.upms.SysFile;
-import com.platform.dao.entity.upms.SysUser;
 import com.platform.dao.enums.*;
 import com.platform.dao.mapper.check.CheckJobMapper;
 import com.platform.dao.mapper.check.CheckStandardSpareMapper;
@@ -39,6 +30,7 @@ import com.platform.dao.mapper.sb.SbInfoMapper;
 import com.platform.dao.mapper.sb.SbModelMapper;
 import com.platform.dao.mapper.sb.SbModelSpareBomMapper;
 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.StoreMapper;
@@ -47,27 +39,24 @@ import com.platform.dao.util.CustomExcelImportUtil;
 import com.platform.dao.util.MessageTemplateUtil;
 import com.platform.dao.vo.query.check.CheckStandardSpareVO;
 import com.platform.dao.vo.query.sparepartmanage.SparePartInfoVO;
-import com.platform.dao.vo.query.store.SpareStoreVO;
 import com.platform.dao.vo.sb.SbInfoVO;
 import com.platform.dao.vo.sb.SbModelSpareBomVO;
+import com.platform.dao.vo.spare.SparePartUsedVO;
+import com.platform.service.base.impl.BaseServiceImpl;
 import com.platform.service.check.CheckStandardService;
 import com.platform.service.event.WorkplaceBacklogEvent;
-import com.platform.service.sb.SbModelSpareBomService;
 import com.platform.service.sqarepartmanage.SparePartInfoService;
-import com.platform.service.sqarepartmanage.SpareTypeService;
 import com.platform.service.util.CodeFileUtils;
 import com.platform.service.util.SysFileUtils;
+import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.boot.autoconfigure.session.StoreType;
 import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Service;
-import com.platform.service.base.impl.BaseServiceImpl;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.multipart.MultipartFile;
 import tk.mybatis.mapper.weekend.Weekend;
 import tk.mybatis.mapper.weekend.WeekendCriteria;
-import lombok.AllArgsConstructor;
 
 import java.math.BigDecimal;
 import java.time.LocalDate;
@@ -95,6 +84,7 @@ public class SparePartInfoServiceImpl extends BaseServiceImpl<SparePartInfoMappe
     private final SpareStoreMapper spareStoreMapper;
     private final Environment environment;
     private final SysFileMapper sysFileMapper;
+    private final SparePartUsedMapper sparePartUsedMapper;
     private CheckJobMapper checkJobMapper;
     private CheckStandardSpareMapper checkStandardSpareMapper;
     private CheckStandardService checkStandardService;
@@ -1212,4 +1202,35 @@ public class SparePartInfoServiceImpl extends BaseServiceImpl<SparePartInfoMappe
         sparePartInfo.setImage(sparePartInfoDTO.getImage());
         mapper.updateByPrimaryKeySelective(sparePartInfo);
     }
+
+    @Override
+    public AbstractPageResultBean<SparePartInfoVO> getSpareList(SparePartInfoDTO record, int pageNum, int pageSize) {
+        // 根据设备ID判断
+        if(StringUtils.isBlank(record.getSbId())){
+            // 走基础备件信息
+            record.setIsSpecial(0);
+        }
+        PageHelper.startPage(pageNum, pageSize);
+        AbstractPageResultBean<SparePartInfoVO> pageInfos = new MyPage(mapper.getSpareListBySbInfo(record));
+        if(record.getUsedSource() == null){
+            throw new DeniedException("请求数据,请注明备件使用场景!");
+        }
+        if(record.getUsedSource() == SparePartUsedSourceEnum.POLLING_CHECK.getValue()){
+            // 保养,关联使用记录
+            if(pageInfos != null && pageInfos.getRows() != null && pageInfos.getRows().size() > 1){
+                SparePartUsedDTO queryDTO = new SparePartUsedDTO();
+                queryDTO.setSbId(record.getSbId());
+                for(SparePartInfoVO vo : pageInfos.getRows()){
+                    queryDTO.setSpareId(vo.getId());
+                    SparePartUsedVO usedVO = sparePartUsedMapper.selectSpecialOne(queryDTO);
+                    if(usedVO != null){
+                        vo.setUsedStatus(usedVO.getStatus());
+                        vo.setStartDate(usedVO.getStartDate());
+                        vo.setChangeDate(usedVO.getChangeDate());
+                    }
+                }
+            }
+        }
+        return pageInfos;
+    }
 }

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

@@ -131,7 +131,7 @@ public class SparePartUsedServiceImpl extends BaseServiceImpl<SparePartUsedMappe
             setCreateUserInfo(sparePartUsedDTO);
             sparePartUsedDTO.setId(IdGeneratorUtils.getObjectId());
             list.add(BeanConverterUtil.copyObjectProperties(sparePartUsedDTO, getEntityClass()));
-            // 更新库存信息
+            /*// 更新库存信息  该部分功能,放在领用单模块
             Weekend<SpareStore> spareStoreWeekend = new Weekend<>(SpareStore.class);
             spareStoreWeekend.weekendCriteria().andEqualTo(SpareStore::getSpareId, sparePartUsedDTO.getSpareId())
                     .andEqualTo(SpareStore::getStoreId, sparePartUsedDTO.getStoreId());
@@ -144,7 +144,7 @@ public class SparePartUsedServiceImpl extends BaseServiceImpl<SparePartUsedMappe
             spareStore.setUpdateUserId(userInfo.getUserId());
             spareStore.setUpdateUserName(userInfo.getRealName());
             spareStore.setNum(BigDecimalUtil.sub(spareStore.getNum(), sparePartUsedDTO.getNum()));
-            spareStoreMapper.updateByPrimaryKeySelective(spareStore);
+            spareStoreMapper.updateByPrimaryKeySelective(spareStore);*/
         }
         mapper.insertListforComplex(list);
     }