This commit is contained in:
JyuHsin
2025-06-12 14:16:02 +08:00
parent bcb6b620ec
commit 848fb8a9c7
12 changed files with 85 additions and 26 deletions
@@ -389,6 +389,7 @@ public class TheRapyRecuperationLineStatisticsController {
exportEntities.add(new ExcelExportEntity("旅行社", "travelAgencyName", 20));
exportEntities.add(new ExcelExportEntity("费用(元)", "money", 20));
exportEntities.add(new ExcelExportEntity("使用下一年经费", "useNextMoney", 20));
exportEntities.add(new ExcelExportEntity("才艺特长", "skill", 20));
try {
ExportParams exportParams = new ExportParams();
@@ -229,5 +229,10 @@ public class TheRapyRecuperationEnroll extends BaseModel {
@Default("0")
private Integer moneyType;
@Column
@ColDefine(type = ColType.VARCHAR, width = 200)
@Comment("才艺特长")
private String skill;
private String firstLetter;
}
@@ -174,6 +174,12 @@ public class TheRapyRecuperationLine extends BaseModel {
@Default("0")
private Boolean specialLine;
@Column
@ColDefine(type = ColType.BOOLEAN)
@Comment("联合疗休养")
@Default("0")
private Boolean togetherLine;
@Column
@ColDefine(type = ColType.INT)
@Comment("成团类型(1.常规团 2.精品团)")
@@ -45,7 +45,7 @@ public class TheRapyRecuperationTravelAgency extends BaseModel {
private String contact;
@Column
@ColDefine(type = ColType.VARCHAR, width = 11)
@ColDefine(type = ColType.VARCHAR, width = 20)
@Comment("旅行社联系人手机")
private String contactMobileNumber;
@@ -79,6 +79,7 @@ public class TheRapyRecuperationEnrollServiceImpl extends ViServiceImpl<TheRapyR
line.lineName,
line.regionalNature,
line.travelAgencyPlace,
line.togetherLine,
us.minimumGroupSize,
line.`year`,
us.enable,
@@ -261,6 +262,7 @@ public class TheRapyRecuperationEnrollServiceImpl extends ViServiceImpl<TheRapyR
ta.travelAgencyName,
us.contact,
us.contactPhone,
us.maxGroupSize,
lot.lotName,
lot.lotValue,
lot.activityCost as lotActivityCost,
@@ -999,6 +1001,7 @@ public class TheRapyRecuperationEnrollServiceImpl extends ViServiceImpl<TheRapyR
us.minimumGroupSize,
us.estimatedFamilyNumbers,
line.content,
line.togetherLine,
l.lotName,
(select COUNT(1) FROM the_rapy_recuperation_enroll en WHERE isNormal=true AND en.loginName=@loginname and YEAR(en.signingUptime)=@year) isNormal,
(select COUNT(1) FROM the_rapy_recuperation_enroll en WHERE isNormal=false AND en.loginName=@loginname and YEAR(en.signingUptime)=@year) isNormalFalse,
@@ -130,7 +130,9 @@ public class TrainSignUpActivityApplyController {
AtomicInteger hasRegisterNum = new AtomicInteger();
List<TrainSignUpUser> signUpUsers = trainSignUpActivityService.dao().query(TrainSignUpUser.class, Cnd.where("courseId", "=", c.getString("id")));
signUpUsers.forEach(item -> {
hasRegisterNum.getAndIncrement();
if(type.getSelfAddFamily()) {
hasRegisterNum.getAndIncrement();
}
if(type.getIsBringFamily() && type.getIsAddFamily()) {
List<NutMap> mapList = item.getMobileColumnsValue();
if(Lang.isNotEmpty(mapList)) {
@@ -21,6 +21,7 @@ import io.v.nutz.sys.models.Sys_user_role;
import io.v.nutz.sys.models.User;
import io.v.nutz.sys.services.SysUserService;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.zhgh.activity.models.ActivityUserScope;
import io.v.nutz.zhgh.staffmanage.member.MemberMode;
import io.v.nutz.zhgh.staffmanage.member.WelfareMemberMode;
import io.v.nutz.zhgh.staffmanage.member.model.MemberCheckTask;
@@ -35,6 +36,7 @@ import org.nutz.dao.Chain;
import org.nutz.dao.Cnd;
import org.nutz.dao.Condition;
import org.nutz.dao.Sqls;
import org.nutz.dao.entity.Record;
import org.nutz.dao.sql.Sql;
import org.nutz.dao.util.cri.Static;
import org.nutz.ioc.aop.Aop;
@@ -249,6 +249,9 @@ layout("/mobile/platform.html"){
.backTop {
display: none !important;
}
.van-dialog__message {
font-size: 16px;
}
</style>
@@ -65,7 +65,7 @@ layout("/mobile/platform.html"){
</div>
<!--疗休养描述-->
<div class="van-doc-card" style="margin-top: 20px; height: calc(100vh - 200px)">
<div class="van-doc-card" style=" height: calc(100vh - 430px)">
<van-image width="190" height="43" src="/assets/mobile/img/therapyRecuperation/title.png"></van-image>
<div v-if="isPdf" class="pre_text" v-html="configData.notice"></div>
<div v-else id="demo" class="pdf_div"></div>
@@ -236,6 +236,9 @@ layout("/mobile/platform.html"){
.van-radio--horizontal {
margin-right: 8px;
}
.van-dialog__message {
font-size: 16px;
}
</style>
@@ -332,6 +335,13 @@ layout("/mobile/platform.html"){
left-icon="volume-o"
text="温馨提醒:您选择的线路预计费用超过3000元,需要选择超出费用类型"
></van-notice-bar>
<van-notice-bar
v-if="lineData.togetherLine"
left-icon="volume-o"
text="温馨提醒:此线路为联合疗休养线路,限定单身教工报名"
></van-notice-bar>
<div class="join_content">
<van-form @submit="joinSubmit">
@@ -351,6 +361,7 @@ layout("/mobile/platform.html"){
placeholder="请填写手机号" v-model="formData.mobile"></van-field>
<van-field label="所属工会" readonly v-model="formData.unionName"></van-field>
<van-field label="报名线路" readonly v-model="formData.lineName"></van-field>
<van-field required v-if="lineData.togetherLine" label="才艺特长" v-model="formData.skill" placeholder="请输入才艺特长" :rules="[{ required: true }]"></van-field>
<van-field v-if="Number(lineData.estimatedCost) > 3000" required name="moneyType" label="超出费用类型" :rules="[{ required: true, message: '请选择超出费用类型' }]">
<template #input>
<van-radio-group v-model="formData.moneyType" direction="horizontal">
@@ -166,6 +166,9 @@ layout("/mobile/platform.html"){
height: 30px;
border-radius: 8px;
}
.van-dialog__message {
font-size: 16px;
}
</style>
@@ -368,6 +371,7 @@ layout("/mobile/platform.html"){
<div>
<div class="van-action-sheet__name">{{item.name}}</div>
<div class="van-action-sheet__name">{{item.playTime}}</div>
<div class="van-action-sheet__subname">{{item.maxGroupSize}}</div>
<div class="van-action-sheet__subname">{{item.subname}}</div>
</div>
<div class="sign_button">
@@ -506,28 +510,41 @@ layout("/mobile/platform.html"){
await this.findOne(o)
return
}
const resp = await $.post('/platform/theRapyRecuperation/line/enroll/getSelectLineById',
{
lineId: o.lineId,
unionId: this.pageForm.unionId,
theRapyRecuperationType: this.pageForm.theRapyRecuperationType,
lineUnionType: this.pageForm.lineUnionType,
}
)
this.selectLineList = resp.data
this.selectLineList.forEach((item, index) => {
item.name = '出行时间' + (index + 1) + ' ' + item.playStartTime
if (this.modifyConfig.familyInfo == 2) {
item.subname = '已报人数:'
+ (item.signUpUserNum + item.signUpUserFamilyNum)
+ '(家属' + item.signUpUserFamilyNum + '人)'
} else {
item.subname = '已报人数:'
+ (item.signUpUserNum + item.signUpUserFamilyNum)
+ '(家属' + item.familyNumber + '人)'
}
})
this.selectLinePopup = true
let flag = false
if(o.togetherLine === true) {
const confirm = await this.$dialog.confirm({
title: "温馨提示",
message: '此线路为联合疗休养线路,限定单身教工报名,请确认是否报名?'
})
flag = confirm === "confirm"
} else {
flag = true
}
if(flag) {
const resp = await $.post('/platform/theRapyRecuperation/line/enroll/getSelectLineById',
{
lineId: o.lineId,
unionId: this.pageForm.unionId,
theRapyRecuperationType: this.pageForm.theRapyRecuperationType,
lineUnionType: this.pageForm.lineUnionType,
}
)
this.selectLineList = resp.data
this.selectLineList.forEach((item, index) => {
item.name = '出行时间' + (index + 1) + ' ' + moment(item.playStartTime).format('YYYY-MM-DD')
item.maxGroupSize = '最大报名数 ' + item.maxGroupSize
if (this.modifyConfig.familyInfo == 2) {
item.subname = '已报人数:'
+ (item.signUpUserNum + item.signUpUserFamilyNum)
+ '(家属' + item.signUpUserFamilyNum + '人)'
} else {
item.subname = '已报人数:'
+ (item.signUpUserNum + item.signUpUserFamilyNum)
+ '(家属' + item.familyNumber + '人)'
}
})
this.selectLinePopup = true
}
},
onSelect(item) {
this.findOne(item)
@@ -356,7 +356,7 @@ layout("/layouts/platform.html"){
v-model="formData.maxGroupSize"></el-input-number>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24" :xs="24" v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionAdmin')}">
<el-col :md="6" :sm="24" :xs="24" v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionAdmin')}">
<el-form-item label="工勤特定线路" prop="specialLine">
<el-radio-group class="mr0-radio" size="small" v-model="formData.specialLine">
<el-radio :label="true" border></el-radio>
@@ -364,6 +364,14 @@ layout("/layouts/platform.html"){
</el-radio-group>
</el-form-item>
</el-col>
<el-col :md="6" :sm="24" :xs="24" v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionAdmin')}">
<el-form-item label="联合疗休养" prop="togetherLine">
<el-radio-group class="mr0-radio" size="small" v-model="formData.togetherLine">
<el-radio :label="true" border></el-radio>
<el-radio :label="false" border></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<!--<el-col :md="12" :sm="24" :xs="24">
<el-row :gutter="20">
<el-col :span="12">
@@ -630,6 +638,7 @@ layout("/layouts/platform.html"){
openChoose: false,
groupType: null,
specialLine: false,
togetherLine: false,
},
pageForm: {
keywords: null,