From 84e8c13e1885892631e52f71508150c0ff1ee55f Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期四, 25 九月 2025 18:52:01 +0800 Subject: [PATCH] 诊所erp --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpGoodsServiceImpl.java | 157 ++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 134 insertions(+), 23 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpGoodsServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpGoodsServiceImpl.java index cf8d384..85fa2bd 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpGoodsServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpGoodsServiceImpl.java @@ -2,8 +2,10 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.basic.PageInfo; +import com.ruoyi.common.core.domain.BaseModel; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.uuid.IdUtils; @@ -11,17 +13,18 @@ import com.ruoyi.system.dto.InventoryGoodsDto; import com.ruoyi.system.mapper.*; import com.ruoyi.system.model.*; +import com.ruoyi.system.query.TClinicGoodsWarehouseQuery; import com.ruoyi.system.query.TErpGoodsInventoryQuery; import com.ruoyi.system.query.TErpGoodsQuery; import com.ruoyi.system.service.TErpGoodsService; import com.ruoyi.system.service.TErpSupplierInventoryGoodsService; -import com.ruoyi.system.vo.TErpGoodsInventoryVO; -import com.ruoyi.system.vo.TErpGoodsVO; +import com.ruoyi.system.vo.*; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.math.BigDecimal; import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.List; @@ -40,6 +43,9 @@ @Resource private TErpGoodsTypeMapper erpGoodsTypeMapper; + + @Resource + private TErpGoodsMapper erpGoodsMapper; @Resource private TErpGoodsUnitMapper erpGoodsUnitMapper; @@ -319,6 +325,104 @@ } @Override + public Page<TErpGoods> warehouseGoodsPageList(TClinicGoodsWarehouseQuery query, SysUser user, String supplierClinicId) { + LambdaQueryWrapper<TErpGoods> wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(BaseModel::getDisabled,0); + wrapper.eq(TErpGoods::getSupplierClinicId,supplierClinicId).eq(TErpGoods::getGoodsSource,2); + if(query.getGoodsName()!=null && !query.getGoodsName().isEmpty()){ + wrapper.like(TErpGoods::getGoodsName,query.getGoodsName()); + } + if(query.getGoodsIdCode()!=null && !query.getGoodsIdCode().isEmpty()){ + wrapper.eq(TErpGoods::getGoodsIdCode,query.getGoodsIdCode()); + } + if(query.getQuasiNumber()!=null && !query.getQuasiNumber().isEmpty()){ + wrapper.eq(TErpGoods::getQuasiNumber,query.getQuasiNumber()); + } + if(query.getTypeId()!=null && !query.getTypeId().isEmpty()){ + wrapper.eq(TErpGoods::getTypeId,query.getTypeId()); + } + wrapper.orderByDesc(BaseModel::getCreateTime); + Page<TErpGoods> page = this.page(new Page<>(query.getPageNum(), query.getPageSize()), wrapper); + return page; + } + + @Override + public WarehouseGoodsDetailVo warehouseGoodsDetail(String id) { + WarehouseGoodsDetailVo warehouseGoodsDetailVo = new WarehouseGoodsDetailVo(); + TErpClinicWarehousing tErpClinicWarehousing = erpClinicWarehousingMapper.selectById(id); + warehouseGoodsDetailVo.setCreateTime(tErpClinicWarehousing.getCreateTime()); + warehouseGoodsDetailVo.setCreateBy(tErpClinicWarehousing.getCreateBy()); + if(tErpClinicWarehousing.getType()==1){ + TErpClinicInventory tErpClinicInventory = erpClinicInventoryMapper.selectById(tErpClinicWarehousing.getInventoryId()); + warehouseGoodsDetailVo.setInventoryNumber(tErpClinicInventory.getInventoryNumber()); + } + + List<TErpClinicWarehousingBatch> tErpClinicWarehousingBatches = erpClinicWarehousingBatchMapper.selectList(new LambdaQueryWrapper<TErpClinicWarehousingBatch>().eq(TErpClinicWarehousingBatch::getWarehousingId, id)); + for (TErpClinicWarehousingBatch tErpClinicWarehousingBatch : tErpClinicWarehousingBatches) { + String goodsId = tErpClinicWarehousingBatch.getGoodsId(); + TErpGoods tErpGoods = erpGoodsMapper.selectById(goodsId); + String packingUnitId = tErpGoods.getPackingUnitId(); + TErpGoodsUnit tErpGoodsUnit = erpGoodsUnitMapper.selectById(packingUnitId); + tErpClinicWarehousingBatch.setUnitName(tErpGoodsUnit.getUnitName()); + + } + + warehouseGoodsDetailVo.setList(tErpClinicWarehousingBatches); + return warehouseGoodsDetailVo; + } + + @Override + public OutboundGoodsDetailVo outboundGoodsDetail(String id) { + OutboundGoodsDetailVo outboundGoodsDetailVo = new OutboundGoodsDetailVo(); + TErpClinicOutbound tErpClinicOutbound = erpClinicOutboundMapper.selectById(id); + outboundGoodsDetailVo.setCreateTime(tErpClinicOutbound.getCreateTime()); + outboundGoodsDetailVo.setCreateBy(tErpClinicOutbound.getCreateBy()); + outboundGoodsDetailVo.setOutboundType(tErpClinicOutbound.getOutboundType()); + outboundGoodsDetailVo.setOrderNumber(tErpClinicOutbound.getOrderNumber()); + if(tErpClinicOutbound.getOutboundType()==6){ + TErpClinicInventory tErpClinicInventory = erpClinicInventoryMapper.selectById(tErpClinicOutbound.getInventoryId()); + outboundGoodsDetailVo.setInventoryNumber(tErpClinicInventory.getInventoryNumber()); + } + ArrayList<OutboundGoodsDetailNextVo> tErpClinicOutboundGoods1 = new ArrayList<>(); + List<TErpClinicOutboundGoods> tErpClinicOutboundGoods = erpClinicOutboundGoodsMapper.selectList(new LambdaQueryWrapper<TErpClinicOutboundGoods>().eq(TErpClinicOutboundGoods::getOutboundId, id)); + for (TErpClinicOutboundGoods outboundGoods : tErpClinicOutboundGoods) { + TErpClinicWarehousing tErpClinicWarehousing = erpClinicWarehousingMapper.selectById(outboundGoods.getWarehousingId()); + TErpClinicWarehousingBatch tErpClinicWarehousingBatch = erpClinicWarehousingBatchMapper.selectById(outboundGoods.getWarehousingBatchId()); + + OutboundGoodsDetailNextVo outboundGoodsDetailNextVo = new OutboundGoodsDetailNextVo(); + outboundGoodsDetailNextVo.setWarehouseNo(tErpClinicWarehousing.getWarehouseNo()); + + outboundGoodsDetailNextVo.setGoodsId(outboundGoods.getGoodsId()); + TErpGoods goods = erpGoodsMapper.selectById(outboundGoods.getGoodsId()); + outboundGoodsDetailNextVo.setGoodsName(goods.getGoodsName()); + + outboundGoodsDetailNextVo.setTypeId(goods.getTypeId()); + TErpGoodsType tErpGoodsType = erpGoodsTypeMapper.selectById(goods.getTypeId()); + outboundGoodsDetailNextVo.setTypeName(tErpGoodsType.getTypeName()); + outboundGoodsDetailNextVo.setQuasiNumber(goods.getQuasiNumber()); + outboundGoodsDetailNextVo.setBatchNumber(tErpClinicWarehousingBatch.getBatchNumber()); + TErpGoodsUnit tErpGoodsUnit = erpGoodsUnitMapper.selectById(goods.getPackingUnitId()); + outboundGoodsDetailNextVo.setUnitName(tErpGoodsUnit.getUnitName()); + + + List<TErpClinicOutboundGoods> tErpClinicOutboundGoods2 = erpClinicOutboundGoodsMapper.selectList(new LambdaQueryWrapper<TErpClinicOutboundGoods>().eq(TErpClinicOutboundGoods::getWarehousingBatchId, outboundGoods.getWarehousingBatchId())); + int sum = tErpClinicOutboundGoods2.stream().mapToInt(TErpClinicOutboundGoods::getOutboundCount).sum(); + + int count = tErpClinicWarehousingBatch.getPurchaseCount() - sum; + outboundGoodsDetailNextVo.setSurplusCount(count); + + outboundGoodsDetailNextVo.setUnitAmount(tErpClinicWarehousingBatch.getUnitAmount()); + outboundGoodsDetailNextVo.setOutboundCount(outboundGoods.getOutboundCount()); + outboundGoodsDetailNextVo.setExpiryDate(tErpClinicWarehousingBatch.getExpiryDate()); + outboundGoodsDetailNextVo.setTotalAmount(outboundGoodsDetailNextVo.getUnitAmount().multiply(new BigDecimal(outboundGoods.getOutboundCount()))); + tErpClinicOutboundGoods1.add(outboundGoodsDetailNextVo); + + } + outboundGoodsDetailVo.setList(tErpClinicOutboundGoods1); + return outboundGoodsDetailVo; + } + + @Override public void inventoryGoods(InventoryDto dto, SysUser user) { Integer roleType = user.getRoleType(); String supplierClinicId = null; @@ -457,76 +561,83 @@ TErpClinicWarehousingBatch tErpSupplierWarehousingBatch = erpClinicWarehousingBatchMapper.selectById(inventoryGoodsDto.getId()); String warehousingId = tErpSupplierWarehousingBatch.getWarehousingId(); TErpClinicWarehousing tErpSupplierWarehousing1 = erpClinicWarehousingMapper.selectById(warehousingId); - TErpGoods erpGoods = this.getById(tErpSupplierWarehousing1.getGoodsId()); + TErpGoods erpGoods = this.getById(tErpSupplierWarehousingBatch.getGoodsId()); // 盘点是盘亏盘盈 赢 if (inventoryGoodsDto.getNum() < inventoryGoodsDto.getInventoryCount()) { // 添加入库信息 tErpSupplierWarehousing.setClinicId(supplierClinicId); - tErpSupplierWarehousing.setGoodsId(tErpSupplierWarehousing1.getGoodsId()); - tErpSupplierWarehousing.setGoodsName(erpGoods.getGoodsName()); - tErpSupplierWarehousing.setPurchaseCount(inventoryGoodsDto.getInventoryCount() - inventoryGoodsDto.getNum()); - tErpSupplierWarehousing.setUnitAmount(erpGoods.getSalesAmount()); - tErpSupplierWarehousing.setTotalPrice(erpGoods.getSalesAmount().multiply(new BigDecimal(tErpSupplierWarehousing.getPurchaseCount()))); +// tErpSupplierWarehousing.setGoodsId(tErpSupplierWarehousing1.getGoodsId()); +// tErpSupplierWarehousing.setGoodsName(erpGoods.getGoodsName()); +// tErpSupplierWarehousing.setPurchaseCount(inventoryGoodsDto.getInventoryCount() - inventoryGoodsDto.getNum()); +// tErpSupplierWarehousing.setUnitAmount(erpGoods.getSalesAmount()); + tErpSupplierWarehousing.setTotalPrice(erpGoods.getSalesAmount().multiply(new BigDecimal(inventoryGoodsDto.getInventoryCount() - inventoryGoodsDto.getNum()))); // 当前年月日时分秒 String time = DateUtils.dateTimeNow(); tErpSupplierWarehousing.setWarehouseNo("G" + time); tErpSupplierWarehousing.setType(2); + tErpSupplierWarehousing.setInventoryId(tErpSupplierInventory.getId()); erpClinicWarehousingMapper.insert(tErpSupplierWarehousing); // 添加批次信息 - TErpSupplierWarehousingBatch tErpSupplierWarehousingBatch1 = new TErpSupplierWarehousingBatch(); + TErpClinicWarehousingBatch tErpSupplierWarehousingBatch1 = new TErpClinicWarehousingBatch(); tErpSupplierWarehousingBatch1.setWarehousingId(tErpSupplierWarehousing.getId()); - tErpSupplierWarehousingBatch1.setWarehousingNumber(tErpSupplierWarehousing.getPurchaseCount()); + tErpSupplierWarehousingBatch1.setWarehousingNumber(inventoryGoodsDto.getInventoryCount() - inventoryGoodsDto.getNum()); tErpSupplierWarehousingBatch1.setBatchNumber(tErpSupplierWarehousingBatch.getBatchNumber()); tErpSupplierWarehousingBatch1.setProductionDate(tErpSupplierWarehousingBatch.getProductionDate()); tErpSupplierWarehousingBatch1.setExpiryDate(tErpSupplierWarehousingBatch.getExpiryDate()); - erpSupplierWarehousingBatchMapper.insert(tErpSupplierWarehousingBatch1); + tErpSupplierWarehousingBatch1.setGoodsId(tErpSupplierWarehousingBatch.getGoodsId()); + tErpSupplierWarehousingBatch1.setQuasiNumber(tErpSupplierWarehousingBatch.getQuasiNumber()); + tErpSupplierWarehousingBatch1.setPurchaseCount(tErpSupplierWarehousingBatch.getPurchaseCount()); + tErpSupplierWarehousingBatch1.setSalesAmount(tErpSupplierWarehousingBatch.getSalesAmount()); + tErpSupplierWarehousingBatch1.setUnitAmount(tErpSupplierWarehousingBatch.getUnitAmount()); + erpClinicWarehousingBatchMapper.insert(tErpSupplierWarehousingBatch1); // 添加盘点信息 - TErpSupplierInventoryGoods tErpSupplierInventoryGoods = new TErpSupplierInventoryGoods(); + TErpClinicInventoryGoods tErpSupplierInventoryGoods = new TErpClinicInventoryGoods(); tErpSupplierInventoryGoods.setInventoryId(tErpSupplierInventory.getId()); tErpSupplierInventoryGoods.setWarehousingId(tErpSupplierWarehousing.getId()); tErpSupplierInventoryGoods.setWarehousingBatchId(tErpSupplierWarehousingBatch1.getId()); tErpSupplierInventoryGoods.setInventoryCount(inventoryGoodsDto.getInventoryCount()); tErpSupplierInventoryGoods.setDamagedCount(inventoryGoodsDto.getDamagedCount()); tErpSupplierInventoryGoods.setInventoryType(1); - tErpSupplierInventoryGoods.setGoodsId(tErpSupplierWarehousing1.getGoodsId()); - erpSupplierInventoryGoodsMapper.insert(tErpSupplierInventoryGoods); + tErpSupplierInventoryGoods.setGoodsId(tErpSupplierWarehousingBatch.getGoodsId()); + erpClinicInventoryGoodsMapper.insert(tErpSupplierInventoryGoods); } else { - TErpSupplierOutbound tErpSupplierOutbound = new TErpSupplierOutbound(); - tErpSupplierOutbound.setWarehouseId(dto.getWarehouseId()); - tErpSupplierOutbound.setSupplierId(supplierClinicId); + TErpClinicOutbound tErpSupplierOutbound = new TErpClinicOutbound(); +// tErpSupplierOutbound.setWarehouseId(dto.getWarehouseId()); +// tErpSupplierOutbound.setSupplierId(supplierClinicId); tErpSupplierOutbound.setOutboundType(6); tErpSupplierOutbound.setOutboundNumber("G" + s); int count = inventoryGoodsDto.getNum() - inventoryGoodsDto.getInventoryCount(); tErpSupplierOutbound.setTotalMoney(erpGoods.getSalesAmount().multiply(new BigDecimal(count))); - erpSupplierOutboundMapper.insert(tErpSupplierOutbound); + tErpSupplierOutbound.setInventoryId(tErpSupplierInventory.getId()); + erpClinicOutboundMapper.insert(tErpSupplierOutbound); - TErpSupplierOutboundGoods tErpSupplierOutboundGoods = new TErpSupplierOutboundGoods(); + TErpClinicOutboundGoods tErpSupplierOutboundGoods = new TErpClinicOutboundGoods(); tErpSupplierOutboundGoods.setOutboundId(tErpSupplierOutbound.getId()); tErpSupplierOutboundGoods.setWarehousingId(tErpSupplierWarehousing1.getId()); tErpSupplierOutboundGoods.setWarehousingBatchId(tErpSupplierWarehousingBatch.getId()); tErpSupplierOutboundGoods.setOutboundCount(count); tErpSupplierOutboundGoods.setTotalPrice(erpGoods.getSalesAmount().multiply(new BigDecimal(count))); - erpSupplierOutboundGoodsMapper.insert(tErpSupplierOutboundGoods); + erpClinicOutboundGoodsMapper.insert(tErpSupplierOutboundGoods); // 添加盘点信息 - TErpSupplierInventoryGoods tErpSupplierInventoryGoods = new TErpSupplierInventoryGoods(); + TErpClinicInventoryGoods tErpSupplierInventoryGoods = new TErpClinicInventoryGoods(); tErpSupplierInventoryGoods.setInventoryId(tErpSupplierInventory.getId()); tErpSupplierInventoryGoods.setWarehousingId(tErpSupplierOutbound.getId()); tErpSupplierInventoryGoods.setWarehousingBatchId(tErpSupplierOutboundGoods.getId()); tErpSupplierInventoryGoods.setInventoryCount(inventoryGoodsDto.getInventoryCount()); tErpSupplierInventoryGoods.setDamagedCount(inventoryGoodsDto.getDamagedCount()); tErpSupplierInventoryGoods.setInventoryType(2); - tErpSupplierInventoryGoods.setGoodsId(tErpSupplierWarehousing1.getGoodsId()); - erpSupplierInventoryGoodsMapper.insert(tErpSupplierInventoryGoods); + tErpSupplierInventoryGoods.setGoodsId(tErpSupplierWarehousingBatch.getGoodsId()); + erpClinicInventoryGoodsMapper.insert(tErpSupplierInventoryGoods); } } -- Gitblit v1.7.1