diff --git a/src/main/java/com/glxp/api/controller/thrsys/ForThirdSysApiController.java b/src/main/java/com/glxp/api/controller/thrsys/ForThirdSysApiController.java index 59484083b..154cdfca3 100644 --- a/src/main/java/com/glxp/api/controller/thrsys/ForThirdSysApiController.java +++ b/src/main/java/com/glxp/api/controller/thrsys/ForThirdSysApiController.java @@ -14,12 +14,11 @@ import com.glxp.api.req.forthird.ForInvOutScanCodeRequest; import com.glxp.api.req.inv.FilterInvProductRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.basic.UdiRelevanceResponse; -import com.glxp.api.res.basic.UdiRlSupResponse; import com.glxp.api.res.forthird.ForInvOutScanCodeResponse; import com.glxp.api.res.inv.InvProductResponse; import com.glxp.api.service.auth.InvWarehouseService; import com.glxp.api.service.basic.UdiRelevanceService; -import com.glxp.api.service.forthird.ForThirdSysApiService; +import com.glxp.api.service.forthird.impl.ForThirdSysApiService; import com.glxp.api.service.inv.InvPreProductDetailService; import com.glxp.api.service.inv.InvPreinProductDetailService; import com.glxp.api.service.inv.impl.InvProductDetailService; @@ -90,14 +89,15 @@ public class ForThirdSysApiController { } else count = invPreinProductDetailService.vailStockCount(udiRelevanceResponses.get(0).getRelId(), udiEntity.getBatchNo(), null, null, preInInv.getCode(), null); - - //2.获取寄售库存 - InvWarehouseEntity preInv = invWarehouseService.findByOne(ConstantStatus.ACTION_TYPE_ADVANCE); - count = invPreProductDetailService.vailStockCount(udiRelevanceResponses.get(0).getRelId(), udiEntity.getBatchNo(), null, null, preInv.getCode(), null); - - //3.获取入账库库存 - count = invProductDetailService.vailStockCount(udiRelevanceResponses.get(0).getRelId(), udiEntity.getBatchNo(), null, null, filterInvProductRequest.getInvCode(), null, true); - + if (count == 0) { + //2.获取寄售库存 + InvWarehouseEntity preInv = invWarehouseService.findByOne(ConstantStatus.ACTION_TYPE_ADVANCE); + count = invPreProductDetailService.vailStockCount(udiRelevanceResponses.get(0).getRelId(), udiEntity.getBatchNo(), null, null, preInv.getCode(), null); + } + if (count == 0) { + //3.获取入账库库存 + count = invProductDetailService.vailStockCount(udiRelevanceResponses.get(0).getRelId(), udiEntity.getBatchNo(), null, null, filterInvProductRequest.getInvCode(), null, true); + } InvProductResponse invProductResponse = new InvProductResponse(); BeanUtil.copyProperties(udiRelevanceResponses.get(0), invProductResponse); invProductResponse.setReCount(count); @@ -133,8 +133,7 @@ public class ForThirdSysApiController { */ @PostMapping("/forThirdSysApi/inv/out/scanCode") public BaseResponse invOutScanCode(@RequestBody @Valid ForInvOutScanCodeRequest forInvOutScanCodeRequest) { - ForInvOutScanCodeResponse forInvOutScanCodeResponse = forThirdSysApiService.invOutScanCode(forInvOutScanCodeRequest); - return ResultVOUtils.success(forInvOutScanCodeResponse); + return forThirdSysApiService.invOutScanCode(forInvOutScanCodeRequest); } diff --git a/src/main/java/com/glxp/api/service/forthird/ForThirdSysApiService.java b/src/main/java/com/glxp/api/service/forthird/ForThirdSysApiService.java deleted file mode 100644 index 10180494f..000000000 --- a/src/main/java/com/glxp/api/service/forthird/ForThirdSysApiService.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.glxp.api.service.forthird; - -import com.glxp.api.req.basic.FilterUdiRelRequest; -import com.glxp.api.req.forthird.ForInvOutScanCodeRequest; -import com.glxp.api.req.inv.FilterInvProductRequest; -import com.glxp.api.res.PageSimpleResponse; -import com.glxp.api.res.basic.UdiRelevanceResponse; -import com.glxp.api.res.forthird.ForInvOutScanCodeResponse; -import com.glxp.api.res.inv.InvProductResponse; - -import java.util.List; - -public interface ForThirdSysApiService { - - PageSimpleResponse invProductsFilter(FilterInvProductRequest filterInvProductRequest); - - PageSimpleResponse basicProductsSearch(FilterUdiRelRequest filterUdiRelRequest); - - ForInvOutScanCodeResponse invOutScanCode(ForInvOutScanCodeRequest forInvOutScanCodeRequest); -} diff --git a/src/main/java/com/glxp/api/service/forthird/impl/ForThirdSysApiServiceImpl.java b/src/main/java/com/glxp/api/service/forthird/impl/ForThirdSysApiService.java similarity index 50% rename from src/main/java/com/glxp/api/service/forthird/impl/ForThirdSysApiServiceImpl.java rename to src/main/java/com/glxp/api/service/forthird/impl/ForThirdSysApiService.java index ecfc59567..382b99f71 100644 --- a/src/main/java/com/glxp/api/service/forthird/impl/ForThirdSysApiServiceImpl.java +++ b/src/main/java/com/glxp/api/service/forthird/impl/ForThirdSysApiService.java @@ -1,26 +1,37 @@ package com.glxp.api.service.forthird.impl; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.ObjectUtil; -import com.alibaba.fastjson.JSON; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; -import com.glxp.api.dao.inout.IoCodeDao; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.constant.Constant; +import com.glxp.api.constant.ConstantStatus; +import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.entity.basic.UdiEntity; -import com.glxp.api.entity.inout.IoCodeEntity; +import com.glxp.api.entity.inout.IoCodeTempEntity; +import com.glxp.api.entity.inout.IoOrderEntity; import com.glxp.api.exception.JsonException; import com.glxp.api.req.basic.FilterUdiRelRequest; import com.glxp.api.req.forthird.ForInvOutScanCodeRequest; +import com.glxp.api.req.forthird.IoOrderCodeRequest; +import com.glxp.api.req.forthird.IoOrderRequest; import com.glxp.api.req.inv.FilterInvProductRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.basic.UdiRelevanceResponse; import com.glxp.api.res.forthird.ForInvOutScanCodeResponse; import com.glxp.api.res.inv.InvProductPageResponse; import com.glxp.api.res.inv.InvProductResponse; +import com.glxp.api.service.basic.IBasicBussinessTypeService; import com.glxp.api.service.basic.UdiRelevanceService; -import com.glxp.api.service.forthird.ForThirdSysApiService; -import com.glxp.api.service.inout.impl.IoCodeService; +import com.glxp.api.service.inout.IoAddInoutService; +import com.glxp.api.service.inout.IoCheckInoutService; import com.glxp.api.service.inv.impl.InvProductService; +import com.glxp.api.util.CustomUtil; +import com.glxp.api.util.GennerOrderUtils; +import com.glxp.api.util.OrderNoTypeBean; import com.glxp.api.util.StringUtils; import com.glxp.api.util.udi.FilterUdiUtils; import lombok.extern.slf4j.Slf4j; @@ -28,20 +39,27 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.Date; import java.util.List; @Slf4j @Service @Transactional(rollbackFor = Exception.class) -public class ForThirdSysApiServiceImpl implements ForThirdSysApiService { +public class ForThirdSysApiService { @Resource InvProductService invProductService; @Resource UdiRelevanceService udiRelevanceService; + @Resource + GennerOrderUtils gennerOrderUtils; + @Resource + IBasicBussinessTypeService bussinessTypeService; + @Resource + IoCheckInoutService ioCheckInoutService; + @Resource + IoAddInoutService addInoutService; - - @Override public PageSimpleResponse invProductsFilter(FilterInvProductRequest filterInvProductRequest) { buildForInvProductsFilter(filterInvProductRequest); List list = invProductService.filterList(filterInvProductRequest); @@ -52,7 +70,6 @@ public class ForThirdSysApiServiceImpl implements ForThirdSysApiService { return pageResponse; } - @Override public PageSimpleResponse basicProductsSearch(FilterUdiRelRequest filterUdiRelRequest) { buildForBasicProductsSearchFilter(filterUdiRelRequest); List list = udiRelevanceService.filterUdiGp(filterUdiRelRequest); @@ -63,19 +80,64 @@ public class ForThirdSysApiServiceImpl implements ForThirdSysApiService { return pageResponse; } - @Resource - IoCodeDao codeDao; - @Override - public ForInvOutScanCodeResponse invOutScanCode(ForInvOutScanCodeRequest forInvOutScanCodeRequest) { + public BaseResponse invOutScanCode(ForInvOutScanCodeRequest hisRequest) { + IoOrderRequest orderRequest = hisRequest.getIoOrderRequest(); + BasicBussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findByAction(orderRequest.getAction()); + String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trimToEmpty(bussinessTypeEntity.getPrefix()), "yyyyMMdd")); + + List codeRequestList = hisRequest.getCodeRequestList(); + List codeTempEntities = BeanUtil.copyToList(codeRequestList, IoCodeTempEntity.class); + IoOrderEntity orderEntity = new IoOrderEntity(); + BeanUtil.copyProperties(orderRequest, orderEntity); + orderEntity.setBillNo(orderNo); + orderEntity.setCorpOrderId(CustomUtil.getId() + "x"); + orderEntity.setMainAction(bussinessTypeEntity.getMainAction()); + orderEntity.setAction(bussinessTypeEntity.getAction()); + orderEntity.setFromCorp(orderRequest.getFromCorp()); + orderEntity.setFromType(ConstantStatus.FROM_WEBNEW); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE); + orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_DRAFT); + orderEntity.setCreateTime(new Date()); + orderEntity.setUpdateUser(orderRequest.getUpdateUser() + ""); + orderEntity.setUpdateTime(new Date()); + orderEntity.setCustomerId("110"); + orderEntity.setDeptCode(orderRequest.getDeptCode()); +// orderEntity.setCheckPreInOrders(addOrderRequest.getCheckPreInOrders()); + orderEntity.setInvCode(orderRequest.getInvCode()); + orderEntity.setOrderType(orderRequest.getOrderType()); + orderEntity.setBusType(bussinessTypeEntity.getBusType()); + orderEntity.setSickerAdNum(orderRequest.getSickerAdNum()); + + for (IoCodeTempEntity codeEnttity : codeTempEntities) { + UdiEntity udiEntity = FilterUdiUtils.getUdi(codeEnttity.getCode()); + codeEnttity.setOrderId(orderNo); + codeEnttity.setCorpOrderId(orderEntity.getCorpOrderId()); + codeEnttity.setCreateTime(new Date()); + codeEnttity.setUpdateTime(new Date()); + codeEnttity.setMainAction(bussinessTypeEntity.getMainAction()); + codeEnttity.setAction(bussinessTypeEntity.getAction()); + codeEnttity.setNameCode(udiEntity.getUdi()); + codeEnttity.setBatchNo(udiEntity.getBatchNo()); + codeEnttity.setProduceDate(udiEntity.getProduceDate()); + codeEnttity.setExpireDate(udiEntity.getExpireDate()); + codeEnttity.setSerialNo(udiEntity.getSerialNo()); + codeEnttity.setDeptCode(orderEntity.getDeptCode()); + codeEnttity.setInvCode(orderEntity.getInvCode()); + List udiRelevanceResponses = udiRelevanceService.selectGroupByNameCode(udiEntity.getUdi(), false); + if (udiRelevanceResponses.size() == 0) { + return ResultVOUtils.error("收费项目未对照!"); + } + codeEnttity.setRelId(udiRelevanceResponses.get(0).getId()); + codeEnttity.setCount(1); + } ForInvOutScanCodeResponse forInvOutScanCodeResponse = new ForInvOutScanCodeResponse(); - System.out.println(JSON.toJSONString(forInvOutScanCodeRequest)); - // TODO: 2024/3/15 以获取到业务单据实体 需要对单据进行操作 成功返回 单据号 - //校验UDI码是否正确,获取最新的UDI码 -// codeDao.selectOne(new LambdaQueryWrapper().eq(IoCodeEntity::getCode, forInvOutScanCodeRequest.getIoOrderRequest().getCode())); - String billNo = "1212121"; - forInvOutScanCodeResponse.setBillNo(billNo); - return forInvOutScanCodeResponse; + forInvOutScanCodeResponse.setBillNo(orderNo); + addInoutService.dealProcess(orderEntity); + if (!ioCheckInoutService.checkManual(orderEntity.getBillNo())) { + ioCheckInoutService.check(orderEntity.getBillNo()); + } + return ResultVOUtils.success(forInvOutScanCodeResponse); } private void buildForBasicProductsSearchFilter(FilterUdiRelRequest filterUdiRelRequest) { 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 bd3baf2f9..5c9412954 100644 --- a/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java @@ -536,7 +536,6 @@ public class IoAddInoutService { if (tempEntity != null) { return ResultVOUtils.error(500, "单据已存在,请勿重复提交"); } - BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); BaseResponse baseResponse = checkInv(bussinessTypeEntity, pdaPostOrderRequest.getOrderDetailBizEntities(), orderEntity, pdaPostOrderRequest.getCodeTempEntities()); @@ -550,14 +549,8 @@ public class IoAddInoutService { for (IoCodeTempEntity codeTempEntity : codeTempEntities) { resultList = checkPrice(codeTempEntity, bussinessTypeEntity, resultList); } -// for (IoCodeTempEntity codeTempEntity : resultList) { -// if (codeTempEntity.getId() == null) -//// return ResultVOUtils.error(500, "价格发生变动!"); -// log.error("价格发生变动"); -// } } - String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trimToEmpty(bussinessTypeEntity.getPrefix()), "yyyyMMdd")); orderEntity.setBillNo(orderNo); orderService.insertOrder(orderEntity);