浏览代码

Merge remote-tracking branch 'origin/1.0' into 1.0

verguenza 4 年之前
父节点
当前提交
ab7d69aff5

+ 67 - 52
src/main/java/com/galaxis/manatee/service/LogCheckService.java

@@ -2,6 +2,7 @@ package com.galaxis.manatee.service;
 
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.galaxis.manatee.constant.ChuanYunConstant;
 import com.galaxis.manatee.dao.ChuanyunSelfCostDao;
 import com.galaxis.manatee.dao.ChuanyunSelfWorkHourDao;
 import com.galaxis.manatee.dao.ChuanyunWeekMemberHourDao;
@@ -90,23 +91,25 @@ public class LogCheckService {
                 map.put(chuanyunWeekMemberHourDO.getUserId()+chuanyunWeekMemberHourDO.getProjectId()+chuanyunWeekMemberHourDO.getYear()+chuanyunWeekMemberHourDO.getWeek(),1);
             }
             for (ChuanyunWeekMemberHourDO chuanyunWeekMemberHourDO : oldlist){
-                Integer count = map.get(chuanyunWeekMemberHourDO.getUserId()+chuanyunWeekMemberHourDO.getProjectId()+chuanyunWeekMemberHourDO.getYear()+chuanyunWeekMemberHourDO.getWeek());
-                if (count==null){
-                    chuanyunWeekMemberHourDao.delete(chuanyunWeekMemberHourDO);
-                    List<String> matchers = new ArrayList<>();
-                    matchers.add("F0000001_2,"+chuanyunWeekMemberHourDO.getProjectId());
-                    matchers.add("F0000002_2,"+chuanyunWeekMemberHourDO.getUserId());
-                    matchers.add("F0000006_2,"+chuanyunWeekMemberHourDO.getWeek());
-                    matchers.add("F0000008_2,"+chuanyunWeekMemberHourDO.getYear());
-                    var filter = Filter.instance(0, 1, true, "And", matchers);
-                    var chuanyunFindAllResponse = chuanYunManager.findAll(ChuanyunProjectMemberWeekHourDO.SCHEMA_CODE, filter);
-                    ChuanyunSaveDTO chuanyunSaveDTO;
-                    if (chuanyunFindAllResponse.getReturnData() != null) {
-                        List<ChuanyunProjectMemberWeekHourDO> result = objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>() {
-                        });
-                        chuanyunSaveDTO = chuanYunManager.delete(ChuanyunProjectMemberWeekHourDO.SCHEMA_CODE, result.get(0).getObjectId());
+                if (!chuanyunWeekMemberHourDO.getProjectType().equals("生产项目")){
+                    Integer count = map.get(chuanyunWeekMemberHourDO.getUserId()+chuanyunWeekMemberHourDO.getProjectId()+chuanyunWeekMemberHourDO.getYear()+chuanyunWeekMemberHourDO.getWeek());
+                    if (count==null){
+                        chuanyunWeekMemberHourDao.delete(chuanyunWeekMemberHourDO);
+                        List<String> matchers = new ArrayList<>();
+                        matchers.add("F0000001_2,"+chuanyunWeekMemberHourDO.getProjectId());
+                        matchers.add("F0000002_2,"+chuanyunWeekMemberHourDO.getUserId());
+                        matchers.add("F0000006_2,"+chuanyunWeekMemberHourDO.getWeek());
+                        matchers.add("F0000008_2,"+chuanyunWeekMemberHourDO.getYear());
+                        var filter = Filter.instance(0, 1, true, "And", matchers);
+                        var chuanyunFindAllResponse = chuanYunManager.findAll(ChuanyunProjectMemberWeekHourDO.SCHEMA_CODE, filter);
+                        ChuanyunSaveDTO chuanyunSaveDTO;
+                        if (chuanyunFindAllResponse.getReturnData() != null) {
+                            List<ChuanyunProjectMemberWeekHourDO> result = objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>() {
+                            });
+                            chuanyunSaveDTO = chuanYunManager.delete(ChuanyunProjectMemberWeekHourDO.SCHEMA_CODE, result.get(0).getObjectId());
+                        }
+                        log.info(chuanyunWeekMemberHourDO.getUserId()+"删除项目"+chuanyunWeekMemberHourDO.getProjectId()+"时间为"+chuanyunWeekMemberHourDO.getYear()+"年"+chuanyunWeekMemberHourDO.getWeek()+"周工时");
                     }
-                    log.info(chuanyunWeekMemberHourDO.getUserId()+"删除项目"+chuanyunWeekMemberHourDO.getProjectId()+"时间为"+chuanyunWeekMemberHourDO.getYear()+"年"+chuanyunWeekMemberHourDO.getWeek()+"周工时");
                 }
             }
         }
@@ -137,22 +140,24 @@ public class LogCheckService {
                 map.put(chuanyunSelfWorkHourDO.getUserId()+chuanyunSelfWorkHourDO.getProjectId()+chuanyunSelfWorkHourDO.getDayLogDate().withDayOfMonth(1),1);
             }
             for (ChuanyunSelfCostDO chuanyunSelfCostDO : costDOList){
-                Integer count = map.get(chuanyunSelfCostDO.getUserId()+chuanyunSelfCostDO.getProjectId()+chuanyunSelfCostDO.getDayLogDate().withDayOfMonth(1));
-                if (count==null){
-                    chuanyunSelfCostDao.delete(chuanyunSelfCostDO);
-                    List<String> matchers = new ArrayList<>();
-                    matchers.add("F0000003_2,"+chuanyunSelfCostDO.getProjectId());
-                    matchers.add("F0000002_2,"+chuanyunSelfCostDO.getUserId());
-                    matchers.add("F0000004_2,"+chuanyunSelfCostDO.getDayLogDate().plusDays(1).withDayOfMonth(1));
-                    var filter = Filter.instance(0, 1, true, "And", matchers);
-                    var chuanyunFindAllResponse = chuanYunManager.findAll(ChuanyunMemberMonthCostDO.SCHEMA_CODE, filter);
-                    ChuanyunSaveDTO chuanyunSaveDTO;
-                    if (chuanyunFindAllResponse.getReturnData() != null) {
-                        List<ChuanyunMemberMonthCostDO> result = objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>() {
-                        });
-                        chuanyunSaveDTO = chuanYunManager.delete(ChuanyunMemberMonthCostDO.SCHEMA_CODE, result.get(0).getObjectId());
+                if (!chuanyunSelfCostDO.getProjectType().equals("生产项目")){
+                    Integer count = map.get(chuanyunSelfCostDO.getUserId()+chuanyunSelfCostDO.getProjectId()+chuanyunSelfCostDO.getDayLogDate().withDayOfMonth(1));
+                    if (count==null){
+                        chuanyunSelfCostDao.delete(chuanyunSelfCostDO);
+                        List<String> matchers = new ArrayList<>();
+                        matchers.add("F0000003_2,"+chuanyunSelfCostDO.getProjectId());
+                        matchers.add("F0000002_2,"+chuanyunSelfCostDO.getUserId());
+                        matchers.add("F0000004_2,"+chuanyunSelfCostDO.getDayLogDate().plusDays(1).withDayOfMonth(1));
+                        var filter = Filter.instance(0, 1, true, "And", matchers);
+                        var chuanyunFindAllResponse = chuanYunManager.findAll(ChuanyunMemberMonthCostDO.SCHEMA_CODE, filter);
+                        ChuanyunSaveDTO chuanyunSaveDTO;
+                        if (chuanyunFindAllResponse.getReturnData() != null) {
+                            List<ChuanyunMemberMonthCostDO> result = objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>() {
+                            });
+                            chuanyunSaveDTO = chuanYunManager.delete(ChuanyunMemberMonthCostDO.SCHEMA_CODE, result.get(0).getObjectId());
+                        }
+                        log.info(chuanyunSelfCostDO.getUserId()+"删除项目"+chuanyunSelfCostDO.getProjectId()+"时间为"+chuanyunSelfCostDO.getDayLogDate()+"月工时");
                     }
-                    log.info(chuanyunSelfCostDO.getUserId()+"删除项目"+chuanyunSelfCostDO.getProjectId()+"时间为"+chuanyunSelfCostDO.getDayLogDate()+"月工时");
                 }
             }
         }
@@ -234,28 +239,38 @@ public class LogCheckService {
             }
             //比较是否有撤回工时
             for (ChuanyunSelfWorkHourDO chuanyunSelfWorkHourDO : chuanyunSelfWorkHourList) {
-                Integer count = map.get(chuanyunSelfWorkHourDO.getUserId() + chuanyunSelfWorkHourDO.getProjectId() + chuanyunSelfWorkHourDO.getDayLogDate());
-                if (count == null) {
-                    try {
-                        //删除数据库日工时
-                        chuanyunSelfWorkHourDao.delete(chuanyunSelfWorkHourDO);
-                        //删除氚云日工时
-                        List<String> matchers = new ArrayList<>();
-                        matchers.add("F0000001_2," + chuanyunSelfWorkHourDO.getProjectId());
-                        matchers.add("F0000002_2," + chuanyunSelfWorkHourDO.getUserId());
-                        matchers.add("F0000003_2," + chuanyunSelfWorkHourDO.getDayLogDate());
-                        var filter = Filter.instance(0, 1, true, "And", matchers);
-                        var chuanyunFindAllResponse = chuanYunManager.findAll(ChuanyunMemberHourDO.SCHEMA_CODE, filter);
-                        ChuanyunSaveDTO chuanyunSaveDTO;
-                        if (chuanyunFindAllResponse.getReturnData() != null) {
-                            List<ChuanyunMemberHourDO> result = objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>() {
-                            });
-                            chuanyunSaveDTO = chuanYunManager.delete(ChuanyunMemberHourDO.SCHEMA_CODE, result.get(0).getObjectId());
+                if (!chuanyunSelfWorkHourDO.getProjectType().equals("生产项目")){
+                    String projectId;
+                    if (chuanyunSelfWorkHourDO.getProjectId().equals(ChuanYunConstant.PRODUCTION_PROJECT_ID)){
+                        projectId="";
+                    }else{
+                        projectId=chuanyunSelfWorkHourDO.getProjectId();
+                    }
+                    Integer count = map.get(chuanyunSelfWorkHourDO.getUserId() + projectId + chuanyunSelfWorkHourDO.getDayLogDate());
+                    if (count == null) {
+                        try {
+                            //删除数据库日工时
+                            chuanyunSelfWorkHourDao.delete(chuanyunSelfWorkHourDO);
+                            //删除氚云日工时
+                            List<String> matchers = new ArrayList<>();
+                            if (!StringUtils.isEmpty(chuanyunSelfWorkHourDO.getProjectId())&&!chuanyunSelfWorkHourDO.getProjectId().equals(ChuanYunConstant.PRODUCTION_PROJECT_ID)){
+                                matchers.add("F0000001_2," + chuanyunSelfWorkHourDO.getProjectId());
+                            }
+                            matchers.add("F0000002_2," + chuanyunSelfWorkHourDO.getUserId());
+                            matchers.add("F0000003_2," + chuanyunSelfWorkHourDO.getDayLogDate());
+                            var filter = Filter.instance(0, 1, true, "And", matchers);
+                            var chuanyunFindAllResponse = chuanYunManager.findAll(ChuanyunMemberHourDO.SCHEMA_CODE, filter);
+                            ChuanyunSaveDTO chuanyunSaveDTO;
+                            if (chuanyunFindAllResponse.getReturnData() != null) {
+                                List<ChuanyunMemberHourDO> result = objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>() {
+                                });
+                                chuanyunSaveDTO = chuanYunManager.delete(ChuanyunMemberHourDO.SCHEMA_CODE, result.get(0).getObjectId());
+                            }
+                            log.info(chuanyunSelfWorkHourDO.getUserId() + "删除" + chuanyunSelfWorkHourDO.getDayLogDate() + "位于" + chuanyunSelfWorkHourDO.getProjectId() + "工时");
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                            log.error(e.getMessage());
                         }
-                        log.info(chuanyunSelfWorkHourDO.getUserId() + "删除" + chuanyunSelfWorkHourDO.getDayLogDate() + "位于" + chuanyunSelfWorkHourDO.getProjectId() + "工时");
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                        log.error(e.getMessage());
                     }
                 }
             }

+ 1 - 1
src/main/java/com/galaxis/manatee/task/LogCheckTask.java

@@ -33,7 +33,7 @@ public class LogCheckTask {
      * 2.遍历每个用户,核对每周、每月工时准确性
      * 3.遍历每个项目核对每个项目总工时
      */
-//    @Scheduled(fixedDelay = 432000000L)
+    @Scheduled(fixedDelay = 432000000L)
     private void checkLod(){
         chuanyunUserCompanyDao.findAll().forEach(chuanyunUserCompanyDO -> {
             try {