Explorar o código

Merge remote-tracking branch 'origin/V0.0.2' into V0.0.2

jingyuanchao %!s(int64=2) %!d(string=hai) anos
pai
achega
1eb8927611

+ 7 - 0
project_data/sql/0.0.2/soc/soc.sql

@@ -1108,6 +1108,13 @@ END IF;
 
     END IF;
 
+    -- 安全检查次数字段
+    IF
+        NOT EXISTS ( SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = DATABASE () and  TABLE_NAME = 'core_safety_task' AND COLUMN_NAME = 'count' ) THEN
+        ALTER TABLE `core_safety_task` ADD COLUMN `count` int  COMMENT '次数,代替批次id';
+
+    END IF;
+
 	-- 履职任务NFC表增加submitby
     IF
         NOT EXISTS ( SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = DATABASE () and TABLE_NAME = 'core_resumption_data_nfc' AND COLUMN_NAME = 'submit_by' ) THEN

+ 1 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/domain/CoreSafetyTask.java

@@ -50,6 +50,7 @@ public class CoreSafetyTask extends BaseEntity {
      */
     @ApiModelProperty(value = "标题")
     private String title;
+    private Integer count;
 
     /**
      * 异常数目

+ 14 - 7
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/job/SafetyCheckJobBusiness.java

@@ -367,6 +367,7 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
                 vo.setStartTime(plan.getStartDate());
                 vo.setCheckOrg(check);
                 vo.setExecOrg(org);
+                vo.setCount(i + 1);
                 vo.setPlanCycle(Math.toIntExact(plan.getPlanCycle()));
                 if (plan.getCount() == 1) {
                     vo.setPlanName(plan.getPlanName());
@@ -441,6 +442,7 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
             checkTask.setCheckOrgId(taskPlan.getCheckOrg().getId());
             checkTask.setCheckOrgName(taskPlan.getCheckOrg().getShortName());
             checkTask.setStatus(1);
+            checkTask.setCount(taskPlan.getCount());
             checkTask.setCheckType(0L);
             checkTask.setCheckCycle(Long.valueOf(taskPlan.getPlanCycle()));
             checkTask.setYmdDate(datetime);
@@ -643,9 +645,8 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
 
     }
 
-    @Override
-    public void rebuildWeeklyTask(List<Long> orgIds, Date startDate, Date endDate) {
-        Map<Long, Boolean> workingMap = orgWorkTimeStatusMap(startDate, CycleCommonEnum.WEEKLY, orgIds);
+    public void rebuildTask(List<Long> orgIds, Date startDate, Date endDate, CycleCommonEnum cycle) {
+        Map<Long, Boolean> workingMap = orgWorkTimeStatusMap(startDate, cycle, orgIds);
 //        List<Long> deleteTaskIds = new ArrayList<>();
 
         List<SysOrg> orgs = remoteOrgService.selectByOrgIdList(orgIds, SecurityConstants.INNER);
@@ -655,6 +656,7 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
             }
 
             Long orgId = worg.getId();
+            checkTaskService.deleteByOrgIdAndRange(orgId, startDate, endDate);
             if (!workingMap.containsKey(orgId) || !workingMap.get(orgId)) {
                 //当前作息周期已经歇业,删除未进行的任务
                 checkTaskService.deleteByOrgIdAndRange(orgId, startDate, endDate);
@@ -745,23 +747,28 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
     }
 
     @Override
-    public void rebuildMonthTask(List<Long> orgIds, Date startDate, Date endDate) {
+    public void rebuildWeeklyTask(List<Long> orgIds, Date startDate, Date endDate) {
+        rebuildTask(orgIds, startDate, endDate, CycleCommonEnum.WEEKLY);
+    }
 
+    @Override
+    public void rebuildMonthTask(List<Long> orgIds, Date startDate, Date endDate) {
+        rebuildTask(orgIds, startDate, endDate, CycleCommonEnum.MONTHLY);
     }
 
     @Override
     public void rebuildQuarterTask(List<Long> orgIds, Date startDate, Date endDate) {
-
+        rebuildTask(orgIds, startDate, endDate, CycleCommonEnum.QUARTERLY);
     }
 
     @Override
     public void rebuildHalfYearTask(List<Long> orgIds, Date startDate, Date endDate) {
-
+        rebuildTask(orgIds, startDate, endDate, CycleCommonEnum.HALF_YEARLY);
     }
 
     @Override
     public void rebuildYearTask(List<Long> orgIds, Date startDate, Date endDate) {
-
+        rebuildTask(orgIds, startDate, endDate, CycleCommonEnum.YEARLY);
     }
 
     @Override

+ 3 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/service/impl/CoreSafecheckPlanServiceImpl.java

@@ -296,8 +296,10 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
             coreSafecheckPlan.setDistribute("0");
             //计划所属机构类型
             coreSafecheckPlan.setPlanOfOrgType(orgService.selectSysOrgById(coreSafecheckPlan.getPlanOfOrgId(), SecurityConstants.INNER).getType());
-            if (coreSafecheckPlan.getPlanOfOrgType() == 3) {
+            //如果是行社并且勾选了立即下发需要修改下发状态为已下发,因为会立即触发下发动作
+            if (coreSafecheckPlan.getPlanOfOrgType() == 3&&coreSafecheckPlan.isBuildTaskNow()) {
                 coreSafecheckPlan.setPlanStatus(1L);
+                coreSafecheckPlan.setDistribute("1");
             } else {
                 coreSafecheckPlan.setPlanStatus(0L);
             }

+ 1 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/vo/PlanTaskBuildVo.java

@@ -46,6 +46,7 @@ public class PlanTaskBuildVo {
      * 受检机构
      */
     private SysOrg execOrg;
+    private Integer count;
     /**
      * 检查角色
      */

+ 1 - 3
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysWorkTimeSetServiceImpl.java

@@ -384,9 +384,7 @@ public class SysWorkTimeSetServiceImpl extends ServiceImpl<SysWorkTimeSetMapper,
                     workTimeEditDtoList.add(dto);
                     if (ObjectUtil.isNull(dayOfWeekSet) || !(dayOfWeekSet.getIsWorkday() > 0)) {
                         Optional<SysWorkTimeSetDayofweek> firstWorkDay = workTime.getDayOfWeeks().stream().filter(f -> f.getIsWorkday() > 0).findFirst();
-                        if (firstWorkDay.isPresent()) {
-                            dayOfWeekSet = firstWorkDay.get();
-                        }
+                        dayOfWeekSet = firstWorkDay.orElseGet(SysWorkTimeSetDayofweek::new);
                     }
                     dto.setWorkTime(dayOfWeekSet.getWorkTime());
                     dto.setWorkOffTime(dayOfWeekSet.getWorkOffTime());