From 6109f5e72ce85dd4c45f3cfa9ea6de0c5bb0ccab Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期五, 26 九月 2025 16:02:28 +0800 Subject: [PATCH] 诊所erp --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpGoodsController.java | 89 ++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 84 insertions(+), 5 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 40bd0f9..2e488d6 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 @@ -44,6 +44,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; @@ -133,7 +134,7 @@ } Page<TErpGoods> tErpGoodsPage = new Page<>(query.getPageNum(), query.getPageSize()); - Page<TErpGoods> page = erpGoodsService.page(tErpGoodsPage, new LambdaQueryWrapper<TErpGoods>().eq(TErpGoods::getGoodsSource, 1).eq(BaseModel::getDisabled, 0).isNotNull(TErpGoods::getPlatformCommissionPrice).last(" NOT FIND_IN_SET(" + clinicSupplierId + ",clinic_ids)")); + Page<TErpGoods> page = erpGoodsService.page(tErpGoodsPage, new LambdaQueryWrapper<TErpGoods>().eq(TErpGoods::getGoodsSource, 1).eq(BaseModel::getDisabled, 0).isNotNull(TErpGoods::getPlatformCommissionPrice).last("and (NOT FIND_IN_SET(" + clinicSupplierId + ",clinic_ids) or clinic_ids is null)")); for (TErpGoods record : page.getRecords()) { TCrmSupplier byId = crmSupplierService.getById(record.getSupplierClinicId()); record.setSupplierName(byId.getSupplierName()); @@ -152,7 +153,7 @@ @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(); @@ -186,7 +187,7 @@ @PostMapping(value = "/clinicAdd") public R<Boolean> clinicAdd(@Validated @RequestBody TErpClinicGoodsAddDto 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(); @@ -205,10 +206,88 @@ 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()); + 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(String goodsIds) { + List<String> split = Arrays.asList(goodsIds.split(",")); + List<TErpGoods> list = erpGoodsService.list(new LambdaQueryWrapper<TErpGoods>().in(TErpGoods::getId, split)); + 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(); + List<String> split1 = Arrays.asList(clinicIds.split(",")); + if(!split1.contains(cid)){ + split1.add(cid); + goods.setClinicIds(String.join(",",split1)); + } + } + erpGoodsService.updateBatchById(list); + } + return R.ok(); } -- Gitblit v1.7.1