个人周报填报增加父亲id、周数字段,修改add方法判断父亲是否存在并创建

This commit is contained in:
zty 2024-07-10 14:54:02 +08:00
parent a0e27bb63a
commit f5f551a7d8
3 changed files with 79 additions and 50 deletions

View File

@ -38,6 +38,7 @@ public class ProjectInitListener implements ExecutionListener {
ISystemUserLoginService systemUserLoginService; ISystemUserLoginService systemUserLoginService;
@Autowired @Autowired
ProjectQuarterlyEvaluationService projectQuarterlyEvaluationService; ProjectQuarterlyEvaluationService projectQuarterlyEvaluationService;
@Override @Override
@Transactional @Transactional
public void notify(DelegateExecution execution) throws Exception { public void notify(DelegateExecution execution) throws Exception {
@ -54,22 +55,22 @@ public class ProjectInitListener implements ExecutionListener {
//研究开发类/自主研发类没有填报直接结项 //研究开发类/自主研发类没有填报直接结项
String openRange = String.valueOf(ext.get("openRange")); String openRange = String.valueOf(ext.get("openRange"));
if("3".equals(openRange) || "7".equals(openRange)){ if ("3".equals(openRange) || "7".equals(openRange)) {
return; return;
} }
//根据部门批量添加部门周报填报 //根据部门批量添加部门周报填报
JSONArray depts = (JSONArray) ext.get("executeDepts"); // JSONArray depts = (JSONArray) ext.get("executeDepts");
ArrayList<ProjectWeekly> weeklyArrayList = new ArrayList<>(); ArrayList<ProjectWeekly> weeklyArrayList = new ArrayList<>();
if (!ObjectUtils.isEmpty(depts)) { // if (!ObjectUtils.isEmpty(depts)) {
depts.forEach(a -> { // 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");
projectWeekly.setCreatedAt(new Timestamp(System.currentTimeMillis())); // projectWeekly.setCreatedAt(new Timestamp(System.currentTimeMillis()));
projectWeekly.setDeptId(a.toString()); // projectWeekly.setDeptId(a.toString());
weeklyArrayList.add(projectWeekly); // weeklyArrayList.add(projectWeekly);
}); // });
//添加项目专员/负责人假数据方便周报填报页面查看所有暂时 //添加项目专员/负责人假数据方便周报填报页面查看所有暂时
String draftManId = String.valueOf(ext.get("draftManId")); String draftManId = String.valueOf(ext.get("draftManId"));
@ -77,7 +78,7 @@ public class ProjectInitListener implements ExecutionListener {
String projectManager = String.valueOf(projectManagerData.get(1)); String projectManager = String.valueOf(projectManagerData.get(1));
ArrayList<String> list = new ArrayList<>(); ArrayList<String> list = new ArrayList<>();
list.add(draftManId); list.add(draftManId);
if(!draftManId.equals(projectManager))list.add(projectManager);//避免角色是同一个人重复 if (!draftManId.equals(projectManager)) list.add(projectManager);//避免角色是同一个人重复
list.forEach(a -> { list.forEach(a -> {
ProjectWeekly projectWeekly = new ProjectWeekly(); ProjectWeekly projectWeekly = new ProjectWeekly();
projectWeekly.setProjectId(String.valueOf(projectInfo.getId())); projectWeekly.setProjectId(String.valueOf(projectInfo.getId()));
@ -99,7 +100,7 @@ public class ProjectInitListener implements ExecutionListener {
projectQuarterlyEvaluationService.insert(quarterlyEvaluation); projectQuarterlyEvaluationService.insert(quarterlyEvaluation);
} }
} }
} // }
} catch (Exception e) { } catch (Exception e) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
log.error("ProjectInitListener.notify", e); log.error("ProjectInitListener.notify", e);

View File

@ -21,6 +21,8 @@ import com.xqopen.kehui.project.service.IProjectWeeklyService;
import com.xqopen.kehui.util.ApiResponse; import com.xqopen.kehui.util.ApiResponse;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
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 org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -48,6 +50,7 @@ public class ProjectWeeklyController implements ProjectWeeklyApi {
*/ */
@Override @Override
@PostMapping(Api.PROJECT_WEEKLY_ADD) @PostMapping(Api.PROJECT_WEEKLY_ADD)
@Transactional
public String add(@RequestHeader("userId") Long userId, @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)) {
@ -59,14 +62,32 @@ public class ProjectWeeklyController implements ProjectWeeklyApi {
if (ObjectUtils.isEmpty(project)) return ApiResponse.fillFail("你输入的项目编号/名称不存在!"); if (ObjectUtils.isEmpty(project)) return ApiResponse.fillFail("你输入的项目编号/名称不存在!");
projectWeekly.setProjectId(String.valueOf(project.getId())); projectWeekly.setProjectId(String.valueOf(project.getId()));
// 用是否带id过来判断是编辑还是新增 //用是否带id过来判断是编辑还是新增
if (!StringUtils.isEmpty(projectWeekly.getId())) { if (!StringUtils.isEmpty(projectWeekly.getId())) {
projectWeekly.setUpdatedBy(String.valueOf(userId)); projectWeekly.setUpdatedBy(String.valueOf(userId));
projectWeekly.setUpdatedAt(new Timestamp(System.currentTimeMillis())); projectWeekly.setUpdatedAt(new Timestamp(System.currentTimeMillis()));
projectWeekly.setProjectId(String.valueOf(project.getId()));
if (projectWeeklyService.updateById(projectWeekly)) return ApiResponse.fillSuccess("保存成功!"); if (projectWeeklyService.updateById(projectWeekly)) return ApiResponse.fillSuccess("保存成功!");
} }
//新增个人周报填报时判断相应的部门周报是否存在否则添加
EntityWrapper<ProjectWeekly> weeklyEntityWrapper = new EntityWrapper<>();
weeklyEntityWrapper.eq("is_deleted", "0");
weeklyEntityWrapper.eq("week", projectWeekly.getWeek());
weeklyEntityWrapper.eq("weekly_type", "1");
weeklyEntityWrapper.eq("dept_id", projectWeekly.getDeptId());
weeklyEntityWrapper.eq("project_id", projectWeekly.getProjectId());
ProjectWeekly weekly = projectWeeklyService.selectOne(weeklyEntityWrapper);
if (ObjectUtils.isEmpty(weekly)) {
weekly = new ProjectWeekly();
weekly.setWeeklyType("1");
weekly.setWeek(projectWeekly.getWeek());
weekly.setProjectId(projectWeekly.getProjectId());
weekly.setDeptId(projectWeekly.getDeptId());
weekly.setCreatedAt(new Timestamp(System.currentTimeMillis()));
projectWeeklyService.insert(weekly);
projectWeekly.setParentId(weekly.getId());
}
//将人事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()));
@ -79,6 +100,8 @@ public class ProjectWeeklyController implements ProjectWeeklyApi {
return ApiResponse.fillFail("操作失败"); return ApiResponse.fillFail("操作失败");
} catch (Exception e) { } catch (Exception e) {
log.error("ProjectWeeklyController.add", e); log.error("ProjectWeeklyController.add", e);
//批量新增出现异常被捕获时手动回滚事务保证数据库一致
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
throw new XQException(ErrorCode.PROJECTINFO_EXCEPTION_ERROR, null); throw new XQException(ErrorCode.PROJECTINFO_EXCEPTION_ERROR, null);
} }
} }
@ -99,7 +122,7 @@ public class ProjectWeeklyController implements ProjectWeeklyApi {
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("is_deleted",false); wrapper.eq("is_deleted", false);
wrapper.eq("project_category", "init"); wrapper.eq("project_category", "init");
return projectInfoService.selectOne(wrapper); return projectInfoService.selectOne(wrapper);
} }
@ -123,28 +146,32 @@ public class ProjectWeeklyController implements ProjectWeeklyApi {
projectWeekly.setIsDeleted("0"); projectWeekly.setIsDeleted("0");
projectWeekly.setUserId(String.valueOf(userId)); projectWeekly.setUserId(String.valueOf(userId));
projectWeekly.setWeeklyType("0"); projectWeekly.setWeeklyType("0");
if(!StringUtils.isEmpty(projectWeeklyFindReq.getId()!=null))projectWeekly.setId(projectWeeklyFindReq.getId()); if (!StringUtils.isEmpty(projectWeeklyFindReq.getId() != null))
if(!StringUtils.isEmpty(projectWeeklyFindReq.getDeptId()!=null))projectWeekly.setDeptId(projectWeeklyFindReq.getDeptId()); projectWeekly.setId(projectWeeklyFindReq.getId());
if (!StringUtils.isEmpty(projectWeeklyFindReq.getDeptId() != null))
projectWeekly.setDeptId(projectWeeklyFindReq.getDeptId());
List<ProjectWeeklyDto> list = projectWeeklyService.getList(page, projectWeekly); List<ProjectWeeklyDto> list = projectWeeklyService.getList(page, projectWeekly);
//判断当前账号是否是项目专员/负责人 //判断当前账号是否是项目专员/负责人
//因为json里面存的是人事id通过账号找不到先把账号id转为人事id //因为json里面存的是人事id通过账号找不到先把账号id转为人事id
EntityWrapper<SystemUserLogin> userLoginEntityWrapper = new EntityWrapper<>(); EntityWrapper<SystemUserLogin> userLoginEntityWrapper = new EntityWrapper<>();
userLoginEntityWrapper.eq("id_",userId); userLoginEntityWrapper.eq("id_", userId);
SystemUserLogin systemUserLogin = systemUserLoginService.selectOne(userLoginEntityWrapper); SystemUserLogin systemUserLogin = systemUserLoginService.selectOne(userLoginEntityWrapper);
EntityWrapper<ProjectWeekly> weeklyEntityWrapper = new EntityWrapper<>(); EntityWrapper<ProjectWeekly> weeklyEntityWrapper = new EntityWrapper<>();
weeklyEntityWrapper.eq("user_id",String.valueOf(systemUserLogin.getUserinfoId())); weeklyEntityWrapper.eq("user_id", String.valueOf(systemUserLogin.getUserinfoId()));
weeklyEntityWrapper.eq("weekly_type","1"); weeklyEntityWrapper.eq("weekly_type", "1");
weeklyEntityWrapper.eq("dept_id",""); weeklyEntityWrapper.eq("dept_id", "");
weeklyEntityWrapper.eq("is_deleted","1"); weeklyEntityWrapper.eq("is_deleted", "1");
ProjectWeekly weekly = projectWeeklyService.selectOne(weeklyEntityWrapper); ProjectWeekly weekly = projectWeeklyService.selectOne(weeklyEntityWrapper);
if (!ObjectUtils.isEmpty(weekly)) {//如果查到确实是项目专员/负责人通过项目ID拿到所有人的专项填报 if (!ObjectUtils.isEmpty(weekly)) {//如果查到确实是项目专员/负责人通过项目ID拿到所有人的专项填报
ProjectWeekly projectWeekly1 = new ProjectWeekly(); ProjectWeekly projectWeekly1 = new ProjectWeekly();
projectWeekly1.setIsDeleted("0"); projectWeekly1.setIsDeleted("0");
projectWeekly1.setWeeklyType("0"); projectWeekly1.setWeeklyType("0");
projectWeekly1.setProjectId(weekly.getProjectId()); projectWeekly1.setProjectId(weekly.getProjectId());
if(!StringUtils.isEmpty(projectWeeklyFindReq.getId()!=null))projectWeekly1.setId(projectWeeklyFindReq.getId()); if (!StringUtils.isEmpty(projectWeeklyFindReq.getId() != null))
if(!StringUtils.isEmpty(projectWeeklyFindReq.getDeptId()!=null))projectWeekly.setDeptId(projectWeeklyFindReq.getDeptId()); projectWeekly1.setId(projectWeeklyFindReq.getId());
if (!StringUtils.isEmpty(projectWeeklyFindReq.getDeptId() != null))
projectWeekly.setDeptId(projectWeeklyFindReq.getDeptId());
list.addAll(projectWeeklyService.getList(page, projectWeekly1)); list.addAll(projectWeeklyService.getList(page, projectWeekly1));
} }

View File

@ -41,7 +41,8 @@ public class ProjectWeekly extends Model<ProjectWeekly> {
private java.sql.Timestamp updatedAt ; private java.sql.Timestamp updatedAt ;
@TableField("ext_") @TableField("ext_")
private JSONObject ext; private JSONObject ext;
private String parentId;
private String week;
@Override @Override
protected Serializable pkVal() { protected Serializable pkVal() {
return null; return null;