From d21beda7b1897612a4013406121ccb93fc784b1f Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期六, 07 六月 2025 17:02:37 +0800
Subject: [PATCH] 出库单下发执行功能完善
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java | 92 +++++++++++++++++++++++++++++-----------------
1 files changed, 58 insertions(+), 34 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java
index 98df1ce..08c9f56 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java
@@ -11,6 +11,7 @@
import com.vincent.rsf.server.manager.controller.params.WarehouseAreaParam;
import com.vincent.rsf.server.manager.entity.*;
import com.vincent.rsf.server.manager.enums.AsnExceStatus;
+import com.vincent.rsf.server.manager.enums.POExceStatus;
import com.vincent.rsf.server.manager.enums.PakinIOStatus;
import com.vincent.rsf.server.manager.enums.WarehouseAreasType;
import com.vincent.rsf.server.manager.service.*;
@@ -70,7 +71,8 @@
private WarehouseAreasService warehouseAreasService;
@Autowired
private WarehouseAreasItemServiceImpl warehouseAreasItemService;
-
+ @Autowired
+ private CompanysService companysService;
/**
* @author Ryan
@@ -86,7 +88,6 @@
if (Objects.isNull(config)) {
return;
}
-
if (!Boolean.parseBoolean(config.getVal())) {
return;
}
@@ -128,7 +129,7 @@
// }
if (!asnOrderService.update(new LambdaUpdateWrapper<AsnOrder>()
- .set(AsnOrder::getQty, order.getQty())
+ .set(AsnOrder::getQty, order.getAnfme())
.set(AsnOrder::getExceStatus, AsnExceStatus.ASN_EXCE_STATUS_RECEIPT_DONE.val)
.eq(AsnOrder::getId, order.getId()))) {
throw new CoolException("鏀惰揣鍗曠姸鎬佷慨鏀瑰け璐ワ紒锛�");
@@ -145,6 +146,11 @@
* @version 1.0
*/
private void extracted(WarehouseAreas areasItem, AsnOrderItem orderItem, AsnOrder asnOrder, Matnr matnr) {
+ Companys companys = new Companys();
+ if (StringUtils.isNoneBlank(orderItem.getSplrCode())) {
+ companys = companysService.getOne(new LambdaQueryWrapper<Companys>().eq(Companys::getCode, orderItem.getSplrCode()));
+ }
+
WarehouseAreasItem item = new WarehouseAreasItem();
item.setTrackCode(orderItem.getBarcode())
.setAreaName(areasItem.getName())
@@ -153,6 +159,11 @@
.setAsnCode(asnOrder.getCode())
.setAsnId(asnOrder.getId())
.setProdTime(orderItem.getProdTime())
+ .setPlatItemId(orderItem.getPlatItemId())
+ .setPlatOrderCode(orderItem.getPlatOrderCode())
+ .setPlatWorkCode(orderItem.getPlatWorkCode())
+ .setProjectCode(orderItem.getProjectCode())
+ .setSplrId(companys.getId())
//搴撳瓨鍗曚綅涓烘渶灏忓崟浣�
.setUnit(orderItem.getStockUnit())
.setStockUnit(orderItem.getStockUnit())
@@ -161,18 +172,26 @@
.setMatnrId(matnr.getId())
.setIsptResult(orderItem.getIsptResult())
.setMaktx(matnr.getName())
+ .setSplrBatch(orderItem.getSplrBatch())
.setWeight(matnr.getWeight())
.setFieldsIndex(orderItem.getFieldsIndex())
.setShipperId(matnr.getShipperId());
- WarehouseAreasItem serviceOne = warehouseAreasItemService.getOne(new LambdaQueryWrapper<WarehouseAreasItem>()
- .eq(WarehouseAreasItem::getMatnrCode, item.getMatnrCode())
- .eq(!Cools.isEmpty(item.getFieldsIndex()), WarehouseAreasItem::getFieldsIndex, item.getFieldsIndex())
- .eq(WarehouseAreasItem::getAsnCode, item.getAsnCode())
- .eq(!Cools.isEmpty(item.getIsptResult()), WarehouseAreasItem::getIsptResult, item.getIsptResult())
- .eq(StringUtils.isNotBlank(item.getSplrBatch()), WarehouseAreasItem::getSplrBatch, item.getSplrBatch()));
+
+ LambdaQueryWrapper<WarehouseAreasItem> queryWrapper = new LambdaQueryWrapper<WarehouseAreasItem>()
+ .eq(WarehouseAreasItem::getMatnrCode, orderItem.getMatnrCode())
+ .eq(!Cools.isEmpty(orderItem.getFieldsIndex()), WarehouseAreasItem::getFieldsIndex, orderItem.getFieldsIndex())
+ .eq(WarehouseAreasItem::getAsnCode, orderItem.getAsnCode())
+ .eq(StringUtils.isNotBlank(orderItem.getSplrBatch()), WarehouseAreasItem::getSplrBatch, orderItem.getSplrBatch());
+ if (Objects.isNull(orderItem.getIsptResult())) {
+ queryWrapper.isNull(WarehouseAreasItem::getIsptResult);
+ } else {
+ queryWrapper.eq(WarehouseAreasItem::getIsptResult, orderItem.getIsptResult());
+ }
+ WarehouseAreasItem serviceOne = warehouseAreasItemService.getOne(queryWrapper);
if (!Objects.isNull(serviceOne)) {
item.setId(serviceOne.getId());
- item.setAnfme(item.getAnfme() + serviceOne.getAnfme());
+ Double anfme = Math.round((item.getAnfme() + serviceOne.getAnfme()) * 10000) / 10000.0;
+ item.setAnfme(anfme);
}
//鏈川妫�
if (!warehouseAreasItemService.saveOrUpdate(item)) {
@@ -196,7 +215,7 @@
return;
}
//鑾峰彇鏈敓鎴怉SN鍗曟嵁
- List<Purchase> purchases = purchaseService.list(new LambdaQueryWrapper<Purchase>().eq(Purchase::getStatus, 0));
+ List<Purchase> purchases = purchaseService.list(new LambdaQueryWrapper<Purchase>().eq(Purchase::getExceStatus, 0));
//PO鍗曚负绌猴紝鐩存帴璺冲嚭褰撳墠浠诲姟
if (purchases.isEmpty()) {
return;
@@ -259,7 +278,8 @@
}
//浠诲姟鎵ц瀹屾垚锛屼慨鏀瑰凡瀹屾垚鏁伴噺鍜孭O鍗曟墽琛岀姸鎬�
- purchase.setQty(purchase.getAnfme()).setStatus(1);
+ purchase.setQty(purchase.getAnfme())
+ .setExceStatus(POExceStatus.PO_EXCE_STATUS_EXCE_ING.val);
if (!purchaseService.saveOrUpdate(purchase)) {
throw new CoolException("PO鍗曟墽琛屽畬鎴愬悗锛屼繚瀛樺け璐ワ紒锛�");
@@ -310,7 +330,7 @@
@Transactional(rollbackFor = Exception.class)
public void pakinLog() {
List<WaitPakin> pakinIds = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>()
- .eq(WaitPakin::getIoStatus, Short.valueOf(PakinIOStatus.PAKIN_IO_STATUS_TASK_DONE.val))
+ .eq(WaitPakin::getIoStatus, PakinIOStatus.PAKIN_IO_STATUS_TASK_DONE.val)
.select(WaitPakin::getId));
if (pakinIds.isEmpty()) {
return;
@@ -320,32 +340,36 @@
if (pakins.isEmpty()) {
throw new CoolException("缁勬嫋鍗曚负绌猴紒锛�");
}
- List<WaitPakinLog> pakinLogs = new ArrayList<>();
pakins.forEach(pakin -> {
WaitPakinLog log = new WaitPakinLog();
BeanUtils.copyProperties(pakin, log);
- log.setPakinId(pakin.getId()).setIoStatus(Short.parseShort("2"));
- pakinLogs.add(log);
- });
- if (!waitPakinLogService.saveBatch(pakinLogs)) {
- throw new CoolException("鍘嗗彶妗d繚瀛樺け璐ワ紒锛�");
- }
- List<WaitPakinItemLog> itemLogs = new ArrayList<>();
- List<WaitPakinItem> pakinItems = waitPakinItemService.list(new LambdaQueryWrapper<WaitPakinItem>().in(WaitPakinItem::getPakinId, list));
- if (pakinItems.isEmpty()) {
- throw new CoolException("缁勬嫋鏄庣粏涓虹┖锛侊紒");
- }
- pakinItems.forEach(item -> {
- WaitPakinItemLog itemLog = new WaitPakinItemLog();
- BeanUtils.copyProperties(item, itemLog);
- itemLog.setPakinItemId(item.getId())
- .setPakinId(item.getPakinId());
- itemLogs.add(itemLog);
+ log.setPakinId(pakin.getId()).setIoStatus(PakinIOStatus.PAKIN_IO_STATUS_TASK_DONE.val);
+
+ if (!waitPakinLogService.save(log)) {
+ throw new CoolException("缁勬墭鏃ュ織淇濆瓨澶辫触锛侊紒");
+ }
+ List<WaitPakinItem> pakinItems = waitPakinItemService.list(new LambdaQueryWrapper<WaitPakinItem>().in(WaitPakinItem::getPakinId, pakin.getId()));
+ if (pakinItems.isEmpty()) {
+ throw new CoolException("缁勬嫋鏄庣粏涓虹┖锛侊紒");
+ }
+ List<WaitPakinItemLog> itemLogs = new ArrayList<>();
+
+ pakinItems.forEach(item -> {
+ WaitPakinItemLog itemLog = new WaitPakinItemLog();
+ BeanUtils.copyProperties(item, itemLog);
+ itemLog.setPakinItemId(item.getId())
+ .setLogId(log.getId())
+ .setQty(item.getWorkQty())
+ .setWorkQty(0.0)
+ .setPakinId(item.getPakinId());
+ itemLogs.add(itemLog);
+ });
+
+ if (!waitPakinItemLogService.saveBatch(itemLogs)) {
+ throw new CoolException("鍘嗗彶鏄庣粏妗d繚瀛樺け璐ワ紒锛�");
+ }
});
- if (!waitPakinItemLogService.saveBatch(itemLogs)) {
- throw new CoolException("鍘嗗彶鏄庣粏妗d繚瀛樺け璐ワ紒锛�");
- }
if (!waitPakinService.removeByIds(list)) {
throw new CoolException("鍘熷崟鎹垹闄ゅけ璐ワ紒锛�");
}
--
Gitblit v1.9.1