From fb5f2518a69485ed2db1679906f93fd40b8e81bf Mon Sep 17 00:00:00 2001 From: liuxy Date: Wed, 6 Sep 2023 16:49:33 +0800 Subject: [PATCH] =?UTF-8?q?add=EF=BC=9A=E8=AE=BE=E5=A4=87=E7=82=B9?= =?UTF-8?q?=E6=A3=80=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rest/DevicesportcheckmstController.java | 119 +++++ .../DevicesportcheckplanmstController.java | 89 ++++ .../service/DevicesportcheckmstService.java | 134 ++++++ .../DevicesportcheckplanmstService.java | 111 +++++ .../service/dto/DevicesportcheckmstDto.java | 159 +++++++ .../dto/DevicesportcheckplanmstDto.java | 134 ++++++ .../impl/DevicesportcheckmstServiceImpl.java | 441 ++++++++++++++++++ .../DevicesportcheckplanmstServiceImpl.java | 392 ++++++++++++++++ .../wql/EM_BIDEVICESPORTCHECKPLAN_01.wql | 203 ++++++++ .../wql/EM_BIDEVICESPORTCHECK_01.wql | 284 +++++++++++ .../rest/DevicemaintenancemstController.java | 7 + .../nl/wms/masterdata_manage/em/wql/em.xls | Bin 281600 -> 308736 bytes .../sportcheck/devicesportcheck/AddDialog.vue | 291 ++++++++++++ .../devicesportcheck/devicesportcheckmst.js | 83 ++++ .../sportcheck/devicesportcheck/index.vue | 369 +++++++++++++++ .../devicesportcheckaudit/index.vue | 348 ++++++++++++++ .../devicesportcheckpa/ExecuteDialog.vue | 228 +++++++++ .../devicesportcheckpa/StartDialog.vue | 111 +++++ .../sportcheck/devicesportcheckpa/index.vue | 424 +++++++++++++++++ .../devicesportcheckplan/AddDialog.vue | 302 ++++++++++++ .../devicesportcheckplan/CopyAddDialog.vue | 289 ++++++++++++ .../devicesportcheckplan/DeviceDialog.vue | 357 ++++++++++++++ .../devicesportcheckplan/ItemDialog.vue | 372 +++++++++++++++ .../devicesportcheckplanmst.js | 51 ++ .../sportcheck/devicesportcheckplan/index.vue | 396 ++++++++++++++++ .../upkeep/devicemaintenanceplan/index.vue | 1 - 26 files changed, 5694 insertions(+), 1 deletion(-) create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/rest/DevicesportcheckmstController.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/rest/DevicesportcheckplanmstController.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/service/DevicesportcheckmstService.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/service/DevicesportcheckplanmstService.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/service/dto/DevicesportcheckmstDto.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/service/dto/DevicesportcheckplanmstDto.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/service/impl/DevicesportcheckmstServiceImpl.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/service/impl/DevicesportcheckplanmstServiceImpl.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/wql/EM_BIDEVICESPORTCHECKPLAN_01.wql create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/wql/EM_BIDEVICESPORTCHECK_01.wql create mode 100644 mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheck/AddDialog.vue create mode 100644 mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheck/devicesportcheckmst.js create mode 100644 mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheck/index.vue create mode 100644 mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckaudit/index.vue create mode 100644 mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckpa/ExecuteDialog.vue create mode 100644 mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckpa/StartDialog.vue create mode 100644 mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckpa/index.vue create mode 100644 mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckplan/AddDialog.vue create mode 100644 mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckplan/CopyAddDialog.vue create mode 100644 mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckplan/DeviceDialog.vue create mode 100644 mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckplan/ItemDialog.vue create mode 100644 mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckplan/devicesportcheckplanmst.js create mode 100644 mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckplan/index.vue diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/rest/DevicesportcheckmstController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/rest/DevicesportcheckmstController.java new file mode 100644 index 00000000..af719cba --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/rest/DevicesportcheckmstController.java @@ -0,0 +1,119 @@ + +package org.nl.wms.device_manage.sportcheck.rest; + + +import com.alibaba.fastjson.JSONObject; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.wms.device_manage.sportcheck.service.DevicesportcheckmstService; +import org.springframework.data.domain.Pageable; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + +/** + * @author Liuxy + * @date 2022-06-17 + **/ +@RestController +@RequiredArgsConstructor +@Api(tags = "设备点检单管理") +@RequestMapping("/api/devicesportcheckmst") +@Slf4j +public class DevicesportcheckmstController { + + private final DevicesportcheckmstService devicesportcheckmstService; + + @GetMapping + @ApiOperation("点检单维护查询") + public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { + return new ResponseEntity<>(devicesportcheckmstService.queryAll(whereJson, page), HttpStatus.OK); + } + + @GetMapping("/query") + @ApiOperation("点检单审核查询") + public ResponseEntity query2(@RequestParam Map whereJson, Pageable page) { + return new ResponseEntity<>(devicesportcheckmstService.query2(whereJson, page), HttpStatus.OK); + } + + + @GetMapping("query3") + @ApiOperation("点检单实施填报查询") + public ResponseEntity query3(@RequestParam Map whereJson, Pageable page) { + return new ResponseEntity<>(devicesportcheckmstService.query3(whereJson, page), HttpStatus.OK); + } + + @PostMapping + @ApiOperation("新增设备点检单") + public ResponseEntity create(@RequestBody JSONObject whereJson) { + devicesportcheckmstService.create(whereJson); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @GetMapping("/findByCode") + @ApiOperation("查询") + public ResponseEntity findByCode(@RequestParam Map whereJson) { + String code = (String) whereJson.get("id"); + return new ResponseEntity<>(devicesportcheckmstService.findByCode(code), HttpStatus.OK); + } + + @PutMapping + @ApiOperation("修改设备点检单") + public ResponseEntity update(@RequestBody JSONObject whereJson) { + devicesportcheckmstService.update(whereJson); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @ApiOperation("删除设备点检单") + @DeleteMapping + public ResponseEntity delete(@RequestBody Long[] ids) { + devicesportcheckmstService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/getDtl") + @ApiOperation("获取明细") + public ResponseEntity getDtl(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(devicesportcheckmstService.getDtl(whereJson),HttpStatus.OK); + } + + @PostMapping("/putIn") + @ApiOperation("提交") + public ResponseEntity putIn(@RequestBody JSONObject whereJson) { + devicesportcheckmstService.putIn(whereJson); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/startMaintain") + @ApiOperation("开始点检") + public ResponseEntity startMaintain(@RequestBody JSONObject whereJson) { + devicesportcheckmstService.startMaintain(whereJson); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/endMaintain") + @ApiOperation("结束点检") + public ResponseEntity endMaintain(@RequestBody JSONObject whereJson) { + devicesportcheckmstService.endMaintain(whereJson); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/auditMaintain") + @ApiOperation("审核") + public ResponseEntity auditMaintain(@RequestBody JSONObject whereJson) { + devicesportcheckmstService.auditMaintain(whereJson); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/submitMain") + @ApiOperation("保存") + public ResponseEntity submitMain(@RequestBody JSONObject whereJson) { + devicesportcheckmstService.submitMain(whereJson); + return new ResponseEntity<>(HttpStatus.OK); + } + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/rest/DevicesportcheckplanmstController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/rest/DevicesportcheckplanmstController.java new file mode 100644 index 00000000..c693b056 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/rest/DevicesportcheckplanmstController.java @@ -0,0 +1,89 @@ + +package org.nl.wms.device_manage.sportcheck.rest; + + +import com.alibaba.fastjson.JSONObject; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.wms.device_manage.sportcheck.service.DevicesportcheckplanmstService; +import org.springframework.data.domain.Pageable; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + +/** + * @author Liuxy + * @date 2022-06-16 + **/ +@RestController +@RequiredArgsConstructor +@Api(tags = "设备点检计划维护管理") +@RequestMapping("/api/devicesportcheckplanmst") +@Slf4j +public class DevicesportcheckplanmstController { + + private final DevicesportcheckplanmstService devicesportcheckplanmstService; + + @GetMapping + @ApiOperation("查询设备点检计划维护") + public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { + return new ResponseEntity<>(devicesportcheckplanmstService.queryAll(whereJson, page), HttpStatus.OK); + } + + @GetMapping("/queryDevice") + @ApiOperation("查询设备档案") + public ResponseEntity queryDevice(@RequestParam Map whereJson, Pageable page) { + return new ResponseEntity<>(devicesportcheckplanmstService.queryDevice(whereJson, page), HttpStatus.OK); + } + + @GetMapping("/queryDevice2") + @ApiOperation("查询设备档案2") + public ResponseEntity queryDevice2(@RequestParam Map whereJson, Pageable page) { + return new ResponseEntity<>(devicesportcheckplanmstService.queryDevice2(whereJson, page), HttpStatus.OK); + } + + @PostMapping + @ApiOperation("新增设备点检计划维护") + public ResponseEntity create(@RequestBody JSONObject whereJson) { + devicesportcheckplanmstService.create(whereJson); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PutMapping + @ApiOperation("修改设备点检计划维护") + public ResponseEntity update(@RequestBody JSONObject whereJson) { + devicesportcheckplanmstService.update(whereJson); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @ApiOperation("删除设备点检计划维护") + @DeleteMapping + public ResponseEntity delete(@RequestBody Long[] ids) { + devicesportcheckplanmstService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/getDtl") + @ApiOperation("获取点检明细") + public ResponseEntity getDtl(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(devicesportcheckplanmstService.getDtl(whereJson),HttpStatus.OK); + } + + @PutMapping("/changeActive") + @ApiOperation("修改启用状态") + public ResponseEntity changeActive(@RequestBody JSONObject json) { + devicesportcheckplanmstService.changeActive(json); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @PostMapping("/copyAdd") + @ApiOperation("复制新增") + public ResponseEntity copyAdd(@RequestBody JSONObject whereJson) { + devicesportcheckplanmstService.copyAdd(whereJson); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/service/DevicesportcheckmstService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/service/DevicesportcheckmstService.java new file mode 100644 index 00000000..c248cafa --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/service/DevicesportcheckmstService.java @@ -0,0 +1,134 @@ + +package org.nl.wms.device_manage.sportcheck.service; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.nl.wms.device_manage.sportcheck.service.dto.DevicesportcheckmstDto; +import org.springframework.data.domain.Pageable; + +import java.util.List; +import java.util.Map; + +/** + * @author Liuxy + * @description 服务接口 + * @date 2022-06-17 + **/ +public interface DevicesportcheckmstService { + + /** + * 查询数据分页 + * + * @param whereJson 条件 + * @param page 分页参数 + * @return Map + */ + Map queryAll(Map whereJson, Pageable page); + + /** + * 查询数据分页 + * + * @param whereJson 条件 + * @param page 分页参数 + * @return Map + */ + Map query2(Map whereJson, Pageable page); + + /** + * 查询所有数据不分页 + * + * @param whereJson 条件参数 + * @return List + */ + List queryAll(Map whereJson); + + /** + * 根据ID查询 + * + * @param maint_id ID + * @return Devicemaintenancemst + */ + DevicesportcheckmstDto findById(Long maint_id); + + /** + * 根据编码查询 + * + * @param code code + * @return Devicemaintenancemst + */ + DevicesportcheckmstDto findByCode(String code); + + + /** + * 创建 + * + * @param whereJson / + */ + void create(JSONObject whereJson); + + /** + * 编辑 + * + * @param whereJson / + */ + void update(JSONObject whereJson); + + /** + * 多选删除 + * + * @param ids / + */ + void deleteAll(Long[] ids); + + /** + * 获取明细 + * + * @param whereJson / + */ + JSONArray getDtl(JSONObject whereJson); + + /** + * 提交 + * + * @param whereJson / + */ + void putIn(JSONObject whereJson); + + /** + * 开始点检 + * + * @param whereJson / + */ + void startMaintain(JSONObject whereJson); + + /** + * 结束点检 + * + * @param whereJson / + */ + void endMaintain(JSONObject whereJson); + + /** + * 点检执行 + * + * @param whereJson / + */ + void submitMain(JSONObject whereJson); + + /** + * 审核 + * + * @param whereJson / + */ + void auditMaintain(JSONObject whereJson); + + /** + * 查询数据分页 + * + * @param whereJson 条件 + * @param page 分页参数 + * @return Map + */ + Map query3(Map whereJson, Pageable page); + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/service/DevicesportcheckplanmstService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/service/DevicesportcheckplanmstService.java new file mode 100644 index 00000000..8833532c --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/service/DevicesportcheckplanmstService.java @@ -0,0 +1,111 @@ + +package org.nl.wms.device_manage.sportcheck.service; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.nl.wms.device_manage.sportcheck.service.dto.DevicesportcheckplanmstDto; +import org.springframework.data.domain.Pageable; + +import java.util.List; +import java.util.Map; + +/** + * @author Liuxy + * @description 服务接口 + * @date 2022-06-16 + **/ +public interface DevicesportcheckplanmstService { + + /** + * 查询数据分页 + * + * @param whereJson 条件 + * @param page 分页参数 + * @return Map + */ + Map queryAll(Map whereJson, Pageable page); + + /** + * 查询所有数据不分页 + * + * @param whereJson 条件参数 + * @return List + */ + List queryAll(Map whereJson); + + /** + * 根据ID查询 + * + * @param maint_plan_id ID + * @return Devicemaintenanceplanmst + */ + DevicesportcheckplanmstDto findById(Long maint_plan_id); + + /** + * 根据编码查询 + * + * @param code code + * @return Devicemaintenanceplanmst + */ + DevicesportcheckplanmstDto findByCode(String code); + + + /** + * 创建 + * + * @param whereJson / + */ + void create(JSONObject whereJson); + + /** + * 编辑 + * + * @param whereJson / + */ + void update(JSONObject whereJson); + + /** + * 多选删除 + * + * @param ids / + */ + void deleteAll(Long[] ids); + + /** + * 查询数据分页 + * + * @param whereJson 条件 + * @param page 分页参数 + * @return Map + */ + Map queryDevice(Map whereJson, Pageable page); + + /** + * 查询数据分页 + * + * @param whereJson 条件 + * @param page 分页参数 + * @return Map + */ + Map queryDevice2(Map whereJson, Pageable page); + + /** + * 获取明细 + * + * @param whereJson / + */ + JSONArray getDtl(JSONObject whereJson); + + /** + * 修改启用状态 + * + */ + void changeActive(JSONObject json); + + /** + * 复制新增 + * + * @param whereJson / + */ + void copyAdd(JSONObject whereJson); +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/service/dto/DevicesportcheckmstDto.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/service/dto/DevicesportcheckmstDto.java new file mode 100644 index 00000000..a9629227 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/service/dto/DevicesportcheckmstDto.java @@ -0,0 +1,159 @@ +package org.nl.wms.device_manage.sportcheck.service.dto; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @author Liuxy + * @description / + * @date 2022-06-17 + **/ +@Data +public class DevicesportcheckmstDto implements Serializable { + + /** 设备保养单标识 */ + /** + * 防止精度丢失 + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long maint_id; + + /** + * 设备保养单编码 + */ + private String maint_code; + + /** + * 设备档案标识 + */ + private Long devicerecord_id; + + /** + * 单据类型 + */ + private String maintenancecycle; + + /** + * 单据状态 + */ + private String invstatus; + + /** + * 计划保养日期 + */ + private String plan_start_date; + + /** + * 明细数 + */ + private BigDecimal detail_count; + + /** + * 开始时间 + */ + private String real_start_date; + + /** + * 结束时间 + */ + private String real_end_date; + + /** + * 来源单据标识 + */ + private Long source_bill_id; + + /** + * 来源单据类型 + */ + private String source_bill_type; + + /** + * 来源单据编号 + */ + private String source_bill_code; + + /** + * 制单人 + */ + private Long input_optid; + + /** + * 制单人姓名 + */ + private String input_optname; + + /** + * 制单时间 + */ + private String input_time; + + /** + * 保养人 + */ + private Long update_optid; + + /** + * 保养人姓名 + */ + private String update_optname; + + /** + * 保养时间 + */ + private String update_time; + + /** + * 确认人 + */ + private Long confirm_optid; + + /** + * 确认人姓名 + */ + private String confirm_optname; + + /** + * 确认时间 + */ + private String confirm_time; + + /** + * 审核人 + */ + private Long audit_optid; + + /** + * 审核人姓名 + */ + private String audit_optname; + + /** + * 审核时间 + */ + private String audit_time; + + /** + * 是否删除 + */ + private String is_delete; + + /** + * 备注 + */ + private String remark; + + /** + * 部门ID + */ + private Long sysdeptid; + + /** + * 公司ID + */ + private Long syscompanyid; +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/service/dto/DevicesportcheckplanmstDto.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/service/dto/DevicesportcheckplanmstDto.java new file mode 100644 index 00000000..2da76a7d --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/service/dto/DevicesportcheckplanmstDto.java @@ -0,0 +1,134 @@ +package org.nl.wms.device_manage.sportcheck.service.dto; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @author Liuxy + * @description / + * @date 2022-06-16 + **/ +@Data +public class DevicesportcheckplanmstDto implements Serializable { + + /** 设备点检计划标识 */ + /** + * 防止精度丢失 + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long maint_plan_id; + + /** + * 设备点检计划编码 + */ + private String maint_plan_code; + + /** + * 设备点检计划名称 + */ + private String maint_plan_name; + + /** + * 设备档案标识 + */ + private Long devicerecord_id; + + /** + * 点检周期 + */ + private String maintenancecycle; + + /** + * 点检计划开始日期 + */ + private String plan_start_date; + + /** + * 明细数 + */ + private BigDecimal detail_count; + + /** + * 点检实际开始日期 + */ + private String real_start_date; + + /** + * 点检实际结束日期 + */ + private String real_end_date; + + /** + * 创建人 + */ + private Long create_id; + + /** + * 创建人姓名 + */ + private String create_name; + + /** + * 创建时间 + */ + private String create_time; + + /** + * 修改人 + */ + private Long update_optid; + + /** + * 修改人姓名 + */ + private String update_optname; + + /** + * 修改时间 + */ + private String update_time; + + /** + * 审核人 + */ + private Long confirm_optid; + + /** + * 审核人姓名 + */ + private String confirm_optname; + + /** + * 审核时间 + */ + private String confirm_time; + + /** + * 是否删除 + */ + private String is_delete; + + /** + * 备注 + */ + private String remark; + + /** + * 部门ID + */ + private Long sysdeptid; + + /** + * 公司ID + */ + private Long syscompanyid; + + /** + * 是否启用 + */ + private String is_active; +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/service/impl/DevicesportcheckmstServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/service/impl/DevicesportcheckmstServiceImpl.java new file mode 100644 index 00000000..d7d72ae9 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/service/impl/DevicesportcheckmstServiceImpl.java @@ -0,0 +1,441 @@ + +package org.nl.wms.device_manage.sportcheck.service.impl; + + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.utils.SecurityUtils; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.system.util.CodeUtil; +import org.nl.modules.wql.WQL; +import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.modules.wql.util.WqlUtil; +import org.nl.wms.device_manage.sportcheck.service.DevicesportcheckmstService; +import org.nl.wms.device_manage.sportcheck.service.dto.DevicesportcheckmstDto; +import org.nl.wms.masterdata_manage.备份master.service.ClassstandardService; +import org.nl.wms.system_manage.service.dept.ISysDeptService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author Liuxy + * @description 服务实现 + * @date 2022-06-17 + **/ +@Service +@RequiredArgsConstructor +@Slf4j +public class DevicesportcheckmstServiceImpl implements DevicesportcheckmstService { + private final ClassstandardService classstandardService; + + @Autowired + private ISysDeptService deptService; + + @Override + public Map queryAll(Map whereJson, Pageable page) { + String material_type_id = MapUtil.getStr(whereJson, "material_type_id"); + String class_idStr = MapUtil.getStr(whereJson, "class_idStr"); + String device_code = MapUtil.getStr(whereJson, "device_code"); + String maintenancecycle = MapUtil.getStr(whereJson, "maintenancecycle"); + String maint_code = MapUtil.getStr(whereJson, "maint_code"); + String invstatus = MapUtil.getStr(whereJson, "invstatus"); + String begin_time = MapUtil.getStr(whereJson, "begin_time"); + String end_time = MapUtil.getStr(whereJson, "end_time"); + + HashMap map = new HashMap<>(); + map.put("flag", "1"); + map.put("maintenancecycle", maintenancecycle); + map.put("invstatus", invstatus); + map.put("begin_time", begin_time); + map.put("end_time", end_time); + if (ObjectUtil.isNotEmpty(device_code)) map.put("device_code", "%" + device_code + "%"); + if (ObjectUtil.isNotEmpty(maint_code)) map.put("maint_code", "%" + maint_code + "%"); + //处理物料当前节点的所有子节点 + if (!StrUtil.isEmpty(material_type_id)) { + map.put("material_type_id", material_type_id); + String classIds = classstandardService.getChildIdStr(material_type_id); + map.put("classIds", classIds); + } else if (ObjectUtil.isNotEmpty(class_idStr)) { + String classIds = classstandardService.getAllChildIdStr(class_idStr); + map.put("classIds", classIds); + } + JSONObject json = WQL.getWO("EM_BIDEVICESPORTCHECK_01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "mst.input_time DESC"); + return json; + } + + @Override + public Map query2(Map whereJson, Pageable page) { + String material_type_id = MapUtil.getStr(whereJson, "material_type_id"); + String class_idStr = MapUtil.getStr(whereJson, "class_idStr"); + String device_code = MapUtil.getStr(whereJson, "device_code"); + String maintenancecycle = MapUtil.getStr(whereJson, "maintenancecycle"); + String maint_code = MapUtil.getStr(whereJson, "maint_code"); + String invstatus = MapUtil.getStr(whereJson, "invstatus"); + String begin_time = MapUtil.getStr(whereJson, "begin_time"); + String end_time = MapUtil.getStr(whereJson, "end_time"); + + HashMap map = new HashMap<>(); + map.put("flag", "3"); + map.put("maintenancecycle", maintenancecycle); + map.put("invstatus", invstatus); + map.put("begin_time", begin_time); + map.put("end_time", end_time); + if (ObjectUtil.isNotEmpty(device_code)) map.put("device_code", "%" + device_code + "%"); + if (ObjectUtil.isNotEmpty(maint_code)) map.put("maint_code", "%" + maint_code + "%"); + //处理物料当前节点的所有子节点 + if (!StrUtil.isEmpty(material_type_id)) { + map.put("material_type_id", material_type_id); + String classIds = classstandardService.getChildIdStr(material_type_id); + map.put("classIds", classIds); + } else if (ObjectUtil.isNotEmpty(class_idStr)) { + String classIds = classstandardService.getAllChildIdStr(class_idStr); + map.put("classIds", classIds); + } + JSONObject json = WQL.getWO("EM_BIDEVICESPORTCHECK_01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "mst.invstatus,mst.input_time DESC"); + return json; + } + + @Override + public List queryAll(Map whereJson) { + WQLObject wo = WQLObject.getWQLObject("em_bi_devicesportcheckmst"); + JSONArray arr = wo.query().getResultJSONArray(0); + if (ObjectUtil.isNotEmpty(arr)) return arr.toJavaList(DevicesportcheckmstDto.class); + return null; + } + + @Override + public DevicesportcheckmstDto findById(Long maint_id) { + WQLObject wo = WQLObject.getWQLObject("em_bi_devicesportcheckmst"); + JSONObject json = wo.query("maint_id = '" + maint_id + "'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(json)) { + return json.toJavaObject(DevicesportcheckmstDto.class); + } + return null; + } + + @Override + public DevicesportcheckmstDto findByCode(String code) { + WQLObject wo = WQLObject.getWQLObject("em_bi_devicesportcheckmst"); + JSONObject json = wo.query("maint_code ='" + code + "'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(json)) { + return json.toJavaObject(DevicesportcheckmstDto.class); + } + return null; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void create(JSONObject whereJson) { + JSONArray tableData = whereJson.getJSONArray("tableData"); + Long currentUserId = Long.parseLong(SecurityUtils.getCurrentUserId()); + String nickName = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + + WQLObject mstTab = WQLObject.getWQLObject("em_bi_devicesportcheckmst"); + WQLObject dtlTab = WQLObject.getWQLObject("em_bi_devicesportcheckdtl"); + + // 插入主表 + JSONObject jsonMst = new JSONObject(); + jsonMst.put("maint_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonMst.put("maint_code", CodeUtil.getNewCode("SPORT_CODE")); + jsonMst.put("devicerecord_id", whereJson.get("devicerecord_id")); + jsonMst.put("maintenancecycle", whereJson.getString("maintenancecycle")); + jsonMst.put("invstatus", "01"); + jsonMst.put("plan_start_date", whereJson.getString("plan_start_date")); + jsonMst.put("detail_count", tableData.size()); + jsonMst.put("input_optid", currentUserId); + jsonMst.put("input_optname", nickName); + jsonMst.put("input_time", now); + jsonMst.put("sysdeptid", 1); + jsonMst.put("syscompanyid", 1); + mstTab.insert(jsonMst); + + // 插入明细表 + for (int i = 0; i < tableData.size(); i++) { + JSONObject json = tableData.getJSONObject(i); + JSONObject jsonDtl = new JSONObject(); + jsonDtl.put("maint_dtl_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonDtl.put("maint_id", jsonMst.get("maint_id")); + jsonDtl.put("device_item_id", json.get("maint_item_id")); + jsonDtl.put("dtl_remark", json.getString("dtl_remark")); + dtlTab.insert(jsonDtl); + } + + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(JSONObject whereJson) { + JSONArray tableData = whereJson.getJSONArray("tableData"); + + WQLObject mstTab = WQLObject.getWQLObject("em_bi_devicesportcheckmst"); + WQLObject dtlTab = WQLObject.getWQLObject("em_bi_devicesportcheckdtl"); + + // 插入主表 + JSONObject jsonMst = mstTab.query("maint_id = '" + whereJson.getString("maint_id") + "'").uniqueResult(0); + jsonMst.put("devicerecord_id", whereJson.get("devicerecord_id")); + jsonMst.put("maintenancecycle", whereJson.getString("maintenancecycle")); + jsonMst.put("plan_start_date", whereJson.getString("plan_start_date")); + jsonMst.put("detail_count", tableData.size()); + mstTab.update(jsonMst); + + // 插入明细表 + dtlTab.delete("maint_id = '" + whereJson.getString("maint_id") + "'"); + for (int i = 0; i < tableData.size(); i++) { + JSONObject json = tableData.getJSONObject(i); + JSONObject jsonDtl = new JSONObject(); + jsonDtl.put("maint_dtl_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonDtl.put("maint_id", jsonMst.get("maint_id")); + jsonDtl.put("device_item_id", json.get("maint_item_id")); + jsonDtl.put("dtl_remark", json.getString("dtl_remark")); + dtlTab.insert(jsonDtl); + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteAll(Long[] ids) { + WQLObject mstTab = WQLObject.getWQLObject("em_bi_devicesportcheckmst"); + + WQLObject wo = WQLObject.getWQLObject("em_bi_devicesportcheckmst"); + for (Long maint_id : ids) { + JSONObject json = mstTab.query("maint_id ='" + maint_id + "'").uniqueResult(0); + if (!StrUtil.equals(json.getString("invstatus"), "01")) throw new BadRequestException("只能删除生成状态的单据"); + json.put("is_delete", "1"); + wo.update(json); + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public JSONArray getDtl(JSONObject whereJson) { + String maint_id = whereJson.getString("maint_id"); + + HashMap map = new HashMap<>(); + map.put("flag", "2"); + map.put("maint_id", maint_id); + + JSONArray resultJSONArray = WQL.getWO("EM_BIDEVICESPORTCHECK_01").addParamMap(map).process().getResultJSONArray(0); + return resultJSONArray; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void putIn(JSONObject whereJson) { + String maint_id = whereJson.getString("maint_id"); + WQLObject mstTab = WQLObject.getWQLObject("em_bi_devicesportcheckmst"); + JSONObject jsonMst = mstTab.query("maint_id = '" + maint_id + "'").uniqueResult(0); + jsonMst.put("invstatus", "02"); + mstTab.update(jsonMst); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void startMaintain(JSONObject whereJson) { + Long currentUserId = Long.parseLong(SecurityUtils.getCurrentUserId()); + String nickName = SecurityUtils.getCurrentNickName(); + + WQLObject mainMstTab = WQLObject.getWQLObject("em_bi_devicesportcheckmst"); // 点检单主表 + WQLObject fileTab = WQLObject.getWQLObject("EM_BI_EquipmentFile"); // 设备档案表 + WQLObject lifeTab = WQLObject.getWQLObject("EM_BI_DeviceLifeCycle"); // 设备声明周期表 + WQLObject planMstTab = WQLObject.getWQLObject("EM_BI_DeviceSportCheckPlanMst"); // 设备点检计划主表 + + // 更新点检单主表 + JSONObject jsonMainMst = mainMstTab.query("maint_id = '" + whereJson.getString("maint_id") + "'").uniqueResult(0); + jsonMainMst.put("invstatus", "03"); + jsonMainMst.put("update_optname",whereJson.getString("update_optname") ); + jsonMainMst.put("update_optname",whereJson.getString("update_optname") ); + jsonMainMst.put("real_start_date", DateUtil.now()); + mainMstTab.update(jsonMainMst); + + // 更新设备档案表 + JSONObject jsonFile = fileTab.query("devicerecord_id ='" + jsonMainMst.getString("devicerecord_id") + "' and is_delete = '0'").uniqueResult(0); + if (ObjectUtil.isEmpty(jsonFile)) throw new BadRequestException("此设备档案不存在"); + jsonFile.put("status", "40"); + fileTab.update(jsonFile); + + // 插入设备声明周期表 + JSONObject jsonLife = new JSONObject(); + jsonLife.put("devicechangedtl_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonLife.put("devicerecord_id", jsonMainMst.get("devicerecord_id")); + jsonLife.put("changetype", "20"); + jsonLife.put("change_id", currentUserId); + jsonLife.put("change_name", nickName); + jsonLife.put("change_time", DateUtil.now()); + jsonLife.put("change_reason", "点检开始"); + jsonLife.put("invtype", "点检单"); + jsonLife.put("invsid", jsonMainMst.get("maint_id")); + jsonLife.put("invcode", jsonMainMst.getString("maint_code")); + jsonLife.put("create_id", currentUserId); + jsonLife.put("create_name", nickName); + jsonLife.put("create_time", DateUtil.now()); + lifeTab.insert(jsonLife); + + // 根据来源标识 : 为空不处理、否则更新设备点检计划表 + String source_bill_id = jsonMainMst.getString("source_bill_id"); + if (ObjectUtil.isNotEmpty(source_bill_id)) { + JSONObject jsonPlanMst = planMstTab.query("maint_plan_id = '" + source_bill_id + "' and is_delete = '0'").uniqueResult(0); + if (ObjectUtil.isEmpty(jsonPlanMst)) throw new BadRequestException("此设备点检计划不存在"); + jsonPlanMst.put("real_start_date", DateUtil.today()); + planMstTab.update(jsonPlanMst); + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void endMaintain(JSONObject whereJson) { + String maint_id = whereJson.getString("maint_id"); + Long currentUserId = Long.parseLong(SecurityUtils.getCurrentUserId()); + String nickName = SecurityUtils.getCurrentNickName(); + + WQLObject mainMstTab = WQLObject.getWQLObject("em_bi_devicesportcheckmst"); // 点检单主表 + WQLObject fileTab = WQLObject.getWQLObject("EM_BI_EquipmentFile"); // 设备档案表 + WQLObject lifeTab = WQLObject.getWQLObject("EM_BI_DeviceLifeCycle"); // 设备声明周期表 + WQLObject dtlTab = WQLObject.getWQLObject("em_bi_devicesportcheckdtl"); + + this.submitMain(whereJson); + + // 1.明细中的是否完成 :必须为全部完成 + JSONArray dtlArr = dtlTab.query("maint_id = '" + maint_id + "'").getResultJSONArray(0); + for (int i = 0; i < dtlArr.size(); i++) { + JSONObject json = dtlArr.getJSONObject(i); + if (StrUtil.equals(json.getString("isfinish"), "0")) throw new BadRequestException("点检项目未完成"); + } + + // 更新点检单主表 + JSONObject jsonMainMst = mainMstTab.query("maint_id = '" + whereJson.getString("maint_id") + "'").uniqueResult(0); + jsonMainMst.put("invstatus", "04"); + jsonMainMst.put("real_end_date", DateUtil.now()); + mainMstTab.update(jsonMainMst); + + // 更新设备档案表 + JSONObject jsonFile = fileTab.query("devicerecord_id ='" + jsonMainMst.getString("devicerecord_id") + "' and is_delete = '0'").uniqueResult(0); + if (ObjectUtil.isEmpty(jsonFile)) throw new BadRequestException("此设备档案不存在"); + jsonFile.put("status", "10"); + fileTab.update(jsonFile); + + // 插入设备声明周期表 + JSONObject jsonLife = new JSONObject(); + jsonLife.put("devicechangedtl_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonLife.put("devicerecord_id", jsonMainMst.get("devicerecord_id")); + jsonLife.put("changetype", "21"); + jsonLife.put("change_id", currentUserId); + jsonLife.put("change_name", nickName); + jsonLife.put("change_time", DateUtil.now()); + jsonLife.put("change_reason", "点检结束"); + jsonLife.put("invsid", jsonMainMst.get("maint_id")); + jsonLife.put("invcode", jsonMainMst.getString("maint_code")); + jsonLife.put("create_id", currentUserId); + jsonLife.put("create_name", nickName); + jsonLife.put("create_time", DateUtil.now()); + lifeTab.insert(jsonLife); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void submitMain(JSONObject whereJson) { + String maint_id = whereJson.getString("maint_id"); + JSONArray tableData = whereJson.getJSONArray("tableData"); + Long currentUserId = Long.parseLong(SecurityUtils.getCurrentUserId()); + String nickName = SecurityUtils.getCurrentNickName(); + + WQLObject mstTab = WQLObject.getWQLObject("em_bi_devicesportcheckmst"); + WQLObject dtlTab = WQLObject.getWQLObject("em_bi_devicesportcheckdtl"); + + // 更新主表 + JSONObject jsonMst = mstTab.query("maint_id ='" + maint_id + "'").uniqueResult(0); + jsonMst.put("update_optname", whereJson.getString("update_optname")); + jsonMst.put("update_time", DateUtil.now()); + mstTab.update(jsonMst); + + // 更新明细表 + for (int i = 0; i < tableData.size(); i++) { + JSONObject json = tableData.getJSONObject(i); + JSONObject jsonDtl = dtlTab.query("maint_dtl_id = '" + json.getString("maint_dtl_id") + "'").uniqueResult(0); + jsonDtl.put("isfinish", json.getString("isfinish")); + dtlTab.update(jsonDtl); + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void auditMaintain(JSONObject whereJson) { + String maint_id = whereJson.getString("maint_id"); + Long currentUserId = Long.parseLong(SecurityUtils.getCurrentUserId()); + String nickName = SecurityUtils.getCurrentNickName(); + + WQLObject mstTab = WQLObject.getWQLObject("em_bi_devicesportcheckmst"); + WQLObject planMstTab = WQLObject.getWQLObject("EM_BI_DeviceSportCheckPlanMst"); // 设备点检计划主表 + + // 1.更新主表 + JSONObject jsonMst = mstTab.query("maint_id = '" + maint_id + "'").uniqueResult(0); + jsonMst.put("invstatus", "99"); + jsonMst.put("audit_optid", currentUserId); + jsonMst.put("audit_optname", nickName); + jsonMst.put("audit_time", DateUtil.now()); + jsonMst.put("confirm_optid", currentUserId); + jsonMst.put("confirm_optname", nickName); + jsonMst.put("confirm_time", DateUtil.now()); + mstTab.update(jsonMst); + + // 2.根据来源标识 : 为空不处理、否则更新设备点检计划表 + String source_bill_id = jsonMst.getString("source_bill_id"); + if (ObjectUtil.isNotEmpty(source_bill_id)) { + JSONObject jsonPlanMst = planMstTab.query("maint_plan_id = '" + source_bill_id + "' and is_delete = '0'").uniqueResult(0); + // 更新点检结束日期 + if (ObjectUtil.isEmpty(jsonPlanMst)) throw new BadRequestException("此设备点检计划不存在"); + jsonPlanMst.put("real_end_date", DateUtil.today()); + // 更新点检开始日期(如果为空) + if (ObjectUtil.isEmpty(jsonPlanMst.getString("real_start_date"))) { + jsonPlanMst.put("real_start_date", DateUtil.today()); + } + planMstTab.update(jsonPlanMst); + } + } + + @Override + public Map query3(Map whereJson, Pageable page) { + String material_type_id = MapUtil.getStr(whereJson, "material_type_id"); + String class_idStr = MapUtil.getStr(whereJson, "class_idStr"); + String device_code = MapUtil.getStr(whereJson, "device_code"); + String maintenancecycle = MapUtil.getStr(whereJson, "maintenancecycle"); + String maint_code = MapUtil.getStr(whereJson, "maint_code"); + String invstatus = MapUtil.getStr(whereJson, "invstatus"); + String begin_time = MapUtil.getStr(whereJson, "begin_time"); + String end_time = MapUtil.getStr(whereJson, "end_time"); + + HashMap map = new HashMap<>(); + map.put("flag", "4"); + map.put("maintenancecycle", maintenancecycle); + map.put("invstatus", invstatus); + map.put("begin_time", begin_time); + map.put("end_time", end_time); + if (ObjectUtil.isNotEmpty(device_code)) map.put("device_code", "%" + device_code + "%"); + if (ObjectUtil.isNotEmpty(maint_code)) map.put("maint_code", "%" + maint_code + "%"); + //处理物料当前节点的所有子节点 + if (!StrUtil.isEmpty(material_type_id)) { + map.put("material_type_id", material_type_id); + String classIds = classstandardService.getChildIdStr(material_type_id); + map.put("classIds", classIds); + } else if (ObjectUtil.isNotEmpty(class_idStr)) { + String classIds = classstandardService.getAllChildIdStr(class_idStr); + map.put("classIds", classIds); + } + JSONObject json = WQL.getWO("EM_BIDEVICESPORTCHECK_01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "input_time DESC"); + return json; + } + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/service/impl/DevicesportcheckplanmstServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/service/impl/DevicesportcheckplanmstServiceImpl.java new file mode 100644 index 00000000..9db912a8 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/service/impl/DevicesportcheckplanmstServiceImpl.java @@ -0,0 +1,392 @@ + +package org.nl.wms.device_manage.sportcheck.service.impl; + + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.utils.SecurityUtils; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.system.util.CodeUtil; +import org.nl.modules.wql.WQL; +import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.modules.wql.util.WqlUtil; +import org.nl.wms.device_manage.sportcheck.service.DevicesportcheckplanmstService; +import org.nl.wms.device_manage.sportcheck.service.dto.DevicesportcheckplanmstDto; +import org.nl.wms.masterdata_manage.备份master.service.ClassstandardService; +import org.nl.wms.system_manage.service.dept.ISysDeptService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author Liuxy + * @description 服务实现 + * @date 2022-06-16 + **/ +@Service +@RequiredArgsConstructor +@Slf4j +public class DevicesportcheckplanmstServiceImpl implements DevicesportcheckplanmstService { + private final ClassstandardService classstandardService; + + @Autowired + private ISysDeptService deptService; + + @Override + public Map queryAll(Map whereJson, Pageable page) { + String material_type_id = MapUtil.getStr(whereJson, "material_type_id"); + String device_code = MapUtil.getStr(whereJson, "device_code"); + String maintenancecycle = MapUtil.getStr(whereJson, "maintenancecycle"); + String maint_plan_code = MapUtil.getStr(whereJson, "maint_plan_code"); + String is_active = MapUtil.getStr(whereJson, "is_active"); + String begin_time = MapUtil.getStr(whereJson, "begin_time"); + String end_time = MapUtil.getStr(whereJson, "end_time"); + String maint_object = MapUtil.getStr(whereJson, "maint_object"); + String class_idStr = (String) whereJson.get("class_idStr"); + + HashMap map = new HashMap<>(); + map.put("flag", "1"); + map.put("maintenancecycle", maintenancecycle); + map.put("is_active", is_active); + map.put("begin_time", begin_time); + map.put("end_time", end_time); + map.put("maint_object", maint_object); + if (ObjectUtil.isNotEmpty(device_code)) map.put("device_code","%"+device_code+"%"); + if (ObjectUtil.isNotEmpty(maint_plan_code)) map.put("maint_plan_code","%"+maint_plan_code+"%"); + //处理物料当前节点的所有子节点 + if (!StrUtil.isEmpty(material_type_id)) { + map.put("material_type_id", material_type_id); + String classIds = classstandardService.getChildIdStr(material_type_id); + map.put("classIds", classIds); + } else if (ObjectUtil.isNotEmpty(class_idStr)) { + String classIds = classstandardService.getAllChildIdStr(class_idStr); + map.put("classIds", classIds); + } + JSONObject json = WQL.getWO("EM_BIDEVICESPORTCHECKPLAN_01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "mst.update_time DESC"); + JSONArray ja = json.getJSONArray("content"); + JSONArray ja2 = new JSONArray(); + for(int i=0;i queryAll(Map whereJson) { + WQLObject wo = WQLObject.getWQLObject("EM_BI_DeviceSportCheckPlanMst"); + JSONArray arr = wo.query().getResultJSONArray(0); + if (ObjectUtil.isNotEmpty(arr)) return arr.toJavaList(DevicesportcheckplanmstDto.class); + return null; + } + + @Override + public DevicesportcheckplanmstDto findById(Long maint_plan_id) { + WQLObject wo = WQLObject.getWQLObject("EM_BI_DeviceSportCheckPlanMst"); + JSONObject json = wo.query("maint_plan_id = '" + maint_plan_id + "'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(json)) { + return json.toJavaObject(DevicesportcheckplanmstDto.class); + } + return null; + } + + @Override + public DevicesportcheckplanmstDto findByCode(String code) { + WQLObject wo = WQLObject.getWQLObject("EM_BI_DeviceSportCheckPlanMst"); + JSONObject json = wo.query("code ='" + code + "'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(json)) { + return json.toJavaObject(DevicesportcheckplanmstDto.class); + } + return null; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void create(JSONObject whereJson) { + JSONArray tableData = whereJson.getJSONArray("tableData"); + Long currentUserId = Long.parseLong(SecurityUtils.getCurrentUserId()); + String nickName = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + + WQLObject mstTab = WQLObject.getWQLObject("EM_BI_DeviceSportCheckPlanMst"); + WQLObject dtlTab = WQLObject.getWQLObject("EM_BI_DeviceSportCheckPlanDtl"); + + // 校验:相同的设备、周期只能存在一个 + JSONObject jsonObject = mstTab.query("devicerecord_id = '" + whereJson.getString("devicerecord_id") + "' and maintenancecycle = '" + whereJson.getString("maintenancecycle") + "' and is_delete = '0'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(jsonObject)) throw new BadRequestException("该设备当前周期计划已经存在"); + + // 插入主表 + JSONObject jsonMst = new JSONObject(); + jsonMst.put("maint_plan_id", IdUtil.getSnowflake(1,1).nextId()); + jsonMst.put("maint_plan_code", CodeUtil.getNewCode("SPORT_PLAN_CODE")); + jsonMst.put("maint_plan_name", whereJson.getString("maint_plan_name")); + jsonMst.put("devicerecord_id", whereJson.getString("devicerecord_id")); + jsonMst.put("maintenancecycle", whereJson.getString("maintenancecycle")); + jsonMst.put("plan_start_date", whereJson.getString("plan_start_date")); + jsonMst.put("maint_object", whereJson.getString("maint_object")); + jsonMst.put("detail_count", tableData.size()); + jsonMst.put("create_id", currentUserId); + jsonMst.put("create_name", nickName); + jsonMst.put("create_time", now); + jsonMst.put("update_optid", currentUserId); + jsonMst.put("update_optname", nickName); + jsonMst.put("update_time", now); + jsonMst.put("remark", whereJson.getString("remark")); + jsonMst.put("sysdeptid", 1); + jsonMst.put("syscompanyid", 1); + mstTab.insert(jsonMst); + // 插入明细 + for (int i = 0; i < tableData.size(); i++) { + JSONObject json = tableData.getJSONObject(i); + JSONObject jsonDtl = new JSONObject(); + jsonDtl.put("maint_plan_dtl_id", IdUtil.getSnowflake(1,1).nextId()); + jsonDtl.put("maint_plan_id", jsonMst.get("maint_plan_id")); + jsonDtl.put("maint_item_id", json.get("maint_item_id")); + jsonDtl.put("dtl_remark", json.getString("dtl_remark")); + dtlTab.insert(jsonDtl); + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(JSONObject whereJson) { + JSONArray tableData = whereJson.getJSONArray("tableData"); + Long currentUserId = Long.parseLong(SecurityUtils.getCurrentUserId()); + String nickName = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + + WQLObject mstTab = WQLObject.getWQLObject("EM_BI_DeviceSportCheckPlanMst"); + WQLObject dtlTab = WQLObject.getWQLObject("EM_BI_DeviceSportCheckPlanDtl"); + + // 更新主表 + JSONObject jsonMst = mstTab.query("maint_plan_id = '" + whereJson.getString("maint_plan_id") + "'").uniqueResult(0); + jsonMst.put("maint_plan_name", whereJson.getString("maint_plan_name")); + jsonMst.put("devicerecord_id", whereJson.getString("devicerecord_id")); + jsonMst.put("maintenancecycle", whereJson.getString("maintenancecycle")); + jsonMst.put("plan_start_date", whereJson.getString("plan_start_date")); + jsonMst.put("maint_object", whereJson.getString("maint_object")); + jsonMst.put("detail_count", tableData.size()); + jsonMst.put("update_optid", currentUserId); + jsonMst.put("update_optname", nickName); + jsonMst.put("update_time", now); + jsonMst.put("remark", whereJson.getString("remark")); + jsonMst.put("sysdeptid", 1); + jsonMst.put("syscompanyid", 1); + mstTab.update(jsonMst); + // 插入明细 + if (ObjectUtil.isNotEmpty(tableData)) { + dtlTab.delete("maint_plan_id = '"+whereJson.getString("maint_plan_id")+"'"); + } + for (int i = 0; i < tableData.size(); i++) { + JSONObject json = tableData.getJSONObject(i); + JSONObject jsonDtl = new JSONObject(); + jsonDtl.put("maint_plan_dtl_id", IdUtil.getSnowflake(1,1).nextId()); + jsonDtl.put("maint_plan_id", jsonMst.get("maint_plan_id")); + jsonDtl.put("maint_item_id", json.get("maint_item_id")); + jsonDtl.put("dtl_remark", json.getString("dtl_remark")); + dtlTab.insert(jsonDtl); + } + + JSONArray jsonObject = mstTab.query("devicerecord_id = '" + whereJson.getString("devicerecord_id") + "' and maintenancecycle = '" + whereJson.getString("maintenancecycle") + "' and is_delete = '0'").getResultJSONArray(0); + if (jsonObject.size() > 1) throw new BadRequestException("该设备当前周期计划已经存在"); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteAll(Long[] ids) { + Long currentUserId = Long.parseLong(SecurityUtils.getCurrentUserId()); + String nickName = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + + WQLObject wo = WQLObject.getWQLObject("EM_BI_DeviceSportCheckPlanMst"); + for (Long maint_plan_id : ids) { + JSONObject param = new JSONObject(); + param.put("maint_plan_id", String.valueOf(maint_plan_id)); + param.put("is_delete", "1"); + param.put("update_optid", currentUserId); + param.put("update_optname", nickName); + param.put("update_time", now); + wo.update(param); + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Map queryDevice(Map whereJson, Pageable page) { + String device_code = MapUtil.getStr(whereJson, "device_code"); + // 查询设备档案 + HashMap map = new HashMap<>(); + map.put("flag", "2"); + if (ObjectUtil.isNotEmpty(device_code)) map.put("device_code", "%"+device_code+"%"); + + String dept_id = MapUtil.getStr(whereJson, "dept_id"); + if (!StrUtil.isEmpty(dept_id)) { + String deptIds = deptService.getChildIdStr(Long.parseLong(dept_id)); + map.put("deptIds", deptIds); + } + + String use_id = MapUtil.getStr(whereJson, "use_id"); + if (!StrUtil.isEmpty(use_id)) { + String useIds = deptService.getChildIdStr(Long.parseLong(use_id)); + map.put("useIds", useIds); + } + + JSONObject json = WQL.getWO("EM_BIDEVICESPORTCHECKPLAN_01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "file.update_time DESC"); + return json; + } + + @Override + public Map queryDevice2(Map whereJson, Pageable page) { + String device_code = MapUtil.getStr(whereJson, "device_code"); + // 查询设备档案 + HashMap map = new HashMap<>(); + map.put("flag", "4"); + if (ObjectUtil.isNotEmpty(device_code)) map.put("device_code", "%"+device_code+"%"); + + String dept_id = MapUtil.getStr(whereJson, "dept_id"); + if (!StrUtil.isEmpty(dept_id)) { + String deptIds = deptService.getChildIdStr(Long.parseLong(dept_id)); + map.put("deptIds", deptIds); + } + + String use_id = MapUtil.getStr(whereJson, "use_id"); + if (!StrUtil.isEmpty(use_id)) { + String useIds = deptService.getChildIdStr(Long.parseLong(use_id)); + map.put("useIds", useIds); + } + + // 如果班组为空 则默认当前用户部门 + /* if (ObjectUtil.isEmpty(use_id) && ObjectUtil.isEmpty(dept_id)) { + // 获取当前登陆用户 + Long currentUserId = Long.parseLong(SecurityUtils.getCurrentUserId()); + JSONObject jsonUser = WQLObject.getWQLObject("sys_user").query("user_id = '" + currentUserId + "'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(jsonUser)) { + String dept_str = deptService.getChildIdStr(jsonUser.getLong("dept_id")); + if (ObjectUtil.isNotEmpty(dept_str)) { + map.put("dept_str",dept_str); + } + } + }*/ + + + + JSONObject json = WQL.getWO("EM_BIDEVICESPORTCHECKPLAN_01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "file.update_time DESC"); + return json; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public JSONArray getDtl(JSONObject whereJson) { + String maint_plan_id = whereJson.getString("maint_plan_id"); + JSONArray resultJSONArray = WQL.getWO("EM_BIDEVICESPORTCHECKPLAN_01").addParam("flag", "3").addParam("maint_plan_id", maint_plan_id).process().getResultJSONArray(0); + return resultJSONArray; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void changeActive(JSONObject whereJson) { + Long currentUserId = Long.parseLong(SecurityUtils.getCurrentUserId()); + String nickName = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + WQLObject tab = WQLObject.getWQLObject("EM_BI_DeviceSportCheckPlanMst"); + JSONObject json = tab.query("maint_plan_id = '" + whereJson.getString("maint_plan_id") + "'").uniqueResult(0); + String is_active = "1"; + if (StrUtil.equals("1", json.getString("is_active"))) { + is_active = "0"; + json.put("confirm_optid", ""); + json.put("confirm_optname", ""); + json.put("confirm_time", ""); + } else { + json.put("confirm_optid", currentUserId); + json.put("confirm_optname", nickName); + json.put("confirm_time", now); + } + json.put("is_active", is_active); + tab.update(json); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void copyAdd(JSONObject whereJson) { + JSONArray tableData = whereJson.getJSONArray("tableData"); + Long currentUserId = Long.parseLong(SecurityUtils.getCurrentUserId()); + String nickName = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + + WQLObject mstTab = WQLObject.getWQLObject("EM_BI_DeviceSportCheckPlanMst"); + WQLObject dtlTab = WQLObject.getWQLObject("EM_BI_DeviceSportCheckPlanDtl"); + + // 校验:相同的设备、周期只能存在一个 + JSONObject jsonObject = mstTab.query("devicerecord_id = '" + whereJson.getString("devicerecord_id") + "' and maintenancecycle = '" + whereJson.getString("maintenancecycle") + "' and is_delete = '0'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(jsonObject)) throw new BadRequestException("此计划的周期只能存在一个"); + + // 插入主表 + JSONObject jsonMst = new JSONObject(); + jsonMst.put("maint_plan_id", IdUtil.getSnowflake(1,1).nextId()); + jsonMst.put("maint_plan_code", CodeUtil.getNewCode("MAINT_PLAN_CODE")); + jsonMst.put("maint_plan_name", whereJson.getString("maint_plan_name")); + jsonMst.put("devicerecord_id", whereJson.getString("devicerecord_id")); + jsonMst.put("maintenancecycle", whereJson.getString("maintenancecycle")); + jsonMst.put("plan_start_date", whereJson.getString("plan_start_date")); + jsonMst.put("maint_object", whereJson.getString("maint_object")); + jsonMst.put("detail_count", tableData.size()); + jsonMst.put("create_id", currentUserId); + jsonMst.put("create_name", nickName); + jsonMst.put("create_time", now); + jsonMst.put("update_optid", currentUserId); + jsonMst.put("update_optname", nickName); + jsonMst.put("update_time", now); + jsonMst.put("remark", whereJson.getString("remark")); + jsonMst.put("sysdeptid", 1); + jsonMst.put("syscompanyid", 1); + mstTab.insert(jsonMst); + // 插入明细 + for (int i = 0; i < tableData.size(); i++) { + JSONObject json = tableData.getJSONObject(i); + JSONObject jsonDtl = new JSONObject(); + jsonDtl.put("maint_plan_dtl_id", IdUtil.getSnowflake(1,1).nextId()); + jsonDtl.put("maint_plan_id", jsonMst.get("maint_plan_id")); + jsonDtl.put("maint_item_id", json.get("maint_item_id")); + jsonDtl.put("dtl_remark", json.getString("dtl_remark")); + dtlTab.insert(jsonDtl); + } + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/wql/EM_BIDEVICESPORTCHECKPLAN_01.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/wql/EM_BIDEVICESPORTCHECKPLAN_01.wql new file mode 100644 index 00000000..1a6824a9 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/wql/EM_BIDEVICESPORTCHECKPLAN_01.wql @@ -0,0 +1,203 @@ +[交易说明] + 交易名: 设备点检计划维护分页查询 + 所属模块: + 功能简述: + 版权所有: + 表引用: + 版本经历: + +[数据库] + --指定数据库,为空采用默认值,默认为db.properties中列出的第一个库 + +[IO定义] + ################################################# + ## 表字段对应输入参数 + ################################################# + 输入.flag TYPEAS s_string + 输入.classIds TYPEAS f_string + 输入.dept_str TYPEAS f_string + 输入.deptIds TYPEAS f_string + 输入.useIds TYPEAS f_string + 输入.device_code TYPEAS s_string + 输入.maintenancecycle TYPEAS s_string + 输入.maint_plan_id TYPEAS s_string + 输入.maint_plan_code TYPEAS s_string + 输入.is_active TYPEAS s_string + 输入.begin_time TYPEAS s_string + 输入.end_time TYPEAS s_string + 输入.maint_object TYPEAS s_string + + +[临时表] + --这边列出来的临时表就会在运行期动态创建 + +[临时变量] + --所有中间过程变量均可在此处定义 + +[业务过程] + + ########################################## + # 1、输入输出检查 # + ########################################## + + + ########################################## + # 2、主过程前处理 # + ########################################## + + + ########################################## + # 3、业务主过程 # + ########################################## + + IF 输入.flag = "1" + PAGEQUERY + SELECT + mst.*, + class.class_name, + file.device_code, + file.device_name, + file.extend_code + FROM + EM_BI_DeviceSportCheckPlanMst mst + LEFT JOIN EM_BI_EquipmentFile file ON file.devicerecord_id = mst.devicerecord_id + LEFT JOIN md_pb_classstandard class ON file.material_type_id = class.class_id + WHERE + mst.is_delete = '0' + AND file.is_delete = '0' + + OPTION 输入.device_code <> "" + (file.device_code like 输入.device_code or + file.device_name like 输入.device_code) + ENDOPTION + + OPTION 输入.maint_plan_code <> "" + (mst.maint_plan_code like 输入.maint_plan_code or + mst.maint_plan_name like 输入.maint_plan_code) + ENDOPTION + + OPTION 输入.classIds <> "" + class.class_id in 输入.classIds + ENDOPTION + + OPTION 输入.maintenancecycle <> "" + mst.maintenancecycle = 输入.maintenancecycle + ENDOPTION + + OPTION 输入.is_active <> "" + mst.is_active = 输入.is_active + ENDOPTION + + OPTION 输入.begin_time <> "" + mst.plan_start_date >= 输入.begin_time + ENDOPTION + + OPTION 输入.end_time <> "" + mst.plan_start_date <= 输入.end_time + ENDOPTION + + OPTION 输入.maint_object <> "" + mst.maint_object = 输入.maint_object + ENDOPTION + + ENDSELECT + ENDPAGEQUERY + ENDIF + + IF 输入.flag = "2" + PAGEQUERY + SELECT + file.*, + class.class_name, + work.workprocedure_name, + d1.name AS dept_name, + d2.name AS use_name + FROM + EM_BI_EquipmentFile file + LEFT JOIN md_pb_classstandard class ON file.material_type_id = class.class_id + LEFT JOIN pdm_bi_workprocedure work ON file.workprocedure_id = work.workprocedure_id + LEFT JOIN sys_dept d1 ON file.belong_deptid = d1.dept_id + LEFT JOIN sys_dept d2 ON file.use_deptid = d2.dept_id + WHERE + file.is_delete = '0' + AND file.status not in (90,91) + + OPTION 输入.device_code <> "" + (file.device_code like 输入.device_code or + file.device_name like 输入.device_code) + ENDOPTION + + OPTION 输入.deptIds <> "" + d1.dept_id in 输入.deptIds + ENDOPTION + + OPTION 输入.useIds <> "" + d2.dept_id in 输入.useIds + ENDOPTION + + ENDSELECT + ENDPAGEQUERY + ENDIF + + IF 输入.flag = "3" + QUERY + SELECT + dtl.maint_plan_dtl_id, + dtl.maint_plan_id, + dtl.dtl_remark, + item.* + FROM + EM_BI_DeviceSportCheckPlanDtl dtl + LEFT JOIN EM_BI_DeviceSportCheckItems item ON item.maint_item_id = dtl.maint_item_id + WHERE + 1=1 + + OPTION 输入.maint_plan_id <> "" + dtl.maint_plan_id = 输入.maint_plan_id + ENDOPTION + + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "4" + PAGEQUERY + SELECT + file.*, + class.class_name, + work.workprocedure_name, + d1.name AS dept_name, + d2.name AS use_name + FROM + EM_BI_EquipmentFile file + LEFT JOIN md_pb_classstandard class ON file.material_type_id = class.class_id + LEFT JOIN pdm_bi_workprocedure work ON file.workprocedure_id = work.workprocedure_id + LEFT JOIN sys_dept d1 ON file.belong_deptid = d1.dept_id + LEFT JOIN sys_dept d2 ON file.use_deptid = d2.dept_id + WHERE + file.is_delete = '0' + AND file.status not in (90,91) + + OPTION 输入.device_code <> "" + (file.device_code like 输入.device_code or + file.device_name like 输入.device_code) + ENDOPTION + + OPTION 输入.deptIds <> "" + d1.dept_id in 输入.deptIds + ENDOPTION + + OPTION 输入.useIds <> "" + d2.dept_id in 输入.useIds + ENDOPTION + + OPTION 输入.dept_str <> "" + d2.dept_id in 输入.dept_str + ENDOPTION + + ENDSELECT + ENDPAGEQUERY + ENDIF + + + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/wql/EM_BIDEVICESPORTCHECK_01.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/wql/EM_BIDEVICESPORTCHECK_01.wql new file mode 100644 index 00000000..2623b5eb --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/sportcheck/wql/EM_BIDEVICESPORTCHECK_01.wql @@ -0,0 +1,284 @@ +[交易说明] + 交易名: 设备点检单维护分页查询 + 所属模块: + 功能简述: + 版权所有: + 表引用: + 版本经历: + +[数据库] + --指定数据库,为空采用默认值,默认为db.properties中列出的第一个库 + +[IO定义] + ################################################# + ## 表字段对应输入参数 + ################################################# + 输入.flag TYPEAS s_string + 输入.classIds TYPEAS f_string + 输入.device_code TYPEAS s_string + 输入.maintenancecycle TYPEAS s_string + 输入.maint_id TYPEAS s_string + 输入.maint_code TYPEAS s_string + 输入.invstatus TYPEAS s_string + 输入.begin_time TYPEAS s_string + 输入.end_time TYPEAS s_string + 输入.maint_object TYPEAS s_string + 输入.deptIds TYPEAS f_string + + +[临时表] + --这边列出来的临时表就会在运行期动态创建 + +[临时变量] + --所有中间过程变量均可在此处定义 + +[业务过程] + + ########################################## + # 1、输入输出检查 # + ########################################## + + + ########################################## + # 2、主过程前处理 # + ########################################## + + + ########################################## + # 3、业务主过程 # + ########################################## + + IF 输入.flag = "1" + PAGEQUERY + SELECT + mst.*, + class.class_name, + file.device_code, + file.material_type_id, + file.device_name, + file.extend_code, + d1.name AS dept_name, + d2.name AS use_name + FROM + EM_BI_DeviceSportCheckMst mst + LEFT JOIN EM_BI_EquipmentFile file ON file.devicerecord_id = mst.devicerecord_id + LEFT JOIN md_pb_classstandard class ON file.material_type_id = class.class_id + LEFT JOIN sys_dept d1 ON file.belong_deptid = d1.dept_id + LEFT JOIN sys_dept d2 ON file.use_deptid = d2.dept_id + WHERE + mst.is_delete = '0' + AND file.is_delete = '0' + + OPTION 输入.device_code <> "" + (file.device_code like 输入.device_code or + file.device_name like 输入.device_code) + ENDOPTION + + OPTION 输入.maint_code <> "" + (mst.maint_code like 输入.maint_code or + mst.maint_code like 输入.maint_code) + ENDOPTION + + OPTION 输入.classIds <> "" + class.class_id in 输入.classIds + ENDOPTION + + OPTION 输入.maintenancecycle <> "" + mst.maintenancecycle = 输入.maintenancecycle + ENDOPTION + + OPTION 输入.begin_time <> "" + mst.plan_start_date >= 输入.begin_time + ENDOPTION + + OPTION 输入.end_time <> "" + mst.plan_start_date <= 输入.end_time + ENDOPTION + + OPTION 输入.invstatus <> "" + mst.invstatus = 输入.invstatus + ENDOPTION + + ENDSELECT + ENDPAGEQUERY + ENDIF + + IF 输入.flag = "3" + PAGEQUERY + SELECT + mst.*, + class.class_name, + file.device_code, + file.device_name, + file.extend_code + FROM + EM_BI_DeviceSportCheckMst mst + LEFT JOIN EM_BI_EquipmentFile file ON file.devicerecord_id = mst.devicerecord_id + LEFT JOIN md_pb_classstandard class ON file.material_type_id = class.class_id + WHERE + mst.is_delete = '0' + AND file.is_delete = '0' + AND mst.invstatus in ('04','99') + + OPTION 输入.device_code <> "" + (file.device_code like 输入.device_code or + file.device_name like 输入.device_code) + ENDOPTION + + OPTION 输入.maint_code <> "" + (mst.maint_code like 输入.maint_code or + mst.maint_code like 输入.maint_code) + ENDOPTION + + OPTION 输入.classIds <> "" + class.class_id in 输入.classIds + ENDOPTION + + OPTION 输入.maintenancecycle <> "" + mst.maintenancecycle = 输入.maintenancecycle + ENDOPTION + + OPTION 输入.begin_time <> "" + mst.plan_start_date >= 输入.begin_time + ENDOPTION + + OPTION 输入.end_time <> "" + mst.plan_start_date <= 输入.end_time + ENDOPTION + + OPTION 输入.invstatus <> "" + mst.invstatus = 输入.invstatus + ENDOPTION + + ENDSELECT + ENDPAGEQUERY + ENDIF + + IF 输入.flag = "2" + QUERY + SELECT + dtl.maint_dtl_id, + dtl.maint_id, + dtl.device_item_id, + dtl.isfinish, + dtl.dtl_remark, + item.* + FROM + EM_BI_DeviceSportCheckDtl dtl + LEFT JOIN EM_BI_DeviceSportCheckItems item ON item.maint_item_id = dtl.device_item_id + WHERE + 1=1 + + OPTION 输入.maint_id <> "" + dtl.maint_id = 输入.maint_id + ENDOPTION + + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "4" + PAGEQUERY + SELECT + mst.*, + class.class_name, + file.device_code, + file.device_name, + file.extend_code, + d1.name AS dept_name, + d2.name AS use_name + FROM + EM_BI_DeviceSportCheckMst mst + LEFT JOIN EM_BI_EquipmentFile file ON file.devicerecord_id = mst.devicerecord_id + LEFT JOIN md_pb_classstandard class ON file.material_type_id = class.class_id + LEFT JOIN sys_dept d1 ON file.belong_deptid = d1.dept_id + LEFT JOIN sys_dept d2 ON file.use_deptid = d2.dept_id + WHERE + mst.is_delete = '0' + AND file.is_delete = '0' + AND mst.invstatus in ('02','03') + + OPTION 输入.device_code <> "" + (file.device_code like 输入.device_code or + file.device_name like 输入.device_code) + ENDOPTION + + OPTION 输入.maint_code <> "" + (mst.maint_code like 输入.maint_code or + mst.maint_code like 输入.maint_code) + ENDOPTION + + OPTION 输入.classIds <> "" + class.class_id in 输入.classIds + ENDOPTION + + OPTION 输入.maintenancecycle <> "" + mst.maintenancecycle = 输入.maintenancecycle + ENDOPTION + + OPTION 输入.begin_time <> "" + mst.plan_start_date >= 输入.begin_time + ENDOPTION + + OPTION 输入.end_time <> "" + mst.plan_start_date <= 输入.end_time + ENDOPTION + + OPTION 输入.invstatus <> "" + mst.invstatus = 输入.invstatus + ENDOPTION + + UNION + + SELECT + mst.*, + class.class_name, + file.device_code, + file.device_name, + file.extend_code, + d1.name AS dept_name, + d2.name AS use_name + FROM + EM_BI_DeviceSportCheckMst mst + LEFT JOIN EM_BI_EquipmentFile file ON file.devicerecord_id = mst.devicerecord_id + LEFT JOIN md_pb_classstandard class ON file.material_type_id = class.class_id + LEFT JOIN sys_dept d1 ON file.belong_deptid = d1.dept_id + LEFT JOIN sys_dept d2 ON file.use_deptid = d2.dept_id + WHERE + mst.is_delete = '0' + AND file.is_delete = '0' + AND mst.invstatus in ('04') + + OPTION 输入.device_code <> "" + (file.device_code like 输入.device_code or + file.device_name like 输入.device_code) + ENDOPTION + + OPTION 输入.maint_code <> "" + (mst.maint_code like 输入.maint_code or + mst.maint_code like 输入.maint_code) + ENDOPTION + + OPTION 输入.classIds <> "" + class.class_id in 输入.classIds + ENDOPTION + + OPTION 输入.maintenancecycle <> "" + mst.maintenancecycle = 输入.maintenancecycle + ENDOPTION + + OPTION 输入.begin_time <> "" + mst.plan_start_date >= 输入.begin_time + ENDOPTION + + OPTION 输入.end_time <> "" + mst.plan_start_date <= 输入.end_time + ENDOPTION + + OPTION 输入.invstatus <> "" + mst.invstatus = 输入.invstatus + ENDOPTION + + ENDSELECT + ENDPAGEQUERY + ENDIF \ No newline at end of file diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/upkeep/rest/DevicemaintenancemstController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/upkeep/rest/DevicemaintenancemstController.java index 7f5982b7..ad7f154f 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/upkeep/rest/DevicemaintenancemstController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/upkeep/rest/DevicemaintenancemstController.java @@ -110,4 +110,11 @@ public class DevicemaintenancemstController { return new ResponseEntity<>(HttpStatus.OK); } + @PostMapping("/submitMain") + @ApiOperation("保存") + public ResponseEntity submitMain(@RequestBody JSONObject whereJson) { + devicemaintenancemstService.submitMain(whereJson); + return new ResponseEntity<>(HttpStatus.OK); + } + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/em/wql/em.xls b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/em/wql/em.xls index 696d793a5734cf518028121e54470c460590f710..c3510ea2f34ab890fb6bc99e36a29ecfdd4d525f 100644 GIT binary patch delta 37330 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 WGWMHCSvMa`U1WY1-Fw_IyZ-~G=R^|# diff --git a/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheck/AddDialog.vue b/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheck/AddDialog.vue new file mode 100644 index 00000000..3b0df6dc --- /dev/null +++ b/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheck/AddDialog.vue @@ -0,0 +1,291 @@ + + + + + diff --git a/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheck/devicesportcheckmst.js b/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheck/devicesportcheckmst.js new file mode 100644 index 00000000..cad94416 --- /dev/null +++ b/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheck/devicesportcheckmst.js @@ -0,0 +1,83 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/devicesportcheckmst', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/devicesportcheckmst/', + method: 'delete', + data: ids + }) +} + +export function findByCode(params) { + return request({ + url: 'api/devicesportcheckmst/findByCode', + method: 'get', + params + }) +} + +export function edit(data) { + return request({ + url: 'api/devicesportcheckmst', + method: 'put', + data + }) +} + +export function getDtl(data) { + return request({ + url: 'api/devicesportcheckmst/getDtl', + method: 'post', + data + }) +} + +export function putIn(data) { + return request({ + url: 'api/devicesportcheckmst/putIn', + method: 'post', + data + }) +} + +export function startMaintain(data) { + return request({ + url: 'api/devicesportcheckmst/startMaintain', + method: 'post', + data + }) +} + +export function endMaintain(data) { + return request({ + url: 'api/devicesportcheckmst/endMaintain', + method: 'post', + data + }) +} + +export function submitMain(data) { + return request({ + url: 'api/devicesportcheckmst/submitMain', + method: 'post', + data + }) +} + +export function auditMaintain(data) { + return request({ + url: 'api/devicesportcheckmst/auditMaintain', + method: 'post', + data + }) +} + +export default { findByCode, add, edit, del, getDtl, putIn, startMaintain, endMaintain, submitMain, auditMaintain } diff --git a/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheck/index.vue b/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheck/index.vue new file mode 100644 index 00000000..2c926da5 --- /dev/null +++ b/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheck/index.vue @@ -0,0 +1,369 @@ + + + + + diff --git a/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckaudit/index.vue b/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckaudit/index.vue new file mode 100644 index 00000000..b3c044ac --- /dev/null +++ b/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckaudit/index.vue @@ -0,0 +1,348 @@ + + + + + diff --git a/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckpa/ExecuteDialog.vue b/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckpa/ExecuteDialog.vue new file mode 100644 index 00000000..50468431 --- /dev/null +++ b/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckpa/ExecuteDialog.vue @@ -0,0 +1,228 @@ + + + + diff --git a/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckpa/StartDialog.vue b/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckpa/StartDialog.vue new file mode 100644 index 00000000..c442a50e --- /dev/null +++ b/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckpa/StartDialog.vue @@ -0,0 +1,111 @@ + + + + diff --git a/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckpa/index.vue b/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckpa/index.vue new file mode 100644 index 00000000..1e6b6004 --- /dev/null +++ b/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckpa/index.vue @@ -0,0 +1,424 @@ + + + + + diff --git a/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckplan/AddDialog.vue b/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckplan/AddDialog.vue new file mode 100644 index 00000000..e2ae3da8 --- /dev/null +++ b/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckplan/AddDialog.vue @@ -0,0 +1,302 @@ + + + + + diff --git a/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckplan/CopyAddDialog.vue b/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckplan/CopyAddDialog.vue new file mode 100644 index 00000000..58036ec6 --- /dev/null +++ b/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckplan/CopyAddDialog.vue @@ -0,0 +1,289 @@ + + + + + diff --git a/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckplan/DeviceDialog.vue b/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckplan/DeviceDialog.vue new file mode 100644 index 00000000..36961c80 --- /dev/null +++ b/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckplan/DeviceDialog.vue @@ -0,0 +1,357 @@ + + + + + + diff --git a/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckplan/ItemDialog.vue b/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckplan/ItemDialog.vue new file mode 100644 index 00000000..392b0074 --- /dev/null +++ b/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckplan/ItemDialog.vue @@ -0,0 +1,372 @@ + + + + + + diff --git a/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckplan/devicesportcheckplanmst.js b/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckplan/devicesportcheckplanmst.js new file mode 100644 index 00000000..2ec3a75e --- /dev/null +++ b/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckplan/devicesportcheckplanmst.js @@ -0,0 +1,51 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/devicesportcheckplanmst', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/devicesportcheckplanmst/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/devicesportcheckplanmst', + method: 'put', + data + }) +} + +export function getDtl(data) { + return request({ + url: 'api/devicesportcheckplanmst/getDtl', + method: 'post', + data + }) +} + +export function changeActive(data) { + return request({ + url: 'api/devicesportcheckplanmst/changeActive', + method: 'put', + data + }) +} + +export function copyAdd(data) { + return request({ + url: 'api/devicesportcheckplanmst/copyAdd', + method: 'post', + data + }) +} + +export default { add, edit, del, getDtl, changeActive, copyAdd } diff --git a/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckplan/index.vue b/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckplan/index.vue new file mode 100644 index 00000000..7d808158 --- /dev/null +++ b/mes/qd/src/views/wms/device_manage/sportcheck/devicesportcheckplan/index.vue @@ -0,0 +1,396 @@ + + + + + diff --git a/mes/qd/src/views/wms/device_manage/upkeep/devicemaintenanceplan/index.vue b/mes/qd/src/views/wms/device_manage/upkeep/devicemaintenanceplan/index.vue index 04cf5e12..95c9573e 100644 --- a/mes/qd/src/views/wms/device_manage/upkeep/devicemaintenanceplan/index.vue +++ b/mes/qd/src/views/wms/device_manage/upkeep/devicemaintenanceplan/index.vue @@ -117,7 +117,6 @@ -