diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/material/StructrelamaterialController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/material/StructrelamaterialController.java index df34f982..336f2e48 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/material/StructrelamaterialController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/material/StructrelamaterialController.java @@ -1,3 +1,4 @@ +/* package org.nl.wms.masterdata_manage.storage.controller.material; @@ -7,8 +8,6 @@ import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.common.anno.Log; -import org.nl.wms.masterdata_manage.备份st.service.StructrelamaterialService; -import org.nl.wms.masterdata_manage.备份st.service.dto.StructrelamaterialDto; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -17,10 +16,12 @@ import org.springframework.web.bind.annotation.*; import java.util.Map; +*/ /** * @author zhouz * @date 2021-12-09 -**/ +**//* + @RestController @RequiredArgsConstructor @Api(tags = "物料存放设置管理") @@ -83,3 +84,4 @@ public class StructrelamaterialController { return new ResponseEntity<>(HttpStatus.OK); } } +*/ diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/rest/CacheLineHandController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/rest/CacheLineHandController.java index 272b3093..a87a9156 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/rest/CacheLineHandController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/rest/CacheLineHandController.java @@ -34,298 +34,296 @@ import java.util.regex.Pattern; @RequestMapping("/api/cacheLineHand") @Slf4j @SaIgnore -public class CacheLineHandController{ - private final CacheLineHandService cacheLineHandService; +public class CacheLineHandController { + private final CacheLineHandService cacheLineHandService; - @PostMapping("/queryMaterial") - @Log("物料查询") - @ApiOperation("物料查询") - public ResponseEntity> queryMaterial(@RequestBody JSONObject form) { - log.info("海亮缓存线手持服务 [查询物料] 接口被请求, 请求参数-{}", form); - String params = form.getString("search_bar"); - checkLength(params); - return new ResponseEntity<>(cacheLineHandService.queryMaterial(params), HttpStatus.OK); - } + @PostMapping("/queryMaterial") + @Log("物料查询") + @ApiOperation("物料查询") + public ResponseEntity> queryMaterial(@RequestBody JSONObject form) { + log.info("海亮缓存线手持服务 [查询物料] 接口被请求, 请求参数-{}", form); + String params = form.getString("search_bar"); + checkLength(params); + return new ResponseEntity<>(cacheLineHandService.queryMaterial(params), HttpStatus.OK); + } - @PostMapping("/materialQuery") - @Log("物料模糊查询") - @ApiOperation("物料模糊查询") - public ResponseEntity materialQuery(@RequestBody JSONObject form) { - log.info("海亮缓存线手持服务 [查询物料] 接口被请求, 请求参数-{}", form); - //String params = form.getString("search_bar"); - //checkLength(params); - return new ResponseEntity<>(cacheLineHandService.materialQuery(form.getString("search_bar")), HttpStatus.OK); - } + @PostMapping("/materialQuery") + @Log("物料模糊查询") + @ApiOperation("物料模糊查询") + public ResponseEntity materialQuery(@RequestBody JSONObject form) { + log.info("海亮缓存线手持服务 [查询物料] 接口被请求, 请求参数-{}", form); + //String params = form.getString("search_bar"); + //checkLength(params); + return new ResponseEntity<>(cacheLineHandService.materialQuery(form.getString("search_bar")), HttpStatus.OK); + } - @PostMapping("/appUpdate") - @Log("app更新") - @ApiOperation("app更新") - @SaIgnore - public ResponseEntity appUpdate() { - log.info("海亮缓存线手持服务 [app更新] 接口被请求"); - return new ResponseEntity<>(cacheLineHandService.appUpdate(), HttpStatus.OK); - } + @PostMapping("/appUpdate") + @Log("app更新") + @ApiOperation("app更新") + @SaIgnore + public ResponseEntity appUpdate() { + log.info("海亮缓存线手持服务 [app更新] 接口被请求"); + return new ResponseEntity<>(cacheLineHandService.appUpdate(), HttpStatus.OK); + } - /** - * 输入搜索条件校验,限制查询参数过短,模糊力度大 - */ - private void checkLength(String params) { - if(StringUtils.isNotBlank(params)) { - int length = params.getBytes().length; - //限制查询参数过短,模糊力度大 - if(Pattern.compile("[0-9a-zA-Z]+").matcher(params).matches() || Pattern.compile("\\d+").matcher(params).matches()) { - if(length < 5) { - throw new BizCoreException("输入条件所查询的内容过多,请输入大于4个字的查询条件。"); - } - } - else if(Pattern.compile("[\u4e00-\u9fa5]+").matcher(params).matches()) { - if(length < 9) { - throw new BizCoreException("输入条件所查询的内容过多,请输入大于3个字的查询条件。"); - } - } - else if(length < 4) { + /** + * 输入搜索条件校验,限制查询参数过短,模糊力度大 + */ + private void checkLength(String params) { + if (StringUtils.isNotBlank(params)) { + int length = params.getBytes().length; + //限制查询参数过短,模糊力度大 + if (Pattern.compile("[0-9a-zA-Z]+").matcher(params).matches() || Pattern.compile("\\d+").matcher(params).matches()) { + if (length < 5) { + throw new BizCoreException("输入条件所查询的内容过多,请输入大于4个字的查询条件。"); + } + } else if (Pattern.compile("[\u4e00-\u9fa5]+").matcher(params).matches()) { + if (length < 9) { throw new BizCoreException("输入条件所查询的内容过多,请输入大于3个字的查询条件。"); - } - } - } + } + } else if (length < 4) { + throw new BizCoreException("输入条件所查询的内容过多,请输入大于3个字的查询条件。"); + } + } + } - @PostMapping("/semiMaterialSpecQuery") - @Log("规格下拉框查询") - @ApiOperation("规格下拉框查询") - public ResponseEntity semiMaterialSpecQuery(@RequestBody JSONObject form) { - log.info("海亮缓存线手持服务 [规格下拉框查询] 接口被请求, 请求参数-{}", form); - return new ResponseEntity<>(cacheLineHandService.semiMaterialSpecQuery(form.getString("search_bar")), HttpStatus.OK); - } + @PostMapping("/semiMaterialSpecQuery") + @Log("规格下拉框查询") + @ApiOperation("规格下拉框查询") + public ResponseEntity semiMaterialSpecQuery(@RequestBody JSONObject form) { + log.info("海亮缓存线手持服务 [规格下拉框查询] 接口被请求, 请求参数-{}", form); + return new ResponseEntity<>(cacheLineHandService.semiMaterialSpecQuery(form.getString("search_bar")), HttpStatus.OK); + } - @PostMapping("/workprocedureQuery") - @Log("工序下拉框查询") - @ApiOperation("工序下拉框查询") - public ResponseEntity workProcedureQuery(@RequestBody JSONObject form) { - log.info("海亮缓存线手持服务 [工序下拉框查询] 接口被请求, 请求参数-{}", form); - return new ResponseEntity<>(cacheLineHandService.workProcedureQuery(form.getString("search_bar")), HttpStatus.OK); - } + @PostMapping("/workprocedureQuery") + @Log("工序下拉框查询") + @ApiOperation("工序下拉框查询") + public ResponseEntity workProcedureQuery(@RequestBody JSONObject form) { + log.info("海亮缓存线手持服务 [工序下拉框查询] 接口被请求, 请求参数-{}", form); + return new ResponseEntity<>(cacheLineHandService.workProcedureQuery(form.getString("search_bar")), HttpStatus.OK); + } - @PostMapping("/deviceQuery") - @Log("缓存线设备下拉框查询") - @ApiOperation("缓存线设备下拉框查询") - public ResponseEntity deviceQuery(@RequestBody JSONObject form) { - log.info("海亮缓存线手持服务 [缓存线设备下拉框查询] 接口被请求, 请求参数-{}", form); - return new ResponseEntity<>(cacheLineHandService.deviceQuery(form.getString("search_bar")), HttpStatus.OK); - } + @PostMapping("/deviceQuery") + @Log("缓存线设备下拉框查询") + @ApiOperation("缓存线设备下拉框查询") + public ResponseEntity deviceQuery(@RequestBody JSONObject form) { + log.info("海亮缓存线手持服务 [缓存线设备下拉框查询] 接口被请求, 请求参数-{}", form); + return new ResponseEntity<>(cacheLineHandService.deviceQuery(form.getString("search_bar")), HttpStatus.OK); + } - @PostMapping("/instStatusQuery") - @Log("指令状态下拉框查询") - @ApiOperation("指令状态下拉框查询") - public ResponseEntity instStatusQuery(@RequestBody JSONObject form) { - log.info("海亮缓存线手持服务 [指令状态下拉框查询] 接口被请求, 请求参数-{}", form); - return new ResponseEntity<>(cacheLineHandService.instStatusQuery(form.getString("search_bar")), HttpStatus.OK); - } + @PostMapping("/instStatusQuery") + @Log("指令状态下拉框查询") + @ApiOperation("指令状态下拉框查询") + public ResponseEntity instStatusQuery(@RequestBody JSONObject form) { + log.info("海亮缓存线手持服务 [指令状态下拉框查询] 接口被请求, 请求参数-{}", form); + return new ResponseEntity<>(cacheLineHandService.instStatusQuery(form.getString("search_bar")), HttpStatus.OK); + } - @PostMapping("/instPageQuery") - @Log("任务操作-查询") - @ApiOperation("任务操作-查询") - public ResponseEntity instPageQuery(@RequestBody Map param, Pageable page) { - log.info("海亮缓存线手持服务 [任务操作-查询] 接口被请求, 请求参数-{}", param); - if(null == param) { - throw new BizCoreException(ResultCode.VALIDATE_FAILED); - } - return new ResponseEntity<>(cacheLineHandService.instPageQuery(param, page), HttpStatus.OK); - } + @PostMapping("/instPageQuery") + @Log("任务操作-查询") + @ApiOperation("任务操作-查询") + public ResponseEntity instPageQuery(@RequestBody Map param, Pageable page) { + log.info("海亮缓存线手持服务 [任务操作-查询] 接口被请求, 请求参数-{}", param); + if (null == param) { + throw new BizCoreException(ResultCode.VALIDATE_FAILED); + } + return new ResponseEntity<>(cacheLineHandService.instPageQuery(param, page), HttpStatus.OK); + } - @PostMapping("/instOperation") - @Log("任务操作") - @ApiOperation("任务操作") - public ResponseEntity instOperation(@RequestBody JSONObject param) { - log.info("海亮缓存线手持服务 [任务操作] 接口被请求, 请求参数-{}", param); - //任务类型和任务ID校验,instruct_uuid为前端参数命名,本来应为task_id - if(StringUtils.isBlank(param.getString("instruct_uuid")) || StringUtils.isBlank(param.getString("opt_type"))) { - throw new BizCoreException("ResultCode.VALIDATE_FAILED"); - } - return new ResponseEntity<>(cacheLineHandService.instOperation(param), HttpStatus.OK); - } + @PostMapping("/instOperation") + @Log("任务操作") + @ApiOperation("任务操作") + public ResponseEntity instOperation(@RequestBody JSONObject param) { + log.info("海亮缓存线手持服务 [任务操作] 接口被请求, 请求参数-{}", param); + //任务类型和任务ID校验,instruct_uuid为前端参数命名,本来应为task_id + if (StringUtils.isBlank(param.getString("instruct_uuid")) || StringUtils.isBlank(param.getString("opt_type"))) { + throw new BizCoreException("ResultCode.VALIDATE_FAILED"); + } + return new ResponseEntity<>(cacheLineHandService.instOperation(param), HttpStatus.OK); + } - @PostMapping("/cacheLineOutBoxExceptionQuery") - @Log("缓存线出箱异常-查询") - @ApiOperation("缓存线出箱异常-查询") - public ResponseEntity cacheLineOutBoxExceptionQuery(@RequestBody JSONObject param) { - log.info("海亮缓存线手持服务 [缓存线出箱异常-查询] 接口被请求, 请求参数-{}", param); - //参数校验 - if(StringUtils.isBlank(param.getString("wcsdevice_code"))) { - throw new BizCoreException("请选择缓存线并输入缓存线位置编号再查询"); - } - if(StringUtils.isBlank(param.getString("position_code"))) { - throw new BizCoreException("请输入缓存线位置编号再查询"); - } - return new ResponseEntity<>(cacheLineHandService.cacheLineOutBoxExceptionQuery(param), HttpStatus.OK); - } + @PostMapping("/cacheLineOutBoxExceptionQuery") + @Log("缓存线出箱异常-查询") + @ApiOperation("缓存线出箱异常-查询") + public ResponseEntity cacheLineOutBoxExceptionQuery(@RequestBody JSONObject param) { + log.info("海亮缓存线手持服务 [缓存线出箱异常-查询] 接口被请求, 请求参数-{}", param); + //参数校验 + if (StringUtils.isBlank(param.getString("wcsdevice_code"))) { + throw new BizCoreException("请选择缓存线并输入缓存线位置编号再查询"); + } + if (StringUtils.isBlank(param.getString("position_code"))) { + throw new BizCoreException("请输入缓存线位置编号再查询"); + } + return new ResponseEntity<>(cacheLineHandService.cacheLineOutBoxExceptionQuery(param), HttpStatus.OK); + } - @PostMapping("/cacheLineOutBoxExceptionConfirm") - @Log("缓存线出箱异常-确认") - @ApiOperation("缓存线出箱异常-确认") - public ResponseEntity cacheLineOutBoxExceptionConfirm(@RequestBody JSONObject param) { - log.info("海亮缓存线手持服务 [缓存线出箱异常-确认] 接口被请求, 请求参数-{}", param); - //参数校验 - if(StringUtils.isBlank(param.getString("vehicle_code"))) { - throw new BizCoreException("请输入料箱码"); - } - if(StringUtils.isBlank(param.getString("wcsdevice_code")) || StringUtils.isBlank(param.getString("position_code"))) { - throw new BizCoreException("请输入缓存线位置编号与缓存线编号"); - } - return new ResponseEntity<>(cacheLineHandService.cacheLineOutBoxExceptionConfirm(param), HttpStatus.OK); - } + @PostMapping("/cacheLineOutBoxExceptionConfirm") + @Log("缓存线出箱异常-确认") + @ApiOperation("缓存线出箱异常-确认") + public ResponseEntity cacheLineOutBoxExceptionConfirm(@RequestBody JSONObject param) { + log.info("海亮缓存线手持服务 [缓存线出箱异常-确认] 接口被请求, 请求参数-{}", param); + //参数校验 + if (StringUtils.isBlank(param.getString("vehicle_code"))) { + throw new BizCoreException("请输入料箱码"); + } + if (StringUtils.isBlank(param.getString("wcsdevice_code")) || StringUtils.isBlank(param.getString("position_code"))) { + throw new BizCoreException("请输入缓存线位置编号与缓存线编号"); + } + return new ResponseEntity<>(cacheLineHandService.cacheLineOutBoxExceptionConfirm(param), HttpStatus.OK); + } - @PostMapping("/inOutExceptionInstQuery") - @Log("缓存线扫码异常-查询") - @ApiOperation("缓存线扫码异常-查询") - public ResponseEntity inOutExceptionInstQuery(@RequestBody JSONObject param) { - log.info("海亮缓存线手持服务 [缓存线扫码异常-查询] 接口被·请求, 请求参数-{}", param); - //参数校验 - if(StringUtils.isBlank(param.getString("wcsdevice_code"))) { - throw new BizCoreException("请选择缓存线编号!"); - } - return new ResponseEntity<>(cacheLineHandService.inOutExceptionInstQuery(param), HttpStatus.OK); - } + @PostMapping("/inOutExceptionInstQuery") + @Log("缓存线扫码异常-查询") + @ApiOperation("缓存线扫码异常-查询") + public ResponseEntity inOutExceptionInstQuery(@RequestBody JSONObject param) { + log.info("海亮缓存线手持服务 [缓存线扫码异常-查询] 接口被·请求, 请求参数-{}", param); + //参数校验 + if (StringUtils.isBlank(param.getString("wcsdevice_code"))) { + throw new BizCoreException("请选择缓存线编号!"); + } + return new ResponseEntity<>(cacheLineHandService.inOutExceptionInstQuery(param), HttpStatus.OK); + } - @PostMapping("/inOutExceptionInstConfirm") - @Log("扫码异常确认") - @ApiOperation("扫码异常确认") - public ResponseEntity inOutExceptionInstConfirm(@RequestBody JSONObject param) { - log.info("海亮缓存线手持服务 [扫码异常确认] 接口被请求, 请求参数-{}", param); - //参数校验 - if(StringUtils.isBlank(param.getString("type")) || StringUtils.isBlank(param.getString("wcsdevice_code")) || StringUtils.isBlank(param.getString("vehicle_code"))) { - throw new BizCoreException("请确认缓存线,位置,料箱码是否都已选择或填入!"); - } - return new ResponseEntity<>(cacheLineHandService.inOutExceptionInstConfirm(param), HttpStatus.OK); - } + @PostMapping("/inOutExceptionInstConfirm") + @Log("扫码异常确认") + @ApiOperation("扫码异常确认") + public ResponseEntity inOutExceptionInstConfirm(@RequestBody JSONObject param) { + log.info("海亮缓存线手持服务 [扫码异常确认] 接口被请求, 请求参数-{}", param); + //参数校验 + if (StringUtils.isBlank(param.getString("type")) || StringUtils.isBlank(param.getString("wcsdevice_code")) || StringUtils.isBlank(param.getString("vehicle_code"))) { + throw new BizCoreException("请确认缓存线,位置,料箱码是否都已选择或填入!"); + } + return new ResponseEntity<>(cacheLineHandService.inOutExceptionInstConfirm(param), HttpStatus.OK); + } - @PostMapping("/cacheLineMaterInfoQuery") - @Log("缓存线料箱条码查询料箱信息") - @ApiOperation("缓存线料箱条码查询料箱信息") - public ResponseEntity cacheLineMaterInfoQuery(@RequestBody JSONObject param) { - log.info("海亮缓存线手持服务 [缓存线料箱条码查询料箱信息] 接口被请求, 请求参数-{}", param); - return new ResponseEntity<>(cacheLineHandService.cacheLineMaterInfoQuery(param), HttpStatus.OK); - } + @PostMapping("/cacheLineMaterInfoQuery") + @Log("缓存线料箱条码查询料箱信息") + @ApiOperation("缓存线料箱条码查询料箱信息") + public ResponseEntity cacheLineMaterInfoQuery(@RequestBody JSONObject param) { + log.info("海亮缓存线手持服务 [缓存线料箱条码查询料箱信息] 接口被请求, 请求参数-{}", param); + return new ResponseEntity<>(cacheLineHandService.cacheLineMaterInfoQuery(param), HttpStatus.OK); + } - @PostMapping("/inOutEmptyBox") - @Log("空箱初始化--出入空箱") - @ApiOperation("空箱初始化--出入空箱") - public ResponseEntity inOutEmptyBox(@RequestBody JSONObject param) { - log.info("海亮缓存线手持服务 [空箱初始化--出入空箱] 接口被请求, 请求参数-{}", param); - //参数校验 - if(StringUtils.isBlank(param.getString("inOut_type")) || StringUtils.isBlank(param.getString("wcsdevice_code")) || StringUtils.isBlank(param.getString("vehicle_code"))) { - throw new BizCoreException(ResultCode.VALIDATE_FAILED); - } - return new ResponseEntity<>(cacheLineHandService.inOutEmptyBox(param), HttpStatus.OK); - } + @PostMapping("/inOutEmptyBox") + @Log("空箱初始化--出入空箱") + @ApiOperation("空箱初始化--出入空箱") + public ResponseEntity inOutEmptyBox(@RequestBody JSONObject param) { + log.info("海亮缓存线手持服务 [空箱初始化--出入空箱] 接口被请求, 请求参数-{}", param); + //参数校验 + if (StringUtils.isBlank(param.getString("inOut_type")) || StringUtils.isBlank(param.getString("wcsdevice_code")) || StringUtils.isBlank(param.getString("vehicle_code"))) { + throw new BizCoreException(ResultCode.VALIDATE_FAILED); + } + return new ResponseEntity<>(cacheLineHandService.inOutEmptyBox(param), HttpStatus.OK); + } - @PostMapping("/setfullBox") - @Log("设置满框") - @ApiOperation("设置满框") - public ResponseEntity setfullBox(@RequestBody JSONObject param) { - log.info("海亮缓存线手持服务 [设置满框] 接口被请求, 请求参数-{}", param); - return new ResponseEntity<>(cacheLineHandService.setfullBox(param), HttpStatus.OK); - } + @PostMapping("/setfullBox") + @Log("设置满框") + @ApiOperation("设置满框") + public ResponseEntity setfullBox(@RequestBody JSONObject param) { + log.info("海亮缓存线手持服务 [设置满框] 接口被请求, 请求参数-{}", param); + return new ResponseEntity<>(cacheLineHandService.setfullBox(param), HttpStatus.OK); + } - @PostMapping("/setEmptyBox") - @Log("设置空框") - @ApiOperation("设置空框") - public ResponseEntity setEmptyBox(@RequestBody JSONObject param) { - log.info("海亮缓存线手持服务 [设置空框] 接口被请求, 请求参数-{}", param); - return new ResponseEntity<>(cacheLineHandService.setEmptyBox(param), HttpStatus.OK); - } + @PostMapping("/setEmptyBox") + @Log("设置空框") + @ApiOperation("设置空框") + public ResponseEntity setEmptyBox(@RequestBody JSONObject param) { + log.info("海亮缓存线手持服务 [设置空框] 接口被请求, 请求参数-{}", param); + return new ResponseEntity<>(cacheLineHandService.setEmptyBox(param), HttpStatus.OK); + } - @PostMapping("/deleteBox") - @Log("删除箱子") - @ApiOperation("删除箱子") - public ResponseEntity deleteBox(@RequestBody JSONObject param) { - log.info("海亮缓存线手持服务 [设置空框] 接口被请求, 请求参数-{}", param); - return new ResponseEntity<>(cacheLineHandService.deleteBox(param), HttpStatus.OK); - } + @PostMapping("/deleteBox") + @Log("删除箱子") + @ApiOperation("删除箱子") + public ResponseEntity deleteBox(@RequestBody JSONObject param) { + log.info("海亮缓存线手持服务 [设置空框] 接口被请求, 请求参数-{}", param); + return new ResponseEntity<>(cacheLineHandService.deleteBox(param), HttpStatus.OK); + } - @PostMapping("/agvInBoxExceptionQuery") - @Log("AGV入箱异常-查询") - @ApiOperation("AGV入箱异常-查询") - public ResponseEntity agvInBoxExceptionQuery(@RequestBody JSONObject param) { - log.info("海亮缓存线手持服务 [AGV入箱异常-查询] 接口被请求, 请求参数-{}", param); - return new ResponseEntity<>(cacheLineHandService.agvInBoxExceptionQuery(param), HttpStatus.OK); - } + @PostMapping("/agvInBoxExceptionQuery") + @Log("AGV入箱异常-查询") + @ApiOperation("AGV入箱异常-查询") + public ResponseEntity agvInBoxExceptionQuery(@RequestBody JSONObject param) { + log.info("海亮缓存线手持服务 [AGV入箱异常-查询] 接口被请求, 请求参数-{}", param); + return new ResponseEntity<>(cacheLineHandService.agvInBoxExceptionQuery(param), HttpStatus.OK); + } - @PostMapping("/agvInBoxExceptionConfirm") - @Log("AGV入箱异常-确认") - @ApiOperation("AGV入箱异常-确认") - public ResponseEntity agvInBoxExceptionConfirm(@RequestBody JSONObject param) { - log.info("海亮缓存线手持服务 [AGV入箱异常-确认] 接口被请求, 请求参数-{}", param); - cacheLineHandService.agvInBoxExceptionConfirm(param); - return new ResponseEntity<>(HttpStatus.OK); - } + @PostMapping("/agvInBoxExceptionConfirm") + @Log("AGV入箱异常-确认") + @ApiOperation("AGV入箱异常-确认") + public ResponseEntity agvInBoxExceptionConfirm(@RequestBody JSONObject param) { + log.info("海亮缓存线手持服务 [AGV入箱异常-确认] 接口被请求, 请求参数-{}", param); + cacheLineHandService.agvInBoxExceptionConfirm(param); + return new ResponseEntity<>(HttpStatus.OK); + } - @PostMapping("/agvOutBoxExceptionQuery") - @Log("AGV异常-查询") - @ApiOperation("AGV异常-查询") - public ResponseEntity agvOutBoxExceptionQuery(@RequestBody JSONObject param) { - log.info("海亮缓存线手持服务 [AGV异常-查询] 接口被请求, 请求参数-{}", param); - return new ResponseEntity<>(cacheLineHandService.agvOutBoxExceptionQuery(param), HttpStatus.OK); - } + @PostMapping("/agvOutBoxExceptionQuery") + @Log("AGV异常-查询") + @ApiOperation("AGV异常-查询") + public ResponseEntity agvOutBoxExceptionQuery(@RequestBody JSONObject param) { + log.info("海亮缓存线手持服务 [AGV异常-查询] 接口被请求, 请求参数-{}", param); + return new ResponseEntity<>(cacheLineHandService.agvOutBoxExceptionQuery(param), HttpStatus.OK); + } - @PostMapping("/agvOutBoxExceptionConfirm") - @Log("AGV异常-确认") - @ApiOperation("AGV异常-确认") - public ResponseEntity agvOutBoxExceptionConfirm(@RequestBody JSONObject param) { - log.info("海亮缓存线手持服务 [AGV异常-确认] 接口被请求, 请求参数-{}", param); - cacheLineHandService.agvOutBoxExceptionConfirm(param); - return new ResponseEntity<>(HttpStatus.OK); - } + @PostMapping("/agvOutBoxExceptionConfirm") + @Log("AGV异常-确认") + @ApiOperation("AGV异常-确认") + public ResponseEntity agvOutBoxExceptionConfirm(@RequestBody JSONObject param) { + log.info("海亮缓存线手持服务 [AGV异常-确认] 接口被请求, 请求参数-{}", param); + cacheLineHandService.agvOutBoxExceptionConfirm(param); + return new ResponseEntity<>(HttpStatus.OK); + } - @PostMapping("/setBlankPos") - @Log("设置缓存线货位为空位置") - @ApiOperation("设置缓存线货位为空位置") - public ResponseEntity setBlankPos(@RequestBody JSONObject param) { - log.info("海亮缓存线手持服务 [设置缓存线货位为空位置] 接口被请求, 请求参数-{}", param); - cacheLineHandService.setBlankPos(param); - return new ResponseEntity<>(HttpStatus.OK); - } + @PostMapping("/setBlankPos") + @Log("设置缓存线货位为空位置") + @ApiOperation("设置缓存线货位为空位置") + public ResponseEntity setBlankPos(@RequestBody JSONObject param) { + log.info("海亮缓存线手持服务 [设置缓存线货位为空位置] 接口被请求, 请求参数-{}", param); + cacheLineHandService.setBlankPos(param); + return new ResponseEntity<>(HttpStatus.OK); + } - @PostMapping("/cacheLineExcepOpt") - @Log("缓存线异常处理") - @ApiOperation("缓存线异常处理") - public ResponseEntity cacheLineExcepOpt(@RequestBody JSONObject param) { - log.info("海亮缓存线手持服务 [缓存线异常处理] 接口被请求, 请求参数-{}", param); - //参数校验 - if(StringUtils.isBlank(param.getString("wcsdevice_code")) || StringUtils.isBlank(param.getString("opt_type"))) { - throw new BizCoreException(ResultCode.VALIDATE_FAILED); - } - return new ResponseEntity<>(cacheLineHandService.cacheLineExcepOpt(param), HttpStatus.OK); - } + @PostMapping("/cacheLineExcepOpt") + @Log("缓存线异常处理") + @ApiOperation("缓存线异常处理") + public ResponseEntity cacheLineExcepOpt(@RequestBody JSONObject param) { + log.info("海亮缓存线手持服务 [缓存线异常处理] 接口被请求, 请求参数-{}", param); + //参数校验 + if (StringUtils.isBlank(param.getString("wcsdevice_code")) || StringUtils.isBlank(param.getString("opt_type"))) { + throw new BizCoreException(ResultCode.VALIDATE_FAILED); + } + return new ResponseEntity<>(cacheLineHandService.cacheLineExcepOpt(param), HttpStatus.OK); + } - @PostMapping("/pourMaterial") - @Log("倒料操作") - @ApiOperation("倒料操作") - public ResponseEntity pourMaterial(@RequestBody JSONObject param) { - log.info("海亮缓存线手持服务 [倒料操作] 接口被请求, 请求参数-{}", param); - cacheLineHandService.pourMaterial(param); - return new ResponseEntity<>(HttpStatus.OK); - } + @PostMapping("/pourMaterial") + @Log("倒料操作") + @ApiOperation("倒料操作") + public ResponseEntity pourMaterial(@RequestBody JSONObject param) { + log.info("海亮缓存线手持服务 [倒料操作] 接口被请求, 请求参数-{}", param); + cacheLineHandService.pourMaterial(param); + return new ResponseEntity<>(HttpStatus.OK); + } - @PostMapping("/getCacheLine") - @Log("缓存线下拉框") - @ApiOperation("缓存线下拉框") - public ResponseEntity getCacheLine(@RequestBody JSONObject param) { - log.info("海亮缓存线手持服务 [缓存线盘点-缓存线下拉框] 接口被请求, 请求参数-{}", param); - return new ResponseEntity<>(cacheLineHandService.getCacheLine(param), HttpStatus.OK); - } + @PostMapping("/getCacheLine") + @Log("缓存线下拉框") + @ApiOperation("缓存线下拉框") + public ResponseEntity getCacheLine(@RequestBody JSONObject param) { + log.info("海亮缓存线手持服务 [缓存线盘点-缓存线下拉框] 接口被请求, 请求参数-{}", param); + return new ResponseEntity<>(cacheLineHandService.getCacheLine(param), HttpStatus.OK); + } - @PostMapping("/getProductArea") - @Log("获取生产区域下拉框") - @ApiOperation("获取生产区域下拉框") - public ResponseEntity getProductArea() { - return new ResponseEntity<>(cacheLineHandService.getProductArea(), HttpStatus.OK); - } + @PostMapping("/getProductArea") + @Log("获取生产区域下拉框") + @ApiOperation("获取生产区域下拉框") + public ResponseEntity getProductArea() { + return new ResponseEntity<>(cacheLineHandService.getProductArea(), HttpStatus.OK); + } - @PostMapping("/getCacheLineMaterialInfo") - @Log("缓存线物料信息盘点") - @ApiOperation("缓存线物料信息盘点") - public ResponseEntity getCacheLineMaterialInfo(@RequestBody JSONObject param) { - log.info("海亮缓存线手持服务 [缓存线盘点-缓存线物料信息盘点] 接口被请求, 请求参数-{}", param); - return new ResponseEntity<>(cacheLineHandService.getCacheLineMaterialInfo(param), HttpStatus.OK); - } + @PostMapping("/getCacheLineMaterialInfo") + @Log("缓存线物料信息盘点") + @ApiOperation("缓存线物料信息盘点") + public ResponseEntity getCacheLineMaterialInfo(@RequestBody JSONObject param) { + log.info("海亮缓存线手持服务 [缓存线盘点-缓存线物料信息盘点] 接口被请求, 请求参数-{}", param); + return new ResponseEntity<>(cacheLineHandService.getCacheLineMaterialInfo(param), HttpStatus.OK); + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/service/CacheLineHandService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/service/CacheLineHandService.java index b85e9c1a..a3508f5c 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/service/CacheLineHandService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/service/CacheLineHandService.java @@ -134,7 +134,7 @@ public interface CacheLineHandService{ * @author gbx * @date 2023/3/24 */ - JSONArray inOutExceptionInstQuery(JSONObject param); + List inOutExceptionInstQuery(JSONObject param); /** * 扫码异常确认 @@ -286,7 +286,7 @@ public interface CacheLineHandService{ * @param param * @return */ - JSONArray getCacheLineMaterialInfo(JSONObject param); + List getCacheLineMaterialInfo(JSONObject param); /** * 获取生产区域下拉框 diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/service/impl/CacheLineHandServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/service/impl/CacheLineHandServiceImpl.java index 79c84915..3521cd4b 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/service/impl/CacheLineHandServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/service/impl/CacheLineHandServiceImpl.java @@ -7,6 +7,7 @@ import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; @@ -25,6 +26,10 @@ import org.nl.modules.wql.util.WqlUtil; import org.nl.wms.ext.acs.service.WmsToAcsService; import org.nl.wms.pda_manage.pda.dto.MaterialDto; import org.nl.wms.pda_manage.pda.service.CacheLineHandService; +import org.nl.wms.product_manage.service.device.IPdmBiDeviceService; +import org.nl.wms.product_manage.service.device.dao.PdmBiDevice; +import org.nl.wms.scheduler_manage.service.cacheline.dao.mapper.SchCachelinePositionMapper; +import org.nl.wms.scheduler_manage.service.cacheline.dao.mapper.SchCachelineVehilematerialMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Pageable; import org.springframework.scheduling.annotation.Async; @@ -39,7 +44,7 @@ import java.util.stream.Collectors; /** * CacheLineHandServiceImpl.java Description: 3中异常类型: * 1、比如要N个空箱子或N个满料料箱。查询出来以后,一个码都无法扫描出来,这时候标记这些箱子为异常 - * 2、箱码扫描不出来,则用手持经过WMS中转传输给WCS,最后给电器。 + * 2、箱码扫描不出来,则用手持经过WMS中转传输给WCS,最后给电气。 * 3、AGV搬运过程中异常(非AGVERR),查询条件为设备、起始点等未完成的时候(有可能不是异常)。 * * @date 2023/3/22 @@ -47,825 +52,833 @@ import java.util.stream.Collectors; @Service @RequiredArgsConstructor @Slf4j -public class CacheLineHandServiceImpl implements CacheLineHandService{ - private final RedisUtils redisUtils; - @Autowired - private LocalCache cache; - @Autowired - private WmsToAcsService wmsToAcsService; +public class CacheLineHandServiceImpl implements CacheLineHandService { + private final RedisUtils redisUtils; + @Autowired + private LocalCache cache; + @Autowired + private WmsToAcsService wmsToAcsService; + @Autowired + private IPdmBiDeviceService deviceService; + @Autowired + private SchCachelineVehilematerialMapper vehilematerialMapper; + @Autowired + private SchCachelinePositionMapper positionMapper; - @Override - public JSONArray dropdownListQuery(String param, String type) { - //初始化下拉框列表1.物料规格2.工序3.指令状态4.设备 - return WQL.getWO("PDA_QUERY").addParam("flag", type).addParam("condition", param).process().getResultJSONArray(0); - } + @Override + public JSONArray dropdownListQuery(String param, String type) { + //初始化下拉框列表1.物料规格2.工序3.指令状态4.设备 + return WQL.getWO("PDA_QUERY").addParam("flag", type).addParam("condition", param).process().getResultJSONArray(0); + } - @Override - public JSONArray materialQuery(String param) { - return WQL.getWO("PDA_QUERY").addParam("flag", "6").addParam("condition", param).process().getResultJSONArray(0); - } + @Override + public JSONArray materialQuery(String param) { + return WQL.getWO("PDA_QUERY").addParam("flag", "6").addParam("condition", param).process().getResultJSONArray(0); + } - public JSONArray appUpdate() { - return WQL.getWO("PDA_QUERY").addParam("flag", "11").process().getResultJSONArray(0); - } + public JSONArray appUpdate() { + return WQL.getWO("PDA_QUERY").addParam("flag", "11").process().getResultJSONArray(0); + } - @Override - public List queryMaterial(String param) { - // StopWatch stopWatch = new StopWatch(); - // stopWatch.start(); - // stopWatch.stop(); - // System.out.println("缓存本地花费时间 totalTime = " + stopWatch.getTotalTimeMillis()); - if(StringUtils.isBlank(param)) { - return WQL.getWO("PDA_QUERY").addParam("flag", "6").addParam("condition", param).process().getResultJSONArray(0).toJavaList(MaterialDto.class); - } - List materialList; - ThreadPoolExecutor pool = ThreadPoolExecutorUtil.getPoll(); - //12W种物料信息,查本地缓存 - materialList = cache.get("hl:cacheLineHand:materialBase:mid"); - if(null != materialList) { - return getMaterialDto(materialList, param); - } - //2.查reids - materialList = redisUtils.get("hl:cacheLineHand:materialBase:mid", MaterialDto.class); - if(null != materialList) { - //设置本地缓存 - cache.setLocalCache("hl:cacheLineHand:materialBase:mid", materialList); - return getMaterialDto(materialList, param); - } - //3.查db - JSONArray materialJsonArray = WQL.getWO("PDA_QUERY").addParam("flag", "5").process().getResultJSONArray(0); - materialList = materialJsonArray.toJavaList(MaterialDto.class); - //缓存到redis - List finalMaterialList1 = materialList; - CompletableFuture f1 = CompletableFuture.runAsync(() -> redisUtils.set("hl:cacheLineHand:materialBase:mid", finalMaterialList1), pool); - //缓存到本地 - List finalMaterialList = materialList; - CompletableFuture f2 = CompletableFuture.runAsync(() -> cache.setLocalCache("hl:cacheLineHand:materialBase:mid", finalMaterialList), pool); - f1.exceptionally((e) -> { - throw new BadRequestException("物料信息缓存redis失败"); - }); - f2.exceptionally((e) -> { - throw new BadRequestException("物料信息缓存本地失败"); - }); - return materialList; - } + @Override + public List queryMaterial(String param) { + // StopWatch stopWatch = new StopWatch(); + // stopWatch.start(); + // stopWatch.stop(); + // System.out.println("缓存本地花费时间 totalTime = " + stopWatch.getTotalTimeMillis()); + if (StringUtils.isBlank(param)) { + return WQL.getWO("PDA_QUERY").addParam("flag", "6").addParam("condition", param).process().getResultJSONArray(0).toJavaList(MaterialDto.class); + } + List materialList; + ThreadPoolExecutor pool = ThreadPoolExecutorUtil.getPoll(); + //12W种物料信息,查本地缓存 + materialList = cache.get("hl:cacheLineHand:materialBase:mid"); + if (null != materialList) { + return getMaterialDto(materialList, param); + } + //2.查reids + materialList = redisUtils.get("hl:cacheLineHand:materialBase:mid", MaterialDto.class); + if (null != materialList) { + //设置本地缓存 + cache.setLocalCache("hl:cacheLineHand:materialBase:mid", materialList); + return getMaterialDto(materialList, param); + } + //3.查db + JSONArray materialJsonArray = WQL.getWO("PDA_QUERY").addParam("flag", "5").process().getResultJSONArray(0); + materialList = materialJsonArray.toJavaList(MaterialDto.class); + //缓存到redis + List finalMaterialList1 = materialList; + CompletableFuture f1 = CompletableFuture.runAsync(() -> redisUtils.set("hl:cacheLineHand:materialBase:mid", finalMaterialList1), pool); + //缓存到本地 + List finalMaterialList = materialList; + CompletableFuture f2 = CompletableFuture.runAsync(() -> cache.setLocalCache("hl:cacheLineHand:materialBase:mid", finalMaterialList), pool); + f1.exceptionally((e) -> { + throw new BadRequestException("物料信息缓存redis失败"); + }); + f2.exceptionally((e) -> { + throw new BadRequestException("物料信息缓存本地失败"); + }); + return materialList; + } - /** - * 按条件查询物料信息 - */ - @NotNull - private List getMaterialDto(List materialList, String param) { - if(StringUtils.isNotBlank(param)) { - //按条件搜索 - materialList = materialList.stream().filter(m -> (m.getMaterial_name().contains(param)) || m.getMaterial_code().contains(param) || m.getMaterial_spec().contains(param) || m.getClass_name().contains(param)).collect(Collectors.toList()); - return materialList; - } - return materialList; - } + /** + * 按条件查询物料信息 + */ + @NotNull + private List getMaterialDto(List materialList, String param) { + if (StringUtils.isNotBlank(param)) { + //按条件搜索 + materialList = materialList.stream().filter(m -> (m.getMaterial_name().contains(param)) || m.getMaterial_code().contains(param) || m.getMaterial_spec().contains(param) || m.getClass_name().contains(param)).collect(Collectors.toList()); + return materialList; + } + return materialList; + } - @Override - public JSONArray semiMaterialSpecQuery(String param) { - return WQL.getWO("PDA_QUERY").addParam("flag", "1").addParam("condition", param).process().getResultJSONArray(0); - } + @Override + public JSONArray semiMaterialSpecQuery(String param) { + return WQL.getWO("PDA_QUERY").addParam("flag", "1").addParam("condition", param).process().getResultJSONArray(0); + } - @Override - public JSONArray workProcedureQuery(String param) { - return WQL.getWO("PDA_QUERY").addParam("flag", "2").addParam("condition", param).process().getResultJSONArray(0); - } + @Override + public JSONArray workProcedureQuery(String param) { + return WQL.getWO("PDA_QUERY").addParam("flag", "2").addParam("condition", param).process().getResultJSONArray(0); + } - @Override - public JSONArray instStatusQuery(String param) { - return WQL.getWO("PDA_QUERY").addParam("flag", "3").addParam("condition", param).process().getResultJSONArray(0); - } + @Override + public JSONArray instStatusQuery(String param) { + return WQL.getWO("PDA_QUERY").addParam("flag", "3").addParam("condition", param).process().getResultJSONArray(0); + } - @Override - public JSONArray deviceQuery(String param) { - return WQL.getWO("PDA_QUERY").addParam("flag", "4").addParam("condition", param).process().getResultJSONArray(0); - } + @Override + public JSONArray deviceQuery(String param) { + return WQL.getWO("PDA_QUERY").addParam("flag", "4").addParam("condition", param).process().getResultJSONArray(0); + } - /** - * 任务操作-查询 - */ - @Override - public Map instPageQuery(Map param, Pageable page) { - HashMap map = new HashMap<>(); - map.put("flag", "10"); - Integer pageNumber = 0; - Integer pageSize = 20; - JSONObject whereJson = JSONObject.parseObject(JSON.toJSONString(param)); - //任务状态 - String task_status = whereJson.getString("status"); - //任务名称 - if(StrUtil.isNotEmpty(whereJson.getString("task_name"))) { - map.put("task_name", "%" + whereJson.getString("task_name") + "%"); - } - //生产区域 - if(StrUtil.isNotEmpty(whereJson.getString("product_area"))) { - map.put("product_area", whereJson.getString("product_area")); - } - //任务类型 - if(StrUtil.isNotEmpty(whereJson.getString("code"))) { - map.put("task_type", whereJson.getString("code")); - } - if(StrUtil.isNotEmpty(task_status)) { - task_status = task_status.replace("[\"", "").replace("\"]", "").replace("\"", ""); - } - String moreTaskStatus = whereJson.getString("more_task_status"); - if(ObjectUtil.isNotEmpty(moreTaskStatus)) { - task_status = moreTaskStatus; - } - map.put("status", task_status); - //处理状态为未完成 - if(StrUtil.isNotEmpty(task_status) && task_status.contains("-1")) { - map.put("unFinish", "-1"); - map.put("status", task_status.replace("-1", "")); - } - //任务编号 - if(StrUtil.isNotEmpty(whereJson.getString("inst_num"))) { - map.put("inst_num", "%" + whereJson.getString("inst_num") + "%"); - } - //起点 - if(StrUtil.isNotEmpty(whereJson.getString("start_point"))) { - map.put("start_point", "%" + whereJson.getString("start_point") + "%"); - } - //终点 - if(StrUtil.isNotEmpty(whereJson.getString("end_point"))) { - map.put("end_point", "%" + whereJson.getString("end_point") + "%"); - } - //载具编码 - if(StrUtil.isNotEmpty(whereJson.getString("vehicle_code"))) { - map.put("vehicle_code", "%" + whereJson.getString("vehicle_code") + "%"); - } - //开始时间 - if(StrUtil.isNotEmpty(whereJson.getString("start_date"))) { - map.put("start_date", whereJson.getString("start_date")); - } - //结束时间 - if(StrUtil.isNotEmpty(whereJson.getString("end_date"))) { - map.put("end_date", whereJson.getString("end_date")); - } - //分页参数 - if(StrUtil.isNotEmpty(whereJson.getString("page")) && StrUtil.isNotEmpty(whereJson.getString("size"))) { - pageNumber = whereJson.getInteger("page"); - pageSize = whereJson.getInteger("size"); - //平板暂时无分页 - if(pageNumber == 1) { - pageNumber = 0; - pageSize = 100; - } - } - JSONObject jsonObject = WQL.getWO("PDA_QUERY").addParamMap(map).pageQuery(WqlUtil.getHttpContext(pageNumber, pageSize), "task.update_time desc"); - String size = jsonObject.getString("totalElements"); - jsonObject.put("size", size); - //适配前端分页条件 - jsonObject.remove("totalElements"); - return jsonObject; - } + /** + * 任务操作-查询 + */ + @Override + public Map instPageQuery(Map param, Pageable page) { + HashMap map = new HashMap<>(); + map.put("flag", "10"); + Integer pageNumber = 0; + Integer pageSize = 20; + JSONObject whereJson = JSONObject.parseObject(JSON.toJSONString(param)); + //任务状态 + String task_status = whereJson.getString("status"); + //任务名称 + if (StrUtil.isNotEmpty(whereJson.getString("task_name"))) { + map.put("task_name", "%" + whereJson.getString("task_name") + "%"); + } + //生产区域 + if (StrUtil.isNotEmpty(whereJson.getString("product_area"))) { + map.put("product_area", whereJson.getString("product_area")); + } + //任务类型 + if (StrUtil.isNotEmpty(whereJson.getString("code"))) { + map.put("task_type", whereJson.getString("code")); + } + if (StrUtil.isNotEmpty(task_status)) { + task_status = task_status.replace("[\"", "").replace("\"]", "").replace("\"", ""); + } + String moreTaskStatus = whereJson.getString("more_task_status"); + if (ObjectUtil.isNotEmpty(moreTaskStatus)) { + task_status = moreTaskStatus; + } + map.put("status", task_status); + //处理状态为未完成 + if (StrUtil.isNotEmpty(task_status) && task_status.contains("-1")) { + map.put("unFinish", "-1"); + map.put("status", task_status.replace("-1", "")); + } + //任务编号 + if (StrUtil.isNotEmpty(whereJson.getString("inst_num"))) { + map.put("inst_num", "%" + whereJson.getString("inst_num") + "%"); + } + //起点 + if (StrUtil.isNotEmpty(whereJson.getString("start_point"))) { + map.put("start_point", "%" + whereJson.getString("start_point") + "%"); + } + //终点 + if (StrUtil.isNotEmpty(whereJson.getString("end_point"))) { + map.put("end_point", "%" + whereJson.getString("end_point") + "%"); + } + //载具编码 + if (StrUtil.isNotEmpty(whereJson.getString("vehicle_code"))) { + map.put("vehicle_code", "%" + whereJson.getString("vehicle_code") + "%"); + } + //开始时间 + if (StrUtil.isNotEmpty(whereJson.getString("start_date"))) { + map.put("start_date", whereJson.getString("start_date")); + } + //结束时间 + if (StrUtil.isNotEmpty(whereJson.getString("end_date"))) { + map.put("end_date", whereJson.getString("end_date")); + } + //分页参数 + if (StrUtil.isNotEmpty(whereJson.getString("page")) && StrUtil.isNotEmpty(whereJson.getString("size"))) { + pageNumber = whereJson.getInteger("page"); + pageSize = whereJson.getInteger("size"); + //平板暂时无分页 + if (pageNumber == 1) { + pageNumber = 0; + pageSize = 100; + } + } + JSONObject jsonObject = WQL.getWO("PDA_QUERY").addParamMap(map).pageQuery(WqlUtil.getHttpContext(pageNumber, pageSize), "task.update_time desc"); + String size = jsonObject.getString("totalElements"); + jsonObject.put("size", size); + //适配前端分页条件 + jsonObject.remove("totalElements"); + return jsonObject; + } - /** - * 任务操作-取消,完成,重发 - */ - @Override - public CommonResult> instOperation(JSONObject param) { - String optType = param.getString("opt_type"); - String instruct_uuid = param.getString("instruct_uuid"); - WQLObject taskTab = WQLObject.getWQLObject("sch_base_task"); - JSONObject taskObject = taskTab.query("task_id =" + instruct_uuid).uniqueResult(0); - if(null == taskObject) { - throw new BadRequestException("未找到该任务信息!"); - } - //8-取消、7-完成、5-任务下发,根据操作类型执行相关操作 - if(StatusEnum.TASK_CANNEL.getCode().equals(optType) || StatusEnum.TASK_FINISH.getCode().equals(optType)) { - //无取消这个状态了,取消和完成操作对应状态都是完成 - optType = StatusEnum.TASK_FINISH.getCode(); - String finalOptType = optType; - return RestBusinessTemplate.execute(() -> updateTaskStatus(taskObject, finalOptType)); - } - //任务下发 - else if(StatusEnum.TASK_PUBLISH.getCode().equals(optType)) { - JSONArray jsonArray = new JSONArray(); - jsonArray.add(taskObject); - return RestBusinessTemplate.execute(() -> wmsToAcsService.issueTaskToAcs(jsonArray)); - } - else{ - return null; - } - } + /** + * 任务操作-取消,完成,重发 + */ + @Override + public CommonResult> instOperation(JSONObject param) { + String optType = param.getString("opt_type"); + String instruct_uuid = param.getString("instruct_uuid"); + WQLObject taskTab = WQLObject.getWQLObject("sch_base_task"); + JSONObject taskObject = taskTab.query("task_id =" + instruct_uuid).uniqueResult(0); + if (null == taskObject) { + throw new BadRequestException("未找到该任务信息!"); + } + //8-取消、7-完成、5-任务下发,根据操作类型执行相关操作 + if (StatusEnum.TASK_CANNEL.getCode().equals(optType) || StatusEnum.TASK_FINISH.getCode().equals(optType)) { + //无取消这个状态了,取消和完成操作对应状态都是完成 + optType = StatusEnum.TASK_FINISH.getCode(); + String finalOptType = optType; + return RestBusinessTemplate.execute(() -> updateTaskStatus(taskObject, finalOptType)); + } + //任务下发 + else if (StatusEnum.TASK_PUBLISH.getCode().equals(optType)) { + JSONArray jsonArray = new JSONArray(); + jsonArray.add(taskObject); + return RestBusinessTemplate.execute(() -> wmsToAcsService.issueTaskToAcs(jsonArray)); + } else { + return null; + } + } - /** - * 任务取消和完成操作,更新任务状态 - */ - public JSONObject updateTaskStatus(JSONObject taskObj, String status) { - String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - HashMap map = new HashMap<>(4); - map.put("task_status", status); - map.put("update_optid", currentUserId); - map.put("update_optname", nickName); - map.put("update_time", DateUtil.now()); - int result = (WQLObject.getWQLObject("sch_base_task").update(map, "task_id = '" + taskObj.getString("task_id") + "'").getSucess()); - JSONObject returnjo = new JSONObject(); - returnjo.put("code", "1"); - returnjo.put("desc", "操作成功!"); - returnjo.put("result", result); - return returnjo; - } + /** + * 任务取消和完成操作,更新任务状态 + */ + public JSONObject updateTaskStatus(JSONObject taskObj, String status) { + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + HashMap map = new HashMap<>(4); + map.put("task_status", status); + map.put("update_optid", currentUserId); + map.put("update_optname", nickName); + map.put("update_time", DateUtil.now()); + int result = (WQLObject.getWQLObject("sch_base_task").update(map, "task_id = '" + taskObj.getString("task_id") + "'").getSucess()); + JSONObject returnjo = new JSONObject(); + returnjo.put("code", "1"); + returnjo.put("desc", "操作成功!"); + returnjo.put("result", result); + return returnjo; + } - @Override - @Async - public void cacheLineMaterSync( - String cachelineCode) { - if(StringUtils.isBlank(cachelineCode)) { - return; - } - RedissonUtils.lock(() -> { - WQLObject positionTab = WQLObject.getWQLObject("sch_cacheline_position"); - WQLObject ivtTab = WQLObject.getWQLObject("sch_cacheline_vehilematerial"); - JSONArray positionArr = positionTab.query("cacheline_code = '" + cachelineCode + "'").getResultJSONArray(0); - if(positionArr.size() == 0) { - log.warn("CacheLineHandServiceImpl#cacheLineMaterSync"); - return; - } - // 缓存线位置表 - Set cacheLineVehiles = positionArr.stream().map(a -> ((JSONObject) a).getString("vehicle_code")).collect(Collectors.toSet()); - JSONArray ivtArr = ivtTab.query("cacheline_code = '" + cachelineCode + "'").getResultJSONArray(0); - Set relationVehiles = ivtArr.stream().map(a -> ((JSONObject) a).getString("vehicle_code")).collect(Collectors.toSet()); - Collection cacheLineVehilesSub = CollectionUtils.subtract(cacheLineVehiles, relationVehiles); - Collection relationVehilesSub = CollectionUtils.subtract(relationVehiles, cacheLineVehiles); - if(!CollectionUtils.isEmpty(relationVehilesSub)) { - String sql = String.join("','", relationVehilesSub); - ivtTab.delete("cacheline_code = '" + cachelineCode + "' and vehicle_code in ('" + sql + "')"); - } - if(!CollectionUtils.isEmpty(cacheLineVehilesSub)) { - for(String vehileCode : cacheLineVehilesSub) { - ivtTab.insert(MapOf.of("create_time", DateUtil.now(), "vehmaterial_id", IdUtil.getStringId(), "vehicle_code", vehileCode, "vehicle_status", StatusEnum.CACHE_VEL_ERR.getCode(), "cacheline_code", cachelineCode, "err_type", StatusEnum.STATUS_TRUE.getCode())); + @Override + @Async + public void cacheLineMaterSync( + String cachelineCode) { + if (StringUtils.isBlank(cachelineCode)) { + return; + } + RedissonUtils.lock(() -> { + WQLObject positionTab = WQLObject.getWQLObject("sch_cacheline_position"); + WQLObject ivtTab = WQLObject.getWQLObject("sch_cacheline_vehilematerial"); + JSONArray positionArr = positionTab.query("cacheline_code = '" + cachelineCode + "'").getResultJSONArray(0); + if (positionArr.size() == 0) { + log.warn("CacheLineHandServiceImpl#cacheLineMaterSync"); + return; + } + // 缓存线位置表 + Set cacheLineVehiles = positionArr.stream().map(a -> ((JSONObject) a).getString("vehicle_code")).collect(Collectors.toSet()); + JSONArray ivtArr = ivtTab.query("cacheline_code = '" + cachelineCode + "'").getResultJSONArray(0); + Set relationVehiles = ivtArr.stream().map(a -> ((JSONObject) a).getString("vehicle_code")).collect(Collectors.toSet()); + Collection cacheLineVehilesSub = CollectionUtils.subtract(cacheLineVehiles, relationVehiles); + Collection relationVehilesSub = CollectionUtils.subtract(relationVehiles, cacheLineVehiles); + if (!CollectionUtils.isEmpty(relationVehilesSub)) { + String sql = String.join("','", relationVehilesSub); + ivtTab.delete("cacheline_code = '" + cachelineCode + "' and vehicle_code in ('" + sql + "')"); + } + if (!CollectionUtils.isEmpty(cacheLineVehilesSub)) { + for (String vehileCode : cacheLineVehilesSub) { + ivtTab.insert(MapOf.of("create_time", DateUtil.now(), "vehmaterial_id", IdUtil.getStringId(), "vehicle_code", vehileCode, "vehicle_status", StatusEnum.CACHE_VEL_ERR.getCode(), "cacheline_code", cachelineCode, "err_type", StatusEnum.STATUS_TRUE.getCode())); + } + } + }, cachelineCode, 3); + } + + /** + * status = 1: 空位 status = 2: 绿色空箱 || status = 3:黄色满箱 || status = 4:红色异常 || status = 5 :不展示 + */ + @Override + public JSONArray cacheLineMaterInfoQuery(JSONObject param) { + WQLObject positionTab = WQLObject.getWQLObject("sch_cacheline_position"); + //获取缓存线位置信息 + JSONArray arr = positionTab.query("cacheLine_code like '%" + param.getString("cacheLine_code") + "%'", "layer_num desc,order_no").getResultJSONArray(0); + // 获取缓存线物料库存信息 + WQLObject ivtTab = WQLObject.getWQLObject("sch_cacheline_vehilematerial"); + for (int i = 0; i < arr.size(); i++) { + JSONObject json = arr.getJSONObject(i); + //料箱展示顺序号 + json.put("seat_order_num", json.getString("order_no")); + //初始化料箱重量和数量 + json.put("weight", "0"); + json.put("quantity", "0"); + //不展示 + if (StatusEnum.CACHE_VEL_DIS.getCode().equals(json.getString("is_show"))) { + json.put("vehicle_status", StatusEnum.CACHE_VEL_DIS.getCode()); + } + //展示 + else { + //是否空位 + if (StatusEnum.CACHE_VEL_NULL.getCode().equals(json.getString("is_empty"))) { + json.put("vehicle_status", StatusEnum.STATUS_FLASE.getCode()); + } else { + // 载具不是空位 + String vehicle_code = json.getString("vehicle_code"); + //从缓存线物料库存中 根据缓存线编码和载具编码获取绑定信息 + JSONObject ivtObj = ivtTab.query("vehicle_code = '" + vehicle_code + "' and cacheLine_code like '%" + param.getString("wcsdevice_code") + "%'").uniqueResult(0); + if (ivtObj == null) { + //标记为红色异常 + json.put("vehicle_status", StatusEnum.CACHE_VEL_ERR.getCode()); + } else { + json.put("vehicle_status", ivtObj.getString("vehicle_status")); + json.put("weight", ivtObj.getString("weight")); + json.put("quantity", ivtObj.getString("quantity")); + json.putAll(ivtObj); } - } - }, cachelineCode, 3); - } + } + } + json.put("cacheLine_code", json.getString("cacheLine_code")); + json.put("weight", NumberUtil.mul(json.getString("weight"), "1")); + json.put("status", json.getString("vehicle_status").substring(1, 2)); + } + return arr; + } - /** - * status = 1: 空位 status = 2: 绿色空箱 || status = 3:黄色满箱 || status = 4:红色异常 || status = 5 :不展示 - */ - @Override - public JSONArray cacheLineMaterInfoQuery(JSONObject param) { - WQLObject positionTab = WQLObject.getWQLObject("sch_cacheline_position"); - //获取缓存线位置信息 - JSONArray arr = positionTab.query("cacheLine_code like '%" + param.getString("cacheLine_code") + "%'", "layer_num desc,order_no").getResultJSONArray(0); - // 获取缓存线物料库存信息 - WQLObject ivtTab = WQLObject.getWQLObject("sch_cacheline_vehilematerial"); - for(int i = 0; i < arr.size(); i++) { - JSONObject json = arr.getJSONObject(i); - //料箱展示顺序号 - json.put("seat_order_num", json.getString("order_no")); - //初始化料箱重量和数量 - json.put("weight", "0"); - json.put("quantity", "0"); - //不展示 - if(StatusEnum.CACHE_VEL_DIS.getCode().equals(json.getString("is_show"))) { - json.put("vehicle_status", StatusEnum.CACHE_VEL_DIS.getCode()); - } - //展示 - else{ - //是否空位 - if(StatusEnum.CACHE_VEL_NULL.getCode().equals(json.getString("is_empty"))) { - json.put("vehicle_status", StatusEnum.STATUS_FLASE.getCode()); - } - else{ - // 载具不是空位 - String vehicle_code = json.getString("vehicle_code"); - //从缓存线物料库存中 根据缓存线编码和载具编码获取绑定信息 - JSONObject ivtObj = ivtTab.query("vehicle_code = '" + vehicle_code + "' and cacheLine_code like '%" + param.getString("wcsdevice_code") + "%'").uniqueResult(0); - if(ivtObj == null) { - //标记为红色异常 - json.put("vehicle_status", StatusEnum.CACHE_VEL_ERR.getCode()); - } - else{ - json.put("vehicle_status", ivtObj.getString("vehicle_status")); - json.put("weight", ivtObj.getString("weight")); - json.put("quantity", ivtObj.getString("quantity")); - json.putAll(ivtObj); - } - } - } - json.put("cacheLine_code", json.getString("cacheLine_code")); - json.put("weight", NumberUtil.mul(json.getString("weight"), "1")); - json.put("status", json.getString("vehicle_status").substring(1, 2)); - } - return arr; - } + /** + * 设置满箱物料 缓存线编码 wcsdevice_code 料箱码 vehicle_code 工序标识 workprocedure_id 物料标识 material_uuid + * 数量 quantity 重量 weight + * + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public CommonResult setfullBox(JSONObject param) { + //物料ID + String semimanufactures_uuid = param.getString("material_uuid"); + // 缓存线位置编码 + String position_code = param.getString("position_code"); + // 料箱码 + String vehicle_code = param.getString("vehicle_code"); + //工序 + // String workprocedure_code = param.getString("workprocedure_code"); + // 缓存线 + String cacheLine_code = param.getString("wcsdevice_code"); + String weight = param.getString("weight"); + String quantity = param.getString("quantity"); + if (StringUtils.isBlank(quantity) || param.getInteger("quantity") <= 0) { + throw new BadRequestException("数量必须大于0!"); + } + //缓存线位置表 + WQLObject positionTab = WQLObject.getWQLObject("sch_cacheline_position"); + // 缓存线位置 + JSONObject vehiobj = positionTab.query("position_code = '" + position_code + "'").uniqueResult(0); + if (vehiobj == null) { + throw new BadRequestException("位置不存在,设置有误!"); + } + //工序表 + //WQLObject wpTab = WQLObject.getWQLObject("pdm_bi_workprocedure"); + //物料表 + WQLObject meTab = WQLObject.getWQLObject("md_me_materialbase"); + // 查询工序信息 + // JSONObject wpObj = wpTab.query("workprocedure_code = '" + workprocedure_code + "'").uniqueResult(0); + // if(ObjectUtil.isEmpty(wpObj)) { + // throw new BadRequestException("工序查询错误,请检查工序"); + // } + JSONObject meObj = meTab.query("material_id = '" + semimanufactures_uuid + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(meObj)) { + throw new BadRequestException("物料查询错误,请检查物料"); + } + vehiobj.put("vehicle_code", vehicle_code); + //2.缓存线位置通过扫码绑定料箱条码 + positionTab.update(vehiobj, "position_code = '" + position_code + "'"); + // 缓存线载具物料表 + WQLObject ivtTab = WQLObject.getWQLObject("sch_cacheline_vehilematerial"); + //3.先删除料箱的所有关联信息,包括物料,工序,生产区域 + ivtTab.delete("vehicle_code = '" + vehicle_code + "'"); + // 物料信息 + HashMap json = new HashMap<>(); + json.put("vehmaterial_id", IdUtil.getStringId()); + json.put("vehicle_code", vehicle_code); + json.put("cacheLine_code", cacheLine_code); + json.put("material_id", meObj.getString("material_id")); + json.put("weight", weight); + json.put("quantity", quantity); + // json.put("workprocedure_code", wpObj.getString("workprocedure_code")); + // json.put("workprocedure_name", wpObj.getString("workprocedure_name")); + //有箱有料 + json.put("vehicle_status", StatusEnum.CACHE_VEL_FULL.getCode()); + json.put("create_time", DateUtil.now()); + //4.重新新建该缓存线位置上的料箱为满箱及所属工序,生产区域等信息 + return RestBusinessTemplate.execute(() -> ivtTab.insert(json).getSucess()); + } - /** - * 设置满箱物料 缓存线编码 wcsdevice_code 料箱码 vehicle_code 工序标识 workprocedure_id 物料标识 material_uuid - * 数量 quantity 重量 weight - * - * @return - */ - @Override - @Transactional(rollbackFor = Exception.class) - public CommonResult setfullBox(JSONObject param) { - //物料ID - String semimanufactures_uuid = param.getString("material_uuid"); - // 缓存线位置编码 - String position_code = param.getString("position_code"); - // 料箱码 - String vehicle_code = param.getString("vehicle_code"); - //工序 - // String workprocedure_code = param.getString("workprocedure_code"); - // 缓存线 - String cacheLine_code = param.getString("wcsdevice_code"); - String weight = param.getString("weight"); - String quantity = param.getString("quantity"); - if(StringUtils.isBlank(quantity) || param.getInteger("quantity") <= 0) { - throw new BadRequestException("数量必须大于0!"); - } - //缓存线位置表 - WQLObject positionTab = WQLObject.getWQLObject("sch_cacheline_position"); - // 缓存线位置 - JSONObject vehiobj = positionTab.query("position_code = '" + position_code + "'").uniqueResult(0); - if(vehiobj == null) { - throw new BadRequestException("位置不存在,设置有误!"); - } - //工序表 - //WQLObject wpTab = WQLObject.getWQLObject("pdm_bi_workprocedure"); - //物料表 - WQLObject meTab = WQLObject.getWQLObject("md_me_materialbase"); - // 查询工序信息 - // JSONObject wpObj = wpTab.query("workprocedure_code = '" + workprocedure_code + "'").uniqueResult(0); - // if(ObjectUtil.isEmpty(wpObj)) { - // throw new BadRequestException("工序查询错误,请检查工序"); - // } - JSONObject meObj = meTab.query("material_id = '" + semimanufactures_uuid + "'").uniqueResult(0); - if(ObjectUtil.isEmpty(meObj)) { - throw new BadRequestException("物料查询错误,请检查物料"); - } - vehiobj.put("vehicle_code", vehicle_code); - //2.缓存线位置通过扫码绑定料箱条码 - positionTab.update(vehiobj, "position_code = '" + position_code + "'"); - // 缓存线载具物料表 - WQLObject ivtTab = WQLObject.getWQLObject("sch_cacheline_vehilematerial"); - //3.先删除料箱的所有关联信息,包括物料,工序,生产区域 - ivtTab.delete("vehicle_code = '" + vehicle_code + "'"); - // 物料信息 - HashMap json = new HashMap<>(); - json.put("vehmaterial_id", IdUtil.getStringId()); - json.put("vehicle_code", vehicle_code); - json.put("cacheLine_code", cacheLine_code); - json.put("material_id", meObj.getString("material_id")); - json.put("weight", weight); - json.put("quantity", quantity); - // json.put("workprocedure_code", wpObj.getString("workprocedure_code")); - // json.put("workprocedure_name", wpObj.getString("workprocedure_name")); - //有箱有料 - json.put("vehicle_status", StatusEnum.CACHE_VEL_FULL.getCode()); - json.put("create_time", DateUtil.now()); - //4.重新新建该缓存线位置上的料箱为满箱及所属工序,生产区域等信息 - return RestBusinessTemplate.execute(() -> ivtTab.insert(json).getSucess()); - } + @Override + @Transactional(rollbackFor = Exception.class) + public JSONObject setEmptyBox(JSONObject param) { + // 缓存线位置编码 + String position_code = param.getString("position_code"); + // 载具条码 + String vehicle_code = param.getString("vehicle_code"); + // 缓存线 + String wcsdevice_code = param.getString("wcsdevice_code"); + // 缓存线载具物料表 + WQLObject ivtTab = WQLObject.getWQLObject("sch_cacheline_vehilematerial"); + // 缓存线位置表 + WQLObject positionTab = WQLObject.getWQLObject("sch_cacheline_position"); + JSONObject vehiobj = positionTab.query("position_code = '" + position_code + "'").uniqueResult(0); + if (vehiobj == null) { + throw new BadRequestException("位置不存在,设置有误!"); + } + //1.缓存线位置通过扫码绑定料箱条码 + vehiobj.put("vehicle_code", vehicle_code); + positionTab.update(vehiobj, "position_code = '" + position_code + "'"); + //2.先删除料箱的所有关联信息,包括物料,工序,生产区域 + ivtTab.delete("vehicle_code = '" + vehicle_code + "'"); + JSONObject json = new JSONObject(); + json.put("vehmaterial_id", IdUtil.getStringId()); + json.put("vehicle_code", vehicle_code); + json.put("cacheLine_code", wcsdevice_code); + json.put("vehicle_status", StatusEnum.CACHE_VEL_EMT.getCode()); + json.put("material_id", ""); + json.put("weight", "0"); + json.put("quantity", "0"); + json.put("workprocedure_code", ""); + json.put("workprocedure_name", ""); + json.put("create_time", DateUtil.now()); + // 3.重新新建该缓存线位置上的料箱为空箱子,是空料箱没有放物料等其他信息 + ivtTab.insert(json); + JSONObject res = new JSONObject(); + res.put("message", "设置成功"); + return res; + } - @Override - @Transactional(rollbackFor = Exception.class) - public JSONObject setEmptyBox(JSONObject param) { - // 缓存线位置编码 - String position_code = param.getString("position_code"); - // 载具条码 - String vehicle_code = param.getString("vehicle_code"); - // 缓存线 - String wcsdevice_code = param.getString("wcsdevice_code"); - // 缓存线载具物料表 - WQLObject ivtTab = WQLObject.getWQLObject("sch_cacheline_vehilematerial"); - // 缓存线位置表 - WQLObject positionTab = WQLObject.getWQLObject("sch_cacheline_position"); - JSONObject vehiobj = positionTab.query("position_code = '" + position_code + "'").uniqueResult(0); - if(vehiobj == null) { - throw new BadRequestException("位置不存在,设置有误!"); - } - //1.缓存线位置通过扫码绑定料箱条码 - vehiobj.put("vehicle_code", vehicle_code); - positionTab.update(vehiobj, "position_code = '" + position_code + "'"); - //2.先删除料箱的所有关联信息,包括物料,工序,生产区域 - ivtTab.delete("vehicle_code = '" + vehicle_code + "'"); - JSONObject json = new JSONObject(); - json.put("vehmaterial_id", IdUtil.getStringId()); - json.put("vehicle_code", vehicle_code); - json.put("cacheLine_code", wcsdevice_code); - json.put("vehicle_status", StatusEnum.CACHE_VEL_EMT.getCode()); - json.put("material_id", ""); - json.put("weight", "0"); - json.put("quantity", "0"); - json.put("workprocedure_code", ""); - json.put("workprocedure_name", ""); - json.put("create_time", DateUtil.now()); - // 3.重新新建该缓存线位置上的料箱为空箱子,是空料箱没有放物料等其他信息 - ivtTab.insert(json); - JSONObject res = new JSONObject(); - res.put("message", "设置成功"); - return res; - } + @Override + public void setBlankPos(JSONObject param) { + // 层数 + String layer_num = param.getString("layer_num"); + // 顺序号 + String seat_order_num = param.getString("seat_order_num"); + // 缓存线编码 + String wcsdevice_code = param.getString("wcsdevice_code"); + // 缓存线位置表 + WQLObject positionTab = WQLObject.getWQLObject("sch_cacheline_position"); + JSONObject json = positionTab.query("order_no = " + seat_order_num + " and layer_num = " + layer_num + " and cacheLine_code like '%" + wcsdevice_code + "%'").uniqueResult(0); + // 状态设置为空位 + json.put("is_empty", "1"); + json.put("vehicle_code", ""); + positionTab.update(json); + } - @Override - public void setBlankPos(JSONObject param) { - // 层数 - String layer_num = param.getString("layer_num"); - // 顺序号 - String seat_order_num = param.getString("seat_order_num"); - // 缓存线编码 - String wcsdevice_code = param.getString("wcsdevice_code"); - // 缓存线位置表 - WQLObject positionTab = WQLObject.getWQLObject("sch_cacheline_position"); - JSONObject json = positionTab.query("order_no = " + seat_order_num + " and layer_num = " + layer_num + " and cacheLine_code like '%" + wcsdevice_code + "%'").uniqueResult(0); - // 状态设置为空位 - json.put("is_empty", "1"); - json.put("vehicle_code", ""); - positionTab.update(json); - } + /** + * 出入空箱,出入类型 inOut_type 1 入空箱 2 出空箱 缓存线编码 wcsdevice_code 料箱码 vehicle_code + * + * @return + */ + @Override + public CommonResult inOutEmptyBox(JSONObject param) { + String inOut_type = param.getString("inOut_type"); + String cacheLine_code = param.getString("wcsdevice_code"); + String vehicle_code = param.getString("vehicle_code"); + String position_code = param.getString("position_code"); + int result = 1; + // 缓存线位置表 + WQLObject positionTab = WQLObject.getWQLObject("sch_cacheline_position"); + //缓存线载具物料表 + WQLObject vehMaterTab = WQLObject.getWQLObject("sch_cacheline_vehilematerial"); + // 入空箱 + if (StatusEnum.IN_VEHICLE.getCode().equals(inOut_type)) { + // 1.判断是否可以放入空箱子 + JSONObject ivtObj = positionTab.query("vehicle_code = '" + vehicle_code + "'").uniqueResult(0); + if (ivtObj != null) { + throw new BadRequestException("箱子【" + vehicle_code + "】已在库内,无法入空箱!"); + } + // 3.判断是否可以放入空箱子 + JSONObject json = positionTab.query("cacheLine_code = '" + cacheLine_code + "' and position_code = '" + position_code + "' and is_empty= '1'").uniqueResult(0); + if (json == null) { + throw new BadRequestException("无法找到缓存线【" + position_code + "】的空位,无法入空箱!"); + } + // 3.入空箱子 + JSONObject afterIvt = new JSONObject(); + afterIvt.put("vehmaterial_id", IdUtil.getStringId()); + afterIvt.put("vehicle_code", vehicle_code); + afterIvt.put("cacheLine_code", cacheLine_code); + afterIvt.put("vehicle_status", StatusEnum.STATUS_TRUE.getCode()); + afterIvt.put("update_time", DateUtil.now()); + afterIvt.put("create_time", DateUtil.now()); + result = vehMaterTab.insert(afterIvt).getSucess(); + } + // 出空箱 + if (StatusEnum.OUT_VEHICLE.getCode().equals(inOut_type)) { + // 缓存线载具物料表 + JSONObject json = vehMaterTab.query("cacheLine_code = '" + cacheLine_code + "'and vehicle_code = '" + vehicle_code + "' and vehicle_status= '1'").uniqueResult(0); + if (json == null) { + throw new BadRequestException("无法找到缓存线【" + cacheLine_code + "】的空箱【" + vehicle_code + "】,出空箱失败"); + } + // 删除掉出库的箱子及关联物料 + result = vehMaterTab.delete("cacheLine_code = '" + cacheLine_code + "' and vehicle_code = '" + vehicle_code + "'").getSucess(); + } + int finalResult = result; + return RestBusinessTemplate.execute(() -> finalResult); + } - /** - * 出入空箱,出入类型 inOut_type 1 入空箱 2 出空箱 缓存线编码 wcsdevice_code 料箱码 vehicle_code - * - * @return - */ - @Override - public CommonResult inOutEmptyBox(JSONObject param) { - String inOut_type = param.getString("inOut_type"); - String cacheLine_code = param.getString("wcsdevice_code"); - String vehicle_code = param.getString("vehicle_code"); - String position_code = param.getString("position_code"); - int result = 1; - // 缓存线位置表 - WQLObject positionTab = WQLObject.getWQLObject("sch_cacheline_position"); - //缓存线载具物料表 - WQLObject vehMaterTab = WQLObject.getWQLObject("sch_cacheline_vehilematerial"); - // 入空箱 - if(StatusEnum.IN_VEHICLE.getCode().equals(inOut_type)) { - // 1.判断是否可以放入空箱子 - JSONObject ivtObj = positionTab.query("vehicle_code = '" + vehicle_code + "'").uniqueResult(0); - if(ivtObj != null) { - throw new BadRequestException("箱子【" + vehicle_code + "】已在库内,无法入空箱!"); - } - // 3.判断是否可以放入空箱子 - JSONObject json = positionTab.query("cacheLine_code = '" + cacheLine_code + "' and position_code = '" + position_code + "' and is_empty= '1'").uniqueResult(0); - if(json == null) { - throw new BadRequestException("无法找到缓存线【" + position_code + "】的空位,无法入空箱!"); - } - // 3.入空箱子 - JSONObject afterIvt = new JSONObject(); - afterIvt.put("vehmaterial_id", IdUtil.getStringId()); - afterIvt.put("vehicle_code", vehicle_code); - afterIvt.put("cacheLine_code", cacheLine_code); - afterIvt.put("vehicle_status", StatusEnum.STATUS_TRUE.getCode()); - afterIvt.put("update_time", DateUtil.now()); - afterIvt.put("create_time", DateUtil.now()); - result = vehMaterTab.insert(afterIvt).getSucess(); - } - // 出空箱 - if(StatusEnum.OUT_VEHICLE.getCode().equals(inOut_type)) { - // 缓存线载具物料表 - JSONObject json = vehMaterTab.query("cacheLine_code = '" + cacheLine_code + "'and vehicle_code = '" + vehicle_code + "' and vehicle_status= '1'").uniqueResult(0); - if(json == null) { - throw new BadRequestException("无法找到缓存线【" + cacheLine_code + "】的空箱【" + vehicle_code + "】,出空箱失败"); - } - // 删除掉出库的箱子及关联物料 - result = vehMaterTab.delete("cacheLine_code = '" + cacheLine_code + "' and vehicle_code = '" + vehicle_code + "'").getSucess(); - } - int finalResult = result; - return RestBusinessTemplate.execute(() -> finalResult); - } + /** + * 缓存线出箱异常-查询 + * 缓存线编码 wcsdevice_code + * 缓存线位置编码 position_code + */ + @Override + public JSONArray cacheLineOutBoxExceptionQuery(JSONObject param) { + String wcsdevice_code = param.getString("wcsdevice_code"); + String position_code = param.getString("position_code"); + //根据缓存线编码和缓存线点位查找任务ID + JSONObject posiObj = WQLObject.getWQLObject("sch_cacheline_position").query("cacheLine_code = '" + wcsdevice_code + "' and position_code = '" + position_code + "'").uniqueResult(0); + //查不到点位信息 + if (null == posiObj) { + throw new BadRequestException("未找到该缓存线的点位信息!"); + } + //查不到任务信息 + if (StringUtils.isBlank(posiObj.getString("task_code"))) { + throw new BadRequestException("未找到该缓存线的点位的任务信息!"); + } + JSONArray jsonArray = WQL.getWO("PDA_QUERY").addParam("flag", "10").addParam("task_code", posiObj.getString("task_code")).process().getResultJSONArray(0); + //缓存线编码 + for (int i = 0; i < jsonArray.size(); i++) { + JSONObject row = jsonArray.getJSONObject(i); + row.put("wcsdevice_code", wcsdevice_code); + } + return jsonArray; + } - /** - * 缓存线出箱异常-查询 - * 缓存线编码 wcsdevice_code - * 缓存线位置编码 position_code - */ - @Override - public JSONArray cacheLineOutBoxExceptionQuery(JSONObject param) { - String wcsdevice_code = param.getString("wcsdevice_code"); - String position_code = param.getString("position_code"); - //根据缓存线编码和缓存线点位查找任务ID - JSONObject posiObj = WQLObject.getWQLObject("sch_cacheline_position").query("cacheLine_code = '" + wcsdevice_code + "' and position_code = '" + position_code + "'").uniqueResult(0); - //查不到点位信息 - if(null == posiObj) { - throw new BadRequestException("未找到该缓存线的点位信息!"); - } - //查不到任务信息 - if(StringUtils.isBlank(posiObj.getString("task_code"))) { - throw new BadRequestException("未找到该缓存线的点位的任务信息!"); - } - JSONArray jsonArray = WQL.getWO("PDA_QUERY").addParam("flag", "10").addParam("task_code", posiObj.getString("task_code")).process().getResultJSONArray(0); - //缓存线编码 - for(int i = 0; i < jsonArray.size(); i++) { - JSONObject row = jsonArray.getJSONObject(i); - row.put("wcsdevice_code", wcsdevice_code); - } - return jsonArray; - } + /** + * 缓存线出箱异常确认 + * 出入类型 inOut_type:1.入满箱异常,2.出满箱异常 + * 缓存线位置编码 wcsdevice_code + * 缓存线点位编码 position_code + * 料箱码 vehicle_code + */ + @Override + public CommonResult cacheLineOutBoxExceptionConfirm(JSONObject param) { + String inOut_type = param.getString("inOut_type"); + String cacheLine_code = param.getString("wcsdevice_code"); + String position_code = param.getString("position_code"); + String vehicle_code = param.getString("vehicle_code"); + //缓存线位置表 + WQLObject positionTab = WQLObject.getWQLObject("sch_cacheline_position"); + // 缓存线载具物料表 + WQLObject ivtTab = WQLObject.getWQLObject("sch_cacheline_vehilematerial"); + //1.确定缓存线点位 + JSONObject vehiobj = positionTab.query("position_code = '" + position_code + "' and cacheLine_code = '" + cacheLine_code + "'").uniqueResult(0); + //2.绑定新料箱条码(入满箱或者入空箱),设置缓存线点位不为空 + vehiobj.put("vehicle_code", vehicle_code); + vehiobj.put("is_empty", "0"); + //非雪花算法生产的ID为主键数据更新下需要拼接条件 + positionTab.update(vehiobj, "position_code = '" + position_code + "'"); + //3.删除入料箱之前的所有关联信息,包括物料,工序,生产区域 + ivtTab.delete("vehicle_code = '" + vehicle_code + "'"); + //4.初始化料箱 + HashMap json = new HashMap<>(); + json.put("vehicle_code", vehicle_code); + json.put("cacheLine_code", cacheLine_code); + json.put("vehmaterial_id", IdUtil.getStringId()); + json.put("create_time", DateUtil.now()); + // 出空箱入满箱扫码异常 + if (StatusEnum.OUT_VEHICLE.getCode().equals(inOut_type)) { + //5.通过缓存线位置表当前执行任务id,获取任务信息中的物料信息 + JSONObject positionInfo = positionTab.query("vehicle_code = '" + vehicle_code + "'").uniqueResult(0); + //查不到点位信息 + if (null == positionInfo) { + throw new BadRequestException("未找到该缓存线的点位信息!"); + } + //获取当前任务信息 + JSONObject instructObj = WQLObject.getWQLObject("sch_base_task").query("task_code = '" + positionInfo.getString("task_code") + "'").uniqueResult(0); + //查不到点位信息 + if (null == instructObj) { + throw new BadRequestException("未找到该任务信息!"); + } + //获取物料信息 + JSONObject meObj = WQLObject.getWQLObject("md_me_materialbase").query("material_id = '" + instructObj.get("material_id") + "'").uniqueResult(0); + //查不到点位信息 + if (null == meObj) { + throw new BadRequestException("未找到该物料信息!"); + } + //6.重新新建该缓存线位置上的料箱为满箱及所属工序,生产区域等信息 + json.put("material_id", meObj.getString("material_id")); + json.put("quantity", instructObj.getString("material_qty")); + json.put("product_area", instructObj.getString("product_area")); + json.put("vehicle_status", StatusEnum.CACHE_VEL_EMT.getCode()); + } + // 出满箱入空箱 + if (StatusEnum.IN_VEHICLE.getCode().equals(inOut_type)) { + //5.重新新建该缓存线位置上的料箱为空箱子,是空料箱没有放物料等其他信息 + //缓存线载具状态 1-空位、2-绿色空箱、3-黄色满箱、4-红色异常、5不显示 + json.put("vehicle_status", StatusEnum.STATUS_TRUE.getCode()); + json.put("material_id", ""); + json.put("weight", "0"); + json.put("quantity", "0"); + json.put("workprocedure_code", ""); + json.put("workprocedure_name", ""); + json.put("product_area", ""); + } + return RestBusinessTemplate.execute(() -> ivtTab.insert(json).getSucess()); + } - /** - * 缓存线出箱异常确认 - * 出入类型 inOut_type:1.入满箱异常,2.出满箱异常 - * 缓存线位置编码 wcsdevice_code - * 缓存线点位编码 position_code - * 料箱码 vehicle_code - */ - @Override - public CommonResult cacheLineOutBoxExceptionConfirm(JSONObject param) { - String inOut_type = param.getString("inOut_type"); - String cacheLine_code = param.getString("wcsdevice_code"); - String position_code = param.getString("position_code"); - String vehicle_code = param.getString("vehicle_code"); - //缓存线位置表 - WQLObject positionTab = WQLObject.getWQLObject("sch_cacheline_position"); - // 缓存线载具物料表 - WQLObject ivtTab = WQLObject.getWQLObject("sch_cacheline_vehilematerial"); - //1.确定缓存线点位 - JSONObject vehiobj = positionTab.query("position_code = '" + position_code + "' and cacheLine_code = '" + cacheLine_code + "'").uniqueResult(0); - //2.绑定新料箱条码(入满箱或者入空箱),设置缓存线点位不为空 - vehiobj.put("vehicle_code", vehicle_code); - vehiobj.put("is_empty", "0"); - //非雪花算法生产的ID为主键数据更新下需要拼接条件 - positionTab.update(vehiobj, "position_code = '" + position_code + "'"); - //3.删除入料箱之前的所有关联信息,包括物料,工序,生产区域 - ivtTab.delete("vehicle_code = '" + vehicle_code + "'"); - //4.初始化料箱 - HashMap json = new HashMap<>(); - json.put("vehicle_code", vehicle_code); - json.put("cacheLine_code", cacheLine_code); - json.put("vehmaterial_id", IdUtil.getStringId()); - json.put("create_time", DateUtil.now()); - // 出空箱入满箱扫码异常 - if(StatusEnum.OUT_VEHICLE.getCode().equals(inOut_type)) { - //5.通过缓存线位置表当前执行任务id,获取任务信息中的物料信息 - JSONObject positionInfo = positionTab.query("vehicle_code = '" + vehicle_code + "'").uniqueResult(0); - //查不到点位信息 - if(null == positionInfo) { - throw new BadRequestException("未找到该缓存线的点位信息!"); - } - //获取当前任务信息 - JSONObject instructObj = WQLObject.getWQLObject("sch_base_task").query("task_code = '" + positionInfo.getString("task_code") + "'").uniqueResult(0); - //查不到点位信息 - if(null == instructObj) { - throw new BadRequestException("未找到该任务信息!"); - } - //获取物料信息 - JSONObject meObj = WQLObject.getWQLObject("md_me_materialbase").query("material_id = '" + instructObj.get("material_id") + "'").uniqueResult(0); - //查不到点位信息 - if(null == meObj) { - throw new BadRequestException("未找到该物料信息!"); - } - //6.重新新建该缓存线位置上的料箱为满箱及所属工序,生产区域等信息 - json.put("material_id", meObj.getString("material_id")); - json.put("quantity", instructObj.getString("material_qty")); - json.put("product_area", instructObj.getString("product_area")); - json.put("vehicle_status", StatusEnum.CACHE_VEL_EMT.getCode()); - } - // 出满箱入空箱 - if(StatusEnum.IN_VEHICLE.getCode().equals(inOut_type)) { - //5.重新新建该缓存线位置上的料箱为空箱子,是空料箱没有放物料等其他信息 - //缓存线载具状态 1-空位、2-绿色空箱、3-黄色满箱、4-红色异常、5不显示 - json.put("vehicle_status", StatusEnum.STATUS_TRUE.getCode()); - json.put("material_id", ""); - json.put("weight", "0"); - json.put("quantity", "0"); - json.put("workprocedure_code", ""); - json.put("workprocedure_name", ""); - json.put("product_area", ""); - } - return RestBusinessTemplate.execute(() -> ivtTab.insert(json).getSucess()); - } + /** + * 缓存线扫码异常-查询 + */ + @Override + public List inOutExceptionInstQuery(JSONObject param) { + return vehilematerialMapper.getErrorVeh(param.getString("wcsdevice_code")); + } - /** - * 缓存线扫码异常-查询 - */ - @Override - public JSONArray inOutExceptionInstQuery(JSONObject param) { - return WQL.getWO("PDA_QUERY").addParamMap(MapOf.of("cacheline_code", param.getString("wcsdevice_code"), "flag", "12")).process().getResultJSONArray(0); - } + /** + * 扫码异常确认 + * type:人工选择,1:对接位; 2:准备位 + * 缓存线编码 wcsdevice_code + * 缓存线位置编码 position_code + * 料箱码 vehicle_code + * + * @return + */ + @Override + public CommonResult inOutExceptionInstConfirm(JSONObject param) { + // 料箱在对接位还是准备位 + String type = param.getString("type"); + // 缓存线编码 + String device_code = param.getString("wcsdevice_code"); + //载具编码 + String vehicle_code = param.getString("vehicle_code"); + //缓存线位置编码 + String position_code = param.getString("position_code"); + // 封装给acs的数据 + JSONArray jsonArray = new JSONArray(); + JSONObject jsonObject = new JSONObject(); + // 1 扫码异常-入箱扫码 2 出箱扫码 + jsonObject.put("type", type); + jsonObject.put("position_code", position_code); + jsonObject.put("device_code", device_code); + jsonObject.put("vehicle_code", vehicle_code); + jsonArray.add(jsonObject); + try { + return RestBusinessTemplate.execute(() -> AcsUtil.notifyAcs("api/wms/issuedBarcode", jsonArray)); + } catch (NullPointerException e) { + throw new BadRequestException(e.toString()); + } + } - /** - * 扫码异常确认 - * type:人工选择,1:对接位; 2:准备位 - * 缓存线编码 wcsdevice_code - * 缓存线位置编码 position_code - * 料箱码 vehicle_code - * - * @return - */ - @Override - public CommonResult inOutExceptionInstConfirm(JSONObject param) { - // 料箱在对接位还是准备位 - String type = param.getString("type"); - // 缓存线编码 - String device_code = param.getString("wcsdevice_code"); - //载具编码 - String vehicle_code = param.getString("vehicle_code"); - //缓存线位置编码 - String position_code = param.getString("position_code"); - // 封装给acs的数据 - JSONArray jsonArray = new JSONArray(); - JSONObject jsonObject = new JSONObject(); - // 1 扫码异常-入箱扫码 2 出箱扫码 - jsonObject.put("type", type); - jsonObject.put("position_code", position_code); - jsonObject.put("device_code", device_code); - jsonObject.put("vehicle_code", vehicle_code); - jsonArray.add(jsonObject); - try { - return RestBusinessTemplate.execute(() -> AcsUtil.notifyAcs("api/wms/issuedBarcode", jsonArray)); - } - catch(NullPointerException e) { - throw new BadRequestException(e.toString()); - } - } + /** + * 缓存线异常确认 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public CommonResult cacheLineExcepOpt(JSONObject param) { + // 缓存线编码 + String wcsdevice_code = param.getString("wcsdevice_code"); + // opt_type 1-暂停、2-启动,默认为1暂停 + String type = StatusEnum.PAUSE_CACHELINE.getCode(); + String opt_type = param.getString("opt_type"); + if (StatusEnum.START_CACHELINE.getCode().equals(opt_type)) { + type = "0"; + } + JSONArray jsonArray = new JSONArray(); + JSONObject jsonObject = new JSONObject(); + //下发接收的,恢复是0,暂停是1 + jsonObject.put("type", type); + //缓存线编码 + jsonObject.put("wcsdevice_code", wcsdevice_code); + jsonArray.add(jsonObject); + try { + return RestBusinessTemplate.execute(() -> AcsUtil.notifyAcs("api/wms/puaseCacheLine", jsonArray)); + } catch (NullPointerException e) { + throw new BadRequestException(e.toString()); + } + } - /** - * 缓存线异常确认 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public CommonResult cacheLineExcepOpt(JSONObject param) { - // 缓存线编码 - String wcsdevice_code = param.getString("wcsdevice_code"); - // opt_type 1-暂停、2-启动,默认为1暂停 - String type = StatusEnum.PAUSE_CACHELINE.getCode(); - String opt_type = param.getString("opt_type"); - if(StatusEnum.START_CACHELINE.getCode().equals(opt_type)) { - type = "0"; - } - JSONArray jsonArray = new JSONArray(); - JSONObject jsonObject = new JSONObject(); - //下发接收的,恢复是0,暂停是1 - jsonObject.put("type", type); - //缓存线编码 - jsonObject.put("wcsdevice_code", wcsdevice_code); - jsonArray.add(jsonObject); - try { - return RestBusinessTemplate.execute(() -> AcsUtil.notifyAcs("api/wms/puaseCacheLine", jsonArray)); - } - catch(NullPointerException e) { - throw new BadRequestException(e.toString()); - } - } + /** + * AGV入箱子异常,(怎么判断入箱子异常) 缓存线编码 wcsdevice_code 满箱码 vehicle_code + */ + @Override + public JSONArray agvInBoxExceptionQuery(JSONObject param) { + String vehicle_code = param.getString("vehicle_code"); + String wcsdevice_code = param.getString("wcsdevice_code"); + WQLObject instructTab = WQLObject.getWQLObject("sch_base_task"); + String where = "point_code2 = '" + wcsdevice_code + "' and vehicle_code = '" + vehicle_code + "' and task_status <> '7'"; + if (StringUtils.isBlank(vehicle_code)) { + where = "point_code2 = '" + wcsdevice_code + "' and task_status <> '7'"; + } + JSONArray arr = instructTab.query(where).getResultJSONArray(0); + JSONArray result = new JSONArray(); + for (int i = 0; i < arr.size(); i++) { + JSONObject row = arr.getJSONObject(i); + JSONObject json = new JSONObject(); + json.put("instruct_uuid", row.getString("task_id")); + json.put("instructorder_no", row.getString("task_code")); + json.put("wcsdevice_code", row.getString("point_code2")); + json.put("point_code1", row.getString("point_code1")); + json.put("nextpoint_code", row.getString("point_code2")); + json.put("nextpoint_code2", row.getString("point_code3")); + result.add(json); + } + return result; + } - /** - * AGV入箱子异常,(怎么判断入箱子异常) 缓存线编码 wcsdevice_code 满箱码 vehicle_code - */ - @Override - public JSONArray agvInBoxExceptionQuery(JSONObject param) { - String vehicle_code = param.getString("vehicle_code"); - String wcsdevice_code = param.getString("wcsdevice_code"); - WQLObject instructTab = WQLObject.getWQLObject("sch_base_task"); - String where = "point_code2 = '" + wcsdevice_code + "' and vehicle_code = '" + vehicle_code + "' and task_status <> '7'"; - if(StringUtils.isBlank(vehicle_code)) { - where = "point_code2 = '" + wcsdevice_code + "' and task_status <> '7'"; - } - JSONArray arr = instructTab.query(where).getResultJSONArray(0); - JSONArray result = new JSONArray(); - for(int i = 0; i < arr.size(); i++) { - JSONObject row = arr.getJSONObject(i); - JSONObject json = new JSONObject(); - json.put("instruct_uuid", row.getString("task_id")); - json.put("instructorder_no", row.getString("task_code")); - json.put("wcsdevice_code", row.getString("point_code2")); - json.put("point_code1", row.getString("point_code1")); - json.put("nextpoint_code", row.getString("point_code2")); - json.put("nextpoint_code2", row.getString("point_code3")); - result.add(json); - } - return result; - } + /** + * 缓存线编码 wcsdevice_code 满箱码 full_vehicle_code 空箱码 empty_vehicle_code 指令标识 + * instruct_uuid + * { "wcsdevice_code": "HCX01", "full_vehicle_code": "10001", + * "empty_vehicle_code": "10002", "instruct_uuid": "uuid_0101" } + */ + @Override + public void agvInBoxExceptionConfirm(JSONObject param) { + WQLObject instructTab = WQLObject.getWQLObject("sch_base_task"); + String instruct_uuid = param.getString("task_id"); + String empty_vehicle_code = param.getString("empty_vehicle_code"); + String full_vehicle_code = param.getString("full_vehicle_code"); + //String cacheLine_code = param.getString("wcsdevice_code"); + // 缓存线位置表 + // WQLObject positionTab = WQLObject.getWQLObject("sch_cacheline_position"); + // 缓存线载具物料表 + // WQLObject ivtTab = WQLObject.getWQLObject("sch_cacheline_vehilematerial"); + // JSONObject instObj = instructTab.query("task_id = '" + instruct_uuid + "'").uniqueResult(0); + // AgvTwoInst inst = new AgvTwoInst(); + // instObj.put("inboxtxm", full_vehicle_code); + // instObj.put("outboxtxm", empty_vehicle_code); + // inst.updateInstStatus(instObj, "1"); + // inst.updateInstStatus(instObj, "2"); + } - /** - * 缓存线编码 wcsdevice_code 满箱码 full_vehicle_code 空箱码 empty_vehicle_code 指令标识 - * instruct_uuid - * { "wcsdevice_code": "HCX01", "full_vehicle_code": "10001", - * "empty_vehicle_code": "10002", "instruct_uuid": "uuid_0101" } - */ - @Override - public void agvInBoxExceptionConfirm(JSONObject param) { - WQLObject instructTab = WQLObject.getWQLObject("sch_base_task"); - String instruct_uuid = param.getString("task_id"); - String empty_vehicle_code = param.getString("empty_vehicle_code"); - String full_vehicle_code = param.getString("full_vehicle_code"); - //String cacheLine_code = param.getString("wcsdevice_code"); - // 缓存线位置表 - // WQLObject positionTab = WQLObject.getWQLObject("sch_cacheline_position"); - // 缓存线载具物料表 - // WQLObject ivtTab = WQLObject.getWQLObject("sch_cacheline_vehilematerial"); - // JSONObject instObj = instructTab.query("task_id = '" + instruct_uuid + "'").uniqueResult(0); - // AgvTwoInst inst = new AgvTwoInst(); - // instObj.put("inboxtxm", full_vehicle_code); - // instObj.put("outboxtxm", empty_vehicle_code); - // inst.updateInstStatus(instObj, "1"); - // inst.updateInstStatus(instObj, "2"); - } + /** + * AGV出空箱异常 + */ + @Override + public JSONArray agvOutBoxExceptionQuery(JSONObject param) { + String vehicle_code = param.getString("vehicle_code"); + String wcsdevice_code = param.getString("wcsdevice_code"); + JSONArray arr; + WQLObject instructTab = WQLObject.getWQLObject("sch_base_task"); + if (StringUtils.isBlank(vehicle_code)) { + arr = instructTab.query("point_code1 = '" + wcsdevice_code + "' and task_status <> '7'").getResultJSONArray(0); + } else { + arr = instructTab.query("point_code1 = '" + wcsdevice_code + "' and vehicle_code = '" + vehicle_code + "' and task_status <> '7'").getResultJSONArray(0); + } + JSONArray result = new JSONArray(); + for (int i = 0; i < arr.size(); i++) { + JSONObject row = arr.getJSONObject(i); + JSONObject json = new JSONObject(); + json.put("instruct_uuid", row.getString("task_id")); + json.put("instructorder_no", row.getString("task_code")); + json.put("wcsdevice_code", row.getString("point_code1")); + json.put("vehicle_code", row.getString("vehicle_code")); + json.put("startpoint_code", row.getString("point_code1")); + json.put("nextpoint_code", row.getString("point_code2")); + json.put("nextpoint_code2", row.getString("point_code3")); + result.add(json); + } + return result; + } - /** - * AGV出空箱异常 - */ - @Override - public JSONArray agvOutBoxExceptionQuery(JSONObject param) { - String vehicle_code = param.getString("vehicle_code"); - String wcsdevice_code = param.getString("wcsdevice_code"); - JSONArray arr; - WQLObject instructTab = WQLObject.getWQLObject("sch_base_task"); - if(StringUtils.isBlank(vehicle_code)) { - arr = instructTab.query("point_code1 = '" + wcsdevice_code + "' and task_status <> '7'").getResultJSONArray(0); - } - else{ - arr = instructTab.query("point_code1 = '" + wcsdevice_code + "' and vehicle_code = '" + vehicle_code + "' and task_status <> '7'").getResultJSONArray(0); - } - JSONArray result = new JSONArray(); - for(int i = 0; i < arr.size(); i++) { - JSONObject row = arr.getJSONObject(i); - JSONObject json = new JSONObject(); - json.put("instruct_uuid", row.getString("task_id")); - json.put("instructorder_no", row.getString("task_code")); - json.put("wcsdevice_code", row.getString("point_code1")); - json.put("vehicle_code", row.getString("vehicle_code")); - json.put("startpoint_code", row.getString("point_code1")); - json.put("nextpoint_code", row.getString("point_code2")); - json.put("nextpoint_code2", row.getString("point_code3")); - result.add(json); - } - return result; - } + /** + * AGV出空箱异常确认(AGV从缓存线拉物料去专机,回来时候入箱异常) { "wcsdevice_code": "HCX01", + * "vehicle_code": "10001", "instruct_uuid": "222" } + */ + @Override + public void agvOutBoxExceptionConfirm(JSONObject param) { + WQLObject instructTab = WQLObject.getWQLObject("sch_base_task"); + String instruct_uuid = param.getString("instruct_uuid"); + String vehicle_code = param.getString("vehicle_code"); + JSONObject instObj = instructTab.query("task_id = '" + instruct_uuid + "'").uniqueResult(0); + // AgvTwoInst inst = new AgvTwoInst(); + // inst.updateInstStatus(instObj, "1"); + // 出箱的时候入箱码和出箱码相同 + // instObj.put("inboxtxm", vehicle_code); + // instObj.put("outboxtxm", vehicle_code); + // inst.updateInstStatus(instObj, "1"); + // inst.updateInstStatus(instObj, "2"); + } - /** - * AGV出空箱异常确认(AGV从缓存线拉物料去专机,回来时候入箱异常) { "wcsdevice_code": "HCX01", - * "vehicle_code": "10001", "instruct_uuid": "222" } - */ - @Override - public void agvOutBoxExceptionConfirm(JSONObject param) { - WQLObject instructTab = WQLObject.getWQLObject("sch_base_task"); - String instruct_uuid = param.getString("instruct_uuid"); - String vehicle_code = param.getString("vehicle_code"); - JSONObject instObj = instructTab.query("task_id = '" + instruct_uuid + "'").uniqueResult(0); - // AgvTwoInst inst = new AgvTwoInst(); - // inst.updateInstStatus(instObj, "1"); - // 出箱的时候入箱码和出箱码相同 - // instObj.put("inboxtxm", vehicle_code); - // instObj.put("outboxtxm", vehicle_code); - // inst.updateInstStatus(instObj, "1"); - // inst.updateInstStatus(instObj, "2"); - } + @Override + public CommonResult pourMaterial(JSONObject param) { + // 指令标识 + String instruct_uuid = param.getString("instruct_uuid"); + // 指令点位表【sch_base_task】 + JSONObject instObj = WQLObject.getWQLObject("sch_base_task").query("task_id = '" + instruct_uuid + "'").uniqueResult(0); + JSONArray jsonArray = new JSONArray(); + int putquantity = instObj.getInteger("material_qty"); + String producer = instObj.getString("point_code2"); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("producer", producer); + jsonObject.put("putquantity", putquantity); + jsonArray.add(jsonObject); + try { + return RestBusinessTemplate.execute(() -> new JSONObject()); + } catch (NullPointerException e) { + throw new BadRequestException(e.toString()); + } + } - @Override - public CommonResult pourMaterial(JSONObject param) { - // 指令标识 - String instruct_uuid = param.getString("instruct_uuid"); - // 指令点位表【sch_base_task】 - JSONObject instObj = WQLObject.getWQLObject("sch_base_task").query("task_id = '" + instruct_uuid + "'").uniqueResult(0); - JSONArray jsonArray = new JSONArray(); - int putquantity = instObj.getInteger("material_qty"); - String producer = instObj.getString("point_code2"); - JSONObject jsonObject = new JSONObject(); - jsonObject.put("producer", producer); - jsonObject.put("putquantity", putquantity); - jsonArray.add(jsonObject); - try { - return RestBusinessTemplate.execute(() -> new JSONObject()); - } - catch(NullPointerException e) { - throw new BadRequestException(e.toString()); - } - } + @Override + public JSONArray getCacheLine(JSONObject param) { + QueryWrapper wrapper = new QueryWrapper<>(); + String product_area = param.getString("product_area"); + if (StrUtil.isNotEmpty(product_area)) { + wrapper.eq("product_area", product_area); + } + List device_list = deviceService.list(wrapper.like("device_code", "HCX")); + JSONArray ja = new JSONArray(); + device_list.forEach(device -> { + JSONObject jo = new JSONObject(); + jo.put("value", device.getDevice_code()); + jo.put("text", device.getDevice_name()); + ja.add(jo); + }); + // 生产区域 - @Override - public JSONArray getCacheLine(JSONObject param) { - // 生产区域 - String product_area = param.getString("product_area"); - return WQL.getWO("PDA_QUERY").addParamMap(MapOf.of("flag", "7", "product_area", product_area)).process().getResultJSONArray(0); - } + return ja; + } - @Override - public JSONArray getCacheLineMaterialInfo(JSONObject param) { - // 缓存线编码 point_code - String pointCode = param.getString("wcsdevice_code"); - String productArea = param.getString("product_area"); - AtomicReference res = new AtomicReference<>(new JSONArray()); - RedissonUtils.lock(() -> { - // 生产区域 - res.set(WQL.getWO("PDA_QUERY").addParamMap(MapOf.of("flag", "8", "product_area", productArea, "cacheline_code", pointCode)).process().getResultJSONArray(0)); - }, pointCode, 3); - return res.get(); - } + @Override + public List getCacheLineMaterialInfo(JSONObject param) { + // 缓存线编码 point_code + String pointCode = param.getString("wcsdevice_code"); + String productArea = param.getString("product_area"); - @Override - public JSONArray getProductArea() { - return WQL.getWO("PDA_QUERY").addParamMap(MapOf.of("flag", "9")).process().getResultJSONArray(0); - } + return positionMapper.getPositionInfo(MapOf.of("product_area", productArea, "cacheline_code", pointCode)); + } - @Override - @Transactional(rollbackFor = Exception.class) - public JSONObject deleteBox(JSONObject param) { - JSONObject res = new JSONObject(); - res.put("message", "删除失败"); - WQLObject cvTab = WQLObject.getWQLObject("SCH_CacheLine_VehileMaterial"); - String vehicleCode = param.getString("vehicle_code"); - if(ObjectUtil.isNotEmpty(vehicleCode)) { - cvTab.delete("vehicle_code = '" + vehicleCode + "'"); - res.put("message", "删除成功"); - } - return res; - } + @Override + public JSONArray getProductArea() { + return WQL.getWO("PDA_QUERY").addParamMap(MapOf.of("flag", "9")).process().getResultJSONArray(0); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public JSONObject deleteBox(JSONObject param) { + JSONObject res = new JSONObject(); + res.put("message", "删除失败"); + WQLObject cvTab = WQLObject.getWQLObject("SCH_CacheLine_VehileMaterial"); + String vehicleCode = param.getString("vehicle_code"); + if (ObjectUtil.isNotEmpty(vehicleCode)) { + cvTab.delete("vehicle_code = '" + vehicleCode + "'"); + res.put("message", "删除成功"); + } + return res; + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/wql/PDA_QUERY.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/wql/PDA_QUERY.wql index cf215a1d..812da60a 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/wql/PDA_QUERY.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/wql/PDA_QUERY.wql @@ -173,17 +173,17 @@ IF 输入.flag = "7" QUERY SELECT - p.point_code as value, - p.point_name as text + device_code AS value, + device_name AS text FROM - sch_base_point p + pdm_bi_device WHERE - p.region_code = 'A1_HCX' - OPTION 输入.product_area <> "" - p.product_area = 输入.product_area - ENDOPTION + device_code like '%HCX%' + OPTION 输入.product_area <> "" + product_area = 输入.product_area + ENDOPTION ORDER BY - p.point_code + device_code ENDSELECT ENDQUERY ENDIF @@ -210,13 +210,9 @@ LEFT JOIN sch_cacheline_vehilematerial ON sch_cacheline_position.vehicle_code = sch_cacheline_vehilematerial.vehicle_code LEFT JOIN md_me_materialbase ON md_me_materialbase.material_id = sch_cacheline_vehilematerial.material_id WHERE - 1 = 1 - OPTION 输入.product_area <> "" - sch_cacheline_position.product_area = 输入.product_area - ENDOPTION - OPTION 输入.cacheline_code <> "" - sch_cacheline_position.cacheline_code = 输入.cacheline_code - ENDOPTION + sch_cacheline_position.product_area = 输入.product_area + AND + sch_cacheline_position.cacheline_code = 输入.cacheline_code ORDER BY sch_cacheline_position.cacheline_code, sch_cacheline_position.layer_num, sch_cacheline_position.positionorder_no, sch_cacheline_position.cache_line_no ENDSELECT diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/dao/mapper/SchCachelinePositionMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/dao/mapper/SchCachelinePositionMapper.java index 085bdc14..ea947c4c 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/dao/mapper/SchCachelinePositionMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/dao/mapper/SchCachelinePositionMapper.java @@ -1,8 +1,12 @@ package org.nl.wms.scheduler_manage.service.cacheline.dao.mapper; +import org.apache.ibatis.annotations.Param; import org.nl.wms.scheduler_manage.service.cacheline.dao.SchCachelinePosition; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import java.util.List; +import java.util.Map; + /** *

* 缓存线位置表 Mapper 接口 @@ -13,4 +17,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface SchCachelinePositionMapper extends BaseMapper { + List getPositionInfo(@Param("map") Map map); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/dao/mapper/SchCachelineVehilematerialMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/dao/mapper/SchCachelineVehilematerialMapper.java index 1229c395..cf0f52cc 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/dao/mapper/SchCachelineVehilematerialMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/dao/mapper/SchCachelineVehilematerialMapper.java @@ -1,8 +1,12 @@ package org.nl.wms.scheduler_manage.service.cacheline.dao.mapper; +import org.apache.ibatis.annotations.Param; import org.nl.wms.scheduler_manage.service.cacheline.dao.SchCachelineVehilematerial; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import java.util.List; +import java.util.Map; + /** *

* 缓存线载具物料表 Mapper 接口 @@ -13,4 +17,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface SchCachelineVehilematerialMapper extends BaseMapper { + List getErrorVeh(@Param("cacheline_code") String cacheline_code); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/dao/mapper/xml/SchCachelinePositionMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/dao/mapper/xml/SchCachelinePositionMapper.xml index 95d66889..173b21e0 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/dao/mapper/xml/SchCachelinePositionMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/dao/mapper/xml/SchCachelinePositionMapper.xml @@ -2,4 +2,34 @@ + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/dao/mapper/xml/SchCachelineVehilematerialMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/dao/mapper/xml/SchCachelineVehilematerialMapper.xml index 16a10788..6158c5ee 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/dao/mapper/xml/SchCachelineVehilematerialMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/dao/mapper/xml/SchCachelineVehilematerialMapper.xml @@ -2,4 +2,26 @@ + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/controller/iostorInv/StIvtIostorinvYlOutController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/controller/iostorInv/StIvtIostorinvYlOutController.java index 42139480..c647d3f2 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/controller/iostorInv/StIvtIostorinvYlOutController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/controller/iostorInv/StIvtIostorinvYlOutController.java @@ -59,8 +59,8 @@ public class StIvtIostorinvYlOutController { } @PostMapping("/getIODtl") - @Log("查询入库分配明细") - @ApiOperation("查询入库分配明细") + @Log("查询出库分配明细") + @ApiOperation("查询出库分配明细") public ResponseEntity getIODtl(@RequestBody JSONObject whereJson) { return new ResponseEntity<>(iostorinvOutYlService.getInvDtl(whereJson), HttpStatus.OK); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/iostorInv/IStIvtIostorinvdtlYlService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/iostorInv/IStIvtIostorinvdtlYlService.java index aab602d5..05327606 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/iostorInv/IStIvtIostorinvdtlYlService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/iostorInv/IStIvtIostorinvdtlYlService.java @@ -24,7 +24,7 @@ public interface IStIvtIostorinvdtlYlService extends IService getDtlList(JSONObject json); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/iostorInv/dao/StIvtIostorinvYl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/iostorInv/dao/StIvtIostorinvYl.java index 0fb387c5..328ed906 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/iostorInv/dao/StIvtIostorinvYl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/iostorInv/dao/StIvtIostorinvYl.java @@ -202,7 +202,7 @@ public class StIvtIostorinvYl implements Serializable { /** * 车间标识 */ - private String product_area; + private String workshop_id; } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvOutYlMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvOutYlMapper.xml index 54d19ba5..839a8bec 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvOutYlMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvOutYlMapper.xml @@ -19,6 +19,7 @@ mst.total_qty, mst.detail_count, mst.bill_status, + mst.workshop_id, mst.remark, mst.create_id, mst.create_name, @@ -28,12 +29,9 @@ DATE_FORMAT( mst.update_time,'%Y-%m-%d %H:%i:%s') AS update_time, mst.confirm_id, mst.confirm_name, - DATE_FORMAT( mst.confirm_time,'%Y-%m-%d %H:%i:%s') AS confirm_time, - dis.struct_id, - dis.sect_id + DATE_FORMAT( mst.confirm_time,'%Y-%m-%d %H:%i:%s') AS confirm_time FROM st_ivt_iostorinv_yl mst - LEFT JOIN st_ivt_iostorinvdis_yl dis ON dis.iostorinv_id = mst.iostorinv_id mst.is_delete = '0' AND diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvYlMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvYlMapper.xml index c25aa704..375b8f8c 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvYlMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvYlMapper.xml @@ -30,7 +30,8 @@ mst.confirm_name, DATE_FORMAT( mst.confirm_time,'%Y-%m-%d %H:%i:%s') AS confirm_time, dis.struct_id, - dis.sect_id + dis.sect_id, + mst.workshop_id FROM st_ivt_iostorinv_yl mst LEFT JOIN st_ivt_iostorinvdis_yl dis ON dis.iostorinv_id = mst.iostorinv_id diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/iostorInv/impl/StIvtIostorinvOutYlServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/iostorInv/impl/StIvtIostorinvOutYlServiceImpl.java index cb970e2a..5f4242fc 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/iostorInv/impl/StIvtIostorinvOutYlServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/iostorInv/impl/StIvtIostorinvOutYlServiceImpl.java @@ -30,6 +30,7 @@ import org.nl.wms.storage_manage.rawmanage.service.iostorInv.IStIvtIostorinvdtlY import org.nl.wms.storage_manage.rawmanage.service.iostorInv.dao.StIvtIostorinvYl; import org.nl.wms.storage_manage.rawmanage.service.iostorInv.dao.StIvtIostorinvdisYl; import org.nl.wms.storage_manage.rawmanage.service.iostorInv.dao.StIvtIostorinvdtlYl; +import org.nl.wms.storage_manage.rawmanage.service.iostorInv.dao.mapper.StIvtIostorinvOutYlMapper; import org.nl.wms.storage_manage.rawmanage.service.iostorInv.dao.mapper.StIvtIostorinvYlMapper; import org.nl.wms.storage_manage.rawmanage.service.iostorInv.dto.YlIostorInvQuery; import org.nl.wms.storage_manage.rawmanage.service.structIvt.IStIvtStructivtYlService; @@ -59,7 +60,7 @@ public class StIvtIostorinvOutYlServiceImpl extends ServiceImpl page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize()); - List mst_detail = iostorinvYlMapper.getMstDetail(query, pageQuery); + List mst_detail = ivtIostorinvOutYlMapper.getMstDetail(query, pageQuery); TableDataInfo build = TableDataInfo.build(mst_detail); build.setTotalElements(page.getTotal()); return build; @@ -94,7 +95,7 @@ public class StIvtIostorinvOutYlServiceImpl extends ServiceImpl dis_list = iostorinvdisYlService.list(new QueryWrapper().eq("iostorinv_id", iostorinv_id)); List dtl_list = iostorinvdtlYlService.list(new QueryWrapper().eq("iostorinv_id", iostorinv_id)); - if (ObjectUtil.isEmpty(dis_list)) { - throw new BadRequestException("该入库单不存在分配明细!"); + if (ObjectUtil.isEmpty(dtl_list)) { + throw new BadRequestException("该入库单不存在明细!"); } if (mst == null || mst.getIs_delete() == true) { throw new BadRequestException("单据不存在"); } - //修改分配状态 - dis_list.forEach(dis -> { - dis.setReal_qty(dis.getPlan_qty()); - dis.setWork_status(IOSEnum.WORK_STATUS.code("完成")); - iostorinvdisYlService.updateById(dis); - //修改库存和插入库存变动记录表 - structivtflowService.recordStructivtFlow( - StIvtStructivtflowDto.builder() - .bill_code(mst.getBill_code()).change_type_scode(CHANGE_BILL_TYPE_ENUM.IOSTORINV_IN_CONFIRM).bill_table("st_ivt_iostorinv_bcp") - .material_id(dis.getMaterial_id()).pcsn(dis.getPcsn()) - .struct_code(dis.getStruct_code()).result_qty(structivtYlService.getOne(new QueryWrapper().eq("struct_code", dis.getStruct_code())).getCanuse_qty()).change_qty(dis.getReal_qty()) - .task_id(dis.getTask_id()) - .storagevehicle_code(dis.getStoragevehicle_code()) - .build() - ); - }); - - //修改明细状态 - dtl_list.forEach(dtl -> { - dtl.setReal_qty(dtl.getPlan_qty()); - dtl.setBill_status(IOSEnum.BILL_STATUS.code("完成")); - iostorinvdtlYlService.updateById(dtl); - - //如果单据类型为原料入库 - if (mst.getBill_type().equals(IOSEnum.BILL_TYPE.code("原料入库"))) { - JSONObject pur_jo = new JSONObject(); - pur_jo.put("po_code", dtl.getSource_bill_code()); - pur_jo.put("instor_qty", dtl.getReal_qty()); - purchaseorderService.updatePurchaseNum(pur_jo); - } - }); - - //修改主表 - mst.setConfirm_id(SecurityUtils.getCurrentUserId()); - mst.setConfirm_name(SecurityUtils.getCurrentNickName()); - mst.setConfirm_time(DateUtil.now()); - mst.setBill_status(IOSEnum.BILL_STATUS.code("完成")); - this.updateById(mst); } @@ -198,7 +160,7 @@ public class StIvtIostorinvOutYlServiceImpl extends ServiceImpl 0 && StringUtils.isNotEmpty(iostorinvYl_id)) { // 先删除在插入 this.remove(new QueryWrapper().eq("iostorinv_id", iostorinvYl_id)); - //删除分配记录 - iostorinvdisYlService.deleteById(iostorinvYl_id); + if (io_type.equals(IOSEnum.IO_TYPE.code("入库"))) { + //删除分配记录 + iostorinvdisYlService.deleteById(iostorinvYl_id); + } for (int i = 0; i < rows.size(); i++) { String iostorinvdtlYl_id = IdUtil.getStringId(); @@ -60,7 +62,9 @@ public class StIvtIostorinvdtlYlServiceImpl extends ServiceImpl { - debugger let same_mater = true this.form.tableData.forEach((row) => { if (row.material_code === item.material_code) { diff --git a/mes/qd/src/views/wms/storage_manage/rawproduct/rawProductOut/AddDialog.vue b/mes/qd/src/views/wms/storage_manage/rawproduct/rawProductOut/AddDialog.vue index 8e28098e..cf6943c5 100644 --- a/mes/qd/src/views/wms/storage_manage/rawproduct/rawProductOut/AddDialog.vue +++ b/mes/qd/src/views/wms/storage_manage/rawproduct/rawProductOut/AddDialog.vue @@ -203,7 +203,7 @@ - { + crudProductOut.getIODtl({'iostorinv_id': this.form.iostorinv_id}).then(res => { this.form.tableData = res // 将明细变成不可编辑 for (let i = 0; i < this.form.tableData.length; i++) { @@ -310,25 +311,6 @@ export default { } }) }, - [CRUD.HOOK.beforeToEdit]() { - this.struct_id = this.crud.form.struct_id - this.sect_id = this.crud.form.sect_id - crudStructattr.getSectCascader({'stor_id': this.crud.form.stor_id}).then(res => { - this.sects = res.content - this.form.struct_id = this.search(this.sects, this.struct_id) - }) - }, - [CRUD.HOOK.afterToView]() { - crudProductIn.getIODtl({'bill_code': this.form.bill_code}).then(res => { - this.form.tableData = res - // 将明细变成不可编辑 - for (let i = 0; i < this.form.tableData.length; i++) { - const row = this.form.tableData[i] - this.form.tableData.splice(i, 1, row) - } - }) - }, - [CRUD.HOOK.beforeSubmit]() { // 提交前校验 if (this.form.tableData.length === 0) { @@ -360,16 +342,6 @@ export default { this.sects = res.content }) }, - search(object, value) { - debugger - for (var key in object) { - if (object[key].value == value) return [object[key].value]; - if (object[key].children && Object.keys(object[key].children).length > 0) { - var temp = search(object[key].children, value); - if (temp) return [object[key].value, temp].flat(); - } - } - }, sectQueryChange(val) { debugger this.sectProp = val @@ -404,10 +376,9 @@ export default { tableChanged(rows) { // 对新增的行进行校验不能存在相同物料批次 rows.forEach((item) => { - debugger let same_mater = true this.form.tableData.forEach((row) => { - if (row.material_code === item.material_code && row.struct_id === item.struct_id) { + if (row.material_code === item.material_code) { same_mater = false } }) @@ -415,7 +386,9 @@ export default { item.quality_scode = '01' item.ivt_level = '01' item.is_active = '1' - item.plan_qty = item.canuse_qty + item.plan_qty = '1' + item.qty_unit_id = item.base_unit_id + item.qty_unit_name = item.base_unit_name this.form.total_qty = parseFloat(this.form.total_qty) + parseFloat(item.plan_qty) this.form.tableData.splice(-1, 0, item) } diff --git a/mes/qd/src/views/wms/storage_manage/rawproduct/rawProductOut/ViewDialog.vue b/mes/qd/src/views/wms/storage_manage/rawproduct/rawProductOut/ViewDialog.vue index ed872468..27862497 100644 --- a/mes/qd/src/views/wms/storage_manage/rawproduct/rawProductOut/ViewDialog.vue +++ b/mes/qd/src/views/wms/storage_manage/rawproduct/rawProductOut/ViewDialog.vue @@ -45,7 +45,7 @@ @change="crud.toQuery" >