团队赛队员位次比值配置

main
zhc077 3 months ago
parent 67ed396f1c
commit cec63755e6
  1. 64
      jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/annualCompPoint/entity/AnnualCompPoint.java
  2. 28
      jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/annualScore/service/impl/PersonalCompScoreServiceImpl.java
  3. 9
      jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/teamseq/controller/TeamSeqController.java
  4. 61
      jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/teamseq/entity/TeamSeq.java
  5. 244
      jeecgboot-vue3-master/src/views/annualCompPoint/committee/components/AnnualCompPointForm.vue

@ -273,68 +273,20 @@ public class AnnualCompPoint implements Serializable {
/**
* 第1序
* 位次
*/
@ApiModelProperty(value = "第1序号")
@TableField(exist = false)
private Integer teamSeqFirst;
/**
* 第1序号比值
*/
@TableField(exist = false)
@ApiModelProperty(value = "第1序号比值")
private Integer teamSeqFirstVal;
/**
* 第2序号
*/
@TableField(exist = false)
@ApiModelProperty(value = "第1序号")
private Integer teamSeqSecond;
/**
* 第2序号比值
*/
@ApiModelProperty(value = "第2序号比值")
@TableField(exist = false)
private Integer teamSeqSecondVal;
/**
* 第3序号
*/
@ApiModelProperty(value = "第3序号")
@TableField(exist = false)
private Integer teamSeqThird;
/**
* 第3序号比值
*/
@ApiModelProperty(value = "第3序号比值")
@TableField(exist = false)
private Integer teamSeqThirdVal;
@Excel(name = "队员在队伍中的位次序号", width = 15)
@ApiModelProperty(value = "队员在队伍中的位次序号")
private Integer teamSeq;
/**
* 第4序号
*/
@ApiModelProperty(value = "第4序号")
@TableField(exist = false)
private Integer teamSeqFourth;
/**
* 第4序号比值
* 位次号比值
*/
@ApiModelProperty(value = "第4序号比值")
@TableField(exist = false)
private Integer teamSeqFourthVal;
/**
* 第5序号
*/
@ApiModelProperty(value = "第5序号")
@TableField(exist = false)
private Integer teamSeqFifth;
/**
* 第5序号比值
*/
@ApiModelProperty(value = "第5序号比值")
@TableField(exist = false)
private Integer teamSeqFifthVal;
@Excel(name = "队员在队伍中的位次序号比值", width = 15)
@ApiModelProperty(value = "队员在队伍中的位次序号比值")
private Integer teamSeqVal;
}

@ -39,6 +39,7 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
/**
* @Description: 个人比赛积分
@ -174,7 +175,8 @@ public class PersonalCompScoreServiceImpl extends ServiceImpl<PersonalCompScoreM
}*/
//modify by zhc 8.23
score.set(ComputeUtils.mul2(baseScore, this.covertVal(annualCompPoint, e)));
List<TeamSeq> seqList = iTeamSeqService.list(new LambdaQueryWrapper<TeamSeq>().eq(TeamSeq::getPointId, annualCompPoint.getId()));
score.set(ComputeUtils.mul2(baseScore, this.covertVal(seqList, e)));
PersonalCompScore bean = new PersonalCompScore();
bean.setAnnualCompId(annualCompId);
bean.setAnnualCompP(annualCompPoint.getId());
@ -228,27 +230,11 @@ public class PersonalCompScoreServiceImpl extends ServiceImpl<PersonalCompScoreM
* @author: z.h.c
* @date: 24/8/23 10:00
*/
double covertVal(AnnualCompPoint annualCompPoint, TeamManagement en) {
TeamSeq teamSeq = iTeamSeqService.getById(annualCompPoint.getId());
double covertVal(List<TeamSeq> teamSeq, TeamManagement en) {
Integer weightVal = 100;
if (!ObjectUtils.isEmpty(teamSeq)) {
switch (en.getTeamSeq()) {
case 1:
weightVal = teamSeq.getTeamSeqFifthVal();
break;
case 2:
weightVal = teamSeq.getTeamSeqSecondVal();
break;
case 3:
weightVal = teamSeq.getTeamSeqThirdVal();
break;
case 4:
weightVal = teamSeq.getTeamSeqFourthVal();
break;
case 5:
weightVal = teamSeq.getTeamSeqFifthVal();
break;
}
if (!ObjectUtils.isEmpty(teamSeq) && !ObjectUtils.isEmpty(en.getTeamSeq())) {
List<TeamSeq> seqSet = teamSeq.stream().filter(b -> b.getTeamSeq() == en.getTeamSeq()).collect(Collectors.toList());
weightVal = seqSet.get(0).getTeamSeqVal();
}
double val = ComputeUtils.div2(new Double(weightVal), ONE_HUNDRED);
return val;

@ -21,7 +21,9 @@ import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
/**
* @Description: 团队赛队员积分计算配置
@ -61,8 +63,11 @@ public class TeamSeqController extends JeecgController<TeamSeq, ITeamSeqService>
@ApiOperation(value = "团队赛队员积分计算配置-分页列表查询", notes = "团队赛队员积分计算配置-分页列表查询")
@GetMapping(value = "/listByPointId")
public Result<List<TeamSeq>> queryPageList(String pointId) {
return Result.OK(teamSeqService.list(new LambdaQueryWrapper<TeamSeq>().eq(TeamSeq::getPointId,pointId)));
public Result<Object> queryPageList(String pointId) {
List<TeamSeq> list = teamSeqService.list(new LambdaQueryWrapper<TeamSeq>().eq(TeamSeq::getPointId, pointId));
Map<String,Object> map = new LinkedHashMap<>();
map.put("records",list);
return Result.OK(map);
}
/**

@ -68,61 +68,16 @@ public class TeamSeq implements Serializable {
@ApiModelProperty(value = "年度比赛项目id")
private String pointId;
/**
* 第1序号
*/
@Excel(name = "第1序号", width = 15)
@ApiModelProperty(value = "第1序号")
private Integer teamSeqFirst;
/**
* 第1序号比值
*/
@Excel(name = "第1序号比值", width = 15)
@ApiModelProperty(value = "第1序号比值")
private Integer teamSeqFirstVal;
/**
* 第2序号
*/
@ApiModelProperty(value = "第1序号")
private Integer teamSeqSecond;
/**
* 第2序号比值
*/
@ApiModelProperty(value = "第2序号比值")
private Integer teamSeqSecondVal;
/**
* 第3序号
*/
@ApiModelProperty(value = "第3序号")
private Integer teamSeqThird;
/**
* 第3序号比值
*/
@ApiModelProperty(value = "第3序号比值")
private Integer teamSeqThirdVal;
/**
* 第4序号
*/
@ApiModelProperty(value = "第4序号")
private Integer teamSeqFourth;
/**
* 第4序号比值
*/
@ApiModelProperty(value = "第4序号比值")
private Integer teamSeqFourthVal;
/**
* 第5序
* 位次号
*/
@ApiModelProperty(value = "第5序号")
private Integer teamSeqFifth;
@Excel(name = "队员在队伍中的位次序号", width = 15)
@ApiModelProperty(value = "队员在队伍中的位次序号")
private Integer teamSeq;
/**
* 第5序号比值
* 位次号比值
*/
@ApiModelProperty(value = "第5序号比值")
private Integer teamSeqFifthVal;
@Excel(name = "队员在队伍中的位次序号比值", width = 15)
@ApiModelProperty(value = "队员在队伍中的位次序号比值")
private Integer teamSeqVal;
}

@ -92,98 +92,22 @@
</a-row>
<a-row>
<a-col :span="12" v-if="formData.entryForm==='Y'">
<a-form-item label="队伍人数" v-bind="validateInfos.teamNumber">
<a-input-number v-model:value="formData.teamNumber" placeholder="请输入队伍人数"
<a-form-item label="指导老师人数" v-bind="validateInfos.teacherNumber">
<a-input-number v-model:value="formData.teacherNumber" placeholder="请输入指导老师人数"
style="width: 100%" :disabled="disabled"/>
<a-button @click="showModel">队伍比值配置</a-button>
</a-form-item>
</a-col>
<a-col :span="12" v-if="formData.entryForm==='Y'">
<a-form-item label="指导老师人数" v-bind="validateInfos.teacherNumber">
<a-input-number v-model:value="formData.teacherNumber" placeholder="请输入指导老师人数"
<a-form-item label="队伍人数" v-bind="validateInfos.teamNumber">
<a-input-number v-model:value="formData.teamNumber" placeholder="请输入队伍人数"
style="width: 100%" :disabled="disabled"/>
<a-button @click="showModel" type="primary">配置队伍位次比值</a-button>
</a-form-item>
</a-col>
</a-row>
<!--
<a-row v-if="formData.entryForm ==='Y'">
<a-col :span="12">
<a-form-item label="队伍第1编号" >
<a-input-number v-model:value="formData.teamSeqFirst" placeholder="请输入队伍第1编号" style="width: 100%" disabled/>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="第1编号比值" v-bind="formData.teamSeqFirstVal">
<a-input-number v-model:value="formData.teamSeqFirstVal" placeholder="请输入第1编号比值"
style="width: 100%" />
</a-form-item>
</a-col>
</a-row>
<a-row v-if="formData.entryForm ==='Y'">
<a-col :span="12">
<a-form-item label="队伍第2编号" v-bind="formData.teamSeqSecond">
<a-input-number v-model:value="formData.teamSeqSecond" placeholder="请输入队伍第2编号" style="width: 100%" disabled/>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="第2编号比值" v-bind="formData.teamSeqSecondVal">
<a-input-number v-model:value="formData.teamSeqSecondVal" placeholder="请输入第2编号比值"
style="width: 100%" />
</a-form-item>
</a-col>
</a-row>
<a-row v-if="formData.entryForm ==='Y'">
<a-col :span="12">
<a-form-item label="队伍第3编号" v-bind="formData.teamSeqThird">
<a-input-number v-model:value="formData.teamSeqThird" placeholder="请输入队伍第3编号" style="width: 100%" disabled/>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="第3编号比值" v-bind="formData.teamSeqThirdVal">
<a-input-number v-model:value="formData.teamSeqThirdVal" placeholder="请输入第3编号比值"
style="width: 100%" />
</a-form-item>
</a-col>
</a-row>
<a-row v-if="formData.entryForm ==='Y'">
<a-col :span="12">
<a-form-item label="队伍第4编号" v-bind="formData.teamSeqFourth">
<a-input-number v-model:value="formData.teamSeqFourth" placeholder="请输入队伍第4编号" style="width: 100%" disabled/>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="第4编号比值" v-bind="formData.teamSeqFourthVal">
<a-input-number v-model:value="formData.teamSeqFourthVal" placeholder="请输入第4编号比值"
style="width: 100%" />
</a-form-item>
</a-col>
</a-row>
<a-row v-if="formData.entryForm ==='Y'">
<a-col :span="12">
<a-form-item label="队伍第5编号" v-bind="formData.teamSeqFifth">
<a-input-number v-model:value="formData.teamSeqFifth" placeholder="请输入队伍第5编号" style="width: 100%" disabled/>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="第5编号比值" v-bind="formData.teamSeqFifthVal">
<a-input-number v-model:value="formData.teamSeqFifthVal" placeholder="请输入第5编号比值"
style="width: 100%" />
</a-form-item>
</a-col>
</a-row>
-->
<a-row>
<a-col :span="5">
<a-form-item label="是否报名" v-bind="validateInfos.requireApply" :labelCol="labelCol4"
:wrapperCol="wrapperCol4">
@ -319,7 +243,8 @@
@register="register"
title="比值配置"
:height="800"
@ok="handleOk"
:width="800"
:footer="null"
>
<!-- <div v-for="(item,index) in num" :key="index">-->
<!-- <a-input-number v-model="item.index"></a-input-number>-->
@ -330,17 +255,18 @@
<!-- <a-button type="primary" @click="setModalProps">从内部修改title</a-button>-->
<JVxeTable
ref="tableRef"
stripe
toolbar
:toolbarConfig="toolbarConfig"
rowNumber
rowSelection
rowExpand
resizable
:maxHeight="480"
keepSource
asyncRemove
:height="340"
:loading="loading"
:columns="columns"
:dataSource="dataSource"
@save="handleTableSave"
@removed="handleTableRemove"
/>
</BasicModal>
</template>
@ -364,62 +290,43 @@ const disableSubmit = ref<boolean>(false);
const realForm = ref();
import {JVxeTable} from '/@/components/jeecg/JVxeTable';
import {JVxeColumn, JVxeTypes} from '/@/components/jeecg/JVxeTable/types';
import {result} from "lodash-es";
//
const loading = ref(false);
//
const pagination = reactive({
//
current: 1,
//
pageSize: 200,
//
pageSizeOptions: ['10', '20', '30', '100', '200'],
// 0
total: 0,
});
//
const selectedRows = ref<Recordable[]>([]);
//
const dataSource = ref<Recordable[]>([]);
//
const toolbarConfig = reactive({
// add remove clearSelection
btn: ['add', 'save', 'remove', 'clearSelection'],
});
//
const columns = ref<JVxeColumn[]>([
// { key: 'num', title: '', width: 80, type: JVxeTypes.normal },
{ key: 'teamSeqFirst', title: '序号1', width: 80, type: JVxeTypes.normal },
// { key: 'pointId', title: 'id', width: 80, type: JVxeTypes.hidden,},
{ key: 'teamSeq', title: '位次号', width: 180, type: JVxeTypes.inputNumber,
placeholder: '请输入${title}',
validateRules: [
{
required: true, //
message: '请输入${title}', //
}
],
},
{
title: '比值',
key: 'teamSeqFirstVal',
type: JVxeTypes.input,
key: 'teamSeqVal',
type: JVxeTypes.inputNumber,
width: 180,
defaultValue: '',
defaultValue: 100,
placeholder: '请输入${title}',
validateRules: [
{
required: true, //
message: '请输入${title}', //
},
// {
// pattern: /^[a-z|A-Z][a-z|A-Z\d_-]*$/, //
// message: '线',
// },
// {
// unique: true,
// message: '${title}',
// },
{
handler({cellValue, row, column}, callback, target) {
// cellValue
// callback(flag, message)
// flag = null
// message = 使 message
// target
if (cellValue === 'abc') {
callback(false, '${title}不能是abc') // false =
} else {
callback(true) // true =
}
},
message: '${title}默认提示',
},
}
],
},
])
@ -434,12 +341,11 @@ enum Api {
}
//
async function loadData() {
alert(formData.id)
function loadData() {
// alert(formData.id)
// loading.value = true;
//
await defHttp
.get({
defHttp.get({
//
url: Api.getData,
// //
@ -448,23 +354,17 @@ async function loadData() {
// pageNo: pagination.current,
// pageSize: pagination.pageSize,
},
})
.then((result) => {
}).then((result) => {
// total
// pagination.total = result.total;
// dataSource
dataSource.value = result.records;
//
selectedRows.value = [];
})
.finally(() => {
// loading
loading.value = false;
});
}
function handleOk() {
alert("handleOk")
// dataSource
dataSource.value = result.records;
//
selectedRows.value = [];
}).finally(() => {
// loading
loading.value = false;
});
}
function handleTableSave({$table, target}) {
@ -474,30 +374,53 @@ function handleTableSave({$table, target}) {
if (!errMap) {
//
let tableData = target.getTableData();
console.log('当前保存的数据是:', tableData);
// console.log('$table', $table);
// console.log('target', target);
console.log('当前保存的数据(tableData)是:', JSON.stringify(tableData));
tableData.forEach(item => {
item.pointId = formData.id
})
//
let newData = target.getNewData();
console.log('-- 新增的数据:', newData);
//
let deleteData = target.getDeleteData();
console.log('-- 删除的数据:', deleteData);
// let newData = target.getNewData();
// console.log('-- ', newData);
// for (let itemindex = 0; itemindex < newData.length; itemindex++) {
// this.$set(jsonObject, newData[itemindex].key+"", newData[itemindex].value+"");
// }
//
loading.value = true;
// loading.value = true;
defHttp
.post({
url: Api.saveAll,
params: tableData,
})
.then(() => {
createMessage.success(`保存成功!`);
// createMessage.success(``);
})
.finally(() => {
loading.value = false;
// loading.value = false;
});
}
});
}
//
function handleTableRemove(event) {
// event.deleteRows
console.log('待删除的数据: ', event.deleteRows);
// IDID
let deleteIds = event.deleteRows.map((row) => row.id);
console.log('待删除的数据ids: ', deleteIds);
//
loading.value = true;
window.setTimeout(() => {
loading.value = false;
createMessage.success('删除成功');
// confirmRemove()
event.confirmRemove();
}, 1000);
}
const props = defineProps({
// objLevelll: { type: Array, default: () => [] },
formDisabled: {type: Boolean, default: false},
@ -511,10 +434,7 @@ const [register, {openModal}] = useModal();
// const [register, { closeModal, setModalProps,openModal }] = useModalInner();
const showModel = () => {
loadData();
openModal()
// console.log(1111)
}
let num = ref([
@ -567,16 +487,6 @@ const formData = reactive<Record<string, any>>({
uploadEndTime: '',
scoreStartTime: '',
scoreEndTime: '',
teamSeqFirst: 1,
teamSeqSecond: 2,
teamSeqThird: 3,
teamSeqFourth: 4,
teamSeqFifth: 5,
teamSeqFifthVal: '',
teamSeqFourthVal: '',
teamSeqThirdVal: '',
teamSeqSecondVal: '',
teamSeqFirstVal: '',
});
const {createMessage} = useMessage();
const labelCol = ref<any>({xs: {span: 24}, sm: {span: 6}});

Loading…
Cancel
Save