From f73e9c5419c82b9ff685b8e67d839fd942100073 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期三, 22 十月 2025 18:05:10 +0800
Subject: [PATCH] 修改bug
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpProcurementController.java | 68 ++++++++++++++++++++++++++-------
1 files changed, 53 insertions(+), 15 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 3164da2..08ad50e 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
@@ -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.*;
@@ -23,6 +24,7 @@
import io.swagger.annotations.ApiOperation;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
@@ -63,13 +65,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;
@@ -85,6 +88,8 @@
this.crmBranchService = crmBranchService;
this.crmSalespersonService = crmSalespersonService;
this.erpProcurementCommissionService = erpProcurementCommissionService;
+
+ this.crmWarehouseService = crmWarehouseService;
}
@@ -184,19 +189,22 @@
@ApiOperation(value = "采购详情--发货(仓库角色)")
- @PostMapping(value = "/detailProcurementSend/{id}")
- public R<?> detailProcurementSend(@PathVariable String id) {
+ @PostMapping(value = "/detailProcurementSend")
+ public R<?> detailProcurementSend(@RequestBody DetailProcurementSendDto dto) {
SysUser user = tokenService.getLoginUser().getUser();
Integer roleType = user.getRoleType();
- String clinicSupplierId=null;
- if(roleType == 4){
- // 供应商
- TCrmSupplier crmSupplier = crmSupplierService.getOne(Wrappers.lambdaQuery(TCrmSupplier.class)
- .eq(TCrmSupplier::getUserId, user.getUserId())
+ List<String> clinicSupplierId=null;
+ if(roleType == 6){
+
+ TCrmWarehouse warehouse = crmWarehouseService.getOne(Wrappers.lambdaQuery(TCrmWarehouse.class)
+ .eq(TCrmWarehouse::getUserId, user.getUserId())
.last("LIMIT 1"));
- clinicSupplierId=crmSupplier.getId();
+
+ // 供应商
+ clinicSupplierId = crmSupplierService.list(Wrappers.lambdaQuery(TCrmSupplier.class)
+ .eq(TCrmSupplier::getWarehouseId, warehouse.getId())).stream().map(TCrmSupplier::getId).collect(Collectors.toList());
}
- erpProcurementService.detailProcurementSend(clinicSupplierId, user, id);
+ erpProcurementService.detailProcurementSend(clinicSupplierId, user, dto.getId(),dto.getLogisticsNumber());
return R.ok();
}
@@ -260,7 +268,8 @@
@ApiOperation(value = "采购详情入库")
@PostMapping(value = "/updateStatusProcurement")
- public R<DetailProcurementVO> updateStatusProcurement(@RequestParam @Valid UpdateStatusProcurementLastDto dto) {
+ @Transactional(rollbackFor = Exception.class)
+ public R<DetailProcurementVO> updateStatusProcurement(@RequestBody @Valid UpdateStatusProcurementLastDto dto) {
SysUser user = tokenService.getLoginUser().getUser();
Integer roleType = user.getRoleType();
String clinicSupplierId=null;
@@ -280,6 +289,8 @@
return R.fail("目前状态无法入库");
}
erpProcurement.setStatus(5);
+ erpProcurement.setWarehousingUserId(user.getUserId().toString());
+ erpProcurement.setWarehousingTime(LocalDateTime.now());
erpProcurementService.updateById(erpProcurement);
List<String> collect = dto.getList().stream().map(UpdateStatusProcurementDto::getId).collect(Collectors.toList());
@@ -299,8 +310,35 @@
// tErpClinicWarehousing.setUnitAmount(tErpProcurementGoods.getSalesAmount());
tErpClinicWarehousing.setWarehousingType(1);
tErpClinicWarehousing.setType(1);
- tErpClinicWarehousing.setWarehouseNo("G"+ DateUtils.dateTimeNow());
- erpClinicWarehousingService.save(tErpClinicWarehousing);
+
+ TErpClinicWarehousing last = erpClinicWarehousingService.getOne(new LambdaQueryWrapper<TErpClinicWarehousing>().orderByDesc(BaseModel::getCreateTime).orderByDesc(TErpClinicWarehousing::getWarehouseNo).last("LIMIT 1"));
+ if(last==null){
+ tErpClinicWarehousing.setWarehouseNo("G"+ DateUtils.dateTimeNow()+"00001");
+ }else {
+ String lastProcurementCode = last.getWarehouseNo();
+ String datePart = "G" + DateUtils.dateTimeNow();
+
+ // 直接获取后五位数字并+1,不考虑是否同一天
+ try {
+ String numberPart = lastProcurementCode.substring(Math.max(0, lastProcurementCode.length() - 5));
+ int number = Integer.parseInt(numberPart);
+ if (number < 99999) {
+ number++;
+ } else {
+ number = 2; // 达到99999后重置为00002
+ }
+ tErpClinicWarehousing.setWarehouseNo(datePart + String.format("%05d", number));
+ } catch (NumberFormatException e) {
+ // 如果解析失败,默认从00001开始
+ tErpClinicWarehousing.setWarehouseNo(datePart + "00001");
+ }
+ }
+ tErpClinicWarehousing.setProcurementId(erpProcurement.getId());
+ try {
+ erpClinicWarehousingService.save(tErpClinicWarehousing);
+ }catch (Exception e){
+ throw new RuntimeException("网络繁忙,请重试");
+ }
// goodsId分组
for (UpdateStatusProcurementDto updateStatusProcurementDto : dto.getList()) {
TErpProcurementGoods tErpProcurementGoods = list.stream().filter(t -> t.getId().equals(updateStatusProcurementDto.getId())).findFirst().get();
@@ -392,7 +430,7 @@
tErpProcurementCommission.setProcurementId(erpProcurement.getId());
tErpProcurementCommission.setCommissionType(1);
tErpProcurementCommission.setBranchSalespersonId(branchId);
- tErpProcurementCommission.setMoney(commission.doubleValue());
+ tErpProcurementCommission.setMoney(commission);
erpProcurementCommissionService.save(tErpProcurementCommission);
}
@@ -421,7 +459,7 @@
tErpProcurementCommission.setProcurementId(erpProcurement.getId());
tErpProcurementCommission.setCommissionType(2);
tErpProcurementCommission.setBranchSalespersonId(salespersonId);
- tErpProcurementCommission.setMoney(commission.doubleValue());
+ tErpProcurementCommission.setMoney(commission);
erpProcurementCommissionService.save(tErpProcurementCommission);
}
--
Gitblit v1.7.1