This commit is contained in:
15066119699 2025-03-13 09:47:00 +08:00
parent c0d1e380e5
commit 7952af7b81
2 changed files with 87 additions and 125 deletions

View File

@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSON;
import com.ruoyi.app.domain.*; import com.ruoyi.app.domain.*;
import com.ruoyi.app.mapper.AppLocationMapper; import com.ruoyi.app.mapper.AppLocationMapper;
import com.ruoyi.app.mapper.AppPmsOrderOutMapper; import com.ruoyi.app.mapper.AppPmsOrderOutMapper;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.quartz.domain.app.*; import com.ruoyi.quartz.domain.app.*;
import com.ruoyi.app.service.*; import com.ruoyi.app.service.*;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
@ -204,138 +205,99 @@ public class TaskExecutor {
// 检查是否存在库存 // 检查是否存在库存
AppStock appStockCheck = new AppStock(); AppStock appStockCheck = new AppStock();
appStockCheck.setVehicleId(task.getVehicleId()); appStockCheck.setVehicleId(task.getVehicleId());
appStockCheck.setStockStatus(1);
List<AppStock> appStocks = appStockService.selectAppStockList(appStockCheck); List<AppStock> appStocks = appStockService.selectAppStockList(appStockCheck);
if (appStocks == null) { if (!CollectionUtils.isEmpty(appStocks)) { // 存在库存可能是回库任务
continue;
}
if (!appStocks.isEmpty()) { // 存在库存可能是回库任务
int updateLocationWithVehicleId = appStockService.updateLocationWithVehicleId(task.getVehicleId(), task.getDestination()); int updateLocationWithVehicleId = appStockService.updateLocationWithVehicleId(task.getVehicleId(), task.getDestination());
logger.info("重新回库更新库存成功,更新条数:{}", updateLocationWithVehicleId); logger.info("重新回库更新库存成功,更新条数:{}", updateLocationWithVehicleId);
AppTask updateRemark = new AppTask(); } else {
updateRemark.setTaskId(task.getTaskId()); // 从码盘表内拉出数据
updateRemark.setRemark("已更新库存库位"); AppPendingStorage appPendingStorage = new AppPendingStorage();
appTaskService.updateAppTask(updateRemark); // 更新备注信息 appPendingStorage.setVehicleNo(task.getVehicleId());
List<AppPendingStorage> appPendingStorages = appPendingStorageService.selectAppPendingStorageList(appPendingStorage);
if (!CollectionUtils.isEmpty(appPendingStorages)) {
for (AppPendingStorage pendingStorage : appPendingStorages) {
// 插入库存
String stockId = IdUtils.fastSimpleUUID();
AppStock appStock = new AppStock();
appStock.setStockId(stockId);
appStock.setListId(pendingStorage.getListId());
appStock.setVehicleId(pendingStorage.getVehicleNo());
appStock.setLocationId(task.getDestination());
appStock.setGoodsId(pendingStorage.getGoodsId());
appStock.setGoodsName(pendingStorage.getGoodsDesc());
appStock.setGoodsUnit(pendingStorage.getUnit());
appStock.setProviderId("-");
appStock.setProviderName("-");
appStock.setRemainNum(pendingStorage.getGoodsNum());
appStock.setOriginNum(pendingStorage.getGoodsNum());
appStock.setBatchNo("-");
appStock.setInvAge(0L);
appStock.setGoodsStatus(0);
appStock.setStockStatus(0);
appStock.setCreateTime(new Date());
appStock.setUpdateTime(new Date());
appStock.setCreateUser(pendingStorage.getCreatePerson());
appStock.setUpdateBy(pendingStorage.getCreatePerson());
appStock.setRemark("");
int insertStockResult = appStockService.insertAppStock(appStock);
logger.info("插入库存:{},结果:{}", JSON.toJSONString(appStock), insertStockResult);
if (insertStockResult > 0) {
appPendingStorageService.deleteAppPendingStorageByRecordId(pendingStorage.getRecordId()); // 删除码盘数据
// 如果是PMS入库则发送PMS入库完成
if (pendingStorage.getStorageType().compareTo(2) == 0) {
PmsInFeedBack pmsInFeedBack = new PmsInFeedBack();
PmsInComplete pmsInComplete = new PmsInComplete();
pmsInComplete.setCrmOrder(stockId);
pmsInComplete.setSapCode("2290");
pmsInComplete.setInArea("TPLK");
pmsInComplete.setInLocation("6001");
pmsInComplete.setOutArea("TPHC");
pmsInComplete.setOutLocation("6001");
pmsInFeedBack.setHeaderInfo(pmsInComplete);
List<PmsInCompleteDetail> pmsInCompleteDetails = new ArrayList<>();
PmsInCompleteDetail pmsInCompleteDetail = new PmsInCompleteDetail();
pmsInCompleteDetail.setMaterialNo(pendingStorage.getGoodsId());
pmsInCompleteDetail.setMaterialName(pendingStorage.getGoodsDesc());
pmsInCompleteDetail.setAmount(pendingStorage.getGoodsNum().intValue());
pmsInCompleteDetail.setUnit(pendingStorage.getUnit());
pmsInCompleteDetail.setBarcode(pendingStorage.getGoodsCode());
pmsInCompleteDetails.add(pmsInCompleteDetail);
pmsInFeedBack.setDetailList(pmsInCompleteDetails);
String url = sysConfigService.selectConfigByKey("pms.intComplete");
if (StringUtils.isEmpty(url)) {
return;
}
PmsCommonRes pmsCommonRes = JSON.parseObject(HttpUtils.sendHttpPostWithoutToken(url, JSON.toJSONString(pmsInFeedBack)), PmsCommonRes.class);
logger.info("pms入库反馈请求信息{},结果:{}", JSON.toJSONString(pmsInFeedBack), JSON.toJSONString(pmsCommonRes));
}
}
}
}else{
//空托入库
String stockId = IdUtils.fastSimpleUUID();
AppStock appStock = new AppStock();
appStock.setStockId(stockId);
appStock.setVehicleId(task.getVehicleId());
appStock.setLocationId(task.getDestination());
appStock.setGoodsId("0");
appStock.setGoodsStatus(0);
appStock.setStockStatus(0);
appStock.setCreateTime(new Date());
appStock.setUpdateTime(new Date());
appStock.setCreateUser(SecurityUtils.getUsername());
appStock.setUpdateBy(SecurityUtils.getUsername());
appStock.setRemark("空托入库");
appStockService.insertAppStock(appStock);
}
AppTaskBak appTaskBak = new AppTaskBak(); AppTaskBak appTaskBak = new AppTaskBak();
appTaskBak.setTaskId(task.getTaskId()); BeanUtils.copyProperties(task, appTaskBak);
appTaskBak.setTaskStatus(task.getTaskStatus());
appTaskBak.setRemark(updateRemark.getRemark());
appTaskBak.setTaskType(task.getTaskType());
appTaskBak.setTaskPriority(task.getTaskPriority());
appTaskBak.setVehicleId(task.getVehicleId());
appTaskBak.setOrigin(task.getOrigin());
appTaskBak.setDestination(task.getDestination());
appTaskBak.setWcsTaskId(task.getWcsTaskId());
appTaskBak.setFinishTime(task.getFinishTime());
appTaskBak.setGoodsId(task.getGoodsId());
appTaskBak.setOpNum(task.getOpNum());
appTaskBak.setStockNum(task.getStockNum());
appTaskBak.setOpUser(task.getOpUser());
appTaskBak.setPreTask(task.getPreTask());
logger.info("入库任务数据归档成功(回库)。{}", JSON.toJSONString(appTaskBak)); logger.info("入库任务数据归档成功(回库)。{}", JSON.toJSONString(appTaskBak));
appTaskBakService.insertAppTaskBak(appTaskBak);// 数据归档 appTaskBakService.insertAppTaskBak(appTaskBak);// 数据归档
appTaskService.deleteAppTaskByTaskId(task.getTaskId()); // 删除旧数据 appTaskService.deleteAppTaskByTaskId(task.getTaskId()); // 删除旧数据
return;
} }
// 从码盘表内拉出数据
AppPendingStorage appPendingStorage = new AppPendingStorage();
appPendingStorage.setVehicleNo(task.getVehicleId());
List<AppPendingStorage> appPendingStorages = appPendingStorageService.selectAppPendingStorageList(appPendingStorage);
if (appPendingStorages == null) {
return;
}
if (appPendingStorages.isEmpty()) {
AppTask updateRemark = new AppTask();
updateRemark.setTaskId(task.getTaskId());
updateRemark.setRemark("该载具似乎未进行过码盘");
appTaskService.updateAppTask(updateRemark); // 更新备注信息
AppTaskBak appTaskBak = new AppTaskBak();
BeanUtils.copyProperties(task, appTaskBak);
appTaskBakService.insertAppTaskBak(appTaskBak); // 将任务数据归档
appTaskService.deleteAppTaskByTaskId(task.getTaskId()); // 删除旧数据
return;
}
for (AppPendingStorage pendingStorage : appPendingStorages) {
// 插入库存
String stockId = IdUtils.fastSimpleUUID();
AppStock appStock = new AppStock();
appStock.setStockId(stockId);
appStock.setListId(pendingStorage.getListId());
appStock.setVehicleId(pendingStorage.getVehicleNo());
appStock.setLocationId(task.getDestination());
appStock.setGoodsId(pendingStorage.getGoodsId());
appStock.setGoodsName(pendingStorage.getGoodsDesc());
appStock.setGoodsUnit(pendingStorage.getUnit());
appStock.setProviderId("-");
appStock.setProviderName("-");
appStock.setRemainNum(pendingStorage.getGoodsNum());
appStock.setOriginNum(pendingStorage.getGoodsNum());
appStock.setBatchNo("-");
appStock.setInvAge(0L);
appStock.setGoodsStatus(0);
appStock.setStockStatus(0);
appStock.setCreateTime(new Date());
appStock.setUpdateTime(new Date());
appStock.setCreateUser(pendingStorage.getCreatePerson());
appStock.setUpdateBy(pendingStorage.getCreatePerson());
appStock.setRemark("");
int insertStockResult = appStockService.insertAppStock(appStock);
logger.info("插入库存:{},结果:{}", JSON.toJSONString(appStock), insertStockResult);
if(insertStockResult > 0) {
appPendingStorageService.deleteAppPendingStorageByRecordId(pendingStorage.getRecordId()); // 删除码盘数据
// 如果是PMS入库则发送PMS入库完成
if(pendingStorage.getStorageType().compareTo(2) == 0) {
PmsInFeedBack pmsInFeedBack = new PmsInFeedBack();
PmsInComplete pmsInComplete = new PmsInComplete();
pmsInComplete.setCrmOrder(stockId);
pmsInComplete.setSapCode("2290");
pmsInComplete.setInArea("TPLK");
pmsInComplete.setInLocation("6001");
pmsInComplete.setOutArea("TPHC");
pmsInComplete.setOutLocation("6001");
pmsInFeedBack.setHeaderInfo(pmsInComplete);
List<PmsInCompleteDetail> pmsInCompleteDetails = new ArrayList<>();
PmsInCompleteDetail pmsInCompleteDetail = new PmsInCompleteDetail();
pmsInCompleteDetail.setMaterialNo(pendingStorage.getGoodsId());
pmsInCompleteDetail.setMaterialName(pendingStorage.getGoodsDesc());
pmsInCompleteDetail.setAmount(pendingStorage.getGoodsNum().intValue());
pmsInCompleteDetail.setUnit(pendingStorage.getUnit());
pmsInCompleteDetail.setBarcode(pendingStorage.getGoodsCode());
pmsInCompleteDetails.add(pmsInCompleteDetail);
pmsInFeedBack.setDetailList(pmsInCompleteDetails);
String url = sysConfigService.selectConfigByKey("pms.intComplete");
if (StringUtils.isEmpty(url)) {
return;
}
PmsCommonRes pmsCommonRes = JSON.parseObject(HttpUtils.sendHttpPostWithoutToken(url, JSON.toJSONString(pmsInFeedBack)), PmsCommonRes.class);
logger.info("pms入库反馈请求信息{},结果:{}", JSON.toJSONString(pmsInFeedBack), JSON.toJSONString(pmsCommonRes));
}
}
}
AppTask updateRemark = new AppTask();
updateRemark.setTaskId(task.getTaskId());
updateRemark.setRemark("已插入库存");
appTaskService.updateAppTask(updateRemark); // 更新备注信息
AppTaskBak appTaskBak = new AppTaskBak();
appTaskBak.setTaskId(task.getTaskId());
appTaskBak.setTaskStatus(task.getTaskStatus());
appTaskBak.setRemark(updateRemark.getRemark());
appTaskBak.setTaskType(task.getTaskType());
appTaskBak.setTaskPriority(task.getTaskPriority());
appTaskBak.setVehicleId(task.getVehicleId());
appTaskBak.setOrigin(task.getOrigin());
appTaskBak.setDestination(task.getDestination());
appTaskBak.setWcsTaskId(task.getWcsTaskId());
appTaskBak.setFinishTime(task.getFinishTime());
appTaskBak.setGoodsId(task.getGoodsId());
appTaskBak.setOpNum(task.getOpNum());
appTaskBak.setStockNum(task.getStockNum());
appTaskBak.setOpUser(task.getOpUser());
appTaskBak.setPreTask(task.getPreTask());
logger.info("入库任务数据归档成功。{}", JSON.toJSONString(appTaskBak));
appTaskBakService.insertAppTaskBak(appTaskBak);// 数据归档
appTaskService.deleteAppTaskByTaskId(task.getTaskId()); // 删除旧数据
return;
} }
} }

View File

@ -175,7 +175,7 @@
update app_stock set location_id = #{newLocation} where location_id = #{oldLocation} update app_stock set location_id = #{newLocation} where location_id = #{oldLocation}
</update> </update>
<update id="updateLocationWithVehicleId"> <update id="updateLocationWithVehicleId">
update app_stock set location_id = #{location} where vehicle_id = #{vehicleId} update app_stock set location_id = #{location} and stock_status = 0 where vehicle_id = #{vehicleId}
</update> </update>
<delete id="deleteAppStockByStockId" parameterType="String"> <delete id="deleteAppStockByStockId" parameterType="String">