1.项目立项结束监控器,流程结束后增加部门周报数据改为多部门添加
2.项目周报填报实体类增加部门ID 3.周报填报查询增加通过id查询个人周报(权限指定角色查询所有未实现) 4.新增方法增加根据id判断编辑,新增通过项目编号及名称查找项目是否存在,并对返回信息进行提示
This commit is contained in:
parent
5db6aa6e9d
commit
1bc6ab8282
@ -1,6 +1,10 @@
|
|||||||
package com.xqopen.kehui.flows.util;
|
package com.xqopen.kehui.flows.util;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
||||||
|
import com.xqopen.kehui.exception.ErrorCode;
|
||||||
|
import com.xqopen.kehui.exception.XQException;
|
||||||
import com.xqopen.kehui.flows.service.IFlowsService;
|
import com.xqopen.kehui.flows.service.IFlowsService;
|
||||||
import com.xqopen.kehui.project.entity.ProjectInfo;
|
import com.xqopen.kehui.project.entity.ProjectInfo;
|
||||||
import com.xqopen.kehui.project.entity.ProjectWeekly;
|
import com.xqopen.kehui.project.entity.ProjectWeekly;
|
||||||
@ -11,8 +15,12 @@ import org.activiti.engine.delegate.DelegateExecution;
|
|||||||
import org.activiti.engine.delegate.ExecutionListener;
|
import org.activiti.engine.delegate.ExecutionListener;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
||||||
import org.springframework.util.ObjectUtils;
|
import org.springframework.util.ObjectUtils;
|
||||||
import org.springframework.util.StringUtils;
|
|
||||||
|
import java.sql.Timestamp;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
@Component("weekly")
|
@Component("weekly")
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@ -23,7 +31,9 @@ public class ProjectInitListener implements ExecutionListener {
|
|||||||
IFlowsService flowsService;
|
IFlowsService flowsService;
|
||||||
@Autowired
|
@Autowired
|
||||||
IProjectInfoService projectInfoService;
|
IProjectInfoService projectInfoService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional
|
||||||
public void notify(DelegateExecution execution) throws Exception {
|
public void notify(DelegateExecution execution) throws Exception {
|
||||||
try {
|
try {
|
||||||
//流程结束后,新增部门周报填报
|
//流程结束后,新增部门周报填报
|
||||||
@ -31,20 +41,36 @@ public class ProjectInitListener implements ExecutionListener {
|
|||||||
if ("end".equals(eventName)) {
|
if ("end".equals(eventName)) {
|
||||||
String businessKey = execution.getProcessBusinessKey();
|
String businessKey = execution.getProcessBusinessKey();
|
||||||
EntityWrapper<ProjectInfo> wrapper = new EntityWrapper<>();
|
EntityWrapper<ProjectInfo> wrapper = new EntityWrapper<>();
|
||||||
wrapper.eq("id_",Long.parseLong(businessKey));
|
wrapper.eq("id_", Long.parseLong(businessKey));
|
||||||
ProjectInfo projectInfo = projectInfoService.selectOne(wrapper);
|
ProjectInfo projectInfo = projectInfoService.selectOne(wrapper);
|
||||||
System.out.println(projectInfo);
|
if (!ObjectUtils.isEmpty(projectInfo)) {
|
||||||
if(!ObjectUtils.isEmpty(projectInfo)){
|
JSONObject ext = projectInfo.getExt();
|
||||||
if(!StringUtils.isEmpty(projectInfo.getProjectName())&& !StringUtils.isEmpty(projectInfo.getProjectNo())){
|
JSONArray depts= (JSONArray) ext.get("executeDepts");
|
||||||
|
ArrayList<ProjectWeekly> weeklyArrayList = new ArrayList<>();
|
||||||
|
if(!ObjectUtils.isEmpty(depts)){
|
||||||
|
depts.forEach(a -> {
|
||||||
ProjectWeekly projectWeekly = new ProjectWeekly();
|
ProjectWeekly projectWeekly = new ProjectWeekly();
|
||||||
projectWeekly.setProjectId(String.valueOf(projectInfo.getId()));
|
projectWeekly.setProjectId(String.valueOf(projectInfo.getId()));
|
||||||
projectWeekly.setWeeklyType("1");
|
projectWeekly.setWeeklyType("1");
|
||||||
projectWeeklyService.insert(projectWeekly);
|
projectWeekly.setCreatedAt(new Timestamp(System.currentTimeMillis()));
|
||||||
|
projectWeekly.setDeptId(a.toString());
|
||||||
|
weeklyArrayList.add(projectWeekly);
|
||||||
|
});
|
||||||
|
System.out.println(weeklyArrayList);
|
||||||
|
projectWeeklyService.insertBatch(weeklyArrayList);
|
||||||
|
}
|
||||||
|
// if(!StringUtils.isEmpty(projectInfo.getProjectName())&& !StringUtils.isEmpty(projectInfo.getProjectNo())){
|
||||||
|
// ProjectWeekly projectWeekly = new ProjectWeekly();
|
||||||
|
// projectWeekly.setProjectId(String.valueOf(projectInfo.getId()));
|
||||||
|
// projectWeekly.setWeeklyType("1");
|
||||||
|
// projectWeeklyService.insert(projectWeekly);
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} catch (Exception e) {
|
||||||
}catch (Exception e){
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||||
log.error("ProjectInitListener.notify", e);
|
log.error("ProjectInitListener.notify", e);
|
||||||
|
throw new XQException(ErrorCode.PROJECTINFO_EXCEPTION_ERROR, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -48,10 +48,25 @@ public class ProjectWeeklyController implements ProjectWeeklyApi {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@PostMapping(Api.PROJECT_WEEKLY_ADD)
|
@PostMapping(Api.PROJECT_WEEKLY_ADD)
|
||||||
public String add(@RequestBody ProjectWeeklyAddReq projectWeeklyAddReq) throws XQException {
|
public String add(@RequestHeader("userId") Long userId, @RequestBody ProjectWeeklyAddReq projectWeeklyAddReq) throws XQException {
|
||||||
try {
|
try {
|
||||||
if (!ObjectUtils.isEmpty(projectWeeklyAddReq)) {
|
if (!ObjectUtils.isEmpty(projectWeeklyAddReq)) {
|
||||||
ProjectWeekly projectWeekly = projectWeeklyAddReq.getProjectWeekly();
|
ProjectWeekly projectWeekly = projectWeeklyAddReq.getProjectWeekly();
|
||||||
|
if (!ObjectUtils.isEmpty(projectWeekly)) verification(projectWeekly); //校验
|
||||||
|
|
||||||
|
//先通过编号、名称查到向目标id
|
||||||
|
ProjectInfo project = getProject(projectWeeklyAddReq, projectWeekly);
|
||||||
|
if (ObjectUtils.isEmpty(project)) return ApiResponse.fillFail("你输入的项目编号/名称不存在!");
|
||||||
|
projectWeekly.setProjectId(String.valueOf(project.getId()));
|
||||||
|
|
||||||
|
// 用是否带id过来判断是编辑还是新增
|
||||||
|
if (!StringUtils.isEmpty(projectWeekly.getId())) {
|
||||||
|
projectWeekly.setUpdatedBy(String.valueOf(userId));
|
||||||
|
projectWeekly.setUpdatedAt(new Timestamp(System.currentTimeMillis()));
|
||||||
|
projectWeekly.setProjectId(String.valueOf(project.getId()));
|
||||||
|
if (projectWeeklyService.updateById(projectWeekly)) return ApiResponse.fillSuccess("保存成功!");
|
||||||
|
}
|
||||||
|
|
||||||
//将人事id转为账号id
|
//将人事id转为账号id
|
||||||
EntityWrapper<SystemUserLogin> userLoginEntityWrapper = new EntityWrapper<>();
|
EntityWrapper<SystemUserLogin> userLoginEntityWrapper = new EntityWrapper<>();
|
||||||
userLoginEntityWrapper.eq("userinfo_id", Long.parseLong(projectWeekly.getUserId()));
|
userLoginEntityWrapper.eq("userinfo_id", Long.parseLong(projectWeekly.getUserId()));
|
||||||
@ -59,32 +74,35 @@ public class ProjectWeeklyController implements ProjectWeeklyApi {
|
|||||||
projectWeekly.setUserId(String.valueOf(systemUserLogin.getId()));
|
projectWeekly.setUserId(String.valueOf(systemUserLogin.getId()));
|
||||||
projectWeekly.setCreatedBy(String.valueOf(systemUserLogin.getId()));
|
projectWeekly.setCreatedBy(String.valueOf(systemUserLogin.getId()));
|
||||||
projectWeekly.setCreatedAt(new Timestamp(System.currentTimeMillis()));
|
projectWeekly.setCreatedAt(new Timestamp(System.currentTimeMillis()));
|
||||||
|
if (projectWeeklyService.insert(projectWeekly)) return ApiResponse.fillSuccess("新增成功!");
|
||||||
|
|
||||||
if (!ObjectUtils.isEmpty(projectWeekly)) {
|
|
||||||
verification(projectWeekly); //校验
|
|
||||||
}
|
}
|
||||||
if (!ObjectUtils.isEmpty(projectWeeklyAddReq.getExt())) {
|
return ApiResponse.fillFail("操作失败");
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("ProjectWeeklyController.add", e);
|
||||||
|
throw new XQException(ErrorCode.PROJECTINFO_EXCEPTION_ERROR, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联项目表,判断项目是否真实存在
|
||||||
|
*
|
||||||
|
* @param projectWeeklyAddReq
|
||||||
|
* @param projectWeekly
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private ProjectInfo getProject(ProjectWeeklyAddReq projectWeeklyAddReq, ProjectWeekly projectWeekly) {
|
||||||
JSONObject ext = projectWeeklyAddReq.getExt();
|
JSONObject ext = projectWeeklyAddReq.getExt();
|
||||||
|
if (!ObjectUtils.isEmpty(ext)) {
|
||||||
|
projectWeekly.setExt(ext);
|
||||||
EntityWrapper<ProjectInfo> wrapper = new EntityWrapper<>();
|
EntityWrapper<ProjectInfo> wrapper = new EntityWrapper<>();
|
||||||
String projectNo = ext.get("projectNo").toString();
|
String projectNo = ext.get("projectNo").toString();
|
||||||
String projectName = ext.get("projectName").toString();
|
String projectName = ext.get("projectName").toString();
|
||||||
if (!StringUtils.isEmpty(projectNo)) wrapper.eq("project_no", projectNo);
|
if (!StringUtils.isEmpty(projectNo)) wrapper.eq("project_no", projectNo);
|
||||||
if (!StringUtils.isEmpty(projectName)) wrapper.eq("project_name", projectName);
|
if (!StringUtils.isEmpty(projectName)) wrapper.eq("project_name", projectName);
|
||||||
wrapper.eq("project_category", "init");
|
wrapper.eq("project_category", "init");
|
||||||
ProjectInfo projectInfo = projectInfoService.selectOne(wrapper);
|
return projectInfoService.selectOne(wrapper);
|
||||||
if (!ObjectUtils.isEmpty(projectInfo)) { //通过项目编号、名称查询项目表id
|
|
||||||
projectWeekly.setProjectId(String.valueOf(projectInfo.getId()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
boolean b = projectWeeklyService.insert(projectWeekly);
|
|
||||||
return ApiResponse.fillSuccess("添加成功");
|
|
||||||
}
|
|
||||||
return ApiResponse.fillFail(new String("添加失败"));
|
|
||||||
} catch (Exception e) {
|
|
||||||
log.error("ProjectWeeklyController.add", e);
|
|
||||||
throw new XQException(ErrorCode.PROJECTINFO_EXCEPTION_ERROR, null);
|
|
||||||
}
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -92,7 +110,7 @@ public class ProjectWeeklyController implements ProjectWeeklyApi {
|
|||||||
public String list(@RequestHeader("userId") Long userId, @RequestBody ProjectWeeklyFindReq projectWeeklyFindReq) throws XQException {
|
public String list(@RequestHeader("userId") Long userId, @RequestBody ProjectWeeklyFindReq projectWeeklyFindReq) throws XQException {
|
||||||
try {
|
try {
|
||||||
if (!ObjectUtils.isEmpty(projectWeeklyFindReq)) {
|
if (!ObjectUtils.isEmpty(projectWeeklyFindReq)) {
|
||||||
if(!ObjectUtils.isEmpty(userId)) projectWeeklyFindReq.setUserId(String.valueOf(userId));
|
if (!ObjectUtils.isEmpty(userId)) projectWeeklyFindReq.setUserId(String.valueOf(userId));
|
||||||
if (projectWeeklyFindReq.getPageNo() == null || projectWeeklyFindReq.getPageNo() == 0) {
|
if (projectWeeklyFindReq.getPageNo() == null || projectWeeklyFindReq.getPageNo() == 0) {
|
||||||
projectWeeklyFindReq.setPageNo(1);
|
projectWeeklyFindReq.setPageNo(1);
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,7 @@ public interface ProjectWeeklyApi {
|
|||||||
@ApiImplicitParam(name = "token", value = "登录标识符", required = true, paramType = "header", dataType = "String"),
|
@ApiImplicitParam(name = "token", value = "登录标识符", required = true, paramType = "header", dataType = "String"),
|
||||||
@ApiImplicitParam(name = "userId", value = "用户id", required = true, paramType = "header", dataType = "Long"),
|
@ApiImplicitParam(name = "userId", value = "用户id", required = true, paramType = "header", dataType = "Long"),
|
||||||
})
|
})
|
||||||
String add(ProjectWeeklyAddReq projectWeeklyAddReq) throws XQException;
|
String add(Long userId,ProjectWeeklyAddReq projectWeeklyAddReq) throws XQException;
|
||||||
@ApiOperation(value = "周报列表", notes = "周报列表", response = ApiResponse.class)
|
@ApiOperation(value = "周报列表", notes = "周报列表", response = ApiResponse.class)
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(name = "token", value = "登录标识符", required = true, paramType = "header", dataType = "String"),
|
@ApiImplicitParam(name = "token", value = "登录标识符", required = true, paramType = "header", dataType = "String"),
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
package com.xqopen.kehui.project.entity;
|
package com.xqopen.kehui.project.entity;
|
||||||
|
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.activerecord.Model;
|
import com.baomidou.mybatisplus.activerecord.Model;
|
||||||
|
import com.baomidou.mybatisplus.annotations.TableField;
|
||||||
import com.baomidou.mybatisplus.annotations.TableId;
|
import com.baomidou.mybatisplus.annotations.TableId;
|
||||||
import com.baomidou.mybatisplus.annotations.TableName;
|
import com.baomidou.mybatisplus.annotations.TableName;
|
||||||
import com.baomidou.mybatisplus.enums.IdType;
|
import com.baomidou.mybatisplus.enums.IdType;
|
||||||
@ -21,6 +23,7 @@ public class ProjectWeekly extends Model<ProjectWeekly> {
|
|||||||
private String id;
|
private String id;
|
||||||
private String projectId;
|
private String projectId;
|
||||||
private String userId;
|
private String userId;
|
||||||
|
private String deptId;
|
||||||
@ApiModelProperty("工作量")
|
@ApiModelProperty("工作量")
|
||||||
private String workload;
|
private String workload;
|
||||||
@ApiModelProperty("本周进展")
|
@ApiModelProperty("本周进展")
|
||||||
@ -36,6 +39,8 @@ public class ProjectWeekly extends Model<ProjectWeekly> {
|
|||||||
private java.sql.Timestamp createdAt ;
|
private java.sql.Timestamp createdAt ;
|
||||||
private String updatedBy ;
|
private String updatedBy ;
|
||||||
private java.sql.Timestamp updatedAt ;
|
private java.sql.Timestamp updatedAt ;
|
||||||
|
@TableField("ext_")
|
||||||
|
private JSONObject ext;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Serializable pkVal() {
|
protected Serializable pkVal() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user