From 5ba50d43ea3384a606ab16501633797297a78de3 Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期五, 12 九月 2025 10:31:08 +0800 Subject: [PATCH] 供应商erp --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpGoodsController.java | 151 +++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 136 insertions(+), 15 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpGoodsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpGoodsController.java index 4ecd195..175acf9 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpGoodsController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpGoodsController.java @@ -20,21 +20,15 @@ import com.ruoyi.system.dto.TErpGoodsInfoSaveDto; import com.ruoyi.system.dto.TErpGoodsUpdateStatusDto; import com.ruoyi.system.importExcel.TErpGoodsExcel; -import com.ruoyi.system.model.TErpGoods; -import com.ruoyi.system.model.TErpGoodsType; -import com.ruoyi.system.model.TErpGoodsUnit; +import com.ruoyi.system.model.*; import com.ruoyi.system.query.TErpGoodsQuery; -import com.ruoyi.system.service.TErpGoodsService; -import com.ruoyi.system.service.TErpGoodsTypeService; -import com.ruoyi.system.service.TErpGoodsUnitService; +import com.ruoyi.system.service.*; import com.ruoyi.system.vo.TErpGoodsVO; -import com.ruoyi.web.controller.tool.ImportExcelUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.util.StringUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -47,9 +41,10 @@ import java.math.BigDecimal; import java.math.RoundingMode; import java.net.URLEncoder; -import java.text.SimpleDateFormat; -import java.time.LocalDate; -import java.util.*; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; import java.util.stream.Collectors; /** @@ -70,13 +65,27 @@ private final TokenService tokenService; private final TErpGoodsTypeService erpGoodsTypeService; private final TErpGoodsUnitService erpGoodsUnitService; + private final TErpSupplierWarehousingBatchService erpSupplierWarehousingBatchService; + private final TErpSupplierWarehousingService erpSupplierWarehousingService; + private final TErpSupplierOutboundGoodsService erpSupplierOutboundGoodsService; + private final TErpMaintenanceReminderService erpMaintenanceReminderService; + private final TCrmClinicService crmClinicService; + private final TCrmSupplierService crmSupplierService; @Autowired - public TErpGoodsController(TErpGoodsService erpGoodsService, TokenService tokenService, TErpGoodsTypeService erpGoodsTypeService, TErpGoodsUnitService erpGoodsUnitService) { + public TErpGoodsController(TErpGoodsService erpGoodsService, TokenService tokenService, TErpGoodsTypeService erpGoodsTypeService, TErpGoodsUnitService erpGoodsUnitService, + TErpSupplierWarehousingBatchService erpSupplierWarehousingBatchService, TErpSupplierWarehousingService erpSupplierWarehousingService, + TErpSupplierOutboundGoodsService erpSupplierOutboundGoodsService, TErpMaintenanceReminderService erpMaintenanceReminderService, TCrmClinicService crmClinicService, TCrmSupplierService crmSupplierService) { this.erpGoodsService = erpGoodsService; this.tokenService = tokenService; this.erpGoodsTypeService = erpGoodsTypeService; this.erpGoodsUnitService = erpGoodsUnitService; + this.erpSupplierWarehousingBatchService = erpSupplierWarehousingBatchService; + this.erpSupplierWarehousingService = erpSupplierWarehousingService; + this.erpSupplierOutboundGoodsService = erpSupplierOutboundGoodsService; + this.erpMaintenanceReminderService = erpMaintenanceReminderService; + this.crmClinicService = crmClinicService; + this.crmSupplierService = crmSupplierService; } @@ -88,6 +97,21 @@ @PostMapping(value = "/pageList") public R<PageInfo<TErpGoodsVO>> pageList(@RequestBody TErpGoodsQuery query) { SysUser user = tokenService.getLoginUser().getUser(); + Integer roleType = user.getRoleType(); + if(roleType == 4){ + // 供应商 + TCrmSupplier crmSupplier = crmSupplierService.getOne(Wrappers.lambdaQuery(TCrmSupplier.class) + .eq(TCrmSupplier::getUserId, user.getUserId()) + .last("LIMIT 1")); + query.setSupplierClinicId(crmSupplier.getId()); + } + if(roleType == 5){ + // 诊所 + TCrmClinic crmClinic = crmClinicService.getOne(Wrappers.lambdaQuery(TCrmClinic.class) + .eq(TCrmClinic::getUserId, user.getUserId()) + .last("LIMIT 1")); + query.setSupplierClinicId(crmClinic.getId()); + } return R.ok(erpGoodsService.pageList(query,user)); } @@ -100,8 +124,24 @@ if (erpGoodsService.isExit(dto.getGoodsIdCode(), dto.getQuasiNumber())) { return R.fail("erp商品已存在"); } + Integer roleType = user.getRoleType(); TErpGoods goods = new TErpGoods(); - goods.setSupplierClinicId(user.getUserId().toString()); + if(roleType == 4){ + // 供应商 + TCrmSupplier crmSupplier = crmSupplierService.getOne(Wrappers.lambdaQuery(TCrmSupplier.class) + .eq(TCrmSupplier::getUserId, user.getUserId()) + .last("LIMIT 1")); + goods.setSupplierClinicId(crmSupplier.getId()); + goods.setGoodsSource(1); + } + if(roleType == 5){ + // 诊所 + TCrmClinic crmClinic = crmClinicService.getOne(Wrappers.lambdaQuery(TCrmClinic.class) + .eq(TCrmClinic::getUserId, user.getUserId()) + .last("LIMIT 1")); + goods.setSupplierClinicId(crmClinic.getId()); + goods.setGoodsSource(2); + } goods.setCreateId(user.getUserId().toString()); goods.setGoodsIdCode(dto.getGoodsIdCode()); goods.setQuasiNumber(dto.getQuasiNumber()); @@ -140,8 +180,56 @@ @ApiOperation(value = "供应商完善商品") @PostMapping(value = "/saveDataInfo") public R<Boolean> saveDataInfo(@RequestBody @Valid TErpGoodsInfoSaveDto 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()) + .last("LIMIT 1")); + clinicSupplierId = crmSupplier.getId(); + } + if(roleType == 5){ + // 诊所 + TCrmClinic crmClinic = crmClinicService.getOne(Wrappers.lambdaQuery(TCrmClinic.class) + .eq(TCrmClinic::getUserId, user.getUserId()) + .last("LIMIT 1")); + clinicSupplierId =crmClinic.getId(); + } + TErpGoods goods = erpGoodsService.getById(dto.getId()); BeanUtils.copyProperties(dto,goods); + if(goods.getMaintenanceInterval()!=null){ + + List<TErpSupplierWarehousing> list = erpSupplierWarehousingService.list(new LambdaQueryWrapper<TErpSupplierWarehousing>().eq(TErpSupplierWarehousing::getGoodsId, dto.getId())); + if(!list.isEmpty()){ + List<TErpSupplierWarehousingBatch> tErpSupplierWarehousingBatches = erpSupplierWarehousingBatchService.list(new LambdaQueryWrapper<TErpSupplierWarehousingBatch>().in(TErpSupplierWarehousingBatch::getWarehousingId, list.stream().map(TErpSupplierWarehousing::getId).collect(Collectors.toList()))); + for (TErpSupplierWarehousingBatch tErpSupplierWarehousingBatch : tErpSupplierWarehousingBatches) { + List<TErpSupplierOutboundGoods> list1 = erpSupplierOutboundGoodsService.list(new LambdaQueryWrapper<TErpSupplierOutboundGoods>().eq(TErpSupplierOutboundGoods::getWarehousingBatchId, tErpSupplierWarehousingBatch.getId())); + if(!list1.isEmpty()){ + int sum = list1.stream().mapToInt(TErpSupplierOutboundGoods::getOutboundCount).sum(); + if (tErpSupplierWarehousingBatch.getWarehousingNumber()-sum>0) { + // 生成保养单 + TErpMaintenanceReminder tErpMaintenanceReminder = new TErpMaintenanceReminder(); + tErpMaintenanceReminder.setClinicSupplierId(clinicSupplierId); + tErpMaintenanceReminder.setMaintenanceType(1); + tErpMaintenanceReminder.setWarehousingBatchId(tErpSupplierWarehousingBatch.getId()); + Integer day = Integer.valueOf(goods.getMaintenanceInterval()); + // 当前时间+day天 + LocalDateTime time1 = LocalDateTime.now().plusDays(day); + tErpMaintenanceReminder.setMaintenanceTime(time1); + erpMaintenanceReminderService.save(tErpMaintenanceReminder); + } + } + + } + + } + + } + + return R.ok(erpGoodsService.updateById(goods)); } @@ -157,6 +245,23 @@ public void listExport(@RequestBody TErpGoodsQuery query) { SysUser user = tokenService.getLoginUser().getUser(); + + Integer roleType = user.getRoleType(); + if(roleType == 4){ + // 供应商 + TCrmSupplier crmSupplier = crmSupplierService.getOne(Wrappers.lambdaQuery(TCrmSupplier.class) + .eq(TCrmSupplier::getUserId, user.getUserId()) + .last("LIMIT 1")); + query.setSupplierClinicId(crmSupplier.getId()); + } + if(roleType == 5){ + // 诊所 + TCrmClinic crmClinic = crmClinicService.getOne(Wrappers.lambdaQuery(TCrmClinic.class) + .eq(TCrmClinic::getUserId, user.getUserId()) + .last("LIMIT 1")); + query.setSupplierClinicId(crmClinic.getId()); + } + List<TErpGoodsVO> pageList = erpGoodsService.listExport(query,user); Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), TErpGoodsVO.class, pageList); HttpServletResponse response = WebUtils.response(); @@ -203,10 +308,26 @@ if (collect.size() != carAnnuallyImportExcels.size()) { return AjaxResult.error("导入数据中商品标识码重复"); } + Integer roleType = user.getRoleType(); for (TErpGoodsExcel erpGoodsExcel : carAnnuallyImportExcels) { TErpGoods goods = new TErpGoods(); - goods.setSupplierClinicId(user.getUserId().toString()); - goods.setGoodsSource(1); + + if(roleType == 4){ + // 供应商 + TCrmSupplier crmSupplier = crmSupplierService.getOne(Wrappers.lambdaQuery(TCrmSupplier.class) + .eq(TCrmSupplier::getUserId, user.getUserId()) + .last("LIMIT 1")); + goods.setSupplierClinicId(crmSupplier.getId()); + goods.setGoodsSource(1); + } + if(roleType == 5){ + // 诊所 + TCrmClinic crmClinic = crmClinicService.getOne(Wrappers.lambdaQuery(TCrmClinic.class) + .eq(TCrmClinic::getUserId, user.getUserId()) + .last("LIMIT 1")); + goods.setSupplierClinicId(crmClinic.getId()); + goods.setGoodsSource(2); + } // 判空 if(erpGoodsExcel.getGoodsName()==null || erpGoodsExcel.getGoodsName().isEmpty()){ -- Gitblit v1.7.1