diff --git a/lms/nladmin-system/doc/wms.xls b/lms/nladmin-system/doc/wms.xls index 38c5808..8a216e0 100644 Binary files a/lms/nladmin-system/doc/wms.xls and b/lms/nladmin-system/doc/wms.xls differ diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/common/enums/wms/PointStatusEnum.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/common/enums/wms/PointStatusEnum.java deleted file mode 100644 index 2cdc02f..0000000 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/common/enums/wms/PointStatusEnum.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.nl.common.enums.wms; - -import lombok.AllArgsConstructor; -import lombok.Getter; - -/** - * @Author: lyd - * @Description: - * @Date: 2023/5/15 - */ -@Getter -@AllArgsConstructor -public enum PointStatusEnum { - EMPTY_PLACE("1", "空位"), - FULL_MATERIAL("2", "有料"), - EMPTY_VEHICLE("3", "空载具"); - private final String value; - private final String description; -} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/common/exception/BadRequestException.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/common/exception/BadRequestException.java index 627bdef..53d8c72 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/common/exception/BadRequestException.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/common/exception/BadRequestException.java @@ -35,7 +35,19 @@ public class BadRequestException extends RuntimeException{ public BadRequestException(String msg){ super(msg); - log.error("异常信息:{}", msg); + // 获取堆栈跟踪元素 + StackTraceElement[] stackTraceElements = getStackTrace(); + + if (stackTraceElements.length > 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 }