From 293c2a7cc9d8648a9fbee2332f93b755156fdbf7 Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期一, 22 十二月 2025 15:01:18 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/BasAgvLocDetlService.java | 5 +
src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java | 2
src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java | 20 ++----
src/main/java/com/zy/asrs/mapper/BasAgvLocDetlMapper.java | 16 +++++
src/main/resources/mapper/LocDetlMapper.xml | 2
src/main/java/com/zy/asrs/task/handler/WrkMastAgvHandler.java | 50 ++++------------
src/main/java/com/zy/asrs/service/impl/BasAgvLocDetlServiceImpl.java | 18 ++++++
src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java | 10 ++
8 files changed, 69 insertions(+), 54 deletions(-)
diff --git a/src/main/java/com/zy/asrs/mapper/BasAgvLocDetlMapper.java b/src/main/java/com/zy/asrs/mapper/BasAgvLocDetlMapper.java
index c2eabea..16b9925 100644
--- a/src/main/java/com/zy/asrs/mapper/BasAgvLocDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/BasAgvLocDetlMapper.java
@@ -2,11 +2,27 @@
import com.zy.asrs.entity.BasAgvLocDetl;
import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.zy.asrs.entity.LocDetl;
import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Update;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface BasAgvLocDetlMapper extends BaseMapper<BasAgvLocDetl> {
+ @Update("update asr_bas_agv_loc_detl set loc_no = #{newLocNo}, modi_time=getDate() where loc_no = #{oldLocNo}")
+ int updateLocNo(String newLocNo, String oldLocNo);
+
+ BasAgvLocDetl selectItem(@Param("locNo")String locNo, @Param("matnr")String matnr, @Param("batch")String batch,
+ @Param("brand")String brand, @Param("standby1")String standby1, @Param("standby2")String standby2,
+ @Param("standby3")String standby3, @Param("boxType1")String boxType1, @Param("boxType2")String boxType2, @Param("boxType3")String boxType3 );
+ int updateAnfme(@Param("anfme")Double anfme, @Param("locNo")String locNo, @Param("matnr")String matnr, @Param("batch")String batch,
+ @Param("brand")String brand,@Param("standby1")String standby1,@Param("standby2")String standby2,
+ @Param("standby3")String standby3,@Param("boxType1")String boxType1,@Param("boxType2")String boxType2,@Param("boxType3")String boxType3 );
+ int deleteItem(@Param("locNo")String locNo, @Param("matnr")String matnr, @Param("batch")String batch,
+ @Param("brand")String brand,@Param("standby1")String standby1,@Param("standby2")String standby2,
+ @Param("standby3")String standby3,@Param("boxType1")String boxType1,@Param("boxType2")String boxType2,@Param("boxType3")String boxType3 );
+
}
diff --git a/src/main/java/com/zy/asrs/service/BasAgvLocDetlService.java b/src/main/java/com/zy/asrs/service/BasAgvLocDetlService.java
index 8284022..6820b62 100644
--- a/src/main/java/com/zy/asrs/service/BasAgvLocDetlService.java
+++ b/src/main/java/com/zy/asrs/service/BasAgvLocDetlService.java
@@ -2,7 +2,12 @@
import com.zy.asrs.entity.BasAgvLocDetl;
import com.baomidou.mybatisplus.service.IService;
+import com.zy.asrs.entity.LocDetl;
public interface BasAgvLocDetlService extends IService<BasAgvLocDetl> {
+ boolean updateLocNo(String newLocNo, String oldLocNo);
+ BasAgvLocDetl selectItem(String locNo, String matnr, String batch, String brand, String standby1, String standby2, String standby3, String boxType1, String boxType2, String boxType3);
+ boolean updateAnfme(Double anfme, String locNo, String matnr
+ ,String batch,String brand,String standby1,String standby2,String standby3,String boxType1,String boxType2,String boxType3);
}
diff --git a/src/main/java/com/zy/asrs/service/impl/BasAgvLocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasAgvLocDetlServiceImpl.java
index cdb79ac..a9bc7e6 100644
--- a/src/main/java/com/zy/asrs/service/impl/BasAgvLocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/BasAgvLocDetlServiceImpl.java
@@ -1,5 +1,6 @@
package com.zy.asrs.service.impl;
+import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.mapper.BasAgvLocDetlMapper;
import com.zy.asrs.entity.BasAgvLocDetl;
import com.zy.asrs.service.BasAgvLocDetlService;
@@ -8,5 +9,22 @@
@Service("basAgvLocDetlService")
public class BasAgvLocDetlServiceImpl extends ServiceImpl<BasAgvLocDetlMapper, BasAgvLocDetl> implements BasAgvLocDetlService {
+ @Override
+ public boolean updateLocNo(String newLocNo, String oldLocNo) {
+ return baseMapper.updateLocNo(newLocNo, oldLocNo) > 0;
+ }
+ @Override
+ public BasAgvLocDetl selectItem(String locNo, String matnr, String batch, String brand, String standby1, String standby2, String standby3, String boxType1, String boxType2, String boxType3) {
+ return this.baseMapper.selectItem(locNo, matnr, batch,brand,standby1,standby2,standby3,boxType1,boxType2,boxType3);
+ }
+ @Override
+ public boolean updateAnfme(Double anfme, String locNo, String matnr, String batch,
+ String brand,String standby1,String standby2,String standby3,String boxType1,String boxType2,String boxType3) {
+ if (anfme <= 0) {
+ return this.baseMapper.deleteItem(locNo, matnr, batch, brand, standby1, standby2, standby3, boxType1, boxType2, boxType3) > 0;
+ } else {
+ return baseMapper.updateAnfme(anfme, locNo, matnr, batch, brand, standby1, standby2, standby3, boxType1, boxType2, boxType3) > 0;
+ }
+ }
}
diff --git a/src/main/java/com/zy/asrs/task/handler/WrkMastAgvHandler.java b/src/main/java/com/zy/asrs/task/handler/WrkMastAgvHandler.java
index c2f21f6..79b9d7c 100644
--- a/src/main/java/com/zy/asrs/task/handler/WrkMastAgvHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WrkMastAgvHandler.java
@@ -66,9 +66,9 @@
case 1:
LocMast sourceLoc1 = locMastService.selectById(basAgvMast.getSourceLocNo());
LocMast locMast1 = locMastService.selectById(basAgvMast.getLocNo());
- List<LocDetl> locDetls1 = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", basAgvMast.getLocNo()));
+ List<BasAgvLocDetl> locDetls1 = basAgvLocDetlService.selectList(new EntityWrapper<BasAgvLocDetl>().eq("loc_no", basAgvMast.getLocNo()));
if (!locDetls1.isEmpty()) {
- locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", basAgvMast.getLocNo()));
+ basAgvLocDetlService.delete(new EntityWrapper<BasAgvLocDetl>().eq("loc_no", basAgvMast.getLocNo()));
}
// 淇敼鐩爣搴撲綅鐘舵�� ==> .locSts
locMast1.setLocSts("F");
@@ -82,7 +82,7 @@
}
try{
// 杞Щ搴撳瓨鏄庣粏鏁版嵁: 搴撳瓨鍙� 鐢卞伐浣滄。婧愬簱浣嶅彉涓虹洰鏍囧簱浣�
- locDetlService.updateLocNo(basAgvMast.getLocNo(), basAgvMast.getSourceLocNo());
+ basAgvLocDetlService.updateLocNo(basAgvMast.getLocNo(), basAgvMast.getSourceLocNo());
} catch (Exception e) {
return FAIL.setMsg(e.getMessage());
}
@@ -100,15 +100,15 @@
basAgvLocDetlService.delete(new EntityWrapper<BasAgvLocDetl>().eq("loc_no", basAgvMast.getSourceLocNo()));
basAgvWrkDetlService.delete(new EntityWrapper<BasAgvWrkDetl>().eq("wrk_no", basAgvMast.getTaskNo()));
- basAgvLocDetlService.delete(new EntityWrapper<BasAgvLocDetl>().eq("loc_no", basAgvMast.getLocNo()));
+// basAgvLocDetlService.delete(new EntityWrapper<BasAgvLocDetl>().eq("loc_no", basAgvMast.getLocNo()));
basAgvMast.setStatus(4);
basAgvMastService.updateById(basAgvMast);
// openService.agvBindAndBin(String.valueOf(basAgvMast.getTaskNo()));
break;
case 2:
- List<LocDetl> locDetls2 = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", basAgvMast.getLocNo()));
+ List<BasAgvLocDetl> locDetls2 = basAgvLocDetlService.selectList(new EntityWrapper<BasAgvLocDetl>().eq("loc_no", basAgvMast.getLocNo()));
if (!locDetls2.isEmpty()) {
- locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", basAgvMast.getLocNo()));
+ basAgvLocDetlService.delete(new EntityWrapper<BasAgvLocDetl>().eq("loc_no", basAgvMast.getLocNo()));
}
LocMast locMast2 = locMastService.selectById(basAgvMast.getLocNo());
@@ -125,18 +125,11 @@
return FAIL.setMsg("搴撲綅鐘舵�佸紓甯�");
}
List<LocDetl> locDetlList1 = new ArrayList<>();
- List<LocDetl> locDetlList2 = new ArrayList<>();
- List<BasAgvLocDetl> basAgvLocDetlList = basAgvLocDetlService.selectList(new EntityWrapper<BasAgvLocDetl>().eq("loc_no", basAgvMast.getSourceLocNo()));
+ List<BasAgvLocDetl> locDetlList2 = new ArrayList<>();
List<BasAgvWrkDetl> basAgvWrkDetlList = basAgvWrkDetlService.selectList(new EntityWrapper<BasAgvWrkDetl>().eq("wrk_no", basAgvMast.getTaskNo()));
- if (!basAgvLocDetlList.isEmpty()) {
- for (BasAgvLocDetl basAgvLocDetl : basAgvLocDetlList){
- LocDetl locDetl = new LocDetl();
- locDetl.sync(basAgvLocDetl);
- locDetlList1.add(locDetl);
- }
- } else if (!basAgvWrkDetlList.isEmpty()){
+ if (!basAgvWrkDetlList.isEmpty()){
for (BasAgvWrkDetl wrkDetl : basAgvWrkDetlList){
- LocDetl locDetl = new LocDetl();
+ BasAgvLocDetl locDetl = new BasAgvLocDetl();
locDetl.sync(wrkDetl);
locDetl.setLocNo(basAgvMast.getLocNo()); // 搴撲綅鍙�
locDetl.setAnfme(wrkDetl.getAnfme()); // 鏁伴噺
@@ -150,40 +143,25 @@
} else {
locMast2.setLocSts("D");
}
-
if (!locMastService.updateById(locMast2)) {
return FAIL;
}
- if (!locDetlList1.isEmpty()){
- for (LocDetl locDetlold : locDetlList1) {
- LocDetl locDetl = locDetlService.selectItem(basAgvMast.getLocNo(), locDetlold.getMatnr(), locDetlold.getBatch(),locDetlold.getBrand()
- ,locDetlold.getStandby1(),locDetlold.getStandby2(),locDetlold.getStandby3(),locDetlold.getBoxType1(),locDetlold.getBoxType2(),locDetlold.getBoxType3());
- if (null != locDetl) {
- if (!locDetlService.updateAnfme(locDetlold.getAnfme(), basAgvMast.getLocNo(), locDetlold.getMatnr(), locDetlold.getBatch(),locDetlold.getBrand(),locDetlold.getStandby1(),locDetlold.getStandby2(),locDetlold.getStandby3()
- ,locDetlold.getBoxType1(),locDetlold.getBoxType2(),locDetlold.getBoxType3())) {
- }
- } else {
- if (!locDetlService.insert(locDetlold)) {
- }
- }
- }
- }
if (!locDetlList2.isEmpty()){
- for (LocDetl locDetlold : locDetlList2) {
- LocDetl locDetl = locDetlService.selectItem(basAgvMast.getLocNo(), locDetlold.getMatnr(), locDetlold.getBatch(),locDetlold.getBrand()
+ for (BasAgvLocDetl locDetlold : locDetlList2) {
+ BasAgvLocDetl locDetl = basAgvLocDetlService.selectItem(basAgvMast.getLocNo(), locDetlold.getMatnr(), locDetlold.getBatch(),locDetlold.getBrand()
,locDetlold.getStandby1(),locDetlold.getStandby2(),locDetlold.getStandby3(),locDetlold.getBoxType1(),locDetlold.getBoxType2(),locDetlold.getBoxType3());
if (null != locDetl) {
- if (!locDetlService.updateAnfme(locDetlold.getAnfme(), basAgvMast.getLocNo(), locDetlold.getMatnr(), locDetlold.getBatch(),locDetlold.getBrand(),locDetlold.getStandby1(),locDetlold.getStandby2(),locDetlold.getStandby3()
+ if (!basAgvLocDetlService.updateAnfme(locDetlold.getAnfme(), basAgvMast.getLocNo(), locDetlold.getMatnr(), locDetlold.getBatch(),locDetlold.getBrand(),locDetlold.getStandby1(),locDetlold.getStandby2(),locDetlold.getStandby3()
,locDetlold.getBoxType1(),locDetlold.getBoxType2(),locDetlold.getBoxType3())) {
}
} else {
- if (!locDetlService.insert(locDetlold)) {
+ if (!basAgvLocDetlService.insert(locDetlold)) {
}
}
}
}
- basAgvLocDetlService.delete(new EntityWrapper<BasAgvLocDetl>().eq("loc_no", basAgvMast.getLocNo()));
+// basAgvLocDetlService.delete(new EntityWrapper<BasAgvLocDetl>().eq("loc_no", basAgvMast.getLocNo()));
basAgvWrkDetlService.delete(new EntityWrapper<BasAgvWrkDetl>().eq("wrk_no", basAgvMast.getTaskNo()));
basAgvMast.setStatus(3);
if(basAgvMast.getFloorNo() == 2 || basAgvMast.getFloorNo() == 3){
diff --git a/src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java b/src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java
index 8a9fe5c..13d010f 100644
--- a/src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java
+++ b/src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java
@@ -35,7 +35,7 @@
@Value("${erp.switch.ReviewOrderSwitch}")
private boolean ReviewOrderSwitch;
-// @Scheduled(cron = "0/20 * * * * ? ")
+ @Scheduled(cron = "0/20 * * * * ? ")
@Async("orderThreadPool")
public void completeAndReport(){
if(!ReviewOrderSwitch){
diff --git a/src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java b/src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java
index fbe8310..9165559 100644
--- a/src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java
+++ b/src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java
@@ -263,7 +263,7 @@
JSONArray data = jsonResponse.getJSONObject("data").getJSONArray("rows");
if(data.size()<=0) continue;
//鍟嗗搧妗f鍚屾
- if (kingDeeUtilType.formId.equals("BD_MATERIAL")) {
+ if(kingDeeUtilType.formId.equals("BD_MATERIAL")) {
Tag tag = tagService.selectByName("鍏ㄩ儴", 1);
// 澶勭悊鍒嗛〉锛氭牴鎹繑鍥炵殑totalCount鍜宲ageSize璁$畻椤垫暟
int pageSize = jsonResponse.getJSONObject("data").getIntValue("pageSize");
@@ -1229,6 +1229,11 @@
"鐗╂枡妗f涓嶅瓨鍦細" + matnr, false);
continue;
}
+ if (mat.getSafeQty() == null || mat.getSafeQty() == 0) {
+ callApiLogSaveOrder(order, kingDeeUtilType,
+ "妗f绠辨暟閲忓紓甯革細" + matnr, false);
+ continue;
+ }
anfmeBox = Math.floor(anfme / mat.getSafeQty());
// ========= 鏄庣粏鍘婚噸 =========
List<OrderDetl> orderDetls =
@@ -1477,6 +1482,7 @@
String owner = "鍜屽緱绉戞妧";
String ownerUuid = "BU-00001";
String orderId = jsonObjectNew.getString("id");
+ String manuBill = jsonObjectNew.getString("manufacturenun");
// ========= 璐т富鏍¢獙 =========
LocOwner locOwner = locOwnerService.selectByUuid(ownerUuid);
// if (locOwner == null) {
@@ -1497,7 +1503,7 @@
null, // 椤圭洰缂栧彿
orderId, //鏀舵枡鍗昳d
null, // 璋冩嫧椤圭洰缂栧彿
- null, // 鍒濆绁ㄦ嵁鍙�
+ manuBill, // 鍒濆绁ㄦ嵁鍙�
null, // 绁ㄦ嵁鍙�
null, // 椤圭洰id
owner, // 璐т富
diff --git a/src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java b/src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java
index 5334a08..8adf401 100644
--- a/src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java
+++ b/src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java
@@ -188,12 +188,12 @@
JSONObject billentry = new JSONObject()
.fluentPut("id", 0L)
.fluentPut("warehouse_number", orderDetl.getManu()) // 浠撳簱缂栧彿
- .fluentPut("invstatus_number", "110") // 搴撳瓨鐘舵��
- .fluentPut("invtype_number", "110") // 搴撳瓨绫诲瀷
- .fluentPut("outinvstatus_number", "110")
- .fluentPut("linetype_number", "010") // 琛屽彿绫诲瀷
.fluentPut("qty", qty) // 鏁伴噺
- .fluentPut("material_number", orderDetl.getMatnr()) // 鐗╂枡缂栧彿
+ .fluentPut("baseqty", qty) // 鏁伴噺
+ .fluentPut("prdqty", qty) // 鏁伴噺
+ .fluentPut("manubill", order.getDefNumber())
+ .fluentPut("producttype", "C") // 鐗╂枡缂栧彿
+ .fluentPut("qualitystatus", "A") // 鐗╂枡缂栧彿
.fluentPut("billentry_lk", billentryLkArray1);
billentryArray1.add(billentry);
@@ -203,16 +203,8 @@
new JSONObject()
.fluentPut("billno", UUID.randomUUID().toString().replace("-", "").substring(0, 16))
.fluentPut("trdbillno", UUID.randomUUID().toString().replace("-", ""))
- .fluentPut("billtype_number", "im_PurInBill_STD_BT_S")
+ .fluentPut("billstatus", "C")
.fluentPut("biztime", sdf1.format(now1))
- .fluentPut("exratedate", sdf1.format(now1))
- .fluentPut("bizorg_number", boxType21)
- .fluentPut("biztype_number", "110") // 璐т富/璐ф簮
- .fluentPut("org_number", boxType21) // 璐т富/璐ф簮
- .fluentPut("paymode", "CREDIT")
- .fluentPut("invscheme_number", "110")
- .fluentPut("billtype_number", "im_PurInBill_STD_BT_S")
- .fluentPut("supplier_number", suppCode1) // 渚涘簲鍟嗙紪鍙�
.fluentPut("billentry", billentryArray1) // 灏� billentry 鏁扮粍娣诲姞鍒拌姹傚弬鏁�
)));
case "STK_MISCELLANEOUS": // 鍏朵粬鍏ュ簱鍗�
diff --git a/src/main/resources/mapper/LocDetlMapper.xml b/src/main/resources/mapper/LocDetlMapper.xml
index 3d49e1d..aada17d 100644
--- a/src/main/resources/mapper/LocDetlMapper.xml
+++ b/src/main/resources/mapper/LocDetlMapper.xml
@@ -358,7 +358,7 @@
and a.standby3 like '%' + #{standby3} + '%'
</if>
<if test="boxType3!=null and boxType3!='' ">
- and a.box_type3 like '%' + #{boxType3} + '%'
+ and a.boxType3 like '%' + #{boxType3} + '%'
</if>
</sql>
--
Gitblit v1.9.1