Merge remote-tracking branch 'origin/dev_fifo_z' into dev_fifo_z

# Conflicts:
#	src/main/resources/schemas/schema_v2.4.sql
dev_unify
wangwei 8 months ago
commit 0940619d9c

@ -34,6 +34,7 @@ import com.glxp.api.res.collect.IoCollectOrderResponse;
import com.glxp.api.service.basic.BasicCollectUserService;
import com.glxp.api.service.basic.SysWorkplaceDocumentService;
import com.glxp.api.service.collect.*;
import com.glxp.api.service.inout.IoSplitCodeService;
import com.glxp.api.util.IntUtil;
import com.glxp.api.util.MsDateUtil;
import org.springframework.beans.BeanUtils;
@ -399,14 +400,7 @@ public class IoCollectOrderController extends BaseController {
boolean isAllTag = collectOrderBizResponses.stream()
.allMatch(obj -> StrUtil.isNotEmpty(obj.getFinishUdiCode()) || obj.getAutoTagStatus() == 2);
if (!isAllTag) {
// SysWorkplaceDocumentEntity sysWorkplaceDocumentEntity = sysWorkplaceDocumentService.findByBusType(collectOrderRequest.getBusType());
// if (IntUtil.value(sysWorkplaceDocumentEntity.getOrderFinishVerify()) == 1) {
//
// } else {
// return ResultVOUtils.error(503, "该业务单据未全部赋码,无法完成单据?");
// }
return ResultVOUtils.error(502, "该业务单据未全部赋码,是否强制完成单据?");
}
}
collectOrderRequest.setUpdateUser(getUserId());
@ -414,7 +408,31 @@ public class IoCollectOrderController extends BaseController {
return ResultVOUtils.success();
}
@Resource
IoSplitCodeService splitCodeService;
/**
*
*
* @return
*/
@PostMapping("/udiwms/basic/collect/order/bizConfirm")
@Transactional(rollbackFor = Exception.class)
public BaseResponse bizConfirmOrder(@RequestBody CollectOrderRequest collectOrderRequest) {
/**
*
*/
splitCodeService.confirmBizAutiTagCode(collectOrderRequest);
return ResultVOUtils.success("确认成功!");
}
/**
*
*
* @param collectOrderRequest
* @return
*/
@PostMapping("/udiwms/basic/collect/order/vailFinish")
public BaseResponse vailOrderFinish(@RequestBody CollectOrderRequest collectOrderRequest) {
if (StrUtil.isEmpty(collectOrderRequest.getBillNo()))

@ -274,5 +274,12 @@ public class IoCollectOrderBiz implements Serializable {
private String remark10;
/**
*
*/
@TableField(value = "getConfirm")
private Boolean getConfirm;
private static final long serialVersionUID = 1L;
}

@ -149,5 +149,10 @@ public class CollectOrderRequest extends ListPageRequest {
//发货方
private String shipperName;
/**
* ID
*/
private Long bizId;
}

@ -821,6 +821,9 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
});
}
private void removeOrderByBillNo(IoCollectOrder collectOrder) {
String billNo = collectOrder.getBillNo();
this.remove(new LambdaUpdateWrapper<IoCollectOrder>().eq(IoCollectOrder::getBillNo, billNo));

@ -17,6 +17,7 @@ import com.glxp.api.entity.inout.IoSplitFifoInv;
import com.glxp.api.exception.JsonException;
import com.glxp.api.req.basic.FilterUdiRelRequest;
import com.glxp.api.req.collect.AddInvDesDetaiRequest;
import com.glxp.api.req.collect.CollectOrderRequest;
import com.glxp.api.req.inout.IoSplitCodeRequest;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.service.basic.UdiRelevanceService;
@ -147,6 +148,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
//再次执行赋码
ioSplitCodeEntities = findSplitCodes(collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), putWorkPlaceCode);
for (IoSplitCodeEntity ioSplitCodeEntity : ioSplitCodeEntities) {
if (IntUtil.value(ioSplitCodeEntity.getRemainCount()) > 0) {
count = IntUtil.value(ioSplitCodeEntity.getRemainCount()) - unCount;
collectOrderCodeAutoService.save(IoCollectOrderCodeAuto.builder()
.codeIdFk(ioSplitCodeEntity.getId())
@ -164,14 +166,18 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
.build());
if (count > 0) {
ioSplitCodeEntity.setRemainCount(count);
splitCodeMapper.updateById(ioSplitCodeEntity);
break;
} else if (count == 0) {
ioSplitCodeEntity.setRemainCount(0);
splitCodeMapper.updateById(ioSplitCodeEntity);
} else {
ioSplitCodeEntity.setRemainCount(0);
splitCodeMapper.updateById(ioSplitCodeEntity);
unCount = -count;
}
}
}
if (unCount > 0) {
collectOrderBiz.setTagStatus(2);
collectOrderBiz.setTagMsg("预出库队列码数量不足,赋码失败!");
@ -368,7 +374,72 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
ioCollectOrderBizBackups.add(ioCollectOrderBizBackup);
}
ioCollectOrderBizBackupService.saveBatch(ioCollectOrderBizBackups);
}
@Resource
IoCollectOrderService collectOrderService;
@Transactional(rollbackFor = Exception.class)
public void confirmBizAutiTagCode(CollectOrderRequest collectOrderRequest) {
IoCollectOrder collectOrder = collectOrderService.getById(collectOrderRequest.getBillNo());
SysWorkplacePutRel sysWorkplacePutRel = workplacePutRelService.findPutWorkPlace(collectOrder.getWorkPlaceCode(), collectOrder.getBusType());
Long putWorkPlaceCode = null;
if (sysWorkplacePutRel != null)
putWorkPlaceCode = sysWorkplacePutRel.getWorkPlaceCode();
IoCollectOrderBiz collectOrderBiz = collectOrderBizService.getById(collectOrderRequest.getId());
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
filterUdiRelRequest.setId(collectOrderBiz.getRelId());
filterUdiRelRequest.setPackLevel("1");
//todo 后面可以 没有搜索到层级为1的
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectOneUdi(filterUdiRelRequest);
//去除掉已经手动扫码的数据,找出需要自动扫码的明细,执行上述的拆零或整取
int unTagCount = collectOrderBiz.getCount() - IntUtil.value(collectOrderBiz.getScanActCount());
if (unTagCount > 0) {
collectOrderBiz.setUnTagCount(unTagCount);
}
int quotient = collectOrderBiz.getUnTagCount() / IntUtil.value(udiRelevanceResponse.getBhxjsl());
int remainder = collectOrderBiz.getUnTagCount() % IntUtil.value(udiRelevanceResponse.getBhxjsl());
//2.如果整盒,从工位队列扣除 默认最后一个追溯码拆零
if (quotient > 0) {
List<IoSplitFifoCodeEntity> ioSplitFifoCodeEntities = splitFifoCodeService.findByRelId(putWorkPlaceCode, collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo());
if (ioSplitFifoCodeEntities.size() < quotient) {
throw new JsonException(500, "确认失败,工位库存数量不足!");
}
for (int i = 0; i < quotient; 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(splitFifoCodeEntity.getFifoSplit())
.createTime(new Date())
.updateTime(new Date())
.build());
splitFifoCodeService.removeById(splitFifoCodeEntity.getId());
IoSplitFifoInv splitFifoInv = splitFifoInvService.findByFifoCode(splitFifoCodeEntity);
if (splitFifoInv != null) {
splitFifoInv.setOutCount(IntUtil.value(splitFifoInv.getOutCount()) + IntUtil.value(splitFifoCodeEntity.getTotalCount()));
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.setAvailableCount(IntUtil.value(splitFifoInv.getInCount()) - IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoInv.getOutCount()));
splitFifoInvService.updateById(splitFifoInv);
}
}
}
//.如果拆零,拆零表扣除
if (remainder > 0) {
splitRemove(collectOrderBiz, collectOrder, putWorkPlaceCode);
}
}

@ -4665,6 +4665,13 @@ CALL Pro_Temp_ColumnWork('sys_workplace_queue', 'freightCode',
'varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT ''货架code''',
1);
CALL Pro_Temp_ColumnWork('io_collect_order_biz', 'getConfirm',
' tinyint NULL DEFAULT b''1''COMMENT ''取货确认状态''',
1);
1);
CALL Pro_Temp_ColumnWork('io_split_fifo_inv', 'workPlaceQueueCode',
'varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT ''出货槽编码''',
1);

Loading…
Cancel
Save