Commit 486a483e by 穆龙飞

modify:增加名称+部门返回

parent 36ed9f33
...@@ -6,28 +6,8 @@ ...@@ -6,28 +6,8 @@
*/ */
package com.netease.mail.yanxuan.change.biz.biz; package com.netease.mail.yanxuan.change.biz.biz;
import java.io.ByteArrayOutputStream; import cn.afterturn.easypoi.excel.ExcelExportUtil;
import java.io.IOException; import cn.afterturn.easypoi.excel.entity.ExportParams;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.*;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import com.netease.mail.yanxuan.change.integration.flow.OrgPosDTO;
import com.netease.mail.yanxuan.change.integration.flow.UserQueryDTO;
import com.netease.mail.yanxuan.change.integration.flow.ius.IusRpcService;
import com.netease.mail.yanxuan.change.integration.flow.ius.rsp.IusUserInfoRsp;
import com.netease.yanxuan.flowx.sdk.meta.controller.communal.AjaxResponse;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.Assert;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
...@@ -39,70 +19,56 @@ import com.netease.mail.yanxuan.change.biz.service.ChangeFlowService; ...@@ -39,70 +19,56 @@ import com.netease.mail.yanxuan.change.biz.service.ChangeFlowService;
import com.netease.mail.yanxuan.change.biz.service.InteriorChangeConfigService; import com.netease.mail.yanxuan.change.biz.service.InteriorChangeConfigService;
import com.netease.mail.yanxuan.change.biz.service.change.ChangeConfigService; import com.netease.mail.yanxuan.change.biz.service.change.ChangeConfigService;
import com.netease.mail.yanxuan.change.biz.service.change.ChangeTypeService; import com.netease.mail.yanxuan.change.biz.service.change.ChangeTypeService;
import com.netease.mail.yanxuan.change.biz.service.rpc.FlowService; import com.netease.mail.yanxuan.change.biz.service.rpc.*;
import com.netease.mail.yanxuan.change.biz.service.rpc.ItemService;
import com.netease.mail.yanxuan.change.biz.service.rpc.IusService;
import com.netease.mail.yanxuan.change.biz.service.rpc.SupplierSendService;
import com.netease.mail.yanxuan.change.biz.service.rpc.TodoService;
import com.netease.mail.yanxuan.change.common.bean.CommonConstants; import com.netease.mail.yanxuan.change.common.bean.CommonConstants;
import com.netease.mail.yanxuan.change.common.bean.RequestLocalBean; import com.netease.mail.yanxuan.change.common.bean.RequestLocalBean;
import com.netease.mail.yanxuan.change.common.bean.ResponseCode; import com.netease.mail.yanxuan.change.common.bean.ResponseCode;
import com.netease.mail.yanxuan.change.common.enums.ChangeFlowEnum; import com.netease.mail.yanxuan.change.common.enums.*;
import com.netease.mail.yanxuan.change.common.enums.ChangeResultEnum;
import com.netease.mail.yanxuan.change.common.enums.ChangeStatusEnum;
import com.netease.mail.yanxuan.change.common.enums.ChangeSubjectEnum;
import com.netease.mail.yanxuan.change.common.enums.CreateSourceEnum;
import com.netease.mail.yanxuan.change.common.enums.FileTypeEnum;
import com.netease.mail.yanxuan.change.common.enums.FlowOperationTypeEnum;
import com.netease.mail.yanxuan.change.common.enums.FlowxOperationEnum;
import com.netease.mail.yanxuan.change.common.enums.NeedFileEnum;
import com.netease.mail.yanxuan.change.common.enums.OperateTypeEnum;
import com.netease.mail.yanxuan.change.common.util.DateUtils; import com.netease.mail.yanxuan.change.common.util.DateUtils;
import com.netease.mail.yanxuan.change.dal.entity.ChangeConfig; import com.netease.mail.yanxuan.change.dal.entity.*;
import com.netease.mail.yanxuan.change.dal.entity.ChangeExecRecord;
import com.netease.mail.yanxuan.change.dal.entity.ChangeFile;
import com.netease.mail.yanxuan.change.dal.entity.ChangeRecord;
import com.netease.mail.yanxuan.change.dal.entity.ChangeType;
import com.netease.mail.yanxuan.change.dal.mapper.ChangeRecordMapper; import com.netease.mail.yanxuan.change.dal.mapper.ChangeRecordMapper;
import com.netease.mail.yanxuan.change.dal.meta.model.po.ChangeCommanderPO; import com.netease.mail.yanxuan.change.dal.meta.model.po.ChangeCommanderPO;
import com.netease.mail.yanxuan.change.dal.meta.model.po.ChangeConfigPo; import com.netease.mail.yanxuan.change.dal.meta.model.po.ChangeConfigPo;
import com.netease.mail.yanxuan.change.dal.meta.model.po.ChangeGoodsPrincipalPO; import com.netease.mail.yanxuan.change.dal.meta.model.po.ChangeGoodsPrincipalPO;
import com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeExecConfigReq; import com.netease.mail.yanxuan.change.dal.meta.model.req.*;
import com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlowCancelReq;
import com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlowCreateReq;
import com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlowDeliverReq;
import com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlowFile;
import com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlowListQueryReq;
import com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlowSubmitReq;
import com.netease.mail.yanxuan.change.dal.meta.model.rpc.GoodsResponseRpc; import com.netease.mail.yanxuan.change.dal.meta.model.rpc.GoodsResponseRpc;
import com.netease.mail.yanxuan.change.dal.meta.model.vo.BasicChangeFlowVO; import com.netease.mail.yanxuan.change.dal.meta.model.vo.*;
import com.netease.mail.yanxuan.change.dal.meta.model.vo.CategoryInfoVO;
import com.netease.mail.yanxuan.change.dal.meta.model.vo.ChangeFlowExecVO;
import com.netease.mail.yanxuan.change.dal.meta.model.vo.ChangeFlowListVO;
import com.netease.mail.yanxuan.change.dal.meta.model.vo.ChangeFlowVO;
import com.netease.mail.yanxuan.change.dal.meta.model.vo.ItemBasicInfoVO;
import com.netease.mail.yanxuan.change.dal.meta.model.vo.ItemVO;
import com.netease.mail.yanxuan.change.dal.meta.model.vo.PageVO;
import com.netease.mail.yanxuan.change.integration.email.enums.EmailTemplateEnum; import com.netease.mail.yanxuan.change.integration.email.enums.EmailTemplateEnum;
import com.netease.mail.yanxuan.change.integration.email.service.IEmailService; import com.netease.mail.yanxuan.change.integration.email.service.IEmailService;
import com.netease.mail.yanxuan.change.integration.excel.ChangeFlowExcelDTO; import com.netease.mail.yanxuan.change.integration.excel.ChangeFlowExcelDTO;
import com.netease.mail.yanxuan.change.integration.flow.UserQueryDTO;
import com.netease.mail.yanxuan.change.integration.flow.ius.IusRpcService;
import com.netease.mail.yanxuan.change.integration.flow.ius.req.IusDepartmentReq; import com.netease.mail.yanxuan.change.integration.flow.ius.req.IusDepartmentReq;
import com.netease.mail.yanxuan.change.integration.flow.ius.rsp.IusUserInfoRsp;
import com.netease.mail.yanxuan.change.integration.flow.ius.rsp.SecondaryDepartments; import com.netease.mail.yanxuan.change.integration.flow.ius.rsp.SecondaryDepartments;
import com.netease.mail.yanxuan.change.integration.item.SimplePhyCateGoryResultCo; import com.netease.mail.yanxuan.change.integration.item.SimplePhyCateGoryResultCo;
import com.netease.mail.yanxuan.change.integration.item.meta.SpuTO; import com.netease.mail.yanxuan.change.integration.item.meta.SpuTO;
import com.netease.mail.yanxuan.change.integration.item.param.BatchQuerySpuInfoParam; import com.netease.mail.yanxuan.change.integration.item.param.BatchQuerySpuInfoParam;
import com.netease.mail.yanxuan.change.integration.item.param.CommonIdsParamQuery; import com.netease.mail.yanxuan.change.integration.item.param.CommonIdsParamQuery;
import com.netease.mail.yanxuan.change.integration.todo.TaskCreateDTO; import com.netease.mail.yanxuan.change.integration.todo.TaskCreateDTO;
import com.netease.yanxuan.flowx.sdk.meta.controller.communal.AjaxResponse;
import com.netease.yanxuan.flowx.sdk.meta.dto.base.FlowDataDTO; import com.netease.yanxuan.flowx.sdk.meta.dto.base.FlowDataDTO;
import com.netease.yanxuan.flowx.sdk.meta.dto.base.UserBaseDTO; import com.netease.yanxuan.flowx.sdk.meta.dto.base.UserBaseDTO;
import com.netease.yanxuan.flowx.sdk.meta.dto.base.UserReachDTO; import com.netease.yanxuan.flowx.sdk.meta.dto.base.UserReachDTO;
import com.netease.yanxuan.flowx.sdk.meta.dto.exec.InterfaceInputDTO; import com.netease.yanxuan.flowx.sdk.meta.dto.exec.InterfaceInputDTO;
import com.netease.yanxuan.flowx.sdk.meta.dto.exec.UserBaseContainerDTO; import com.netease.yanxuan.flowx.sdk.meta.dto.exec.UserBaseContainerDTO;
import com.netease.yanxuan.flowx.sdk.meta.dto.flow.FlowCreateReqDTO; import com.netease.yanxuan.flowx.sdk.meta.dto.flow.FlowCreateReqDTO;
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.Assert;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.*;
import java.util.stream.Collectors;
/** /**
* @Author zcwang * @Author zcwang
...@@ -218,7 +184,7 @@ public class ChangeFlowBiz { ...@@ -218,7 +184,7 @@ public class ChangeFlowBiz {
changeFlowService.saveRecord(changeRecord); changeFlowService.saveRecord(changeRecord);
// 保存变更行动方案记录 // 保存变更行动方案记录
List<ChangeExecRecord> changeExecRecords = buildChangeExecRecord(changeRecord.getId(), changeExecProject); List<ChangeExecRecord> changeExecRecords = buildChangeExecRecord(changeRecord.getId(), changeExecProject);
changeExecRecords.forEach(exec->changeFlowExecService.saveRecord(exec)); changeExecRecords.forEach(exec -> changeFlowExecService.saveRecord(exec));
List<ChangeFile> allFiles = new ArrayList<>(); List<ChangeFile> allFiles = new ArrayList<>();
// 变更前后图片/视频,非必填 // 变更前后图片/视频,非必填
List<ChangeFlowFile> changeFiles = changeFlowCreateReq.getChangeFiles(); List<ChangeFlowFile> changeFiles = changeFlowCreateReq.getChangeFiles();
...@@ -231,7 +197,7 @@ public class ChangeFlowBiz { ...@@ -231,7 +197,7 @@ public class ChangeFlowBiz {
allFiles.addAll(buildChangeFileRecord(changeRecord.getId(), uploadFiles, FileTypeEnum.UPLOAD.getType())); allFiles.addAll(buildChangeFileRecord(changeRecord.getId(), uploadFiles, FileTypeEnum.UPLOAD.getType()));
} }
if (CollectionUtils.isNotEmpty(allFiles)) { if (CollectionUtils.isNotEmpty(allFiles)) {
allFiles.forEach(file->changeFileService.saveRecord(file)); allFiles.forEach(file -> changeFileService.saveRecord(file));
} }
// 创建代办 // 创建代办
TaskCreateDTO todoTask = todoService.createTodoTask(changeRecord); TaskCreateDTO todoTask = todoService.createTodoTask(changeRecord);
...@@ -261,7 +227,7 @@ public class ChangeFlowBiz { ...@@ -261,7 +227,7 @@ public class ChangeFlowBiz {
param.put("flowUrl", changeRecord.getFlowId()); param.put("flowUrl", changeRecord.getFlowId());
param.put("dataList", changeExecRecords); param.put("dataList", changeExecRecords);
ChangeConfigPo changeConfigPo = changeConfigService.queryInfoPo(parentChangeClassId, sonChangeClassId); ChangeConfigPo changeConfigPo = changeConfigService.queryInfoPo(parentChangeClassId, sonChangeClassId);
StringBuilder changeType = new StringBuilder(""); StringBuilder changeType = new StringBuilder();
try { try {
changeType.append(changeConfigPo.getChangeTypes().get(0).getTypeName()); changeType.append(changeConfigPo.getChangeTypes().get(0).getTypeName());
} catch (Exception e) { } catch (Exception e) {
...@@ -287,7 +253,7 @@ public class ChangeFlowBiz { ...@@ -287,7 +253,7 @@ public class ChangeFlowBiz {
param.put("changeId", changeRecord.getId()); param.put("changeId", changeRecord.getId());
param.put("changeSubject", changeRecord.getChangeSubject()); param.put("changeSubject", changeRecord.getChangeSubject());
ChangeConfigPo changeConfigPo = changeConfigService.queryInfoPo(parentChangeClassId, sonChangeClassId); ChangeConfigPo changeConfigPo = changeConfigService.queryInfoPo(parentChangeClassId, sonChangeClassId);
StringBuilder changeType = new StringBuilder(""); StringBuilder changeType = new StringBuilder();
try { try {
changeType.append(changeConfigPo.getChangeTypes().get(0).getTypeName()); changeType.append(changeConfigPo.getChangeTypes().get(0).getTypeName());
} catch (Exception e) { } catch (Exception e) {
...@@ -312,6 +278,7 @@ public class ChangeFlowBiz { ...@@ -312,6 +278,7 @@ public class ChangeFlowBiz {
/** /**
* 严选QC端发送邮件 * 严选QC端发送邮件
*
* @param changeCommander 负责人 * @param changeCommander 负责人
* @param subjectParam 主体参数 * @param subjectParam 主体参数
* @param emailTemplateEnum 邮件模板 * @param emailTemplateEnum 邮件模板
...@@ -515,7 +482,7 @@ public class ChangeFlowBiz { ...@@ -515,7 +482,7 @@ public class ChangeFlowBiz {
// 保存变更行动方案记录 // 保存变更行动方案记录
List<ChangeExecRecord> changeExecRecords = buildChangeExecRecord(changeRecord.getId(), List<ChangeExecRecord> changeExecRecords = buildChangeExecRecord(changeRecord.getId(),
changeFlowSubmitReq.getChangeExecProjectList()); changeFlowSubmitReq.getChangeExecProjectList());
changeExecRecords.forEach(exec->changeFlowExecService.saveRecord(exec)); changeExecRecords.forEach(exec -> changeFlowExecService.saveRecord(exec));
// 更新附件,覆盖操作,先删除,后插入 // 更新附件,覆盖操作,先删除,后插入
List<ChangeFlowFile> files = changeFlowSubmitReq.getFiles(); List<ChangeFlowFile> files = changeFlowSubmitReq.getFiles();
if (CollectionUtils.isNotEmpty(files)) { if (CollectionUtils.isNotEmpty(files)) {
...@@ -570,7 +537,7 @@ public class ChangeFlowBiz { ...@@ -570,7 +537,7 @@ public class ChangeFlowBiz {
changeRecord.setFlowNode(confirmNode); changeRecord.setFlowNode(confirmNode);
changeRecord.setUpdateTime(DateUtils.getCurrentTime()); changeRecord.setUpdateTime(DateUtils.getCurrentTime());
changeFlowService.updateRecord(changeRecord); changeFlowService.updateRecord(changeRecord);
changeExecRecordList.forEach(exec->changeFlowExecService.update(exec)); changeExecRecordList.forEach(exec -> changeFlowExecService.update(exec));
todoService.progressTodoTask(changeRecord, OperateTypeEnum.FINISH.getType()); todoService.progressTodoTask(changeRecord, OperateTypeEnum.FINISH.getType());
// 发送邮件 // 发送邮件
HashMap<String, Object> finishPartMap = new HashMap<>(); HashMap<String, Object> finishPartMap = new HashMap<>();
...@@ -579,7 +546,7 @@ public class ChangeFlowBiz { ...@@ -579,7 +546,7 @@ public class ChangeFlowBiz {
finishPartMap.put("flowUrl", changeRecord.getFlowId()); finishPartMap.put("flowUrl", changeRecord.getFlowId());
ChangeConfigPo changeConfigPo = changeConfigService ChangeConfigPo changeConfigPo = changeConfigService
.queryInfoPo(changeRecord.getParentChangeClassId(), changeRecord.getSonChangeClassId()); .queryInfoPo(changeRecord.getParentChangeClassId(), changeRecord.getSonChangeClassId());
StringBuilder changeType = new StringBuilder(""); StringBuilder changeType = new StringBuilder();
try { try {
changeType.append(changeConfigPo.getChangeTypes().get(0).getTypeName()); changeType.append(changeConfigPo.getChangeTypes().get(0).getTypeName());
} catch (Exception e) { } catch (Exception e) {
...@@ -650,7 +617,7 @@ public class ChangeFlowBiz { ...@@ -650,7 +617,7 @@ public class ChangeFlowBiz {
changeRecord.setChangeConfirmResultTime(changeConfirmResultTime); changeRecord.setChangeConfirmResultTime(changeConfirmResultTime);
changeRecord.setUpdateTime(DateUtils.getCurrentTime()); changeRecord.setUpdateTime(DateUtils.getCurrentTime());
changeFlowService.updateRecord(changeRecord); changeFlowService.updateRecord(changeRecord);
changeExecRecords1.forEach(exec->changeFlowExecService.update(exec)); changeExecRecords1.forEach(exec -> changeFlowExecService.update(exec));
// 变更行动项 // 变更行动项
return null; return null;
default: default:
...@@ -673,7 +640,7 @@ public class ChangeFlowBiz { ...@@ -673,7 +640,7 @@ public class ChangeFlowBiz {
return changeRecord; return changeRecord;
} }
private void checkNode(String recordNode, List<String> checkNode){ private void checkNode(String recordNode, List<String> checkNode) {
Optional<String> nodeOptional = checkNode.stream().filter(check -> check.equals(recordNode)).findAny(); Optional<String> nodeOptional = checkNode.stream().filter(check -> check.equals(recordNode)).findAny();
if (!nodeOptional.isPresent()) { if (!nodeOptional.isPresent()) {
throw ExceptionFactory.createBiz(ResponseCode.NODE_ERROR, "工单已流转至其他节点"); throw ExceptionFactory.createBiz(ResponseCode.NODE_ERROR, "工单已流转至其他节点");
...@@ -784,7 +751,7 @@ public class ChangeFlowBiz { ...@@ -784,7 +751,7 @@ public class ChangeFlowBiz {
List<Long> itemIds = itemList.stream().map(ItemVO::getItemId).collect(Collectors.toList()); List<Long> itemIds = itemList.stream().map(ItemVO::getItemId).collect(Collectors.toList());
// 批量查询spu信息 // 批量查询spu信息
List<SpuTO> spuTOS = itemService.batchQuerySpuInfo(BatchQuerySpuInfoParam.builder().ids(itemIds) List<SpuTO> spuTOS = itemService.batchQuerySpuInfo(BatchQuerySpuInfoParam.builder().ids(itemIds)
.commonProps(new ArrayList<>()).spuProps(Arrays.asList("itemSetupType","+")).build()); .commonProps(new ArrayList<>()).spuProps(Arrays.asList("itemSetupType", "+")).build());
log.debug("[detail] spuTOS:{}", JSON.toJSONString(spuTOS)); log.debug("[detail] spuTOS:{}", JSON.toJSONString(spuTOS));
// 批量查询物理类目 // 批量查询物理类目
Map<Long, List<SimplePhyCateGoryResultCo>> categoryChain = itemService Map<Long, List<SimplePhyCateGoryResultCo>> categoryChain = itemService
...@@ -852,6 +819,34 @@ public class ChangeFlowBiz { ...@@ -852,6 +819,34 @@ public class ChangeFlowBiz {
changeFlowVO.setChangeResult(changeRecord.getChangeResult()); changeFlowVO.setChangeResult(changeRecord.getChangeResult());
changeFlowVO.setChangeResultDesc(changeRecord.getChangeResultDesc()); changeFlowVO.setChangeResultDesc(changeRecord.getChangeResultDesc());
changeFlowVO.setTopoId(ChangeFlowEnum.CHANGE_FLOW.getTopoId()); changeFlowVO.setTopoId(ChangeFlowEnum.CHANGE_FLOW.getTopoId());
try {
Set<String> commanderList = new HashSet<>();
commanderList.add(changeRecord.getChangeCommander());
commanderList.add(changeRecord.getCreator());
IusDepartmentReq iusDepartmentReq = new IusDepartmentReq();
iusDepartmentReq.setUids(new ArrayList<>(commanderList));
HashMap<String, List<SecondaryDepartments>> orgMap = iusService.queryDepartment(iusDepartmentReq);
List<SecondaryDepartments> commander = orgMap.get(changeRecord.getChangeCommander());
List<SecondaryDepartments> creator = orgMap.get(changeRecord.getCreator());
if (!CollectionUtils.isEmpty(commander)) {
Optional<SecondaryDepartments> anyOrg = commander.stream().filter(o -> o.getOrgPosLevel() == 3).findAny();
String orgName = "无三级部门";
if (anyOrg.isPresent()) {
orgName = anyOrg.get().getOrgPosName();
}
changeFlowVO.setChangeCommanderView(commander.get(0).getUserName() + "(" + orgName + ")");
}
if (!CollectionUtils.isEmpty(creator)) {
Optional<SecondaryDepartments> anyOrg = creator.stream().filter(o -> o.getOrgPosLevel() == 3).findAny();
String orgName = "无三级部门";
if (anyOrg.isPresent()) {
orgName = anyOrg.get().getOrgPosName();
}
changeFlowVO.setChangeCreatorView(creator.get(0).getUserName() + "(" + orgName + ")");
}
} catch (Exception ex) {
log.error("add org has ex", ex);
}
return changeFlowVO; return changeFlowVO;
} }
......
...@@ -83,6 +83,11 @@ public class ChangeFlowVO { ...@@ -83,6 +83,11 @@ public class ChangeFlowVO {
private String changeCommander; private String changeCommander;
/** /**
* 名称+部门
*/
private String changeCommanderView;
/**
* 变更潜在风险描述 * 变更潜在风险描述
*/ */
private String changeRiskDesc; private String changeRiskDesc;
...@@ -118,6 +123,11 @@ public class ChangeFlowVO { ...@@ -118,6 +123,11 @@ public class ChangeFlowVO {
* 变更发起人 * 变更发起人
*/ */
private String changeCreator; private String changeCreator;
/**
* 名称+部门
*/
private String changeCreatorView;
/** /**
* 变更行动方案 * 变更行动方案
*/ */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment