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 | 331 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 315 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 d81f78a..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
@@ -8,18 +8,22 @@
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.TErpGoodsInfoSaveDto;
-import com.ruoyi.system.dto.TErpGoodsUpdateStatusDto;
+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.service.*;
import com.ruoyi.system.vo.TErpGoodsVO;
@@ -42,6 +46,7 @@
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;
@@ -68,11 +73,13 @@
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,
TErpSupplierWarehousingBatchService erpSupplierWarehousingBatchService, TErpSupplierWarehousingService erpSupplierWarehousingService,
- TErpSupplierOutboundGoodsService erpSupplierOutboundGoodsService, TErpMaintenanceReminderService erpMaintenanceReminderService) {
+ TErpSupplierOutboundGoodsService erpSupplierOutboundGoodsService, TErpMaintenanceReminderService erpMaintenanceReminderService, TCrmClinicService crmClinicService, TCrmSupplierService crmSupplierService) {
this.erpGoodsService = erpGoodsService;
this.tokenService = tokenService;
this.erpGoodsTypeService = erpGoodsTypeService;
@@ -81,6 +88,8 @@
this.erpSupplierWarehousingService = erpSupplierWarehousingService;
this.erpSupplierOutboundGoodsService = erpSupplierOutboundGoodsService;
this.erpMaintenanceReminderService = erpMaintenanceReminderService;
+ this.crmClinicService = crmClinicService;
+ this.crmSupplierService = crmSupplierService;
}
@@ -88,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();
}
@@ -101,11 +204,27 @@
@PostMapping(value = "/add")
public R<Boolean> add(@Validated @RequestBody TErpGoodsAddDto dto) {
SysUser user = tokenService.getLoginUser().getUser();
- if (erpGoodsService.isExit(dto.getGoodsIdCode(), dto.getQuasiNumber())) {
+ if (erpGoodsService.isExit(dto.getGoodsIdCode(), dto.getQuasiNumber(),null)) {
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());
@@ -115,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();
}
@@ -145,6 +379,23 @@
@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){
@@ -159,7 +410,7 @@
if (tErpSupplierWarehousingBatch.getWarehousingNumber()-sum>0) {
// 生成保养单
TErpMaintenanceReminder tErpMaintenanceReminder = new TErpMaintenanceReminder();
- tErpMaintenanceReminder.setClinicSupplierId(user.getUserId().toString());
+ tErpMaintenanceReminder.setClinicSupplierId(clinicSupplierId);
tErpMaintenanceReminder.setMaintenanceType(1);
tErpMaintenanceReminder.setWarehousingBatchId(tErpSupplierWarehousingBatch.getId());
Integer day = Integer.valueOf(goods.getMaintenanceInterval());
@@ -180,7 +431,7 @@
return R.ok(erpGoodsService.updateById(goods));
}
- @ApiOperation(value = "供应商商品详情")
+ @ApiOperation(value = "商品详情")
@GetMapping(value = "/detail/{id}")
public R<TErpGoods> detail( @PathVariable String id) {
TErpGoods goods = erpGoodsService.getById(id);
@@ -192,6 +443,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();
@@ -236,12 +504,28 @@
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("导入数据中商品标识码重复");
+ 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()){
@@ -261,10 +545,10 @@
}
goods.setGoodsName(erpGoodsExcel.getGoodsName());
// 判断数据是否正确
- // 判断标识码是否重复
+ // 判断条码是否重复
long count = erpGoodsService.count(new QueryWrapper<TErpGoods>().eq("goods_id_code", erpGoodsExcel.getGoodsIdCode()));
if(count>0){
- names.add(erpGoodsExcel.getGoodsName() + " :标识码重复");
+ names.add(erpGoodsExcel.getGoodsName() + " :条码重复");
continue;
}
goods.setGoodsIdCode(erpGoodsExcel.getGoodsIdCode());
@@ -381,5 +665,20 @@
}
+
+
+ @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