diff --git a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderCodeAutoController.java b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderCodeAutoController.java index 3b29d2bd6..07becdd80 100644 --- a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderCodeAutoController.java +++ b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderCodeAutoController.java @@ -102,7 +102,9 @@ public class IoCollectOrderCodeAutoController extends BaseController { BeanUtils.copyProperties(collectOrderBiz, collectOrderBizResponse); for (IoCollectOrderCodeAuto collectOrderCodeAuto : collectOrderCodeAutos) { if (collectOrderCodeAuto.getRelId().equals(collectOrderBiz.getRelId()) && - (StrUtil.isNotEmpty(collectOrderBiz.getBatchNo()) && collectOrderBiz.getBatchNo().equals(collectOrderCodeAuto.getBatchNo()))) { + (StrUtil.isNotEmpty(collectOrderCodeAuto.getBatchNo()) && collectOrderBiz.getBatchNo().equals(collectOrderCodeAuto.getBatchNo()))) { + collectOrderBizResponse.setUdiCode(StrUtil.trimToEmpty(collectOrderBizResponse.getUdiCode()) + "," + collectOrderCodeAuto.getUdiCode()); + } else if (collectOrderCodeAuto.getRelId().equals(collectOrderBiz.getRelId())) { collectOrderBizResponse.setUdiCode(StrUtil.trimToEmpty(collectOrderBizResponse.getUdiCode()) + "," + collectOrderCodeAuto.getUdiCode()); } } diff --git a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderCodeManController.java b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderCodeManController.java index d6efc2216..b74997dd2 100644 --- a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderCodeManController.java +++ b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderCodeManController.java @@ -42,6 +42,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.validation.Valid; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -211,7 +212,7 @@ public class IoCollectOrderCodeManController extends BaseController { // } //按单不校验三期 - collectOrderBiz = vailNoBatchNo(udiRelevanceResponses, collectOrderBizs); + collectOrderBiz = vailNoBatchNo(udiRelevanceResponses, collectOrderBizs, udiEntity); switch (workPlace.getCheckInsert()) { case 1: //插入 if (collectOrderBiz == null) { @@ -260,6 +261,7 @@ public class IoCollectOrderCodeManController extends BaseController { IoCollectOrderCodeMan exitCode = collectOrderCodeManService.findByCode(collectOrderBiz.getOrderIdFk(), code); if (StrUtil.isEmpty(udiEntity.getSerialNo()) && exitCode != null) { exitCode.setScanCount(IntUtil.value(exitCode.getScanCount()) + 1); + exitCode.setBizIdFk(collectOrderBiz.getId()); collectOrderCodeManService.updateById(exitCode); } else if (StrUtil.isNotEmpty(udiEntity.getSerialNo()) && exitCode != null) { return ResultVOUtils.error(500, "重复扫码!"); @@ -268,6 +270,7 @@ public class IoCollectOrderCodeManController extends BaseController { IoCollectOrderCodeMan.builder() .udiCode(code) .orderIdFk(collectOrder.getBillNo()) + .bizIdFk(collectOrderBiz.getId()) .relId(collectOrderBiz.getRelId()) .nameCode(udiRelevanceResponse.getNameCode()) .batchNo(udiEntity.getBatchNo()) @@ -345,15 +348,26 @@ public class IoCollectOrderCodeManController extends BaseController { } - public IoCollectOrderBiz vailNoBatchNo(List udiRelevanceResponses, List collectOrderBizs) { + public IoCollectOrderBiz vailNoBatchNo(List udiRelevanceResponses, List collectOrderBizs, UdiEntity udiEntity) { + List addList = new ArrayList<>(); for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) { for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) { - if (udiRelevanceResponse.getId().equals(collectOrderBiz.getRelId()) - ) { - return collectOrderBiz; + if (udiRelevanceResponse.getId().equals(collectOrderBiz.getRelId())) { + addList.add(collectOrderBiz); } + } + } + if (addList.size() > 0) { + for (IoCollectOrderBiz collectOrderBiz : addList) { + if (StrUtil.trimToEmpty(collectOrderBiz.getBatchNo()).equals(StrUtil.trimToEmpty(udiEntity.getBatchNo()))) { + return collectOrderBiz; + } + if (IntUtil.value(collectOrderBiz.getCount()) > IntUtil.value(collectOrderBiz.getScanCount())) { + return collectOrderBiz; + } } + return addList.get(0); } return null; } diff --git a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java index 5a9f653a2..01e905a7b 100644 --- a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java +++ b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java @@ -11,6 +11,8 @@ import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.controller.BaseController; import com.glxp.api.entity.basic.BasicSkPrescribeEntity; import com.glxp.api.entity.collect.IoCollectOrder; +import com.glxp.api.entity.collect.IoCollectOrderCodeAuto; +import com.glxp.api.entity.collect.IoCollectOrderCodeMan; import com.glxp.api.req.basic.PrescribeBindWorkRequest; import com.glxp.api.req.collect.CollectOrderBindWorkRequest; import com.glxp.api.req.collect.CollectOrderBizRequest; @@ -21,6 +23,8 @@ import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.collect.CollectOrderBizResponse; import com.glxp.api.res.collect.IoCollectOrderResponse; import com.glxp.api.service.collect.IoCollectOrderBizService; +import com.glxp.api.service.collect.IoCollectOrderCodeAutoService; +import com.glxp.api.service.collect.IoCollectOrderCodeManService; import com.glxp.api.service.collect.IoCollectOrderService; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Controller; @@ -93,6 +97,77 @@ public class IoCollectOrderController extends BaseController { return ResultVOUtils.success(pageSimpleResponse); } + @Resource + IoCollectOrderCodeAutoService collectOrderCodeAutoService; + @Resource + IoCollectOrderCodeManService collectOrderCodeManService; + + @GetMapping("/udiwms/basic/collect/order/allDetail") + public BaseResponse allDetail(CollectOrderBizRequest collectOrderBizRequest) { + if (StrUtil.isBlank(collectOrderBizRequest.getOrderIdFk())) { + return ResultVOUtils.error(500, "单据号不能为空"); + } + IoCollectOrder collectOrder = collectOrderService.getByBillNo(collectOrderBizRequest.getOrderIdFk()); + if (collectOrder == null) { + return ResultVOUtils.error(500, "未找到单据"); + } + List list = collectOrderBizService.filterList(collectOrderBizRequest); + + List splitCodes = collectOrderCodeAutoService.listByBillNo(collectOrderBizRequest.getOrderIdFk(), 1); + List unSplitCodes = collectOrderCodeAutoService.listByBillNo(collectOrderBizRequest.getOrderIdFk(), 2); + List manList = collectOrderCodeManService.listByBillNo(collectOrderBizRequest.getOrderIdFk()); + + List collectOrderBizResponses = new ArrayList<>(); + for (CollectOrderBizResponse collectOrderBiz : list) { + CollectOrderBizResponse collectOrderBizResponse = new CollectOrderBizResponse(); + BeanUtils.copyProperties(collectOrderBiz, collectOrderBizResponse); + //拆零 + for (IoCollectOrderCodeAuto collectOrderCodeAuto : splitCodes) { + if (collectOrderCodeAuto.getRelId().equals(collectOrderBiz.getRelId()) && + (StrUtil.isNotEmpty(collectOrderCodeAuto.getBatchNo()) && collectOrderBiz.getBatchNo().equals(collectOrderCodeAuto.getBatchNo()))) { + collectOrderBizResponse.setSplitUdiCode(StrUtil.trimToEmpty(collectOrderBizResponse.getSplitUdiCode()) + "," + collectOrderCodeAuto.getUdiCode()); + } else if (collectOrderCodeAuto.getRelId().equals(collectOrderBiz.getRelId())) { + collectOrderBizResponse.setSplitUdiCode(StrUtil.trimToEmpty(collectOrderBizResponse.getSplitUdiCode()) + "," + collectOrderCodeAuto.getUdiCode()); + } + } + if (StrUtil.isNotEmpty(collectOrderBizResponse.getSplitUdiCode())) { + collectOrderBizResponse.setSplitUdiCode(collectOrderBizResponse.getSplitUdiCode().substring(1)); + } + //整取 + for (IoCollectOrderCodeAuto collectOrderCodeAuto : unSplitCodes) { + if (collectOrderCodeAuto.getRelId().equals(collectOrderBiz.getRelId()) && + (StrUtil.isNotEmpty(collectOrderCodeAuto.getBatchNo()) && collectOrderBiz.getBatchNo().equals(collectOrderCodeAuto.getBatchNo()))) { + collectOrderBizResponse.setUnSplitUdiCode(StrUtil.trimToEmpty(collectOrderBizResponse.getUnSplitUdiCode()) + "," + collectOrderCodeAuto.getUdiCode()); + } else if (collectOrderCodeAuto.getRelId().equals(collectOrderBiz.getRelId())) { + collectOrderBizResponse.setUnSplitUdiCode(StrUtil.trimToEmpty(collectOrderBizResponse.getUnSplitUdiCode()) + "," + collectOrderCodeAuto.getUdiCode()); + } + } + if (StrUtil.isNotEmpty(collectOrderBizResponse.getUnSplitUdiCode())) { + collectOrderBizResponse.setUnSplitUdiCode(collectOrderBizResponse.getUnSplitUdiCode().substring(1)); + } + //手动 + for (IoCollectOrderCodeMan collectOrderCodeAuto : manList) { + if (collectOrderCodeAuto.getRelId().equals(collectOrderBiz.getRelId()) && + (StrUtil.isNotEmpty(collectOrderCodeAuto.getBatchNo()) && collectOrderBiz.getBatchNo().equals(collectOrderCodeAuto.getBatchNo()))) { + collectOrderBizResponse.setScanUdiCode(StrUtil.trimToEmpty(collectOrderBizResponse.getScanUdiCode()) + "," + collectOrderCodeAuto.getUdiCode()); + } else if (collectOrderCodeAuto.getRelId().equals(collectOrderBiz.getRelId())) { + collectOrderBizResponse.setScanUdiCode(StrUtil.trimToEmpty(collectOrderBizResponse.getScanUdiCode()) + "," + collectOrderCodeAuto.getUdiCode()); + } + } + if (StrUtil.isNotEmpty(collectOrderBizResponse.getScanUdiCode())) { + collectOrderBizResponse.setUnSplitUdiCode(collectOrderBizResponse.getScanUdiCode().substring(1)); + } + collectOrderBizResponses.add(collectOrderBizResponse); + } + + + PageInfo pageInfo = new PageInfo<>(collectOrderBizResponses); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(collectOrderBizResponses); + return ResultVOUtils.success(pageSimpleResponse); + } + @PostMapping("/udiwms/basic/collect/order/deleteOrder") public BaseResponse deleteOrder(@RequestBody DeleteRequest deleteRequest) { @@ -203,6 +278,4 @@ public class IoCollectOrderController extends BaseController { } - - } 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 25321e1d6..cf21d08b3 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java @@ -39,6 +39,7 @@ import com.glxp.api.res.basic.UdiRlSupResponse; import com.glxp.api.res.inout.IoOrderDetailBizResponse; import com.glxp.api.res.inout.IoOrderDetailResultResponse; import com.glxp.api.res.inout.IoOrderInvoiceResponse; +import com.glxp.api.res.inout.IoSplitCodeResponse; import com.glxp.api.service.auth.InvWarehouseService; import com.glxp.api.service.basic.*; import com.glxp.api.service.inout.*; @@ -636,12 +637,20 @@ public class IoOrderDetailBizController extends BaseController { @GetMapping("/udiwms/inout/bizDetail/filterList") public BaseResponse filterList(FilterOrderDetailBizRequest orderDetailBizRequest) { List list = orderDetailBizService.filterList(orderDetailBizRequest); + for (IoOrderDetailBizResponse ioSplitCodeResponse : list) { + if (StrUtil.isEmpty(ioSplitCodeResponse.getSpec())) { + ioSplitCodeResponse.setSpec(ioSplitCodeResponse.getBzgg()); + + } + } String value = systemParamConfigService.selectValueByParamKey("order_detail_visible"); if (IntUtil.value(value) == 1) { list = list.stream() .sorted(Comparator.comparing(IoOrderDetailBizResponse::getNameCode)) .collect(Collectors.toList()); } + + List orderDetailCodeEntities = orderDetailCodeService.findByOrderId(orderDetailBizRequest.getOrderIdFk()); ioCheckInoutService.bizOrderCheck2(list, orderDetailCodeEntities); PageInfo pageInfo = new PageInfo<>(list); diff --git a/src/main/java/com/glxp/api/controller/inout/IoSplitFifoController.java b/src/main/java/com/glxp/api/controller/inout/IoSplitFifoController.java index 601174e9e..c161341fc 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoSplitFifoController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoSplitFifoController.java @@ -1,5 +1,6 @@ package com.glxp.api.controller.inout; +import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageInfo; import com.glxp.api.common.enums.ResultEnum; import com.glxp.api.common.res.BaseResponse; @@ -40,6 +41,15 @@ public class IoSplitFifoController extends BaseController { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } List splitCodeEntities = splitFifoCodeService.filterGroupList(splitFifoCodeRequest); + for (IoSplitCodeResponse ioSplitCodeResponse : splitCodeEntities) { + if (StrUtil.isEmpty(ioSplitCodeResponse.getGgxh())) { + ioSplitCodeResponse.setGgxh(ioSplitCodeResponse.getBzgg()); + + } + if (StrUtil.isEmpty(ioSplitCodeResponse.getMeasname())) { + ioSplitCodeResponse.setMeasname(ioSplitCodeResponse.getUseLevelUnit()); + } + } PageInfo pageInfo = new PageInfo<>(splitCodeEntities); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(pageInfo.getTotal()); @@ -59,6 +69,15 @@ public class IoSplitFifoController extends BaseController { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } List splitCodeEntities = splitFifoCodeService.filterList(splitFifoCodeRequest); + for (IoSplitCodeResponse ioSplitCodeResponse : splitCodeEntities) { + if (StrUtil.isEmpty(ioSplitCodeResponse.getGgxh())) { + ioSplitCodeResponse.setGgxh(ioSplitCodeResponse.getBzgg()); + + } + if (StrUtil.isEmpty(ioSplitCodeResponse.getMeasname())) { + ioSplitCodeResponse.setMeasname(ioSplitCodeResponse.getUseLevelUnit()); + } + } PageInfo pageInfo = new PageInfo<>(splitCodeEntities); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(pageInfo.getTotal()); @@ -68,9 +87,9 @@ public class IoSplitFifoController extends BaseController { @GetMapping("/udiwms/ioSplit/findInvRemind") public BaseResponse findInvRemind(IoSplitFifoCodeRequest splitFifoCodeRequest, - BindingResult bindingResult) { + BindingResult bindingResult) { Long workPlaceCode = splitFifoCodeRequest.getWorkPlaceCode(); - if (workPlaceCode == null){ + if (workPlaceCode == null) { return ResultVOUtils.error("工位编号不可为空!"); } String invRemind = splitFifoCodeService.findInvRemind(workPlaceCode); diff --git a/src/main/java/com/glxp/api/entity/auth/SysWorkplace.java b/src/main/java/com/glxp/api/entity/auth/SysWorkplace.java index 0945c16ec..7ebf75491 100644 --- a/src/main/java/com/glxp/api/entity/auth/SysWorkplace.java +++ b/src/main/java/com/glxp/api/entity/auth/SysWorkplace.java @@ -83,17 +83,17 @@ public class SysWorkplace implements Serializable { private Integer operationType; /** - *1: '插入', - *2: '不插入', - *3: '提醒不插入' + * 1: '插入', + * 2: '不插入', + * 3: '提醒不插入' */ @TableField(value = "checkInsert") private Integer checkInsert; /** - *1: '信息提醒', - *2: '信息弹框提醒', - *3: '不提醒' + * 1: '信息提醒', + * 2: '信息弹框提醒', + * 3: '不提醒' */ @TableField(value = "warnType") private Integer warnType; @@ -110,7 +110,7 @@ public class SysWorkplace implements Serializable { private String orderId; /** - * 往来单位类型 1:客户,2:供应商,3:内部科室,4:特殊往来 + * 往来单位类型 1:客户,2:供应商,3:内部科室,4:特殊往来 */ @TableField(value = "corpType") private Integer corpType; @@ -129,7 +129,6 @@ public class SysWorkplace implements Serializable { private Integer invRemindNumber; - @TableField(exist = false) private String invName; @@ -146,5 +145,8 @@ public class SysWorkplace implements Serializable { @TableField(exist = false) private String fromTypeName; + @TableField(exist = false) + public Integer orderCount; + } diff --git a/src/main/java/com/glxp/api/entity/collect/IoCollectOrderCodeMan.java b/src/main/java/com/glxp/api/entity/collect/IoCollectOrderCodeMan.java index 2cf39c34a..72dd57679 100644 --- a/src/main/java/com/glxp/api/entity/collect/IoCollectOrderCodeMan.java +++ b/src/main/java/com/glxp/api/entity/collect/IoCollectOrderCodeMan.java @@ -39,7 +39,7 @@ public class IoCollectOrderCodeMan implements Serializable { */ @TableField(value = "bizIdFk") @ApiModelProperty(value = "") - private String bizIdFk; + private Long bizIdFk; @TableField(value = "udiCode") @ApiModelProperty(value = "") 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 dc1473057..6b46b1632 100644 --- a/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java +++ b/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java @@ -225,5 +225,5 @@ public class FilterOrderRequest extends ListPageRequest { /** * 产品类别 */ - private Integer productType = 1; + private Integer productType; } diff --git a/src/main/java/com/glxp/api/res/collect/CollectOrderBizResponse.java b/src/main/java/com/glxp/api/res/collect/CollectOrderBizResponse.java index f980f7a6b..b11135a58 100644 --- a/src/main/java/com/glxp/api/res/collect/CollectOrderBizResponse.java +++ b/src/main/java/com/glxp/api/res/collect/CollectOrderBizResponse.java @@ -117,4 +117,9 @@ public class CollectOrderBizResponse { private Long relId; private Integer unTagCount; + + private String scanUdiCode; + private String splitUdiCode; + private String unSplitUdiCode; + } diff --git a/src/main/java/com/glxp/api/res/inout/IoSplitCodeResponse.java b/src/main/java/com/glxp/api/res/inout/IoSplitCodeResponse.java index 21c894e91..f84aa821c 100644 --- a/src/main/java/com/glxp/api/res/inout/IoSplitCodeResponse.java +++ b/src/main/java/com/glxp/api/res/inout/IoSplitCodeResponse.java @@ -146,6 +146,8 @@ public class IoSplitCodeResponse { private String zczbhhzbapzbh; private String ybbm; private String zxxsdycpbs; + private String bzgg; + private String useLevelUnit; } diff --git a/src/main/java/com/glxp/api/service/auth/SysWorkplaceService.java b/src/main/java/com/glxp/api/service/auth/SysWorkplaceService.java index beedee2bf..dd0cba035 100644 --- a/src/main/java/com/glxp/api/service/auth/SysWorkplaceService.java +++ b/src/main/java/com/glxp/api/service/auth/SysWorkplaceService.java @@ -48,4 +48,10 @@ public class SysWorkplaceService extends ServiceImpl().eq(SysWorkplace::getOrderId, code).last("limit 1")); } + + + public List getAllByBusType(String code) { + return super.baseMapper.selectList( + new LambdaQueryWrapper().eq(SysWorkplace::getOrderId, code)); + } } diff --git a/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java b/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java index affc14d16..f6f39d462 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java @@ -5,6 +5,7 @@ import com.github.pagehelper.PageHelper; import com.glxp.api.dao.basic.BasicSkPrescribeItemCodeMapper; import com.glxp.api.dao.collect.IoCollectOrderCodeAutoMapper; import com.glxp.api.entity.basic.BasicSkPrescribeItemCode; +import com.glxp.api.entity.collect.IoCollectOrderCodeAuto; import com.glxp.api.req.collect.CollectOrderCodeAutoRequest; import com.glxp.api.req.collect.CollectOrderCodeManRequest; import com.glxp.api.res.collect.CollectOrderCodeAutoResponse; @@ -36,6 +37,10 @@ public class IoCollectOrderCodeManService extends ServiceImpl listByBillNo(String billNo) { + return collectOrderCodeManMapper.selectList(new LambdaQueryWrapper() + .eq(IoCollectOrderCodeMan::getOrderIdFk, billNo)); + } public IoCollectOrderCodeMan findByCode(String billNo, String code) { return collectOrderCodeManMapper.selectOne(new LambdaQueryWrapper().eq(IoCollectOrderCodeMan::getOrderIdFk, billNo) 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 834f81b6f..947f01c04 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java @@ -5,7 +5,9 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; +import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.dao.collect.IoCollectOrderMapper; +import com.glxp.api.entity.auth.SysWorkplace; import com.glxp.api.entity.basic.BasicCollectBustypeEntity; import com.glxp.api.entity.basic.BasicSkPrescribeEntity; import com.glxp.api.entity.basic.BasicSkPrescribeItemEntity; @@ -13,6 +15,7 @@ import com.glxp.api.entity.collect.IoCollectOrder; import com.glxp.api.entity.collect.IoCollectOrderBiz; import com.glxp.api.entity.collect.IoCollectOrderCodeMan; import com.glxp.api.entity.inout.IoOrderDetailBizEntity; +import com.glxp.api.entity.inout.IoOrderEntity; import com.glxp.api.exception.JsonException; import com.glxp.api.req.collect.CollectOrderRequest; import com.glxp.api.req.inout.DeleteTageCodeRequest; @@ -20,22 +23,22 @@ import com.glxp.api.req.inout.FilterOrderRequest; import com.glxp.api.res.basic.UdiRelevanceResponse; import com.glxp.api.res.collect.IoCollectOrderResponse; import com.glxp.api.res.inout.IoOrderResponse; +import com.glxp.api.service.auth.SysWorkplaceService; import com.glxp.api.service.basic.BasicCollectBustypeService; import com.glxp.api.service.basic.BasicSkPrescirbeDetailService; import com.glxp.api.service.basic.BasicSkPrescribeService; import com.glxp.api.service.basic.UdiRelevanceService; +import com.glxp.api.service.inout.IoCodeTempService; import com.glxp.api.service.inout.IoOrderDetailBizService; import com.glxp.api.service.inout.IoOrderService; +import com.glxp.api.service.inout.impl.IoCodeService; import com.glxp.api.util.IntUtil; import com.glxp.api.util.MsDateUtil; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Date; -import java.util.List; +import java.util.*; @Service public class IoCollectOrderService extends ServiceImpl { @@ -85,15 +88,49 @@ public class IoCollectOrderService extends ServiceImpl orderEntities = new ArrayList<>(); + + + List orderEntities1 = orderService.findAllByAction("SC72197936495755"); + List orderEntities2 = orderService.findAllByAction("SC72249388338364"); + orderEntities.addAll(orderEntities1); + orderEntities.addAll(orderEntities2); + orderEntities.parallelStream().forEach(item -> + { + List delBillNos = new ArrayList<>(); + delBillNos.add(item.getBillNo()); + orderService.deleteInvByBillNo(delBillNos); + for (String billNo : delBillNos) { + orderService.deleteByBillNo(billNo); + orderDetailBizService.deleteByOrderId(billNo); + orderDetailCodeService.deleteByOrderId(billNo); + codeTempService.deleteByBillNo(billNo); + codeService.deleteCodeByOrderId(billNo); + } + } + ); } + @Resource + SysWorkplaceService sysWorkplaceService; + public void importUdi() { //下载UDI内部单据 FilterOrderRequest filterOrderRequest = new FilterOrderRequest(); - filterOrderRequest.setPage(1); - filterOrderRequest.setLimit(1000); +// filterOrderRequest.setPage(1); +// filterOrderRequest.setLimit(1000); filterOrderRequest.setStatus(7); filterOrderRequest.setProductType(null); List list = orderService.filterList(filterOrderRequest); @@ -105,11 +142,39 @@ public class IoCollectOrderService extends ServiceImpl().eq(IoCollectOrder::getBillNo, ioOrderEntity.getBillNo()))) { continue; } + + //自动分配工位 + final Long[] defaultWorkplace = {null}; + List sysWorkplaces = sysWorkplaceService.getAllByBusType(collectBustypeEntity.getCode()); + if (CollUtil.isNotEmpty(sysWorkplaces)) { + if (sysWorkplaces.size() == 1) { + defaultWorkplace[0] = sysWorkplaces.get(0).getWorkplaceId(); + } else { + List addWorkplace = new ArrayList<>(); + for (SysWorkplace 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()) .busType(collectBustypeEntity.getCode()) .fromType(collectBustypeEntity.getFromType()) .fromCorp(ioOrderEntity.getFromName()) + .workPlaceCode(defaultWorkplace[0]) .billTime(ioOrderEntity.getCreateTime()) .createTime(ioOrderEntity.getCreateTime()) .createUser(ioOrderEntity.getCreateUser()) @@ -117,6 +182,9 @@ public class IoCollectOrderService extends ServiceImpl orderDetailBizEntities = orderDetailBizService.findByOrderId(ioOrderEntity.getBillNo()); @@ -162,16 +230,47 @@ public class IoCollectOrderService extends ServiceImpl collectOrderList = new ArrayList<>(); for (BasicSkPrescribeEntity basicSkPrescribeEntity : basicSkPrescribeEntities) { BasicCollectBustypeEntity collectBustypeEntity = collectBustypeService.findByAddr(String.valueOf(basicSkPrescribeEntity.getAddr())); + + if (collectBustypeEntity == null) continue; if (collectOrderMapper.exists(new LambdaQueryWrapper().eq(IoCollectOrder::getBillNo, basicSkPrescribeEntity.getCode()))) { continue; } + //自动分配工位 + final Long[] defaultWorkplace = {null}; + List sysWorkplaces = sysWorkplaceService.getAllByBusType(collectBustypeEntity.getCode()); + if (CollUtil.isNotEmpty(sysWorkplaces)) { + if (sysWorkplaces.size() == 1) { + defaultWorkplace[0] = sysWorkplaces.get(0).getWorkplaceId(); + } else { + List addWorkplace = new ArrayList<>(); + for (SysWorkplace 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(basicSkPrescribeEntity.getCode()) .busType(collectBustypeEntity.getCode()) .fromType(collectBustypeEntity.getFromType()) .fromCorp(basicSkPrescribeEntity.getSickerCode()) + .workPlaceCode(defaultWorkplace[0]) .billTime(MsDateUtil.localToDate(basicSkPrescribeEntity.getCreateTime())) .createTime(new Date()) .createUser(basicSkPrescribeEntity.getCreateUser()) @@ -179,6 +278,9 @@ public class IoCollectOrderService extends ServiceImpl basicSkPrescribeItemEntities = basicSkPrescirbeDetailService.findByPrescribeNum(basicSkPrescribeEntity.getCode()); @@ -199,10 +301,10 @@ public class IoCollectOrderService extends ServiceImpl0){ + if (delCount > 0) { IoCollectOrderBiz bizServiceOne = collectOrderBizService.getOne(new LambdaQueryWrapper() .eq(IoCollectOrderBiz::getId, bizIdFk)); - if (bizServiceOne == null) throw new JsonException("扫码详情未查找到"); + if (bizServiceOne == null) throw new JsonException("扫码详情未查找到"); Integer count = bizServiceOne.getCount(); Integer newCount = count - delCount; - if (newCount > 0){ + if (newCount > 0) { bizServiceOne.setCount(newCount); collectOrderBizService.updateById(bizServiceOne); - }else { + } else { collectOrderBizService.removeById(bizServiceOne.getId()); } } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 8d323dbd3..10d81b490 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -4,7 +4,7 @@ server: spring: datasource: driver-class-name: com.p6spy.engine.spy.P6SpyDriver - jdbc-url: jdbc:p6spy:mysql://192.168.0.166:3306/udi_wms_ct?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true + jdbc-url: jdbc:p6spy:mysql://127.0.0.1:3306/udi_wms_ct?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true username: root password: 123456 hikari: diff --git a/src/main/resources/mybatis/mapper/inout/IoSplitFifoCodeMapper.xml b/src/main/resources/mybatis/mapper/inout/IoSplitFifoCodeMapper.xml index 7e77dfa6f..b3be9496f 100644 --- a/src/main/resources/mybatis/mapper/inout/IoSplitFifoCodeMapper.xml +++ b/src/main/resources/mybatis/mapper/inout/IoSplitFifoCodeMapper.xml @@ -7,6 +7,8 @@ sum(totalCount) as groupCount, bp.cpmctymc, bp.ggxh, + bp.bzgg, + bu.useLevelUnit, bp.ylqxzcrbarmc, bp.manufactory, bp.measname, @@ -49,7 +51,7 @@ AND productType = #{productType} - + AND workPlaceCode = #{workPlaceCode} @@ -62,9 +64,11 @@ SELECT io_split_fifo_code.*, bp.cpmctymc, bp.ggxh, + bp.bzgg, bp.ylqxzcrbarmc, bp.manufactory, bp.measname, + bu.useLevelUnit, bp.zczbhhzbapzbh, bp.ybbm, bp.zxxsdycpbs @@ -96,7 +100,7 @@ AND productType = #{productType} - + AND workPlaceCode = #{workPlaceCode} @@ -105,20 +109,20 @@