From ec9c295e0394280cfba4111d513ea38566165c64 Mon Sep 17 00:00:00 2001 From: anthonywj Date: Thu, 20 Apr 2023 16:58:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=95=E6=8D=AE=E5=BA=93=E5=AD=98=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E4=BB=A3=E7=A0=81=E8=BF=81=E7=A7=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inout/IoCodeLostController.java | 3 +- .../inout/IoCodeTempController.java | 77 +++++-- .../controller/inout/IoOrderController.java | 57 ++++- .../inout/IoOrderDetailBizController.java | 55 ++++- .../inout/IoOrderReviewController.java | 12 +- .../controller/inout/ioCodeRelController.java | 70 +++---- .../controller/inv/InvProductController.java | 3 + .../api/dao/inout/IoOrderDetailBizDao.java | 12 ++ .../api/dao/inout/IoOrderDetailResultDao.java | 2 - .../api/dao/inout/IoOrderInvoiceMapper.java | 3 + .../glxp/api/entity/inout/IoOrderEntity.java | 10 +- .../api/req/inout/FilterOrderRequest.java | 7 +- .../api/req/inout/IoOrderInvoiceRequest.java | 9 + .../res/inout/IoOrderDetailBizResponse.java | 7 + .../service/inout/IoChangeInoutService.java | 6 +- .../service/inout/IoOrderInvoiceService.java | 3 + .../api/service/inout/IoOrderService.java | 3 + .../inout/impl/IoCodeLostServiceImpl.java | 16 +- .../impl/IoOrderDetailBizServiceImpl.java | 19 +- .../inout/impl/IoOrderInvoiceServiceImpl.java | 7 + .../inout/impl/IoOrderServiceImpl.java | 16 +- .../inout/impl/ReceiveServiceImpl.java | 3 - .../inv/InvPreProductDetailService.java | 5 + .../api/service/inv/InvPreProductService.java | 2 + .../inv/InvPreinProductDetailService.java | 2 + .../api/service/inv/InvProductService.java | 2 + .../InvPreInProductDetailServiceImpl.java | 3 + .../impl/InvPreProductDetailServiceImpl.java | 29 +++ .../inv/impl/InvPreProductServiceImpl.java | 7 + .../inv/impl/InvProductServiceImpl.java | 6 + .../mybatis/mapper/inout/IoOrderDao.xml | 47 ++++- .../mapper/inout/IoOrderDetailBizDao.xml | 30 +++ .../mapper/inout/IoOrderDetailResultDao.xml | 10 +- .../mapper/inout/IoOrderInvoiceMapper.xml | 11 + .../mybatis/mapper/inv/InvPreProductDao.xml | 61 +++--- .../mybatis/mapper/inv/invProductDao.xml | 196 +++++++++--------- 36 files changed, 574 insertions(+), 237 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/inout/IoCodeLostController.java b/src/main/java/com/glxp/api/controller/inout/IoCodeLostController.java index a0bb15c54..5f3c7682f 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeLostController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeLostController.java @@ -62,6 +62,7 @@ public class IoCodeLostController extends BaseController { return ResultVOUtils.success("成功"); } + @AuthRuleAnnotation("") @PostMapping("warehouse/inout/saveTabCode") public BaseResponse saveCode(@RequestBody IoCodeTempEntity codeTempEntity) { @@ -96,7 +97,7 @@ public class IoCodeLostController extends BaseController { insertEntity.setSerialNo(codeTempEntity.getSerialNo()); insertEntity.setSupId(codeTempEntity.getSupId()); insertEntity.setUpdateTime(new Date()); - + insertEntity.setCreateTime(new Date()); if (codeLostEntity != null) { codeLostService.update(insertEntity); } else { 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 7262ded3b..77a47f680 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -22,9 +22,9 @@ import com.glxp.api.entity.basic.UdiEntity; import com.glxp.api.entity.basic.UdiProductEntity; import com.glxp.api.entity.inout.*; import com.glxp.api.entity.inv.InvPreInProductDetailEntity; +import com.glxp.api.entity.inv.InvPreProductDetailEntity; import com.glxp.api.entity.inv.InvPreinDetailEntity; import com.glxp.api.entity.system.SystemParamConfigEntity; -import com.glxp.api.http.sync.SpsDirectClient; import com.glxp.api.req.basic.CompanyProductRelevanceRequest; import com.glxp.api.req.inout.AddEnterCodeRequest; import com.glxp.api.req.inout.AddOrderRequest; @@ -38,9 +38,7 @@ import com.glxp.api.res.inout.IoCodeTempResponse; import com.glxp.api.service.auth.InvWarehouseService; import com.glxp.api.service.basic.*; import com.glxp.api.service.inout.*; -import com.glxp.api.service.inv.InvPreinDetailService; -import com.glxp.api.service.inv.InvPreinProductDetailService; -import com.glxp.api.service.inv.InvProductDetailService; +import com.glxp.api.service.inv.*; import com.glxp.api.service.purchase.SupProductService; import com.glxp.api.service.system.SystemParamConfigService; import com.glxp.api.util.CustomUtil; @@ -70,8 +68,6 @@ public class IoCodeTempController extends BaseController { @Resource private IBasicBussinessTypeService basicBussinessTypeService; @Resource - private SpsDirectClient spsDirectClient; - @Resource IoAddInoutService transInoutService; @Resource private SystemParamConfigService systemParamConfigService; @@ -101,6 +97,8 @@ public class IoCodeTempController extends BaseController { IoOrderDetailBizService orderDetailBizService; @Resource IoCodeService codeService; + @Resource + InvPreProductDetailService invPreProductDetailService; //手持端扫码单据上传调用接口 @AuthRuleAnnotation("") @@ -136,10 +134,6 @@ public class IoCodeTempController extends BaseController { inPostOrder.setPostOrders(inPostOrders); outPostOrder.setPostOrders(outPostOrders); - if (CollUtil.isNotEmpty(outPostOrders)) { - outPostOrder.setWmsUserId(userId + ""); - return spsDirectClient.uploadPdaOrder(outPostOrder); - } if (CollUtil.isNotEmpty(inPostOrders)) { inPostOrder.setCustomerId(getCustomerId()); @@ -438,9 +432,13 @@ public class IoCodeTempController extends BaseController { } } - //失效期提醒 - SystemParamConfigEntity recentParamConfigEntity = systemParamConfigService.selectByParamKey("recent_date_tip"); - long recent = Long.parseLong(recentParamConfigEntity.getParamValue()); + + UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByNameCode(udiEntity.getUdi()); + //近效期提醒 +// SystemParamConfigEntity recentParamConfigEntity = systemParamConfigService.selectByParamKey("recent_date_tip"); + long recent = 0; + if (udiRelevanceResponse.getRecentDateTime() != null) + recent = udiRelevanceResponse.getRecentDateTime().longValue(); if (bussinessTypeEntity.getCheckVailDate() == 1 && recent > 0 && !addOrderRequest.isIgnoreRecentExpire()) { if (StrUtil.isNotEmpty(udiEntity.getExpireDate())) { String expireDate = "20" + udiEntity.getExpireDate(); @@ -457,6 +455,22 @@ public class IoCodeTempController extends BaseController { } } + if (bussinessTypeEntity.getCheckVailDate() == 2 && recent > 0) { + if (StrUtil.isNotEmpty(udiEntity.getExpireDate())) { + String expireDate = "20" + udiEntity.getExpireDate(); + long expireTime = DateUtil.parseDateExpire(expireDate); + long recentTieme = Math.abs(recent * 24 * 60 * 60 * 1000); + long resultTime = expireTime - System.currentTimeMillis(); + + if (resultTime > 0) { + long time = resultTime / (24 * 60 * 60 * 1000); + if (resultTime < recentTieme) { + return ResultVOUtils.error(505, "当前产品临近过期,距过期还剩" + time + "天,无法添加?"); + } + } + } + } + //校验预验收是否已存在 if (bussinessTypeEntity.getActionType() == ConstantStatus.ACTION_TYPE_PREIN) { @@ -530,6 +544,34 @@ public class IoCodeTempController extends BaseController { } + // 是否检验寄售库存 + if (bussinessTypeEntity.isAdvancePreIn()) { + int preInCount = invPreProductDetailService.findCountByCode(code); + InvPreProductDetailEntity invPreinDetailEntity = invPreProductDetailService.findUseOneByCode(code); + if (preInCount <= 0) { + return ResultVOUtils.error(500, "寄售库存数量不足!"); + } else { + if (StrUtil.isNotEmpty(invPreinDetailEntity.getBatchNo()) && StrUtil.isNotEmpty(addOrderRequest.getBatchNo()) + && !invPreinDetailEntity.getBatchNo().equals(addOrderRequest.getBatchNo())) { + return ResultVOUtils.error(500, "当前批次号与预验收录入批次号不匹配!"); + } + if (StrUtil.isNotEmpty(orderId)) {//非首次添加 + if (StrUtil.isEmpty(udiEntity.getSerialNo())) {//该单据已有该产品 + //无序列号,则可能存在多个预验收入库单 + IoCodeTempEntity codeTempEntity = codeTempService.findByUnique(orderId, code); + if (codeTempEntity != null) { + if (preInCount < (codeTempEntity.getMyCount() + 1)) { + return ResultVOUtils.error(500, "超出寄售存数量"); + } + } + } else { + if (preInCount < 1) { + return ResultVOUtils.error(500, "寄售库存数量不足"); + } + } + } + } + } if (addOrderRequest.getFromCorp() == null) { @@ -618,7 +660,7 @@ public class IoCodeTempController extends BaseController { //产品是否可以以使用单元入库 udiRelevanceResponses = udiRelevanceService.selectGroupByNameCode(codeEnttity.getNameCode(), false); if (udiRelevanceResponses.size() >= 1) { - UdiRelevanceResponse udiRelevanceResponse = udiRelevanceResponses.get(0); +// UdiRelevanceResponse udiRelevanceResponse = udiRelevanceResponses.get(0); if (udiRelevanceResponse == null) { return ResultVOUtils.error(500, "该产品信息未维护!"); } else if (!udiRelevanceResponse.getUseDy() && udiRelevanceResponse.getDiType() == ConstantStatus.DITYPE_SYDY) { @@ -977,6 +1019,9 @@ public class IoCodeTempController extends BaseController { public BaseResponse deleteCodesTempById(@RequestParam("id") Integer id) { IoCodeTempEntity codeTempEntity = codeTempService.selectById(id); + if (codeTempEntity == null) { + return ResultVOUtils.error(506, "UDI码异常,未录入!"); + } IoOrderEntity orderEntity = orderService.findByBillNo(codeTempEntity.getOrderId()); if (codeTempEntity.getMyCount() > 1) { codeTempEntity.setCount(codeTempEntity.getMyCount() - 1); @@ -1002,8 +1047,8 @@ public class IoCodeTempController extends BaseController { } - boolean r1 = orderDetailBizService.isExit(orderDetailCodeEntity.getOrderIdFk()); - boolean r2 = ioOrderDetailCodeService.isExit(orderDetailCodeEntity.getOrderIdFk()); + boolean r1 = orderDetailBizService.isExit(orderEntity.getBillNo()); + boolean r2 = ioOrderDetailCodeService.isExit(orderEntity.getBillNo()); if (!r1 && !r2) { orderService.deleteByBillNo(orderDetailCodeEntity.getOrderIdFk()); } 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 112d16e23..f4a4ec197 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java @@ -35,7 +35,9 @@ import com.glxp.api.util.CustomUtil; import com.glxp.api.util.GennerOrderUtils; import com.glxp.api.util.OrderNoTypeBean; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; +import org.springframework.scheduling.annotation.Async; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -88,6 +90,15 @@ public class IoOrderController extends BaseController { if (StrUtil.isNotEmpty(filterOrderRequest.getSupInoivceSearch())) { orderService.setInvoiceFiltes(filterOrderRequest); } + + if (filterOrderRequest.getSourceLocalType() != null) { + if (filterOrderRequest.getSourceLocalType() == 1) { + filterOrderRequest.setSourceTypes(Arrays.asList(1, 2, 3, 4, 5)); + } else { + filterOrderRequest.setSourceTypes(Arrays.asList(6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17)); + } + } + String customerId = getCustomerId(); if (!customerId.equals("110")) { filterOrderRequest.setFromCorp(customerId); @@ -315,19 +326,38 @@ public class IoOrderController extends BaseController { if (StrUtil.isBlank(billNo)) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); } + IoOrderEntity orderEntity = orderService.findByBillNo(billNo); - if (StrUtil.isNotEmpty(orderEntity.getSupplementNo()) || StrUtil.isNotEmpty(orderEntity.getUllageSupNo())) { - return ResultVOUtils.error(500, "单据已补单,无法撤回!"); - } - if (orderEntity.getSyncStatus() != null && orderEntity.getSyncStatus() == 1) { - return ResultVOUtils.error(500, "单据已同步,无法撤回!"); - } + if (orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_AUDITED) { + if (StrUtil.isNotEmpty(orderEntity.getSupplementNo()) || StrUtil.isNotEmpty(orderEntity.getUllageSupNo())) { + return ResultVOUtils.error(500, "单据已补单,无法撤回!"); + } + if (orderEntity.getSyncStatus() != null && orderEntity.getSyncStatus() == 1) { + return ResultVOUtils.error(500, "单据已同步,无法撤回!"); + } + boolean result = orderService.rollbackOrder(billNo); + if (result) { + return ResultVOUtils.success(); + } + return ResultVOUtils.error(ResultEnum.NOT_NETWORK, "撤回失败"); + } else if (orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_CHECK_REW) { - boolean result = orderService.rollbackOrder(billNo); - if (result) { - return ResultVOUtils.success(); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_SUCCESS); + orderService.update(orderEntity); + return ResultVOUtils.success("撤回成功!"); + + } else if (orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_CHECK_SUCCESS) { + if (StrUtil.isBlank(billNo)) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + boolean result = orderService.rollbackUnReOrder(billNo); + if (result) { + return ResultVOUtils.success("撤回成功!"); + } + return ResultVOUtils.error(ResultEnum.NOT_NETWORK, "撤回失败"); } return ResultVOUtils.error(ResultEnum.NOT_NETWORK, "撤回失败"); + } @@ -512,6 +542,14 @@ public class IoOrderController extends BaseController { return ResultVOUtils.success(); } + @PostMapping("/udiwms/inout/order/updateOrder") + @Log(title = "单据管理", businessType = BusinessType.UPDATE) + public BaseResponse updateOrder(@RequestBody IoOrderEntity ioOrderEntity) { + orderService.updateByBillNo(ioOrderEntity); + return ResultVOUtils.success(); + } + + @Resource GennerOrderUtils gennerOrderUtils; @Resource @@ -590,4 +628,5 @@ public class IoOrderController extends BaseController { orderService.update(originOrder); return ResultVOUtils.success(); } + } diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java index 10c8e5ab7..c1a7d5f28 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java @@ -50,6 +50,7 @@ import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -114,14 +115,15 @@ public class IoOrderDetailBizController extends BaseController { @Log(title = "单据管理", businessType = BusinessType.INSERT) public BaseResponse addBizProduct(@RequestBody AddBizProductReqeust addBizProductReqeust) { SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("vail_product_cert"); - boolean isVailCert = systemParamConfigEntity.getParamValue().equals("1") ? true : false; +// boolean isVailCert = systemParamConfigEntity.getParamValue().equals("1") ? true : false; AuthAdmin authAdmin = getUser(); if (addBizProductReqeust.getRelId() == null && CollUtil.isEmpty(addBizProductReqeust.getDatas())) return ResultVOUtils.error(500, "未选择产品信息"); if (addBizProductReqeust.getOrderEntity() == null) return ResultVOUtils.error(500, "未指定订单"); IoOrderEntity orderEntity = addBizProductReqeust.getOrderEntity(); - if (StrUtil.isEmpty(orderEntity.getBillNo())) { + IoOrderEntity isExit = orderService.findByBillNo(orderEntity.getBillNo()); + if (StrUtil.isEmpty(orderEntity.getBillNo()) || isExit == null) { BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByInvSubByCode(orderEntity.getInvCode()); String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trimToEmpty(bussinessTypeEntity.getPrefix()), "yyyyMMdd")); @@ -157,9 +159,9 @@ public class IoOrderDetailBizController extends BaseController { UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectSupGroupById(item.getRelId()); // todo 查询产品是否已经通过认证 - -// if (isVailCert && udiRelevanceResponse.isNeedCert()) { -// SupProductEntity supProductEntity = supProductService.findByRelIdFk(udiRelevanceResponse.getId() + ""); +// BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); +// if (bussinessTypeEntity.getCheckCertExpire() == 2 && udiRelevanceResponse.isNeedCert()) { +// SupProductEntity supProductEntity = supProductService.findByManufactury(udiRelevanceResponse.getCpmctymc(), udiRelevanceResponse.getManufactory(), ""); // if (supProductEntity != null && (supProductEntity.getAuditStatus() == ConstantStatus.AUDIT_PASS || supProductEntity.getAuditStatus() == ConstantStatus.AUDIT_CHANGE_PASS)) { // // } else { @@ -472,7 +474,19 @@ public class IoOrderDetailBizController extends BaseController { @PostMapping("/udiwms/inout/order/delBizProduct") @Log(title = "单据管理", businessType = BusinessType.DELETE) public BaseResponse delBizProduct(@RequestBody DeleteRequest deleteRequest) { - return orderDetailBizService.deleteById(Integer.parseInt(deleteRequest.getId())) > 0 ? ResultVOUtils.success("删除成功!") : ResultVOUtils.error(500, "删除失败"); + IoOrderDetailBizEntity orderDetailBizEntity = orderDetailBizService.selectById(Integer.parseInt(deleteRequest.getId())); + int result = orderDetailBizService.deleteById(Integer.parseInt(deleteRequest.getId())); + if (result > 0) { + boolean r1 = orderDetailBizService.isExit(orderDetailBizEntity.getOrderIdFk()); + boolean r2 = orderDetailCodeService.isExit(orderDetailBizEntity.getOrderIdFk()); + if (!r1 && !r2) { + orderService.deleteByBillNo(orderDetailBizEntity.getOrderIdFk()); + } + return ResultVOUtils.success("删除成功!"); + } + return ResultVOUtils.error(500, "删除失败"); + + } @@ -559,11 +573,40 @@ public class IoOrderDetailBizController extends BaseController { ioOrderInvoiceEntity.setProductDate(ioOrderDetailBizEntity.getProductDate()); ioOrderInvoiceEntity.setExpireDate(ioOrderDetailBizEntity.getExpireDate()); ioOrderInvoiceEntity.setBizIdFk(ioOrderDetailBizEntity.getId()); + ioOrderInvoiceEntity.setCreateTime(new Date()); + ioOrderInvoiceEntity.setUpdateTime(new Date()); boolean b = ioOrderInvoiceService.insertInvoice(ioOrderInvoiceEntity); return ResultVOUtils.success("成功"); } + /** + * 查询单据业务详情列表 + * + * @param orderDetailBizRequest + * @return + */ + @GetMapping("/udiwms/inout/bizDetail/filterBizOrderList") + public BaseResponse filterBizOrderList(FilterOrderDetailBizRequest orderDetailBizRequest) { + List list = orderDetailBizService.filterList(orderDetailBizRequest); + for (IoOrderDetailBizResponse ioOrderDetailBizResponse : list) { + String msg = ""; + IoOrderInvoiceEntity ioOrderInvoiceEntity = new IoOrderInvoiceEntity(); + ioOrderInvoiceEntity.setOrderIdFk(ioOrderDetailBizResponse.getOrderIdFk()); + List ioOrderInvoiceEntityList = ioOrderInvoiceService.selectOrderInvoice(ioOrderInvoiceEntity); + for (IoOrderInvoiceEntity obj : ioOrderInvoiceEntityList) { + if (StrUtil.isNotEmpty(obj.getInvoiceCode())) { + msg += "," + obj.getInvoiceCode(); + } + } + if (msg.length() > 1) { + msg = msg.substring(1); + } + ioOrderDetailBizResponse.setInvoiceCodes(msg); + } + PageInfo pageInfo = new PageInfo<>(list); + return ResultVOUtils.page(pageInfo); + } } diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java index ad705b720..8cd2a7cd6 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java @@ -23,6 +23,7 @@ import com.glxp.api.req.inout.FilterOrderDetailResultRequest; import com.glxp.api.req.inout.ReviewFinishRequest; import com.glxp.api.req.inout.ReviewSpmsRequest; import com.glxp.api.req.inout.UpdateExportStatusRequest; +import com.glxp.api.req.sync.SpsSyncDataRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.inout.AcceptOrderResponse; import com.glxp.api.res.inout.IoOrderDetailResultResponse; @@ -377,7 +378,6 @@ public class IoOrderReviewController extends BaseController { return false; } - //前端页面清空,重新验收 @AuthRuleAnnotation("") @PostMapping("/udiwms/stock/order/acceptClear") public BaseResponse acceptClear(@RequestBody AcceptOrderResponse acceptOrderEntity) { @@ -400,13 +400,6 @@ public class IoOrderReviewController extends BaseController { orderService.update(orderEntity); redisUtil.del(ConstantStatus.REDIS_BILLNO + orderEntity.getBillNo()); redisUtil.del(ConstantStatus.REDIS_BILLNO_CODES + orderEntity.getBillNo()); - - if (orderEntity.getFromType() == ConstantStatus.FROM_UDISP) { - ReviewFinishRequest reviewFinishRequest = new ReviewFinishRequest(); - reviewFinishRequest.setOrderId(orderEntity.getBillNo()); - spGetHttp.reviewOrder(reviewFinishRequest); - } - //验收完成->进入流程 ioCheckInoutService.checkSecond(orderEntity); return ResultVOUtils.success("更新成功"); @@ -415,7 +408,7 @@ public class IoOrderReviewController extends BaseController { //前端第二次次验收 public BaseResponse thirdUpdateReview(AuthAdmin authAdmin, IoOrderEntity orderEntity) { orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_REW); - orderEntity.setReviewUser(authAdmin.getId() + ""); + orderEntity.setCheckUser(authAdmin.getId() + ""); orderEntity.setUpdateTime(new Date()); orderEntity.setCheckTime(new Date()); orderEntity.setDeliveryStatus(ConstantStatus.ORDER_DELIVERY_STATUS_ED); @@ -497,4 +490,5 @@ public class IoOrderReviewController extends BaseController { return ResultVOUtils.success(acceptOrderEntity); } + } diff --git a/src/main/java/com/glxp/api/controller/inout/ioCodeRelController.java b/src/main/java/com/glxp/api/controller/inout/ioCodeRelController.java index 712a089b3..a2af6fefc 100644 --- a/src/main/java/com/glxp/api/controller/inout/ioCodeRelController.java +++ b/src/main/java/com/glxp/api/controller/inout/ioCodeRelController.java @@ -49,53 +49,53 @@ public class ioCodeRelController { //判断码有没有重复 - List list = ioCodeRelServicec.selectIoCodeRelByCode("", code); - if (list.size() > 0) { - return ResultVOUtils.error(999, "此码已做关联!"); + List list=ioCodeRelServicec.selectIoCodeRelByCode("",code); + if(list.size()>0){ + return ResultVOUtils.error(999,"此码已做关联!"); } - if (StrUtil.isNotEmpty(code)) { - UdiEntity udiEntity = FilterUdiUtils.getUdi(code); - UdiProductEntity udiProductEntity = udiProductService.findByNameCode(udiEntity.getUdi()); - if (udiProductEntity.getPackLevel() != null) { - if (Integer.valueOf(udiProductEntity.getPackLevel()) > 1) { + if(StrUtil.isNotEmpty(code)){ + UdiEntity udiEntity=FilterUdiUtils.getGS1Udi(code); + UdiProductEntity udiProductEntity=udiProductService.findByNameCode(udiEntity.getUdi()); + if(udiProductEntity.getPackLevel()!=null){ + if(Integer.valueOf(udiProductEntity.getPackLevel())>1){ return ResultVOUtils.success(udiProductEntity.getBhxjcpbm()); } } } - return ResultVOUtils.error(999, "扫码错误!"); + return ResultVOUtils.error(999,"扫码错误!"); } @GetMapping("/udi/ioCode/Rel/checkLowProduct") @Log(title = "单据管理", businessType = BusinessType.INSERT) - public BaseResponse checkLowProduct(String upCode, String lowCode) { + public BaseResponse checkLowProduct(String upCode,String lowCode) { - UdiProductEntity udiProductEntity = new UdiProductEntity(); + UdiProductEntity udiProductEntity=new UdiProductEntity(); //查询上级产品信息 - if (StrUtil.isNotEmpty(upCode)) { - UdiEntity udiEntity = FilterUdiUtils.getGS1Udi(upCode); - udiProductEntity = udiProductService.findByNameCode(udiEntity.getUdi()); + if(StrUtil.isNotEmpty(upCode)){ + UdiEntity udiEntity=FilterUdiUtils.getGS1Udi(upCode); + udiProductEntity=udiProductService.findByNameCode(udiEntity.getUdi()); } //判断码有没有重复 - List list = ioCodeRelServicec.selectIoCodeRelByCode(lowCode, upCode); - if (list.size() > 0) { - return ResultVOUtils.error(999, "此码已做关联!"); + List list=ioCodeRelServicec.selectIoCodeRelByCode(lowCode,upCode); + if(list.size()>0){ + return ResultVOUtils.error(999,"此码已做关联!"); } //判断条数是否超出 - Long count = ioCodeRelServicec.selectIoCodeRelCount(upCode); - if (count >= udiProductEntity.getBhxjsl()) { - return ResultVOUtils.error(999, "数量超出!"); + Long count=ioCodeRelServicec.selectIoCodeRelCount(upCode); + if(count>=udiProductEntity.getBhxjsl()){ + return ResultVOUtils.error(999,"数量超出!"); } //查询下级产品信息 - if (StrUtil.isNotEmpty(lowCode)) { - UdiEntity udiEntity = FilterUdiUtils.getGS1Udi(lowCode); - UdiProductEntity udiProductEntity1 = udiProductService.findByNameCode(udiEntity.getUdi()); - if (udiProductEntity != null) { - if (udiProductEntity1.getNameCode().equals(udiProductEntity.getBhxjcpbm())) { - IoCodeRelEntity ioCodeRelEntity = new IoCodeRelEntity(); + if(StrUtil.isNotEmpty(lowCode)){ + UdiEntity udiEntity=FilterUdiUtils.getGS1Udi(lowCode); + UdiProductEntity udiProductEntity1=udiProductService.findByNameCode(udiEntity.getUdi()); + if(udiProductEntity!=null){ + if(udiProductEntity1.getNameCode().equals(udiProductEntity.getBhxjcpbm())){ + IoCodeRelEntity ioCodeRelEntity=new IoCodeRelEntity(); ioCodeRelEntity.setCode(lowCode); ioCodeRelEntity.setParentCode(upCode); ioCodeRelEntity.setNameCode(udiProductEntity1.getNameCode()); @@ -107,13 +107,13 @@ public class ioCodeRelController { ioCodeRelEntity.setCreateTime(new Date()); ioCodeRelEntity.setUpdateTime(new Date()); ioCodeRelServicec.insert(ioCodeRelEntity); - return ResultVOUtils.success(); - } else { - return ResultVOUtils.error(999, "该条码不属于下级产品!"); + return ResultVOUtils.success(); + }else{ + return ResultVOUtils.error(999,"该条码不属于下级产品!"); } } } - return ResultVOUtils.error(999, ""); + return ResultVOUtils.error(999,""); } @GetMapping("/udi/ioCode/Rel/delectList") @@ -131,13 +131,13 @@ public class ioCodeRelController { @GetMapping("/udi/ioCode/Rel/del") @Log(title = "单据管理", businessType = BusinessType.DELETE) - public BaseResponse del(String code, String parentCode) { + public BaseResponse del(String code,String parentCode) { - int count = ioCodeRelServicec.delIoCodeRel(code, parentCode); - if (count > 0) { + int count=ioCodeRelServicec.delIoCodeRel(code,parentCode); + if(count>0){ return ResultVOUtils.success("删除成功"); - } else { - return ResultVOUtils.error(999, "删除失败"); + }else{ + return ResultVOUtils.error(999,"删除失败"); } } diff --git a/src/main/java/com/glxp/api/controller/inv/InvProductController.java b/src/main/java/com/glxp/api/controller/inv/InvProductController.java index ae0eba1da..fed41b1d1 100644 --- a/src/main/java/com/glxp/api/controller/inv/InvProductController.java +++ b/src/main/java/com/glxp/api/controller/inv/InvProductController.java @@ -5,9 +5,11 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageInfo; import com.glxp.api.annotation.AuthRuleAnnotation; +import com.glxp.api.annotation.Log; 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.BusinessType; import com.glxp.api.controller.BaseController; import com.glxp.api.entity.inv.InvProductDetailEntity; import com.glxp.api.entity.inv.InvProductEntity; @@ -160,6 +162,7 @@ public class InvProductController extends BaseController { * @return */ @PostMapping("/spms/inv/product/delete") + @Log(title = "库存查询", businessType = BusinessType.DELETE) public BaseResponse deleteInvProduct(@RequestBody DeleteRequest deleteRequest, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); diff --git a/src/main/java/com/glxp/api/dao/inout/IoOrderDetailBizDao.java b/src/main/java/com/glxp/api/dao/inout/IoOrderDetailBizDao.java index 5fb23a1fe..d41ea0da6 100644 --- a/src/main/java/com/glxp/api/dao/inout/IoOrderDetailBizDao.java +++ b/src/main/java/com/glxp/api/dao/inout/IoOrderDetailBizDao.java @@ -5,6 +5,7 @@ import com.glxp.api.entity.inout.IoOrderDetailBizEntity; import com.glxp.api.req.inout.FilterOrderDetailBizRequest; import com.glxp.api.res.inout.IoOrderDetailBizResponse; import com.glxp.api.res.inout.IoOrderInvoiceResponse; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -20,4 +21,15 @@ public interface IoOrderDetailBizDao extends BaseMapperPlus filterListInv(FilterOrderDetailBizRequest orderDetailBizRequest); + /** + * 查询单条单据业务详情 + * + * @param orderId 单据号 + * @param relId 产品ID + * @param batchNo 批次号 + * @param productDate 生产日期 + * @param expireDate 失效日期 + * @return + */ + IoOrderDetailBizEntity selectOrderDetailBiz(@Param("orderId") String orderId, @Param("relId") Long relId, @Param("batchNo") String batchNo, @Param("productDate") String productDate, @Param("expireDate") String expireDate); } diff --git a/src/main/java/com/glxp/api/dao/inout/IoOrderDetailResultDao.java b/src/main/java/com/glxp/api/dao/inout/IoOrderDetailResultDao.java index 5815573e7..dc8c808b1 100644 --- a/src/main/java/com/glxp/api/dao/inout/IoOrderDetailResultDao.java +++ b/src/main/java/com/glxp/api/dao/inout/IoOrderDetailResultDao.java @@ -29,8 +29,6 @@ public interface IoOrderDetailResultDao extends BaseMapperPlus selectStatDataByTime(@Param("date") String date); diff --git a/src/main/java/com/glxp/api/dao/inout/IoOrderInvoiceMapper.java b/src/main/java/com/glxp/api/dao/inout/IoOrderInvoiceMapper.java index b01220a1f..924322022 100644 --- a/src/main/java/com/glxp/api/dao/inout/IoOrderInvoiceMapper.java +++ b/src/main/java/com/glxp/api/dao/inout/IoOrderInvoiceMapper.java @@ -5,9 +5,12 @@ import com.glxp.api.dao.BaseMapperPlus; import com.glxp.api.entity.inout.IoOrderInvoiceEntity; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + @Mapper public interface IoOrderInvoiceMapper extends BaseMapperPlus { boolean insertInvoice(IoOrderInvoiceEntity ioOrderInvoiceEntity); + List selectOrderInvoice(IoOrderInvoiceEntity ioOrderInvoiceEntity); } diff --git a/src/main/java/com/glxp/api/entity/inout/IoOrderEntity.java b/src/main/java/com/glxp/api/entity/inout/IoOrderEntity.java index 79657a3c0..a4762c8df 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoOrderEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoOrderEntity.java @@ -111,6 +111,10 @@ public class IoOrderEntity { @TableField(value = "auditTime") private Date auditTime; + + @TableField(value = "checkUser") + private String checkUser; + @TableField(value = "checkTime") private Date checkTime; @@ -227,12 +231,16 @@ public class IoOrderEntity { @TableField(value = "processStatus") private Integer processStatus; //退货单据处理状态 @TableField(value = "inCodeStatus") - private int inCodeStatus; //内部码生成状态 + private Integer inCodeStatus; //内部码生成状态 @TableField(value = "relKey") private String relKey; //关联单据唯一键 @TableField(value = "suppleCount") private Integer suppleCount; //补单次数 + + @TableField(value = "checkStatus") + private Integer checkStatus; //确认状态 + @TableField(value = "checkPreInOrders") private String checkPreInOrders; diff --git a/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java b/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java index 07b2bea6f..0e785c355 100644 --- a/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java +++ b/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java @@ -136,6 +136,7 @@ public class FilterOrderRequest extends ListPageRequest { * 校验异常:checkedError * 已校验:checkSuccess * 已审核:audited + * * 预验收入库单 preInOrder */ private String statusType; @@ -147,7 +148,6 @@ public class FilterOrderRequest extends ListPageRequest { * 发票登记界面: supInvoice * 出入库明细账 norDetail * 寄售出入库明细账 preDetail - * 预验收入库单 preInOrder */ private String vueType; //页面类型 @@ -155,6 +155,9 @@ public class FilterOrderRequest extends ListPageRequest { private Integer orderType; private Integer syncStatus; + //单据来源: 1:手工单;2:自动单 + private Integer sourceLocalType; + /** * 单据类型集合 */ @@ -170,6 +173,8 @@ public class FilterOrderRequest extends ListPageRequest { */ private List dealStatuses; + private List sourceTypes; + private List orderIds; diff --git a/src/main/java/com/glxp/api/req/inout/IoOrderInvoiceRequest.java b/src/main/java/com/glxp/api/req/inout/IoOrderInvoiceRequest.java index f0e4b5281..438f4d848 100644 --- a/src/main/java/com/glxp/api/req/inout/IoOrderInvoiceRequest.java +++ b/src/main/java/com/glxp/api/req/inout/IoOrderInvoiceRequest.java @@ -1,8 +1,15 @@ package com.glxp.api.req.inout; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.glxp.api.entity.inout.IoOrderDetailResultEntity; +import com.glxp.api.entity.inout.IoOrderInvoiceEntity; +import com.glxp.api.entity.purchase.SupCertSetEntity; import lombok.Data; import java.util.Date; +import java.util.List; /** * @author : zhangsan @@ -60,6 +67,8 @@ public class IoOrderInvoiceRequest { private String remark; + private Long bizIdFk; + public static final String COL_ID = "id"; public static final String COL_ORDERIDFK = "orderIdFk"; diff --git a/src/main/java/com/glxp/api/res/inout/IoOrderDetailBizResponse.java b/src/main/java/com/glxp/api/res/inout/IoOrderDetailBizResponse.java index b8b43a299..54bfe00ee 100644 --- a/src/main/java/com/glxp/api/res/inout/IoOrderDetailBizResponse.java +++ b/src/main/java/com/glxp/api/res/inout/IoOrderDetailBizResponse.java @@ -157,5 +157,12 @@ public class IoOrderDetailBizResponse { private boolean checkSuccess; + private String filePath; + + private String checkFileName; + + private String invoiceCodes; + + } diff --git a/src/main/java/com/glxp/api/service/inout/IoChangeInoutService.java b/src/main/java/com/glxp/api/service/inout/IoChangeInoutService.java index 1bb7225fc..9b7a945cf 100644 --- a/src/main/java/com/glxp/api/service/inout/IoChangeInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoChangeInoutService.java @@ -211,8 +211,10 @@ public class IoChangeInoutService { outOrder.setCustomerId(Constant.SYSTEM_CUSTOMER_ID); InvWarehouseEntity curInv = invWarehouseService.findByInvSubByCode(orderEntity.getInvCode()); InvWarehouseEntity upInv = invWarehouseService.findByInvSubByCode(curInv.getParentCode()); - outOrder.setFromInvCode(upInv.getCode()); - outOrder.setFromDeptCode(upInv.getParentId()); + if (upInv != null) { + outOrder.setFromInvCode(upInv.getCode()); + outOrder.setFromDeptCode(upInv.getParentId()); + } //原先流程---使用流转单据默认仓库 // outOrder.setFromInvCode(bussinessChangeTypeEntity.getDefaultInvCode()); // outOrder.setFromDeptCode(bussinessChangeTypeEntity.getDefaultDeptCode()); diff --git a/src/main/java/com/glxp/api/service/inout/IoOrderInvoiceService.java b/src/main/java/com/glxp/api/service/inout/IoOrderInvoiceService.java index c2a593068..8c3534ae5 100644 --- a/src/main/java/com/glxp/api/service/inout/IoOrderInvoiceService.java +++ b/src/main/java/com/glxp/api/service/inout/IoOrderInvoiceService.java @@ -16,4 +16,7 @@ public interface IoOrderInvoiceService { boolean insertInvoice(IoOrderInvoiceEntity ioOrderInvoiceEntity); + List selectOrderInvoice(IoOrderInvoiceEntity ioOrderInvoiceEntity); + + } 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 9ef9eb466..4db6ed140 100644 --- a/src/main/java/com/glxp/api/service/inout/IoOrderService.java +++ b/src/main/java/com/glxp/api/service/inout/IoOrderService.java @@ -121,4 +121,7 @@ public interface IoOrderService { * @return */ BaseResponse submitToThrSys(String billNo); + + + boolean isExitByAction(String action); } diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoCodeLostServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoCodeLostServiceImpl.java index 86e25f8f7..71a2d9ed1 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoCodeLostServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoCodeLostServiceImpl.java @@ -1,7 +1,9 @@ package com.glxp.api.service.inout.impl; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.pagehelper.PageHelper; import com.glxp.api.req.inout.IoCodeLostRequest; import com.glxp.api.res.inout.IoCodeLostResponse; import org.springframework.stereotype.Service; @@ -13,6 +15,7 @@ import com.glxp.api.entity.inout.IoCodeLostEntity; import com.glxp.api.service.inout.IoCodeLostService; import org.springframework.transaction.annotation.Transactional; +import java.util.Collections; import java.util.List; @Service @@ -25,13 +28,24 @@ public class IoCodeLostServiceImpl extends ServiceImpl selectLost(IoCodeLostRequest ioCodeLostRequest) { + if (ioCodeLostRequest == null) { + return Collections.emptyList(); + } + if (ioCodeLostRequest.getPage() != null) { + int offset = (ioCodeLostRequest.getPage() - 1) * ioCodeLostRequest.getLimit(); + PageHelper.offsetPage(offset, ioCodeLostRequest.getLimit()); + } return codeLostEntityMapper.selectLost(ioCodeLostRequest); } @Override public IoCodeLostEntity findByCode(String code) { - return codeLostEntityMapper.selectOne(new QueryWrapper().eq("code", code)); + List codeLostEntities = codeLostEntityMapper.selectList(new QueryWrapper().eq("code", code).last("limit 1")); + if (CollUtil.isNotEmpty(codeLostEntities)) { + return codeLostEntities.get(0); + } + return null; } @Override 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 f93b06330..e9aa14853 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 @@ -73,6 +73,8 @@ public class IoOrderDetailBizServiceImpl implements IoOrderDetailBizService { @Override public boolean isExit(String billNo) { + if (billNo == null) + return false; return ioOrderDetailBizDao.exists(new QueryWrapper().eq("orderIdFk", billNo)); } @@ -85,16 +87,7 @@ public class IoOrderDetailBizServiceImpl implements IoOrderDetailBizService { @Override public IoOrderDetailBizEntity findByUnique(String orderId, Long relId, String bacthNo, String productDate, String expireDate) { - return ioOrderDetailBizDao.selectOne(new QueryWrapper() - .eq("orderIdFk", orderId).eq("bindRlFk", relId) - .eq(StrUtil.isNotEmpty(bacthNo), "batchNo", bacthNo) - .isNull(StrUtil.isEmpty(bacthNo), "batchNo") - .eq(StrUtil.isNotEmpty(productDate), "productDate", productDate) - .isNull(StrUtil.isEmpty(productDate), "productDate") - .eq(StrUtil.isNotEmpty(expireDate), "expireDate", expireDate) - .isNull(StrUtil.isEmpty(expireDate), "expireDate") - - ); + return ioOrderDetailBizDao.selectOrderDetailBiz(orderId, relId, bacthNo, productDate, expireDate); } @Override @@ -138,6 +131,12 @@ public class IoOrderDetailBizServiceImpl implements IoOrderDetailBizService { @Override public List filterListInv(FilterOrderDetailBizRequest orderDetailBizRequest) { + if (null == orderDetailBizRequest) { + return Collections.emptyList(); + } + if (null != orderDetailBizRequest.getPage() && null != orderDetailBizRequest.getLimit()) { + PageHelper.offsetPage((orderDetailBizRequest.getPage() - 1) * orderDetailBizRequest.getLimit(), orderDetailBizRequest.getLimit()); + } return ioOrderDetailBizDao.filterListInv(orderDetailBizRequest); } diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderInvoiceServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderInvoiceServiceImpl.java index e6c9f0166..c4cf3e518 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderInvoiceServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderInvoiceServiceImpl.java @@ -11,6 +11,7 @@ import com.glxp.api.service.inout.IoOrderInvoiceService; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.Date; import java.util.List; @Service @@ -34,6 +35,7 @@ public class IoOrderInvoiceServiceImpl implements IoOrderInvoiceService { public boolean updateByInvId(IoOrderInvoiceRequest ioOrderInvoiceRequest) { IoOrderInvoiceEntity ioOrderInvoiceEntity = new IoOrderInvoiceEntity(); BeanUtils.copyProperties(ioOrderInvoiceRequest, ioOrderInvoiceEntity); + ioOrderInvoiceEntity.setUpdateTime(new Date()); return this.ioOrderInvoiceMapper.updateById(ioOrderInvoiceEntity) > 0; } @@ -41,4 +43,9 @@ public class IoOrderInvoiceServiceImpl implements IoOrderInvoiceService { public boolean insertInvoice(IoOrderInvoiceEntity ioOrderInvoiceEntity) { return ioOrderInvoiceMapper.insert(ioOrderInvoiceEntity) > 0; } + + @Override + public List selectOrderInvoice(IoOrderInvoiceEntity ioOrderInvoiceEntity) { + return ioOrderInvoiceMapper.selectOrderInvoice(ioOrderInvoiceEntity); + } } 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 57ce166e5..5c8c27d72 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 @@ -153,6 +153,7 @@ public class IoOrderServiceImpl implements IoOrderService { return orderDao.selectList(new QueryWrapper().eq("action", action).eq("status", status).gt("updateTime", lastUpdateTime)); } + @Override public int insertOrder(IoOrderEntity orderEntity) { orderEntity.setId(null); @@ -421,8 +422,8 @@ public class IoOrderServiceImpl implements IoOrderService { } - orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); - orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_SUCCESS); + orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_REW); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_REW); orderEntity.setUpdateTime(new Date()); update(orderEntity); return true; @@ -590,7 +591,8 @@ public class IoOrderServiceImpl implements IoOrderService { .gt("spUse", 1).eq("actionType", 1).eq("enable", true)); List actions1 = null; actions1 = bussinessTypeEntities.stream().map(BasicBussinessTypeEntity::getAction).collect(Collectors.toList()); - filterOrderRequest.setInvoiceActions1(actions1); + if (CollUtil.isNotEmpty(actions1)) + filterOrderRequest.setInvoiceActions1(actions1); List bussinessTypeEntities2 = basicBussinessTypeDao.selectList(new QueryWrapper() .eq("mainAction", ConstantType.TYPE_PUT).eq("corpType", ConstantStatus.CORP_TYPE_OUT) @@ -598,7 +600,8 @@ public class IoOrderServiceImpl implements IoOrderService { .gt("spUse", 0).eq("actionType", 1).eq("enable", true)); List actions2 = null; actions2 = bussinessTypeEntities2.stream().map(BasicBussinessTypeEntity::getAction).collect(Collectors.toList()); - filterOrderRequest.setInvoiceActions2(actions2); + if (CollUtil.isNotEmpty(actions2)) + filterOrderRequest.setInvoiceActions2(actions2); } @Override @@ -737,6 +740,11 @@ public class IoOrderServiceImpl implements IoOrderService { } } + @Override + public boolean isExitByAction(String action) { + return orderDao.exists(new QueryWrapper().eq("action", action)); + } + /** * 查询此单据关联的所有单据 * diff --git a/src/main/java/com/glxp/api/service/inout/impl/ReceiveServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/ReceiveServiceImpl.java index 866506bab..cd5809e16 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/ReceiveServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/ReceiveServiceImpl.java @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.glxp.api.dao.inout.ReceiveDao; import com.glxp.api.dao.inout.ReceiveDetailDao; -import com.glxp.api.entity.basic.BasicProductsEntity; import com.glxp.api.entity.inout.PurReceiveDetailEntity; import com.glxp.api.entity.inout.PurReceiveEntity; import com.glxp.api.req.inout.FilterReceiveRequest; @@ -68,6 +67,4 @@ public class ReceiveServiceImpl implements ReceiveService { } - - } diff --git a/src/main/java/com/glxp/api/service/inv/InvPreProductDetailService.java b/src/main/java/com/glxp/api/service/inv/InvPreProductDetailService.java index 16581fda7..258f161e2 100644 --- a/src/main/java/com/glxp/api/service/inv/InvPreProductDetailService.java +++ b/src/main/java/com/glxp/api/service/inv/InvPreProductDetailService.java @@ -1,5 +1,6 @@ package com.glxp.api.service.inv; +import com.glxp.api.entity.inv.InvPreInProductDetailEntity; import com.glxp.api.entity.inv.InvPreProductDetailEntity; import com.glxp.api.entity.inv.InvProductDetailEntity; import com.glxp.api.req.inv.FilterInvPreProductDetailRequest; @@ -49,5 +50,9 @@ public interface InvPreProductDetailService { */ boolean deleteInvPreProductDetail(FilterInvProductDetailRequest detailRequest); + int findCountByCode(String code); + + InvPreProductDetailEntity findUseOneByCode(String code); + } diff --git a/src/main/java/com/glxp/api/service/inv/InvPreProductService.java b/src/main/java/com/glxp/api/service/inv/InvPreProductService.java index b933fbe71..8db3bcdc9 100644 --- a/src/main/java/com/glxp/api/service/inv/InvPreProductService.java +++ b/src/main/java/com/glxp/api/service/inv/InvPreProductService.java @@ -45,4 +45,6 @@ public interface InvPreProductService { * @return */ InvPreProductEntity findById(String id); + + boolean isExitByRelId(String relId); } diff --git a/src/main/java/com/glxp/api/service/inv/InvPreinProductDetailService.java b/src/main/java/com/glxp/api/service/inv/InvPreinProductDetailService.java index a5f0e91d0..ecf3dc25f 100644 --- a/src/main/java/com/glxp/api/service/inv/InvPreinProductDetailService.java +++ b/src/main/java/com/glxp/api/service/inv/InvPreinProductDetailService.java @@ -1,6 +1,8 @@ package com.glxp.api.service.inv; import com.glxp.api.entity.inv.InvPreInProductDetailEntity; +import com.glxp.api.entity.inv.InvPreProductDetailEntity; +import com.glxp.api.entity.inv.InvPreinDetailEntity; import com.glxp.api.req.inv.FilterInvPreProductDetailRequest; import com.glxp.api.req.inv.FilterInvProductDetailRequest; import com.glxp.api.res.inv.InvPreProductDetailResponse; diff --git a/src/main/java/com/glxp/api/service/inv/InvProductService.java b/src/main/java/com/glxp/api/service/inv/InvProductService.java index 809bd5284..7c137d80c 100644 --- a/src/main/java/com/glxp/api/service/inv/InvProductService.java +++ b/src/main/java/com/glxp/api/service/inv/InvProductService.java @@ -81,4 +81,6 @@ public interface InvProductService { */ List filterProductNames(FilterInvProductRequest filterInvProductRequest); + boolean isExitByRelId(String relId); + } diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvPreInProductDetailServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvPreInProductDetailServiceImpl.java index f3a0d508e..598e0e363 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/InvPreInProductDetailServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/InvPreInProductDetailServiceImpl.java @@ -10,12 +10,15 @@ import com.glxp.api.dao.basic.BasicBussinessTypeDao; import com.glxp.api.dao.basic.UdiProductDao; import com.glxp.api.dao.inout.IoOrderDao; import com.glxp.api.dao.inv.InvPreInProductDetailDao; +import com.glxp.api.dao.inv.InvPreProductDetailDao; import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.entity.inout.IoOrderEntity; import com.glxp.api.entity.inv.InvPreInProductDetailEntity; +import com.glxp.api.entity.inv.InvPreinDetailEntity; import com.glxp.api.req.inv.FilterInvPreProductDetailRequest; import com.glxp.api.req.inv.FilterInvProductDetailRequest; import com.glxp.api.res.inv.InvPreProductDetailResponse; +import com.glxp.api.service.inv.InvPreProductDetailService; import com.glxp.api.service.inv.InvPreinProductDetailService; import com.glxp.api.util.DateUtil; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvPreProductDetailServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvPreProductDetailServiceImpl.java index 5329d5f7e..83208de79 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/InvPreProductDetailServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/InvPreProductDetailServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; +import com.glxp.api.constant.ConstantStatus; import com.glxp.api.constant.ConstantType; import com.glxp.api.dao.basic.BasicBussinessTypeDao; import com.glxp.api.dao.basic.UdiProductDao; @@ -11,6 +12,7 @@ import com.glxp.api.dao.inout.IoOrderDao; import com.glxp.api.dao.inv.InvPreProductDetailDao; import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.entity.inout.IoOrderEntity; +import com.glxp.api.entity.inv.InvPreInProductDetailEntity; import com.glxp.api.entity.inv.InvPreProductDetailEntity; import com.glxp.api.entity.inv.InvProductDetailEntity; import com.glxp.api.req.inv.FilterInvPreProductDetailRequest; @@ -132,4 +134,31 @@ public class InvPreProductDetailServiceImpl implements InvPreProductDetailServic return invPreProductDetailDao.deleteInvPreProductDetail(detailRequest); } + + @Override + public int findCountByCode(String code) { + List invPreinDetailEntities = invPreProductDetailDao.selectList(new QueryWrapper().eq("code", code)); + int count = 0; + if (CollUtil.isNotEmpty(invPreinDetailEntities)) { + for (InvPreProductDetailEntity invProductDetailEntity : invPreinDetailEntities) { + if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_PUT)) + count = count + invProductDetailEntity.getReCount(); + else { + count = count - invProductDetailEntity.getReCount(); + } + } + } + return count; + } + + @Override + public InvPreProductDetailEntity findUseOneByCode(String code) { + List invPreinDetailEntities = invPreProductDetailDao.selectList(new QueryWrapper().eq("code", code) + .eq("status", ConstantStatus.INVIN_IN).last("limit 1")); + if (CollUtil.isNotEmpty(invPreinDetailEntities)) { + return invPreinDetailEntities.get(0); + } + return null; + } + } diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvPreProductServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvPreProductServiceImpl.java index 51be15a37..b4f6a5d98 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/InvPreProductServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/InvPreProductServiceImpl.java @@ -74,4 +74,11 @@ public class InvPreProductServiceImpl implements InvPreProductService { return invPreProductDao.selectById(id); } + + @Override + public boolean isExitByRelId(String relId) { + return invPreProductDao.exists(new QueryWrapper().eq("relIdFk", relId)); + + } + } diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvProductServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvProductServiceImpl.java index 8aebe0fdb..87da4e0ac 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/InvProductServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/InvProductServiceImpl.java @@ -121,4 +121,10 @@ public class InvProductServiceImpl implements InvProductService { return invProductDao.filterProductNames(filterInvProductRequest); } + @Override + public boolean isExitByRelId(String relId) { + return invProductDao.exists(new QueryWrapper().eq("relIdFk", relId)); + + } + } diff --git a/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml b/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml index 51f7e9f10..e23840d48 100644 --- a/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml @@ -9,6 +9,7 @@ (select employeeName from auth_user au where au.id = io.createUser) createUserName, (select employeeName from auth_user au2 where au2.id = io.updateUser) updateUserName, (select employeeName from auth_user au3 where au3.id = io.reviewUser) reviewUserName, + (select employeeName from auth_user au4 where au4.id = io.checkUser) checkUserName, (select name from auth_dept ad2 where ad2.code = io.fromDeptCode) fromDeptName, (select name from auth_warehouse aw2 where aw2.code = io.fromInvCode) fromInvName, (select name from basic_corp bc where bc.erpId = io.fromCorp) fromCorpName, @@ -64,6 +65,14 @@ #{item} + + + AND fromType in + + #{item} + + + AND status in @@ -90,22 +99,40 @@ - + AND ((`action` in #{item} and status = 10) - - or (( + + + or ( `action` in #{item} - ) and status = 7 + + and status = 7 )) + + + AND ((`action` in + + #{item} + + and status = 10) + or ( + `action` in + + #{item} + + and status = 7) + ) + + order by createTime desc @@ -151,7 +178,13 @@ AND busType = #{busType} - AND date_format(createTime, '%Y-%m-%d') between date_format(#{startTime}, '%Y-%m-%d') and date_format(#{endTime}, '%Y-%m-%d') + AND date_format(createTime, '%Y-%m-%d') between date_format(#{startTime}, '%Y-%m-%d') and + date_format(#{endTime}, '%Y-%m-%d') + + + = DATE_FORMAT(#{lastUpdateTime}, '%Y-%m-%d %H:%i:%S') + ]]> order by createTime desc @@ -183,6 +216,7 @@ (select employeeName from auth_user au where au.id = io.createUser) createUserName, (select employeeName from auth_user au2 where au2.id = io.updateUser) updateUserName, (select employeeName from auth_user au3 where au3.id = io.reviewUser) reviewUserName, + (select employeeName from auth_user au4 where au4.id = io.checkUser) checkUserName, (select name from auth_dept ad2 where ad2.code = io.fromDeptCode) fromDeptName, (select name from auth_warehouse aw2 where aw2.code = io.fromInvCode) fromInvName, (select name from basic_corp bc where bc.erpId = io.fromCorp) fromCorpName, @@ -206,7 +240,8 @@ AND invCode = #{invCode} - AND date_format(createTime, '%Y-%m-%d') between date_format(#{startTime}, '%Y-%m-%d') and date_format(#{endTime}, '%Y-%m-%d') + AND date_format(createTime, '%Y-%m-%d') between date_format(#{startTime}, '%Y-%m-%d') and + date_format(#{endTime}, '%Y-%m-%d') AND date_format(createTime, '%Y-%m-%d') >= date_format(#{startTime}, '%Y-%m-%d') diff --git a/src/main/resources/mybatis/mapper/inout/IoOrderDetailBizDao.xml b/src/main/resources/mybatis/mapper/inout/IoOrderDetailBizDao.xml index 2a852fe7a..55396ba81 100644 --- a/src/main/resources/mybatis/mapper/inout/IoOrderDetailBizDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoOrderDetailBizDao.xml @@ -46,4 +46,34 @@ GROUP BY ic.id + + diff --git a/src/main/resources/mybatis/mapper/inout/IoOrderDetailResultDao.xml b/src/main/resources/mybatis/mapper/inout/IoOrderDetailResultDao.xml index 45f80060a..feb2258c2 100644 --- a/src/main/resources/mybatis/mapper/inout/IoOrderDetailResultDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoOrderDetailResultDao.xml @@ -39,7 +39,7 @@ AND a2.nameCode = #{nameCode} - AND a2.spec = #{spec} + AND a2.spec like concat('%', #{spec}, '%') AND a1.fromCorp = #{fromCorp} @@ -48,19 +48,19 @@ AND b1.name = #{fromCorpName} - AND a2.manufacturer = #{manufacturer} + AND a2.manufacturer like concat('%', #{manufacturer}, '%') - AND a2.certCode = #{zczbhhzbapzbh} + AND a2.certCode like concat('%', #{zczbhhzbapzbh}, '%') AND date_format(a1.auditTime, '%Y-%m-%d') between date_format(#{startAduditTime}, '%Y-%m-%d') and date_format(#{endAduditTime}, '%Y-%m-%d') - AND a2.batchNo = #{batchNo} + AND a2.batchNo like concat('%', #{batchNo}, '%') - AND a2.coName = #{coName} + AND a2.coName like concat('%', #{coName}, '%') AND a2.coName like concat('%', #{productName}, '%') diff --git a/src/main/resources/mybatis/mapper/inout/IoOrderInvoiceMapper.xml b/src/main/resources/mybatis/mapper/inout/IoOrderInvoiceMapper.xml index 526d0a9eb..92740f138 100644 --- a/src/main/resources/mybatis/mapper/inout/IoOrderInvoiceMapper.xml +++ b/src/main/resources/mybatis/mapper/inout/IoOrderInvoiceMapper.xml @@ -9,4 +9,15 @@ #{productDate}, #{expireDate}) + + diff --git a/src/main/resources/mybatis/mapper/inv/InvPreProductDao.xml b/src/main/resources/mybatis/mapper/inv/InvPreProductDao.xml index 8c337f5b3..7958b1a06 100644 --- a/src/main/resources/mybatis/mapper/inv/InvPreProductDao.xml +++ b/src/main/resources/mybatis/mapper/inv/InvPreProductDao.xml @@ -3,31 +3,32 @@ select ipp.* from inv_pre_product ipp - inner join basic_udirel on ipp.relIdFk = basic_udirel.id - inner join basic_products bp on basic_udirel.uuid = bp.uuid - left join basic_corp on ipp.supId = basic_corp.erpId - left join auth_dept on auth_dept.code = ipp.deptCode - left join auth_warehouse on auth_warehouse.code = ipp.invCode + inner join basic_udirel on ipp.relIdFk = basic_udirel.id + inner join basic_products bp on basic_udirel.uuid = bp.uuid + left join basic_corp on ipp.supId = basic_corp.erpId + left join auth_dept on auth_dept.code = ipp.deptCode + left join auth_warehouse on auth_warehouse.code = ipp.invCode bp.diType = 1 @@ -135,4 +136,4 @@ - \ No newline at end of file + diff --git a/src/main/resources/mybatis/mapper/inv/invProductDao.xml b/src/main/resources/mybatis/mapper/inv/invProductDao.xml index ec7b354e0..edc8024eb 100644 --- a/src/main/resources/mybatis/mapper/inv/invProductDao.xml +++ b/src/main/resources/mybatis/mapper/inv/invProductDao.xml @@ -6,31 +6,34 @@ select bp.cpmctymc, - bp.nameCode, - bp.ylqxzcrbarmc, - bp.zczbhhzbapzbh, - bc.name supName, - bp.ggxh, - aw.name invName, - ip.batchNo, - ip.relIdFk, - ip.productionDate, - ip.expireDate, - ip.customerId, - ip.supId, - sum(ip.inCount) inCount, - sum(ip.outCount) outCount, - sum(ip.reCount) reCount + bp.nameCode, + bp.ylqxzcrbarmc, + bp.zczbhhzbapzbh, + bc.name supName, + bp.ggxh, + aw.name invName, + ip.batchNo, + ip.relIdFk, + ip.productionDate, + ip.expireDate, + ip.customerId, + ip.supId, + sum(ip.inCount) inCount, + sum(ip.outCount) outCount, + sum(ip.reCount) reCount from inv_product ip - inner join basic_udirel bu on ip.relIdFk = bu.id - inner join basic_products bp on bu.uuid = bp.uuid - left join basic_corp bc on ip.supId = bc.erpId - left join auth_warehouse aw on aw.code = ip.invCode + inner join basic_udirel bu on ip.relIdFk = bu.id + inner join basic_products bp on bu.uuid = bp.uuid + left join basic_corp bc on ip.supId = bc.erpId + left join auth_warehouse aw on aw.code = ip.invCode bp.diType = 1 @@ -142,21 +148,13 @@ select ip.* from inv_product ip - left join inv_product_detail ipd on ip.relIdFk = ipd.relId - and ifnull(ip.batchNo, 'empty') = ifnull(ipd.batchNo, 'empty') - and ip.deptCode = ipd.deptCode - and ip.invCode = ipd.invCode + left join inv_product_detail ipd on ip.relIdFk = ipd.relId + and ifnull(ip.batchNo, 'empty') = ifnull(ipd.batchNo, 'empty') + and ip.deptCode = ipd.deptCode + and ip.invCode = ipd.invCode AND ip.relIdFk = #{relId} @@ -205,27 +203,26 @@ AND ipd.invSpaceCode = #{invSpaceCode} - group by ip.id select ip.relIdFk, - ip.deptCode, - ip.invCode, - ipd.invSpaceCode, - ip.batchNo, - ip.productionDate, - ip.expireDate, - ip.supId, - sum(ip.inCount) incount, - sum(ip.outCount) outCount, - sum(ip.reCount) reCount + ip.deptCode, + ip.invCode, + ipd.invSpaceCode, + ip.batchNo, + ip.productionDate, + ip.expireDate, + ip.supId, + ip.inCount, + ip.outCount, + ip.reCount from inv_product ip - left join inv_product_detail ipd - on ip.relIdFk = ipd.relId and ifnull(ip.batchNo, 'empty') = ifnull(ipd.batchNo, 'empty') + left join inv_product_detail ipd + on ip.relIdFk = ipd.relId and ifnull(ip.batchNo, 'empty') = ifnull(ipd.batchNo, 'empty') AND ip.invCode = #{invCode} @@ -278,10 +275,10 @@ -