diff --git a/lms/nladmin-system/doc/wms.xls b/lms/nladmin-system/doc/wms.xls index ca4e764..1f02958 100644 Binary files a/lms/nladmin-system/doc/wms.xls and b/lms/nladmin-system/doc/wms.xls differ diff --git a/lms/nladmin-system/logPath_IS_UNDEFINED/XgAgvDeviceDriver/DEVICECODE_IS_UNDEFINED/2023-11-14.0.log b/lms/nladmin-system/logPath_IS_UNDEFINED/XgAgvDeviceDriver/DEVICECODE_IS_UNDEFINED/2023-11-14.0.log new file mode 100644 index 0000000..e69de29 diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/mapper/CockpitMapper.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/mapper/CockpitMapper.java index 7cf01fd..33c502d 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/mapper/CockpitMapper.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/mapper/CockpitMapper.java @@ -20,6 +20,10 @@ public interface CockpitMapper { JSONObject getVehicleGroupInfo(String vehicleCode, String vehicleType); + /** + * 固化室详情 + * @return + */ JSONArray getGHSInteriorList(); JSONArray getSSXInteriorList(); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/mapper/CockpitMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/mapper/CockpitMapper.xml index b8550a6..786596b 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/mapper/CockpitMapper.xml +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/mapper/CockpitMapper.xml @@ -33,7 +33,7 @@ CAST(point_status - 1 AS SIGNED) AS move, point_code AS device_code, point_name AS device_name, - vehicle_type, + IF(LENGTH(vehicle_type)>0, vehicle_type, '-') AS vehicle_type, parent_point_code AS device FROM `sch_base_point` diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/impl/CockpitServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/impl/CockpitServiceImpl.java index 678b686..0fc91ff 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/impl/CockpitServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/impl/CockpitServiceImpl.java @@ -7,8 +7,7 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.nl.wms.cockpit.service.CockpitService; import org.nl.wms.cockpit.service.dao.mapper.CockpitMapper; -import org.nl.wms.pdm.service.IPdmBdWorkorderService; -import org.nl.wms.pdm.service.dao.PdmBdWorkorder; +import org.nl.wms.pdm.workorder.service.IPdmBdWorkorderService; import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; import org.nl.wms.sch.point.service.ISchBasePointService; import org.nl.wms.sch.point.service.dao.SchBasePoint; @@ -16,10 +15,8 @@ import org.nl.wms.sch.task_manage.enums.RegionCodeConstant; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.ArrayList; import java.util.List; import java.util.Random; -import java.util.function.Consumer; import java.util.stream.Collectors; /** diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/material/service/dao/MdBaseMaterial.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/material/service/dao/MdBaseMaterial.java index ad5c250..456eb3e 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/material/service/dao/MdBaseMaterial.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/material/service/dao/MdBaseMaterial.java @@ -75,6 +75,8 @@ public class MdBaseMaterial implements Serializable { private String ext_id; @ApiModelProperty(value = "标准数量") private String standard_qty; + @ApiModelProperty(value = "标准重量") + private String standard_weight; @ApiModelProperty(value = "工艺号") private String technique_num; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/controller/AcsToWmsController.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/controller/AcsToWmsController.java similarity index 92% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/controller/AcsToWmsController.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/controller/AcsToWmsController.java index accd3c2..103312f 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/controller/AcsToWmsController.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/controller/AcsToWmsController.java @@ -1,15 +1,13 @@ -package org.nl.wms.ext.controller; +package org.nl.wms.ext.acs.controller; import cn.dev33.satoken.annotation.SaIgnore; -import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.nl.common.logging.annotation.Log; -import org.nl.wms.ext.service.AcsToWmsService; +import org.nl.wms.ext.acs.service.AcsToWmsService; import org.nl.wms.sch.point.service.ISchBasePointService; -import org.nl.wms.sch.task.service.ISchBaseTaskService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -18,8 +16,6 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.Map; - /** * @Author: lyd * @Description: acs请求lms接口 @@ -56,28 +52,30 @@ public class AcsToWmsController { return new ResponseEntity<>(acsToWmsService.status(param), HttpStatus.OK); } + @PostMapping("/againApply") + @Log("二次申请任务") + @ApiOperation("二次申请任务") + @SaIgnore + public ResponseEntity againApply(@RequestBody JSONObject task) { + return new ResponseEntity<>(acsToWmsService.againApply(task), HttpStatus.OK); + } + @PostMapping("/feedbackState") @Log("ACS系统反馈AGV取放货状态") @ApiOperation("ACS系统反馈AGV取放货状态") //@SaCheckPermission("@el.check('schBaseTask:add')") @SaIgnore + @Deprecated public ResponseEntity feedbackState(@RequestBody JSONObject param) { return new ResponseEntity<>(acsToWmsService.feedbackState(param), HttpStatus.OK); } - @PostMapping("/againApply") - @Log("二次申请任务") - @ApiOperation("二次申请任务") - @SaIgnore - public ResponseEntity againApply(@RequestBody JSONObject task) { - return new ResponseEntity<>(acsToWmsService.againApply(task), HttpStatus.OK); - } - @PostMapping("/notify") @Log("acs通知wms") @ApiOperation("acs通知wms") //@SaCheckPermission("@el.check('schBaseTask:add')") @SaIgnore + @Deprecated public ResponseEntity notify(@RequestBody JSONObject param) { return new ResponseEntity<>(acsToWmsService.notify(param), HttpStatus.OK); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/AcsToWmsService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java similarity index 71% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/AcsToWmsService.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java index 3764ea1..720cb38 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/AcsToWmsService.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java @@ -1,7 +1,8 @@ -package org.nl.wms.ext.service; +package org.nl.wms.ext.acs.service; import com.alibaba.fastjson.JSONObject; -import org.nl.wms.ext.service.dto.to.BaseResponse; +import org.nl.wms.ext.acs.service.dto.to.BaseResponse; +import org.nl.wms.ext.acs.service.dto.to.acs.AgainApplyResponse; /** * @Author: lyd @@ -26,5 +27,5 @@ public interface AcsToWmsService { * @param task * @return */ - String againApply(JSONObject task); + AgainApplyResponse againApply(JSONObject task); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/WmsToAcsService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/WmsToAcsService.java similarity index 58% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/WmsToAcsService.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/WmsToAcsService.java index 73d3c8d..d8e4a5a 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/WmsToAcsService.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/WmsToAcsService.java @@ -1,12 +1,7 @@ -package org.nl.wms.ext.service; +package org.nl.wms.ext.acs.service; import com.alibaba.fastjson.JSONObject; -import org.apache.poi.ss.formula.functions.T; -import org.nl.wms.ext.service.dto.ResultForAcs; -import org.nl.wms.ext.service.dto.to.wms.AcsResponse; -import org.nl.wms.sch.task_manage.AcsTaskDto; - -import java.util.List; +import org.nl.wms.ext.acs.service.dto.to.wms.AcsResponse; /** * @Author: lyd diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/PalletizeDto.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/PalletizeDto.java similarity index 98% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/PalletizeDto.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/PalletizeDto.java index 6600787..8d59416 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/PalletizeDto.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/PalletizeDto.java @@ -1,4 +1,4 @@ -package org.nl.wms.ext.service.dto; +package org.nl.wms.ext.acs.service.dto; import lombok.Data; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/Resp.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/Resp.java similarity index 92% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/Resp.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/Resp.java index 03e3deb..647cd6d 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/Resp.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/Resp.java @@ -1,4 +1,4 @@ -package org.nl.wms.ext.service.dto; +package org.nl.wms.ext.acs.service.dto; import lombok.Data; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/ResultForAcs.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/ResultForAcs.java similarity index 97% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/ResultForAcs.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/ResultForAcs.java index ad0a925..424377c 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/ResultForAcs.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/ResultForAcs.java @@ -1,4 +1,4 @@ -package org.nl.wms.ext.service.dto; +package org.nl.wms.ext.acs.service.dto; import cn.hutool.core.date.DateUtil; import cn.hutool.http.HttpStatus; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/SignalData.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/SignalData.java similarity index 91% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/SignalData.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/SignalData.java index 2e5f72a..86c0776 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/SignalData.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/SignalData.java @@ -1,4 +1,4 @@ -package org.nl.wms.ext.service.dto; +package org.nl.wms.ext.acs.service.dto; import lombok.Data; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/BaseRequest.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/BaseRequest.java similarity index 96% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/BaseRequest.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/BaseRequest.java index 9a2e3fe..ee50697 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/BaseRequest.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/BaseRequest.java @@ -1,4 +1,4 @@ -package org.nl.wms.ext.service.dto.to; +package org.nl.wms.ext.acs.service.dto.to; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/BaseResponse.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/BaseResponse.java similarity index 98% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/BaseResponse.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/BaseResponse.java index b39b2e1..ff85990 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/BaseResponse.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/BaseResponse.java @@ -1,4 +1,4 @@ -package org.nl.wms.ext.service.dto.to; +package org.nl.wms.ext.acs.service.dto.to; import cn.hutool.core.date.DateUtil; import cn.hutool.http.HttpStatus; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/acs/AgainApplyResponse.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/acs/AgainApplyResponse.java new file mode 100644 index 0000000..f255c82 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/acs/AgainApplyResponse.java @@ -0,0 +1,45 @@ +package org.nl.wms.ext.acs.service.dto.to.acs; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.http.HttpStatus; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.nl.wms.ext.acs.service.dto.to.BaseResponse; + +/** + * @Author: lyd + * @Description: + * @Date: 2023/12/11 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class AgainApplyResponse extends BaseResponse { + private String next_point_code; + + public static AgainApplyResponse responseOk(String requestNo) { + AgainApplyResponse response = new AgainApplyResponse(); + response.setRequestNo(requestNo); + response.setMessage("任务二次申请成功"); + response.setResponseDate(DateUtil.now()); + response.setCode(HttpStatus.HTTP_OK); + return response; + } + + public static AgainApplyResponse responseOk(String requestNo, String next_point_code) { + AgainApplyResponse response = new AgainApplyResponse(); + response.setRequestNo(requestNo); + response.setMessage("任务二次申请成功"); + response.setResponseDate(DateUtil.now()); + response.setCode(HttpStatus.HTTP_OK); + response.setNext_point_code(next_point_code); + return response; + } + public static AgainApplyResponse responseError(String requestNo, String message) { + AgainApplyResponse response = new AgainApplyResponse(); + response.setRequestNo(requestNo); + response.setCode(HttpStatus.HTTP_BAD_REQUEST); + response.setMessage(message); + response.setResponseDate(DateUtil.now()); + return response; + } +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/acs/ApplyTaskResponse.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/acs/ApplyTaskResponse.java similarity index 93% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/acs/ApplyTaskResponse.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/acs/ApplyTaskResponse.java index 12d7790..2cf5063 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/acs/ApplyTaskResponse.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/acs/ApplyTaskResponse.java @@ -1,9 +1,9 @@ -package org.nl.wms.ext.service.dto.to.acs; +package org.nl.wms.ext.acs.service.dto.to.acs; import cn.hutool.core.date.DateUtil; import cn.hutool.http.HttpStatus; import lombok.Data; -import org.nl.wms.ext.service.dto.to.BaseResponse; +import org.nl.wms.ext.acs.service.dto.to.BaseResponse; @Data public class ApplyTaskResponse extends BaseResponse { diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/acs/CancelTaskRequest.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/acs/CancelTaskRequest.java similarity index 81% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/acs/CancelTaskRequest.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/acs/CancelTaskRequest.java index fc00964..749bef8 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/acs/CancelTaskRequest.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/acs/CancelTaskRequest.java @@ -1,7 +1,7 @@ -package org.nl.wms.ext.service.dto.to.acs; +package org.nl.wms.ext.acs.service.dto.to.acs; import lombok.Data; -import org.nl.wms.ext.service.dto.to.BaseRequest; +import org.nl.wms.ext.acs.service.dto.to.BaseRequest; import java.util.Map; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/acs/DeviceInfoDto.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/acs/DeviceInfoDto.java similarity index 76% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/acs/DeviceInfoDto.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/acs/DeviceInfoDto.java index bd7c7bc..02af60d 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/acs/DeviceInfoDto.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/acs/DeviceInfoDto.java @@ -1,4 +1,4 @@ -package org.nl.wms.ext.service.dto.to.acs; +package org.nl.wms.ext.acs.service.dto.to.acs; import lombok.Data; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/AcsResponse.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/wms/AcsResponse.java similarity index 89% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/AcsResponse.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/wms/AcsResponse.java index fc2df3c..25fa3c0 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/AcsResponse.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/wms/AcsResponse.java @@ -1,10 +1,10 @@ -package org.nl.wms.ext.service.dto.to.wms; +package org.nl.wms.ext.acs.service.dto.to.wms; import cn.hutool.core.date.DateUtil; import cn.hutool.http.HttpStatus; import com.alibaba.fastjson.JSONArray; import lombok.Data; -import org.nl.wms.ext.service.dto.to.BaseResponse; +import org.nl.wms.ext.acs.service.dto.to.BaseResponse; /** * @Author: lyd diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/ApplyDeviceDto.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/wms/ApplyDeviceDto.java similarity index 89% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/ApplyDeviceDto.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/wms/ApplyDeviceDto.java index 4d2bf42..68a7c18 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/ApplyDeviceDto.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/wms/ApplyDeviceDto.java @@ -1,4 +1,4 @@ -package org.nl.wms.ext.service.dto.to.wms; +package org.nl.wms.ext.acs.service.dto.to.wms; import lombok.Data; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/ApplySignalStatusRequest.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/wms/ApplySignalStatusRequest.java similarity index 80% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/ApplySignalStatusRequest.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/wms/ApplySignalStatusRequest.java index 60598cd..efb8852 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/ApplySignalStatusRequest.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/wms/ApplySignalStatusRequest.java @@ -1,7 +1,7 @@ -package org.nl.wms.ext.service.dto.to.wms; +package org.nl.wms.ext.acs.service.dto.to.wms; import lombok.Data; -import org.nl.wms.ext.service.dto.to.BaseRequest; +import org.nl.wms.ext.acs.service.dto.to.BaseRequest; /** * @Author: lyd diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/ApplyTaskRequest.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/wms/ApplyTaskRequest.java similarity index 85% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/ApplyTaskRequest.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/wms/ApplyTaskRequest.java index 22fda56..a7ea334 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/ApplyTaskRequest.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/wms/ApplyTaskRequest.java @@ -1,7 +1,7 @@ -package org.nl.wms.ext.service.dto.to.wms; +package org.nl.wms.ext.acs.service.dto.to.wms; import lombok.Data; -import org.nl.wms.ext.service.dto.to.BaseRequest; +import org.nl.wms.ext.acs.service.dto.to.BaseRequest; import java.util.List; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/CancelTaskResponse.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/wms/CancelTaskResponse.java similarity index 61% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/CancelTaskResponse.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/wms/CancelTaskResponse.java index d424a98..e4f94e0 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/CancelTaskResponse.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/wms/CancelTaskResponse.java @@ -1,7 +1,7 @@ -package org.nl.wms.ext.service.dto.to.wms; +package org.nl.wms.ext.acs.service.dto.to.wms; import lombok.Data; -import org.nl.wms.ext.service.dto.to.BaseResponse; +import org.nl.wms.ext.acs.service.dto.to.BaseResponse; /** * @Author: lyd diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/FeedBackTaskStatusRequest.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/wms/FeedBackTaskStatusRequest.java similarity index 86% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/FeedBackTaskStatusRequest.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/wms/FeedBackTaskStatusRequest.java index c3b9015..bf737e5 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/wms/FeedBackTaskStatusRequest.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/wms/FeedBackTaskStatusRequest.java @@ -1,7 +1,7 @@ -package org.nl.wms.ext.service.dto.to.wms; +package org.nl.wms.ext.acs.service.dto.to.wms; import lombok.Data; -import org.nl.wms.ext.service.dto.to.BaseRequest; +import org.nl.wms.ext.acs.service.dto.to.BaseRequest; /** * ACS任务反馈请求实体 diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java similarity index 76% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/AcsToWmsServiceImpl.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index a7b6465..77961c9 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/AcsToWmsServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -1,4 +1,4 @@ -package org.nl.wms.ext.service.impl; +package org.nl.wms.ext.acs.service.impl; import cn.hutool.core.util.ObjectUtil; import cn.hutool.http.HttpStatus; @@ -6,14 +6,17 @@ import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.nl.common.exception.BadRequestException; import org.nl.system.service.notice.ISysNoticeService; -import org.nl.wms.ext.service.AcsToWmsService; -import org.nl.wms.ext.service.dto.to.BaseResponse; -import org.nl.wms.ext.service.dto.to.wms.FeedBackTaskStatusRequest; +import org.nl.wms.ext.acs.service.AcsToWmsService; +import org.nl.wms.ext.acs.service.dto.to.BaseResponse; +import org.nl.wms.ext.acs.service.dto.to.acs.AgainApplyResponse; +import org.nl.wms.ext.acs.service.dto.to.wms.FeedBackTaskStatusRequest; +import org.nl.wms.ext.record.service.ISysInteractRecordService; import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; import org.nl.wms.sch.point.service.ISchBasePointService; import org.nl.wms.sch.task.service.ISchBaseTaskService; import org.nl.wms.sch.task.service.dao.SchBaseTask; import org.nl.wms.sch.task_manage.AbstractTask; +import org.nl.wms.sch.task_manage.GeneralDefinition; import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum; import org.nl.wms.sch.task_manage.task.TaskFactory; import org.nl.wms.sch.task_manage.task.core.TaskStatus; @@ -52,6 +55,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { private ISysNoticeService noticeService; @Autowired private PointMapper pointMapper; + @Autowired + private ISysInteractRecordService interactRecordService; // 初始化反射方法 @PostConstruct @@ -66,14 +71,15 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { @Override public BaseResponse acsApply(JSONObject param) { String requestNo = param.getString("requestNo"); - String requestMethodCode = param.getString("request_medthod_code"); // 获取请求方法名 - String requestMethodName = param.getString("request_medthod_name"); + // 获取请求方法名 + String requestMethodCode = param.getString("request_method_code"); + String requestMethodName = param.getString("request_method_name"); BaseResponse result = BaseResponse.build(requestNo); String device_code = param.getString("device_code"); param.put("config_code",requestMethodCode); try { if(ObjectUtil.isEmpty(requestMethodCode)){ - throw new BadRequestException("任务类型不正确!requestMethodCode:"+requestMethodName+",device_code:"+device_code); + throw new BadRequestException("任务类型不正确!requestMethodCode:"+requestMethodCode+",device_code:"+device_code); } AbstractTask task = taskFactory.getTask(requestMethodCode); // 执行创建任务 @@ -90,6 +96,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { noticeService.createNotice("异常信息:" + message, "acsApply: " + param.getString("request_medthod_code"), NoticeTypeEnum.EXCEPTION.getCode()); } + // acs对接记录 + interactRecordService.saveRecord(requestMethodName, param, result, GeneralDefinition.ACS_LMS); return result; } @@ -99,6 +107,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { @Override public BaseResponse status(JSONObject param) { String requestNo = param.getString("requestNo"); + String requestMethodName = param.getString("request_method_name"); + BaseResponse result = BaseResponse.build(requestNo); FeedBackTaskStatusRequest taskStatusRequest = param.toJavaObject(FeedBackTaskStatusRequest.class); String taskId = taskStatusRequest.getTask_id(); if (ObjectUtil.isEmpty(taskId)) { @@ -132,11 +142,14 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { // 更新任务 try { abstractTask.updateTaskStatus(taskId, status); + result.setMessage("任务状态反馈成功!"); } catch (Exception e) { log.error("任务状态更新失败: {}", message); - return BaseResponse.responseError(requestNo, "任务:[" + taskId + "]状态更新失败," + message); + result.setCode(HttpStatus.HTTP_BAD_REQUEST); + result.setMessage("任务:[" + taskId + "]状态更新失败," + message); } - return BaseResponse.responseOk(requestNo, "任务状态反馈成功!"); + interactRecordService.saveRecord(requestMethodName, param, result, GeneralDefinition.ACS_LMS); + return result; } /** @@ -163,19 +176,32 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { return BaseResponse.responseOk(requestNo, "反馈成功!"); } - // todo: ??? @Override - public String againApply(JSONObject task) { - String configCode = task.getString("config_code"); - AbstractTask task1 = taskFactory.getTask(configCode); - return task1.againApply(task.getString("task_id")); + public AgainApplyResponse againApply(JSONObject task) { + AgainApplyResponse result = AgainApplyResponse.responseOk(task.getString("request_no")); + try { + String configCode = task.getString("config_code"); + AbstractTask task1 = taskFactory.getTask(configCode); + String pointCode = task1.againApply(task.getString("task_id")); + result.setNext_point_code(pointCode); + } catch (Exception e) { + String message = ObjectUtil.isEmpty(e.getMessage()) + ? ((InvocationTargetException) e).getTargetException().getMessage() + : e.getMessage(); + log.error("ACS请求LMS出现错误: {}", message); + result.setCode(HttpStatus.HTTP_BAD_REQUEST); + result.setMessage(message); + result.setRequestNo(task.getString("requestNo")); + } + // acs对接记录 + interactRecordService.saveRecord(task.getString("request_method_name"), task, result, GeneralDefinition.ACS_LMS); + return result; } /** * 任务阶段反馈最新点位 * todo * */ - @Override public BaseResponse feedbackState(JSONObject param) { String requestNo = param.getString("requestNo"); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/WmsToAcsServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java similarity index 65% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/WmsToAcsServiceImpl.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java index 4eb2436..848f37b 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/WmsToAcsServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java @@ -1,18 +1,12 @@ -package org.nl.wms.ext.service.impl; +package org.nl.wms.ext.acs.service.impl; -import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; -import org.apache.poi.ss.formula.functions.T; -import org.nl.wms.ext.service.WmsToAcsService; -import org.nl.wms.ext.service.dto.to.wms.AcsResponse; -import org.nl.wms.sch.task_manage.AcsTaskDto; +import org.nl.wms.ext.acs.service.WmsToAcsService; +import org.nl.wms.ext.acs.service.dto.to.wms.AcsResponse; import org.nl.wms.sch.task_manage.task.AcsUtil; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.List; - /** * @Author: lyd * @Description: WMS请求ACS - 业务开发 diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/controller/SysInteractRecordController.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/controller/SysInteractRecordController.java new file mode 100644 index 0000000..39ebfb6 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/controller/SysInteractRecordController.java @@ -0,0 +1,72 @@ +package org.nl.wms.ext.record.controller; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.base.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.logging.annotation.Log; +import org.nl.wms.ext.record.service.ISysInteractRecordService; +import org.nl.wms.ext.record.service.dao.SysInteractRecord; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; +import java.util.Set; +/** +* @author lyd +* @date 2023-07-19 +**/ +@Slf4j +@RestController +@Api(tags = "外部系统接口记录管理") +@RequestMapping("/api/sysInteractRecord") +public class SysInteractRecordController { + + @Autowired + private ISysInteractRecordService sysInteractRecordService; + + @GetMapping + @Log("查询外部系统接口记录") + @ApiOperation("查询外部系统接口记录") + //@SaCheckPermission("@el.check('sysInteractRecord:list')") + public ResponseEntity query(@RequestParam Map whereJson, PageQuery page){ + return new ResponseEntity<>(TableDataInfo.build(sysInteractRecordService.queryAll(whereJson,page)),HttpStatus.OK); + } + + @PostMapping + @Log("新增外部系统接口记录") + @ApiOperation("新增外部系统接口记录") + //@SaCheckPermission("@el.check('sysInteractRecord:add')") + public ResponseEntity create(@Validated @RequestBody SysInteractRecord entity){ + sysInteractRecordService.create(entity); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PutMapping + @Log("修改外部系统接口记录") + @ApiOperation("修改外部系统接口记录") + //@SaCheckPermission("@el.check('sysInteractRecord:edit')") + public ResponseEntity update(@Validated @RequestBody SysInteractRecord entity){ + sysInteractRecordService.update(entity); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @Log("删除外部系统接口记录") + @ApiOperation("删除外部系统接口记录") + //@SaCheckPermission("@el.check('sysInteractRecord:del')") + @DeleteMapping + public ResponseEntity delete(@RequestBody Set ids) { + sysInteractRecordService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + + //@SaCheckPermission("@el.check('sysInteractRecord:del')") + @GetMapping("/getAllName") + public ResponseEntity getAllName() { + return new ResponseEntity<>(sysInteractRecordService.getAllInteractName(), HttpStatus.OK); + } +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/ISysInteractRecordService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/ISysInteractRecordService.java new file mode 100644 index 0000000..58b89a7 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/ISysInteractRecordService.java @@ -0,0 +1,88 @@ +package org.nl.wms.ext.record.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.common.domain.query.PageQuery; +import org.nl.system.service.param.dao.Param; +import org.nl.wms.ext.acs.service.dto.ResultForAcs; +import org.nl.wms.ext.acs.service.dto.to.BaseResponse; +import org.nl.wms.ext.record.service.dao.SysInteractRecord; +//import org.nl.wms.pdm.workorder.service.dao.vo.AcsWorkOrderVo; + +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** +* @description 服务接口 +* @author lyd +* @date 2023-07-19 +**/ +public interface ISysInteractRecordService extends IService { + + /** + * 查询数据分页 + * @param whereJson 条件 + * @param pageable 分页参数 + * @return IPage + */ + IPage queryAll(Map whereJson, PageQuery pageable); + + /** + * 创建 + * @param entity / + */ + void create(SysInteractRecord entity); + + /** + * 编辑 + * @param entity / + */ + void update(SysInteractRecord entity); + + /** + * 多选删除 + * @param ids / + */ + void deleteAll(Set ids); + + /** + * 创建记录 + * @param request + * @param response + * @param direction + */ + void saveRecord(Object request, BaseResponse response, String direction); + + /** + * 记录对接日志 + * @param workorder + * @param resultForAcs + * @param direction + */ +// void saveRecord(AcsWorkOrderVo workorder, ResultForAcs resultForAcs, String direction); + + /** + * 保存对接记录 + * @param name 保存对接记录 + * @param request 请求参数 + * @param response 响应参数,分类别 + * @param direction 请求方向 + */ + void saveRecord(String name, K request, V response, String direction); + + void deleteByDay(String day); + + /** + * 删除记录 + * @param maxRowsToKeep 最大保存容量 + * @param maxRowsToDelete 最大删除数 + */ + void deleteByRows(Param maxRowsToKeep, Param maxRowsToDelete); + + /** + * 获取所有标题 + * @return + */ + List getAllInteractName(); +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dao/SysInteractRecord.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dao/SysInteractRecord.java new file mode 100644 index 0000000..f5ef9a9 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dao/SysInteractRecord.java @@ -0,0 +1,52 @@ +package org.nl.wms.ext.record.service.dao; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; + +/** +* @description / +* @author lyd +* @date 2023-07-19 +**/ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("sys_interact_record") +public class SysInteractRecord implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "interact_id", type = IdType.NONE) + @ApiModelProperty(value = "对接标识") + private String interact_id; + + @ApiModelProperty(value = "对接名称") + private String interact_name; + + @ApiModelProperty(value = "响应编码") + private int code; + + @ApiModelProperty(value = "响应信息") + private String message; + + @ApiModelProperty(value = "请求报文") + private String request_param; + + @ApiModelProperty(value = "响应结果") + private String response_param; + + @ApiModelProperty(value = "记录时间") + private String record_time; + + @ApiModelProperty(value = "方向") + private String direction; + + @ApiModelProperty(value = "是否成功") + private Boolean is_success; + +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dao/mapper/SysInteractRecordMapper.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dao/mapper/SysInteractRecordMapper.java new file mode 100644 index 0000000..5d24081 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dao/mapper/SysInteractRecordMapper.java @@ -0,0 +1,19 @@ +package org.nl.wms.ext.record.service.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.wms.ext.record.service.dao.SysInteractRecord; + +import java.util.List; + +/** +* @author lyd +* @date 2023-07-19 +**/ +public interface SysInteractRecordMapper extends BaseMapper { + + void deleteByDay(String day); + + void deleteByRows(String maxRowsToKeep, String maxRowsToDelete); + + List getAllInteractName(); +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dao/mapper/SysInteractRecordMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dao/mapper/SysInteractRecordMapper.xml new file mode 100644 index 0000000..9a16974 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dao/mapper/SysInteractRecordMapper.xml @@ -0,0 +1,19 @@ + + + + + + DELETE FROM sys_interact_record + WHERE record_time DATE_SUB(NOW(), INTERVAL #{day} DAY); + + + CALL DeleteRowsIfNeeded(#{maxRowsToKeep}, #{maxRowsToDelete}) + + + diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dto/SysInteractRecordDto.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dto/SysInteractRecordDto.java new file mode 100644 index 0000000..b6b44d1 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dto/SysInteractRecordDto.java @@ -0,0 +1,41 @@ +package org.nl.wms.ext.record.service.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** +* @description / +* @author lyd +* @date 2023-07-19 +**/ +@Data +public class SysInteractRecordDto implements Serializable { + + /** 对接标识 */ + private String interact_id; + + /** 对接编码 */ + private String interact_code; + + /** 响应编码 */ + private String code; + + /** 响应信息 */ + private String message; + + /** 请求报文 */ + private String request_param; + + /** 响应结果 */ + private String response_param; + + /** 记录时间 */ + private String record_time; + + /** 方向 */ + private String direction; + + /** 是否成功 */ + private Boolean is_success; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dto/SysInteractRecordQuery.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dto/SysInteractRecordQuery.java new file mode 100644 index 0000000..3222808 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/dto/SysInteractRecordQuery.java @@ -0,0 +1,12 @@ +package org.nl.wms.ext.record.service.dto; + +import org.nl.common.domain.query.BaseQuery; +import org.nl.wms.ext.record.service.dao.SysInteractRecord; + +/** +* @author lyd +* @date 2023-07-19 +**/ +public class SysInteractRecordQuery extends BaseQuery { + +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/impl/SysInteractRecordServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/impl/SysInteractRecordServiceImpl.java new file mode 100644 index 0000000..136b267 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/impl/SysInteractRecordServiceImpl.java @@ -0,0 +1,170 @@ +package org.nl.wms.ext.record.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.http.HttpStatus; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.exception.BadRequestException; +import org.nl.system.service.param.dao.Param; +import org.nl.wms.ext.acs.service.dto.ResultForAcs; +import org.nl.wms.ext.acs.service.dto.to.BaseResponse; +import org.nl.wms.ext.acs.service.dto.to.wms.AcsResponse; +//import org.nl.wms.ext.mes.service.dto.ResultForMes; +import org.nl.wms.ext.record.service.ISysInteractRecordService; +import org.nl.wms.ext.record.service.dao.SysInteractRecord; +import org.nl.wms.ext.record.service.dao.mapper.SysInteractRecordMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** +* @description 服务实现 +* @author lyd +* @date 2023-07-19 +**/ +@Slf4j +@Service +public class SysInteractRecordServiceImpl extends ServiceImpl implements ISysInteractRecordService { + + @Autowired + private SysInteractRecordMapper sysInteractRecordMapper; + + @Override + public IPage queryAll(Map whereJson, PageQuery page){ + String blurry = ObjectUtil.isNotEmpty(whereJson.get("blurry")) + ? whereJson.get("blurry").toString() : null; + String interactDirection = ObjectUtil.isNotEmpty(whereJson.get("interact_direction")) + ? whereJson.get("interact_direction").toString() : null; + String interactName = ObjectUtil.isNotEmpty(whereJson.get("interact_name")) + ? whereJson.get("interact_name").toString() : null; + String httpCode = ObjectUtil.isNotEmpty(whereJson.get("http_code")) + ? whereJson.get("http_code").toString() : null; + LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); + lam.eq(interactDirection!=null, SysInteractRecord::getDirection, interactDirection) + .eq(ObjectUtil.isNotEmpty(interactName), SysInteractRecord::getInteract_name, interactName) + .eq(ObjectUtil.isNotEmpty(httpCode), SysInteractRecord::getCode, httpCode) + .and(blurry != null, s -> s.like(SysInteractRecord::getInteract_name, blurry) + .or() + .like(SysInteractRecord::getMessage, blurry) + .or() + .like(SysInteractRecord::getRequest_param, blurry) + .or() + .like(SysInteractRecord::getResponse_param, blurry)); + lam.orderByDesc(SysInteractRecord::getRecord_time); + IPage pages = new Page<>(page.getPage() + 1, page.getSize()); + sysInteractRecordMapper.selectPage(pages, lam); + return pages; + } + + @Override + public void create(SysInteractRecord entity) { + + entity.setInteract_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + sysInteractRecordMapper.insert(entity); + } + + @Override + public void update(SysInteractRecord entity) { + SysInteractRecord dto = sysInteractRecordMapper.selectById(entity.getInteract_id()); + if (dto == null) { + throw new BadRequestException("被删除或无权限,操作失败!"); + } + sysInteractRecordMapper.updateById(entity); + } + + @Override + public void deleteAll(Set ids) { + // 真删除 + sysInteractRecordMapper.deleteBatchIds(ids); + } + + @Override + public void saveRecord(Object param, BaseResponse response, String direction) { + SysInteractRecord entity = new SysInteractRecord(); + entity.setInteract_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + entity.setInteract_name(response.getRequestNo()); + entity.setCode(response.getCode()); + entity.setMessage(response.getMessage()); + entity.setRecord_time(DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss.SSS")); + entity.setDirection(direction); + entity.setRequest_param(JSONObject.toJSONString(param)); + entity.setResponse_param(JSONObject.toJSONString(response)); + entity.setIs_success(response.getCode() == HttpStatus.HTTP_OK); + sysInteractRecordMapper.insert(entity); + } + +// @Override +// public void saveRecord(AcsWorkOrderVo workorder, ResultForAcs resultForAcs, String lmsAcs) { +// SysInteractRecord entity = new SysInteractRecord(); +// entity.setInteract_id(IdUtil.getSnowflake(1, 1).nextIdStr()); +// entity.setInteract_name(workorder.getWorkorder_code()); +// entity.setCode(resultForAcs.getStatus()); +// entity.setMessage(resultForAcs.getMessage()); +// entity.setRecord_time(DateUtil.now()); +// entity.setDirection(lmsAcs); +// entity.setRequest_param(JSONObject.toJSONString(workorder)); +// entity.setResponse_param(JSONObject.toJSONString(resultForAcs)); +// entity.setIs_success(resultForAcs.getStatus() == HttpStatus.HTTP_OK); +// sysInteractRecordMapper.insert(entity); +// } + + @Override + public void saveRecord(String name, K request, V response, String direction) { + SysInteractRecord entity = new SysInteractRecord(); + entity.setInteract_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + entity.setRecord_time(DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss.SSS")); + entity.setInteract_name(name); + entity.setDirection(direction); + entity.setRequest_param(JSONObject.toJSONString(request)); + entity.setResponse_param(JSONObject.toJSONString(response)); + // acs请求wms的返回数据 + if (response instanceof BaseResponse) { + BaseResponse re = (BaseResponse) response; + entity.setCode(re.getCode()); + entity.setMessage(re.getMessage()); + entity.setIs_success(re.getCode() == HttpStatus.HTTP_OK); + } + // wms请求acs的返回数据 + if (response instanceof ResultForAcs) { + ResultForAcs re = (ResultForAcs) response; + entity.setCode(re.getStatus()); + entity.setMessage(re.getMessage()); + entity.setIs_success(re.getStatus() == HttpStatus.HTTP_OK); + } + // wms请求acs的返回数据 + if (response instanceof AcsResponse) { + AcsResponse re = (AcsResponse) response; + entity.setCode(re.getCode()); + entity.setMessage(re.getMessage()); + entity.setIs_success(re.getCode() == HttpStatus.HTTP_OK); + } + sysInteractRecordMapper.insert(entity); + } + + @Override + public void deleteByDay(String day) { + sysInteractRecordMapper.deleteByDay(day); + } + + @Override + public void deleteByRows(Param maxRowsToKeep, Param maxRowsToDelete) { + sysInteractRecordMapper.deleteByRows(maxRowsToKeep.getValue(), maxRowsToDelete.getValue()); + } + + @Override + public List getAllInteractName() { + return sysInteractRecordMapper.getAllInteractName(); + } + +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/controller/PdaController.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/controller/PdaController.java new file mode 100644 index 0000000..dcb1feb --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/controller/PdaController.java @@ -0,0 +1,83 @@ +package org.nl.wms.pda.controller; + +import cn.dev33.satoken.annotation.SaIgnore; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.logging.annotation.Log; +import org.nl.wms.pda.service.PdaService; +import org.nl.wms.pda.service.dao.dto.ManualSortingDto; +import org.nl.wms.pda.service.dao.dto.SendMaterialDto; +import org.nl.wms.pda.service.dao.vo.DropdownListVo; +import org.nl.wms.pda.service.dao.vo.ManualWorkOrderVo; +import org.nl.wms.pda.service.dao.vo.MaterialInventoryVo; +import org.nl.wms.pda.service.dao.vo.PdaResponseVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @Author: lyd + * @Description: 手持接口 + * @Date: 2023/12/12 + */ +@Slf4j +@RestController +@Api(tags = "手持接口") +@RequestMapping("/api/pda") +@SaIgnore +public class PdaController { + @Autowired + private PdaService pdaService; + @PostMapping("/manualSorting/orders") + @Log("人工排产-显示工单") + @ApiOperation("人工排产-显示工单") + public ResponseEntity> manualOrders(){ + return new ResponseEntity<>(pdaService.manualOrders(), HttpStatus.OK); + } + + @PostMapping("/manualSorting/productionScheduling") + @Log("人工排产-开工") + @ApiOperation("人工排产-开工") + public ResponseEntity productionScheduling(@Validated @RequestBody ManualSortingDto manualSortingDto){ + return new ResponseEntity<>(pdaService.productionScheduling(manualSortingDto), HttpStatus.OK); + } + + @PostMapping("/manualSorting/productionComplete") + @Log("人工排产-完工") + @ApiOperation("人工排产-完工") + public ResponseEntity productionComplete(@Validated @RequestBody ManualSortingDto manualSortingDto){ + return new ResponseEntity<>(pdaService.productionComplete(manualSortingDto), HttpStatus.OK); + } + + @PostMapping("/manualSorting/coatedWireIntoStorageTask") + @Log("涂板线入库-动作") + @ApiOperation("涂板线入库-动作") + public ResponseEntity coatedWireIntoStorageTask(@Validated @RequestBody SendMaterialDto sendMaterialDto){ + return new ResponseEntity<>(pdaService.coatedWireIntoStorageTask(sendMaterialDto), HttpStatus.OK); + } + + @PostMapping("/manualSorting/coatedWireIntoStorageTaskShow") + @Log("涂板线入库-显示任务信息") + @ApiOperation("涂板线入库-显示任务信息") + public ResponseEntity coatedWireIntoStorageTaskShow(){ + return new ResponseEntity<>(pdaService.coatedWireIntoStorageTaskShow(), HttpStatus.OK); + } + + @PostMapping("/getInventoryMaterialInfo") + @Log("获取暂存区库存信息") + @ApiOperation("获取暂存区库存信息") + public ResponseEntity> getInventoryMaterialInfo(@RequestParam String material_code){ + return new ResponseEntity<>(pdaService.getInventoryMaterialInfo(material_code), HttpStatus.OK); + } + @PostMapping("/materialList") + @Log("设备状态下拉框数据") + @ApiOperation("设备状态下拉框数据") + public ResponseEntity> materialList(){ + return new ResponseEntity<>(pdaService.getmaterialList(), HttpStatus.OK); + } +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/PdaService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/PdaService.java new file mode 100644 index 0000000..c97ef31 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/PdaService.java @@ -0,0 +1,59 @@ +package org.nl.wms.pda.service; + +import org.nl.wms.pda.service.dao.dto.ManualSortingDto; +import org.nl.wms.pda.service.dao.dto.SendMaterialDto; +import org.nl.wms.pda.service.dao.vo.*; + +import java.util.List; + +/** + * @Author: lyd + * @Description: + * @Date: 2023/12/12 + */ +public interface PdaService { + /** + * 获取所有工单 + * @return 涂板线工单 + */ + List manualOrders(); + + /** + * 人工分拣-开工 + * @param manualSortingDto 工单数据 + * @return 统一前端VO + */ + PdaResponseVo productionScheduling(ManualSortingDto manualSortingDto); + /** + * 人工分拣-完工 + * @param manualSortingDto 工单数据 + * @return 统一前端VO + */ + PdaResponseVo productionComplete(ManualSortingDto manualSortingDto); + + /** + * 涂板线送料 + * @param sendMaterialDto 送料实体 + * @return 手持统一VO + */ + PdaResponseVo coatedWireIntoStorageTask(SendMaterialDto sendMaterialDto); + + /** + * 获取任务数据 + * @return 任务数据 + */ + List coatedWireIntoStorageTaskShow(); + + /** + * 根据物料编码获取物料库存信息 + * @param materialCode / + * @return / + */ + List getInventoryMaterialInfo(String materialCode); + + /** + * 获取物料下拉框 + * @return List + */ + List getmaterialList(); +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/dto/ManualSortingDto.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/dto/ManualSortingDto.java new file mode 100644 index 0000000..a084cc2 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/dto/ManualSortingDto.java @@ -0,0 +1,20 @@ +package org.nl.wms.pda.service.dao.dto; + +import lombok.Data; + +/** + * @Author: lyd + * @Description: 人工排产Dto + * @Date: 2023/12/12 + */ +@Data +public class ManualSortingDto { + /** + * 工单号 + */ + private String workorder_code; + /** + * 用户 + */ + private String username; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/dto/SendMaterialDto.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/dto/SendMaterialDto.java new file mode 100644 index 0000000..9d96752 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/dto/SendMaterialDto.java @@ -0,0 +1,20 @@ +package org.nl.wms.pda.service.dao.dto; + +import lombok.Data; + +/** + * @Author: lyd + * @Description: 送料实体 + * @Date: 2023/12/12 + */ +@Data +public class SendMaterialDto { + /** + * 位置编码 + */ + private String point_code; + /** + * 物料数量 + */ + private Integer qty; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/mapper/PdaMapper.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/mapper/PdaMapper.java new file mode 100644 index 0000000..1ce72d5 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/mapper/PdaMapper.java @@ -0,0 +1,43 @@ +package org.nl.wms.pda.service.dao.mapper; + +import org.nl.wms.pda.service.dao.vo.DropdownListVo; +import org.nl.wms.pda.service.dao.vo.ManualWorkOrderVo; +import org.nl.wms.pda.service.dao.vo.MaterialInventoryVo; +import org.nl.wms.pda.service.dao.vo.TaskShowVo; + +import java.util.List; + +/** + * @Author: lyd + * @Description: 手持mapper接口 + * @Date: 2023/8/1 + */ +public interface PdaMapper { + + /** + * 获取工单列表 + * @return 工单数据 + */ + List getManualOrders(); + + /** + * 根据任务配置和创建方式获取任务数据 + * @param config 配置 + * @param mode 模式 + * @return 手持显示任务 + */ + List getRunningTaskByConfigAndCreateMode(String config, String mode); + + /** + * 查询物料的库存信息 + * @param materialCode 物料 + * @return List + */ + List getInventoryMaterialInfo(String materialCode); + + /** + * 获取物料下拉框 + * @return / + */ + List getmaterialList(); +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/mapper/PdaMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/mapper/PdaMapper.xml new file mode 100644 index 0000000..f98d324 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/mapper/PdaMapper.xml @@ -0,0 +1,80 @@ + + + + + + + + diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/DropdownListVo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/DropdownListVo.java new file mode 100644 index 0000000..179e790 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/DropdownListVo.java @@ -0,0 +1,22 @@ +package org.nl.wms.pda.service.dao.vo; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author: lyd + * @Description: 反馈前端下拉框数据 + * @Date: 2023/12/19 + */ +@Data +public class DropdownListVo implements Serializable { + /** + * 值 + */ + private String value; + /** + * 标签 + */ + private String text; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/ManualWorkOrderVo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/ManualWorkOrderVo.java new file mode 100644 index 0000000..a0d2245 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/ManualWorkOrderVo.java @@ -0,0 +1,20 @@ +package org.nl.wms.pda.service.dao.vo; + +import lombok.Data; + +/** + * @Author: lyd + * @Description: 人工排产 - 工单显示 + * @Date: 2023/12/12 + */ +@Data +public class ManualWorkOrderVo { + private String workorder_code; + private String material_code; + private String material_name; + private String workorder_status; + private String operator; + private String create_name; + private String plan_qty; + private String real_qty; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/MaterialInventoryVo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/MaterialInventoryVo.java new file mode 100644 index 0000000..3177a79 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/MaterialInventoryVo.java @@ -0,0 +1,36 @@ +package org.nl.wms.pda.service.dao.vo; + +import lombok.Data; + +/** + * @Author: lyd + * @Description: 物料库存信息 + * @Date: 2023/12/18 + */ +@Data +public class MaterialInventoryVo { + /** + * 物料编码 + */ + private String material_code; + /** + * 物料名称 + */ + private String material_name; + /** + * 货位编码 + */ + private String point_code; + /** + * 货位名称 + */ + private String point_name; + /** + * 载具号 + */ + private String vehicle_code; + /** + * 普涂连涂 + */ + private String vehicle_type; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/PdaResponseVo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/PdaResponseVo.java new file mode 100644 index 0000000..af5eb70 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/PdaResponseVo.java @@ -0,0 +1,22 @@ +package org.nl.wms.pda.service.dao.vo; + +import lombok.Data; + +/** + * @Author: lyd + * @Description: 手持返回 + * @Date: 2023/8/3 + */ +@Data +public class PdaResponseVo { + /** + * 先提供一个message + */ + private String message; + + public static PdaResponseVo pdaResultOk(String message) { + PdaResponseVo vo = new PdaResponseVo(); + vo.setMessage(message); + return vo; + } +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/TaskShowVo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/TaskShowVo.java new file mode 100644 index 0000000..e3bf668 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/TaskShowVo.java @@ -0,0 +1,19 @@ +package org.nl.wms.pda.service.dao.vo; + +import lombok.Data; + +/** + * @Author: lyd + * @Description: 输出前端的任务显示 + * @Date: 2023/9/28 + */ +@Data +public class TaskShowVo { + private String point_name1; + private String point_name2; + private String point_name3; + private String point_name4; + private String task_status; + private String remark; + +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java new file mode 100644 index 0000000..23c5a70 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java @@ -0,0 +1,130 @@ +package org.nl.wms.pda.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONObject; +import org.nl.common.exception.BadRequestException; +import org.nl.wms.database.material.service.IMdBaseMaterialService; +import org.nl.wms.database.material.service.dao.MdBaseMaterial; +import org.nl.wms.pda.service.PdaService; +import org.nl.wms.pda.service.dao.dto.ManualSortingDto; +import org.nl.wms.pda.service.dao.dto.SendMaterialDto; +import org.nl.wms.pda.service.dao.mapper.PdaMapper; +import org.nl.wms.pda.service.dao.vo.*; +import org.nl.wms.pdm.workorder.service.IPdmBdWorkorderService; +import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder; +import org.nl.wms.sch.task.service.ISchBaseTaskService; +import org.nl.wms.sch.task_manage.AbstractTask; +import org.nl.wms.sch.task_manage.GeneralDefinition; +import org.nl.wms.sch.task_manage.enums.WorkOrderStatusEnum; +import org.nl.wms.sch.task_manage.task.TaskFactory; +import org.nl.wms.util.TaskUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @Author: lyd + * @Description: + * @Date: 2023/12/12 + */ +@Service +public class PdaServiceImpl implements PdaService { + @Autowired + private PdaMapper pdaMapper; + @Autowired + private IPdmBdWorkorderService workorderService; + @Autowired + private ISchBaseTaskService taskService; + @Autowired + private IMdBaseMaterialService materialService; + @Autowired + private TaskFactory taskFactory; + + @Override + public List manualOrders() { + return pdaMapper.getManualOrders(); + } + + @Override + public PdaResponseVo productionScheduling(ManualSortingDto manualSortingDto) { + // 查询工单 + PdmBdWorkorder bdWorkorder = workorderService.getByCode(manualSortingDto.getWorkorder_code()); + if (ObjectUtil.isEmpty(bdWorkorder)) { + throw new BadRequestException("工单:[" + bdWorkorder.getWorkorder_code() + "]不存在"); + } + switch (bdWorkorder.getWorkorder_status()) { + case "3": + throw new BadRequestException("工单:[" + bdWorkorder.getWorkorder_code() + "]已开工"); + case "5": + throw new BadRequestException("工单:[" + bdWorkorder.getWorkorder_code() + "]已完工"); + default: + break; + } + // 开工 + bdWorkorder.setOperator(manualSortingDto.getUsername()); + bdWorkorder.setRealproducestart_date(DateUtil.now()); + bdWorkorder.setWorkorder_status(WorkOrderStatusEnum.PRODUCING.getCode()); + TaskUtils.setWorkOrderUpdateByPC(bdWorkorder); + workorderService.updateById(bdWorkorder); + return PdaResponseVo.pdaResultOk("工单:[" + bdWorkorder.getWorkorder_code() + "]开工成功"); + } + + @Override + public PdaResponseVo productionComplete(ManualSortingDto manualSortingDto) { + // 查询工单 + PdmBdWorkorder bdWorkorder = workorderService.getByCode(manualSortingDto.getWorkorder_code()); + if (ObjectUtil.isEmpty(bdWorkorder)) { + throw new BadRequestException("工单:[" + bdWorkorder.getWorkorder_code() + "]不存在"); + } + switch (bdWorkorder.getWorkorder_status()) { + case "1": + throw new BadRequestException("工单:[" + bdWorkorder.getWorkorder_code() + "]未开工"); + case "5": + throw new BadRequestException("工单:[" + bdWorkorder.getWorkorder_code() + "]已完工"); + default: + break; + } + TaskUtils.setWorkOrderUpdateByPC(bdWorkorder); + bdWorkorder.setRealproduceend_date(DateUtil.now()); + bdWorkorder.setWorkorder_status(WorkOrderStatusEnum.COMPLETE.getCode()); + workorderService.updateById(bdWorkorder); + return PdaResponseVo.pdaResultOk("工单:[" + bdWorkorder.getWorkorder_code() + "]完工成功"); + } + + @Override + public PdaResponseVo coatedWireIntoStorageTask(SendMaterialDto sendMaterialDto) { + // 获取工单 + PdmBdWorkorder productionTask = workorderService.getDeviceDockingProductionTask(sendMaterialDto.getPoint_code()); + if (ObjectUtil.isEmpty(productionTask)) { + throw new BadRequestException("点位:[" + sendMaterialDto.getPoint_code() + "]的工单不存在"); + } + MdBaseMaterial material = materialService.getById(productionTask.getMaterial_id()); + AbstractTask tbxmlTask = taskFactory.getTask("TBXMLTask"); + // 准备参数:设备编码 + JSONObject param = new JSONObject(); + param.put("device_code", sendMaterialDto.getPoint_code()); + param.put("config_code", "TBXMLTask"); + param.put("create_mode", GeneralDefinition.PDA_CREATION); + param.put("qty", ObjectUtil.isNotEmpty(sendMaterialDto.getQty()) ? sendMaterialDto.getQty() : material.getStandard_qty()); + param.put("user_id", "1"); + tbxmlTask.apply(param); + return PdaResponseVo.pdaResultOk("涂板线入库请求成功"); + } + + @Override + public List coatedWireIntoStorageTaskShow() { + return pdaMapper.getRunningTaskByConfigAndCreateMode("TBXMLTask", GeneralDefinition.PDA_CREATION); + } + + @Override + public List getInventoryMaterialInfo(String materialCode) { + return pdaMapper.getInventoryMaterialInfo(materialCode); + } + + @Override + public List getmaterialList() { + return pdaMapper.getmaterialList(); + } +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/solidifyplan/controller/PdmBdSolidifyPlanController.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/solidifyplan/controller/PdmBdSolidifyPlanController.java new file mode 100644 index 0000000..3fd6c86 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/solidifyplan/controller/PdmBdSolidifyPlanController.java @@ -0,0 +1,91 @@ +package org.nl.wms.pdm.solidifyplan.controller; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.base.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.logging.annotation.Log; +import org.nl.wms.database.material.service.dao.MdBaseMaterial; +import org.nl.wms.pdm.solidifyplan.service.IPdmBdSolidifyPlanService; +import org.nl.wms.pdm.solidifyplan.service.dao.ChangePlan; +import org.nl.wms.pdm.solidifyplan.service.dao.PdmBdSolidifyPlan; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; +import java.util.Set; +/** +* @author lyd +* @date 2023-12-04 +**/ +@Slf4j +@RestController +@Api(tags = "固化方案管理") +@RequestMapping("/api/pdmBdSolidifyPlan") +public class PdmBdSolidifyPlanController { + + @Autowired + private IPdmBdSolidifyPlanService pdmBdSolidifyPlanService; + + @GetMapping + @Log("查询固化方案") + @ApiOperation("查询固化方案") + //@SaCheckPermission("@el.check('pdmBdSolidifyPlan:list')") + public ResponseEntity query(@RequestParam Map whereJson, PageQuery page){ + return new ResponseEntity<>(TableDataInfo.build(pdmBdSolidifyPlanService.queryAll(whereJson,page)),HttpStatus.OK); + } + + @PostMapping + @Log("新增固化方案") + @ApiOperation("新增固化方案") + //@SaCheckPermission("@el.check('pdmBdSolidifyPlan:add')") + public ResponseEntity create(@Validated @RequestBody PdmBdSolidifyPlan entity){ + pdmBdSolidifyPlanService.create(entity); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PutMapping + @Log("修改固化方案") + @ApiOperation("修改固化方案") + //@SaCheckPermission("@el.check('pdmBdSolidifyPlan:edit')") + public ResponseEntity update(@Validated @RequestBody PdmBdSolidifyPlan entity){ + pdmBdSolidifyPlanService.update(entity); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @Log("删除固化方案") + @ApiOperation("删除固化方案") + //@SaCheckPermission("@el.check('pdmBdSolidifyPlan:del')") + @DeleteMapping + public ResponseEntity delete(@RequestBody Set ids) { + pdmBdSolidifyPlanService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/details") + @Log("获取固化方案详情") + @ApiOperation("获取固化方案详情") + public ResponseEntity> details(@RequestBody String code){ + return new ResponseEntity<>(pdmBdSolidifyPlanService.details(code), HttpStatus.OK); + } + + @PostMapping("/detailMaterials") + @Log("获取固化方案详情") + @ApiOperation("获取固化方案详情") + public ResponseEntity> detailMaterials(@RequestBody String code){ + return new ResponseEntity<>(pdmBdSolidifyPlanService.detailMaterials(code), HttpStatus.OK); + } + + @PostMapping("/changePlan") + @Log("修改固化方案") + @ApiOperation("修改固化方案") + public ResponseEntity changePlan(@RequestBody ChangePlan plan){ + pdmBdSolidifyPlanService.changePlan(plan); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/solidifyplan/service/IPdmBdSolidifyPlanService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/solidifyplan/service/IPdmBdSolidifyPlanService.java new file mode 100644 index 0000000..fe970a7 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/solidifyplan/service/IPdmBdSolidifyPlanService.java @@ -0,0 +1,62 @@ +package org.nl.wms.pdm.solidifyplan.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.nl.common.domain.query.PageQuery; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.wms.database.material.service.dao.MdBaseMaterial; +import org.nl.wms.pdm.solidifyplan.service.dao.ChangePlan; +import org.nl.wms.pdm.solidifyplan.service.dao.PdmBdSolidifyPlan; + +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** +* @description 服务接口 +* @author lyd +* @date 2023-12-04 +**/ +public interface IPdmBdSolidifyPlanService extends IService { + + /** + * 查询数据分页 + * @param whereJson 条件 + * @param pageable 分页参数 + * @return IPage + */ + IPage queryAll(Map whereJson, PageQuery pageable); + + /** + * 创建 + * @param entity / + */ + void create(PdmBdSolidifyPlan entity); + + /** + * 编辑 + * @param entity / + */ + void update(PdmBdSolidifyPlan entity); + + /** + * 多选删除 + * @param ids / + */ + void deleteAll(Set ids); + + /** + * 详情 + * @param code + * @return + */ + List details(String code); + + /** + * 获取物料 + * @param code + * @return + */ + List detailMaterials(String code); + + void changePlan(ChangePlan plan); +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/solidifyplan/service/dao/ChangePlan.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/solidifyplan/service/dao/ChangePlan.java new file mode 100644 index 0000000..c32aea1 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/solidifyplan/service/dao/ChangePlan.java @@ -0,0 +1,14 @@ +package org.nl.wms.pdm.solidifyplan.service.dao; + +import lombok.Data; + +/** + * @Author: lyd + * @Description: + * @Date: 2023/12/5 + */ +@Data +public class ChangePlan { + private String curingPlan; + private String planCode; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/solidifyplan/service/dao/PdmBdSolidifyPlan.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/solidifyplan/service/dao/PdmBdSolidifyPlan.java new file mode 100644 index 0000000..70afe10 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/solidifyplan/service/dao/PdmBdSolidifyPlan.java @@ -0,0 +1,54 @@ +package org.nl.wms.pdm.solidifyplan.service.dao; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.util.List; + +/** +* @description / +* @author lyd +* @date 2023-12-04 +**/ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("pdm_bd_solidify_plan") +public class PdmBdSolidifyPlan implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "plan_id", type = IdType.NONE) + @ApiModelProperty(value = "方案标识") + private String plan_id; + + @ApiModelProperty(value = "方案编码") + private String plan_code; + + @ApiModelProperty(value = "创建人") + private String create_id; + + @ApiModelProperty(value = "创建人") + private String create_name; + + @ApiModelProperty(value = "创建时间") + private String create_time; + + @ApiModelProperty(value = "修改人") + private String update_id; + + @ApiModelProperty(value = "修改人") + private String update_name; + + @ApiModelProperty(value = "修改时间") + private String update_time; + + @TableField(exist = false) + private List material_ids; + +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/solidifyplan/service/dao/SolidifyPlanDetail.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/solidifyplan/service/dao/SolidifyPlanDetail.java new file mode 100644 index 0000000..f72113d --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/solidifyplan/service/dao/SolidifyPlanDetail.java @@ -0,0 +1,15 @@ +package org.nl.wms.pdm.solidifyplan.service.dao; + +import lombok.Data; + +/** + * @Author: lyd + * @Description: + * @Date: 2023/12/5 + */ +@Data +public class SolidifyPlanDetail { + private String detail_id; + private String plan_code; + private String material_id; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/solidifyplan/service/dao/mapper/PdmBdSolidifyPlanMapper.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/solidifyplan/service/dao/mapper/PdmBdSolidifyPlanMapper.java new file mode 100644 index 0000000..0caf637 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/solidifyplan/service/dao/mapper/PdmBdSolidifyPlanMapper.java @@ -0,0 +1,27 @@ +package org.nl.wms.pdm.solidifyplan.service.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.wms.database.material.service.dao.MdBaseMaterial; +import org.nl.wms.pdm.solidifyplan.service.dao.PdmBdSolidifyPlan; +import org.nl.wms.pdm.solidifyplan.service.dao.SolidifyPlanDetail; + +import java.util.List; + +/** +* @author lyd +* @date 2023-12-04 +**/ +public interface PdmBdSolidifyPlanMapper extends BaseMapper { + + void batchInsert(List list); + + List details(String code); + + List detailMaterials(String code); + + /** + * 删除详情 + * @param planCode + */ + void deleteRelation(String planCode); +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/solidifyplan/service/dao/mapper/PdmBdSolidifyPlanMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/solidifyplan/service/dao/mapper/PdmBdSolidifyPlanMapper.xml new file mode 100644 index 0000000..ca86b37 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/solidifyplan/service/dao/mapper/PdmBdSolidifyPlanMapper.xml @@ -0,0 +1,30 @@ + + + + + + INSERT INTO pdm_bd_solidify_detail (detail_id, plan_code, material_id) + VALUES + + (#{item.detail_id}, #{item.plan_code}, #{item.material_id}) + + + + DELETE FROM pdm_bd_solidify_detail WHERE plan_code = #{code}; + + + + diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/solidifyplan/service/dto/PdmBdSolidifyPlanDto.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/solidifyplan/service/dto/PdmBdSolidifyPlanDto.java new file mode 100644 index 0000000..2626f9a --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/solidifyplan/service/dto/PdmBdSolidifyPlanDto.java @@ -0,0 +1,37 @@ +package org.nl.wms.pdm.solidifyplan.service.dto; + +import lombok.Data; +import java.io.Serializable; + +/** +* @description / +* @author lyd +* @date 2023-12-04 +**/ +@Data +public class PdmBdSolidifyPlanDto implements Serializable { + + /** 方案标识 */ + private String plan_id; + + /** 方案编码 */ + private String plan_code; + + /** 创建人 */ + private String create_id; + + /** 创建人 */ + private String create_name; + + /** 创建时间 */ + private String create_time; + + /** 修改人 */ + private String update_id; + + /** 修改人 */ + private String update_name; + + /** 修改时间 */ + private String update_time; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/solidifyplan/service/dto/PdmBdSolidifyPlanQuery.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/solidifyplan/service/dto/PdmBdSolidifyPlanQuery.java new file mode 100644 index 0000000..e2088cd --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/solidifyplan/service/dto/PdmBdSolidifyPlanQuery.java @@ -0,0 +1,12 @@ +package org.nl.wms.pdm.solidifyplan.service.dto; + +import org.nl.common.domain.query.BaseQuery; +import org.nl.wms.pdm.solidifyplan.service.dao.PdmBdSolidifyPlan; + +/** +* @author lyd +* @date 2023-12-04 +**/ +public class PdmBdSolidifyPlanQuery extends BaseQuery { + +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/solidifyplan/service/impl/PdmBdSolidifyPlanServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/solidifyplan/service/impl/PdmBdSolidifyPlanServiceImpl.java new file mode 100644 index 0000000..93e3840 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/solidifyplan/service/impl/PdmBdSolidifyPlanServiceImpl.java @@ -0,0 +1,155 @@ +package org.nl.wms.pdm.solidifyplan.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.exception.BadRequestException; +import org.nl.common.utils.CodeUtil; +import org.nl.common.utils.SecurityUtils; +import org.nl.system.service.param.ISysParamService; +import org.nl.system.service.param.dao.Param; +import org.nl.wms.database.material.service.dao.MdBaseMaterial; +import org.nl.wms.pdm.solidifyplan.service.IPdmBdSolidifyPlanService; +import org.nl.wms.pdm.solidifyplan.service.dao.ChangePlan; +import org.nl.wms.pdm.solidifyplan.service.dao.SolidifyPlanDetail; +import org.nl.wms.pdm.solidifyplan.service.dao.mapper.PdmBdSolidifyPlanMapper; +import org.nl.wms.pdm.solidifyplan.service.dao.PdmBdSolidifyPlan; +import org.nl.wms.sch.task_manage.GeneralDefinition; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.Consumer; + +/** +* @description 服务实现 +* @author lyd +* @date 2023-12-04 +**/ +@Slf4j +@Service +public class PdmBdSolidifyPlanServiceImpl extends ServiceImpl implements IPdmBdSolidifyPlanService { + + @Autowired + private PdmBdSolidifyPlanMapper pdmBdSolidifyPlanMapper; + @Autowired + private ISysParamService paramService; + + @Override + public IPage queryAll(Map whereJson, PageQuery page){ + LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); + IPage pages = new Page<>(page.getPage() + 1, page.getSize()); + pdmBdSolidifyPlanMapper.selectPage(pages, lam); + return pages; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void create(PdmBdSolidifyPlan entity) { + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + entity.setPlan_code(CodeUtil.getNewCode("solidifyplan")); + entity.setPlan_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + entity.setCreate_id(currentUserId); + entity.setCreate_name(nickName); + entity.setCreate_time(now); + entity.setUpdate_id(currentUserId); + entity.setUpdate_name(nickName); + entity.setUpdate_time(now); + // 插入数据到详情 + List list = new ArrayList<>(); + entity.getMaterial_ids().forEach(id -> { + SolidifyPlanDetail detail = new SolidifyPlanDetail(); + detail.setDetail_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + detail.setPlan_code(entity.getPlan_code()); + detail.setMaterial_id(id); + list.add(detail); + }); + // 插入数据 + pdmBdSolidifyPlanMapper.batchInsert(list); + pdmBdSolidifyPlanMapper.insert(entity); + // 修改固化方案 + Param param = new Param(); + param.setValue(GeneralDefinition.CUSTOM_MIXING); + paramService.update(param, new LambdaQueryWrapper().eq(Param::getCode, "CuringPlan")); + // 修改物料策略 + param.setValue(entity.getPlan_code()); + paramService.update(param, new LambdaQueryWrapper().eq(Param::getCode, "CurrentMaterials")); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(PdmBdSolidifyPlan entity) { + PdmBdSolidifyPlan dto = pdmBdSolidifyPlanMapper.selectById(entity.getPlan_id()); + if (dto == null) { + throw new BadRequestException("被删除或无权限,操作失败!"); + } + + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + entity.setUpdate_id(currentUserId); + entity.setUpdate_name(nickName); + entity.setUpdate_time(now); + + pdmBdSolidifyPlanMapper.updateById(entity); + // 删除所有的关系数据 + pdmBdSolidifyPlanMapper.deleteRelation(entity.getPlan_code()); + // 新增关系数据 + // 插入数据到详情 + List list = new ArrayList<>(); + entity.getMaterial_ids().forEach(id -> { + SolidifyPlanDetail detail = new SolidifyPlanDetail(); + detail.setDetail_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + detail.setPlan_code(entity.getPlan_code()); + detail.setMaterial_id(id); + list.add(detail); + }); + // 插入数据 + pdmBdSolidifyPlanMapper.batchInsert(list); + } + + @Override + public void deleteAll(Set ids) { + // 真删除 + pdmBdSolidifyPlanMapper.deleteBatchIds(ids); + } + + @Override + public List details(String code) { + return pdmBdSolidifyPlanMapper.details(code); + } + + @Override + public List detailMaterials(String code) { + return pdmBdSolidifyPlanMapper.detailMaterials(code); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void changePlan(ChangePlan plan) { + Param param = new Param(); + if (ObjectUtil.isNotEmpty(plan.getCuringPlan())) { + param.setValue(plan.getCuringPlan()); + paramService.update(param, new LambdaQueryWrapper().eq(Param::getCode, "CuringPlan")); + } + if (ObjectUtil.isNotEmpty(plan.getPlanCode())) { + // 修改物料策略 + param.setValue(plan.getPlanCode()); + paramService.update(param, new LambdaQueryWrapper().eq(Param::getCode, "CurrentMaterials")); + } + } + +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/track/controller/PdmBdProductionProcessTrackingController.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/track/controller/PdmBdProductionProcessTrackingController.java new file mode 100644 index 0000000..9bf9d41 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/track/controller/PdmBdProductionProcessTrackingController.java @@ -0,0 +1,67 @@ +package org.nl.wms.pdm.track.controller; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.base.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.logging.annotation.Log; +import org.nl.wms.pdm.track.service.IPdmBdProductionProcessTrackingService; +import org.nl.wms.pdm.track.service.dao.PdmBdProductionProcessTracking; +import org.nl.wms.pdm.track.service.dto.PdmBdProductionProcessTrackingQuery; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.Set; +/** +* @author lyd +* @date 2023-07-21 +**/ +@Slf4j +@RestController +@Api(tags = "生产过程跟踪表管理") +@RequestMapping("/api/pdmBdProductionProcessTracking") +public class PdmBdProductionProcessTrackingController { + + @Autowired + private IPdmBdProductionProcessTrackingService pdmBdProductionProcessTrackingService; + + @GetMapping + @Log("查询生产过程跟踪表") + @ApiOperation("查询生产过程跟踪表") + //@SaCheckPermission("@el.check('pdmBdProductionProcessTracking:list')") + public ResponseEntity query(PdmBdProductionProcessTrackingQuery query, PageQuery page){ + return new ResponseEntity<>(TableDataInfo.build(pdmBdProductionProcessTrackingService + .queryAll(query,page)),HttpStatus.OK); + } + + @PostMapping + @Log("新增生产过程跟踪表") + @ApiOperation("新增生产过程跟踪表") + //@SaCheckPermission("@el.check('pdmBdProductionProcessTracking:add')") + public ResponseEntity create(@Validated @RequestBody PdmBdProductionProcessTracking entity){ + pdmBdProductionProcessTrackingService.create(entity); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PutMapping + @Log("修改生产过程跟踪表") + @ApiOperation("修改生产过程跟踪表") + //@SaCheckPermission("@el.check('pdmBdProductionProcessTracking:edit')") + public ResponseEntity update(@Validated @RequestBody PdmBdProductionProcessTracking entity){ + pdmBdProductionProcessTrackingService.update(entity); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @Log("删除生产过程跟踪表") + @ApiOperation("删除生产过程跟踪表") + //@SaCheckPermission("@el.check('pdmBdProductionProcessTracking:del')") + @DeleteMapping + public ResponseEntity delete(@RequestBody Set ids) { + pdmBdProductionProcessTrackingService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/track/service/IPdmBdProductionProcessTrackingService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/track/service/IPdmBdProductionProcessTrackingService.java new file mode 100644 index 0000000..86758c1 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/track/service/IPdmBdProductionProcessTrackingService.java @@ -0,0 +1,43 @@ +package org.nl.wms.pdm.track.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.pdm.track.service.dao.PdmBdProductionProcessTracking; +import org.nl.wms.pdm.track.service.dto.PdmBdProductionProcessTrackingQuery; + +import java.util.Set; + +/** +* @description 服务接口 +* @author lyd +* @date 2023-07-21 +**/ +public interface IPdmBdProductionProcessTrackingService extends IService { + + /** + * 查询数据分页 + * @param whereJson 条件 + * @param pageable 分页参数 + * @return IPage + */ + IPage queryAll(PdmBdProductionProcessTrackingQuery whereJson, PageQuery pageable); + + /** + * 创建 + * @param entity / + */ + void create(PdmBdProductionProcessTracking entity); + + /** + * 编辑 + * @param entity / + */ + void update(PdmBdProductionProcessTracking entity); + + /** + * 多选删除 + * @param ids / + */ + void deleteAll(Set ids); +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/track/service/dao/PdmBdProductionProcessTracking.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/track/service/dao/PdmBdProductionProcessTracking.java new file mode 100644 index 0000000..efa1b22 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/track/service/dao/PdmBdProductionProcessTracking.java @@ -0,0 +1,56 @@ +package org.nl.wms.pdm.track.service.dao; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; + +/** +* @description / +* @author lyd +* @date 2023-07-21 +**/ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("pdm_bd_production_process_tracking") +public class PdmBdProductionProcessTracking implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "process_id", type = IdType.NONE) + @ApiModelProperty(value = "跟踪标识") + private String process_id; + + @ApiModelProperty(value = "记录时间") + private String record_time; + + @ApiModelProperty(value = "动作") + private String process_action; + + @ApiModelProperty(value = "地点") + private String process_location; + + @ApiModelProperty(value = "链路id") + private String buss_move_id; + @TableField(exist = false) + private String vehicle_code; + @TableField(exist = false) + private String point_name; + @TableField(exist = false) + private String device_code; + @TableField(exist = false) + private String material_code; + @TableField(exist = false) + private String material_name; + @TableField(exist = false) + private String pcsn; + @TableField(exist = false) + private String half_material_code; + @TableField(exist = false) + private String raw_material_code; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/track/service/dao/mapper/PdmBdProductionProcessTrackingMapper.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/track/service/dao/mapper/PdmBdProductionProcessTrackingMapper.java new file mode 100644 index 0000000..ece735f --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/track/service/dao/mapper/PdmBdProductionProcessTrackingMapper.java @@ -0,0 +1,16 @@ +package org.nl.wms.pdm.track.service.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.nl.wms.pdm.track.service.dao.PdmBdProductionProcessTracking; +import org.nl.wms.pdm.track.service.dto.PdmBdProductionProcessTrackingQuery; + +/** +* @author lyd +* @date 2023-07-21 +**/ +public interface PdmBdProductionProcessTrackingMapper extends BaseMapper { + + IPage selectPageLeftJoin(IPage pages, + PdmBdProductionProcessTrackingQuery query); +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/track/service/dao/mapper/PdmBdProductionProcessTrackingMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/track/service/dao/mapper/PdmBdProductionProcessTrackingMapper.xml new file mode 100644 index 0000000..676f341 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/track/service/dao/mapper/PdmBdProductionProcessTrackingMapper.xml @@ -0,0 +1,35 @@ + + + + + + diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/track/service/dto/PdmBdProductionProcessTrackingDto.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/track/service/dto/PdmBdProductionProcessTrackingDto.java new file mode 100644 index 0000000..5a64006 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/track/service/dto/PdmBdProductionProcessTrackingDto.java @@ -0,0 +1,29 @@ +package org.nl.wms.pdm.track.service.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** +* @description / +* @author lyd +* @date 2023-07-21 +**/ +@Data +public class PdmBdProductionProcessTrackingDto implements Serializable { + + /** 跟踪标识 */ + private String process_id; + + /** 记录时间 */ + private String record_time; + + /** 动作 */ + private String process_action; + + /** 地点 */ + private String process_location; + + /** 链路id */ + private String buss_move_id; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/track/service/dto/PdmBdProductionProcessTrackingQuery.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/track/service/dto/PdmBdProductionProcessTrackingQuery.java new file mode 100644 index 0000000..25e68fa --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/track/service/dto/PdmBdProductionProcessTrackingQuery.java @@ -0,0 +1,16 @@ +package org.nl.wms.pdm.track.service.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** +* @author lyd +* @date 2023-07-21 +**/ +@Data +public class PdmBdProductionProcessTrackingQuery implements Serializable { + private String buss_move_id; + private String begin_time; + private String end_time; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/track/service/impl/PdmBdProductionProcessTrackingServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/track/service/impl/PdmBdProductionProcessTrackingServiceImpl.java new file mode 100644 index 0000000..57fc333 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/track/service/impl/PdmBdProductionProcessTrackingServiceImpl.java @@ -0,0 +1,66 @@ +package org.nl.wms.pdm.track.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.exception.BadRequestException; +import org.nl.common.utils.SecurityUtils; +import org.nl.wms.pdm.track.service.IPdmBdProductionProcessTrackingService; +import org.nl.wms.pdm.track.service.dao.PdmBdProductionProcessTracking; +import org.nl.wms.pdm.track.service.dao.mapper.PdmBdProductionProcessTrackingMapper; +import org.nl.wms.pdm.track.service.dto.PdmBdProductionProcessTrackingQuery; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Set; + +/** +* @description 服务实现 +* @author lyd +* @date 2023-07-21 +**/ +@Slf4j +@Service +public class PdmBdProductionProcessTrackingServiceImpl extends ServiceImpl implements IPdmBdProductionProcessTrackingService { + + @Autowired + private PdmBdProductionProcessTrackingMapper pdmBdProductionProcessTrackingMapper; + + @Override + public IPage queryAll(PdmBdProductionProcessTrackingQuery query, PageQuery page){ + IPage pages = new Page<>(page.getPage() + 1, page.getSize()); + pages = pdmBdProductionProcessTrackingMapper.selectPageLeftJoin(pages, query); + return pages; + } + + @Override + public void create(PdmBdProductionProcessTracking entity) { + entity.setProcess_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + pdmBdProductionProcessTrackingMapper.insert(entity); + } + + @Override + public void update(PdmBdProductionProcessTracking entity) { + PdmBdProductionProcessTracking dto = pdmBdProductionProcessTrackingMapper.selectById(entity.getProcess_id()); + if (dto == null) { + throw new BadRequestException("被删除或无权限,操作失败!"); + } + + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + + pdmBdProductionProcessTrackingMapper.updateById(entity); + } + + @Override + public void deleteAll(Set ids) { + // 真删除 + pdmBdProductionProcessTrackingMapper.deleteBatchIds(ids); + } + +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/controller/PdmBdWorkorderController.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/controller/PdmBdWorkorderController.java similarity index 72% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/controller/PdmBdWorkorderController.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/controller/PdmBdWorkorderController.java index a603c79..2bde4b3 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/controller/PdmBdWorkorderController.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/controller/PdmBdWorkorderController.java @@ -1,4 +1,4 @@ -package org.nl.wms.pdm.controller; +package org.nl.wms.pdm.workorder.controller; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -6,9 +6,9 @@ import lombok.extern.slf4j.Slf4j; import org.nl.common.base.TableDataInfo; import org.nl.common.domain.query.PageQuery; import org.nl.common.logging.annotation.Log; -import org.nl.wms.pdm.service.IPdmBdWorkorderService; -import org.nl.wms.pdm.service.dao.PdmBdWorkorder; -import org.nl.wms.pdm.service.dto.PdmBdWorkorderQuery; +import org.nl.wms.pdm.workorder.service.IPdmBdWorkorderService; +import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder; +import org.nl.wms.pdm.workorder.service.dto.PdmBdWorkorderQuery; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -63,4 +63,20 @@ public class PdmBdWorkorderController { pdmBdWorkorderService.deleteAll(ids); return new ResponseEntity<>(HttpStatus.OK); } + + @PostMapping("/submits") + @Log("工单下发") + @ApiOperation("工单下发") + public ResponseEntity submits(@RequestBody PdmBdWorkorder entity){ + pdmBdWorkorderService.submits(entity); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @PostMapping("/forceFinish") + @Log("强制完工") + @ApiOperation("强制完工") + public ResponseEntity forceFinish(@RequestBody PdmBdWorkorder entity){ + pdmBdWorkorderService.forceFinish(entity); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/service/IPdmBdWorkorderService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/IPdmBdWorkorderService.java similarity index 66% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/service/IPdmBdWorkorderService.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/IPdmBdWorkorderService.java index ac8237d..6daa036 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/service/IPdmBdWorkorderService.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/IPdmBdWorkorderService.java @@ -1,10 +1,10 @@ -package org.nl.wms.pdm.service; +package org.nl.wms.pdm.workorder.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import org.nl.common.domain.query.PageQuery; -import org.nl.wms.pdm.service.dao.PdmBdWorkorder; -import org.nl.wms.pdm.service.dto.PdmBdWorkorderQuery; +import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder; +import org.nl.wms.pdm.workorder.service.dto.PdmBdWorkorderQuery; import java.util.Set; @@ -43,29 +43,41 @@ public interface IPdmBdWorkorderService extends IService { /** * 悲观锁查找工单数据 - * @param id - * @return + * @param id 标识 + * @return 工单数据 */ PdmBdWorkorder selectByIdLock(String id); /** * 根据编码获取 - * @param orderCode - * @return + * @param orderCode 工单号 + * @return 工单数据 */ PdmBdWorkorder getByCode(String orderCode); /** * 获取设备生产中的工单 - * @param deviceCode - * @return + * @param deviceCode 设备实体 + * @return 工单数据 */ PdmBdWorkorder getDeviceProductionTask(String deviceCode); /** * 根据对接位获取工单 - * @param deviceCode - * @return + * @param deviceCode 设备编码 + * @return 工单数据 */ PdmBdWorkorder getDeviceDockingProductionTask(String deviceCode); + + /** + * 提交报工 + * @param entity 工单实体 + */ + void submits(PdmBdWorkorder entity); + + /** + * 完工 + * @param entity + */ + void forceFinish(PdmBdWorkorder entity); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/service/dao/PdmBdWorkorder.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/PdmBdWorkorder.java similarity index 94% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/service/dao/PdmBdWorkorder.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/PdmBdWorkorder.java index 3a5c96d..966607a 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/service/dao/PdmBdWorkorder.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/PdmBdWorkorder.java @@ -1,4 +1,4 @@ -package org.nl.wms.pdm.service.dao; +package org.nl.wms.pdm.workorder.service.dao; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; @@ -41,6 +41,10 @@ public class PdmBdWorkorder implements Serializable { @ApiModelProperty(value = "载具类型") private String vehicle_type; + @ApiModelProperty(value = "班组") + private String team; + @ApiModelProperty(value = "开工人") + private String operator; @ApiModelProperty(value = "计划开始时间") private String planproducestart_date; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/service/dao/mapper/PdmBdWorkorderMapper.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/mapper/PdmBdWorkorderMapper.java similarity index 68% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/service/dao/mapper/PdmBdWorkorderMapper.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/mapper/PdmBdWorkorderMapper.java index 9c0c40b..c4ca4e4 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/service/dao/mapper/PdmBdWorkorderMapper.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/mapper/PdmBdWorkorderMapper.java @@ -1,9 +1,9 @@ -package org.nl.wms.pdm.service.dao.mapper; +package org.nl.wms.pdm.workorder.service.dao.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; -import org.nl.wms.pdm.service.dao.PdmBdWorkorder; -import org.nl.wms.pdm.service.dto.PdmBdWorkorderQuery; +import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder; +import org.nl.wms.pdm.workorder.service.dto.PdmBdWorkorderQuery; /** * @author lyd diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/service/dao/mapper/PdmBdWorkorderMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/mapper/PdmBdWorkorderMapper.xml similarity index 84% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/service/dao/mapper/PdmBdWorkorderMapper.xml rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/mapper/PdmBdWorkorderMapper.xml index 6987882..77256a3 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/service/dao/mapper/PdmBdWorkorderMapper.xml +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/mapper/PdmBdWorkorderMapper.xml @@ -1,7 +1,7 @@ - - SELECT wo.* ,ma.material_name ,ma.material_code @@ -29,7 +29,7 @@ - SELECT * FROM diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/service/dto/PdmBdWorkorderDto.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dto/PdmBdWorkorderDto.java similarity index 97% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/service/dto/PdmBdWorkorderDto.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dto/PdmBdWorkorderDto.java index 440a270..1661812 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/service/dto/PdmBdWorkorderDto.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dto/PdmBdWorkorderDto.java @@ -1,4 +1,4 @@ -package org.nl.wms.pdm.service.dto; +package org.nl.wms.pdm.workorder.service.dto; import lombok.Data; import java.io.Serializable; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/service/dto/PdmBdWorkorderQuery.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dto/PdmBdWorkorderQuery.java similarity index 88% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/service/dto/PdmBdWorkorderQuery.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dto/PdmBdWorkorderQuery.java index 375c115..1171d27 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/service/dto/PdmBdWorkorderQuery.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dto/PdmBdWorkorderQuery.java @@ -1,4 +1,4 @@ -package org.nl.wms.pdm.service.dto; +package org.nl.wms.pdm.workorder.service.dto; import lombok.Data; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/service/impl/PdmBdWorkorderServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/impl/PdmBdWorkorderServiceImpl.java similarity index 55% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/service/impl/PdmBdWorkorderServiceImpl.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/impl/PdmBdWorkorderServiceImpl.java index 699b9ab..fd98259 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/service/impl/PdmBdWorkorderServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/impl/PdmBdWorkorderServiceImpl.java @@ -1,8 +1,9 @@ -package org.nl.wms.pdm.service.impl; +package org.nl.wms.pdm.workorder.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.http.HttpStatus; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -13,16 +14,21 @@ import org.nl.common.domain.query.PageQuery; import org.nl.common.exception.BadRequestException; import org.nl.common.utils.CodeUtil; import org.nl.common.utils.SecurityUtils; -import org.nl.wms.pdm.service.IPdmBdWorkorderService; -import org.nl.wms.pdm.service.dao.PdmBdWorkorder; -import org.nl.wms.pdm.service.dao.mapper.PdmBdWorkorderMapper; -import org.nl.wms.pdm.service.dto.PdmBdWorkorderQuery; +import org.nl.wms.ext.acs.service.dto.to.wms.AcsResponse; +import org.nl.wms.pdm.workorder.service.IPdmBdWorkorderService; +import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder; +import org.nl.wms.pdm.workorder.service.dao.mapper.PdmBdWorkorderMapper; +import org.nl.wms.pdm.workorder.service.dto.PdmBdWorkorderQuery; import org.nl.wms.sch.point.service.ISchBasePointService; import org.nl.wms.sch.point.service.dao.SchBasePoint; +import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum; import org.nl.wms.sch.task_manage.enums.WorkOrderStatusEnum; +import org.nl.wms.util.TaskUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; import java.util.Set; @@ -54,7 +60,6 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl lam = new QueryWrapper().lambda(); + lam.eq(PdmBdWorkorder::getPoint_code, entity.getPoint_code()) + .eq(PdmBdWorkorder::getWorkorder_status, WorkOrderStatusEnum.PRODUCING.getCode()) + .eq(PdmBdWorkorder::getIs_delete, false); + PdmBdWorkorder bdWorkorder = pdmBdWorkorderMapper.selectOne(lam); + if (ObjectUtil.isNotEmpty(bdWorkorder)) { + throw new BadRequestException("该设备已有生产工单,不能重复开工"); + } + // 设置开工人 + pdmBdWorkorder.setOperator(ObjectUtil.isNotEmpty(SecurityUtils.getCurrentUser()) + ? SecurityUtils.getCurrentNickName() : ""); + pdmBdWorkorder.setWorkorder_status(WorkOrderStatusEnum.PRODUCING.getCode()); + TaskUtils.setWorkOrderUpdateByPC(pdmBdWorkorder); + pdmBdWorkorderMapper.updateById(pdmBdWorkorder); + } + + @Override + public void forceFinish(PdmBdWorkorder entity) { + String workorderCode = entity.getWorkorder_code(); + if (workorderCode == null) { + throw new BadRequestException("工单标识不能为空!"); + } + PdmBdWorkorder bdWorkorder = this.getByCode(workorderCode); + if (bdWorkorder == null) { + throw new BadRequestException("未找到工单号[" + workorderCode + "]的记录!"); + } + if (bdWorkorder.getWorkorder_status().equals(WorkOrderStatusEnum.COMPLETE.getCode())) { + throw new BadRequestException("工单号[" + workorderCode + "]已完工,不能重复完工!"); + } + bdWorkorder.setWorkorder_status(WorkOrderStatusEnum.COMPLETE.getCode()); + bdWorkorder.setRealproduceend_date(DateUtil.now()); + TaskUtils.setWorkOrderUpdateByAcs(bdWorkorder); + this.updateById(bdWorkorder); + } + } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java index 2204423..eecdfe9 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java @@ -147,13 +147,13 @@ public class SchBasePointServiceImpl extends ServiceImpl lam = new LambdaQueryWrapper<>(); lam.eq(SchBaseTask::getConfig_code, config_code) .lt(SchBaseTask::getTask_status, TaskStatus.FINISHED.getCode()) - .ne(SchBaseTask::getTask_code, task_code) // 不是当前任务 + // 不是当前任务 + .ne(SchBaseTask::getTask_code, task_code) .eq(SchBaseTask::getIs_delete, false); List schBaseTasks = schBaseTaskMapper.selectList(lam); return schBaseTasks; @@ -129,8 +130,8 @@ public class SchBaseTaskServiceImpl extends ServiceImpl lam = new LambdaQueryWrapper<>(); lam.eq(SchBaseTask::getConfig_code, config_code) .lt(SchBaseTask::getTask_status, TaskStatus.FINISHED.getCode()) - .eq(direction.equals("1"), SchBaseTask::getPoint_code1, device_code) - .eq(direction.equals("2"), SchBaseTask::getPoint_code2, device_code) + .eq("1".equals(direction), SchBaseTask::getPoint_code1, device_code) + .eq("2".equals(direction), SchBaseTask::getPoint_code2, device_code) .eq(SchBaseTask::getIs_delete, false); List schBaseTasks = schBaseTaskMapper.selectList(lam); return schBaseTasks; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AbstractTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AbstractTask.java index aa80c17..e1e20ec 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AbstractTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AbstractTask.java @@ -8,10 +8,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.nl.common.exception.BadRequestException; import org.nl.config.SpringContextHolder; import org.nl.wms.database.material.service.IMdBaseMaterialService; -import org.nl.wms.database.material.service.dao.MdBaseMaterial; -import org.nl.wms.ext.service.dto.to.BaseResponse; -import org.nl.wms.pdm.service.IPdmBdWorkorderService; -import org.nl.wms.pdm.service.dao.PdmBdWorkorder; +import org.nl.wms.ext.acs.service.dto.to.BaseResponse; +import org.nl.wms.pdm.workorder.service.IPdmBdWorkorderService; +import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder; import org.nl.wms.sch.point.service.ISchBasePointService; import org.nl.wms.sch.point.service.dao.SchBasePoint; import org.nl.wms.sch.task.service.ISchBaseTaskService; @@ -28,9 +27,7 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; /** * @author ldjun @@ -99,8 +96,9 @@ public abstract class AbstractTask { taskDto.setRoute_plan_code("normal"); taskDto.setStart_device_code(task.getPoint_code1()); taskDto.setNext_device_code(task.getPoint_code2()); + taskDto.setStart_waite_code(task.getStart_wait_point()); + taskDto.setNext_waite_code(task.getNext_wait_point()); taskDto.setVehicle_code(task.getVehicle_code()); - this.setTask(task.getConfig_code(), taskDto); list.add(taskDto); } @@ -124,6 +122,18 @@ public abstract class AbstractTask { public void schedule() { this.autoCreate(); this.create(); + // 下发 + this.getAllFinishTask(); + } + + public void getAllFinishTask() { + List list = taskService.list(new LambdaQueryWrapper() + .eq(SchBaseTask::getTask_status, TaskStatus.CREATED.getCode())); + if (ObjectUtil.isEmpty(list)) { + return; + } + // 下发 + this.renotifyAcs(list); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AcsTaskDto.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AcsTaskDto.java index 649d7c0..077790d 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AcsTaskDto.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AcsTaskDto.java @@ -14,6 +14,10 @@ public class AcsTaskDto { private String start_device_code; //下一点 private String next_device_code; + //取货等待点 + private String start_waite_code; + //放货等待点 + private String next_waite_code; //载具号 private String vehicle_code; //载具类型 diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/GeneralDefinition.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/GeneralDefinition.java index 6ae6803..d6192a7 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/GeneralDefinition.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/GeneralDefinition.java @@ -39,6 +39,8 @@ public class GeneralDefinition { public static final String AUTO_CREATION = "1"; /**ACS创建**/ public static final String ACS_CREATION = "2"; + /**PDA手持**/ + public static final String PDA_CREATION = "3"; // 请求方向 /**ACS->LMS**/ public static final String ACS_LMS = "1"; @@ -79,4 +81,5 @@ public class GeneralDefinition { public static final String ENTRANCE = "4"; /**出口**/ public static final String EXIT = "3"; + } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/enums/PointStatusEnum.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/enums/PointStatusEnum.java index e92e1ef..5b5c488 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/enums/PointStatusEnum.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/enums/PointStatusEnum.java @@ -12,9 +12,18 @@ import lombok.Getter; @AllArgsConstructor public enum PointStatusEnum { + /** 空位/无货 */ EMPTY_POINT("1", "空位/无货"), + /** 空载具/有货 */ + EMPTY_VEHICLE("2", "空载具/有货"), + /** 有料 */ FULL_POINT("3", "有料"), - EMPTY_VEHICLE("2", "空载具/有货"); + /** 可进料 */ + MATERIAL_IN("3", "进料"), + /** 固化中 */ + SOLIDIFY("4", "固化"), + /** 出料 */ + MATERIAL_OUT("5", "出料"); private final String code; private final String label; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/AcsUtil.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/AcsUtil.java index 3e5ead6..9ab1617 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/AcsUtil.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/AcsUtil.java @@ -5,13 +5,12 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpRequest; import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.nl.config.SpringContextHolder; import org.nl.system.service.param.dao.Param; import org.nl.system.service.param.impl.SysParamServiceImpl; -import org.nl.wms.ext.service.dto.to.wms.AcsResponse; +import org.nl.wms.ext.acs.service.dto.to.wms.AcsResponse; import org.nl.wms.sch.task_manage.AcsTaskDto; import org.nl.wms.sch.task_manage.GeneralDefinition; import org.springframework.http.HttpStatus; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/auto/GHCMLTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/auto/GHCMLTask.java index cfdb773..ced3846 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/auto/GHCMLTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/auto/GHCMLTask.java @@ -1,5 +1,6 @@ package org.nl.wms.sch.task_manage.task.tasks.auto; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; @@ -8,7 +9,9 @@ import lombok.extern.slf4j.Slf4j; import org.nl.common.exception.BadRequestException; import org.nl.system.service.notice.ISysNoticeService; import org.nl.system.service.param.ISysParamService; -import org.nl.wms.ext.service.dto.to.BaseResponse; +import org.nl.wms.ext.acs.service.dto.to.BaseResponse; +import org.nl.wms.pdm.track.service.IPdmBdProductionProcessTrackingService; +import org.nl.wms.pdm.track.service.dao.PdmBdProductionProcessTracking; import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; import org.nl.wms.sch.point.service.ISchBasePointService; @@ -42,7 +45,7 @@ import java.util.stream.Collectors; @Slf4j @Component("GHCMLTask") public class GHCMLTask extends AbstractTask { - private static String TASK_CONFIG_CODE = "GHCMLTask"; + private static final String TASK_CONFIG_CODE = "GHCMLTask"; @Autowired private ISchBaseTaskService taskService; @Autowired @@ -59,6 +62,8 @@ public class GHCMLTask extends AbstractTask { private TaskFactory taskFactory; @Autowired private ISchBaseVehiclematerialgroupService vehiclematerialgroupService; + @Autowired + private IPdmBdProductionProcessTrackingService processTrackingService; @Override protected void create() throws BadRequestException { @@ -109,7 +114,7 @@ public class GHCMLTask extends AbstractTask { task.setNext_wait_point(point.getPoint_code()); task.setTask_status(TaskStatus.CREATED.getCode()); task.setRemark(""); - TaskUtils.setUpdateByAcs(task); // 修改修改者 + TaskUtils.setUpdateByAcs(task); taskService.save(task); PointUtils.setUpdateByAcs(point); @@ -127,25 +132,26 @@ public class GHCMLTask extends AbstractTask { // 查找是否有相同物料的货位: // 最小排最小列,且列大于1(即不是等待位置,1不写死:使用子查询,寻找当排最小列序号的值) // 多个数据选择一个:Limit 1, 还需要考虑任务数,尽量一排排满 - SchBasePoint sameMaterialPoints = autoMapper.getZCSameMaterialPoint(nextRegionStr.get(0), jsonObject.getString("material_id")); + SchBasePoint sameMaterialPoints = autoMapper.getZCSameMaterialPoint(nextRegionStr.get(0) + , jsonObject.getString("material_id")); if (ObjectUtil.isNotEmpty(sameMaterialPoints)) { // 找到相同物料。分配等待点。 - List points = pointService.list(new LambdaQueryWrapper() + SchBasePoint point = pointService.getOne(new LambdaQueryWrapper() .in(SchBasePoint::getRegion_code, nextRegionStr) .eq(SchBasePoint::getRow_num, sameMaterialPoints.getRow_num()) .eq(SchBasePoint::getIs_used, true) - .orderByAsc(SchBasePoint::getCol_num)); - if (points.size() > 0) { - return points.get(0); + .orderByAsc(SchBasePoint::getCol_num), false); + if (ObjectUtil.isNotEmpty(point)) { + return point; } } // 如果没有找到。或者分配等待点失败,就选择一个空列存放 - return autoMapper.getZCEmptyMaterialPoint(nextRegionStr.get(0)); + return autoMapper.getZCEmptyMaterialPoint(nextRegionStr.get(0), jsonObject.getString("material_id")); } @Override protected void updateStatus(String task_code, TaskStatus status) { -// 校验任务 + // 校验任务 SchBaseTask taskObj = taskService.getByCode(task_code); if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) { throw new BadRequestException("该任务已完成!"); @@ -154,16 +160,16 @@ public class GHCMLTask extends AbstractTask { throw new BadRequestException("该任务已取消!"); } // 根据传来的类型去对任务进行操作 - if (status.equals(TaskStatus.EXECUTING)) { // 执行中 + if (status.equals(TaskStatus.EXECUTING)) { taskObj.setTask_status(TaskStatus.EXECUTING.getCode()); taskObj.setRemark("执行中"); TaskUtils.setUpdateByAcs(taskObj); taskService.updateById(taskObj); } - if (status.equals(TaskStatus.FINISHED)) { // 完成 + if (status.equals(TaskStatus.FINISHED)) { this.finishTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); } - if (status.equals(TaskStatus.CANCELED)) { // 取消 + if (status.equals(TaskStatus.CANCELED)) { this.cancelTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); } } @@ -187,16 +193,17 @@ public class GHCMLTask extends AbstractTask { } public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { - String startPoint = taskObj.getPoint_code1(); // 获取终点 - String endPoint = taskObj.getPoint_code2(); // 获取终点 + String startPoint = taskObj.getPoint_code1(); + String endPoint = taskObj.getPoint_code2(); SchBasePoint startPointObj = pointService.getById(startPoint); SchBasePoint endPointObj = pointService.getById(endPoint); if (ObjectUtil.isNotEmpty(endPointObj)) { SchBaseVehiclematerialgroup vehiclematerialgroup = vehiclematerialgroupService.getById(taskObj.getGroup_id()); TaskUtils.setGroupUpdateByType(vehiclematerialgroup, taskFinishedType); - vehiclematerialgroup.setTask_code(taskObj.getTask_code()); // 当前任务 - vehiclematerialgroup.setBuss_move_id(taskObj.getTask_code()); // 设置链路id,使用任务编码 - vehiclematerialgroup.setPoint_code(endPointObj.getPoint_code()); // 当前位置 + vehiclematerialgroup.setTask_code(taskObj.getTask_code()); + // 设置链路id,使用任务编码 + vehiclematerialgroup.setBuss_move_id(taskObj.getTask_code()); + vehiclematerialgroup.setPoint_code(endPointObj.getPoint_code()); vehiclematerialgroup.setPoint_name(endPointObj.getPoint_name()); vehiclematerialgroup.setMove_way(vehiclematerialgroup.getMove_way() + " -> " + endPointObj.getPoint_code()); vehiclematerialgroupService.updateById(vehiclematerialgroup); @@ -210,12 +217,12 @@ public class GHCMLTask extends AbstractTask { endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode()); pointService.updateById(endPointObj); // 插入生产过程跟踪表 -// PdmBdProductionProcessTracking processTracking = new PdmBdProductionProcessTracking(); -// processTracking.setBuss_move_id(vehiclematerialgroup.getBuss_move_id()); -// processTracking.setProcess_action("压制送料入双层缓存线"); -// processTracking.setProcess_location(endPoint); -// processTracking.setRecord_time(DateUtil.now()); -// processTrackingService.create(processTracking); + PdmBdProductionProcessTracking processTracking = new PdmBdProductionProcessTracking(); + processTracking.setBuss_move_id(vehiclematerialgroup.getBuss_move_id()); + processTracking.setProcess_action("固化室出口到暂存区"); + processTracking.setProcess_location(endPoint); + processTracking.setRecord_time(DateUtil.now()); + processTrackingService.create(processTracking); } // 起点清空 PointUtils.setUpdateByType(startPointObj, taskFinishedType); @@ -230,7 +237,7 @@ public class GHCMLTask extends AbstractTask { public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { // 获取参数 - String endPoint = taskObj.getPoint_code2(); // 获取终点 + String endPoint = taskObj.getPoint_code2(); SchBasePoint endPointObj = pointService.getById(endPoint); // 终点解锁 if (ObjectUtil.isNotEmpty(endPointObj)) { @@ -275,6 +282,9 @@ public class GHCMLTask extends AbstractTask { if (ObjectUtil.isEmpty(waitPoint)) { throw new BadRequestException("找不到任务:[" + task_id + "]等待点!"); } + if (ObjectUtil.isNotEmpty(task.getPoint_code2())) { + throw new BadRequestException("任务:[" + task_id + "]已请求过!"); + } SchBasePoint waitPointObj = pointService.getById(waitPoint); SchBasePoint result; // 找到这排对应的准确货位, @@ -293,7 +303,8 @@ public class GHCMLTask extends AbstractTask { .eq(SchBasePoint::getRegion_code, waitPointObj.getRegion_code()) .eq(SchBasePoint::getRow_num, waitPointObj.getRow_num()) .eq(SchBasePoint::getCol_num, basePoint.getCol_num() - 1) - .and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住 + // 当前执行的任务为空或者NULL,有数据表示锁住 + .and(la -> la.isNull(SchBasePoint::getIng_task_code) .or() .eq(SchBasePoint::getIng_task_code, "")) .eq(SchBasePoint::getIs_used, true)); @@ -306,12 +317,14 @@ public class GHCMLTask extends AbstractTask { .eq(SchBasePoint::getRegion_code, waitPointObj.getRegion_code()) .eq(SchBasePoint::getRow_num, waitPointObj.getRow_num()) .eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode()) - .and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住 + // 当前执行的任务为空或者NULL,有数据表示锁住 + .and(la -> la.isNull(SchBasePoint::getIng_task_code) .or() .eq(SchBasePoint::getIng_task_code, "")) .eq(SchBasePoint::getIs_used, true) .orderByAsc(SchBasePoint::getIn_order_seq)); - result = points.get(0); // 获取第一条 + // 获取第一条 + result = points.get(0); } // 锁住货位点 PointUtils.setUpdateByAcs(result); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/auto/GHCQLTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/auto/GHCQLTask.java index 2bcbd5f..9aceba6 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/auto/GHCQLTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/auto/GHCQLTask.java @@ -1,5 +1,6 @@ package org.nl.wms.sch.task_manage.task.tasks.auto; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; @@ -9,7 +10,9 @@ import lombok.extern.slf4j.Slf4j; import org.nl.common.exception.BadRequestException; import org.nl.system.service.notice.ISysNoticeService; import org.nl.system.service.param.ISysParamService; -import org.nl.wms.ext.service.dto.to.BaseResponse; +import org.nl.wms.ext.acs.service.dto.to.BaseResponse; +import org.nl.wms.pdm.track.service.IPdmBdProductionProcessTrackingService; +import org.nl.wms.pdm.track.service.dao.PdmBdProductionProcessTracking; import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; import org.nl.wms.sch.point.service.ISchBasePointService; @@ -41,7 +44,7 @@ import java.util.stream.Collectors; @Slf4j @Component("GHCQLTask") public class GHCQLTask extends AbstractTask { - private static String TASK_CONFIG_CODE = "GHCQLTask"; + private static final String TASK_CONFIG_CODE = "GHCQLTask"; @Autowired private ISchBaseTaskService taskService; @Autowired @@ -58,6 +61,8 @@ public class GHCQLTask extends AbstractTask { private TaskFactory taskFactory; @Autowired private ISchBaseVehiclematerialgroupService vehiclematerialgroupService; + @Autowired + private IPdmBdProductionProcessTrackingService processTrackingService; @Override protected void create() throws BadRequestException { @@ -120,9 +125,10 @@ public class GHCQLTask extends AbstractTask { LambdaQueryWrapper lam = new QueryWrapper().lambda(); lam.in(SchBasePoint::getRegion_code, startRegionStr) .eq(SchBasePoint::getParent_point_code, device.getParent_point_code()) + // 查找固化位 .eq(SchBasePoint::getPoint_type, PointTypeConstant.DOCKING_POINT) .eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_VEHICLE.getCode()) - .and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住 + .and(la -> la.isNull(SchBasePoint::getIng_task_code) .or() .eq(SchBasePoint::getIng_task_code, "")) .orderByAsc(SchBasePoint::getIn_order_seq); @@ -141,16 +147,16 @@ public class GHCQLTask extends AbstractTask { throw new BadRequestException("该任务已取消!"); } // 根据传来的类型去对任务进行操作 - if (status.equals(TaskStatus.EXECUTING)) { // 执行中 + if (status.equals(TaskStatus.EXECUTING)) { taskObj.setTask_status(TaskStatus.EXECUTING.getCode()); taskObj.setRemark("执行中"); TaskUtils.setUpdateByAcs(taskObj); taskService.updateById(taskObj); } - if (status.equals(TaskStatus.FINISHED)) { // 完成 + if (status.equals(TaskStatus.FINISHED)) { this.finishTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); } - if (status.equals(TaskStatus.CANCELED)) { // 取消 + if (status.equals(TaskStatus.CANCELED)) { this.cancelTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); } } @@ -174,8 +180,8 @@ public class GHCQLTask extends AbstractTask { } public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { - String startPoint = taskObj.getPoint_code1(); // 获取起点 - String endPoint = taskObj.getPoint_code2(); // 获取起点 + String startPoint = taskObj.getPoint_code1(); + String endPoint = taskObj.getPoint_code2(); SchBasePoint startPointObj = pointService.getById(startPoint); SchBasePoint endPointObj = pointService.getById(endPoint); String requestParam = taskObj.getRequest_param(); @@ -189,19 +195,19 @@ public class GHCQLTask extends AbstractTask { taskObj.getVehicle_code(), taskObj.getVehicle_type(), GroupBindMaterialStatusEnum.BOUND.getValue()); // 等到变成空盘才能解除 - vehicleMaterialGroupObj.setPoint_code(endPointObj.getPoint_code()); // 当前位置 + vehicleMaterialGroupObj.setPoint_code(endPointObj.getPoint_code()); vehicleMaterialGroupObj.setPoint_name(endPointObj.getPoint_name()); vehicleMaterialGroupObj.setTask_code(taskObj.getTask_code()); vehicleMaterialGroupObj.setMove_way(vehicleMaterialGroupObj.getMove_way() + " -> " + endPointObj.getPoint_code()); TaskUtils.setGroupUpdateByType(vehicleMaterialGroupObj, taskFinishedType); vehiclematerialgroupService.updateById(vehicleMaterialGroupObj); // 插入生产过程跟踪表 -// PdmBdProductionProcessTracking processTracking = new PdmBdProductionProcessTracking(); -// processTracking.setBuss_move_id(vehicleMaterialGroupObj.getBuss_move_id()); -// processTracking.setProcess_action("钢托盘缓存位到分拣"); -// processTracking.setProcess_location(endPoint); -// processTracking.setRecord_time(DateUtil.now()); -// processTrackingService.create(processTracking); + PdmBdProductionProcessTracking processTracking = new PdmBdProductionProcessTracking(); + processTracking.setBuss_move_id(vehicleMaterialGroupObj.getBuss_move_id()); + processTracking.setProcess_action("从固化室出去到出口"); + processTracking.setProcess_location(endPoint); + processTracking.setRecord_time(DateUtil.now()); + processTrackingService.create(processTracking); // 终点设置对应的参数 endPointObj.setVehicle_code(taskObj.getVehicle_code()); endPointObj.setVehicle_type(taskObj.getVehicle_type()); @@ -218,7 +224,7 @@ public class GHCQLTask extends AbstractTask { } public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { - String startPoint = taskObj.getPoint_code1(); // 获取终点 + String startPoint = taskObj.getPoint_code1(); SchBasePoint startPointObj = pointService.getById(startPoint); // 终点解锁 if (ObjectUtil.isNotEmpty(startPointObj)) { diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/auto/mapper/AutoMapper.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/auto/mapper/AutoMapper.java index 2b4b3af..87e8372 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/auto/mapper/AutoMapper.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/auto/mapper/AutoMapper.java @@ -17,6 +17,6 @@ public interface AutoMapper { SchBasePoint getZCSameMaterialPoint(String regionCode, String materialId); - SchBasePoint getZCEmptyMaterialPoint(String regionCode); + SchBasePoint getZCEmptyMaterialPoint(String regionCode, String materialId); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/auto/mapper/AutoMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/auto/mapper/AutoMapper.xml index 10a31f9..5edea29 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/auto/mapper/AutoMapper.xml +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/auto/mapper/AutoMapper.xml @@ -81,6 +81,18 @@ ]]> (SELECT COUNT(*) FROM sch_base_task t WHERE t.next_wait_point = p.point_code AND t.task_status IN ('1', '2', '3', '4')) + AND ( + 0 = (SELECT COUNT(*) + FROM sch_base_task t + WHERE t.next_wait_point = p.point_code AND t.task_status IN ('1', '2', '3', '4')) + OR + #{materialId} IN (SELECT vg.material_id + FROM sch_base_task t + LEFT JOIN sch_base_vehiclematerialgroup vg ON vg.vehicle_code = t.vehicle_code AND vg.vehicle_type = t.vehicle_type + AND vg.group_bind_material_status = '2' + WHERE t.next_wait_point = p.point_code AND t.task_status IN ('1', '2', '3', '4')) + ) + ORDER BY p.row_num, p.out_order_seq LIMIT 1 diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/kj/KJQKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/kj/KJQKTask.java index 39f34b3..a4138fb 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/kj/KJQKTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/kj/KJQKTask.java @@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.extern.slf4j.Slf4j; import org.nl.common.exception.BadRequestException; import org.nl.system.service.notice.ISysNoticeService; -import org.nl.wms.ext.service.dto.to.BaseResponse; +import org.nl.wms.ext.acs.service.dto.to.BaseResponse; import org.nl.wms.sch.point.service.ISchBasePointService; import org.nl.wms.sch.point.service.dao.SchBasePoint; import org.nl.wms.sch.task.service.ISchBaseTaskService; @@ -23,7 +23,6 @@ import org.nl.wms.util.PointUtils; import org.nl.wms.util.TaskUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; import java.util.Arrays; import java.util.List; @@ -37,7 +36,7 @@ import java.util.stream.Collectors; @Slf4j @Component("KJQKTask") public class KJQKTask extends AbstractTask { - private static String TASK_CONFIG_CODE = "KJQKTask"; + private static final String TASK_CONFIG_CODE = "KJQKTask"; @Autowired private ISchBasePointService pointService; @Autowired @@ -114,16 +113,16 @@ public class KJQKTask extends AbstractTask { throw new BadRequestException("该任务已取消!"); } // 根据传来的类型去对任务进行操作 - if (status.equals(TaskStatus.EXECUTING)) { // 执行中 + if (status.equals(TaskStatus.EXECUTING)) { taskObj.setTask_status(TaskStatus.EXECUTING.getCode()); taskObj.setRemark("执行中"); TaskUtils.setUpdateByAcs(taskObj); taskService.updateById(taskObj); } - if (status.equals(TaskStatus.FINISHED)) { // 完成 + if (status.equals(TaskStatus.FINISHED)) { this.finishTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); } - if (status.equals(TaskStatus.CANCELED)) { // 取消 + if (status.equals(TaskStatus.CANCELED)) { this.cancelTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); } } @@ -148,7 +147,7 @@ public class KJQKTask extends AbstractTask { public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { // 获取参数 - String startPoint = taskObj.getPoint_code1(); // 获取起点 + String startPoint = taskObj.getPoint_code1(); SchBasePoint startPointObj = pointService.selectByIdLock(startPoint); // 起点清空 if (ObjectUtil.isNotEmpty(startPointObj)) { @@ -166,7 +165,7 @@ public class KJQKTask extends AbstractTask { public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { // 获取参数 - String startPoint = taskObj.getPoint_code1(); // 获取起点 + String startPoint = taskObj.getPoint_code1(); SchBasePoint startPointObj = pointService.getById(startPoint); // 起点解锁 if (ObjectUtil.isNotEmpty(startPointObj)) { diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/kj/KJSKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/kj/KJSKTask.java index 87359cb..01aee72 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/kj/KJSKTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/kj/KJSKTask.java @@ -7,7 +7,7 @@ import lombok.extern.slf4j.Slf4j; import org.nl.common.exception.BadRequestException; import org.nl.system.service.notice.ISysNoticeService; import org.nl.system.service.param.ISysParamService; -import org.nl.wms.ext.service.dto.to.BaseResponse; +import org.nl.wms.ext.acs.service.dto.to.BaseResponse; import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; import org.nl.wms.sch.point.service.ISchBasePointService; import org.nl.wms.sch.point.service.dao.SchBasePoint; @@ -42,7 +42,7 @@ import java.util.stream.Collectors; @Slf4j @Component("KJSKTask") public class KJSKTask extends AbstractTask { - private static String TASK_CONFIG_CODE = "KJSKTask"; + private static final String TASK_CONFIG_CODE = "KJSKTask"; @Autowired private ISchBaseTaskService taskService; @Autowired @@ -160,16 +160,16 @@ public class KJSKTask extends AbstractTask { throw new BadRequestException("该任务已取消!"); } // 根据传来的类型去对任务进行操作 - if (status.equals(TaskStatus.EXECUTING)) { // 执行中 + if (status.equals(TaskStatus.EXECUTING)) { taskObj.setTask_status(TaskStatus.EXECUTING.getCode()); taskObj.setRemark("执行中"); TaskUtils.setUpdateByAcs(taskObj); taskService.updateById(taskObj); } - if (status.equals(TaskStatus.FINISHED)) { // 完成 + if (status.equals(TaskStatus.FINISHED)) { this.finishTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); } - if (status.equals(TaskStatus.CANCELED)) { // 取消 + if (status.equals(TaskStatus.CANCELED)) { this.cancelTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); } } @@ -193,7 +193,7 @@ public class KJSKTask extends AbstractTask { } public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { // 获取参数 - String endPoint = taskObj.getPoint_code2(); // 获取终点 + String endPoint = taskObj.getPoint_code2(); String vehicleType = ObjectUtil.isNotEmpty(taskObj.getVehicle_type()) ? taskObj.getVehicle_type() : ""; SchBasePoint endPointObj = pointService.getById(endPoint); // 设置载具类型、点位状态、释放点位 @@ -214,7 +214,7 @@ public class KJSKTask extends AbstractTask { } public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { // 获取参数 - String endPoint = taskObj.getPoint_code2(); // 获取终点 + String endPoint = taskObj.getPoint_code2(); SchBasePoint endPointObj = pointService.getById(endPoint); // 释放点位 if (ObjectUtil.isNotEmpty(endPoint)) { diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/tbx/TBXMLTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/tbx/TBXMLTask.java index 72dbd36..c0fb8ac 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/tbx/TBXMLTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/tbx/TBXMLTask.java @@ -11,9 +11,14 @@ import org.nl.common.utils.CodeUtil; import org.nl.system.service.notice.ISysNoticeService; import org.nl.system.service.param.ISysParamService; import org.nl.system.service.param.dao.Param; -import org.nl.wms.ext.service.dto.to.BaseResponse; -import org.nl.wms.pdm.service.IPdmBdWorkorderService; -import org.nl.wms.pdm.service.dao.PdmBdWorkorder; +import org.nl.wms.database.material.service.IMdBaseMaterialService; +import org.nl.wms.database.material.service.dao.MdBaseMaterial; +import org.nl.wms.ext.acs.service.dto.to.BaseResponse; +import org.nl.wms.pdm.solidifyplan.service.IPdmBdSolidifyPlanService; +import org.nl.wms.pdm.track.service.IPdmBdProductionProcessTrackingService; +import org.nl.wms.pdm.track.service.dao.PdmBdProductionProcessTracking; +import org.nl.wms.pdm.workorder.service.IPdmBdWorkorderService; +import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder; import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; import org.nl.wms.sch.point.service.ISchBasePointService; @@ -45,7 +50,7 @@ import java.util.stream.Collectors; @Slf4j @Component("TBXMLTask") public class TBXMLTask extends AbstractTask { - private static String TASK_CONFIG_CODE = "TBXMLTask"; + private static final String TASK_CONFIG_CODE = "TBXMLTask"; @Autowired private ISchBaseTaskService taskService; @Autowired @@ -62,6 +67,12 @@ public class TBXMLTask extends AbstractTask { private IPdmBdWorkorderService workorderService; @Autowired private ISchBaseVehiclematerialgroupService vehiclematerialgroupService; + @Autowired + private IMdBaseMaterialService materialService; + @Autowired + private IPdmBdSolidifyPlanService solidifyPlanService; + @Autowired + private IPdmBdProductionProcessTrackingService processTrackingService; /** * hint: 涂板线任务先发到等待点,接着二次请求获取真正的点位。 @@ -76,7 +87,7 @@ public class TBXMLTask extends AbstractTask { SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper() .eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE)); for (SchBaseTask task : tasks) { - TaskUtils.setUpdateByAcs(task); // 修改修改者 + TaskUtils.setUpdateByAcs(task); List nextRegionStr = Arrays.stream(taskConfig.getNext_region_str().split(",")) .collect(Collectors.toList()); // 找终点 @@ -131,7 +142,7 @@ public class TBXMLTask extends AbstractTask { task.setTask_status(TaskStatus.CREATED.getCode()); task.setRemark(""); task.setVehicle_code(vehicleCode); - TaskUtils.setUpdateByAcs(task); // 修改修改者 + TaskUtils.setUpdateByAcs(task); taskService.save(task); // point.setIng_task_code(task.getTask_code()); @@ -142,7 +153,6 @@ public class TBXMLTask extends AbstractTask { /** * 在固化室找一个等待点 * hint: 需要校验存放类型 - * todo: 目前不考虑固化方案 * * @param nextRegionStr * @param jsonObject @@ -155,30 +165,48 @@ public class TBXMLTask extends AbstractTask { throw new BadRequestException("当前设备暂无工单"); } PdmBdWorkorder workorder = workorderService.getByCode(workorderCode); - // todo: 获取载具类型 + // 获取载具类型 String vehicle_type = workorder.getVehicle_type(); - Param curingPlan = paramService.findByCode("CuringPlan");// 获取固化方案 + // 获取物料 + MdBaseMaterial material = materialService.getById(workorder.getMaterial_id()); + // 获取固化方案 + Param curingPlan = paramService.findByCode("CuringPlan"); List points = new ArrayList<>(); if (curingPlan.getValue().equals(GeneralDefinition.NOT_MIXING)) { // 不可混料-需要根据工单上物料的信息 // 1 获取含有该物料并且没满的固化室。 points = tbxMapper.getNotFullByMaterial(nextRegionStr, vehicle_type, workorder.getMaterial_id()); - if (points.size() == 0) { - // 2 没有对应的固化室,就找新的固化室 - points = tbxMapper.getEmptyPoint(nextRegionStr, vehicle_type); - } } else if (curingPlan.getValue().equals(GeneralDefinition.CAN_MIXING)) { - // 可混料 - points = tbxMapper.getCanMiningPoint(nextRegionStr, vehicle_type); + // 可混料, 要与物料工艺号相同 + // 1 获取同工艺号的位置 + points = tbxMapper.getCanMiningPoint(nextRegionStr, vehicle_type, material.getTechnique_num()); } else { - // todo:自定义混料 + // 自定义混料 + // 获取自定义混料对应的plan_code(计划编码) + Param currentMaterials = paramService.getOne(new LambdaQueryWrapper().eq(Param::getCode, "CurrentMaterials")); + // 获取plan_code对应的物料数组 + List details = solidifyPlanService.details(currentMaterials.getValue()); + // 判断是否在自定义配方内 + if (details.contains(material.getMaterial_id())) { + // 1 寻找可存放的固化室 + points = tbxMapper.getSamePlanPoint(nextRegionStr, details, vehicle_type); + if (points.size() == 0) { + // 2 没找到需要找个相同物料可用的位置 + // hint: 获取含有该物料并且没满的固化室。 + points = tbxMapper.getNotFullByMaterial(nextRegionStr, vehicle_type, workorder.getMaterial_id()); + } + } + } + // 2 没有对应的固化室、没有同工艺号的固化室、没有计划方案对应的固化室,就找新的固化室 + if (points.size() == 0) { + points = tbxMapper.getEmptyPoint(nextRegionStr, vehicle_type); } return points.size() > 0 ? points.get(0) : null; } @Override protected void updateStatus(String task_code, TaskStatus status) { -// 校验任务 + // 校验任务 SchBaseTask taskObj = taskService.getByCode(task_code); if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) { throw new BadRequestException("该任务已完成!"); @@ -187,16 +215,16 @@ public class TBXMLTask extends AbstractTask { throw new BadRequestException("该任务已取消!"); } // 根据传来的类型去对任务进行操作 - if (status.equals(TaskStatus.EXECUTING)) { // 执行中 + if (status.equals(TaskStatus.EXECUTING)) { taskObj.setTask_status(TaskStatus.EXECUTING.getCode()); taskObj.setRemark("执行中"); TaskUtils.setUpdateByAcs(taskObj); taskService.updateById(taskObj); } - if (status.equals(TaskStatus.FINISHED)) { // 完成 + if (status.equals(TaskStatus.FINISHED)) { this.finishTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); } - if (status.equals(TaskStatus.CANCELED)) { // 取消 + if (status.equals(TaskStatus.CANCELED)) { this.cancelTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); } } @@ -226,26 +254,28 @@ public class TBXMLTask extends AbstractTask { @Override public String setGroupPlate(JSONObject param) { + // hint: 数量是根据物料上的标准数量 // 获取工单 PdmBdWorkorder orderObject = workorderService.getDeviceDockingProductionTask(param.getString("device_code")); if (ObjectUtil.isEmpty(orderObject)) { throw new BadRequestException("设备:[" + param.getString("device_code") + "]工单不存在!"); } String vehicleCode = param.getString("vehicle_code"); - if (ObjectUtil.isEmpty(vehicleCode)) { // 如果不是立即创建,就需要再此生成 + // 如果不是立即创建,就需要再此生成 + if (ObjectUtil.isEmpty(vehicleCode)) { vehicleCode = CodeUtil.getNewCode("VEHICLE_CODE"); } + MdBaseMaterial materialObj = materialService.getById(orderObject.getMaterial_id()); SchBaseVehiclematerialgroup vehicleGroupInfo = vehiclematerialgroupService.getVehicleGroupInfo(vehicleCode, orderObject.getVehicle_type(), GroupBindMaterialStatusEnum.BOUND.getValue()); if (ObjectUtil.isNotEmpty(vehicleGroupInfo)) { throw new BadRequestException("载具号:" + vehicleCode + "-载具类型:" + orderObject.getVehicle_type() + "组盘信息已存在"); } + Integer qty = param.getInteger("qty"); // 获取当前位置 SchBasePoint basePoint = pointService.getById(param.getString("device_code")); SchBaseVehiclematerialgroup groupEntity = new SchBaseVehiclematerialgroup(); groupEntity.setGroup_id(IdUtil.getSnowflake(1, 1).nextIdStr()); - // 解绑同载具的信息 -// vehiclematerialgroupService.unBindingSameVehicleMaterial(vehicleCode, vehicleType); // 要把数据存到组盘表 groupEntity.setMaterial_id(ObjectUtil.isNotEmpty(orderObject) ? orderObject.getMaterial_id() @@ -256,19 +286,28 @@ public class TBXMLTask extends AbstractTask { groupEntity.setWorkorder_code(ObjectUtil.isNotEmpty(orderObject) ? orderObject.getWorkorder_code() : ""); + groupEntity.setMaterial_qty(ObjectUtil.isNotEmpty(qty) && qty > 0 + ? qty + : Integer.valueOf(materialObj.getStandard_qty())); groupEntity.setCreate_id(GeneralDefinition.ACS_ID); groupEntity.setCreate_name(GeneralDefinition.ACS_NAME); groupEntity.setCreate_time(DateUtil.now()); groupEntity.setVehicle_code(vehicleCode); groupEntity.setVehicle_type(orderObject.getVehicle_type()); - groupEntity.setPoint_code(basePoint.getPoint_code()); // 对接位 + groupEntity.setPoint_code(basePoint.getPoint_code()); groupEntity.setPoint_name(basePoint.getPoint_name()); groupEntity.setSource_vehicle_code(basePoint.getPoint_code()); groupEntity.setMove_way(basePoint.getPoint_code()); - groupEntity.setPcsn(DateUtil.format(DateUtil.date(), "yyyyMMdd")); // 批次号使用自己定义的 + // hint: 批次号:涂板线设备+物料+班组+日期 + StringBuilder pcsn = new StringBuilder(); + pcsn.append(orderObject.getPoint_code()) + .append(orderObject.getMaterial_code()) + .append(orderObject.getTeam()) + .append(DateUtil.format(DateUtil.date(), "yyyyMMdd")); + groupEntity.setPcsn(pcsn.toString()); groupEntity.setInstorage_time(DateUtil.now()); - groupEntity.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue()); // 绑定 - groupEntity.setGroup_status(GroupStatusEnum.IN_STORAGE.getType()); // 暂时不维护。 + groupEntity.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue()); + groupEntity.setGroup_status(GroupStatusEnum.IN_STORAGE.getType()); groupEntity.setIs_delete(false); groupEntity.setIs_full(true); vehiclematerialgroupService.saveOrUpdate(groupEntity); @@ -277,16 +316,19 @@ public class TBXMLTask extends AbstractTask { } public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { - String endPoint = taskObj.getPoint_code2(); // 获取终点 + String endPoint = taskObj.getPoint_code2(); SchBasePoint endPointObj = pointService.getById(endPoint); if (ObjectUtil.isNotEmpty(endPointObj)) { SchBaseVehiclematerialgroup vehiclematerialgroup = vehiclematerialgroupService.getById(taskObj.getGroup_id()); TaskUtils.setGroupUpdateByType(vehiclematerialgroup, taskFinishedType); - vehiclematerialgroup.setTask_code(taskObj.getTask_code()); // 当前任务 - vehiclematerialgroup.setBuss_move_id(taskObj.getTask_code()); // 设置链路id,使用任务编码 + vehiclematerialgroup.setTask_code(taskObj.getTask_code()); + // 设置链路id,使用任务编码 + vehiclematerialgroup.setBuss_move_id(taskObj.getTask_code()); vehiclematerialgroup.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue()); - vehiclematerialgroup.setPoint_code(endPointObj.getPoint_code()); // 当前位置 + vehiclematerialgroup.setPoint_code(endPointObj.getPoint_code()); vehiclematerialgroup.setPoint_name(endPointObj.getPoint_name()); + // 设置链路id,使用任务编码 + vehiclematerialgroup.setBuss_move_id(taskObj.getTask_code()); vehiclematerialgroup.setMove_way(vehiclematerialgroup.getMove_way() + " -> " + endPointObj.getPoint_code()); vehiclematerialgroupService.updateById(vehiclematerialgroup); // 终点解锁 @@ -298,19 +340,26 @@ public class TBXMLTask extends AbstractTask { endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode()); pointService.updateById(endPointObj); // 插入生产过程跟踪表 -// PdmBdProductionProcessTracking processTracking = new PdmBdProductionProcessTracking(); -// processTracking.setBuss_move_id(vehiclematerialgroup.getBuss_move_id()); -// processTracking.setProcess_action("压制送料入双层缓存线"); -// processTracking.setProcess_location(endPoint); -// processTracking.setRecord_time(DateUtil.now()); -// processTrackingService.create(processTracking); - // 工单统计实际数量 -// Integer materialQty = vehiclematerialgroup.getMaterial_qty(); -// PdmBdWorkorder bdWorkorder = workorderService.getByCode(vehiclematerialgroup.getWorkorder_code()); -// BigDecimal realQty = bdWorkorder.getReal_qty(); -// bdWorkorder.setReal_qty(NumberUtil.add(realQty, materialQty)); -// TaskUtils.setWorkOrderUpdateByType(bdWorkorder, taskFinishedType); -// workorderService.updateById(bdWorkorder); + PdmBdProductionProcessTracking processTracking = new PdmBdProductionProcessTracking(); + processTracking.setBuss_move_id(vehiclematerialgroup.getBuss_move_id()); + processTracking.setProcess_action("涂板线送到固化室"); + processTracking.setProcess_location(endPoint); + processTracking.setRecord_time(DateUtil.now()); + processTrackingService.create(processTracking); + // todo: 如果是最后一个就申请固化 + SchBasePoint one = pointService.getOne(new LambdaQueryWrapper() + .eq(SchBasePoint::getParent_point_code, endPointObj.getParent_point_code()) + .eq(SchBasePoint::getPoint_type, PointTypeConstant.DOCKING_POINT) + .eq(SchBasePoint::getIs_used, true) + .orderByDesc(SchBasePoint::getIn_order_seq), false); + if (one.getPoint_code().equals(endPointObj.getPoint_code())) { + SchBasePoint ghs = pointService.getOne(new LambdaQueryWrapper() + .eq(SchBasePoint::getPoint_code, endPointObj.getParent_point_code()) + .eq(SchBasePoint::getPoint_type, PointTypeConstant.DEVICE_POINT), false); + ghs.setPoint_status(PointStatusEnum.SOLIDIFY.getCode()); + PointUtils.setUpdateByType(ghs, taskFinishedType); + pointService.updateById(ghs); + } } // 任务完成 taskObj.setTask_status(TaskStatus.FINISHED.getCode()); @@ -321,17 +370,11 @@ public class TBXMLTask extends AbstractTask { } public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { + // todo: 最后一个位置完成放货需要请求固化,将设备设置为固化状 // 获取参数 -// String waitPoint = taskObj.getNext_wait_point(); // 获取等待点 - String endPoint = taskObj.getPoint_code2(); // 获取终点 -// SchBasePoint waitPointObj = pointService.getById(waitPoint); + String endPoint = taskObj.getPoint_code2(); SchBasePoint endPointObj = pointService.getById(endPoint); - // 等待点解锁 不锁 -// if (ObjectUtil.isNotEmpty(waitPointObj)) { -// waitPointObj.setIng_task_code(""); -// PointUtils.setUpdateByType(waitPointObj, taskFinishedType); -// pointService.updateById(waitPointObj); -// } + // hint: 等待点解锁 不锁 // 终点解锁 if (ObjectUtil.isNotEmpty(endPointObj)) { endPointObj.setIng_task_code(""); @@ -360,6 +403,9 @@ public class TBXMLTask extends AbstractTask { if (ObjectUtil.isEmpty(waitPoint)) { throw new BadRequestException("找不到任务:[" + task_id + "]等待点!"); } + if (ObjectUtil.isNotEmpty(task.getPoint_code2())) { + throw new BadRequestException("任务:[" + task_id + "]已请求过!"); + } // 根据任务上等待点的位置获取准确的固化室位置。 // mark: 不考虑前空中间有货后空的问题 SchBasePoint ghsInPoint = pointService.getById(waitPoint); @@ -367,15 +413,18 @@ public class TBXMLTask extends AbstractTask { .eq(SchBasePoint::getParent_point_code, ghsInPoint.getParent_point_code()) .eq(SchBasePoint::getPoint_type, PointTypeConstant.DOCKING_POINT) .eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode()) - .and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住 + // 当前执行的任务为空或者NULL,有数据表示锁住 + .and(la -> la.isNull(SchBasePoint::getIng_task_code) .or() .eq(SchBasePoint::getIng_task_code, "")) .eq(SchBasePoint::getIs_used, true) .orderByAsc(SchBasePoint::getIn_order_seq)); - if (pointList.size() == 0) { // hint: 如果满了,是否可以考虑转到其他固化室等待点 + // hint: 如果满了,是否可以考虑转到其他固化室等待点 + if (pointList.size() == 0) { throw new BadRequestException("找不到对应的固化室"); } - SchBasePoint point = pointList.get(0); // 获取第一条 + // 获取第一条 + SchBasePoint point = pointList.get(0); // 锁住货位点 PointUtils.setUpdateByAcs(point); point.setIng_task_code(task.getTask_code()); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/tbx/TBXQKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/tbx/TBXQKTask.java index 667760c..fcdc6ff 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/tbx/TBXQKTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/tbx/TBXQKTask.java @@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.extern.slf4j.Slf4j; import org.nl.common.exception.BadRequestException; import org.nl.system.service.notice.ISysNoticeService; -import org.nl.wms.ext.service.dto.to.BaseResponse; +import org.nl.wms.ext.acs.service.dto.to.BaseResponse; import org.nl.wms.sch.point.service.ISchBasePointService; import org.nl.wms.sch.point.service.dao.SchBasePoint; import org.nl.wms.sch.task.service.ISchBaseTaskService; @@ -37,7 +37,7 @@ import java.util.stream.Collectors; @Slf4j @Component(value = "TBXQKTask") public class TBXQKTask extends AbstractTask { - private static String TASK_CONFIG_CODE = "TBXQKTask"; + private static final String TASK_CONFIG_CODE = "TBXQKTask"; @Autowired private ISchBasePointService pointService; @Autowired @@ -54,7 +54,7 @@ public class TBXQKTask extends AbstractTask { SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper() .eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE)); for (SchBaseTask task : tasks) { - TaskUtils.setUpdateByAcs(task); // 修改修改者 + TaskUtils.setUpdateByAcs(task); List startRegionStr = Arrays.stream(taskConfig.getStart_region_str().split(",")) .collect(Collectors.toList()); // 找起点 @@ -120,16 +120,19 @@ public class TBXQKTask extends AbstractTask { /** * 业务过程:到指定的区域获取空架 - * @param startRegionStr - * @param requestParam - * @return + * @param startRegionStr 区域 + * @param requestParam 请求的参数 + * @return 点位 */ private SchBasePoint findStartPoint(List startRegionStr, JSONObject requestParam) { LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); - lam.in(SchBasePoint::getRegion_code, startRegionStr) // hint: 默认一直都有载具 - .eq(SchBasePoint::getPoint_type, GeneralDefinition.EXIT) // 点位类型是拆盘机出口 + // hint: 默认一直都有载具 + lam.in(SchBasePoint::getRegion_code, startRegionStr) + // 点位类型是拆盘机出口 + .eq(SchBasePoint::getPoint_type, GeneralDefinition.EXIT) .eq(SchBasePoint::getCan_vehicle_type, requestParam.getString("vehicle_type")) - .and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住 + // 当前执行的任务为空或者NULL,有数据表示锁住 + .and(la -> la.isNull(SchBasePoint::getIng_task_code) .or() .eq(SchBasePoint::getIng_task_code, "")) .eq(SchBasePoint::getBlock_num, "1") @@ -150,16 +153,16 @@ public class TBXQKTask extends AbstractTask { throw new BadRequestException("该任务已取消!"); } // 根据传来的类型去对任务进行操作 - if (status.equals(TaskStatus.EXECUTING)) { // 执行中 + if (status.equals(TaskStatus.EXECUTING)) { taskObj.setTask_status(TaskStatus.EXECUTING.getCode()); taskObj.setRemark("执行中"); TaskUtils.setUpdateByAcs(taskObj); taskService.updateById(taskObj); } - if (status.equals(TaskStatus.FINISHED)) { // 完成 + if (status.equals(TaskStatus.FINISHED)) { this.finishTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); } - if (status.equals(TaskStatus.CANCELED)) { // 取消 + if (status.equals(TaskStatus.CANCELED)) { this.cancelTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); } } @@ -184,8 +187,8 @@ public class TBXQKTask extends AbstractTask { public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { // 获取参数 - String startPoint = taskObj.getPoint_code1(); // 获取起点 - String endPoint = taskObj.getPoint_code2(); // 获取起点 + String startPoint = taskObj.getPoint_code1(); + String endPoint = taskObj.getPoint_code2(); SchBasePoint startPointObj = pointService.selectByIdLock(startPoint); SchBasePoint endPointObj = pointService.selectByIdLock(endPoint); // 起点清空 @@ -209,7 +212,7 @@ public class TBXQKTask extends AbstractTask { public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { // 获取参数 - String startPoint = taskObj.getPoint_code1(); // 获取起点 + String startPoint = taskObj.getPoint_code1(); SchBasePoint startPointObj = pointService.getById(startPoint); // 起点解锁 if (ObjectUtil.isNotEmpty(startPointObj)) { diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/tbx/mapper/TBXMapper.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/tbx/mapper/TBXMapper.java index 4eb575f..9d74607 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/tbx/mapper/TBXMapper.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/tbx/mapper/TBXMapper.java @@ -11,26 +11,36 @@ import java.util.List; */ public interface TBXMapper { /** - * 随机找可用的固化室 - * @param regionCode - * @param vehicleType - * @return + * 随机找可用的固化室, 要与物料工艺号相同 + * @param regionCode 区域 + * @param vehicleType 载具类型 + * @return 点位数据 */ - List getCanMiningPoint(List regionCode, String vehicleType); + List getCanMiningPoint(List regionCode, String vehicleType, String technique_num); /** * 获取固化中没满可用的固化室 - * @param nextRegionStr - * @param materialId - * @return + * @param nextRegionStr 区域 + * @param vehicleType 载具类型 + * @param materialId 物料标识 + * @return 点位数据 */ List getNotFullByMaterial(List nextRegionStr, String vehicleType, String materialId); /** * 获取空的固化室 - * @param nextRegionStr - * @param vehicleType - * @return + * @param nextRegionStr 区域 + * @param vehicleType 载具类型 + * @return 点位数据 */ List getEmptyPoint(List nextRegionStr, String vehicleType); + + /** + * 获取方案内的点位 + * @param nextRegionStr 区域 + * @param details 包含的物料id + * @param vehicleType 载具类型 + * @return 点位数据 + */ + List getSamePlanPoint(List nextRegionStr, List details, String vehicleType); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/tbx/mapper/TBXMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/tbx/mapper/TBXMapper.xml index 3045206..667f848 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/tbx/mapper/TBXMapper.xml +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/tbx/mapper/TBXMapper.xml @@ -12,13 +12,21 @@ p.point_type = '1' AND p.point_status = '3' AND ( - SELECT COUNT(*) FROM sch_base_point p2 WHERE p2.parent_point_code = p.point_code AND p2.point_type = '2' AND p2.point_status = '2' - ) + ( - SELECT COUNT(*) - FROM sch_base_task t - WHERE t.next_wait_point = p3.point_code AND t.task_status IN ('1', '2', '3', '4') - ) (SELECT COUNT(*) FROM sch_base_point p4 WHERE p4.parent_point_code = p3.parent_point_code AND p4.point_type = '2') - AND p.region_code IN + SELECT COUNT(*) FROM sch_base_point p2 WHERE p2.parent_point_code = p.point_code AND p2.point_type = '2' + AND p2.point_status = '2' + ) + ( + SELECT COUNT(*) + FROM sch_base_task t + WHERE t.next_wait_point = p3.point_code AND t.task_status IN ('1', '2', '3', '4') + ) (SELECT COUNT(*) FROM sch_base_point p4 WHERE p4.parent_point_code = p3.parent_point_code + AND p4.point_type = '2' AND p4.is_used = TRUE) + AND #{technique_num} IN ( + SELECT mm.technique_num FROM sch_base_point p2 + LEFT JOIN sch_base_vehiclematerialgroup vg ON vg.vehicle_code = p2.vehicle_code AND vg.vehicle_type = + p2.vehicle_type AND vg.is_delete = '0' AND vg.group_bind_material_status = '2' + LEFT JOIN md_base_material mm ON mm.material_id = vg.material_id + WHERE p2.parent_point_code = p.point_code AND p2.point_type = '2' AND p2.point_status = '2') + AND p.region_code IN #{code} @@ -44,10 +52,13 @@ p.point_type = '1' AND p.point_status = '3' AND ( - SELECT COUNT(*) FROM sch_base_point p2 WHERE p2.parent_point_code = p.point_code AND p2.point_type = '2' AND p2.point_status = '2' - ) + ( - SELECT COUNT(*) FROM sch_base_task t WHERE t.next_wait_point = p3.point_code AND t.task_status IN ('1', '2', '3', '4') - ) (SELECT COUNT(*) FROM sch_base_point p4 WHERE p4.parent_point_code = p3.parent_point_code AND p4.point_type = '2') + SELECT COUNT(*) FROM sch_base_point p2 WHERE p2.parent_point_code = p.point_code + AND p2.point_type = '2' AND p2.point_status = '2' + ) + ( + SELECT COUNT(*) FROM sch_base_task t WHERE t.next_wait_point = p3.point_code + AND t.task_status IN ('1', '2', '3', '4') + ) (SELECT COUNT(*) FROM sch_base_point p4 WHERE p4.parent_point_code = p3.parent_point_code + AND p4.point_type = '2' AND p4.is_used = TRUE) AND #{materialId} IN ( SELECT vg.material_id FROM sch_base_point p2 LEFT JOIN sch_base_vehiclematerialgroup vg ON vg.vehicle_code = p2.vehicle_code AND vg.vehicle_type = @@ -76,7 +87,7 @@ FROM `sch_base_point` p LEFT JOIN sch_base_point p3 ON p.point_code = p3.parent_point_code AND p3.point_type = '4' - AND (p3.ing_task_code = '' OR p3.ing_task_code IS NULL) -- 没有被锁住 + AND (p3.ing_task_code = '' OR p3.ing_task_code IS NULL) WHERE p.point_type = '1' AND p.point_status = '3' AND 0 = ( @@ -105,4 +116,59 @@ + diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/TaskUtils.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/TaskUtils.java index f451f70..4db80ac 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/TaskUtils.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/TaskUtils.java @@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.extern.slf4j.Slf4j; import org.nl.common.utils.SecurityUtils; import org.nl.config.SpringContextHolder; -import org.nl.wms.pdm.service.dao.PdmBdWorkorder; +import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder; import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; import org.nl.wms.sch.task.service.ISchBaseTaskService; import org.nl.wms.sch.task.service.dao.SchBaseTask; @@ -200,11 +200,14 @@ public class TaskUtils { * @return */ public static int convertMultiply(String needFullNumberStr) { - String[] parts = needFullNumberStr.split("\\*"); // 使用 "*" 来分割字符串 + // 使用 "*" 来分割字符串 + String[] parts = needFullNumberStr.split("\\*"); int result = 1; // 初始化结果为1 for (String part : parts) { - int number = Integer.parseInt(part); // 将字符串部分解析为整数 - result *= number; // 将解析的整数与结果相乘 + // 将字符串部分解析为整数 + int number = Integer.parseInt(part); + // 将解析的整数与结果相乘 + result *= number; } return result; } diff --git a/lms/nladmin-system/nlsso-server/src/test/java/org/nl/ApplicationTest.java b/lms/nladmin-system/nlsso-server/src/test/java/org/nl/ApplicationTest.java index 9d7fb11..eb8a201 100644 --- a/lms/nladmin-system/nlsso-server/src/test/java/org/nl/ApplicationTest.java +++ b/lms/nladmin-system/nlsso-server/src/test/java/org/nl/ApplicationTest.java @@ -28,8 +28,9 @@ public class ApplicationTest { } @Test void yzMapperTest() { -// List pointForYZSL = yzMapper.findPointForYZSL(new JSONObject( -// MapOf.of("regionCode", "HCSSX", "pointType", "1"))); -// System.out.println(pointForYZSL); + JSONObject res = new JSONObject(); + res.put("UserID", "admin"); + res.put("UserPassword", "admin"); + System.out.println(JSONObject.toJSONString(res)); } } diff --git a/lms/nladmin-system/nlsso-server/src/test/java/org/nl/point/PointCreate.java b/lms/nladmin-system/nlsso-server/src/test/java/org/nl/point/PointCreate.java index f6bdd01..86eeda8 100644 --- a/lms/nladmin-system/nlsso-server/src/test/java/org/nl/point/PointCreate.java +++ b/lms/nladmin-system/nlsso-server/src/test/java/org/nl/point/PointCreate.java @@ -3,10 +3,13 @@ package org.nl.point; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.junit.jupiter.api.Test; +import org.nl.system.service.param.dao.Param; import org.nl.wms.sch.point.service.ISchBasePointService; import org.nl.wms.sch.point.service.dao.SchBasePoint; import org.nl.wms.sch.region.service.ISchBaseRegionService; +import org.nl.wms.sch.task_manage.GeneralDefinition; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.transaction.annotation.Transactional; @@ -312,30 +315,26 @@ public class PointCreate { } pointService.saveBatch(pointList); } - // 暂存区 9*18 + // 暂存区 9*18 7*12 @Test - void testZCQLeft() { + void testZCQLeftAndRight() { List pointList = new ArrayList<>(); - for (int i = 1; i <= 18; i++) { - for (int j = 1; j <= 9; j++) { + for (int i = 19; i <= 30; i++) { + for (int j = 1; j <= 7; j++) { SchBasePoint point = new SchBasePoint(); - if (i < 10) { - point.setPoint_code("0" + i + "-0" + j + "-01"); - point.setPoint_name("0" + i + "排0" + j + "列01层"); - } else { - point.setPoint_code(i + "-0" + j + "-01"); - point.setPoint_name(i + "排0" + j + "列01层"); - } + point.setPoint_code(i + "-0" + j + "-01"); + point.setPoint_name(i + "排0" + j + "列01层"); point.setRegion_code("ZC"); point.setRegion_name("暂存区域"); point.setRow_num(i); point.setCol_num(j); point.setOut_order_seq(j); - point.setIn_order_seq(9 - j + 1); + point.setIn_order_seq(7 - j + 1); point.setPoint_status("1"); point.setParent_point_code(point.getPoint_code()); point.setIs_has_workder(false); point.setIs_auto(true); + point.setWorkshop_code("A1"); point.setCreate_id("1"); point.setCreate_name("管理员"); point.setCreate_time(DateUtil.now()); @@ -360,4 +359,22 @@ public class PointCreate { res.put("MonthlyWorkOrder", array); System.out.println(res); } + + @Test + void testsout() { + Param param = new Param(); + param.setValue(GeneralDefinition.CUSTOM_MIXING); + System.out.println(param.getValue()); + // 修改物料策略 + param.setValue("ewer"); + System.out.println(param.getValue()); + } + + @Test + void testPoint() { + // 如果多条,返回第一条 + SchBasePoint ghs14 = pointService.getOne(new LambdaQueryWrapper() + .eq(SchBasePoint::getPoint_code, "GHS14"), false); + System.out.println(ghs14); + } } diff --git a/lms/nladmin-ui/src/assets/images/LOGO_副本.png b/lms/nladmin-ui/src/assets/images/LOGO_副本.png new file mode 100644 index 0000000..c72024e Binary files /dev/null and b/lms/nladmin-ui/src/assets/images/LOGO_副本.png differ diff --git a/lms/nladmin-ui/src/assets/images/open.png b/lms/nladmin-ui/src/assets/images/open.png new file mode 100644 index 0000000..b936a45 Binary files /dev/null and b/lms/nladmin-ui/src/assets/images/open.png differ diff --git a/lms/nladmin-ui/src/assets/images/open1.png b/lms/nladmin-ui/src/assets/images/open1.png new file mode 100644 index 0000000..6677e5f Binary files /dev/null and b/lms/nladmin-ui/src/assets/images/open1.png differ diff --git a/lms/nladmin-ui/src/assets/images/open2.png b/lms/nladmin-ui/src/assets/images/open2.png new file mode 100644 index 0000000..392fee2 Binary files /dev/null and b/lms/nladmin-ui/src/assets/images/open2.png differ diff --git a/lms/nladmin-ui/src/assets/images/open3.png b/lms/nladmin-ui/src/assets/images/open3.png new file mode 100644 index 0000000..b0f8335 Binary files /dev/null and b/lms/nladmin-ui/src/assets/images/open3.png differ diff --git a/lms/nladmin-ui/src/assets/images/open4.jpg b/lms/nladmin-ui/src/assets/images/open4.jpg new file mode 100644 index 0000000..7b52e05 Binary files /dev/null and b/lms/nladmin-ui/src/assets/images/open4.jpg differ diff --git a/lms/nladmin-ui/src/assets/images/open5.png b/lms/nladmin-ui/src/assets/images/open5.png new file mode 100644 index 0000000..a1ca19b Binary files /dev/null and b/lms/nladmin-ui/src/assets/images/open5.png differ diff --git a/lms/nladmin-ui/src/layout/components/Sidebar/Logo.vue b/lms/nladmin-ui/src/layout/components/Sidebar/Logo.vue index cda9341..a6d1404 100644 --- a/lms/nladmin-ui/src/layout/components/Sidebar/Logo.vue +++ b/lms/nladmin-ui/src/layout/components/Sidebar/Logo.vue @@ -14,7 +14,7 @@ + + diff --git a/lms/nladmin-ui/src/views/wms/pdm/solidifyplan/pdmBdSolidifyPlan.js b/lms/nladmin-ui/src/views/wms/pdm/solidifyplan/pdmBdSolidifyPlan.js new file mode 100644 index 0000000..6aefa61 --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/pdm/solidifyplan/pdmBdSolidifyPlan.js @@ -0,0 +1,50 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/pdmBdSolidifyPlan', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/pdmBdSolidifyPlan/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/pdmBdSolidifyPlan', + method: 'put', + data + }) +} + +export function details(code) { + return request({ + url: 'api/pdmBdSolidifyPlan/details', + method: 'post', + data: code + }) +} + +export function detailMaterials(code) { + return request({ + url: 'api/pdmBdSolidifyPlan/detailMaterials', + method: 'post', + data: code + }) +} +export function changePlan(data) { + return request({ + url: 'api/pdmBdSolidifyPlan/changePlan', + method: 'post', + data + }) +} + +export default { add, edit, del, details, detailMaterials, changePlan } diff --git a/lms/nladmin-ui/src/views/wms/pdm/solidifyplan/solidifyplan-transfer.vue b/lms/nladmin-ui/src/views/wms/pdm/solidifyplan/solidifyplan-transfer.vue new file mode 100644 index 0000000..46aa50c --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/pdm/solidifyplan/solidifyplan-transfer.vue @@ -0,0 +1,472 @@ + + + + + + + diff --git a/lms/nladmin-ui/src/views/wms/pdm/track/index.vue b/lms/nladmin-ui/src/views/wms/pdm/track/index.vue new file mode 100644 index 0000000..dc43a41 --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/pdm/track/index.vue @@ -0,0 +1,119 @@ + + + + + diff --git a/lms/nladmin-ui/src/views/wms/pdm/track/pdmBdProductionProcessTracking.js b/lms/nladmin-ui/src/views/wms/pdm/track/pdmBdProductionProcessTracking.js new file mode 100644 index 0000000..9224888 --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/pdm/track/pdmBdProductionProcessTracking.js @@ -0,0 +1,27 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/pdmBdProductionProcessTracking', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/pdmBdProductionProcessTracking/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/pdmBdProductionProcessTracking', + method: 'put', + data + }) +} + +export default { add, edit, del } diff --git a/lms/nladmin-ui/src/views/wms/pdm/workerorder/index.vue b/lms/nladmin-ui/src/views/wms/pdm/workerorder/index.vue index 988aacc..49a0461 100644 --- a/lms/nladmin-ui/src/views/wms/pdm/workerorder/index.vue +++ b/lms/nladmin-ui/src/views/wms/pdm/workerorder/index.vue @@ -1,5 +1,5 @@