From 481cc7562008b6e2d5ce90c1661af4de0dc619ca Mon Sep 17 00:00:00 2001 From: DESKTOP-LMJ82IJ\Eno <creaycat@gmail.com> Date: 星期一, 10 三月 2025 20:38:06 +0800 Subject: [PATCH] #新增 1. 新增通知单列表接口 2. 新增其它收货接口 --- rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java | 7 + rsf-server/src/main/java/com/vincent/rsf/server/api/controller/MobileController.java | 39 +++++++++ rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java | 126 ++++++++++++++++++++++--------- rsf-server/src/main/java/com/vincent/rsf/server/api/controller/params/OtherReceiptParams.java | 27 ++++++ 4 files changed, 161 insertions(+), 38 deletions(-) diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/MobileController.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/MobileController.java index e96c1e4..2cf4547 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/MobileController.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/MobileController.java @@ -2,12 +2,14 @@ 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.service.MobileService; import com.vincent.rsf.server.system.controller.BaseController; import com.vincent.rsf.server.system.controller.param.LoginParam; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiOperation; import org.apache.tika.utils.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -34,6 +36,12 @@ private MobileService mobileService; + /** + * PDA鐢ㄦ埛鐧诲綍 + * @param param + * @param request + * @return + */ @PostMapping("/login") @ApiOperation("PDA鐢ㄦ埛鐧诲綍") public R login(@RequestBody LoginParam param, HttpServletRequest request) { @@ -51,6 +59,11 @@ } + /** + * 鏍囧噯鎵爜鏀惰揣淇℃伅 + * @param barcode + * @return + */ @PreAuthorize("hasAuthority('manager:asnOrder:list')") @GetMapping("/orders/{barcode}") @ApiOperation("鏍囧噯鎵爜鏀惰揣") @@ -61,7 +74,12 @@ return mobileService.getOrderByCode(barcode); } - @PreAuthorize("hasAuthority('manager:warehouseAreas:save')") + /** + * 纭鏀惰揣淇℃伅 + * @param params + * @return + */ + @PreAuthorize("hasAuthority('manager:warehouseAreasItem:save')") @PostMapping("/orders/confirm") @ApiOperation("纭鏀惰揣") public R confirmReceipt(@RequestBody ReceiptParams params) { @@ -72,5 +90,24 @@ } + @PreAuthorize("hasAuthority('manager:asnOrder:list')") + @PostMapping("/orders/other") + @ApiOperation("鍏跺畠鎵爜鏀惰揣") + public R getOtherReceipt(@RequestBody OtherReceiptParams params) { + if (Objects.isNull(params)) { + throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒"); + } + + return mobileService.otherReceipt(params); + } + + + @PreAuthorize("hasAuthority('manager:asnOrder:list')") + @GetMapping("/orders/asn") + @ApiOperation("鑾峰彇閫氱煡鍗�") + public R getAllAsnOrders() { + return R.ok(mobileService.getAllAsnOrders()); + } + } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/params/OtherReceiptParams.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/params/OtherReceiptParams.java new file mode 100644 index 0000000..8ad2128 --- /dev/null +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/params/OtherReceiptParams.java @@ -0,0 +1,27 @@ +package com.vincent.rsf.server.api.controller.params; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; + + +@Data +@Accessors(chain = true) +@ApiModel(value = "OtherReceiptParams", description = "鍏跺畠鏀惰揣") +public class OtherReceiptParams implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("閫氱煡鍗�") + private String asnCode; + + @ApiModelProperty("閲囪喘鍗�") + private String poCode; + + @ApiModelProperty("鏉″舰鐮�") + private String barcode; + + +} diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java index e730332..2a2f597 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java @@ -1,10 +1,13 @@ package com.vincent.rsf.server.api.service; import com.vincent.rsf.framework.common.R; +import com.vincent.rsf.server.api.controller.params.OtherReceiptParams; import com.vincent.rsf.server.api.controller.params.ReceiptParams; +import com.vincent.rsf.server.manager.entity.AsnOrder; import com.vincent.rsf.server.system.controller.param.LoginParam; import javax.servlet.http.HttpServletRequest; +import java.util.List; /** * @author Ryan @@ -20,4 +23,8 @@ R getOrderByCode(String barcode); R receiptToWarehouse(ReceiptParams orders); + + R otherReceipt(OtherReceiptParams params); + + List<AsnOrder> getAllAsnOrders(); } 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..6dbfb93 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,8 +4,10 @@ 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.security.JwtSubject; @@ -52,11 +54,12 @@ private UserMapper userService; @Autowired private UserLoginService userLoginService; - @Autowired private WarehouseAreasItemService warehouseAreasItemService; @Resource private AsnOrderItemMapper asnOrderItemMapper; + @Resource + private AsnOrderMapper asnOrderMapper; @Resource private MatnrMapper matnrMapper; @Resource @@ -114,47 +117,12 @@ 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("鍗曟嵁鏄庣粏涓嶅瓨鍦紒锛�"); } - detlsDto.setAsnCode(asnOrderItem.getAsnCode()) - .setMatnk(asnOrderItem.getMatnk()) - .setBarcode(asnOrderItem.getBarcode()) - .setPoCode(asnOrderItem.getPoCode()) - .setPurQty(asnOrderItem.getAnfme()) - .setSplrBatch(asnOrderItem.getSplrBatch()); - Matnr matnr = matnrMapper.selectById(asnOrderItem.getMatnrId()); - if (Objects.isNull(matnr)) { - throw new CoolException("鏁版嵁閿欒锛氬綋鍓嶇墿鏂欎笉瀛樺湪锛侊紒"); - } - //SET 鐗╂枡鏈�澶у瓨鏀炬暟閲� - detlsDto.setMaxQty(matnr.getMaxQty()) - .setMatnrId(matnr.getId()) - .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$()); - //鑾峰彇褰撳墠搴撳瓨淇℃伅 - StockItem stockItem = stockItemMapper.selectOne(new LambdaQueryWrapper<StockItem>() - .eq(StockItem::getAsnItemId, asnOrderItem.getId()) - .eq(StockItem::getMatnrId, asnOrderItem.getMatnrId())); - //SET 褰撳墠搴撳瓨鏁伴噺 - if (Objects.isNull(stockItem)) { - detlsDto.setStockQty(0.0); - } else { - detlsDto.setStockQty(stockItem.getQty() + stockItem.getWorkQty()); - } - - //鑾峰彇閲囪喘鍗曟槑缁嗕俊鎭� - PurchaseItem purchaseItem = purchaseItemMapper.selectOne(new LambdaQueryWrapper<PurchaseItem>().eq(PurchaseItem::getId, asnOrderItem.getPoDetlId())); - //SET 骞冲彴琛屽彿 - detlsDto.setPlatformId(purchaseItem.getPlatItemId()); - - return R.ok(detlsDto); + return getAsnOrderItem(asnOrderItem); } /** @@ -209,4 +177,88 @@ 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; + } + + /** + * 鑾峰彇ReceiptDetlsDto + */ + private R getAsnOrderItem(AsnOrderItem asnOrderItem) { + ReceiptDetlsDto detlsDto = new ReceiptDetlsDto(); + + detlsDto.setAsnCode(asnOrderItem.getAsnCode()) + .setMatnk(asnOrderItem.getMatnk()) + .setBarcode(asnOrderItem.getBarcode()) + .setPoCode(asnOrderItem.getPoCode()) + .setPurQty(asnOrderItem.getAnfme()) + .setSplrBatch(asnOrderItem.getSplrBatch()); + + Matnr matnr = matnrMapper.selectById(asnOrderItem.getMatnrId()); + if (Objects.isNull(matnr)) { + throw new CoolException("鏁版嵁閿欒锛氬綋鍓嶇墿鏂欎笉瀛樺湪锛侊紒"); + } + //SET 鐗╂枡鏈�澶у瓨鏀炬暟閲� + detlsDto.setMaxQty(matnr.getMaxQty()) + .setMatnrId(matnr.getId()) + .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$()); + //鑾峰彇褰撳墠搴撳瓨淇℃伅 + StockItem stockItem = stockItemMapper.selectOne(new LambdaQueryWrapper<StockItem>() + .eq(StockItem::getAsnItemId, asnOrderItem.getId()) + .eq(StockItem::getMatnrId, asnOrderItem.getMatnrId())); + //SET 褰撳墠搴撳瓨鏁伴噺 + if (Objects.isNull(stockItem)) { + detlsDto.setStockQty(0.0); + } else { + detlsDto.setStockQty(stockItem.getQty() + stockItem.getWorkQty()); + } + + //鑾峰彇閲囪喘鍗曟槑缁嗕俊鎭� + PurchaseItem purchaseItem = purchaseItemMapper.selectOne(new LambdaQueryWrapper<PurchaseItem>().eq(PurchaseItem::getId, asnOrderItem.getPoDetlId())); + //SET 骞冲彴琛屽彿 + detlsDto.setPlatformId(purchaseItem.getPlatItemId()); + + return R.ok(detlsDto); + } + + } -- Gitblit v1.9.1