添加供应管理平台和业务平台交互

This commit is contained in:
yangjun 2026-03-02 13:30:15 +08:00
parent f53a507f0b
commit b575196d51
23 changed files with 1114 additions and 3 deletions

View File

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nu.modules.ConfigMaterial.entity.ConfigMaterialInfo;
import com.nu.modules.ConfigMaterial.service.IConfigMaterialInfoService;
import com.nu.modules.configSuppliersInfo.service.IConfigSuppliersInfoService;
import com.nu.modules.utils.PinyinUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -40,7 +41,6 @@ import java.util.Map;
public class ConfigMaterialInfoController extends JeecgController<ConfigMaterialInfo, IConfigMaterialInfoService> {
@Autowired
private IConfigMaterialInfoService configMaterialInfoService;
/**
* 分页列表查询
*
@ -65,6 +65,8 @@ public class ConfigMaterialInfoController extends JeecgController<ConfigMaterial
// customeRuleMap.put("medicationId", QueryRuleEnum.LIKE_WITH_OR);
// customeRuleMap.put("izEnabled", QueryRuleEnum.LIKE_WITH_OR);
QueryWrapper<ConfigMaterialInfo> queryWrapper = QueryGenerator.initQueryWrapper(configMaterialInfo, req.getParameterMap(),customeRuleMap);
if(StringUtils.isNotBlank(configMaterialInfo.getTreeId())){
queryWrapper.apply(" (category_id = '"+configMaterialInfo.getTreeId()+"' or type_id = '"+configMaterialInfo.getTreeId()+"' or medication_id = '"+configMaterialInfo.getTreeId()+"' )");

View File

@ -155,6 +155,8 @@ public class ConfigMaterialInfo implements Serializable {
@Dict(dicCode = "wl_tag_type")
private String tagType;
private String brandType;//品牌
/**是否医保报销 0否 1是*/
@Dict(dicCode = "yn")
private java.lang.String izYbbx;

View File

@ -0,0 +1,192 @@
package com.nu.modules.bizSuppliers.controller;
import java.util.*;
import java.util.stream.Collectors;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.nu.modules.configSuppliersInfo.entity.ConfigSuppliersInfo;
import com.nu.modules.configSuppliersInfo.service.IConfigSuppliersInfoService;
import org.apache.commons.lang.StringUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.query.QueryRuleEnum;
import org.jeecg.common.util.oConvertUtils;
import com.nu.modules.bizSuppliers.entity.NuBizSuppliersInfo;
import com.nu.modules.bizSuppliers.service.INuBizSuppliersInfoService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.apache.shiro.authz.annotation.RequiresPermissions;
/**
* @Description: 供应商信息
* @Author: jeecg-boot
* @Date: 2026-02-26
* @Version: V1.0
*/
@Api(tags="供应商信息")
@RestController
@RequestMapping("/bizSuppliers/nuBizSuppliersInfo")
@Slf4j
public class NuBizSuppliersInfoController extends JeecgController<NuBizSuppliersInfo, INuBizSuppliersInfoService> {
@Autowired
private INuBizSuppliersInfoService nuBizSuppliersInfoService;
@Autowired
private IConfigSuppliersInfoService configSuppliersInfoService;
/**
* 分页列表查询
*
* @param nuBizSuppliersInfo
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@AutoLog(value = "供应商信息-分页列表查询")
@ApiOperation(value="供应商信息-分页列表查询", notes="供应商信息-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<NuBizSuppliersInfo>> queryPageList(NuBizSuppliersInfo nuBizSuppliersInfo,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
//查询当前用户的配置供应商
List<ConfigSuppliersInfo> list = configSuppliersInfoService.list();
List<String> suppliersIdNo = new ArrayList<>();
for(int i=0;i<list.size();i++){
suppliersIdNo.add(list.get(i).getId());
}
QueryWrapper<NuBizSuppliersInfo> queryWrapper = QueryGenerator.initQueryWrapper(nuBizSuppliersInfo, req.getParameterMap());
if(suppliersIdNo.size()>0){
queryWrapper.notIn("id",suppliersIdNo);
}
Page<NuBizSuppliersInfo> page = new Page<NuBizSuppliersInfo>(pageNo, pageSize);
IPage<NuBizSuppliersInfo> pageList = nuBizSuppliersInfoService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 添加
*
* @param nuBizSuppliersInfo
* @return
*/
@AutoLog(value = "供应商信息-添加")
@ApiOperation(value="供应商信息-添加", notes="供应商信息-添加")
@RequiresPermissions("bizSuppliers:nu_biz_suppliers_info:add")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody NuBizSuppliersInfo nuBizSuppliersInfo) {
nuBizSuppliersInfoService.save(nuBizSuppliersInfo);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param nuBizSuppliersInfo
* @return
*/
@AutoLog(value = "供应商信息-编辑")
@ApiOperation(value="供应商信息-编辑", notes="供应商信息-编辑")
@RequiresPermissions("bizSuppliers:nu_biz_suppliers_info:edit")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> edit(@RequestBody NuBizSuppliersInfo nuBizSuppliersInfo) {
nuBizSuppliersInfoService.updateById(nuBizSuppliersInfo);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@AutoLog(value = "供应商信息-通过id删除")
@ApiOperation(value="供应商信息-通过id删除", notes="供应商信息-通过id删除")
@RequiresPermissions("bizSuppliers:nu_biz_suppliers_info:delete")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name="id",required=true) String id) {
nuBizSuppliersInfoService.removeById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@AutoLog(value = "供应商信息-批量删除")
@ApiOperation(value="供应商信息-批量删除", notes="供应商信息-批量删除")
@RequiresPermissions("bizSuppliers:nu_biz_suppliers_info:deleteBatch")
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.nuBizSuppliersInfoService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
//@AutoLog(value = "供应商信息-通过id查询")
@ApiOperation(value="供应商信息-通过id查询", notes="供应商信息-通过id查询")
@GetMapping(value = "/queryById")
public Result<NuBizSuppliersInfo> queryById(@RequestParam(name="id",required=true) String id) {
NuBizSuppliersInfo nuBizSuppliersInfo = nuBizSuppliersInfoService.getById(id);
if(nuBizSuppliersInfo==null) {
return Result.error("未找到对应数据");
}
return Result.OK(nuBizSuppliersInfo);
}
/**
* 导出excel
*
* @param request
* @param nuBizSuppliersInfo
*/
@RequiresPermissions("bizSuppliers:nu_biz_suppliers_info:exportXls")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, NuBizSuppliersInfo nuBizSuppliersInfo) {
return super.exportXls(request, nuBizSuppliersInfo, NuBizSuppliersInfo.class, "供应商信息");
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@RequiresPermissions("bizSuppliers:nu_biz_suppliers_info:importExcel")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, NuBizSuppliersInfo.class);
}
}

View File

@ -0,0 +1,244 @@
package com.nu.modules.bizSuppliers.controller;
import java.util.*;
import java.util.stream.Collectors;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.query.QueryRuleEnum;
import org.jeecg.common.util.oConvertUtils;
import com.nu.modules.bizSuppliers.entity.NuBizSuppliersMaterialInfo;
import com.nu.modules.bizSuppliers.service.INuBizSuppliersMaterialInfoService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.apache.shiro.authz.annotation.RequiresPermissions;
/**
* @Description: 供应商可提供的物料信息
* @Author: jeecg-boot
* @Date: 2026-02-28
* @Version: V1.0
*/
@Api(tags="供应商可提供的物料信息")
@RestController
@RequestMapping("/bizSuppliers/nuBizSuppliersMaterialInfo")
@Slf4j
public class NuBizSuppliersMaterialInfoController extends JeecgController<NuBizSuppliersMaterialInfo, INuBizSuppliersMaterialInfoService> {
@Autowired
private INuBizSuppliersMaterialInfoService nuBizSuppliersMaterialInfoService;
/**
* 分页列表查询
*
* @param nuBizSuppliersMaterialInfo
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@AutoLog(value = "供应商可提供的物料信息-分页列表查询")
@ApiOperation(value="供应商可提供的物料信息-分页列表查询", notes="供应商可提供的物料信息-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<NuBizSuppliersMaterialInfo>> queryPageList(NuBizSuppliersMaterialInfo nuBizSuppliersMaterialInfo,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
// 自定义查询规则
Map<String, QueryRuleEnum> customeRuleMap = new HashMap<>();
// 自定义多选的查询规则为LIKE_WITH_OR
customeRuleMap.put("suppliersId", QueryRuleEnum.LIKE_WITH_OR);
QueryWrapper<NuBizSuppliersMaterialInfo> queryWrapper = QueryGenerator.initQueryWrapper(nuBizSuppliersMaterialInfo, req.getParameterMap(),customeRuleMap);
Page<NuBizSuppliersMaterialInfo> page = new Page<NuBizSuppliersMaterialInfo>(pageNo, pageSize);
IPage<NuBizSuppliersMaterialInfo> pageList = nuBizSuppliersMaterialInfoService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 添加
*
* @param nuBizSuppliersMaterialInfo
* @return
*/
@AutoLog(value = "供应商可提供的物料信息-添加")
@ApiOperation(value="供应商可提供的物料信息-添加", notes="供应商可提供的物料信息-添加")
@RequiresPermissions("bizSuppliers:nu_biz_suppliers_material_info:add")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody NuBizSuppliersMaterialInfo nuBizSuppliersMaterialInfo) {
nuBizSuppliersMaterialInfoService.save(nuBizSuppliersMaterialInfo);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param nuBizSuppliersMaterialInfo
* @return
*/
@AutoLog(value = "供应商可提供的物料信息-编辑")
@ApiOperation(value="供应商可提供的物料信息-编辑", notes="供应商可提供的物料信息-编辑")
@RequiresPermissions("bizSuppliers:nu_biz_suppliers_material_info:edit")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> edit(@RequestBody NuBizSuppliersMaterialInfo nuBizSuppliersMaterialInfo) {
nuBizSuppliersMaterialInfoService.updateById(nuBizSuppliersMaterialInfo);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@AutoLog(value = "供应商可提供的物料信息-通过id删除")
@ApiOperation(value="供应商可提供的物料信息-通过id删除", notes="供应商可提供的物料信息-通过id删除")
@RequiresPermissions("bizSuppliers:nu_biz_suppliers_material_info:delete")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name="id",required=true) String id) {
nuBizSuppliersMaterialInfoService.removeById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@AutoLog(value = "供应商可提供的物料信息-批量删除")
@ApiOperation(value="供应商可提供的物料信息-批量删除", notes="供应商可提供的物料信息-批量删除")
@RequiresPermissions("bizSuppliers:nu_biz_suppliers_material_info:deleteBatch")
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.nuBizSuppliersMaterialInfoService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
//@AutoLog(value = "供应商可提供的物料信息-通过id查询")
@ApiOperation(value="供应商可提供的物料信息-通过id查询", notes="供应商可提供的物料信息-通过id查询")
@GetMapping(value = "/queryById")
public Result<NuBizSuppliersMaterialInfo> queryById(@RequestParam(name="id",required=true) String id) {
NuBizSuppliersMaterialInfo nuBizSuppliersMaterialInfo = nuBizSuppliersMaterialInfoService.getById(id);
if(nuBizSuppliersMaterialInfo==null) {
return Result.error("未找到对应数据");
}
return Result.OK(nuBizSuppliersMaterialInfo);
}
/**
* 导出excel
*
* @param request
* @param nuBizSuppliersMaterialInfo
*/
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, NuBizSuppliersMaterialInfo nuBizSuppliersMaterialInfo) {
return super.exportXls(request, nuBizSuppliersMaterialInfo, NuBizSuppliersMaterialInfo.class, "供应商可提供的物料信息");
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
Result<?> a = importExcel(request, response, NuBizSuppliersMaterialInfo.class);
System.out.println(a);
if(a.getCode() == 200){
//修改供应商可查询的状态
}
return a;
}
protected Result<?> importExcel(HttpServletRequest request, HttpServletResponse response, Class<NuBizSuppliersMaterialInfo> clazz) {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
// 获取上传文件对象
MultipartFile file = entity.getValue();
if(file == null){
break;
}
ImportParams params = new ImportParams();
params.setTitleRows(2);
params.setHeadRows(1);
params.setNeedSave(true);
try {
List<NuBizSuppliersMaterialInfo> list = ExcelImportUtil.importExcel(file.getInputStream(), clazz, params);
//排除重复数据
List<NuBizSuppliersMaterialInfo> implist = new ArrayList<>();
for(int i=0;i<list.size();i++){
QueryWrapper<NuBizSuppliersMaterialInfo> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("suppliers_id",list.get(i).getSuppliersId());
queryWrapper.eq("material_name",list.get(i).getMaterialName());
queryWrapper.eq("specification_model",list.get(i).getSpecificationModel());
queryWrapper.eq("brand_type",list.get(i).getBrandType());
NuBizSuppliersMaterialInfo a = nuBizSuppliersMaterialInfoService.getOne(queryWrapper);
if(a==null){
implist.add(list.get(i));
}
}
if(implist.size() == 0){
return Result.error("文件导入失败:数据全部重复!");
}
//update-begin-author:taoyan date:20190528 for:批量插入数据
long start = System.currentTimeMillis();
service.saveBatch(implist);
//400条 saveBatch消耗时间1592毫秒 循环插入消耗时间1947毫秒
//1200条 saveBatch消耗时间3687毫秒 循环插入消耗时间5212毫秒
log.info("消耗时间" + (System.currentTimeMillis() - start) + "毫秒");
//update-end-author:taoyan date:20190528 for:批量插入数据
return Result.ok("文件导入成功!数据行数:" + implist.size());
} catch (Exception e) {
//update-begin-author:taoyan date:20211124 for: 导入数据重复增加提示
String msg = e.getMessage();
log.error(msg, e);
if(msg!=null && msg.indexOf("Duplicate entry")>=0){
return Result.error("文件导入失败:有重复数据!");
}else{
return Result.error("文件导入失败:" + e.getMessage());
}
//update-end-author:taoyan date:20211124 for: 导入数据重复增加提示
} finally {
try {
file.getInputStream().close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return Result.error("文件导入失败!");
}
}

View File

@ -0,0 +1,104 @@
package com.nu.modules.bizSuppliers.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import org.jeecg.common.constant.ProvinceCityArea;
import org.jeecg.common.util.SpringContextUtils;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Description: 供应商信息
* @Author: jeecg-boot
* @Date: 2026-02-26
* @Version: V1.0
*/
@Data
@TableName("nu_biz_suppliers_info")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="nu_biz_suppliers_info对象", description="供应商信息")
public class NuBizSuppliersInfo implements Serializable {
private static final long serialVersionUID = 1L;
/**id*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "id")
private java.lang.String id;
/**供应商名称*/
@Excel(name = "供应商名称", width = 15)
@ApiModelProperty(value = "供应商名称")
private java.lang.String suppliersName;
/**供应商性质 1代理商 2批发商 3制造商*/
@Excel(name = "供应商性质 1代理商 2批发商 3制造商", width = 15, dicCode = "suppliers_nature")
@Dict(dicCode = "suppliers_nature")
@ApiModelProperty(value = "供应商性质 1代理商 2批发商 3制造商")
private java.lang.String suppliersNature;
/**供应商地址*/
@Excel(name = "供应商地址", width = 15)
@ApiModelProperty(value = "供应商地址")
private java.lang.String suppliersAddress;
/**负责人*/
@Excel(name = "负责人", width = 15)
@ApiModelProperty(value = "负责人")
private java.lang.String personInCharge;
/**联系电话*/
@Excel(name = "联系电话", width = 15)
@ApiModelProperty(value = "联系电话")
private java.lang.String contactNumber;
/**供应状态 1正常供应 2暂停供应*/
@Excel(name = "供应状态 1正常供应 2暂停供应", width = 15, dicCode = "supply_status")
@Dict(dicCode = "supply_status")
@ApiModelProperty(value = "供应状态 1正常供应 2暂停供应")
private java.lang.String supplyState;
/**开户行*/
@Excel(name = "开户行", width = 15)
@ApiModelProperty(value = "开户行")
private java.lang.String openingBank;
/**开户行账号*/
@Excel(name = "开户行账号", width = 15)
@ApiModelProperty(value = "开户行账号")
private java.lang.String openingBankNo;
/**openId*/
@Excel(name = "openId", width = 15)
@ApiModelProperty(value = "openId")
private java.lang.String openId;
/**资质照片*/
@Excel(name = "资质照片", width = 15)
@ApiModelProperty(value = "资质照片")
private java.lang.String imgPath;
/**是否删除 0未删除 1删除*/
@Excel(name = "是否删除 0未删除 1删除", width = 15)
@ApiModelProperty(value = "是否删除 0未删除 1删除")
@TableLogic
private java.lang.String delFlag;
/**创建人*/
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private java.util.Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private java.lang.String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
}

View File

@ -0,0 +1,81 @@
package com.nu.modules.bizSuppliers.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import org.jeecg.common.constant.ProvinceCityArea;
import org.jeecg.common.util.SpringContextUtils;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Description: 供应商可提供的物料信息
* @Author: jeecg-boot
* @Date: 2026-02-28
* @Version: V1.0
*/
@Data
@TableName("nu_biz_suppliers_material_info")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="nu_biz_suppliers_material_info对象", description="供应商可提供的物料信息")
public class NuBizSuppliersMaterialInfo implements Serializable {
private static final long serialVersionUID = 1L;
/**id*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "id")
private java.lang.String id;
/**创建人*/
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private java.util.Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private java.lang.String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
/**供应商*/
@Excel(name = "供应商", width = 15)
@ApiModelProperty(value = "供应商")
private java.lang.String suppliersId;
/**货品名称*/
@Excel(name = "货品名称", width = 15)
@ApiModelProperty(value = "货品名称")
private java.lang.String materialName;
/**规格型号*/
@Excel(name = "规格型号", width = 15)
@ApiModelProperty(value = "规格型号")
private java.lang.String specificationModel;
/**品牌型号*/
@Excel(name = "品牌型号", width = 15)
@ApiModelProperty(value = "品牌型号")
private java.lang.String brandType;
/**销售单价*/
@Excel(name = "销售单价", width = 15)
@ApiModelProperty(value = "销售单价")
private java.math.BigDecimal salesUnitPrice;
/**销售单位*/
@Excel(name = "销售单位", width = 15)
@ApiModelProperty(value = "销售单位")
private java.lang.String salesUnit;
}

View File

@ -0,0 +1,122 @@
package com.nu.modules.bizSuppliers.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import org.jeecg.common.constant.ProvinceCityArea;
import org.jeecg.common.util.SpringContextUtils;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Description: 供应商-机构中间表
* @Author: jeecg-boot
* @Date: 2025-12-22
* @Version: V1.0
*/
@Data
@TableName("nu_biz_suppliers_org")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="nu_biz_suppliers_org对象", description="供应商-机构中间表")
public class NuBizSuppliersOrg implements Serializable {
private static final long serialVersionUID = 1L;
/**id*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "id")
private java.lang.String id;
/**微信id*/
@Excel(name = "微信id", width = 15)
@ApiModelProperty(value = "微信id")
private java.lang.String openId;
/**供应商nu_biz_suppliers_apply.id*/
@Excel(name = "供应商nu_biz_suppliers_apply.id", width = 15)
@ApiModelProperty(value = "供应商nu_biz_suppliers_apply.id")
private java.lang.String suppliersId;
/**机构编码*/
@Excel(name = "机构编码", width = 15)
@ApiModelProperty(value = "机构编码")
private java.lang.String orgCode;
/**创建人*/
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private java.util.Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private java.lang.String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
/**是否在线 Y在线 N不在线*/
@Excel(name = "是否在线 Y在线 N不在线", width = 15)
@ApiModelProperty(value = "是否在线 Y在线 N不在线")
private java.lang.String izOnline;
/**申请状态 1申请中 2通过 3驳回*/
@Excel(name = "申请状态 1申请中 2通过 3驳回", width = 15)
@ApiModelProperty(value = "申请状态 1申请中 2通过 3驳回")
private java.lang.String status;
/**审核备注*/
@Excel(name = "审核备注", width = 15)
@ApiModelProperty(value = "审核备注")
private java.lang.String auditContent;
/**是否历史数据 Y历史 N当前数据*/
@Excel(name = "是否历史数据 Y历史 N当前数据", width = 15)
@ApiModelProperty(value = "是否历史数据 Y历史 N当前数据")
private java.lang.String izHistory;
/**审核机构 */
@Excel(name = "审核机构", width = 15)
@ApiModelProperty(value = "审核机构")
private String applyOrg;
/**供应商名称*/
@Excel(name = "供应商名称", width = 15)
@ApiModelProperty(value = "供应商名称")
private java.lang.String suppliersName;
/**供应商性质 1代理商 2批发商 3制造商*/
@Excel(name = "供应商性质 1代理商 2批发商 3制造商", width = 15)
@ApiModelProperty(value = "供应商性质 1代理商 2批发商 3制造商")
private java.lang.String suppliersNature;
/**供应商地址*/
@Excel(name = "供应商地址", width = 15)
@ApiModelProperty(value = "供应商地址")
private java.lang.String suppliersAddress;
/**负责人*/
@Excel(name = "负责人", width = 15)
@ApiModelProperty(value = "负责人")
private java.lang.String personInCharge;
/**联系电话*/
@Excel(name = "联系电话", width = 15)
@ApiModelProperty(value = "联系电话")
private java.lang.String contactNumber;
/**开户行*/
@Excel(name = "开户行", width = 15)
@ApiModelProperty(value = "开户行")
private java.lang.String openingBank;
/**开户行账号*/
@Excel(name = "开户行账号", width = 15)
@ApiModelProperty(value = "开户行账号")
private java.lang.String openingBankNo;
/**资质照片*/
@Excel(name = "资质照片", width = 15)
@ApiModelProperty(value = "资质照片")
private java.lang.String imgPath;
}

View File

@ -0,0 +1,17 @@
package com.nu.modules.bizSuppliers.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.nu.modules.bizSuppliers.entity.NuBizSuppliersInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 供应商信息
* @Author: jeecg-boot
* @Date: 2026-02-26
* @Version: V1.0
*/
public interface NuBizSuppliersInfoMapper extends BaseMapper<NuBizSuppliersInfo> {
}

View File

@ -0,0 +1,18 @@
package com.nu.modules.bizSuppliers.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.nu.modules.bizSuppliers.entity.NuBizSuppliersMaterialInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 供应商可提供的物料信息
* @Author: jeecg-boot
* @Date: 2026-02-28
* @Version: V1.0
*/
public interface NuBizSuppliersMaterialInfoMapper extends BaseMapper<NuBizSuppliersMaterialInfo> {
List<NuBizSuppliersMaterialInfo> noList(@Param("list") List<NuBizSuppliersMaterialInfo> list);
}

View File

@ -0,0 +1,17 @@
package com.nu.modules.bizSuppliers.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.nu.modules.bizSuppliers.entity.NuBizSuppliersOrg;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 供应商-机构中间表
* @Author: jeecg-boot
* @Date: 2025-12-22
* @Version: V1.0
*/
public interface NuBizSuppliersOrgMapper extends BaseMapper<NuBizSuppliersOrg> {
}

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nu.modules.bizSuppliers.mapper.NuBizSuppliersInfoMapper">
</mapper>

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nu.modules.bizSuppliers.mapper.NuBizSuppliersMaterialInfoMapper">
<select id="noList" resultType="com.nu.modules.bizSuppliers.entity.NuBizSuppliersMaterialInfo">
SELECT * FROM nu_biz_suppliers_material_info
WHERE NOT EXISTS (
SELECT 1 FROM (
<foreach item="item" collection="list" separator=" UNION ALL " open="" close="">
SELECT
#{item.suppliersId} AS suppliersId,
#{item.materialName} AS materialName,
#{item.specificationModel} AS specificationModel,
#{item.brandType} AS brandType
</foreach>
) AS exclude
WHERE nu_biz_suppliers_material_info.suppliers_id = exclude.suppliersId
AND nu_biz_suppliers_material_info.material_name = exclude.materialName
AND nu_biz_suppliers_material_info.specification_model = exclude.specificationModel
AND nu_biz_suppliers_material_info.brand_type = exclude.brandType
)
</select>
</mapper>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nu.modules.bizSuppliers.mapper.NuBizSuppliersOrgMapper">
</mapper>

View File

@ -0,0 +1,14 @@
package com.nu.modules.bizSuppliers.service;
import com.nu.modules.bizSuppliers.entity.NuBizSuppliersInfo;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @Description: 供应商信息
* @Author: jeecg-boot
* @Date: 2026-02-26
* @Version: V1.0
*/
public interface INuBizSuppliersInfoService extends IService<NuBizSuppliersInfo> {
}

View File

@ -0,0 +1,17 @@
package com.nu.modules.bizSuppliers.service;
import com.nu.modules.bizSuppliers.entity.NuBizSuppliersMaterialInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @Description: 供应商可提供的物料信息
* @Author: jeecg-boot
* @Date: 2026-02-28
* @Version: V1.0
*/
public interface INuBizSuppliersMaterialInfoService extends IService<NuBizSuppliersMaterialInfo> {
List<NuBizSuppliersMaterialInfo> noList(List<NuBizSuppliersMaterialInfo> list);
}

View File

@ -0,0 +1,14 @@
package com.nu.modules.bizSuppliers.service;
import com.nu.modules.bizSuppliers.entity.NuBizSuppliersOrg;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @Description: 供应商-机构中间表
* @Author: jeecg-boot
* @Date: 2025-12-22
* @Version: V1.0
*/
public interface INuBizSuppliersOrgService extends IService<NuBizSuppliersOrg> {
}

View File

@ -0,0 +1,21 @@
package com.nu.modules.bizSuppliers.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.nu.modules.bizSuppliers.entity.NuBizSuppliersInfo;
import com.nu.modules.bizSuppliers.mapper.NuBizSuppliersInfoMapper;
import com.nu.modules.bizSuppliers.service.INuBizSuppliersInfoService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* @Description: 供应商信息
* @Author: jeecg-boot
* @Date: 2026-02-26
* @Version: V1.0
*/
@Service
@DS("ope")
public class NuBizSuppliersInfoServiceImpl extends ServiceImpl<NuBizSuppliersInfoMapper, NuBizSuppliersInfo> implements INuBizSuppliersInfoService {
}

View File

@ -0,0 +1,27 @@
package com.nu.modules.bizSuppliers.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.nu.modules.bizSuppliers.entity.NuBizSuppliersMaterialInfo;
import com.nu.modules.bizSuppliers.mapper.NuBizSuppliersMaterialInfoMapper;
import com.nu.modules.bizSuppliers.service.INuBizSuppliersMaterialInfoService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.List;
/**
* @Description: 供应商可提供的物料信息
* @Author: jeecg-boot
* @Date: 2026-02-28
* @Version: V1.0
*/
@Service
@DS("ope")
public class NuBizSuppliersMaterialInfoServiceImpl extends ServiceImpl<NuBizSuppliersMaterialInfoMapper, NuBizSuppliersMaterialInfo> implements INuBizSuppliersMaterialInfoService {
@Override
public List<NuBizSuppliersMaterialInfo> noList(List<NuBizSuppliersMaterialInfo> list) {
return baseMapper.noList(list);
}
}

View File

@ -0,0 +1,19 @@
package com.nu.modules.bizSuppliers.service.impl;
import com.nu.modules.bizSuppliers.entity.NuBizSuppliersOrg;
import com.nu.modules.bizSuppliers.mapper.NuBizSuppliersOrgMapper;
import com.nu.modules.bizSuppliers.service.INuBizSuppliersOrgService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* @Description: 供应商-机构中间表
* @Author: jeecg-boot
* @Date: 2025-12-22
* @Version: V1.0
*/
@Service
public class NuBizSuppliersOrgServiceImpl extends ServiceImpl<NuBizSuppliersOrgMapper, NuBizSuppliersOrg> implements INuBizSuppliersOrgService {
}

View File

@ -10,6 +10,12 @@ import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.nu.modules.ConfigMaterial.entity.ConfigMaterialInfo;
import com.nu.modules.ConfigMaterial.service.IConfigMaterialInfoService;
import com.nu.modules.bizSuppliers.entity.NuBizSuppliersMaterialInfo;
import com.nu.modules.bizSuppliers.service.INuBizSuppliersInfoService;
import com.nu.modules.bizSuppliers.service.INuBizSuppliersMaterialInfoService;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.query.QueryRuleEnum;
@ -53,8 +59,8 @@ import org.apache.shiro.authz.annotation.RequiresPermissions;
public class ConfigSuppliersInfoController extends JeecgController<ConfigSuppliersInfo, IConfigSuppliersInfoService> {
@Autowired
private IConfigSuppliersInfoService configSuppliersInfoService;
/**
*
* 分页列表查询
*
* @param configSuppliersInfo
@ -70,6 +76,7 @@ public class ConfigSuppliersInfoController extends JeecgController<ConfigSupplie
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
// 自定义查询规则
Map<String, QueryRuleEnum> customeRuleMap = new HashMap<>();
// 自定义多选的查询规则为LIKE_WITH_OR
@ -182,4 +189,29 @@ public class ConfigSuppliersInfoController extends JeecgController<ConfigSupplie
return super.importExcel(request, response, ConfigSuppliersInfo.class);
}
@AutoLog(value = "批量添加供应商到本平台")
@ApiOperation(value="批量添加供应商到本平台", notes="批量添加供应商到本平台")
@RequiresPermissions("configSuppliersInfo:config_suppliers_info:add")
@PostMapping(value = "/addBatch")
public Result<String> addBatch(@RequestBody List<ConfigSuppliersInfo> configSuppliersInfo) {
configSuppliersInfoService.addBatch(configSuppliersInfo);
return Result.OK("添加成功!");
}
@AutoLog(value = "更新供应商对应的物料关系")
@ApiOperation(value="更新供应商对应的物料关系", notes="更新供应商对应的物料关系")
@RequiresPermissions("configSuppliersInfo:config_suppliers_info:add")
@PostMapping(value = "/updateWlType")
public void updateWlType(@RequestBody ConfigSuppliersInfo configSuppliersInfo) {
configSuppliersInfo.setWlType("1");
configSuppliersInfoService.updateById(configSuppliersInfo);
configSuppliersInfoService.updateWlType(configSuppliersInfo);
// return Result.OK("跟新成功!");
}
}

View File

@ -109,4 +109,6 @@ public class ConfigSuppliersInfo implements Serializable {
/**来源 1平台新增 2小程序注册*/
@ApiModelProperty(value = "来源 1平台新增 2小程序注册")
private java.lang.String sourceType;
private String wlType;//是否同步物料关系 0未同步 1已同步
}

View File

@ -3,6 +3,8 @@ package com.nu.modules.configSuppliersInfo.service;
import com.nu.modules.configSuppliersInfo.entity.ConfigSuppliersInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @Description: 供应商
* @Author: 张明远
@ -11,4 +13,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface IConfigSuppliersInfoService extends IService<ConfigSuppliersInfo> {
void addBatch(List<ConfigSuppliersInfo> configSuppliersInfo);
void updateWlType(ConfigSuppliersInfo configSuppliersInfo);
}

View File

@ -1,11 +1,28 @@
package com.nu.modules.configSuppliersInfo.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.nu.dto.SuppliersInfoMQDto;
import com.nu.modules.ConfigMaterial.entity.ConfigMaterialInfo;
import com.nu.modules.ConfigMaterial.service.IConfigMaterialInfoService;
import com.nu.modules.bizSuppliers.entity.NuBizSuppliersMaterialInfo;
import com.nu.modules.bizSuppliers.service.INuBizSuppliersInfoService;
import com.nu.modules.bizSuppliers.service.INuBizSuppliersMaterialInfoService;
import com.nu.modules.configSuppliersInfo.entity.ConfigSuppliersInfo;
import com.nu.modules.configSuppliersInfo.mapper.ConfigSuppliersInfoMapper;
import com.nu.modules.configSuppliersInfo.service.IConfigSuppliersInfoService;
import com.nu.utils.RabbitMQUtil;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Description: 供应商
@ -16,4 +33,115 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@Service
public class ConfigSuppliersInfoServiceImpl extends ServiceImpl<ConfigSuppliersInfoMapper, ConfigSuppliersInfo> implements IConfigSuppliersInfoService {
@Autowired
@Lazy
private INuBizSuppliersMaterialInfoService nuBizSuppliersMaterialInfoService;
@Autowired
private IConfigMaterialInfoService configMaterialInfoService;
@Autowired
private RabbitMQUtil rabbitMQUtil;
@Override
// @Transactional(rollbackFor = Exception.class)
public void addBatch(List<ConfigSuppliersInfo> configSuppliersInfo) {
List<ConfigMaterialInfo> wlList = configMaterialInfoService.list();
for (ConfigSuppliersInfo configSuppliersInfo1 : configSuppliersInfo) {
configSuppliersInfo1.setSourceType("2");
baseMapper.insert(configSuppliersInfo1);
SuppliersInfoMQDto suppliersInfoMQDto = new SuppliersInfoMQDto();
BeanUtils.copyProperties(configSuppliersInfo1, suppliersInfoMQDto);
//todo 更新管理平台机构申请关系
rabbitMQUtil.sendToExchange("nu.suppliers.suppliersApplyAdd", "nu.suppliers.suppliersApplyAdd", suppliersInfoMQDto);
}
}
@Override
public void updateWlType(ConfigSuppliersInfo configSuppliersInfo) {
QueryWrapper<ConfigMaterialInfo> queryWrapper = new QueryWrapper<>();
queryWrapper.apply("(suppliers is null or suppliers NOT like concat('%',"+configSuppliersInfo.getId()+",'%'))");
List<ConfigMaterialInfo> wlList = configMaterialInfoService.list(queryWrapper);
//更新物料关系
updateMaterialInfo(wlList,configSuppliersInfo);
}
private void updateMaterialInfo( List<ConfigMaterialInfo> wlList, ConfigSuppliersInfo configSuppliersInfo) {
if(wlList.size()==0){
return;
}
// 查询供应商对应的物料
List<NuBizSuppliersMaterialInfo> xsList = nuBizSuppliersMaterialInfoService.list(
new QueryWrapper<NuBizSuppliersMaterialInfo>()
.eq("suppliers_id", configSuppliersInfo.getId())
);
// 如果xsList为空跳过当前循环
if (xsList == null || xsList.isEmpty()) {
return;
}
// 取两个列表的交集并设置suppliersId
List<ConfigMaterialInfo> commonList = wlList.stream()
.filter(wl -> wl != null) // 过滤掉null的物料
.filter(wl -> xsList.stream()
.filter(xs -> xs != null) // 过滤掉null的供应商物料
.anyMatch(xs -> {
// 安全的字段比较允许null值
boolean materialNameMatch = (wl.getMaterialName() == null && xs.getMaterialName() == null) ||
(wl.getMaterialName() != null && xs.getMaterialName() != null &&
wl.getMaterialName().equals(xs.getMaterialName()));
boolean specificationModelMatch = (wl.getSpecificationModel() == null && xs.getSpecificationModel() == null) ||
(wl.getSpecificationModel() != null && xs.getSpecificationModel() != null &&
wl.getSpecificationModel().equals(xs.getSpecificationModel()));
boolean brandTypeMatch = (wl.getBrandType() == null && xs.getBrandType() == null) ||
(wl.getBrandType() != null && xs.getBrandType() != null &&
wl.getBrandType().equals(xs.getBrandType()));
return materialNameMatch && specificationModelMatch && brandTypeMatch;
})
)
.map(wl -> {
// 找到对应的xs项目
NuBizSuppliersMaterialInfo matchedXs = xsList.stream()
.filter(xs -> xs != null)
.filter(xs -> {
// 同样的匹配逻辑
boolean materialNameMatch = (wl.getMaterialName() == null && xs.getMaterialName() == null) ||
(wl.getMaterialName() != null && xs.getMaterialName() != null &&
wl.getMaterialName().equals(xs.getMaterialName()));
boolean specificationModelMatch = (wl.getSpecificationModel() == null && xs.getSpecificationModel() == null) ||
(wl.getSpecificationModel() != null && xs.getSpecificationModel() != null &&
wl.getSpecificationModel().equals(xs.getSpecificationModel()));
boolean brandTypeMatch = (wl.getBrandType() == null && xs.getBrandType() == null) ||
(wl.getBrandType() != null && xs.getBrandType() != null &&
wl.getBrandType().equals(xs.getBrandType()));
return materialNameMatch && specificationModelMatch && brandTypeMatch;
})
.findFirst()
.orElse(null);
if (matchedXs != null && matchedXs.getId() != null) {
String suppliers = wl.getSuppliers();
if (StringUtils.isEmpty( suppliers)) {
suppliers = configSuppliersInfo.getId();
}else{
suppliers = suppliers +","+configSuppliersInfo.getId();
}
wl.setSuppliers(suppliers);
configMaterialInfoService.updateById(wl);
}
return wl;
})
.collect(Collectors.toList());
}
}