From 86b8273226c7aa87e7c346659ed9e76278dcc471 Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期日, 15 十月 2023 11:28:01 +0800
Subject: [PATCH] AGV工作档取消和完成
---
src/main/java/com/zy/common/service/erp/ErpService.java | 0
src/main/java/com/zy/common/service/erp/task/ErpScheduler.java | 187 ++++++--------------
src/main/java/com/zy/asrs/service/AgvWrkMastLogService.java | 2
src/main/java/com/zy/asrs/service/AgvWrkMastService.java | 2
src/main/resources/mapper/ViewStayTimeMapper.xml | 1
src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java | 8
src/main/java/com/zy/asrs/controller/AgvOpenController.java | 2
src/main/java/com/zy/asrs/service/AgvWrkDetlService.java | 2
src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java | 6
src/main/java/com/zy/asrs/service/impl/AllLocDetlServiceImpl.java | 7
src/main/java/com/zy/asrs/mapper/InventoryVarianceMapper.java | 11 +
src/main/java/com/zy/asrs/service/InventoryVarianceService.java | 7
src/main/java/com/zy/common/service/erp/entity/WlzhVStRd.java | 38 ++++
src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java | 7
src/main/java/com/zy/asrs/service/impl/InventoryVarianceServiceImpl.java | 11 +
src/main/java/com/zy/asrs/service/OrderDetlService.java | 2
src/main/java/com/zy/asrs/service/impl/AgvWrkDetlServiceImpl.java | 7
src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java | 11 +
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java | 182 +++++--------------
src/main/java/com/zy/asrs/service/AllLocDetlService.java | 3
src/main/resources/application.yml | 10
src/main/java/com/zy/asrs/entity/InventoryVariance.java | 30 +++
22 files changed, 262 insertions(+), 274 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/AgvOpenController.java b/src/main/java/com/zy/asrs/controller/AgvOpenController.java
index 702185d..4c6a853 100644
--- a/src/main/java/com/zy/asrs/controller/AgvOpenController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvOpenController.java
@@ -118,7 +118,7 @@
}
//鍑哄簱浠诲姟 110.绌烘澘鍑哄簱
if(agvWrkMast.getIoType() == 110){
- agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"D",agvWrkMast.getBarcode());
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode());
}
}
diff --git a/src/main/java/com/zy/asrs/entity/InventoryVariance.java b/src/main/java/com/zy/asrs/entity/InventoryVariance.java
new file mode 100644
index 0000000..59beed6
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/InventoryVariance.java
@@ -0,0 +1,30 @@
+package com.zy.asrs.entity;
+
+import com.baomidou.mybatisplus.annotations.TableName;
+import lombok.Data;
+
+/**
+ * ERP - 绔嬪簱 搴撳瓨宸紓缁熻琛�
+ */
+@Data
+@TableName("inventory_variance")
+public class InventoryVariance {
+ //瀛樿揣缂栫爜
+ private String matnr;
+ //閿�鍞鍗曞彿
+ private String csocode;
+ //閿�鍞鍗曡鍙�
+ private String isoseq;
+ //ERP瀛樿揣鏁伴噺
+ private Double iQuantity;
+ //绔嬪簱瀛樿揣鏁伴噺
+ private Double anfme;
+
+ public InventoryVariance(String matnr, String csocode, String isoseq, Double iQuantity, Double anfme){
+ this.matnr = matnr;
+ this.csocode = csocode;
+ this.isoseq = isoseq;
+ this.iQuantity = iQuantity;
+ this.anfme = anfme;
+ }
+}
diff --git a/src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java b/src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java
index e2e6631..80232bd 100644
--- a/src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java
@@ -24,8 +24,11 @@
"\t\tROW_NUMBER() over (order by sum(a.anfme) desc) as row\n" +
"\t\t, a.matnr\n" +
"\t\t, sum(a.anfme) as anfme\n" +
- "\t\tfrom agv_loc_detl a\n" +
- "\t\twhere 1=1\n" +
+// "\t\tfrom agv_loc_detl a\n" +
+// "\t\twhere 1=1\n" +
+// "\t\t<when #{matnr} != '>" +
+// "\t\tAND matnr = #{matnr}" +
+ "\t\t</when>" +
"\t\tgroup by a.matnr\n" +
" ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})")
List<AgvLocDetl> getStockStatis(Map<String, Object> map);
diff --git a/src/main/java/com/zy/asrs/mapper/InventoryVarianceMapper.java b/src/main/java/com/zy/asrs/mapper/InventoryVarianceMapper.java
new file mode 100644
index 0000000..298dd11
--- /dev/null
+++ b/src/main/java/com/zy/asrs/mapper/InventoryVarianceMapper.java
@@ -0,0 +1,11 @@
+package com.zy.asrs.mapper;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.zy.asrs.entity.InventoryVariance;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+public interface InventoryVarianceMapper extends BaseMapper<InventoryVariance> {
+}
diff --git a/src/main/java/com/zy/asrs/service/AgvWrkDetlService.java b/src/main/java/com/zy/asrs/service/AgvWrkDetlService.java
index 3447454..1c016dc 100644
--- a/src/main/java/com/zy/asrs/service/AgvWrkDetlService.java
+++ b/src/main/java/com/zy/asrs/service/AgvWrkDetlService.java
@@ -24,4 +24,6 @@
boolean updateOrderNo(String orderNo, Integer wrkNo, String matnr, String batch);
+ boolean deleteByWrkNo(int wrkNo);
+
}
diff --git a/src/main/java/com/zy/asrs/service/AgvWrkMastLogService.java b/src/main/java/com/zy/asrs/service/AgvWrkMastLogService.java
index 864a789..d44ed7c 100644
--- a/src/main/java/com/zy/asrs/service/AgvWrkMastLogService.java
+++ b/src/main/java/com/zy/asrs/service/AgvWrkMastLogService.java
@@ -6,6 +6,6 @@
public interface AgvWrkMastLogService extends IService<AgvWrkMastLog> {
- boolean save(AgvWrkMast workNo);
+ boolean save(AgvWrkMast agvWrkMast);
}
diff --git a/src/main/java/com/zy/asrs/service/AgvWrkMastService.java b/src/main/java/com/zy/asrs/service/AgvWrkMastService.java
index e0d2298..9b827e3 100644
--- a/src/main/java/com/zy/asrs/service/AgvWrkMastService.java
+++ b/src/main/java/com/zy/asrs/service/AgvWrkMastService.java
@@ -17,4 +17,6 @@
public int containerMoveOut(List<AgvWrkMast> agvWrkMastList) throws IOException;
public boolean insertByIncrease(AgvWrkMast agvWrkMast);
+
+ public boolean deleteByWrkNo(int wrkNo);
}
diff --git a/src/main/java/com/zy/asrs/service/AllLocDetlService.java b/src/main/java/com/zy/asrs/service/AllLocDetlService.java
index 1770fa5..25e475c 100644
--- a/src/main/java/com/zy/asrs/service/AllLocDetlService.java
+++ b/src/main/java/com/zy/asrs/service/AllLocDetlService.java
@@ -3,6 +3,9 @@
import com.baomidou.mybatisplus.service.IService;
import com.zy.asrs.entity.AllLocDetl;
+import java.util.List;
+
public interface AllLocDetlService extends IService<AllLocDetl> {
+ public List<AllLocDetl> getByMatnrAndCsocodeAndIsoseq(String matnr, String csocode, String isoseq);
}
diff --git a/src/main/java/com/zy/asrs/service/InventoryVarianceService.java b/src/main/java/com/zy/asrs/service/InventoryVarianceService.java
new file mode 100644
index 0000000..2117673
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/InventoryVarianceService.java
@@ -0,0 +1,7 @@
+package com.zy.asrs.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.zy.asrs.entity.InventoryVariance;
+
+public interface InventoryVarianceService extends IService<InventoryVariance> {
+}
diff --git a/src/main/java/com/zy/asrs/service/OrderDetlService.java b/src/main/java/com/zy/asrs/service/OrderDetlService.java
index df117bb..6f8be15 100644
--- a/src/main/java/com/zy/asrs/service/OrderDetlService.java
+++ b/src/main/java/com/zy/asrs/service/OrderDetlService.java
@@ -34,4 +34,6 @@
OrderDetl selectContainBatch(String batch);
+ public OrderDetl selectByOrderNoAndMatnr(String orderNo, String matnr, String csocode, String isoseq);
+
}
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
index cf82a7a..cc0e439 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -3,7 +3,6 @@
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
-import com.core.common.DateUtils;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.EmptyPlateOutParam;
@@ -25,7 +24,6 @@
import java.util.Iterator;
import java.util.List;
import java.util.UUID;
-import java.util.concurrent.TimeUnit;
/**
* Created by vincent on 2020/6/11
@@ -447,26 +445,22 @@
if (Cools.isEmpty(wrkMast)){
throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪");
}
- if (wrkMast.getWrkSts() == 9 || wrkMast.getWrkSts() == 29) {
- throw new CoolException("褰撳墠宸ヤ綔妗e凡瀹屾垚");
+
+ if(wrkMast.getWrkSts() > 202){
+ //淇敼AGV宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负205.宸ヤ綔瀹屾垚
+ agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205);
+
+ //鍑哄簱浠诲姟 101.鍑哄簱 || 103.鎷f枡鍑哄簱 || 107.鐩樼偣鍑哄簱
+ if(wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107){
+ //淇敼鍑哄簱绔欑偣鐘舵��
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getLocNo(),"F",wrkMast.getBarcode());
+ }
+ //鍑哄簱浠诲姟 110.绌烘澘鍑哄簱
+ if(wrkMast.getIoType() == 110){
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getLocNo(),"F",wrkMast.getBarcode());
+ }
}
- // 鍏ュ簱 + 搴撲綅杞Щ
- if (wrkMast.getWrkSts() < 9 || (wrkMast.getWrkSts() > 10 && wrkMast.getIoType()==11)) {
- wrkMast.setWrkSts(9L);
- // 鍑哄簱
- } else if (wrkMast.getWrkSts() > 20) {
- wrkMast.setWrkSts(29L);
- }
- Date now = new Date();
- wrkMast.setCrnStrTime(DateUtils.calculate(now, 1L, TimeUnit.SECONDS, true));
- wrkMast.setCrnEndTime(now);
- wrkMast.setModiTime(now);
- wrkMast.setModiUser(userId);
- // 瀹屾垚鎿嶄綔浜哄憳璁板綍
- wrkMast.setManuType("鎵嬪姩瀹屾垚");
- if (!agvWrkMastService.updateById(wrkMast)) {
- throw new CoolException("淇敼宸ヤ綔妗eけ璐�");
- }
+
}
@Transactional
@@ -475,125 +469,51 @@
if (Cools.isEmpty(wrkMast)){
throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪");
}
-
- if (wrkMast.getWrkSts() == 200) {
- //灏忚溅绉诲簱浠诲姟锛岀洿鎺ュ垹闄ゅ伐浣滄。
- agvWrkMastService.deleteById(wrkMast);
- return;
+ //鎷f枡鍏ュ簱 鐩樼偣鍏ュ簱涓嶅彲鍙栨秷
+ if(wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57){
+ throw new CoolException("褰撳墠浠诲姟涓嶅彲鍙栨秷");
}
- String locNo = ""; // 寰呬慨鏀圭洰鏍囧簱浣�
- String locSts = ""; // 寰呬慨鏀圭洰鏍囧簱浣嶇姸鎬�
- // 鍏ュ簱鍙栨秷锛堜慨鏀圭洰鏍囧簱浣嶏級
- if (wrkMast.getWrkSts() < 9) {
- locNo = wrkMast.getLocNo();
- locSts = "O";
+ //AGV鏈哄櫒浜烘湭鍙栬揣鍓嶅彇娑�
+ if(wrkMast.getWrkSts() < 203){
+ //鍏ュ簱鍙栨秷
+ if(wrkMast.getIoType() == 1 || wrkMast.getIoType() == 10){
+ //婧愮珯鐐�
+ String devNo = wrkMast.getSourceLocNo();
+ //鐩爣搴撲綅
+ String locNo = wrkMast.getLocNo();
+ agvLocMastService.updateLocStsByLocNo(locNo,"O");
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"F",wrkMast.getBarcode());
- // 搴撲綅杞Щ
- if (wrkMast.getIoType() == 11) {
- // 搴撲綅杞Щ锛氭簮搴撲綅
- AgvLocMast locMast = agvLocMastService.selectById(wrkMast.getSourceLocNo());
- if (Cools.isEmpty(locMast)) {
- throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛屾簮搴撲綅涓嶅瓨鍦�:"+ wrkMast.getSourceLocNo());
- }
- locMast.setLocSts("F");
- locMast.setModiTime(new Date());
- locMast.setModiUser(userId);
- agvLocMastService.updateById(locMast);
+ //鍑哄簱鍙栨秷
+ }else {
+ //婧愬簱浣�
+ String locNo = wrkMast.getSourceLocNo();
+ //鐩爣绔欑偣
+ String devNo = wrkMast.getLocNo();
+ agvLocMastService.updateLocStsByLocNo(locNo,"F");
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O","");
}
- // 鍑哄簱鍙栨秷锛堜慨鏀规簮搴撲綅锛�
- } else if (wrkMast.getWrkSts() > 20) {
- locNo = wrkMast.getSourceLocNo();
- // 鍑哄簱 ===>> F.鍦ㄥ簱
- if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 110) {
- locSts = "F";
- // 绌烘澘鍑哄簱 ===>> D.绌烘《/绌烘爤鏉�
- } else if (wrkMast.getIoType() == 110) {
- locSts = "D";
- // 搴撲綅杞Щ ===>> D.绌烘《/绌烘爤鏉�
- } else if (wrkMast.getIoType() == 11) {
- locSts = wrkMast.getFullPlt().equalsIgnoreCase("N")?"D":"F";
- // 搴撲綅杞Щ锛氱洰鏍囧簱浣�
- AgvLocMast locMast = agvLocMastService.selectById(wrkMast.getLocNo());
- if (Cools.isEmpty(locMast)) {
- throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛岀洰鏍囧簱浣嶄笉瀛樺湪:"+ wrkMast.getSourceLocNo());
- }
- locMast.setLocSts("O");
- locMast.setModiTime(new Date());
- locMast.setModiUser(userId);
- agvLocMastService.updateById(locMast);
- }
- } else {
- throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曞彇娑�");
- }
- // 璁㈠崟鍏宠仈
- List<AgvWrkDetl> wrkDetls = agvWrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
- for (AgvWrkDetl wrkDetl : wrkDetls) {
- if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
- if (!BaseController.isJSON(wrkDetl.getOrderNo())) {
- if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
- throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
- }
- } else {
- // 璁㈠崟鍚堝苟鍑哄簱
- //瀹為檯鍙栨秷鐨勫嚭搴撴暟閲�
- Double wrkDetlAnfme = wrkDetl.getAnfme();
- //璁㈠崟瀹為檯鍑哄簱鏁伴噺
- Double orderAnfme;
-
- List<OrderDto> orderDtoList = JSON.parseArray(wrkDetl.getOrderNo(), OrderDto.class);
- for (OrderDto orderDto : orderDtoList) {
-
- if(wrkDetlAnfme > orderDto.getAnfme()){
- orderAnfme = orderDto.getAnfme();
- wrkDetlAnfme -= orderAnfme;
- }else {
- orderAnfme = wrkDetlAnfme;
- }
-
- if (!orderDetlService.decrease(orderDto.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), orderAnfme)) {
- throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
- }
- }
- }
- }
- }
- // 鍙栨秷鎿嶄綔浜哄憳璁板綍
- wrkMast.setManuType("鎵嬪姩鍙栨秷");
- wrkMast.setModiUser(userId);
- wrkMast.setModiTime(new Date());
- if (!agvWrkMastService.updateById(wrkMast)) {
- throw new CoolException("鍙栨秷宸ヤ綔妗eけ璐�");
- }
- // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
- if (!agvWrkMastLogService.save(wrkMast)) {
- throw new CoolException("淇濆瓨宸ヤ綔鍘嗗彶妗eけ璐�, workNo = " + wrkMast.getWrkNo());
- }
- // 鍒犻櫎宸ヤ綔涓绘。
- boolean wrkMastRes = agvWrkMastService.deleteById(wrkMast);
-
- if (wrkMast.getIoType() != 10 && wrkMast.getIoType() != 110) {
- // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
- if (!agvWrkDetlLogService.save(wrkMast.getWrkNo())) {
-// throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏鍘嗗彶妗eけ璐�, workNo = " + wrkMast.getWrkNo());
- }
- // 鍒犻櫎宸ヤ綔妗f槑缁�
- boolean wrkDetlRes = agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", workNo));
}
- // 淇敼搴撲綅鐘舵��
- AgvLocMast locMast = agvLocMastService.selectById(locNo);
- if (Cools.isEmpty(locMast)) {
- throw new CoolException("鍙栨秷宸ヤ綔妗eけ璐ワ紝搴撲綅涓嶅瓨鍦�:"+ locNo);
+ //璁㈠崟鍥炴粴
+ AgvWrkDetl agvWrkDetl = agvWrkDetlService.selectByWrkNo(wrkMast.getWrkNo()).get(0);
+ if(!Cools.isEmpty(agvWrkDetl.getOrderNo())){
+ OrderDetl orderDetl = orderDetlService.selectByOrderNoAndMatnr(agvWrkDetl.getOrderNo(),agvWrkDetl.getMatnr(),agvWrkDetl.getThreeCode(),agvWrkDetl.getDeadTime());
+ orderDetl.setQty(orderDetl.getQty() - agvWrkDetl.getAnfme());
+ orderDetlService.updateById(orderDetl);
}
- locMast.setLocSts(locSts);
- locMast.setModiTime(new Date());
- locMast.setModiUser(userId);
- boolean locMastRes = agvLocMastService.updateById(locMast);
- if (!wrkMastRes || !locMastRes) {
- throw new CoolException("淇濆瓨鏁版嵁澶辫触");
+
+ //淇濆瓨宸ヤ綔妗d互鍙婃槑缁�
+ agvWrkMastLogService.save(wrkMast);
+ agvWrkDetlLogService.save(wrkMast.getWrkNo());
+
+ //鍒犻櫎宸ヤ綔妗d互鍙婃槑缁�
+ if(agvWrkMastService.deleteByWrkNo(wrkMast.getWrkNo()) && agvWrkDetlService.deleteByWrkNo(wrkMast.getWrkNo())){
+ throw new CoolException("鍒犻櫎澶辫触锛岃鑱旂郴绠$悊鍛�");
}
+
}
/*
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWrkDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvWrkDetlServiceImpl.java
index f8cd847..c44a681 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWrkDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWrkDetlServiceImpl.java
@@ -1,5 +1,6 @@
package com.zy.asrs.service.impl;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.zy.asrs.entity.AgvWrkDetl;
import com.zy.asrs.entity.WrkDetl;
@@ -51,6 +52,7 @@
*/
@Override
public List<AgvWrkDetl> selectByWrkNo(Integer wrkNo) {
+
return this.baseMapper.selectByWrkNo(wrkNo);
}
@@ -88,4 +90,9 @@
return baseMapper.updateOrderNo(orderNo, wrkNo, matnr, batch) > 0;
}
+ @Override
+ public boolean deleteByWrkNo(int wrkNo) {
+ return this.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo));
+ }
+
}
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java b/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
index 8d90d1d..c8b9ea2 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
@@ -2,6 +2,7 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.core.exception.CoolException;
import com.zy.asrs.entity.AgvWrkMast;
@@ -115,6 +116,11 @@
return index > 0;
}
+ @Override
+ public boolean deleteByWrkNo(int wrkNo) {
+ return this.delete(new EntityWrapper<AgvWrkMast>().eq("wrk_no", wrkNo));
+ }
+
private void getContainerMoveParam(List<AgvWrkMast> agvWrkMastList,List<Map<String,String>> positionCodeMapList){
//寰�瀹瑰櫒鍏ュ満鍙傛暟涓斁鍏ユ簮绔欑偣浣嶇疆
for(AgvWrkMast agvWrkMast : agvWrkMastList){
diff --git a/src/main/java/com/zy/asrs/service/impl/AllLocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AllLocDetlServiceImpl.java
index 6484393..7a57897 100644
--- a/src/main/java/com/zy/asrs/service/impl/AllLocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AllLocDetlServiceImpl.java
@@ -1,11 +1,18 @@
package com.zy.asrs.service.impl;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.zy.asrs.entity.AllLocDetl;
import com.zy.asrs.mapper.AllLocDetlMapper;
import com.zy.asrs.service.AllLocDetlService;
import org.springframework.stereotype.Service;
+import java.util.List;
+
@Service
public class AllLocDetlServiceImpl extends ServiceImpl<AllLocDetlMapper, AllLocDetl> implements AllLocDetlService {
+ @Override
+ public List<AllLocDetl> getByMatnrAndCsocodeAndIsoseq(String matnr, String csocode, String isoseq) {
+ return this.selectList(new EntityWrapper<AllLocDetl>().eq("matnr",matnr).eq("three_code",csocode).eq("dead_time",isoseq));
+ }
}
diff --git a/src/main/java/com/zy/asrs/service/impl/InventoryVarianceServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/InventoryVarianceServiceImpl.java
new file mode 100644
index 0000000..8dd012b
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/impl/InventoryVarianceServiceImpl.java
@@ -0,0 +1,11 @@
+package com.zy.asrs.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.zy.asrs.entity.InventoryVariance;
+import com.zy.asrs.mapper.InventoryVarianceMapper;
+import com.zy.asrs.service.InventoryVarianceService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class InventoryVarianceServiceImpl extends ServiceImpl<InventoryVarianceMapper, InventoryVariance> implements InventoryVarianceService {
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
index 46c7a70..7da76c4 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -9,6 +9,7 @@
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.result.StockVo;
import com.zy.asrs.mapper.LocDetlMapper;
+import com.zy.asrs.service.BasDevpService;
import com.zy.asrs.service.LocDetlService;
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.service.StaDescService;
@@ -28,6 +29,8 @@
private StaDescService staDescService;
@Autowired
private LocMastService locMastService;
+ @Autowired
+ private BasDevpService basDevpService;
@Override
public Page<LocDetl> getStockOut(Page<LocDetl> page) {
@@ -123,9 +126,10 @@
int ioType = anfme > issued ? 103 : 101;
anfme = anfme > issued ? issued : anfme;
LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderNo, anfme);
- List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), ioType);
+ //List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), ioType);
+ List<Integer> outSite = basDevpService.getAvailableOutSite(101);
- locDto.setStaNos(staNos);
+ locDto.setStaNos(outSite);
locDto.setCsocode(csocode);
locDto.setIsoseq(isoseq);
locDto.setContainerCode(locDetl.getSuppCode());
diff --git a/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
index ae757e0..46f1a15 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
@@ -1,12 +1,14 @@
package com.zy.asrs.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.core.common.Cools;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.mapper.OrderDetlMapper;
import com.zy.asrs.service.OrderDetlService;
+import com.zy.asrs.utils.Utils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -104,5 +106,14 @@
// return null;
}
+ @Override
+ public OrderDetl selectByOrderNoAndMatnr(String orderNo, String matnr, String csocode, String isoseq) {
+ Wrapper<OrderDetl> wrapper = new EntityWrapper<OrderDetl>().eq("order_no", orderNo).eq("matnr", matnr);
+ Utils.wapperSetCondition(wrapper,"csocode",csocode);
+ Utils.wapperSetCondition(wrapper,"isoseq",isoseq);
+
+ return this.selectOne(wrapper);
+ }
+
}
diff --git a/src/main/java/com/zy/common/service/erp/ErpService.java b/src/main/java/com/zy/common/service/erp/ErpService.java
index 98435aa..75d9605 100644
--- a/src/main/java/com/zy/common/service/erp/ErpService.java
+++ b/src/main/java/com/zy/common/service/erp/ErpService.java
Binary files differ
diff --git a/src/main/java/com/zy/common/service/erp/entity/WlzhVStRd.java b/src/main/java/com/zy/common/service/erp/entity/WlzhVStRd.java
new file mode 100644
index 0000000..f385dcd
--- /dev/null
+++ b/src/main/java/com/zy/common/service/erp/entity/WlzhVStRd.java
@@ -0,0 +1,38 @@
+package com.zy.common.service.erp.entity;
+
+import com.baomidou.mybatisplus.annotations.TableName;
+import lombok.Data;
+
+/*
+ERP涓簱瀛樻瘮瀵硅鍥�
+ */
+@Data
+@TableName("wlzh_v_st_rd")
+public class WlzhVStRd {
+ //鏍哥畻涓讳綋
+ private String account;
+
+ //浠撳簱
+ private String cWhName;
+
+ //瀛樿揣缂栫爜
+ private String cInvCode;
+
+ //瑙勬牸鍨嬪彿
+ private String cInvStd;
+
+ //璁¢噺鍗曚綅
+ private String cComUnitName;
+
+ //閫氱敤鍨嬪彿
+ private String cinvdefine4;
+
+ //鐜板瓨閲�
+ private Double iQuantity;
+
+ //閿�鍞鍗曞彿
+ private String csocode;
+
+ //閿�鍞鍗曡鍙�
+ private String isoseq;
+}
diff --git a/src/main/java/com/zy/common/service/erp/task/ErpScheduler.java b/src/main/java/com/zy/common/service/erp/task/ErpScheduler.java
index c09b5b8..0b38dcd 100644
--- a/src/main/java/com/zy/common/service/erp/task/ErpScheduler.java
+++ b/src/main/java/com/zy/common/service/erp/task/ErpScheduler.java
@@ -2,33 +2,35 @@
import com.core.common.Cools;
import com.core.common.DateUtils;
-import com.core.common.SnowflakeIdWorker;
import com.core.exception.CoolException;
-import com.zy.asrs.entity.*;
-import com.zy.asrs.service.*;
+import com.zy.asrs.entity.AllLocDetl;
+import com.zy.asrs.entity.InventoryVariance;
+import com.zy.asrs.entity.Mat;
+import com.zy.asrs.entity.Tag;
+import com.zy.asrs.service.AllLocDetlService;
+import com.zy.asrs.service.InventoryVarianceService;
+import com.zy.asrs.service.MatService;
+import com.zy.asrs.service.TagService;
import com.zy.asrs.task.AbstractHandler;
import com.zy.common.service.erp.ErpService;
-import com.zy.common.service.erp.dto.VoucherDto;
import com.zy.common.service.erp.entity.Goods;
-import com.zy.common.service.erp.entity.Voucher;
-import com.zy.common.service.erp.entity.VoucherDetail;
+import com.zy.common.service.erp.entity.WlzhVStRd;
import lombok.Synchronized;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
/**
* erp浠诲姟鎺у埗鍣�
* Created by vincent on 2020/11/27
*/
@Slf4j
-//@Component
+@Component
public class ErpScheduler extends AbstractHandler<Exception> {
@Autowired
@@ -38,15 +40,11 @@
@Autowired
private MatService matService;
@Autowired
- private OrderService orderService;
+ private AllLocDetlService allLocDetlService;
@Autowired
- private DocTypeService docTypeService;
- @Autowired
- private OrderDetlService orderDetlService;
- @Autowired
- private SnowflakeIdWorker snowflakeIdWorker;
+ private InventoryVarianceService inventoryVarianceService;
- @Scheduled(cron = "0/5 * * * * ? ")
+ //@Scheduled(cron = "0/5 * * * * ? ")
@Synchronized
@Transactional
public synchronized void syncMat() {
@@ -85,126 +83,53 @@
}
}
- @Scheduled(cron = "0/5 * * * * ? ")
+ //@Scheduled(cron = "0/5 * * * * ? ")
@Synchronized
@Transactional
- public synchronized void syncOrder() {
- List<VoucherDto> list = erpService.selectOrder(0);
- for (VoucherDto dto : list) {
- Voucher voucher = dto.getVoucher();
- Order order = orderService.selectByNo(voucher.getVoucherID());
- if (Cools.isEmpty(order)) {
+ public void syncLocDetl(){
- String regEx = "[^0-9]";
- Pattern compile = Pattern.compile(regEx);
- Matcher matcher = compile.matcher(voucher.getMT());
- String docTypeVal = matcher.replaceAll("").trim();
+ List<InventoryVariance> inventoryVariances = new ArrayList<>();
- DocType docType = docTypeService.selectOrAdd(docTypeVal, null);
- Date now = new Date();
- // 鍗曟嵁涓绘。
- order = new Order(
- String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖]
- voucher.getVoucherID(), // 璁㈠崟缂栧彿
- DateUtils.convert(now), // 鍗曟嵁鏃ユ湡
- docType.getDocId(), // 鍗曟嵁绫诲瀷
- null, // 椤圭洰缂栧彿
- null, //
- null, // 璋冩嫧椤圭洰缂栧彿
- voucher.getBatch(), // 鍒濆绁ㄦ嵁鍙�
- voucher.getMaterialNO(), // 绁ㄦ嵁鍙�
- null, // 瀹㈡埛缂栧彿
- voucher.getCustomer(), // 瀹㈡埛
- voucher.getCenterID(), // 鑱旂郴鏂瑰紡
- voucher.getPlant(), // 鎿嶄綔浜哄憳
- voucher.getTotalNum(), // 鍚堣閲戦 ********************
- null, // 浼樻儬鐜�
- null, // 浼樻儬閲戦
- null, // 閿�鍞垨閲囪喘璐圭敤鍚堣
- null, // 瀹炰粯閲戦
- null, // 浠樻绫诲瀷
- voucher.getLoc(), // 涓氬姟鍛�
- voucher.getTotalCount(), // 缁撶畻澶╂暟 ********************
- null, // 閭垂鏀粯绫诲瀷
- voucher.getExpectedWeight(), // 閭垂
- null, // 浠樻鏃堕棿
- null, // 鍙戣揣鏃堕棿
- null, // 鐗╂祦鍚嶇О
- null, // 鐗╂祦鍗曞彿
- 1L, // 璁㈠崟鐘舵��
- 1, // 鐘舵��
- 9527L, // 娣诲姞浜哄憳
- now, // 娣诲姞鏃堕棿
- 9527L, // 淇敼浜哄憳
- now, // 淇敼鏃堕棿
- null // 澶囨敞
- );
- if (!orderService.insert(order)) {
- throw new CoolException(order.getOrderNo() + "鐢熸垚鍗曟嵁涓绘。澶辫触锛岃鑱旂郴绠$悊鍛�");
- }
-
- Mat mat = matService.selectByMatnr(voucher.getMaterialNO());
- if (mat == null) {
- throw new CoolException(voucher.getMaterialNO() + "鐗╂枡鍙蜂笉瀛樺湪");
- }
-
- // 绻冲韩鍠�
- if (docType.getPakin() == 1) {
- for (VoucherDetail detail : dto.getDetails()) {
- OrderDetl orderDetl = new OrderDetl();
- orderDetl.sync(mat);
-
- orderDetl.setBatch(detail.getBarcode());
- orderDetl.setAnfme(mat.getWeight());
-
- orderDetl.setOrderId(order.getId());
- orderDetl.setOrderNo(order.getOrderNo());
- orderDetl.setCreateBy(9527L);
- orderDetl.setCreateTime(now);
- orderDetl.setUpdateBy(9527L);
- orderDetl.setUpdateTime(now);
- orderDetl.setStatus(1);
- orderDetl.setQty(0.0D);
- if (!orderDetlService.insert(orderDetl)) {
- throw new CoolException(order.getOrderNo() + "鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
- }
- }
- } else {
- OrderDetl orderDetl = new OrderDetl();
- orderDetl.sync(mat);
- StringBuilder sb = new StringBuilder();
- if (!Cools.isEmpty(dto.getDetails())) {
- for (VoucherDetail detail : dto.getDetails()) {
- sb.append(detail.getBarcode()).append(",");
- }
- orderDetl.setBatch(sb.toString());
- }
- orderDetl.setAnfme(voucher.getExpectedWeight());
- orderDetl.setOrderId(order.getId());
- orderDetl.setOrderNo(order.getOrderNo());
- orderDetl.setCreateBy(9527L);
- orderDetl.setCreateTime(now);
- orderDetl.setUpdateBy(9527L);
- orderDetl.setUpdateTime(now);
- orderDetl.setStatus(1);
- orderDetl.setQty(0.0D);
- if (!orderDetlService.insert(orderDetl)) {
- throw new CoolException(order.getOrderNo() + "鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
- }
- }
-
- // erp 鍚屾
- int state = 1;
- if (!erpService.updateStateForVoucher(voucher.getVoucherID(), state)) {
- throw new CoolException(voucher.getVoucherID() + "璁㈠崟淇敼State涓�"+state+"澶辫触");
- } else {
- erpService.updateTimeForVoucherDetail(voucher.getVoucherID());
- }
-
- } else {
- log.warn("{}璁㈠崟宸插瓨鍦�", voucher.getVoucherID());
+ int pageSize = 500;
+ int pageNumber = 0;
+ while (true){
+ List<WlzhVStRd> wlzhVStRds = erpService.selectPage(pageSize, pageNumber);
+ if(wlzhVStRds.size() < pageSize){
+ break;
}
+
+ //ERP搴撳瓨涓庣珛搴撳簱瀛樻瘮瀵�
+ compileStock(wlzhVStRds,inventoryVariances);
+ pageNumber ++;
+
}
+
+ inventoryVarianceService.insertBatch(inventoryVariances);
+
}
+ private void compileStock(List<WlzhVStRd> wlzhVStRds, List<InventoryVariance> inventoryVariances){
+ wlzhVStRds.forEach(wlzhVStRd -> {
+ String matnr = wlzhVStRd.getCInvCode();
+ String csocode = wlzhVStRd.getCsocode();
+ String isoseq = wlzhVStRd.getIsoseq();
+ Double iQuantity = wlzhVStRd.getIQuantity();
+
+ Double anfme = 0.0;
+
+ List<AllLocDetl> allLocDetlList = allLocDetlService.getByMatnrAndCsocodeAndIsoseq(matnr, csocode, isoseq);
+ for(AllLocDetl allLocDetl : allLocDetlList){
+ anfme += allLocDetl.getAnfme();
+ }
+
+ int compare = Double.compare(iQuantity, anfme);
+ if(compare != 0){
+ InventoryVariance inventoryVarianceParam = new InventoryVariance(matnr,csocode,isoseq,iQuantity,anfme);
+ inventoryVariances.add(inventoryVarianceParam);
+ }
+
+ });
+ }
+
+
}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 330352b..39c2117 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -10,9 +10,9 @@
enabled: false
datasource:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
- url: jdbc:sqlserver://localhost:1433;databasename=tzskasrs
+ #url: jdbc:sqlserver://localhost:1433;databasename=tzskasrs
#url: jdbc:sqlserver://192.168.4.15:1433;databasename=tzskasrs
- #url: jdbc:sqlserver://10.10.10.40:1433;databasename=tzskasrs
+ url: jdbc:sqlserver://10.10.10.40:1433;databasename=tzskasrs
username: sa
password: sa@123
mvc:
@@ -68,9 +68,9 @@
erp:
db:
driver_class_name: com.microsoft.sqlserver.jdbc.SQLServerDriver
- ur: jdbc:sqlserver://10.20.46.23:1433;databasename=POY_ASRS
- username: poy-asrs
- password: Poy@2022
+ ur: jdbc:sqlserver://192.168.1.55:1433;databasename=ufdata_998_2022
+ username: WMS
+ password: Wlzh44338
agv:
# url: localhost:8080
diff --git a/src/main/resources/mapper/ViewStayTimeMapper.xml b/src/main/resources/mapper/ViewStayTimeMapper.xml
index b4fbba3..7a0e299 100644
--- a/src/main/resources/mapper/ViewStayTimeMapper.xml
+++ b/src/main/resources/mapper/ViewStayTimeMapper.xml
@@ -178,5 +178,4 @@
) t
) a
</select>
-
</mapper>
--
Gitblit v1.9.1