|
|
|
@ -9,6 +9,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
|
|
import com.glxp.api.constant.Constant;
|
|
|
|
|
import com.glxp.api.dao.collect.IoCollectCodeBackMapper;
|
|
|
|
|
import com.glxp.api.dao.collect.IoCollectOrderBackupMapper;
|
|
|
|
|
import com.glxp.api.dao.inout.IoCodeLostMapper;
|
|
|
|
|
import com.glxp.api.dao.inout.IoSplitCodeMapper;
|
|
|
|
|
import com.glxp.api.entity.basic.SysWorkplacePutRel;
|
|
|
|
@ -399,18 +401,48 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
|
|
|
|
|
ioCollectOrderBizBackupService.saveBatch(ioCollectOrderBizBackups);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
IoCollectOrderBackupMapper collectOrderBackupMapper;
|
|
|
|
|
@Resource
|
|
|
|
|
IoCollectCodeBackMapper collectCodeBackMapper;
|
|
|
|
|
@Resource
|
|
|
|
|
IoCollectCodeBackService collectCodeBackService;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 自动赋码与手动赋码冲突时解决方案
|
|
|
|
|
*/
|
|
|
|
|
public void replaceCode(List<IoCollectOrderCodeMan> collectOrderCodeManList){
|
|
|
|
|
public void replaceCode(List<IoCollectOrderCodeMan> collectOrderCodeManList, IoCollectOrder collectOrder) {
|
|
|
|
|
for (IoCollectOrderCodeMan collectOrderCodeMan : collectOrderCodeManList) {
|
|
|
|
|
// 1. 查找已完成成单据扫码是否已被分配
|
|
|
|
|
|
|
|
|
|
List<IoCollectCodeBackup> collectCodeBackups = collectCodeBackMapper.selectList(new LambdaQueryWrapper<IoCollectCodeBackup>()
|
|
|
|
|
.eq(IoCollectCodeBackup::getBusType, collectOrder.getBusType())
|
|
|
|
|
.eq(IoCollectCodeBackup::getCode, collectOrderCodeMan.getUdiCode())
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
if (CollUtil.isNotEmpty(collectCodeBackups)) {
|
|
|
|
|
IoCollectCodeBackup collectCodeBackup = collectCodeBackups.get(0);
|
|
|
|
|
IoCollectOrderBackup collectOrderBackup = collectOrderBackupMapper.selectOne(new LambdaQueryWrapper<IoCollectOrderBackup>().eq(IoCollectOrderBackup::getBillNo, collectCodeBackup.getBillNo()));
|
|
|
|
|
// 单据已被上传至医保
|
|
|
|
|
if (IntUtil.value(collectOrderBackup.getUploadStatus()) == 2) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
//单据未上传医保,上传医保失败
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 2. 查找已完成单据码是否已被上传
|
|
|
|
|
|
|
|
|
|
// 3. 查找已完成码,标记该码已被手动赋码
|
|
|
|
|
|
|
|
|
|
// 4. 查找码库未被使用的码,赋码至已完成的码
|
|
|
|
|
// 4. 查找码库未被使用的码,赋码至已完成的码,插入码表记录
|
|
|
|
|
|
|
|
|
|
// 5. 如果已被上传,则标记该码已被上传,从码库查出未被使用的码,插入码表记录,标记该码已被上传,替换成已码库的码
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 5. 查找
|
|
|
|
|
|
|
|
|
@ -418,6 +450,53 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 工位查找未使用码进行抠库
|
|
|
|
|
*/
|
|
|
|
|
public void removeInvByCode(IoCollectOrderCodeMan collectOrderCodeMan, Long putWorkPlaceCode) {
|
|
|
|
|
|
|
|
|
|
List<IoSplitFifoCodeEntity> splitFifoCodeEntitys = splitFifoCodeService.findByRelId(putWorkPlaceCode, collectOrderCodeMan.getRelId(), collectOrderCodeMan.getBatchNo(), null);
|
|
|
|
|
if (CollUtil.isNotEmpty(splitFifoCodeEntitys)) {
|
|
|
|
|
IoSplitFifoCodeEntity splitFifoCodeEntity = splitFifoCodeEntitys.get(0);
|
|
|
|
|
collectOrderCodeMan.setRemoveFlag(true);
|
|
|
|
|
if (IntUtil.value(splitFifoCodeEntity.getScanCount()) - IntUtil.value(collectOrderCodeMan.getScanCount()) <= 0) {
|
|
|
|
|
splitFifoCodeService.removeById(splitFifoCodeEntity.getId());
|
|
|
|
|
IoSplitFifoInv splitFifoInv = splitFifoInvService.findByFifoCode(splitFifoCodeEntity);
|
|
|
|
|
if (splitFifoInv != null) {
|
|
|
|
|
splitFifoInv.setOutCount(IntUtil.value(splitFifoInv.getOutCount()) + IntUtil.value(splitFifoCodeEntity.getTotalCount()));
|
|
|
|
|
splitFifoInv.setOutCodeCount(IntUtil.value(splitFifoInv.getOutCodeCount()) + IntUtil.value(splitFifoCodeEntity.getScanCount()));
|
|
|
|
|
int lockCount = IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoCodeEntity.getTotalCount());
|
|
|
|
|
splitFifoInv.setLockCount(lockCount > 0 ? lockCount : 0);
|
|
|
|
|
splitFifoInv.setReCount(IntUtil.value(splitFifoInv.getInCount()) - IntUtil.value(splitFifoInv.getOutCount()));
|
|
|
|
|
splitFifoInv.setReCodeCount(IntUtil.value(splitFifoInv.getInCodeCount()) - IntUtil.value(splitFifoInv.getOutCodeCount()));
|
|
|
|
|
splitFifoInv.setAvailableCount(IntUtil.value(splitFifoInv.getInCount()) - IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoInv.getOutCount()));
|
|
|
|
|
splitFifoInvService.updateById(splitFifoInv);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
//队列码数量大于扫码数量更新数量(一般指无序列号)
|
|
|
|
|
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
|
|
|
|
|
filterUdiRelRequest.setId(collectOrderCodeMan.getRelId());
|
|
|
|
|
filterUdiRelRequest.setPackLevel("1");
|
|
|
|
|
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectOneUdi(filterUdiRelRequest);
|
|
|
|
|
int removeCount = IntUtil.value(collectOrderCodeMan.getScanCount()) * udiRelevanceResponse.getBhxjsl();
|
|
|
|
|
splitFifoCodeService.updateById(IoSplitFifoCodeEntity.builder().id(splitFifoCodeEntity.getId()).scanCount(IntUtil.value(splitFifoCodeEntity.getScanCount()) - IntUtil.value(collectOrderCodeMan.getScanCount())).totalCount(IntUtil.value(splitFifoCodeEntity.getTotalCount()) - removeCount).build());
|
|
|
|
|
|
|
|
|
|
IoSplitFifoInv splitFifoInv = splitFifoInvService.findByFifoCode(splitFifoCodeEntity);
|
|
|
|
|
if (splitFifoInv != null) {
|
|
|
|
|
splitFifoInv.setOutCount(IntUtil.value(splitFifoInv.getOutCount()) + removeCount);
|
|
|
|
|
splitFifoInv.setOutCodeCount(IntUtil.value(splitFifoInv.getOutCodeCount()) + IntUtil.value(collectOrderCodeMan.getScanCount()));
|
|
|
|
|
int lockCount = IntUtil.value(splitFifoInv.getLockCount()) - removeCount;
|
|
|
|
|
splitFifoInv.setLockCount(lockCount > 0 ? lockCount : 0);
|
|
|
|
|
splitFifoInv.setReCount(IntUtil.value(splitFifoInv.getInCount()) - IntUtil.value(splitFifoInv.getOutCount()));
|
|
|
|
|
splitFifoInv.setReCodeCount(IntUtil.value(splitFifoInv.getInCodeCount()) - IntUtil.value(splitFifoInv.getOutCodeCount()));
|
|
|
|
|
splitFifoInv.setAvailableCount(IntUtil.value(splitFifoInv.getInCount()) - IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoInv.getOutCount()));
|
|
|
|
|
splitFifoInvService.updateById(splitFifoInv);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 完成销售出库自动扣工位库存
|
|
|
|
|
*/
|
|
|
|
@ -463,7 +542,8 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
|
|
|
|
|
IoCollectOrderService collectOrderService;
|
|
|
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
public ConfirmResponse confirmBizAutiTagCode(IoCollectOrderBiz collectOrderBiz, String queueCode, String confirmSplitCode, Boolean skipSplitConfirm) {
|
|
|
|
|
public ConfirmResponse confirmBizAutiTagCode(IoCollectOrderBiz collectOrderBiz, String queueCode, String
|
|
|
|
|
confirmSplitCode, Boolean skipSplitConfirm) {
|
|
|
|
|
ConfirmResponse confirmResponse = new ConfirmResponse();
|
|
|
|
|
IoCollectOrder collectOrder = collectOrderService.getByBillNo(collectOrderBiz.getOrderIdFk());
|
|
|
|
|
if (collectOrder == null) {
|
|
|
|
@ -618,7 +698,9 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
|
|
|
|
|
} else return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public List<IoCollectOrderCodeMan> filterCode(List<IoCollectOrderCodeMan> collectOrderCodes, IoCollectOrderBiz collectOrderBiz, UdiRelevanceResponse udiRelevanceResponse) {
|
|
|
|
|
public List<IoCollectOrderCodeMan> filterCode
|
|
|
|
|
(List<IoCollectOrderCodeMan> collectOrderCodes, IoCollectOrderBiz collectOrderBiz, UdiRelevanceResponse
|
|
|
|
|
udiRelevanceResponse) {
|
|
|
|
|
int unTagCount = IntUtil.value(collectOrderBiz.getScanActCount()) - collectOrderBiz.getCount();
|
|
|
|
|
List<IoCollectOrderCodeMan> newList = new ArrayList<IoCollectOrderCodeMan>();
|
|
|
|
|
int count = 0;
|
|
|
|
@ -655,6 +737,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
|
|
|
|
|
return newList;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
private IoCodeLostMapper ioCodeLostMapper;
|
|
|
|
|
|
|
|
|
@ -685,14 +768,14 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
|
|
|
|
|
} else collectOrderBiz.setAutoTagStatus(1);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(CollUtil.isNotEmpty(splitFifoCodeEntities)){
|
|
|
|
|
IoSplitFifoCodeEntity ioSplitFifoCodeEntity = splitFifoCodeEntities.get(0);
|
|
|
|
|
IoCodeLostEntity ioCodeLostEntity = ioCodeLostMapper.selectOne(
|
|
|
|
|
if (CollUtil.isNotEmpty(splitFifoCodeEntities)) {
|
|
|
|
|
IoSplitFifoCodeEntity ioSplitFifoCodeEntity = splitFifoCodeEntities.get(0);
|
|
|
|
|
IoCodeLostEntity ioCodeLostEntity = ioCodeLostMapper.selectOne(
|
|
|
|
|
new QueryWrapper<IoCodeLostEntity>()
|
|
|
|
|
.eq("code",ioSplitFifoCodeEntity.getCode())
|
|
|
|
|
.eq("code", ioSplitFifoCodeEntity.getCode())
|
|
|
|
|
.last("limit 1")
|
|
|
|
|
);
|
|
|
|
|
if(ioCodeLostEntity!=null && StringUtils.isNotEmpty(ioCodeLostEntity.getBatchNo())){
|
|
|
|
|
if (ioCodeLostEntity != null && StringUtils.isNotEmpty(ioCodeLostEntity.getBatchNo())) {
|
|
|
|
|
collectOrderBiz.setBatchNo(ioCodeLostEntity.getBatchNo());
|
|
|
|
|
collectOrderBiz.setProductDate(ioCodeLostEntity.getProduceDate());
|
|
|
|
|
collectOrderBiz.setExpireDate(ioCodeLostEntity.getExpireDate());
|
|
|
|
@ -700,9 +783,9 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ThreadUtil.execAsync(() -> {
|
|
|
|
|
ioCollectLedGroupService.openLed(collectOrderBizs);
|
|
|
|
|
});
|
|
|
|
|
// ThreadUtil.execAsync(() -> {
|
|
|
|
|
// ioCollectLedGroupService.openLed(collectOrderBizs);
|
|
|
|
|
// });
|
|
|
|
|
collectOrderBizService.updateBatchById(collectOrderBizs);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -757,7 +840,8 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
|
|
|
|
|
/**
|
|
|
|
|
* 从预出库队列里面取出数据,添加至拆零表
|
|
|
|
|
*/
|
|
|
|
|
public Integer addFifoCode(Long relId, String batchNo, Integer needCount, Long putWorkPlaceCode, String confirmSplitCode) {
|
|
|
|
|
public Integer addFifoCode(Long relId, String batchNo, Integer needCount, Long putWorkPlaceCode, String
|
|
|
|
|
confirmSplitCode) {
|
|
|
|
|
|
|
|
|
|
List<IoSplitFifoCodeEntity> splitFifoCodeEntities;
|
|
|
|
|
|
|
|
|
|