commit
This commit is contained in:
@@ -8,6 +8,7 @@ import io.v.nutz.base.service.SimpleService;
|
|||||||
import io.v.nutz.base.service.ViService;
|
import io.v.nutz.base.service.ViService;
|
||||||
import io.v.nutz.base.utils.DateUtil;
|
import io.v.nutz.base.utils.DateUtil;
|
||||||
import io.v.nutz.base.utils.Vi;
|
import io.v.nutz.base.utils.Vi;
|
||||||
|
import io.v.nutz.sys.models.Sys_file;
|
||||||
import io.v.nutz.sys.models.Sys_unit;
|
import io.v.nutz.sys.models.Sys_unit;
|
||||||
import io.v.nutz.sys.models.Sys_user;
|
import io.v.nutz.sys.models.Sys_user;
|
||||||
import io.v.nutz.sys.services.SysUserService;
|
import io.v.nutz.sys.services.SysUserService;
|
||||||
@@ -28,6 +29,7 @@ import org.nutz.dao.util.cri.SqlExpressionGroup;
|
|||||||
import org.nutz.dao.util.cri.Static;
|
import org.nutz.dao.util.cri.Static;
|
||||||
import org.nutz.ioc.loader.annotation.Inject;
|
import org.nutz.ioc.loader.annotation.Inject;
|
||||||
import org.nutz.ioc.loader.annotation.IocBean;
|
import org.nutz.ioc.loader.annotation.IocBean;
|
||||||
|
import org.nutz.json.Json;
|
||||||
import org.nutz.lang.Lang;
|
import org.nutz.lang.Lang;
|
||||||
import org.nutz.lang.Strings;
|
import org.nutz.lang.Strings;
|
||||||
import org.nutz.lang.util.NutMap;
|
import org.nutz.lang.util.NutMap;
|
||||||
@@ -135,6 +137,7 @@ public class ActivityApplyController {
|
|||||||
school.competitionMethod,
|
school.competitionMethod,
|
||||||
school.rewardMethod,
|
school.rewardMethod,
|
||||||
school.precautions,
|
school.precautions,
|
||||||
|
au.files promiseBookFiles,
|
||||||
(SELECT count( 1 ) FROM activity_school_apply app WHERE app.activityId = school.id AND app.`status` = 2 ) apply_num,
|
(SELECT count( 1 ) FROM activity_school_apply app WHERE app.activityId = school.id AND app.`status` = 2 ) apply_num,
|
||||||
(SELECT count( 1 ) FROM activity_school_apply app WHERE app.activityId = school.id AND ( app.applyUser = @userid OR app.userId = @userid )) > 0 applyed,
|
(SELECT count( 1 ) FROM activity_school_apply app WHERE app.activityId = school.id AND ( app.applyUser = @userid OR app.userId = @userid )) > 0 applyed,
|
||||||
(SELECT COUNT(1) FROM activity_school_apply app WHERE app.activityId=school.id AND app.unionId=@unionId AND app.unionLeader=TRUE) LeaderCount,
|
(SELECT COUNT(1) FROM activity_school_apply app WHERE app.activityId=school.id AND app.unionId=@unionId AND app.unionLeader=TRUE) LeaderCount,
|
||||||
@@ -142,6 +145,7 @@ public class ActivityApplyController {
|
|||||||
FROM
|
FROM
|
||||||
activity_school school
|
activity_school school
|
||||||
LEFT JOIN activity_basic_settings ba ON ba.`code` = school.activityLevel
|
LEFT JOIN activity_basic_settings ba ON ba.`code` = school.activityLevel
|
||||||
|
LEFT JOIN activity_union au ON au.activityId=school.id AND au.unionId=@unionId
|
||||||
$condition
|
$condition
|
||||||
""").setParam("userid", ShiroUtil.getPrincipalProperty("id")).setParam("unionId", getUnionId());
|
""").setParam("userid", ShiroUtil.getPrincipalProperty("id")).setParam("unionId", getUnionId());
|
||||||
|
|
||||||
@@ -851,5 +855,17 @@ public class ActivityApplyController {
|
|||||||
return Result.success();
|
return Result.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@At
|
||||||
|
@ViReturn
|
||||||
|
@RequiresPermissions("activity.apply")
|
||||||
|
public Object doPromiseBook(@Param("promiseBookFileList") String promiseBookFileList, @Param("activityId") String activityId) {
|
||||||
|
ActivityUnion activityUnion = new ActivityUnion();
|
||||||
|
activityUnion.setActivityId(activityId);
|
||||||
|
activityUnion.setUnionId(getUnionId());
|
||||||
|
activityUnion.setFiles(Json.fromJsonAsList(Sys_file.class, promiseBookFileList));
|
||||||
|
simpleService.insert(activityUnion);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -144,7 +144,7 @@ public class ActivityInfoManageController {
|
|||||||
@RequiresPermissions("activity.school.info")
|
@RequiresPermissions("activity.school.info")
|
||||||
public Object doAdd(@Param(value = "data", required = false) ActivitySchool activitySchool, @Param(value = "events", required = false) ActivitySchoolEvent[] events) {
|
public Object doAdd(@Param(value = "data", required = false) ActivitySchool activitySchool, @Param(value = "events", required = false) ActivitySchoolEvent[] events) {
|
||||||
|
|
||||||
List<ActivityBasicUnion> activityBasicUnions = activitySchoolService.dao().query(ActivityBasicUnion.class, Cnd.where("isEnable", "=", true));
|
// List<ActivityBasicUnion> activityBasicUnions = activitySchoolService.dao().query(ActivityBasicUnion.class, Cnd.where("isEnable", "=", true));
|
||||||
ActivityBasicUnit activityBasicUnit = activitySchoolService.dao().fetch(ActivityBasicUnit.class, Cnd.where("id", "=", ShiroUtil.getUnitId()));
|
ActivityBasicUnit activityBasicUnit = activitySchoolService.dao().fetch(ActivityBasicUnit.class, Cnd.where("id", "=", ShiroUtil.getUnitId()));
|
||||||
|
|
||||||
if (activitySchool.getActivityLevel() == 40002) {
|
if (activitySchool.getActivityLevel() == 40002) {
|
||||||
@@ -154,13 +154,13 @@ public class ActivityInfoManageController {
|
|||||||
String id = activitySchoolService.doAdd(activitySchool, events);
|
String id = activitySchoolService.doAdd(activitySchool, events);
|
||||||
|
|
||||||
|
|
||||||
activityBasicUnions.forEach(v -> {
|
/* activityBasicUnions.forEach(v -> {
|
||||||
ActivityUnion activityUnion = new ActivityUnion();
|
ActivityUnion activityUnion = new ActivityUnion();
|
||||||
activityUnion.setActivityId(id);
|
activityUnion.setActivityId(id);
|
||||||
activityUnion.setUnionname(v.getUnionname());
|
activityUnion.setUnionname(v.getUnionname());
|
||||||
activitySchoolService.insert(activityUnion);
|
activitySchoolService.insert(activityUnion);
|
||||||
});
|
});
|
||||||
|
*/
|
||||||
|
|
||||||
List<Sys_file> image = activitySchool.getImage();
|
List<Sys_file> image = activitySchool.getImage();
|
||||||
ActivityTissue activityTissue = new ActivityTissue();
|
ActivityTissue activityTissue = new ActivityTissue();
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ import org.nutz.dao.Sqls;
|
|||||||
import org.nutz.dao.sql.Sql;
|
import org.nutz.dao.sql.Sql;
|
||||||
import org.nutz.ioc.loader.annotation.Inject;
|
import org.nutz.ioc.loader.annotation.Inject;
|
||||||
import org.nutz.ioc.loader.annotation.IocBean;
|
import org.nutz.ioc.loader.annotation.IocBean;
|
||||||
|
import org.nutz.lang.Lang;
|
||||||
import org.nutz.lang.util.NutMap;
|
import org.nutz.lang.util.NutMap;
|
||||||
import org.nutz.mvc.annotation.AdaptBy;
|
import org.nutz.mvc.annotation.AdaptBy;
|
||||||
import org.nutz.mvc.annotation.At;
|
import org.nutz.mvc.annotation.At;
|
||||||
@@ -162,11 +163,15 @@ public class ActivityReadingController {
|
|||||||
|
|
||||||
if (!activityLevel.equals("40003")) {
|
if (!activityLevel.equals("40003")) {
|
||||||
List<ActivityBasicUnion> unions = sysUnionService.dao().query(ActivityBasicUnion.class, unionCnd);
|
List<ActivityBasicUnion> unions = sysUnionService.dao().query(ActivityBasicUnion.class, unionCnd);
|
||||||
|
List<ActivityUnion> activityUnions = sysUnionService.dao().query(ActivityUnion.class, Cnd.where("activityId", "=", id));
|
||||||
|
|
||||||
for (ActivityBasicUnion union : unions) {
|
for (ActivityBasicUnion union : unions) {
|
||||||
String unionId = union.getId();
|
String unionId = union.getId();
|
||||||
NutMap map = new NutMap();
|
NutMap map = new NutMap();
|
||||||
|
|
||||||
|
ActivityUnion activityUnion = activityUnions.stream().filter(a -> a.getUnionId().equals(unionId)).findFirst().orElse(null);
|
||||||
|
|
||||||
|
|
||||||
List<NutMap> applyList = applies.stream().filter(v -> {
|
List<NutMap> applyList = applies.stream().filter(v -> {
|
||||||
return v.getString("activityUnionId").equals(unionId);
|
return v.getString("activityUnionId").equals(unionId);
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
@@ -175,6 +180,7 @@ public class ActivityReadingController {
|
|||||||
map.setv("unioncode", union.getUnioncode());
|
map.setv("unioncode", union.getUnioncode());
|
||||||
map.setv("num", applyList.size());
|
map.setv("num", applyList.size());
|
||||||
map.setv("apply", applyList);
|
map.setv("apply", applyList);
|
||||||
|
map.setv("promiseBookFiles", Lang.isNotEmpty(activityUnion) ? activityUnion.getFiles() : new ArrayList<>());
|
||||||
|
|
||||||
apply.add(map);
|
apply.add(map);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
package io.v.nutz.zhgh.activity.models;
|
package io.v.nutz.zhgh.activity.models;
|
||||||
|
|
||||||
|
import io.v.nutz.sys.models.Sys_file;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.nutz.dao.entity.annotation.*;
|
import org.nutz.dao.entity.annotation.*;
|
||||||
import org.nutz.dao.interceptor.annotation.PrevInsert;
|
import org.nutz.dao.interceptor.annotation.PrevInsert;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO
|
* TODO
|
||||||
*
|
*
|
||||||
@@ -12,7 +15,6 @@ import org.nutz.dao.interceptor.annotation.PrevInsert;
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@Table
|
@Table
|
||||||
@Comment("活动工会")
|
|
||||||
public class ActivityUnion {
|
public class ActivityUnion {
|
||||||
|
|
||||||
@Column
|
@Column
|
||||||
@@ -35,4 +37,15 @@ public class ActivityUnion {
|
|||||||
private String activityId;
|
private String activityId;
|
||||||
|
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Comment("工会id")
|
||||||
|
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||||
|
private String unionId;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Comment("活动id")
|
||||||
|
@ColDefine(type = ColType.MYSQL_JSON)
|
||||||
|
private List<Sys_file> files;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -236,9 +236,16 @@ layout("/layouts/platform.html"){
|
|||||||
{{moment(item.applyEndTime).format('YYYY/MM/DD HH:mm')}}
|
{{moment(item.applyEndTime).format('YYYY/MM/DD HH:mm')}}
|
||||||
</div>
|
</div>
|
||||||
<div class="text item">
|
<div class="text item">
|
||||||
<span style="color: gray">活动时间:</span>
|
<div style="display: flex;justify-content: flex-end">
|
||||||
|
<el-button @click.stop="openPromiseBook(item)"
|
||||||
|
size="mini"
|
||||||
|
type="primary">
|
||||||
|
上传参赛承诺书
|
||||||
|
</el-button>
|
||||||
|
</div>
|
||||||
|
<!-- <span style="color: gray">活动时间:</span>
|
||||||
{{moment(item.startTime).format('YYYY/MM/DD HH:mm')}} 至
|
{{moment(item.startTime).format('YYYY/MM/DD HH:mm')}} 至
|
||||||
{{moment(item.endTime).format('YYYY/MM/DD HH:mm')}}
|
{{moment(item.endTime).format('YYYY/MM/DD HH:mm')}}-->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
@@ -1110,6 +1117,26 @@ layout("/layouts/platform.html"){
|
|||||||
</span>
|
</span>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
|
<el-dialog
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
:visible.sync="promiseBookDialogVisible"
|
||||||
|
title="参赛承诺书"
|
||||||
|
width="30%"
|
||||||
|
>
|
||||||
|
<file-upload :files.sync="promiseBookFileList" :view="isPromiseBookFileView"
|
||||||
|
card="isPromiseBookFileView">
|
||||||
|
</file-upload>
|
||||||
|
<span v-if="isPromiseBookFileView&&promiseBookFileList&&promiseBookFileList.length===0">
|
||||||
|
暂无承诺书
|
||||||
|
</span>
|
||||||
|
<span class="dialog-footer" slot="footer">
|
||||||
|
<el-button @click="promiseBookDialogVisible = false" type="primary">关 闭</el-button>
|
||||||
|
<el-button @click="doPromiseBook" type="primary"
|
||||||
|
v-if="!isPromiseBookFileView">提 交</el-button>
|
||||||
|
|
||||||
|
</span>
|
||||||
|
</el-dialog>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@@ -1232,7 +1259,11 @@ layout("/layouts/platform.html"){
|
|||||||
],
|
],
|
||||||
activityNoticeDialog: false,
|
activityNoticeDialog: false,
|
||||||
dshApplyUserList: [],
|
dshApplyUserList: [],
|
||||||
dshSelectionIds: []
|
dshSelectionIds: [],
|
||||||
|
|
||||||
|
promiseBookFileList: [],
|
||||||
|
isPromiseBookFileView: true,
|
||||||
|
promiseBookDialogVisible: false,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
filters: {
|
filters: {
|
||||||
@@ -1248,6 +1279,33 @@ layout("/layouts/platform.html"){
|
|||||||
"delete_info": httpVueLoader("/components/activity/school/DeleteInfo.vue")
|
"delete_info": httpVueLoader("/components/activity/school/DeleteInfo.vue")
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
async doPromiseBook() {
|
||||||
|
if (this.promiseBookFileList && this.promiseBookFileList.length === 0) {
|
||||||
|
this.notifyWarning('请先上传参赛承诺书')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
const resp = await $.post(loc() + "/doPromiseBook", {
|
||||||
|
promiseBookFileList: JSON.stringify(this.promiseBookFileList),
|
||||||
|
activityId: this.activityData2.id
|
||||||
|
})
|
||||||
|
if (resp.code === 0) {
|
||||||
|
await this.activityInfoData()
|
||||||
|
this.promiseBookDialogVisible = false
|
||||||
|
this.notifySuccess(resp.msg)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
openPromiseBook(row) {
|
||||||
|
if (moment().valueOf() < moment(row.applyStartTime).valueOf() || moment().valueOf() > moment(row.applyEndTime).valueOf()) {
|
||||||
|
this.isPromiseBookFileView = true
|
||||||
|
} else {
|
||||||
|
this.isPromiseBookFileView = false
|
||||||
|
}
|
||||||
|
this.activityData2 = row
|
||||||
|
if (row.promiseBookFiles) {
|
||||||
|
this.promiseBookFileList = JSON.parse(row.promiseBookFiles)
|
||||||
|
}
|
||||||
|
this.promiseBookDialogVisible = true
|
||||||
|
},
|
||||||
doAuditApplyUser(status) {
|
doAuditApplyUser(status) {
|
||||||
if (this.dshSelectionIds && this.dshSelectionIds.length === 0) {
|
if (this.dshSelectionIds && this.dshSelectionIds.length === 0) {
|
||||||
this.$notify({
|
this.$notify({
|
||||||
|
|||||||
@@ -150,13 +150,17 @@ layout("/layouts/platform.html"){
|
|||||||
<div slot="header" class="clearfix">
|
<div slot="header" class="clearfix">
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="2">{{tabIdx + 1}}</el-col>
|
<el-col :span="2">{{tabIdx + 1}}</el-col>
|
||||||
<el-col :span="4">{{pageForm.year}}</el-col>
|
<el-col :span="2">{{pageForm.year}}</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
{{isDisPlayCode?'('+app.unioncode+')':null}}{{app.unionname}}
|
{{isDisPlayCode?'('+app.unioncode+')':null}}{{app.unionname}}
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">{{pageForm.activityName || '暂无'}}</el-col>
|
<el-col :span="6">{{pageForm.activityName || '暂无'}}</el-col>
|
||||||
<el-col :span="2">{{app.num |money}} 人</el-col>
|
<el-col :span="4">{{app.num |money}} 人({{(app.promiseBookFiles&&app.promiseBookFiles.length>0)?'已上传承诺书':'未上传'}})</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
|
<el-button @click="openPromiseBook(app)"
|
||||||
|
style="float: right; padding: 3px 5px"
|
||||||
|
type="text">查看承诺书
|
||||||
|
</el-button>
|
||||||
<el-button style="float: right; padding: 3px 5px"
|
<el-button style="float: right; padding: 3px 5px"
|
||||||
@click="$set(app,'show',!app.show)" type="text">
|
@click="$set(app,'show',!app.show)" type="text">
|
||||||
{{app.show?'折叠':'展开'}}
|
{{app.show?'折叠':'展开'}}
|
||||||
@@ -596,6 +600,23 @@ layout("/layouts/platform.html"){
|
|||||||
<el-button :loading="importLoading" @click="doImport" type="primary">确定</el-button>
|
<el-button :loading="importLoading" @click="doImport" type="primary">确定</el-button>
|
||||||
</span>
|
</span>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
|
<el-dialog
|
||||||
|
:append-to-body="false"
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
:visible.sync="promiseBookDialogVisible"
|
||||||
|
title="参赛承诺书"
|
||||||
|
width="30%"
|
||||||
|
>
|
||||||
|
<file-upload :files="promiseBookFileList" view v-if="promiseBookFileList&&promiseBookFileList.length>0">
|
||||||
|
</file-upload>
|
||||||
|
<span v-if="promiseBookFileList&&promiseBookFileList.length===0">
|
||||||
|
暂无承诺书
|
||||||
|
</span>
|
||||||
|
<span class="dialog-footer" slot="footer">
|
||||||
|
<el-button @click="promiseBookDialogVisible = false" type="primary">关 闭</el-button>
|
||||||
|
</span>
|
||||||
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@@ -643,7 +664,12 @@ layout("/layouts/platform.html"){
|
|||||||
projectTypeList: [
|
projectTypeList: [
|
||||||
{ id: "1", name: "单项" },
|
{ id: "1", name: "单项" },
|
||||||
{ id: "2", name: "团体" }
|
{ id: "2", name: "团体" }
|
||||||
]
|
],
|
||||||
|
fileList: [],
|
||||||
|
fileVisible: false,
|
||||||
|
|
||||||
|
promiseBookFileList: [],
|
||||||
|
promiseBookDialogVisible: false,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
@@ -664,6 +690,10 @@ layout("/layouts/platform.html"){
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
openPromiseBook(row) {
|
||||||
|
this.promiseBookFileList = row.promiseBookFiles
|
||||||
|
this.promiseBookDialogVisible = true
|
||||||
|
},
|
||||||
doImport() {
|
doImport() {
|
||||||
if (!this.importData.fileList.length) {
|
if (!this.importData.fileList.length) {
|
||||||
this.notifyWarning("请选择文件!")
|
this.notifyWarning("请选择文件!")
|
||||||
|
|||||||
Reference in New Issue
Block a user