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 0b6e69935..7ce363743 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -1842,7 +1842,7 @@ public class IoCodeTempController extends BaseController { updateRelCode(bussinessTypeEntity, code); // relCodeBatchService.threadUpdateIoCodeTempEntity(code); // } else if (bussinessTypeEntity.getCheckWebNew() == 2 && bussinessTypeEntity.isCheckEnable()) { - } else if (IntUtil.value(addOrderRequest.getOrderType()) == ConstantStatus.ORDER_TYPE_WAIT && bussinessTypeEntity.isCheckEnable()) { + } else if ( (bussinessTypeEntity.getCheckWebNew() == 2 && bussinessTypeEntity.isCheckEnable())) { String errMsg = ioCheckInoutService.checkDrugNoPiCode(codeEnttity); if (errMsg != null) { return ResultVOUtils.error(500, errMsg); 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 2fc8cb4cf..9b53a12b5 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoSplitFifoController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoSplitFifoController.java @@ -6,11 +6,16 @@ import com.glxp.api.common.enums.ResultEnum; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.controller.BaseController; +import com.glxp.api.entity.basic.SysWorkplaceQueue; +import com.glxp.api.entity.inout.IoSplitFifoCodeEntity; +import com.glxp.api.req.inout.IoAutoPutRequest; import com.glxp.api.req.inout.IoSplitFifoCodeRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.inout.IoSplitCodeResponse; +import com.glxp.api.service.basic.SysWorkplaceQueueService; import com.glxp.api.service.inout.IoSplitFifoCodeService; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @@ -108,4 +113,19 @@ public class IoSplitFifoController extends BaseController { return ResultVOUtils.success(invRemind); } + @Resource + SysWorkplaceQueueService sysWorkplaceQueueService; + + /** + * 自动发药机上药 + */ + @GetMapping("/udiwms/ioSplit/autoPut") + public BaseResponse autoPut(IoAutoPutRequest autoPutRequest, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + List ioSplitCodeResponses = splitFifoCodeService.autoPut(autoPutRequest); + return ResultVOUtils.success(ioSplitCodeResponses); + } + } diff --git a/src/main/java/com/glxp/api/controller/inout/IoSplitFifoInvController.java b/src/main/java/com/glxp/api/controller/inout/IoSplitFifoInvController.java index 78db3ed36..9efeba0bb 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoSplitFifoInvController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoSplitFifoInvController.java @@ -52,7 +52,7 @@ public class IoSplitFifoInvController extends BaseController { } //判断是否为采集工位 - if (ioSplitFifoInvRequest.getWorkPlaceCode() != null){ + if (ioSplitFifoInvRequest.getWorkPlaceCode() != null) { Long workPlaceCode = ioSplitFifoInvRequest.getWorkPlaceCode(); SysWorkplace workplace = sysWorkplaceService.getWorkplace(workPlaceCode); Integer workPlaceClass = workplace.getWorkPlaceClass(); diff --git a/src/main/java/com/glxp/api/dao/inout/IoSplitFifoCodeMapper.java b/src/main/java/com/glxp/api/dao/inout/IoSplitFifoCodeMapper.java index 1f7acb08d..9c14c386a 100644 --- a/src/main/java/com/glxp/api/dao/inout/IoSplitFifoCodeMapper.java +++ b/src/main/java/com/glxp/api/dao/inout/IoSplitFifoCodeMapper.java @@ -3,6 +3,7 @@ package com.glxp.api.dao.inout; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.glxp.api.entity.inout.IoSplitCodeEntity; import com.glxp.api.entity.inout.IoSplitFifoCodeEntity; +import com.glxp.api.req.inout.IoAutoPutRequest; import com.glxp.api.req.inout.IoSplitCodeRequest; import com.glxp.api.req.inout.IoSplitFifoCodeRequest; import com.glxp.api.res.inout.IoSplitCodeResponse; @@ -20,4 +21,6 @@ public interface IoSplitFifoCodeMapper extends BaseMapper List filterList(IoSplitFifoCodeRequest splitFifoCodeRequest); + List getAutoPutCode(IoAutoPutRequest ioAutoPutRequest); + } diff --git a/src/main/java/com/glxp/api/req/inout/IoAutoPutRequest.java b/src/main/java/com/glxp/api/req/inout/IoAutoPutRequest.java new file mode 100644 index 000000000..715ec9d43 --- /dev/null +++ b/src/main/java/com/glxp/api/req/inout/IoAutoPutRequest.java @@ -0,0 +1,30 @@ +package com.glxp.api.req.inout; + +import lombok.Data; + +/** + * @author AnthonyYwj + * @date 2024/12/20 + */ +@Data +public class IoAutoPutRequest { + + /** + * 发药机上货队列(槽位)编号 + */ + private String queueCode; + + private String code; + + private String productName; + + private String batchNo; + + private String bzgg; + + private Integer count; + + + private Long workPlaceCode; + +} diff --git a/src/main/java/com/glxp/api/service/basic/SysWorkplaceQueueService.java b/src/main/java/com/glxp/api/service/basic/SysWorkplaceQueueService.java index 921c8cea4..da8a29536 100644 --- a/src/main/java/com/glxp/api/service/basic/SysWorkplaceQueueService.java +++ b/src/main/java/com/glxp/api/service/basic/SysWorkplaceQueueService.java @@ -32,7 +32,6 @@ public class SysWorkplaceQueueService extends ServiceImpl().orderByDesc(SysWorkplaceQueue::getCode).last("LIMIT 1")); @@ -92,7 +91,7 @@ public class SysWorkplaceQueueService extends ServiceImpl ew = new QueryWrapper<>(); - ew.eq("layerCode",layerCode); + ew.eq("layerCode", layerCode); int delete = sysWorkplaceQueueMapper.delete(ew); - if (delete == 0){ + if (delete == 0) { return false; } return true; } public List getListByLayerCode(String layerCode) { - return list(new LambdaQueryWrapper().eq(SysWorkplaceQueue::getLayerCode,layerCode)); + return list(new LambdaQueryWrapper().eq(SysWorkplaceQueue::getLayerCode, layerCode)); } public void removeProduct(SysWorkplaceQueueRequest request) { @@ -195,4 +194,8 @@ public class SysWorkplaceQueueService extends ServiceImpl().eq(SysWorkplaceQueue::getCode, code).last("limit 1")); + } } diff --git a/src/main/java/com/glxp/api/service/inout/IoSplitFifoCodeService.java b/src/main/java/com/glxp/api/service/inout/IoSplitFifoCodeService.java index 26da60bcc..4d3e68f62 100644 --- a/src/main/java/com/glxp/api/service/inout/IoSplitFifoCodeService.java +++ b/src/main/java/com/glxp/api/service/inout/IoSplitFifoCodeService.java @@ -5,12 +5,14 @@ import cn.hutool.core.util.StrUtil; 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.auth.SysWorkplaceDao; import com.glxp.api.dao.collect.IoCollectOrderBizMapper; import com.glxp.api.dao.collect.IoCollectOrderMapper; import com.glxp.api.dao.inout.IoSplitFifoCodeMapper; import com.glxp.api.dao.inout.IoSplitFifoInvMapper; import com.glxp.api.entity.auth.SysWorkplace; +import com.glxp.api.entity.basic.SysWorkplaceQueue; import com.glxp.api.entity.basic.UdiRelevanceEntity; import com.glxp.api.entity.collect.IoCollectOrder; import com.glxp.api.entity.inout.IoSplitFifoCodeEntity; @@ -19,6 +21,7 @@ import com.glxp.api.exception.JsonException; import com.glxp.api.req.collect.CollectOrderBizRequest; import com.glxp.api.req.collect.CollectOrderRequest; import com.glxp.api.req.dev.DeviceChangeOrderParam; +import com.glxp.api.req.inout.IoAutoPutRequest; import com.glxp.api.req.inout.IoSplitFifoCodeRequest; import com.glxp.api.req.inout.IoSplitFifoInvRequest; import com.glxp.api.res.collect.CollectOrderBizResponse; @@ -26,6 +29,7 @@ import com.glxp.api.res.collect.IoCollectOrderResponse; import com.glxp.api.res.inout.IoSplitCodeResponse; import com.glxp.api.res.inout.IoSplitInvResponse; import com.glxp.api.service.auth.SysWorkplaceService; +import com.glxp.api.service.basic.SysWorkplaceQueueService; import com.glxp.api.util.IntUtil; import io.swagger.models.auth.In; import org.springframework.beans.BeanUtils; @@ -187,6 +191,32 @@ public class IoSplitFifoCodeService extends ServiceImpl autoPut(IoAutoPutRequest autoPutRequest) { + + List newSplitCodeResponses = new ArrayList<>(); + SysWorkplaceQueue sysWorkplaceQueue = sysWorkplaceQueueService.getByCode(autoPutRequest.getQueueCode()); + if (sysWorkplaceQueue == null) { + throw new JsonException(500, "槽位不存在!"); + } + autoPutRequest.setWorkPlaceCode(sysWorkplaceQueue.getWorkPlaceIdFk()); + List splitCodeResponses = splitFifoCodeMapper.getAutoPutCode(autoPutRequest); + if (splitCodeResponses == null || splitCodeResponses.size() == 0) { + throw new JsonException(500, "工位无数据!"); + } + for (int i = 0; i < autoPutRequest.getCount(); i++) { + IoSplitCodeResponse ioSplitCodeResponse = splitCodeResponses.get(i); + IoSplitFifoCodeEntity ioSplitFifoCodeEntity = new IoSplitFifoCodeEntity(); + BeanUtils.copyProperties(ioSplitCodeResponse, ioSplitFifoCodeEntity); + ioSplitFifoCodeEntity.setWorkPlaceQueueCode(autoPutRequest.getQueueCode()); + updateById(ioSplitFifoCodeEntity); + newSplitCodeResponses.add(ioSplitCodeResponse); + } + return newSplitCodeResponses; + } + /** * 通过 单据 锁定库存 diff --git a/src/main/resources/mybatis/mapper/inout/IoSplitFifoCodeMapper.xml b/src/main/resources/mybatis/mapper/inout/IoSplitFifoCodeMapper.xml index 2be5487fc..f4d9506d4 100644 --- a/src/main/resources/mybatis/mapper/inout/IoSplitFifoCodeMapper.xml +++ b/src/main/resources/mybatis/mapper/inout/IoSplitFifoCodeMapper.xml @@ -4,24 +4,24 @@ 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 + bp.cpmctymc, + bp.ggxh, + bp.bzgg, + bp.ylqxzcrbarmc, + bp.manufactory, + bp.measname, + bu.useLevelUnit, + bp.zczbhhzbapzbh, + bp.ybbm, + bp.zxxsdycpbs FROM io_split_fifo_code - LEFT JOIN basic_udirel bu ON bu.id = io_split_fifo_code.relId - LEFT JOIN basic_products bp ON bu.uuid = bp.uuid + LEFT JOIN basic_udirel bu ON bu.id = io_split_fifo_code.relId + LEFT JOIN basic_products bp ON bu.uuid = bp.uuid AND code LIKE #{code} @@ -110,18 +110,18 @@ + +