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

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

@ -293,9 +293,7 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
shipperName = ioOrderEntity.getDeptName(); shipperName = ioOrderEntity.getDeptName();
fromCorpName = ioOrderEntity.getFromName(); fromCorpName = ioOrderEntity.getFromName();
} }
IoCollectOrder collectOrder = IoCollectOrder.builder() 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();
.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) { if (collectOrder.getWorkPlaceCode() != null) {
collectOrder.setTagStatus(1); collectOrder.setTagStatus(1);
} }
@ -709,9 +707,15 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
ioCollectOrderBizBackups.add(ioCollectOrderBizBackup); ioCollectOrderBizBackups.add(ioCollectOrderBizBackup);
} }
ioCollectOrderBizBackupService.saveBatch(ioCollectOrderBizBackups); ioCollectOrderBizBackupService.saveBatch(ioCollectOrderBizBackups);
if (sysWorkplaceDocumentEntity.getDocumentTypeCode().equals(ConstantType.SPLIT_OUT)) {
splitCodeService.finishSellOrder(collectOrder, collectOrder.getWorkPlaceCode());
}
} else { } else {
if (sysWorkplaceDocumentEntity.getDocumentTypeCode().startsWith("QXCF")) { if (sysWorkplaceDocumentEntity.getDocumentTypeCode().startsWith("QXCF")) {
splitQxService.finishQxAutoTagCode(collectOrder, isAuto, collectOrderRequest.getQueueCode()); splitQxService.finishQxAutoTagCode(collectOrder, isAuto, collectOrderRequest.getQueueCode());
} else if (sysWorkplaceDocumentEntity.getDocumentTypeCode().equals(ConstantType.SPLIT_OUT)) {
splitCodeService.finishSellOrder(collectOrder, collectOrder.getWorkPlaceCode());
} else { } else {
splitCodeService.finishAutoTagCode(collectOrder, isAuto, collectOrderRequest.getQueueCode()); 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) { public List<IoSplitCodeEntity> findSplitCodes(Long relId, String batchNo, Long workPlaceCode) {
List<IoSplitCodeEntity> ioSplitCodeEntities = splitCodeMapper.selectList(new LambdaQueryWrapper<IoSplitCodeEntity>() 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));
.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; return ioSplitCodeEntities;
} }
public List<IoSplitCodeEntity> findSplitCodes(String ybbm, String batchNo, Long workPlaceCode) { public List<IoSplitCodeEntity> findSplitCodes(String ybbm, String batchNo, Long workPlaceCode) {
List<IoSplitCodeEntity> ioSplitCodeEntities = splitCodeMapper.selectList(new LambdaQueryWrapper<IoSplitCodeEntity>() 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));
.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; return ioSplitCodeEntities;
} }
@ -109,18 +100,13 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
if (workPlaceCode == null) { if (workPlaceCode == null) {
return null; return null;
} }
List<IoSplitCodeEntity> ioSplitCodeEntities = splitCodeMapper.selectList(new LambdaQueryWrapper<IoSplitCodeEntity>() 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));
.eq(IoSplitCodeEntity::getCode, code) if (CollUtil.isNotEmpty(ioSplitCodeEntities)) return ioSplitCodeEntities.get(0);
.eq(workPlaceCode != null, IoSplitCodeEntity::getWorkPlaceCode, workPlaceCode)
.in(IoSplitCodeEntity::getStatus, 1, 2).orderByAsc(IoSplitCodeEntity::getInBactchNo));
if (CollUtil.isNotEmpty(ioSplitCodeEntities))
return ioSplitCodeEntities.get(0);
return null; return null;
} }
public IoSplitCodeEntity findByCode(String code) { public IoSplitCodeEntity findByCode(String code) {
return splitCodeMapper.selectOne(new LambdaQueryWrapper<IoSplitCodeEntity>() return splitCodeMapper.selectOne(new LambdaQueryWrapper<IoSplitCodeEntity>().eq(IoSplitCodeEntity::getCode, code).last("limit 1"));
.eq(IoSplitCodeEntity::getCode, code).last("limit 1"));
} }
public void splitRemove(IoCollectOrderBiz collectOrderBiz, IoCollectOrder collectOrder, Long putWorkPlaceCode, Boolean isAuto, String confirmSplitCode) { 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()); unCount = IntUtil.value(collectOrderBiz.getUnTagCount());
for (IoSplitCodeEntity ioSplitCodeEntity : ioSplitCodeEntities) { for (IoSplitCodeEntity ioSplitCodeEntity : ioSplitCodeEntities) {
count = IntUtil.value(ioSplitCodeEntity.getRemainCount()) - unCount; count = IntUtil.value(ioSplitCodeEntity.getRemainCount()) - unCount;
collectOrderCodeAutoService.save(IoCollectOrderCodeAuto.builder() 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());
.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) { if (count > 0) {
ioSplitCodeEntity.setRemainCount(count); ioSplitCodeEntity.setRemainCount(count);
unCount = 0; unCount = 0;
@ -174,8 +147,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
//预出库队列数量不足 //预出库队列数量不足
collectOrderBiz.setTagStatus(2); collectOrderBiz.setTagStatus(2);
collectOrderBiz.setTagMsg("预出库队列码数量不足,赋码失败!"); collectOrderBiz.setTagMsg("预出库队列码数量不足,赋码失败!");
if (isAuto) if (isAuto) throw new JsonException(500, "提交失败,工位库存数量不足!");
throw new JsonException(500, "提交失败,工位库存数量不足!");
else return; else return;
} else { } else {
@ -184,20 +156,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
for (IoSplitCodeEntity ioSplitCodeEntity : ioSplitCodeEntities) { for (IoSplitCodeEntity ioSplitCodeEntity : ioSplitCodeEntities) {
if (IntUtil.value(ioSplitCodeEntity.getRemainCount()) > 0) { if (IntUtil.value(ioSplitCodeEntity.getRemainCount()) > 0) {
count = IntUtil.value(ioSplitCodeEntity.getRemainCount()) - unCount; count = IntUtil.value(ioSplitCodeEntity.getRemainCount()) - unCount;
collectOrderCodeAutoService.save(IoCollectOrderCodeAuto.builder() 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());
.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) { if (count > 0) {
ioSplitCodeEntity.setRemainCount(count); ioSplitCodeEntity.setRemainCount(count);
splitCodeMapper.updateById(ioSplitCodeEntity); splitCodeMapper.updateById(ioSplitCodeEntity);
@ -217,8 +176,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
if (unCount > 0) { if (unCount > 0) {
collectOrderBiz.setTagStatus(2); collectOrderBiz.setTagStatus(2);
collectOrderBiz.setTagMsg("预出库队列码数量不足,赋码失败!"); collectOrderBiz.setTagMsg("预出库队列码数量不足,赋码失败!");
if (isAuto) if (isAuto) throw new JsonException(500, "工位库存数量不足!");
throw new JsonException(500, "工位库存数量不足!");
else return; else return;
} else { } else {
collectOrderBiz.setTagStatus(3); collectOrderBiz.setTagStatus(3);
@ -239,8 +197,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
SysWorkplacePutRel sysWorkplacePutRel = workplacePutRelService.findPutWorkPlace(collectOrder.getWorkPlaceCode(), collectOrder.getBusType()); SysWorkplacePutRel sysWorkplacePutRel = workplacePutRelService.findPutWorkPlace(collectOrder.getWorkPlaceCode(), collectOrder.getBusType());
Long putWorkPlaceCode = null; Long putWorkPlaceCode = null;
if (sysWorkplacePutRel != null) if (sysWorkplacePutRel != null) putWorkPlaceCode = sysWorkplacePutRel.getWorkPlaceCode();
putWorkPlaceCode = sysWorkplacePutRel.getWorkPlaceCode();
List<IoCollectOrderBiz> collectOrderBizs = collectOrderBizService.listByBillNo(collectOrder.getBillNo()); List<IoCollectOrderBiz> collectOrderBizs = collectOrderBizService.listByBillNo(collectOrder.getBillNo());
//如果手动扫码判断该码是否在队列里,如果已在队列,则队列里剔除 //如果手动扫码判断该码是否在队列里,如果已在队列,则队列里剔除
@ -271,11 +228,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
filterUdiRelRequest.setPackLevel("1"); filterUdiRelRequest.setPackLevel("1");
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectOneUdi(filterUdiRelRequest); UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectOneUdi(filterUdiRelRequest);
int removeCount = IntUtil.value(collectOrderCodeMan.getScanCount()) * udiRelevanceResponse.getBhxjsl(); int removeCount = IntUtil.value(collectOrderCodeMan.getScanCount()) * udiRelevanceResponse.getBhxjsl();
splitFifoCodeService.updateById(IoSplitFifoCodeEntity.builder() splitFifoCodeService.updateById(IoSplitFifoCodeEntity.builder().id(splitFifoCodeEntity.getId()).scanCount(IntUtil.value(splitFifoCodeEntity.getScanCount()) - IntUtil.value(collectOrderCodeMan.getScanCount())).totalCount(IntUtil.value(splitFifoCodeEntity.getTotalCount()) - removeCount).build());
.id(splitFifoCodeEntity.getId())
.scanCount(IntUtil.value(splitFifoCodeEntity.getScanCount()) - IntUtil.value(collectOrderCodeMan.getScanCount()))
.totalCount(IntUtil.value(splitFifoCodeEntity.getTotalCount()) - removeCount)
.build());
IoSplitFifoInv splitFifoInv = splitFifoInvService.findByFifoCode(splitFifoCodeEntity); IoSplitFifoInv splitFifoInv = splitFifoInvService.findByFifoCode(splitFifoCodeEntity);
if (splitFifoInv != null) { if (splitFifoInv != null) {
@ -328,23 +281,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
splitCodeEntity.setRemainCount(-unTagCount); splitCodeEntity.setRemainCount(-unTagCount);
splitCodeService.updateById(splitCodeEntity); splitCodeService.updateById(splitCodeEntity);
} else { } else {
IoSplitCodeEntity ioSplitCodeEntity = IoSplitCodeEntity.builder().code(item.getUdiCode()) 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();
.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); this.decorateUnpackExpireTime(ioSplitCodeEntity);
splitCodeService.save(ioSplitCodeEntity); splitCodeService.save(ioSplitCodeEntity);
} }
@ -364,29 +301,15 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
if (quotient > 0) { if (quotient > 0) {
List<IoSplitFifoCodeEntity> ioSplitFifoCodeEntities = splitFifoCodeService.findByRelId(putWorkPlaceCode, collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), queueCode); List<IoSplitFifoCodeEntity> ioSplitFifoCodeEntities = splitFifoCodeService.findByRelId(putWorkPlaceCode, collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), queueCode);
if (ioSplitFifoCodeEntities.size() < quotient) { if (ioSplitFifoCodeEntities.size() < quotient) {
if (isAuto) if (isAuto) throw new JsonException(500, "提交失败,工位库存数量不足!");
throw new JsonException(500, "提交失败,工位库存数量不足!");
// else return; // else return;
} }
if (ioSplitFifoCodeEntities.size() > 0) { 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++) { for (int i = 0; i < indexFlag; i++) {
IoSplitFifoCodeEntity splitFifoCodeEntity = ioSplitFifoCodeEntities.get(i); IoSplitFifoCodeEntity splitFifoCodeEntity = ioSplitFifoCodeEntities.get(i);
collectOrderBiz.setUnTagCount(IntUtil.value(collectOrderBiz.getUnTagCount()) - IntUtil.value(udiRelevanceResponse.getBhxjsl())); collectOrderBiz.setUnTagCount(IntUtil.value(collectOrderBiz.getUnTagCount()) - IntUtil.value(udiRelevanceResponse.getBhxjsl()));
collectOrderCodeAutoService.save(IoCollectOrderCodeAuto.builder() 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());
.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()); splitFifoCodeService.removeById(splitFifoCodeEntity.getId());
IoSplitFifoInv splitFifoInv = splitFifoInvService.findByFifoCode(splitFifoCodeEntity); IoSplitFifoInv splitFifoInv = splitFifoInvService.findByFifoCode(splitFifoCodeEntity);
if (splitFifoInv != null) { 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 @Resource
IoCollectOrderService collectOrderService; IoCollectOrderService collectOrderService;
@ -434,8 +398,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
} }
SysWorkplacePutRel sysWorkplacePutRel = workplacePutRelService.findPutWorkPlace(collectOrder.getWorkPlaceCode(), collectOrder.getBusType()); SysWorkplacePutRel sysWorkplacePutRel = workplacePutRelService.findPutWorkPlace(collectOrder.getWorkPlaceCode(), collectOrder.getBusType());
Long putWorkPlaceCode = null; Long putWorkPlaceCode = null;
if (sysWorkplacePutRel != null) if (sysWorkplacePutRel != null) putWorkPlaceCode = sysWorkplacePutRel.getWorkPlaceCode();
putWorkPlaceCode = sysWorkplacePutRel.getWorkPlaceCode();
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest(); FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
filterUdiRelRequest.setId(collectOrderBiz.getRelId()); filterUdiRelRequest.setId(collectOrderBiz.getRelId());
filterUdiRelRequest.setPackLevel("1"); filterUdiRelRequest.setPackLevel("1");
@ -497,8 +460,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
// .limit(totalNeededCount) // 只取需要的数量 // .limit(totalNeededCount) // 只取需要的数量
.map(code -> { .map(code -> {
return code.getCode(); return code.getCode();
}) }).collect(Collectors.toList());
.collect(Collectors.toList());
if (CollUtil.isNotEmpty(codeInfoList)) { if (CollUtil.isNotEmpty(codeInfoList)) {
confirmResponse.setNeedSplitConfirm(true); confirmResponse.setNeedSplitConfirm(true);
confirmResponse.setNeedSplitCodes(codeInfoList); confirmResponse.setNeedSplitCodes(codeInfoList);
@ -516,20 +478,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
for (int i = 0; i < quotient; i++) { for (int i = 0; i < quotient; i++) {
IoSplitFifoCodeEntity splitFifoCodeEntity = availableCodes.get(i); IoSplitFifoCodeEntity splitFifoCodeEntity = availableCodes.get(i);
collectOrderBiz.setUnTagCount(IntUtil.value(collectOrderBiz.getUnTagCount()) - IntUtil.value(udiRelevanceResponse.getBhxjsl())); collectOrderBiz.setUnTagCount(IntUtil.value(collectOrderBiz.getUnTagCount()) - IntUtil.value(udiRelevanceResponse.getBhxjsl()));
collectOrderCodeAutoService.save(IoCollectOrderCodeAuto.builder() 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());
.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()); splitFifoCodeService.removeById(splitFifoCodeEntity.getId());
IoSplitFifoInv splitFifoInv = splitFifoInvService.findByFifoCode(splitFifoCodeEntity); IoSplitFifoInv splitFifoInv = splitFifoInvService.findByFifoCode(splitFifoCodeEntity);
if (splitFifoInv != null) { if (splitFifoInv != null) {
@ -578,11 +527,8 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
public List<Long> findInvIdFk(IoCollectOrder collectOrder) { public List<Long> findInvIdFk(IoCollectOrder collectOrder) {
List<IoSplitFifoInvRel> ioSplitFifoInvRels = splitFifoInvRelService.findInvIdFk(collectOrder.getWorkPlaceCode(), collectOrder.getBusType()); List<IoSplitFifoInvRel> ioSplitFifoInvRels = splitFifoInvRelService.findInvIdFk(collectOrder.getWorkPlaceCode(), collectOrder.getBusType());
if (CollUtil.isNotEmpty(ioSplitFifoInvRels)) { if (CollUtil.isNotEmpty(ioSplitFifoInvRels)) {
return ioSplitFifoInvRels.stream() return ioSplitFifoInvRels.stream().map(IoSplitFifoInvRel::getInvIdFk).collect(Collectors.toList());
.map(IoSplitFifoInvRel::getInvIdFk) } else return null;
.collect(Collectors.toList());
} 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) {
@ -633,36 +579,26 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
Long putWorkPlaceCode = null; Long putWorkPlaceCode = null;
//获取上货工位 //获取上货工位
SysWorkplacePutRel sysWorkplacePutRel = workplacePutRelService.findPutWorkPlace(collectOrder.getWorkPlaceCode(), collectOrder.getBusType()); SysWorkplacePutRel sysWorkplacePutRel = workplacePutRelService.findPutWorkPlace(collectOrder.getWorkPlaceCode(), collectOrder.getBusType());
if (sysWorkplacePutRel != null) if (sysWorkplacePutRel != null) putWorkPlaceCode = sysWorkplacePutRel.getWorkPlaceCode();
putWorkPlaceCode = sysWorkplacePutRel.getWorkPlaceCode();
List<IoCollectOrderBiz> collectOrderBizs = collectOrderBizService.listByBillNo(collectOrder.getBillNo()); List<IoCollectOrderBiz> collectOrderBizs = collectOrderBizService.listByBillNo(collectOrder.getBillNo());
for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) { for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) {
List<IoSplitFifoCodeEntity> splitFifoCodeEntities = List<IoSplitFifoCodeEntity> splitFifoCodeEntities = splitFifoCodeService.findByRelId(putWorkPlaceCode, collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), queueCode);
splitFifoCodeService.findByRelId(putWorkPlaceCode, int total = splitFifoCodeEntities.stream().mapToInt(IoSplitFifoCodeEntity::getTotalCount).sum();
collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), queueCode);
int total = splitFifoCodeEntities.stream()
.mapToInt(IoSplitFifoCodeEntity::getTotalCount)
.sum();
collectOrderBiz.setTempWorkPlaceCount(total); collectOrderBiz.setTempWorkPlaceCount(total);
List<IoSplitCodeEntity> splitCodeEntities = splitCodeService.findSplitCodes(collectOrderBiz.getRelId() List<IoSplitCodeEntity> splitCodeEntities = splitCodeService.findSplitCodes(collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), putWorkPlaceCode);
, collectOrderBiz.getBatchNo(), putWorkPlaceCode); int splitTotal = splitCodeEntities.stream().mapToInt(IoSplitCodeEntity::getRemainCount).sum();
int splitTotal = splitCodeEntities.stream()
.mapToInt(IoSplitCodeEntity::getRemainCount)
.sum();
collectOrderBiz.setTempSplitCount(splitTotal); collectOrderBiz.setTempSplitCount(splitTotal);
total = total + splitTotal; total = total + splitTotal;
if (total >= IntUtil.value(collectOrderBiz.getCount())) { if (total >= IntUtil.value(collectOrderBiz.getCount())) {
collectOrderBiz.setAutoTagStatus(2); collectOrderBiz.setAutoTagStatus(2);
} else if (total > 0) { } else if (total > 0) {
collectOrderBiz.setAutoTagStatus(3); collectOrderBiz.setAutoTagStatus(3);
} else } else collectOrderBiz.setAutoTagStatus(1);
collectOrderBiz.setAutoTagStatus(1);
} }
ThreadUtil.execAsync(() -> { ThreadUtil.execAsync(() -> {
ioCollectLedGroupService.openLed(collectOrderBizs); ioCollectLedGroupService.openLed(collectOrderBizs);
} });
);
collectOrderBizService.updateBatchById(collectOrderBizs); collectOrderBizService.updateBatchById(collectOrderBizs);
} }
@ -675,31 +611,22 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
Long putWorkPlaceCode = null; Long putWorkPlaceCode = null;
//获取上货工位 //获取上货工位
SysWorkplacePutRel sysWorkplacePutRel = workplacePutRelService.findPutWorkPlace(collectOrder.getWorkPlaceCode(), collectOrder.getBusType()); SysWorkplacePutRel sysWorkplacePutRel = workplacePutRelService.findPutWorkPlace(collectOrder.getWorkPlaceCode(), collectOrder.getBusType());
if (sysWorkplacePutRel != null) if (sysWorkplacePutRel != null) putWorkPlaceCode = sysWorkplacePutRel.getWorkPlaceCode();
putWorkPlaceCode = sysWorkplacePutRel.getWorkPlaceCode();
List<IoCollectOrderBiz> collectOrderBizs = collectOrderBizService.listByBillNo(collectOrder.getBillNo()); List<IoCollectOrderBiz> collectOrderBizs = collectOrderBizService.listByBillNo(collectOrder.getBillNo());
for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) { for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) {
List<IoSplitFifoCodeEntity> splitFifoCodeEntities = List<IoSplitFifoCodeEntity> splitFifoCodeEntities = splitFifoCodeService.findByCheckCode(putWorkPlaceCode, collectOrderBiz.getYbbm(), collectOrderBiz.getBatchNo(), queueCode);
splitFifoCodeService.findByCheckCode(putWorkPlaceCode, int total = splitFifoCodeEntities.stream().mapToInt(IoSplitFifoCodeEntity::getTotalCount).sum();
collectOrderBiz.getYbbm(), collectOrderBiz.getBatchNo(), queueCode);
int total = splitFifoCodeEntities.stream()
.mapToInt(IoSplitFifoCodeEntity::getTotalCount)
.sum();
collectOrderBiz.setTempWorkPlaceCount(total); collectOrderBiz.setTempWorkPlaceCount(total);
List<IoSplitCodeEntity> splitCodeEntities = splitCodeService.findSplitCodes(collectOrderBiz.getRelId() List<IoSplitCodeEntity> splitCodeEntities = splitCodeService.findSplitCodes(collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), putWorkPlaceCode);
, collectOrderBiz.getBatchNo(), putWorkPlaceCode); int splitTotal = splitCodeEntities.stream().mapToInt(IoSplitCodeEntity::getRemainCount).sum();
int splitTotal = splitCodeEntities.stream()
.mapToInt(IoSplitCodeEntity::getRemainCount)
.sum();
collectOrderBiz.setTempSplitCount(splitTotal); collectOrderBiz.setTempSplitCount(splitTotal);
total = total + splitTotal; total = total + splitTotal;
if (total >= IntUtil.value(collectOrderBiz.getCount())) { if (total >= IntUtil.value(collectOrderBiz.getCount())) {
collectOrderBiz.setAutoTagStatus(2); collectOrderBiz.setAutoTagStatus(2);
} else if (total > 0) { } else if (total > 0) {
collectOrderBiz.setAutoTagStatus(3); collectOrderBiz.setAutoTagStatus(3);
} else } else collectOrderBiz.setAutoTagStatus(1);
collectOrderBiz.setAutoTagStatus(1);
} }
collectOrderBizService.updateBatchById(collectOrderBizs); collectOrderBizService.updateBatchById(collectOrderBizs);
} }
@ -731,20 +658,9 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
List<IoSplitFifoCodeEntity> splitFifoCodeEntities; List<IoSplitFifoCodeEntity> splitFifoCodeEntities;
if (StrUtil.isNotEmpty(confirmSplitCode)) { if (StrUtil.isNotEmpty(confirmSplitCode)) {
splitFifoCodeEntities = splitFifoCodeService splitFifoCodeEntities = splitFifoCodeService.list(new LambdaQueryWrapper<IoSplitFifoCodeEntity>().eq(IoSplitFifoCodeEntity::getCode, confirmSplitCode).eq(putWorkPlaceCode != null, IoSplitFifoCodeEntity::getWorkPlaceCode, putWorkPlaceCode).orderByAsc(IoSplitFifoCodeEntity::getInBactchNo));
.list(new LambdaQueryWrapper<IoSplitFifoCodeEntity>()
.eq(IoSplitFifoCodeEntity::getCode, confirmSplitCode)
.eq(putWorkPlaceCode != null, IoSplitFifoCodeEntity::getWorkPlaceCode, putWorkPlaceCode)
.orderByAsc(IoSplitFifoCodeEntity::getInBactchNo)
);
} else { } else {
splitFifoCodeEntities = splitFifoCodeService 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));
.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; Integer count = 0;
@ -852,37 +768,12 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
IoSplitDesOrder collectOrder; IoSplitDesOrder collectOrder;
List<IoSplitDesOrderDetail> splitDesOrderDetails = new ArrayList<>(); List<IoSplitDesOrderDetail> splitDesOrderDetails = new ArrayList<>();
List<Long> removeByIds = new ArrayList<>(); List<Long> removeByIds = new ArrayList<>();
collectOrder = IoSplitDesOrder.builder() 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();
.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); splitDesOrderService.save(collectOrder);
ioSplitCodeEntities.forEach(splitCodeEntity -> { ioSplitCodeEntities.forEach(splitCodeEntity -> {
//损耗详细表 //损耗详细表
IoSplitDesOrderDetail splitDesOrderDetail = IoSplitDesOrderDetail.builder() 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();
.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); splitDesOrderDetails.add(splitDesOrderDetail);
removeByIds.add(splitCodeEntity.getId()); removeByIds.add(splitCodeEntity.getId());
}); });

Loading…
Cancel
Save