|  |  |  | 
|---|
|  |  |  | 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.TErpGoodsInfoSaveDto; | 
|---|
|  |  |  | 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.service.TErpGoodsService; | 
|---|
|  |  |  | import com.ruoyi.system.service.*; | 
|---|
|  |  |  | import com.ruoyi.system.vo.TErpGoodsVO; | 
|---|
|  |  |  | 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> | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取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(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | @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()); | 
|---|
|  |  |  | 
|---|
|  |  |  | 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商品已存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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.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(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | @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 = "供应商商品详情") | 
|---|
|  |  |  | @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(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|