Browse Source

调整计划

luojun 2 năm trước cách đây
mục cha
commit
7007bbefcf

+ 28 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/controller/ApiPlanController.java

@@ -215,6 +215,34 @@ public class ApiPlanController {
 //    @RequiresPermissions("core:plan:findById")
     public AjaxResult cheHui(@PathVariable Long id) {
         appPlanService.cheHui(id);
+        AppPlan plan = appPlanService.getById(id);
+        //撤回后的下发如果存在子计划并且勾选立即执行也需要生成任务
+        if(plan.getBuildTaskNow()==1){
+            DateTime datetime = new DateTime();
+            datetime.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
+            //当有周期存在时保持原有接口不变(doTask),否则按照新的接口创建
+            Integer plancycle = plan.getPlanCycle();
+            if (plancycle != null) {
+                if (plancycle == 2) {
+                    taskBusiness.syncDay(datetime, plancycle);
+                }
+                if (plancycle == 3) {
+                    taskBusiness.syncWeek(datetime, plancycle);
+                }
+                if (plancycle == 4) {
+                    taskBusiness.syncMonth(datetime, plancycle);
+                }
+                if (plancycle == 5) {
+                    taskBusiness.syncQuarter(datetime, plancycle);
+                }
+                if (plancycle == 6) {
+                    taskBusiness.syncHalfYear(datetime, plancycle);
+                }
+                if (plancycle == 7) {
+                    taskBusiness.syncYear(datetime, plancycle);
+                }
+            }
+        }
         return AjaxResult.success();
     }
     @ApiOperation(value = "撤回后下发")

+ 44 - 45
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/impl/AppPlanServiceImpl.java

@@ -145,39 +145,50 @@ public class AppPlanServiceImpl extends ServiceImpl<AppPlanMapper, AppPlan> impl
             for (DistributeStatusDto d :
                     dto.getOrgAndStatus()) {
 
-                AppPlan plan = baseMapper.selectById(dto.getId());
-                plan.setOrgId(d.getOrgId().toString());
-                plan.setDistributeStatus("1");
-                plan.setPlanOfOrgId(d.getOrgId());
-                plan.setPlanOfOrgType(Long.valueOf(orgService.selectSysOrgById(d.getOrgId(), SecurityConstants.INNER).getType()));
-                plan.setPlanStatus(d.getStatus());
-                plan.setDistributePlanStatus(d.getStatus().toString());
-                plan.setCreateTime(new Date());
-                plan.setId(null);
-//            plan.setPlanName(plan.getPlanName()+"下发"+orgService.selectOrgById(d.getOrgId(),SecurityConstants.INNER).getName());
-                plan.setPlanName(plan.getPlanName());
-                plan.setParentId(dto.getId());
-                baseMapper.insert(plan);
-                Long id = plan.getId();
 
-                List<Long> roleList = appPlanToRoleMapper.selectList(new LambdaQueryWrapper<AppPlanToRole>().eq(AppPlanToRole::getPlanId, dto.getId())).stream().map(AppPlanToRole::getRoleId).collect(Collectors.toList());
-                AppPlanToRole atr = null;
-                for (Long roleId : roleList) {
-                    atr = new AppPlanToRole();
-                    atr.setRoleId(roleId);
-                    atr.setPlanId(id);
-                    appPlanToRoleMapper.insert(atr);
-                }
-
-                List<AppPlanToPoint> itemList = appPlanToItemMapper.selectList(new LambdaQueryWrapper<AppPlanToPoint>().eq(AppPlanToPoint::getPlanId, dto.getId()));
-                AppPlanToPoint item = null;
-                for (AppPlanToPoint ruleItemVo : itemList) {
-                    item = new AppPlanToPoint();
-                    item.setPointId(ruleItemVo.getPointId());
-                    item.setPlanId(id);
-                    item.setPointScan(ruleItemVo.isPointScan());
-                    item.setRequired(ruleItemVo.isRequired());
-                    appPlanToItemMapper.insert(item);
+                AppPlan tempplan = baseMapper.selectOne(new LambdaQueryWrapper<AppPlan>().eq(AppPlan::getPlanOfOrgId,d.getOrgId()).eq(AppPlan::getParentId,dto.getId()));
+                //如果子计划已存在
+                if(tempplan!=null){
+                    tempplan.setPlanStatus(d.getStatus()>0?1:2);
+                    tempplan.setDistributePlanStatus(d.getStatus().toString());
+                    tempplan.setDistributeStatus("1");
+                    baseMapper.updateById(tempplan);
+                }else {
+                    AppPlan plan = baseMapper.selectById(dto.getId());
+                    plan.setOrgId(d.getOrgId().toString());
+                    plan.setDistributeStatus("1");
+                    plan.setPlanOfOrgId(d.getOrgId());
+                    plan.setPlanOfOrgType(Long.valueOf(orgService.selectSysOrgById(d.getOrgId(), SecurityConstants.INNER).getType()));
+                    plan.setPlanStatus(d.getStatus());
+                    plan.setDistributePlanStatus(d.getStatus().toString());
+                    plan.setCreateTime(new Date());
+                    plan.setId(null);
+//            plan.setPlanName(plan.getPlanName()+"下发"+orgService.selectOrgById(d.getOrgId(),SecurityConstants.INNER).getName());
+                    plan.setPlanName(plan.getPlanName());
+                    plan.setParentId(dto.getId());
+                    baseMapper.insert(plan);
+                    Long id = plan.getId();
+
+                    List<Long> roleList = appPlanToRoleMapper.selectList(new LambdaQueryWrapper<AppPlanToRole>().eq(AppPlanToRole::getPlanId, dto.getId())).stream().map(AppPlanToRole::getRoleId).collect(Collectors.toList());
+                    AppPlanToRole atr = null;
+                    for (Long roleId : roleList) {
+                        atr = new AppPlanToRole();
+                        atr.setRoleId(roleId);
+                        atr.setPlanId(id);
+                        appPlanToRoleMapper.insert(atr);
+                    }
+
+                    List<AppPlanToPoint> itemList = appPlanToItemMapper.selectList(new LambdaQueryWrapper<AppPlanToPoint>().eq(AppPlanToPoint::getPlanId, dto.getId()));
+                    AppPlanToPoint item = null;
+                    for (AppPlanToPoint ruleItemVo : itemList) {
+                        item = new AppPlanToPoint();
+                        item.setPointId(ruleItemVo.getPointId());
+                        item.setPlanId(id);
+                        item.setPointScan(ruleItemVo.isPointScan());
+                        item.setRequired(ruleItemVo.isRequired());
+                        item.setOfOrgId(ruleItemVo.getOfOrgId());
+                        appPlanToItemMapper.insert(item);
+                    }
                 }
             }
         }
@@ -221,20 +232,8 @@ public class AppPlanServiceImpl extends ServiceImpl<AppPlanMapper, AppPlan> impl
     @Override
     public int distributeCheHui(Long id) {
         AppPlan plan = baseMapper.selectById(id);
-        //修改所有子计划
-        List<AppPlan> appPlans = baseMapper.selectList(new LambdaQueryWrapper<AppPlan>().eq(AppPlan::getParentId, id));
-        //如果不存在子计划直接返回
-        if (appPlans == null || appPlans.size() == 0) {
-            return 0;
-        }
-        for (AppPlan ap :
-                appPlans) {
-//修改计划状态为停用
-            ap.setPlanStatus(1);
-            baseMapper.updateById(ap);
-        }
+
         //设置下发状态为下发
-        plan.setDistribute("1");
         plan.setPlanStatus(1);
 
         baseMapper.updateById(plan);

+ 1 - 0
soc-modules/soc-modules-core/src/main/resources/mapper/resumption/AppPlanMapper.xml

@@ -235,6 +235,7 @@
                  LEFT JOIN core_resumption_rule_item b ON a.item_id = b.id
                  LEFT JOIN sys_area c ON a.area_id = c.id
                  LEFT JOIN core_resumption_rule d on b.rule_id = d.id
+order by h.of_org_id desc
 --         order by b.item_num, a.point_num
     </select>