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 3dfc5131f..27d1e7615 100644 --- a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java +++ b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java @@ -17,6 +17,7 @@ import com.glxp.api.entity.basic.BasicSkPrescribeEntity; import com.glxp.api.entity.basic.SysWorkplaceDocumentEntity; import com.glxp.api.entity.collect.*; import com.glxp.api.entity.dev.DeviceCheckDetailItemEntity; +import com.glxp.api.exception.JsonException; import com.glxp.api.req.basic.BasicCollectUserRequest; import com.glxp.api.req.basic.PrescribeBindWorkRequest; import com.glxp.api.req.basic.WorkBindBusTypeRequest; @@ -161,7 +162,7 @@ public class IoCollectOrderController extends BaseController { request.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode()); request.setBusType(collectOrderRequest.getBusType()); //根据更改用户查询单据 防止两个用户分配同一单据 -// request.setUpdateUser(getUserId()); + request.setUpdateUser(getUserId()); request.setTagStatus(2); List orderResponses = collectOrderService.filterList(request); if (CollUtil.isNotEmpty(orderResponses)) @@ -201,13 +202,29 @@ public class IoCollectOrderController extends BaseController { request.setLimit(1); request.setBillNo(collectOrderRequest.getBillNo()); List orderResponses = collectOrderService.filterList(request); - if (CollUtil.isNotEmpty(orderResponses)) + IoCollectOrder order = collectOrderService.getOne(new LambdaQueryWrapper().eq(IoCollectOrder::getBillNo, collectOrderRequest.getBillNo())); + if (CollUtil.isNotEmpty(orderResponses)){ + if (order.getTagStatus() == 2){ + return ResultVOUtils.error(500,"此单据正在处理中!"); + } + //查询到显示页面 更改为处理中 防止前端刷新页面 重新查询 + order.setBillNo(collectOrderRequest.getBillNo()); + order.setUpdateUser(getUserId()); + order.setUpdateTime(new Date()); + order.setTagStatus(2); + collectOrderService.updateByBillNo(order); return ResultVOUtils.success(orderResponses.get(0)); - else { + } else { request.setTagStatus(-1); orderResponses = collectOrderService.filterList(request); - if (CollUtil.isNotEmpty(orderResponses)) + if (CollUtil.isNotEmpty(orderResponses)){ + order.setBillNo(collectOrderRequest.getBillNo()); + order.setUpdateUser(getUserId()); + order.setUpdateTime(new Date()); + order.setTagStatus(2); + collectOrderService.updateByBillNo(order); return ResultVOUtils.success(orderResponses.get(0)); + } } return ResultVOUtils.error(500, "未查到待处理单据"); 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 dfc4a5476..3eb2478aa 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java @@ -327,7 +327,7 @@ public class IoOrderController extends BaseController { @AuthRuleAnnotation("") @PostMapping("warehouse/inout/saveOrderWeb") @Log(title = "单据管理", businessType = BusinessType.UPDATE) - public BaseResponse saveOrderWeb(@RequestBody AddOrderRequest addOrderRequest) { + public BaseResponse saveOrderWeb(@RequestBody AddOrderRequest addOrderRequest){ IoOrderEntity orderEntity = new IoOrderEntity(); if (addOrderRequest.getWorkPlaceCode() != null) { @@ -360,6 +360,9 @@ public class IoOrderController extends BaseController { orderEntity.setDeptCode(addOrderRequest.getDeptCode()); orderEntity.setBillNo(addOrderRequest.getBillNo()); orderEntity.setInvCode(addOrderRequest.getInvCode()); + orderEntity.setUpdateTime(new Date()); + orderEntity.setUpdateUser(getUserId() + ""); + if (addOrderRequest.getProductType() == null) { //器械单据 orderEntity.setProductType(1); @@ -414,7 +417,7 @@ public class IoOrderController extends BaseController { //上货校验追溯码是否重复 if (bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_OUT)) { for (IoCodeTempEntity codeTempEntity : codeTempEntities) { - IoSplitFifoCodeEntity fifoCodeEntity = fifoCodeService.findByCode(codeTempEntity.getCode(), null); + IoSplitFifoCodeEntity fifoCodeEntity = fifoCodeService.findByCode(codeTempEntity.getCode(),addOrderRequest.getWorkPlaceCode() ); if (fifoCodeEntity != null && StrUtil.isNotEmpty(fifoCodeEntity.getSerialNo())) { return ResultVOUtils.error(500, "当前追溯码:" + fifoCodeEntity.getCode() + "已存在!"); } @@ -1350,6 +1353,27 @@ public class IoOrderController extends BaseController { } + @PostMapping("/udiwms/inout/order/upProcessing") + public BaseResponse isProcessing(@RequestBody AddOrderRequest addOrderRequest) { + IoOrderEntity order = orderService.findByBillNo(addOrderRequest.getBillNo()); + if (order.getStatus() == 3){ + return ResultVOUtils.error(501,"此订单正在处理中"); + } + order.setStatus(3);//订单从草稿改变成为3 表示正在处理中 + order.setUpdateUser(getUserId() + ""); + order.setUpdateTime(new Date()); + orderService.updateByBillNo(order); + return ResultVOUtils.success(); + } + + @GetMapping("/udiwms/inout/order/getProcessingOrder") + public BaseResponse getProcessingOrder(AddOrderRequest addOrderRequest) { + IoOrderResponse order = orderService.findByWorkPlaceCode(addOrderRequest.getWorkPlaceCode() + "",getUserId()); + return ResultVOUtils.success(order); + } + + + public String checkId(IoOrderDetailBizEntity bizEntity, IoCodeTempEntity codeEntity) { if (bizEntity.getBindRlFk().longValue() == codeEntity.getRelId().longValue()) { diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailCodeController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailCodeController.java index 2a085d7a5..83b3147f7 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailCodeController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailCodeController.java @@ -46,8 +46,8 @@ public class IoOrderDetailCodeController { //获取新增扫码单据详情---临时接口查询 @AuthRuleAnnotation("") @GetMapping("udiwms/inout/order/draft/detailCode") - public BaseResponse getDraftsDetailCode(String orderId) { - List orderEntityList = ioOrderDetailCodeService.checkOrderList(orderId); + public BaseResponse getDraftsDetailCode(String orderId,String productName) { + List orderEntityList = ioOrderDetailCodeService.checkOrderList(orderId,productName); List list = ioOrderDetailCodeService.getDetailCodeResponse(orderEntityList); for (IoOrderDetailCodeResponse ioSplitCodeResponse : list) { diff --git a/src/main/java/com/glxp/api/entity/collect/IoSplitFifoInvRel.java b/src/main/java/com/glxp/api/entity/collect/IoSplitFifoInvRel.java index eeb65bbfc..9c4a42c6b 100644 --- a/src/main/java/com/glxp/api/entity/collect/IoSplitFifoInvRel.java +++ b/src/main/java/com/glxp/api/entity/collect/IoSplitFifoInvRel.java @@ -98,4 +98,4 @@ public class IoSplitFifoInvRel implements Serializable { public static final String COL_CREATEUSER = "createUser"; public static final String COL_UPDATEUSER = "updateUser"; -} \ No newline at end of file +} 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 cb877f19a..a8e28a472 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoOrderEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoOrderEntity.java @@ -64,7 +64,7 @@ public class IoOrderEntity { private Integer fromType; /** - * 1:草稿;2:已提交待处理;3:处理成功待校验;4:处理异常;5:校验成功待审核;6:校验失败;7:审核通过;8:审核拒绝 + * 1:草稿;2:已提交待处理;3:处理成功待校验;4:处理异常;5:校验成功待审核;6:校验失败;7:审核通过;8:审核拒绝 9:处理中 */ @TableField(value = "`status`") private Integer status; 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 e06150e8f..663bd99b4 100644 --- a/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java +++ b/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java @@ -129,6 +129,7 @@ public class FilterOrderRequest extends ListPageRequest { private String invCode; private String igNoreBillNo; + private String updateUser; /** * 单据状态类型标识 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 97d2fe1fd..2853d1e1a 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java @@ -49,4 +49,6 @@ public interface IoCodeTempService { Integer selectExitCount(String orderId, String code); Boolean checkTempCode(IoCodeTempEntity ioCodeTempEntity); + + IoCodeTempEntity selectByCode(String code); } diff --git a/src/main/java/com/glxp/api/service/inout/IoOrderDetailCodeService.java b/src/main/java/com/glxp/api/service/inout/IoOrderDetailCodeService.java index 7d9043a3a..ec6412cd0 100644 --- a/src/main/java/com/glxp/api/service/inout/IoOrderDetailCodeService.java +++ b/src/main/java/com/glxp/api/service/inout/IoOrderDetailCodeService.java @@ -11,6 +11,7 @@ import java.util.List; public interface IoOrderDetailCodeService { List findByOrderId(String orderId); + List findByOrderDetail(String orderId,String productName); IoOrderDetailCodeEntity findByUnique(String orderId, Long relId, String bacthNo, BigDecimal price); @@ -39,7 +40,7 @@ public interface IoOrderDetailCodeService { */ int deleteByOrderId(String orderId); - public List checkOrderList(String orderId); + public List checkOrderList(String orderId,String productName); boolean isExit(String orderId); 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 c94050ad7..827742b8d 100644 --- a/src/main/java/com/glxp/api/service/inout/IoOrderService.java +++ b/src/main/java/com/glxp/api/service/inout/IoOrderService.java @@ -161,4 +161,5 @@ public interface IoOrderService { IoOrderEntity findCorpOrderId(String billNo); + IoOrderResponse findByWorkPlaceCode(String workPlaceCode,Long UserId); } 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 fc3bdc2a8..8f1097950 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 @@ -153,4 +153,11 @@ public class IoCodeTempServiceImpl implements IoCodeTempService { return true; } + @Override + public IoCodeTempEntity selectByCode(String code) { + QueryWrapper ew = new QueryWrapper<>(); + ew.eq("code",code); + return ioCodeTempDao.selectOne(ew); + } + } diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailCodeServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailCodeServiceImpl.java index 4ba833ddc..04cb668af 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailCodeServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailCodeServiceImpl.java @@ -52,6 +52,11 @@ public class IoOrderDetailCodeServiceImpl implements IoOrderDetailCodeService { return ioOrderDetailCodeDao.selectList(new QueryWrapper().eq("orderIdFk", orderId).orderByDesc("updateTime")); } + @Override + public List findByOrderDetail(String orderId, String productName) { + return ioOrderDetailCodeDao.selectList(new QueryWrapper().eq("orderIdFk", orderId) .like(StrUtil.isNotEmpty(productName), "coName", productName).orderByDesc("updateTime")); + } + @Override public IoOrderDetailCodeEntity findByUnique(String orderId, Long relId, String bacthNo, BigDecimal price) { return ioOrderDetailCodeDao.selectOne(new QueryWrapper() @@ -106,14 +111,15 @@ public class IoOrderDetailCodeServiceImpl implements IoOrderDetailCodeService { @Override - public List checkOrderList(String orderId) { - - List orderDetailCodeEntities = findByOrderId(orderId); + public List checkOrderList(String orderId,String productName) { + List orderDetailCodeEntities = findByOrderDetail(orderId,productName); List orderDetailBizEntities = orderDetailBizService.findByOrderId(orderId); checkInoutService.codeOrderCheck(orderDetailCodeEntities, orderDetailBizEntities); return orderDetailCodeEntities; } + + @Override public boolean isExit(String orderId) { return ioOrderDetailCodeDao.exists(new QueryWrapper().eq("orderIdFk", orderId)); 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 12de4b676..8cf6586e0 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 @@ -1072,6 +1072,25 @@ public class IoOrderServiceImpl implements IoOrderService { return null; } + @Override + public IoOrderResponse findByWorkPlaceCode(String workPlaceCode,Long userId) { + //查询单据表 + FilterOrderRequest filterOrderRequest = new FilterOrderRequest(); + filterOrderRequest.setWorkPlaceCode(workPlaceCode); + filterOrderRequest.setStatus(9); + filterOrderRequest.setUpdateUser(userId + ""); + List ioOrderResponses = orderDao.filterList(filterOrderRequest); +// QueryWrapper ew = new QueryWrapper<>(); +// ew.eq("workPlaceCode", workPlaceCode); +// ew.eq("status", 9); +// ew.eq("updateUser", userId); + if (ioOrderResponses.size() > 0){ + IoOrderResponse ioOrderResponse = ioOrderResponses.get(0); + return ioOrderResponse; + } + return null; + } + /** * 查询此单据关联的所有单据 * diff --git a/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml b/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml index 45057369e..e9296af48 100644 --- a/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml @@ -54,6 +54,9 @@ AND id = #{id} + + AND io.updateUser = #{updateUser} + AND io.productType = #{productType} diff --git a/src/main/resources/schemas/schema_v2.4.sql b/src/main/resources/schemas/schema_v2.4.sql index b4fe05604..894c4188f 100644 --- a/src/main/resources/schemas/schema_v2.4.sql +++ b/src/main/resources/schemas/schema_v2.4.sql @@ -4509,6 +4509,11 @@ CALL Pro_Temp_ColumnWork('io_split_code', 'unpackTime', ' datetime NULL DEFAULT NULL COMMENT ''拆包后可用时长(小时)''', 1); +CALL Pro_Temp_ColumnWork('io_split_code', 'unpackExpireTime', + ' datetime NULL DEFAULT NULL COMMENT ''拆包后可用时长(小时)''', + 1); + + CALL Pro_Temp_ColumnWork('basic_udirel', 'unpackUseTime', ' datetime NULL DEFAULT NULL COMMENT ''拆包后可用时长(小时)''', 1);