diff --git a/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java b/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java index a66c11c40..fe8f003f7 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java @@ -14,7 +14,6 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; -import com.github.pagehelper.PageInfo; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.constant.Constant; @@ -36,7 +35,6 @@ import com.glxp.api.entity.thrsys.ThrSystemEntity; import com.glxp.api.exception.JsonException; import com.glxp.api.http.ErpBasicClient; import com.glxp.api.http.HttpOkClient; -import com.glxp.api.http.sync.SpGetHttpClient; import com.glxp.api.req.basic.FilterUdiRelRequest; import com.glxp.api.req.collect.CollectOrderBizRequest; import com.glxp.api.req.collect.CollectOrderRequest; @@ -51,13 +49,11 @@ import com.glxp.api.res.basic.UdiRelevanceResponse; import com.glxp.api.res.collect.CollectOrderBizResponse; import com.glxp.api.res.collect.IoCollectOrderResponse; import com.glxp.api.res.inout.IoOrderResponse; -import com.glxp.api.res.inout.IoStatOrderResponse; import com.glxp.api.res.thrsys.ThrInvProductResponse; import com.glxp.api.service.auth.SysWorkplaceService; import com.glxp.api.service.basic.*; import com.glxp.api.service.inout.*; import com.glxp.api.service.inout.impl.IoCodeService; -import com.glxp.api.service.thrsys.SysWorkplacePutRelService; import com.glxp.api.util.*; import com.glxp.api.util.udi.FilterUdiUtils; import com.glxp.api.util.udi.UdiCalCountUtil; @@ -87,8 +83,6 @@ public class IoCollectOrderService extends ServiceImpl().eq(IoCollectOrder::getBillNo, billNo).last("limit 1")); } @@ -235,6 +227,7 @@ public class IoCollectOrderService extends ServiceImpl list = orderService.filterList(filterOrderRequest); + List collectOrderList = new ArrayList<>(); + List allWorksList = new ArrayList<>(); for (IoOrderResponse ioOrderEntity : list) { + if (collectOrderMapper.exists(new LambdaQueryWrapper().eq(IoCollectOrder::getBillNo, ioOrderEntity.getBillNo()))) { continue; } SysWorkplaceDocumentEntity sysWorkplaceDocumentEntity = sysWorkplaceDocumentService.findByBusType(ioOrderEntity.getAction()); if (sysWorkplaceDocumentEntity == null) continue; - String mainAction = ioOrderEntity.getMainAction(); - String fromCorpName = ""; - String shipperName = ""; - if (mainAction.equals(ConstantType.TYPE_PUT)) { - shipperName = ioOrderEntity.getFromName(); - fromCorpName = ioOrderEntity.getDeptName(); - } else { - shipperName = ioOrderEntity.getDeptName(); - fromCorpName = ioOrderEntity.getFromName(); + List sysWorkplaces = sysWorkplaceService.getAllByBusType(ioOrderEntity.getAction()); + + //自动分配工位 + final Long[] defaultWorkplace = {null}; + if (CollUtil.isNotEmpty(sysWorkplaces)) { + if (sysWorkplaces.size() == 1) { + defaultWorkplace[0] = sysWorkplaces.get(0).getWorkplaceId(); + } else { + List addWorkplace = new ArrayList<>(); + for (SysWorkplaceResponse sysWorkplace : sysWorkplaces) { + //获取是否有正在处理的工位 + List collectOrderList1 = collectOrderMapper.selectList(new LambdaQueryWrapper() + .eq(IoCollectOrder::getWorkPlaceCode, sysWorkplace.getWorkplaceId()).in(IoCollectOrder::getTagStatus, -1, 1, 2)); + sysWorkplace.setOrderCount(collectOrderList1.size()); + if (IntUtil.value(sysWorkplace.getOrderCount()) > 0) { + addWorkplace.add(sysWorkplace); + } + } + if (addWorkplace.size() > 0) { + Optional minCountObject = addWorkplace.stream() + .min((o1, o2) -> Integer.compare(o1.getOrderCount(), o2.getOrderCount())); + minCountObject.ifPresent(sysWorkplace -> defaultWorkplace[0] = sysWorkplace.getWorkplaceId()); + } else { + defaultWorkplace[0] = sysWorkplaces.get(0).getWorkplaceId(); + } + } } IoCollectOrder collectOrder = IoCollectOrder.builder() .billNo(ioOrderEntity.getBillNo()) .fromType("UDI系统") .busType(ioOrderEntity.getAction()) .fromCorp(ioOrderEntity.getFromName()) - .fromCorpName(fromCorpName) + .workPlaceCode(defaultWorkplace[0]) .billTime(ioOrderEntity.getCreateTime()) - .shipperName(shipperName) .createTime(ioOrderEntity.getCreateTime()) .createUser(ioOrderEntity.getCreateUser()) .updateTime(new Date()) .orderCirType(sysWorkplaceDocumentEntity.getOrderCirType()) .splitStatus(0) - .tagStatus(1) + .tagStatus(0) .build(); if (collectOrder.getWorkPlaceCode() != null) { collectOrder.setTagStatus(1); } save(collectOrder); - IoCollectOrderOrigin ioCollectOrderOrigin = new IoCollectOrderOrigin(); - BeanUtils.copyProperties(collectOrder, ioCollectOrderOrigin); - ioCollectOrderOrigin.setTagStatus(2); - collectOrderOriginService.saveOrUpdate(ioCollectOrderOrigin); - List orderDetailBizEntities = orderDetailBizService.findByOrderId(ioOrderEntity.getBillNo()); + List collectOrderBizs = new ArrayList<>(); - List collectOrderOriginBizs = new ArrayList<>(); for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) { UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByRelId(bizEntity.getBindRlFk() + ""); IoCollectOrderBiz collectOrderBiz = IoCollectOrderBiz.builder().orderIdFk(collectOrder.getBillNo()) @@ -346,96 +342,29 @@ public class IoCollectOrderService extends ServiceImpl> selectImportUdi(FilterOrderRequest filterOrderRequest) { - - List ioCollectOrders = new ArrayList<>(); - List list = orderService.filterList(filterOrderRequest); - PageInfo pageInfo = new PageInfo<>(list); + allWorksList.addAll(sysWorkplaces); - for (IoOrderResponse ioOrderEntity : list) { - if (collectOrderMapper.exists(new LambdaQueryWrapper().eq(IoCollectOrder::getBillNo, ioOrderEntity.getBillNo()))) { - continue; - } - SysWorkplaceDocumentEntity sysWorkplaceDocumentEntity = sysWorkplaceDocumentService.findByBusType(ioOrderEntity.getAction()); - if (sysWorkplaceDocumentEntity == null) - continue; - String mainAction = ioOrderEntity.getMainAction(); - String fromCorpName = ""; - String shipperName = ""; - if (mainAction.equals(ConstantType.TYPE_PUT)) { - shipperName = ioOrderEntity.getFromName(); - fromCorpName = ioOrderEntity.getDeptName(); - } else { - shipperName = ioOrderEntity.getDeptName(); - fromCorpName = ioOrderEntity.getFromName(); - } - IoCollectOrder collectOrder = IoCollectOrder.builder() - .billNo(ioOrderEntity.getBillNo()) - .fromType("UDI系统") - .busType(ioOrderEntity.getAction()) - .fromCorp(ioOrderEntity.getFromName()) - .fromCorpName(fromCorpName) - .billTime(ioOrderEntity.getCreateTime()) - .shipperName(shipperName) - .createTime(ioOrderEntity.getCreateTime()) - .createUser(ioOrderEntity.getCreateUser()) - .updateTime(new Date()) - .orderCirType(sysWorkplaceDocumentEntity.getOrderCirType()) - .splitStatus(0) - .tagStatus(0) - .build(); - if (collectOrder.getWorkPlaceCode() != null) { - collectOrder.setTagStatus(1); + if (IntUtil.value(sysWorkplaceDocumentEntity.getAutoTag()) == 1 && IntUtil.value(collectOrder.getTagStatus()) == 1) { + splitFifoCodeService.lockInventoryByOrder(collectOrder.getBillNo(), 1); } - List orderDetailBizEntities = orderDetailBizService.findByOrderId(ioOrderEntity.getBillNo()); - List collectOrderBizs = new ArrayList<>(); - for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) { - UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByRelId(bizEntity.getBindRlFk() + ""); - IoCollectOrderBiz collectOrderBiz = IoCollectOrderBiz.builder().orderIdFk(collectOrder.getBillNo()) - .relId(bizEntity.getBindRlFk()) - .thrCode(udiRelevanceResponse.getMainId()) - .ybbm(udiRelevanceResponse.getYbbm()) - .payFeeCode(udiRelevanceResponse.getPayFeeCode()) - .cpmctymc(bizEntity.getCoName()) - .nameCode(bizEntity.getNameCode()) - .ggxh(bizEntity.getSpec()) - .batchNo(bizEntity.getBatchNo()) - .productDate(bizEntity.getProductDate()) - .expireDate(bizEntity.getExpireDate()) - .count(bizEntity.getCount()) - .measureUnit(bizEntity.getMeasname()) - .tagStatus(1) - .unTagCount(bizEntity.getCount()).build(); - if (IntUtil.value(udiRelevanceResponse.getProductsType()) == 2) { - collectOrderBiz.setGgxh(udiRelevanceResponse.getBzgg()); - collectOrderBiz.setMeasureUnit(udiRelevanceResponse.getPrepnUnit()); - } - collectOrderBizs.add(collectOrderBiz); - } - collectOrder.setBizList(collectOrderBizs); - ioCollectOrders.add(collectOrder); } +// if (CollUtil.isNotEmpty(collectOrderList)) { +// saveBatch(collectOrderList); +// } + +// Map sysWorkplaceMap = new HashMap<>(); +// for (SysWorkplaceResponse sysWorkplace : allWorksList) { +// sysWorkplaceMap.put(sysWorkplace.getId(), sysWorkplace); +// } +// for (SysWorkplaceResponse value : sysWorkplaceMap.values()) { +// splitFifoCodeService.preAllotInv(value.getWorkplaceId()); +// } - PageInfo pageInfoReturn = new PageInfo<>(ioCollectOrders); - BeanUtils.copyProperties(pageInfo, pageInfoReturn); - pageInfoReturn.setList(ioCollectOrders); - return ResultVOUtils.success(pageInfoReturn); } @@ -714,23 +643,14 @@ public class IoCollectOrderService extends ServiceImpl