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 dc5e023ce..f91165a2d 100644 --- a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java +++ b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java @@ -487,7 +487,7 @@ public class IoCollectOrderController extends BaseController { // } @PostMapping("/udiwms/basic/collect/decideOrder") public BaseResponse decideOrder(@RequestBody CollectOrderRequest request) { - Boolean isExis = collectOrderService.decideOrder(request); + Boolean isExis = collectOrderService.decideOrder(request,getUserId()); if (!isExis) { return ResultVOUtils.error("当前工位存在正在处理单据!"); } 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 a48418b91..c74f3ad97 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -868,15 +868,22 @@ public class IoCodeTempController extends BaseController { if (codeTempEntity1 != null) { return ResultVOUtils.error(533, "扫码重复或当前追溯码已存在草稿单据中!"); } + } else { + //校验工位库存 + List codeTempEntities = codeTempService.findByOrderId(addOrderRequest.getBillNo()); + for (IoCodeTempEntity codeTempEntity : codeTempEntities) { + //校验工位库存 + if (bussinessTypeEntity.isUse()) { + codeTempEntity.setReCount(IntUtil.value(codeTempEntity.getMyReCount()) + udiCalCountUtil.getUseActCount(udiRelevanceResponse)); + } else { + codeTempEntity.setReCount(IntUtil.value(codeTempEntity.getMyReCount()) + udiCalCountUtil.getCirActCount(udiRelevanceResponse)); + } + if (fifoCodeEntity.getTotalCount() < codeTempEntity.getReCount()) { + return ResultVOUtils.error(500, "当前码库存不足!"); + } + } } - //校验工位库存 -// List codeTempEntities = codeTempService.findByOrderId(addOrderRequest.getBillNo()); -// for (IoCodeTempEntity codeTempEntity : codeTempEntities) { -// //校验工位库存 -// if (fifoCodeEntity.getTotalCount() < codeTempEntity.getReCount()){ -// return ResultVOUtils.error(500, "当前码库存不足!"); -// } -// } + } //校验预验收是否已存在 if (bussinessTypeEntity.getActionType() == ConstantStatus.ACTION_TYPE_PREIN && bussinessTypeEntity.getMainAction().equals(ConstantType.TYPE_PUT)) { @@ -2070,7 +2077,6 @@ public class IoCodeTempController extends BaseController { @GetMapping("warehouse/inout/deleteCodesTempById") @Log(title = "单据管理", businessType = BusinessType.DELETE) public BaseResponse deleteCodesTempById(@RequestParam("id") Integer id) { - IoCodeTempEntity codeTempEntity = codeTempService.selectById(id); if (codeTempEntity == null) { return ResultVOUtils.error(506, "UDI码异常,未录入!"); @@ -2828,5 +2834,75 @@ public class IoCodeTempController extends BaseController { return ResultVOUtils.success(addCodeResult); } + @AuthRuleAnnotation("") + @PostMapping("warehouse/inout/deleteCodesTempBycodes") + @Log(title = "单据管理", businessType = BusinessType.DELETE) + public BaseResponse deleteCodesTempByCodes(@RequestBody AddEnterCodeRequest addEnterCodeRequest) { + List codeList = addEnterCodeRequest.getCodeList(); + String orderId = addEnterCodeRequest.getOrderId(); + IoOrderEntity order = orderService.findByBillNo(orderId); + if (order == null) + return ResultVOUtils.error(500, "单据不存在"); + if (CollUtil.isEmpty(codeList)) + return ResultVOUtils.error(500, "追溯码不能为空"); + //器械的码 可能会是一样的 + List ioCodeTempEntities = codeTempService.selectByCodes(codeList,orderId); + if (CollUtil.isEmpty(ioCodeTempEntities)) + return ResultVOUtils.error(500, "当前追溯码不存在"); + for (IoCodeTempEntity codeTempEntity : ioCodeTempEntities) { + IoOrderEntity orderEntity = orderService.findByBillNo(codeTempEntity.getOrderId()); + BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); + UdiRelevanceResponse udiRelevanceResponses = udiRelevanceService.selectByNameCode(codeTempEntity.getNameCode()); + + if (codeTempEntity.getMyCount() > 1) { + codeTempEntity.setCount(codeTempEntity.getMyCount() - 1); + if (bussinessTypeEntity.isUse()) { + codeTempEntity.setReCount(codeTempEntity.getMyReCount() - udiCalCountUtil.getUseActCount(udiRelevanceResponses)); + } else { + codeTempEntity.setReCount(codeTempEntity.getMyReCount() - udiCalCountUtil.getCirActCount(udiRelevanceResponses)); + } + codeTempService.updateById(codeTempEntity); + } else { + codeTempService.deleteById(codeTempEntity.getId()); + } + //更新扫码详情 + IoOrderDetailCodeEntity orderDetailCodeEntity = ioOrderDetailCodeService.findByUnique(orderEntity.getBillNo(), codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getPrice()); + if (orderDetailCodeEntity != null) { + //扫码数量-1 + int orderCount = IntUtil.value(orderDetailCodeEntity.getCount()); + int orderReCount = IntUtil.value(orderDetailCodeEntity.getReCount()); + if (orderCount > 1) { + orderDetailCodeEntity.setCount(orderCount - 1); + + + if (bussinessTypeEntity.isUse()) { + orderDetailCodeEntity.setReCount(orderReCount - udiCalCountUtil.getUseActCount(udiRelevanceResponses)); +// codeTempEntity.setReCount(codeTempEntity.getMyReCount() - udiCalCountUtil.getUseActCount(udiRelevanceResponses); + } else { + orderDetailCodeEntity.setReCount(orderReCount - udiCalCountUtil.getCirActCount(udiRelevanceResponses)); +// codeTempEntity.setReCount(codeTempEntity.getMyReCount() - udiCalCountUtil.getCirActCount(udiRelevanceResponses); + } + + ioOrderDetailCodeService.update(orderDetailCodeEntity); + } else { + ioOrderDetailCodeService.deleteById(orderDetailCodeEntity.getId()); + } + } + + + boolean r1 = orderDetailBizService.isExit(orderEntity.getBillNo()); + boolean r2 = ioOrderDetailCodeService.isExit(orderEntity.getBillNo()); + if (!r1 && !r2) { + if (StrUtil.isNotEmpty(orderDetailCodeEntity.getOrderIdFk())) + orderService.deleteByBillNo(orderDetailCodeEntity.getOrderIdFk()); + } + + orderEntity.setUpdateUser(getUserId() + ""); + orderEntity.setUpdateTime(new Date()); + orderService.update(orderEntity); + } + return ResultVOUtils.success("删除成功!"); + } + } diff --git a/src/main/java/com/glxp/api/dao/auth/SysWorkplaceDao.java b/src/main/java/com/glxp/api/dao/auth/SysWorkplaceDao.java index 3fd715508..80b3e831d 100644 --- a/src/main/java/com/glxp/api/dao/auth/SysWorkplaceDao.java +++ b/src/main/java/com/glxp/api/dao/auth/SysWorkplaceDao.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.glxp.api.entity.auth.SysWorkplace; import com.glxp.api.req.auth.SysWorkplaceRequest; +import com.glxp.api.req.collect.CollectOrderRequest; import com.glxp.api.res.basic.SysWorkplaceResponse; import org.apache.ibatis.annotations.Param; @@ -24,4 +25,6 @@ public interface SysWorkplaceDao extends BaseMapper { List getAllByBusType(String busTypeCode); List getListByBusType(@Param("request") SysWorkplaceRequest request); + + SysWorkplace getWorkplaceByUser(@Param("request") CollectOrderRequest request,@Param("userId") Long userId); } diff --git a/src/main/java/com/glxp/api/req/inout/AddEnterCodeRequest.java b/src/main/java/com/glxp/api/req/inout/AddEnterCodeRequest.java index 012cbfc91..654a72536 100644 --- a/src/main/java/com/glxp/api/req/inout/AddEnterCodeRequest.java +++ b/src/main/java/com/glxp/api/req/inout/AddEnterCodeRequest.java @@ -12,4 +12,5 @@ public class AddEnterCodeRequest { private String code; private List codeList; private String viewType; + private String orderId; } 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 96eb7a248..275c3baf7 100644 --- a/src/main/java/com/glxp/api/service/auth/SysWorkplaceService.java +++ b/src/main/java/com/glxp/api/service/auth/SysWorkplaceService.java @@ -10,6 +10,7 @@ import com.glxp.api.entity.auth.SysWorkplace; import com.glxp.api.exception.JsonException; import com.glxp.api.req.auth.SysWorkplaceRequest; import com.glxp.api.req.basic.WorkBindBusTypeRequest; +import com.glxp.api.req.collect.CollectOrderRequest; import com.glxp.api.res.basic.SysWorkplaceDocumentResponse; import com.glxp.api.res.basic.SysWorkplaceResponse; import com.glxp.api.service.basic.SysWorkplaceDocumentService; @@ -92,4 +93,8 @@ public class SysWorkplaceService extends ServiceImpl page = super.baseMapper.getListByBusType(request); return page; } + + public SysWorkplace getWorkplaceByUser(CollectOrderRequest request, Long userId) { + return super.baseMapper.getWorkplaceByUser(request,userId); + } } diff --git a/src/main/java/com/glxp/api/service/basic/UdiProductService.java b/src/main/java/com/glxp/api/service/basic/UdiProductService.java index d2080fac3..de8898e19 100644 --- a/src/main/java/com/glxp/api/service/basic/UdiProductService.java +++ b/src/main/java/com/glxp/api/service/basic/UdiProductService.java @@ -513,12 +513,15 @@ public class UdiProductService extends ServiceImpl ioCollectOrders = collectOrderMapper.selectList(new LambdaQueryWrapper() .eq(IoCollectOrder::getWorkPlaceCode, request.getWorkPlaceCode()) .eq(IoCollectOrder::getTagStatus, request.getTagStatus())); diff --git a/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java b/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java index c528a6576..b518bb957 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java @@ -51,4 +51,6 @@ public interface IoCodeTempService { Boolean checkTempCode(IoCodeTempEntity ioCodeTempEntity); IoCodeTempEntity selectByCode(String code,String batchNo,String action); + + List selectByCodes(List codeList,String orderId); } diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoCodeTempServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoCodeTempServiceImpl.java index 70171a0e4..932701808 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoCodeTempServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoCodeTempServiceImpl.java @@ -162,4 +162,12 @@ public class IoCodeTempServiceImpl implements IoCodeTempService { return ioCodeTempDao.selectOne(ew); } + @Override + public List selectByCodes(List codeList,String orderId) { + QueryWrapper ew = new QueryWrapper<>(); + ew.eq("orderId",orderId); + ew.in("code", codeList); + return ioCodeTempDao.selectList(ew); + } + } diff --git a/src/main/resources/mybatis/mapper/auth/SysWorkplaceDao.xml b/src/main/resources/mybatis/mapper/auth/SysWorkplaceDao.xml index 48b7e1957..d5c54a026 100644 --- a/src/main/resources/mybatis/mapper/auth/SysWorkplaceDao.xml +++ b/src/main/resources/mybatis/mapper/auth/SysWorkplaceDao.xml @@ -112,4 +112,12 @@ ORDER BY sw.deptCode, sw.chargeUser ,sw.workplaceId +