This commit is contained in:
YY
2025-06-24 19:47:51 +08:00
parent 615ee559eb
commit 262fb3b957
18 changed files with 285 additions and 60 deletions

View File

@ -126,7 +126,8 @@ public class SynchronousController {
*/
@PostMapping("/evaluateApprove")
public BaseResponse evaluateApprove(@RequestBody AddCoscoEvaluateTaskVo vo) {
return BaseResponse.success(coscoEvaluateTaskService.evaluateApprove(vo));
coscoEvaluateTaskService.evaluateApprove(vo);
return BaseResponse.success();
}

View File

@ -4,7 +4,22 @@ public class MessageType {
//供应商准入审批处理完成
public static final String MESSAGETYPE_GYSZR = "MESSAGETYPE_GYSZR";
/**
* 供应商评价开启
*/
public static final String MESSAGETYPE_GYSJY = "MESSAGETYPE_GYSJY";
/**
* 供应商评价审核返回
*/
public static final String MESSAGETYPE_GYSJYSH = "MESSAGETYPE_GYSJYSH";
/**
* 黑名单审核返回
*/
public static final String MESSAGETYPE_HBLXSH = "MESSAGETYPE_HBLXSH";
/**
* 供应商年度评价开启
*/
public static final String MESSAGETYPE_GYSNDJY = "MESSAGETYPE_GYSNDJY";
//供应商品类准入审批处理完成
public static final String MESSAGETYPE_GYSPLZR = "MESSAGETYPE_GYSPLZR";

View File

@ -1,10 +1,13 @@
package com.chinaunicom.zyhy.ebtp.supplier.common.aop;
import com.alibaba.nacos.common.utils.StringUtils;
import com.chinaunicom.zyhy.ebtp.supplier.base.constant.CoscoCategoryConstant;
import com.chinaunicom.zyhy.ebtp.supplier.common.CoscoDateUtils;
import com.chinaunicom.zyhy.ebtp.supplier.common.CoscoIdUtil;
import com.chinaunicom.zyhy.ebtp.supplier.common.CoscoType;
import com.chinaunicom.zyhy.ebtp.supplier.common.MessageType;
import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo.ApproveVo;
import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo.NoTaskVo;
import com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.entity.CoscoAccessCategory;
import com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.entity.CoscoAccessSupplier;
import com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.entity.CoscoAccessWork;
@ -38,7 +41,8 @@ public class MessageLogAspect {
// 修改点1切点定义中添加参数绑定
@Pointcut("@annotation(messageLog)")
public void messageLogPointCut(MessageLog messageLog) {}
public void messageLogPointCut(MessageLog messageLog) {
}
// 成功执行后切入
@Around("messageLogPointCut(messageLog)")
@ -55,6 +59,18 @@ public class MessageLogAspect {
if (MessageType.MESSAGETYPE_GYSPLZR.equals(messageType)) {//供应商准入审批处理
pustMessageSupplierCategoryWork(result, messageType);
}
if (MessageType.MESSAGETYPE_GYSJY.equals(messageType)) {
//供应商评价开始处理
pustMessageEvaluateStart(result, messageType);
}
if (MessageType.MESSAGETYPE_GYSNDJY.equals(messageType)) {
//供应商年度评价开始处理
pustMessageAnnualreviewStart(result, messageType);
}
if (MessageType.MESSAGETYPE_GYSJYSH.equals(messageType)) {
//供应商评价处理完成
pustMessageEvaluateEnd(result, messageType);
}
} catch (Exception e) {
e.printStackTrace();
}
@ -62,6 +78,77 @@ public class MessageLogAspect {
return result;
}
private void pustMessageEvaluateEnd(Object result, String messageType) {
if (result instanceof ApproveVo) {
ApproveVo vo = (ApproveVo) result;
String resultast = vo.getResult().toString();
if (CoscoCategoryConstant.APPROVE_STATUS_PASS.equals(resultast)) {
resultast = "已通过";
} else {
resultast = "已驳回";
}
List<CoscoMessage> coscoMessageList = new ArrayList<>();
CoscoMessage coscoMessage = coscoMessageData(vo.getCreateBy(), "评价任务" + vo.getTaskName() + resultast, messageType);
coscoMessageList.add(coscoMessage);
for (String supplierId : vo.getSupplierIds()) {
coscoMessageData(supplierId, "供应商在" + vo.getDeptName() + "评价任务" + resultast, messageType);
coscoMessageList.add(coscoMessage);
}
pustMessage(coscoMessageList);
}
}
/**
* 年度评价开始处理
*
* @param result
* @param messageType
*/
private void pustMessageAnnualreviewStart(Object result, String messageType) {
if (result instanceof List) {
List<?> resultList = (List<?>) result;
if (!resultList.isEmpty() && !(resultList.get(0) instanceof NoTaskVo)) {
throw new IllegalArgumentException("返回对象类型不匹配:不是 NoTaskVo 列表");
}
// 如果你确定空列表也合法,可省略上面的非空判断
List<NoTaskVo> list = (List<NoTaskVo>) result;
List<CoscoMessage> coscoMessageList = new ArrayList<>();
for (NoTaskVo task : list) {
CoscoMessage coscoMessage = coscoMessageData(task.getUserId(), "供应商" + task.getName() + "年度评价已开始", messageType);
coscoMessageList.add(coscoMessage);
}
pustMessage(coscoMessageList);
} else {
throw new IllegalArgumentException("返回对象类型不匹配");
}
}
/**
* 评价开始处理
*
* @param result
* @param messageType
*/
private void pustMessageEvaluateStart(Object result, String messageType) {
if (result instanceof List) {
List<?> resultList = (List<?>) result;
if (!resultList.isEmpty() && !(resultList.get(0) instanceof NoTaskVo)) {
throw new IllegalArgumentException("返回对象类型不匹配:不是 NoTaskVo 列表");
}
// 如果你确定空列表也合法,可省略上面的非空判断
List<NoTaskVo> list = (List<NoTaskVo>) result;
List<CoscoMessage> coscoMessageList = new ArrayList<>();
for (NoTaskVo task : list) {
CoscoMessage coscoMessage = coscoMessageData(task.getUserId(), "供应商" + task.getName() + "评价已开始", messageType);
coscoMessageList.add(coscoMessage);
}
pustMessage(coscoMessageList);
} else {
throw new IllegalArgumentException("返回对象类型不匹配");
}
}
/**
* 供应商准入审批处里
*/
@ -117,6 +204,7 @@ public class MessageLogAspect {
/**
* 封装实体
*
* @param receiverId
* @param cont
* @param messageType

View File

@ -71,5 +71,4 @@ public class CoscoAnnualreviewTaskController extends BaseController {
return BaseResponse.success(coscoAnnualreviewTaskService.deleteCoscoAnnualreviewTaskByIds(ids));
}
}

View File

@ -5,6 +5,7 @@ import java.util.List;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.chinaunicom.zyhy.ebtp.supplier.coscoAnnualreview.entity.CoscoAnnualreviewTask;
import com.chinaunicom.zyhy.ebtp.supplier.coscoAnnualreview.vo.CoscoAnnualreviewTaskListVo;
import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo.NoTaskVo;
import io.lettuce.core.dynamic.annotation.Param;
/**
@ -79,4 +80,10 @@ public interface CoscoAnnualreviewTaskMapper {
* @return
*/
List<CoscoAnnualreviewTask> selectCloseTask();
/**
* 查询需要开启的任务信息
* @return
*/
List<NoTaskVo> selectNoTask();
}

View File

@ -248,5 +248,12 @@
where status = 0
and start_time &lt;= now()
</update>
<select id="selectNoTask" resultType="com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo.NoTaskVo">
select catsu.user_id userId, csb.id supplierId, csb.name name
from cosco_annualreview_task cat
join cosco_annualreview_task_supplier_user catsu on cat.id = catsu.annualreview_task_id
join cosco_supplier_base csb on csb.id = catsu.supplier_id
where cat.status = 0
and cat.start_time &lt;= now()
</select>
</mapper>

View File

@ -1,6 +1,8 @@
package com.chinaunicom.zyhy.ebtp.supplier.coscoAnnualreview.service.impl;
import com.chinaunicom.zyhy.ebtp.supplier.base.constant.AnnualreviewTaskConstant;
import com.chinaunicom.zyhy.ebtp.supplier.common.MessageType;
import com.chinaunicom.zyhy.ebtp.supplier.common.aop.MessageLog;
import com.chinaunicom.zyhy.ebtp.supplier.coscoAnnualreview.dao.CoscoAnnualreviewScoringMapper;
import com.chinaunicom.zyhy.ebtp.supplier.coscoAnnualreview.dao.CoscoAnnualreviewTaskMapper;
import com.chinaunicom.zyhy.ebtp.supplier.coscoAnnualreview.dao.CoscoAnnualreviewTaskSupplierMapper;
@ -8,6 +10,7 @@ import com.chinaunicom.zyhy.ebtp.supplier.coscoAnnualreview.entity.CoscoAnnualre
import com.chinaunicom.zyhy.ebtp.supplier.coscoAnnualreview.entity.CoscoAnnualreviewTaskSupplier;
import com.chinaunicom.zyhy.ebtp.supplier.coscoAnnualreview.service.AnnualScheduledTasksService;
import com.chinaunicom.zyhy.ebtp.supplier.coscoAnnualreview.vo.AuditQuantityVo;
import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo.NoTaskVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
@ -35,9 +38,12 @@ public class AnnualScheduledTasksServiceImpl implements AnnualScheduledTasksServ
* 定时任务查看待开启的任务。如果时间小于当前时间那么开启任务
*/
@Scheduled(cron = "0 15 1 * * ?")
public void checkTask() {
@MessageLog(messageType = MessageType.MESSAGETYPE_GYSJY)
public List<NoTaskVo> checkTask() {
List<NoTaskVo> noTasks =coscoAnnualreviewTaskMapper.selectNoTask();
//查询小于当前时间 未开启任务
coscoAnnualreviewTaskMapper.updateNOTask();
return noTasks;
}

View File

@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.chinaunicom.mall.ebtp.common.util.PropertyUtils;
import com.chinaunicom.zyhy.ebtp.supplier.base.constant.CoscoCategoryConstant;
import com.chinaunicom.zyhy.ebtp.supplier.base.constant.EvaluateTaskConstant;
import com.chinaunicom.zyhy.ebtp.supplier.common.MessageType;
import com.chinaunicom.zyhy.ebtp.supplier.common.aop.MessageLog;
import com.chinaunicom.zyhy.ebtp.supplier.coscoBlack.dao.CoscoBlacklistMapper;
import com.chinaunicom.zyhy.ebtp.supplier.coscoBlack.entity.CoscoBlacklist;
import com.chinaunicom.zyhy.ebtp.supplier.coscoBlack.entity.CoscoBlacklistSupplier;
@ -176,6 +178,7 @@ public class CoscoBlacklistServiceImpl implements ICoscoBlacklistService {
@Override
@Transactional(rollbackFor = Exception.class)
@MessageLog(messageType = MessageType.MESSAGETYPE_HBLXSH)
public int receiveApprove(CoscoBlacklist list) {
CoscoBlacklist coscoBlacklist = coscoBlacklistMapper.selectByWorkFlowId(list.getWorkFlowId());
if (CoscoCategoryConstant.APPROVE_STATUS_WAIT.equals(coscoBlacklist.getApproveStatus())) {

View File

@ -190,41 +190,59 @@
#{id}
</foreach>
</update>
<select id="selectLibraryPage"
resultType="com.chinaunicom.zyhy.ebtp.supplier.coscoCategory.vo.CoscoCategoryLibraryVo">
<resultMap id="CoscoCategoryLibraryVoMap" type="com.chinaunicom.zyhy.ebtp.supplier.coscoCategory.vo.CoscoCategoryLibraryVo">
<result column="id" property="id"/>
<result column="name" property="name"/>
<result column="categoryNames" property="categoryNames"/>
<result column="area" property="area"/>
<result column="deptName" property="deptName"/>
<result column="createName" property="createName"/>
<result column="termOfValidity" property="termOfValidity"/>
<result column="approveStatus" property="approveStatus"/>
<result column="approveStatusName" property="approveStatusName"/>
<result column="approveResult" property="approveResult"/>
<result column="snumber" property="snumber"/>
<result column="remark" property="remark"/>
</resultMap>
<select id="selectLibraryPage" parameterType="map"
resultMap="CoscoCategoryLibraryVoMap">
SELECT
ccl.id,
ccl.name,
GROUP_CONCAT(cc.category_name SEPARATOR ', ') AS categoryNames,
ccl.area,
"集团" as deptName,
"张三" as createName,
ccl.term_of_validity as termOfValidity,
ccl.approve_status as approveStatus,
"集团" AS deptName,
"张三" AS createName,
ccl.term_of_validity AS termOfValidity,
ccl.approve_status AS approveStatus,
ccl.remark,
case when ccl.approve_status = 0 and ccl.work_flow_id is null then '未开始'
when ccl.approve_status = 0 and ccl.work_flow_id is not null then '进行中'
else '已结束'
end as approveStatusName,
case when ccl.approve_status=1 then '通过'
when ccl.approve_status=2 then '驳回' end as approveResult,
(select count(ccls.id) from cosco_category_library_supplier_apply cclsa join cosco_category_library_supplier
ccls on cclsa.id =ccls.category_library_supplier_apply_id and cclsa.approve_status=1 and ccl.id=
ccls.category_library_id) as suppliersNumbers
CASE
WHEN ccl.approve_status = 0 AND ccl.work_flow_id IS NULL THEN '未开始'
WHEN ccl.approve_status = 0 AND ccl.work_flow_id IS NOT NULL THEN '进行中'
ELSE '已结束'
END AS approveStatusName,
CASE
WHEN ccl.approve_status = 1 THEN '通过'
WHEN ccl.approve_status = 2 THEN '驳回'
END AS approveResult,
COUNT(DISTINCT cclsa.id) AS snumber
FROM
cosco_category_library ccl
LEFT JOIN
cosco_category_library_contain cclc ON ccl.id = cclc.category_library_id
LEFT JOIN
cosco_category cc ON cc.id = cclc.category_id
LEFT JOIN
cosco_category_library_supplier ccls ON ccl.id = ccls.category_library_id
LEFT JOIN
cosco_category_library_supplier_apply cclsa ON ccls.category_library_supplier_apply_id = cclsa.id
AND cclsa.approve_status = 1
<where>
<if test="vo.name!=null and vo.name!=''">
and ccl.name like concat('%',#{vo.name},'%')
AND ccl.name LIKE CONCAT('%',#{vo.name},'%')
</if>
<if test="vo.approveStatus!=null">
and ccl.approve_status = #{vo.approveStatus}
AND ccl.approve_status = #{vo.approveStatus}
</if>
</where>
GROUP BY

View File

@ -55,7 +55,7 @@ public class CoscoCategoryLibraryVo {
/**
* 供应商数量
*/
private Integer suppliersNumbers;
private Integer snumber;
/**
* 审批结果
*/

View File

@ -47,13 +47,13 @@ public class CoscoEvaluateTaskSupplierController extends BaseController {
@GetMapping("/export")
public void export(HttpServletResponse response, CoscoEvaluateTaskSupplier taskListVo) throws Exception {
List<CoscoEvaluateTaskSupplier> list=coscoEvaluateTaskSupplierService.export(taskListVo);
String fileName = URLEncoder.encode("供应商信息.xlsx", "UTF-8");
String fileName = URLEncoder.encode("供应评价.xlsx", "UTF-8");
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
response.setCharacterEncoding("utf-8");
EasyExcel.write(response.getOutputStream(), CoscoEvaluateTaskSupplier.class)
.sheet("供应商列表")
.sheet("供应评价")
.doWrite(list);
}

View File

@ -5,6 +5,7 @@ import java.util.List;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.entity.CoscoEvaluateTask;
import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo.CoscoEvaluateTaskListVo;
import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo.NoTaskVo;
import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo.TaskPageVo;
import io.lettuce.core.dynamic.annotation.Param;
@ -80,4 +81,10 @@ public interface CoscoEvaluateTaskMapper {
* @param workFlowId
*/
CoscoEvaluateTask selectByWorkFlowId(String workFlowId);
/**
* 查询没有开启评价的任务
* @return
*/
List<NoTaskVo> selectNoTask();
}

View File

@ -109,6 +109,14 @@
</where>
</select>
<select id="selectNoTask" resultType="com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo.NoTaskVo">
select cetsu.user_id userId, csb.name, csb.id supplierId
from cosco_evaluate_task cet
join cosco_evaluate_task_supplier_user cetsu on cet.id = cetsu.evaluate_task_id
join cosco_supplier_base csb on csb.id = cetsu.supplier_id
where cet.status = 0
and start_time &lt;= now()
</select>
<select id="selectByWorkFlowId" parameterType="String"
resultMap="CoscoEvaluateTaskResult">

View File

@ -4,10 +4,7 @@ import java.util.List;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.entity.CoscoEvaluateTask;
import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo.AddCoscoEvaluateTaskVo;
import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo.CoscoEvaluateTaskListVo;
import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo.SupplierListVo;
import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo.TaskPageVo;
import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo.*;
/**
* 【供应商评价_评价任务主表】Service接口
@ -103,5 +100,5 @@ public interface ICoscoEvaluateTaskService {
/**
* 供应商评价审核审批回调接口
*/
int evaluateApprove(AddCoscoEvaluateTaskVo vo);
ApproveVo evaluateApprove(AddCoscoEvaluateTaskVo vo);
}

View File

@ -10,6 +10,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.chinaunicom.mall.ebtp.common.util.PropertyUtils;
import com.chinaunicom.zyhy.ebtp.supplier.base.constant.CoscoCategoryConstant;
import com.chinaunicom.zyhy.ebtp.supplier.common.MessageType;
import com.chinaunicom.zyhy.ebtp.supplier.common.aop.MessageLog;
import com.chinaunicom.zyhy.ebtp.supplier.coscoBlack.vo.BlackSupplierVo;
import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.dao.*;
import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.entity.*;
@ -236,11 +238,22 @@ public class CoscoEvaluateTaskServiceImpl implements ICoscoEvaluateTaskService {
* 供应商评价审核审批回调接口
*/
@Override
public int evaluateApprove(AddCoscoEvaluateTaskVo vo) {
@MessageLog(messageType = MessageType.MESSAGETYPE_GYSJYSH)
public ApproveVo evaluateApprove(AddCoscoEvaluateTaskVo vo) {
CoscoEvaluateTask coscoEvaluateTask = coscoEvaluateTaskMapper.selectByWorkFlowId(vo.getWorkFlowId());
coscoEvaluateTask.setApproveStatus(vo.getApproveStatus());
coscoEvaluateTaskMapper.updateCoscoEvaluateTask(coscoEvaluateTask);
return 0;
ApproveVo aVo=new ApproveVo();
aVo.setResult(vo.getApproveStatus());
aVo.setCreateBy(coscoEvaluateTask.getCreateBy());
aVo.setDeptName("创建部门");
aVo.setTaskName(coscoEvaluateTask.getEvaluateTheme());
CoscoEvaluateTaskSupplier coscoEvaluateTaskSupplier = new CoscoEvaluateTaskSupplier();
coscoEvaluateTaskSupplier.setEvaluateTaskId(coscoEvaluateTask.getId());
List<CoscoEvaluateTaskSupplier> coscoEvaluateTaskSuppliers = coscoEvaluateTaskSupplierMapper.selectCoscoEvaluateTaskSupplierList(coscoEvaluateTaskSupplier);
List<String> supplierIds = coscoEvaluateTaskSuppliers.stream().map(CoscoEvaluateTaskSupplier::getSupplierId).collect(Collectors.toList());
aVo.setSupplierIds(supplierIds);
return aVo;
}
/**

View File

@ -3,12 +3,15 @@ package com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.service.impl;
import com.chinaunicom.mall.ebtp.common.util.PropertyUtils;
import com.chinaunicom.zyhy.ebtp.supplier.base.constant.EvaluateTaskConstant;
import com.chinaunicom.zyhy.ebtp.supplier.base.constant.MessageConstant;
import com.chinaunicom.zyhy.ebtp.supplier.common.MessageType;
import com.chinaunicom.zyhy.ebtp.supplier.common.aop.MessageLog;
import com.chinaunicom.zyhy.ebtp.supplier.coscoBlack.service.ICoscoBlacklistService;
import com.chinaunicom.zyhy.ebtp.supplier.coscoBlack.vo.BecomeDueVo;
import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.dao.*;
import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.entity.*;
import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.service.ScheduledTasksService;
import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo.CalculateAndObtainScoresVo;
import com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo.NoTaskVo;
import com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.dao.mapper.CoscoMessageMapper;
import com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.entity.CoscoMessage;
import org.springframework.beans.factory.annotation.Autowired;
@ -47,9 +50,12 @@ public class ScheduledTasksServiceImpl implements ScheduledTasksService {
* 定时任务查看待开启的任务。如果时间小于当前时间那么开启任务
*/
@Scheduled(cron = "0 0 1 * * ?")
public void checkTask() {
@MessageLog(messageType = MessageType.MESSAGETYPE_GYSJY)
public List<NoTaskVo> checkTask() {
List<NoTaskVo> noTasks =coscoEvaluateTaskMapper.selectNoTask();
//查询小于当前时间 未开启任务
coscoEvaluateTaskMapper.updateNOTask();
return noTasks;
}
/**

View File

@ -0,0 +1,29 @@
package com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo;
import lombok.Data;
import java.util.List;
@Data
public class ApproveVo {
/**
* 创建人
*/
private String createBy;
/**
* 部门名称
*/
private String deptName;
/**
* 评价任务名称
*/
private String taskName;
/**
* 供应商id
*/
private List<String> supplierIds;
/**
* 结果
*/
private Long result;
}

View File

@ -0,0 +1,21 @@
package com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo;
import lombok.Data;
@Data
public class NoTaskVo {
/**
* 用户id
*/
private String userId;
/**
* 供应商名称
*/
private String name;
/**
* 供应商id
*/
private String supplierId;
}