DESKTOP-LMJ82IJ\Eno
2025-03-10 481cc7562008b6e2d5ce90c1661af4de0dc619ca
#新增
1. 新增通知单列表接口
2. 新增其它收货接口
1个文件已添加
3个文件已修改
199 ■■■■ 已修改文件
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/MobileController.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/params/OtherReceiptParams.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java 126 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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());
    }
}
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/params/OtherReceiptParams.java
New file
@@ -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;
}
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();
}
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);
    }
}