Commit d9758754 by “zcwang”

add: 创建工单

parent 2e0d6b0f
...@@ -11,6 +11,7 @@ import org.springframework.stereotype.Component; ...@@ -11,6 +11,7 @@ import org.springframework.stereotype.Component;
import org.springframework.util.Assert; import org.springframework.util.Assert;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import com.netease.mail.yanxuan.change.biz.config.AppConfig;
import com.netease.mail.yanxuan.change.biz.service.ChangeFlowService; import com.netease.mail.yanxuan.change.biz.service.ChangeFlowService;
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.common.enums.ChangeStatusEnum; import com.netease.mail.yanxuan.change.common.enums.ChangeStatusEnum;
...@@ -34,12 +35,13 @@ public class ChangeFlowBiz { ...@@ -34,12 +35,13 @@ public class ChangeFlowBiz {
@Autowired @Autowired
private ChangeFlowService changeFlowService; private ChangeFlowService changeFlowService;
public Boolean createAndSubmit(ChangeFlowCreateReq changeFlowCreateReq) { @Autowired
private AppConfig appConfig;
public Boolean createAndSubmit(ChangeFlowCreateReq changeFlowCreateReq) {
// 校验变更主体 // 校验变更主体
Boolean containsChangeSubject = ChangeSubjectEnum.getByType(changeFlowCreateReq.getChangeSubject()); Boolean containsChangeSubject = ChangeSubjectEnum.getByType(changeFlowCreateReq.getChangeSubject());
Assert.isTrue(containsChangeSubject, "变更主体不存在"); Assert.isTrue(containsChangeSubject, "变更主体不存在");
// 检验是否需要资料 // 检验是否需要资料
ChangeConfig changeConfig = changeConfigService.queryChangeConfig(changeFlowCreateReq.getSonChangeClassId()); ChangeConfig changeConfig = changeConfigService.queryChangeConfig(changeFlowCreateReq.getSonChangeClassId());
Assert.notNull(changeConfig, "二级变更类型不存在"); Assert.notNull(changeConfig, "二级变更类型不存在");
...@@ -47,12 +49,18 @@ public class ChangeFlowBiz { ...@@ -47,12 +49,18 @@ public class ChangeFlowBiz {
if (NeedFileEnum.NEED.getStatus().equals(needFile)) { if (NeedFileEnum.NEED.getStatus().equals(needFile)) {
Assert.notEmpty(changeFlowCreateReq.getFiles(), "必须上传资料"); Assert.notEmpty(changeFlowCreateReq.getFiles(), "必须上传资料");
} }
// 变更行动项不可为空,最多20项
Assert.isTrue(changeFlowCreateReq.getChangeExecProject().size() <= appConfig.getChangeExecLimit(),
"变更行动方案配置数超限");
// 结束时间不可晚于第二天定时任务执行时间
Long tomorrowSpecificTime = DateUtils.getTomorrowSpecificTime("09:00:00");
Assert.isTrue(changeFlowCreateReq.getChangeConfirmResultTime() >= tomorrowSpecificTime, "时间不可晚于下次执行时间");
// 创建并提交工作流 // 创建并提交工作流
// 保存工单数据 // 保存工单数据
ChangeRecord record = buildRecord(changeFlowCreateReq); ChangeRecord changeRecord = buildRecord(changeFlowCreateReq);
changeFlowService.saveRecord(record); changeFlowService.saveRecord(changeRecord);
return null; return null;
} }
...@@ -66,8 +74,7 @@ public class ChangeFlowBiz { ...@@ -66,8 +74,7 @@ public class ChangeFlowBiz {
changeRecord.setParentChangeClassId(changeFlowCreateReq.getParentChangeClassId()); changeRecord.setParentChangeClassId(changeFlowCreateReq.getParentChangeClassId());
changeRecord.setSonChangeClassId(changeFlowCreateReq.getSonChangeClassId()); changeRecord.setSonChangeClassId(changeFlowCreateReq.getSonChangeClassId());
changeRecord.setChangeLevel(changeFlowCreateReq.getChangeLevel()); changeRecord.setChangeLevel(changeFlowCreateReq.getChangeLevel());
// todo: 变更负责人 changeRecord.setChangeCommander(changeFlowCreateReq.getChangeCommander());
changeRecord.setChangeCommander("");
changeRecord.setChangeItem(changeFlowCreateReq.getChangeItems()); changeRecord.setChangeItem(changeFlowCreateReq.getChangeItems());
changeRecord.setChangeSupplier(changeFlowCreateReq.getChangeSupplier()); changeRecord.setChangeSupplier(changeFlowCreateReq.getChangeSupplier());
changeRecord.setChangeReason(changeFlowCreateReq.getChangeReason()); changeRecord.setChangeReason(changeFlowCreateReq.getChangeReason());
...@@ -76,9 +83,7 @@ public class ChangeFlowBiz { ...@@ -76,9 +83,7 @@ public class ChangeFlowBiz {
changeRecord.setChangeProfit(changeFlowCreateReq.getChangeProfit()); changeRecord.setChangeProfit(changeFlowCreateReq.getChangeProfit());
changeRecord.setChangeProfitDesc(changeFlowCreateReq.getChangeProfitDesc()); changeRecord.setChangeProfitDesc(changeFlowCreateReq.getChangeProfitDesc());
changeRecord.setChangeConfirmResultTime(changeFlowCreateReq.getChangeConfirmResultTime()); changeRecord.setChangeConfirmResultTime(changeFlowCreateReq.getChangeConfirmResultTime());
// todo: 工单状态
changeRecord.setState(ChangeStatusEnum.IN.getStatus()); changeRecord.setState(ChangeStatusEnum.IN.getStatus());
// todo:工单是否被取消
changeRecord.setIsCancel(0); changeRecord.setIsCancel(0);
// 变更结论 // 变更结论
changeRecord.setChangeResult(1); changeRecord.setChangeResult(1);
...@@ -91,4 +96,4 @@ public class ChangeFlowBiz { ...@@ -91,4 +96,4 @@ public class ChangeFlowBiz {
changeRecord.setUpdateTime(DateUtils.getCurrentTime()); changeRecord.setUpdateTime(DateUtils.getCurrentTime());
return changeRecord; return changeRecord;
} }
} }
\ No newline at end of file
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
*/ */
package com.netease.mail.yanxuan.change.biz.config; package com.netease.mail.yanxuan.change.biz.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import com.ctrip.framework.apollo.spring.annotation.EnableAutoUpdateApolloConfig; import com.ctrip.framework.apollo.spring.annotation.EnableAutoUpdateApolloConfig;
...@@ -24,4 +25,7 @@ public class AppConfig { ...@@ -24,4 +25,7 @@ public class AppConfig {
@ValueMapping("${titleConfig:null}") @ValueMapping("${titleConfig:null}")
private TitleConfig titleConfig; private TitleConfig titleConfig;
@Value("${changeExecLimit:20}")
private Integer changeExecLimit;
} }
\ No newline at end of file
...@@ -68,6 +68,16 @@ public class ChangeRecord { ...@@ -68,6 +68,16 @@ public class ChangeRecord {
private String changeCommander; private String changeCommander;
/** /**
* 变更负责部门名
*/
private String changeDepartment;
/**
* 参与变更行动部门,json格式,查询用
*/
private String participateChangeExecDepartment;
/**
* 变更商品(变更主体为商品时有效) * 变更商品(变更主体为商品时有效)
*/ */
private String changeItem; private String changeItem;
......
...@@ -8,8 +8,8 @@ package com.netease.mail.yanxuan.change.dal.meta.model.req; ...@@ -8,8 +8,8 @@ package com.netease.mail.yanxuan.change.dal.meta.model.req;
import java.util.List; import java.util.List;
import javax.validation.constraints.Max;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size; import javax.validation.constraints.Size;
...@@ -47,6 +47,16 @@ public class ChangeFlowCreateReq { ...@@ -47,6 +47,16 @@ public class ChangeFlowCreateReq {
private Integer changeLevel; private Integer changeLevel;
/** /**
* 变更负责人
*/
private String changeCommander;
/**
* 变更负责部门名
*/
private String changeDepartment;
/**
* 变更商品列表 * 变更商品列表
*/ */
private String changeItems; private String changeItems;
...@@ -102,6 +112,7 @@ public class ChangeFlowCreateReq { ...@@ -102,6 +112,7 @@ public class ChangeFlowCreateReq {
/** /**
* 行动项 * 行动项
*/ */
@NotEmpty(message = "变更行动项不可为空")
private List<ChangeExecConfigReq> changeExecProject; private List<ChangeExecConfigReq> changeExecProject;
/** /**
......
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