From 5d4ebe6d0b7dda230b19f4913bdeb60556b46678 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期一, 13 十月 2025 18:33:47 +0800
Subject: [PATCH] bug修改
---
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpClinicWarehousingServiceImpl.java | 435 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 433 insertions(+), 2 deletions(-)
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpClinicWarehousingServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpClinicWarehousingServiceImpl.java
index 65a8f92..742bfa3 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpClinicWarehousingServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpClinicWarehousingServiceImpl.java
@@ -1,10 +1,32 @@
package com.ruoyi.system.service.impl;
-import com.ruoyi.system.model.TErpClinicWarehousing;
-import com.ruoyi.system.mapper.TErpClinicWarehousingMapper;
+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.ruoyi.common.basic.PageInfo;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.system.dto.ClinicOutboundGoodsDto;
+import com.ruoyi.system.dto.OutboundGoodsNextDto;
+import com.ruoyi.system.dto.WarehouseGoodsDto;
+import com.ruoyi.system.dto.clinicWarehouseGoodsDto;
+import com.ruoyi.system.mapper.*;
+import com.ruoyi.system.model.*;
+import com.ruoyi.system.query.*;
+import com.ruoyi.system.service.TCrmSupplierService;
import com.ruoyi.system.service.TErpClinicWarehousingService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+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.List;
+import java.util.Map;
+import java.util.stream.Collectors;
/**
* <p>
@@ -17,4 +39,413 @@
@Service
public class TErpClinicWarehousingServiceImpl extends ServiceImpl<TErpClinicWarehousingMapper, TErpClinicWarehousing> implements TErpClinicWarehousingService {
+
+ @Resource
+ private TCrmClinicMapper crmClinicMapper;
+
+ @Resource
+ private TErpClinicInventoryGoodsMapper erpClinicInventoryGoodsMapper;
+
+ @Resource
+ private TErpGoodsMapper erpGoodsMapper;
+
+ @Resource
+ private TErpClinicWarehousingMapper erpClinicWarehousingMapper;
+
+ @Resource
+ private TErpClinicWarehousingBatchMapper erpClinicWarehousingBatchMapper;
+
+ @Resource
+ private TErpClinicOutboundGoodsMapper erpClinicOutboundGoodsMapper;
+
+
+ @Resource
+ private TErpClinicOutboundMapper erpClinicOutboundMapper;
+
+ @Resource
+ private TErpGoodsUnitMapper erpGoodsUnitMapper;
+
+
+ @Resource
+ private TErpGoodsTypeMapper erpGoodsTypeMapper;
+
+ @Resource
+ private TErpMaintenanceReminderMapper erpMaintenanceReminderMapper;
+
+ @Resource
+ private TCrmSupplierMapper crmSupplierMapper;
+
+
+ @Override
+ public PageInfo<PageInventoryListVo> pageInventoryList(TErpInventoryQuery query, SysUser user) {
+ Integer roleType = user.getRoleType();
+ String supplierClinicId = null;
+ if(roleType == 5){
+ // 诊所
+ TCrmClinic crmClinic = crmClinicMapper.selectOne(Wrappers.lambdaQuery(TCrmClinic.class)
+ .eq(TCrmClinic::getUserId, user.getUserId())
+ .last("LIMIT 1"));
+ supplierClinicId =crmClinic.getId();
+ }
+ String sTime=null;
+ String eTime =null;
+ if(query.getTime()!=null && !query.getTime().isEmpty()){
+ String[] split = query.getTime().split(" - ");
+ sTime = split[0] + " 00:00:00";
+ eTime = split[1] + " 23:59:59";
+ }
+ PageInfo<PageInventoryListVo> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+ List<PageInventoryListVo> list = this.baseMapper.pageInventoryList(pageInfo,query,user,sTime,eTime,supplierClinicId);
+ if(list.isEmpty()){
+ return pageInfo;
+ }
+
+
+
+ List<String> collect = list.stream().map(PageInventoryListVo::getId).collect(Collectors.toList());
+ List<TErpClinicInventoryGoods> tErpSupplierInventoryGoods = erpClinicInventoryGoodsMapper.selectList(new LambdaQueryWrapper<TErpClinicInventoryGoods>().in(TErpClinicInventoryGoods::getInventoryId,collect));
+ for (PageInventoryListVo pageInventoryListVo : list) {
+ // 盘盈
+ BigDecimal add = BigDecimal.ZERO;
+
+ // 盘亏
+ BigDecimal subtract = BigDecimal.ZERO;
+ List<TErpClinicInventoryGoods> tErpSupplierInventoryGoodsList = tErpSupplierInventoryGoods.stream().filter(t -> t.getInventoryId().equals(pageInventoryListVo.getId())).collect(Collectors.toList());
+ for (TErpClinicInventoryGoods tErpSupplierInventoryGoods1 : tErpSupplierInventoryGoodsList) {
+
+
+ if(tErpSupplierInventoryGoods1!=null){
+ // 盘盈 查入库
+ if(tErpSupplierInventoryGoods1.getInventoryType()==1){
+ TErpClinicWarehousingBatch tErpSupplierWarehousing = erpClinicWarehousingBatchMapper.selectById(tErpSupplierInventoryGoods1.getWarehousingBatchId());
+// List<TErpSupplierWarehousingBatch> tErpSupplierWarehousingBatches = erpSupplierWarehousingBatchMapper.selectList(new LambdaQueryWrapper<TErpSupplierWarehousingBatch>().eq(TErpSupplierWarehousingBatch::getWarehousingId, tErpSupplierWarehousing.getId()));
+// int sum = tErpSupplierWarehousingBatches.stream().mapToInt(TErpSupplierWarehousingBatch::getWarehousingNumber).sum();
+ String goodsId = tErpSupplierInventoryGoods1.getGoodsId();
+// TErpGoods goods = erpGoodsMapper.selectById(goodsId);
+ int count = tErpSupplierInventoryGoods1.getInventoryCount() - tErpSupplierInventoryGoods1.getDamagedCount();
+ BigDecimal multiply = tErpSupplierWarehousing.getSalesAmount().multiply(new BigDecimal(count));
+ add = add.add(multiply);
+ }else {
+ // 盘亏 查出库
+ TErpClinicOutbound tErpSupplierOutbound = erpClinicOutboundMapper.selectById(tErpSupplierInventoryGoods1.getWarehousingId());
+
+ List<TErpClinicOutboundGoods> tErpSupplierOutboundGoods = erpClinicOutboundGoodsMapper.selectList(new LambdaQueryWrapper<TErpClinicOutboundGoods>().eq(TErpClinicOutboundGoods::getOutboundId, tErpSupplierOutbound.getId()));
+ for (TErpClinicOutboundGoods tErpSupplierOutboundGood : tErpSupplierOutboundGoods) {
+ TErpClinicWarehousingBatch tErpSupplierWarehousing = erpClinicWarehousingBatchMapper.selectById(tErpSupplierOutboundGood.getWarehousingBatchId());
+// String goodsId = tErpSupplierInventoryGoods1.getGoodsId();
+// TErpGoods goods = erpGoodsMapper.selectById(goodsId);
+ int count = tErpSupplierInventoryGoods1.getInventoryCount() - tErpSupplierInventoryGoods1.getDamagedCount();
+ BigDecimal multiply = tErpSupplierWarehousing.getSalesAmount().multiply(new BigDecimal(count));
+ add = add.add(multiply);
+ }
+// int sum = tErpSupplierOutboundGoods.stream().mapToInt(TErpSupplierOutboundGoods::getOutboundCount).sum();
+// String goodsId = tErpSupplierOutbound.getGoodsId();
+// TErpGoods goods = erpGoodsMapper.selectById(goodsId);
+// BigDecimal multiply = goods.getSalesAmount().multiply(new BigDecimal(sum));
+// subtract = subtract.add(multiply);
+ }
+ }
+ }
+ int size = tErpSupplierInventoryGoodsList.stream().map(TErpClinicInventoryGoods::getGoodsId).collect(Collectors.toSet()).size();
+ pageInventoryListVo.setNum(size);
+ pageInventoryListVo.setTotalPrice(add);
+
+ }
+
+ pageInfo.setRecords(list);
+ return pageInfo;
+ }
+
+ @Override
+ public List<InventoryDetailVo> detailInventory(String id, SysUser user) {
+ ArrayList<InventoryDetailVo> inventoryDetailVos = new ArrayList<>();
+
+ List<TErpClinicInventoryGoods> tErpSupplierInventoryGoods = erpClinicInventoryGoodsMapper.selectList(new LambdaQueryWrapper<TErpClinicInventoryGoods>().eq(TErpClinicInventoryGoods::getInventoryId, id));
+ if(tErpSupplierInventoryGoods!=null && !tErpSupplierInventoryGoods.isEmpty()){
+ for (TErpClinicInventoryGoods tErpSupplierInventoryGood : tErpSupplierInventoryGoods) {
+ InventoryDetailVo inventoryDetailVo = new InventoryDetailVo();
+ if(tErpSupplierInventoryGood.getInventoryType()==1){
+ TErpClinicWarehousing tErpSupplierWarehousing = erpClinicWarehousingMapper.selectById(tErpSupplierInventoryGood.getWarehousingId());
+ String goodsId = tErpSupplierInventoryGood.getGoodsId();
+ TErpGoods goods = erpGoodsMapper.selectById(goodsId);
+
+ if(goods.getGoodsSource()==1){
+ TCrmSupplier supplier = crmSupplierMapper.selectById(goods.getSupplierClinicId());
+ if(supplier!=null){
+ inventoryDetailVo.setSupplierName(supplier.getSupplierName());
+ }
+ }else {
+ inventoryDetailVo.setSupplierName(goods.getSupplierName());
+ }
+
+ inventoryDetailVo.setGoodsName(goods.getGoodsName());
+ TErpGoodsUnit tErpGoodsUnit = erpGoodsUnitMapper.selectById(goods.getPackingUnitId());
+ inventoryDetailVo.setUnitName(tErpGoodsUnit.getUnitName());
+ inventoryDetailVo.setWarehouseNo(tErpSupplierWarehousing.getWarehouseNo());
+ TErpClinicWarehousingBatch tErpSupplierWarehousingBatch = erpClinicWarehousingBatchMapper.selectById(tErpSupplierInventoryGood.getWarehousingBatchId());
+ inventoryDetailVo.setBatchNumber(tErpSupplierWarehousingBatch.getBatchNumber());
+
+ List<TErpClinicWarehousingBatch> tErpSupplierWarehousingBatches = erpClinicWarehousingBatchMapper.selectList(new LambdaQueryWrapper<TErpClinicWarehousingBatch>().eq(TErpClinicWarehousingBatch::getBatchNumber, tErpSupplierWarehousingBatch.getBatchNumber()));
+ int sum = tErpSupplierWarehousingBatches.stream().mapToInt(TErpClinicWarehousingBatch::getWarehousingNumber).sum();
+ List<String> collect = tErpSupplierWarehousingBatches.stream().map(TErpClinicWarehousingBatch::getId).collect(Collectors.toList());
+ if(!collect.isEmpty()){
+ List<TErpClinicOutboundGoods> tErpSupplierOutboundGoods = erpClinicOutboundGoodsMapper.selectList(new LambdaQueryWrapper<TErpClinicOutboundGoods>().eq(TErpClinicOutboundGoods::getWarehousingBatchId, collect));
+ int sum1 = tErpSupplierOutboundGoods.stream().mapToInt(TErpClinicOutboundGoods::getOutboundCount).sum();
+ sum = sum-sum1;
+ }
+
+ // sum = 剩余库存
+ inventoryDetailVo.setNowCount(sum);
+ inventoryDetailVo.setInventoryCount(tErpSupplierInventoryGood.getInventoryCount());
+ inventoryDetailVo.setInventoryType(tErpSupplierInventoryGood.getInventoryType());
+ inventoryDetailVo.setDamagedCount(tErpSupplierInventoryGood.getDamagedCount());
+ }else {
+ TErpClinicOutbound tErpSupplierOutbound = erpClinicOutboundMapper.selectById(tErpSupplierInventoryGood.getWarehousingId());
+ List<TErpClinicOutboundGoods> tErpSupplierOutboundGoods = erpClinicOutboundGoodsMapper.selectList(new LambdaQueryWrapper<TErpClinicOutboundGoods>().eq(TErpClinicOutboundGoods::getOutboundId, tErpSupplierOutbound.getId()));
+ for (TErpClinicOutboundGoods tErpSupplierOutboundGood : tErpSupplierOutboundGoods) {
+ String warehousingId = tErpSupplierOutboundGood.getWarehousingId();
+ TErpClinicWarehousing tErpSupplierWarehousing = erpClinicWarehousingMapper.selectById(warehousingId);
+ String goodsId = tErpSupplierInventoryGood.getGoodsId();
+ TErpGoods goods = erpGoodsMapper.selectById(goodsId);
+ if(goods.getGoodsSource()==1){
+ TCrmSupplier supplier = crmSupplierMapper.selectById(goods.getSupplierClinicId());
+ if(supplier!=null){
+ inventoryDetailVo.setSupplierName(supplier.getSupplierName());
+ }
+ }else {
+ inventoryDetailVo.setSupplierName(goods.getSupplierName());
+ }
+
+ inventoryDetailVo.setGoodsName(goods.getGoodsName());
+ TErpGoodsUnit tErpGoodsUnit = erpGoodsUnitMapper.selectById(goods.getPackingUnitId());
+ inventoryDetailVo.setUnitName(tErpGoodsUnit.getUnitName());
+ inventoryDetailVo.setWarehouseNo(tErpSupplierWarehousing.getWarehouseNo());
+ TErpClinicOutboundGoods outboundGoods = erpClinicOutboundGoodsMapper.selectById(tErpSupplierInventoryGood.getWarehousingBatchId());
+
+ TErpClinicWarehousingBatch tErpSupplierWarehousingBatch = erpClinicWarehousingBatchMapper.selectById(outboundGoods.getWarehousingBatchId());
+ inventoryDetailVo.setBatchNumber(tErpSupplierWarehousingBatch.getBatchNumber());
+
+
+ List<TErpClinicWarehousingBatch> tErpSupplierWarehousingBatches = erpClinicWarehousingBatchMapper.selectList(new LambdaQueryWrapper<TErpClinicWarehousingBatch>().eq(TErpClinicWarehousingBatch::getId, outboundGoods.getWarehousingBatchId()));
+ int sum = tErpSupplierWarehousingBatches.stream().mapToInt(TErpClinicWarehousingBatch::getWarehousingNumber).sum();
+ List<String> collect = tErpSupplierWarehousingBatches.stream().map(TErpClinicWarehousingBatch::getId).collect(Collectors.toList());
+ if(!collect.isEmpty()){
+ List<TErpClinicOutboundGoods> tErpSupplierOutboundGoods1 = erpClinicOutboundGoodsMapper.selectList(new LambdaQueryWrapper<TErpClinicOutboundGoods>().in(TErpClinicOutboundGoods::getWarehousingBatchId, collect));
+ int sum1 = tErpSupplierOutboundGoods1.stream().mapToInt(TErpClinicOutboundGoods::getOutboundCount).sum();
+ sum = sum-sum1;
+ }
+
+ // sum = 剩余库存
+ inventoryDetailVo.setNowCount(sum);
+ inventoryDetailVo.setInventoryCount(tErpSupplierInventoryGood.getInventoryCount());
+ inventoryDetailVo.setInventoryType(tErpSupplierInventoryGood.getInventoryType());
+ inventoryDetailVo.setDamagedCount(tErpSupplierInventoryGood.getDamagedCount());
+ }
+
+ }
+ inventoryDetailVos.add(inventoryDetailVo);
+
+ }
+
+ return inventoryDetailVos;
+
+ }
+
+
+ return Collections.emptyList();
+ }
+
+
+
+ @Override
+ public PageInfo<ValidityPeriodWarningVo> validityPeriodWarning(ValidityPeriodWarningQuery query, SysUser user) {
+ Integer roleType = user.getRoleType();
+ String supplierClinicId = null;
+ if(roleType == 5){
+ // 诊所
+ TCrmClinic crmClinic = crmClinicMapper.selectOne(Wrappers.lambdaQuery(TCrmClinic.class)
+ .eq(TCrmClinic::getUserId, user.getUserId())
+ .last("LIMIT 1"));
+ supplierClinicId =crmClinic.getId();
+ }
+ // 获取当前时间后9个月的时间
+ LocalDateTime nineMonthLater = LocalDateTime.now().plusMonths(9);
+
+ PageInfo<ValidityPeriodWarningVo> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+
+
+
+ return this.baseMapper.validityPeriodWarning(pageInfo,query,user,nineMonthLater,supplierClinicId);
+ }
+
+ @Override
+ public PageInfo<TErpGoodsVO> pageList(TErpGoodsQuery query, SysUser user) {
+ PageInfo<TErpGoodsVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+ List<TErpGoodsVO> list = this.baseMapper.pageList(query,pageInfo,user);
+ if(list.isEmpty()){
+ return pageInfo;
+ }
+
+
+ List<String> typeIds = list.stream().map(TErpGoods::getTypeId).collect(Collectors.toList());
+ if(!typeIds.isEmpty()){
+ List<TErpGoodsType> typeList = erpGoodsTypeMapper.selectBatchIds(typeIds);
+ for (TErpGoodsVO tErpGoodsVO : list) {
+ typeList.stream().filter(t -> t.getId().equals(tErpGoodsVO.getTypeId())).findFirst().ifPresent(t -> tErpGoodsVO.setTypeName(t.getTypeName()));
+ tErpGoodsVO.setTypeName(tErpGoodsVO.getTypeName());
+ }
+ }
+ pageInfo.setRecords(list);
+ return pageInfo;
+ }
+ @Override
+ public List<TErpGoodsVO> pageList1(TErpGoodsQuery query, SysUser user) {
+ List<TErpGoodsVO> list = this.baseMapper.pageList1(query,user);
+ if(list.isEmpty()){
+ return list;
+ }
+
+
+ List<String> typeIds = list.stream().map(TErpGoods::getTypeId).collect(Collectors.toList());
+ if(!typeIds.isEmpty()){
+ List<TErpGoodsType> typeList = erpGoodsTypeMapper.selectBatchIds(typeIds);
+ for (TErpGoodsVO tErpGoodsVO : list) {
+ typeList.stream().filter(t -> t.getId().equals(tErpGoodsVO.getTypeId())).findFirst().ifPresent(t -> tErpGoodsVO.setTypeName(t.getTypeName()));
+ tErpGoodsVO.setTypeName(tErpGoodsVO.getTypeName());
+ }
+ }
+ return list;
+ }
+
+ @Override
+ public PageInfo<TErpClinicWarehousePageListVO> warehousePageList(TClinicWarehouseQuery query, SysUser user, String supplierClinicId) {
+ String time = query.getTime();
+ String sTime =null;
+ String eTime = null;
+ if(time!=null && !time.isEmpty()){
+ String[] split = time.split(" - ");
+ sTime = split[0] + " 00:00:00";
+ eTime = split[1] + " 23:59:59";
+ }
+ PageInfo<TErpClinicWarehousePageListVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+ List<TErpClinicWarehousePageListVO> list = this.baseMapper.warehousePageList(query,pageInfo,user,supplierClinicId,sTime,eTime);
+ if(list.isEmpty()){
+ return pageInfo;
+ }
+ List<String> collect = list.stream().map(TErpClinicWarehousePageListVO::getId).collect(Collectors.toList());
+ List<TErpClinicWarehousingBatch> tErpClinicWarehousingBatches = erpClinicWarehousingBatchMapper.selectList(new LambdaQueryWrapper<TErpClinicWarehousingBatch>().in(TErpClinicWarehousingBatch::getWarehousingId, collect));
+
+ for (TErpClinicWarehousePageListVO tErpClinicWarehousePageListVO : list) {
+ int size = tErpClinicWarehousingBatches.stream().filter(e -> e.getWarehousingId().equals(tErpClinicWarehousePageListVO.getId())).map(TErpClinicWarehousingBatch::getGoodsId).collect(Collectors.toSet()).size();
+ tErpClinicWarehousePageListVO.setTypeNum(size);
+ }
+ pageInfo.setRecords(list);
+ return pageInfo;
+ }
+
+ @Override
+ public PageInfo<TErpClinicOutboundPageListVO> outboundPageList(TClinicOutboundQuery query, SysUser user, String supplierClinicId) {
+ String time = query.getTime();
+ String sTime =null;
+ String eTime = null;
+ if(time!=null && !time.isEmpty()){
+ String[] split = time.split(" - ");
+ sTime = split[0] + " 00:00:00";
+ eTime = split[1] + " 23:59:59";
+ }
+ PageInfo<TErpClinicOutboundPageListVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+ List<TErpClinicOutboundPageListVO> list = this.baseMapper.outboundPageList(query,pageInfo,user,supplierClinicId,sTime,eTime);
+ pageInfo.setRecords(list);
+ return pageInfo;
+ }
+
+ @Override
+ public void warehouseGoods(WarehouseGoodsDto dtos, SysUser user, String supplierClinicId) {
+
+ // dtos根据供应商分组
+// Map<String, List<clinicWarehouseGoodsDto>> collect = dtos.stream().collect(Collectors.groupingBy(clinicWarehouseGoodsDto::getSupplierId));
+
+// for (Map.Entry<String, List<clinicWarehouseGoodsDto>> stringListEntry : collect.entrySet()) {
+ TErpClinicWarehousing tErpClinicWarehousing = new TErpClinicWarehousing();
+ tErpClinicWarehousing.setClinicId(supplierClinicId);
+ tErpClinicWarehousing.setCreateId(user.getUserId().toString());
+ tErpClinicWarehousing.setWarehouseNo("G"+ DateUtils.dateTimeNow());
+ tErpClinicWarehousing.setCreateTime(LocalDateTime.now());
+ tErpClinicWarehousing.setType(3);
+ tErpClinicWarehousing.setStatus(dtos.getStatus());
+ this.save(tErpClinicWarehousing);
+
+ BigDecimal totalPrice = new BigDecimal(0);
+ for (clinicWarehouseGoodsDto dto : dtos.getDtos()) {
+ TErpClinicWarehousingBatch tErpClinicWarehousingBatch = new TErpClinicWarehousingBatch();
+ tErpClinicWarehousingBatch.setWarehousingId(tErpClinicWarehousing.getId());
+ tErpClinicWarehousingBatch.setWarehousingNumber(dto.getPurchaseCount());
+ tErpClinicWarehousingBatch.setBatchNumber(dto.getBatchNumber());
+ tErpClinicWarehousingBatch.setProductionDate(dto.getProductionDate().atStartOfDay());
+ tErpClinicWarehousingBatch.setExpiryDate(dto.getExpiryDate().atStartOfDay());
+ tErpClinicWarehousingBatch.setGoodsId(dto.getId());
+ TErpGoods goods = erpGoodsMapper.selectById(dto.getId());
+ tErpClinicWarehousingBatch.setGoodsName(goods.getGoodsName());
+ tErpClinicWarehousingBatch.setQuasiNumber(goods.getQuasiNumber());
+ tErpClinicWarehousingBatch.setUnitAmount(dto.getUnitAmount());
+ tErpClinicWarehousingBatch.setSalesAmount(dto.getSalesAmount());
+ if(dto.getSalesAmount()==null){
+ tErpClinicWarehousingBatch.setSalesAmount(goods.getClinicPurchasePrice());
+ }
+ tErpClinicWarehousingBatch.setPurchaseCount(dto.getPurchaseCount());
+ erpClinicWarehousingBatchMapper.insert(tErpClinicWarehousingBatch);
+
+
+ if(goods.getMaintenanceInterval()!=null && !goods.getMaintenanceInterval().isEmpty()){
+ TErpMaintenanceReminder tErpMaintenanceReminder = new TErpMaintenanceReminder();
+ tErpMaintenanceReminder.setClinicSupplierId(supplierClinicId);
+ tErpMaintenanceReminder.setMaintenanceType(2);
+ tErpMaintenanceReminder.setWarehousingBatchId(tErpClinicWarehousingBatch.getId());
+ Integer day = Integer.valueOf(goods.getMaintenanceInterval());
+ // 当前时间+day天
+ LocalDateTime time1 = LocalDateTime.now().plusDays(day);
+ tErpMaintenanceReminder.setMaintenanceTime(time1);
+ erpMaintenanceReminderMapper.insert(tErpMaintenanceReminder);
+ }
+
+
+ totalPrice = totalPrice.add(dto.getSalesAmount().multiply(new BigDecimal(dto.getPurchaseCount())));
+ }
+ tErpClinicWarehousing.setTotalPrice(totalPrice);
+ this.updateById(tErpClinicWarehousing);
+
+// }
+
+ }
+
+ @Override
+ public void outboundGoods(ClinicOutboundGoodsDto dto, SysUser user, String supplierClinicId) {
+ TErpClinicOutbound tErpClinicOutbound = new TErpClinicOutbound();
+ tErpClinicOutbound.setClinicId(supplierClinicId);
+ tErpClinicOutbound.setCreateId(user.getUserId().toString());
+ tErpClinicOutbound.setOutboundNumber("G"+ DateUtils.dateTimeNow());
+ tErpClinicOutbound.setCreateTime(LocalDateTime.now());
+ tErpClinicOutbound.setOutboundType(dto.getOutboundType());
+ tErpClinicOutbound.setTotalMoney(dto.getTotalPrice());
+ tErpClinicOutbound.setOutboundReason(dto.getOutboundReason());
+ tErpClinicOutbound.setTypeNum(dto.getTypeNum());
+ erpClinicOutboundMapper.insert(tErpClinicOutbound);
+
+ List<TErpClinicOutboundGoods> tErpClinicOutboundGoods = new ArrayList<>();
+ for (OutboundGoodsNextDto outboundGoodsNextDto : dto.getOutboundGoodsNextDtos()) {
+ TErpClinicOutboundGoods tErpClinicOutboundGoods1 = new TErpClinicOutboundGoods();
+ tErpClinicOutboundGoods1.setOutboundId(tErpClinicOutbound.getId());
+ String batchId = outboundGoodsNextDto.getBatchId();
+ TErpClinicWarehousingBatch tErpClinicWarehousingBatch = erpClinicWarehousingBatchMapper.selectById(batchId);
+ tErpClinicOutboundGoods1.setWarehousingId(tErpClinicWarehousingBatch.getWarehousingId());
+ tErpClinicOutboundGoods1.setWarehousingBatchId(batchId);
+ tErpClinicOutboundGoods1.setOutboundCount(outboundGoodsNextDto.getNum());
+ tErpClinicOutboundGoods1.setTotalPrice(tErpClinicWarehousingBatch.getUnitAmount().multiply(BigDecimal.valueOf(outboundGoodsNextDto.getNum())));
+ tErpClinicOutboundGoods1.setGoodsId(tErpClinicWarehousingBatch.getGoodsId());
+ tErpClinicOutboundGoods.add(tErpClinicOutboundGoods1);
+ erpClinicOutboundGoodsMapper.insert(tErpClinicOutboundGoods1);
+ }
+
+ }
}
+
--
Gitblit v1.7.1