From 6664ba895c7b2b5837f53cea44692610848ff60c Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期四, 23 十月 2025 16:53:31 +0800
Subject: [PATCH] 修改bug
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpGoodsController.java | 611 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 595 insertions(+), 16 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 a009823..4a15e18 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
@@ -1,27 +1,55 @@
package com.ruoyi.web.controller.api;
+import cn.afterturn.easypoi.excel.ExcelExportUtil;
+import cn.afterturn.easypoi.excel.ExcelImportUtil;
+import cn.afterturn.easypoi.excel.entity.ExportParams;
+import cn.afterturn.easypoi.excel.entity.ImportParams;
+import com.alibaba.fastjson2.JSONObject;
+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.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.BaseModel;
+import com.ruoyi.common.core.domain.BasePage;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.exception.ServiceException;
+import com.ruoyi.common.utils.WebUtils;
import com.ruoyi.framework.web.service.TokenService;
-import com.ruoyi.system.dto.TErpGoodsAddDto;
-import com.ruoyi.system.dto.TErpGoodsUpdateStatus;
-import com.ruoyi.system.dto.TErpGoodsUpdateStatusDto;
-import com.ruoyi.system.model.TErpGoods;
+import com.ruoyi.system.dto.*;
+import com.ruoyi.system.importExcel.TErpGoodsExcel;
+import com.ruoyi.system.model.*;
+import com.ruoyi.system.query.PageAddListQuery;
+import com.ruoyi.system.query.TErpGoodsAdminQuery;
import com.ruoyi.system.query.TErpGoodsQuery;
-import com.ruoyi.system.query.TErpIssueReportingQuery;
-import com.ruoyi.system.service.TCrmClinicService;
-import com.ruoyi.system.service.TCrmSupplierService;
-import com.ruoyi.system.service.TErpGoodsService;
-import com.ruoyi.system.service.TErpIssueReportingService;
+import com.ruoyi.system.service.*;
import com.ruoyi.system.vo.TErpGoodsVO;
-import com.ruoyi.system.vo.TErpIssueReportingVO;
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.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+import java.io.IOException;
+import java.io.InputStream;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.net.URLEncoder;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
/**
* <p>
@@ -39,11 +67,29 @@
private final TErpGoodsService erpGoodsService;
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) {
+ 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;
}
@@ -51,11 +97,105 @@
/**
* 获取erp问题上报管理列表
*/
- @ApiOperation(value = "供应商获取商品分页列表")
+ @ApiOperation(value = "供应商 诊所 获取商品分页列表")
@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));
+ }
+
+ /**
+ * 获取erp问题上报管理列表
+ */
+ @ApiOperation(value = "平台获取商品分页列表")
+ @PostMapping(value = "/pageAdminList")
+ public R<PageInfo<TErpGoodsVO>> pageAdminList(@RequestBody TErpGoodsAdminQuery query) {
+ SysUser user = tokenService.getLoginUser().getUser();
+ Integer roleType = user.getRoleType();
+ if(roleType == 1){
+ // 平台
+ return R.ok(erpGoodsService.pageAdminList(query));
+ }
+ return R.ok();
+ }
+
+
+
+ /**
+ * 获取erp问题上报管理列表
+ */
+ @ApiOperation(value = "诊所 一键获取商品分页列表")
+ @PostMapping(value = "/pageAddList")
+ public R<Page<TErpGoods>> pageAddList(@RequestBody PageAddListQuery query) {
+ 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();
+ }
+ Page<TErpGoods> tErpGoodsPage = new Page<>(query.getPageNum(), query.getPageSize());
+
+ List<TErpGoods> page = erpGoodsService.pageAddList(tErpGoodsPage,clinicSupplierId,query);
+ tErpGoodsPage.setRecords(page);
+ return R.ok(tErpGoodsPage);
+ }
+
+ /**
+ * 获取erp问题上报管理列表
+ */
+ @ApiOperation(value = "诊所 一键获取商品 获取全部")
+ @PostMapping(value = "/getAllGoodsList")
+ public R<?> getAllGoodsList() {
+ 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();
+ }
+
+ List<TErpGoods> list = erpGoodsService.list(new LambdaQueryWrapper<TErpGoods>().eq(TErpGoods::getGoodsSource, 1).eq(TErpGoods::getState,1).eq(BaseModel::getDisabled, 0).isNotNull(TErpGoods::getPlatformCommissionPrice).last("and (NOT FIND_IN_SET(" + clinicSupplierId + ",clinic_ids) or clinic_ids is null)"));
+ for (TErpGoods goods : list) {
+ String clinicIds = goods.getClinicIds();
+ if(clinicIds == null || clinicIds.isEmpty()){
+ goods.setClinicIds(clinicSupplierId);
+ }else {
+ String[] split = clinicIds.split(",");
+ ArrayList<String> split1 = new ArrayList<>();
+ for (String s : split) {
+ split1.add(s);
+ }
+ if(!split1.contains(clinicSupplierId)){
+ split1.add(clinicSupplierId);
+ goods.setClinicIds(String.join(",",split1));
+ }
+ }
+
+ }
+ erpGoodsService.updateBatchById(list);
+ return R.ok();
}
@@ -63,11 +203,29 @@
@ApiOperation(value = "供应商添加商品")
@PostMapping(value = "/add")
public R<Boolean> add(@Validated @RequestBody TErpGoodsAddDto dto) {
- if (erpGoodsService.isExit(dto.getGoodsIdCode())) {
+ SysUser user = tokenService.getLoginUser().getUser();
+ if (erpGoodsService.isExit(dto.getGoodsIdCode(), dto.getQuasiNumber(),null)) {
return R.fail("erp商品已存在");
}
+ Integer roleType = user.getRoleType();
TErpGoods goods = new TErpGoods();
- goods.setSupplierId(user.getClinicId());
+ 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());
goods.setManufacturer(dto.getManufacturer());
@@ -76,11 +234,126 @@
goods.setGoodsName(dto.getGoodsName());
return R.ok(erpGoodsService.save(goods));
}
+ @ApiOperation(value = "诊所添加商品")
+ @PostMapping(value = "/clinicAdd")
+ public R<Boolean> clinicAdd(@Validated @RequestBody TErpClinicGoodsAddDto dto) {
+ SysUser user = tokenService.getLoginUser().getUser();
+ if (erpGoodsService.isExit(dto.getGoodsIdCode(), dto.getQuasiNumber(),null)) {
+ return R.fail("erp商品已存在,商品条码重复");
+ }
+ if (erpGoodsService.isExitOne(dto.getGoodsIdCode(), dto.getQuasiNumber(),null)) {
+ return R.fail("erp商品已存在,国药准字号重复");
+ }
+ Integer roleType = user.getRoleType();
+ TErpGoods goods = new TErpGoods();
+ BeanUtils.copyProperties(dto,goods);
+ goods.setGoodsSpec(dto.getFormulationSpec()+"*"+dto.getPackingSpec());
+ 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.setClinicPurchasePrice(dto.getSalesAmount());
+ return R.ok(erpGoodsService.save(goods));
+ }
- @ApiOperation(value = "供应商删除商品")
+ @ApiOperation(value = "诊所编辑商品")
+ @PostMapping(value = "/clinicUpdate")
+ public R<Boolean> clinicUpdate(@Validated @RequestBody TErpClinicGoodsUpdateDto dto) {
+ SysUser user = tokenService.getLoginUser().getUser();
+ if (erpGoodsService.isExit(dto.getGoodsIdCode(), dto.getQuasiNumber(),dto.getId())) {
+ return R.fail("erp商品已存在");
+ }
+ Integer roleType = user.getRoleType();
+ TErpGoods goods = new TErpGoods();
+ BeanUtils.copyProperties(dto,goods);
+ 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.setId(dto.getId());
+ goods.setGoodsSpec(dto.getFormulationSpec()+"*"+dto.getPackingSpec());
+ return R.ok(erpGoodsService.updateById(goods));
+ }
+
+ @ApiOperation(value = "供应商/诊所 删除商品")
@DeleteMapping(value = "/delete/{id}")
public R<Boolean> delete(@PathVariable String id) {
- return R.ok(erpGoodsService.removeById(id));
+ TErpGoods goods = erpGoodsService.getById(id);
+ SysUser user = tokenService.getLoginUser().getUser();
+ String cid = null;
+
+ if(user.getRoleType() == 5){
+ // 诊所
+ TCrmClinic crmClinic = crmClinicService.getOne(Wrappers.lambdaQuery(TCrmClinic.class)
+ .eq(TCrmClinic::getUserId, user.getUserId())
+ .last("LIMIT 1"));
+ cid = crmClinic.getId();
+ if(goods.getGoodsSource()==1){
+ String clinicIds = goods.getClinicIds();
+ String[] split = clinicIds.split(",");
+ // clinicIds 移除cid
+ ArrayList<String> strings = new ArrayList<>();
+ for (String s : split) {
+ if(!s.equals(cid)){
+ strings.add(s);
+ }
+ }
+ goods.setClinicIds(String.join(",",strings));
+ erpGoodsService.updateById(goods);
+ }else {
+ erpGoodsService.removeById(id);
+ }
+ return R.ok();
+ }
+ erpGoodsService.removeById(id);
+ return R.ok();
+ }
+
+ @ApiOperation(value = "诊所 一键添加商品")
+ @PostMapping(value = "/addSupplierGoods")
+ public R<Boolean> addSupplierGoods(@RequestBody AddSupplierGoodsDto dto) {
+// List<String> split = Arrays.asList(goodsIds.split(","));
+ List<TErpGoods> list = erpGoodsService.list(new LambdaQueryWrapper<TErpGoods>().in(TErpGoods::getId, dto.getGoodsIds()));
+ SysUser user = tokenService.getLoginUser().getUser();
+ String cid = null;
+
+ if(user.getRoleType() == 5){
+ TCrmClinic crmClinic = crmClinicService.getOne(Wrappers.lambdaQuery(TCrmClinic.class)
+ .eq(TCrmClinic::getUserId, user.getUserId())
+ .last("LIMIT 1"));
+ cid = crmClinic.getId();
+ for (TErpGoods goods : list) {
+ String clinicIds = goods.getClinicIds();
+ if(clinicIds==null || clinicIds.isEmpty()){
+ goods.setClinicIds( cid);
+ }else {
+ String[] split = clinicIds.split(",");
+ List<String> split1 = new ArrayList<>();
+ for (String s : split) {
+ split1.add(s);
+ }
+ if(!split1.contains(cid)){
+ split1.add(cid);
+ goods.setClinicIds(String.join(",",split1));
+ }
+ }
+
+ }
+ erpGoodsService.updateBatchById(list);
+ }
+ return R.ok();
}
@@ -101,5 +374,311 @@
boolean b = erpGoodsService.updateById(goods);
return R.ok(b);
}
+
+ @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));
+ }
+
+ @ApiOperation(value = "商品详情")
+ @GetMapping(value = "/detail/{id}")
+ public R<TErpGoods> detail( @PathVariable String id) {
+ TErpGoods goods = erpGoodsService.getById(id);
+ return R.ok(goods);
+ }
+
+ @ApiOperation(value = "商品管理信息导出--导出")
+ @PostMapping("/export")
+ 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();
+ assert response != null;
+ response.setContentType("application/vnd.ms-excel");
+ response.setCharacterEncoding("utf-8");
+ ServletOutputStream outputStream = null;
+ try {
+ String fileName = URLEncoder.encode("商品管理信息导出.xls", "utf-8");
+ response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
+ response.setContentType("application/vnd.ms-excel;charset=UTF-8");
+ response.setHeader("Pragma", "no-cache");
+ response.setHeader("Cache-Control", "no-cache");
+ outputStream = response.getOutputStream();
+ workbook.write(outputStream);
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ outputStream.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+
+ @ApiOperation(value = "商品管理信息导入")
+ @PostMapping("/importFile")
+ public AjaxResult importFile(@RequestParam(value = "file") MultipartFile file ) {
+
+ SysUser user = tokenService.getLoginUser().getUser();
+ JSONObject jsonObject = new JSONObject();
+ ImportParams params = new ImportParams();
+ params.setHeadRows(1); //表头行数
+ InputStream inputStream = null;
+ ArrayList<String> names = new ArrayList<>();
+ ArrayList<TErpGoods> tErpGoods = new ArrayList<>();
+
+ try {
+ inputStream = file.getInputStream();
+ List<TErpGoodsExcel> carAnnuallyImportExcels = ExcelImportUtil.importExcel(inputStream, TErpGoodsExcel.class, params);
+ Set<String> collect = carAnnuallyImportExcels.stream().map(TErpGoodsExcel::getGoodsIdCode).collect(Collectors.toSet());
+ if (collect.size() != carAnnuallyImportExcels.size()) {
+ return AjaxResult.error("导入数据中商品条码重复");
+ }
+ Integer roleType = user.getRoleType();
+ for (TErpGoodsExcel erpGoodsExcel : carAnnuallyImportExcels) {
+ TErpGoods goods = new TErpGoods();
+
+ 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()){
+ names.add("商品名称不能为空");
+ continue;
+ }
+ if(erpGoodsExcel.getGoodsIdCode()==null || erpGoodsExcel.getGoodsIdCode().isEmpty()
+ || erpGoodsExcel.getQuasiNumber() ==null || erpGoodsExcel.getQuasiNumber().isEmpty()
+ || erpGoodsExcel.getManufacturer()==null || erpGoodsExcel.getManufacturer().isEmpty()
+ || erpGoodsExcel.getFormulationSpec()==null || erpGoodsExcel.getFormulationSpec().isEmpty()
+ || erpGoodsExcel.getPackingSpec()==null || erpGoodsExcel.getPackingSpec().isEmpty()
+ || erpGoodsExcel.getClinicPurchasePrice()==null|| erpGoodsExcel.getClinicPurchasePrice().isEmpty()
+ || erpGoodsExcel.getWarningInventory()==null|| erpGoodsExcel.getWarningInventory().isEmpty()
+ || erpGoodsExcel.getTypeName()==null|| erpGoodsExcel.getTypeName().isEmpty()){
+ names.add(erpGoodsExcel.getGoodsName()+" :信息有误,请检查后重新提交。");
+ continue;
+ }
+ goods.setGoodsName(erpGoodsExcel.getGoodsName());
+ // 判断数据是否正确
+ // 判断条码是否重复
+ long count = erpGoodsService.count(new QueryWrapper<TErpGoods>().eq("goods_id_code", erpGoodsExcel.getGoodsIdCode()));
+ if(count>0){
+ names.add(erpGoodsExcel.getGoodsName() + " :条码重复");
+ continue;
+ }
+ goods.setGoodsIdCode(erpGoodsExcel.getGoodsIdCode());
+ goods.setQuasiNumber(erpGoodsExcel.getQuasiNumber());
+ goods.setManufacturer(erpGoodsExcel.getManufacturer());
+ goods.setFormulationSpec(erpGoodsExcel.getFormulationSpec());
+ goods.setPackingSpec(erpGoodsExcel.getPackingSpec());
+
+ // 商品类型
+ TErpGoodsType one = erpGoodsTypeService.getOne(new LambdaQueryWrapper<TErpGoodsType>().eq(TErpGoodsType::getTypeName, erpGoodsExcel.getTypeName()));
+ if(one==null){
+ names.add(erpGoodsExcel.getGoodsName() + " :商品类型不存在");
+ continue;
+ }
+ goods.setTypeId(one.getId());
+
+ // 采购价
+ try {
+ goods.setClinicPurchasePrice(new BigDecimal(erpGoodsExcel.getClinicPurchasePrice()).setScale(2, RoundingMode.HALF_UP));
+ }catch (Exception e){
+ names.add(erpGoodsExcel.getGoodsName() + " :采购价有误");
+ continue;
+ }
+ // 预警库存
+ try {
+ goods.setWarningInventory(Integer.valueOf(erpGoodsExcel.getWarningInventory()));
+ }catch (Exception e){
+ names.add(erpGoodsExcel.getGoodsName() + " :预警库存有误");
+ continue;
+ }
+ goods.setGoodsYards(erpGoodsExcel.getGoodsYards());
+ try {
+ if(erpGoodsExcel.getMaintenanceInterval()!=null && !erpGoodsExcel.getMaintenanceInterval().isEmpty()){
+ Integer i = Integer.valueOf(erpGoodsExcel.getMaintenanceInterval());
+ }
+ }catch (Exception e){
+ names.add(erpGoodsExcel.getGoodsName() + " :保养周期有误");
+ continue;
+ }
+ goods.setMaintenanceInterval(erpGoodsExcel.getMaintenanceInterval());
+
+ try {
+ if(erpGoodsExcel.getLowPurchaseQuantity()!=null && !erpGoodsExcel.getLowPurchaseQuantity().isEmpty()){
+ goods.setLowPurchaseQuantity(Integer.valueOf(erpGoodsExcel.getLowPurchaseQuantity()));
+ }
+ }catch (Exception e){
+ names.add(erpGoodsExcel.getGoodsName() + " :最低采购数量有误");
+ continue;
+ }
+
+ if(erpGoodsExcel.getLowUnitName()!=null && !erpGoodsExcel.getLowUnitName().isEmpty()){
+ TErpGoodsUnit one1 = erpGoodsUnitService.getOne(new LambdaQueryWrapper<TErpGoodsUnit>().eq(TErpGoodsUnit::getUnitName, erpGoodsExcel.getLowUnitName()));
+ if (one1 == null) {
+ names.add(erpGoodsExcel.getGoodsName() + " :最低采购单位有误");
+ continue;
+ }
+ goods.setLowUnitId(one1.getId());
+ }
+
+
+ if(erpGoodsExcel.getIsPrescriptionDrug() !=null && !erpGoodsExcel.getIsPrescriptionDrug().isEmpty()){
+ if(erpGoodsExcel.getIsPrescriptionDrug().equals("是")){
+ goods.setIsPrescriptionDrug(1);
+ }else if (erpGoodsExcel.getIsPrescriptionDrug().equals("否")){
+ goods.setIsPrescriptionDrug(2);
+ }else {
+ names.add(erpGoodsExcel.getGoodsName() + " :是否为处方药有误");
+ continue;
+ }
+ }
+
+ if(erpGoodsExcel.getPackingUnitName() !=null && !erpGoodsExcel.getPackingUnitName().isEmpty()){
+ TErpGoodsUnit unit = erpGoodsUnitService.getOne(new LambdaQueryWrapper<TErpGoodsUnit>().eq(TErpGoodsUnit::getUnitName, erpGoodsExcel.getPackingUnitName()));
+ if(unit != null){
+ goods.setPackingUnitId(unit.getId());
+ }else {
+ names.add(erpGoodsExcel.getGoodsName() + " :包装单位有误");
+ continue;
+ }
+ }
+
+ goods.setInstructionsUse(erpGoodsExcel.getInstructionsUse());
+ goods.setSideEffect(erpGoodsExcel.getSideEffect());
+ goods.setSimplifiedCode(erpGoodsExcel.getSimplifiedCode());
+ goods.setDosageForm(erpGoodsExcel.getDosageForm());
+ goods.setUsageClassification(erpGoodsExcel.getUsageClassification());
+ goods.setProductBrand(erpGoodsExcel.getProductBrand());
+ goods.setPlaceOfOrigin(erpGoodsExcel.getPlaceOfOrigin());
+ goods.setIngredient(erpGoodsExcel.getIngredient());
+ goods.setTrait(erpGoodsExcel.getTrait());
+ goods.setIndication(erpGoodsExcel.getIndication());
+ goods.setTaboo(erpGoodsExcel.getTaboo());
+ goods.setPrecautions(erpGoodsExcel.getPrecautions());
+ goods.setInteraction(erpGoodsExcel.getInteraction());
+ goods.setStorage(erpGoodsExcel.getStorage());
+ tErpGoods.add( goods);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ return AjaxResult.error("记录导入失败!");
+ }finally {
+ try {
+ inputStream.close();
+ } catch (IOException e) {
+ throw new ServiceException(e.getMessage());
+ }
+ }
+ if(names.size()>0){
+ return AjaxResult.error("导入失败记录如下:",names);
+ }
+ erpGoodsService.saveBatch(tErpGoods);
+ return AjaxResult.success();
+
+ }
+
+
+
+
+ @ApiOperation(value = "平台设置分佣")
+ @PostMapping(value = "/setCommission")
+ public R<Boolean> setCommission(@RequestBody @Valid TErpGoodsSetCommissionDto dto) {
+
+ SysUser user = tokenService.getLoginUser().getUser();
+ if(user.getRoleType()==1){
+ TErpGoods goods = erpGoodsService.getById(dto.getId());
+ goods.setClinicPurchasePrice(BigDecimal.valueOf(dto.getClinicPurchasePrice()).setScale(2,RoundingMode.HALF_UP));
+ goods.setPlatformCommissionPrice(BigDecimal.valueOf(dto.getPlatformCommissionPrice()).setScale(2,RoundingMode.HALF_UP));
+ erpGoodsService.updateById( goods);
+ }
+ return R.ok();
+ }
}
--
Gitblit v1.7.1