From c8e080d65e26158ea62c98548a11e9aa75c2112e Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期五, 26 九月 2025 18:18:13 +0800 Subject: [PATCH] 诊所erp --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpGoodsController.java | 143 +++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 137 insertions(+), 6 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..73441fe 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; @@ -115,12 +116,15 @@ } return R.ok(erpGoodsService.pageList(query,user)); } + + + /** * 获取erp问题上报管理列表 */ @ApiOperation(value = "诊所 一键获取商品分页列表") @PostMapping(value = "/pageAddList") - public R<Page<TErpGoods>> pageAddList(BasePage query) { + public R<Page<TErpGoods>> pageAddList(@RequestBody BasePage query) { SysUser user = tokenService.getLoginUser().getUser(); Integer roleType = user.getRoleType(); String clinicSupplierId=null; @@ -133,7 +137,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(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 record : page.getRecords()) { TCrmSupplier byId = crmSupplierService.getById(record.getSupplierClinicId()); record.setSupplierName(byId.getSupplierName()); @@ -146,13 +150,52 @@ return R.ok(page); } + /** + * 获取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(); + } + @ApiOperation(value = "供应商添加商品") @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 +229,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(); @@ -202,13 +245,101 @@ } 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()); + 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(); } -- Gitblit v1.7.1