From 4788f8d86807296a3dce75b5dd428c0a8d5828db Mon Sep 17 00:00:00 2001
From: hyingbo <1363390067@qq.com>
Date: 星期五, 25 七月 2025 17:12:39 +0800
Subject: [PATCH] 分类字典设置上级是否存在子节点修改
---
lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundOrderServiceImpl.java | 457 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 447 insertions(+), 10 deletions(-)
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundOrderServiceImpl.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundOrderServiceImpl.java
index 061ee1c..c9a24b8 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundOrderServiceImpl.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundOrderServiceImpl.java
@@ -5,6 +5,7 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.subject.Subject;
import org.flowable.engine.TaskService;
@@ -23,6 +24,7 @@
import org.jeecg.modules.tms.entity.vo.InboundDetailVo;
import org.jeecg.modules.tms.mapper.InboundOrderMapper;
import org.jeecg.modules.tms.service.*;
+import org.jeecg.modules.tms.utils.QrCodePrinterUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -64,9 +66,46 @@
@Autowired
private IToolLedgerDetailService toolLedgerDetailService;
+
+ @Autowired
+ private IInboundDetailService inboundDetailService;
+
+ @Autowired
+ private IGoodsShelvesService goodsShelvesService;
@Override
public boolean submit(String id) {
InboundOrder inboundOrder = this.getById(id);
+ //鍊熺敤鍜屽垉纾ㄥ叆搴撴椂鏍¢獙搴撳瓨
+ List<InboundDetail> inboundDetailList = inboundDetailService.lambdaQuery().eq(InboundDetail::getInStorehouseId,id).list();
+ if("2".equals(inboundOrder.getInStorehouseType())){
+ for(InboundDetail inboundDetail : inboundDetailList){
+ if(StringUtils.isNotBlank(inboundDetail.getToolId())){
+ ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolId,inboundDetail.getToolId()).one();
+ if(toolLedgerDetail.getQuantity().compareTo(inboundDetail.getInStorageQuantity()) == 0){
+ throw new JeecgBootException("缂栫爜涓恒��" + toolLedgerDetail.getToolId() + "銆戠殑宸ュ叿鏈�熷嚭锛屼笉闇�瑕佸綊杩樺叆搴擄紒");
+ }
+ }else {
+ ToolLedger toolLedger = toolLedgerService.lambdaQuery().eq(ToolLedger::getToolId,inboundDetail.getToolCode()).one();
+ if(toolLedger.getLendCount().compareTo(inboundDetail.getInStorageQuantity()) < 0){
+ throw new JeecgBootException("缂栫爜涓恒��" + toolLedger.getToolId() + "銆戠殑宸ュ叿鏈�熷嚭锛屼笉闇�瑕佸綊杩樺叆搴擄紒");
+ }
+ }
+ }
+ }else if("5".equals(inboundOrder.getInStorehouseType())){
+ for(InboundDetail inboundDetail : inboundDetailList){
+ if(StringUtils.isNotBlank(inboundDetail.getToolId())){
+ ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolId,inboundDetail.getToolId()).one();
+ if(toolLedgerDetail.getQuantity().compareTo(inboundDetail.getInStorageQuantity()) == 0){
+ throw new JeecgBootException("缂栫爜涓恒��" + toolLedgerDetail.getToolId() + "銆戠殑宸ュ叿鏈垉纾紝涓嶉渶瑕佸垉纾ㄥ叆搴擄紒");
+ }
+ }else {
+ ToolLedger toolLedger = toolLedgerService.lambdaQuery().eq(ToolLedger::getToolId,inboundDetail.getToolCode()).one();
+ if(toolLedger.getSharpeningCount().compareTo(inboundDetail.getInStorageQuantity()) < 0){
+ throw new JeecgBootException("缂栫爜涓恒��" + toolLedger.getToolId() + "銆戠殑宸ュ叿鏈垉纾紝涓嶉渶瑕佸垉纾ㄥ叆搴擄紒");
+ }
+ }
+ }
+ }
//鍙戣捣瀹℃壒娴佺▼
this.triggerProcess(inboundOrder);
//鏇存柊鍏ュ簱鍗曞鎵圭姸鎬佷负宸叉彁浜�
@@ -91,7 +130,7 @@
variables.put("comment", "鏂板鍏ュ簱鐢宠鍗曢粯璁ゅ惎鍔ㄦ祦绋�");
variables.put("proofreading", true);
List<String> usernames = new ArrayList<>();
- usernames.add(inboundOrder.getHandler());
+ usernames.add(inboundOrder.getReviewer());
variables.put("NextAssignee", usernames);
Result result = flowDefinitionService.startProcessInstanceByKey("tool_in_storage", variables);
return result.isSuccess();
@@ -165,9 +204,10 @@
//鏍规嵁浠诲姟瀹屾垚缁撴灉鏇存柊鐢宠鍗曠姸鎬�
if (result.isSuccess()) {
- inboundOrder.setOrderStatus(inboundOrderFlowDto.getStatus());
if ("3".equals(inboundOrderFlowDto.getStatus())) {
- inboundOrder.setInStatus("1");
+ inboundOrder.setOrderStatus("3");
+ }else if("4".equals(inboundOrderFlowDto.getStatus())){
+ inboundOrder.setOrderStatus("1");
}
inboundOrder.setReviewer(user.getUsername());
inboundOrder.setApprovalDate(new Date());
@@ -177,8 +217,13 @@
}
@Override
- public void addInStorage(JSONObject jSONObject) {
+ public List<Map<String,String>> addInStorage(JSONObject jSONObject) {
String inStorehouseType = jSONObject.getString("inStorehouseType");
+ String locationCodeId = jSONObject.getString("locationCodeId");
+ //浜岀淮鐮佹墦鍗板垪琛�
+ List<Map<String,String>> results = new ArrayList<>();
+ List<String> contentList = new ArrayList<>();
+ String classifyId = jSONObject.getString("classifyId");
Date inboundTime = jSONObject.getDate("inboundTime");
//鑾峰彇鍏ュ簱鏄庣粏
JSONArray jsonArray = jSONObject.getJSONArray("detailData");
@@ -201,6 +246,239 @@
newToolLedger.setLossCount(BigDecimal.ZERO);
newToolLedger.setRepairCount(BigDecimal.ZERO);
newToolLedger.setSharpeningCount(BigDecimal.ZERO);
+ newToolLedger.setClassifyId(classifyId);
+ toolLedgerService.save(newToolLedger);
+ }else {
+ toolLedger.setAvailableCount(toolLedger.getAvailableCount().add(inboundDetailVo.getInStorageQuantity()));
+ toolLedger.setTotalCount(toolLedger.getTotalCount().add(inboundDetailVo.getInStorageQuantity()));
+ toolLedgerService.updateById(toolLedger);
+ }
+ //绠″埌鎶�
+ if("1".equals(baseTools.getAccuracyClass())){
+ //寰幆鍏ュ簱鏁伴噺锛屼负瀹炵墿璧嬬爜
+ for(int i=0;i<inboundDetailVo.getInStorageQuantity().intValue();i++){
+ BaseTools newBaseTools = baseToolsService.getById(inboundDetailVo.getToolCodeId());
+ //鏌ヨ褰撳墠缂栫爜
+ String currentCode = newBaseTools.getCurrentCode();
+ //灏嗗瓧绗︿覆杞崲涓烘暣鏁�
+ int num = Integer.parseInt(currentCode);
+ //鍔�1鎿嶄綔
+ num++;
+ //杞崲鍥炲瓧绗︿覆骞朵繚鐣欏墠瀵奸浂
+ String result = String.format("%0" + currentCode.length() + "d", num);
+ //鎵撳嵃浜岀淮鐮�
+ //淇濆瓨鍏ュ簱娴佹按
+ InStoreDetail inStoreDetail = new InStoreDetail();
+ inStoreDetail.setInboundTime(inboundTime);
+ inStoreDetail.setOperateType("2");
+ inStoreDetail.setInNumber(BigDecimal.ONE);
+ inStoreDetail.setInStorehouseType("1");
+ inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
+ inStoreDetail.setToolId(inboundDetailVo.getToolCode()+"-"+result);
+ inStoreDetail.setGoodsShelvesId(locationCodeId);
+ inStoreDetailService.save(inStoreDetail);
+ //澧炲姞搴撳瓨鏄庣粏
+ ToolLedgerDetail toolLedgerDetail = new ToolLedgerDetail();
+ toolLedgerDetail.setToolCode(inboundDetailVo.getToolCodeId());
+ toolLedgerDetail.setPositionCode(locationCodeId);
+ toolLedgerDetail.setToolId(inboundDetailVo.getToolCode()+"-"+result);
+ toolLedgerDetail.setQuantity(BigDecimal.ONE);
+ toolLedgerDetail.setRemainingPercentage(BigDecimal.ONE);
+ toolLedgerDetail.setStatus("1");
+ toolLedgerDetailService.save(toolLedgerDetail);
+ //鏇存柊褰撳墠缂栫爜
+ newBaseTools.setCurrentCode(result);
+ baseToolsService.updateById(newBaseTools);
+ //鎵撳嵃浜岀淮鐮�
+ contentList.add(inboundDetailVo.getToolCode()+"-"+result);
+ }
+ //鎵撳嵃浜岀淮鐮侊紝鏆傛椂娉ㄩ噴锛屽緟鐜板満璋冭瘯鎵撴爣鏈�
+// for(String content : contentList){
+// Map<String,String> result = new HashMap<>();
+// result.put("content",content);
+// result.put("image", QrCodePrinterUtils.generateBacthQRCode(content, 200, 200));
+// // 鐢熸垚浜岀淮鐮佸浘鐗囷紙Base64锛�
+// results.add(result);
+// }
+ Map<String,String> result = new HashMap<>();
+ result.put("content","淇濆瓨鎴愬姛");
+ results.add(result);
+ //涓嶇鍒版妸
+ }else {
+ //淇濆瓨鍏ュ簱娴佹按
+ InStoreDetail inStoreDetail = new InStoreDetail();
+ inStoreDetail.setInboundTime(inboundTime);
+ inStoreDetail.setOperateType("2");
+ inStoreDetail.setInNumber(inboundDetailVo.getInStorageQuantity());
+ inStoreDetail.setInStorehouseType("1");
+ inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
+ inStoreDetail.setGoodsShelvesId(locationCodeId);
+ inStoreDetailService.save(inStoreDetail);
+ //鏌ヨ搴撳瓨鏄庣粏涓槸鍚﹀瓨鍦ㄨ宸ュ叿
+ ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()).one();
+ if(toolLedgerDetail == null){
+ ToolLedgerDetail newToolLedgerDetail = new ToolLedgerDetail();
+ newToolLedgerDetail.setToolCode(inboundDetailVo.getToolCodeId());
+ newToolLedgerDetail.setQuantity(inboundDetailVo.getInStorageQuantity());
+ newToolLedgerDetail.setPositionCode(locationCodeId);
+ newToolLedgerDetail.setStatus("1");
+ toolLedgerDetailService.save(newToolLedgerDetail);
+ }else {
+ toolLedgerDetail.setQuantity(toolLedgerDetail.getQuantity().add(inboundDetailVo.getInStorageQuantity()));
+ toolLedgerDetail.setPositionCode(locationCodeId);
+ toolLedgerDetailService.updateById(toolLedgerDetail);
+ }
+ Map<String,String> result = new HashMap<>();
+ result.put("content","淇濆瓨鎴愬姛");
+ results.add(result);
+ }
+ }
+ //褰掕繕鍏ュ簱
+ }else if("2".equals(inStorehouseType)){
+ //寰幆鏂板鏄庣粏
+ for(InboundDetailVo inboundDetailVo : inStoreDetailList) {
+ //鏌ヨ鏄惁绠″埌鎶婏紝绠″埌鎶婄殑鏌ヨ褰撳墠缂栫爜
+ BaseTools baseTools = baseToolsService.getById(inboundDetailVo.getToolCodeId());
+ //澧炲姞鍙敤搴撳瓨锛屽噺灏戝�熷嚭搴撳瓨
+ ToolLedger toolLedger = toolLedgerService.lambdaQuery().eq(ToolLedger::getToolId, inboundDetailVo.getToolCodeId()).one();
+ toolLedger.setAvailableCount(toolLedger.getAvailableCount().add(inboundDetailVo.getInStorageQuantity()));
+ toolLedger.setLendCount(toolLedger.getLendCount().subtract(inboundDetailVo.getInStorageQuantity()));
+ toolLedgerService.updateById(toolLedger);
+ //鏌ヨ鏄惁绠″埌鎶婏紝绠″埌鎶婄殑鐢╰oolId锛屼笉绠″埌鎶婄殑鐢╰oolCodeId
+ //绠″埌鎶�
+ if("1".equals(baseTools.getAccuracyClass())){
+ //澧炲姞搴撳瓨鏄庣粏鍙敤搴撳瓨锛屼慨鏀圭姸鎬�
+ ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery()
+ .eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId())
+ .eq(ToolLedgerDetail::getToolId,inboundDetailVo.getOnlyCode()).one();
+ toolLedgerDetail.setQuantity(BigDecimal.ONE);
+ toolLedgerDetail.setRemainingPercentage(BigDecimal.ONE);
+ toolLedgerDetail.setPositionCode(locationCodeId);
+ toolLedgerDetail.setStatus("1");
+ toolLedgerDetailService.updateById(toolLedgerDetail);
+ //淇濆瓨鍏ュ簱娴佹按
+ InStoreDetail inStoreDetail = new InStoreDetail();
+ inStoreDetail.setInboundTime(inboundTime);
+ inStoreDetail.setOperateType("2");
+ inStoreDetail.setInNumber(BigDecimal.ONE);
+ inStoreDetail.setInStorehouseType("2");
+ inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
+ inStoreDetail.setToolId(inboundDetailVo.getOnlyCode());
+ inStoreDetail.setGoodsShelvesId(locationCodeId);
+ inStoreDetailService.save(inStoreDetail);
+ //涓嶇鍒版妸
+ }else {
+ //澧炲姞搴撳瓨鏄庣粏鍙敤搴撳瓨锛屼慨鏀圭姸鎬�
+ ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()).one();
+ toolLedgerDetail.setQuantity(toolLedgerDetail.getQuantity().add(inboundDetailVo.getInStorageQuantity()));
+ toolLedgerDetail.setPositionCode(locationCodeId);
+ toolLedgerDetail.setStatus("1");
+ toolLedgerDetailService.updateById(toolLedgerDetail);
+ //淇濆瓨鍏ュ簱娴佹按
+ InStoreDetail inStoreDetail = new InStoreDetail();
+ inStoreDetail.setInboundTime(inboundTime);
+ inStoreDetail.setOperateType("2");
+ inStoreDetail.setInNumber(inboundDetailVo.getInStorageQuantity());
+ inStoreDetail.setInStorehouseType("2");
+ inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
+ inStoreDetail.setGoodsShelvesId(locationCodeId);
+ inStoreDetailService.save(inStoreDetail);
+ }
+
+ }
+ Map<String,String> result = new HashMap<>();
+ result.put("content","淇濆瓨鎴愬姛");
+ results.add(result);
+ }else if("5".equals(inStorehouseType)){
+ //寰幆鏂板鏄庣粏
+ for(InboundDetailVo inboundDetailVo : inStoreDetailList) {
+ //鏌ヨ鏄惁绠″埌鎶婏紝绠″埌鎶婄殑鏌ヨ褰撳墠缂栫爜
+ BaseTools baseTools = baseToolsService.getById(inboundDetailVo.getToolCodeId());
+ //澧炲姞鎬诲簱瀛樺強鍙敤搴撳瓨锛屽噺灏戝垉纾ㄥ簱瀛�
+ ToolLedger toolLedger = toolLedgerService.lambdaQuery().eq(ToolLedger::getToolId, inboundDetailVo.getToolCodeId()).one();
+ toolLedger.setAvailableCount(toolLedger.getAvailableCount().add(inboundDetailVo.getInStorageQuantity()));
+ toolLedger.setSharpeningCount(toolLedger.getSharpeningCount().subtract(inboundDetailVo.getInStorageQuantity()));
+ toolLedgerService.updateById(toolLedger);
+ //鏌ヨ鏄惁绠″埌鎶婏紝绠″埌鎶婄殑鐢╰oolId锛屼笉绠″埌鎶婄殑鐢╰oolCodeId
+ //绠″埌鎶�
+ if("1".equals(baseTools.getAccuracyClass())){
+ //澧炲姞搴撳瓨鏄庣粏鍙敤搴撳瓨锛屼慨鏀圭姸鎬�
+ ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery()
+ .eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId())
+ .eq(ToolLedgerDetail::getToolId,inboundDetailVo.getOnlyCode()).one();
+ toolLedgerDetail.setQuantity(BigDecimal.ONE);
+ toolLedgerDetail.setRemainingPercentage(BigDecimal.ONE);
+ toolLedgerDetail.setPositionCode(locationCodeId);
+ toolLedgerDetail.setStatus("1");
+ toolLedgerDetailService.updateById(toolLedgerDetail);
+ //淇濆瓨鍏ュ簱娴佹按
+ InStoreDetail inStoreDetail = new InStoreDetail();
+ inStoreDetail.setInboundTime(inboundTime);
+ inStoreDetail.setOperateType("2");
+ inStoreDetail.setInNumber(BigDecimal.ONE);
+ inStoreDetail.setInStorehouseType("5");
+ inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
+ inStoreDetail.setToolId(inboundDetailVo.getOnlyCode());
+ inStoreDetail.setGoodsShelvesId(locationCodeId);
+ inStoreDetailService.save(inStoreDetail);
+ //涓嶇鍒版妸
+ }else {
+ //澧炲姞搴撳瓨鏄庣粏鍙敤搴撳瓨锛屼慨鏀圭姸鎬�
+ ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()).one();
+ toolLedgerDetail.setQuantity(toolLedgerDetail.getQuantity().add(inboundDetailVo.getInStorageQuantity()));
+ toolLedgerDetail.setPositionCode(locationCodeId);
+ toolLedgerDetail.setStatus("1");
+ toolLedgerDetailService.updateById(toolLedgerDetail);
+ //淇濆瓨鍏ュ簱娴佹按
+ InStoreDetail inStoreDetail = new InStoreDetail();
+ inStoreDetail.setInboundTime(inboundTime);
+ inStoreDetail.setOperateType("2");
+ inStoreDetail.setInNumber(inboundDetailVo.getInStorageQuantity());
+ inStoreDetail.setInStorehouseType("5");
+ inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
+ inStoreDetail.setGoodsShelvesId(locationCodeId);
+ inStoreDetailService.save(inStoreDetail);
+ }
+
+ }
+ Map<String,String> result = new HashMap<>();
+ result.put("content","淇濆瓨鎴愬姛");
+ results.add(result);
+ }
+ return results;
+ }
+
+ @Override
+ public List<Map<String,String>> addApplyInStorage(JSONObject jSONObject) {
+ String inStorehouseType = jSONObject.getString("inStorehouseType");
+ String locationCodeId = jSONObject.getString("locationCodeId");
+ //浜岀淮鐮佹墦鍗板垪琛�
+ List<Map<String,String>> results = new ArrayList<>();
+ List<String> contentList = new ArrayList<>();
+ //鍏ュ簱鐢宠鍗昳d
+ String orderId = jSONObject.getString("orderId");
+ //鑾峰彇鍏ュ簱鏄庣粏
+ JSONArray jsonArray = jSONObject.getJSONArray("detailData");
+ List<InboundDetailVo> inStoreDetailList =jsonArray.toJavaList(InboundDetailVo.class);
+ //鏂拌揣鍏ュ簱
+ if("1".equals(inStorehouseType)){
+ //寰幆鏂板鏄庣粏
+ for(InboundDetailVo inboundDetailVo : inStoreDetailList){
+ //鏌ヨ鏄惁绠″埌鎶婏紝绠″埌鎶婄殑鏌ヨ褰撳墠缂栫爜
+ BaseTools baseTools = baseToolsService.getById(inboundDetailVo.getToolCodeId());
+ //鎿嶄綔搴撳瓨,鏌ヨ鎬诲簱瀛樻槸鍚﹀瓨鍦ㄨ绫诲垁鍏�
+ ToolLedger toolLedger = toolLedgerService.lambdaQuery().eq(ToolLedger::getToolId,inboundDetailVo.getToolCodeId()).one();
+ if(toolLedger == null){
+ ToolLedger newToolLedger = new ToolLedger();
+ newToolLedger.setToolId(inboundDetailVo.getToolCodeId());
+ newToolLedger.setAvailableCount(inboundDetailVo.getInStorageQuantity());
+ newToolLedger.setTotalCount(inboundDetailVo.getInStorageQuantity());
+ newToolLedger.setLendCount(BigDecimal.ZERO);
+ newToolLedger.setDetectionCount(BigDecimal.ZERO);
+ newToolLedger.setLossCount(BigDecimal.ZERO);
+ newToolLedger.setRepairCount(BigDecimal.ZERO);
+ newToolLedger.setSharpeningCount(BigDecimal.ZERO);
+ newToolLedger.setClassifyId(inboundDetailVo.getClassifyId());
toolLedgerService.save(newToolLedger);
}else {
toolLedger.setAvailableCount(toolLedger.getAvailableCount().add(inboundDetailVo.getInStorageQuantity()));
@@ -222,33 +500,52 @@
String result = String.format("%0" + currentCode.length() + "d", num);
//淇濆瓨鍏ュ簱娴佹按
InStoreDetail inStoreDetail = new InStoreDetail();
- inStoreDetail.setInboundTime(inboundTime);
- inStoreDetail.setOperateType("2");
+ inStoreDetail.setInStorehouseId(orderId);
+ inStoreDetail.setInboundTime(new Date());
+ inStoreDetail.setOperateType("1");
inStoreDetail.setInNumber(BigDecimal.ONE);
inStoreDetail.setInStorehouseType("1");
inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
inStoreDetail.setToolId(inboundDetailVo.getToolCode()+"-"+result);
+ inStoreDetail.setGoodsShelvesId(locationCodeId);
inStoreDetailService.save(inStoreDetail);
//澧炲姞搴撳瓨鏄庣粏
ToolLedgerDetail toolLedgerDetail = new ToolLedgerDetail();
toolLedgerDetail.setToolCode(inboundDetailVo.getToolCodeId());
toolLedgerDetail.setToolId(inboundDetailVo.getToolCode()+"-"+result);
toolLedgerDetail.setQuantity(BigDecimal.ONE);
+ toolLedgerDetail.setRemainingPercentage(BigDecimal.ONE);
+ toolLedgerDetail.setPositionCode(locationCodeId);
toolLedgerDetail.setStatus("1");
toolLedgerDetailService.save(toolLedgerDetail);
//鏇存柊褰撳墠缂栫爜
newBaseTools.setCurrentCode(result);
baseToolsService.updateById(newBaseTools);
+ //鎵撳嵃浜岀淮鐮�
+ contentList.add(inboundDetailVo.getToolCode()+"-"+result);
}
+ //鎵撳嵃浜岀淮鐮侊紝鏆傛椂娉ㄩ噴锛屽緟鐜板満楠岃瘉鎵撴爣鏈�
+// for(String content : contentList){
+// Map<String,String> result = new HashMap<>();
+// result.put("content",content);
+// result.put("image", QrCodePrinterUtils.generateBacthQRCode(content, 200, 200));
+// // 鐢熸垚浜岀淮鐮佸浘鐗囷紙Base64锛�
+// results.add(result);
+// }
+ Map<String,String> result = new HashMap<>();
+ result.put("content","淇濆瓨鎴愬姛");
+ results.add(result);
//涓嶇鍒版妸
}else {
//淇濆瓨鍏ュ簱娴佹按
InStoreDetail inStoreDetail = new InStoreDetail();
- inStoreDetail.setInboundTime(inboundTime);
- inStoreDetail.setOperateType("2");
+ inStoreDetail.setInboundTime(new Date());
+ inStoreDetail.setOperateType("1");
inStoreDetail.setInNumber(inboundDetailVo.getInStorageQuantity());
inStoreDetail.setInStorehouseType("1");
+ inStoreDetail.setInStorehouseId(orderId);
inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
+ inStoreDetail.setGoodsShelvesId(locationCodeId);
inStoreDetailService.save(inStoreDetail);
//鏌ヨ搴撳瓨鏄庣粏涓槸鍚﹀瓨鍦ㄨ宸ュ叿
ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()).one();
@@ -256,19 +553,159 @@
ToolLedgerDetail newToolLedgerDetail = new ToolLedgerDetail();
newToolLedgerDetail.setToolCode(inboundDetailVo.getToolCodeId());
newToolLedgerDetail.setQuantity(inboundDetailVo.getInStorageQuantity());
+ newToolLedgerDetail.setPositionCode(locationCodeId);
newToolLedgerDetail.setStatus("1");
toolLedgerDetailService.save(newToolLedgerDetail);
}else {
toolLedgerDetail.setQuantity(toolLedgerDetail.getQuantity().add(inboundDetailVo.getInStorageQuantity()));
+ toolLedgerDetail.setPositionCode(locationCodeId);
toolLedgerDetailService.updateById(toolLedgerDetail);
}
+ Map<String,String> result = new HashMap<>();
+ result.put("content","淇濆瓨鎴愬姛");
+ results.add(result);
}
+ //鏇存敼鏄庣粏鍏ュ簱鐘舵�佸強瀹為檯鍏ュ簱鏁伴噺
+ InboundDetail inboundDetail = inboundDetailService.getById(inboundDetailVo.getId());
+ inboundDetail.setInStatus("3");
+ inboundDetail.setInActualCount(inboundDetailVo.getInStorageQuantity());
+ inboundDetailService.updateById(inboundDetail);
}
+ //褰掕繕鍏ュ簱
}else if("2".equals(inStorehouseType)){
-
+ //寰幆鏂板鏄庣粏
+ for(InboundDetailVo inboundDetailVo : inStoreDetailList) {
+ //鏌ヨ鏄惁绠″埌鎶婏紝绠″埌鎶婄殑鏌ヨ褰撳墠缂栫爜
+ BaseTools baseTools = baseToolsService.getById(inboundDetailVo.getToolCodeId());
+ //澧炲姞鍙敤搴撳瓨锛屽噺灏戝�熷嚭搴撳瓨
+ ToolLedger toolLedger = toolLedgerService.lambdaQuery().eq(ToolLedger::getToolId, inboundDetailVo.getToolCodeId()).one();
+ toolLedger.setAvailableCount(toolLedger.getAvailableCount().add(inboundDetailVo.getInStorageQuantity()));
+ toolLedger.setLendCount(toolLedger.getLendCount().subtract(inboundDetailVo.getInStorageQuantity()));
+ toolLedgerService.updateById(toolLedger);
+ //鏌ヨ鏄惁绠″埌鎶婏紝绠″埌鎶婄殑鐢╰oolId锛屼笉绠″埌鎶婄殑鐢╰oolCodeId
+ //绠″埌鎶�
+ if("1".equals(baseTools.getAccuracyClass())){
+ //澧炲姞搴撳瓨鏄庣粏鍙敤搴撳瓨锛屼慨鏀圭姸鎬�
+ ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery()
+ .eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId())
+ .eq(ToolLedgerDetail::getToolId,inboundDetailVo.getOnlyCode()).one();
+ toolLedgerDetail.setQuantity(BigDecimal.ONE);
+ toolLedgerDetail.setRemainingPercentage(BigDecimal.ONE);
+ toolLedgerDetail.setPositionCode(locationCodeId);
+ toolLedgerDetail.setStatus("1");
+ toolLedgerDetailService.updateById(toolLedgerDetail);
+ //淇濆瓨鍏ュ簱娴佹按
+ InStoreDetail inStoreDetail = new InStoreDetail();
+ inStoreDetail.setInboundTime(new Date());
+ inStoreDetail.setOperateType("1");
+ inStoreDetail.setInNumber(BigDecimal.ONE);
+ inStoreDetail.setInStorehouseType("2");
+ inStoreDetail.setInStorehouseId(orderId);
+ inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
+ inStoreDetail.setToolId(inboundDetailVo.getOnlyCode());
+ inStoreDetail.setGoodsShelvesId(locationCodeId);
+ inStoreDetailService.save(inStoreDetail);
+ //涓嶇鍒版妸
+ }else {
+ //澧炲姞搴撳瓨鏄庣粏鍙敤搴撳瓨锛屼慨鏀圭姸鎬�
+ ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()).one();
+ toolLedgerDetail.setQuantity(toolLedgerDetail.getQuantity().add(inboundDetailVo.getInStorageQuantity()));
+ toolLedgerDetail.setStatus("1");
+ toolLedgerDetail.setPositionCode(locationCodeId);
+ toolLedgerDetailService.updateById(toolLedgerDetail);
+ //淇濆瓨鍏ュ簱娴佹按
+ InStoreDetail inStoreDetail = new InStoreDetail();
+ inStoreDetail.setInboundTime(new Date());
+ inStoreDetail.setOperateType("1");
+ inStoreDetail.setInNumber(inboundDetailVo.getInStorageQuantity());
+ inStoreDetail.setInStorehouseType("2");
+ inStoreDetail.setInStorehouseId(orderId);
+ inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
+ inStoreDetail.setGoodsShelvesId(locationCodeId);
+ inStoreDetailService.save(inStoreDetail);
+ }
+ //鏇存敼鏄庣粏鍏ュ簱鐘舵�佸強瀹為檯鍏ュ簱鏁伴噺
+ InboundDetail inboundDetail = inboundDetailService.getById(inboundDetailVo.getId());
+ inboundDetail.setInStatus("3");
+ inboundDetail.setInActualCount(inboundDetailVo.getInStorageQuantity());
+ inboundDetailService.updateById(inboundDetail);
+ }
+ Map<String,String> result = new HashMap<>();
+ result.put("content","淇濆瓨鎴愬姛");
+ results.add(result);
}else if("5".equals(inStorehouseType)){
-
+ //寰幆鏂板鏄庣粏
+ for(InboundDetailVo inboundDetailVo : inStoreDetailList) {
+ //鏌ヨ鏄惁绠″埌鎶婏紝绠″埌鎶婄殑鏌ヨ褰撳墠缂栫爜
+ BaseTools baseTools = baseToolsService.getById(inboundDetailVo.getToolCodeId());
+ //澧炲姞鎬诲簱瀛樺強鍙敤搴撳瓨锛屽噺灏戝垉纾ㄥ簱瀛�
+ ToolLedger toolLedger = toolLedgerService.lambdaQuery().eq(ToolLedger::getToolId, inboundDetailVo.getToolCodeId()).one();
+ toolLedger.setAvailableCount(toolLedger.getAvailableCount().add(inboundDetailVo.getInStorageQuantity()));
+ toolLedger.setSharpeningCount(toolLedger.getSharpeningCount().subtract(inboundDetailVo.getInStorageQuantity()));
+ toolLedgerService.updateById(toolLedger);
+ //鏌ヨ鏄惁绠″埌鎶婏紝绠″埌鎶婄殑鐢╰oolId锛屼笉绠″埌鎶婄殑鐢╰oolCodeId
+ //绠″埌鎶�
+ if("1".equals(baseTools.getAccuracyClass())){
+ //澧炲姞搴撳瓨鏄庣粏鍙敤搴撳瓨锛屼慨鏀圭姸鎬�
+ ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery()
+ .eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId())
+ .eq(ToolLedgerDetail::getToolId,inboundDetailVo.getOnlyCode()).one();
+ toolLedgerDetail.setQuantity(BigDecimal.ONE);
+ toolLedgerDetail.setRemainingPercentage(BigDecimal.ONE);
+ toolLedgerDetail.setPositionCode(locationCodeId);
+ toolLedgerDetail.setStatus("1");
+ toolLedgerDetailService.updateById(toolLedgerDetail);
+ //淇濆瓨鍏ュ簱娴佹按
+ InStoreDetail inStoreDetail = new InStoreDetail();
+ inStoreDetail.setInboundTime(new Date());
+ inStoreDetail.setOperateType("1");
+ inStoreDetail.setInNumber(BigDecimal.ONE);
+ inStoreDetail.setInStorehouseType("5");
+ inStoreDetail.setInStorehouseId(orderId);
+ inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
+ inStoreDetail.setToolId(inboundDetailVo.getOnlyCode());
+ inStoreDetail.setGoodsShelvesId(locationCodeId);
+ inStoreDetailService.save(inStoreDetail);
+ //涓嶇鍒版妸
+ }else {
+ //澧炲姞搴撳瓨鏄庣粏鍙敤搴撳瓨锛屼慨鏀圭姸鎬�
+ ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()).one();
+ toolLedgerDetail.setQuantity(toolLedgerDetail.getQuantity().add(inboundDetailVo.getInStorageQuantity()));
+ toolLedgerDetail.setStatus("1");
+ toolLedgerDetail.setPositionCode(locationCodeId);
+ toolLedgerDetailService.updateById(toolLedgerDetail);
+ //淇濆瓨鍏ュ簱娴佹按
+ InStoreDetail inStoreDetail = new InStoreDetail();
+ inStoreDetail.setInboundTime(new Date());
+ inStoreDetail.setOperateType("1");
+ inStoreDetail.setInNumber(inboundDetailVo.getInStorageQuantity());
+ inStoreDetail.setInStorehouseType("5");
+ inStoreDetail.setInStorehouseId(orderId);
+ inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
+ inStoreDetail.setGoodsShelvesId(locationCodeId);
+ inStoreDetailService.save(inStoreDetail);
+ }
+ //鏇存敼鏄庣粏鍏ュ簱鐘舵�佸強瀹為檯鍏ュ簱鏁伴噺
+ InboundDetail inboundDetail = inboundDetailService.getById(inboundDetailVo.getId());
+ inboundDetail.setInStatus("3");
+ inboundDetail.setInActualCount(inboundDetailVo.getInStorageQuantity());
+ inboundDetailService.updateById(inboundDetail);
+ }
+ Map<String,String> result = new HashMap<>();
+ result.put("content","淇濆瓨鎴愬姛");
+ results.add(result);
}
+ //鏇存敼鐢宠鍗曞叆搴撶姸鎬�
+ InboundOrder inboundOrder = this.getById(orderId);
+ List<InboundDetail> inboundDetailList = inboundDetailService.lambdaQuery().eq(InboundDetail::getInStorehouseId,orderId).list();
+ boolean flag = inboundDetailList.stream().allMatch(inboundDetail -> "3".equals(inboundDetail.getInStatus()));
+ if(flag){
+ inboundOrder.setInStatus("3");
+ }else {
+ inboundOrder.setInStatus("2");
+ }
+ this.updateById(inboundOrder);
+ return results;
}
private LoginUser getCurrentUser() {
--
Gitblit v1.9.3