自动上货分配槽位

dev_unify
yewj 7 months ago
parent d2013db891
commit 0d3aa74cda

@ -1842,7 +1842,7 @@ public class IoCodeTempController extends BaseController {
updateRelCode(bussinessTypeEntity, code); updateRelCode(bussinessTypeEntity, code);
// relCodeBatchService.threadUpdateIoCodeTempEntity(code); // relCodeBatchService.threadUpdateIoCodeTempEntity(code);
// } else if (bussinessTypeEntity.getCheckWebNew() == 2 && bussinessTypeEntity.isCheckEnable()) { // } 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); String errMsg = ioCheckInoutService.checkDrugNoPiCode(codeEnttity);
if (errMsg != null) { if (errMsg != null) {
return ResultVOUtils.error(500, errMsg); return ResultVOUtils.error(500, errMsg);

@ -6,11 +6,16 @@ import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.controller.BaseController; 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.req.inout.IoSplitFifoCodeRequest;
import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.inout.IoSplitCodeResponse; import com.glxp.api.res.inout.IoSplitCodeResponse;
import com.glxp.api.service.basic.SysWorkplaceQueueService;
import com.glxp.api.service.inout.IoSplitFifoCodeService; import com.glxp.api.service.inout.IoSplitFifoCodeService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.validation.BindingResult; import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@ -108,4 +113,19 @@ public class IoSplitFifoController extends BaseController {
return ResultVOUtils.success(invRemind); 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<IoSplitCodeResponse> ioSplitCodeResponses = splitFifoCodeService.autoPut(autoPutRequest);
return ResultVOUtils.success(ioSplitCodeResponses);
}
} }

@ -52,7 +52,7 @@ public class IoSplitFifoInvController extends BaseController {
} }
//判断是否为采集工位 //判断是否为采集工位
if (ioSplitFifoInvRequest.getWorkPlaceCode() != null){ if (ioSplitFifoInvRequest.getWorkPlaceCode() != null) {
Long workPlaceCode = ioSplitFifoInvRequest.getWorkPlaceCode(); Long workPlaceCode = ioSplitFifoInvRequest.getWorkPlaceCode();
SysWorkplace workplace = sysWorkplaceService.getWorkplace(workPlaceCode); SysWorkplace workplace = sysWorkplaceService.getWorkplace(workPlaceCode);
Integer workPlaceClass = workplace.getWorkPlaceClass(); Integer workPlaceClass = workplace.getWorkPlaceClass();

@ -3,6 +3,7 @@ package com.glxp.api.dao.inout;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.inout.IoSplitCodeEntity; import com.glxp.api.entity.inout.IoSplitCodeEntity;
import com.glxp.api.entity.inout.IoSplitFifoCodeEntity; 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.IoSplitCodeRequest;
import com.glxp.api.req.inout.IoSplitFifoCodeRequest; import com.glxp.api.req.inout.IoSplitFifoCodeRequest;
import com.glxp.api.res.inout.IoSplitCodeResponse; import com.glxp.api.res.inout.IoSplitCodeResponse;
@ -20,4 +21,6 @@ public interface IoSplitFifoCodeMapper extends BaseMapper<IoSplitFifoCodeEntity>
List<IoSplitCodeResponse> filterList(IoSplitFifoCodeRequest splitFifoCodeRequest); List<IoSplitCodeResponse> filterList(IoSplitFifoCodeRequest splitFifoCodeRequest);
List<IoSplitCodeResponse> getAutoPutCode(IoAutoPutRequest ioAutoPutRequest);
} }

@ -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;
}

@ -32,7 +32,6 @@ public class SysWorkplaceQueueService extends ServiceImpl<SysWorkplaceQueueMappe
private SysWorkplaceQueueMapper sysWorkplaceQueueMapper; private SysWorkplaceQueueMapper sysWorkplaceQueueMapper;
public String createQueueCode() { public String createQueueCode() {
String code; String code;
SysWorkplaceQueue sysWorkplaceQueue = sysWorkplaceQueueMapper.selectOne(new LambdaQueryWrapper<SysWorkplaceQueue>().orderByDesc(SysWorkplaceQueue::getCode).last("LIMIT 1")); SysWorkplaceQueue sysWorkplaceQueue = sysWorkplaceQueueMapper.selectOne(new LambdaQueryWrapper<SysWorkplaceQueue>().orderByDesc(SysWorkplaceQueue::getCode).last("LIMIT 1"));
@ -92,7 +91,7 @@ public class SysWorkplaceQueueService extends ServiceImpl<SysWorkplaceQueueMappe
int result = 1; int result = 1;
String sixDigitResult = String.format("%02d", result); String sixDigitResult = String.format("%02d", result);
code = layerCode + sixDigitResult; code = layerCode + sixDigitResult;
} else{ } else {
String withoutDMQ = code.replace(layerCode, ""); String withoutDMQ = code.replace(layerCode, "");
Integer result = Integer.parseInt(withoutDMQ.trim()); Integer result = Integer.parseInt(withoutDMQ.trim());
result += 1; result += 1;
@ -178,16 +177,16 @@ public class SysWorkplaceQueueService extends ServiceImpl<SysWorkplaceQueueMappe
public Boolean deleteByLayerCode(String layerCode) { public Boolean deleteByLayerCode(String layerCode) {
QueryWrapper<SysWorkplaceQueue> ew = new QueryWrapper<>(); QueryWrapper<SysWorkplaceQueue> ew = new QueryWrapper<>();
ew.eq("layerCode",layerCode); ew.eq("layerCode", layerCode);
int delete = sysWorkplaceQueueMapper.delete(ew); int delete = sysWorkplaceQueueMapper.delete(ew);
if (delete == 0){ if (delete == 0) {
return false; return false;
} }
return true; return true;
} }
public List<SysWorkplaceQueue> getListByLayerCode(String layerCode) { public List<SysWorkplaceQueue> getListByLayerCode(String layerCode) {
return list(new LambdaQueryWrapper<SysWorkplaceQueue>().eq(SysWorkplaceQueue::getLayerCode,layerCode)); return list(new LambdaQueryWrapper<SysWorkplaceQueue>().eq(SysWorkplaceQueue::getLayerCode, layerCode));
} }
public void removeProduct(SysWorkplaceQueueRequest request) { public void removeProduct(SysWorkplaceQueueRequest request) {
@ -195,4 +194,8 @@ public class SysWorkplaceQueueService extends ServiceImpl<SysWorkplaceQueueMappe
sysWorkplaceQueue.setRelId(null); sysWorkplaceQueue.setRelId(null);
sysWorkplaceQueueMapper.updateByRelId(request); sysWorkplaceQueueMapper.updateByRelId(request);
} }
public SysWorkplaceQueue getByCode(String code) {
return getOne(new LambdaQueryWrapper<SysWorkplaceQueue>().eq(SysWorkplaceQueue::getCode, code).last("limit 1"));
}
} }

@ -5,12 +5,14 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.dao.auth.SysWorkplaceDao; import com.glxp.api.dao.auth.SysWorkplaceDao;
import com.glxp.api.dao.collect.IoCollectOrderBizMapper; import com.glxp.api.dao.collect.IoCollectOrderBizMapper;
import com.glxp.api.dao.collect.IoCollectOrderMapper; import com.glxp.api.dao.collect.IoCollectOrderMapper;
import com.glxp.api.dao.inout.IoSplitFifoCodeMapper; import com.glxp.api.dao.inout.IoSplitFifoCodeMapper;
import com.glxp.api.dao.inout.IoSplitFifoInvMapper; import com.glxp.api.dao.inout.IoSplitFifoInvMapper;
import com.glxp.api.entity.auth.SysWorkplace; 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.basic.UdiRelevanceEntity;
import com.glxp.api.entity.collect.IoCollectOrder; import com.glxp.api.entity.collect.IoCollectOrder;
import com.glxp.api.entity.inout.IoSplitFifoCodeEntity; 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.CollectOrderBizRequest;
import com.glxp.api.req.collect.CollectOrderRequest; import com.glxp.api.req.collect.CollectOrderRequest;
import com.glxp.api.req.dev.DeviceChangeOrderParam; 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.IoSplitFifoCodeRequest;
import com.glxp.api.req.inout.IoSplitFifoInvRequest; import com.glxp.api.req.inout.IoSplitFifoInvRequest;
import com.glxp.api.res.collect.CollectOrderBizResponse; 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.IoSplitCodeResponse;
import com.glxp.api.res.inout.IoSplitInvResponse; import com.glxp.api.res.inout.IoSplitInvResponse;
import com.glxp.api.service.auth.SysWorkplaceService; import com.glxp.api.service.auth.SysWorkplaceService;
import com.glxp.api.service.basic.SysWorkplaceQueueService;
import com.glxp.api.util.IntUtil; import com.glxp.api.util.IntUtil;
import io.swagger.models.auth.In; import io.swagger.models.auth.In;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
@ -187,6 +191,32 @@ public class IoSplitFifoCodeService extends ServiceImpl<IoSplitFifoCodeMapper, I
return msg[0]; return msg[0];
} }
@Resource
SysWorkplaceQueueService sysWorkplaceQueueService;
public List<IoSplitCodeResponse> autoPut(IoAutoPutRequest autoPutRequest) {
List<IoSplitCodeResponse> newSplitCodeResponses = new ArrayList<>();
SysWorkplaceQueue sysWorkplaceQueue = sysWorkplaceQueueService.getByCode(autoPutRequest.getQueueCode());
if (sysWorkplaceQueue == null) {
throw new JsonException(500, "槽位不存在!");
}
autoPutRequest.setWorkPlaceCode(sysWorkplaceQueue.getWorkPlaceIdFk());
List<IoSplitCodeResponse> 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;
}
/** /**
* *

@ -4,24 +4,24 @@
<select id="filterGroupList" parameterType="com.glxp.api.req.inout.IoSplitFifoCodeRequest" <select id="filterGroupList" parameterType="com.glxp.api.req.inout.IoSplitFifoCodeRequest"
resultType="com.glxp.api.res.inout.IoSplitCodeResponse"> resultType="com.glxp.api.res.inout.IoSplitCodeResponse">
SELECT io_split_fifo_code.*, SELECT io_split_fifo_code.*,
sum(totalCount) as groupCount, sum(totalCount) as groupCount,
bp.cpmctymc, bp.cpmctymc,
bp.ggxh, bp.ggxh,
bp.bzgg, bp.bzgg,
bu.useLevelUnit, bu.useLevelUnit,
bp.ylqxzcrbarmc, bp.ylqxzcrbarmc,
bp.manufactory, bp.manufactory,
bp.measname, bp.measname,
bp.zczbhhzbapzbh, bp.zczbhhzbapzbh,
bp.ybbm, bp.ybbm,
bp.zxxsdycpbs, bp.zxxsdycpbs,
bc.name supName, bc.name supName,
sw.workPlaceName sw.workPlaceName
FROM io_split_fifo_code FROM io_split_fifo_code
LEFT JOIN basic_udirel bu ON bu.id = io_split_fifo_code.relId 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_products bp ON bu.uuid = bp.uuid
left join basic_corp bc on bc.erpId = io_split_fifo_code.supId left join basic_corp bc on bc.erpId = io_split_fifo_code.supId
left join sys_workplace sw on sw.workplaceId = io_split_fifo_code.workPlaceCode left join sys_workplace sw on sw.workplaceId = io_split_fifo_code.workPlaceCode
<where> <where>
<if test="code != '' and code != null"> <if test="code != '' and code != null">
AND code LIKE #{code} AND code LIKE #{code}
@ -62,19 +62,19 @@
<select id="filterList" parameterType="com.glxp.api.req.inout.IoSplitFifoCodeRequest" <select id="filterList" parameterType="com.glxp.api.req.inout.IoSplitFifoCodeRequest"
resultType="com.glxp.api.res.inout.IoSplitCodeResponse"> resultType="com.glxp.api.res.inout.IoSplitCodeResponse">
SELECT io_split_fifo_code.*, SELECT io_split_fifo_code.*,
bp.cpmctymc, bp.cpmctymc,
bp.ggxh, bp.ggxh,
bp.bzgg, bp.bzgg,
bp.ylqxzcrbarmc, bp.ylqxzcrbarmc,
bp.manufactory, bp.manufactory,
bp.measname, bp.measname,
bu.useLevelUnit, bu.useLevelUnit,
bp.zczbhhzbapzbh, bp.zczbhhzbapzbh,
bp.ybbm, bp.ybbm,
bp.zxxsdycpbs bp.zxxsdycpbs
FROM io_split_fifo_code FROM io_split_fifo_code
LEFT JOIN basic_udirel bu ON bu.id = io_split_fifo_code.relId 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_products bp ON bu.uuid = bp.uuid
<where> <where>
<if test="code != '' and code != null"> <if test="code != '' and code != null">
AND code LIKE #{code} AND code LIKE #{code}
@ -110,18 +110,18 @@
<select id="findInvRemind" parameterType="long" resultType="com.glxp.api.res.inout.IoSplitCodeResponse"> <select id="findInvRemind" parameterType="long" resultType="com.glxp.api.res.inout.IoSplitCodeResponse">
SELECT io_split_fifo_code.*, SELECT io_split_fifo_code.*,
sum(totalCount) as groupCount, sum(totalCount) as groupCount,
bp.cpmctymc, bp.cpmctymc,
bp.ggxh, bp.ggxh,
bp.ylqxzcrbarmc, bp.ylqxzcrbarmc,
bp.manufactory, bp.manufactory,
bp.measname, bp.measname,
bp.zczbhhzbapzbh, bp.zczbhhzbapzbh,
bp.ybbm, bp.ybbm,
bp.zxxsdycpbs bp.zxxsdycpbs
FROM io_split_fifo_code FROM io_split_fifo_code
LEFT JOIN basic_udirel bu ON bu.id = io_split_fifo_code.relId 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_products bp ON bu.uuid = bp.uuid
<where> <where>
<if test="workPlaceCode != null"> <if test="workPlaceCode != null">
AND workPlaceCode = #{workPlaceCode} AND workPlaceCode = #{workPlaceCode}
@ -129,4 +129,38 @@
</where> </where>
group by relId, batchNo, workPlaceCode group by relId, batchNo, workPlaceCode
</select> </select>
<select id="getAutoPutCode" parameterType="com.glxp.api.req.inout.IoAutoPutRequest"
resultType="com.glxp.api.res.inout.IoSplitCodeResponse">
select isfc.*,
bp.cpmctymc,
bp.ggxh,
bp.bzgg,
bu.useLevelUnit,
bp.ylqxzcrbarmc,
bp.manufactory,
bp.measname,
bp.zczbhhzbapzbh,
bp.ybbm,
bp.zxxsdycpbs
from io_split_fifo_code isfc
LEFT JOIN basic_udirel bu on isfc.relId = bu.id
INNER JOIN basic_products bp on bu.uuid = bp.uuid
<where>
isfc.workPlaceQueueCode is null
<if test="productName != null and productName != ''">
AND cpmctymc = #{productName}
</if>
<if test="bzgg != null and bzgg != ''">
AND bzgg = #{bzgg}
</if>
<if test="batchNo != null and batchNo != ''">
AND batchNo = #{batchNo}
</if>
<if test="code != null and code != ''">
AND code = #{code}
</if>
</where>
order by isfc.inBactchNo
</select>
</mapper> </mapper>

Loading…
Cancel
Save