xiongchao пре 3 година
родитељ
комит
ffd689ad26

+ 5 - 0
platform-dao/src/main/java/com/platform/dao/dto/sb/SbInfoDTO.java

@@ -422,4 +422,9 @@ public class SbInfoDTO extends BaseDTO implements Serializable {
      * 部门code
      */
     private String likeDeptCode;
+
+    /**
+     * 是否过滤数据,查询主子数据
+     */
+    private Boolean parentSearch;
 }

+ 2 - 2
platform-dao/src/main/java/com/platform/dao/entity/sb/SbInfo.java

@@ -181,11 +181,11 @@ public class SbInfo implements Serializable {
      */
     private String unit;
     /**
-     * 存放位置
+     * 存放位置/(使用地点,计量信息携带,应该和设备一样的)设备也可以填写,计量也可以修改
      */
     private String positionId;
     /**
-     * 规格型号
+     * 规格型号/(系统主键,计量信息携带,对应计量在原计量系统中的值)
      */
     private String guigeId;
     /**

+ 8 - 0
platform-dao/src/main/java/com/platform/dao/mapper/sb/SbInfoMapper.java

@@ -34,6 +34,14 @@ public interface SbInfoMapper extends MyMapper<SbInfo> {
      */
     void updateBatch(List<SbInfoVO> list);
 
+    /**
+     * 批量更新,用于定时任务生成后更新设备的保养、润换时间
+     *
+     * @param list
+     * @return
+     */
+    void updateBatchChild(List<SbInfoDTO> list);
+
     /**
      * 根据主键查询
      *

+ 2 - 0
platform-dao/src/main/java/com/platform/dao/vo/sb/SbInfoVO.java

@@ -387,4 +387,6 @@ public class SbInfoVO extends BaseVO implements Serializable {
     private BigDecimal totalMiles;//总行驶里程
     private BigDecimal totalHours;//总行驶小时
     private Integer useType;//自定义类型
+
+    private List<SbInfoVO> children;
 }

+ 13 - 0
platform-dao/src/main/resources/mapper/sb/SbInfoMapper.xml

@@ -194,6 +194,9 @@
         <if test="typeId != null">
             and sb.type_id = #{typeId}
         </if>
+        <if test="parentId != null">
+            and sb.parent_id = #{parentId}
+        </if>
         <if test="model != null">
             and sb.model like concat('%',#{model},'%')
         </if>
@@ -375,6 +378,16 @@
         </foreach>
     </update>
 
+    <update id="updateBatchChild" parameterType="java.util.List">
+        <foreach collection="list" item="item" index="index" open="" close="" separator=";">
+            update t_sb_info
+            <set>
+                parent_id = #{item.parentId}
+            </set>
+            where id = #{item.id}
+        </foreach>
+    </update>
+
     <update id="updateBatchValue" parameterType="java.util.List">
         <foreach collection="list" item="item" index="index" open="" close="" separator=";">
             update t_sb_info

+ 41 - 0
platform-rest/src/main/java/com/platform/rest/controller/sb/SbInfoController.java

@@ -5,6 +5,8 @@ import com.platform.common.util.BeanConverterUtil;
 import com.platform.common.util.R;
 import com.platform.common.validation.group.AddGroup;
 import com.platform.common.validation.group.UpdateGroup;
+import com.platform.dao.dto.part.PartInfoDTO;
+import com.platform.dao.dto.repair.RepairProjectRelationDTO;
 import com.platform.dao.dto.sb.SbInfoDTO;
 import com.platform.dao.util.ExcelUtil;
 import com.platform.dao.util.TreeUtil;
@@ -89,6 +91,34 @@ public class SbInfoController {
         return new R<>();
     }
 
+    /**
+     * 修改记录
+     *
+     * @param id 设备基础信息DTO
+     * @return R
+     */
+    @SysLog("取消主子设备关联")
+    @PutMapping("/cancel/{id}")
+    //@PreAuthorize("@pms.hasPermission('sb-infos-edit')")
+    public R updateCanel(@PathVariable("id") String id) {
+        sbInfoService.updateCancelChild(id);
+        return new R<>();
+    }
+
+    /**
+     * 修改记录
+     *
+     * @param sbInfoDTOList 设备基础信息DTO
+     * @return R
+     */
+    @SysLog("批量添加子设备基础信息")
+    @PutMapping("/child/batch")
+    //@PreAuthorize("@pms.hasPermission('sb-infos-edit')")
+    public R updateChildList(@Validated({UpdateGroup.class}) @RequestBody List<SbInfoDTO> sbInfoDTOList) {
+        sbInfoService.updateBatchChild(sbInfoDTOList);
+        return new R<>();
+    }
+
     /**
      * 通过id删除一条记录
      *
@@ -263,6 +293,17 @@ public class SbInfoController {
         return new R<>(result);
     }
 
+    /**
+     * 子设备数量
+     *
+     * @param sbInfoDTO
+     * @return R
+     */
+    @GetMapping("/child/num")
+    public R getNum(SbInfoDTO sbInfoDTO) {
+        return new R<>(sbInfoService.getCountByDTO(sbInfoDTO));
+    }
+
     public static void main(String[] args) throws FileNotFoundException {
         String[] files = {"C:\\Users\\cyz\\Desktop\\设备型号20210210213928562-0210导入后再导出文件.xls"};
         List<ExportSbInfoVO> list = ExcelImportUtil.importExcel(new FileInputStream(files[0]), ExportSbInfoVO.class,new ImportParams());

+ 4 - 1
platform-service/src/main/java/com/platform/service/sb/SbInfoService.java

@@ -196,4 +196,7 @@ public interface SbInfoService extends IBaseService<SbInfo, SbInfoDTO> {
      */
     public AbstractPageResultBean<SbInfoVO> selectPageInfoForWarn(SbInfoDTO record, int pageNum, int pageSize);
 
-    }
+    void updateBatchChild(List<SbInfoDTO> sbInfoDTOList);
+
+    void updateCancelChild(String id);
+}

+ 35 - 3
platform-service/src/main/java/com/platform/service/sb/impl/SbInfoServiceImpl.java

@@ -394,7 +394,7 @@ public class SbInfoServiceImpl extends BaseServiceImpl<SbInfoMapper, SbInfo, SbI
         sbStatusLogMapper.insert(log);
 
         // 新增停机记录
-        if(model.getStatus().equals(SbInfoStatusEnum.IN_STOP.getValue())){
+        if(model.getStatus() !=null && model.getStatus().equals(SbInfoStatusEnum.IN_STOP.getValue())){
             SbStopLog stopLog = new SbStopLog();
             stopLog.setId(IdGeneratorUtils.getObjectId());
             stopLog.setSbId(model.getId());
@@ -410,7 +410,7 @@ public class SbInfoServiceImpl extends BaseServiceImpl<SbInfoMapper, SbInfo, SbI
         }
 
         // 更新开机记录,并记录时长
-        if(model.getStatus().equals(SbInfoStatusEnum.IN_USE.getValue())) {
+        if(model.getStatus() !=null && model.getStatus().equals(SbInfoStatusEnum.IN_USE.getValue())) {
             Weekend<SbStopLog> weekend = new Weekend<>(SbStopLog.class);
             weekend.weekendCriteria().andEqualTo(SbStopLog::getSbId, model.getId()).andEqualTo(SbStopLog::getStatus, 0);
             SbStopLog stopLog = sbStopLogMapper.selectOneByExample(weekend);
@@ -604,7 +604,20 @@ public class SbInfoServiceImpl extends BaseServiceImpl<SbInfoMapper, SbInfo, SbI
             model.setUseCompany(list.get(0).getDeptId());
         }
         PageHelper.startPage(pageNum, pageSize);
-        return new MyVOPage<>(mapper.selectVOList(model));
+        List<SbInfoVO> sbList = mapper.selectVOList(model);
+        /*if(SbInfoChildEnum.IS_PARENT.getValue().equals(model.getIsChild()) && !CollectionUtils.isEmpty(sbList)){
+            for(SbInfoVO vo: sbList){
+                if(SbInfoChildEnum.IS_PARENT.getValue().equals(vo.getIsChild())){
+                    SbInfoDTO infoDTO = new SbInfoDTO();
+                    infoDTO.setParentId(vo.getId());
+                    List<SbInfoVO> childVOList = mapper.selectVOList(infoDTO);
+                    if(!CollectionUtils.isEmpty(childVOList)){
+                        vo.setChildren(childVOList);
+                    }
+                }
+            }
+        }*/
+        return new MyVOPage<>(sbList);
     }
 
     @Override
@@ -1152,4 +1165,23 @@ public class SbInfoServiceImpl extends BaseServiceImpl<SbInfoMapper, SbInfo, SbI
         AbstractPageResultBean<SbInfoVO> pageInfo = new MyPage(mapper.selectPageInfoForWarn(record));
         return pageInfo;
     }
+
+    /**
+     * 批量设置主子设备,首先要判断是否已经存在了,
+     * 已经存在也没事,只是更新,不需要新增
+     *
+     * @param sbInfoDTOList
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void updateBatchChild(List<SbInfoDTO> sbInfoDTOList) {
+        mapper.updateBatchChild(sbInfoDTOList);
+    }
+
+    @Override
+    public void updateCancelChild(String id) {
+        SbInfo info = mapper.selectByPrimaryKeyForUpdate(id);
+        info.setParentId(null);
+        mapper.updateByPrimaryKey(info);
+    }
 }