虚拟清单发布-数据处理+项目库任务计划时间轴增加状态值
This commit is contained in:
+31
-23
@@ -188,7 +188,7 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
|
||||
* @param dummyInventoryBaseEO
|
||||
*/
|
||||
@Override
|
||||
public void issue(DummyInventoryBaseEO dummyInventoryBaseEO) throws Exception {
|
||||
public void issue(DummyInventoryBaseEO dummyInventoryBaseEO){
|
||||
this.updateById(dummyInventoryBaseEO);
|
||||
//发布与撤回均需要发消息(向订阅的人员发消息)
|
||||
//首次发布不发消息
|
||||
@@ -249,40 +249,48 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
|
||||
|
||||
//3.2基础表数据对比
|
||||
String baseCJ=dummyContentChangeEOBaseList.get(0).getContentJson();
|
||||
List<DummyInventoryBaseEO> baseCJlist = JSONArray.parseArray(baseCJ, DummyInventoryBaseEO.class);//json转list
|
||||
List<DummyInventoryBaseEO> baseCJList = JSONArray.parseArray(baseCJ, DummyInventoryBaseEO.class);//json转list
|
||||
|
||||
//对比,获取值不同的字段
|
||||
Map<String, List<Object>> diff = null;
|
||||
for(int i=0;i<= baseCJlist.size();i++) {
|
||||
baseCJlist.get(i);
|
||||
Map<String, String> baseDiff = null;
|
||||
for(int i=0;i< baseCJList.size();i++) {
|
||||
baseCJList.get(i);
|
||||
dummyInventoryBaseEOList.get(i);
|
||||
diff = ListDiff.compareObject(baseCJlist.get(i), dummyInventoryBaseEOList.get(i));
|
||||
System.out.println(diff);//不同的字段原,现,{name=[虚拟清单33331122211, 虚拟清单3333444]}
|
||||
baseDiff = ListDiff.compareObject(baseCJList.get(i), dummyInventoryBaseEOList.get(i));
|
||||
System.out.println(baseDiff);//不同的字段原,现,{name=[虚拟清单33331122211, 虚拟清单3333444]}
|
||||
}
|
||||
|
||||
//4.对比详情表数据
|
||||
//4.1截止到现在发布,期间修改的数据(详情)
|
||||
//现在的数据为-->dummyInventoryInfoEOList
|
||||
//dummyInventoryInfoEOList
|
||||
|
||||
//4.2详情表数据(一条基础数据可能对应多个详情数据---一对多)
|
||||
/* String baseCJ=dummyContentChangeEOBaseList.get(0).getContentJson();
|
||||
List<DummyInventoryBaseEO> baseCJlist = JSONArray.parseArray(baseCJ, DummyInventoryBaseEO.class);//json转list
|
||||
|
||||
//对比,获取值不同的字段
|
||||
Map<String, List<Object>> diff = null;
|
||||
for(int i=0;i<= baseCJlist.size();i++) {
|
||||
baseCJlist.get(i);
|
||||
dummyInventoryBaseEOList.get(i);
|
||||
diff = ListDiff.compareObject(baseCJlist.get(i), dummyInventoryBaseEOList.get(i));
|
||||
System.out.println(diff);//不同的字段原,现,{name=[虚拟清单33331122211, 虚拟清单3333444]}
|
||||
}*/
|
||||
|
||||
//数据库里原来的详情数据
|
||||
for(DummyContentChangeEO dummyContentChangeEO : dummyContentChangeEOInfoList){
|
||||
String infoCJ = dummyContentChangeEO.getContentJson();
|
||||
List<DummyContentChangeEO> infoCJlist = JSONArray.parseArray(infoCJ, DummyContentChangeEO.class);//json转list
|
||||
System.out.println(infoCJlist);
|
||||
System.out.println(infoCJlist);
|
||||
List<DummyInventoryInfoEO> infoCJList = JSONArray.parseArray(infoCJ,DummyInventoryInfoEO.class);//json转list
|
||||
//对比,获取值不同的字段
|
||||
Map<String, String> infoDiff = null;
|
||||
if(infoCJList.size()==dummyInventoryInfoEOList.size()) {//现在的详情数据数量和数据库里的一样
|
||||
for (int i = 0; i < infoCJList.size(); i++) {
|
||||
DummyInventoryInfoEO h = infoCJList.get(i);
|
||||
DummyInventoryInfoEO g = dummyInventoryInfoEOList.get(i);
|
||||
infoDiff = ListDiff.compareObject(infoCJList.get(i), dummyInventoryInfoEOList.get(i));
|
||||
System.out.println(infoDiff);//不同的字段原,现
|
||||
}
|
||||
}else{//现在的详情数据数量和数据库里的不一样<--详情的id不一样
|
||||
String diffId=null;
|
||||
StringBuilder diffIdBuilder=new StringBuilder();
|
||||
for(DummyInventoryInfoEO dummyInventoryInfoEO : infoCJList) {
|
||||
diffId = dummyInventoryInfoEOList.stream().filter(e -> !dummyInventoryInfoEO.equals(e.getId()))
|
||||
.map(f->f.getId()).collect(Collectors.joining(","));
|
||||
diffIdBuilder.append(diffId).append(",");
|
||||
|
||||
}
|
||||
diffIdBuilder.substring(0,diffIdBuilder.toString().length()-1);
|
||||
|
||||
}
|
||||
System.out.println(infoCJList);
|
||||
|
||||
|
||||
// JsonDiff.compareJson(infoCJjson,info,null);
|
||||
|
||||
+20
-11
@@ -4,22 +4,31 @@ import java.lang.reflect.Field;
|
||||
import java.util.*;
|
||||
|
||||
public class ListDiff <T> {
|
||||
public static <T> Map<String, List<Object>> compareObject(T obj1, T Obj2)
|
||||
throws Exception {
|
||||
Map<String, List<Object>> result = new HashMap<String, List<Object>>();
|
||||
public static <T> Map<String, String> compareObject(T obj1, T Obj2) {
|
||||
Map<String, String> result = new HashMap<String,String>();
|
||||
|
||||
Field[] fs = obj1.getClass().getDeclaredFields();
|
||||
for (Field f : fs) {
|
||||
f.setAccessible(true);
|
||||
Object v1 = f.get(obj1);
|
||||
Object v2 = f.get(Obj2);
|
||||
if( ! equals(v1, v2) /*&& !f.getName().contains("update")*/
|
||||
&& !f.getName().equals("updateTime") ){
|
||||
List<Object> resultList=new ArrayList<>();
|
||||
resultList.add(v1);
|
||||
resultList.add(v2);
|
||||
result.put(f.getName(), resultList);
|
||||
Object v1 = null;Object v2 = null;
|
||||
|
||||
try {
|
||||
v1 = f.get(obj1);
|
||||
v2 = f.get(Obj2);
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
if( ! equals(v1, v2)
|
||||
&& !f.getName().equals("updateTime") ){
|
||||
|
||||
StringBuilder v1String= new StringBuilder(String.valueOf(v1));
|
||||
StringBuilder v2String= new StringBuilder(String.valueOf(v2));
|
||||
|
||||
|
||||
|
||||
result.put(f.getName(), v1String.append(",").append(v2String).toString());
|
||||
System.out.println("zlzl");
|
||||
}
|
||||
}
|
||||
return result;
|
||||
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
package com.jero.modules.project.enums;
|
||||
|
||||
public enum PlanStatusEnum {
|
||||
OUT_OF_DATE("已到时间","1"),
|
||||
ON_GOING("在当前时间段","2"),
|
||||
LESS_THAN_TIME("未到时间","3"),
|
||||
;
|
||||
String name;
|
||||
String value;
|
||||
|
||||
PlanStatusEnum(String name, String value) {
|
||||
this.name = name;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
}
|
||||
+61
-13
@@ -1,8 +1,10 @@
|
||||
package com.jero.modules.project.service.impl;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.modules.project.entity.ProjectTaskPlanning;
|
||||
import com.jero.modules.project.enums.PlanStatusEnum;
|
||||
import com.jero.modules.project.enums.ProjectTaskPlanningNameEnum;
|
||||
import com.jero.modules.project.mapper.ProjectTaskPlanningMapper;
|
||||
import com.jero.modules.project.service.IProjectTaskPlanningService;
|
||||
@@ -13,10 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @Description: 法规/认证任务计划 (各阶段确认进度) 表
|
||||
@@ -94,10 +93,26 @@ public class ProjectTaskPlanningServiceImpl extends ServiceImpl<ProjectTaskPlann
|
||||
ProjectTaskPlanning projectTaskPlanning = projectTaskPlanningMapper.getByProjectId(projectId);
|
||||
List<TimeNodeVO> timeNodeVOS = new ArrayList<>();
|
||||
TimeNodeVO listConfirmationVO = new TimeNodeVO();
|
||||
Date now=new Date();
|
||||
Calendar cal1 = Calendar.getInstance();
|
||||
cal1.setTime(now);
|
||||
// 将时分秒,毫秒域清零
|
||||
cal1.set(Calendar.HOUR_OF_DAY, 0);
|
||||
cal1.set(Calendar.MINUTE, 0);
|
||||
cal1.set(Calendar.SECOND, 0);
|
||||
cal1.set(Calendar.MILLISECOND, 0);
|
||||
Date trueNow = cal1.getTime();
|
||||
|
||||
if(StringUtils.isNotBlank(projectTaskPlanning.getListConfirmation().toString())) {
|
||||
listConfirmationVO.setName(ProjectTaskPlanningNameEnum.LIST_CONFIRMATION.getName());
|
||||
listConfirmationVO.setTime(projectTaskPlanning.getListConfirmation());
|
||||
if(projectTaskPlanning.getListConfirmation().after(trueNow)){
|
||||
listConfirmationVO.setStatus(PlanStatusEnum.OUT_OF_DATE.getValue());
|
||||
}else if(projectTaskPlanning.getListConfirmation().before(trueNow)){
|
||||
listConfirmationVO.setStatus(PlanStatusEnum.LESS_THAN_TIME.getValue());
|
||||
}else{
|
||||
listConfirmationVO.setStatus(PlanStatusEnum.ON_GOING.getValue());
|
||||
}
|
||||
timeNodeVOS.add(listConfirmationVO);
|
||||
}
|
||||
|
||||
@@ -105,41 +120,82 @@ public class ProjectTaskPlanningServiceImpl extends ServiceImpl<ProjectTaskPlann
|
||||
TimeNodeVO legalTaskConfirmationVO = new TimeNodeVO();
|
||||
legalTaskConfirmationVO.setName(ProjectTaskPlanningNameEnum.LEGAL_TASK_CONFIRMATION.getName());
|
||||
legalTaskConfirmationVO.setTime(projectTaskPlanning.getLegalTaskConfirmation());
|
||||
if(projectTaskPlanning.getLegalTaskConfirmation().after(trueNow)){
|
||||
legalTaskConfirmationVO.setStatus(PlanStatusEnum.LESS_THAN_TIME.getValue());
|
||||
}else if(projectTaskPlanning.getLegalTaskConfirmation().before(trueNow)){
|
||||
legalTaskConfirmationVO.setStatus(PlanStatusEnum.OUT_OF_DATE.getValue());
|
||||
}else {
|
||||
legalTaskConfirmationVO.setStatus(PlanStatusEnum.ON_GOING.getValue());
|
||||
}
|
||||
timeNodeVOS.add(legalTaskConfirmationVO);
|
||||
}
|
||||
if(StringUtils.isNotBlank(projectTaskPlanning.getDesignDeadline().toString())) {
|
||||
TimeNodeVO designDeadlineVO = new TimeNodeVO();
|
||||
designDeadlineVO.setName(ProjectTaskPlanningNameEnum.DESIGN_DEADLINE.getName());
|
||||
designDeadlineVO.setTime(projectTaskPlanning.getDesignDeadline());
|
||||
if(projectTaskPlanning.getDesignDeadline().after(trueNow)){
|
||||
designDeadlineVO.setStatus(PlanStatusEnum.LESS_THAN_TIME.getValue());
|
||||
}else if(projectTaskPlanning.getDesignDeadline().before(trueNow)){
|
||||
designDeadlineVO.setStatus(PlanStatusEnum.OUT_OF_DATE.getValue());
|
||||
}else{
|
||||
designDeadlineVO.setStatus(PlanStatusEnum.ON_GOING.getValue());
|
||||
}
|
||||
timeNodeVOS.add(designDeadlineVO);
|
||||
}
|
||||
if(StringUtils.isNotBlank(projectTaskPlanning.getPrehomoDeadline().toString())) {
|
||||
TimeNodeVO prehomoDeadlineVO = new TimeNodeVO();
|
||||
prehomoDeadlineVO.setName(ProjectTaskPlanningNameEnum.PREHOMO_DEADLINE.getName());
|
||||
prehomoDeadlineVO.setTime(projectTaskPlanning.getPrehomoDeadline());
|
||||
if(projectTaskPlanning.getPrehomoDeadline().after(trueNow)){
|
||||
prehomoDeadlineVO.setStatus(PlanStatusEnum.LESS_THAN_TIME.getValue());
|
||||
}else if(projectTaskPlanning.getPrehomoDeadline().before(trueNow)){
|
||||
prehomoDeadlineVO.setStatus(PlanStatusEnum.OUT_OF_DATE.getValue());
|
||||
}else{
|
||||
prehomoDeadlineVO.setStatus(PlanStatusEnum.ON_GOING.getValue());
|
||||
}
|
||||
timeNodeVOS.add(prehomoDeadlineVO);
|
||||
}
|
||||
if(StringUtils.isNotBlank(projectTaskPlanning.getAttestationStartTime().toString())) {
|
||||
TimeNodeVO attestationStartTimeVO = new TimeNodeVO();
|
||||
attestationStartTimeVO.setName(ProjectTaskPlanningNameEnum.ATTESTATION_START_TIME.getName());
|
||||
attestationStartTimeVO.setTime(projectTaskPlanning.getAttestationStartTime());
|
||||
if(projectTaskPlanning.getAttestationStartTime().after(trueNow)){
|
||||
attestationStartTimeVO.setStatus(PlanStatusEnum.LESS_THAN_TIME.getValue());
|
||||
}else if(projectTaskPlanning.getAttestationStartTime().before(trueNow)){
|
||||
attestationStartTimeVO.setStatus(PlanStatusEnum.OUT_OF_DATE.getValue());
|
||||
}else{
|
||||
attestationStartTimeVO.setStatus(PlanStatusEnum.ON_GOING.getValue());
|
||||
}
|
||||
timeNodeVOS.add(attestationStartTimeVO);
|
||||
}
|
||||
if(StringUtils.isNotBlank(projectTaskPlanning.getAttestationEndTime().toString())) {
|
||||
TimeNodeVO attestationEndTimeVO = new TimeNodeVO();
|
||||
attestationEndTimeVO.setName(ProjectTaskPlanningNameEnum.ATTESTATION_END_TIME.getName());
|
||||
attestationEndTimeVO.setTime(projectTaskPlanning.getAttestationEndTime());
|
||||
if(projectTaskPlanning.getAttestationEndTime().after(trueNow)){
|
||||
attestationEndTimeVO.setStatus(PlanStatusEnum.LESS_THAN_TIME.getValue());
|
||||
}else if(projectTaskPlanning.getAttestationEndTime().before(trueNow)){
|
||||
attestationEndTimeVO.setStatus(PlanStatusEnum.OUT_OF_DATE.getValue());
|
||||
}else{
|
||||
attestationEndTimeVO.setStatus(PlanStatusEnum.ON_GOING.getValue());
|
||||
}
|
||||
timeNodeVOS.add(attestationEndTimeVO);
|
||||
}
|
||||
if(StringUtils.isNotBlank(projectTaskPlanning.getVerifyDeadline().toString())) {
|
||||
TimeNodeVO verifyDeadlineVO = new TimeNodeVO();
|
||||
verifyDeadlineVO.setName(ProjectTaskPlanningNameEnum.VERIFY_DEADLINE.getName());
|
||||
verifyDeadlineVO.setTime(projectTaskPlanning.getVerifyDeadline());
|
||||
if(projectTaskPlanning.getVerifyDeadline().after(trueNow)){
|
||||
verifyDeadlineVO.setStatus(PlanStatusEnum.LESS_THAN_TIME.getValue());
|
||||
}else if(projectTaskPlanning.getVerifyDeadline().before(trueNow)){
|
||||
verifyDeadlineVO.setStatus(PlanStatusEnum.OUT_OF_DATE.getValue());
|
||||
}else{
|
||||
verifyDeadlineVO.setStatus(PlanStatusEnum.ON_GOING.getValue());
|
||||
}
|
||||
timeNodeVOS.add(verifyDeadlineVO);
|
||||
}
|
||||
// 排序
|
||||
Collections.sort(timeNodeVOS, listConfirmationVO);
|
||||
|
||||
return timeNodeVOS;
|
||||
}
|
||||
|
||||
@@ -157,14 +213,6 @@ public class ProjectTaskPlanningServiceImpl extends ServiceImpl<ProjectTaskPlann
|
||||
public void setProjectTaskPlanning(String projectId) throws ParseException {
|
||||
ProjectTaskPlanning projectTaskPlanning=new ProjectTaskPlanning();
|
||||
projectTaskPlanning.setProjectId(projectId);
|
||||
Date now = new Date();
|
||||
projectTaskPlanning.setListConfirmation(now);
|
||||
projectTaskPlanning.setLegalTaskConfirmation(now);
|
||||
projectTaskPlanning.setDesignDeadline(now);
|
||||
projectTaskPlanning.setPrehomoDeadline(now);
|
||||
projectTaskPlanning.setAttestationStartTime(now);
|
||||
projectTaskPlanning.setAttestationEndTime(now);
|
||||
projectTaskPlanning.setVerifyDeadline(now);
|
||||
add(projectTaskPlanning);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import java.util.Date;
|
||||
public class TimeNodeVO implements Comparator<TimeNodeVO> {
|
||||
private String name;
|
||||
private Date time;
|
||||
private String status;
|
||||
|
||||
@Override
|
||||
public int compare(TimeNodeVO o1, TimeNodeVO o2) {
|
||||
|
||||
Reference in New Issue
Block a user