Commit 760ad3cd by jx-art

Merge remote-tracking branch 'origin/feature-changeFlow-221110' into feature-changeFlow-221110

parents ee89ca76 5e8d1e78
...@@ -77,6 +77,7 @@ import com.netease.mail.yanxuan.change.dal.meta.model.vo.PageVO; ...@@ -77,6 +77,7 @@ import com.netease.mail.yanxuan.change.dal.meta.model.vo.PageVO;
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.todo.TaskCreateDTO; import com.netease.mail.yanxuan.change.integration.todo.TaskCreateDTO;
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.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;
...@@ -269,10 +270,6 @@ public class ChangeFlowBiz { ...@@ -269,10 +270,6 @@ public class ChangeFlowBiz {
return flowCreateReqDTO; return flowCreateReqDTO;
} }
private ChangeRecord buildChangeRecord(String flowId, String nodeId, ChangeFlowCreateReq changeFlowCreateReq, private ChangeRecord buildChangeRecord(String flowId, String nodeId, ChangeFlowCreateReq changeFlowCreateReq,
String changeCommander, String uid) { String changeCommander, String uid) {
ChangeRecord changeRecord = new ChangeRecord(); ChangeRecord changeRecord = new ChangeRecord();
...@@ -742,11 +739,29 @@ public class ChangeFlowBiz { ...@@ -742,11 +739,29 @@ public class ChangeFlowBiz {
List<String> nodeList = Arrays.asList(ChangeFlowEnum.CHANGE_FLOW_SUBMIT.getNodeId(), List<String> nodeList = Arrays.asList(ChangeFlowEnum.CHANGE_FLOW_SUBMIT.getNodeId(),
ChangeFlowEnum.CHANGE_FLOW_CONFIRM.getNodeId()); ChangeFlowEnum.CHANGE_FLOW_CONFIRM.getNodeId());
this.checkNode(changeRecord.getFlowNode(), nodeList); this.checkNode(changeRecord.getFlowNode(), nodeList);
// todo:检验操作权限
String uid = RequestLocalBean.getUid();
String changeCommander = changeRecord.getChangeCommander();
/*if (!uid.equals(changeCommander)) {
throw ExceptionFactory.createBiz(ResponseCode.NO_AUTH, ResponseCode.NO_AUTH.getMsg());
}*/
// 工单审核人转交
String deliverUser = req.getDeliverUser();
UserBaseDTO userBaseDTO = new UserBaseDTO();
userBaseDTO.setUserName(deliverUser);
userBaseDTO.setUid(deliverUser);
String remark = req.getRemark();
Map<String, Object> content = new HashMap<>(CommonConstants.INIT_HASH_MAP_SIZE);
content.put("updateTime", System.currentTimeMillis());
flowService.updateApprovers(ChangeFlowEnum.CHANGE_FLOW_EXE.getTopoId(), flowId.toString(),
changeRecord.getFlowNode(), Collections.singletonList(userBaseDTO), uid,
uid, remark, JSON.toJSONString(content));
// 待办转交 // 待办转交
todoService.progressTodoTask(changeRecord, OperateTypeEnum.DELIVER.getType()); todoService.progressTodoTask(changeRecord, OperateTypeEnum.DELIVER.getType());
// 更新工单负责人 // 更新工单负责人
changeRecord.setChangeCommander(req.getDeliverUser()); changeRecord.setChangeCommander(deliverUser);
changeRecord.setRemark(req.getRemark()); changeRecord.setRemark(remark);
changeRecord.setUpdateTime(DateUtils.getCurrentTime());
changeFlowService.updateRecord(changeRecord); changeFlowService.updateRecord(changeRecord);
} }
} }
...@@ -22,8 +22,10 @@ import com.netease.mail.yanxuan.change.common.enums.FlowxOperationEnum; ...@@ -22,8 +22,10 @@ import com.netease.mail.yanxuan.change.common.enums.FlowxOperationEnum;
import com.netease.mail.yanxuan.change.integration.flow.FlowRpcService; import com.netease.mail.yanxuan.change.integration.flow.FlowRpcService;
import com.netease.yanxuan.flowx.sdk.meta.controller.communal.AjaxResponse; 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.flow.FlowCreateReqDTO; import com.netease.yanxuan.flowx.sdk.meta.dto.flow.FlowCreateReqDTO;
import com.netease.yanxuan.flowx.sdk.meta.dto.flow.NodeSubmitReqDTO; import com.netease.yanxuan.flowx.sdk.meta.dto.flow.NodeSubmitReqDTO;
import com.netease.yanxuan.flowx.sdk.meta.dto.flow.UpdateNodeApproverDTO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -121,4 +123,31 @@ public class FlowService { ...@@ -121,4 +123,31 @@ public class FlowService {
} }
return flowDataDTO; return flowDataDTO;
} }
/**
* 更新待办人
* @param topoId
* @param flowId
* @param currentNodeId
* @param newApproverList
* @param uid
* @param userName
* @param remark
* @param content
*/
public void updateApprovers(String topoId, String flowId, String currentNodeId, List<UserBaseDTO> newApproverList,
String uid, String userName, String remark, String content){
FlowDataDTO flowDataDTO = this.flowDetail(flowId);
UpdateNodeApproverDTO approverDTO = new UpdateNodeApproverDTO();
approverDTO.setOccLock(flowDataDTO.getOccLock() + 1);
approverDTO.setTopoId(topoId);
approverDTO.setNodeId(currentNodeId);
approverDTO.setFlowId(flowId);
approverDTO.setNewApproverList(newApproverList);
approverDTO.setUid(uid);
approverDTO.setUserName(userName);
approverDTO.setRemark(remark);
approverDTO.setContent(content);
approverDTO.setOperateResult(FlowxOperationEnum.DELIVER.getName());
};
} }
\ No newline at end of file
/**
* @(#)itemRpcService.java, 2022/11/30.
* <p/>
* Copyright 2022 Netease, Inc. All rights reserved.
* NETEASE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package com.netease.mail.yanxuan.change.biz.service.rpc;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.alibaba.fastjson.JSON;
import com.netease.mail.yanxuan.change.common.bean.AjaxResult;
import com.netease.mail.yanxuan.change.integration.item.CommonIdsParamQuery;
import com.netease.mail.yanxuan.change.integration.item.ItemCategoryRpcService;
import com.netease.mail.yanxuan.change.integration.item.SimplePhyCateGoryResultCo;
import lombok.extern.slf4j.Slf4j;
/**
* @Author zcwang
* @Date 2022/11/30
*/
@Slf4j
@Component
public class ItemRpcService {
@Autowired
private ItemCategoryRpcService itemCategoryRpcService;
/**
* 查询物理类目
* @param query
* @return
*/
public Map<Long, List<SimplePhyCateGoryResultCo>> queryCategoryChain(CommonIdsParamQuery query) {
AjaxResult<Map<Long, List<SimplePhyCateGoryResultCo>>> response = itemCategoryRpcService.queryCategoryChain(query);
log.info("[ItemRpcService-queryCategoryChain] response of query queryCategoryChain ={}",
JSON.toJSONString(response));
if (Boolean.TRUE.equals(response.isSuccess())) {
return response.getData();
}
log.error("[op:rpc-queryCategoryChain] query categoryChain detail failed, query={}, errMsg={}", query,
response.getMsg());
return new HashMap<>();
}
}
\ No newline at end of file
/**
* @(#)CategoryInfoDTO.java, 2022/8/24.
* <p/>
* Copyright 2022 Netease, Inc. All rights reserved.
* NETEASE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package com.netease.mail.yanxuan.change.dal.meta.model.vo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author zcwang
* @Date 2022/8/24
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class CategoryInfoVO {
/**
* 类目id
*/
private Long id;
/**
* 类目名称
*/
private String name;
}
\ No newline at end of file
...@@ -140,4 +140,9 @@ public class ChangeFlowVO { ...@@ -140,4 +140,9 @@ public class ChangeFlowVO {
* 备注 * 备注
*/ */
private String remark; private String remark;
/**
* 变更商品基础信息
*/
private List<ItemBasicInfoVO> itemBasicInfoList;
} }
\ No newline at end of file
/**
* @(#)ItemBasicInfoVO.java, 2022/11/30.
* <p/>
* Copyright 2022 Netease, Inc. All rights reserved.
* NETEASE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package com.netease.mail.yanxuan.change.dal.meta.model.vo;
import java.util.List;
import lombok.Data;
/**
* @Author zcwang
* @Date 2022/11/30
*/
@Data
public class ItemBasicInfoVO {
/**
* 商品id
*/
private Long itemId;
/**
* 商品名
*/
private String itemName;
/**
* 品控类目
*/
private String qcCategory;
/**
* 物理类目
*/
private List<CategoryInfoVO> phyCategory;
/**
* 商品立项类型,0-正常立项商品,2-特殊免立项商品 3-组合装
*/
private Integer itemSetupType;
/**
* 经营形式,0-自营,3-严选贴牌代销,4-他方品牌代销,5-代销2.0
*/
private Integer businessForm;
/**
* 商品状态,0-未上架,1-未上架,2-已上架,4-预上架
*/
private Integer status;
/**
* 商品负责人
*/
private String projectCommander;
/**
* 采购负责人
*/
private String purchaseCommander;
/**
* SQE负责人
*/
private String SQECommander;
/**
* 计划负责人
*/
private String planCommander;
}
\ No newline at end of file
/**
* @(#)CommonIdsParamQuery.java, 2022/8/18.
* <p/>
* Copyright 2022 Netease, Inc. All rights reserved.
* NETEASE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package com.netease.mail.yanxuan.change.integration.item;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author zcwang
* @Date 2022/8/18
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class CommonIdsParamQuery {
/**
* id列表,上限200
*/
private List<Long> ids;
}
\ No newline at end of file
/**
* @(#)ItemCategoryRpcService.java, 2022/11/30.
* <p/>
* Copyright 2022 Netease, Inc. All rights reserved.
* NETEASE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package com.netease.mail.yanxuan.change.integration.item;
import java.util.List;
import java.util.Map;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.PostMapping;
import com.netease.mail.yanxuan.change.common.bean.AjaxResult;
import com.netease.yanxuan.missa.client.annotation.MissaClient;
/**
* @Author zcwang
* @Date 2022/11/30
*/
@Service
@MissaClient(serviceCode = "ic-basis", path = "/category")
public interface ItemCategoryRpcService {
/**
* 批量查询商品分类物理类目链
* @param query
* @return
*/
@PostMapping(value = "/phy/queryChainByIds", consumes = MediaType.APPLICATION_JSON_VALUE)
AjaxResult<Map<Long, List<SimplePhyCateGoryResultCo>>> queryCategoryChain(CommonIdsParamQuery query);
}
\ No newline at end of file
/**
* @(#)SimplePhyCateGoryCo.java, 2022/8/18.
* <p/>
* Copyright 2022 Netease, Inc. All rights reserved.
* NETEASE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package com.netease.mail.yanxuan.change.integration.item;
import lombok.Data;
/**
* @Author zcwang
* @Date 2022/8/18
*/
@Data
public class SimplePhyCateGoryResultCo {
/**
* 主键Id
*/
private Long id;
/**
* 类目名
*/
private String name;
/**
* number 上级类目id,首级类目为0
*/
private Long superId;
/**
* 类目描述
*/
private String description;
/**
* 类目级别 0-首级 1-中级 2-末级
*/
private Integer level;
/**
* 级别序号,由序号1从首级到末级依次递增
*/
private Integer levelNo;
/**
* 同级排序值,小的置顶
*/
private Integer rank;
}
\ No newline at end of file
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