From 950c7cd4958e759b1eeece3e13028a5562cec0e7 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期四, 10 四月 2025 10:51:47 +0800 Subject: [PATCH] 组拖流程修改 --- rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java | 133 +++++++++++++++++++++++++++++++++----------- 1 files changed, 99 insertions(+), 34 deletions(-) diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java index b6536c2..26dfe08 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/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.vincent.rsf.framework.common.Cools; import com.vincent.rsf.framework.common.R; import com.vincent.rsf.framework.exception.CoolException; @@ -21,6 +22,7 @@ import com.vincent.rsf.server.manager.controller.params.WaitPakinParam; import com.vincent.rsf.server.manager.entity.*; import com.vincent.rsf.server.manager.enums.AsnExceStatus; +import com.vincent.rsf.server.manager.enums.PakinIOStatus; import com.vincent.rsf.server.manager.mapper.*; import com.vincent.rsf.server.manager.service.*; import com.vincent.rsf.server.system.constant.CodeRes; @@ -33,8 +35,10 @@ import com.vincent.rsf.server.system.mapper.UserMapper; import com.vincent.rsf.server.system.service.FieldsItemService; import com.vincent.rsf.server.system.service.UserLoginService; +import com.vincent.rsf.server.system.service.UserService; import com.vincent.rsf.server.system.utils.ExtendFieldsUtils; import com.vincent.rsf.server.system.utils.SerialRuleUtils; +import net.sf.jsqlparser.statement.select.Wait; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -65,7 +69,7 @@ @Autowired private TenantMapper tenantService; @Autowired - private UserMapper userService; + private UserService userService; @Autowired private UserLoginService userLoginService; @Autowired @@ -146,7 +150,7 @@ if (user.getStatus() != 1) { return R.parse(CodeRes.USER_10002); } - if (!user.getPassword().equals(param.getPassword())) { + if (!userService.comparePassword(user.getPassword(), param.getPassword())) { return R.parse(CodeRes.USER_10003); } @@ -244,7 +248,7 @@ throw new CoolException("閫氱煡鍗曟槑缁嗕笉瀛樺湪锛侊紒"); } if (Objects.isNull(dto.getReceiptQty()) || Double.compare(dto.getReceiptQty(), 0.0) == 0) { - throw new CoolException("鏀惰揣鏁伴噺涓嶈兘涓洪浂锛侊紒"); + throw new CoolException("鐗╂枡:" + dto.getMaktx() + "鏀惰揣鏁伴噺涓嶈兘涓洪浂锛侊紒"); } Double itemRcptQty = dto.getReceiptQty() + orderItem.getQty(); orderItem.setQty(itemRcptQty) @@ -291,7 +295,7 @@ .setSplrBatch(dto.getSplrBatch()) .setMatnrCode(matnr.getCode()) .setMatnrId(matnr.getId()) - .setMatnrName(matnr.getName()) + .setMaktx(matnr.getName()) //搴撳瓨鍗曚綅涓烘渶灏忓崟浣� .setUnit(dto.getStockUnit()) .setStockUnit(dto.getStockUnit()) @@ -316,7 +320,7 @@ // //鏃ュ織琛ㄦ搷浣� // operateOrderLogs(asnOrder); // } - return R.ok("鎿嶄綔鎴愬姛"); + return R.ok(asnOrder); } /** @@ -377,9 +381,21 @@ return fieldsMapper.selectList(new LambdaQueryWrapper<Fields>().eq(Fields::getFlagEnable, 1).eq(Fields::getStatus, 1)); } + /** + * @author Ryan + * @description 鑾峰彇缁勭洏鏄庣粏 + * @param + * @return + * @time 2025/4/7 16:58 + */ @Override public R getDeltByCode(String code) { - return R.ok(warehouseAreasItemService.getOne(new LambdaQueryWrapper<WarehouseAreasItem>().eq(WarehouseAreasItem::getTrackCode, code))); + //TODO 鍚庣画闇�鏍规嵁绛栫暐閰嶇疆锛岃幏鍙栫粍鎷栨暟鎹�傚锛氭贩瑁咃紝鎸夋壒娆℃贩瑁呯瓑 + LambdaQueryWrapper<WarehouseAreasItem> queryWrapper = new QueryWrapper<WarehouseAreasItem>() + .select("SUM(anfme) as anfme, track_code, asn_code, id, splr_batch, ispt_result, plat_item_id, batch, qty, work_qty, matnr_code, matnr_id, maktx").lambda() + .eq(WarehouseAreasItem::getTrackCode, code) + .groupBy(WarehouseAreasItem::getSplrBatch, WarehouseAreasItem::getAsnId, WarehouseAreasItem::getAreaId, WarehouseAreasItem::getMatnrId); + return R.ok(warehouseAreasItemService.getOne(queryWrapper)); } /** @@ -394,6 +410,12 @@ return waitPakinService.mergeItems(waitPakin); } + /** + * @author Ryan + * @description 瑙g粦 + * @param param + * @return + */ @Override public WaitPakin unBind(WaitPakinParam param) { return waitPakinService.unBind(param); @@ -475,36 +497,36 @@ if (Objects.isNull(params.getIsptCode())) { throw new CoolException("璐ㄦ鍗曚笉鑳戒负绌�"); } - if (Objects.isNull(params.getMatnrCode())) { - throw new CoolException("鐗╂枡缂栫爜涓嶈兘涓虹┖锛�"); - } QlyInspect inspect = qlyInspectMapper.selectOne(new LambdaQueryWrapper<QlyInspect>().eq(QlyInspect::getCode, params.getIsptCode())); if (Objects.isNull(inspect)) { throw new CoolException("璐ㄦ鍗曟嵁涓嶅瓨鍦紒!"); } - QlyIsptItem isptItem = qlyIsptItemService.getOne(new LambdaQueryWrapper<QlyIsptItem>() - .eq(QlyIsptItem::getMatnrCode, params.getMatnrCode()) + List<QlyIsptItem> isptItems = qlyIsptItemService.list(new LambdaQueryWrapper<QlyIsptItem>() + .eq(StringUtils.isNotBlank(params.getMatnrCode()), QlyIsptItem::getMatnrCode, StringUtils.isNotBlank(params.getMatnrCode()) ? params.getMatnrCode() : null) .eq(QlyIsptItem::getIspectId, inspect.getId())); - if (Objects.isNull(isptItem)) { + if (Objects.isNull(isptItems)) { throw new CoolException("璐ㄦ鍗曟槑缁嗕笉瀛樺湪锛侊紒"); } - - CheckObjDto objDto = new CheckObjDto(); - objDto.setIsptCode(inspect.getCode()) - .setAsnCode(inspect.getAsnCode()) - .setId(isptItem.getId()) - .setMatnrCode(isptItem.getMatnrCode()) - .setMaktx(isptItem.getMaktx()) - .setDisQty(isptItem.getDisQty()) - .setDlyQty(isptItem.getDlyQty()) - .setRcptQty(isptItem.getRcptQty()) - .setIsptResult(isptItem.getIsptResult()) - .setSplrBatch(isptItem.getSplrBatch()) - .setSplrName(isptItem.getSplrName()) - .setPicPath(isptItem.getPicPath()) - .setMemo(isptItem.getMemo()) - .setSafeQty(isptItem.getSafeQty()); - return R.ok(objDto); + List<CheckObjDto> dtos = new ArrayList<>(); + isptItems.forEach(isptItem -> { + CheckObjDto objDto = new CheckObjDto(); + objDto.setIsptCode(inspect.getCode()) + .setAsnCode(inspect.getAsnCode()) + .setId(isptItem.getId()) + .setMatnrCode(isptItem.getMatnrCode()) + .setMaktx(isptItem.getMaktx()) + .setDisQty(isptItem.getDisQty()) + .setDlyQty(isptItem.getDlyQty()) + .setRcptQty(isptItem.getRcptQty()) + .setIsptResult(isptItem.getIsptResult()) + .setSplrBatch(isptItem.getSplrBatch()) + .setSplrName(isptItem.getSplrName()) + .setPicPath(isptItem.getPicPath()) + .setMemo(isptItem.getMemo()) + .setSafeQty(isptItem.getSafeQty()); + dtos.add(objDto); + }); + return R.ok(dtos); } /** @@ -513,14 +535,12 @@ * @return */ @Override - public R checkUpdate(QlyIsptItem params) { - if (Objects.isNull(params.getId())) { + public R checkUpdate(List<QlyIsptItem> params) { + if (Objects.isNull(params) || params.isEmpty()) { throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒"); } IsptItemsParams itemsParams = new IsptItemsParams(); - List<QlyIsptItem> items = new ArrayList<>(); - items.add(params); - itemsParams.setIsptItem(items).setType("0"); + itemsParams.setIsptItem(params).setType("0"); if (qlyIsptItemService.batchUpdate(itemsParams)) { return R.ok(); } else { @@ -704,6 +724,51 @@ return R.ok(); } + @Override + public R completeOrder(Long id, Long loginUserId) { + return asnOrderMapper.completeOrder(id, loginUserId); + } + + /** + * @author Ryan + * @description 閫氳繃瀹瑰櫒鑾峰彇缁勬嫋鐗╂枡 + * @param + * @return + * @time 2025/4/9 16:57 + */ + @Override + public R getItemByContainer(Map<String, Object> params) { + //鑾峰彇缁勬嫋鏈敓鎴愪换鍔$殑缁勬嫋妗� + List<Short> asList = Arrays.asList(Short.valueOf(PakinIOStatus.PAKIN_IO_STATUS_DONE.val), Short.valueOf(PakinIOStatus.PAKIN_IO_STATUS_DONE.val)); + WaitPakin waitPakin = waitPakinService.getOne(new LambdaQueryWrapper<WaitPakin>() + .eq(WaitPakin::getBarcode, params.get("barcode").toString()) + .in(WaitPakin::getIoStatus, asList)); + if (Objects.isNull(waitPakin)) { + return R.ok(new ArrayList<>()); + } + List<WaitPakinItem> pakinItems = waitPakinItemService.list(new LambdaQueryWrapper<WaitPakinItem>() + .eq(WaitPakinItem::getPakinId, waitPakin.getId())); + if (pakinItems.isEmpty()) { + return R.ok(new ArrayList<>()); + } + List<String> list = pakinItems.stream().map(WaitPakinItem::getTrackCode).collect(Collectors.toList()); + LambdaQueryWrapper<WarehouseAreasItem> queryWrapper = new QueryWrapper<WarehouseAreasItem>() + .select("SUM(anfme) as anfme, track_code, asn_code, id, splr_batch, ispt_result, plat_item_id, batch, qty, work_qty, matnr_code, matnr_id, maktx") + .lambda() + .in(WarehouseAreasItem::getTrackCode, list) + .groupBy(WarehouseAreasItem::getSplrBatch, + WarehouseAreasItem::getTrackCode); + List<WarehouseAreasItem> warehouseAreasItems = warehouseAreasItemService.list(queryWrapper); + for (int i = 0; i < warehouseAreasItems.size(); i++) { + for (WaitPakinItem pakinItem : pakinItems) { + if (warehouseAreasItems.get(i).getTrackCode().equals(pakinItem.getTrackCode())) { + warehouseAreasItems.get(i).setAnfme(pakinItem.getAnfme()); + } + } + } + return R.ok(warehouseAreasItems); + } + /** * 鑾峰彇ReceiptDetlsDtos */ -- Gitblit v1.9.1