xuhy
2025-10-15 04316f0c84a0da562f0f526e6e537b372dfd8ad9
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpProcurementController.java
@@ -11,6 +11,7 @@
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.dto.AddProcurementDto;
import com.ruoyi.system.dto.DetailProcurementSendDto;
import com.ruoyi.system.dto.UpdateStatusProcurementDto;
import com.ruoyi.system.dto.UpdateStatusProcurementLastDto;
import com.ruoyi.system.model.*;
@@ -63,13 +64,14 @@
    private final TCrmBranchService crmBranchService;
    private final TCrmSalespersonService crmSalespersonService;
    private final TErpProcurementCommissionService erpProcurementCommissionService;
    private final TCrmWarehouseService crmWarehouseService;
    @Autowired
    public TErpProcurementController(TErpProcurementService erpProcurementService, TokenService tokenService, TCrmClinicService crmClinicService, TErpProcurementGoodsService erpProcurementGoodsService
    , TErpGoodsService erpGoodsService, TErpClinicWarehousingService erpClinicWarehousingService, TErpClinicWarehousingBatchService erpClinicWarehousingBatchService,
                                     TCrmSupplierService crmSupplierService, TErpMaintenanceReminderService erpMaintenanceReminderService, TSysOtherConfigService sysOtherConfigService, TCrmClinicPointsService crmClinicPointsService, TCrmChangePointsService crmChangePointsService, TCrmBranchService crmBranchService, TCrmSalespersonService crmSalespersonService, TErpProcurementCommissionService erpProcurementCommissionService) {
                                     TCrmSupplierService crmSupplierService, TErpMaintenanceReminderService erpMaintenanceReminderService, TSysOtherConfigService sysOtherConfigService, TCrmClinicPointsService crmClinicPointsService, TCrmChangePointsService crmChangePointsService, TCrmBranchService crmBranchService, TCrmSalespersonService crmSalespersonService, TErpProcurementCommissionService erpProcurementCommissionService, TCrmWarehouseService crmWarehouseService) {
        this.erpProcurementService = erpProcurementService;
        this.tokenService = tokenService;
        this.crmClinicService = crmClinicService;
@@ -86,6 +88,8 @@
        this.crmSalespersonService = crmSalespersonService;
        this.erpProcurementCommissionService = erpProcurementCommissionService;
        this.crmWarehouseService = crmWarehouseService;
    }
@@ -99,6 +103,18 @@
        SysUser user = tokenService.getLoginUser().getUser();
        return R.ok(erpProcurementService.pageList(query,user));
    }
    /**
     * erp采购管理分页列表
     */
    @ApiOperation(value = "erp采购管理分页列表--仓库专用")
    @PostMapping(value = "/pageListWarehouse")
    public R<PageInfo<TErpProcurementVo>> pageListWarehouse(@RequestBody TErpProcurementQuery query) {
        SysUser user = tokenService.getLoginUser().getUser();
        return R.ok(erpProcurementService.pageListWarehouse(query,user));
    }
@@ -169,6 +185,48 @@
        return R.ok( erpProcurementService.detailProcurement(clinicSupplierId, user, id));
    }
    @ApiOperation(value = "采购详情--发货(仓库角色)")
    @PostMapping(value = "/detailProcurementSend")
    public R<?> detailProcurementSend(@RequestBody DetailProcurementSendDto dto) {
        SysUser user = tokenService.getLoginUser().getUser();
        Integer roleType = user.getRoleType();
        List<String> clinicSupplierId=null;
        if(roleType == 6){
            TCrmWarehouse warehouse = crmWarehouseService.getOne(Wrappers.lambdaQuery(TCrmWarehouse.class)
                    .eq(TCrmWarehouse::getUserId, user.getUserId())
                    .last("LIMIT 1"));
            // 供应商
            clinicSupplierId = crmSupplierService.list(Wrappers.lambdaQuery(TCrmSupplier.class)
                    .eq(TCrmSupplier::getWarehouseId, warehouse.getId())).stream().map(TCrmSupplier::getId).collect(Collectors.toList());
        }
        erpProcurementService.detailProcurementSend(clinicSupplierId, user, dto.getId(),dto.getLogisticsNumber());
        return R.ok();
    }
//    @ApiOperation(value = "采购详情--仓库角色专用")
//    @GetMapping(value = "/detailProcurementWarehouse/{id}")
//    public R<DetailProcurementVO> detailProcurementWarehouse(@PathVariable String id) {
//        SysUser user = tokenService.getLoginUser().getUser();
//        Integer roleType = user.getRoleType();
//        String clinicSupplierId=null;
//        if(roleType == 5){
//            // 诊所
//            TCrmClinic crmClinic = crmClinicService.getOne(Wrappers.lambdaQuery(TCrmClinic.class)
//                    .eq(TCrmClinic::getUserId, user.getUserId())
//                    .last("LIMIT 1"));
//            clinicSupplierId = crmClinic.getId();
//        }
//
//        return R.ok( erpProcurementService.detailProcurementWarehouse(clinicSupplierId, user, id));
//    }
    @ApiOperation(value = "采购草稿")
    @GetMapping(value = "/getProcurementDraft")
    public R<ArrayList<DetailProcurementNextVO>> getProcurementDraft() {
@@ -183,7 +241,7 @@
            clinicSupplierId = crmClinic.getId();
        }
        ArrayList<DetailProcurementNextVO> detailProcurementNextVOS = new ArrayList<>();
        List<TErpProcurement> list1 = erpProcurementService.list(new LambdaQueryWrapper<TErpProcurement>().eq(TErpProcurement::getStatus, 1).orderByDesc(TErpProcurement::getCreateTime));
        List<TErpProcurement> list1 = erpProcurementService.list(new LambdaQueryWrapper<TErpProcurement>().eq(TErpProcurement::getClinicId, clinicSupplierId).eq(TErpProcurement::getStatus, 1).orderByDesc(TErpProcurement::getCreateTime));
        if(list1.isEmpty()){
            return R.ok(detailProcurementNextVOS);
        }
@@ -331,6 +389,9 @@
            tCrmChangePoints.setChangeValue(points);
            crmChangePointsService.save(tCrmChangePoints);
            branch.setUserPoints(branch.getUserPoints()+points);
            crmBranchService.updateById(branch);
            // 分佣
            BigDecimal commission = branch.getMoneyCommission().divide(BigDecimal.valueOf(100), 4, RoundingMode.HALF_DOWN).multiply(payMoney).setScale(2, RoundingMode.HALF_UP);
@@ -356,6 +417,8 @@
            tCrmChangePoints.setChangeReason(1);
            tCrmChangePoints.setChangeValue(points);
            crmChangePointsService.save(tCrmChangePoints);
            salesperson.setUserPoints(salesperson.getUserPoints()+points);
            crmSalespersonService.updateById(salesperson);