From 092a98a583c4fe822a3eb4c4dac086f84b16189c Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期五, 26 九月 2025 17:58:32 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpProcurementController.java | 164 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 153 insertions(+), 11 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..1cf9c4e 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,32 +1,36 @@ 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.BaseModel; 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.vo.TErpGoodsVO; -import com.ruoyi.system.vo.TErpProcurementDetailVo; -import com.ruoyi.system.vo.TErpProcurementVo; +import com.ruoyi.system.service.*; +import com.ruoyi.system.vo.*; import com.ruoyi.web.core.config.LakalaConfig; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.poi.ss.formula.functions.T; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; +import java.math.BigDecimal; +import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * <p> @@ -45,13 +49,25 @@ 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; + private final TCrmSupplierService crmSupplierService; @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, + TCrmSupplierService crmSupplierService) { this.erpProcurementService = erpProcurementService; this.tokenService = tokenService; this.crmClinicService = crmClinicService; + this.erpProcurementGoodsService = erpProcurementGoodsService; + this.erpGoodsService = erpGoodsService; + this.erpClinicWarehousingService = erpClinicWarehousingService; + this.erpClinicWarehousingBatchService = erpClinicWarehousingBatchService; + this.crmSupplierService = crmSupplierService; } @@ -112,10 +128,136 @@ .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 = "采购草稿") + @GetMapping(value = "/getProcurementDraft") + public R<ArrayList<DetailProcurementNextVO>> getProcurementDraft() { + 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(); + } + ArrayList<DetailProcurementNextVO> detailProcurementNextVOS = new ArrayList<>(); + List<TErpProcurement> list1 = erpProcurementService.list(new LambdaQueryWrapper<TErpProcurement>().eq(TErpProcurement::getStatus, 1).orderByDesc(BaseModel::getCreateTime)); + if(list1.isEmpty()){ + return R.ok(detailProcurementNextVOS); + } + String id = list1.get(0).getId(); + List<TErpProcurementGoods> list = erpProcurementGoodsService.list(new LambdaQueryWrapper<TErpProcurementGoods>().eq(TErpProcurementGoods::getProcurementId, id)); + + for (TErpProcurementGoods tErpProcurementGoods : list) { + DetailProcurementNextVO detailProcurementNextVO = new DetailProcurementNextVO(); + detailProcurementNextVO.setId(tErpProcurementGoods.getId()); + detailProcurementNextVO.setGoodsName(tErpProcurementGoods.getGoodsName()); + detailProcurementNextVO.setQuasiNumber(tErpProcurementGoods.getQuasiNumber()); + detailProcurementNextVO.setPackingUnitName(tErpProcurementGoods.getUnitName()); + detailProcurementNextVO.setSalesAmount(tErpProcurementGoods.getSalesAmount()); + detailProcurementNextVO.setNum(tErpProcurementGoods.getPurchaseCount()); + detailProcurementNextVO.setTotalPrice(tErpProcurementGoods.getTotalPrice()); + detailProcurementNextVO.setSupplierName(tErpProcurementGoods.getSupplierName()); + detailProcurementNextVO.setUnitName(tErpProcurementGoods.getUnitName()); + detailProcurementNextVO.setPurchasePrice(tErpProcurementGoods.getPurchasePrice()); + detailProcurementNextVOS.add(detailProcurementNextVO); + } + return R.ok(detailProcurementNextVOS); + } + + @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)); + TErpClinicWarehousing tErpClinicWarehousing = new TErpClinicWarehousing(); + tErpClinicWarehousing.setClinicId(erpProcurement.getClinicId()); + tErpClinicWarehousing.setProcurementId(erpProcurement.getId()); +// tErpClinicWarehousing.setGoodsId(erpGoods.getId()); +// tErpClinicWarehousing.setGoodsName(erpGoods.getGoodsName()); + TCrmSupplier byId = crmSupplierService.getById(erpProcurement.getSupplierId()); + tErpClinicWarehousing.setSupplierName(byId.getSupplierName()); +// tErpClinicWarehousing.setQuasiNumber(erpGoods.getQuasiNumber()); +// tErpClinicWarehousing.setSalesAmount(tErpProcurementGoods.getSalesAmount()); +// tErpClinicWarehousing.setPurchaseCount(updateStatusProcurementDto.getPurchaseCount()); + tErpClinicWarehousing.setTotalPrice(erpProcurement.getPayMoney()); +// tErpClinicWarehousing.setUnitAmount(tErpProcurementGoods.getSalesAmount()); + tErpClinicWarehousing.setWarehousingType(1); + tErpClinicWarehousing.setType(1); + tErpClinicWarehousing.setWarehouseNo("G"+ DateUtils.dateTimeNow()); + erpClinicWarehousingService.save(tErpClinicWarehousing); + // 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()); + TErpClinicWarehousingBatch tErpClinicWarehousingGoods = new TErpClinicWarehousingBatch(); + tErpClinicWarehousingGoods.setWarehousingId(tErpClinicWarehousing.getId()); + tErpClinicWarehousingGoods.setWarehousingNumber(updateStatusProcurementDto.getPurchaseCount()); + tErpClinicWarehousingGoods.setBatchNumber(updateStatusProcurementDto.getBatchNumber()); + tErpClinicWarehousingGoods.setProductionDate(updateStatusProcurementDto.getProductionDate()); + tErpClinicWarehousingGoods.setExpiryDate(updateStatusProcurementDto.getExpiryDate()); + tErpClinicWarehousingGoods.setGoodsId(erpGoods.getId()); + tErpClinicWarehousingGoods.setGoodsName(erpGoods.getGoodsName()); + tErpClinicWarehousingGoods.setQuasiNumber(erpGoods.getQuasiNumber()); + tErpClinicWarehousingGoods.setSalesAmount(tErpProcurementGoods.getSalesAmount()); + erpClinicWarehousingBatchService.save(tErpClinicWarehousingGoods); + + } + return R.ok(); + } + + + + + + + + } -- Gitblit v1.7.1