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-system/src/main/java/com/ruoyi/system/service/impl/TErpProcurementServiceImpl.java | 78 +++++++++++++++++++++++++++++++++++--- 1 files changed, 71 insertions(+), 7 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpProcurementServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpProcurementServiceImpl.java index 99a65ec..c3de1af 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpProcurementServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpProcurementServiceImpl.java @@ -1,6 +1,7 @@ package com.ruoyi.system.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.core.domain.BaseModel; @@ -12,6 +13,7 @@ import com.ruoyi.system.query.TErpGoodsQuery; import com.ruoyi.system.query.TErpProcurementQuery; import com.ruoyi.system.service.TErpGoodsService; +import com.ruoyi.system.service.TErpProcurementGoodsService; import com.ruoyi.system.service.TErpProcurementService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.system.vo.*; @@ -26,7 +28,10 @@ import org.apache.http.conn.ssl.SSLSocketFactory; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.net.ssl.SSLContext; @@ -36,6 +41,7 @@ import java.io.FileInputStream; import java.io.IOException; import java.math.BigDecimal; +import java.math.RoundingMode; import java.security.PrivateKey; import java.security.cert.X509Certificate; import java.util.ArrayList; @@ -78,6 +84,9 @@ @Resource private TErpGoodsUnitMapper erpGoodsUnitMapper; + @Autowired + private TErpProcurementGoodsService erpProcurementGoodsService; + @Override @@ -115,7 +124,7 @@ } List<String> ids = list.stream().map(TErpProcurementVo::getId).collect(Collectors.toList()); List<TErpProcurementGoods> tErpProcurementGoods = erpProcurementGoodsMapper.selectList - (new LambdaQueryWrapper<TErpProcurementGoods>().in(TErpProcurementGoods::getProcurementId, ids).eq(TErpProcurementGoods::getSupplierId, supplierClinicId)); + (new LambdaQueryWrapper<TErpProcurementGoods>().in(TErpProcurementGoods::getProcurementId, ids)); List<TSysCommission> tSysCommissions =new ArrayList<>(); if(!tErpProcurementGoods.isEmpty()){ List<String> collect = tErpProcurementGoods.stream().map(TErpProcurementGoods::getId).collect(Collectors.toList()); @@ -231,6 +240,13 @@ tErpGoodsVO.setTypeName(tErpGoodsVO.getTypeName()); } } + List<String> supplierClinicId = list.stream().filter(e->e.getGoodsSource()==1).map(TErpGoods::getSupplierClinicId).collect(Collectors.toList()); + if(!supplierClinicId.isEmpty()){ + List<TCrmClinic> crmClinics = crmClinicMapper.selectBatchIds(supplierClinicId); + for (TErpGoods tErpGoodsVO : list) { + crmClinics.stream().filter(t -> t.getId().equals(tErpGoodsVO.getSupplierClinicId())).findFirst().ifPresent(t -> tErpGoodsVO.setSupplierName(t.getClinicName())); + } + } pageInfo.setRecords( list); return pageInfo; } @@ -238,18 +254,22 @@ @Override public List<TErpGoodsVO> inventoryNotEnoughList(SysUser user) { List<TErpGoodsVO> list = this.baseMapper.inventoryNotEnoughList(user); - - return null; + return list; } @Override - public String addProcurement(String clinicSupplierId, SysUser user, List<AddProcurementDto> dtos) { + @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED) + public void addProcurement(String clinicSupplierId, SysUser user, List<AddProcurementDto> dtos) { List<String> goodsIds = dtos.stream().map(AddProcurementDto::getGoodsId).collect(Collectors.toList()); List<TErpGoods> tErpGoods = erpGoodsMapper.selectBatchIds(goodsIds); for (AddProcurementDto dto : dtos) { TErpGoods tErpGoodsVO = tErpGoods.stream().filter(t -> t.getId().equals(dto.getGoodsId())).findFirst().get(); + dto.setPlatformCommissionPrice(tErpGoodsVO.getPlatformCommissionPrice()); dto.setSupplierId(tErpGoodsVO.getSupplierClinicId()); - dto.setGoodsSalesAmount(tErpGoodsVO.getSalesAmount()); + dto.setGoodsSalesAmount(tErpGoodsVO.getClinicPurchasePrice()); + if(dto.getSalesAmount()==null){ + dto.setSalesAmount(tErpGoodsVO.getClinicPurchasePrice()); + } } // 供应商分组 Map<String, List<AddProcurementDto>> supplierClinicIdListMap = dtos.stream().collect(Collectors.groupingBy(AddProcurementDto::getSupplierId)); @@ -271,7 +291,10 @@ }else { tErpProcurement.setStatus(2); } - this.save(tErpProcurement); + ArrayList<TErpProcurementGoods> tErpProcurementGoods1 = new ArrayList<>(); + + BigDecimal add =BigDecimal.ZERO; + for (AddProcurementDto dto : value) { TErpProcurementGoods tErpProcurementGoods = new TErpProcurementGoods(); tErpProcurementGoods.setProcurementId(tErpProcurement.getId()); @@ -285,15 +308,56 @@ tErpProcurementGoods.setUnitName(tErpGoodsUnit.getUnitName()); tErpProcurementGoods.setPurchasePrice(dto.getGoodsSalesAmount()); tErpProcurementGoods.setSalesAmount(dto.getSalesAmount()); + tErpProcurementGoods.setTotalPrice(dto.getSalesAmount().multiply(new BigDecimal(dto.getPurchaseCount()))); tErpProcurementGoods.setPurchaseCount(dto.getPurchaseCount()); tErpProcurementGoods.setSupplierId(supplierClinicId); tErpProcurementGoods.setRecvMerchantNo(supplier.getRecvMerchantNo()); + tErpProcurementGoods.setSupplierMoney(dto.getSalesAmount().subtract(dto.getPlatformCommissionPrice())); + if(tErpProcurementGoods.getSupplierMoney().doubleValue()<0){ + throw new RuntimeException("平台抽成不能大于售卖价格"); + } + add = add.add(dto.getPlatformCommissionPrice()); + tErpProcurementGoods1.add(tErpProcurementGoods); } + BigDecimal bigDecimal = tErpProcurement.getPayMoney().multiply(BigDecimal.valueOf(0.0038)).setScale(2, RoundingMode.HALF_UP); + tErpProcurement.setMoney(add.subtract(bigDecimal)); + if(tErpProcurement.getMoney().doubleValue()<0){ + throw new RuntimeException("金额设置错误,请联系平台管理员"); + } + this.save(tErpProcurement); + tErpProcurementGoods1.forEach(e->e.setProcurementId(tErpProcurement.getId())); + erpProcurementGoodsService.saveBatch(tErpProcurementGoods1); } - return ""; + } + + @Override + public DetailProcurementVO detailProcurement(String clinicSupplierId, SysUser user, String id) { + DetailProcurementVO detailProcurementVO = new DetailProcurementVO(); + TErpProcurement tErpProcurement = this.getById(id); + detailProcurementVO.setStatus(tErpProcurement.getStatus()); + detailProcurementVO.setCreateTime(tErpProcurement.getCreateTime()); + detailProcurementVO.setSendTime(tErpProcurement.getSendTime()); + TCrmSupplier supplier = crmSupplierMapper.selectById(tErpProcurement.getSupplierId()); + detailProcurementVO.setSupplierName(supplier.getSupplierName()); + detailProcurementVO.setUserName(sysUserMapper.selectUserById(Long.valueOf(tErpProcurement.getCreateId())).getUserName()); + List<TErpProcurementGoods> list = erpProcurementGoodsService.list(new QueryWrapper<TErpProcurementGoods>().eq("procurement_id", id)); + ArrayList<DetailProcurementNextVO> detailProcurementNextVOS = new ArrayList<>(); + for (TErpProcurementGoods tErpProcurementGoods : list) { + DetailProcurementNextVO detailProcurementNextVO = new DetailProcurementNextVO(); + detailProcurementNextVO.setGoodsName(tErpProcurementGoods.getGoodsName()); + detailProcurementNextVO.setQuasiNumber(tErpProcurementGoods.getQuasiNumber()); + detailProcurementNextVO.setPackingUnitName(tErpProcurementGoods.getUnitName()); + detailProcurementNextVO.setSalesAmount(tErpProcurementGoods.getSalesAmount()); + detailProcurementNextVO.setNum(tErpProcurementGoods.getPurchaseCount()); + detailProcurementNextVO.setTotalPrice(tErpProcurement.getPayMoney()); + detailProcurementNextVO.setId(tErpProcurementGoods.getId()); + detailProcurementNextVOS.add(detailProcurementNextVO); + } + detailProcurementVO.setList(detailProcurementNextVOS); + return detailProcurementVO; } } -- Gitblit v1.7.1