Jelajahi Sumber

强制调剂阶段 - 结构调整

hare8999@163.com 3 tahun lalu
induk
melakukan
36bfccfe38

+ 8 - 1
doc/Mind/ElectiveGeneration.cs

@@ -97,7 +97,9 @@ namespace mxdemo.Mind
         bool enablePushNextDMGeneration; // 是否可以强制推进下一代决策进程 = 当前为报名进程,且学生均已报名
         bool allowDMAlgorithm; // 当前为决策进程,支持运行匹配算法(BackTrackingDM,FinalAdjustDM)
         bool doneDMAlgorithm; // 当前为决策进程,且已经运行了匹配算法
-        bool allowForce; // 当前进程代是否允许强制调剂录取(原来BackTrackingDM,FinalAdjustDM,RankBalance),现在调整为(FinalAdjustDM,RankBalance)
+        // 5.13 现在只有forceAdjust阶段开放
+        bool allowForce; // 当前阶段是否开放了强制调剂功能
+        bool enableForceAdjustEntry; // 当前是否展示强制阶段入口:2次补录结果匹配算法之后一定展示此入口;如果提前录取完毕,加个匹配项控制是否展示此入口(最好配置到round,作为后门),默认不展示
     }
 
     // 1 初选决策时,需要进行设置
@@ -515,6 +517,11 @@ namespace mxdemo.Mind
         /// <param name="setting">推进配置</param>
         void pushGenerationSetting(FlowPushSetting setting);
 
+        /// <summary>
+        /// 5.13 hht 二次补录结果(或者提前录取完毕时)跳转到强制调剂
+        /// </summary>
+        void jumpGenerationForceAdjust();
+
         /// <summary>
         /// 如果在所有学生全部录取的情况,可以在任意决策结点跳转至排名均衡
         /// </summary>

+ 1 - 0
mock/modules/elective-generation.js

@@ -36,6 +36,7 @@ module.exports = [
           allowDMAlgorithm: true,
           doneDMAlgorithm: true,
           allowForce: true,
+          enableForceAdjustEntry: true
         }
       }
     }

+ 9 - 0
src/api/webApi/elective/generation.js

@@ -68,6 +68,15 @@ export function flushIntoGenerationDM() {
   })
 }
 
+// /front/elective/generation/jumpGenerationForceAdjust
+// 二次补录结果(或者提前录取完毕时)跳转到强制调剂
+export function jumpGenerationForceAdjust() {
+  return request({
+    url: '/front/elective/generation/jumpGenerationForceAdjust',
+    method: 'post'
+  })
+}
+
 // /front/elective/generation/jumpGenerationRankBalance
 // 如果在所有学生全部录取的情况,可以在任意决策结点跳转至排名均衡
 export function jumpGenerationRankBalance() {

+ 13 - 3
src/common/mx-config.js

@@ -148,19 +148,29 @@ export default {
       description: '',
       icon: ''
     },
+    forceAdjust: {
+      key: 'forceAdjust',
+      value: 7,
+      code: 'ForceAdjust',
+      decisionMaking: true,
+      stepsVisible: true,
+      title: '强制调剂',
+      description: '',
+      icon: ''
+    },
     rankBalance: {
       key: 'rankBalance',
-      value: 7,
+      value: 8,
       code: 'RankBalance',
       decisionMaking: true,
-      stepsVisible: true,
+      stepsVisible: false,
       title: '排名均衡',
       description: '',
       icon: ''
     },
     terminate: {
       key: 'terminate',
-      value: 8,
+      value: 9,
       code: 'Terminate',
       decisionMaking: false,
       stepsVisible: false,

+ 11 - 2
src/views/elective/generation/components/elective-generation-commands.vue

@@ -7,7 +7,8 @@
     </div>
     <div>
       <el-button v-if="showFastPush" type="primary" @click="flushIntoDM">提前进入{{ nextStepName }}</el-button>
-      <el-button v-if="showSend" type="primary" @click="pushGeneration">发送</el-button>
+      <el-button v-if="showForceAdjustSend" type="primary" @click="jumpForceAdjust">进入强制调剂</el-button>
+      <el-button v-else-if="showSend" type="primary" @click="pushGeneration">发送</el-button>
       <el-button v-if="showRankBalance" type="primary" @click="jumpRankBalance">排名均衡</el-button>
       <el-button v-if="showClassDispatch" type="primary" @click="terminateAndJumpDispatch">选科分班</el-button>
       <el-button v-else type="primary" @click="jumpDispatch">选科分班</el-button>
@@ -26,7 +27,7 @@
 <script>
 import {
   applyElectiveDMAlgorithm,
-  flushIntoGenerationDM,
+  flushIntoGenerationDM, jumpGenerationForceAdjust,
   jumpGenerationRankBalance, pushGenerationSetting,
   terminateGeneration
 } from '@/api/webApi/elective/generation'
@@ -65,6 +66,9 @@ export default {
       const next = this.generation.current + 1
       return Object.values(options).find(opt => opt.value == next).title
     },
+    showForceAdjustSend() {
+      return this.status.enableForceAdjustEntry
+    },
     showSend() {
       return this.status.doneDMAlgorithm && !this.status.allMatched
     },
@@ -114,6 +118,11 @@ export default {
         this.notifyRootRefresh()
       })
     },
+    jumpForceAdjust() {
+      jumpGenerationForceAdjust().finally(() => {
+        this.notifyRootRefresh()
+      })
+    },
     jumpRankBalance() {
       jumpGenerationRankBalance().finally(() => {
         this.notifyRootRefresh()