From d361ff6afb804396f2a7de6c8284d159605dacfd Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Fri, 3 Nov 2023 16:22:12 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=B7=A5=E5=8D=95=E6=95=B4=E6=94=B9?= =?UTF-8?q?=E3=80=81=E5=9F=BA=E7=A1=80=E4=BC=98=E5=8C=96=E3=80=81=E6=B7=B7?= =?UTF-8?q?=E7=A2=BE=E4=B8=9A=E5=8A=A1=E3=80=81=E5=8E=8B=E5=88=B6=E4=B8=9A?= =?UTF-8?q?=E5=8A=A1=E3=80=81=E5=88=86=E6=8B=A3=E4=B8=9A=E5=8A=A1=E3=80=81?= =?UTF-8?q?=E7=83=A7=E5=88=B6=E5=92=8C=E5=8F=A0=E6=89=98=E5=BA=93=E4=B8=9A?= =?UTF-8?q?=E5=8A=A1=E5=9F=BA=E7=A1=80=E7=89=88=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lms/nladmin-system/doc/wms.xls | Bin 325632 -> 326656 bytes .../nl/common/enums/wms/PointStatusEnum.java | 19 - .../common/exception/BadRequestException.java | 14 +- .../handler/GlobalExceptionHandler.java | 26 +- .../nl/config/lucene/LogMessageConstant.java | 2 +- .../system/service/user/ISysUserService.java | 7 + .../user/dao/mapper/SysUserMapper.java | 3 + .../service/user/dao/mapper/SysUserMapper.xml | 7 + .../user/impl/ISysUserServiceImpl.java | 6 + .../material/service/dao/MdBaseMaterial.java | 2 + .../acs/service/impl/AcsToWmsServiceImpl.java | 17 +- .../acs/service/impl/WmsToAcsServiceImpl.java | 2 +- .../wms/ext/mes/autotask/AutoSaveGdyInfo.java | 2 +- .../mes/autotask/AutoSaveProductionInfo.java | 2 +- .../autotask/AutoSaveShelfInformation.java | 2 +- .../ext/mes/autotask/AutoSaveWaitGdyInfo.java | 2 +- .../mes/service/impl/WmsToMesServiceImpl.java | 4 +- .../wms/pda/service/impl/PdaServiceImpl.java | 2 +- .../controller/PdmBdWorkorderController.java | 18 +- .../service/IPdmBdWorkorderService.java | 3 + .../workorder/service/dao/PdmBdWorkorder.java | 16 + .../workorder/service/dao/vo/InspectorVo.java | 14 + .../impl/PdmBdWorkorderServiceImpl.java | 17 +- .../sch/task/service/ISchBaseTaskService.java | 14 + .../service/impl/SchBaseTaskServiceImpl.java | 22 + .../nl/wms/sch/task_manage/AbstractTask.java | 13 + .../constant/ExceptionConstant.java | 102 +++ .../{ => constant}/GeneralDefinition.java | 19 +- .../task_manage/constant/RequestConstant.java | 29 + .../nl/wms/sch/task_manage/task/AcsUtil.java | 2 +- .../task/tasks/auto/RYKQLTask.java | 2 +- .../dtk/{CTQKTask.java => DTKQKTask.java} | 12 +- .../task_manage/task/tasks/dtk/DTSKTask.java | 2 +- .../task/tasks/dtk/mapper/DTKMapper.xml | 9 +- .../tasks/fj/{FJMKTask.java => FJMLTask.java} | 134 +--- .../task_manage/task/tasks/fj/FJQKTask.java | 11 +- .../task_manage/task/tasks/fj/FJQLTask.java | 18 +- .../task_manage/task/tasks/fj/FJQZRKTask.java | 7 +- .../task_manage/task/tasks/fj/FJSKTask.java | 2 +- .../task_manage/task/tasks/fj/FJSLTask.java | 3 +- .../fj/{FJRKTask.java => RGFJRKTask.java} | 4 +- .../task/tasks/fj/mapper/FJMapper.java | 12 + .../task/tasks/fj/mapper/FJMapper.xml | 15 - .../task_manage/task/tasks/hn/HNMLTask.java | 216 +++--- .../task_manage/task/tasks/hn/HNQKTask.java | 385 ++++++----- .../task/tasks/hn/mapper/HNMapper.java | 11 +- .../task/tasks/hn/mapper/HNMapper.xml | 51 +- .../yao/{CYZCTask.java => CYHCXMLTask.java} | 27 +- .../task_manage/task/tasks/yao/GZYQLTask.java | 7 +- .../tasks/yz/{YZSLTask.java => YZMLTask.java} | 58 +- .../task_manage/task/tasks/yz/YZQKTask.java | 7 +- .../task_manage/task/tasks/yz/YZQLTask.java | 444 +++++++----- .../task_manage/task/tasks/yz/YZSKTask.java | 35 +- .../task/tasks/yz/mapper/YZMapper.java | 14 +- .../task/tasks/yz/mapper/YZMapper.xml | 48 +- .../main/java/org/nl/wms/util/MesUtils.java | 2 +- .../main/java/org/nl/wms/util/PointUtils.java | 3 +- .../main/java/org/nl/wms/util/TaskUtils.java | 2 +- .../main/resources/config/application-dev.yml | 14 +- .../src/main/resources/config/application.yml | 6 +- .../src/main/resources/stopword.dic | 16 - .../src/test/java/org/nl/ApplicationTest.java | 3 +- .../src/test/java/org/nl/ext/TestDemo.java | 17 + .../test/java/org/nl/point/PointCreate.java | 632 ++++++++++++------ .../src/test/java/org/nl/point/test.java | 155 ----- lms/nladmin-ui/README.md | 2 +- lms/nladmin-ui/public/config.js | 4 +- .../src/views/wms/pdm/workerorder/index.vue | 236 ++++--- .../wms/pdm/workerorder/pdmBdWorkorder.js | 8 +- 69 files changed, 1611 insertions(+), 1411 deletions(-) delete mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/common/enums/wms/PointStatusEnum.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/vo/InspectorVo.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/constant/ExceptionConstant.java rename lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/{ => constant}/GeneralDefinition.java (89%) create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/constant/RequestConstant.java rename lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/{CTQKTask.java => DTKQKTask.java} (93%) rename lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/{FJMKTask.java => FJMLTask.java} (68%) rename lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/{FJRKTask.java => RGFJRKTask.java} (99%) rename lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yao/{CYZCTask.java => CYHCXMLTask.java} (94%) rename lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/{YZSLTask.java => YZMLTask.java} (87%) delete mode 100644 lms/nladmin-system/nlsso-server/src/test/java/org/nl/point/test.java diff --git a/lms/nladmin-system/doc/wms.xls b/lms/nladmin-system/doc/wms.xls index 38c5808bbce2938acc1e434262add8962be825d9..8a216e0a9de34bc80993ce0a686afa6c28d04847 100644 GIT binary patch delta 17667 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

qmVg2pAD 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 0) { + StackTraceElement topStackTraceElement = stackTraceElements[0]; + String className = topStackTraceElement.getClassName(); + int lineNumber = topStackTraceElement.getLineNumber(); + + // 在这里记录抛出异常的类名和行号 + log.error("{},抛出异常的类:" + className + " 的第 " + lineNumber + " 行", msg); + } else { + log.error("{},无法获取详细信息", msg); + } } public BadRequestException(HttpStatus status,String msg){ diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/common/exception/handler/GlobalExceptionHandler.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/common/exception/handler/GlobalExceptionHandler.java index 9760c7b..7036dfd 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/common/exception/handler/GlobalExceptionHandler.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/common/exception/handler/GlobalExceptionHandler.java @@ -39,11 +39,29 @@ import static org.springframework.http.HttpStatus.NOT_FOUND; @RestControllerAdvice public class GlobalExceptionHandler { + /** + * 自定义空指针获取异常 + * @param ex + * @return + */ @ExceptionHandler(NullPointerException.class) - public ResponseEntity handleNullPointerException(NullPointerException ex) { - // 在这里处理空指针异常 - log.error(ThrowableUtil.getStackTrace(ex)); - return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("空指针异常发生了"); + public ResponseEntity handleNullPointerException(NullPointerException ex) { + // 获取堆栈跟踪元素 + StackTraceElement[] stackTraceElements = ex.getStackTrace(); + String bodyRes; + if (stackTraceElements.length > 0) { + StackTraceElement topStackTraceElement = stackTraceElements[0]; + String className = topStackTraceElement.getClassName(); + int lineNumber = topStackTraceElement.getLineNumber(); + // 在这里处理空指针异常,同时获取类名和行号 + bodyRes = "空指针异常发生在类:" + className + " 的第 " + lineNumber + " 行"; + log.error(bodyRes); + } else { + bodyRes = "空指针异常发生,但无法获取详细信息"; + log.error(bodyRes); + } + + return buildResponseEntity(ApiError.error(cn.hutool.http.HttpStatus.HTTP_BAD_REQUEST, bodyRes)); } /** diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LogMessageConstant.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LogMessageConstant.java index 14ddcca..c2fc8e5 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LogMessageConstant.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LogMessageConstant.java @@ -41,6 +41,6 @@ public class LogMessageConstant { /** 背景颜色:黄色 */ public final static String BACKGROUND_YELLOW = "\u001B[43m"; /** 索引路径 */ - public final static String INDEX_DIR = "E:\\lucene\\index"; + public final static String INDEX_DIR = "D:\\lucene\\index"; } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/user/ISysUserService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/user/ISysUserService.java index 26ebead..36e929a 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/user/ISysUserService.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/user/ISysUserService.java @@ -6,6 +6,7 @@ import org.nl.system.service.user.dao.SysUser; import org.nl.system.service.user.dto.SysUserDetail; import org.nl.system.service.user.dto.UserDataPermissionDto; import org.nl.system.service.user.dto.UserQuery; +import org.nl.wms.pdm.workorder.service.dao.vo.InspectorVo; import org.springframework.web.multipart.MultipartFile; import java.util.List; @@ -37,4 +38,10 @@ public interface ISysUserService extends IService { void insertDataPermission(UserDataPermissionDto userDataPermissionDto); List getUserIdByDeptId(String deptId); + + /** + * 获取所有用户的id和name + * @return + */ + List getAllUserIdAndName(); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/user/dao/mapper/SysUserMapper.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/user/dao/mapper/SysUserMapper.java index 032de9e..ce489e5 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/user/dao/mapper/SysUserMapper.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/user/dao/mapper/SysUserMapper.java @@ -8,6 +8,7 @@ import org.nl.system.service.user.dao.SysUser; import org.nl.system.service.user.dto.SysUserDetail; import org.nl.system.service.user.dto.UserDataPermissionDto; import org.nl.system.service.user.dto.UserQuery; +import org.nl.wms.pdm.workorder.service.dao.vo.InspectorVo; import java.util.List; import java.util.Map; @@ -35,4 +36,6 @@ public interface SysUserMapper extends BaseMapper { void insertDataPermission(@Param("dataPermission") UserDataPermissionDto dataPermission); List getUserIdByDeptId(String deptId); + + List getAllUserIdAndName(); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/user/dao/mapper/SysUserMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/user/dao/mapper/SysUserMapper.xml index 719c300..c270da0 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/user/dao/mapper/SysUserMapper.xml +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/user/dao/mapper/SysUserMapper.xml @@ -140,4 +140,11 @@ + diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/user/impl/ISysUserServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/user/impl/ISysUserServiceImpl.java index 35bf732..4af5da8 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/user/impl/ISysUserServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/user/impl/ISysUserServiceImpl.java @@ -21,6 +21,7 @@ import org.nl.system.service.user.dto.SysUserDetail; import org.nl.system.service.user.dto.UserDataPermissionDto; import org.nl.system.service.user.dto.UserQuery; import org.apache.commons.beanutils.BeanUtils; +import org.nl.wms.pdm.workorder.service.dao.vo.InspectorVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -156,4 +157,9 @@ public class ISysUserServiceImpl extends ServiceImpl imp public List getUserIdByDeptId(String deptId) { return sysUserMapper.getUserIdByDeptId(deptId); } + + @Override + public List getAllUserIdAndName() { + return sysUserMapper.getAllUserIdAndName(); + } } 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 d093aec..f48123a 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 @@ -62,6 +62,8 @@ public class MdBaseMaterial implements Serializable { @ApiModelProperty(value = "是否删除") private Boolean is_delete; + @ApiModelProperty(value = "是否特殊物料-直接上料") + private Boolean is_special; @ApiModelProperty(value = "创建人") private String create_id; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index f2cb1d2..3dd5489 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -44,7 +44,9 @@ import org.nl.wms.sch.point.service.dao.SchBasePoint; 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.constant.GeneralDefinition; +import org.nl.wms.sch.task_manage.constant.ExceptionConstant; +import org.nl.wms.sch.task_manage.constant.RequestConstant; import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum; import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum; import org.nl.wms.sch.task_manage.enums.PointStatusEnum; @@ -132,14 +134,15 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { @Override public BaseResponse acsApply(JSONObject param) { - String requestNo = param.getString("requestNo"); - String requestMethodName = param.getString("request_medthod_name"); + String requestNo = param.getString(RequestConstant.REQUEST_NO); + String requestMethodName = param.getString(RequestConstant.REQUEST_METHOD_NAME); BaseResponse result = BaseResponse.build(requestNo); try { - String requestMethodCode = param.getString("request_medthod_code"); // 获取请求方法名 + // 获取请求方法名 + String requestMethodCode = param.getString(RequestConstant.REQUEST_METHOD_CODE); Method method = methodCache.get(StrUtil.toCamelCase(requestMethodCode)); if (method == null) { - throw new BadRequestException("请求方法不存在"); + throw new BadRequestException(ExceptionConstant.METHOD_NOT_FOUND); } result = (BaseResponse) method.invoke(this, param); } catch (Exception e) { @@ -212,9 +215,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { if (tryLock) { SchBasePoint basePoint = pointService.getById(deviceCode); if (ObjectUtil.isEmpty(basePoint)) { - throw new BadRequestException("点位错误!"); + throw new BadRequestException(ExceptionConstant.REQUEST_DEVICE_ERROR); } - String configCode = basePoint.getRegion_code() + "QKTask"; + String configCode = basePoint.getRegion_code() + RequestConstant.CALL_VEHICLE_SUFFIX; // 组织参数 param.put("config_code", configCode); taskService.apply(param); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java index d2f529b..1fd58c9 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java @@ -11,7 +11,7 @@ import org.nl.wms.ext.acs.service.dto.to.wms.AcsResponse; import org.nl.wms.ext.record.service.ISysInteractRecordService; import org.nl.wms.pdm.workorder.service.dao.vo.AcsWorkOrderVo; import org.nl.wms.sch.task_manage.AcsTaskDto; -import org.nl.wms.sch.task_manage.GeneralDefinition; +import org.nl.wms.sch.task_manage.constant.GeneralDefinition; import org.nl.wms.sch.task_manage.task.AcsUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/autotask/AutoSaveGdyInfo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/autotask/AutoSaveGdyInfo.java index f1cb4f3..be1d1cf 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/autotask/AutoSaveGdyInfo.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/autotask/AutoSaveGdyInfo.java @@ -8,7 +8,7 @@ import org.nl.system.service.notice.ISysNoticeService; import org.nl.wms.ext.mes.service.WmsToMesService; import org.nl.wms.ext.mes.service.dao.mapper.MesRequestMapper; import org.nl.wms.ext.mes.service.dto.MesGdyInfoDto; -import org.nl.wms.sch.task_manage.GeneralDefinition; +import org.nl.wms.sch.task_manage.constant.GeneralDefinition; import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.annotation.Order; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/autotask/AutoSaveProductionInfo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/autotask/AutoSaveProductionInfo.java index 387a2fd..9373a88 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/autotask/AutoSaveProductionInfo.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/autotask/AutoSaveProductionInfo.java @@ -7,7 +7,7 @@ import lombok.extern.slf4j.Slf4j; import org.nl.system.service.notice.ISysNoticeService; import org.nl.wms.ext.mes.service.WmsToMesService; import org.nl.wms.ext.mes.service.dto.MesSemiProductionInfo; -import org.nl.wms.sch.task_manage.GeneralDefinition; +import org.nl.wms.sch.task_manage.constant.GeneralDefinition; import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.annotation.Order; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/autotask/AutoSaveShelfInformation.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/autotask/AutoSaveShelfInformation.java index 52a2418..6b9e87e 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/autotask/AutoSaveShelfInformation.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/autotask/AutoSaveShelfInformation.java @@ -7,7 +7,7 @@ import lombok.extern.slf4j.Slf4j; import org.nl.system.service.notice.ISysNoticeService; import org.nl.wms.ext.mes.service.WmsToMesService; import org.nl.wms.ext.mes.service.dto.MesShelfInfo; -import org.nl.wms.sch.task_manage.GeneralDefinition; +import org.nl.wms.sch.task_manage.constant.GeneralDefinition; import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.annotation.Order; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/autotask/AutoSaveWaitGdyInfo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/autotask/AutoSaveWaitGdyInfo.java index 871fc8a..4ee90ac 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/autotask/AutoSaveWaitGdyInfo.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/autotask/AutoSaveWaitGdyInfo.java @@ -8,7 +8,7 @@ import org.nl.system.service.notice.ISysNoticeService; import org.nl.wms.ext.mes.service.WmsToMesService; import org.nl.wms.ext.mes.service.dao.mapper.MesRequestMapper; import org.nl.wms.ext.mes.service.dto.MesGdyInfoWaitDto; -import org.nl.wms.sch.task_manage.GeneralDefinition; +import org.nl.wms.sch.task_manage.constant.GeneralDefinition; import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.annotation.Order; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/impl/WmsToMesServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/impl/WmsToMesServiceImpl.java index 1d28e66..a454b13 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/impl/WmsToMesServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/impl/WmsToMesServiceImpl.java @@ -5,8 +5,6 @@ import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; import lombok.extern.slf4j.Slf4j; import org.nl.common.exception.BadRequestException; import org.nl.system.service.notice.ISysNoticeService; @@ -22,7 +20,7 @@ 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; import org.nl.wms.sch.point.service.dao.SchBasePoint; -import org.nl.wms.sch.task_manage.GeneralDefinition; +import org.nl.wms.sch.task_manage.constant.GeneralDefinition; import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum; import org.nl.wms.sch.task_manage.enums.WorkOrderStatusEnum; import org.springframework.beans.factory.annotation.Autowired; 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 index 4b27f07..68a6aa0 100644 --- 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 @@ -26,7 +26,7 @@ import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; 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; -import org.nl.wms.sch.task_manage.GeneralDefinition; +import org.nl.wms.sch.task_manage.constant.GeneralDefinition; import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum; import org.nl.wms.sch.task_manage.enums.GroupStatusEnum; import org.nl.wms.sch.task_manage.enums.PointStatusEnum; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/controller/PdmBdWorkorderController.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/controller/PdmBdWorkorderController.java index 27e4f33..d90c2e1 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/controller/PdmBdWorkorderController.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/controller/PdmBdWorkorderController.java @@ -46,12 +46,12 @@ public class PdmBdWorkorderController { public ResponseEntity query(PdmBdWorkorderQuery query, PageQuery page){ return new ResponseEntity<>(TableDataInfo.build(pdmBdWorkorderService.queryAll(query,page)),HttpStatus.OK); } - @GetMapping("/mesOrder") - @Log("查询订单管理") - @ApiOperation("查询订单管理") - public ResponseEntity queryMesOrder(PdmBdWorkorderQuery query, PageQuery page){ - return new ResponseEntity<>(TableDataInfo.build(pdmBdWorkorderService.queryMesOrder(query,page)),HttpStatus.OK); - } +// @GetMapping("/mesOrder") +// @Log("查询订单管理") +// @ApiOperation("查询订单管理") +// public ResponseEntity queryMesOrder(PdmBdWorkorderQuery query, PageQuery page){ +// return new ResponseEntity<>(TableDataInfo.build(pdmBdWorkorderService.queryMesOrder(query,page)),HttpStatus.OK); +// } @PostMapping("/getCuster") @Log("获取客户信息") @ApiOperation("获取客户信息") @@ -112,4 +112,10 @@ public class PdmBdWorkorderController { wmsToMesService.synchronizeWorkOrderInfo(); return new ResponseEntity<>(HttpStatus.OK); } + @PostMapping("/userList") + @Log("获取用户列表") + @ApiOperation("获取用户列表") + public ResponseEntity getUserList() { + return new ResponseEntity<>(pdmBdWorkorderService.getUserList(), HttpStatus.OK); + } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/IPdmBdWorkorderService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/IPdmBdWorkorderService.java index 7ba5997..e1f3d41 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/IPdmBdWorkorderService.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/IPdmBdWorkorderService.java @@ -6,6 +6,7 @@ import org.nl.common.domain.query.PageQuery; import org.nl.wms.ext.mes.service.dto.MesOrderInfo; import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder; import org.nl.wms.pdm.workorder.service.dao.vo.AcsWorkOrderVo; +import org.nl.wms.pdm.workorder.service.dao.vo.InspectorVo; import org.nl.wms.pdm.workorder.service.dto.PdmBdWorkorderQuery; import java.util.List; @@ -106,4 +107,6 @@ public interface IPdmBdWorkorderService extends IService { * @return */ List getAcsWorkOrderVos(String s); + + List getUserList(); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/PdmBdWorkorder.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/PdmBdWorkorder.java index 16d2a6e..5c9f231 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/PdmBdWorkorder.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/PdmBdWorkorder.java @@ -36,6 +36,18 @@ public class PdmBdWorkorder implements Serializable { @ApiModelProperty(value = "实际数量") private BigDecimal real_qty; + @ApiModelProperty(value = "计划重量") + private BigDecimal plan_weight; + + @ApiModelProperty(value = "实际重量") + private BigDecimal real_weight; + @ApiModelProperty(value = "实际新料重量") + private BigDecimal real_new_weight; + @ApiModelProperty(value = "实际旧料重量") + private BigDecimal real_old_weight; + @ApiModelProperty(value = "比例") + private Integer material_ratio; + @ApiModelProperty(value = "物料标识") private String material_id; @@ -107,6 +119,8 @@ public class PdmBdWorkorder implements Serializable { @ApiModelProperty(value = "是否删除") private Boolean is_delete; + @ApiModelProperty(value = "是否新料") + private Boolean is_new; @ApiModelProperty(value = "创建人") private String create_id; @@ -130,6 +144,8 @@ public class PdmBdWorkorder implements Serializable { private Boolean is_urgent; @ApiModelProperty(value = "开工人") private String operator; + @ApiModelProperty(value = "检验员") + private String inspector; @ApiModelProperty(value = "合格数") private Integer qualified_qty; @ApiModelProperty(value = "不合格数") diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/vo/InspectorVo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/vo/InspectorVo.java new file mode 100644 index 0000000..649a303 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/vo/InspectorVo.java @@ -0,0 +1,14 @@ +package org.nl.wms.pdm.workorder.service.dao.vo; + +import lombok.Data; + +/** + * @Author: lyd + * @Description: 检验员 + * @Date: 2023/11/1 + */ +@Data +public class InspectorVo { + private String id; + private String name; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/impl/PdmBdWorkorderServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/impl/PdmBdWorkorderServiceImpl.java index c4baed8..fb71684 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/impl/PdmBdWorkorderServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/impl/PdmBdWorkorderServiceImpl.java @@ -16,6 +16,7 @@ import org.nl.common.exception.BadRequestException; import org.nl.common.utils.CodeUtil; import org.nl.common.utils.SecurityUtils; import org.nl.system.service.notice.ISysNoticeService; +import org.nl.system.service.user.ISysUserService; import org.nl.wms.database.material.service.IMdBaseMaterialService; import org.nl.wms.database.material.service.dao.MdBaseMaterial; import org.nl.wms.ext.acs.service.WmsToAcsService; @@ -26,11 +27,12 @@ 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.dao.vo.AcsWorkOrderVo; +import org.nl.wms.pdm.workorder.service.dao.vo.InspectorVo; import org.nl.wms.pdm.workorder.service.dto.PdmBdWorkorderQuery; 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; -import org.nl.wms.sch.task_manage.GeneralDefinition; +import org.nl.wms.sch.task_manage.constant.GeneralDefinition; import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum; import org.nl.wms.sch.task_manage.enums.WorkOrderStatusEnum; import org.nl.wms.util.TaskUtils; @@ -65,6 +67,8 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl queryAll(PdmBdWorkorderQuery query, PageQuery page) { @@ -89,9 +93,9 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl getAcsWorkOrderVos(String s) { return pdmBdWorkorderMapper.getAcsWorkOrderVos(s); } + + @Override + public List getUserList() { + return userService.getAllUserIdAndName(); + } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/ISchBaseTaskService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/ISchBaseTaskService.java index 74daf38..f271751 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/ISchBaseTaskService.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/ISchBaseTaskService.java @@ -81,6 +81,20 @@ public interface ISchBaseTaskService extends IService { List findTasksByTaskStatus(String config_code, TaskStatus status); + /** + * 判断当前点位作为起点并且未完成的任务 + * @param device + * @return true: 有任务,false: 无任务 + */ + Boolean checkCurrentPointUnFinishTaskByStart(String device); + + /** + * 判断当前点位作为终点并且未完成的任务 + * @param device + * @return true: 有任务,false: 无任务 + */ + Boolean checkCurrentPointUnFinishTaskByEnd(String device); + /** * 任务申请 * @see BaseRequest diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/impl/SchBaseTaskServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/impl/SchBaseTaskServiceImpl.java index b11ed3c..e87b3e2 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/impl/SchBaseTaskServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/impl/SchBaseTaskServiceImpl.java @@ -156,6 +156,28 @@ public class SchBaseTaskServiceImpl extends ServiceImpl lam = new LambdaQueryWrapper<>(); + lam.eq(SchBaseTask::getPoint_code1, device) + .ne(SchBaseTask::getTask_status, TaskStatus.FINISHED) + .ne(SchBaseTask::getTask_status, TaskStatus.CANCELED) + .ne(SchBaseTask::getIs_delete, true); + List schBaseTasks = schBaseTaskMapper.selectList(lam); + return schBaseTasks.size() > 0; + } + + @Override + public Boolean checkCurrentPointUnFinishTaskByEnd(String device) { + LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); + lam.eq(SchBaseTask::getPoint_code2, device) + .ne(SchBaseTask::getTask_status, TaskStatus.FINISHED.getCode()) + .ne(SchBaseTask::getTask_status, TaskStatus.CANCELED.getCode()) + .ne(SchBaseTask::getIs_delete, true); + List schBaseTasks = schBaseTaskMapper.selectList(lam); + return schBaseTasks.size() > 0; + } + @Override public void create(SchBaseTask entity) { String currentUserId = SecurityUtils.getCurrentUserId(); 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 c35d9b6..d5107ad 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 @@ -21,6 +21,7 @@ import org.nl.wms.sch.task.service.ISchBaseTaskService; import org.nl.wms.sch.task.service.ISchBaseTaskconfigService; import org.nl.wms.sch.task.service.dao.SchBaseTask; import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig; +import org.nl.wms.sch.task_manage.constant.GeneralDefinition; import org.nl.wms.sch.task_manage.enums.TaskDirectionEnum; import org.nl.wms.sch.task_manage.enums.WorkOrderStatusEnum; import org.nl.wms.sch.task_manage.task.core.TaskStatus; @@ -281,6 +282,18 @@ public abstract class AbstractTask { // 如果不需要自动,则不创建任务 return; } + // 判断是否此点位作为起点而锁定 + if (taskConfig.getIs_check_start_lock()) { + if (taskService.checkCurrentPointUnFinishTaskByStart(apply_point_code)) { + return; + } + } + // 判断是否此点位作为终点而锁定 + if (taskConfig.getIs_check_next_lock()) { + if (taskService.checkCurrentPointUnFinishTaskByEnd(apply_point_code)) { + return; + } + } // 2、创建申请任务 task.setAcs_trace_id(requestNo); task.setTask_id(IdUtil.getSnowflake(1,1).nextIdStr()); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/constant/ExceptionConstant.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/constant/ExceptionConstant.java new file mode 100644 index 0000000..779b4dd --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/constant/ExceptionConstant.java @@ -0,0 +1,102 @@ +package org.nl.wms.sch.task_manage.constant; + +/** + * @Author: lyd + * @Description: 日志/异常提示常量 + * @Date: 2023/10/31 + */ +public class ExceptionConstant { + /** + * 请求方法不存在 + */ + public final static String METHOD_NOT_FOUND = "请求方法不存在"; + /** + * ACS请求任务的时候传来的设备号不准确 + */ + public final static String REQUEST_DEVICE_ERROR = "请求的点位错误"; + /** + * 创建任务的时候统一设备在备注的信息 + */ + public final static String NEED_POINT_NOT_FOUND = "未找到所需点位"; + /** + * 更新任务的时候统一设备在备注的信息 + */ + public final static String THE_TASK_HAS_BEEN_COMPLETED = "该任务已完成"; + /** + * 更新任务的时候统一设备在备注的信息 + */ + public final static String THE_TASK_HAS_BEEN_CANCELLED = "该任务已取消"; + /** + * 找不到组盘信息 + */ + public final static String GROUP_INFORMATION_NOT_FOUND = "找不到组盘信息"; + /** + * 不需要LMS生成任务 + * 特殊物料,布料机不能主动申请 + */ + public final static String NO_LMS_GENERATION_TASK_REQUIRED = "不需要LMS生成任务"; + + /** + * 获取行号 + * @return + */ + public static int getLineNumber() { + StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace(); + // 栈轨迹中的第一个元素通常是getStackTrace方法自身,第二个元素是调用getLineNumber方法的方法,因此要选择第三个元素。 + if (stackTrace.length >= 3) { + return stackTrace[2].getLineNumber(); + } else { + return -1; // 无法确定行号 + } + } + + /** + * 获取当前类 + * @return + */ + public static Class getCurrentClass() { + StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace(); + // 栈轨迹中的第一个元素通常是getStackTrace方法自身,第二个元素是调用getCurrentClass方法的方法,因此要选择第三个元素。 + if (stackTrace.length >= 3) { + String className = stackTrace[2].getClassName(); + try { + return Class.forName(className); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } + } + return null; // 无法确定当前类 + } + + /** + * 类和行号、信息 + * @param clz + * @param line + * @param message + * @return + */ + public static String exceptionMessage(Class clz, int line, String message) { + return clz + "第【" + line + "】行出现异常,自定义信息: " + message; + } + + /** + * 手动抛出异常的时候可以调用此方法,能够使得获取者得知处于哪个类哪行出现什么异常 + * eg: throw new BadRequestException(ExceptionConstant.exceptionBasRequest("手写信息")); + * @param msg + * @return + */ + public static String exceptionBasRequest(String msg) { + // 获取堆栈跟踪元素 + StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace(); + + if (stackTraceElements.length > 2) { // Index 0 is the current method, Index 1 is Thread.getStackTrace, Index 2 is the caller + StackTraceElement callerStackTraceElement = stackTraceElements[2]; + String className = callerStackTraceElement.getClassName(); + int lineNumber = callerStackTraceElement.getLineNumber(); + + return "异常信息:" + msg + ",出现于:" + className + " 的第 " + lineNumber + " 行"; + } else { + return "异常信息:" + msg + ",无法获取详细信息"; + } + } +} 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/constant/GeneralDefinition.java similarity index 89% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/GeneralDefinition.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/constant/GeneralDefinition.java index 5c72138..7c3d319 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/constant/GeneralDefinition.java @@ -1,4 +1,4 @@ -package org.nl.wms.sch.task_manage; +package org.nl.wms.sch.task_manage.constant; /** * @Author: lyd @@ -11,16 +11,19 @@ public class GeneralDefinition { // 统一编码定义 /** 窑自动任务开启 */ public static final String AUTO_KILN_CALL = "auto_kiln_call"; + // 是否 /**是/正确/可用... */ public static final String YES = "1"; /** 否/错误/不可用... */ public static final String NO = "0"; + // 载具类型 /** 料盅 */ public static final String MATERIAL_CUP = "LZ"; /** 钢托盘 */ public static final String STEEL_TRAY = "GTP"; + // 账号定义 /** acs系统 */ public static final String ACS_ID = "2"; @@ -30,21 +33,25 @@ public class GeneralDefinition { public static final String MES_ID = "3"; /** mes系统 */ public static final String MES_NAME = "MES系统"; + // 点位类型 /** 设备位 */ public static final String DEVICE_POINT = "1"; /** 对接位 */ public static final String DOCKING_POINT = "2"; + // 出入口 /**入口**/ public static final String ENTRANCE = "1"; /**出口**/ public static final String EXIT = "2"; + // 任务生产方式 /**自动创建**/ public static final String AUTO_CREATION = "1"; /**ACS创建**/ public static final String ACS_CREATION = "2"; + // 请求方向 /**ACS->LMS**/ public static final String ACS_LMS = "1"; @@ -54,16 +61,25 @@ public class GeneralDefinition { public static final String MES_LMS = "3"; /**LMS->MES**/ public static final String LMS_MES = "4"; + // 区域定义 /** 料盅睏料线区域 */ public static final String LZKLX = "LZKLX"; /** 干燥窑区域 */ public static final String GZY = "GZY"; + /** 紧急缓存区 */ + public static final String EMERGENCY_CACHE_AREA = "JJHCW"; + // 特殊: 1-缓存输送线入口,2-缓存输送线出口,3-上输送线,4-下输送线 /** 上输送线 */ public static final String UPPER_CONVEYOR_LINE = "3"; /** 下输送线 */ public static final String LOWER_CONVEYOR_LINE = "4"; + /** 布料机-新料位 */ + public static final String SPREADER_NEW_MATERIAL = "3"; + /** 布料机-旧料位 */ + public static final String SPREADER_OLD_MATERIAL = "4"; + // 参数名称 /** 是否连接 */ public static final String IS_CONNECT_ACS = "is_connect_acs"; @@ -73,6 +89,7 @@ public class GeneralDefinition { public static final String IS_CONNECT_MES = "is_connect_mes"; /** MES路径 */ public static final String MES_URL = "mes_url"; + // 完成/取消 /** 任务完成 */ public static final String TASK_FINISH = "任务完成"; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/constant/RequestConstant.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/constant/RequestConstant.java new file mode 100644 index 0000000..aac2f79 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/constant/RequestConstant.java @@ -0,0 +1,29 @@ +package org.nl.wms.sch.task_manage.constant; + +/** + * @Author: lyd + * @Description: 请求时的常量值 + * @Date: 2023/11/1 + */ +public class RequestConstant { + /** + * 请求标识:requestNo. + * ACS传过来的值 + */ + public final static String REQUEST_NO = "requestNo"; + /** + * 请求方法名:request_method_name. + * ACS传过来的值 + */ + public final static String REQUEST_METHOD_NAME = "request_method_name"; + /** + * 请求方法编码:request_method_code. + * ACS传过来的值 + */ + public final static String REQUEST_METHOD_CODE = "request_method_code"; + /** + * 任务后缀:QKTask. + * ACS传过来的值 + */ + public final static String CALL_VEHICLE_SUFFIX = "QKTask"; +} 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 8d79b4c..ad41e45 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 @@ -11,7 +11,7 @@ import org.nl.system.service.param.dao.Param; import org.nl.system.service.param.impl.SysParamServiceImpl; import org.nl.wms.ext.acs.service.dto.ResultForAcs; import org.nl.wms.ext.acs.service.dto.to.wms.AcsResponse; -import org.nl.wms.sch.task_manage.GeneralDefinition; +import org.nl.wms.sch.task_manage.constant.GeneralDefinition; import java.util.List; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/auto/RYKQLTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/auto/RYKQLTask.java index 569df17..d0f7550 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/auto/RYKQLTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/auto/RYKQLTask.java @@ -15,7 +15,7 @@ //import org.nl.wms.sch.task.service.dao.SchBaseTask; //import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig; //import org.nl.wms.sch.task_manage.AbstractTask; -//import org.nl.wms.sch.task_manage.GeneralDefinition; +//import org.nl.wms.sch.task_manage.constant.GeneralDefinition; //import org.nl.wms.sch.task_manage.enums.PointStatusEnum; //import org.nl.wms.sch.task_manage.task.TaskType; //import org.nl.wms.sch.task_manage.task.core.TaskStatus; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/CTQKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/DTKQKTask.java similarity index 93% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/CTQKTask.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/DTKQKTask.java index 809fab5..f2b337d 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/CTQKTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/DTKQKTask.java @@ -2,7 +2,6 @@ package org.nl.wms.sch.task_manage.task.tasks.dtk; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; -import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.nl.common.exception.BadRequestException; import org.nl.system.service.notice.ISysNoticeService; @@ -13,7 +12,7 @@ import org.nl.wms.sch.task.service.ISchBaseTaskconfigService; import org.nl.wms.sch.task.service.dao.SchBaseTask; import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig; import org.nl.wms.sch.task_manage.AbstractTask; -import org.nl.wms.sch.task_manage.GeneralDefinition; +import org.nl.wms.sch.task_manage.constant.GeneralDefinition; import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum; import org.nl.wms.sch.task_manage.enums.PointStatusEnum; import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum; @@ -37,7 +36,7 @@ import java.util.stream.Collectors; */ @Component @TaskType("DTKQKTask") -public class CTQKTask extends AbstractTask { +public class DTKQKTask extends AbstractTask { private static String TASK_CONFIG_CODE = "DTKQKTask"; @Autowired private ISchBasePointService pointService; @@ -171,17 +170,10 @@ public class CTQKTask extends AbstractTask { public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { // 获取参数 SchBasePoint startPointObj = pointService.getById(taskObj.getPoint_code1()); - SchBasePoint endPointObj = pointService.getById(taskObj.getPoint_code2()); // 起点清空 if (ObjectUtil.isNotEmpty(startPointObj)) { PointUtils.setUpdateByType(startPointObj, taskFinishedType); PointUtils.clearPoint(startPointObj); - endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode()); - endPointObj.setVehicle_type(GeneralDefinition.STEEL_TRAY); - endPointObj.setVehicle_qty(taskObj.getVehicle_qty()); - endPointObj.setUpdate_time(DateUtil.now()); - PointUtils.setUpdateByType(endPointObj, taskFinishedType); - pointService.updateById(endPointObj); } // 任务完成 taskObj.setTask_status(TaskStatus.FINISHED.getCode()); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/DTSKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/DTSKTask.java index cac94d3..12e6810 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/DTSKTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/DTSKTask.java @@ -11,7 +11,7 @@ import org.nl.wms.sch.task.service.ISchBaseTaskconfigService; import org.nl.wms.sch.task.service.dao.SchBaseTask; import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig; import org.nl.wms.sch.task_manage.AbstractTask; -import org.nl.wms.sch.task_manage.GeneralDefinition; +import org.nl.wms.sch.task_manage.constant.GeneralDefinition; import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum; import org.nl.wms.sch.task_manage.enums.PointStatusEnum; import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/mapper/DTKMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/mapper/DTKMapper.xml index 6c68cdf..def632e 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/mapper/DTKMapper.xml +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/mapper/DTKMapper.xml @@ -6,9 +6,9 @@ p.* FROM `sch_base_point` p - WHERE p.point_type = '1' - AND (p.ing_task_code = '' OR p.ing_task_code IS NULL) + WHERE (p.ing_task_code = '' OR p.ing_task_code IS NULL) AND p.point_status = '1' + AND p.is_used = 1 AND p.region_code IN #{code} @@ -19,10 +19,7 @@ - - - - - - - - - - - - - - + - diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yao/CYZCTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yao/CYHCXMLTask.java similarity index 94% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yao/CYZCTask.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yao/CYHCXMLTask.java index 87bdd69..c2b957c 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yao/CYZCTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yao/CYHCXMLTask.java @@ -19,7 +19,7 @@ import org.nl.wms.sch.task.service.ISchBaseTaskconfigService; import org.nl.wms.sch.task.service.dao.SchBaseTask; import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig; import org.nl.wms.sch.task_manage.AbstractTask; -import org.nl.wms.sch.task_manage.GeneralDefinition; +import org.nl.wms.sch.task_manage.constant.GeneralDefinition; import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum; import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum; import org.nl.wms.sch.task_manage.enums.PointStatusEnum; @@ -38,14 +38,14 @@ import java.util.stream.Collectors; /** * @Author: lyd - * @Description: 出窑暂存 + * @Description: 出窑暂存满料任务,送料到缓存货架 * @Date: 2023/6/20 */ @Slf4j @Component -@TaskType("GZYMLTask") -public class CYZCTask extends AbstractTask { - private static String TASK_CONFIG_CODE = "GZYMLTask"; +@TaskType("CYHCXMLTask") +public class CYHCXMLTask extends AbstractTask { + private static String TASK_CONFIG_CODE = "CYHCXMLTask"; @Autowired private ISchBasePointService pointService; @Autowired @@ -71,13 +71,14 @@ public class CYZCTask extends AbstractTask { SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper() .eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE)); for (SchBaseTask task : tasks) { - List nextRegionStr = Arrays.stream(taskConfig.getNext_region_str().split(",")).collect(Collectors.toList()); + List nextRegionStr = Arrays.stream(taskConfig.getNext_region_str().split(",")) + .collect(Collectors.toList()); // 找终点 String extGroupData = task.getExt_group_data(); JSONObject jsonObject = JSONObject.parseObject(extGroupData); SchBasePoint point = findNextPoint(nextRegionStr, jsonObject); if (ObjectUtil.isEmpty(point)) { - task.setRemark("未找到钢托盘缓存区域空位!"); + task.setRemark("未找到缓存区域空位!"); taskService.updateById(task); // 消息通知 noticeService.createNotice(task.getRemark(), TASK_CONFIG_CODE + task.getTask_code(), @@ -95,9 +96,6 @@ public class CYZCTask extends AbstractTask { point.setIng_task_code(task.getTask_code()); PointUtils.setUpdateByAcs(point); pointService.updateById(point); - - //下发 - //this.renotifyAcs(task); } } @@ -188,8 +186,6 @@ public class CYZCTask extends AbstractTask { } if (status.equals(TaskStatus.FINISHED)) { // 完成 this.finishTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); - // todo 出窑上报出窑记录 - wmsToMesService.reportGdyMaterialInfoOut(taskObj.getGroup_id()); } if (status.equals(TaskStatus.CANCELED)) { // 取消 this.cancelTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); @@ -225,13 +221,14 @@ public class CYZCTask extends AbstractTask { SchBasePoint endPointObj = pointService.getById(endPoint); // 终点解锁 if (ObjectUtil.isNotEmpty(endPointObj)) { - // 修改组盘信息 - 设置已烧制 + // 修改组盘信息 - 修改位置 + // 获取未烧制的组盘信息 SchBaseVehiclematerialgroup one = vehiclematerialgroupService.getOne(new LambdaQueryWrapper() .eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicle_code) .eq(SchBaseVehiclematerialgroup::getVehicle_type, vehicleType) .eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, GroupBindMaterialStatusEnum.BOUND.getValue()) - .eq(SchBaseVehiclematerialgroup::getIs_firing, false)); + .eq(SchBaseVehiclematerialgroup::getIs_firing, true)); if (ObjectUtil.isEmpty(one)) { throw new BadRequestException(vehicle_code + " => " + vehicleType + "的组盘信息未找到"); } @@ -239,8 +236,6 @@ public class CYZCTask extends AbstractTask { one.setPoint_code(endPointObj.getPoint_code()); // 当前位置 one.setPoint_name(endPointObj.getPoint_name()); one.setMove_way(one.getMove_way() + " -> " + endPointObj.getPoint_code()); - one.setIs_firing(true); - one.setOut_kiln_time(DateUtil.now()); TaskUtils.setGroupUpdateByType(one, taskFinishedType); vehiclematerialgroupService.updateById(one); // 插入生产过程跟踪表 diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yao/GZYQLTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yao/GZYQLTask.java index 4e112b7..4da186f 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yao/GZYQLTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yao/GZYQLTask.java @@ -14,7 +14,7 @@ import org.nl.wms.sch.task.service.ISchBaseTaskconfigService; import org.nl.wms.sch.task.service.dao.SchBaseTask; import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig; import org.nl.wms.sch.task_manage.AbstractTask; -import org.nl.wms.sch.task_manage.GeneralDefinition; +import org.nl.wms.sch.task_manage.constant.GeneralDefinition; import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum; import org.nl.wms.sch.task_manage.enums.PointStatusEnum; import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum; @@ -37,10 +37,11 @@ import java.util.stream.Collectors; * @Date: 2023/7/20 */ @Slf4j +@Deprecated @Component -@TaskType("GZYQLTask") +@TaskType("-") public class GZYQLTask extends AbstractTask { - private static String TASK_CONFIG_CODE = "GZYQLTask"; + private static String TASK_CONFIG_CODE = "-"; @Autowired private ISchBasePointService pointService; @Autowired diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSLTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZMLTask.java similarity index 87% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSLTask.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZMLTask.java index e3866cd..b8b181f 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSLTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZMLTask.java @@ -25,7 +25,7 @@ import org.nl.wms.sch.task.service.ISchBaseTaskconfigService; import org.nl.wms.sch.task.service.dao.SchBaseTask; import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig; import org.nl.wms.sch.task_manage.AbstractTask; -import org.nl.wms.sch.task_manage.GeneralDefinition; +import org.nl.wms.sch.task_manage.constant.GeneralDefinition; import org.nl.wms.sch.task_manage.enums.*; import org.nl.wms.sch.task_manage.task.TaskType; import org.nl.wms.sch.task_manage.task.core.TaskStatus; @@ -39,7 +39,6 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.Arrays; import java.util.List; -import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; /** @@ -50,7 +49,7 @@ import java.util.stream.Collectors; @Slf4j @Component @TaskType("YZMLTask") -public class YZSLTask extends AbstractTask { +public class YZMLTask extends AbstractTask { private static String TASK_CONFIG_CODE = "YZMLTask"; @Autowired private ISchBasePointService pointService; @@ -106,9 +105,6 @@ public class YZSLTask extends AbstractTask { point.setIng_task_code(task.getTask_code()); PointUtils.setUpdateByAcs(point); pointService.updateById(point); - - //下发 - //this.renotifyAcs(task); } } @@ -146,7 +142,7 @@ public class YZSLTask extends AbstractTask { } /** - * 判断是否加急:是->入窑口,否->双层缓存线 + * 判断是否加急:是->加急缓存线,否->窑前缓存线 * * @param nextRegionStr * @param requestParam @@ -164,23 +160,12 @@ public class YZSLTask extends AbstractTask { ? workorderService.getOne(new LambdaQueryWrapper() .eq(PdmBdWorkorder::getWorkorder_code, workorderCode)) : null; - if (one == null) { - throw new BadRequestException("压制机的工单不能为空!"); - } // 判断是否加急,加急则去窑口,不加急就是去双层缓存输送线 + assert one != null; if (one.getIs_urgent()) { - regionCode = nextRegionStr.get(1); // 去窑区 - // 判断窑区是否可用 - SchBasePoint basePoint = pointService.getOne(new LambdaQueryWrapper() - .eq(SchBasePoint::getRegion_code, regionCode) - .eq(SchBasePoint::getPoint_type, GeneralDefinition.ENTRANCE) - .eq(SchBasePoint::getIs_used, true)); - // 如果窑口不能用,还是去双层输送线 - if (ObjectUtil.isEmpty(basePoint)) { - regionCode = nextRegionStr.get(0); - } + regionCode = nextRegionStr.get(1); // 去加急缓存线 } - // 双层缓存货架的一上一下的区分 -> 上五下五区分 + // 缓存线 LambdaQueryWrapper lam = new QueryWrapper().lambda(); lam.eq(SchBasePoint::getRegion_code, regionCode) .eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode()) @@ -188,15 +173,8 @@ public class YZSLTask extends AbstractTask { .and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住 .or() .eq(SchBasePoint::getIng_task_code, "")) - .eq(SchBasePoint::getIs_used, true); - // 如果一个有货一个没货,但是载具数量又是5的时候,就要不需要检测不能为5 - List list = pointService.list(lam); - boolean doDetection = true; // 如果只有一条符合的数据就不需要检验不符合5个托 - if (list.size() == 1) { - doDetection = false; - } - lam.ne(doDetection, SchBasePoint::getVehicle_qty, 5) // 载具数量不能等于5 - .orderByDesc(SchBasePoint::getVehicle_qty); + .eq(SchBasePoint::getIs_used, true) + .orderByDesc(SchBasePoint::getPoint_code); List schBasePoints = pointService.list(lam); return ObjectUtil.isNotEmpty(schBasePoints) ? schBasePoints.get(0) : null; } @@ -217,13 +195,9 @@ public class YZSLTask extends AbstractTask { taskObj.setRemark("执行中"); TaskUtils.setUpdateByAcs(taskObj); taskService.updateById(taskObj); - // todo:暂时现在执行中的时候将满托上给mes - wmsToMesService.reportProductData(taskObj.getGroup_id()); } if (status.equals(TaskStatus.FINISHED)) { // 完成 this.finishTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); - // todo: 完成后上报给MES - wmsToMesService.reportSemiProductionInfoIn(taskObj.getGroup_id()); } if (status.equals(TaskStatus.CANCELED)) { // 取消 this.cancelTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); @@ -252,10 +226,10 @@ public class YZSLTask extends AbstractTask { SchBasePoint basePoint = pointService.getById(deviceCode); PdmBdWorkorder workorderObject = workorderService.getDeviceProductionTask(basePoint.getParent_point_code()); // 找到相同组盘信息就修改,避免任务取消组盘信息还存在,重复插入 + vehiclematerialgroupService.unBindingSameVehicleMaterial(vehicleCode, vehicleType); SchBaseVehiclematerialgroup groupEntity = new SchBaseVehiclematerialgroup(); groupEntity.setGroup_id(IdUtil.getSnowflake(1, 1).nextIdStr()); // 解绑同载具的信息 - vehiclematerialgroupService.unBindingSameVehicleMaterial(vehicleCode, vehicleType); // 要把数据存到组盘表 groupEntity.setMaterial_id(ObjectUtil.isNotEmpty(workorderObject) ? workorderObject.getMaterial_id() @@ -277,10 +251,7 @@ public class YZSLTask extends AbstractTask { 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")); // 批次号使用自己定义的、暂时没用压机工单 - groupEntity.setPcsn(ObjectUtil.isNotEmpty(workorderObject) - ? workorderObject.getBatch_no() - : DateUtil.format(DateUtil.date(), "yyyyMMdd")); + groupEntity.setPcsn(DateUtil.format(DateUtil.date(), "yyyyMMdd")); // 批次号使用自己定义的、暂时没用压机工单 groupEntity.setInstorage_time(DateUtil.now()); groupEntity.setGroup_bind_material_status(GroupBindMaterialStatusEnum.WAIT_BIND.getValue()); // 待绑定 groupEntity.setGroup_status(GroupStatusEnum.IN_STORAGE.getType()); // 暂时不维护。 @@ -316,11 +287,14 @@ public class YZSLTask extends AbstractTask { String endPoint = taskObj.getPoint_code2(); // 获取终点 SchBasePoint endPointObj = pointService.getById(endPoint); if (ObjectUtil.isNotEmpty(endPointObj)) { +// if (endPointObj.getRegion_code().equals(GeneralDefinition.EMERGENCY_CACHE_AREA)) { +// endPointObj.setVehicle_code(taskObj.getVehicle_code()); +// endPointObj.setVehicle_type(taskObj.getVehicle_type()); +// endPointObj.setPoint_status(PointStatusEnum.FULL_POINT.getCode()); +// } // 终点解锁 endPointObj.setIng_task_code(""); - // 终点清空 PointUtils.setUpdateByType(endPointObj, taskFinishedType); - PointUtils.clearPointAndRetainNum(endPointObj); pointService.updateById(endPointObj); // 组盘表数据改成已绑定 SchBaseVehiclematerialgroup vehiclematerialgroup = vehiclematerialgroupService.getById(taskObj.getGroup_id()); @@ -335,7 +309,7 @@ public class YZSLTask extends AbstractTask { // 插入生产过程跟踪表 PdmBdProductionProcessTracking processTracking = new PdmBdProductionProcessTracking(); processTracking.setBuss_move_id(vehiclematerialgroup.getBuss_move_id()); - processTracking.setProcess_action("压制送料入双层缓存线"); + processTracking.setProcess_action("压制送料入窑前缓存线"); processTracking.setProcess_location(endPoint); processTracking.setRecord_time(DateUtil.now()); processTrackingService.create(processTracking); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZQKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZQKTask.java index 8de8440..ee2be04 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZQKTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZQKTask.java @@ -13,7 +13,8 @@ import org.nl.wms.sch.task.service.ISchBaseTaskconfigService; import org.nl.wms.sch.task.service.dao.SchBaseTask; import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig; import org.nl.wms.sch.task_manage.AbstractTask; -import org.nl.wms.sch.task_manage.GeneralDefinition; +import org.nl.wms.sch.task_manage.constant.ExceptionConstant; +import org.nl.wms.sch.task_manage.constant.GeneralDefinition; import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum; import org.nl.wms.sch.task_manage.enums.PointStatusEnum; import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum; @@ -57,6 +58,7 @@ public class YZQKTask extends AbstractTask { TaskUtils.setUpdateByAcs(task); // 修改修改者 List startRegionStr = Arrays.stream(taskConfig.getStart_region_str().split(",")) .collect(Collectors.toList()); + task.setVehicle_type(GeneralDefinition.STEEL_TRAY); // 找起点 String requestParam = task.getRequest_param(); JSONObject jsonObject = JSONObject.parseObject(requestParam); @@ -111,9 +113,6 @@ public class YZQKTask extends AbstractTask { point.setIng_task_code(task.getTask_code()); PointUtils.setUpdateByAcs(point); pointService.updateById(point); - - //下发 - //this.renotifyAcs(task); } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZQLTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZQLTask.java index 9fe11a4..7d03da2 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZQLTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZQLTask.java @@ -1,171 +1,273 @@ -//package org.nl.wms.sch.task_manage.task.tasks.yz; -// -//import cn.hutool.core.lang.Assert; -//import cn.hutool.core.util.ObjectUtil; -//import com.alibaba.fastjson.JSONObject; -//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -//import lombok.extern.slf4j.Slf4j; -//import org.nl.common.exception.BadRequestException; -//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; -//import org.nl.wms.sch.point.service.dao.SchBasePoint; -//import org.nl.wms.sch.task.service.ISchBaseTaskService; -//import org.nl.wms.sch.task.service.ISchBaseTaskconfigService; -//import org.nl.wms.sch.task.service.dao.SchBaseTask; -//import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig; -//import org.nl.wms.sch.task_manage.AbstractTask; -//import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum; -//import org.nl.wms.sch.task_manage.task.TaskType; -//import org.nl.wms.sch.task_manage.task.core.TaskStatus; -//import org.nl.wms.sch.task_manage.task.tasks.yz.mapper.YZMapper; -//import org.nl.wms.util.PointUtils; -//import org.springframework.beans.factory.annotation.Autowired; -//import org.springframework.stereotype.Component; -// -//import java.util.Arrays; -//import java.util.List; -//import java.util.stream.Collectors; -// -///** -// * @Author: lyd -// * @Description: 压制缺料任务 -// * @Date: 2023/5/25 -// */ -//@Slf4j -//@Deprecated -//@Component -//@TaskType("-") -//public class YZQLTask extends AbstractTask { -// private static String TASK_CONFIG_CODE = "-"; -// -// @Autowired -// private ISchBasePointService pointService; -// @Autowired -// private ISchBaseTaskService taskService; -// @Autowired -// private ISchBaseTaskconfigService taskConfigService; -// @Autowired -// private ISchBaseVehiclematerialgroupService vehiclematerialgroupService; -// @Autowired -// private IPdmBdWorkorderService workorderService; -// @Autowired -// private YZMapper yzMapper; -// -// @Override -// protected void create() throws BadRequestException { -// // 获取任务 -// List tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY); -// // 配置信息 -// SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper() -// .eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE)); -// for (SchBaseTask task : tasks) { -// List startRegionStr = Arrays.stream(taskConfig.getStart_region_str().split(",")).collect(Collectors.toList()); -// // 找起点 -// String extGroupData = task.getExt_group_data(); -// JSONObject jsonObject = JSONObject.parseObject(extGroupData); -// jsonObject.put("vehicle_type", task.getVehicle_type()); -// SchBasePoint point = findStartPoint(startRegionStr, jsonObject); -// if (ObjectUtil.isEmpty(point)) { -// task.setRemark("未找到所需点位!"); -// taskService.update(task); -// // 消息通知 -// continue; -// } -// // 设置起点并修改创建成功状态 -// task.setPoint_code1(point.getPoint_code()); -// task.setTask_status(TaskStatus.CREATED.getCode()); -// task.setVehicle_code(point.getVehicle_code()); -// taskService.update(task); -// -// point.setIng_task_code(task.getTask_code()); -// pointService.update(point); -// -// //下发 -//// this.renotifyAcs(task); -// } -// } -// -// /** -// * 找起点业务:混碾机工单的物料标识相同的位置 -// * -// * @param startRegionStr : 区域列表 -// * @param extGroupData : 外部参数,包含条件所需的信息 -// * @return -// * @description : JSONObject获取不到就是null -// */ -// private SchBasePoint findStartPoint(List startRegionStr, JSONObject extGroupData) { -// // 获取当前工单 -// String workorderCode = extGroupData.getString("workorder_code"); -// PdmBdWorkorder workOrder = ObjectUtil.isNotEmpty(workorderCode) -// ? workorderService.getOne(new LambdaQueryWrapper() -// .eq(PdmBdWorkorder::getWorkorder_code, workorderCode)) -// : null; -// Assert.notNull(workOrder, "工单不能为空!"); -// // 查找混碾机工单的物料相同的位置 -// List points = yzMapper.findPointForYZQL(startRegionStr, workOrder.getMaterial_id()); -// return ObjectUtil.isNotEmpty(points) ? 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("该任务已完成!"); -// } -// if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) { -// throw new BadRequestException("该任务已取消!"); -// } -// // 获取参数 -// String startPoint = taskObj.getPoint_code1(); // 起点 -// JSONObject extGroupData = ObjectUtil.isNotEmpty(taskObj.getExt_group_data()) -// ? JSONObject.parseObject(taskObj.getExt_group_data()) -// : null; -// SchBasePoint startPointObj = pointService.getById(startPoint); -// // 根据传来的类型去对任务进行操作 -// if (status.equals(TaskStatus.EXECUTING)) { // 执行中 -// taskObj.setTask_status(TaskStatus.EXECUTING.getCode()); -// taskObj.setRemark("执行中"); -// } -// if (status.equals(TaskStatus.FINISHED)) { // 完成 -// // 任务上有载具编码 -> 获取当前载具编码的组盘信息 -// SchBaseVehiclematerialgroup one = vehiclematerialgroupService.getOne(new LambdaQueryWrapper() -// .eq(SchBaseVehiclematerialgroup::getVehicle_code, taskObj.getVehicle_code()) -// .eq(SchBaseVehiclematerialgroup::getVehicle_type, taskObj.getVehicle_type()) -// .eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, GroupBindMaterialStatusEnum.BOUND.getValue())); -// // 将载具设置为已解绑 -// one.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue()); -// vehiclematerialgroupService.update(one); -// // 释放点位,将点位设置为空位,清空数据 -// if (ObjectUtil.isNotEmpty(startPointObj)) { -// PointUtils.clearPoint(startPointObj); -// // todo: 终点暂时无设置 -// } -// // 任务修改成完成 -// taskObj.setTask_status(TaskStatus.FINISHED.getCode()); -// } -// if (status.equals(TaskStatus.CANCELED)) { // 取消 -// taskObj.setTask_status(TaskStatus.CANCELED.getCode()); -// // 释放点位,起点正在执行的任务清空 -// if (ObjectUtil.isNotEmpty(startPointObj)) { -// startPointObj.setIng_task_code(""); -// pointService.update(startPointObj); -// } -// } -// taskService.update(taskObj); -// } -// -// @Override -// public void forceFinish(String task_code) { -// this.updateStatus(task_code, TaskStatus.FINISHED); -// } -// -// @Override -// public void cancel(String task_code) { -// this.updateStatus(task_code, TaskStatus.CANCELED); -// } -//} +package org.nl.wms.sch.task_manage.task.tasks.yz; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONObject; +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.database.material.service.IMdBaseMaterialService; +import org.nl.wms.database.material.service.dao.MdBaseMaterial; +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; +import org.nl.wms.sch.point.service.dao.SchBasePoint; +import org.nl.wms.sch.task.service.ISchBaseTaskService; +import org.nl.wms.sch.task.service.ISchBaseTaskconfigService; +import org.nl.wms.sch.task.service.dao.SchBaseTask; +import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig; +import org.nl.wms.sch.task_manage.AbstractTask; +import org.nl.wms.sch.task_manage.constant.GeneralDefinition; +import org.nl.wms.sch.task_manage.constant.ExceptionConstant; +import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum; +import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum; +import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum; +import org.nl.wms.sch.task_manage.task.TaskType; +import org.nl.wms.sch.task_manage.task.core.TaskStatus; +import org.nl.wms.sch.task_manage.task.tasks.yz.mapper.YZMapper; +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 java.math.BigDecimal; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Author: lyd + * @Description: 压制缺料任务, 根据当前位置判断是新旧料,去缓存货架获取,如果工单的泥料是特殊物料,则不响应呼叫 + * @Date: 2023/11/1 + */ +@Slf4j +@Component +@TaskType("YZQLTask") +public class YZQLTask extends AbstractTask { + private static String TASK_CONFIG_CODE = "YZQLTask"; + + @Autowired + private ISchBasePointService pointService; + @Autowired + private ISchBaseTaskService taskService; + @Autowired + private ISchBaseTaskconfigService taskConfigService; + @Autowired + private ISchBaseVehiclematerialgroupService vehiclematerialgroupService; + @Autowired + private IPdmBdWorkorderService workorderService; + @Autowired + private YZMapper yzMapper; + @Autowired + private ISysNoticeService noticeService; + @Autowired + IMdBaseMaterialService materialService; + + @Override + protected void create() throws BadRequestException { + // 获取任务 + List tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY); + // 配置信息 + SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper() + .eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE)); + for (SchBaseTask task : tasks) { + TaskUtils.setUpdateByAcs(task); + List startRegionStr = Arrays.stream(taskConfig.getStart_region_str().split(",")).collect(Collectors.toList()); + // 找起点 + task.setVehicle_type(GeneralDefinition.MATERIAL_CUP); + String extGroupData = task.getExt_group_data(); + JSONObject jsonObject = JSONObject.parseObject(extGroupData); + jsonObject.put("vehicle_type", task.getVehicle_type()); + SchBasePoint point = findStartPoint(startRegionStr, jsonObject); + if (ObjectUtil.isEmpty(point)) { + task.setRemark("未找到所需点位!"); + taskService.update(task); + // 消息通知 + continue; + } + // 设置起点并修改创建成功状态 + task.setPoint_code1(point.getPoint_code()); + task.setTask_status(TaskStatus.CREATED.getCode()); + task.setVehicle_code(point.getVehicle_code()); + task.setGroup_id(point.getGroup_id()); + task.setRemark(""); + taskService.updateById(task); + + point.setIng_task_code(task.getTask_code()); + PointUtils.setUpdateByAcs(point); + pointService.updateById(point); + } + } + + @Override + protected void createCompletion(SchBaseTask task) { + // 配置信息 + SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper() + .eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE)); + TaskUtils.setUpdateByAcs(task); + // 料盅 + task.setVehicle_type(GeneralDefinition.MATERIAL_CUP); + List startRegionStr = Arrays.stream(taskConfig.getStart_region_str().split(",")) + .collect(Collectors.toList()); + // 找起点 + String requestParam = task.getRequest_param(); + JSONObject extGroupData = JSONObject.parseObject(requestParam); + // 如果是特殊物料,就屏蔽。 + // 如果新料或者旧料比例到了,就不允许叫料 + // 获取当前位置 + SchBasePoint YZPoint = pointService.getById(task.getPoint_code2()); + // 获取工单 + PdmBdWorkorder workOrder = workorderService.getByCode(extGroupData.getString("workorder_code")); + MdBaseMaterial material = materialService.getById(workOrder.getMaterial_id()); + if (material.getIs_special()) { + throw new BadRequestException(ExceptionConstant.exceptionMessage(ExceptionConstant.getCurrentClass() + , ExceptionConstant.getLineNumber(), "特殊物料不需要主动申请")); + } + // 获取比例 + Integer materialRatio = workOrder.getMaterial_ratio(); + // 获取计划重量 + BigDecimal planWeight = workOrder.getPlan_weight(); + if (YZPoint.getPoint_type().equals(GeneralDefinition.SPREADER_NEW_MATERIAL)) { + BigDecimal newPlanWeight = planWeight.multiply(BigDecimal.valueOf(((double)materialRatio / 100))); + if (workOrder.getReal_new_weight().compareTo(newPlanWeight) >= 0) { + throw new BadRequestException(ExceptionConstant.exceptionMessage(ExceptionConstant.getCurrentClass() + , ExceptionConstant.getLineNumber(), "新料实际量已足够")); + } + } else { + BigDecimal oldWeight = planWeight.multiply(BigDecimal.valueOf((double) ((100 - materialRatio) / 100))); + if (workOrder.getReal_new_weight().compareTo(oldWeight) >= 0) { + throw new BadRequestException(ExceptionConstant.exceptionMessage(ExceptionConstant.getCurrentClass() + , ExceptionConstant.getLineNumber(), "旧料实际量已足够")); + } + } + extGroupData.put("is_new", YZPoint.getPoint_type().equals(GeneralDefinition.SPREADER_NEW_MATERIAL)); + SchBasePoint point = findStartPoint(startRegionStr, extGroupData); + if (ObjectUtil.isEmpty(point)) { + // 消息通知 + noticeService.createNotice(ExceptionConstant.NEED_POINT_NOT_FOUND, + TASK_CONFIG_CODE + task.getPoint_code2(), NoticeTypeEnum.WARN.getCode()); + throw new BadRequestException(ExceptionConstant.NEED_POINT_NOT_FOUND); + } + // 找到了会把组盘标识传过来 + // 设置起点并修改创建成功状态 + task.setPoint_code1(point.getPoint_code()); + task.setTask_status(TaskStatus.CREATED.getCode()); + task.setVehicle_code(point.getVehicle_code()); + task.setGroup_id(point.getGroup_id()); + task.setRemark(""); + taskService.save(task); + + point.setIng_task_code(task.getTask_code()); + PointUtils.setUpdateByAcs(point); + pointService.updateById(point); + } + + /** + * 找起点业务:查找困料货架的泥料是和压机工单的泥料相同的位置 + * 如果是新料口就选择新料,如果是旧料口就选旧料 + * @param startRegionStr : 区域列表 + * @param extGroupData : 外部参数,包含条件所需的信息 + * @return + * @description : JSONObject获取不到就是null + */ + private SchBasePoint findStartPoint(List startRegionStr, JSONObject extGroupData) { + // 获取当前工单 + String workorderCode = extGroupData.getString("workorder_code"); + PdmBdWorkorder workOrder = ObjectUtil.isNotEmpty(workorderCode) + ? workorderService.getOne(new LambdaQueryWrapper() + .eq(PdmBdWorkorder::getWorkorder_code, workorderCode)) + : null; + Assert.notNull(workOrder, "工单不能为空!"); + // todo: redundance_material_code暂时存在着 + List points = yzMapper.findPointByYZQL(startRegionStr, workOrder.getRaw_material_code(), + extGroupData.getBoolean("is_new")); + return ObjectUtil.isNotEmpty(points) ? 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("该任务已完成!"); + } + if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) { + throw new BadRequestException("该任务已取消!"); + } + // 根据传来的类型去对任务进行操作 + if (status.equals(TaskStatus.EXECUTING)) { // 执行中 + taskObj.setTask_status(TaskStatus.EXECUTING.getCode()); + taskObj.setRemark("执行中"); + TaskUtils.setUpdateByAcs(taskObj); + taskService.updateById(taskObj); + } + if (status.equals(TaskStatus.FINISHED)) { // 完成 + this.finishTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); + } + if (status.equals(TaskStatus.CANCELED)) { // 取消 + this.cancelTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); + } + } + + @Override + public void forceFinish(String task_code) { + SchBaseTask taskObj = taskService.getByCode(task_code); + if (ObjectUtil.isEmpty(taskObj)) { + throw new BadRequestException("该任务不存在"); + } + this.finishTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC); + } + + @Override + public void cancel(String task_code) { + SchBaseTask taskObj = taskService.getByCode(task_code); + if (ObjectUtil.isEmpty(taskObj)) { + throw new BadRequestException("该任务不存在"); + } + this.cancelTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC); + } + public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { + String startPoint = taskObj.getPoint_code1(); // 获取起点 + SchBasePoint startPointObj = pointService.getById(startPoint); + // 除了解锁需要将组盘表中的物料绑定载具设置为已解绑 + // 起点设置空位 + // 任务上有载具编码 -> 获取当前载具编码的组盘信息 + SchBaseVehiclematerialgroup groupObj = vehiclematerialgroupService.getById(taskObj.getGroup_id()); + // 将载具设置为已解绑 + groupObj.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue()); + TaskUtils.setGroupUpdateByType(groupObj, taskFinishedType); + vehiclematerialgroupService.update(groupObj); + // 释放点位,将点位设置为空位,清空数据 + if (ObjectUtil.isNotEmpty(startPointObj)) { + PointUtils.setUpdateByType(startPointObj, taskFinishedType); + PointUtils.clearPoint(startPointObj); + // todo: 终点暂时无设置 + } + // 任务修改成完成 + taskObj.setTask_status(TaskStatus.FINISHED.getCode()); + taskObj.setRemark(GeneralDefinition.TASK_FINISH); + taskObj.setFinished_type(taskFinishedType.getCode()); + TaskUtils.setUpdateByType(taskObj, taskFinishedType); + taskService.updateById(taskObj); + } + + public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { + String startPoint = taskObj.getPoint_code1(); // 获取起点 + SchBasePoint startPointObj = pointService.getById(startPoint); + // 终点解锁 + if (ObjectUtil.isNotEmpty(startPointObj)) { + startPointObj.setIng_task_code(""); + PointUtils.setUpdateByType(startPointObj, taskFinishedType); + pointService.updateById(startPointObj); + } + taskObj.setRemark(GeneralDefinition.TASK_CANCEL); + taskObj.setTask_status(TaskStatus.CANCELED.getCode()); + taskObj.setFinished_type(taskFinishedType.getCode()); + TaskUtils.setUpdateByType(taskObj, taskFinishedType); + taskService.updateById(taskObj); + } +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSKTask.java index 902a6a1..96facfe 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSKTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSKTask.java @@ -6,8 +6,6 @@ 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.sch.group.service.ISchBaseVehiclematerialgroupService; -import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; 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; @@ -15,8 +13,7 @@ import org.nl.wms.sch.task.service.ISchBaseTaskconfigService; import org.nl.wms.sch.task.service.dao.SchBaseTask; import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig; import org.nl.wms.sch.task_manage.AbstractTask; -import org.nl.wms.sch.task_manage.GeneralDefinition; -import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum; +import org.nl.wms.sch.task_manage.constant.GeneralDefinition; import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum; import org.nl.wms.sch.task_manage.enums.PointStatusEnum; import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum; @@ -39,9 +36,9 @@ import java.util.stream.Collectors; */ @Slf4j @Component -@TaskType("LZKLXSKTask") +@TaskType("YZSKTask") public class YZSKTask extends AbstractTask { - private static String TASK_CONFIG_CODE = "LZKLXSKTask"; + private static String TASK_CONFIG_CODE = "YZSKTask"; @Autowired private ISchBasePointService pointService; @Autowired @@ -61,22 +58,18 @@ public class YZSKTask extends AbstractTask { List nextRegionStr = Arrays.stream(taskConfig.getNext_region_str().split(",")) .collect(Collectors.toList()); // 找终点 - String requestParam = task.getRequest_param(); - JSONObject jsonObject = JSONObject.parseObject(requestParam); - SchBasePoint point = findNextPoint(nextRegionStr, jsonObject); - String vehicleType = jsonObject.getString("vehicle_type"); + SchBasePoint point = findNextPoint(nextRegionStr); if (ObjectUtil.isEmpty(point)) { // 消息通知 noticeService.createNotice("送空盅任务未找到混料机空位!", TASK_CONFIG_CODE + task.getPoint_code1(), NoticeTypeEnum.WARN.getCode()); throw new BadRequestException("送空盅任务未找到混料机空位!"); } - log.warn("送空盅找到点位的信息:{}", point); // 设置终点并修改创建成功状态 task.setPoint_code2(point.getPoint_code()); task.setTask_status(TaskStatus.CREATED.getCode()); if (task.getVehicle_type() == null) { - task.setVehicle_type(vehicleType != null ? vehicleType : GeneralDefinition.MATERIAL_CUP); + task.setVehicle_type(GeneralDefinition.MATERIAL_CUP); } taskService.save(task); @@ -100,7 +93,7 @@ public class YZSKTask extends AbstractTask { // 找终点 String requestParam = task.getRequest_param(); JSONObject jsonObject = JSONObject.parseObject(requestParam); - SchBasePoint point = findNextPoint(nextRegionStr, jsonObject); + SchBasePoint point = findNextPoint(nextRegionStr); String vehicleType = jsonObject.getString("vehicle_type"); if (ObjectUtil.isEmpty(point)) { task.setRemark("送空盅任务未找到混料机空位!"); @@ -121,9 +114,6 @@ public class YZSKTask extends AbstractTask { point.setIng_task_code(task.getTask_code()); PointUtils.setUpdateByAcs(point); pointService.updateById(point); - - //下发 - //this.renotifyAcs(task); } } @@ -131,19 +121,13 @@ public class YZSKTask extends AbstractTask { * 在混料区域找一个空位放着 * * @param nextRegionStr - * @param requestParam * @return */ - private SchBasePoint findNextPoint(List nextRegionStr, JSONObject requestParam) { - String vehicleType = ObjectUtil.isNotEmpty(requestParam.getString("vehicle_type")) - ? requestParam.getString("vehicle_type") - : GeneralDefinition.MATERIAL_CUP; + private SchBasePoint findNextPoint(List nextRegionStr) { // 载具已经设置可为空,当不需要校验工单时候也不会出现空指针 LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); lam.in(SchBasePoint::getRegion_code, nextRegionStr) .eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode()) - .like(SchBasePoint::getCan_vehicle_type, vehicleType) - .eq(SchBasePoint::getPoint_type, GeneralDefinition.DOCKING_POINT) // 对接位 .and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住 .or() .eq(SchBasePoint::getIng_task_code, "")) @@ -201,14 +185,11 @@ public class YZSKTask extends AbstractTask { public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { // 获取参数 String endPoint = taskObj.getPoint_code2(); // 获取终点 - String vehicleType = ObjectUtil.isNotEmpty(taskObj.getVehicle_type()) - ? taskObj.getVehicle_type() - : GeneralDefinition.MATERIAL_CUP; SchBasePoint endPointObj = pointService.getById(endPoint); // 设置载具类型、点位状态、释放点位 if (ObjectUtil.isNotEmpty(endPoint)) { endPointObj.setIng_task_code(""); - endPointObj.setVehicle_type(vehicleType); + endPointObj.setVehicle_type(taskObj.getVehicle_type()); endPointObj.setVehicle_qty(1); endPointObj.setVehicle_code(taskObj.getVehicle_code()); endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode()); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/mapper/YZMapper.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/mapper/YZMapper.java index 34110ba..41055de 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/mapper/YZMapper.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/mapper/YZMapper.java @@ -11,10 +11,6 @@ import java.util.List; * @Date: 2023/6/19 */ public interface YZMapper { - List findPointForYZQL(List regionCode, String materialId); - @Deprecated - List findPointForYZSL(JSONObject param); - /** * 统计输送线数量 * @param regionCode @@ -22,4 +18,14 @@ public interface YZMapper { * @return */ int countConveyorLine(String regionCode, String pointType, String pointStatus); + /** + * 根据泥料编码获取 + * @param regionCode + * @param rawMaterialCode + * @param isNew + * @return + */ + List findPointByYZQL(List regionCode, String rawMaterialCode, Boolean isNew); + + } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/mapper/YZMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/mapper/YZMapper.xml index 864c64f..6f3787f 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/mapper/YZMapper.xml +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/mapper/YZMapper.xml @@ -1,36 +1,6 @@ - - + diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/MesUtils.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/MesUtils.java index 90204f0..31febad 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/MesUtils.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/MesUtils.java @@ -11,7 +11,7 @@ import org.nl.system.service.notice.impl.SysNoticeServiceImpl; import org.nl.system.service.param.dao.Param; import org.nl.system.service.param.impl.SysParamServiceImpl; import org.nl.wms.ext.mes.service.dto.ResultForMes; -import org.nl.wms.sch.task_manage.GeneralDefinition; +import org.nl.wms.sch.task_manage.constant.GeneralDefinition; import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum; /** diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/PointUtils.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/PointUtils.java index 24dd769..d2add47 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/PointUtils.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/PointUtils.java @@ -5,10 +5,9 @@ import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; import org.nl.common.utils.SecurityUtils; import org.nl.config.SpringContextHolder; -import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; import org.nl.wms.sch.point.service.dao.SchBasePoint; import org.nl.wms.sch.point.service.impl.SchBasePointServiceImpl; -import org.nl.wms.sch.task_manage.GeneralDefinition; +import org.nl.wms.sch.task_manage.constant.GeneralDefinition; import org.nl.wms.sch.task_manage.enums.PointStatusEnum; import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum; 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 67678d0..83a5425 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 @@ -11,7 +11,7 @@ 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; -import org.nl.wms.sch.task_manage.GeneralDefinition; +import org.nl.wms.sch.task_manage.constant.GeneralDefinition; import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum; import org.nl.wms.sch.task_manage.task.core.TaskStatus; diff --git a/lms/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml b/lms/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml index b0fc496..8d019ac 100644 --- a/lms/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml +++ b/lms/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml @@ -13,22 +13,10 @@ spring: # url: jdbc:log4jdbc:mysql://${DB_HOST:10.93.41.198}:${DB_PORT:3306}/${DB_NAME:rl_mg_lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true # username: ${DB_USER:root} # password: ${DB_PWD:123456} - url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:rtmg_lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true + url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:ndhh_lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true username: ${DB_USER:root} password: ${DB_PWD:12356} type: com.alibaba.druid.pool.DruidDataSource - oracle: - driver-class-name: oracle.jdbc.OracleDriver - url: jdbc:oracle:thin:@172.27.37.66:1521:RTMES - username: ${DB_USER:LMSTELCOM} - password: ${DB_PWD:LMSTELCOM_6463} - type: com.alibaba.druid.pool.DruidDataSource - sqlserver: - driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver - url: jdbc:sqlserver://10.93.41.2\WINCC;DatabaseName=马钢_RH - username: ${DB_USER:sa} - password: ${DB_PWD:123} - type: com.alibaba.druid.pool.DruidDataSource redis: #数据库索引 host: ${REDIS_HOST:127.0.0.1} diff --git a/lms/nladmin-system/nlsso-server/src/main/resources/config/application.yml b/lms/nladmin-system/nlsso-server/src/main/resources/config/application.yml index b559a01..cb9493a 100644 --- a/lms/nladmin-system/nlsso-server/src/main/resources/config/application.yml +++ b/lms/nladmin-system/nlsso-server/src/main/resources/config/application.yml @@ -42,7 +42,7 @@ spring: freemarker: check-template-location: false profiles: - active: prod + active: dev jackson: time-zone: GMT+8 data: @@ -122,8 +122,8 @@ security: mybatis-plus: configuration: map-underscore-to-camel-case: false - jdbc-type-for-null: null - # log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + jdbc-type-for-null: +# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl mapper-locations: - classpath:org.nl.**.mapper/*.xml global-config: diff --git a/lms/nladmin-system/nlsso-server/src/main/resources/stopword.dic b/lms/nladmin-system/nlsso-server/src/main/resources/stopword.dic index 7f748f1..4926971 100644 --- a/lms/nladmin-system/nlsso-server/src/main/resources/stopword.dic +++ b/lms/nladmin-system/nlsso-server/src/main/resources/stopword.dic @@ -1239,19 +1239,3 @@ $ 上 上来 上去 -获取MES给的工单数据 -上报mes消耗泥料记录的数据 -上报mes消耗泥料记录失败 -压机产出-获取MES给的工单数据 -压机产出返给MES的数据 -反馈压机产出插入mes数据库失败 -半成品入库-获取MES给的工单数据 -半成品入库返给MES的数据 -半成品入库插入mes数据库失败 -半成品出库-获取MES给的工单数据 -半成品出库返给MES的数据 -半成品出库插入mes数据库失败 -压机产出-获取MES给的工单数据 -压机产出返给MES的数据 -反馈压机产出插入mes数据库失败 -插入压机检测失败 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 ab45651..f6ce8cd 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 @@ -4,14 +4,13 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.junit.jupiter.api.Test; -import org.nl.config.MapOf; import org.nl.system.service.user.ISysUserService; import org.nl.wms.database.material.service.dao.MdBaseMaterial; import org.nl.wms.ext.mes.service.WmsToMesService; import org.nl.wms.ext.mes.service.dao.mapper.MesRequestMapper; import org.nl.wms.sch.point.service.ISchBasePointService; import org.nl.wms.sch.point.service.dao.SchBasePoint; -import org.nl.wms.sch.task_manage.GeneralDefinition; +import org.nl.wms.sch.task_manage.constant.GeneralDefinition; import org.nl.wms.sch.task_manage.enums.PointStatusEnum; import org.nl.wms.sch.task_manage.task.tasks.yz.mapper.YZMapper; import org.springframework.beans.factory.annotation.Autowired; diff --git a/lms/nladmin-system/nlsso-server/src/test/java/org/nl/ext/TestDemo.java b/lms/nladmin-system/nlsso-server/src/test/java/org/nl/ext/TestDemo.java index 2f3e978..8ed1104 100644 --- a/lms/nladmin-system/nlsso-server/src/test/java/org/nl/ext/TestDemo.java +++ b/lms/nladmin-system/nlsso-server/src/test/java/org/nl/ext/TestDemo.java @@ -140,4 +140,21 @@ public class TestDemo { void test04() { System.out.println(DateUtil.format(DateUtil.parse(DateUtil.today()), "yyyy年MM月dd日")); } + @Test + public void testAppend() { + StringBuilder sb = new StringBuilder(); + String custerNo = "123456"; + String orderNo = "789012"; + + sb.append("ewr").append("##") + .append("ewrer").append("##") + .append(102).append("##") + .append(10.25).append("##") + .append(DateUtil.format(DateUtil.parse(DateUtil.today()), "yyyy年MM月dd日")).append("##") + .append(custerNo).append("##") + .append(orderNo).append("##") + .append("ewerwer").append("##") + .append("werasdf").append("**"); + System.out.println(sb.toString()); + } } 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 b0b172e..258f1d0 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 @@ -24,212 +24,438 @@ public class PointCreate { private ISchBasePointService pointService; @Autowired private ISchBaseRegionService regionService; - @Test - void test01() { - // 创建YJ01-08 - List pointList = new ArrayList<>(); - for (int i = 3; i <= 8; i++) { - String pointName = "压机0"; - String pointCode = "YJ0"; - pointName = pointName + i; - pointCode = pointCode + i; - SchBasePoint point = new SchBasePoint(); - point.setPoint_code(pointCode); - point.setPoint_name(pointName); - point.setRegion_code("YZ"); - point.setRegion_name("压制区域"); - point.setPoint_type("1"); - point.setParent_point_code(pointCode); - point.setIs_has_workder(true); - point.setIs_auto(true); - pointList.add(point); - } - pointService.saveBatch(pointList); - } @Test - void test02() { // 压机接料位 - // 创建YJ01JLW01 - List pointList = new ArrayList<>(); - for (int i = 3; i <= 8; i++) { - String pointName = "压机0"; - String pointCode = "YJ0"; - pointName = pointName + i; - pointCode = pointCode + i; - for (int j = 1; j <= 2; j++) { - String jlw = "JLW0"; - String jlw2 = "接料位0"; - jlw = jlw + j; - jlw2 = jlw2 + j; - SchBasePoint point = new SchBasePoint(); - point.setPoint_code(pointCode + jlw); - point.setPoint_name(pointName + jlw2); - point.setRegion_code("YZ"); - point.setRegion_name("压制区域"); - point.setPoint_type("2"); - point.setParent_point_code(pointCode); - point.setIs_has_workder(false); - point.setIs_auto(true); - pointList.add(point); - } - } - pointService.saveBatch(pointList); - } - - @Test - void test03() { // 料盅睏料线区域 - // 创建LZKL01 - 32 - List pointList = new ArrayList<>(); - for (int i = 13; i <= 32; i++) {// 3台 - String pointName = "睏料位"; - String pointCode = "KLW"; - if (i < 10) { - pointName = pointName + "0" + i; - pointCode = pointCode + "0" + i; - } else { - pointName = pointName + i; - pointCode = pointCode + i; - } - SchBasePoint point = new SchBasePoint(); - point.setPoint_code(pointCode); - point.setPoint_name(pointName); - point.setRegion_code("LZKLX"); - point.setRegion_name("料盅睏料线区域"); - point.setParent_point_code(pointCode); - point.setIs_has_workder(false); - point.setIs_auto(true); - pointList.add(point); - } - pointService.saveBatch(pointList); - } - - - @Test - void test04() { // 缓存库位区域 - List pointList = new ArrayList<>(); - int count = 1; - for (int i = 1; i <= 2; i++) { // 排 - for (int j = 1; j <= 3; j++) { // 层 - for (int k = 1; k <= 29; k++) { // 列 - String code = "HCHJ"; - String name = "缓存货架"; - if (count < 10) { - code = code + "00" + count; - name = name + "00" + count; - } else if (count >= 10 && count < 100) { - code = code + "0" + count; - name = name + "0" + count; - } else { - code = code + count; - name = name + count; - } - SchBasePoint point = new SchBasePoint(); - if (j == 3) { - point.setPoint_type("1"); - } else { - point.setPoint_type("2"); - } - point.setPoint_code(code); - point.setPoint_name(name); - point.setRegion_code("GTPHC"); - point.setRegion_name("钢托盘缓存区域"); - point.setPoint_status("1"); - point.setCan_vehicle_type("2"); - point.setVehicle_max_qty(1); - point.setBlock_num(1); - point.setRow_num(i); - point.setCol_num(k); - point.setLayer_num(j); - point.setIn_order_seq(count); - point.setOut_order_seq(count); - point.setIn_empty_seq(count); - point.setOut_empty_seq(count); - point.setParent_point_code(code); - point.setCreate_id("1"); - point.setCreate_name("管理员"); - point.setCreate_time(DateUtil.now()); - point.setIs_has_workder(false); - point.setIs_auto(true); - point.setIs_used(true); - pointList.add(point); - count++; - } - } - } - pointService.saveBatch(pointList); - } - @Test - void test05() { // 双层缓存输送线缓存区域 - List pointList = new ArrayList<>(); - for (int i = 41; i <= 124; i++) { - String pointName = "缓存输送线"; - String pointCode = "HCSSX"; - if (i < 10) { - pointName = pointName + "0" + i; - pointCode = pointCode + "0" + i; - } else { - pointName = pointName + i; - pointCode = pointCode + i; - } - SchBasePoint point = new SchBasePoint(); - point.setPoint_code(pointCode); - point.setPoint_name(pointName); - point.setRegion_code("HCSSX"); - point.setRegion_name("双层缓存输送线缓存区域"); - point.setParent_point_code(pointCode); - point.setIs_has_workder(false); - point.setIs_auto(true); - pointList.add(point); - } - pointService.saveBatch(pointList); - } - @Test - void test06() { - List pointList = new ArrayList<>(); - for (int i = 2; i <= 11; i++) { - String pointName = "包装线"; - String pointCode = "BZX"; - if (i < 10) { - pointName = pointName + "0" + i; - pointCode = pointCode + "0" + i; - } else { - pointName = pointName + i; - pointCode = pointCode + i; - } - SchBasePoint point = new SchBasePoint(); - point.setPoint_code(pointCode); - point.setPoint_name(pointName); - point.setRegion_code("BZ"); - point.setRegion_name("包装区域"); - point.setParent_point_code(pointCode); - point.setIs_has_workder(false); - point.setIs_auto(true); - pointList.add(point); - } - pointService.saveBatch(pointList); - } - @Test - void test07() { // 码垛机械手 - // 创建YJ01JLW01 - List pointList = new ArrayList<>(); + void testCreateHN() { + String name = "混碾机"; + String code = "HNJ"; + String now = DateUtil.now(); + List list = new ArrayList<>(); for (int i = 1; i <= 8; i++) { - String pointName = "压制不合格位0"; - String pointCode = "YZBHGW0"; - String papointCode = "YJ0"; - pointName = pointName + i; - pointCode = pointCode + i; - papointCode = papointCode + i; - SchBasePoint point = new SchBasePoint(); - point.setPoint_code(pointCode); - point.setPoint_name(pointName); - point.setRegion_code("YZ"); - point.setRegion_name("压制区域"); - point.setPoint_type("3"); - point.setParent_point_code(papointCode); - point.setIs_has_workder(false); - point.setIs_auto(false); - pointList.add(point); + SchBasePoint p1 = new SchBasePoint(); + p1.setPoint_code(code + "0" + i); + p1.setPoint_name(name + "0" + i); + p1.setRegion_code("HN"); + p1.setRegion_name("混碾区域"); + p1.setPoint_type("1"); + p1.setParent_point_code(p1.getPoint_code()); + p1.setIs_has_workder(true); + p1.setWorkshop_code("A1"); + p1.setIs_auto(true); + p1.setCreate_id("1"); + p1.setCreate_name("管理员"); + p1.setCreate_time(now); + list.add(p1); + SchBasePoint p2 = new SchBasePoint(); + p2.setPoint_code(code + "0" + i + "DJW"); + p2.setPoint_name(name + "0" + i + "对接位"); + p2.setRegion_code("HN"); + p2.setRegion_name("混碾区域"); + p2.setPoint_type("2"); + p2.setPoint_status("1"); + p2.setParent_point_code(p1.getPoint_code()); + p2.setIs_has_workder(false); + p2.setWorkshop_code("A1"); + p2.setCan_vehicle_type("LZ"); + p2.setIs_auto(true); + p2.setCreate_id("1"); + p2.setCreate_name("管理员"); + p2.setCreate_time(now); + list.add(p2); } - pointService.saveBatch(pointList); + pointService.saveOrUpdateBatch(list); + } + + @Test + void testCreateYJ() { + String name = "压机"; + String code = "YJ"; + String now = DateUtil.now(); + List list = new ArrayList<>(); + for (int i = 1; i <= 9; i++) { + SchBasePoint p1 = new SchBasePoint(); + p1.setPoint_code(code + "0" + i); + p1.setPoint_name(name + "0" + i); + p1.setRegion_code("YZ"); + p1.setRegion_name("压制区域"); + p1.setPoint_type("1"); + p1.setParent_point_code(p1.getPoint_code()); + p1.setIs_has_workder(true); + p1.setWorkshop_code("A1"); + p1.setIs_auto(true); + p1.setCreate_id("1"); + p1.setCreate_name("管理员"); + p1.setCreate_time(now); + list.add(p1); + } + pointService.saveOrUpdateBatch(list); + } + + @Test + void testCreateYJDJW() { + String name = "压机"; + String code = "YJ"; + String now = DateUtil.now(); + List list = new ArrayList<>(); + for (int i = 1; i <= 9; i++) { + for (int j = 1; j <= 2; j++) { + SchBasePoint p1 = new SchBasePoint(); + p1.setPoint_code(code + "0" + i + "SLW" + "0" + j); + p1.setPoint_name(name + "0" + i + "上料位" + "0" + j); + p1.setRegion_code("YZ"); + p1.setRegion_name("压制区域"); + p1.setPoint_type("2"); + p1.setParent_point_code(code + "0" + i); + p1.setIs_has_workder(false); + p1.setWorkshop_code("A1"); + p1.setIs_auto(true); + p1.setCreate_id("1"); + p1.setCreate_name("管理员"); + p1.setCreate_time(now); + list.add(p1); + } + for (int j = 1; j <= 2; j++) { + SchBasePoint p1 = new SchBasePoint(); + p1.setPoint_code(code + "0" + i + "XLW" + "0" + j); + p1.setPoint_name(name + "0" + i + "下料位" + "0" + j); + p1.setRegion_code("YZ"); + p1.setRegion_name("压制区域"); + p1.setPoint_type("2"); + p1.setParent_point_code(code + "0" + i); + p1.setIs_has_workder(false); + p1.setWorkshop_code("A1"); + p1.setIs_auto(true); + p1.setCreate_id("1"); + p1.setCreate_name("管理员"); + p1.setCreate_time(now); + list.add(p1); + } + } + pointService.saveOrUpdateBatch(list); + } + + @Test + void testCreateYZJXS() { + String name = "压制机械手"; + String code = "YZJXS"; + String now = DateUtil.now(); + List list = new ArrayList<>(); + for (int i = 1; i <= 6; i++) { + SchBasePoint p1 = new SchBasePoint(); + p1.setPoint_code(code + "0" + i); + p1.setPoint_name(name + "0" + i); + p1.setRegion_code("YZ"); + p1.setRegion_name("压制区域"); + p1.setPoint_type("1"); + p1.setParent_point_code(p1.getPoint_code()); + p1.setIs_has_workder(false); + p1.setWorkshop_code("A1"); + p1.setIs_auto(true); + p1.setCreate_id("1"); + p1.setCreate_name("管理员"); + p1.setCreate_time(now); + list.add(p1); + } + pointService.saveOrUpdateBatch(list); + } + + @Test + void testCreateKLHW() { + String name = "困料货位"; + String code = "KLHW"; + String now = DateUtil.now(); + List list = new ArrayList<>(); + for (int i = 1; i <= 56; i++) { + SchBasePoint p1 = new SchBasePoint(); + if (i < 10) { + p1.setPoint_code(code + "0" + i); + p1.setPoint_name(name + "0" + i); + } else { + p1.setPoint_code(code + i); + p1.setPoint_name(name + i); + } + p1.setRegion_code("KL"); + p1.setRegion_name("困料区域"); + p1.setPoint_status("1"); + p1.setParent_point_code(p1.getPoint_code()); + p1.setIs_has_workder(false); + p1.setWorkshop_code("A1"); + p1.setIn_order_seq(i); + p1.setIn_empty_seq(i); + p1.setIn_empty_seq(i); + p1.setOut_empty_seq(i); + p1.setIs_auto(true); + p1.setCreate_id("1"); + p1.setCreate_name("管理员"); + p1.setCreate_time(now); + list.add(p1); + } + pointService.saveOrUpdateBatch(list); + } + @Test + void testCreateRYHCX() { + String name = "入窑缓存线"; + String code = "RYHCX"; + String now = DateUtil.now(); + List list = new ArrayList<>(); + for (int i = 1; i <= 40; i++) { + SchBasePoint p1 = new SchBasePoint(); + if (i < 10) { + p1.setPoint_code(code + "0" + i); + p1.setPoint_name(name + "0" + i); + } else { + p1.setPoint_code(code + i); + p1.setPoint_name(name + i); + } + p1.setRegion_code("RYHCX"); + p1.setRegion_name("入窑缓存线区域"); + p1.setPoint_status("1"); + p1.setParent_point_code(p1.getPoint_code()); + p1.setIs_has_workder(false); + p1.setWorkshop_code("A1"); + p1.setIs_auto(true); + p1.setCreate_id("1"); + p1.setCreate_name("管理员"); + p1.setCreate_time(now); + list.add(p1); + } + pointService.saveOrUpdateBatch(list); + } + @Test + void testCreateJJHCX() { + String name = "加急缓存位"; + String code = "JJHCW"; + String now = DateUtil.now(); + List list = new ArrayList<>(); + for (int i = 1; i <= 4; i++) { + SchBasePoint p1 = new SchBasePoint(); + p1.setPoint_code(code + "0" + i); + p1.setPoint_name(name + "0" + i); + p1.setRegion_code("JJHCW"); + p1.setRegion_name("加急缓存区域"); + p1.setPoint_status("1"); + p1.setParent_point_code(p1.getPoint_code()); + p1.setIs_has_workder(false); + p1.setWorkshop_code("A1"); + p1.setIn_order_seq(i); + p1.setIn_empty_seq(i); + p1.setIn_empty_seq(i); + p1.setOut_empty_seq(i); + p1.setIs_auto(true); + p1.setCreate_id("1"); + p1.setCreate_name("管理员"); + p1.setCreate_time(now); + list.add(p1); + } + pointService.saveOrUpdateBatch(list); + } + @Test + void testCreateCYHCX() { + String name = "出窑缓存线"; + String code = "CYHCX"; + String now = DateUtil.now(); + List list = new ArrayList<>(); + for (int i = 1; i <= 39; i++) { + SchBasePoint p1 = new SchBasePoint(); + if (i < 10) { + p1.setPoint_code(code + "0" + i); + p1.setPoint_name(name + "0" + i); + } else { + p1.setPoint_code(code + i); + p1.setPoint_name(name + i); + } + p1.setRegion_code("CYHCX"); + p1.setRegion_name("出窑缓存区域"); + p1.setPoint_status("1"); + p1.setParent_point_code(p1.getPoint_code()); + p1.setIs_has_workder(false); + p1.setWorkshop_code("A1"); + p1.setIs_auto(true); + p1.setCreate_id("1"); + p1.setCreate_name("管理员"); + p1.setCreate_time(now); + list.add(p1); + } + pointService.saveOrUpdateBatch(list); + } + @Test + void testCreateFJ() { + String n1 = "分拣拆垛机械手0"; + String n2 = "分拣码垛机械手0"; + String c1 = "FJCDJXS0"; + String c2 = "FJMDJXS0"; + String now = DateUtil.now(); + List list = new ArrayList<>(); + for (int i = 1; i <= 2; i++) { + SchBasePoint p1 = new SchBasePoint(); + p1.setPoint_code(c1 + "0" + i); + p1.setPoint_name(n1 + "0" + i); + p1.setRegion_code("FJ"); + p1.setRegion_name("分拣区域"); + p1.setParent_point_code(p1.getPoint_code()); + p1.setIs_has_workder(false); + p1.setWorkshop_code("A1"); + p1.setIs_auto(true); + p1.setCreate_id("1"); + p1.setCreate_name("管理员"); + p1.setCreate_time(now); + list.add(p1); + SchBasePoint p2 = new SchBasePoint(); + p2.setPoint_code(c2 + "0" + i); + p2.setPoint_name(n2 + "0" + i); + p2.setRegion_code("FJ"); + p2.setRegion_name("分拣区域"); + p2.setParent_point_code(p2.getPoint_code()); + p2.setIs_has_workder(false); + p2.setWorkshop_code("A1"); + p2.setIs_auto(true); + p2.setCreate_id("1"); + p2.setCreate_name("管理员"); + p2.setCreate_time(now); + list.add(p2); + for (int j = 1; j <= 2; j++) { + SchBasePoint p3 = new SchBasePoint(); + p3.setPoint_code("FJ0" + i + "CDW0" + j); + p3.setPoint_name("分拣0" + i + "拆垛位0" + j); + p3.setRegion_code("FJ"); + p3.setRegion_name("分拣区域"); + p3.setParent_point_code(p3.getPoint_code()); + p3.setIs_has_workder(false); + p3.setWorkshop_code("A1"); + p3.setIs_auto(true); + p3.setCreate_id("1"); + p3.setCreate_name("管理员"); + p3.setCreate_time(now); + list.add(p3); + SchBasePoint p4 = new SchBasePoint(); + p4.setPoint_code("FJ0" + i + "MDW0" + j); + p4.setPoint_name("分拣0" + i + "码垛位0" + j); + p4.setRegion_code("FJ"); + p4.setRegion_name("分拣区域"); + p4.setParent_point_code(p4.getPoint_code()); + p4.setIs_has_workder(false); + p4.setWorkshop_code("A1"); + p4.setIs_auto(true); + p4.setCreate_id("1"); + p4.setCreate_name("管理员"); + p4.setCreate_time(now); + list.add(p4); + } + } + pointService.saveOrUpdateBatch(list); + } + @Test + void testCreateBTHC() { + String name = "半托缓存"; + String code = "BTHC"; + String now = DateUtil.now(); + List list = new ArrayList<>(); + for (int i = 1; i <= 2; i++) { + SchBasePoint p1 = new SchBasePoint(); + p1.setPoint_code(code + "0" + i); + p1.setPoint_name(name + "0" + i); + p1.setRegion_code("BZHC"); + p1.setRegion_name("包装缓存区域"); + p1.setPoint_status("1"); + p1.setParent_point_code(p1.getPoint_code()); + p1.setIs_has_workder(false); + p1.setWorkshop_code("A1"); + p1.setIs_auto(true); + p1.setCreate_id("1"); + p1.setCreate_name("管理员"); + p1.setCreate_time(now); + list.add(p1); + } + pointService.saveOrUpdateBatch(list); + } + @Test + void testCreateFM() { + String name = "覆膜机"; + String code = "FMJ"; + String now = DateUtil.now(); + List list = new ArrayList<>(); + for (int i = 1; i <= 4; i++) { + SchBasePoint p1 = new SchBasePoint(); + p1.setPoint_code(code + "0" + i); + p1.setPoint_name(name + "0" + i); + p1.setRegion_code("FM"); + p1.setRegion_name("覆膜区域"); + p1.setPoint_type("1"); + p1.setParent_point_code(p1.getPoint_code()); + p1.setIs_has_workder(false); + p1.setWorkshop_code("A1"); + p1.setIs_auto(true); + p1.setCreate_id("1"); + p1.setCreate_name("管理员"); + p1.setCreate_time(now); + list.add(p1); + } + SchBasePoint p1 = new SchBasePoint(); + p1.setPoint_code("FMJDJW01"); + p1.setPoint_name("覆膜机对接位01"); + p1.setRegion_code("FM"); + p1.setRegion_name("覆膜区域"); + p1.setPoint_type("2"); + p1.setParent_point_code(p1.getPoint_code()); + p1.setIs_has_workder(false); + p1.setWorkshop_code("A1"); + p1.setIs_auto(true); + p1.setCreate_id("1"); + p1.setCreate_name("管理员"); + p1.setCreate_time(now); + list.add(p1); + pointService.saveOrUpdateBatch(list); + } + @Test + void testCreateBZ() { + String name = "包装线"; + String code = "BZX"; + String now = DateUtil.now(); + List list = new ArrayList<>(); + for (int i = 1; i <= 10; i++) { + SchBasePoint p1 = new SchBasePoint(); + if (i < 10) { + p1.setPoint_code(code + "0" + i); + p1.setPoint_name(name + "0" + i); + } else { + p1.setPoint_code(code + i); + p1.setPoint_name(name + i); + } + p1.setRegion_code("BZ"); + p1.setRegion_name("包装区域"); + p1.setParent_point_code(p1.getPoint_code()); + p1.setIs_has_workder(false); + p1.setWorkshop_code("A1"); + p1.setIs_auto(true); + p1.setCreate_id("1"); + p1.setCreate_name("管理员"); + p1.setCreate_time(now); + list.add(p1); + } + pointService.saveOrUpdateBatch(list); + } + @Test + void testCreateRG() { + String name = "人工分拣拆"; + String code = "RGFJC"; + String now = DateUtil.now(); + List list = new ArrayList<>(); + for (int i = 1; i <= 6; i++) { + SchBasePoint p1 = new SchBasePoint(); + p1.setPoint_code(code + "0" + i); + p1.setPoint_name(name + "0" + i); + p1.setRegion_code("RGFJ"); + p1.setRegion_name("人工分拣区域"); + p1.setPoint_type("1"); + p1.setParent_point_code(p1.getPoint_code()); + p1.setIs_has_workder(true); + p1.setWorkshop_code("A1"); + p1.setIs_auto(true); + p1.setCreate_id("1"); + p1.setCreate_name("管理员"); + p1.setCreate_time(now); + list.add(p1); + } + pointService.saveOrUpdateBatch(list); } } diff --git a/lms/nladmin-system/nlsso-server/src/test/java/org/nl/point/test.java b/lms/nladmin-system/nlsso-server/src/test/java/org/nl/point/test.java deleted file mode 100644 index 6289d16..0000000 --- a/lms/nladmin-system/nlsso-server/src/test/java/org/nl/point/test.java +++ /dev/null @@ -1,155 +0,0 @@ -package org.nl.point; - -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.ObjectUtil; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import org.checkerframework.checker.units.qual.A; -import org.junit.Assert; -import org.junit.jupiter.api.Test; -import org.nl.common.exception.BadRequestException; -import org.nl.wms.ext.acs.service.dto.to.wms.ApplyDeviceDto; -import org.nl.wms.ext.acs.service.dto.to.wms.ApplyTaskRequest; -import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; -import org.nl.wms.sch.region.service.ISchBaseRegionService; -import org.nl.wms.sch.region.service.dao.SchBaseRegion; -import org.nl.wms.sch.task.service.dao.SchBaseTask; -import org.nl.wms.sch.task_manage.task.core.TaskStatus; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.transaction.annotation.Transactional; - -import java.time.LocalDate; -import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.List; - -/** - * @Author: lyd - * @Description: - * @Date: 2023/7/12 - */ -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) -public class test { - @Autowired - private ISchBaseRegionService regionService; - @Autowired - private ISchBaseVehiclematerialgroupService vehiclematerialgroupService; - - @Test - @Transactional(rollbackFor = Exception.class) - void test01() throws BadRequestException { - SchBaseRegion yz = regionService.getOne(new LambdaQueryWrapper().eq(SchBaseRegion::getRegion_code, "YZ")); - yz.setUpdate_time(DateUtil.now()); - regionService.update(yz); - t2(); - } - - public void t2() { // 异常 - SchBaseRegion e = new SchBaseRegion(); - e.setRegion_code("w"); - e.setRegion_name("w"); - e.setIs_has_workder(true); - e.setOrder_seq(1); - e.setCreate_id("1"); - e.setCreate_time("3"); - regionService.save(e); - } - -// @Test -// void test02() { -// BaseResponse grabResponse = t3(); -// BaseResponse baseResponse = ObjectUtil.cloneByStream(grabResponse); -// System.out.println(baseResponse.hashCode()); -// GrabResponse gg = (GrabResponse) grabResponse; -// System.out.println(gg.hashCode()); -// System.out.println(grabResponse.hashCode()); -// } -// -// public GrabResponse t3() { -// GrabResponse g = new GrabResponse(); -// g.setValue("sss"); -// g.setCode(200); -// System.out.println(g.hashCode()); -// return g; -// } - - @Test - void test03() { - String[] parts = "168".split("\\*"); // 使用 "*" 来分割字符串 - int result = 1; // 初始化结果为1 - for (String part : parts) { - int number = Integer.parseInt(part); // 将字符串部分解析为整数 - result *= number; // 将解析的整数与结果相乘 - } - System.out.println(result); - } - - @Test - public void test04() { - List list = new ArrayList<>(); - for (int i = 0; i < 2; i++) { - ApplyDeviceDto applyDeviceDto = new ApplyDeviceDto(); - applyDeviceDto.setDevice_code("t" + i); - applyDeviceDto.setVehicle_code("v" + i); - applyDeviceDto.setVehicle_type("1"); - applyDeviceDto.setQty(String.valueOf(12 + i)); - list.add(applyDeviceDto); - } - ApplyTaskRequest a = new ApplyTaskRequest(); - a.setList(list); - a.setRequestNo("sfasdf"); - String s = JSON.toJSONString(a); - JSONObject jsonObject = JSONObject.parseObject(s); - System.out.println(jsonObject); - } - @Test - public void test05() { - JSONArray errArr = null; - for (int i = 0; ObjectUtil.isNotEmpty(errArr) && i < errArr.size(); i++) { - JSONObject errObj = errArr.getJSONObject(i); - System.out.println("1"); - } - System.out.println("2"); - } - - public static void main(String[] args) { -// String f = "14070300003423092216085408190002"; -// System.out.println(f.substring(0, 12)); -// System.out.println(f.substring(18, f.length())); - -// System.out.println(5%3); - System.out.println(Double.parseDouble("0.0")); - } - @Test - // 测试场景:获取当前日期,格式化为"yyyyMMdd" - public void testGetFormattedDate() { - // 获取当前日期 - LocalDate currentDate = LocalDate.now(); - // 定义日期格式 - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd"); - // 格式化日期为"20231030" - String formattedDate = currentDate.format(formatter); - // 断言格式化后的日期是否符合预期 - Assert.assertEquals("20231030", formattedDate); - } - - @Test - public void testGetInventoryQtyByMaterialId() { - // 执行被测方法 - int actualQty = vehiclematerialgroupService.getInventoryQtyByMaterialId("030504010003"); - System.out.println(actualQty); - } - - @Test - public void testSplit() { - // 执行被测方法 - String str = "木托盘号(4)##物料编码(12)##数量(2-3)##吨量(单重X数量)##生产日期(11)##客户名称##订单号(12)"; - String[] split = str.split("##"); - for (int i = 0; i < split.length; i++) { - System.out.println(split[i]); - } - } -} diff --git a/lms/nladmin-ui/README.md b/lms/nladmin-ui/README.md index 352b6d7..30a932b 100644 --- a/lms/nladmin-ui/README.md +++ b/lms/nladmin-ui/README.md @@ -1,2 +1,2 @@ -# 武汉新锐MES前端 +# 宁德华弘LMS前端 diff --git a/lms/nladmin-ui/public/config.js b/lms/nladmin-ui/public/config.js index 6d6e117..ce71425 100644 --- a/lms/nladmin-ui/public/config.js +++ b/lms/nladmin-ui/public/config.js @@ -1,9 +1,9 @@ window.g = { dev: { - VUE_APP_BASE_API: 'http://10.93.41.201:8010' + VUE_APP_BASE_API: 'http://127.0.0.1:8011' }, prod: { - VUE_APP_BASE_API: 'http://10.93.41.201:8010' + VUE_APP_BASE_API: 'http://127.0.0.1:8011' } } 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 10873af..a28f5eb 100644 --- a/lms/nladmin-ui/src/views/wms/pdm/workerorder/index.vue +++ b/lms/nladmin-ui/src/views/wms/pdm/workerorder/index.vue @@ -56,7 +56,7 @@ /> - + @@ -78,6 +78,7 @@ type="success" icon="el-icon-position" size="mini" + disabled @click="synchronize()" > 同步 @@ -114,28 +115,78 @@ /> + + + + {{ item.region_name }} + {{ item.region_code }} + + + + + + + + + + {{ item.point_name }} + {{ item.point_code }} + + + + + + - + - + - + - + + + + + + + - - - - - + + - - + - - {{ item.region_name }} - {{ item.region_code }} - - - - - - - - - - {{ item.point_name }} - {{ item.point_code }} - - - - - - - - - - + + - {{ item.custer_NO }} - {{ item.custer_NAME }} - + v-for="item in userList" + :label="item.name" + :value="item.id" + /> @@ -270,7 +280,7 @@ - + @@ -284,6 +294,12 @@ + + + + + + - - + @@ -450,11 +460,11 @@ import pagination from '@crud/Pagination' import crudMdBaseWorkShop from '@/views/wms/basedata/workshop/mdBaseWorkshop' import MaterialDialog from '@/views/wms/sch/group/MaterialDialog.vue' import item from '@/layout/components/Sidebar/Item.vue' -import ProductionOrder from '@/views/wms/pdm/workerorder/ProductionOrder.vue' const defaultForm = { workorder_id: null, workorder_code: null, + plan_weight: null, plan_qty: null, real_qty: null, material_id: null, @@ -481,18 +491,16 @@ const defaultForm = { ext_id: null, is_delete: false, is_urgent: false, - order_no: null, - custer_no: null, + is_new: true, + inspector: null, + material_ratio: 0, pack_method: null, - order_subnum: 0, - guadansum: 0, - ext_data: 0, - show: false + ext_data: 0 } export default { name: 'PdmBdWorkorder', dicts: ['vehicle_type', 'pdm_workorder_status'], - components: { ProductionOrder, MaterialDialog, pagination, crudOperation, rrOperation, udOperation }, + components: { MaterialDialog, pagination, crudOperation, rrOperation, udOperation }, mixins: [presenter(), header(), form(defaultForm), crud()], cruds() { return CRUD({ @@ -525,9 +533,6 @@ export default { region_code: [ { required: true, message: '区域编码不能为空', trigger: 'change' } ] - /* workorder_type: [ - { required: true, message: '工单类型不能为空', trigger: 'blur' } - ]*/ }, queryTypeOptions: [ { key: 'workorder_code', display_name: '工单编号' }, @@ -537,23 +542,29 @@ export default { regionList: [], pointList: [], custerList: [], + userList: [], regionCodeParam: null, materialDialog: false, orderDialog: false, fullscreenLoading: false, - materialCode: null, flag: 1 } }, created() { this.getWorkShopList() this.getRegionList() - this.getCuster() + this.getUserList() }, methods: { item() { return item }, + getUserList() { + // 获取检验员列表 + crudPdmBdWorkorder.userList().then(res => { + this.userList = res + }) + }, // 钩子:在获取表格数据之前执行,false 则代表不获取数据 [CRUD.HOOK.beforeRefresh]() { return true @@ -579,11 +590,6 @@ export default { this.regionList = res }) }, - getCuster() { // 获取客户信息 - crudPdmBdWorkorder.getCuster().then(res => { - this.custerList = res - }) - }, getPointList() { // 获取点位列表 if (this.regionCodeParam) { const param = { @@ -599,10 +605,6 @@ export default { this.materialDialog = true this.flag = flag }, - getProductionOrder(code) { - this.orderDialog = true - this.materialCode = code - }, tableChanged(row, flag) { if (flag === 1) { this.form.material_name = row.material_name @@ -617,17 +619,7 @@ export default { this.form.raw_material_code = row.material_code } this.form.pack_method = row.pack_method - }, - clearRecordMesOrder() { - this.form.order_no = null - this.form.order_subnum = 0 - this.form.guadansum = 0 - }, - recordMesOrder(row) { // 操作mes工单 - this.clearRecordMesOrder() - this.form.order_no = row.forder_NO - this.form.order_subnum = row.forder_SUBNUM - this.form.guadansum = row.guadansum + this.form.standing_time = row.standing_time === null ? 0 : row.standing_time }, setRegionName(data) { // 清空 diff --git a/lms/nladmin-ui/src/views/wms/pdm/workerorder/pdmBdWorkorder.js b/lms/nladmin-ui/src/views/wms/pdm/workerorder/pdmBdWorkorder.js index a4eb005..bf80dbb 100644 --- a/lms/nladmin-ui/src/views/wms/pdm/workerorder/pdmBdWorkorder.js +++ b/lms/nladmin-ui/src/views/wms/pdm/workerorder/pdmBdWorkorder.js @@ -54,5 +54,11 @@ export function getCuster() { method: 'post' }) } +export function userList() { + return request({ + url: 'api/pdmBdWorkorder/userList', + method: 'post' + }) +} -export default { add, edit, del, submits, orderSynchronize, queryMaterials, getCuster } +export default { add, edit, del, submits, orderSynchronize, queryMaterials, userList }