Browse Source

20220308修改任务查询时插件展示信息异常

ptos
zy_Java 3 years ago
parent
commit
b8d3661d73
  1. 2
      src/main/java/com/ccsens/ptccsens/api/DeliverController.java
  2. 5
      src/main/java/com/ccsens/ptccsens/aspect/MustLoginAspect.java
  3. 10
      src/main/java/com/ccsens/ptccsens/bean/vo/DeliverVo.java
  4. 5
      src/main/java/com/ccsens/ptccsens/persist/dao/ProTaskPluginDao.java
  5. 8
      src/main/java/com/ccsens/ptccsens/service/DeliverService.java
  6. 26
      src/main/java/com/ccsens/ptccsens/service/ExportService.java
  7. 91
      src/main/java/com/ccsens/ptccsens/service/TallService.java
  8. 4
      src/main/java/com/ccsens/ptccsens/util/BasicsCodeError.java
  9. 33
      src/main/resources/mapper_dao/ProTaskPluginDao.xml
  10. 2
      src/main/resources/mybatis/mybatis-config.xml

2
src/main/java/com/ccsens/ptccsens/api/DeliverController.java

@ -33,7 +33,7 @@ public class DeliverController {
@Resource
private IDeliverService deliverService;
@MustLogin
// @MustLogin
@ApiOperation(value = "查询所有成员", notes = "")
@RequestMapping(value = "/queryChecker", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<DeliverVo.Checker>> queryChecker(@ApiParam @Validated @RequestBody QueryDto<DeliverDto.QueryChecker> params) throws Exception{

5
src/main/java/com/ccsens/ptccsens/aspect/MustLoginAspect.java

@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil;
import com.ccsens.ptccsens.annotation.MustLogin;
import com.ccsens.ptccsens.bean.po.ProUser;
import com.ccsens.ptccsens.persist.dao.UserDao;
import com.ccsens.ptccsens.util.BasicsCodeError;
import com.ccsens.ptccsens.util.Constant;
import com.ccsens.util.CodeEnum;
import com.ccsens.util.JsonResponse;
@ -84,8 +85,8 @@ public class MustLoginAspect {
fillSpecial(dto, mustLoginAnnotation);
//必须登录,未登录直接返回未登录相关信息
if (user == null) {
return JsonResponse.newInstance().ok(CodeEnum.NOT_LOGIN);
if (ObjectUtil.isNull(user)) {
return JsonResponse.newInstance().ok(BasicsCodeError.NOT_USER_SERVER);
}
// JSONObject json = JSONObject.parseObject(JSON.toJSONString(response.getData()));
// Long userId = json.getLong("id");

10
src/main/java/com/ccsens/ptccsens/bean/vo/DeliverVo.java

@ -21,13 +21,13 @@ public class DeliverVo {
@ApiModelProperty("交付物名字")
private String deliverName;
@ApiModelProperty("交付物提交记录id")
private Long deliverRecordId;
private String deliverRecordId;
@ApiModelProperty("文件路径")
private List<String> details;
@ApiModelProperty("提交时间")
private Long submitTime;
@ApiModelProperty("提交人Id")
private Long submitMemberId;
private String submitMemberId;
@ApiModelProperty("提交人名称")
private String submitMemberName;
@ApiModelProperty("检查人列表")
@ -38,13 +38,13 @@ public class DeliverVo {
@ApiModel("检查人信息")
public static class CheckerInfo{
@ApiModelProperty("检查记录id")
private Long checkId;
private String checkId;
@ApiModelProperty("检查人id")
private Long checkerId;
private String checkerId;
@ApiModelProperty("检查人名字")
private String checkerName;
@ApiModelProperty("检查状态(0-未审核,1-通过,2-驳回)")
private Byte status;
private Byte status = 0;
@ApiModelProperty("分数")
private BigDecimal score;
@ApiModelProperty("备注")

5
src/main/java/com/ccsens/ptccsens/persist/dao/ProTaskPluginDao.java

@ -15,12 +15,13 @@ import java.util.List;
public interface ProTaskPluginDao extends ProTaskPluginMapper {
/**
* 根据任务id查询已配置的插件
* @param detailTaskId 任务详情id
* @param subId 任务分解id
* @return 插件列表
*/
List<TallTaskVo.TaskPluginInfo> queryTaskOfPlugin(@Param("detailTaskId") Long detailTaskId);
List<TallTaskVo.TaskPluginInfo> queryTaskOfPlugin(@Param("subId") Long subId);
void insertReplace(ProTaskPlugin proTaskPlugin);
// /**
// * 根据任务id列表查询任务插件
// * @param oldTaskIdList 任务id列表

8
src/main/java/com/ccsens/ptccsens/service/DeliverService.java

@ -156,12 +156,12 @@ public class DeliverService implements IDeliverService {
//查询当前任务的交付物插件id
Long pluginId = proTaskDetailDao.getDeliverPluginIdBySubTaskId(pluDeliver.getTaskSubId());
if(CollectionUtil.isNotEmpty(roleIdList)){
roleIdList.forEach(roleId -> {
//生成消息内容
RemindMessageDto remindMessageDto = new RemindMessageDto(param.getProjectId(),roleId,pluDeliver.getTaskSubId(),pluginId,taskType,"提交交付物");
// roleIdList.forEach(roleId -> {
// //生成消息内容
RemindMessageDto remindMessageDto = new RemindMessageDto(param.getProjectId(),roleIdList.get(0),pluDeliver.getTaskSubId(),pluginId,taskType,"提交交付物");
//TODO 发送消息
MessageUtil.sendToUser(phoneList,null,remindMessageDto,MessageConstant.DomainType.User,null);
});
// });
}
}

26
src/main/java/com/ccsens/ptccsens/service/ExportService.java

@ -30,11 +30,9 @@ public class ExportService implements IExportService {
public String exportWbs(TallWbsVo.WbsProjectInfo wbsProjectInfo, List<TallWbsVo.WbsTaskInfo> wbsTaskInfo, TallWbsVo.WbsRoleInfo wbsRoleInfo) throws Exception {
Workbook wb = new XSSFWorkbook();
//生成wbs表的数据
List<List<PoiUtil.PoiUtilCell>> wbs = generateWbs(wbsProjectInfo,wbsTaskInfo);
generateWbs(wb,wbsProjectInfo,wbsTaskInfo);
//生成项目成员表的数据
List<List<PoiUtil.PoiUtilCell>> member = generateMember(wbsRoleInfo);
//写入数据
PoiUtil.exportWB("WBS", wbs, wb);
PoiUtil.exportWB("项目成员表", member, wb);
//生成文件
String fileName = "exportWbs/" + DateUtil.today() + "/" + System.currentTimeMillis() + ".xlsx";
@ -53,13 +51,14 @@ public class ExportService implements IExportService {
/**
* 生成wbs表的数据
*/
private List<List<PoiUtil.PoiUtilCell>> generateWbs(TallWbsVo.WbsProjectInfo wbsProjectInfo, List<TallWbsVo.WbsTaskInfo> wbsTaskInfo) {
List<List<PoiUtil.PoiUtilCell>> wbs = new ArrayList<>();
private void generateWbs(Workbook wb, TallWbsVo.WbsProjectInfo wbsProjectInfo, List<TallWbsVo.WbsTaskInfo> wbsTaskInfo) {
List<List<PoiUtil.PoiUtilCell>> projectWbs = new ArrayList<>();
//项目标题
generateWbsProject(wbs,wbsProjectInfo);
generateWbsProject(projectWbs,wbsProjectInfo);
PoiUtil.exportWB("WBS", projectWbs, wb);
//任务
generateWbsTask(wbs,wbsTaskInfo);
return wbs;
List<List<PoiUtil.PoiUtilCell>> taskWbs = new ArrayList<>();
generateWbsTask(wb, taskWbs,wbsTaskInfo,projectWbs.size());
}
/**
@ -95,7 +94,7 @@ public class ExportService implements IExportService {
/**
* 生成任务数据
*/
private void generateWbsTask(List<List<PoiUtil.PoiUtilCell>> wbs, List<TallWbsVo.WbsTaskInfo> wbsTaskInfo) {
private void generateWbsTask(Workbook wb, List<List<PoiUtil.PoiUtilCell>> wbs, List<TallWbsVo.WbsTaskInfo> wbsTaskInfo,int rowIndex) {
//任务标题
List<PoiUtil.PoiUtilCell> taskHeader = new ArrayList<>();
taskHeader.add(new PoiUtil.PoiUtilCell("项目任务分解(PWBS)",15,1));
@ -192,9 +191,16 @@ public class ExportService implements IExportService {
taskRow.add(new PoiUtil.PoiUtilCell(secondTask.getPluginThreeName(),secondTask.getPluginThreeId(),1,1));
}
wbs.add(taskRow);
if(wbs.size() >= 10){
//写入数据
PoiUtil.exportWB("WBS", rowIndex, wbs, wb);
rowIndex += 10;
wbs.clear();
}
}
}
//写入数据
PoiUtil.exportWB("WBS", rowIndex, wbs, wb);
}
/**

91
src/main/java/com/ccsens/ptccsens/service/TallService.java

@ -89,16 +89,17 @@ public class TallService implements ITallService {
if(ObjectUtil.isNull(userByToken)){
throw new BaseException(CodeEnum.NOT_LOGIN);
}
log.info("token获取的用户信息:{}", userByToken);
//通过手机号获取用户在服务内的userId
ProUser user = new ProUser();
ProUser user = null;
if(ObjectUtil.isNotNull(userByToken) && StrUtil.isNotBlank(userByToken.getPhone())){
user = userDao.getUserIdByPhone(userByToken.getPhone());
}
if(user == null){
throw new BaseException(CodeEnum.NOT_LOGIN);
log.info("本服务下的用户信息:{}", user);
if(ObjectUtil.isNull(user)){
throw new BaseException(BasicsCodeError.NOT_USER_SERVER);
}
String ext = FileUtil.extName(params.getOriginalFilename());
if(StrUtil.isEmpty(ext) || !Constant.WbsExcel.WBS_FILE_FORMAT.contains(ext)){
throw new BaseException(BasicsCodeError.FILE_FORMAT_ERROR);
@ -294,13 +295,13 @@ public class TallService implements ITallService {
throw new BaseException(CodeEnum.NOT_LOGIN);
}
//通过手机号获取用户在服务内的userId
ProUser user = new ProUser();
ProUser user = null;
if(ObjectUtil.isNotNull(userByToken) && StrUtil.isNotBlank(userByToken.getPhone())){
user = userDao.getUserIdByPhone(userByToken.getPhone());
}
if(user == null){
throw new BaseException(CodeEnum.NOT_LOGIN);
}
// if(ObjectUtil.isNull(user)){
// throw new BaseException(BasicsCodeError.NOT_USER_SERVER);
// }
List<Long> roleIds = new ArrayList<>();
roleIds.add(param.getRoleId());
@ -312,7 +313,7 @@ public class TallService implements ITallService {
queryCheckerOfTask(permanentGlobalTask);
//TODO 查询插件展示信息
queryPluginShow(permanentGlobalTask,user.getId());
queryPluginShow(permanentGlobalTask,user == null ? null : user.getId());
return permanentGlobalTask;
}
@ -323,13 +324,13 @@ public class TallService implements ITallService {
throw new BaseException(CodeEnum.NOT_LOGIN);
}
//通过手机号获取用户在服务内的userId
ProUser user = new ProUser();
ProUser user = null;
if(ObjectUtil.isNotNull(userByToken) && StrUtil.isNotBlank(userByToken.getPhone())){
user = userDao.getUserIdByPhone(userByToken.getPhone());
}
if(user == null){
throw new BaseException(CodeEnum.NOT_LOGIN);
}
// if(ObjectUtil.isNull(user)){
// throw new BaseException(BasicsCodeError.NOT_USER_SERVER);
// }
List<Long> roleIds = new ArrayList<>();
roleIds.add(param.getRoleId());
@ -340,7 +341,7 @@ public class TallService implements ITallService {
queryCheckerOfTask(globalTask);
//TODO 查询插件展示信息
queryPluginShow(globalTask,user.getId());
queryPluginShow(globalTask,user == null ? null : user.getId());
return globalTask;
}
@ -453,15 +454,15 @@ public class TallService implements ITallService {
//创建任务面板的二维数组
createSecondPanel(plugins, panelRow, panelCol);
//将插件放入二维数组对应的位置中
List<TallTaskVo.TaskPluginInfo> taskPluginInfoList = taskPluginDao.queryTaskOfPlugin(queryTask.getDetailId());
List<TallTaskVo.TaskPluginInfo> taskPluginInfoList = taskPluginDao.queryTaskOfPlugin(queryTask.getId());
putDateInList(taskPluginInfoList, plugins, queryTask);
} else {
//根据插件最大的行和列创建二维数组
createPanelByPlugin(queryTask.getDetailId(), plugins, queryTask);
createPanelByPlugin(plugins, queryTask);
}
} else {
//根据插件最大的行和列创建二维数组
createPanelByPlugin(queryTask.getDetailId(), plugins, queryTask);
createPanelByPlugin(plugins, queryTask);
}
}
}
@ -516,12 +517,11 @@ public class TallService implements ITallService {
/**
* 根据插件的最大行列创建面板
*
* @param taskDetailId 任务详情id
* @param plugins 插件列表
* @param queryTask 任务
*/
public void createPanelByPlugin(Long taskDetailId, List<List<TallTaskVo.TaskPluginInfo>> plugins, TallTaskVo.QueryTask queryTask) {
List<TallTaskVo.TaskPluginInfo> taskPluginInfoList = taskPluginDao.queryTaskOfPlugin(taskDetailId);
public void createPanelByPlugin(List<List<TallTaskVo.TaskPluginInfo>> plugins, TallTaskVo.QueryTask queryTask) {
List<TallTaskVo.TaskPluginInfo> taskPluginInfoList = taskPluginDao.queryTaskOfPlugin(queryTask.getId());
if (CollectionUtil.isNotEmpty(taskPluginInfoList)) {
List<Integer> col = taskPluginInfoList.stream().map(TallTaskVo.TaskPluginInfo::getCol).collect(Collectors.toList());
List<Integer> row = taskPluginInfoList.stream().map(TallTaskVo.TaskPluginInfo::getRow).collect(Collectors.toList());
@ -549,13 +549,13 @@ public class TallService implements ITallService {
throw new BaseException(CodeEnum.NOT_LOGIN);
}
//通过手机号获取用户在服务内的userId
ProUser user = new ProUser();
ProUser user = null;
if(ObjectUtil.isNotNull(userByToken) && StrUtil.isNotBlank(userByToken.getPhone())){
user = userDao.getUserIdByPhone(userByToken.getPhone());
}
if(user == null){
throw new BaseException(CodeEnum.NOT_LOGIN);
}
// if(ObjectUtil.isNull(user)){
// throw new BaseException(BasicsCodeError.NOT_USER_SERVER);
// }
//查找类型:0向上查找,1向下查找(默认),下查包含自己,上查不包含
//根据参数配置sql语句
@ -594,7 +594,7 @@ public class TallService implements ITallService {
//查询任务下的检查人
queryCheckerOfTask(replenishTask);
//TODO 查询插件展示信息
queryPluginShow(regularTask,user.getId());
queryPluginShow(regularTask,user == null ? null : user.getId());
return replenishTask;
}
queryPluginForTask(regularTask);
@ -602,7 +602,7 @@ public class TallService implements ITallService {
queryCheckerOfTask(regularTask);
//TODO 查询插件展示信息
queryPluginShow(regularTask,user.getId());
queryPluginShow(regularTask,user == null ? null : user.getId());
return regularTask;
}
@ -613,9 +613,11 @@ public class TallService implements ITallService {
}
for (TallTaskVo.QueryTask queryTask : regularTask) {
if(CollectionUtil.isNotEmpty(queryTask.getPlugins())){
queryTask.getPlugins().forEach(pluginInfos -> {
if(CollectionUtil.isNotEmpty(pluginInfos)){
pluginInfos.forEach(plugin ->{
for (List<TallTaskVo.TaskPluginInfo> plugins : queryTask.getPlugins()) {
if(CollectionUtil.isNotEmpty(plugins)){
for (TallTaskVo.TaskPluginInfo plugin : plugins) {
System.out.println("====" + plugin);
//TODO 判断插件类型,暂时一个个的判断,之后应该是统一的接口
Long pluginId = plugin.getPluginId();
if (pluginId == 15L) {
@ -627,9 +629,26 @@ public class TallService implements ITallService {
FinanceVo.FinanceItem byTask = financeService.getByTask(new FinanceDto.TaskId(queryTask.getDetailId()));
plugin.setData(JSON.toJSONString(byTask));
}
});
}
}
});
}
// queryTask.getPlugins().forEach(pluginInfos -> {
// if(CollectionUtil.isNotEmpty(pluginInfos)){
// pluginInfos.forEach(plugin ->{
// //TODO 判断插件类型,暂时一个个的判断,之后应该是统一的接口
// Long pluginId = plugin.getPluginId();
// if (pluginId == 15L) {
// //TODO 查找交付物的信息
// DeliverVo.DeliverOfTask deliverByTask = pluDeliverDao.getDeliverByTask(queryTask.getId(), userId);
// plugin.setData(JSON.toJSONString(deliverByTask));
// } else if (pluginId == 18L) {
// //TODO 查找财务条的信息
// FinanceVo.FinanceItem byTask = financeService.getByTask(new FinanceDto.TaskId(queryTask.getDetailId()));
// plugin.setData(JSON.toJSONString(byTask));
// }
// });
// }
// });
}
}
}
@ -642,13 +661,13 @@ public class TallService implements ITallService {
throw new BaseException(CodeEnum.NOT_LOGIN);
}
//通过手机号获取用户在服务内的userId
ProUser user = new ProUser();
ProUser user = null;
if(ObjectUtil.isNotNull(userByToken) && StrUtil.isNotBlank(userByToken.getPhone())){
user = userDao.getUserIdByPhone(userByToken.getPhone());
}
if(user == null){
throw new BaseException(CodeEnum.NOT_LOGIN);
}
// if(ObjectUtil.isNull(user)){
// throw new BaseException(BasicsCodeError.NOT_USER_SERVER);
// }
//查询用的时间
Long queryTime = System.currentTimeMillis();
@ -692,7 +711,7 @@ public class TallService implements ITallService {
//查询任务下的检查人
queryCheckerOfTask(queryTaskPageInfo.getList());
//TODO 查询插件展示信息
queryPluginShow(queryTaskPageInfo.getList(),user.getId());
queryPluginShow(queryTaskPageInfo.getList(),user == null ? null : user.getId());
}
return queryTaskPageInfo;

4
src/main/java/com/ccsens/ptccsens/util/BasicsCodeError.java

@ -7,6 +7,8 @@ import com.ccsens.util.CodeError;
*/
public class BasicsCodeError extends CodeError {
public static final Code NOT_USER_SERVER = new Code(407,"您不属于该服务的成员", true);
public static final Code NOT_WBS_SHEET = new Code(501,"找不到wbs表",true);
public static final Code NOT_MEMBER_SHEET = new Code(502,"找不到项目成员表",true);
public static final Code WSB_NOT_PROJECT_HEADER = new Code(503,"读取项目信息异常",true);
@ -53,4 +55,6 @@ public class BasicsCodeError extends CodeError {
public static final Code NOT_CLOCKING_IN = new Code(536,"打卡记录不存在", true);
public static final Code NOT_CLOCKING_IN_REMARK = new Code(537,"请填写补卡原因", true);
}

33
src/main/resources/mapper_dao/ProTaskPluginDao.xml

@ -120,24 +120,25 @@
<select id="queryTaskOfPlugin" resultType="com.ccsensptos.tallsdk.bean.vo.TallTaskVo$TaskPluginInfo">
SELECT
tp.plugin_id AS pluginId,
tp.business_plugin_id AS businessPluginId,
tp.code AS pluginCode,
tp.plugin_inner AS `inner`,
tp.param As param,
tp.plgin_row AS `row`,
tp.plgin_col AS col,
tp.colspan AS colspan,
tp.rowspan AS rowspan,
tp.id AS pluginTaskId
p.plugin_id AS pluginId,
p.business_plugin_id AS businessPluginId,
p.code AS pluginCode,
p.plugin_inner AS `inner`,
p.param As param,
p.plgin_row AS `row`,
p.plgin_col AS col,
p.colspan AS colspan,
p.rowspan AS rowspan,
p.id AS pluginTaskId
FROM
t_pro_task_plugin AS tp
LEFT JOIN t_pro_task_detail AS td ON td.id = tp.task_detail_id
WHERE td.rec_status = 0 AND tp.rec_status = 0
AND tp.task_detail_id = #{detailTaskId}
t_pro_task_sub s
LEFT JOIN t_pro_task_detail d on s.task_detail_id = d.id and d.rec_status = 0
LEFT JOIN t_pro_task_plugin p on d.id = p.task_detail_id and p.rec_status = 0
WHERE
s.rec_status = 0
and s.id = #{subId}
</select>
<!-- <select id="findPluginByTaskIdList" resultType="com.ccsens.common.bean.po.ProTaskPlugin">-->
<!-- <select id="findPluginByTaskIdList" resultType="com.ccsens.common.bean.po.ProTaskPlugin">-->
<!-- SELECT-->
<!-- id,-->
<!-- param,-->

2
src/main/resources/mybatis/mybatis-config.xml

@ -9,7 +9,7 @@
<!-- 打印SQL语句 -->
<setting name="logImpl" value="STDOUT_LOGGING" />
<!-- 使全局的映射器启用或禁用缓存。 -->
<setting name="cacheEnabled" value="true"/>
<setting name="cacheEnabled" value="false"/>
<!-- 全局启用或禁用延迟加载。当禁用时,所有关联对象都会即时加载。 -->
<setting name="lazyLoadingEnabled" value="true"/>
<!-- 当启用时,有延迟加载属性的对象在被调用时将会完全加载任意属性。否则,每种属性将会按需要加载。 -->

Loading…
Cancel
Save