Browse Source

Merge branch 'master' of http://121.4.203.192:9000/mingxue/front

shilipojs 2 years ago
parent
commit
d6b82a11f5

+ 9 - 1
doc/Mind/PrimaryElective.cs

@@ -96,9 +96,14 @@ namespace mxdemo.Mind
         // 报名代=Math.max(0, personCount-groupApprovedCount) 决策代=从报名代继承值
         // 设置人数-组合录取人数(迭代数)
 
+        public int preferenceOverflow; // 志愿超缺(多志愿取1志愿),正数超,负数缺
+        // 5.31 注
+        // 多志愿场景下,1志愿超出与下阶段的指标不能重合,新加字段来表示
+        // 在报名代生成=(groupApprovedCount+actualCount[多志愿使用1志愿])-personCount 或者 actualCount-groupIndicator
+        // 决策代从报名代继承
         public int nextGroupIndicator; // 下阶段组合指标
         // 5.22 注
-        // 报名代=0  决策代用来表示超缺=(groupApprovedCount+actualCount[多志愿使用1志愿])-personCount
+        // 决策代,匹配算法后生成=Math.max(0, personCount-groupApprovedCount)
         public bool nextAllowSelect;
         public bool nextRecommend;
         // 5.26 +nextAllowSelect +nextRecommend
@@ -170,6 +175,9 @@ namespace mxdemo.Mind
       public ElectiveSelectModel[] models;
       public int generation;
       public long studentId;
+      public int preferenceCount;
+      // 5.31 +到当前阶段为止的未录取人数
+      public int disenrollCount;
     }
 
     // 自选专业

+ 15 - 10
mock/modules/elective-subject.js

@@ -5,12 +5,12 @@ module.exports = [
   //  自选专业
   {
     url: '/mock/front/elective/optionalMajors',
-    type:'get',
+    type: 'get',
     response: config => {
       return {
         code: 200,
         msg: 'success',
-        data:[
+        data: [
           {
             collegeId: 1,
             collegeName: '北京大学',
@@ -19,7 +19,7 @@ module.exports = [
             majors: [],          // 类别下分类
             limitationA: '',
             limitationB: '',
-            matchedGroupIds: [3,2], // 匹配哪几个组合?
+            matchedGroupIds: [3, 2] // 匹配哪几个组合?
           },
           {
             collegeId: 2,
@@ -29,7 +29,7 @@ module.exports = [
             majors: [],          // 类别下分类
             limitationA: '',
             limitationB: '',
-            matchedGroupIds: [2], // 匹配哪几个组合?
+            matchedGroupIds: [2] // 匹配哪几个组合?
           },
           {
             collegeId: 3,
@@ -39,7 +39,7 @@ module.exports = [
             majors: [],          // 类别下分类
             limitationA: '',
             limitationB: '',
-            matchedGroupIds: [1,2], // 匹配哪几个组合?
+            matchedGroupIds: [1, 2] // 匹配哪几个组合?
           },
           {
             collegeId: 3,
@@ -49,7 +49,7 @@ module.exports = [
             majors: [],          // 类别下分类
             limitationA: '',
             limitationB: '',
-            matchedGroupIds: [1], // 匹配哪几个组合?
+            matchedGroupIds: [1] // 匹配哪几个组合?
           }
         ]
       }
@@ -58,12 +58,12 @@ module.exports = [
   // 选科报名models
   {
     url: '/mock/front/elective/enroll/getStudentElectiveModels',
-    type:'get',
+    type: 'get',
     response: config => {
       return {
         code: 200,
         msg: 'success',
-        data:[
+        data: [
           {
             models: [
               {
@@ -89,7 +89,12 @@ module.exports = [
                 approved: false,
                 forceAdjusted: false,
                 groupApprovedCount: 0,
-                groupForceAdjustedCount: 0
+                groupForceAdjustedCount: 0,
+
+                preferenceOverflow: 0,
+                nextGroupIndicator: 0,
+                nextAllowSelect: false,
+                nextRecommend: false
               },
 
               {
@@ -1173,7 +1178,7 @@ module.exports = [
         ]
       }
     }
-  },
+  }
   // 选科报名models
   // {
   //   url: '/mock/front/elective/studentElectiveModels',

+ 1 - 1
src/views/elective/select/components/ai-round-select-resolvers/backTracking-ai-resolver-mixins.js

@@ -4,7 +4,7 @@ export default {
       const models = model?.models || []
       this.formatRows.forEach(item => {
         const currentGroup = models.find(group => group.groupId == item.groupId) || {}
-        const disenrollAll = Math.abs(models.sum(m => m.groupIndicator))
+        const disenrollAll = model.disenrollCount
         item.groupIndicator = currentGroup.groupIndicator
         item.supplyBestIndicator = currentGroup.bestInIndicator || '-'
         item.supplyRankInBest = currentGroup.rankInBest ? `${currentGroup.rankInBest}/${currentGroup.bestInIndicator}` : '-'

+ 34 - 0
src/views/elective/select/components/ai-round-select-resolvers/backTrackingDM-ai-resolver-mixins.js

@@ -0,0 +1,34 @@
+export default {
+  methods: {
+    backTrackingDMAIResolver(model, activeModel, context) {
+      const models = model?.models || []
+      this.formatRows.forEach(item => {
+        const currentGroup = models.find(group => group.groupId == item.groupId) || {}
+        const disenrollAll = model.disenrollCount
+        item.groupIndicator = currentGroup.nextGroupIndicator
+        item.supplyBestIndicator = currentGroup.bestInIndicator || '-'
+        item.supplyRankInBest = currentGroup.rankInBest ? `${currentGroup.rankInBest}/${currentGroup.bestInIndicator}` : '-'
+        item.supplyRankInDisenroll = currentGroup.rankInDisenroll ? `${currentGroup.rankInDisenroll}/${disenrollAll}` : '-'
+        item.recommendRank = currentGroup.rankInIndicator ? `${currentGroup.rankInIndicator}/${currentGroup.nextGroupIndicator}` : '-'
+
+      })
+      return {
+        groupIndicator: {
+          label: '二次补录计划'
+        },
+        supplyRankInDisenroll: {
+          label: '二次补录人数总排名'
+        },
+        supplyBestIndicator: {
+          label: '二次补录组合成绩最优人数'
+        },
+        supplyRankInBest: {
+          label: '二次补录组合成绩最优排名'
+        },
+        recommendRank: {
+          label: '二次补录最优推荐录取排名'
+        }
+      }
+    }
+  }
+}

+ 1 - 1
src/views/elective/select/components/ai-round-select-resolvers/finalAdjust-ai-resolver-mixins.js

@@ -4,7 +4,7 @@ export default {
       const models = model?.models || []
       this.formatRows.forEach(item => {
         const currentGroup = models.find(group => group.groupId == item.groupId) || {}
-        const disenrollAll = Math.abs(models.sum(m => m.groupIndicator))
+        const disenrollAll = model.disenrollCount
         item.groupIndicator = currentGroup.groupIndicator
         item.supplyBestIndicator = currentGroup.bestInIndicator || '-'
         item.supplyRankInBest = currentGroup.rankInBest ? `${currentGroup.rankInBest}/${currentGroup.bestInIndicator}` : '-'

+ 34 - 0
src/views/elective/select/components/ai-round-select-resolvers/primaryDM-ai-resolver-mixins.js

@@ -0,0 +1,34 @@
+export default {
+  methods: {
+    primaryDMAIResolver(model, activeModel, context) {
+      const models = model?.models || []
+      this.formatRows.forEach(item => {
+        const currentGroup = models.find(group => group.groupId == item.groupId) || {}
+        const disenrollAll = model.disenrollCount
+        item.groupIndicator = currentGroup.nextGroupIndicator
+        item.supplyBestIndicator = currentGroup.bestInIndicator || '-'
+        item.supplyRankInBest = currentGroup.rankInBest ? `${currentGroup.rankInBest}/${currentGroup.bestInIndicator}` : '-'
+        item.supplyRankInDisenroll = currentGroup.rankInDisenroll ? `${currentGroup.rankInDisenroll}/${disenrollAll}` : '-'
+        item.recommendRank = currentGroup.rankInIndicator ? `${currentGroup.rankInIndicator}/${currentGroup.nextGroupIndicator}` : '-'
+
+      })
+      return {
+        groupIndicator: {
+          label: '补录计划'
+        },
+        supplyRankInDisenroll: {
+          label: '补录人数总排名'
+        },
+        supplyBestIndicator: {
+          label: '补录组合成绩最优人数'
+        },
+        supplyRankInBest: {
+          label: '补录组合成绩最优排名'
+        },
+        recommendRank: {
+          label: '补录最优推荐录取排名'
+        }
+      }
+    }
+  }
+}

+ 0 - 1
src/views/elective/select/components/elective-ai-table.vue

@@ -34,7 +34,6 @@ import ElectiveTableMixin from './elective-table-mixins'
 export default {
   mixins: [ElectiveTableMixin, ...resolvers],
   name: 'elective-ai-table',
-  props: ['generation', 'optionalMajors'],
   components: {
     ElectiveTableGroupTag,
     ElectiveMajorCollege,

+ 1 - 1
src/views/elective/select/components/elective-table-mixins.js

@@ -7,7 +7,7 @@ const resolvers = resolverModules.keys().map(key => resolverModules(key).default
 
 export default {
   mixins: [...resolvers, ElectiveToolsMixin],
-  props: ['generation', 'optionalMajors'],
+  props: { 'generation': null, 'optionalMajors': null, 'readonly': Boolean },
   computed: {
     ...mapGetters(['hasPermissions']),
     enrollStatus() {

+ 1 - 3
src/views/elective/select/components/round-select-resolvers/backTrackingDM-resolver-mixins.js

@@ -4,8 +4,7 @@ export default {
       const models = model?.models || []
       this.formatRows.forEach(item => {
         const currentGroup = models.find(group => group.groupId == item.groupId) || {}
-        item.supplyIndicator = currentGroup.nextGroupIndicator
-        // 录取人数加指标 / 设置人数
+        item.supplyIndicator = currentGroup.preferenceOverflow
         item.backTrackingApply = `${currentGroup.groupApprovedCount } /${currentGroup.personCount}`
       })
 
@@ -19,7 +18,6 @@ export default {
         },
         backTrackingApply: {
           label: '补录情况' // 补录情况 =
-          // groupApprovedCount(补录阶段实际报名人数) + actualCount(补录本组合已被录取人数) / personCount(设置的人数)
         },
         supplyIndicator: {
           label: '补录结果', // 补录的超缺

+ 1 - 1
src/views/elective/select/components/round-select-resolvers/finalAdjust-resolver-mixins.js

@@ -4,7 +4,7 @@ export default {
       const models = model?.models || []
       this.formatRows.forEach(item => {
         const currentGroup = models.find(group => group.groupId == item.groupId) || {}
-        item.finalAdjustApply = `${currentGroup.actualCount } /${currentGroup.groupIndicator}`
+        item.finalAdjustApply = `${currentGroup.actualCount} /${currentGroup.groupIndicator}`
       })
       return {
         finalAdjustApply: {

+ 1 - 1
src/views/elective/select/components/round-select-resolvers/finalAdjustDM-resolver-mixins.js

@@ -5,7 +5,7 @@ export default {
       this.formatRows.forEach(item => {
         const currentGroup = models.find(group => group.groupId == item.groupId) || {}
         item.finalAdjustApply = `${currentGroup.groupApprovedCount } /${currentGroup.personCount}`
-        item.towSupplyIndicator = currentGroup.nextGroupIndicator
+        item.towSupplyIndicator = currentGroup.preferenceOverflow
       })
       return {
         finalAdjustApply:{

+ 2 - 2
src/views/elective/select/components/round-select-resolvers/forceAdjust-resolver-mixins.js

@@ -4,8 +4,8 @@ export default {
       const models = model?.models || []
       this.formatRows.forEach(item => {
         const currentGroup = models.find(group => group.groupId == item.groupId) || {}
-        item.adjustRecord = `${currentGroup.groupApprovedCount + currentGroup.actualCount} /${currentGroup.personCount}`
-        item.adjustIndicator = currentGroup.nextGroupIndicator
+        item.adjustRecord = `${currentGroup.groupApprovedCount + currentGroup.groupForceAdjustedCount} /${currentGroup.personCount}`
+        item.adjustIndicator = currentGroup.groupApprovedCount + currentGroup.groupForceAdjustedCount - currentGroup.personCount
       })
       return {
         adjustRecord: {

+ 1 - 1
src/views/elective/select/components/round-select-resolvers/primaryDM-resolver-mixins.js

@@ -4,7 +4,7 @@ export default {
       const models = model?.models || []
       this.formatRows.forEach(item => {
         const currentGroup = models.find(group => group.groupId == item.groupId) || {}
-        item.primarySituation = currentGroup.nextGroupIndicator
+        item.primarySituation = currentGroup.preferenceOverflow
       })
 
       if (activeModel.generation < 4) {