From 7b7b6a60e5edee5a2f3c721acfe275a5676cd3d7 Mon Sep 17 00:00:00 2001
From: 李天宇 <876263681@qq.com>
Date: 星期二, 15 十月 2024 15:51:34 +0800
Subject: [PATCH] #update 修改库存明细统计搜索内容
---
src/main/java/com/zy/asrs/controller/MobileController.java | 292 ++++++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 242 insertions(+), 50 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index 0aa03bc..b9169d8 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -2,19 +2,20 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.annotations.ManagerAuth;
import com.core.common.BaseRes;
import com.core.common.Cools;
import com.core.common.R;
import com.core.exception.CoolException;
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.*;
import com.zy.asrs.entity.result.MobileAdjustResult;
+import com.zy.asrs.mapper.ManLocDetlMapper;
import com.zy.asrs.service.*;
-import com.zy.common.model.LocDto;
-import com.zy.common.model.TaskDto;
import com.zy.common.model.WrkDto;
+import com.zy.common.model.enums.WorkNoType;
+import com.zy.common.service.CommonService;
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
@@ -50,6 +51,31 @@
private BasDevpService basDevpService;
@Autowired
private PackService packService;
+ @Autowired
+ private ManLocDetlMapper manLocDetlMapper;
+ @Autowired
+ private StaDescService staDescService;
+ @Autowired
+ private CommonService commonService;
+ @Autowired
+ private MatService matService;
+
+ // 鍟嗗搧涓婃灦
+ @RequestMapping("/mat/onSale/auth")
+ @ManagerAuth
+ public R matOnSale(@RequestBody CombParam combParam){
+ mobileService.onSale(combParam);
+ return R.ok("涓婃灦鎴愬姛");
+ }
+ // 鍟嗗搧涓嬫灦
+ @RequestMapping("/mat/offSale/auth")
+ //@ManagerAuth
+ public R matOffSale(@RequestBody OffSaleParam offSaleParam){
+ mobileService.offSale(offSaleParam);
+ return R.ok("涓嬫灦鎴愬姛");
+ }
+
+
// 缁勬墭 ----------------------------------------------------------------------------------------------------
@@ -85,6 +111,14 @@
return R.ok("缁勬墭鎴愬姛");
}
+ @RequestMapping("/comb/auth2")
+ @ManagerAuth(memo = "缁勬墭")
+ public R comb2(@RequestBody CombParam combParam){
+ mobileService.comb2(combParam, getUserId());
+ return R.ok("缁勬墭鎴愬姛");
+ }
+
+
@RequestMapping("/pack/get/auth")
@ManagerAuth
public R packGet(@RequestParam String barcode){
@@ -101,7 +135,7 @@
@RequestMapping("/pack/comb/auth")
@ManagerAuth(memo = "涓嬬嚎缁勬墭")
public R packComb(@RequestBody CombParam combParam){
- mobileService.packComb(combParam, getUserId());
+// mobileService.packComb(combParam, getUserId());
return R.ok("缁勬墭鎴愬姛");
}
@@ -149,6 +183,16 @@
return R.ok().add(Cools.add("wrkNo", wrkMast.getWrkNo()).add("ioType", wrkMast.getIoType()).add("list", wrkDetls));
}
return R.ok();
+ }
+
+ // 鏍规嵁搴撲綅鐮佸拰鍟嗗搧鐮佹悳绱㈠晢鍝�
+ @RequestMapping("/mat/find/auth")
+ public R find(@RequestParam(required = false) String locNo
+ , @RequestParam(required = false) String matnr){
+ //List<ManLocDetl> manLocDetls = manLocDetlMapper.selectItem0(locNo, matnr);
+ ManLocDetl manLocDetl = manLocDetlMapper.selectLocNo0(locNo, matnr);
+ return R.ok(manLocDetl);
+ //return R.ok(manLocDetlMapper.selectItem0(locNo, matnr));
}
/**
@@ -298,60 +342,208 @@
}
@PostMapping("/order/out/pakout/auth")
-// @ManagerAuth(memo = "鏍规嵁璁㈠崟鍑哄簱")
+ @ManagerAuth(memo = "璁㈠崟鍑哄簱")
public synchronized R pakoutByOrder(@RequestBody JSONObject param) {
if(!param.containsKey("staNo") || !param.containsKey("orderNo")){
return R.parse(BaseRes.PARAM);
}
- Integer staNo = param.containsKey("staNo") ? Integer.parseInt(param.get("staNo").toString()) : 0;
- String orderNo = param.containsKey("orderNo") ? param.get("orderNo").toString() : "";
+ mobileService.pakoutByOrder(param,getUserId());
+ return R.ok("鍑哄簱鎴愬姛");
+ }
- BasDevp sta = basDevpService.checkSiteStatus(staNo);
- //鏍规嵁璁㈠崟鍙风敓鎴愬嚭搴撲换鍔″伐浣滄。,寰呭疄鐜�
- List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no", orderNo));
- for(OrderDetl orderDetl : orderDetls){
- //鏌ヨ鎵�鏈夊簱浣嶇姸鎬佷负F鐨勫簱浣嶄俊鎭�
- List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),null);
- if (locDetls.size() == 0) {
- throw new CoolException("搴撳瓨涓病鏈夎鐗╂枡");
+ //骞冲簱pda涓婃灦
+ @RequestMapping("/manDetl/in")
+ public R manDetlAdd(@RequestBody JSONObject json){
+ if (json == null){
+ return R.error("浼犲叆鏁版嵁涓虹┖");
+ }
+ return mobileService.manDetlIn(json);
+ }
+
+ //骞冲簱pda涓嬫灦
+ @RequestMapping("/manDetl/out")
+ public R manDetlDelete(@RequestBody JSONObject json){
+ if (json == null){
+ return R.error("浼犲叆鏁版嵁涓虹┖");
+ }
+ return mobileService.manDetlOut(json);
+ }
+
+ @RequestMapping("/loc/f/list")
+ @ManagerAuth(memo = "鑾峰彇鍦ㄥ簱搴撲綅")
+ public R locNoF(@RequestParam(required = false) String locNo){
+ Wrapper<LocMast> wrapper = new EntityWrapper<LocMast>().eq("loc_sts", "F");
+ if (!Cools.isEmpty(locNo)) {
+ wrapper.like("loc_no", locNo);
+ }
+ List<LocMast> list = locMastService.selectList(wrapper);
+ return R.ok().add(list);
+ }
+
+ @RequestMapping("/pick/sta/list")
+ @ManagerAuth(memo = "鑾峰彇骞舵澘绔�")
+ public R pickSta(){
+ List<StaDesc> list = staDescService.selectList(new EntityWrapper<StaDesc>().eq("type_no",104));
+ return R.ok().add(list);
+ }
+
+ @RequestMapping("/pick/mat/list")
+ @ManagerAuth(memo = "鑾峰彇骞舵澘鐗╂枡")
+ public R pickMats(@RequestParam(required = false) String matnr){
+ List<DocType> docTypes = docTypeService.selectList(new EntityWrapper<DocType>().like("doc_name", "鍏ュ簱"));
+ ArrayList<Long> typeList = new ArrayList<>();
+ for (DocType docType : docTypes) {
+ typeList.add(docType.getDocId());
+ }
+
+ EntityWrapper<Order> wrapper = new EntityWrapper<>();
+ wrapper.eq("status", 1);
+ wrapper.in("doc_type", typeList);
+ List<Order> orders = orderService.selectList(wrapper);
+
+ ArrayList<Long> orderIds = new ArrayList<>();
+ for (Order order : orders) {
+ orderIds.add(order.getId());
+ }
+
+ //鎼滅储鏄庣粏
+ Wrapper<OrderDetl> wrapper1 = new EntityWrapper<OrderDetl>();
+ wrapper1.eq("status", 1);
+ wrapper1.in("order_id", orderIds);
+ if (!Cools.isEmpty(matnr)) {
+ wrapper1.like("matnr", matnr);
+ }
+
+ List<OrderDetl> list = orderDetlService.selectList(wrapper1);
+
+ ArrayList<PickMatParam> maps = new ArrayList<>();
+ for (OrderDetl orderDetl : list) {
+ //鍓╀綑鍙敤鏁伴噺
+ double count = orderDetl.getAnfme() - orderDetl.getWorkQty();
+ if (count <= 0) {
+ continue;
+ }
+
+ PickMatParam matParam = new PickMatParam();
+ matParam.setMatnr(orderDetl.getMatnr());
+ matParam.setBatch(orderDetl.getBatch());
+ matParam.setOrderNo(orderDetl.getOrderNo());
+ matParam.setOrderId(orderDetl.getOrderId());
+ matParam.setCount(count);
+ matParam.setUseCount(0D);
+ maps.add(matParam);
+ }
+ return R.ok().add(maps);
+ }
+
+ @RequestMapping("/pick/in")
+ @ManagerAuth(memo = "骞舵澘鍏ュ簱")
+ @Transactional
+ public R pickConfirm(@RequestBody PickConfirmParam param){
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", param.getLocNo()));
+ if (!locMast.getLocSts().equals("F")) {
+ return R.error("搴撲綅鐘舵�佷笉鏄湪搴�");
+ }
+
+ StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
+ .eq("type_no", 104)
+ .eq("stn_no", param.getStaNo()));
+ if (staDesc == null) {
+ return R.error("绔欑偣涓嶅瓨鍦�");
+ }
+
+ //妫�楠屼紶鍙傛槸鍚﹀拰璁㈠崟鏄庣粏鍖归厤
+ for (PickMatParam matParam : param.getList()) {
+ Wrapper<OrderDetl> wrapper = new EntityWrapper<OrderDetl>()
+ .eq("order_no", matParam.getOrderNo())
+ .eq("status", 1)
+ .eq("matnr", matParam.getMatnr());
+ if (!Cools.isEmpty(matParam.getBatch())) {
+ wrapper.eq("batch", matParam.getBatch());
+ }
+ OrderDetl orderDetl = orderDetlService.selectOne(wrapper);
+ if (orderDetl == null) {
+ return R.error("鐗╂枡鏁版嵁涓嶅瓨鍦�");
+ }
+
+ //鍓╀綑鍙敤鏁伴噺
+ double count = orderDetl.getAnfme() - orderDetl.getWorkQty();
+ if (matParam.getCount() != count) {
+ return R.error("鐗╂枡鏁版嵁宸茶繃鏈�");
+ }
+
+ if (matParam.getUseCount() > count) {
+ return R.error("鍙敤鏁伴噺涓嶈冻");
}
}
+ Date now = new Date();
+ // 鐢熸垚宸ヤ綔鍙�
+ int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(104));
+ // 鐢熸垚宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setIoTime(now);
+ wrkMast.setWrkSts(101L); // 宸ヤ綔鐘舵�侊細101.鐢熸垚鍑哄簱
+ wrkMast.setIoType(104); // 鍏ュ嚭搴撶姸鎬�
+ wrkMast.setIoPri(13D); // 浼樺厛绾э細13
+ wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
+ wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
+ wrkMast.setSourceLocNo(param.getLocNo()); // 婧愬簱浣�
+ wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+ wrkMast.setPicking("Y"); // 鎷f枡
+ wrkMast.setExitMk("N"); // 閫�鍑�
+ wrkMast.setEmptyMk("N"); // 绌烘澘
+ wrkMast.setBarcode(locMast.getBarcode());
+ wrkMast.setAppeUser(getUserId()); // 鎿嶄綔浜哄憳鏁版嵁
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiUser(getUserId());
+ wrkMast.setModiTime(now);
+ wrkMast.setCrnNo(staDesc.getCrnNo());
+ if (!wrkMastService.insert(wrkMast)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細" + param.getLocNo());
+ }
+ // 鐢熸垚宸ヤ綔妗f槑缁�
+ for (PickMatParam matParam : param.getList()) {
+ EntityWrapper<Mat> wrapper = new EntityWrapper<>();
+ wrapper.eq("status", 1);
+ wrapper.eq("matnr", matParam.getMatnr());
+ Mat mat = matService.selectOne(wrapper);
+ if (mat == null) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鐗╂枡淇℃伅涓嶅瓨鍦細" + matParam.getMatnr());
+ }
-// if (Cools.isEmpty(locDtos)) {
-// return R.parse(BaseRes.PARAM);
-// }
-// boolean lack = true;
-// for (LocDto locDto : locDtos) {
-// if (!locDto.isLack()) {
-// lack = false;
-// break;
-// }
-// }
-// if (lack) {
-// return R.error("搴撳瓨涓嶈冻");
-// }
-//
-// Thread.sleep(1000L);
-//
-// List<TaskDto> taskDtos = new ArrayList<>();
-// // 鏍规嵁 锛堝簱浣� & 鍑哄簱绔欙級 鍒嗙粍锛� 鐞嗘兂鐘舵�侊細涓�缁勪负涓�娆″嚭搴撲换鍔�
-// for (LocDto locDto : locDtos) {
-// if (locDto.isLack()) { continue; }
-// TaskDto taskDto = new TaskDto(locDto.getLocNo(), locDto.getStaNo(), locDto);
-// if (TaskDto.has(taskDtos, taskDto)) {
-// TaskDto dto = TaskDto.find(taskDtos, taskDto);
-// assert dto != null;
-// dto.getLocDtos().addAll(taskDto.getLocDtos());
-// } else {
-// taskDtos.add(taskDto);
-// }
-// }
-// // -----------------------------------------------------------------------------------------------
-// for (TaskDto taskDto : taskDtos) {
-// BasDevp staNo = basDevpService.checkSiteStatus(taskDto.getStaNo());
-// workService.stockOut(staNo, taskDto, getUserId());
-// }
+ WrkDetl wrkDetl = new WrkDetl();
+ wrkDetl.sync(mat);
+ wrkDetl.setOrderNo(matParam.getOrderNo());
+ wrkDetl.setWrkNo(workNo);
+ wrkDetl.setZpallet(wrkMast.getBarcode());
+ wrkDetl.setIoTime(now);
+ wrkDetl.setAnfme(matParam.getUseCount()); // 鏁伴噺
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setAppeUser(getUserId());
+ wrkDetl.setModiTime(now);
+ wrkDetl.setModiUser(getUserId());
+ if (!wrkDetlService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+ }
+
+ //鏇存柊璁㈠崟宸ヤ綔鏁伴噺
+ orderDetlService.increaseWorkQtyByOrderNo(matParam.getOrderNo(), matParam.getMatnr(), matParam.getBatch(), matParam.getUseCount());
+ }
+ // 淇敼搴撲綅鐘舵��: F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
+ locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", param.getLocNo()));
+ if (locMast.getLocSts().equals("F")) {
+ locMast.setLocSts("P");
+ locMast.setModiUser(getUserId());
+ locMast.setModiTime(now);
+ if (!locMastService.updateById(locMast)) {
+ throw new CoolException("棰勭害搴撲綅鐘舵�佸け璐ワ紝搴撲綅鍙凤細" + param.getLocNo());
+ }
+ } else {
+ throw new CoolException(param.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��");
+ }
+
return R.ok();
}
--
Gitblit v1.9.1