From 032a882c857145fca3b1cd80f61b339663b897c3 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期五, 08 四月 2022 15:34:26 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/controller/OpenController.java | 363 ++++++++++++++++-----------------------------------
1 files changed, 114 insertions(+), 249 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 39e8eac..df24f0b 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -1,19 +1,17 @@
package com.zy.asrs.controller;
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.core.annotations.ManagerAuth;
-import com.core.common.Cools;
-import com.core.common.R;
+import com.core.common.*;
import com.core.exception.CoolException;
-import com.zy.asrs.entity.BasDevp;
-import com.zy.asrs.entity.LocDetl;
-import com.zy.asrs.entity.MatCode;
-import com.zy.asrs.entity.WrkMast;
-import com.zy.asrs.entity.param.OpenApiStockOutParam;
-import com.zy.asrs.entity.result.PakoutVo;
-import com.zy.asrs.entity.result.StoPreTab;
-import com.zy.asrs.service.*;
-import com.zy.common.model.LocDetlDto;
+import com.zy.asrs.entity.DocType;
+import com.zy.asrs.entity.Mat;
+import com.zy.asrs.entity.Order;
+import com.zy.asrs.entity.OrderDetl;
+import com.zy.asrs.entity.param.OpenOrderPakinParam;
+import com.zy.asrs.service.DocTypeService;
+import com.zy.asrs.service.MatService;
+import com.zy.asrs.service.OrderDetlService;
+import com.zy.asrs.service.OrderService;
+import com.zy.common.model.DetlDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PostMapping;
@@ -21,259 +19,126 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
/**
- * Created by vincent on 2021/3/19
+ * Created by vincent on 2022/4/8
*/
@RestController
-@RequestMapping("/open/api")
+@RequestMapping("open/asrs/")
public class OpenController {
@Autowired
- private LocDetlService locDetlService;
+ private OrderService orderService;
@Autowired
- private MatCodeService matCodeService;
+ private OrderDetlService orderDetlService;
@Autowired
- private WorkService workService;
+ private SnowflakeIdWorker snowflakeIdWorker;
@Autowired
- private BasDevpService basDevpService;
+ private DocTypeService docTypeService;
@Autowired
- private WrkMastService wrkMastService;
+ private MatService matService;
- @PostMapping("/stockOut/prew")
+ /**
+ * 娣诲姞鍏ュ簱鍗�
+ */
+ @PostMapping("order/pakin/default/v1")
@Transactional
- public R stockOutPrew(@RequestBody List<OpenApiStockOutParam> params){
- List<StoPreTab> result = new ArrayList<>();
- StringBuilder errorMsg = new StringBuilder();
- boolean error = false;
- for (OpenApiStockOutParam param : params) {
- Double sumAnfme = Optional.ofNullable(locDetlService.getSumAnfme(param.getMatnr())).orElse(0.0D);
- double lack = 0.0D;
- if (sumAnfme < param.getAnfme()) {
- lack = param.getAnfme() - sumAnfme;
- if (!error) {
- error = true;
- }
- MatCode mat = matCodeService.selectById(param.getMatnr());
- // 瑙嗗浘瀵硅薄
- StoPreTab tab = new StoPreTab();
- tab.setTitle(param.getMatnr() + (mat==null?"": "锛�" + mat.getMatName() + "锛�"));
- tab.setMatnr(param.getMatnr());
- tab.setMaktx((mat==null?"": "锛�" + mat.getMatName() + "锛�"));
- tab.setAnfme(param.getTotal());
- tab.setLocNo("缂鸿揣");
- tab.setTotal(lack);
- tab.setReduce(lack);
- tab.setRemQty(0.0D);
- tab.setPrior(false);
- tab.setPrior$("脳");
- tab.setType(0);
- result.add(tab);
-
- errorMsg.append(mat == null ? param.getMatnr() : mat.getMatName()).append("搴撳瓨涓嶈冻锛岀己璐ф暟閲忥細").append(param.getAnfme() - sumAnfme).append("</br>");
-// continue;
- }
- List<LocDetl> locDetls = locDetlService.selectPakoutByRule(param.getMatnr());
- double issued = Optional.of(param.getAnfme() - lack).orElse(0.0D) ;
- for (LocDetl locDetl : locDetls) {
- if (issued > 0) {
- // 瑙嗗浘瀵硅薄
- StoPreTab tab = new StoPreTab();
- tab.setTitle(locDetl.getMatnr() + "锛�" + locDetl.getMaktx() + "锛�");
- tab.setMatnr(locDetl.getMatnr());
- tab.setMaktx(locDetl.getMaktx());
- tab.setAnfme(param.getTotal());
-
- tab.setLocNo(locDetl.getLocNo());
-// tab.setNodeId(locDetl.getNodeId());
- tab.setTotal(locDetl.getAnfme());
- tab.setReduce(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued);
- tab.setRemQty(tab.getTotal() - tab.getReduce());
- tab.setPrior(false);
- tab.setPrior$("脳");
- tab.setType(2);
- result.add(tab);
- // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
- issued = issued - locDetl.getAnfme();
- }
- }
-
+ public synchronized R orderCreate(@RequestBody OpenOrderPakinParam param) {
+ if (Cools.isEmpty(param)) {
+ return R.parse(BaseRes.PARAM);
}
-// if (error) {
-// return R.error(errorMsg.toString());
-// }
- return R.ok(errorMsg).add(result);
- }
-
- @PostMapping("/stockOut")
- @Transactional
- public R stockOut(@RequestBody List<OpenApiStockOutParam> params){
- List<PakoutVo> result = new ArrayList<>();
- if (!Cools.isEmpty(params)) {
- for (OpenApiStockOutParam param : params) {
- // 鎺ㄨ崘璐т綅琛ヤ粨宸ヤ綔妗i槻閲�
- if (wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("packed", param.getAllotNo()).le("wrk_sts", 14)) > 0) {
- throw new CoolException("褰撳墠琛ヤ粨浠诲姟姝e湪鎵ц锛岃鑰愬績绛夊緟");
- }
- Double sumAnfme = Optional.ofNullable(locDetlService.getSumAnfme(param.getMatnr())).orElse(0.0D);
- if (!Cools.isEmpty(param.getAllotNo()) && sumAnfme < param.getAnfme()) {
- throw new CoolException("绔嬪簱搴撳瓨涓嶈冻锛岀己璐ф暟閲忥細" + (param.getAnfme() - sumAnfme));
- }
- double lack = 0.0D;
- if (sumAnfme < param.getAnfme()) {
- lack = param.getAnfme() - sumAnfme;
- PakoutVo pakoutVo = new PakoutVo();
- pakoutVo.setLocNo("缂鸿揣");
- pakoutVo.setAnfme(lack);
- pakoutVo.setMatnr(param.getMatnr());
-// pakoutVo.setZpallet("param.getZpallet()");
- result.add(pakoutVo);
-
-// throw new CoolException(param.getMatnr() + "鐗╂枡鏁伴噺涓嶈冻锛岀己璐ф暟閲忥細" + (param.getAnfme() - sumAnfme));
- }
-
- List<LocDetl> locDetls = locDetlService.selectPakoutByRule(param.getMatnr());
- double issued = Optional.of(param.getAnfme()-lack).orElse(0.0D) ;
- for (LocDetl locDetl : locDetls) {
- if (issued > 0) {
- // 鐢熸垚鍑哄簱宸ヤ綔妗�
-
- // 鍏ㄦ澘
- if (issued>=locDetl.getAnfme()) {
- BasDevp staNo = basDevpService.checkSiteStatus(103);
- List<LocDetlDto> detlDtos = new ArrayList<>();
- LocDetlDto dto = new LocDetlDto();
- dto.setLocDetl(locDetl);
- dto.setCount(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued);
- detlDtos.add(dto);
- workService.stockOut(staNo, detlDtos, 101, 9527L, param.getAllotNo(), Cools.isEmpty(param.getAllotNo()));
- // 鎷f枡
- } else {
- BasDevp staNo = basDevpService.checkSiteStatus(107);
- List<LocDetlDto> detlDtos = new ArrayList<>();
- LocDetlDto dto = new LocDetlDto();
- dto.setLocDetl(locDetl);
- dto.setCount(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued);
- detlDtos.add(dto);
- workService.stockOut(staNo, detlDtos, 103, 9527L, param.getAllotNo(), Cools.isEmpty(param.getAllotNo()));
- }
-
- PakoutVo pakoutVo = new PakoutVo();
- pakoutVo.setLocNo(locDetl.getLocNo());
- pakoutVo.setAnfme(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued);
- pakoutVo.setMatnr(locDetl.getMatnr());
- pakoutVo.setZpallet(locDetl.getZpallet());
- result.add(pakoutVo);
-
- // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
- issued = issued - locDetl.getAnfme();
- }
- }
-
+ if (Cools.isEmpty(param.getOrderNo())) {
+ return R.error("鍗曟嵁缂栧彿[orderNo]涓嶈兘涓虹┖");
+ }
+ if (Cools.isEmpty(param.getOrderType())) {
+ return R.error("鍗曟嵁绫诲瀷[orderType]涓嶈兘涓虹┖");
+ }
+ if (Cools.isEmpty(param.getOrderDetails())) {
+ return R.error("鍗曟嵁鏄庣粏[orderDetails]涓嶈兘涓虹┖");
+ }
+ Order order = orderService.selectByNo(param.getOrderNo());
+ if (!Cools.isEmpty(order)) {
+ return R.error(param.getOrderNo() + "鍗曟嵁宸插瓨鍦紝璇峰嬁閲嶅鎻愪氦");
+ }
+ DocType docType = docTypeService.selectOrAdd(param.getOrderType());
+ Date now = new Date();
+ // 鍗曟嵁涓绘。
+ order = new Order(
+ String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖]
+ param.getOrderNo(), // 璁㈠崟缂栧彿
+ DateUtils.convert(now), // 鍗曟嵁鏃ユ湡
+ docType.getDocId(), // 鍗曟嵁绫诲瀷
+ null, // 椤圭洰缂栧彿
+ null, //
+ null, // 璋冩嫧椤圭洰缂栧彿
+ null, // 鍒濆绁ㄦ嵁鍙�
+ null, // 绁ㄦ嵁鍙�
+ null, // 瀹㈡埛缂栧彿
+ null, // 瀹㈡埛
+ null, // 鑱旂郴鏂瑰紡
+ null, // 鎿嶄綔浜哄憳
+ null, // 鍚堣閲戦
+ null, // 浼樻儬鐜�
+ null, // 浼樻儬閲戦
+ null, // 閿�鍞垨閲囪喘璐圭敤鍚堣
+ null, // 瀹炰粯閲戦
+ null, // 浠樻绫诲瀷
+ null, // 涓氬姟鍛�
+ null, // 缁撶畻澶╂暟
+ null, // 閭垂鏀粯绫诲瀷
+ null, // 閭垂
+ null, // 浠樻鏃堕棿
+ null, // 鍙戣揣鏃堕棿
+ null, // 鐗╂祦鍚嶇О
+ null, // 鐗╂祦鍗曞彿
+ 1L, // 璁㈠崟鐘舵��
+ 1, // 鐘舵��
+ 9527L, // 娣诲姞浜哄憳
+ now, // 娣诲姞鏃堕棿
+ 9527L, // 淇敼浜哄憳
+ now, // 淇敼鏃堕棿
+ null // 澶囨敞
+ );
+ if (!orderService.insert(order)) {
+ throw new CoolException("鐢熸垚鍗曟嵁涓绘。澶辫触锛岃鑱旂郴绠$悊鍛�");
+ }
+ // 鍗曟嵁鏄庣粏妗�
+ List<DetlDto> list = new ArrayList<>();
+ List<DetlDto> orderDetails = param.getOrderDetails();
+ for (DetlDto detail : orderDetails) {
+ DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme());
+ if (DetlDto.has(list, dto)) {
+ DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
+ assert detlDto != null;
+ detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
+ } else {
+ list.add(dto);
}
}
-
- return R.ok().add(result);
- }
-
- @PostMapping("/available/take/site")
- @Transactional
- public R availableTakeSite(){
- List<Map<String, Object>> result = new ArrayList<>();
- List<Integer> outSite = basDevpService.getAvailableOutSite(101);
- for (Integer siteId : outSite) {
- Map<String, Object> map = new HashMap<>();
- map.put("siteId", siteId);
- map.put("desc", siteId + "锛堝叏鏉垮嚭搴撳彛锛�");
- result.add(map);
- }
- List<Integer> pickOutSite = basDevpService.getAvailableOutSite(103);
- for (Integer siteId : pickOutSite) {
- Map<String, Object> map = new HashMap<>();
- map.put("siteId", siteId);
- map.put("desc", siteId + "锛堟嫞鏂欏嚭搴撳彛锛�");
- result.add(map);
- }
- return R.ok().add(result);
- }
-
- @PostMapping("/get/asrsLocDetl")
- @Transactional
- public R queryLocDetl(String matnr) {
- List<LocDetl> locDetls = locDetlService.getAsrsLocDetl(matnr);
- return R.ok().add(locDetls);
- }
-
- @PostMapping("/stockOut/locMode")
- @Transactional
- public R stockOutLocMode(@RequestBody List<OpenApiStockOutParam> params){
- List<PakoutVo> result = new ArrayList<>();
- if (!Cools.isEmpty(params)) {
- for (OpenApiStockOutParam param : params) {
- // 鎺ㄨ崘璐т綅琛ヤ粨宸ヤ綔妗i槻閲�
- if (wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("packed", param.getAllotNo()).le("wrk_sts", 14)) > 0) {
- throw new CoolException("褰撳墠琛ヤ粨浠诲姟姝e湪鎵ц锛岃鑰愬績绛夊緟");
- }
- Double sumAnfme = Optional.ofNullable(locDetlService.getSumAnfme(param.getMatnr())).orElse(0.0D);
- if (!Cools.isEmpty(param.getAllotNo()) && sumAnfme < param.getAnfme()) {
- throw new CoolException("绔嬪簱搴撳瓨涓嶈冻锛岀己璐ф暟閲忥細" + (param.getAnfme() - sumAnfme));
- }
- double lack = 0.0D;
- if (sumAnfme < param.getAnfme()) {
- lack = param.getAnfme() - sumAnfme;
- PakoutVo pakoutVo = new PakoutVo();
- pakoutVo.setLocNo("缂鸿揣");
- pakoutVo.setAnfme(lack);
- pakoutVo.setMatnr(param.getMatnr());
-// pakoutVo.setZpallet("param.getZpallet()");
- result.add(pakoutVo);
-
-// throw new CoolException(param.getMatnr() + "鐗╂枡鏁伴噺涓嶈冻锛岀己璐ф暟閲忥細" + (param.getAnfme() - sumAnfme));
- }
-
- // 鏍规嵁绔嬪簱搴撲綅鐮佸幓鑾峰彇绔嬪簱淇℃伅
- List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", param.getLocNo()));
- if (locDetls.size() == 0) {
- throw new CoolException("鏈煡璇㈠埌搴撲綅淇℃伅锛�");
- }
- double issued = Optional.of(param.getAnfme()-lack).orElse(0.0D) ;
- for (LocDetl locDetl : locDetls) {
- // 鐢熸垚鍑哄簱宸ヤ綔妗�
-
- Integer locNoNum = locDetlService.countLocNoNum(locDetl.getLocNo());
- // 鍏ㄦ澘
- if (locNoNum == 1) {
- BasDevp staNo = basDevpService.checkSiteStatus(103);
- List<LocDetlDto> detlDtos = new ArrayList<>();
- LocDetlDto dto = new LocDetlDto();
- dto.setLocDetl(locDetl);
- dto.setCount(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued);
- detlDtos.add(dto);
- workService.stockOut(staNo, detlDtos, 101, 9527L, param.getAllotNo(), Cools.isEmpty(param.getAllotNo()));
- } else { // 鎷f枡
- BasDevp staNo = basDevpService.checkSiteStatus(107);
- List<LocDetlDto> detlDtos = new ArrayList<>();
- LocDetlDto dto = new LocDetlDto();
- dto.setLocDetl(locDetl);
- dto.setCount(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued);
- detlDtos.add(dto);
- workService.stockOut(staNo, detlDtos, 103, 9527L, param.getAllotNo(), Cools.isEmpty(param.getAllotNo()));
- }
- PakoutVo pakoutVo = new PakoutVo();
- pakoutVo.setLocNo(locDetl.getLocNo());
- pakoutVo.setAnfme(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued);
- pakoutVo.setMatnr(locDetl.getMatnr());
- pakoutVo.setZpallet(locDetl.getZpallet());
- result.add(pakoutVo);
-
- // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
- issued = issued - locDetl.getAnfme();
- }
-
+ for (DetlDto detlDto : list) {
+ Mat mat = matService.selectByMatnr(detlDto.getMatnr());
+ if (Cools.isEmpty(mat)) {
+ throw new CoolException(detlDto.getMatnr() + "缂栧彿鍟嗗搧妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧");
+ }
+ OrderDetl orderDetl = new OrderDetl();
+ orderDetl.sync(mat);
+ 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("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
}
}
-
- return R.ok().add(result);
+ return R.ok();
}
+
+
}
--
Gitblit v1.9.1