From f41b11c958ef7d0416d194278d1fe7cd1a1e8219 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期三, 24 九月 2025 18:43:19 +0800
Subject: [PATCH] 拉卡拉支付

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpProcurementController.java |  114 +++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 106 insertions(+), 8 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpProcurementController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpProcurementController.java
index be6b761..0dcdcb8 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpProcurementController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpProcurementController.java
@@ -1,21 +1,22 @@
 package com.ruoyi.web.controller.api;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.lkl.laop.sdk.request.V3LabsTransPreorderRequest;
 import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.system.dto.AddProcurementDto;
-import com.ruoyi.system.model.TCrmClinic;
-import com.ruoyi.system.model.TCrmSupplier;
-import com.ruoyi.system.model.TErpGoods;
+import com.ruoyi.system.dto.UpdateStatusProcurementDto;
+import com.ruoyi.system.dto.UpdateStatusProcurementLastDto;
+import com.ruoyi.system.model.*;
 import com.ruoyi.system.query.TErpGoodsQuery;
 import com.ruoyi.system.query.TErpProcurementQuery;
-import com.ruoyi.system.service.TCrmClinicService;
-import com.ruoyi.system.service.TErpProcurementService;
-import com.ruoyi.system.service.TErpSupplierWarehousingService;
+import com.ruoyi.system.service.*;
+import com.ruoyi.system.vo.DetailProcurementVO;
 import com.ruoyi.system.vo.TErpGoodsVO;
 import com.ruoyi.system.vo.TErpProcurementDetailVo;
 import com.ruoyi.system.vo.TErpProcurementVo;
@@ -26,7 +27,10 @@
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
+import java.math.BigDecimal;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -45,13 +49,22 @@
     private final TErpProcurementService erpProcurementService;
     private final TokenService tokenService;
     private final TCrmClinicService crmClinicService;
+    private final TErpProcurementGoodsService erpProcurementGoodsService;
+    private final TErpGoodsService erpGoodsService;
+    private final TErpClinicWarehousingService erpClinicWarehousingService;
+    private final TErpClinicWarehousingBatchService erpClinicWarehousingBatchService;
 
 
     @Autowired
-    public TErpProcurementController(TErpProcurementService erpProcurementService, TokenService tokenService,TCrmClinicService crmClinicService) {
+    public TErpProcurementController(TErpProcurementService erpProcurementService, TokenService tokenService,TCrmClinicService crmClinicService,TErpProcurementGoodsService erpProcurementGoodsService
+    , TErpGoodsService erpGoodsService,TErpClinicWarehousingService erpClinicWarehousingService,TErpClinicWarehousingBatchService erpClinicWarehousingBatchService) {
         this.erpProcurementService = erpProcurementService;
         this.tokenService = tokenService;
         this.crmClinicService = crmClinicService;
+        this.erpProcurementGoodsService = erpProcurementGoodsService;
+        this.erpGoodsService = erpGoodsService;
+        this.erpClinicWarehousingService = erpClinicWarehousingService;
+        this.erpClinicWarehousingBatchService = erpClinicWarehousingBatchService;
     }
 
 
@@ -112,10 +125,95 @@
                     .last("LIMIT 1"));
             clinicSupplierId = crmClinic.getId();
         }
-        return R.ok(erpProcurementService.addProcurement(clinicSupplierId,user,dtos));
+        erpProcurementService.addProcurement(clinicSupplierId, user, dtos);
+        return R.ok();
     }
 
 
 
+
+    @ApiOperation(value = "采购详情")
+    @GetMapping(value = "/detailProcurement/{id}")
+    public R<DetailProcurementVO> detailProcurement(@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.detailProcurement(clinicSupplierId, user, id));
+    }
+
+    @ApiOperation(value = "采购详情入库")
+    @PostMapping(value = "/updateStatusProcurement")
+    public R<DetailProcurementVO> updateStatusProcurement(@RequestParam @Valid UpdateStatusProcurementLastDto dto) {
+        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();
+        }
+        TErpProcurement erpProcurement = erpProcurementService.getById(dto.getId());
+        if(!erpProcurement.getClinicId().equals(clinicSupplierId)){
+            return R.fail("无权限操作");
+        }
+        if(erpProcurement.getStatus()!=4){
+            return R.fail("目前状态无法入库");
+        }
+        erpProcurement.setStatus(5);
+        erpProcurementService.updateById(erpProcurement);
+
+        List<String> collect = dto.getList().stream().map(UpdateStatusProcurementDto::getId).collect(Collectors.toList());
+
+        List<TErpProcurementGoods> list = erpProcurementGoodsService.list(new LambdaQueryWrapper<TErpProcurementGoods>().in(TErpProcurementGoods::getId, collect));
+        // goodsId分组
+        for (UpdateStatusProcurementDto updateStatusProcurementDto : dto.getList()) {
+            TErpProcurementGoods tErpProcurementGoods = list.stream().filter(t -> t.getId().equals(updateStatusProcurementDto.getId())).findFirst().get();
+
+            TErpGoods erpGoods = erpGoodsService.getById(tErpProcurementGoods.getGoodsId());
+            TErpClinicWarehousing tErpClinicWarehousing = new TErpClinicWarehousing();
+            tErpClinicWarehousing.setClinicId(erpProcurement.getClinicId());
+            tErpClinicWarehousing.setProcurementId(erpProcurement.getId());
+            tErpClinicWarehousing.setGoodsId(erpGoods.getId());
+            tErpClinicWarehousing.setGoodsName(erpGoods.getGoodsName());
+            tErpClinicWarehousing.setSupplierName(erpGoods.getSupplierName());
+            tErpClinicWarehousing.setQuasiNumber(erpGoods.getQuasiNumber());
+            tErpClinicWarehousing.setSalesAmount(tErpProcurementGoods.getSalesAmount());
+            tErpClinicWarehousing.setPurchaseCount(updateStatusProcurementDto.getPurchaseCount());
+            tErpClinicWarehousing.setTotalPrice(tErpProcurementGoods.getSalesAmount().multiply(new BigDecimal(updateStatusProcurementDto.getPurchaseCount())));
+            tErpClinicWarehousing.setUnitAmount(tErpProcurementGoods.getSalesAmount());
+            tErpClinicWarehousing.setWarehousingType(1);
+            tErpClinicWarehousing.setWarehouseNo("G"+ DateUtils.dateTimeNow());
+            erpClinicWarehousingService.save(tErpClinicWarehousing);
+
+
+            TErpClinicWarehousingBatch tErpClinicWarehousingGoods = new TErpClinicWarehousingBatch();
+            tErpClinicWarehousingGoods.setWarehousingId(tErpClinicWarehousing.getId());
+            tErpClinicWarehousingGoods.setWarehousingNumber(tErpClinicWarehousing.getPurchaseCount());
+            tErpClinicWarehousingGoods.setBatchNumber(updateStatusProcurementDto.getBatchNumber());
+            tErpClinicWarehousingGoods.setProductionDate(updateStatusProcurementDto.getProductionDate());
+            tErpClinicWarehousingGoods.setExpiryDate(updateStatusProcurementDto.getExpiryDate());
+            erpClinicWarehousingBatchService.save(tErpClinicWarehousingGoods);
+
+        }
+        return R.ok();
+    }
+
+
+
+
+
+
+
+
 }
 

--
Gitblit v1.7.1