From d79001655c548a728f9c0eb6f00beba09ae190f3 Mon Sep 17 00:00:00 2001 From: anthonywj Date: Fri, 16 Aug 2024 10:52:02 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=A4=87=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/glxp/api/constant/Constant.java | 3 + .../auth/SysWorkplaceController.java | 4 +- .../IoCollectOrderCodeManController.java | 103 ++++++++++++++---- .../glxp/api/entity/auth/SysWorkplace.java | 3 + .../api/entity/collect/IoCollectOrder.java | 6 + .../glxp/api/req/inout/AddTagCodeReqeust.java | 4 + .../com/glxp/api/util/GennerOrderUtils.java | 20 ++++ 7 files changed, 119 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/glxp/api/constant/Constant.java b/src/main/java/com/glxp/api/constant/Constant.java index e2ed9b9f2..fb71b1e0a 100644 --- a/src/main/java/com/glxp/api/constant/Constant.java +++ b/src/main/java/com/glxp/api/constant/Constant.java @@ -42,6 +42,9 @@ public class Constant { public static final String DEV_DWX = "DWX"; //设备维修单号 + public static final String SPLIT_ORDER = "WD"; //工位作业扫码生成出入库单 + + /** * 盘点单据前缀 */ diff --git a/src/main/java/com/glxp/api/controller/auth/SysWorkplaceController.java b/src/main/java/com/glxp/api/controller/auth/SysWorkplaceController.java index 2098c9ae1..9e8a99162 100644 --- a/src/main/java/com/glxp/api/controller/auth/SysWorkplaceController.java +++ b/src/main/java/com/glxp/api/controller/auth/SysWorkplaceController.java @@ -214,8 +214,6 @@ public class SysWorkplaceController extends BaseController { } - - @Resource private WarehouseUserService warehouseUserService; @@ -224,7 +222,7 @@ public class SysWorkplaceController extends BaseController { @PostMapping("/udiwms/sysWorkplace/getUsers") public BaseResponse getUser(@RequestBody SysWorkplaceRequest request) { - if (request.getInvCode() == null){ + if (request.getInvCode() == null) { //todo 没有搜索仓库 搜索所有用户 } List warehouseUserEntities = warehouseUserService.getListByCode(request.getInvCode()); diff --git a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderCodeManController.java b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderCodeManController.java index e85a0c11f..07df7d5ac 100644 --- a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderCodeManController.java +++ b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderCodeManController.java @@ -6,6 +6,7 @@ import com.github.pagehelper.PageInfo; import com.glxp.api.common.enums.ResultEnum; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.constant.Constant; import com.glxp.api.constant.WorkOperType; import com.glxp.api.controller.BaseController; import com.glxp.api.entity.auth.SysWorkplace; @@ -26,7 +27,9 @@ import com.glxp.api.service.collect.IoCollectOrderBizService; import com.glxp.api.service.collect.IoCollectOrderCodeManService; import com.glxp.api.service.collect.IoCollectOrderService; import com.glxp.api.service.inout.IoSplitFifoCodeService; +import com.glxp.api.util.GennerOrderUtils; import com.glxp.api.util.IntUtil; +import com.glxp.api.util.OrderNoTypeBean; import com.glxp.api.util.udi.FilterUdiUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -58,6 +61,8 @@ public class IoCollectOrderCodeManController extends BaseController { UdiRelevanceService udiRelevanceService; @Resource IoSplitFifoCodeService splitFifoCodeService; + @Resource + GennerOrderUtils gennerOrderUtils; /** @@ -95,13 +100,10 @@ public class IoCollectOrderCodeManController extends BaseController { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } + SysWorkplace workPlace = sysWorkPlaceService.getWorkplace(addTagCodeReqeust.getWorkPlaceCode()); + IoCollectOrderBiz collectOrderBiz = null; + IoCollectOrder collectOrder = null; - IoCollectOrder collectOrder = collectOrderService.getByBillNo(addTagCodeReqeust.getBillNo()); - BasicCollectBustypeEntity bustypeEntity = bustypeService.findByCode(collectOrder.getBusType()); - SysWorkplace workPlace = sysWorkPlaceService.getWorkplace(collectOrder.getWorkPlaceCode()); - - if (collectOrder == null) - return ResultVOUtils.error(500, "单据不存在!"); //1.校验UDI码完整性 String code = addTagCodeReqeust.getCode(); if (StringUtils.isBlank(code)) return ResultVOUtils.error(ResultEnum.DATA_ERROR); @@ -118,32 +120,73 @@ public class IoCollectOrderCodeManController extends BaseController { else udiRelevanceResponse = udiRelevanceResponses.get(0); - IoCollectOrderBiz collectOrderBiz = null; List collectOrderBizs = collectOrderBizService.listByBillNo(addTagCodeReqeust.getBillNo()); //2.校验是否处方单UDI码 if (IntUtil.value(workPlace.getOperationType()) == WorkOperType.TYPE_GEN_ORDER) { + if (StrUtil.isEmpty(addTagCodeReqeust.getBillNo())) { + String orderNo = gennerOrderUtils.createWdOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER, "yyyyMMdd")); + BasicCollectBustypeEntity bustypeEntity = bustypeService.findByCode(workPlace.getOrderId()); + IoCollectOrder.builder() + .billNo(orderNo) + .busType(bustypeEntity.getCode()) + .fromType(bustypeEntity.getFromType()) + .fromCorp(addTagCodeReqeust.getFromCorp()) + .billTime(new Date()) + .workPlaceCode(workPlace.getWorkplaceId() + "") + .createTime(new Date()) + .createUser(getUserId() + "") + .updateTime(new Date()) + .tagStatus(1) + .build(); + collectOrderService.save(collectOrder); + } + //直接扫码单生成业务单 collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity); collectOrderBiz.setOrderIdFk(collectOrder.getBillNo()); collectOrderBizService.saveOrUpdate(collectOrderBiz); } else if (IntUtil.value(workPlace.getOperationType()) == WorkOperType.TYPE_VAIL_BATCH) { - + collectOrder = collectOrderService.getByBillNo(addTagCodeReqeust.getBillNo()); + if (collectOrder == null) + return ResultVOUtils.error(500, "单据不存在!"); //3.校验该UDI码是否已经出库(是否在预出库队列) Boolean b1 = splitFifoCodeService.isExitCode(code, collectOrder.getWorkPlaceCode()); if (!b1) { return ResultVOUtils.error(500, "该追溯码未上货,无法使用!"); } - //按单校验三期 collectOrderBiz = vailByBatchNo(udiRelevanceResponses, collectOrderBizs, udiEntity); - if (collectOrderBiz == null) - return ResultVOUtils.error(500, "非此单据追溯码!"); - else { - collectOrderBiz.setScanActCount(IntUtil.value(collectOrderBiz.getScanActCount()) + 1); + + //先不管 + if (IntUtil.value(workPlace.getCheckInsert()) == 1) { + + } else { + } - } else if (IntUtil.value(workPlace.getOperationType()) == WorkOperType.TYPE_UNVAIL_BATCH) { + if (IntUtil.value(workPlace.getWarnType()) == 1) { + //信息提醒 + if (collectOrderBiz == null) { + collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity); + collectOrderBiz.setOrderIdFk(collectOrder.getBillNo()); + } else { + collectOrderBiz.setScanActCount(IntUtil.value(collectOrderBiz.getScanActCount()) + 1); + } + } else { + //禁止录入 + if (collectOrderBiz == null) + return ResultVOUtils.error(500, "非此单据追溯码!"); + else { + collectOrderBiz.setScanActCount(IntUtil.value(collectOrderBiz.getScanActCount()) + 1); + } + } + + + } else if (IntUtil.value(workPlace.getOperationType()) == WorkOperType.TYPE_UNVAIL_BATCH) { + collectOrder = collectOrderService.getByBillNo(addTagCodeReqeust.getBillNo()); + if (collectOrder == null) + return ResultVOUtils.error(500, "单据不存在!"); //3.校验该UDI码是否已经出库(是否在预出库队列) Boolean b1 = splitFifoCodeService.isExitCode(code, collectOrder.getWorkPlaceCode()); if (!b1) { @@ -152,10 +195,28 @@ public class IoCollectOrderCodeManController extends BaseController { //按单不校验三期 collectOrderBiz = vailNoBatchNo(udiRelevanceResponses, collectOrderBizs); - if (collectOrderBiz == null) - return ResultVOUtils.error(500, "非此单据追溯码!"); - else { - collectOrderBiz.setScanActCount(IntUtil.value(collectOrderBiz.getScanActCount()) + 1); + //先不管 + if (IntUtil.value(workPlace.getCheckInsert()) == 1) { + + } else { + + } + if (IntUtil.value(workPlace.getWarnType()) == 1) { + //信息提醒 + if (collectOrderBiz == null) { + collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity); + collectOrderBiz.setOrderIdFk(collectOrder.getBillNo()); + } else { + collectOrderBiz.setScanActCount(IntUtil.value(collectOrderBiz.getScanActCount()) + 1); + } + + } else { + //禁止录入 + if (collectOrderBiz == null) + return ResultVOUtils.error(500, "非此单据追溯码!"); + else { + collectOrderBiz.setScanActCount(IntUtil.value(collectOrderBiz.getScanActCount()) + 1); + } } } collectOrderBizService.updateById(collectOrderBiz); @@ -184,7 +245,7 @@ public class IoCollectOrderCodeManController extends BaseController { .build(); collectOrderCodeManService.save(collectOrderCodeMan); } - return ResultVOUtils.success("赋码成功"); + return ResultVOUtils.success(collectOrder); } @@ -213,8 +274,8 @@ public class IoCollectOrderCodeManController extends BaseController { .batchNo(udiEntity.getBatchNo()) .productDate(udiEntity.getProduceDate()) .expireDate(udiEntity.getExpireDate()) - .count(1) - .actCount(1) + .count(0) + .actCount(0) .scanCount(1) .scanActCount(1) .measureUnit(udiRelevanceResponse.getMeasname()) diff --git a/src/main/java/com/glxp/api/entity/auth/SysWorkplace.java b/src/main/java/com/glxp/api/entity/auth/SysWorkplace.java index 46b08a499..80abf001e 100644 --- a/src/main/java/com/glxp/api/entity/auth/SysWorkplace.java +++ b/src/main/java/com/glxp/api/entity/auth/SysWorkplace.java @@ -100,6 +100,9 @@ public class SysWorkplace implements Serializable { @TableField(value = "unitTittle") private String unitTittle; + /** + * 单据类型ID + */ @TableField(value = "orderId") private String orderId; diff --git a/src/main/java/com/glxp/api/entity/collect/IoCollectOrder.java b/src/main/java/com/glxp/api/entity/collect/IoCollectOrder.java index 85e396852..8e0bca905 100644 --- a/src/main/java/com/glxp/api/entity/collect/IoCollectOrder.java +++ b/src/main/java/com/glxp/api/entity/collect/IoCollectOrder.java @@ -10,13 +10,19 @@ import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; import java.util.Date; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; /** * 采集点单据主表 */ @ApiModel(value = "com-glxp-api-entity-collect-IoCollectOrder") @Data +@Builder +@AllArgsConstructor +@NoArgsConstructor @TableName(value = "io_collect_order") public class IoCollectOrder implements Serializable { @TableId(value = "id", type = IdType.INPUT) diff --git a/src/main/java/com/glxp/api/req/inout/AddTagCodeReqeust.java b/src/main/java/com/glxp/api/req/inout/AddTagCodeReqeust.java index baed30f39..859a9e2ca 100644 --- a/src/main/java/com/glxp/api/req/inout/AddTagCodeReqeust.java +++ b/src/main/java/com/glxp/api/req/inout/AddTagCodeReqeust.java @@ -20,5 +20,9 @@ public class AddTagCodeReqeust { private String billNo; + private String workPlaceCode; + private String fromCorp; + private String invCode; + } diff --git a/src/main/java/com/glxp/api/util/GennerOrderUtils.java b/src/main/java/com/glxp/api/util/GennerOrderUtils.java index 20507f219..715f30ef1 100644 --- a/src/main/java/com/glxp/api/util/GennerOrderUtils.java +++ b/src/main/java/com/glxp/api/util/GennerOrderUtils.java @@ -137,6 +137,26 @@ public class GennerOrderUtils { return completionRandom(serialWithPrefix, orderNoTypeEnum); } + + public String createWdOrderNo(OrderNoTypeBean orderNoTypeEnum) { + //获得单号前缀 + //格式 固定前缀 +时间前缀 示例 + String formNoPrefix = getFormNoPrefix(orderNoTypeEnum); + //获得缓存key + String cacheKey = getScCacheKey(formNoPrefix); + //获得当日自增数 + Long incrementalSerial = redisUtil.incr(cacheKey, 1); + // 设置key过期时间, 保证每天的流水号从1开始 + if (incrementalSerial == 1) { + //设置失效时间 凌晨过期 + redisUtil.expire(cacheKey, getSecondsNextEarlyMorning()); + } + //组合单号并补全流水号 + String serialWithPrefix = completionSerial(formNoPrefix, incrementalSerial, orderNoTypeEnum); + //补全随机数 + return completionRandom(serialWithPrefix, orderNoTypeEnum); + } + public String createStOrderNo(OrderNoTypeBean orderNoTypeEnum) { //获得单号前缀 //格式 固定前缀 +时间前缀 示例