From b3b117424d3405190cf482f9236a40295ef2a447 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期二, 11 三月 2025 15:11:39 +0800 Subject: [PATCH] #新增 1. 添加扩展字段 2. 添加扩展字段明细 --- rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java | 183 ++++++++++++++++++++++++++++++++------------- 1 files changed, 128 insertions(+), 55 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 b2bc903..6a5a632 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 @@ -4,15 +4,19 @@ import com.vincent.rsf.framework.common.Cools; import com.vincent.rsf.framework.common.R; import com.vincent.rsf.framework.exception.CoolException; +import com.vincent.rsf.server.api.controller.params.OtherReceiptParams; import com.vincent.rsf.server.api.controller.params.ReceiptParams; import com.vincent.rsf.server.api.entity.dto.ReceiptDetlsDto; +import com.vincent.rsf.server.api.entity.enums.OrderWorkType; import com.vincent.rsf.server.api.service.MobileService; import com.vincent.rsf.server.common.config.ConfigProperties; +import com.vincent.rsf.server.common.enums.WarehouseAreaType; import com.vincent.rsf.server.common.security.JwtSubject; import com.vincent.rsf.server.common.utils.JwtUtil; import com.vincent.rsf.server.manager.entity.*; import com.vincent.rsf.server.manager.mapper.*; import com.vincent.rsf.server.manager.service.WarehouseAreasItemService; +import com.vincent.rsf.server.manager.service.WarehouseAreasService; import com.vincent.rsf.server.system.constant.CodeRes; import com.vincent.rsf.server.system.controller.param.LoginParam; import com.vincent.rsf.server.system.controller.result.LoginResult; @@ -22,6 +26,7 @@ import com.vincent.rsf.server.system.mapper.TenantMapper; import com.vincent.rsf.server.system.mapper.UserMapper; import com.vincent.rsf.server.system.service.UserLoginService; +import com.vincent.rsf.server.system.utils.SerialRuleUtils; import org.apache.tika.utils.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -52,11 +57,14 @@ private UserMapper userService; @Autowired private UserLoginService userLoginService; - @Autowired private WarehouseAreasItemService warehouseAreasItemService; + @Autowired + private WarehouseAreasService warehouseAreasService; @Resource private AsnOrderItemMapper asnOrderItemMapper; + @Resource + private AsnOrderMapper asnOrderMapper; @Resource private MatnrMapper matnrMapper; @Resource @@ -114,11 +122,125 @@ if (StringUtils.isEmpty(barcode)) { return R.error("鏍囩鐮佷笉鑳戒负绌猴紒锛�"); } - ReceiptDetlsDto detlsDto = new ReceiptDetlsDto(); AsnOrderItem asnOrderItem = asnOrderItemMapper.selectOne(new LambdaQueryWrapper<AsnOrderItem>().eq(AsnOrderItem::getBarcode, barcode)); if (Objects.isNull(asnOrderItem)) { throw new CoolException("鍗曟嵁鏄庣粏涓嶅瓨鍦紒锛�"); } + + return getAsnOrderItem(asnOrderItem); + } + + /** + * @author Ryan + * @description 鏀惰揣鑷虫敹璐у尯 + * @param params + * @return + * @time 2025/3/10 15:41 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public R receiptToWarehouse(ReceiptParams params) { + if (params.getReceipts().isEmpty()) { + throw new CoolException("鏀惰揣鏄庣粏涓嶈兘涓虹┖锛侊紒"); + } + if (Objects.isNull(params.getWhAreaId())) { + throw new CoolException("搴撳尯鏍囪瘑涓嶈兘涓虹┖锛侊紒"); + } + WarehouseAreas areasItem = warehouseAreasService.getOne(new LambdaQueryWrapper<WarehouseAreas>().eq(WarehouseAreas::getId, params.getWhAreaId())); + if (Objects.isNull(areasItem)) { + throw new CoolException("鏁版嵁閿欒锛氬綋鍓嶅簱鍖轰笉瀛樺湪锛侊紒"); + } + List<ReceiptDetlsDto> receipts = params.getReceipts(); + List<WarehouseAreasItem> allOrders = new ArrayList<>(); + receipts.forEach(dto -> { + Matnr matnr = matnrMapper.selectById(dto.getMatnrId()); + if (Objects.isNull(matnr)) { + throw new CoolException("鏁版嵁閿欒锛氬綋鍓嶇墿鏂欎笉瀛樺湪锛侊紒"); + } + WarehouseAreasItem item = new WarehouseAreasItem(); + item.setBarcode(dto.getBarcode()) + .setAreaName(areasItem.getName()) + .setAreaId(areasItem.getId()) + .setStockUnit(dto.getStockUnit()) + .setBatch(SerialRuleUtils.generateRuleCode("sys_receipt_batch", dto)) + .setAnfme(dto.getReceiptQty()) + .setSplrBtch(dto.getSplrBatch()) + .setMatnrCode(matnr.getCode()) + .setMatnrId(matnr.getId()) + .setMatnrName(matnr.getName()) + //搴撳瓨鍗曚綅涓烘渶灏忓崟浣� + .setUnit(dto.getStockUnit()) + .setStockUnit(dto.getStockUnit()) + .setWeight(matnr.getWeight()) + .setShipperId(matnr.getShipperId()); + //TODO 渚涘簲鍟嗘爣璇嗘湭璁剧疆锛屾爣璇嗙敱PO鍗曚緵搴斿晢缂栫爜杞崲 + + allOrders.add(item); + }); + + if (!warehouseAreasItemService.saveBatch(allOrders)) { + throw new CoolException("鏀惰揣澶辫触锛侊紒"); + } + + return R.ok("鎿嶄綔鎴愬姛"); + } + + /** + * @author Ryan + * @description 鍏跺畠鏀惰揣 + * @param params + * @return + */ + @Override + public R otherReceipt(OtherReceiptParams params) { + if (Objects.isNull(params.getAsnCode())) { + throw new CoolException("閫氱煡鍗曚笉鑳戒负绌猴紒锛�"); + } + if (Objects.isNull(params.getBarcode())) { + throw new CoolException("鐗╂枡缂栫爜涓嶈兘涓虹┖锛侊紒"); + } + + AsnOrderItem asnOrderItem = asnOrderItemMapper.selectOne(new LambdaQueryWrapper<AsnOrderItem>() + .eq(AsnOrderItem::getAsnCode, params.getAsnCode()) + .eq(AsnOrderItem::getBarcode, params.getBarcode())); + + if (Objects.isNull(asnOrderItem)) { + throw new CoolException("鍗曟嵁鏄庣粏涓嶅瓨鍦紒锛�"); + } + + return getAsnOrderItem(asnOrderItem); + + } + + /** + * @author Ryan + * @description 鑾峰彇鎵�鏈夐�氱煡鍗� + * @return + */ + @Override + public List<AsnOrder> getAllAsnOrders() { + List<AsnOrder> asnOrders = asnOrderMapper.selectList(new LambdaQueryWrapper<AsnOrder>().eq(AsnOrder::getWkType, OrderWorkType.ORDER_PURCHASE_IN.type)); + return asnOrders; + } + + /** + * @author Ryan + * @description 鑾峰彇鏀惰揣鍖� + * @param + * @return + * @time 2025/3/11 10:12 + */ + @Override + public R getReceiptAreas() { + return R.ok(warehouseAreasService.list(new LambdaQueryWrapper<WarehouseAreas>().eq(WarehouseAreas::getType, WarehouseAreaType.WAREHOUSE_AREA_RECEIPT.type))); + } + + /** + * 鑾峰彇ReceiptDetlsDto + */ + private R getAsnOrderItem(AsnOrderItem asnOrderItem) { + ReceiptDetlsDto detlsDto = new ReceiptDetlsDto(); + detlsDto.setAsnCode(asnOrderItem.getAsnCode()) .setMatnk(asnOrderItem.getMatnk()) .setBarcode(asnOrderItem.getBarcode()) @@ -136,8 +258,10 @@ .setStockUnit(matnr.getStockUnit()); QlyInspect inspect = qlyInspectMapper.selectOne(new LambdaQueryWrapper<QlyInspect>() .eq(QlyInspect::getAsnItemId, asnOrderItem.getId()).eq(QlyInspect::getPoItemId, asnOrderItem.getPoDetlId())); - //set 璐ㄦ缁撴灉 - detlsDto.setInspect(inspect.getStatus$()); + if (!Objects.isNull(inspect)) { + //set 璐ㄦ缁撴灉 + detlsDto.setInspect(inspect.getStatus$()); + } //鑾峰彇褰撳墠搴撳瓨淇℃伅 StockItem stockItem = stockItemMapper.selectOne(new LambdaQueryWrapper<StockItem>() .eq(StockItem::getAsnItemId, asnOrderItem.getId()) @@ -157,56 +281,5 @@ return R.ok(detlsDto); } - /** - * @author Ryan - * @description 鏀惰揣鑷虫敹璐у尯 - * @param params - * @return - * @time 2025/3/10 15:41 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public R receiptToWarehouse(ReceiptParams params) { - if (params.getReceipts().isEmpty()) { - throw new CoolException("鏀惰揣鏄庣粏涓嶈兘涓虹┖锛侊紒"); - } - if (Objects.isNull(params.getWhAreaId())) { - throw new CoolException("搴撳尯鏍囪瘑涓嶈兘涓虹┖锛侊紒"); - } - WarehouseAreasItem areasItem = warehouseAreasItemService.getOne(new LambdaQueryWrapper<WarehouseAreasItem>().eq(WarehouseAreasItem::getAreaId, params.getWhAreaId())); - List<ReceiptDetlsDto> receipts = params.getReceipts(); - List<WarehouseAreasItem> allOrders = new ArrayList<>(); - receipts.forEach(dto -> { - Matnr matnr = matnrMapper.selectById(dto.getMatnrId()); - if (Objects.isNull(matnr)) { - throw new CoolException("鏁版嵁閿欒锛氬綋鍓嶇墿鏂欎笉瀛樺湪锛侊紒"); - } - WarehouseAreasItem item = new WarehouseAreasItem(); - item.setBarcode(dto.getBarcode()) - .setAreaName(areasItem.getAreaName()) - .setAreaId(areasItem.getAreaId()) - .setStockUnit(dto.getStockUnit()) - //TODO 缂栫爜瑙勫垯鐢熸垚鎵规 (鐗╂枡鍙�+鏃ユ湡) - .setBatch(null) - .setAnfme(dto.getReceiptQty()) - .setSplrBtch(dto.getSplrBatch()) - .setMatnrCode(matnr.getCode()) - .setMatnrId(matnr.getId()) - .setMatnrName(matnr.getName()) - //TODO 鍏ュ簱鍗曚綅鎹㈢畻 - .setUnit(dto.getStockUnit()) - .setStockUnit(dto.getStockUnit()) - .setWeight(matnr.getWeight()) - .setShipperId(matnr.getShipperId()); - //TODO 渚涘簲鍟嗘爣璇嗘湭璁剧疆 - allOrders.add(item); - }); - - if (!warehouseAreasItemService.saveBatch(allOrders)) { - throw new CoolException("鏀惰揣澶辫触锛侊紒"); - } - - return R.ok("鎿嶄綔鎴愬姛"); - } } -- Gitblit v1.9.1