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.utils.DateUtil;
|
||||
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_user;
|
||||
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.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.json.Json;
|
||||
import org.nutz.lang.Lang;
|
||||
import org.nutz.lang.Strings;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
@@ -135,6 +137,7 @@ public class ActivityApplyController {
|
||||
school.competitionMethod,
|
||||
school.rewardMethod,
|
||||
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.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,
|
||||
@@ -142,6 +145,7 @@ public class ActivityApplyController {
|
||||
FROM
|
||||
activity_school school
|
||||
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
|
||||
""").setParam("userid", ShiroUtil.getPrincipalProperty("id")).setParam("unionId", getUnionId());
|
||||
|
||||
@@ -851,5 +855,17 @@ public class ActivityApplyController {
|
||||
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")
|
||||
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()));
|
||||
|
||||
if (activitySchool.getActivityLevel() == 40002) {
|
||||
@@ -154,13 +154,13 @@ public class ActivityInfoManageController {
|
||||
String id = activitySchoolService.doAdd(activitySchool, events);
|
||||
|
||||
|
||||
activityBasicUnions.forEach(v -> {
|
||||
/* activityBasicUnions.forEach(v -> {
|
||||
ActivityUnion activityUnion = new ActivityUnion();
|
||||
activityUnion.setActivityId(id);
|
||||
activityUnion.setUnionname(v.getUnionname());
|
||||
activitySchoolService.insert(activityUnion);
|
||||
});
|
||||
|
||||
*/
|
||||
|
||||
List<Sys_file> image = activitySchool.getImage();
|
||||
ActivityTissue activityTissue = new ActivityTissue();
|
||||
|
||||
@@ -27,6 +27,7 @@ import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.lang.Lang;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
import org.nutz.mvc.annotation.AdaptBy;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
@@ -162,11 +163,15 @@ public class ActivityReadingController {
|
||||
|
||||
if (!activityLevel.equals("40003")) {
|
||||
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) {
|
||||
String unionId = union.getId();
|
||||
NutMap map = new NutMap();
|
||||
|
||||
ActivityUnion activityUnion = activityUnions.stream().filter(a -> a.getUnionId().equals(unionId)).findFirst().orElse(null);
|
||||
|
||||
|
||||
List<NutMap> applyList = applies.stream().filter(v -> {
|
||||
return v.getString("activityUnionId").equals(unionId);
|
||||
}).collect(Collectors.toList());
|
||||
@@ -175,6 +180,7 @@ public class ActivityReadingController {
|
||||
map.setv("unioncode", union.getUnioncode());
|
||||
map.setv("num", applyList.size());
|
||||
map.setv("apply", applyList);
|
||||
map.setv("promiseBookFiles", Lang.isNotEmpty(activityUnion) ? activityUnion.getFiles() : new ArrayList<>());
|
||||
|
||||
apply.add(map);
|
||||
}
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
package io.v.nutz.zhgh.activity.models;
|
||||
|
||||
import io.v.nutz.sys.models.Sys_file;
|
||||
import lombok.Data;
|
||||
import org.nutz.dao.entity.annotation.*;
|
||||
import org.nutz.dao.interceptor.annotation.PrevInsert;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
@@ -12,7 +15,6 @@ import org.nutz.dao.interceptor.annotation.PrevInsert;
|
||||
*/
|
||||
@Data
|
||||
@Table
|
||||
@Comment("活动工会")
|
||||
public class ActivityUnion {
|
||||
|
||||
@Column
|
||||
@@ -35,4 +37,15 @@ public class ActivityUnion {
|
||||
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')}}
|
||||
</div>
|
||||
<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.endTime).format('YYYY/MM/DD HH:mm')}}
|
||||
{{moment(item.endTime).format('YYYY/MM/DD HH:mm')}}-->
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
@@ -1110,6 +1117,26 @@ layout("/layouts/platform.html"){
|
||||
</span>
|
||||
</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>
|
||||
|
||||
<script>
|
||||
@@ -1232,7 +1259,11 @@ layout("/layouts/platform.html"){
|
||||
],
|
||||
activityNoticeDialog: false,
|
||||
dshApplyUserList: [],
|
||||
dshSelectionIds: []
|
||||
dshSelectionIds: [],
|
||||
|
||||
promiseBookFileList: [],
|
||||
isPromiseBookFileView: true,
|
||||
promiseBookDialogVisible: false,
|
||||
}
|
||||
},
|
||||
filters: {
|
||||
@@ -1248,6 +1279,33 @@ layout("/layouts/platform.html"){
|
||||
"delete_info": httpVueLoader("/components/activity/school/DeleteInfo.vue")
|
||||
},
|
||||
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) {
|
||||
if (this.dshSelectionIds && this.dshSelectionIds.length === 0) {
|
||||
this.$notify({
|
||||
|
||||
@@ -150,13 +150,17 @@ layout("/layouts/platform.html"){
|
||||
<div slot="header" class="clearfix">
|
||||
<el-row :gutter="20">
|
||||
<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">
|
||||
{{isDisPlayCode?'('+app.unioncode+')':null}}{{app.unionname}}
|
||||
</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-button @click="openPromiseBook(app)"
|
||||
style="float: right; padding: 3px 5px"
|
||||
type="text">查看承诺书
|
||||
</el-button>
|
||||
<el-button style="float: right; padding: 3px 5px"
|
||||
@click="$set(app,'show',!app.show)" type="text">
|
||||
{{app.show?'折叠':'展开'}}
|
||||
@@ -596,6 +600,23 @@ layout("/layouts/platform.html"){
|
||||
<el-button :loading="importLoading" @click="doImport" type="primary">确定</el-button>
|
||||
</span>
|
||||
</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>
|
||||
|
||||
<script>
|
||||
@@ -643,7 +664,12 @@ layout("/layouts/platform.html"){
|
||||
projectTypeList: [
|
||||
{ id: "1", name: "单项" },
|
||||
{ id: "2", name: "团体" }
|
||||
]
|
||||
],
|
||||
fileList: [],
|
||||
fileVisible: false,
|
||||
|
||||
promiseBookFileList: [],
|
||||
promiseBookDialogVisible: false,
|
||||
}
|
||||
},
|
||||
components: {
|
||||
@@ -664,6 +690,10 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
openPromiseBook(row) {
|
||||
this.promiseBookFileList = row.promiseBookFiles
|
||||
this.promiseBookDialogVisible = true
|
||||
},
|
||||
doImport() {
|
||||
if (!this.importData.fileList.length) {
|
||||
this.notifyWarning("请选择文件!")
|
||||
|
||||
Reference in New Issue
Block a user