diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryBaseEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryBaseEOServiceImpl.java index 5f5e89e44..c2dce9736 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryBaseEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryBaseEOServiceImpl.java @@ -188,7 +188,7 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl baseCJlist = JSONArray.parseArray(baseCJ, DummyInventoryBaseEO.class);//json转list + List baseCJList = JSONArray.parseArray(baseCJ, DummyInventoryBaseEO.class);//json转list //对比,获取值不同的字段 - Map> diff = null; - for(int i=0;i<= baseCJlist.size();i++) { - baseCJlist.get(i); + Map 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 baseCJlist = JSONArray.parseArray(baseCJ, DummyInventoryBaseEO.class);//json转list - - //对比,获取值不同的字段 - Map> 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 infoCJlist = JSONArray.parseArray(infoCJ, DummyContentChangeEO.class);//json转list - System.out.println(infoCJlist); - System.out.println(infoCJlist); + List infoCJList = JSONArray.parseArray(infoCJ,DummyInventoryInfoEO.class);//json转list + //对比,获取值不同的字段 + Map 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); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/util/ListDiff.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/util/ListDiff.java index 9f2999ea6..65f855bea 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/util/ListDiff.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/util/ListDiff.java @@ -4,22 +4,31 @@ import java.lang.reflect.Field; import java.util.*; public class ListDiff { - public static Map> compareObject(T obj1, T Obj2) - throws Exception { - Map> result = new HashMap>(); + public static Map compareObject(T obj1, T Obj2) { + Map result = new HashMap(); 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 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; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/PlanStatusEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/PlanStatusEnum.java new file mode 100644 index 000000000..b3ce9435d --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/PlanStatusEnum.java @@ -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; + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskPlanningServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskPlanningServiceImpl.java index 72bff50c7..762af2404 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskPlanningServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskPlanningServiceImpl.java @@ -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 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 { private String name; private Date time; + private String status; @Override public int compare(TimeNodeVO o1, TimeNodeVO o2) {