|
|
|
|
@ -196,10 +196,17 @@ public class WmsAllocateTaskServiceImpl implements IWmsAllocateTaskService {
|
|
|
|
|
materialInfoVo = baseMaterialInfoService.queryById(detailVo.getMaterialId());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 检查是否已经打印过
|
|
|
|
|
// Web端覆盖模式:如果已有打印记录,先删除再新增
|
|
|
|
|
List<WmsAllocateTaskVo> existingTasks = queryTasksByDetailId(aoDId);
|
|
|
|
|
if (!existingTasks.isEmpty()) {
|
|
|
|
|
throw new ServiceException("该调拨明细已经打印过,不允许重复打印");
|
|
|
|
|
// 检查是否有已开始执行的任务
|
|
|
|
|
for (WmsAllocateTaskVo task : existingTasks) {
|
|
|
|
|
if ("1".equals(task.getInboundStatus()) || "2".equals(task.getInboundStatus())) {
|
|
|
|
|
throw new ServiceException("存在已开始执行的任务,不允许覆盖");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// 删除现有任务
|
|
|
|
|
deleteTasksByDetailId(aoDId);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int splitInt = splitPackageCount != null ? splitPackageCount : 1;
|
|
|
|
|
@ -233,7 +240,7 @@ public class WmsAllocateTaskServiceImpl implements IWmsAllocateTaskService {
|
|
|
|
|
|
|
|
|
|
BigDecimal currentPackageQty = BigDecimal.valueOf(packageQtyList.get(i - 1)); // 当前包的物料数量
|
|
|
|
|
|
|
|
|
|
WmsAllocateTask task = createAllocateTask(detailVo, materialInfoVo, allocateCode, batchCode, currentPackageQty.longValue(), 1L, aoDId);
|
|
|
|
|
WmsAllocateTask task = createAllocateTask(detailVo, materialInfoVo, allocateCode, batchCode, currentPackageQty, 1L, aoDId);
|
|
|
|
|
baseMapper.insert(task);
|
|
|
|
|
totalPackaged = totalPackaged.add(currentPackageQty);
|
|
|
|
|
}
|
|
|
|
|
@ -246,7 +253,7 @@ public class WmsAllocateTaskServiceImpl implements IWmsAllocateTaskService {
|
|
|
|
|
String batchCode = generateBatchCode(allocateCode, materialInfoVo != null ? materialInfoVo.getMaterialCode() : "", baseOrder);
|
|
|
|
|
|
|
|
|
|
WmsAllocateTask task = createAllocateTask(detailVo, materialInfoVo, allocateCode, batchCode,
|
|
|
|
|
detailVo.getAllocateOrderQty().longValue(), (long) copiesInt, aoDId);
|
|
|
|
|
detailVo.getAllocateOrderQty(), (long) copiesInt, aoDId);
|
|
|
|
|
baseMapper.insert(task);
|
|
|
|
|
totalPackaged = detailVo.getAllocateOrderQty(); // 全部调拨数量都被打印
|
|
|
|
|
}
|
|
|
|
|
@ -265,7 +272,7 @@ public class WmsAllocateTaskServiceImpl implements IWmsAllocateTaskService {
|
|
|
|
|
*/
|
|
|
|
|
private WmsAllocateTask createAllocateTask(org.dromara.wms.domain.vo.WmsAllocateOrderDetailVo detailVo,
|
|
|
|
|
org.dromara.wms.domain.vo.BaseMaterialInfoVo materialInfoVo,
|
|
|
|
|
String allocateCode, String batchCode, Long materialQty,
|
|
|
|
|
String allocateCode, String batchCode, BigDecimal materialQty,
|
|
|
|
|
Long apportionQty, Long aoDId) {
|
|
|
|
|
WmsAllocateTask task = new WmsAllocateTask();
|
|
|
|
|
task.setAllocateCode(allocateCode);
|
|
|
|
|
@ -374,7 +381,7 @@ public class WmsAllocateTaskServiceImpl implements IWmsAllocateTaskService {
|
|
|
|
|
* @return 是否修改成功
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public Boolean updateTaskBarcode(Long allocateTaskId, String batchCode, Long materialQty) {
|
|
|
|
|
public Boolean updateTaskBarcode(Long allocateTaskId, String batchCode, BigDecimal materialQty) {
|
|
|
|
|
WmsAllocateTask task = baseMapper.selectById(allocateTaskId);
|
|
|
|
|
if (task == null) {
|
|
|
|
|
throw new ServiceException("调拨任务不存在");
|
|
|
|
|
|