Browse Source

保养标准批量新增和调整接口,以设备为维度

hfxc226 1 năm trước cách đây
mục cha
commit
4008439391

+ 37 - 0
platform-dao/src/main/java/com/platform/dao/dto/check/CheckStandardBatchDTO.java

@@ -0,0 +1,37 @@
+package com.platform.dao.dto.check;
+
+import com.platform.common.bean.BaseDTO;
+import com.platform.common.validation.group.UpdateGroup;
+import com.platform.dao.entity.upms.SysFile;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import javax.persistence.Transient;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * @Description 点检标准DTO
+ * @Author liuyu
+ * @Date 2020-05-28 17:23:30
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class CheckStandardBatchDTO extends BaseDTO implements Serializable {
+
+    /**
+     * 设备id
+     */
+    private String sbId;
+
+    /**
+     * 明细列表
+     */
+    private List<CheckStandardDTO> list;
+}

+ 110 - 99
platform-rest/src/main/java/com/platform/rest/controller/check/CheckStandardController.java

@@ -3,6 +3,7 @@ package com.platform.rest.controller.check;
 import cn.hutool.core.collection.CollectionUtil;
 import com.platform.common.util.R;
 import com.platform.dao.dto.check.CheckJobDTO;
+import com.platform.dao.dto.check.CheckStandardBatchDTO;
 import com.platform.dao.dto.check.CheckStandardDTO;
 import com.platform.dao.entity.check.CheckStandard;
 import com.platform.dao.vo.export.check.ExportCheckStandardVO2;
@@ -38,18 +39,18 @@ import javax.servlet.http.HttpServletResponse;
 @RequestMapping("/check/standards")
 public class CheckStandardController {
 
-  private final  CheckStandardService checkStandardService;
+    private final CheckStandardService checkStandardService;
 
-  /**
-   * 通过id查询单条记录
-   *
-   * @param projectId 主键
-   * @return R
-   */
-  @GetMapping("/project/{id}")
-  public R<CheckStandard> getByProjectId(@PathVariable("id") String projectId){
-      return new R(checkStandardService.selectProjectStandardList(projectId));
-  }
+    /**
+     * 通过id查询单条记录
+     *
+     * @param projectId 主键
+     * @return R
+     */
+    @GetMapping("/project/{id}")
+    public R<CheckStandard> getByProjectId(@PathVariable("id") String projectId) {
+        return new R(checkStandardService.selectProjectStandardList(projectId));
+    }
 
     /**
      * 通过projectid查询多条标准
@@ -58,36 +59,50 @@ public class CheckStandardController {
      * @return R
      */
     @GetMapping("/{id}")
-    public R<CheckStandard> getById(@PathVariable("id") String id){
+    public R<CheckStandard> getById(@PathVariable("id") String id) {
         return new R<>(checkStandardService.getModelById(id));
     }
 
-  /**
-   * 新增记录
-   *
-   * @param checkStandardDTO 保养标准DTO
-   * @return R
-   */
-  @SysLog("新增保养标准")
-  @PostMapping
-  @PreAuthorize("@pms.hasPermission('check-spot-standards-add') or @pms.hasPermission('check-spot-standards-add')")
-  public R save(@Validated({AddGroup.class}) @RequestBody CheckStandardDTO checkStandardDTO) {
-      return new R<>(checkStandardService.saveModelByDTO(checkStandardDTO));
-  }
+    /**
+     * 新增记录
+     *
+     * @param checkStandardDTO 保养标准DTO
+     * @return R
+     */
+    @SysLog("新增保养标准")
+    @PostMapping
+    @PreAuthorize("@pms.hasPermission('check-spot-standards-add') or @pms.hasPermission('check-spot-standards-add')")
+    public R save(@Validated({AddGroup.class}) @RequestBody CheckStandardDTO checkStandardDTO) {
+        return new R<>(checkStandardService.saveModelByDTO(checkStandardDTO));
+    }
 
-  /**
-   * 修改记录
-   *
-   * @param checkStandardDTO 保养标准DTO
-   * @return R
-   */
-  @SysLog("修改保养标准")
-  @PutMapping("/{id}")
-  @PreAuthorize("@pms.hasPermission('check-spot-standards-edit')")
-  public R update(@PathVariable("id") String id, @Validated({UpdateGroup.class}) @RequestBody CheckStandardDTO checkStandardDTO) {
-      checkStandardService.modModelByDTO(checkStandardDTO);
-      return new R<>();
-  }
+    /**
+     * 修改记录
+     *
+     * @param checkStandardDTO 保养标准DTO
+     * @return R
+     */
+    @SysLog("修改保养标准")
+    @PutMapping("/{id}")
+    @PreAuthorize("@pms.hasPermission('check-spot-standards-edit')")
+    public R update(@PathVariable("id") String id, @Validated({UpdateGroup.class}) @RequestBody CheckStandardDTO checkStandardDTO) {
+        checkStandardService.modModelByDTO(checkStandardDTO);
+        return new R<>();
+    }
+
+    /**
+     * 批量新增和修改
+     *
+     * @param checkStandardBatchDTO 明细列表
+     * @return R
+     */
+    @SysLog("批量新增和修改")
+    @PostMapping("/batch")
+    @PreAuthorize("@pms.hasPermission('check-spot-standards-edit')")
+    public R batch(@Validated({UpdateGroup.class}) @RequestBody CheckStandardBatchDTO checkStandardBatchDTO) {
+        checkStandardService.batch(checkStandardBatchDTO);
+        return new R<>();
+    }
 
     /**
      * 初始化编码
@@ -99,10 +114,10 @@ public class CheckStandardController {
     @PreAuthorize("@pms.hasPermission('check-spot-standards-edit')")
     public R updateNo() {
         List<CheckStandardVO> checkStandardVOList = checkStandardService.selectList(new CheckStandardDTO());
-        if(CollectionUtil.isNotEmpty(checkStandardVOList)){
+        if (CollectionUtil.isNotEmpty(checkStandardVOList)) {
             List<CheckStandard> checkStandardList = new ArrayList<CheckStandard>();
             int i = 1;
-            for(CheckStandardVO vo: checkStandardVOList){
+            for (CheckStandardVO vo : checkStandardVOList) {
                 CheckStandard checkStandard = new CheckStandard();
                 checkStandard.setId(vo.getId());
                 checkStandard.setNo(String.format("%05d", i++));
@@ -149,19 +164,19 @@ public class CheckStandardController {
         return new R<>(checkStandardService.getCountByDTO(checkStandardDTO));
     }
 
-  /**
-   * 通过id删除一条记录
-   *
-   * @param id 主键
-   * @return R
-   */
-  @SysLog("删除保养标准")
-  @DeleteMapping("/{id}")
-  @PreAuthorize("@pms.hasPermission('check-spot-standards-del') or @pms.hasPermission('check-spot-standards-del')")
-  public R removeById(@PathVariable String id){
-    checkStandardService.deleteByPrimaryKey(id);
-    return new R<>();
-  }
+    /**
+     * 通过id删除一条记录
+     *
+     * @param id 主键
+     * @return R
+     */
+    @SysLog("删除保养标准")
+    @DeleteMapping("/{id}")
+    @PreAuthorize("@pms.hasPermission('check-spot-standards-del') or @pms.hasPermission('check-spot-standards-del')")
+    public R removeById(@PathVariable String id) {
+        checkStandardService.deleteByPrimaryKey(id);
+        return new R<>();
+    }
 
     /**
      * 批量记录
@@ -172,69 +187,67 @@ public class CheckStandardController {
     @SysLog("批量删除保养标准")
     @DeleteMapping("")
     @PreAuthorize("@pms.hasPermission('check-spot-standards-del')")
-    public R removeIds(@RequestBody List<String> ids){
+    public R removeIds(@RequestBody List<String> ids) {
         checkStandardService.batchDelete(ids);
         return new R<>();
     }
 
-  /**
-   * 获取分页
-   *
-   * @param pageNum 当前页码
-   * @param pageSize 每页条数
-   * @param checkStandardDTO 保养标准DTO
-   * @return R
-   */
-  @GetMapping("/page")
-  public R<AbstractPageResultBean<CheckStandard>> query(CheckStandardDTO checkStandardDTO, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
-      return new R<>(checkStandardService.selectPageInfo(checkStandardDTO, pageNum, pageSize));
-  }
+    /**
+     * 获取分页
+     *
+     * @param pageNum          当前页码
+     * @param pageSize         每页条数
+     * @param checkStandardDTO 保养标准DTO
+     * @return R
+     */
+    @GetMapping("/page")
+    public R<AbstractPageResultBean<CheckStandard>> query(CheckStandardDTO checkStandardDTO, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
+        return new R<>(checkStandardService.selectPageInfo(checkStandardDTO, pageNum, pageSize));
+    }
 
-  /**
-   * 获取列表
-   *
-   * @param checkStandardDTO 保养标准DTO
-   * @return R
-   */
-  @GetMapping("")
-  public R query(CheckStandardDTO checkStandardDTO) {
-      return new R<>(checkStandardService.selectList(checkStandardDTO));
-  }
+    /**
+     * 获取列表
+     *
+     * @param checkStandardDTO 保养标准DTO
+     * @return R
+     */
+    @GetMapping("")
+    public R query(CheckStandardDTO checkStandardDTO) {
+        return new R<>(checkStandardService.selectList(checkStandardDTO));
+    }
 
-  /**
+    /**
      * 保养标准导出
      *
      * @param checkStandardDTO 保养标准DTO
      * @return R
      */
-  @GetMapping("/export")
-  @SysLog("保养标准导出")
-  public void export(HttpServletResponse response, CheckStandardDTO checkStandardDTO) {
-    List<CheckStandardVO> list = checkStandardService.selectList(checkStandardDTO);
-    ExcelUtil.exportResponseDict(response, ExportCheckStandardVO2.class, BeanConverterUtil.copyListProperties(list, ExportCheckStandardVO2.class), "保养标准");
-  }
+    @GetMapping("/export")
+    @SysLog("保养标准导出")
+    public void export(HttpServletResponse response, CheckStandardDTO checkStandardDTO) {
+        List<CheckStandardVO> list = checkStandardService.selectList(checkStandardDTO);
+        ExcelUtil.exportResponseDict(response, ExportCheckStandardVO2.class, BeanConverterUtil.copyListProperties(list, ExportCheckStandardVO2.class), "保养标准");
+    }
 
     /**
      * 导入保养标准(包括修改,新增,删除)
      *
      * @param
-     *
      * @return R
      */
     @SysLog("新增导入设备的保养标准")
     @PostMapping("/import/execute")
-    public R importList( @RequestParam("file") MultipartFile file) throws Exception {
+    public R importList(@RequestParam("file") MultipartFile file) throws Exception {
         checkStandardService.importList(file);
         return new R();
     }
 
 
-
     @SysLog("导入设备的保养标准")
-    @PostMapping(value="/import",headers = "content-type=multipart/form-data")
-    public R importListByAdd( @RequestParam("files") MultipartFile[] files) throws Exception {
-        String result ="";
-        for(MultipartFile file: files){
+    @PostMapping(value = "/import", headers = "content-type=multipart/form-data")
+    public R importListByAdd(@RequestParam("files") MultipartFile[] files) throws Exception {
+        String result = "";
+        for (MultipartFile file : files) {
             result = result + checkStandardService.importListByAdd(file);
         }
         return new R<>(result);
@@ -244,14 +257,13 @@ public class CheckStandardController {
      * 导入保养标准老版本
      *
      * @param files bom excel文件
-     *
      * @return R
      */
     @SysLog("新增导入设备的保养标准")
-    @PostMapping(value="/import/old",headers = "content-type=multipart/form-data")
-    public R importListByAddOldVersion( @RequestParam("files") MultipartFile[] files) throws Exception {
-        String result ="";
-        for(MultipartFile file: files){
+    @PostMapping(value = "/import/old", headers = "content-type=multipart/form-data")
+    public R importListByAddOldVersion(@RequestParam("files") MultipartFile[] files) throws Exception {
+        String result = "";
+        for (MultipartFile file : files) {
             result = result + checkStandardService.importListByAddOldVersion(file);
         }
         return new R<>(result);
@@ -261,14 +273,13 @@ public class CheckStandardController {
      * 导入保养标准
      *
      * @param files bom excel文件
-     *
      * @return R
      */
     @SysLog("修改导入设备的保养标准执行时间")
-    @PostMapping(value="/import/update",headers = "content-type=multipart/form-data")
-    public R importListByUpdate( @RequestParam("files") MultipartFile[] files) throws Exception {
-        String result ="";
-        for(MultipartFile file: files){
+    @PostMapping(value = "/import/update", headers = "content-type=multipart/form-data")
+    public R importListByUpdate(@RequestParam("files") MultipartFile[] files) throws Exception {
+        String result = "";
+        for (MultipartFile file : files) {
             result = result + checkStandardService.importListByUpdate(file);
         }
         return new R<>(result);

+ 16 - 9
platform-service/src/main/java/com/platform/service/check/CheckStandardService.java

@@ -3,6 +3,7 @@ package com.platform.service.check;
 import com.platform.common.bean.AbstractPageResultBean;
 import com.platform.dao.bean.MyVOPage;
 import com.platform.dao.dto.check.CheckJobDTO;
+import com.platform.dao.dto.check.CheckStandardBatchDTO;
 import com.platform.dao.dto.check.CheckStandardDTO;
 import com.platform.dao.dto.sb.SbInfoDTO;
 import com.platform.dao.entity.check.CheckStandard;
@@ -32,15 +33,16 @@ public interface CheckStandardService extends IBaseService<CheckStandard, CheckS
      * @return :
      */
     boolean cascadingDeleteByKey(String id);
-   /**
-    * 批量删除
-    *
-    * @param ids :
-    * @return :
-    */
+
+    /**
+     * 批量删除
+     *
+     * @param ids :
+     * @return :
+     */
     int batchDelete(List<String> ids);
 
-    List<CheckStandardVO> selectList( CheckStandardDTO record);
+    List<CheckStandardVO> selectList(CheckStandardDTO record);
 
     List<CheckStandardVO> selectCheckstandardListByModelId(String modelId);
 
@@ -64,11 +66,16 @@ public interface CheckStandardService extends IBaseService<CheckStandard, CheckS
     String importList(MultipartFile file) throws IOException, InvalidFormatException, Exception;
 
     void genSpareWarnTask(int month, int type);
+
     void updateBatch(List<CheckStandard> updateStandardList);
+
+    void batch(CheckStandardBatchDTO checkStandardBatchDTO);
+
     /**
      * 分页查询
-     * @param month      :
-     * @param type      :
+     *
+     * @param month    :
+     * @param type     :
      * @param pageNum  :
      * @param pageSize :
      * @return :

+ 86 - 5
platform-service/src/main/java/com/platform/service/check/impl/CheckStandardServiceImpl.java

@@ -11,10 +11,7 @@ import com.platform.common.exception.BusinessException;
 import com.platform.common.util.*;
 import com.platform.dao.bean.MyPage;
 import com.platform.dao.bean.MyVOPage;
-import com.platform.dao.dto.check.CheckJobDTO;
-import com.platform.dao.dto.check.CheckStandardDTO;
-import com.platform.dao.dto.check.CheckStandardParamDTO;
-import com.platform.dao.dto.check.CheckStandardSpareDTO;
+import com.platform.dao.dto.check.*;
 import com.platform.dao.dto.part.PartInfoDTO;
 import com.platform.dao.dto.sb.SbInfoDTO;
 import com.platform.dao.dto.store.InStoreDetailDTO;
@@ -611,7 +608,7 @@ public class CheckStandardServiceImpl extends BaseServiceImpl<CheckStandardMappe
             checkStandard.setCheckUserType(2);
         } else if ("厂家".equals(vo.getCheckUserType().trim())) {
             checkStandard.setCheckUserType(3);
-        }else{
+        } else {
             checkStandard.setCheckUserType(2);
         }
 
@@ -750,6 +747,90 @@ public class CheckStandardServiceImpl extends BaseServiceImpl<CheckStandardMappe
         return null;
     }
 
+    /**
+     * 一次批量修改或者新增一个设备的保养标准
+     * 1:可以修改:id存在
+     * 2:可以删除:数据库查询出来的不在excel里面了
+     * 3:可以新增:id =null
+     *
+     * @param list
+     * @return
+     */
+    @Override
+    public void batch(CheckStandardBatchDTO checkStandardBatchDTO) {
+        if (CollectionUtils.isEmpty(checkStandardBatchDTO.getList())) {
+            throw new BusinessException("至少填写一条保养标准");
+        }
+        String sbId = checkStandardBatchDTO.getSbId();
+        SbInfo sbInfo = sbInfoMapper.selectByPrimaryKey(sbId);
+
+        //查询所有的保养任务标准id
+        CheckStandard search = new CheckStandard();
+        search.setSbId(sbInfo.getId());
+        List<CheckStandard> standards = mapper.select(search);
+        StringBuffer sb = new StringBuffer();
+        for (CheckStandard standard : standards) {
+            sb.append(standard.getId()).append(",");
+        }
+
+        List<CheckStandard> updates = new ArrayList<>();
+        List<CheckStandard> adds = new ArrayList<>();
+        List<CheckStandard> deletes = new ArrayList<>();
+        for (CheckStandardDTO vo : checkStandardBatchDTO.getList()) {
+            CheckStandard checkStandard = new CheckStandard();
+            if (StringUtils.isNotBlank(vo.getId()) && vo.getId().trim().equals("新增")) {
+                //新增
+                packageSbInfoAndCheckStandard(sbInfo, BeanConverterUtil.copyObjectProperties(vo,ExportCheckStandardVO2.class), checkStandard);
+                checkStandard.setId(IdGeneratorUtils.getObjectId());
+                checkStandard.setType(2);
+                checkStandard.setEnable(1);
+                adds.add(checkStandard);
+            } else {
+                //修改
+                checkStandard.setId(vo.getId());
+                packageSbInfoAndCheckStandard(sbInfo, BeanConverterUtil.copyObjectProperties(vo,ExportCheckStandardVO2.class), checkStandard);
+                updates.add(checkStandard);
+            }
+        }
+        for (CheckStandard standard : standards) {
+            boolean find = false;
+            for (CheckStandardDTO vo : checkStandardBatchDTO.getList()) {
+                if (standard.getId().equals(vo.getId())) {
+                    find = true;
+                    break;
+                }
+            }
+            if (!find) {
+                CheckStandard del = new CheckStandard();
+                del.setId(standard.getId());
+                deletes.add(del);
+            }
+        }
+
+        if (adds.size() > 0) {
+            log.info("新增:" + adds.size());
+            mapper.insertListforComplex(adds);
+        }
+
+        if (updates.size() > 0) {
+            log.info("修改:" + updates.size());
+            mapper.updateBatch(updates);
+        }
+        if (deletes.size() > 0) {
+            log.info("删除:" + deletes.size());
+            //先删除外键表数据
+            checkStandardSpareMapper.deleteBatch(deletes);
+            mapper.deleteBatch(deletes);
+            for (CheckStandard standard : deletes) {
+                CheckJob checkJob = new CheckJob();
+                checkJob.setStandardId(standard.getId());
+                checkJob.setRemark("标准被删除,无需执行任务");
+                // 删除已经生成的任务数据:变成完成(执行中的2,未完成的1)
+                checkJobMapper.updateBatchByDelStandard(checkJob);
+            }
+
+        }
+    }
 
     /**
      * 查询备件预警