jingyuanchao преди 2 години
родител
ревизия
15c249fd3e

+ 5 - 6
project_data/sql/0.0.2/soc/soc.sql

@@ -1170,6 +1170,11 @@ ALTER TABLE `core_protection` MODIFY COLUMN `device_id` BIGINT NULL DEFAULT NULL
 -- 修改培训任务表状态字段含义注释
 	alter table core_edu_training_task  modify status int null comment '任务状态:0:待培训,1:待签名,2:已完成,3:已逾期,4:待提交';
 	alter table sys_menu modify icon mediumtext null comment '菜单图标';
+-- 修改表字段释义
+alter table core_edu_training_plan
+    modify plan_status int null comment '计划状态:0草稿,1使用中,2停用';
+alter table core_drill_plan
+    modify plan_status int null comment '计划状态:0草稿,1使用中,2停用';
 
 END ??
 DELIMITER;
@@ -2177,12 +2182,6 @@ DELETE from sys_menu WHERE perms in ('device:protection:add','device:protection:
 -- 隐藏知识库标签管理菜单
 delete  from sys_role_menu rm  where rm.menu_id in ( select id from sys_menu  where menu_name='知识库标签管理' union all select sm.id from sys_menu m inner join sys_menu sm on m.id=sm.parent_id where  m.menu_name='知识库标签管理');
 
--- 修改表字段释义
-alter table core_edu_training_plan
-    modify plan_status int null comment '计划状态:0草稿,1使用中,2停用';
-alter table core_drill_plan
-    modify plan_status int null comment '计划状态:0草稿,1使用中,2停用';
-
 -- 修改菜单名称,删除网点用户关于培训计划/演练计划的菜单权限
 update sys_menu set menu_name ='教育培训计划下发' where menu_name='下发' and perms='core:plan:publish';
 delete from sys_role_menu where role_id in (select id from sys_role  where org_type=4) and menu_id in (select id from sys_menu m where menu_name like '%培训计划%');

+ 1 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/ICoreDrillPlanService.java

@@ -87,4 +87,5 @@ public interface ICoreDrillPlanService extends IService<CoreDrillPlan> {
 
     int revocationPlan(Long planId);
 
+    void populateProperties(CoreDrillPlan source, CoreDrillPlan target);
 }

+ 21 - 9
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/impl/CoreDrillPlanServiceImpl.java

@@ -294,16 +294,19 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
         // 判断标准计划能否修改:存在下发的计划生成了任务且任务存在已执行
         Integer standardPlanHasDone = coreDrillTaskMapper.checkHasTaskIsDoneByPlanParentId(planId);
         if (ObjectUtil.equal(standardPlanHasDone, 1)) {
+            SysOrg sysOrg = RemoteCallHandlerExecutor.executeRemoteCall(() ->
+                    orgService.selectOrgById(SecurityUtils.getLoginUser().getOrgId(), SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
             //验证修改的字段是否符合要求
             String errorMsg = "有任务已执行或已过期,仅允许修改计划名称!";
-            validatePlanForStandard(request, plan, errorMsg);
+            validatePlanForStandard(request, plan, errorMsg, sysOrg.getType());
             doUpdatePlan(plan, request);
             coreDrillPlanMapper.updatePlanName(plan.getId(), plan.getPlanName());
             coreDrillTaskMapper.updateTaskNameByParentPlanId(planId, plan.getPlanName(), range.getStartTime(), range.getEndTime());
         } else {
             doUpdatePlan(plan, request);
             delAllByParentPlanId(plan.getId());
-            List<CoreDrillPlan> planList = buildPlanData(plan, null, false);            TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {
+            List<CoreDrillPlan> planList = buildPlanData(plan, null, false);
+            TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {
                 @Override
                 public void afterCommit() {
                     for (CoreDrillPlan drillPlan : planList) {
@@ -327,7 +330,8 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
 
     }
 
-    private void populateProperties(CoreDrillPlan source, CoreDrillPlan target) {
+    @Override
+    public void populateProperties(CoreDrillPlan source, CoreDrillPlan target) {
         target.setPlanName(source.getPlanName());
         target.setPlanCycle(source.getPlanCycle());
         target.setExecTimes(source.getExecTimes());
@@ -369,8 +373,15 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
             throw new RuntimeException("执行次数不能小于基准计划执行次数!");
         }
         if (ObjectUtil.notEqual(plan.getId(), plan.getParentId())) {
-            String errorMsg = "子计划仅允许修改培训次数!";
-            validatePlanForStandard(request, plan, errorMsg);
+            String errorMsg = null;
+            SysOrg sysOrg = RemoteCallHandlerExecutor.executeRemoteCall(() ->
+                    orgService.selectOrgById(SecurityUtils.getLoginUser().getOrgId(), SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
+            if (ObjectUtil.equal(sysOrg.getType(), OrgTypeEnum.SHEGN_LIAN_SHE.getCode())) {
+                errorMsg = "当前用户身份仅允许修改子计划的计划名称和演练次数!!";
+            } else {
+                errorMsg = "当前用户身份仅允许修改子计划的演练次数!";
+            }
+            validatePlanForStandard(request, plan, errorMsg, sysOrg.getType());
         }
         doUpdatePlan(plan, request);
         final long done = coreDrillTaskMapper.selectCount(new LambdaQueryWrapper<CoreDrillTask>()
@@ -418,7 +429,7 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
     }
 
 
-    private void validatePlanForStandard(CoreDrillPlanUpdateDto request, CoreDrillPlan plan, String errorMsg) {
+    private void validatePlanForStandard(CoreDrillPlanUpdateDto request, CoreDrillPlan plan, String errorMsg, Integer type) {
         validateFieldForStandard(request.getPlanCycle(), plan.getPlanCycle(), errorMsg);
         validateFieldForStandard(request.getExecOrgType(), plan.getExecOrgType(), errorMsg);
         List<Long> execOrgIdList = coreDrillPlanToExecOrgMapper.selectOrgIdByPlanId(plan.getId());
@@ -426,9 +437,10 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
         validateFieldForStandard(request.getRemark(), plan.getRemark(), errorMsg);
         validateFileListForStandard(request.getFileList(), JSON.parseArray(plan.getFileList(), String.class), errorMsg);
 
-        //标准计划可以修改名称
-        //validateFieldForStandard(request.getPlanName(), plan.getPlanName(), errorMsg);
-
+        if (OrgTypeEnum.HANG_SHE.equals(OrgTypeEnum.getOrgTypeEnum(type))) {
+            //标准计划可以修改名称,行社不允许修改名称
+            validateFieldForStandard(request.getPlanName(), plan.getPlanName(), errorMsg);
+        }
 
     }
 

+ 18 - 6
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/CoreEduTrainingPlanServiceImpl.java

@@ -281,8 +281,15 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
         }
 
         if (ObjectUtil.notEqual(plan.getId(), plan.getParentId())) {
-            String errorMsg = "子计划仅允许修改培训次数!";
-            validatePlanForStandard(request, plan, errorMsg);
+            String errorMsg = null;
+            SysOrg sysOrg = RemoteCallHandlerExecutor.executeRemoteCall(() ->
+                    orgService.selectOrgById(SecurityUtils.getLoginUser().getOrgId(), SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
+            if (ObjectUtil.equal(sysOrg.getType(), OrgTypeEnum.SHEGN_LIAN_SHE.getCode())) {
+                errorMsg = "当前用户身份仅允许修改子计划的计划名称和演练次数!!";
+            } else {
+                errorMsg = "当前用户身份仅允许修改子计划的演练次数!";
+            }
+            validatePlanForStandard(request, plan, errorMsg, sysOrg.getType());
         }
         doUpdatePlan(plan, request);
 
@@ -338,9 +345,11 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
         // 判断标准计划能否修改:存在下发的计划生成了任务且任务存在已执行
         Integer standardPlanHasDone = coreEduTrainingTaskMapper.checkHasTaskIsDoneByPlanParentId(planId);
         if (ObjectUtil.equal(standardPlanHasDone, 1)) {
+            SysOrg sysOrg = RemoteCallHandlerExecutor.executeRemoteCall(() ->
+                    orgService.selectOrgById(SecurityUtils.getLoginUser().getOrgId(), SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
             //验证修改的字段是否符合要求
             String errorMsg = "有任务已执行或已过期,仅允许修改培训主题!";
-            validatePlanForStandard(request, plan, errorMsg);
+            validatePlanForStandard(request, plan, errorMsg,sysOrg.getType());
             doUpdatePlan(plan, request);
             coreEduTrainingPlanMapper.updatePlanName(plan.getId(), plan.getPlanName());
             coreEduTrainingTaskMapper.updateTaskNameByParentPlanId(planId, plan.getPlanName(), range.getStartTime(), range.getEndTime());
@@ -402,7 +411,7 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
 
     }
 
-    private void validatePlanForStandard(CoreEduTrainingPlanEditDto request, CoreEduTrainingPlan plan, String errorMsg) {
+    private void validatePlanForStandard(CoreEduTrainingPlanEditDto request, CoreEduTrainingPlan plan, String errorMsg,Integer type) {
         validateFieldForStandard(request.getPlanCycle(), plan.getPlanCycle(), errorMsg);
         validateFieldForStandard(request.getExecOrgType(), plan.getExecOrgType(), errorMsg);
         List<Long> execOrgIdList = coreEduTrainingPlanToExecOrgMapper.selectOrgIdByPlanId(plan.getId());
@@ -410,8 +419,11 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
         validateFieldForStandard(request.getRemark(), plan.getRemark(), errorMsg);
         validateFileListForStandard(request.getFileList(), JSON.parseArray(plan.getFileList(), String.class), errorMsg);
 
-        //标准计划可以修改名称
-        validateFieldForStandard(request.getPlanName(), plan.getPlanName(), errorMsg);
+        if (OrgTypeEnum.HANG_SHE.equals(OrgTypeEnum.getOrgTypeEnum(type))) {
+            //标准计划可以修改名称,行社不允许修改名称
+            validateFieldForStandard(request.getPlanName(), plan.getPlanName(), errorMsg);
+        }
+
 
     }