From cb19fbb1b76402c87849bb055010701a66efc623 Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期二, 23 四月 2024 00:17:23 +0800
Subject: [PATCH] #
---
src/main/resources/mapper/OrderDetlMapper.xml | 17 ++++
src/main/java/com/zy/asrs/controller/AgvLocDetlController.java | 53 +++++++++++++
src/main/java/com/zy/asrs/entity/AgvLocDetl.java | 7 +
src/main/java/com/zy/asrs/entity/param/PickParam.java | 37 +++++++++
src/main/java/com/zy/asrs/service/OrderDetlService.java | 3
src/main/java/com/zy/asrs/controller/AgvMobileController.java | 9 ++
src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java | 2
src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java | 7 -
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java | 64 ++++++++++++++++
src/main/java/com/zy/asrs/service/AgvMobileService.java | 6 +
10 files changed, 196 insertions(+), 9 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/AgvLocDetlController.java b/src/main/java/com/zy/asrs/controller/AgvLocDetlController.java
index f98d3f4..5964a6e 100644
--- a/src/main/java/com/zy/asrs/controller/AgvLocDetlController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvLocDetlController.java
@@ -9,8 +9,10 @@
import com.core.common.R;
import com.zy.asrs.entity.AgvLocDetl;
import com.zy.asrs.entity.Mat;
+import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.service.AgvLocDetlService;
import com.zy.asrs.service.MatService;
+import com.zy.asrs.service.OrderDetlService;
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
@@ -31,6 +33,8 @@
private AgvLocDetlService agvLocDetlService;
@Autowired
private MatService matService;
+ @Autowired
+ private OrderDetlService orderDetlService;
@RequestMapping(value = "/locDetl/list/auth")
@ManagerAuth
@@ -72,6 +76,55 @@
return R.ok(agvLocDetlService.selectPage(new Page<>(curr, limit), wrapper));
}
+ @RequestMapping(value = "/locDetl/list/auth/v2")
+ @ManagerAuth
+ public R listV2(@RequestParam(defaultValue = "1")Integer curr,
+ @RequestParam(defaultValue = "10")Integer limit,
+ @RequestParam(required = false)String orderByField,
+ @RequestParam(required = false)String orderByType,
+ @RequestParam(required = false)String condition,
+ @RequestParam Map<String, Object> param,
+ @RequestParam(required = false)Boolean unreason){
+ if (!Cools.isEmpty(unreason) && unreason) {
+
+ return R.ok(agvLocDetlService.selectPage(new Page<>(curr, limit), new EntityWrapper<AgvLocDetl>()
+ .where(" DATALENGTH( batch ) != 11 or\n" +
+ " batch LIKE '%[a-z]%'")));
+ }
+ param.remove("unreason");
+ String row = "";
+ EntityWrapper<AgvLocDetl> wrapper = new EntityWrapper<>();
+ if (param.get("row") != null) {
+ String chooseRow = (String) param.get("row");
+ if (chooseRow.length() == 1) {
+ row = "0" + chooseRow;
+ param.remove("row");
+ }else {
+ row = chooseRow;
+ param.remove("row");
+ }
+ }
+ excludeTrash(param);
+ convert(param, wrapper);
+ allLike(AgvLocDetl.class, param.keySet(), wrapper, condition);
+ if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+ if (!row.equals("")){
+ wrapper.and()
+ .where("loc_no like '" +row +"%'");
+ }
+ Page<AgvLocDetl> agvLocDetlPage = agvLocDetlService.selectPage(new Page<>(curr, limit), wrapper);
+ for (AgvLocDetl record : agvLocDetlPage.getRecords()) {
+ OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("three_code", record.getThreeCode()).eq("matnr", record.getMatnr()).ne("order_no", record.getOrderNo()));
+ if (orderDetl.getAnfme() - orderDetl.getQty() > 0) {
+ record.setStock(orderDetl.getAnfme() - orderDetl.getQty());
+ } else {
+ record.setStock(-1D);
+ }
+ record.setOrderNo(orderDetl.getOrderNo());
+ }
+ return R.ok(agvLocDetlPage);
+ }
+
@RequestMapping(value = "/locDetl/statis/auth")
@ManagerAuth(memo = "AGV搴撳瓨鏄庣粏缁熻")
public R statis(@RequestParam(defaultValue = "1")Integer curr,
diff --git a/src/main/java/com/zy/asrs/controller/AgvMobileController.java b/src/main/java/com/zy/asrs/controller/AgvMobileController.java
index d1f5b6f..b72ee5f 100644
--- a/src/main/java/com/zy/asrs/controller/AgvMobileController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvMobileController.java
@@ -10,6 +10,7 @@
import com.zy.asrs.entity.param.AgvMobileStartPakin;
import com.zy.asrs.entity.param.AgvMobileStartParam;
import com.zy.asrs.entity.param.CombParam;
+import com.zy.asrs.entity.param.PickParam;
import com.zy.asrs.service.*;
import com.zy.common.web.BaseController;
import lombok.Synchronized;
@@ -58,6 +59,14 @@
return R.ok();
}
+ // 鍐嶆鎷f枡
+ @RequestMapping("/pick/again/auth")
+// @ManagerAuth(memo = "缁勬墭")
+ public R pickAgain(@RequestBody PickParam pickParams){
+ agvMobileService.pickAgain(pickParams, 1l);
+ return R.ok("缁勬墭鎴愬姛");
+ }
+
/*
缁戝畾鎵樼洏鏉$爜涓庢殏瀛樹綅
*/
diff --git a/src/main/java/com/zy/asrs/entity/AgvLocDetl.java b/src/main/java/com/zy/asrs/entity/AgvLocDetl.java
index 1ea03d2..d130781 100644
--- a/src/main/java/com/zy/asrs/entity/AgvLocDetl.java
+++ b/src/main/java/com/zy/asrs/entity/AgvLocDetl.java
@@ -161,6 +161,13 @@
@ApiModelProperty(value= "搴撳瓨鍐荤粨{1:姝e父,0:鍐荤粨}")
private Integer stockFreeze;
+ /**
+ * 搴撳瓨鏁伴噺
+ */
+ @ApiModelProperty(value= "鍙嚭鏁伴噺")
+ @TableField(exist = false)
+ private Double stock;
+
public String getLocNo$(){
LocMastService service = SpringUtils.getBean(LocMastService.class);
LocMast locMast = service.selectById(this.locNo);
diff --git a/src/main/java/com/zy/asrs/entity/param/PickParam.java b/src/main/java/com/zy/asrs/entity/param/PickParam.java
new file mode 100644
index 0000000..6c3c83f
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/PickParam.java
@@ -0,0 +1,37 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class PickParam {
+
+ // 宸ヤ綔鍙�
+ private Integer wrkNo;
+
+ private String locNo;
+
+ // 鎷f枡鏁伴噺
+ private List<Pick> picks;
+
+ @Data
+ public static class Pick {
+
+ // 鐗╂枡缂栧彿
+ private String matnr;
+
+ // 鍗曟嵁缂栧彿
+ private String orderNo;
+
+ //閿�鍞鍗曞彿
+ private String threeCode;
+
+ //閿�鍞鍗曞彿
+ private String suppCode;
+
+ // 鎷f枡鏁伴噺
+ private Double count;
+
+ }
+}
diff --git a/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java b/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
index 4aa30a4..c5de0d9 100644
--- a/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
@@ -45,4 +45,6 @@
List<OrderDetl> selectByMatnr(@Param("matnr") String matnr);
+ List<OrderDetl> getPakoutDetlPage(Map<String, Object> map);
+
}
diff --git a/src/main/java/com/zy/asrs/service/AgvMobileService.java b/src/main/java/com/zy/asrs/service/AgvMobileService.java
index 6ff52ac..0afc65d 100644
--- a/src/main/java/com/zy/asrs/service/AgvMobileService.java
+++ b/src/main/java/com/zy/asrs/service/AgvMobileService.java
@@ -3,6 +3,7 @@
import com.zy.asrs.entity.AgvBasDevp;
import com.zy.asrs.entity.param.CombParam;
import com.zy.asrs.entity.param.MobileAdjustParam;
+import com.zy.asrs.entity.param.PickParam;
import java.util.List;
@@ -14,6 +15,11 @@
String comb(CombParam param, Long userId);
/**
+ * 缁勬墭
+ */
+ String pickAgain(PickParam pickParams, Long userId);
+
+ /**
* 鐩樼偣
*/
void adjust(MobileAdjustParam param, Long userId);
diff --git a/src/main/java/com/zy/asrs/service/OrderDetlService.java b/src/main/java/com/zy/asrs/service/OrderDetlService.java
index 9dbd0ea..eb0b734 100644
--- a/src/main/java/com/zy/asrs/service/OrderDetlService.java
+++ b/src/main/java/com/zy/asrs/service/OrderDetlService.java
@@ -12,8 +12,6 @@
Page<OrderDetl> getPakoutPage(Page<OrderDetl> page);
- Page<OrderDetl> getPakoutDetlPage(Page<OrderDetl> page);
-
OrderDetl selectItem(Long orderId, String matnr, String batch, String csocode, String isoCode);
OrderDetl selectItem(String orderNo, String matnr, String batch, String csocode, String isoCode);
@@ -38,4 +36,5 @@
public OrderDetl selectByOrderNoAndMatnr(String orderNo, String matnr, String csocode, String isoseq);
+
}
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
index 03ff560..66c5915 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -7,6 +7,7 @@
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.CombParam;
import com.zy.asrs.entity.param.MobileAdjustParam;
+import com.zy.asrs.entity.param.PickParam;
import com.zy.asrs.service.*;
import com.zy.common.model.DetlDto;
import lombok.extern.slf4j.Slf4j;
@@ -44,6 +45,8 @@
private AgvWrkMastService agvWrkMastService;
@Autowired
private AgvWorkService agvWorkService;
+ @Autowired
+ private AgvWrkDetlService agvWrkDetlService;
/*
@@ -90,6 +93,65 @@
}
/*
+ 缁勬墭 + 缁戝畾鏆傚瓨浣�
+ */
+ @Override
+ @Transactional
+ public String pickAgain(PickParam pickParams, Long userId) {
+ Date now = new Date();
+ List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", pickParams.getLocNo()));
+
+ for (PickParam.Pick pick : pickParams.getPicks()) {
+ if (pick.getCount().equals(0D)) continue;
+ AgvWrkDetl wrkDetl = new AgvWrkDetl();
+ Mat mat = matService.selectByMatnr(pick.getMatnr());
+ if (Cools.isEmpty(mat)) {
+ throw new CoolException(pick.getMatnr() + "鍟嗗搧涓嶅瓨鍦�");
+ }
+ wrkDetl.sync(mat);
+ wrkDetl.setWrkNo(pickParams.getWrkNo());
+ wrkDetl.setOrderNo(pick.getOrderNo());
+ wrkDetl.setIoTime(now);
+ wrkDetl.setAnfme(pick.getCount()); // 鏁伴噺
+ wrkDetl.setSuppCode(pick.getSuppCode()); // 鎵樼洏鏉$爜
+ wrkDetl.setAppeUser(userId);
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setModiUser(userId);
+ wrkDetl.setModiTime(now);
+ wrkDetl.setThreeCode(pick.getThreeCode());
+ agvWrkDetlService.insert(wrkDetl);
+
+ // 鏇存柊璁㈠崟
+ OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", pick.getOrderNo()).eq("matnr", pick.getMatnr()).eq("three_code",pick.getThreeCode()));
+ orderDetl.setQty(orderDetl.getQty() + pick.getCount());
+ if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("order_no", pick.getOrderNo()).eq("matnr", pick.getMatnr()).eq("three_code",pick.getThreeCode()))){
+ throw new CoolException("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"+pick.getOrderNo()+pick.getMatnr());
+ }
+ }
+ // 纭鏄惁鍏ㄩ儴鍑哄簱
+ int sameNumber = 0;
+ List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", pickParams.getWrkNo()));
+ for (AgvLocDetl agvLocDetl : agvLocDetls) {
+ for (AgvWrkDetl agvWrkDetl : agvWrkDetls) {
+ if (agvLocDetl.getMatnr().equals(agvWrkDetl.getMatnr())
+ && agvLocDetl.getThreeCode().equals(agvWrkDetl.getThreeCode())
+ && agvLocDetl.getSuppCode().equals(agvWrkDetl.getSuppCode())
+ && agvLocDetl.getAnfme().equals(agvWrkDetl.getAnfme())) {
+ sameNumber++;
+ }
+ }
+ }
+ if (agvLocDetls.size() == sameNumber) {
+ AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("wrk_no", pickParams.getWrkNo()));
+ agvWrkMast.setIoType(101);
+ agvWrkMastService.update(agvWrkMast,new EntityWrapper<AgvWrkMast>().eq("wrk_no", pickParams.getWrkNo()));
+ }
+
+
+ return "缁勬墭鎴愬姛锛岀粦瀹氱珯鐐规垚鍔�";
+ }
+
+ /*
AGV鏃犲崟缁勬墭
*/
private void NoOrderComb(CombParam param, Long userId){
@@ -102,6 +164,8 @@
});
}
+
+
/*
AGV鏈夊崟缁勬墭
*/
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 6b14423..0f8c4b7 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
@@ -31,13 +31,6 @@
}
@Override
- public Page<OrderDetl> getPakoutDetlPage(Page<OrderDetl> page) {
- page.setRecords(baseMapper.getPakoutPage(page.getCondition()));
- page.setTotal(baseMapper.getPakoutPageCount(page.getCondition()));
- return page;
- }
-
- @Override
public OrderDetl selectItem(Long orderId, String matnr, String batch, String csocode, String isoCode) {
return this.baseMapper.selectItem(orderId,matnr,batch,csocode,isoCode);
}
diff --git a/src/main/resources/mapper/OrderDetlMapper.xml b/src/main/resources/mapper/OrderDetlMapper.xml
index b1ffd1a..92bf0a8 100644
--- a/src/main/resources/mapper/OrderDetlMapper.xml
+++ b/src/main/resources/mapper/OrderDetlMapper.xml
@@ -282,4 +282,21 @@
and matnr = #{matnr}
</select>
+ <select id="getPakoutDetlPage" resultMap="BaseResultMap">
+ select * from
+ (
+ select
+ ROW_NUMBER() over (order by mo.create_time desc) as row,
+ mod.*
+ from man_order_detl mod
+ inner join man_order mo on mod.order_id = mo.id
+ inner join man_doc_type mdt on mo.doc_type = mdt.doc_id
+ where 1=1
+ and mo.settle <= 2
+ and mo.status = 1
+ and mdt.pakout = 1
+ <include refid="pakOutPageCondition"></include>
+ ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})
+ </select>
+
</mapper>
--
Gitblit v1.9.1