diff --git a/src/main/java/com/glxp/api/constant/Constant.java b/src/main/java/com/glxp/api/constant/Constant.java index c197d1e18..77e5e1bba 100644 --- a/src/main/java/com/glxp/api/constant/Constant.java +++ b/src/main/java/com/glxp/api/constant/Constant.java @@ -284,6 +284,8 @@ public class Constant { public static final String ORDER_ACTION_SUP_DELAUDIT = "supDelAudit"; public static final String ORDER_ACTION_SUP_INOUT = "supInout"; public static final String ORDER_ACTION_SUP_PREIN = "preInOrder"; + public static final String ORDER_ACTION_WAIT_CHECK = "waitCheck"; //待校验 + public static final String ORDER_ACTION_WAIT_DEAL = "waitDeal"; //待配货/拣货 public static final String ORDER_THIRD_UPLOAD = "thirdUpload"; public static final String SYNC_REMARK = "syncRemark"; diff --git a/src/main/java/com/glxp/api/constant/ConstantStatus.java b/src/main/java/com/glxp/api/constant/ConstantStatus.java index 010108580..305c0b26c 100644 --- a/src/main/java/com/glxp/api/constant/ConstantStatus.java +++ b/src/main/java/com/glxp/api/constant/ConstantStatus.java @@ -317,10 +317,10 @@ public class ConstantStatus { public static final int BUS_TYPE_DD = 5; - public static final int SCAN_NO_BUS = 0; //无业业务单扫码拣货 - public static final int SCAN_BUS_PI = 1; //有业务单有三期拣货 - public static final int SCAN_NO_PI = 2; //有业务单无三期拣货 - public static final int SCAN_ALL_PI = 3; //有业务单拣货(有无三期) + public static final int SCAN_NO_BUS = 0; //扫码直接生成业务单 + public static final int SCAN_BUS_PI = 1; //有三期业务单配/拣货 + public static final int SCAN_NO_PI = 2; //无三期业务单配/拣货 + public static final int SCAN_ALL_PI = 3; //有三期业务单校验 //按货位出库 public static final int SPACE_OUT_NULL = 0; //无,不按货位出库 diff --git a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java index 4af868fc9..9c2fed714 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -582,13 +582,13 @@ public class IoCodeTempController extends BaseController { } - if (addOrderRequest.getOrderType() == ConstantStatus.ORDER_TYPE_NORMAL && bussinessTypeEntity.isCheckEnable()) { + if (bussinessTypeEntity.getCheckWebNew() == 1 && bussinessTypeEntity.isCheckEnable()) { String errMsg = ioCheckInoutService.checkCode(genDetaiEntity); if (errMsg != null) { return ResultVOUtils.error(500, errMsg); } else codeTempService.updateById(exitLocalEntity); - } else if (addOrderRequest.getOrderType() == ConstantStatus.ORDER_TYPE_WAIT && bussinessTypeEntity.isCheckEnable()) { + } else if (bussinessTypeEntity.getCheckWebNew() == 2 && bussinessTypeEntity.isCheckEnable()) { String errMsg = ioCheckInoutService.checkNoPiCode(genDetaiEntity); if (errMsg != null) { return ResultVOUtils.error(500, errMsg); @@ -632,7 +632,6 @@ public class IoCodeTempController extends BaseController { //产品是否可以以使用单元入库 udiRelevanceResponses = udiRelevanceService.selectGroupByNameCode(codeEnttity.getNameCode(), false); if (udiRelevanceResponses.size() >= 1) { -// UdiRelevanceResponse udiRelevanceResponse = udiRelevanceResponses.get(0); if (udiRelevanceResponse == null) { return ResultVOUtils.error(500, "该产品信息未维护!"); } else if (!udiRelevanceResponse.getUseDy() && udiRelevanceResponse.getDiType() == ConstantStatus.DITYPE_SYDY) { @@ -697,7 +696,7 @@ public class IoCodeTempController extends BaseController { } - if (addOrderRequest.getOrderType() == ConstantStatus.ORDER_TYPE_NORMAL && bussinessTypeEntity.isCheckEnable() && bussinessTypeEntity.getCheckWebNew() != 0) { + if (IntUtil.value(addOrderRequest.getOrderType()) == ConstantStatus.ORDER_TYPE_NORMAL && bussinessTypeEntity.isCheckEnable() && bussinessTypeEntity.getCheckWebNew() != 0) { boolean isBillExit = orderDetailBizService.isExit(orderEntity.getBillNo()); if (!isBillExit) { @@ -711,18 +710,6 @@ public class IoCodeTempController extends BaseController { if (baseResponse != null) { deleteEmptyBillNo(orderEntity); } - - //判断证书是否过期 -// if (codeEnttity.getRelId() != null && bussinessTypeEntity.isCheckCertExpire()) { -// -// SupProductEntity supProductEntity = supProductService.findByRelIdFk(codeEnttity.getRelId() + ""); -// if(supProductEntity!=null){ -// -// } -// if (DateUtil.) -// } - - genDetaiEntity = codeEnttity; if (baseResponse == null) { baseResponse = checkSupId(bussinessTypeEntity, codeEnttity, unitFk); @@ -760,13 +747,13 @@ public class IoCodeTempController extends BaseController { } //是否边扫边校验 - if (addOrderRequest.getOrderType() == ConstantStatus.ORDER_TYPE_NORMAL && bussinessTypeEntity.isCheckEnable()) { + if (bussinessTypeEntity.getCheckWebNew() == 1 && bussinessTypeEntity.isCheckEnable()) { String errMsg = ioCheckInoutService.checkCode(codeEnttity); if (errMsg != null) { return ResultVOUtils.error(500, errMsg); } else codeTempService.insert(codeEnttity); - } else if (addOrderRequest.getOrderType() == ConstantStatus.ORDER_TYPE_WAIT && bussinessTypeEntity.isCheckEnable()) { + } else if (bussinessTypeEntity.getCheckWebNew() == 2 && bussinessTypeEntity.isCheckEnable()) { String errMsg = ioCheckInoutService.checkNoPiCode(codeEnttity); if (errMsg != null) { return ResultVOUtils.error(500, errMsg); @@ -787,14 +774,8 @@ public class IoCodeTempController extends BaseController { InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByOne(ConstantStatus.ACTION_TYPE_ADVANCE); int count = 0; if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_NULL) { -// if (StrUtil.isNotEmpty(codeTempEntity.getSerialNo())) { -// count = invPreProductDetailService.vailStockCountByCode(null, invWarehouseEntity.getCode(), null, codeTempEntity.getCode()); -// } else count = invPreProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), null, invWarehouseEntity.getCode(), null); } else if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_SET) { -// if (StrUtil.isNotEmpty(codeTempEntity.getSerialNo())) { -// count = invPreProductDetailService.vailStockCountByCode(null, invWarehouseEntity.getCode(), codeTempEntity.getPreSpaceCode(), codeTempEntity.getCode()); -// } else count = invPreProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), null, invWarehouseEntity.getCode(), codeTempEntity.getPreSpaceCode()); } else if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_CODE) { //按指定货位出库 @@ -812,35 +793,12 @@ public class IoCodeTempController extends BaseController { return ResultVOUtils.error(500, "添加失败,该产品未上架货位!"); } } else { -// if (StrUtil.isNotEmpty(codeTempEntity.getSerialNo())) { -// count = invPreProductDetailService.vailStockCountByCode(null, invWarehouseEntity.getCode(), codeTempEntity.getPreSpaceCode(), codeTempEntity.getCode()); -// } else count = invPreProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), null, invWarehouseEntity.getCode(), codeTempEntity.getPreSpaceCode()); } } - -// InvPreProductDetailEntity invPreinDetailEntity = invPreProductDetailService.findUseOneByCode(codeTempEntity.getCode()); if (count <= 0) { return ResultVOUtils.error(500, "寄售库存数量不足!"); } else { -// if (StrUtil.isNotEmpty(invPreinDetailEntity.getBatchNo()) && StrUtil.isNotEmpty(codeTempEntity.getBatchNo()) -// && !invPreinDetailEntity.getBatchNo().equals(codeTempEntity.getBatchNo())) { -// return ResultVOUtils.error(500, "当前批次号与预验收录入批次号不匹配!"); -// } -// if (StrUtil.isNotEmpty(codeTempEntity.getOrderId())) {//非首次添加 -// if (StrUtil.isEmpty(codeTempEntity.getSerialNo())) {//该单据已有该产品 -// IoCodeTempEntity tempEntity = codeTempService.findByUnique(codeTempEntity.getOrderId(), codeTempEntity.getCode()); -// if (tempEntity != null) { -// if (count < (tempEntity.getMyCount() + 1)) { -// return ResultVOUtils.error(500, "超出寄售库存数量"); -// } -// } -// } else { -// if (count < 1) { -// return ResultVOUtils.error(500, "寄售库存数量不足"); -// } -// } -// } int exitCount = IntUtil.value(codeTempService.selectExitCount(codeTempEntity.getOrderId(), codeTempEntity.getBatchNo(), codeTempEntity.getRelId(), codeTempEntity.getSupId())); if ((codeTempEntity.getMyReCount() + exitCount) > count) { return ResultVOUtils.error(500, "寄售库存数量不足"); @@ -1109,7 +1067,6 @@ public class IoCodeTempController extends BaseController { if (StrUtil.isEmpty(filterCodeRequest.getOrderId())) { return ResultVOUtils.error(500, "单据号不能为空!"); } - List list = codeTempService.findCodeList(filterCodeRequest); PageInfo pageInfo = new PageInfo<>(list); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); @@ -1118,9 +1075,11 @@ public class IoCodeTempController extends BaseController { return ResultVOUtils.success(pageSimpleResponse); } + @AuthRuleAnnotation("") @PostMapping("/udiwms/addCode/updateBindSup") @Log(title = "单据管理", businessType = BusinessType.UPDATE) + public BaseResponse updateBindSup(@RequestBody IoCodeTempEntity codeSaveRequest, BindingResult bindingResult) { if (bindingResult.hasErrors()) { diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java index 4d3b6066d..a92a07dda 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java @@ -28,9 +28,7 @@ import com.glxp.api.req.basic.BasicEntrustRecRequest; import com.glxp.api.req.inout.*; import com.glxp.api.req.system.DeleteRequest; import com.glxp.api.res.PageSimpleResponse; -import com.glxp.api.res.inout.IoOrderDetailBizResponse; -import com.glxp.api.res.inout.IoOrderResponse; -import com.glxp.api.res.inout.PdaBusOrderResponse; +import com.glxp.api.res.inout.*; import com.glxp.api.service.auth.CustomerService; import com.glxp.api.service.auth.InvBusUserService; import com.glxp.api.service.auth.InvWarehouseService; @@ -44,6 +42,7 @@ import com.glxp.api.util.IntUtil; import com.glxp.api.util.OrderNoTypeBean; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -95,6 +94,9 @@ public class IoOrderController extends BaseController { } if (StrUtil.isNotBlank(filterOrderRequest.getVueType())) { orderService.setActions(filterOrderRequest); + if (CollUtil.isEmpty(filterOrderRequest.getActions())) { + return ResultVOUtils.success(null); + } } if (StrUtil.isNotEmpty(filterOrderRequest.getSupInoivceSearch())) { orderService.setInvoiceFiltes(filterOrderRequest); @@ -202,6 +204,7 @@ public class IoOrderController extends BaseController { return ResultVOUtils.error(500, "请先录入产品!"); } + BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); String vailKey = ""; for (IoOrderDetailBizEntity orderDetailBizEntity : orderDetailBizEntities) { @@ -214,16 +217,20 @@ public class IoOrderController extends BaseController { if (orderDetailBizEntity.getCount() == 0) { return ResultVOUtils.error(500, orderDetailBizEntity.getCoName() + "产品数量不能为0!"); } - if (addOrderRequest.getFromVailPi() != 2 && - StrUtil.isEmpty(orderDetailBizEntity.getBatchNo()) - && StrUtil.isEmpty(orderDetailBizEntity.getProductDate()) - && StrUtil.isEmpty(orderDetailBizEntity.getExpireDate())) { - return ResultVOUtils.error(500, orderDetailBizEntity.getCoName() + "三期不能全为空!"); + + if (bussinessTypeEntity.getCheckWebNew() == 1 || bussinessTypeEntity.getCheckWebNew() == 3) { + if (StrUtil.isEmpty(orderDetailBizEntity.getBatchNo()) + && StrUtil.isEmpty(orderDetailBizEntity.getProductDate()) + && StrUtil.isEmpty(orderDetailBizEntity.getExpireDate())) { + return ResultVOUtils.error(500, orderDetailBizEntity.getCoName() + "三期不能全为空!"); + } } + + } - ioAddInoutService.dealBusProcess(orderEntity, addOrderRequest.getFromVailPi()); + ioAddInoutService.dealBusProcess(orderEntity, bussinessTypeEntity); return ResultVOUtils.success("提交成功!"); } @@ -271,7 +278,7 @@ public class IoOrderController extends BaseController { return ResultVOUtils.error(500, "单据类型不能为空"); BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(addOrderRequest.getAction()); - BasicCorpEntity basicCorpEntity = new BasicCorpEntity(); + BasicCorpEntity basicCorpEntity; //要是特殊往来信息没有就创建 if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_INPUT && bussinessTypeEntity.isGenUnit()) { basicCorpEntity = basicCorpService.selectByName(orderEntity.getFromCorp()); @@ -308,7 +315,7 @@ public class IoOrderController extends BaseController { return ResultVOUtils.success("保存成功!"); } - //等待校验-立即提交 + //待配货/待校验-立即提交 @RepeatSubmit() @AuthRuleAnnotation("") @PostMapping("warehouse/inout/submitOrderWeb") @@ -327,24 +334,47 @@ public class IoOrderController extends BaseController { if (CollUtil.isEmpty(orderDetailCodeEntities)) { return ResultVOUtils.error(500, "单据还未扫码或和扫码校验存在异常无法提交!"); } - + BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); if (checkInoutService.checkManual(addOrderRequest.getBillNo())) { if (CollUtil.isNotEmpty(orderDetailBizEntities)) { - String errMsg = checkInoutService.bizOrderCheck(orderDetailBizEntities, orderDetailCodeEntities); - - if (StrUtil.isNotEmpty(errMsg)) { - return ResultVOUtils.error(500, errMsg); - } - errMsg = checkInoutService.codeOrderCheck(orderDetailCodeEntities, orderDetailBizEntities); - if (StrUtil.isNotEmpty(errMsg)) { - return ResultVOUtils.error(500, errMsg); + if (bussinessTypeEntity.getCheckWebNew() == 1) { + String errMsg = checkInoutService.bizOrderCheck(orderDetailBizEntities, orderDetailCodeEntities); + if (StrUtil.isNotEmpty(errMsg)) { + return ResultVOUtils.error(500, errMsg); + } + errMsg = checkInoutService.codeOrderCheck(orderDetailCodeEntities, orderDetailBizEntities); + if (StrUtil.isNotEmpty(errMsg)) { + return ResultVOUtils.error(500, errMsg); + } + saveOrderWeb(addOrderRequest); + orderEntity.setStatus(ORDER_STATUS_CHECK_PROCESS); + orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); + orderService.update(orderEntity); + checkInoutService.check(addOrderRequest.getBillNo()); + } else { + String errMsg = checkInoutService.bizNoPiCheck(orderDetailBizEntities, orderEntity); + if (StrUtil.isNotEmpty(errMsg)) { + return ResultVOUtils.error(500, errMsg); + } + orderDetailBizService.deleteByOrderId(addOrderRequest.getBillNo()); + for (IoOrderDetailCodeEntity orderDetailCodeEntity : orderDetailCodeEntities) { + IoOrderDetailBizEntity orderDetailBizEntity = new IoOrderDetailBizEntity(); + BeanUtils.copyProperties(orderDetailCodeEntity, orderDetailBizEntity); + orderDetailBizEntity.setId(null); + orderDetailBizEntity.setCount(IntUtil.value(orderDetailCodeEntity.getReCount())); + getSomeBiz(orderDetailBizEntities, orderDetailBizEntity); + orderDetailBizService.insert(orderDetailBizEntity); + } + saveOrderWeb(addOrderRequest); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK); + orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); + orderService.update(orderEntity); + ioAddInoutService.dealProcess(orderEntity); + checkInoutService.check(addOrderRequest.getBillNo()); } - saveOrderWeb(addOrderRequest); - orderEntity.setStatus(ORDER_STATUS_CHECK_PROCESS); - orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); - orderService.update(orderEntity); - checkInoutService.check(addOrderRequest.getBillNo()); + + } else { return ResultVOUtils.error(500, "单据校验提交失败,请先录入业务单据!"); } @@ -359,6 +389,72 @@ public class IoOrderController extends BaseController { } + // 待校验提交,以扫码结果提交 + @RepeatSubmit() + @AuthRuleAnnotation("") + @PostMapping("warehouse/inout/codeResult/submitOrderWeb") + @Log(title = "单据管理", businessType = BusinessType.UPDATE) + public BaseResponse submitByCodeResult(@RequestBody AddOrderRequest addOrderRequest) { + + IoOrderEntity orderEntity = orderService.findByBillNo(addOrderRequest.getBillNo()); + BaseResponse tempResponse = checkSubmitEnable(orderEntity); + if (tempResponse != null) + return tempResponse; + + //校验单据是否已完成 + List orderDetailCodeEntities = orderDetailCodeService.findByOrderId(addOrderRequest.getBillNo()); + if (CollUtil.isEmpty(orderDetailCodeEntities)) { + return ResultVOUtils.error(500, "单据还未扫码或和扫码校验存在异常无法提交!"); + } + saveOrderWeb(addOrderRequest); + orderEntity.setStatus(ORDER_STATUS_CHECK_PROCESS); + orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); + orderService.update(orderEntity); + checkInoutService.checkCodeResult(addOrderRequest.getBillNo()); + return ResultVOUtils.success("提交成功!"); + } + + + //待校验提交,以比对结果提交 + @RepeatSubmit() + @AuthRuleAnnotation("") + @Transactional(rollbackFor = Exception.class) + @PostMapping("warehouse/inout/codeCheck/submitOrderWeb") + @Log(title = "单据管理", businessType = BusinessType.UPDATE) + public BaseResponse submitByCheckResult(@RequestBody AddOrderRequest addOrderRequest) { + + IoOrderEntity orderEntity = orderService.findByBillNo(addOrderRequest.getBillNo()); + BaseResponse tempResponse = checkSubmitEnable(orderEntity); + if (tempResponse != null) + return tempResponse; + + //校验单据是否已完成 + List codeEntities = codeTempService.findJoinByOrderId(addOrderRequest.getBillNo()); + if (CollUtil.isEmpty(codeEntities)) { + return ResultVOUtils.error(500, "单据还未扫码或和扫码校验存在异常无法提交!"); + } + + List codeTempEntities = getCheckRusultCode(addOrderRequest.getBillNo(), codeEntities); + for (IoCodeResponse codeTempEntity : codeTempEntities) { + if (IntUtil.value(codeTempEntity.getCheckStatus()) == 2) { + return ResultVOUtils.error(501, "存在多余条码,请先剔除后重新提交!"); + } + } + codeTempService.deleteByBillNo(addOrderRequest.getBillNo()); + for (IoCodeResponse codeResponse : codeTempEntities) { + if (IntUtil.value(codeResponse.getCheckStatus()) == 0) { + IoCodeTempEntity codeTempEntity = new IoCodeTempEntity(); + BeanUtil.copyProperties(codeResponse, codeTempEntity); + codeTempService.insert(codeTempEntity); + } + } + orderEntity.setStatus(ORDER_STATUS_CHECK_PROCESS); + ioAddInoutService.dealProcess(orderEntity); + checkInoutService.checkRightResult(addOrderRequest.getBillNo()); + return ResultVOUtils.success("提交成功!"); + + } + public BaseResponse checkSubmitEnable(IoOrderEntity orderEntity) { if (orderEntity == null) { return ResultVOUtils.error(500, "提交失败,请先添加物资!"); @@ -374,6 +470,98 @@ public class IoOrderController extends BaseController { return null; } + @AuthRuleAnnotation("") + @GetMapping("admin/warehouse/inout/findCheckCode") + public BaseResponse findCheckCode(FilterCodeRequest filterCodeRequest) { + //校验单据是否已完成 + List codeTempEntities = codeTempService.findJoinByOrderId(filterCodeRequest.getOrderId()); + List codeEntities = getCheckRusultCode(filterCodeRequest.getOrderId(), codeTempEntities); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(0l); + pageSimpleResponse.setList(codeEntities); + return ResultVOUtils.success(pageSimpleResponse); + } + + + public List getOtherCode(String billNo, List codeEntities) { + List orderDetailBizEntities = orderDetailBizService.findByOrderId(billNo); + + for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) { + bizEntity.setCheckSuccess(false); + bizEntity.setScanCount(0); + } + for (IoCodeTempEntity codeTempEntity : codeEntities) { + codeTempEntity.setCheckSuccess(false); + } + List otherCodes = new ArrayList<>(); + for (IoCodeTempEntity codeEntity : codeEntities) { + for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) { + if (checkId(bizEntity, codeEntity) == null + && checkBatchNo(bizEntity, codeEntity) == null + && checkProductDate(bizEntity, codeEntity) == null + && checkExpireDate(bizEntity, codeEntity) == null) { + int curCount = IntUtil.value(codeEntity.getReCount()) + bizEntity.getScanCount(); + if (bizEntity.getCount() < curCount) { + otherCodes.add(codeEntity); + } else { + bizEntity.setScanCount(curCount); + } + codeEntity.setCheckSuccess(true); + break; + } + } + if (!codeEntity.isCheckSuccess()) { + otherCodes.add(codeEntity); + } + } + return otherCodes; + } + + public List getCheckRusultCode(String billNo, List codeEntities) { + List orderDetailCodeEntities = orderDetailCodeService.findByOrderId(billNo); + List orderDetailBizEntities = orderDetailBizService.findByOrderId(billNo); + List orderCheckResultResponses = ioCheckInoutService.combineCheck(orderDetailBizEntities, orderDetailCodeEntities); + if (CollUtil.isNotEmpty(orderCheckResultResponses)) { + for (IoOrderCheckResultResponse orderCheckResultResponse : orderCheckResultResponses) { + for (IoCodeResponse codeTempEntity : codeEntities) { + if (IntUtil.value(codeTempEntity.getRelId()) == IntUtil.value(orderCheckResultResponse.getBindRlFk()) + && (StrUtil.nullToEmpty(codeTempEntity.getBatchNo()).equals(StrUtil.nullToEmpty(orderCheckResultResponse.getBBatchNo())) + || StrUtil.nullToEmpty(codeTempEntity.getBatchNo()).equals(StrUtil.nullToEmpty(orderCheckResultResponse.getSBatchNo()) + ))) { + if (orderCheckResultResponse.getCount() < 1) { + codeTempEntity.setCheckStatus(1); + } else if (orderCheckResultResponse.getCount() < orderCheckResultResponse.getScanCount()) { + codeTempEntity.setCheckStatus(2); + } + } + } + } + } + + +// List otherCodes = getOtherCode(billNo, codeEntities); +// for (IoCodeTempEntity codeTempEntity : otherCodes) { +// boolean isTure = false; +// for (IoCodeTempEntity codeEntity : codeEntities) { +// if (IntUtil.value(codeTempEntity.getId()) != IntUtil.value(codeEntity.getId())) { +// if (StrUtil.nullToEmpty(codeTempEntity.getBatchNo()).equals(StrUtil.nullToEmpty(codeEntity.getBatchNo()))) { +// codeEntity.setCheckStatus(2); +// isTure = true; +// } +// } else { +// if (IntUtil.value(codeTempEntity.getReCount()) != IntUtil.value(codeEntity.getReCount()) || isTure) { +// codeEntity.setCheckStatus(2); +// isTure = true; +// } +// } +// } +// if (!isTure) +// codeTempEntity.setCheckStatus(1); +// } + return codeEntities; + } + + //带配货-立即提交 @RepeatSubmit() @AuthRuleAnnotation("") @@ -401,6 +589,7 @@ public class IoOrderController extends BaseController { for (IoOrderDetailCodeEntity orderDetailCodeEntity : orderDetailCodeEntities) { IoOrderDetailBizEntity orderDetailBizEntity = new IoOrderDetailBizEntity(); BeanUtils.copyProperties(orderDetailCodeEntity, orderDetailBizEntity); + orderDetailBizEntity.setCount(IntUtil.value(orderDetailCodeEntity.getReCount())); orderDetailBizEntity.setId(null); getSomeBiz(orderDetailBizEntities, orderDetailBizEntity); orderDetailBizService.insert(orderDetailBizEntity); @@ -539,6 +728,22 @@ public class IoOrderController extends BaseController { return ResultVOUtils.error(ResultEnum.NOT_NETWORK, "撤回失败"); } + //待校验撤回草稿 + @RepeatSubmit() + @AuthRuleAnnotation("") + @GetMapping("/udiwms/inout/order/waitCheck/rollback") + @Log(title = "单据管理", businessType = BusinessType.UPDATE) + public BaseResponse rollUnCheckOrder(String billNo) { + if (StrUtil.isBlank(billNo)) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + boolean result = orderService.rollUnCheckOrder(billNo); + if (result) { + return ResultVOUtils.success("撤回成功!"); + } + return ResultVOUtils.error(ResultEnum.NOT_NETWORK, "撤回失败"); + } + //手持终端获取未处理业务单据进行校验 @AuthRuleAnnotation("") @@ -834,10 +1039,49 @@ public class IoOrderController extends BaseController { @GetMapping("/udiwms/inout/order/getUserBean") public BaseResponse getUserBean() { AuthAdmin userBean = customerService.getUserBean(); + return ResultVOUtils.success(userBean); + } - return ResultVOUtils.success(userBean); + public String checkId(IoOrderDetailBizEntity bizEntity, IoCodeTempEntity codeEntity) { + + if (bizEntity.getBindRlFk().longValue() == codeEntity.getRelId().longValue()) { + return null; + } else { + return "产品ID不匹配"; + } } + public String checkBatchNo(IoOrderDetailBizEntity bizEntity, IoCodeTempEntity codeEntity) { + + if (StrUtil.nullToEmpty(bizEntity.getBatchNo()).equals(StrUtil.nullToEmpty(codeEntity.getBatchNo()))) { + return null; + } else { + return bizEntity.getCoName() + "批次号不匹配"; + } + } + + public String checkProductDate(IoOrderDetailBizEntity bizEntity, IoCodeTempEntity codeEntity) { + if (StrUtil.nullToEmpty(bizEntity.getProductDate()).equals(StrUtil.nullToEmpty(codeEntity.getProduceDate()))) { + return null; + } else { + return bizEntity.getCoName() + "生产日期不匹配"; + } + } + + public String checkExpireDate(IoOrderDetailBizEntity bizEntity, IoCodeTempEntity codeEntity) { + if (StrUtil.nullToEmpty(bizEntity.getExpireDate()).equals(StrUtil.nullToEmpty(codeEntity.getExpireDate()))) { + return null; + } else { + return bizEntity.getCoName() + "失效日期不匹配"; + } + } + + public String checkCount(IoOrderDetailBizEntity bizEntity, IoCodeTempEntity codeEntity) { + if (bizEntity.getCount() == codeEntity.getReCount()) { + return null; + } + return bizEntity.getCoName() + "数量不匹配!"; + } } diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java index a7aea8de6..c69a5e34a 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java @@ -202,8 +202,8 @@ public class IoOrderDetailResultController extends BaseController { */ @AuthRuleAnnotation("") @PostMapping("/udiwms/inout/resultDetail/filterOrderPrint") - public BaseResponse filterOrderPrint(@RequestBody FilterOrderDetailResultRequest filterOrderDetailResultRequest, HttpServletRequest request, HttpServletResponse response) throws JRException, IOException { - List ioOrderDetailResultResponseList = new ArrayList<>(); + public BaseResponse filterOrderPrint(@RequestBody FilterOrderDetailResultRequest filterOrderDetailResultRequest, HttpServletRequest request, HttpServletResponse response) throws JRException, IOException { + List ioOrderDetailResultResponseList=new ArrayList<>(); SystemPDFTemplateEntity systemPDFTemplateEntity = systemPDFTemplateService.selectById(filterOrderDetailResultRequest.getTemplateId()); //打印单号标签 Map data = new HashMap<>(1); @@ -211,9 +211,9 @@ public class IoOrderDetailResultController extends BaseController { SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");//定义新的日期格式 //按选入打印 - if (filterOrderDetailResultRequest.getList() != null && filterOrderDetailResultRequest.getList().size() > 0) { - ioOrderDetailResultResponseList = filterOrderDetailResultRequest.getList(); - } else { + if(filterOrderDetailResultRequest.getList() != null && filterOrderDetailResultRequest.getList().size()>0){ + ioOrderDetailResultResponseList =filterOrderDetailResultRequest.getList(); + }else{ //按查询打印 FilterOrderRequest filterOrderRequest = new FilterOrderRequest(); filterOrderRequest.setVueType(filterOrderDetailResultRequest.getActionType()); @@ -233,7 +233,7 @@ public class IoOrderDetailResultController extends BaseController { } } } - int i = 1; + int i=1; for (IoOrderDetailResultResponse ioOrderDetailResultResponse : ioOrderDetailResultResponseList) { //组装数据 Map ioOrderDetailResultData = new HashMap<>(); @@ -250,7 +250,7 @@ public class IoOrderDetailResultController extends BaseController { ioOrderDetailResultData.put("spec", ioOrderDetailResultResponse.getSpec() == null ? ' ' : ioOrderDetailResultResponse.getSpec()); ioOrderDetailResultData.put("price", ioOrderDetailResultResponse.getPrice() == null ? ' ' : ioOrderDetailResultResponse.getPrice()); ioOrderDetailResultData.put("count", ioOrderDetailResultResponse.getCount()); - ioOrderDetailResultData.put("reCount", ioOrderDetailResultResponse.getReCount()); + ioOrderDetailResultData.put("reCount",ioOrderDetailResultResponse.getReCount()); ioOrderDetailResultData.put("inCount", ioOrderDetailResultResponse.getInCount()); ioOrderDetailResultData.put("acceptCount", ioOrderDetailResultResponse.getAcceptCount()); ioOrderDetailResultData.put("fromCorpName", ioOrderDetailResultResponse.getFromCorpName() == null ? ' ' : ioOrderDetailResultResponse.getFromCorpName()); @@ -263,7 +263,7 @@ public class IoOrderDetailResultController extends BaseController { data.put("data", list); String param = JSON.toJSONString(data); - JasperUtils.jasperReport(request, response, param, filePath + "pdf/template/" + systemPDFTemplateEntity.getPath(), "pdf"); + JasperUtils.jasperReport(request, response, param, filePath+"pdf/template/"+systemPDFTemplateEntity.getPath(), "pdf"); return ResultVOUtils.success(); } @@ -316,5 +316,4 @@ public class IoOrderDetailResultController extends BaseController { return ResultVOUtils.success(cptTraceResultResponses); } - } diff --git a/src/main/java/com/glxp/api/controller/thrsys/ThirdUploadSetController.java b/src/main/java/com/glxp/api/controller/thrsys/ThirdUploadSetController.java index bd062819f..cd992752f 100644 --- a/src/main/java/com/glxp/api/controller/thrsys/ThirdUploadSetController.java +++ b/src/main/java/com/glxp/api/controller/thrsys/ThirdUploadSetController.java @@ -76,6 +76,7 @@ public class ThirdUploadSetController { thrOrderUploadBustypesEntity.setCreateTime(new Date()); thrOrderUploadBustypesEntity.setId(null); thrOrderUploadBustypesEntity.setOrderSource(Arrays.asList("2")); + thrOrderUploadBustypesEntity.setId(null); thrOrderUploadBustypesService.save(thrOrderUploadBustypesEntity); } } diff --git a/src/main/java/com/glxp/api/dao/inout/IoCodeDao.java b/src/main/java/com/glxp/api/dao/inout/IoCodeDao.java index 275fb88e4..f4ad75bc1 100644 --- a/src/main/java/com/glxp/api/dao/inout/IoCodeDao.java +++ b/src/main/java/com/glxp/api/dao/inout/IoCodeDao.java @@ -24,4 +24,7 @@ public interface IoCodeDao extends BaseMapperPlus filterList(FilterCodeRequest filterCodeRequest); + + List filterJoinProduct(FilterCodeRequest filterCodeRequest); + } diff --git a/src/main/java/com/glxp/api/dao/inout/IoCodeTempDao.java b/src/main/java/com/glxp/api/dao/inout/IoCodeTempDao.java index 95f7a691a..0c34c5c9b 100644 --- a/src/main/java/com/glxp/api/dao/inout/IoCodeTempDao.java +++ b/src/main/java/com/glxp/api/dao/inout/IoCodeTempDao.java @@ -3,6 +3,7 @@ package com.glxp.api.dao.inout; import com.glxp.api.dao.BaseMapperPlus; import com.glxp.api.entity.inout.IoCodeTempEntity; import com.glxp.api.req.inout.FilterCodeRequest; +import com.glxp.api.res.inout.IoCodeResponse; import com.glxp.api.res.inout.IoCodeTempResponse; import java.util.List; @@ -18,4 +19,6 @@ public interface IoCodeTempDao extends BaseMapperPlus selectCodeList(FilterCodeRequest filterCodeRequest); Integer selectExitCount(FilterCodeRequest filterCodeRequest); + + List filterJoinProduct(FilterCodeRequest filterCodeRequest); } diff --git a/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java b/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java index e0cd68eec..69276f251 100644 --- a/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java @@ -107,7 +107,13 @@ public class BasicBussinessTypeEntity { /** * web前端页面新增单据 + * 0.扫码直接生成业务单 + * 1.有三期业务单配/拣货 + * 2.无三期业务单配/拣货 + * 3.有三期业务单校验 */ + + @TableField(value = "checkWebNew") private int checkWebNew; diff --git a/src/main/java/com/glxp/api/entity/inout/IoCodeTempEntity.java b/src/main/java/com/glxp/api/entity/inout/IoCodeTempEntity.java index 43bebc09b..9a9c25583 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoCodeTempEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoCodeTempEntity.java @@ -149,8 +149,14 @@ public class IoCodeTempEntity { @TableField(exist = false) private int status; //条码校验状态 @TableField(exist = false) + private int checkStatus; //1:多余条码;2.同一产品条码超出 + @TableField(exist = false) private String mySupId; //更新供应商 + + @TableField(exist = false) + private boolean checkSuccess; //临时字段校验是否成功 + public int getMyCount() { if (count == null) return 0; diff --git a/src/main/java/com/glxp/api/entity/thrsys/ThrOrderUploadBustypesEntity.java b/src/main/java/com/glxp/api/entity/thrsys/ThrOrderUploadBustypesEntity.java index 75f6709f9..f61ee0144 100644 --- a/src/main/java/com/glxp/api/entity/thrsys/ThrOrderUploadBustypesEntity.java +++ b/src/main/java/com/glxp/api/entity/thrsys/ThrOrderUploadBustypesEntity.java @@ -18,7 +18,7 @@ import lombok.Data; @TableName(value = "thr_order_upload_bustypes", autoResultMap = true) public class ThrOrderUploadBustypesEntity implements Serializable { - @TableId(value = "id", type = IdType.INPUT) + @TableId(value = "id", type = IdType.AUTO) private Integer id; @TableField(value = "`action`") diff --git a/src/main/java/com/glxp/api/res/inout/IoCodeResponse.java b/src/main/java/com/glxp/api/res/inout/IoCodeResponse.java index 6472ee4a8..1bdafe793 100644 --- a/src/main/java/com/glxp/api/res/inout/IoCodeResponse.java +++ b/src/main/java/com/glxp/api/res/inout/IoCodeResponse.java @@ -148,4 +148,11 @@ public class IoCodeResponse { private String ylqxzcrbarmc; private String zczbhhzbapzbh; private String manufactory; + + private Integer checkStatus; + + + private String mySupId; //更新供应商 + + } diff --git a/src/main/java/com/glxp/api/res/inout/IoCodeTempResponse.java b/src/main/java/com/glxp/api/res/inout/IoCodeTempResponse.java index 5ab80ef06..ba613709e 100644 --- a/src/main/java/com/glxp/api/res/inout/IoCodeTempResponse.java +++ b/src/main/java/com/glxp/api/res/inout/IoCodeTempResponse.java @@ -123,4 +123,28 @@ public class IoCodeTempResponse { private String remark; + /** + * 部门名称 + */ + private String deptName; + + /** + * 仓库名称 + */ + private String invName; + + /** + * 货位名称 + */ + private String warehouseName; + + private String productName; + private String ggxh; + private String ylqxzcrbarmc; + private String zczbhhzbapzbh; + private String manufactory; + + private Integer checkStatus; + + } diff --git a/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java index 9e3a6b811..c5ac51e98 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java @@ -265,6 +265,36 @@ public class BasicBussinessTypeServiceImpl extends ServiceImpl() + .eq("enable", true).and( + webNew -> webNew.eq("checkWebNew", 3) + .or().eq("checkPdaUn", 3) + .or().eq("checkPdaEd", 3) + .or().eq("checkUdims", 3) + .or().eq("checkPc", 3) + .or().eq("checkSp", 3) + .or().eq("checkChange", 3) + .or().eq("checkBalance", 3) + .or().eq("checkCopy", 3) + ) + ); + break; + case Constant.ORDER_ACTION_WAIT_DEAL: //待配货/拣货页面 + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .eq("enable", true).and( + webNew -> webNew.in("checkWebNew", 1, 2) + .or().in("checkPdaUn", 1, 2) + .or().in("checkPdaEd", 1, 2) + .or().in("checkUdims", 1, 2) + .or().in("checkPc", 1, 2) + .or().in("checkSp", 1, 2) + .or().in("checkChange", 1, 2) + .or().in("checkBalance", 1, 2) + .or().in("checkCopy", 1, 2) + ) + ); + break; case Constant.ORDER_THIRD_UPLOAD: List thrOrderUploadBustypesEntities = thrOrderUploadBustypesService.list(); diff --git a/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java b/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java index 31a7d4d34..94261fe9f 100644 --- a/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java @@ -239,7 +239,8 @@ public class IoAddInoutService { //新增业务单据处理 - public void dealBusProcess(IoOrderEntity orderEntity, Integer fromVailPi) { + public void dealBusProcess(IoOrderEntity orderEntity, BasicBussinessTypeEntity bussinessTypeEntity) { + orderEntity.setErrMsg("正在处理!"); orderEntity.setStatus(ConstantStatus.ORDER_STATUS_PROCESSING); orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); @@ -294,12 +295,7 @@ public class IoAddInoutService { orderService.update(orderEntity); return; } - - if (fromVailPi != null && fromVailPi == 2) - orderEntity.setStatus(ConstantStatus.ORDER_STATUS_ALLOCATE); - else - orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK); - + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK); orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); orderEntity.setUpdateTime(new Date()); orderService.update(orderEntity); diff --git a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java index 69bb21bc2..c3051da9e 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java @@ -182,6 +182,65 @@ public class IoCheckInoutService { } } + //待校验 以扫码结果为准 + public void checkCodeResult(String orderId) { + IoOrderEntity orderEntity = orderService.findByBillNo(orderId); + List orderDetailCodeEntities = orderDetailCodeService.findByOrderId(orderEntity.getBillNo()); + if (CollUtil.isEmpty(orderDetailCodeEntities)) { + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_FAIL); + orderEntity.setUpdateTime(new Date()); + orderEntity.setErrMsg("校验失败,扫码详情为空!"); + orderService.update(orderEntity); + return; + } + orderDetailCodeEntities.forEach(orderDetailCodeEntity -> + { + //生成单据结果 + IoOrderDetailResultEntity orderDetailResultEntity = new IoOrderDetailResultEntity(); + BeanUtils.copyProperties(orderDetailCodeEntity, orderDetailResultEntity); + orderDetailResultEntity.setCount(orderDetailCodeEntity.getReCount()); + orderDetailResultEntity.setReCount(orderDetailCodeEntity.getReCount()); + orderDetailResultEntity.setId(null); + orderDetailResultService.insert(orderDetailResultEntity); + + }); + List codeTempEntities = codeTempService.findByOrderId(orderEntity.getBillNo()); + for (IoCodeTempEntity codeTempEntity : codeTempEntities) { + IoCodeEntity codeEnttity = new IoCodeEntity(); + BeanUtils.copyProperties(codeTempEntity, codeEnttity); + codeEnttity.setId(null); + codeService.insert(codeEnttity); + } + codeTempService.deleteByBillNo(orderEntity.getBillNo()); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_SUCCESS); + orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); + orderEntity.setUpdateTime(new Date()); + orderService.update(orderEntity); + genLostCode(orderEntity.getBillNo()); + checkThird(orderEntity); + } + + + public void checkRightResult(String orderId) { + IoOrderEntity orderEntity = orderService.findByBillNo(orderId); + orderDetailCodeService.deleteByOrderId(orderId); + List codeTempEntities = codeTempService.findByOrderId(orderEntity.getBillNo()); + for (IoCodeTempEntity codeTempEntity : codeTempEntities) { + IoCodeEntity codeEnttity = new IoCodeEntity(); + BeanUtils.copyProperties(codeTempEntity, codeEnttity); + codeEnttity.setId(null); + codeService.insert(codeEnttity); + addInoutService.genOrderDetailCode(orderEntity, codeTempEntity); + } + codeTempService.deleteByBillNo(orderEntity.getBillNo()); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_SUCCESS); + orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); + orderEntity.setUpdateTime(new Date()); + orderService.update(orderEntity); + genLostCode(orderEntity.getBillNo()); + checkThird(orderEntity); + } + @Resource IoCodeLostService codeLostService; diff --git a/src/main/java/com/glxp/api/service/inout/IoCodeService.java b/src/main/java/com/glxp/api/service/inout/IoCodeService.java index c04f895b5..54ee8dd87 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCodeService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCodeService.java @@ -15,6 +15,8 @@ public interface IoCodeService { List findByOrderId(String billNo); + List findJoinByOrderId(String billNo); + int updateById(IoCodeEntity codeEnttity); int deleteById(Integer id); diff --git a/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java b/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java index f39684883..c77a3386e 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java @@ -2,6 +2,7 @@ package com.glxp.api.service.inout; import com.glxp.api.entity.inout.IoCodeTempEntity; import com.glxp.api.req.inout.FilterCodeRequest; +import com.glxp.api.res.inout.IoCodeResponse; import com.glxp.api.res.inout.IoCodeTempResponse; import com.glxp.api.util.page.TableDataInfo; @@ -27,6 +28,8 @@ public interface IoCodeTempService { List findByOrderId(String billNo); + List findJoinByOrderId(String billNo); + TableDataInfo findByOrderId(FilterCodeRequest filterCodeRequest); int deleteByBillNo(String orderId); diff --git a/src/main/java/com/glxp/api/service/inout/IoOrderDetailResultService.java b/src/main/java/com/glxp/api/service/inout/IoOrderDetailResultService.java index 9f6affdf1..8f1a66099 100644 --- a/src/main/java/com/glxp/api/service/inout/IoOrderDetailResultService.java +++ b/src/main/java/com/glxp/api/service/inout/IoOrderDetailResultService.java @@ -26,5 +26,6 @@ public interface IoOrderDetailResultService { List filterOrderList(FilterOrderDetailResultRequest orderDetailResultRequest); + List cptTrace(CptTraceRequest cptTraceRequest); } diff --git a/src/main/java/com/glxp/api/service/inout/IoOrderService.java b/src/main/java/com/glxp/api/service/inout/IoOrderService.java index 3ae34d963..7ba9551c4 100644 --- a/src/main/java/com/glxp/api/service/inout/IoOrderService.java +++ b/src/main/java/com/glxp/api/service/inout/IoOrderService.java @@ -46,6 +46,9 @@ public interface IoOrderService { int deleteInvCode(String billNo, String code); + + boolean rollUnCheckOrder(String billNo); + boolean rollbackOrder(String billNo); boolean rollbackUnReOrder(String billNo); diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoCodeServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoCodeServiceImpl.java index 023b4e6f4..c5cca9a07 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoCodeServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoCodeServiceImpl.java @@ -52,6 +52,15 @@ public class IoCodeServiceImpl implements IoCodeService { return ioCodeDao.selectList(new QueryWrapper().eq("orderId", billNo)); } + @Override + public List findJoinByOrderId(String billNo) { + if (StrUtil.isEmpty(billNo)) + return null; + FilterCodeRequest filterCodeRequest = new FilterCodeRequest(); + filterCodeRequest.setOrderId(billNo); + return ioCodeDao.filterJoinProduct(filterCodeRequest); + } + @Override public int updateById(IoCodeEntity codeEnttity) { return ioCodeDao.updateById(codeEnttity); diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoCodeTempServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoCodeTempServiceImpl.java index c9a743ae5..5a787ae76 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoCodeTempServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoCodeTempServiceImpl.java @@ -1,5 +1,6 @@ package com.glxp.api.service.inout.impl; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.pagehelper.PageHelper; @@ -7,6 +8,7 @@ import com.glxp.api.dao.inout.IoCodeTempDao; import com.glxp.api.entity.inout.IoCodeTempEntity; import com.glxp.api.entity.inout.IoOrderDetailCodeEntity; import com.glxp.api.req.inout.FilterCodeRequest; +import com.glxp.api.res.inout.IoCodeResponse; import com.glxp.api.res.inout.IoCodeTempResponse; import com.glxp.api.service.inout.IoCodeTempService; import com.glxp.api.util.BeanCopyUtils; @@ -51,6 +53,15 @@ public class IoCodeTempServiceImpl implements IoCodeTempService { return ioCodeTempDao.selectList(new QueryWrapper().eq("orderId", billNo)); } + @Override + public List findJoinByOrderId(String billNo) { + if (StrUtil.isEmpty(billNo)) + return null; + FilterCodeRequest filterCodeRequest = new FilterCodeRequest(); + filterCodeRequest.setOrderId(billNo); + return ioCodeTempDao.filterJoinProduct(filterCodeRequest); + } + @Override public int updateById(IoCodeTempEntity codeEnttity) { return ioCodeTempDao.updateById(codeEnttity); diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailBizServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailBizServiceImpl.java index e1077961a..c0951d1c6 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailBizServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailBizServiceImpl.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.glxp.api.constant.ConstantStatus; import com.glxp.api.dao.inout.IoOrderDetailBizDao; +import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.entity.inout.IoOrderDetailBizEntity; import com.glxp.api.entity.inout.IoOrderDetailCodeEntity; import com.glxp.api.entity.inout.IoOrderEntity; @@ -15,6 +16,7 @@ import com.glxp.api.req.inout.FilterOrderDetailCodeRequest; import com.glxp.api.res.inout.IoOrderDetailBizResponse; import com.glxp.api.res.inout.IoOrderDetailCodeResponse; import com.glxp.api.res.inout.IoOrderInvoiceResponse; +import com.glxp.api.service.basic.IBasicBussinessTypeService; import com.glxp.api.service.inout.IoCheckInoutService; import com.glxp.api.service.inout.IoOrderDetailBizService; import com.glxp.api.service.inout.IoOrderDetailCodeService; @@ -140,6 +142,7 @@ public class IoOrderDetailBizServiceImpl implements IoOrderDetailBizService { } return ioOrderDetailBizDao.getfilterOrderList(OrderDetailCodeRequest); } + @Override public IoOrderDetailBizEntity selectByBatchNoAndBindRlFk(String batchNo, String bindRlFk) { QueryWrapper ew = new QueryWrapper<>(); @@ -161,12 +164,15 @@ public class IoOrderDetailBizServiceImpl implements IoOrderDetailBizService { IoCheckInoutService checkInoutService; @Resource IoOrderService orderService; + @Resource + IBasicBussinessTypeService bussinessTypeService; @Override public List checkOrderList(String orderId) { IoOrderEntity orderEntity = orderService.findByBillNo(orderId); List orderDetailBizEntities = findByOrderId(orderId); - if (orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_ALLOCATE) { + BasicBussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findByAction(orderEntity.getAction()); + if (bussinessTypeEntity.getCheckWebNew() == 2) { checkInoutService.bizNoPiCheck(orderDetailBizEntities, orderEntity); } else { List codeEntities = orderDetailCodeService.findByOrderId(orderId); diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java index b6b2c3641..e8ed53f60 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java @@ -441,6 +441,21 @@ public class IoOrderServiceImpl implements IoOrderService { return 0; } + //撤回待校验单据 + @Override + public boolean rollUnCheckOrder(String billNo) { + IoOrderEntity orderEntity = findByBillNo(billNo); + if (orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_CHECK) { + codeTempService.deleteByBillNo(billNo); + ioOrderDetailCodeService.deleteByOrderId(billNo); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE); + orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_DRAFT); + orderEntity.setUpdateTime(new Date()); + update(orderEntity); + } + return true; + } + @Resource InvPreinProductService invPreinProductService; diff --git a/src/main/java/com/glxp/api/task/SyncHeartTask.java b/src/main/java/com/glxp/api/task/SyncHeartTask.java index 290f08b5b..aaf5e9027 100644 --- a/src/main/java/com/glxp/api/task/SyncHeartTask.java +++ b/src/main/java/com/glxp/api/task/SyncHeartTask.java @@ -26,6 +26,7 @@ import java.util.Arrays; @EnableScheduling public class SyncHeartTask implements SchedulingConfigurer { + final Logger logger = LoggerFactory.getLogger(SyncHeartTask.class); @Resource protected ScheduledDao scheduledDao; @Resource @@ -58,6 +59,8 @@ public class SyncHeartTask implements SchedulingConfigurer { //查询数据同步设置 SyncDataSetEntity syncDataSetEntity = syncDataSetDao.selectSet(); if (syncDataSetEntity.isDownstreamEnable()) { + + //定时上传最近更新基础数据至上游轮询时间 long timeInterval1 = syncDataSetEntity.getSyncTime() * 6 * 1000L; long curTime1 = System.currentTimeMillis(); diff --git a/src/main/java/com/glxp/api/util/udi/UdiInfoUtil.java b/src/main/java/com/glxp/api/util/udi/UdiInfoUtil.java index 438491fde..3e96de848 100644 --- a/src/main/java/com/glxp/api/util/udi/UdiInfoUtil.java +++ b/src/main/java/com/glxp/api/util/udi/UdiInfoUtil.java @@ -58,12 +58,12 @@ public class UdiInfoUtil { } else if (StrUtil.isEmpty(udiProductEntity.getScbssfbhxlh())) { udiProductEntity.setAllowNoExpire(true); } - //名字转拼音 - if (StrUtil.isNotBlank(udiProductEntity.getCpmctymc())) { + //名字转拼音 + if(StrUtil.isNotBlank(udiProductEntity.getCpmctymc())){ try { - String pinyin = PinyinUtils.converterToFirstSpell(udiProductEntity.getCpmctymc()); + String pinyin= PinyinUtils.converterToFirstSpell(udiProductEntity.getCpmctymc()); udiProductEntity.setPinyinInitial(pinyin); - } catch (Exception e) { + }catch (Exception e){ logger.error(ExceptionUtils.getStackTrace(e)); e.printStackTrace(); } diff --git a/src/main/resources/mybatis/mapper/inout/IoCodeDao.xml b/src/main/resources/mybatis/mapper/inout/IoCodeDao.xml index 07c4936ad..c4339d3d5 100644 --- a/src/main/resources/mybatis/mapper/inout/IoCodeDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoCodeDao.xml @@ -50,20 +50,23 @@ + + + diff --git a/src/main/resources/mybatis/mapper/inout/IoCodeTempDao.xml b/src/main/resources/mybatis/mapper/inout/IoCodeTempDao.xml index d3b410844..dd82dc640 100644 --- a/src/main/resources/mybatis/mapper/inout/IoCodeTempDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoCodeTempDao.xml @@ -2,9 +2,16 @@ + + + diff --git a/src/main/resources/schemas/schema_v2.1.sql b/src/main/resources/schemas/schema_v2.1.sql index 531f8f880..a7a9494bd 100644 --- a/src/main/resources/schemas/schema_v2.1.sql +++ b/src/main/resources/schemas/schema_v2.1.sql @@ -500,6 +500,7 @@ CALL Pro_Temp_ColumnWork('inv_place_order_detail', 'topInvSpaceCode', 'varchar(2 call Modify_index('basic_products', 'uuid', 'idx_uuid', 'BTREE'); +call Modify_index('basic_products', 'nameCode', 'idex_nameCode', 'BTREE');