From dcf15598a799655041d098bb9d1a97dcb4485629 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期二, 09 九月 2025 19:01:06 +0800
Subject: [PATCH] no message
---
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MobileServiceImpl.java | 116 +++++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 82 insertions(+), 34 deletions(-)
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MobileServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MobileServiceImpl.java
index c569d81..ddadca4 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MobileServiceImpl.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MobileServiceImpl.java
@@ -2,6 +2,7 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zy.asrs.framework.common.R;
@@ -10,6 +11,7 @@
import com.zy.asrs.wms.apis.wcs.entity.response.CommonReponse;
import com.zy.asrs.wms.apis.wcs.utils.HttpEssUtils;
import com.zy.asrs.wms.asrs.entity.*;
+import com.zy.asrs.wms.asrs.entity.dto.MatnrDetlDto;
import com.zy.asrs.wms.asrs.entity.dto.PickSheetDetlDto;
import com.zy.asrs.wms.asrs.entity.dto.ShippingOrderDetlDto;
import com.zy.asrs.wms.asrs.entity.enums.*;
@@ -125,7 +127,7 @@
//缁勬嫋閫氱煡妗�
waitPakins.forEach(pakin -> {
- waitPakinService.comb(pakin);
+ waitPakinService.comb(pakin, ordersParam.getInType());
});
@@ -237,10 +239,10 @@
orders.forEach(order -> {
List<OrderDetl> detls = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>().eq(OrderDetl::getOrderId, order.getId()));
Double sum = detls.stream().mapToDouble(OrderDetl::getQty).sum();
- Double summed = detls.stream().mapToDouble(OrderDetl::getWorkQty).sum();
- Double v = Math.round((sum + summed) * 1000) / 1000.0;
+// Double summed = detls.stream().mapToDouble(OrderDetl::getWorkQty).sum();
+// Double v = Math.round((sum ) * 1000) / 1000.0;
Double anfme = detls.stream().mapToDouble(OrderDetl::getAnfme).sum();
- if (v.compareTo(anfme) == 0.0) {
+ if (sum.compareTo(anfme) == 0.0) {
order.setOrderSettle(OrderSettleType.COMPLETE.val());
if (!orderService.updateById(order)) {
throw new CoolException("鍗曟嵁鐘舵�佷慨鏀瑰け璐ワ紒锛�");
@@ -372,27 +374,30 @@
}
}
});
+
+ //鍒ゆ柇鏄惁涓烘尝娆″崟鎹�
+ if (pickSheet.getType().equals(1)) {
+ //鍒犻櫎娉㈡鍙婂搴旀槑缁嗕俊鎭�
+ if (!waveService.remove(new LambdaQueryWrapper<Wave>().eq(Wave::getId, pickSheet.getWaveId()))) {
+ throw new CoolException("娉㈡鍒楄〃鍗曟嵁鍒犻櫎澶辫触锛侊紒");
+ }
- //鍒犻櫎娉㈡鍙婂搴旀槑缁嗕俊鎭�
- if (!waveService.remove(new LambdaQueryWrapper<Wave>().eq(Wave::getId, pickSheet.getWaveId()))) {
- throw new CoolException("娉㈡鍒楄〃鍗曟嵁鍒犻櫎澶辫触锛侊紒");
- }
+ if (!waveDetlService.remove(new LambdaQueryWrapper<WaveDetl>().eq(WaveDetl::getWaveId, pickSheet.getWaveId()))) {
+ throw new CoolException("娉㈡鏄庣粏鍒楄〃鍒犻櫎澶辫触锛侊紒");
+ }
- if (!waveDetlService.remove(new LambdaQueryWrapper<WaveDetl>().eq(WaveDetl::getWaveId, pickSheet.getWaveId()))) {
- throw new CoolException("娉㈡鏄庣粏鍒楄〃鍒犻櫎澶辫触锛侊紒");
- }
-
- List<Order> orders = orderService.list(new LambdaQueryWrapper<Order>().eq(Order::getWaveId, pickSheet.getWaveId()));
- if (orders.isEmpty()) {
- throw new CoolException("娉㈡璁㈠崟涓嶅瓨鍦紒锛�");
- }
- List<Long> list = orders.stream().map(Order::getId).collect(Collectors.toList());
- boolean remove = orderDetlService.remove(new LambdaQueryWrapper<OrderDetl>().in(OrderDetl::getOrderId, list));
- if (!remove) {
- throw new CoolException("鍘熷璁㈠崟鏄庣粏鍒犻櫎澶辫触锛侊紒");
- }
- if (!orderService.remove(new LambdaQueryWrapper<Order>().in(Order::getId, list))) {
- throw new CoolException("鍘熷璁㈠崟鍒犻櫎澶辫触锛侊紒");
+ List<Order> orders = orderService.list(new LambdaQueryWrapper<Order>().eq(Order::getWaveId, pickSheet.getWaveId()));
+ if (orders.isEmpty()) {
+ throw new CoolException("娉㈡璁㈠崟涓嶅瓨鍦紒锛�");
+ }
+ List<Long> list = orders.stream().map(Order::getId).collect(Collectors.toList());
+ boolean remove = orderDetlService.remove(new LambdaQueryWrapper<OrderDetl>().in(OrderDetl::getOrderId, list));
+ if (!remove) {
+ throw new CoolException("鍘熷璁㈠崟鏄庣粏鍒犻櫎澶辫触锛侊紒");
+ }
+ if (!orderService.remove(new LambdaQueryWrapper<Order>().in(Order::getId, list))) {
+ throw new CoolException("鍘熷璁㈠崟鍒犻櫎澶辫触锛侊紒");
+ }
}
return true;
@@ -417,7 +422,8 @@
@Override
@Transactional(rollbackFor = Exception.class)
public boolean bindOrderBySite(Map<String, Object> param) {
- CacheSite siteNo = cacheSiteMapper.selectOne(new LambdaQueryWrapper<CacheSite>().eq(CacheSite::getSiteNo, param.get("siteNo")), false);
+ CacheSite siteNo = cacheSiteMapper.selectOne(new LambdaQueryWrapper<CacheSite>()
+ .eq(CacheSite::getSiteNo, param.get("siteNo")), false);
if (Objects.isNull(siteNo)) {
throw new CoolException("绔欑偣寮傚父锛侊紒");
}
@@ -425,7 +431,8 @@
if (!StringUtil.isNullOrEmpty(siteNo.getOrderNo())) {
throw new CoolException("褰撳墠鎾绔欑偣宸茬粦瀹氳鍗曪紒锛�");
}
- Order order = orderService.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderNo, param.get("orderNo").toString()));
+ Order order = orderService.getOne(new LambdaQueryWrapper<Order>()
+ .eq(Order::getOrderNo, param.get("orderNo").toString()));
if (Objects.isNull(order)) {
throw new CoolException("缁戝畾璁㈠崟涓嶅瓨鍦紒锛�");
}
@@ -443,8 +450,7 @@
.set(WaveSeed::getSiteNo, siteNo.getSiteNo()))) {
throw new CoolException("鎾绔欑偣鏇存柊澶辫触锛侊紒");
}
- //缁戝畾鎴愬姛锛屾挱绉嶅浜伅
- sowLightMange(siteNo.getSiteNo(), order, "LIGHT");
+
} else {
if (StringUtil.isNullOrEmpty(siteNo.getOrderNo())) {
throw new CoolException("褰撳墠鎾绔欑偣鏈粦瀹氳鍗曪紒锛�");
@@ -466,7 +472,7 @@
public void sowLightMange(String siteNo, Order order, String light) {
// 鍒拌揪鎷i�変綅锛屾帶鍒舵挱绉嶅浜伅
CacheSite cacheSite = cacheSiteService.getOne(new LambdaQueryWrapper<CacheSite>()
- .eq(CacheSite::getSiteNo, siteNo));
+ .eq(CacheSite::getSiteNo, siteNo));
if (Objects.isNull(cacheSite)) {
log.error("鏉$爜锛歿}锛屾湭鎵惧埌鎾澧欎寒鐏�", siteNo);
throw new CoolException("鏈壘鍒版挱绉嶅");
@@ -475,7 +481,7 @@
if (Objects.isNull(detls)) {
throw new CoolException("鏁版嵁閿欒锛岃鍗曟槑缁嗕笉瀛樺湪锛侊紒");
}
- int anfme = (int)detls.stream().mapToDouble(OrderDetl::getAnfme).sum();
+ int anfme = (int) detls.stream().mapToDouble(OrderDetl::getAnfme).sum();
SlapLightControlParam slapLightControlParam = new SlapLightControlParam();
slapLightControlParam
.setControllerCode(cacheSite.getMemo())
@@ -489,7 +495,7 @@
log.info("鎾澧欎寒鐏笅鍙�", JSONObject.toJSONString(slapLightControlParam));
CommonReponse response = HttpEssUtils.post("鍒拌揪鎷i�変綅锛屾挱绉嶅浜伅", HttpEssUtils.PLT_SEND_COMMAND, slapLightControlParam);
if (response.getCode().equals(0)) {
- log.info("鎾澧檣}浜伅鎴愬姛", cacheSite.getSiteNo());
+ log.info("鎾澧檣}浜伅鎴愬姛", cacheSite.getSiteNo());
} else {
log.info("鎾澧檣}浜伅澶辫触", cacheSite.getSiteNo());
}
@@ -544,6 +550,20 @@
}
params.forEach(order -> {
+ CacheSite cacheSite = cacheSiteService.getOne(new LambdaQueryWrapper<CacheSite>().eq(CacheSite::getOrderId, order.getId()));
+ if (cacheSite != null) {
+ cacheSite.setSiteStatus(CacheSiteStatusType.O.id);
+ cacheSite.setOrderId(null);
+ cacheSite.setOrderNo(null);
+ cacheSite.setBarcode(null);
+ cacheSite.setPlatformId(null);
+ cacheSite.setPlatformNo(null);
+ cacheSite.setUpdateTime(new Date());
+ if (!cacheSiteService.updateById(cacheSite)) {
+ throw new CoolException("缂撳瓨绔欐竻绌哄け璐�");
+ }
+ }
+
OrderDetl byId = orderDetlService.getById(order.getId());
if (Objects.isNull(byId)) {
throw new CoolException("璁㈠崟鏄庣粏涓嶅瓨鍦紒锛�");
@@ -656,7 +676,16 @@
*/
@Override
public R getMatsByCode(String matnr) {
- return R.ok().add(matService.list(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, matnr)));
+ QueryWrapper<LocDetl> wrapper = new QueryWrapper<>();
+ wrapper.eq("matnr", matnr).select("matnr, SUM(anfme) anfme");
+ LocDetl detl = locDetlService.getOne(wrapper);
+
+ Mat one = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, detl.getMatnr()), false);
+ if (Objects.isNull(one)) {
+ throw new CoolException("鐗╂枡涓嶅瓨鍦紒锛�");
+ }
+ one.setAnfme(detl.getAnfme());
+ return R.ok().add(Arrays.asList(one));
}
/**
@@ -680,7 +709,13 @@
List<LocDetl> detls = locDetlService.list(new LambdaQueryWrapper<LocDetl>()
.eq(LocDetl::getLocNo, barcode));
for (int i = 0; i < detls.size(); i++) {
-// detls.get(i).setMats(matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, detls.get(i).getMatnr())));
+ Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getId, detls.get(i).getMatId()));
+ MatnrDetlDto detlDto = new MatnrDetlDto();
+ detlDto.setTspec(mat.getSpecs())
+ .setType(mat.getModel())
+ .setMatnrName(mat.getMaktx())
+ .setMatnrNo(mat.getMatnr());
+ detls.get(i).setMats(detlDto);
}
return detls;
}
@@ -697,7 +732,7 @@
.eq(Loc::getLocStsId, LocStsType.F.val())
.eq(Loc::getLocNo, param.get("barcode")));
if (Objects.isNull(barcode)) {
- throw new CoolException("婧愬簱浣嶆槑缁嗕笉瀛樺湪锛侊紒");
+ throw new CoolException(param.get("barcode") + "搴撲綅鐘舵�佷笉鍙墽琛屾鎿嶄綔锛侊紒");
}
Loc tarCode = locService.getOne(new LambdaQueryWrapper<Loc>()
.eq(Loc::getLocStsId, LocStsType.O.val())
@@ -711,7 +746,7 @@
List<LocArea> locAreas = locAreaService.list(new LambdaQueryWrapper<LocArea>()
.in(LocArea::getLocId, ids)
.eq(LocArea::getTypeId, LocAreaTypeSts.LOC_AREA_TYPE_FLAT.id));
- if (!locAreas.isEmpty() && locAreas.size() == ids.size()) {
+ if (!locAreas.isEmpty() && locAreas.size() != ids.size()) {
throw new CoolException("闈炲钩搴撲笉鍙墽琛屾鎿嶄綔锛侊紒");
}
@@ -720,6 +755,19 @@
return R.error("搴撲綅鏄庣粏涓嶅瓨鍦紒锛�");
}
+ if (!locService.update(new LambdaUpdateWrapper<Loc>()
+ .eq(Loc::getLocNo, barcode.getLocNo())
+ .set(Loc::getBarcode, null)
+ .set(Loc::getLocStsId, LocStsType.O.val()))) {
+ throw new CoolException("婧愬簱浣嶇姸鎬佷慨鏀瑰け璐ワ紒锛�");
+ }
+
+ if (!locService.update(new LambdaUpdateWrapper<Loc>().eq(Loc::getLocNo, tarCode.getLocNo())
+ .set(Loc::getBarcode, barcode.getBarcode())
+ .set(Loc::getLocStsId, LocStsType.F.val()))) {
+ throw new CoolException("鐩爣搴撲綅淇敼澶辫触锛侊紒");
+ }
+
if (!locDetlService.update(new LambdaUpdateWrapper<LocDetl>()
.eq(LocDetl::getLocId, barcode.getId())
.set(LocDetl::getLocId, tarCode.getId())
--
Gitblit v1.9.1