科室上货转销售出库扣库问题

dev_2.5_ocean
yewj 4 months ago
parent 5911405b38
commit 245347758e

@ -2,12 +2,15 @@ package com.glxp.api.controller.collect;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.pagehelper.PageInfo;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.BusTypeConstant;
import com.glxp.api.constant.ConstantType;
import com.glxp.api.controller.BaseController;
import com.glxp.api.dao.basic.SysWorkplaceDocumentDao;
import com.glxp.api.entity.auth.SysWorkplace;
import com.glxp.api.entity.collect.IoCollectOrder;
import com.glxp.api.entity.collect.IoCollectOrderOrigin;
import com.glxp.api.http.ErpBasicClient;
@ -23,6 +26,7 @@ import com.glxp.api.res.basic.SysWorkplaceDocumentResponse;
import com.glxp.api.res.basic.UserWorkResponse;
import com.glxp.api.res.collect.CollectOrderBizResponse;
import com.glxp.api.res.collect.IoCollectOrderResponse;
import com.glxp.api.service.auth.SysWorkplaceService;
import com.glxp.api.service.basic.BasicCollectUserService;
import com.glxp.api.service.basic.SysWorkplaceDocumentService;
import com.glxp.api.service.collect.IoCollectOrderBizOriginService;
@ -63,6 +67,9 @@ public class IoCollectOriginController extends BaseController {
@Resource
private IoCollectOrderService ioCollectOrderService;
@Resource
SysWorkplaceService sysWorkplaceService;
@PostMapping("/udiwms/basic/collect/origin/order/download")
public BaseResponse downloadOrder(@RequestBody CollectOrderRequest collectOrderRequest) {
return collectOriginService.downloadOrderV2(collectOrderRequest);
@ -80,11 +87,11 @@ public class IoCollectOriginController extends BaseController {
getSickPrescribeRequest.setThirdSys("thirdId");
getSickPrescribeRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode());
getSickPrescribeRequest.setFromType(collectOrderRequest.getFromType());
if (StrUtil.isNotEmpty(collectOrderRequest.getStartTime())){
if (StrUtil.isNotEmpty(collectOrderRequest.getStartTime())) {
getSickPrescribeRequest.setStartTime(collectOrderRequest.getStartTime() + " 00:00:00");
}
if (StrUtil.isNotEmpty(collectOrderRequest.getEndTime())){
getSickPrescribeRequest.setEndTime(collectOrderRequest.getEndTime()+ " 23:59:59");
if (StrUtil.isNotEmpty(collectOrderRequest.getEndTime())) {
getSickPrescribeRequest.setEndTime(collectOrderRequest.getEndTime() + " 23:59:59");
}
getSickPrescribeRequest.setKey(collectOrderRequest.getKeyWords());
getSickPrescribeRequest.setPage(collectOrderRequest.getPage());
@ -101,11 +108,11 @@ public class IoCollectOriginController extends BaseController {
getSickPrescribeRequest.setThirdSys("thirdId");
getSickPrescribeRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode());
getSickPrescribeRequest.setFromType(collectOrderRequest.getFromType());
if (StrUtil.isNotEmpty(collectOrderRequest.getStartTime())){
if (StrUtil.isNotEmpty(collectOrderRequest.getStartTime())) {
getSickPrescribeRequest.setStartTime(collectOrderRequest.getStartTime() + " 00:00:00");
}
if (StrUtil.isNotEmpty(collectOrderRequest.getEndTime())){
getSickPrescribeRequest.setEndTime(collectOrderRequest.getEndTime()+ " 23:59:59");
if (StrUtil.isNotEmpty(collectOrderRequest.getEndTime())) {
getSickPrescribeRequest.setEndTime(collectOrderRequest.getEndTime() + " 23:59:59");
}
getSickPrescribeRequest.setKey(collectOrderRequest.getKeyWords());
getSickPrescribeRequest.setPage(collectOrderRequest.getPage());
@ -122,12 +129,22 @@ public class IoCollectOriginController extends BaseController {
filterOrderRequest.setProductType(null);
filterOrderRequest.setLimit(collectOrderRequest.getLimit());
filterOrderRequest.setPage(collectOrderRequest.getPage());
if (StrUtil.isNotEmpty(collectOrderRequest.getStartTime())){
if (StrUtil.isNotEmpty(collectOrderRequest.getStartTime())) {
filterOrderRequest.setStartTime(collectOrderRequest.getStartTime() + "00:00:00");
}
if (StrUtil.isNotEmpty(collectOrderRequest.getEndTime())){
filterOrderRequest.setEndTime(collectOrderRequest.getEndTime()+ "23:59:59");
if (StrUtil.isNotEmpty(collectOrderRequest.getEndTime())) {
filterOrderRequest.setEndTime(collectOrderRequest.getEndTime() + "23:59:59");
}
if (collectOrderRequest.getBusType().equals(ConstantType.SPLIT_OUT)) {
List<SysWorkplace> sysWorkplaceList = sysWorkplaceService.list(new LambdaQueryWrapper<SysWorkplace>().eq(SysWorkplace::getJobMode, 1));
if (CollUtil.isNotEmpty(sysWorkplaceList)) {
List<Long> workplaceCodes = sysWorkplaceList.stream().map(SysWorkplace::getWorkplaceId).collect(Collectors.toList());
filterOrderRequest.setWorkplaceCodes(workplaceCodes);
filterOrderRequest.setStatus(7);
}
}
filterOrderRequest.setBillNo(collectOrderRequest.getBillNo());
filterOrderRequest.setFromCorp(collectOrderRequest.getFromCorpName());
filterOrderRequest.setAction(collectOrderRequest.getBusType());
@ -142,11 +159,11 @@ public class IoCollectOriginController extends BaseController {
filterThrOrderRequest.setBusType(collectOrderRequest.getBusType());
filterThrOrderRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode());
filterThrOrderRequest.setFromType(collectOrderRequest.getFromType());
if (StrUtil.isNotEmpty(collectOrderRequest.getStartTime())){
if (StrUtil.isNotEmpty(collectOrderRequest.getStartTime())) {
filterThrOrderRequest.setStartTime(collectOrderRequest.getStartTime() + "00:00:00");
}
if (StrUtil.isNotEmpty(collectOrderRequest.getEndTime())){
filterThrOrderRequest.setEndTime(collectOrderRequest.getEndTime()+ "23:59:59");
if (StrUtil.isNotEmpty(collectOrderRequest.getEndTime())) {
filterThrOrderRequest.setEndTime(collectOrderRequest.getEndTime() + "23:59:59");
}
filterThrOrderRequest.setPage(collectOrderRequest.getPage());
filterThrOrderRequest.setKeyWords(collectOrderRequest.getKeyWords());

@ -293,9 +293,7 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
shipperName = ioOrderEntity.getDeptName();
fromCorpName = ioOrderEntity.getFromName();
}
IoCollectOrder collectOrder = IoCollectOrder.builder()
.workPlaceCode(ioOrderEntity.getWorkPlaceCode())
.billNo(ioOrderEntity.getBillNo()).fromType("药械追溯管理系统").busType(ioOrderEntity.getAction()).fromCorp(ioOrderEntity.getFromName()).fromCorpName(fromCorpName).billTime(ioOrderEntity.getCreateTime()).shipperName(shipperName).createTime(ioOrderEntity.getCreateTime()).createUser(ioOrderEntity.getCreateUser()).updateTime(new Date()).orderCirType(sysWorkplaceDocumentEntity.getOrderCirType()).splitStatus(0).tagStatus(1).remark(ioOrderEntity.getRemark()).build();
IoCollectOrder collectOrder = IoCollectOrder.builder().workPlaceCode(ioOrderEntity.getWorkPlaceCode()).billNo(ioOrderEntity.getBillNo()).fromType("药械追溯管理系统").busType(ioOrderEntity.getAction()).fromCorp(ioOrderEntity.getFromName()).fromCorpName(fromCorpName).billTime(ioOrderEntity.getCreateTime()).shipperName(shipperName).createTime(ioOrderEntity.getCreateTime()).createUser(ioOrderEntity.getCreateUser()).updateTime(new Date()).orderCirType(sysWorkplaceDocumentEntity.getOrderCirType()).splitStatus(0).tagStatus(1).remark(ioOrderEntity.getRemark()).build();
if (collectOrder.getWorkPlaceCode() != null) {
collectOrder.setTagStatus(1);
}
@ -709,9 +707,15 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
ioCollectOrderBizBackups.add(ioCollectOrderBizBackup);
}
ioCollectOrderBizBackupService.saveBatch(ioCollectOrderBizBackups);
if (sysWorkplaceDocumentEntity.getDocumentTypeCode().equals(ConstantType.SPLIT_OUT)) {
splitCodeService.finishSellOrder(collectOrder, collectOrder.getWorkPlaceCode());
}
} else {
if (sysWorkplaceDocumentEntity.getDocumentTypeCode().startsWith("QXCF")) {
splitQxService.finishQxAutoTagCode(collectOrder, isAuto, collectOrderRequest.getQueueCode());
} else if (sysWorkplaceDocumentEntity.getDocumentTypeCode().equals(ConstantType.SPLIT_OUT)) {
splitCodeService.finishSellOrder(collectOrder, collectOrder.getWorkPlaceCode());
} else {
splitCodeService.finishAutoTagCode(collectOrder, isAuto, collectOrderRequest.getQueueCode());
}

@ -86,22 +86,13 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
}
public List<IoSplitCodeEntity> findSplitCodes(Long relId, String batchNo, Long workPlaceCode) {
List<IoSplitCodeEntity> ioSplitCodeEntities = splitCodeMapper.selectList(new LambdaQueryWrapper<IoSplitCodeEntity>()
.eq(IoSplitCodeEntity::getRelId, relId)
.eq(StrUtil.isNotEmpty(batchNo), IoSplitCodeEntity::getBatchNo, batchNo)
.eq(workPlaceCode != null, IoSplitCodeEntity::getWorkPlaceCode, workPlaceCode)
.gt(IoSplitCodeEntity::getRemainCount, 0)
.in(IoSplitCodeEntity::getStatus, 1, 2).orderByAsc(IoSplitCodeEntity::getInBactchNo));
List<IoSplitCodeEntity> ioSplitCodeEntities = splitCodeMapper.selectList(new LambdaQueryWrapper<IoSplitCodeEntity>().eq(IoSplitCodeEntity::getRelId, relId).eq(StrUtil.isNotEmpty(batchNo), IoSplitCodeEntity::getBatchNo, batchNo).eq(workPlaceCode != null, IoSplitCodeEntity::getWorkPlaceCode, workPlaceCode).gt(IoSplitCodeEntity::getRemainCount, 0).in(IoSplitCodeEntity::getStatus, 1, 2).orderByAsc(IoSplitCodeEntity::getInBactchNo));
return ioSplitCodeEntities;
}
public List<IoSplitCodeEntity> findSplitCodes(String ybbm, String batchNo, Long workPlaceCode) {
List<IoSplitCodeEntity> ioSplitCodeEntities = splitCodeMapper.selectList(new LambdaQueryWrapper<IoSplitCodeEntity>()
.eq(StrUtil.isNotEmpty(batchNo), IoSplitCodeEntity::getBatchNo, batchNo)
.eq(workPlaceCode != null, IoSplitCodeEntity::getWorkPlaceCode, workPlaceCode)
.gt(IoSplitCodeEntity::getRemainCount, 0)
.in(IoSplitCodeEntity::getStatus, 1, 2).orderByAsc(IoSplitCodeEntity::getInBactchNo));
List<IoSplitCodeEntity> ioSplitCodeEntities = splitCodeMapper.selectList(new LambdaQueryWrapper<IoSplitCodeEntity>().eq(StrUtil.isNotEmpty(batchNo), IoSplitCodeEntity::getBatchNo, batchNo).eq(workPlaceCode != null, IoSplitCodeEntity::getWorkPlaceCode, workPlaceCode).gt(IoSplitCodeEntity::getRemainCount, 0).in(IoSplitCodeEntity::getStatus, 1, 2).orderByAsc(IoSplitCodeEntity::getInBactchNo));
return ioSplitCodeEntities;
}
@ -109,18 +100,13 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
if (workPlaceCode == null) {
return null;
}
List<IoSplitCodeEntity> ioSplitCodeEntities = splitCodeMapper.selectList(new LambdaQueryWrapper<IoSplitCodeEntity>()
.eq(IoSplitCodeEntity::getCode, code)
.eq(workPlaceCode != null, IoSplitCodeEntity::getWorkPlaceCode, workPlaceCode)
.in(IoSplitCodeEntity::getStatus, 1, 2).orderByAsc(IoSplitCodeEntity::getInBactchNo));
if (CollUtil.isNotEmpty(ioSplitCodeEntities))
return ioSplitCodeEntities.get(0);
List<IoSplitCodeEntity> ioSplitCodeEntities = splitCodeMapper.selectList(new LambdaQueryWrapper<IoSplitCodeEntity>().eq(IoSplitCodeEntity::getCode, code).eq(workPlaceCode != null, IoSplitCodeEntity::getWorkPlaceCode, workPlaceCode).in(IoSplitCodeEntity::getStatus, 1, 2).orderByAsc(IoSplitCodeEntity::getInBactchNo));
if (CollUtil.isNotEmpty(ioSplitCodeEntities)) return ioSplitCodeEntities.get(0);
return null;
}
public IoSplitCodeEntity findByCode(String code) {
return splitCodeMapper.selectOne(new LambdaQueryWrapper<IoSplitCodeEntity>()
.eq(IoSplitCodeEntity::getCode, code).last("limit 1"));
return splitCodeMapper.selectOne(new LambdaQueryWrapper<IoSplitCodeEntity>().eq(IoSplitCodeEntity::getCode, code).last("limit 1"));
}
public void splitRemove(IoCollectOrderBiz collectOrderBiz, IoCollectOrder collectOrder, Long putWorkPlaceCode, Boolean isAuto, String confirmSplitCode) {
@ -138,20 +124,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
unCount = IntUtil.value(collectOrderBiz.getUnTagCount());
for (IoSplitCodeEntity ioSplitCodeEntity : ioSplitCodeEntities) {
count = IntUtil.value(ioSplitCodeEntity.getRemainCount()) - unCount;
collectOrderCodeAutoService.save(IoCollectOrderCodeAuto.builder()
.codeIdFk(ioSplitCodeEntity.getId())
.udiCode(ioSplitCodeEntity.getCode())
.orderIdFk(collectOrder.getBillNo())
.batchNo(ioSplitCodeEntity.getBatchNo())
.productDate(ioSplitCodeEntity.getProduceDate())
.expireDate(ioSplitCodeEntity.getExpireDate())
.serialNo(ioSplitCodeEntity.getSerialNo())
.relId(collectOrderBiz.getRelId())
.bizIdFk(collectOrderBiz.getId())
.fifoSplit(1)
.createTime(new Date())
.updateTime(new Date())
.build());
collectOrderCodeAutoService.save(IoCollectOrderCodeAuto.builder().codeIdFk(ioSplitCodeEntity.getId()).udiCode(ioSplitCodeEntity.getCode()).orderIdFk(collectOrder.getBillNo()).batchNo(ioSplitCodeEntity.getBatchNo()).productDate(ioSplitCodeEntity.getProduceDate()).expireDate(ioSplitCodeEntity.getExpireDate()).serialNo(ioSplitCodeEntity.getSerialNo()).relId(collectOrderBiz.getRelId()).bizIdFk(collectOrderBiz.getId()).fifoSplit(1).createTime(new Date()).updateTime(new Date()).build());
if (count > 0) {
ioSplitCodeEntity.setRemainCount(count);
unCount = 0;
@ -174,8 +147,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
//预出库队列数量不足
collectOrderBiz.setTagStatus(2);
collectOrderBiz.setTagMsg("预出库队列码数量不足,赋码失败!");
if (isAuto)
throw new JsonException(500, "提交失败,工位库存数量不足!");
if (isAuto) throw new JsonException(500, "提交失败,工位库存数量不足!");
else return;
} else {
@ -184,20 +156,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
for (IoSplitCodeEntity ioSplitCodeEntity : ioSplitCodeEntities) {
if (IntUtil.value(ioSplitCodeEntity.getRemainCount()) > 0) {
count = IntUtil.value(ioSplitCodeEntity.getRemainCount()) - unCount;
collectOrderCodeAutoService.save(IoCollectOrderCodeAuto.builder()
.codeIdFk(ioSplitCodeEntity.getId())
.udiCode(ioSplitCodeEntity.getCode())
.orderIdFk(collectOrder.getBillNo())
.batchNo(ioSplitCodeEntity.getBatchNo())
.productDate(ioSplitCodeEntity.getProduceDate())
.expireDate(ioSplitCodeEntity.getExpireDate())
.serialNo(ioSplitCodeEntity.getSerialNo())
.relId(collectOrderBiz.getRelId())
.bizIdFk(collectOrderBiz.getId())
.fifoSplit(1)
.createTime(new Date())
.updateTime(new Date())
.build());
collectOrderCodeAutoService.save(IoCollectOrderCodeAuto.builder().codeIdFk(ioSplitCodeEntity.getId()).udiCode(ioSplitCodeEntity.getCode()).orderIdFk(collectOrder.getBillNo()).batchNo(ioSplitCodeEntity.getBatchNo()).productDate(ioSplitCodeEntity.getProduceDate()).expireDate(ioSplitCodeEntity.getExpireDate()).serialNo(ioSplitCodeEntity.getSerialNo()).relId(collectOrderBiz.getRelId()).bizIdFk(collectOrderBiz.getId()).fifoSplit(1).createTime(new Date()).updateTime(new Date()).build());
if (count > 0) {
ioSplitCodeEntity.setRemainCount(count);
splitCodeMapper.updateById(ioSplitCodeEntity);
@ -217,8 +176,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
if (unCount > 0) {
collectOrderBiz.setTagStatus(2);
collectOrderBiz.setTagMsg("预出库队列码数量不足,赋码失败!");
if (isAuto)
throw new JsonException(500, "工位库存数量不足!");
if (isAuto) throw new JsonException(500, "工位库存数量不足!");
else return;
} else {
collectOrderBiz.setTagStatus(3);
@ -239,8 +197,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
SysWorkplacePutRel sysWorkplacePutRel = workplacePutRelService.findPutWorkPlace(collectOrder.getWorkPlaceCode(), collectOrder.getBusType());
Long putWorkPlaceCode = null;
if (sysWorkplacePutRel != null)
putWorkPlaceCode = sysWorkplacePutRel.getWorkPlaceCode();
if (sysWorkplacePutRel != null) putWorkPlaceCode = sysWorkplacePutRel.getWorkPlaceCode();
List<IoCollectOrderBiz> collectOrderBizs = collectOrderBizService.listByBillNo(collectOrder.getBillNo());
//如果手动扫码判断该码是否在队列里,如果已在队列,则队列里剔除
@ -271,11 +228,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
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());
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) {
@ -328,23 +281,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
splitCodeEntity.setRemainCount(-unTagCount);
splitCodeService.updateById(splitCodeEntity);
} else {
IoSplitCodeEntity ioSplitCodeEntity = IoSplitCodeEntity.builder().code(item.getUdiCode())
.errUdiCode(item.getUdiCode())
.orderId(item.getOrderIdFk())
.action(collectOrder.getBusType())
.relId(item.getRelId())
.nameCode(item.getNameCode())
.batchNo(item.getBatchNo())
.produceDate(item.getProductDate())
.expireDate(item.getExpireDate())
.serialNo(item.getSerialNo())
.scanCount(item.getScanCount())
.totalCount(item.getScanCount())
.workPlaceCode(putWorkPlaceCode)
.status(2)
.fifoSplit(1)
.createTime(new Date()).updateTime(new Date())
.remainCount(item.getRemainCount()).build();
IoSplitCodeEntity ioSplitCodeEntity = IoSplitCodeEntity.builder().code(item.getUdiCode()).errUdiCode(item.getUdiCode()).orderId(item.getOrderIdFk()).action(collectOrder.getBusType()).relId(item.getRelId()).nameCode(item.getNameCode()).batchNo(item.getBatchNo()).produceDate(item.getProductDate()).expireDate(item.getExpireDate()).serialNo(item.getSerialNo()).scanCount(item.getScanCount()).totalCount(item.getScanCount()).workPlaceCode(putWorkPlaceCode).status(2).fifoSplit(1).createTime(new Date()).updateTime(new Date()).remainCount(item.getRemainCount()).build();
this.decorateUnpackExpireTime(ioSplitCodeEntity);
splitCodeService.save(ioSplitCodeEntity);
}
@ -364,29 +301,15 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
if (quotient > 0) {
List<IoSplitFifoCodeEntity> ioSplitFifoCodeEntities = splitFifoCodeService.findByRelId(putWorkPlaceCode, collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), queueCode);
if (ioSplitFifoCodeEntities.size() < quotient) {
if (isAuto)
throw new JsonException(500, "提交失败,工位库存数量不足!");
if (isAuto) throw new JsonException(500, "提交失败,工位库存数量不足!");
// else return;
}
if (ioSplitFifoCodeEntities.size() > 0) {
Integer indexFlag = ioSplitFifoCodeEntities.size() < quotient ?ioSplitFifoCodeEntities.size():quotient;
Integer indexFlag = ioSplitFifoCodeEntities.size() < quotient ? ioSplitFifoCodeEntities.size() : quotient;
for (int i = 0; i < indexFlag; i++) {
IoSplitFifoCodeEntity splitFifoCodeEntity = ioSplitFifoCodeEntities.get(i);
collectOrderBiz.setUnTagCount(IntUtil.value(collectOrderBiz.getUnTagCount()) - IntUtil.value(udiRelevanceResponse.getBhxjsl()));
collectOrderCodeAutoService.save(IoCollectOrderCodeAuto.builder()
.codeIdFk(splitFifoCodeEntity.getId())
.udiCode(splitFifoCodeEntity.getCode())
.orderIdFk(collectOrder.getBillNo())
.batchNo(splitFifoCodeEntity.getBatchNo())
.productDate(splitFifoCodeEntity.getProduceDate())
.expireDate(splitFifoCodeEntity.getExpireDate())
.serialNo(splitFifoCodeEntity.getSerialNo())
.relId(collectOrderBiz.getRelId())
.bizIdFk(collectOrderBiz.getId())
.fifoSplit(2)
.createTime(new Date())
.updateTime(new Date())
.build());
collectOrderCodeAutoService.save(IoCollectOrderCodeAuto.builder().codeIdFk(splitFifoCodeEntity.getId()).udiCode(splitFifoCodeEntity.getCode()).orderIdFk(collectOrder.getBillNo()).batchNo(splitFifoCodeEntity.getBatchNo()).productDate(splitFifoCodeEntity.getProduceDate()).expireDate(splitFifoCodeEntity.getExpireDate()).serialNo(splitFifoCodeEntity.getSerialNo()).relId(collectOrderBiz.getRelId()).bizIdFk(collectOrderBiz.getId()).fifoSplit(2).createTime(new Date()).updateTime(new Date()).build());
splitFifoCodeService.removeById(splitFifoCodeEntity.getId());
IoSplitFifoInv splitFifoInv = splitFifoInvService.findByFifoCode(splitFifoCodeEntity);
if (splitFifoInv != null) {
@ -422,6 +345,47 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
}
/**
*
*/
public void finishSellOrder(IoCollectOrder collectOrder, Long workPlace) {
List<IoCollectOrderCodeMan> collectOrderCodeMENs = collectOrderCodeManService.listByBillNo(collectOrder.getBillNo());
for (IoCollectOrderCodeMan collectOrderCodeMan : collectOrderCodeMENs) {
IoSplitFifoCodeEntity splitFifoCodeEntity = splitFifoCodeService.findByCode(collectOrderCodeMan.getUdiCode(), workPlace);
if (splitFifoCodeEntity != null) {
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()));
splitFifoInv.setReCount(IntUtil.value(splitFifoInv.getInCount()) - IntUtil.value(splitFifoInv.getOutCount()));
splitFifoInv.setReCodeCount(IntUtil.value(splitFifoInv.getInCodeCount()) - IntUtil.value(splitFifoInv.getOutCodeCount()));
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()));
splitFifoInv.setReCount(IntUtil.value(splitFifoInv.getInCount()) - IntUtil.value(splitFifoInv.getOutCount()));
splitFifoInv.setReCodeCount(IntUtil.value(splitFifoInv.getInCodeCount()) - IntUtil.value(splitFifoInv.getOutCodeCount()));
splitFifoInvService.updateById(splitFifoInv);
}
}
}
}
}
@Resource
IoCollectOrderService collectOrderService;
@ -434,8 +398,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
}
SysWorkplacePutRel sysWorkplacePutRel = workplacePutRelService.findPutWorkPlace(collectOrder.getWorkPlaceCode(), collectOrder.getBusType());
Long putWorkPlaceCode = null;
if (sysWorkplacePutRel != null)
putWorkPlaceCode = sysWorkplacePutRel.getWorkPlaceCode();
if (sysWorkplacePutRel != null) putWorkPlaceCode = sysWorkplacePutRel.getWorkPlaceCode();
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
filterUdiRelRequest.setId(collectOrderBiz.getRelId());
filterUdiRelRequest.setPackLevel("1");
@ -497,8 +460,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
// .limit(totalNeededCount) // 只取需要的数量
.map(code -> {
return code.getCode();
})
.collect(Collectors.toList());
}).collect(Collectors.toList());
if (CollUtil.isNotEmpty(codeInfoList)) {
confirmResponse.setNeedSplitConfirm(true);
confirmResponse.setNeedSplitCodes(codeInfoList);
@ -516,20 +478,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
for (int i = 0; i < quotient; i++) {
IoSplitFifoCodeEntity splitFifoCodeEntity = availableCodes.get(i);
collectOrderBiz.setUnTagCount(IntUtil.value(collectOrderBiz.getUnTagCount()) - IntUtil.value(udiRelevanceResponse.getBhxjsl()));
collectOrderCodeAutoService.save(IoCollectOrderCodeAuto.builder()
.codeIdFk(splitFifoCodeEntity.getId())
.udiCode(splitFifoCodeEntity.getCode())
.orderIdFk(collectOrder.getBillNo())
.batchNo(splitFifoCodeEntity.getBatchNo())
.productDate(splitFifoCodeEntity.getProduceDate())
.expireDate(splitFifoCodeEntity.getExpireDate())
.serialNo(splitFifoCodeEntity.getSerialNo())
.relId(collectOrderBiz.getRelId())
.bizIdFk(collectOrderBiz.getId())
.fifoSplit(2)
.createTime(new Date())
.updateTime(new Date())
.build());
collectOrderCodeAutoService.save(IoCollectOrderCodeAuto.builder().codeIdFk(splitFifoCodeEntity.getId()).udiCode(splitFifoCodeEntity.getCode()).orderIdFk(collectOrder.getBillNo()).batchNo(splitFifoCodeEntity.getBatchNo()).productDate(splitFifoCodeEntity.getProduceDate()).expireDate(splitFifoCodeEntity.getExpireDate()).serialNo(splitFifoCodeEntity.getSerialNo()).relId(collectOrderBiz.getRelId()).bizIdFk(collectOrderBiz.getId()).fifoSplit(2).createTime(new Date()).updateTime(new Date()).build());
splitFifoCodeService.removeById(splitFifoCodeEntity.getId());
IoSplitFifoInv splitFifoInv = splitFifoInvService.findByFifoCode(splitFifoCodeEntity);
if (splitFifoInv != null) {
@ -578,11 +527,8 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
public List<Long> findInvIdFk(IoCollectOrder collectOrder) {
List<IoSplitFifoInvRel> ioSplitFifoInvRels = splitFifoInvRelService.findInvIdFk(collectOrder.getWorkPlaceCode(), collectOrder.getBusType());
if (CollUtil.isNotEmpty(ioSplitFifoInvRels)) {
return ioSplitFifoInvRels.stream()
.map(IoSplitFifoInvRel::getInvIdFk)
.collect(Collectors.toList());
} else
return null;
return ioSplitFifoInvRels.stream().map(IoSplitFifoInvRel::getInvIdFk).collect(Collectors.toList());
} else return null;
}
public List<IoCollectOrderCodeMan> filterCode(List<IoCollectOrderCodeMan> collectOrderCodes, IoCollectOrderBiz collectOrderBiz, UdiRelevanceResponse udiRelevanceResponse) {
@ -633,36 +579,26 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
Long putWorkPlaceCode = null;
//获取上货工位
SysWorkplacePutRel sysWorkplacePutRel = workplacePutRelService.findPutWorkPlace(collectOrder.getWorkPlaceCode(), collectOrder.getBusType());
if (sysWorkplacePutRel != null)
putWorkPlaceCode = sysWorkplacePutRel.getWorkPlaceCode();
if (sysWorkplacePutRel != null) putWorkPlaceCode = sysWorkplacePutRel.getWorkPlaceCode();
List<IoCollectOrderBiz> collectOrderBizs = collectOrderBizService.listByBillNo(collectOrder.getBillNo());
for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) {
List<IoSplitFifoCodeEntity> splitFifoCodeEntities =
splitFifoCodeService.findByRelId(putWorkPlaceCode,
collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), queueCode);
int total = splitFifoCodeEntities.stream()
.mapToInt(IoSplitFifoCodeEntity::getTotalCount)
.sum();
List<IoSplitFifoCodeEntity> splitFifoCodeEntities = splitFifoCodeService.findByRelId(putWorkPlaceCode, collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), queueCode);
int total = splitFifoCodeEntities.stream().mapToInt(IoSplitFifoCodeEntity::getTotalCount).sum();
collectOrderBiz.setTempWorkPlaceCount(total);
List<IoSplitCodeEntity> splitCodeEntities = splitCodeService.findSplitCodes(collectOrderBiz.getRelId()
, collectOrderBiz.getBatchNo(), putWorkPlaceCode);
int splitTotal = splitCodeEntities.stream()
.mapToInt(IoSplitCodeEntity::getRemainCount)
.sum();
List<IoSplitCodeEntity> splitCodeEntities = splitCodeService.findSplitCodes(collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), putWorkPlaceCode);
int splitTotal = splitCodeEntities.stream().mapToInt(IoSplitCodeEntity::getRemainCount).sum();
collectOrderBiz.setTempSplitCount(splitTotal);
total = total + splitTotal;
if (total >= IntUtil.value(collectOrderBiz.getCount())) {
collectOrderBiz.setAutoTagStatus(2);
} else if (total > 0) {
collectOrderBiz.setAutoTagStatus(3);
} else
collectOrderBiz.setAutoTagStatus(1);
} else collectOrderBiz.setAutoTagStatus(1);
}
ThreadUtil.execAsync(() -> {
ioCollectLedGroupService.openLed(collectOrderBizs);
}
);
ioCollectLedGroupService.openLed(collectOrderBizs);
});
collectOrderBizService.updateBatchById(collectOrderBizs);
}
@ -675,31 +611,22 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
Long putWorkPlaceCode = null;
//获取上货工位
SysWorkplacePutRel sysWorkplacePutRel = workplacePutRelService.findPutWorkPlace(collectOrder.getWorkPlaceCode(), collectOrder.getBusType());
if (sysWorkplacePutRel != null)
putWorkPlaceCode = sysWorkplacePutRel.getWorkPlaceCode();
if (sysWorkplacePutRel != null) putWorkPlaceCode = sysWorkplacePutRel.getWorkPlaceCode();
List<IoCollectOrderBiz> collectOrderBizs = collectOrderBizService.listByBillNo(collectOrder.getBillNo());
for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) {
List<IoSplitFifoCodeEntity> splitFifoCodeEntities =
splitFifoCodeService.findByCheckCode(putWorkPlaceCode,
collectOrderBiz.getYbbm(), collectOrderBiz.getBatchNo(), queueCode);
int total = splitFifoCodeEntities.stream()
.mapToInt(IoSplitFifoCodeEntity::getTotalCount)
.sum();
List<IoSplitFifoCodeEntity> splitFifoCodeEntities = splitFifoCodeService.findByCheckCode(putWorkPlaceCode, collectOrderBiz.getYbbm(), collectOrderBiz.getBatchNo(), queueCode);
int total = splitFifoCodeEntities.stream().mapToInt(IoSplitFifoCodeEntity::getTotalCount).sum();
collectOrderBiz.setTempWorkPlaceCount(total);
List<IoSplitCodeEntity> splitCodeEntities = splitCodeService.findSplitCodes(collectOrderBiz.getRelId()
, collectOrderBiz.getBatchNo(), putWorkPlaceCode);
int splitTotal = splitCodeEntities.stream()
.mapToInt(IoSplitCodeEntity::getRemainCount)
.sum();
List<IoSplitCodeEntity> splitCodeEntities = splitCodeService.findSplitCodes(collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), putWorkPlaceCode);
int splitTotal = splitCodeEntities.stream().mapToInt(IoSplitCodeEntity::getRemainCount).sum();
collectOrderBiz.setTempSplitCount(splitTotal);
total = total + splitTotal;
if (total >= IntUtil.value(collectOrderBiz.getCount())) {
collectOrderBiz.setAutoTagStatus(2);
} else if (total > 0) {
collectOrderBiz.setAutoTagStatus(3);
} else
collectOrderBiz.setAutoTagStatus(1);
} else collectOrderBiz.setAutoTagStatus(1);
}
collectOrderBizService.updateBatchById(collectOrderBizs);
}
@ -731,20 +658,9 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
List<IoSplitFifoCodeEntity> splitFifoCodeEntities;
if (StrUtil.isNotEmpty(confirmSplitCode)) {
splitFifoCodeEntities = splitFifoCodeService
.list(new LambdaQueryWrapper<IoSplitFifoCodeEntity>()
.eq(IoSplitFifoCodeEntity::getCode, confirmSplitCode)
.eq(putWorkPlaceCode != null, IoSplitFifoCodeEntity::getWorkPlaceCode, putWorkPlaceCode)
.orderByAsc(IoSplitFifoCodeEntity::getInBactchNo)
);
splitFifoCodeEntities = splitFifoCodeService.list(new LambdaQueryWrapper<IoSplitFifoCodeEntity>().eq(IoSplitFifoCodeEntity::getCode, confirmSplitCode).eq(putWorkPlaceCode != null, IoSplitFifoCodeEntity::getWorkPlaceCode, putWorkPlaceCode).orderByAsc(IoSplitFifoCodeEntity::getInBactchNo));
} else {
splitFifoCodeEntities = splitFifoCodeService
.list(new LambdaQueryWrapper<IoSplitFifoCodeEntity>()
.eq(IoSplitFifoCodeEntity::getRelId, relId)
.eq(StrUtil.isNotEmpty(batchNo), IoSplitFifoCodeEntity::getBatchNo, batchNo)
.eq(putWorkPlaceCode != null, IoSplitFifoCodeEntity::getWorkPlaceCode, putWorkPlaceCode)
.orderByAsc(IoSplitFifoCodeEntity::getInBactchNo)
);
splitFifoCodeEntities = splitFifoCodeService.list(new LambdaQueryWrapper<IoSplitFifoCodeEntity>().eq(IoSplitFifoCodeEntity::getRelId, relId).eq(StrUtil.isNotEmpty(batchNo), IoSplitFifoCodeEntity::getBatchNo, batchNo).eq(putWorkPlaceCode != null, IoSplitFifoCodeEntity::getWorkPlaceCode, putWorkPlaceCode).orderByAsc(IoSplitFifoCodeEntity::getInBactchNo));
}
Integer count = 0;
@ -852,37 +768,12 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
IoSplitDesOrder collectOrder;
List<IoSplitDesOrderDetail> splitDesOrderDetails = new ArrayList<>();
List<Long> removeByIds = new ArrayList<>();
collectOrder = IoSplitDesOrder.builder()
.id(IdUtil.getSnowflakeNextId())
.billNo(gennerOrderUtils.createWdOrderNo(new OrderNoTypeBean(Constant.SPLIT_DES_ORDER, "yyyyMMdd")))
.busType(null)
.workPlaceCode(null)
.createTime(new Date())
.billTime(new Date())
.remark(null)
.status(2)
.createUser("1")
.updateTime(new Date())
.updateUser("1")
.build();
collectOrder = IoSplitDesOrder.builder().id(IdUtil.getSnowflakeNextId()).billNo(gennerOrderUtils.createWdOrderNo(new OrderNoTypeBean(Constant.SPLIT_DES_ORDER, "yyyyMMdd"))).busType(null).workPlaceCode(null).createTime(new Date()).billTime(new Date()).remark(null).status(2).createUser("1").updateTime(new Date()).updateUser("1").build();
splitDesOrderService.save(collectOrder);
ioSplitCodeEntities.forEach(splitCodeEntity -> {
//损耗详细表
IoSplitDesOrderDetail splitDesOrderDetail = IoSplitDesOrderDetail.builder()
.id(IdUtil.getSnowflakeNextId())
.workPlaceCode(collectOrder.getWorkPlaceCode())
.orderIdFk(collectOrder.getBillNo())
.relId(splitCodeEntity.getRelId())
.batchNo(splitCodeEntity.getBatchNo())
.produceDate(splitCodeEntity.getProduceDate())
.expireDate(splitCodeEntity.getExpireDate())
.supId(splitCodeEntity.getSupId())
.count(splitCodeEntity.getRemainCount())
.reCount(splitCodeEntity.getRemainCount())
.createTime(new Date())
.updateTime(new Date())
.remark("").build();
IoSplitDesOrderDetail splitDesOrderDetail = IoSplitDesOrderDetail.builder().id(IdUtil.getSnowflakeNextId()).workPlaceCode(collectOrder.getWorkPlaceCode()).orderIdFk(collectOrder.getBillNo()).relId(splitCodeEntity.getRelId()).batchNo(splitCodeEntity.getBatchNo()).produceDate(splitCodeEntity.getProduceDate()).expireDate(splitCodeEntity.getExpireDate()).supId(splitCodeEntity.getSupId()).count(splitCodeEntity.getRemainCount()).reCount(splitCodeEntity.getRemainCount()).createTime(new Date()).updateTime(new Date()).remark("").build();
splitDesOrderDetails.add(splitDesOrderDetail);
removeByIds.add(splitCodeEntity.getId());
});

Loading…
Cancel
Save