新增一个个人周报添加界面
This commit is contained in:
parent
8f5e6d7aca
commit
32ba4091f3
@ -380,6 +380,7 @@ public class Api {
|
||||
public static final String PROJECT_WEEKLY = PROJECT_PREFIX + "/weekly";
|
||||
public static final String PROJECT_WEEKLYBYID = PROJECT_PREFIX + "/weeklyById";
|
||||
public static final String PROJECT_WEEKLY_ADD = PROJECT_WEEKLY + "/add";
|
||||
public static final String PROJECT_WEEKLY_ADDList = PROJECT_WEEKLY + "/addList";
|
||||
public static final String PROJECT_WEEKLY_BUDGET = PROJECT_PREFIX + "/weekly/budget";
|
||||
public static final String PROJECT_WEEKLY_BUDGET_ADD = PROJECT_WEEKLY_BUDGET + "/add";
|
||||
public static final String PROJECT_WEEKLY_BUDGET_DEL = PROJECT_WEEKLY_BUDGET + "/del";
|
||||
|
@ -11,13 +11,8 @@ import com.xqopen.kehui.common.service.ISystemUserLoginService;
|
||||
import com.xqopen.kehui.exception.ErrorCode;
|
||||
import com.xqopen.kehui.exception.XQException;
|
||||
import com.xqopen.kehui.project.api.ProjectWeeklyApi;
|
||||
import com.xqopen.kehui.project.dto.ProjectWeeklyAddReq;
|
||||
import com.xqopen.kehui.project.dto.ProjectWeeklyDto;
|
||||
import com.xqopen.kehui.project.dto.ProjectWeeklyFindReq;
|
||||
import com.xqopen.kehui.project.dto.ProjectWeeklyListResp;
|
||||
import com.xqopen.kehui.project.entity.ProjectBudgetImplement;
|
||||
import com.xqopen.kehui.project.entity.ProjectInfo;
|
||||
import com.xqopen.kehui.project.entity.ProjectWeekly;
|
||||
import com.xqopen.kehui.project.dto.*;
|
||||
import com.xqopen.kehui.project.entity.*;
|
||||
import com.xqopen.kehui.project.service.IProjectBudgetImplementService;
|
||||
import com.xqopen.kehui.project.service.IProjectInfoService;
|
||||
import com.xqopen.kehui.project.service.IProjectWeeklyService;
|
||||
@ -251,4 +246,94 @@ public class ProjectWeeklyController implements ProjectWeeklyApi {
|
||||
throw new XQException(ErrorCode.PROJECTINFO_PROJECTSTEP_EMPTY_ERROR, null);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量新增周报填报
|
||||
*
|
||||
* @param initDto
|
||||
* @return
|
||||
* @throws XQException
|
||||
*/
|
||||
@Override
|
||||
@PostMapping(Api.PROJECT_WEEKLY_ADDList)
|
||||
@Transactional
|
||||
public String addWeek(@RequestHeader("userId") Long userId, @RequestBody ProjectWeeklyInitDto initDto) throws XQException {
|
||||
try {
|
||||
if (!ObjectUtils.isEmpty(initDto)){
|
||||
List<ProjectWeeklyList> membersList = initDto.getMembersList();
|
||||
ProjectInfoReq projectInfoReq = initDto.getProjectInfoReq();
|
||||
// 根据编号,名称查询是否存在
|
||||
for (ProjectWeeklyList list : membersList) {
|
||||
String projectName = list.getProjectName();
|
||||
String projectNo = list.getProjectNo();
|
||||
EntityWrapper<ProjectInfo> wrapper = new EntityWrapper<>();
|
||||
if (!StringUtils.isEmpty(projectNo)) wrapper.eq("project_no", projectNo);
|
||||
if (!StringUtils.isEmpty(projectName)) wrapper.eq("project_name", projectName);
|
||||
wrapper.eq("is_deleted", false);
|
||||
wrapper.eq("project_category", "init");
|
||||
ProjectInfo project = projectInfoService.selectOne(wrapper);
|
||||
|
||||
if (ObjectUtils.isEmpty(project)) return ApiResponse.fillFail("你输入的项目编号/名称不存在!");
|
||||
ProjectWeekly projectWeekly = new ProjectWeekly();
|
||||
projectWeekly.setProjectId(String.valueOf(project.getId()));
|
||||
//将项目专员和项目负责人id 存入Weekly中
|
||||
JSONObject extInfo = project.getExt();
|
||||
JSONArray projectManagerData = extInfo.getJSONArray("projectManagerData");
|
||||
JSONArray projectAdmin = extInfo.getJSONArray("projectAdmin");
|
||||
JSONObject ext = projectWeekly.getExt();
|
||||
ext.put("projectManagerData",projectManagerData.getString(projectManagerData.toArray().length -1 ));
|
||||
ext.put("projectAdmin",projectAdmin.getString(projectAdmin.toArray().length -1 ));
|
||||
ext.put("draftManId",extInfo.getString("draftManId"));
|
||||
|
||||
//新增个人周报填报时,判断相应的部门周报是否存在,否则添加
|
||||
EntityWrapper<ProjectWeekly> weeklyEntityWrapper = new EntityWrapper<>();
|
||||
weeklyEntityWrapper.eq("is_deleted", "0");
|
||||
weeklyEntityWrapper.eq("week", list.getWeek());
|
||||
weeklyEntityWrapper.eq("weekly_type", "1");
|
||||
weeklyEntityWrapper.eq("dept_id", projectInfoReq.getExt().getJSONArray("executeDepts").getString(0));
|
||||
weeklyEntityWrapper.eq("project_id", projectWeekly.getProjectId());
|
||||
ProjectWeekly weekly = projectWeeklyService.selectOne(weeklyEntityWrapper);
|
||||
if (ObjectUtils.isEmpty(weekly)) {
|
||||
weekly = new ProjectWeekly();
|
||||
weekly.setWeeklyType("1");
|
||||
weekly.setExt(projectWeekly.getExt());
|
||||
weekly.setWeek(list.getWeek());
|
||||
weekly.setProjectId(projectWeekly.getProjectId());
|
||||
weekly.setDeptId(projectInfoReq.getExt().getJSONArray("executeDepts").getString(0));
|
||||
weekly.setCreatedAt(new Timestamp(System.currentTimeMillis()));
|
||||
projectWeeklyService.insert(weekly);
|
||||
projectWeekly.setParentId(weekly.getId());
|
||||
// 添加部门周报时判断项目类型 若为平台专项 则添加项目预算
|
||||
if (project.getExt().get("openRange").equals(5)){
|
||||
ProjectBudgetImplement budgetImplement = new ProjectBudgetImplement();
|
||||
budgetImplement.setWeek(list.getWeek());
|
||||
budgetImplement.setProjectId(projectWeekly.getProjectId());
|
||||
budgetImplement.setBudget(project.getExt().get("budget").toString());
|
||||
budgetImplement.setCreatedAt(new Timestamp(System.currentTimeMillis()));
|
||||
budgetImplementService.insert(budgetImplement);
|
||||
}
|
||||
}else {
|
||||
// 部门周报存在时,直接给个人周报加上parentId
|
||||
projectWeekly.setParentId(weekly.getId());
|
||||
}
|
||||
// 添加个人周报
|
||||
projectWeekly.setUserId(projectInfoReq.getExt().get("draftManId").toString());
|
||||
projectWeekly.setThisWeek(list.getThisWeek());
|
||||
projectWeekly.setNextWeek(list.getNextWeek());
|
||||
projectWeekly.setCreatedBy(projectInfoReq.getExt().get("draftManId").toString());
|
||||
projectWeekly.setCreatedAt(new Timestamp(System.currentTimeMillis()));
|
||||
projectWeeklyService.insert(projectWeekly);
|
||||
}
|
||||
return ApiResponse.fillSuccess("新增成功!");
|
||||
}
|
||||
return ApiResponse.fillFail("操作失败");
|
||||
} catch (Exception e) {
|
||||
log.error("ProjectWeeklyController.add", e);
|
||||
//批量新增出现异常被捕获时,手动回滚事务,保证数据库一致
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
throw new XQException(ErrorCode.PROJECTINFO_EXCEPTION_ERROR, null);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -1,8 +1,10 @@
|
||||
package com.xqopen.kehui.project.api;
|
||||
|
||||
import com.xqopen.kehui.exception.XQException;
|
||||
import com.xqopen.kehui.project.dto.ProjectInfoInitDto;
|
||||
import com.xqopen.kehui.project.dto.ProjectWeeklyAddReq;
|
||||
import com.xqopen.kehui.project.dto.ProjectWeeklyFindReq;
|
||||
import com.xqopen.kehui.project.dto.ProjectWeeklyInitDto;
|
||||
import com.xqopen.kehui.util.ApiResponse;
|
||||
import com.xqopen.kehui.util.Constants;
|
||||
import io.swagger.annotations.Api;
|
||||
@ -25,4 +27,10 @@ public interface ProjectWeeklyApi {
|
||||
})
|
||||
String list(Long userId, ProjectWeeklyFindReq projectWeeklyFindReq) throws XQException;
|
||||
|
||||
@ApiOperation(value = "新增个人周报填报", notes = "新增个人周报填报", response = ApiResponse.class)
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "token", value = "登录标识符", required = true, paramType = "header", dataType = "String"),
|
||||
@ApiImplicitParam(name = "userId", value = "用户id", required = true, paramType = "header", dataType = "Long"),
|
||||
})
|
||||
String addWeek(Long userId, ProjectWeeklyInitDto initDto) throws XQException;
|
||||
}
|
||||
|
@ -0,0 +1,15 @@
|
||||
package com.xqopen.kehui.project.dto;
|
||||
|
||||
import com.xqopen.kehui.project.entity.ProjectAssessmentIndicators;
|
||||
import com.xqopen.kehui.project.entity.ProjectWeekly;
|
||||
import com.xqopen.kehui.project.entity.ProjectWeeklyList;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Data
|
||||
public class ProjectWeeklyInitDto {
|
||||
ProjectInfoReq projectInfoReq;
|
||||
List<ProjectWeeklyList> membersList;
|
||||
}
|
@ -0,0 +1,47 @@
|
||||
package com.xqopen.kehui.project.entity;
|
||||
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.activerecord.Model;
|
||||
import com.baomidou.mybatisplus.annotations.TableField;
|
||||
import com.baomidou.mybatisplus.annotations.TableId;
|
||||
import com.baomidou.mybatisplus.annotations.TableName;
|
||||
import com.baomidou.mybatisplus.enums.IdType;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/***
|
||||
* 周报填报
|
||||
*/
|
||||
@Data
|
||||
@TableName("project_weekly")
|
||||
public class ProjectWeeklyList extends Model<ProjectWeeklyList> {
|
||||
private static final long serialVersionUID = 1L;
|
||||
@TableId(value = "id_", type = IdType.AUTO)
|
||||
private String id;
|
||||
private String projectName;
|
||||
private String projectNo;
|
||||
@ApiModelProperty("工作量")
|
||||
private String workload;
|
||||
@ApiModelProperty("本周进展")
|
||||
private String thisWeek;
|
||||
@ApiModelProperty("下周计划")
|
||||
private String nextWeek;
|
||||
@ApiModelProperty("任务是否完成")
|
||||
private String isComplete;
|
||||
private String createdBy ;
|
||||
private java.sql.Timestamp createdAt ;
|
||||
private String updatedBy ;
|
||||
private java.sql.Timestamp updatedAt ;
|
||||
@TableField("ext_")
|
||||
private JSONObject ext;
|
||||
private String parentId;
|
||||
private String week;
|
||||
|
||||
@Override
|
||||
protected Serializable pkVal() {
|
||||
return null;
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user