commit
This commit is contained in:
-1
@@ -1,6 +1,5 @@
|
|||||||
package io.v.nutz.zhgh.therapyRecuperation.constant;
|
package io.v.nutz.zhgh.therapyRecuperation.constant;
|
||||||
|
|
||||||
|
|
||||||
import io.v.nutz.base.annontation.SelectEnum;
|
import io.v.nutz.base.annontation.SelectEnum;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|||||||
-1
@@ -1,6 +1,5 @@
|
|||||||
package io.v.nutz.zhgh.therapyRecuperation.constant;
|
package io.v.nutz.zhgh.therapyRecuperation.constant;
|
||||||
|
|
||||||
|
|
||||||
import io.v.nutz.base.annontation.SelectEnum;
|
import io.v.nutz.base.annontation.SelectEnum;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|||||||
+9
-8
@@ -1,6 +1,5 @@
|
|||||||
package io.v.nutz.zhgh.therapyRecuperation.constant;
|
package io.v.nutz.zhgh.therapyRecuperation.constant;
|
||||||
|
|
||||||
|
|
||||||
import io.v.nutz.base.annontation.SelectEnum;
|
import io.v.nutz.base.annontation.SelectEnum;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
@@ -14,18 +13,20 @@ import lombok.Getter;
|
|||||||
**/
|
**/
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Getter
|
@Getter
|
||||||
@SelectEnum
|
@io.v.nutz.base.annontation.SelectEnum
|
||||||
public enum TheRapyRecuperationSignUpMode {
|
public enum TheRapyRecuperationSignUpMode {
|
||||||
|
|
||||||
/**
|
|
||||||
* 分工会模式
|
|
||||||
*/
|
|
||||||
UNION(1, "分工会组织", new String[]{"H04", "A06", "sysadmin"}),
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 自由模式
|
* 自由模式
|
||||||
*/
|
*/
|
||||||
FREE(2, "校工会组织", new String[]{"A06", "sysadmin"});
|
FREE(2, "校工会组织", new String[]{"SchoolUnionAdmin", "sysadmin"}),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分工会模式
|
||||||
|
*/
|
||||||
|
UNION(1, "分工会组织", new String[]{"H04", "SchoolUnionAdmin", "sysadmin"}),
|
||||||
|
|
||||||
|
PERSONAL(3, "个人组织", new String[]{"H01", "H04", "SchoolUnionAdmin", "sysadmin"});
|
||||||
|
|
||||||
|
|
||||||
private final int value;
|
private final int value;
|
||||||
|
|||||||
+1
-2
@@ -1,6 +1,5 @@
|
|||||||
package io.v.nutz.zhgh.therapyRecuperation.constant;
|
package io.v.nutz.zhgh.therapyRecuperation.constant;
|
||||||
|
|
||||||
|
|
||||||
import io.v.nutz.base.annontation.SelectEnum;
|
import io.v.nutz.base.annontation.SelectEnum;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
@@ -32,7 +31,7 @@ public enum TheRapyRecuperationType {
|
|||||||
/**
|
/**
|
||||||
* 省内旅行社
|
* 省内旅行社
|
||||||
*/
|
*/
|
||||||
provinceInTravelAgency("自由组团", 2, TheRapyRecuperationProvinceType.provinceIn.getValue(), "/assets/mobile/img/therapyRecuperation/lxs.png"),
|
provinceInTravelAgency("旅行社", 2, TheRapyRecuperationProvinceType.provinceIn.getValue(), "/assets/mobile/img/therapyRecuperation/lxs.png"),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 酒店
|
* 酒店
|
||||||
|
|||||||
+413
@@ -0,0 +1,413 @@
|
|||||||
|
package io.v.nutz.zhgh.therapyRecuperation.controller.analysis;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import io.v.nutz.base.result.Result;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationState;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationEnroll;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLine;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLineUnionSelect;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLot;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationLineService;
|
||||||
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||||
|
import org.nutz.dao.Cnd;
|
||||||
|
import org.nutz.dao.Dao;
|
||||||
|
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.util.NutMap;
|
||||||
|
import org.nutz.mvc.annotation.At;
|
||||||
|
import org.nutz.mvc.annotation.Ok;
|
||||||
|
import org.nutz.mvc.annotation.Param;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @version 1.0
|
||||||
|
* @Author zzr
|
||||||
|
* @name:TheRapyRecuperationAnnualAnalysisController`
|
||||||
|
* @Date 2025/2/10 9:16
|
||||||
|
* @注释
|
||||||
|
*/
|
||||||
|
@IocBean
|
||||||
|
@At("/platform/theRapyRecuperation/annualAnalysis")
|
||||||
|
@Ok("json:full")
|
||||||
|
public class TheRapyRecuperationAnnualAnalysisController {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private Dao dao;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private TheRapyRecuperationLineService lineService;
|
||||||
|
|
||||||
|
@At("")
|
||||||
|
@Ok("beetl:/platform/theRapyRecuperation/analysis/annualAnalysis.html")
|
||||||
|
@RequiresPermissions("theRapyRecuperation.annualAnalysis")
|
||||||
|
public void index() {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取年度出行人数、线路数、省内、省外、校工会组织线路数、校省内、校省外线路数
|
||||||
|
* @param year
|
||||||
|
* @param lineType
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@At
|
||||||
|
@RequiresPermissions("theRapyRecuperation.annualAnalysis")
|
||||||
|
public Object getNumData(@Param(value = "year", required = false) Integer year,
|
||||||
|
@Param(value = "lineType", required = false) String lineType){
|
||||||
|
// 对于嘉兴来说,这一坨吊用没有,直接去报名记录里边找线路
|
||||||
|
// Cnd cnd = Cnd.NEW();
|
||||||
|
// cnd.and("delFlag", "=", false);
|
||||||
|
// cnd.and("YEAR(selectTime)", "=", year);
|
||||||
|
// // 本年选择的所有线路
|
||||||
|
// List<TheRapyRecuperationLineUnionSelect> selectLineList = dao.query(TheRapyRecuperationLineUnionSelect.class, cnd);
|
||||||
|
|
||||||
|
// 获取选择线路表的id,后面发现了,报名表里有线路id不在线路表的情况,这类人员要排除掉
|
||||||
|
Sql selectIdSql = Sqls.create("select id from the_rapy_recuperation_line_union_select");
|
||||||
|
selectIdSql.setCallback(Sqls.callback.strList());
|
||||||
|
dao.execute(selectIdSql);
|
||||||
|
List<String> selectIdList = selectIdSql.getList(String.class);
|
||||||
|
|
||||||
|
// 获取今年报名的所有人数,还要确保报名线路是属于上面选择线路的id
|
||||||
|
Sql sql = Sqls.create("""
|
||||||
|
SELECT
|
||||||
|
takePartInLineId
|
||||||
|
FROM
|
||||||
|
`the_rapy_recuperation_enroll`
|
||||||
|
WHERE
|
||||||
|
YEAR(signingUptime) = @thisYear
|
||||||
|
AND isNormal = 1
|
||||||
|
AND stateId = @stateId
|
||||||
|
AND takePartInLineId in (@selectIdList)
|
||||||
|
""");
|
||||||
|
sql.setParam("thisYear", year);
|
||||||
|
sql.setParam("stateId", TheRapyRecuperationState.PASS);
|
||||||
|
sql.setParam("selectIdList", selectIdList);
|
||||||
|
sql.setCallback(Sqls.callback.strList());
|
||||||
|
dao.execute(sql);
|
||||||
|
// 今年的报名记录
|
||||||
|
List<String> enrollTakePartLineIdList = sql.getList(String.class);
|
||||||
|
|
||||||
|
List<String> takePartInLineIdList = enrollTakePartLineIdList.stream().distinct().collect(Collectors.toList());
|
||||||
|
|
||||||
|
// 今年报名的线路
|
||||||
|
List<TheRapyRecuperationLineUnionSelect> selectLineList = dao.query(TheRapyRecuperationLineUnionSelect.class, Cnd.where("id", "in", takePartInLineIdList));
|
||||||
|
|
||||||
|
// 找出选择的线路详情,用于区分省内还是省外
|
||||||
|
List<String> lineIdList = selectLineList.stream().map(TheRapyRecuperationLineUnionSelect::getLineId).distinct().collect(Collectors.toList());
|
||||||
|
List<TheRapyRecuperationLine> lineList = dao.query(TheRapyRecuperationLine.class, Cnd.where("id", "in", lineIdList));
|
||||||
|
|
||||||
|
// 如果不是全部,按搜索条件查询省内还是省外
|
||||||
|
if (StrUtil.isNotBlank(lineType) && !"全部".equals(lineType)) {
|
||||||
|
lineList = lineList.stream().filter(line -> line.getRegionalNature().equals(lineType)).collect(Collectors.toList());
|
||||||
|
|
||||||
|
List<String> lineTypeIdList = lineList.stream().map(TheRapyRecuperationLine::getId).collect(Collectors.toList());
|
||||||
|
|
||||||
|
selectLineList = selectLineList.stream().filter(v-> lineTypeIdList.contains(v.getLineId())).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
// 省内线路
|
||||||
|
List<TheRapyRecuperationLine> inLineList = lineList.stream().filter(line -> "省内".equals(line.getRegionalNature())).collect(Collectors.toList());
|
||||||
|
Set<String> inLineIds = inLineList.stream().map(TheRapyRecuperationLine::getId).collect(Collectors.toSet());
|
||||||
|
// 选择省内的线路
|
||||||
|
List<String> selectInLineIds = selectLineList.stream().filter(v -> inLineIds.contains(v.getLineId()))
|
||||||
|
.map(TheRapyRecuperationLineUnionSelect::getId).collect(Collectors.toList());
|
||||||
|
|
||||||
|
// 省外线路
|
||||||
|
List<TheRapyRecuperationLine> outLineList = lineList.stream().filter(line -> "省外".equals(line.getRegionalNature())).collect(Collectors.toList());
|
||||||
|
Set<String> outLineIds = outLineList.stream().map(TheRapyRecuperationLine::getId).collect(Collectors.toSet());
|
||||||
|
// 选择省外的线路
|
||||||
|
List<String> selectOutLineIds = selectLineList.stream().filter(v -> outLineIds.contains(v.getLineId()))
|
||||||
|
.map(TheRapyRecuperationLineUnionSelect::getId).collect(Collectors.toList());
|
||||||
|
|
||||||
|
// List<TheRapyRecuperationEnroll> enrollList = dao.query(TheRapyRecuperationEnroll.class, Cnd.where("YEAR(signingUptime)", "=", year).and("isNormal", "=", true));
|
||||||
|
// List<String> enrollTakePartLineIdList = enrollList.stream().map(TheRapyRecuperationEnroll::getTakePartInLineId).collect(Collectors.toList());
|
||||||
|
|
||||||
|
// 返回前端的数据展示
|
||||||
|
NutMap nutMap = NutMap.NEW();
|
||||||
|
// 总出行人数
|
||||||
|
int allNum = enrollTakePartLineIdList.size();
|
||||||
|
// 省内出行人数
|
||||||
|
int provinceNum = (int) enrollTakePartLineIdList.stream().filter(selectInLineIds::contains).count();
|
||||||
|
// 省外出行人数
|
||||||
|
int outProvinceNum = (int) enrollTakePartLineIdList.stream().filter(selectOutLineIds::contains).count();
|
||||||
|
nutMap.addv("allNum", allNum).addv("provinceNum", provinceNum).addv("outProvinceNum", outProvinceNum);
|
||||||
|
|
||||||
|
// 总线路数
|
||||||
|
int lineNum = selectLineList.size();
|
||||||
|
// 总省内
|
||||||
|
int inLineNum = selectInLineIds.size();
|
||||||
|
// 总省外
|
||||||
|
int outLineNum = selectOutLineIds.size();
|
||||||
|
nutMap.addv("lineNum", lineNum).addv("inLineNum", inLineNum).addv("outLineNum", outLineNum);
|
||||||
|
|
||||||
|
// 校工会组织线路
|
||||||
|
List<TheRapyRecuperationLineUnionSelect> schoolSelectLineList = selectLineList.stream().filter(v -> v.getSignUpMode() == 2).collect(Collectors.toList());
|
||||||
|
int schoolUnionLineNum = schoolSelectLineList.size();
|
||||||
|
// 校省内
|
||||||
|
int schoolInLineNum = (int) schoolSelectLineList.stream().filter(s -> inLineIds.contains(s.getLineId())).count();
|
||||||
|
// 校省外
|
||||||
|
int schoolOutLineNum = (int) schoolSelectLineList.stream().filter(s -> outLineIds.contains(s.getLineId())).count();
|
||||||
|
nutMap.addv("schoolUnionLineNum", schoolUnionLineNum).addv("schoolInLineNum", schoolInLineNum).addv("schoolOutLineNum", schoolOutLineNum);
|
||||||
|
|
||||||
|
// 分工会组织线路
|
||||||
|
List<TheRapyRecuperationLineUnionSelect> unionSelectLineList = selectLineList.stream().filter(v -> v.getSignUpMode() == 1).collect(Collectors.toList());
|
||||||
|
int unionLineNum = unionSelectLineList.size();
|
||||||
|
// 分省内
|
||||||
|
int unionInLineNum = (int) unionSelectLineList.stream().filter(s -> inLineIds.contains(s.getLineId())).count();
|
||||||
|
// 分省外
|
||||||
|
int unionOutLineNum = (int) unionSelectLineList.stream().filter(s -> outLineIds.contains(s.getLineId())).count();
|
||||||
|
nutMap.addv("unionLineNum", unionLineNum).addv("unionInLineNum", unionInLineNum).addv("unionOutLineNum", unionOutLineNum);
|
||||||
|
return Result.success().addData(nutMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 出行时间标段统计
|
||||||
|
* @param year
|
||||||
|
* @param lineType
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@At
|
||||||
|
@RequiresPermissions("theRapyRecuperation.annualAnalysis")
|
||||||
|
public Object getLotNum(@Param(value = "year", required = false) Integer year,
|
||||||
|
@Param(value = "lineType", required = false) String lineType){
|
||||||
|
if (year == null) {
|
||||||
|
year = DateUtil.thisYear();
|
||||||
|
}
|
||||||
|
List<TheRapyRecuperationLot> lotList = dao.query(TheRapyRecuperationLot.class, Cnd.NEW().asc("lotValue"));
|
||||||
|
|
||||||
|
Sql sql = Sqls.create("""
|
||||||
|
SELECT
|
||||||
|
enroll.*,
|
||||||
|
line.lotId AS lineLotId
|
||||||
|
FROM
|
||||||
|
the_rapy_recuperation_enroll enroll
|
||||||
|
LEFT JOIN the_rapy_recuperation_line_union_select us ON us.id = enroll.takePartInLineId
|
||||||
|
LEFT JOIN the_rapy_recuperation_line line ON line.id = us.lineId
|
||||||
|
$condition
|
||||||
|
""");
|
||||||
|
Cnd cnd = Cnd.NEW();
|
||||||
|
cnd.andEX("YEAR(signingUpTime)", "=", year);
|
||||||
|
cnd.and("enroll.isNormal", "=", true);
|
||||||
|
cnd.and("enroll.stateId", "=", TheRapyRecuperationState.PASS);
|
||||||
|
if (StrUtil.isNotBlank(lineType) && !"全部".equals(lineType)) {
|
||||||
|
cnd.andEX("line.regionalNature", "=", lineType);
|
||||||
|
}
|
||||||
|
sql.setCondition(cnd);
|
||||||
|
List<NutMap> list = lineService.listMap(sql);
|
||||||
|
|
||||||
|
List<NutMap> resultMap = new ArrayList<>();
|
||||||
|
|
||||||
|
lotList.forEach(item -> {
|
||||||
|
NutMap map = NutMap.NEW();
|
||||||
|
int value = list.stream().filter(v -> item.getId().equals(v.getString("lineLotId"))).collect(Collectors.toList()).size();
|
||||||
|
map.put("label", item.getLotName());
|
||||||
|
map.put("value", value);
|
||||||
|
resultMap.add(map);
|
||||||
|
});
|
||||||
|
return Result.success().addData(resultMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 出行年龄分布统计
|
||||||
|
* @param year
|
||||||
|
* @param lineType
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@At
|
||||||
|
@RequiresPermissions("theRapyRecuperation.annualAnalysis")
|
||||||
|
public Object getAgeNum(@Param(value = "year", required = false) Integer year,
|
||||||
|
@Param(value = "lineType", required = false) String lineType){
|
||||||
|
if (year == null) {
|
||||||
|
year = DateUtil.thisYear();
|
||||||
|
}
|
||||||
|
Map<String, Integer> result = new HashMap<>();
|
||||||
|
result.put("35岁以下", 0);
|
||||||
|
result.put("35至45岁", 0);
|
||||||
|
result.put("45岁以上", 0);
|
||||||
|
|
||||||
|
Sql sql = Sqls.create("""
|
||||||
|
SELECT
|
||||||
|
enroll.idCard
|
||||||
|
FROM
|
||||||
|
the_rapy_recuperation_enroll enroll
|
||||||
|
LEFT JOIN the_rapy_recuperation_line_union_select us ON us.id = enroll.takePartInLineId
|
||||||
|
LEFT JOIN the_rapy_recuperation_line line ON line.id = us.lineId
|
||||||
|
$condition
|
||||||
|
""");
|
||||||
|
Cnd cnd = Cnd.NEW();
|
||||||
|
cnd.andEX("YEAR(signingUpTime)", "=", year);
|
||||||
|
cnd.and("enroll.isNormal", "=", true);
|
||||||
|
cnd.and("enroll.stateId", "=", TheRapyRecuperationState.PASS);
|
||||||
|
cnd.and("enroll.idCard", "is not", null);
|
||||||
|
cnd.groupBy("enroll.idCard");
|
||||||
|
if (StrUtil.isNotBlank(lineType) && !"全部".equals(lineType)) {
|
||||||
|
cnd.andEX("line.regionalNature", "=", lineType);
|
||||||
|
}
|
||||||
|
sql.setCondition(cnd);
|
||||||
|
sql.setCallback(Sqls.callback.strList());
|
||||||
|
dao.execute(sql);
|
||||||
|
List<String> idCardList = sql.getList(String.class);
|
||||||
|
|
||||||
|
for (String idCard : idCardList) {
|
||||||
|
if (StrUtil.isBlank(idCard)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
int birthYear = getBirthYearFromIdCard(idCard);
|
||||||
|
|
||||||
|
if (birthYear == 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
int age = year - birthYear;
|
||||||
|
|
||||||
|
if (age < 35) {
|
||||||
|
result.put("35岁以下", result.get("35岁以下") + 1);
|
||||||
|
} else if (age <= 45) {
|
||||||
|
result.put("35至45岁", result.get("35至45岁") + 1);
|
||||||
|
} else {
|
||||||
|
result.put("45岁以上", result.get("45岁以上") + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
List<NutMap> list = new ArrayList<>();
|
||||||
|
result.forEach((k, v) -> {
|
||||||
|
NutMap map = NutMap.NEW();
|
||||||
|
map.put("label", k);
|
||||||
|
map.put("value", v);
|
||||||
|
list.add(map);
|
||||||
|
});
|
||||||
|
return Result.success().addData(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static int getBirthYearFromIdCard(String idCard) {
|
||||||
|
String birthYearStr;
|
||||||
|
if (idCard.length() == 18) {
|
||||||
|
// 18位身份证号,直接取第7到第10位作为出生年份
|
||||||
|
birthYearStr = idCard.substring(6, 10);
|
||||||
|
} else if (idCard.length() == 15) {
|
||||||
|
// 15位身份证号,取第7到第8位作为出生年份的后两位 15位身份证号均为19xx年
|
||||||
|
birthYearStr = "19" + idCard.substring(6, 8);
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Integer.parseInt(birthYearStr);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取线路出行人数和年龄统计数据
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@At
|
||||||
|
@RequiresPermissions("theRapyRecuperation.annualAnalysis")
|
||||||
|
public Object getLineTravelAndAgeData(@Param(value = "year", required = false) Integer year,
|
||||||
|
@Param(value = "lineType", required = false) String lineType){
|
||||||
|
Sql sql = Sqls.create("""
|
||||||
|
SELECT
|
||||||
|
us.id,
|
||||||
|
CONCAT(line.lineName,'(',DATE_FORMAT(us.playStartTime,'%m月%d'),'至',DATE_FORMAT(us.playEndTime,'%m月%d'),')') AS lineName,
|
||||||
|
su.unionname,
|
||||||
|
lot.lotName,
|
||||||
|
COUNT(enroll.id) AS takePartInLineNum,
|
||||||
|
SUM(CASE
|
||||||
|
WHEN @year - (CASE
|
||||||
|
WHEN LENGTH(enroll.idCard) = 18 THEN CAST(SUBSTR(enroll.idCard, 7, 4) AS UNSIGNED)
|
||||||
|
WHEN LENGTH(enroll.idCard) = 15 THEN 1900 + CAST(SUBSTR(enroll.idCard, 7, 2) AS UNSIGNED)
|
||||||
|
ELSE NULL
|
||||||
|
END) < 35 THEN 1 ELSE 0 END) AS underThirtyFive,
|
||||||
|
SUM(CASE
|
||||||
|
WHEN @year - (CASE
|
||||||
|
WHEN LENGTH(enroll.idCard) = 18 THEN CAST(SUBSTR(enroll.idCard, 7, 4) AS UNSIGNED)
|
||||||
|
WHEN LENGTH(enroll.idCard) = 15 THEN 1900 + CAST(SUBSTR(enroll.idCard, 7, 2) AS UNSIGNED)
|
||||||
|
ELSE NULL
|
||||||
|
END) BETWEEN 35 AND 45 THEN 1 ELSE 0 END) AS thirtyFiveToFortyFive,
|
||||||
|
SUM(CASE
|
||||||
|
WHEN @year - (CASE
|
||||||
|
WHEN LENGTH(enroll.idCard) = 18 THEN CAST(SUBSTR(enroll.idCard, 7, 4) AS UNSIGNED)
|
||||||
|
WHEN LENGTH(enroll.idCard) = 15 THEN 1900 + CAST(SUBSTR(enroll.idCard, 7, 2) AS UNSIGNED)
|
||||||
|
ELSE NULL
|
||||||
|
END) > 45 THEN 1 ELSE 0 END) AS aboveFortyFive
|
||||||
|
FROM
|
||||||
|
the_rapy_recuperation_line_union_select us
|
||||||
|
LEFT JOIN the_rapy_recuperation_line line ON us.lineId = line.id
|
||||||
|
LEFT JOIN the_rapy_recuperation_enroll enroll ON enroll.takePartInLineId = us.id
|
||||||
|
LEFT JOIN the_rapy_recuperation_lot lot ON lot.id = line.lotId
|
||||||
|
LEFT JOIN sys_union su ON su.id = us.unionId
|
||||||
|
$condition
|
||||||
|
""").setParam("year", year == null ? DateUtil.thisYear() : year);
|
||||||
|
Cnd cnd = Cnd.NEW();
|
||||||
|
cnd.andEX("YEAR(us.selectTime)", "=", year);
|
||||||
|
cnd.and("enroll.isNormal", "=", true);
|
||||||
|
cnd.and("us.`enable`", "=", true);
|
||||||
|
cnd.groupBy("us.id");
|
||||||
|
if (StrUtil.isNotBlank(lineType) && !"全部".equals(lineType)) {
|
||||||
|
cnd.andEX("line.regionalNature", "=", lineType);
|
||||||
|
}
|
||||||
|
sql.setCondition(cnd);
|
||||||
|
List<NutMap> list = lineService.listMap(sql);
|
||||||
|
|
||||||
|
NutMap result = NutMap.NEW();
|
||||||
|
// 柱状图
|
||||||
|
List<NutMap> uvData = list.stream().map(v -> {
|
||||||
|
NutMap map = NutMap.NEW();
|
||||||
|
map.put("lineName", v.getString("lineName"));
|
||||||
|
map.put("value", v.getInt("takePartInLineNum"));
|
||||||
|
return map;
|
||||||
|
}).sorted(Comparator.comparing(v -> v.getString("lineName"))).collect(Collectors.toList());
|
||||||
|
|
||||||
|
// 折线图
|
||||||
|
List<NutMap> underThirtyFiveList = list.stream().map(v -> {
|
||||||
|
NutMap map = NutMap.NEW();
|
||||||
|
map.put("lineName", v.getString("lineName"));
|
||||||
|
map.put("count", v.getInt("underThirtyFive"));
|
||||||
|
map.put("name", "35岁以下");
|
||||||
|
return map;
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
|
||||||
|
List<NutMap> thirtyFiveToFortyFiveList = list.stream().map(v -> {
|
||||||
|
NutMap map = NutMap.NEW();
|
||||||
|
map.put("lineName", v.getString("lineName"));
|
||||||
|
map.put("count", v.getInt("thirtyFiveToFortyFive"));
|
||||||
|
map.put("name", "35至45岁");
|
||||||
|
return map;
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
|
||||||
|
List<NutMap> aboveFortyFiveList = list.stream().map(v -> {
|
||||||
|
NutMap map = NutMap.NEW();
|
||||||
|
map.put("lineName", v.getString("lineName"));
|
||||||
|
map.put("count", v.getInt("aboveFortyFive"));
|
||||||
|
map.put("name", "45岁以上");
|
||||||
|
return map;
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
|
||||||
|
underThirtyFiveList.addAll(thirtyFiveToFortyFiveList);
|
||||||
|
underThirtyFiveList.addAll(aboveFortyFiveList);
|
||||||
|
|
||||||
|
List<NutMap> collect = underThirtyFiveList.stream().sorted(Comparator.comparing(v -> v.getString("lineName"))).collect(Collectors.toList());
|
||||||
|
result.put("uvData", uvData);
|
||||||
|
result.put("transformData", collect);
|
||||||
|
|
||||||
|
return Result.success().addData(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取分工会出行人数和年龄统计数据
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@At
|
||||||
|
@RequiresPermissions("theRapyRecuperation.annualAnalysis")
|
||||||
|
public Object getLineTravelAgeData(@Param(value = "year", required = false) Integer year,
|
||||||
|
@Param(value = "lineType", required = false) String lineType){
|
||||||
|
return Result.success().addData(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
+57
-67
@@ -2,17 +2,15 @@ package io.v.nutz.zhgh.therapyRecuperation.controller.audit;
|
|||||||
|
|
||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
|
||||||
import io.v.nutz.base.annontation.ViReturn;
|
import io.v.nutz.base.annontation.ViReturn;
|
||||||
import io.v.nutz.base.model.Audit;
|
import io.v.nutz.base.model.Audit;
|
||||||
import io.v.nutz.base.model.AuditState;
|
import io.v.nutz.base.model.AuditState;
|
||||||
import io.v.nutz.base.query.PageForm;
|
|
||||||
import io.v.nutz.base.utils.MsgApi;
|
import io.v.nutz.base.utils.MsgApi;
|
||||||
import io.v.nutz.base.utils.Vi;
|
import io.v.nutz.base.utils.Vi;
|
||||||
|
import io.v.nutz.base.query.PageForm;
|
||||||
import io.v.nutz.sys.models.Sys_user;
|
import io.v.nutz.sys.models.Sys_user;
|
||||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationState;
|
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationState;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationConfig;
|
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationEnroll;
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationEnroll;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLine;
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLine;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLineUnionSelect;
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLineUnionSelect;
|
||||||
@@ -67,18 +65,19 @@ public class TheRapyRecuperationAuditController {
|
|||||||
@At
|
@At
|
||||||
@ViReturn
|
@ViReturn
|
||||||
@RequiresAuthentication
|
@RequiresAuthentication
|
||||||
public Object getXlByUnion(Integer state, String unionId, String regionalNature, String year, String endYear, Integer signUpMode) {
|
public Object getXlByUnion(Integer state, String unionId, String regionalNature, String year,String endYear, Integer signUpMode) {
|
||||||
|
|
||||||
List<NutMap> xlByUnion = auditService.getXlByUnion(state, unionId, regionalNature, year, endYear, signUpMode);
|
List<NutMap> xlByUnion = auditService.getXlByUnion(state, unionId, regionalNature, year,endYear, signUpMode);
|
||||||
|
|
||||||
return xlByUnion;
|
return xlByUnion;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@At
|
@At
|
||||||
@ViReturn
|
@ViReturn
|
||||||
@RequiresAuthentication
|
@RequiresAuthentication
|
||||||
public Object getXlByUnionAudit(String unionId, String regionalNature, String year, Integer signUpMode) {
|
public Object getXlByUnionAudit(String unionId,String regionalNature, String year, Integer signUpMode) {
|
||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
SELECT
|
SELECT
|
||||||
line.id,
|
line.id,
|
||||||
@@ -93,20 +92,21 @@ public class TheRapyRecuperationAuditController {
|
|||||||
$condition
|
$condition
|
||||||
""");
|
""");
|
||||||
Cnd cnd = Cnd.NEW();
|
Cnd cnd = Cnd.NEW();
|
||||||
if (ShiroUtil.hasAnyRoles("sysadmin,A06")) {
|
if (ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin")){
|
||||||
cnd.andEX("ts.unionId", "=", unionId);
|
cnd.andEX("ts.unionId", "=", unionId);
|
||||||
} else {
|
} else {
|
||||||
cnd.and("ts.unionId", "=", vi.getUnionId());
|
cnd.and("ts.unionId", "=", vi.getUnionId());
|
||||||
}
|
}
|
||||||
cnd.andEX("YEAR(ts.selectTime)", "=", year);
|
cnd.andEX("YEAR(ts.selectTime)","=",year);
|
||||||
cnd.andEX("line.regionalNature", "=", regionalNature);
|
cnd.andEX("line.regionalNature","=",regionalNature);
|
||||||
cnd.andEX("line.signUpMode", "=", signUpMode);
|
cnd.andEX("line.signUpMode","=",signUpMode);
|
||||||
cnd.groupBy("line.id");
|
cnd.groupBy("line.id");
|
||||||
sql.setCondition(cnd);
|
sql.setCondition(cnd);
|
||||||
return auditService.listMap(sql);
|
return auditService.listMap(sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@At
|
@At
|
||||||
@ViReturn
|
@ViReturn
|
||||||
@RequiresAuthentication
|
@RequiresAuthentication
|
||||||
@@ -143,7 +143,7 @@ public class TheRapyRecuperationAuditController {
|
|||||||
cnd.andEX("enroll.selfUnionId", "=", unionId);
|
cnd.andEX("enroll.selfUnionId", "=", unionId);
|
||||||
cnd.and("enroll.takePartInLineId", "is not", null);
|
cnd.and("enroll.takePartInLineId", "is not", null);
|
||||||
cnd.andEX("enroll.selfUnitId", "=", unitId);
|
cnd.andEX("enroll.selfUnitId", "=", unitId);
|
||||||
cnd.andEX("lineu.lineId", "=", takePartInLineId);
|
cnd.andEX("enroll.takePartInLineId", "=", takePartInLineId);
|
||||||
cnd.andEX("enroll.isNormal", "=", true);
|
cnd.andEX("enroll.isNormal", "=", true);
|
||||||
cnd.andEX("lineu.signUpMode", "=", 1);
|
cnd.andEX("lineu.signUpMode", "=", 1);
|
||||||
cnd.andEX("lineu.id", "=", selectId);
|
cnd.andEX("lineu.id", "=", selectId);
|
||||||
@@ -157,7 +157,7 @@ public class TheRapyRecuperationAuditController {
|
|||||||
} else if (state.equals("2")) {
|
} else if (state.equals("2")) {
|
||||||
cnd.andEX("enroll.takePartInUnionId", "!=", Vi.getUnionId());
|
cnd.andEX("enroll.takePartInUnionId", "!=", Vi.getUnionId());
|
||||||
cnd.andEX("enroll.selfUnionId", "=", Vi.getUnionId());
|
cnd.andEX("enroll.selfUnionId", "=", Vi.getUnionId());
|
||||||
} else if (state.equals("3")) {
|
} else if (state.equals("3")){
|
||||||
cnd.andEX("enroll.selfUnionId", "!=", Vi.getUnionId());
|
cnd.andEX("enroll.selfUnionId", "!=", Vi.getUnionId());
|
||||||
cnd.andEX("enroll.takePartInUnionId", "=", Vi.getUnionId());
|
cnd.andEX("enroll.takePartInUnionId", "=", Vi.getUnionId());
|
||||||
}
|
}
|
||||||
@@ -173,14 +173,11 @@ public class TheRapyRecuperationAuditController {
|
|||||||
((enroll.stateId = %s OR enroll.stateId=%s )AND enroll.takePartInUnionId='%s')
|
((enroll.stateId = %s OR enroll.stateId=%s )AND enroll.takePartInUnionId='%s')
|
||||||
""".formatted(TheRapyRecuperationState.LINEUNITFAIL, TheRapyRecuperationState.PASS, vi.getUnionId())));
|
""".formatted(TheRapyRecuperationState.LINEUNITFAIL, TheRapyRecuperationState.PASS, vi.getUnionId())));
|
||||||
} else {
|
} else {
|
||||||
/*cnd.and(new Static("""
|
cnd.and(new Static("""
|
||||||
((( enroll.stateId = %s OR enroll.stateId = %s OR enroll.stateId = %s ) AND enroll.selfUnionId = '%s' )
|
((( enroll.stateId = %s OR enroll.stateId = %s OR enroll.stateId = %s ) AND enroll.selfUnionId = '%s' )
|
||||||
OR
|
OR
|
||||||
((enroll.stateId = %s OR enroll.stateId=%s )AND enroll.takePartInUnionId='%s'))
|
((enroll.stateId = %s OR enroll.stateId=%s )AND enroll.takePartInUnionId='%s'))
|
||||||
""".formatted(TheRapyRecuperationState.UNITFAIL, TheRapyRecuperationState.LINEUNIT, TheRapyRecuperationState.PASS, vi.getUnionId(), TheRapyRecuperationState.LINEUNITFAIL, TheRapyRecuperationState.PASS, vi.getUnionId())));*/
|
""".formatted(TheRapyRecuperationState.UNITFAIL, TheRapyRecuperationState.LINEUNIT, TheRapyRecuperationState.PASS, vi.getUnionId(), TheRapyRecuperationState.LINEUNITFAIL, TheRapyRecuperationState.PASS, vi.getUnionId())));
|
||||||
cnd.and(new Static("""
|
|
||||||
((enroll.stateId = %s OR enroll.stateId=%s )AND enroll.takePartInUnionId='%s')
|
|
||||||
""".formatted(TheRapyRecuperationState.LINEUNITFAIL, TheRapyRecuperationState.PASS, vi.getUnionId())));
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
cnd.and(new Static("""
|
cnd.and(new Static("""
|
||||||
@@ -226,7 +223,7 @@ public class TheRapyRecuperationAuditController {
|
|||||||
@ViReturn
|
@ViReturn
|
||||||
@RequiresAuthentication
|
@RequiresAuthentication
|
||||||
@RequiresPermissions("theRapyRecuperation.TheRapyAudit")
|
@RequiresPermissions("theRapyRecuperation.TheRapyAudit")
|
||||||
public Object doAudit(String id, boolean flag, Boolean adjustment, boolean isTransferIn, String auditOpinion) {
|
public Object doAudit(String id, boolean flag,Boolean adjustment, boolean isTransferIn, String auditOpinion) {
|
||||||
Trans.exec(() -> {
|
Trans.exec(() -> {
|
||||||
TheRapyRecuperationEnroll enroll = auditService.dao().fetch(TheRapyRecuperationEnroll.class, id);
|
TheRapyRecuperationEnroll enroll = auditService.dao().fetch(TheRapyRecuperationEnroll.class, id);
|
||||||
Audit audit = new Audit();
|
Audit audit = new Audit();
|
||||||
@@ -264,10 +261,10 @@ public class TheRapyRecuperationAuditController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
auditService.updateIgnoreNull(enroll);
|
auditService.updateIgnoreNull(enroll);
|
||||||
auditMsg(enroll.getStateId(), enroll.getLoginName(), adjustment, enroll.getTakePartInLineId());
|
auditMsg(enroll.getStateId(), enroll.getLoginName(),adjustment, enroll.getTakePartInLineId());
|
||||||
if (adjustment) {
|
if (adjustment){
|
||||||
// enroll.setNormal(false);
|
// enroll.setNormal(false);
|
||||||
auditService.dao().clear(TheRapyRecuperationEnroll.class, Cnd.where("id", "=", enroll.getId()));
|
auditService.dao().clear(TheRapyRecuperationEnroll.class,Cnd.where("id","=",enroll.getId()));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return null;
|
return null;
|
||||||
@@ -322,7 +319,7 @@ public class TheRapyRecuperationAuditController {
|
|||||||
@RequiresAuthentication
|
@RequiresAuthentication
|
||||||
@Aop(TransAop.READ_COMMITTED)
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
@RequiresPermissions("theRapyRecuperation.TheRapyAudit")
|
@RequiresPermissions("theRapyRecuperation.TheRapyAudit")
|
||||||
public Object doOnekeyAudit(String[] ids, String auditOpinion, boolean flag, Boolean adjustment) {
|
public Object doOnekeyAudit(String[] ids, String auditOpinion, boolean flag,Boolean adjustment) {
|
||||||
Audit audit = new Audit();
|
Audit audit = new Audit();
|
||||||
audit.setAuditOpinion(auditOpinion);
|
audit.setAuditOpinion(auditOpinion);
|
||||||
audit.setAuditor(ShiroUtil.getUserId());
|
audit.setAuditor(ShiroUtil.getUserId());
|
||||||
@@ -346,14 +343,14 @@ public class TheRapyRecuperationAuditController {
|
|||||||
enroll.setStateId(flag ? TheRapyRecuperationState.PASS : TheRapyRecuperationState.LINEUNITFAIL);
|
enroll.setStateId(flag ? TheRapyRecuperationState.PASS : TheRapyRecuperationState.LINEUNITFAIL);
|
||||||
enroll.setJoinLineUnionAuditId(insert.getId());
|
enroll.setJoinLineUnionAuditId(insert.getId());
|
||||||
}
|
}
|
||||||
if (adjustment) {
|
if (adjustment){
|
||||||
// enroll.setNormal(false);
|
// enroll.setNormal(false);
|
||||||
enrollIdList.add(id);
|
enrollIdList.add(id);
|
||||||
}
|
}
|
||||||
auditService.updateIgnoreNull(enroll);
|
auditService.updateIgnoreNull(enroll);
|
||||||
auditMsg(enroll.getStateId(), enroll.getLoginName(), adjustment, enroll.getTakePartInLineId());
|
auditMsg(enroll.getStateId(), enroll.getLoginName(),adjustment, enroll.getTakePartInLineId());
|
||||||
}
|
}
|
||||||
auditService.dao().clear(TheRapyRecuperationEnroll.class, Cnd.where("id", "in", enrollIdList));
|
auditService.dao().clear(TheRapyRecuperationEnroll.class,Cnd.where("id","in",enrollIdList));
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -364,22 +361,20 @@ public class TheRapyRecuperationAuditController {
|
|||||||
* @param loginName
|
* @param loginName
|
||||||
* @param takePartInLineId
|
* @param takePartInLineId
|
||||||
*/
|
*/
|
||||||
private void auditMsg(Integer stateId, String loginName, Boolean adjustment, String takePartInLineId) {
|
private void auditMsg(Integer stateId, String loginName,Boolean adjustment, String takePartInLineId) {
|
||||||
Sys_user user = auditService.dao().fetch(Sys_user.class, Cnd.where("loginname", "=", loginName));
|
Sys_user user = auditService.dao().fetch(Sys_user.class, Cnd.where("loginname", "=", loginName));
|
||||||
TheRapyRecuperationLineUnionSelect unionSelect = auditService.dao().fetch(TheRapyRecuperationLineUnionSelect.class, Cnd.where("id", "=", takePartInLineId));
|
TheRapyRecuperationLineUnionSelect unionSelect = auditService.dao().fetch(TheRapyRecuperationLineUnionSelect.class, Cnd.where("id", "=", takePartInLineId));
|
||||||
TheRapyRecuperationLine theRapyRecuperationLine = auditService.dao().fetch(TheRapyRecuperationLine.class, Cnd.where("id", "=", unionSelect.getLineId()));
|
TheRapyRecuperationLine theRapyRecuperationLine = auditService.dao().fetch(TheRapyRecuperationLine.class, Cnd.where("id", "=", unionSelect.getLineId()));
|
||||||
AuditState auditState = auditService.dao().fetch(AuditState.class, Cnd.where("stateId", "=", stateId));
|
AuditState auditState = auditService.dao().fetch(AuditState.class, Cnd.where("stateId", "=", stateId));
|
||||||
|
|
||||||
String content = "【智慧工会】%s老师您好,您报名的%s线路因报名人数不足已取消,请尽快进入智慧工会重新选择线路。"
|
String content = "【智慧工会】%s老师您好,您报名的%s线路因报名人数不足已取消,请尽快进入智慧工会重新选择线路。"
|
||||||
.formatted(user.getUsername(), theRapyRecuperationLine.getLineName());
|
.formatted(user.getUsername(),theRapyRecuperationLine.getLineName());
|
||||||
|
|
||||||
List list = List.of(Map.of("type", "User", "userId", user.getLoginname(), "name", user.getUsername()));
|
|
||||||
if (stateId.equals(TheRapyRecuperationState.PASS)) {
|
if (stateId.equals(TheRapyRecuperationState.PASS)) {
|
||||||
content = "【智慧工会】%s老师您好,您报名的%s线路已组团成功,请按约定出行。"
|
content = "【智慧工会】%s老师您好,您报名的%s线路已组团成功,请按约定出行。"
|
||||||
.formatted(user.getUsername(), theRapyRecuperationLine.getLineName());
|
.formatted(user.getUsername(), theRapyRecuperationLine.getLineName());
|
||||||
|
|
||||||
}
|
}
|
||||||
//msgApi.sendMsg(content, list, "疗休养", " IntelligenceMode", MsgApi.sendMode.normal.name());
|
msgApi.sendTextMsg(content,user.getLoginname());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -403,9 +398,8 @@ public class TheRapyRecuperationAuditController {
|
|||||||
Cnd cnd = Cnd.NEW();
|
Cnd cnd = Cnd.NEW();
|
||||||
if (!ShiroUtil.hasAnyRoles("sysadmin,H06")) {
|
if (!ShiroUtil.hasAnyRoles("sysadmin,H06")) {
|
||||||
cnd.and("takePartInLineId", "IS NOT", null);
|
cnd.and("takePartInLineId", "IS NOT", null);
|
||||||
cnd.and("takePartInLineId", "!=", "");
|
// cnd.and(Cnd.exps("takePartInUnionId", "=", vi.getUnionId()).or("selfUnionId", "=", vi.getUnionId()));
|
||||||
cnd.and(Cnd.exps("takePartInUnionId", "=", vi.getUnionId()).or("selfUnionId", "=", vi.getUnionId()));
|
cnd.and("selfUnionId", "=", vi.getUnionId());
|
||||||
//cnd.and("selfUnionId", "=", vi.getUnionId());
|
|
||||||
}
|
}
|
||||||
cnd.groupBy("selfUnionId");
|
cnd.groupBy("selfUnionId");
|
||||||
sql.setCondition(cnd);
|
sql.setCondition(cnd);
|
||||||
@@ -423,25 +417,17 @@ public class TheRapyRecuperationAuditController {
|
|||||||
@At
|
@At
|
||||||
@ViReturn
|
@ViReturn
|
||||||
@RequiresAuthentication
|
@RequiresAuthentication
|
||||||
public Object getApplyNumAudit(String takePartInLineId, String mode, String isAudit, Integer year, String selectId) {
|
public Object getApplyNumAudit(String takePartInLineId,String mode, String isAudit, Integer year,String selectId) {
|
||||||
TheRapyRecuperationConfig config = dao.fetch(TheRapyRecuperationConfig.class, Cnd.NEW());
|
|
||||||
String unionId = Vi.getUnionId();
|
String unionId = Vi.getUnionId();
|
||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
SELECT
|
SELECT
|
||||||
COUNT(1) as signUpNum,
|
COUNT(1) as signUpNum,
|
||||||
$val as familyNumber
|
IFNULL(sum(familyNumber),0) as familyNumber
|
||||||
FROM
|
FROM
|
||||||
`the_rapy_recuperation_enroll` enroll
|
`the_rapy_recuperation_enroll` enroll
|
||||||
LEFT JOIN the_rapy_recuperation_line_union_select lineu ON lineu.id = enroll.takePartInLineId
|
LEFT JOIN the_rapy_recuperation_line_union_select lineu ON lineu.id = enroll.takePartInLineId
|
||||||
$condition
|
$condition
|
||||||
""");
|
""");
|
||||||
String val = "";
|
|
||||||
if (config.getFamilyInfo() == 1) {
|
|
||||||
val = "IFNULL(sum(familyNumber),0)";
|
|
||||||
} else {
|
|
||||||
val = "IFNULL((select count(1) from the_rapy_recuperation_enroll_companion where trreId = enroll.id),0)";
|
|
||||||
}
|
|
||||||
sql.setVar("val", val);
|
|
||||||
Sql sql2 = sql;
|
Sql sql2 = sql;
|
||||||
Sql sql3 = sql;
|
Sql sql3 = sql;
|
||||||
Sql sql4 = sql;
|
Sql sql4 = sql;
|
||||||
@@ -453,16 +439,16 @@ public class TheRapyRecuperationAuditController {
|
|||||||
.and("selfUnionId", "=", unionId)
|
.and("selfUnionId", "=", unionId)
|
||||||
.and("isNormal", "=", true)
|
.and("isNormal", "=", true)
|
||||||
.and("takePartInLineId", "is not", null)
|
.and("takePartInLineId", "is not", null)
|
||||||
.andEX("lineu.lineId", "=", takePartInLineId)
|
.andEX("takePartInLineId", "=", takePartInLineId)
|
||||||
.andEX("YEAR(signingUptime)", "=", year)
|
.andEX("YEAR(signingUptime)", "=", year)
|
||||||
.andEX("signUpMode", "=", 1)
|
.andEX("signUpMode", "=", 1);
|
||||||
.andEX("lineu.id", "=", selectId);
|
|
||||||
if (StrUtil.isNotBlank(mode)) {
|
if (StrUtil.isNotBlank(mode)) {
|
||||||
cnd1.and("stateId", "=", TheRapyRecuperationState.PASS);
|
cnd1.and("stateId", "=", TheRapyRecuperationState.PASS);
|
||||||
}
|
}
|
||||||
|
if (StrUtil.isNotBlank(selectId)) cnd1.and("lineu.id","=",selectId);
|
||||||
sql.setCondition(cnd1);
|
sql.setCondition(cnd1);
|
||||||
NutMap map = (NutMap) Daos.query(dao, sql.toString(), Sqls.callback.map());
|
NutMap map = (NutMap) Daos.query(dao, sql.toString(), Sqls.callback.map());
|
||||||
int count1 = Integer.parseInt(String.valueOf(map.getOrDefault("signUpNum", 0))) + Integer.parseInt(String.valueOf(map.getOrDefault("familyNumber", 0)));
|
int count1 = Integer.parseInt(String.valueOf(map.getOrDefault("signUpNum", 0))) + Integer.parseInt(String.valueOf(map.getOrDefault("familyNumber",0)));
|
||||||
|
|
||||||
//本工会人员(其他路线)
|
//本工会人员(其他路线)
|
||||||
Cnd cnd2 = Cnd.NEW();
|
Cnd cnd2 = Cnd.NEW();
|
||||||
@@ -470,16 +456,16 @@ public class TheRapyRecuperationAuditController {
|
|||||||
.and("selfUnionId", "=", unionId)
|
.and("selfUnionId", "=", unionId)
|
||||||
.and("isNormal", "=", true)
|
.and("isNormal", "=", true)
|
||||||
.and("takePartInLineId", "is not", null)
|
.and("takePartInLineId", "is not", null)
|
||||||
.andEX("lineu.lineId", "=", takePartInLineId)
|
.andEX("takePartInLineId", "=", takePartInLineId)
|
||||||
.andEX("YEAR(signingUptime)", "=", year)
|
.andEX("YEAR(signingUptime)", "=", year)
|
||||||
.andEX("signUpMode", "=", 1)
|
.andEX("signUpMode", "=", 1);
|
||||||
.andEX("lineu.id", "=", selectId);
|
|
||||||
if (StrUtil.isNotBlank(mode)) {
|
if (StrUtil.isNotBlank(mode)) {
|
||||||
cnd2.and("stateId", "=", TheRapyRecuperationState.PASS);
|
cnd2.and("stateId", "=", TheRapyRecuperationState.PASS);
|
||||||
}
|
}
|
||||||
|
if (StrUtil.isNotBlank(selectId)) cnd2.and("lineu.id","=",selectId);
|
||||||
sql2.setCondition(cnd2);
|
sql2.setCondition(cnd2);
|
||||||
NutMap map2 = (NutMap) Daos.query(dao, sql2.toString(), Sqls.callback.map());
|
NutMap map2 = (NutMap) Daos.query(dao, sql2.toString(), Sqls.callback.map());
|
||||||
int count2 = Integer.parseInt(String.valueOf(map2.getOrDefault("signUpNum", 0))) + Integer.parseInt(String.valueOf(map2.getOrDefault("familyNumber", 0)));
|
int count2 = Integer.parseInt(String.valueOf(map2.getOrDefault("signUpNum",0))) + Integer.parseInt(String.valueOf(map2.getOrDefault("familyNumber",0)));
|
||||||
|
|
||||||
//其他工会人员(选我线路)
|
//其他工会人员(选我线路)
|
||||||
Cnd cnd3 = Cnd.NEW();
|
Cnd cnd3 = Cnd.NEW();
|
||||||
@@ -487,32 +473,32 @@ public class TheRapyRecuperationAuditController {
|
|||||||
.and("selfUnionId", "!=", unionId)
|
.and("selfUnionId", "!=", unionId)
|
||||||
.and("isNormal", "=", true)
|
.and("isNormal", "=", true)
|
||||||
.and("takePartInLineId", "is not", null)
|
.and("takePartInLineId", "is not", null)
|
||||||
.andEX("lineu.lineId", "=", takePartInLineId)
|
.andEX("takePartInLineId","=",takePartInLineId)
|
||||||
.andEX("YEAR(signingUptime)", "=", year)
|
.andEX("YEAR(signingUptime)", "=", year)
|
||||||
.andEX("signUpMode", "=", 1)
|
.andEX("signUpMode", "=", 1);
|
||||||
.andEX("lineu.id", "=", selectId);
|
|
||||||
if (StrUtil.isNotBlank(mode)) {
|
if (StrUtil.isNotBlank(mode)) {
|
||||||
cnd3.and("stateId", "=", TheRapyRecuperationState.PASS);
|
cnd3.and("stateId", "=", TheRapyRecuperationState.PASS);
|
||||||
}
|
}
|
||||||
|
if (StrUtil.isNotBlank(selectId)) cnd3.and("lineu.id","=",selectId);
|
||||||
sql3.setCondition(cnd3);
|
sql3.setCondition(cnd3);
|
||||||
NutMap map3 = (NutMap) Daos.query(dao, sql3.toString(), Sqls.callback.map());
|
NutMap map3 = (NutMap) Daos.query(dao, sql3.toString(), Sqls.callback.map());
|
||||||
int count3 = Integer.parseInt(String.valueOf(map3.getOrDefault("signUpNum", 0))) + Integer.parseInt(String.valueOf(map3.getOrDefault("familyNumber", 0)));
|
int count3 = Integer.parseInt(String.valueOf(map3.getOrDefault("signUpNum",0))) + Integer.parseInt(String.valueOf(map3.getOrDefault("familyNumber",0)));
|
||||||
|
|
||||||
//选择校工会线路人员
|
//选择校工会线路人员
|
||||||
Cnd cnd4 = Cnd.NEW();
|
Cnd cnd4 = Cnd.NEW();
|
||||||
cnd4.and("selfUnionId", "=", unionId)
|
cnd4.and("selfUnionId", "=", unionId)
|
||||||
.and("isNormal", "=", true)
|
.and("isNormal", "=", true)
|
||||||
.and("takePartInLineId", "is not", null)
|
.and("takePartInLineId", "is not", null)
|
||||||
.andEX("lineu.lineId", "=", takePartInLineId)
|
.andEX("takePartInLineId","=",takePartInLineId)
|
||||||
.andEX("YEAR(signingUptime)", "=", year)
|
.andEX("YEAR(signingUptime)", "=", year)
|
||||||
.andEX("signUpMode", "=", 2)
|
.andEX("signUpMode", "=", 2);
|
||||||
.andEX("lineu.id", "=", selectId);
|
|
||||||
if (StrUtil.isNotBlank(mode)) {
|
if (StrUtil.isNotBlank(mode)) {
|
||||||
cnd4.and("stateId", "=", TheRapyRecuperationState.PASS);
|
cnd4.and("stateId", "=", TheRapyRecuperationState.PASS);
|
||||||
}
|
}
|
||||||
|
if (StrUtil.isNotBlank(selectId)) cnd4.and("lineu.id","=",selectId);
|
||||||
sql4.setCondition(cnd4);
|
sql4.setCondition(cnd4);
|
||||||
NutMap map4 = (NutMap) Daos.query(dao, sql4.toString(), Sqls.callback.map());
|
NutMap map4 = (NutMap) Daos.query(dao, sql4.toString(), Sqls.callback.map());
|
||||||
int count4 = Integer.parseInt(String.valueOf(map4.getOrDefault("signUpNum", 0))) + Integer.parseInt(String.valueOf(map4.getOrDefault("familyNumber", 0)));
|
int count4 = Integer.parseInt(String.valueOf(map4.getOrDefault("signUpNum",0))) + Integer.parseInt(String.valueOf(map4.getOrDefault("familyNumber",0)));
|
||||||
|
|
||||||
return Map.of("count1", count1, "count2", count2, "count3", count3, "count4", count4);
|
return Map.of("count1", count1, "count2", count2, "count3", count3, "count4", count4);
|
||||||
}
|
}
|
||||||
@@ -524,13 +510,14 @@ public class TheRapyRecuperationAuditController {
|
|||||||
.and("selfUnionId", "=", unionId)
|
.and("selfUnionId", "=", unionId)
|
||||||
.and("isNormal", "=", true)
|
.and("isNormal", "=", true)
|
||||||
.and("takePartInLineId", "is not", null)
|
.and("takePartInLineId", "is not", null)
|
||||||
.andEX("lineu.lineId", "=", takePartInLineId)
|
.andEX("takePartInLineId","=",takePartInLineId)
|
||||||
.andEX("YEAR(signingUptime)", "=", year)
|
.andEX("YEAR(signingUptime)", "=", year)
|
||||||
.and("stateId", ">", TheRapyRecuperationState.UNIT)
|
.and("stateId", ">", TheRapyRecuperationState.UNIT)
|
||||||
.andEX("signUpMode", "=", 1);
|
.andEX("signUpMode", "=", 1);
|
||||||
|
if (StrUtil.isNotBlank(selectId)) cnd1.and("lineu.id","=",selectId);
|
||||||
sql.setCondition(cnd1);
|
sql.setCondition(cnd1);
|
||||||
NutMap map = (NutMap) Daos.query(dao, sql.toString(), Sqls.callback.map());
|
NutMap map = (NutMap) Daos.query(dao, sql.toString(), Sqls.callback.map());
|
||||||
int count1 = Integer.parseInt(String.valueOf(map.getOrDefault("signUpNum", 0))) + Integer.parseInt(String.valueOf(map.getOrDefault("familyNumber", 0)));
|
int count1 = Integer.parseInt(String.valueOf(map.getOrDefault("signUpNum",0))) + Integer.parseInt(String.valueOf(map.getOrDefault("familyNumber",0)));
|
||||||
|
|
||||||
|
|
||||||
//本工会人员(其他路线)
|
//本工会人员(其他路线)
|
||||||
@@ -551,13 +538,14 @@ public class TheRapyRecuperationAuditController {
|
|||||||
.and("selfUnionId", "!=", unionId)
|
.and("selfUnionId", "!=", unionId)
|
||||||
.and("isNormal", "=", true)
|
.and("isNormal", "=", true)
|
||||||
.and("takePartInLineId", "is not", null)
|
.and("takePartInLineId", "is not", null)
|
||||||
.andEX("lineu.lineId", "=", takePartInLineId)
|
.andEX("takePartInLineId","=",takePartInLineId)
|
||||||
.andEX("YEAR(signingUptime)", "=", year)
|
.andEX("YEAR(signingUptime)", "=", year)
|
||||||
.and("stateId", ">", TheRapyRecuperationState.LINEUNIT)
|
.and("stateId", ">", TheRapyRecuperationState.LINEUNIT)
|
||||||
.andEX("signUpMode", "=", 1);
|
.andEX("signUpMode", "=", 1);
|
||||||
|
if (StrUtil.isNotBlank(selectId)) cnd3.and("lineu.id","=",selectId);
|
||||||
sql3.setCondition(cnd3);
|
sql3.setCondition(cnd3);
|
||||||
NutMap map3 = (NutMap) Daos.query(dao, sql3.toString(), Sqls.callback.map());
|
NutMap map3 = (NutMap) Daos.query(dao, sql3.toString(), Sqls.callback.map());
|
||||||
int count3 = Integer.parseInt(String.valueOf(map3.getOrDefault("signUpNum", 0))) + Integer.parseInt(String.valueOf(map3.getOrDefault("familyNumber", 0)));
|
int count3 = Integer.parseInt(String.valueOf(map3.getOrDefault("signUpNum",0))) + Integer.parseInt(String.valueOf(map3.getOrDefault("familyNumber",0)));
|
||||||
|
|
||||||
|
|
||||||
// return Map.of("count1", count1, "count2", count2, "count3", count3);
|
// return Map.of("count1", count1, "count2", count2, "count3", count3);
|
||||||
@@ -571,13 +559,14 @@ public class TheRapyRecuperationAuditController {
|
|||||||
.and("selfUnionId", "=", unionId)
|
.and("selfUnionId", "=", unionId)
|
||||||
.and("isNormal", "=", true)
|
.and("isNormal", "=", true)
|
||||||
.and("takePartInLineId", "is not", null)
|
.and("takePartInLineId", "is not", null)
|
||||||
.andEX("lineu.lineId", "=", takePartInLineId)
|
.andEX("takePartInLineId","=",takePartInLineId)
|
||||||
.andEX("YEAR(signingUptime)", "=", year)
|
.andEX("YEAR(signingUptime)", "=", year)
|
||||||
.and("stateId", "=", TheRapyRecuperationState.UNIT)
|
.and("stateId", "=", TheRapyRecuperationState.UNIT)
|
||||||
.andEX("signUpMode", "=", 1);
|
.andEX("signUpMode", "=", 1);
|
||||||
|
if (StrUtil.isNotBlank(selectId)) cnd1.and("lineu.id","=",selectId);
|
||||||
sql.setCondition(cnd1);
|
sql.setCondition(cnd1);
|
||||||
NutMap map = (NutMap) Daos.query(dao, sql.toString(), Sqls.callback.map());
|
NutMap map = (NutMap) Daos.query(dao, sql.toString(), Sqls.callback.map());
|
||||||
int count1 = Integer.parseInt(String.valueOf(map.getOrDefault("signUpNum", 0))) + Integer.parseInt(String.valueOf(map.getOrDefault("familyNumber", 0)));
|
int count1 = Integer.parseInt(String.valueOf(map.getOrDefault("signUpNum",0))) + Integer.parseInt(String.valueOf(map.getOrDefault("familyNumber",0)));
|
||||||
|
|
||||||
|
|
||||||
//本工会人员(其他路线)
|
//本工会人员(其他路线)
|
||||||
@@ -598,13 +587,14 @@ public class TheRapyRecuperationAuditController {
|
|||||||
.and("selfUnionId", "!=", unionId)
|
.and("selfUnionId", "!=", unionId)
|
||||||
.and("isNormal", "=", true)
|
.and("isNormal", "=", true)
|
||||||
.and("takePartInLineId", "is not", null)
|
.and("takePartInLineId", "is not", null)
|
||||||
.andEX("lineu.lineId", "=", takePartInLineId)
|
.andEX("takePartInLineId","=",takePartInLineId)
|
||||||
.andEX("YEAR(signingUptime)", "=", year)
|
.andEX("YEAR(signingUptime)", "=", year)
|
||||||
.and("stateId", "=", TheRapyRecuperationState.LINEUNIT)
|
.and("stateId", "=", TheRapyRecuperationState.LINEUNIT)
|
||||||
.andEX("signUpMode", "=", 1);
|
.andEX("signUpMode", "=", 1);
|
||||||
|
if (StrUtil.isNotBlank(selectId)) cnd3.and("lineu.id","=",selectId);
|
||||||
sql3.setCondition(cnd3);
|
sql3.setCondition(cnd3);
|
||||||
NutMap map3 = (NutMap) Daos.query(dao, sql3.toString(), Sqls.callback.map());
|
NutMap map3 = (NutMap) Daos.query(dao, sql3.toString(), Sqls.callback.map());
|
||||||
int count3 = Integer.parseInt(String.valueOf(map3.getOrDefault("signUpNum", 0))) + Integer.parseInt(String.valueOf(map3.getOrDefault("familyNumber", 0)));
|
int count3 = Integer.parseInt(String.valueOf(map3.getOrDefault("signUpNum",0))) + Integer.parseInt(String.valueOf(map3.getOrDefault("familyNumber",0)));
|
||||||
|
|
||||||
// return Map.of("count1", count1, "count2", count2, "count3", count3);
|
// return Map.of("count1", count1, "count2", count2, "count3", count3);
|
||||||
return Map.of("count1", count1, "count3", count3);
|
return Map.of("count1", count1, "count3", count3);
|
||||||
|
|||||||
+31
-47
@@ -2,19 +2,15 @@ package io.v.nutz.zhgh.therapyRecuperation.controller.audit;
|
|||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
|
||||||
import io.v.nutz.base.annontation.ViReturn;
|
import io.v.nutz.base.annontation.ViReturn;
|
||||||
import io.v.nutz.base.model.Audit;
|
import io.v.nutz.base.model.Audit;
|
||||||
import io.v.nutz.base.query.PageForm;
|
|
||||||
import io.v.nutz.base.service.BaseService;
|
import io.v.nutz.base.service.BaseService;
|
||||||
import io.v.nutz.base.service.ViService;
|
|
||||||
import io.v.nutz.base.utils.Vi;
|
import io.v.nutz.base.utils.Vi;
|
||||||
|
import io.v.nutz.base.query.PageForm;
|
||||||
|
import io.v.nutz.base.service.ViService;
|
||||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationState;
|
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationState;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationConfig;
|
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationEnroll;
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationEnroll;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationEnrollCompanion;
|
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLineUnionSelect;
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLineUnionSelect;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationAuditService;
|
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationAuditService;
|
||||||
import org.apache.shiro.authz.annotation.RequiresAuthentication;
|
import org.apache.shiro.authz.annotation.RequiresAuthentication;
|
||||||
@@ -28,18 +24,15 @@ import org.nutz.dao.util.cri.Static;
|
|||||||
import org.nutz.ioc.aop.Aop;
|
import org.nutz.ioc.aop.Aop;
|
||||||
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.Strings;
|
import org.nutz.lang.Strings;
|
||||||
import org.nutz.lang.util.NutMap;
|
import org.nutz.lang.util.NutMap;
|
||||||
import org.nutz.mvc.annotation.At;
|
import org.nutz.mvc.annotation.At;
|
||||||
import org.nutz.mvc.annotation.Ok;
|
import org.nutz.mvc.annotation.Ok;
|
||||||
import org.nutz.mvc.annotation.Param;
|
|
||||||
import org.nutz.trans.Trans;
|
import org.nutz.trans.Trans;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
@IocBean
|
@IocBean
|
||||||
@At("/platform/theRapyRecuperation/TheRapyXghAudit")
|
@At("/platform/theRapyRecuperation/TheRapyXghAudit")
|
||||||
@@ -293,19 +286,37 @@ public class TheRapyRecuperationXghAuditController {
|
|||||||
@ViReturn
|
@ViReturn
|
||||||
@RequiresAuthentication
|
@RequiresAuthentication
|
||||||
@RequiresPermissions("theRapyRecuperation.TheRapyXghAudit")
|
@RequiresPermissions("theRapyRecuperation.TheRapyXghAudit")
|
||||||
public Object getXghLine() {
|
public Object getXghLine(Integer year,String regionalNature) {
|
||||||
|
// Sql sql = Sqls.create("""
|
||||||
|
// SELECT
|
||||||
|
// line.*,
|
||||||
|
// un.unionname
|
||||||
|
// FROM
|
||||||
|
// `the_rapy_recuperation_enroll` enroll
|
||||||
|
// LEFT JOIN the_rapy_recuperation_line_union_select lineu ON lineu.id = enroll.takePartInLineId
|
||||||
|
// LEFT JOIN the_rapy_recuperation_line line ON line.id = lineu.lineId
|
||||||
|
// LEFT JOIN sys_union un ON un.id = enroll.takePartInUnionId
|
||||||
|
// where line.signUpMode='2' and line.createMode='2'
|
||||||
|
// group by line.id
|
||||||
|
// """);
|
||||||
|
|
||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
SELECT
|
SELECT
|
||||||
line.*,
|
line.*,
|
||||||
un.unionname
|
un.unionname
|
||||||
FROM
|
FROM
|
||||||
`the_rapy_recuperation_enroll` enroll
|
the_rapy_recuperation_line_union_select lineu
|
||||||
LEFT JOIN the_rapy_recuperation_line_union_select lineu ON lineu.id = enroll.takePartInLineId
|
|
||||||
LEFT JOIN the_rapy_recuperation_line line ON line.id = lineu.lineId
|
LEFT JOIN the_rapy_recuperation_line line ON line.id = lineu.lineId
|
||||||
LEFT JOIN sys_union un ON un.id = enroll.takePartInUnionId
|
LEFT JOIN sys_union un ON un.id = lineu.unionId
|
||||||
where line.signUpMode='2' and line.createMode='2'
|
$condition
|
||||||
group by line.id
|
|
||||||
""");
|
""");
|
||||||
|
Cnd cnd = Cnd.NEW();
|
||||||
|
cnd.andEX("YEAR(lineu.selectTime)","=",year);
|
||||||
|
if (StrUtil.isNotBlank(regionalNature) && !"全部".equals(regionalNature)){
|
||||||
|
cnd.and("line.regionalNature","=",regionalNature);
|
||||||
|
}
|
||||||
|
cnd.groupBy("line.id");
|
||||||
|
sql.setCondition(cnd);
|
||||||
return baseService.listMap(sql);
|
return baseService.listMap(sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -313,48 +324,21 @@ public class TheRapyRecuperationXghAuditController {
|
|||||||
@At
|
@At
|
||||||
@ViReturn
|
@ViReturn
|
||||||
@RequiresAuthentication
|
@RequiresAuthentication
|
||||||
public Object getLinePlayTimeByLineId(String lineId,
|
public Object getLinePlayTimeByLineId(String lineId, Integer signUpMode, Integer year) {
|
||||||
@Param(value = "signUpMode",required = false) Integer signUpMode,
|
List<TheRapyRecuperationLineUnionSelect> query = dao.query(TheRapyRecuperationLineUnionSelect.class, Cnd.where("lineId", "=", lineId)
|
||||||
@Param(value = "year",required = false) Integer year,
|
.andEX("signUpMode", "=", signUpMode).andEX("YEAR(selectTime)", "=", year));
|
||||||
@Param(value = "startYear",required = false)Integer startYear,
|
|
||||||
@Param(value = "endYear",required = false)Integer endYear,
|
|
||||||
@Param(value = "flag",required = false) Boolean flag) {
|
|
||||||
Cnd cnd = Cnd.NEW();
|
|
||||||
cnd.and("lineId", "=", lineId);
|
|
||||||
if (flag == null || !flag){
|
|
||||||
cnd.andEX("signUpMode", "=", signUpMode);
|
|
||||||
cnd.and("YEAR(selectTime)", "=", year);
|
|
||||||
} else {
|
|
||||||
cnd.and("YEAR(selectTime)", ">=", startYear);
|
|
||||||
cnd.and("YEAR(selectTime)", "<=", endYear);
|
|
||||||
}
|
|
||||||
List<TheRapyRecuperationLineUnionSelect> query = dao.query(TheRapyRecuperationLineUnionSelect.class, cnd);
|
|
||||||
//.and("selectUserId", "=", ShiroUtil.getUserId()).and("unionId", "=", Vi.getUnionId()));
|
//.and("selectUserId", "=", ShiroUtil.getUserId()).and("unionId", "=", Vi.getUnionId()));
|
||||||
|
|
||||||
TheRapyRecuperationConfig config = dao.fetch(TheRapyRecuperationConfig.class, Cnd.NEW());
|
|
||||||
List<NutMap> nutMaps = new ArrayList<>();
|
List<NutMap> nutMaps = new ArrayList<>();
|
||||||
query.forEach(v -> {
|
query.forEach(v -> {
|
||||||
String startTime = DateUtil.formatChineseDate(v.getPlayStartTime(), false, false).substring(5);
|
String startTime = DateUtil.formatChineseDate(v.getPlayStartTime(), false, false).substring(5);
|
||||||
String endTime = DateUtil.formatChineseDate(v.getPlayEndTime(), false, false).substring(5);
|
String endTime = DateUtil.formatChineseDate(v.getPlayEndTime(), false, false).substring(5);
|
||||||
NutMap map = new NutMap();
|
NutMap map = new NutMap();
|
||||||
|
map.setv("times", startTime + "-" + endTime);
|
||||||
List<TheRapyRecuperationEnroll> enrollList = dao.query(TheRapyRecuperationEnroll.class, Cnd.where("takePartInLineId", "=", v.getId())
|
|
||||||
.and("isNormal", "=", true)
|
|
||||||
.and("stateId", "not in", Lang.array(TheRapyRecuperationState.UNITFAIL, TheRapyRecuperationState.LINEUNITFAIL, TheRapyRecuperationState.SCHOOLFAIL)));
|
|
||||||
|
|
||||||
int hasSignNumber;
|
|
||||||
if (config.getFamilyInfo() == 1) {
|
|
||||||
int sum = enrollList.stream().mapToInt(TheRapyRecuperationEnroll::getFamilyNumber).sum();
|
|
||||||
hasSignNumber = enrollList.size() + sum;
|
|
||||||
} else {
|
|
||||||
List<String> list = enrollList.stream().map(TheRapyRecuperationEnroll::getId).collect(Collectors.toList());
|
|
||||||
List<TheRapyRecuperationEnrollCompanion> companions = dao.query(TheRapyRecuperationEnrollCompanion.class, Cnd.where("trreId", "in", list));
|
|
||||||
hasSignNumber = enrollList.size() + companions.size();
|
|
||||||
}
|
|
||||||
map.setv("times", startTime + "-" + endTime + "(报名人数:" + hasSignNumber + ",其中家属:" + (hasSignNumber - enrollList.size()) + "人)");
|
|
||||||
map.setv("selectId", v.getId());
|
map.setv("selectId", v.getId());
|
||||||
nutMaps.add(map);
|
nutMaps.add(map);
|
||||||
});
|
});
|
||||||
return nutMaps;
|
return nutMaps;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-6
@@ -12,15 +12,15 @@ import cn.hutool.core.util.StrUtil;
|
|||||||
import cn.wizzer.framework.base.Result;
|
import cn.wizzer.framework.base.Result;
|
||||||
import io.v.nutz.base.annontation.ViReturn;
|
import io.v.nutz.base.annontation.ViReturn;
|
||||||
import io.v.nutz.base.dao.CndPlus;
|
import io.v.nutz.base.dao.CndPlus;
|
||||||
import io.v.nutz.base.query.PageForm;
|
|
||||||
import io.v.nutz.base.service.BaseService;
|
import io.v.nutz.base.service.BaseService;
|
||||||
import io.v.nutz.base.utils.Vi;
|
import io.v.nutz.base.utils.Vi;
|
||||||
import io.v.nutz.base.utils.ViTool;
|
import io.v.nutz.base.query.PageForm;
|
||||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationBaseManagement;
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationBaseManagement;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLot;
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLot;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationTravelAgency;
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationTravelAgency;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.service.baseManage.TheRapyRecuperationBaseManagerService;
|
import io.v.nutz.zhgh.therapyRecuperation.service.baseManage.TheRapyRecuperationBaseManagerService;
|
||||||
|
import io.v.nutz.base.utils.ViTool;
|
||||||
import org.apache.poi.ss.usermodel.Workbook;
|
import org.apache.poi.ss.usermodel.Workbook;
|
||||||
import org.apache.shiro.authz.annotation.Logical;
|
import org.apache.shiro.authz.annotation.Logical;
|
||||||
import org.apache.shiro.authz.annotation.RequiresAuthentication;
|
import org.apache.shiro.authz.annotation.RequiresAuthentication;
|
||||||
@@ -92,7 +92,7 @@ public class TheRapyRecuperationBaseManagerController {
|
|||||||
@POST
|
@POST
|
||||||
@Ok("json:full")
|
@Ok("json:full")
|
||||||
@ViReturn
|
@ViReturn
|
||||||
@RequiresRoles(value = {"sysadmin", "A06", "H04"}, logical = Logical.OR)
|
@RequiresRoles(value = {"sysadmin", "SchoolUnionAdmin", "H04"}, logical = Logical.OR)
|
||||||
public Object pageData(PageForm pageForm, Integer year, String lotId, String baseName, String unionId, String travelAgencyId, String regionalNature) {
|
public Object pageData(PageForm pageForm, Integer year, String lotId, String baseName, String unionId, String travelAgencyId, String regionalNature) {
|
||||||
Cnd cnd = Cnd.NEW();
|
Cnd cnd = Cnd.NEW();
|
||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
@@ -114,7 +114,7 @@ public class TheRapyRecuperationBaseManagerController {
|
|||||||
tb.files,
|
tb.files,
|
||||||
tb.baseContactPerson,
|
tb.baseContactPerson,
|
||||||
tb.baseContactNumber,
|
tb.baseContactNumber,
|
||||||
tb.files AS fileId,
|
cast( tb.files ->> '$[0].id' AS CHAR ) AS fileId,
|
||||||
gh.unionname createUnionName,
|
gh.unionname createUnionName,
|
||||||
u.username createUserName,
|
u.username createUserName,
|
||||||
ta.travelAgencyName,
|
ta.travelAgencyName,
|
||||||
@@ -136,7 +136,7 @@ public class TheRapyRecuperationBaseManagerController {
|
|||||||
cnd.desc("tb.`year`");
|
cnd.desc("tb.`year`");
|
||||||
cnd.asc("tb.sortNumber");
|
cnd.asc("tb.sortNumber");
|
||||||
cnd.asc("tb.id");
|
cnd.asc("tb.id");
|
||||||
if (!ShiroUtil.hasAnyRoles(List.of("sysadmin", "A06"))) {
|
if (!ShiroUtil.hasAnyRoles(List.of("sysadmin", "SchoolUnionAdmin"))) {
|
||||||
if (ShiroUtil.hasRole("H04")) {
|
if (ShiroUtil.hasRole("H04")) {
|
||||||
cnd.and("tb.createUnionId", "=", Vi.getUnionId());
|
cnd.and("tb.createUnionId", "=", Vi.getUnionId());
|
||||||
}
|
}
|
||||||
@@ -192,7 +192,7 @@ public class TheRapyRecuperationBaseManagerController {
|
|||||||
@POST
|
@POST
|
||||||
@ViReturn
|
@ViReturn
|
||||||
@RequiresAuthentication
|
@RequiresAuthentication
|
||||||
@RequiresRoles(value = {"sysadmin", "A06", "H04"}, logical = Logical.OR)
|
@RequiresRoles(value = {"sysadmin", "SchoolUnionAdmin", "H04"}, logical = Logical.OR)
|
||||||
public Object doSubmit(@Param("base") TheRapyRecuperationBaseManagement baseManagement) {
|
public Object doSubmit(@Param("base") TheRapyRecuperationBaseManagement baseManagement) {
|
||||||
baseManagement.setOpBy((String) ShiroUtil.getPrincipalProperty("id"));
|
baseManagement.setOpBy((String) ShiroUtil.getPrincipalProperty("id"));
|
||||||
baseManagement.setCreateUnionId((String) ShiroUtil.getPrincipalProperty("unionid"));
|
baseManagement.setCreateUnionId((String) ShiroUtil.getPrincipalProperty("unionid"));
|
||||||
|
|||||||
+15
-21
@@ -9,20 +9,19 @@ import cn.hutool.core.io.FileUtil;
|
|||||||
import cn.hutool.core.lang.Assert;
|
import cn.hutool.core.lang.Assert;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.wizzer.framework.base.Result;
|
import cn.wizzer.framework.base.Result;
|
||||||
|
|
||||||
import io.v.nutz.base.annontation.ViReturn;
|
import io.v.nutz.base.annontation.ViReturn;
|
||||||
import io.v.nutz.base.query.PageForm;
|
|
||||||
import io.v.nutz.base.utils.Vi;
|
import io.v.nutz.base.utils.Vi;
|
||||||
|
import io.v.nutz.base.query.PageForm;
|
||||||
|
import io.v.nutz.sys.models.User;
|
||||||
import io.v.nutz.base.utils.ViTool;
|
|
||||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationLineCreateMode;
|
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationLineCreateMode;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.mode.TheRapyTravelLineExcelMode;
|
import io.v.nutz.zhgh.therapyRecuperation.mode.TheRapyTravelLineExcelMode;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationEnroll;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLine;
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLine;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLot;
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLot;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationTravelAgency;
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationTravelAgency;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationLineService;
|
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationLineService;
|
||||||
|
import io.v.nutz.base.utils.ViTool;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.poi.ss.usermodel.Workbook;
|
import org.apache.poi.ss.usermodel.Workbook;
|
||||||
import org.apache.shiro.authz.annotation.Logical;
|
import org.apache.shiro.authz.annotation.Logical;
|
||||||
@@ -42,6 +41,7 @@ import org.nutz.mvc.upload.UploadAdaptor;
|
|||||||
|
|
||||||
import javax.servlet.ServletOutputStream;
|
import javax.servlet.ServletOutputStream;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.io.File;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.lang.reflect.InvocationHandler;
|
import java.lang.reflect.InvocationHandler;
|
||||||
import java.lang.reflect.Proxy;
|
import java.lang.reflect.Proxy;
|
||||||
@@ -82,28 +82,22 @@ public class TheRapyRecuperationLineController {
|
|||||||
@POST
|
@POST
|
||||||
@Ok("json:full")
|
@Ok("json:full")
|
||||||
@ViReturn
|
@ViReturn
|
||||||
@RequiresRoles(value = {"sysadmin", "A06", "H04"}, logical = Logical.OR)
|
@RequiresRoles(value = {"sysadmin", "SchoolUnionAdmin", "H04", "H01"}, logical = Logical.OR)
|
||||||
public Object pageData(PageForm pageForm, Integer startYear , Integer endYear, String keywords, String travelAgencyId, String lineName, String unionId, String lotId) {
|
public Object pageData(PageForm pageForm, Integer startYear, Integer endYear, Integer signUpMode, String travelAgencyId, String lineName, String unionId, String lotId) {
|
||||||
Cnd cnd = Cnd.NEW();
|
Cnd cnd = Cnd.NEW();
|
||||||
cnd.andEX("line.`year`", ">=", startYear);
|
cnd.andEX("line.`year`", ">=", startYear);
|
||||||
cnd.andEX("line.`year`", "<=", endYear);
|
cnd.andEX("line.`year`", "<=", endYear);
|
||||||
cnd.andEX("line.travelAgencyId", "=", travelAgencyId);
|
cnd.andEX("line.travelAgencyId", "=", travelAgencyId);
|
||||||
cnd.andEX("line.lotId", "=", lotId);
|
cnd.andEX("line.lotId", "=", lotId);
|
||||||
|
cnd.andEX("line.signUpMode", "=", signUpMode);
|
||||||
cnd.and(Cnd.likeEX("line.lineName", lineName));
|
cnd.and(Cnd.likeEX("line.lineName", lineName));
|
||||||
|
|
||||||
/*if (StrUtil.isNotBlank(keywords)) {
|
|
||||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
|
||||||
seg.orLike("line.lineName", keywords);
|
|
||||||
seg.orLike("line.travelAgencyName", keywords);
|
|
||||||
cnd.and(seg);
|
|
||||||
}*/
|
|
||||||
cnd.desc("year");
|
cnd.desc("year");
|
||||||
if (!ShiroUtil.hasAnyRoles(List.of("sysadmin", "A06"))) {
|
if (!ShiroUtil.hasAnyRoles(List.of("sysadmin", "SchoolUnionAdmin"))) {
|
||||||
if (ShiroUtil.hasRole("H04")) {
|
if (ShiroUtil.hasRole("H04")) {
|
||||||
cnd.and("line.createUnionId", "=", Vi.getUnionId());
|
cnd.and("line.createUnionId", "=", Vi.getUnionId());
|
||||||
|
}else{
|
||||||
|
cnd.and("line.opBy", "=", ShiroUtil.getUserId());
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
cnd.andEX("line.createUnionId", "=", unionId);
|
|
||||||
}
|
}
|
||||||
cnd.desc("regionalNature").asc("serialNumber").asc("line.opBy");
|
cnd.desc("regionalNature").asc("serialNumber").asc("line.opBy");
|
||||||
return lineService.pageData(pageForm, cnd);
|
return lineService.pageData(pageForm, cnd);
|
||||||
@@ -113,7 +107,7 @@ public class TheRapyRecuperationLineController {
|
|||||||
@POST
|
@POST
|
||||||
@ViReturn
|
@ViReturn
|
||||||
@RequiresAuthentication
|
@RequiresAuthentication
|
||||||
@RequiresRoles(value = {"sysadmin", "A06", "H04"}, logical = Logical.OR)
|
@RequiresRoles(value = {"sysadmin", "SchoolUnionAdmin", "H04", "H01"}, logical = Logical.OR)
|
||||||
public Object getNo() {
|
public Object getNo() {
|
||||||
Object serialNumber = dao.func2(TheRapyRecuperationLine.class, "max", "serialNumber");
|
Object serialNumber = dao.func2(TheRapyRecuperationLine.class, "max", "serialNumber");
|
||||||
serialNumber = Objects.requireNonNullElse(serialNumber, 0);
|
serialNumber = Objects.requireNonNullElse(serialNumber, 0);
|
||||||
@@ -130,8 +124,8 @@ public class TheRapyRecuperationLineController {
|
|||||||
@POST
|
@POST
|
||||||
@ViReturn
|
@ViReturn
|
||||||
@RequiresAuthentication
|
@RequiresAuthentication
|
||||||
@RequiresRoles(value = {"sysadmin", "A06", "H04"}, logical = Logical.OR)
|
@RequiresRoles(value = {"sysadmin", "SchoolUnionAdmin", "H04", "H01"}, logical = Logical.OR)
|
||||||
public Object doSubmit(TheRapyRecuperationLine line) {
|
public Object doSubmit(@Param("line") TheRapyRecuperationLine line) {
|
||||||
if (StrUtil.isBlank(line.getId())) {
|
if (StrUtil.isBlank(line.getId())) {
|
||||||
if (lineService.count(Cnd.where("serialNumber", "=", line.getSerialNumber())) > 0) {
|
if (lineService.count(Cnd.where("serialNumber", "=", line.getSerialNumber())) > 0) {
|
||||||
return Result.error("编号已存在");
|
return Result.error("编号已存在");
|
||||||
@@ -219,7 +213,7 @@ public class TheRapyRecuperationLineController {
|
|||||||
@ViReturn
|
@ViReturn
|
||||||
@RequiresAuthentication
|
@RequiresAuthentication
|
||||||
public Object getCreateMode() {
|
public Object getCreateMode() {
|
||||||
boolean hasSchoolAdminRole = ShiroUtil.hasAnyRoles(List.of("sysadmin", "A06"));
|
boolean hasSchoolAdminRole = ShiroUtil.hasAnyRoles(List.of("sysadmin", "SchoolUnionAdmin"));
|
||||||
if (hasSchoolAdminRole) {
|
if (hasSchoolAdminRole) {
|
||||||
return TheRapyRecuperationLineCreateMode.SCHOOL.getValue();
|
return TheRapyRecuperationLineCreateMode.SCHOOL.getValue();
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-11
@@ -5,11 +5,9 @@ import cn.afterturn.easypoi.excel.entity.ImportParams;
|
|||||||
import cn.hutool.core.io.FileUtil;
|
import cn.hutool.core.io.FileUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.wizzer.framework.base.Result;
|
import cn.wizzer.framework.base.Result;
|
||||||
|
|
||||||
import io.v.nutz.base.annontation.ViReturn;
|
import io.v.nutz.base.annontation.ViReturn;
|
||||||
import io.v.nutz.base.query.PageForm;
|
|
||||||
import io.v.nutz.base.utils.PageUtil;
|
import io.v.nutz.base.utils.PageUtil;
|
||||||
|
import io.v.nutz.base.query.PageForm;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.mode.TheRapyTravelAgencyExcelMode;
|
import io.v.nutz.zhgh.therapyRecuperation.mode.TheRapyTravelAgencyExcelMode;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationTravelAgency;
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationTravelAgency;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationTravelAgencyService;
|
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationTravelAgencyService;
|
||||||
@@ -84,7 +82,7 @@ public class TheRapyRecuperationTravelAgencyController {
|
|||||||
if (StrUtil.isAllNotBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) {
|
if (StrUtil.isAllNotBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) {
|
||||||
cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy()));
|
cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy()));
|
||||||
} else {
|
} else {
|
||||||
cnd.asc("serialNumber * 1");
|
cnd.asc("serialNumber");
|
||||||
}
|
}
|
||||||
return travelAgencyService.pageData(pageForm, cnd);
|
return travelAgencyService.pageData(pageForm, cnd);
|
||||||
}
|
}
|
||||||
@@ -176,14 +174,10 @@ public class TheRapyRecuperationTravelAgencyController {
|
|||||||
@At("/selectTravelAgencyByYears")
|
@At("/selectTravelAgencyByYears")
|
||||||
@ViReturn
|
@ViReturn
|
||||||
@RequiresAuthentication
|
@RequiresAuthentication
|
||||||
public Object selectTravelAgencyByYears(Integer startYear, Integer endYear, Integer year) {
|
public Object selectTravelAgencyByYears(Integer startYear, Integer endYear) {
|
||||||
Cnd cnd = Cnd.NEW();
|
Cnd cnd = Cnd.NEW();
|
||||||
if(startYear != null && endYear != null) {
|
cnd.andEX("year", ">=", startYear);
|
||||||
cnd.andEX("year", ">=", startYear);
|
cnd.andEX("year", "<=", endYear);
|
||||||
cnd.andEX("year", "<=", endYear);
|
|
||||||
}else {
|
|
||||||
cnd.andEX("year", "=", year);
|
|
||||||
}
|
|
||||||
return travelAgencyService.selectAllTravelAgencyByYear(cnd);
|
return travelAgencyService.selectAllTravelAgencyByYear(cnd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+168
@@ -0,0 +1,168 @@
|
|||||||
|
package io.v.nutz.zhgh.therapyRecuperation.controller.enrollAudit;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import io.v.nutz.base.annontation.ViReturn;
|
||||||
|
import io.v.nutz.base.model.Audit;
|
||||||
|
import io.v.nutz.base.query.PageForm;
|
||||||
|
import io.v.nutz.base.utils.Vi;
|
||||||
|
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLineUnionSelect;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationEnrollService;
|
||||||
|
import org.apache.shiro.authz.annotation.RequiresAuthentication;
|
||||||
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||||
|
import org.nutz.dao.Cnd;
|
||||||
|
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.util.NutMap;
|
||||||
|
import org.nutz.mvc.annotation.At;
|
||||||
|
import org.nutz.mvc.annotation.Ok;
|
||||||
|
import org.nutz.mvc.annotation.Param;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author zhf
|
||||||
|
* @date 2025/5/21 15:02
|
||||||
|
* @description 线路审核公用
|
||||||
|
*/
|
||||||
|
@IocBean
|
||||||
|
@At("/platform/theRapyRecuperation/enrollAudit/commonAudit")
|
||||||
|
@Ok("json:full")
|
||||||
|
public class TheRapyRecuperationEnrollCommonAuditController {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private TheRapyRecuperationEnrollService enrollService;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* 查询某一条选择线路的审核记录
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@At
|
||||||
|
@ViReturn
|
||||||
|
public Object findOne(String id){
|
||||||
|
Sql sql = Sqls.create("""
|
||||||
|
select * from the_rapy_recuperation_line_union_select where id=@id
|
||||||
|
""").setParam("id", id);
|
||||||
|
NutMap nutMap = enrollService.fetch(sql);
|
||||||
|
if (StrUtil.isNotBlank(nutMap.getString("unionAuditId"))){
|
||||||
|
nutMap.put("unionAudit",enrollService.dao().fetch(Audit.class,nutMap.getString("unionAuditId")));
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotBlank(nutMap.getString("unitLeaderAuditId"))){
|
||||||
|
nutMap.put("unitLeaderAudit",enrollService.dao().fetch(Audit.class,nutMap.getString("unitLeaderAuditId")));
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotBlank(nutMap.getString("schoolAuditId"))){
|
||||||
|
nutMap.put("schoolAudit",enrollService.dao().fetch(Audit.class,nutMap.getString("schoolAuditId")));
|
||||||
|
}
|
||||||
|
return nutMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@At
|
||||||
|
@ViReturn
|
||||||
|
public Object getUnionSelectLine(Integer startYear, Integer endYear, Integer signUpMode) {
|
||||||
|
Sql sql = Sqls.create("""
|
||||||
|
SELECT
|
||||||
|
rlus.id,
|
||||||
|
rlus.unionId,
|
||||||
|
rlus.lineId,
|
||||||
|
rlus.selectUserId,
|
||||||
|
DATE_FORMAT( rlus.playStartTime, '%Y-%m-%d' ) AS playStartTime,
|
||||||
|
DATE_FORMAT( rlus.playEndTime, '%Y-%m-%d' ) AS playEndTime,
|
||||||
|
rl.lineName,
|
||||||
|
rl.regionalNature,
|
||||||
|
CASE
|
||||||
|
WHEN rlus.signUpMode = 1 THEN '个人组织'
|
||||||
|
WHEN rlus.signUpMode = 2 THEN '分工会组织'
|
||||||
|
WHEN rlus.signUpMode = 3 THEN '校工会组织'
|
||||||
|
ELSE '未知'
|
||||||
|
END AS signUpMode,
|
||||||
|
lot.lotName
|
||||||
|
FROM
|
||||||
|
`the_rapy_recuperation_line_union_select` rlus
|
||||||
|
LEFT JOIN `the_rapy_recuperation_line` rl ON rlus.lineId = rl.id
|
||||||
|
LEFT JOIN `the_rapy_recuperation_lot` lot ON rl.lotId = lot.id
|
||||||
|
$condition
|
||||||
|
""");
|
||||||
|
Cnd cnd = Cnd.NEW();
|
||||||
|
if (ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionLxyAdmin")){
|
||||||
|
cnd.and("rlus.unionId", "=", Vi.getUnionId());
|
||||||
|
}
|
||||||
|
cnd.andEX("YEAR(rlus.selectTime)", ">=", startYear);
|
||||||
|
cnd.andEX("YEAR(rlus.selectTime)", "<=", endYear);
|
||||||
|
cnd.andEX("rlus.signUpMode", "=", signUpMode);
|
||||||
|
cnd.groupBy("rlus.lineId");
|
||||||
|
cnd.desc("lot.lotValue");
|
||||||
|
cnd.desc("rl.lineName");
|
||||||
|
sql.setCondition(cnd);
|
||||||
|
return enrollService.listMap(sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
@At
|
||||||
|
@ViReturn
|
||||||
|
public Object getLinePlayTimeByLineId(String lineId, Integer signUpMode, Integer year) {
|
||||||
|
List<TheRapyRecuperationLineUnionSelect> query = enrollService.dao().query(TheRapyRecuperationLineUnionSelect.class, Cnd.where("lineId", "=", lineId)
|
||||||
|
.andEX("signUpMode", "=", signUpMode).andEX("YEAR(selectTime)", "=", year));
|
||||||
|
//.and("selectUserId", "=", ShiroUtil.getUserId()).and("unionId", "=", Vi.getUnionId()));
|
||||||
|
|
||||||
|
List<NutMap> nutMaps = new ArrayList<>();
|
||||||
|
query.forEach(v -> {
|
||||||
|
String startTime = DateUtil.formatChineseDate(v.getPlayStartTime(), false, false).substring(5);
|
||||||
|
String endTime = DateUtil.formatChineseDate(v.getPlayEndTime(), false, false).substring(5);
|
||||||
|
NutMap map = new NutMap();
|
||||||
|
map.setv("times", startTime + "-" + endTime);
|
||||||
|
map.setv("selectId", v.getId());
|
||||||
|
nutMaps.add(map);
|
||||||
|
});
|
||||||
|
return nutMaps;
|
||||||
|
}
|
||||||
|
|
||||||
|
@At
|
||||||
|
@ViReturn
|
||||||
|
public Object getUserDateByLine(PageForm pageForm,
|
||||||
|
@Param(value = "takePartLineId",required = false) String takePartLineId,
|
||||||
|
@Param(value = "searchKeyword", required = false) String searchKeyword,
|
||||||
|
@Param(value = "unionId", required = false) String unionId,
|
||||||
|
@Param(value = "unitId", required = false) String unitId) {
|
||||||
|
Sql sql = Sqls.create("""
|
||||||
|
SELECT
|
||||||
|
enroll.*,
|
||||||
|
line.lineName,
|
||||||
|
line.id as lineId,
|
||||||
|
line.regionalNature,
|
||||||
|
'教职工' userNature,
|
||||||
|
state.stateColor,
|
||||||
|
state.stateName,
|
||||||
|
CONCAT(DATE_FORMAT(rs.playStartTime,'%m月%d日'),'-',DATE_FORMAT(rs.playEndTime,'%m月%d日')) AS linePlayTime,
|
||||||
|
IF
|
||||||
|
( enroll.takePartInUnionId != enroll.selfUnionId, TRUE, FALSE ) isTransferIn,
|
||||||
|
( SELECT COUNT( 1 ) FROM the_rapy_recuperation_enroll_companion WHERE trreId = enroll.id ) isFamily,
|
||||||
|
( SELECT COUNT( 1 ) FROM the_rapy_recuperation_enroll_companion WHERE trreId = enroll.id ) num
|
||||||
|
FROM
|
||||||
|
`the_rapy_recuperation_enroll` enroll
|
||||||
|
LEFT JOIN `the_rapy_recuperation_line_union_select` rs ON rs.id = enroll.takePartInLineId
|
||||||
|
LEFT JOIN `the_rapy_recuperation_line` line on line.id=rs.lineId
|
||||||
|
LEFT JOIN audit_state state ON state.stateId = enroll.stateId
|
||||||
|
$condition
|
||||||
|
""");
|
||||||
|
Cnd cnd = Cnd.NEW();
|
||||||
|
cnd.and("enroll.takePartInLineId","=",takePartLineId);
|
||||||
|
cnd.and("enroll.stateId","=",2750);
|
||||||
|
cnd.andEX("enroll.selfUnionId", "=", unionId);
|
||||||
|
cnd.andEX("enroll.selfUnitId", "=", unitId);
|
||||||
|
cnd.and("enroll.takePartInLineId", "is not", null);
|
||||||
|
cnd.andEX("enroll.isNormal", "=", true);
|
||||||
|
if (StrUtil.isNotBlank(searchKeyword)){
|
||||||
|
cnd.and(Cnd.exps("enroll.loginName","like","%"+searchKeyword+"%").or("enroll.userName","like","%"+searchKeyword+"%"));
|
||||||
|
}
|
||||||
|
cnd.desc("enroll.signingUptime");
|
||||||
|
cnd.desc("enroll.unitName");
|
||||||
|
sql.setCondition(cnd);
|
||||||
|
return enrollService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||||
|
}
|
||||||
|
}
|
||||||
+163
@@ -0,0 +1,163 @@
|
|||||||
|
package io.v.nutz.zhgh.therapyRecuperation.controller.enrollAudit;
|
||||||
|
|
||||||
|
import cn.wizzer.framework.base.Result;
|
||||||
|
import io.v.nutz.base.annontation.ViReturn;
|
||||||
|
import io.v.nutz.base.model.Audit;
|
||||||
|
import io.v.nutz.base.query.PageForm;
|
||||||
|
import io.v.nutz.base.utils.MsgApi;
|
||||||
|
import io.v.nutz.base.utils.Vi;
|
||||||
|
import io.v.nutz.sys.models.Sys_user;
|
||||||
|
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLine;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLineUnionSelect;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationEnrollService;
|
||||||
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||||
|
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||||
|
import org.nutz.dao.Cnd;
|
||||||
|
import org.nutz.dao.Sqls;
|
||||||
|
import org.nutz.dao.sql.Sql;
|
||||||
|
import org.nutz.ioc.aop.Aop;
|
||||||
|
import org.nutz.ioc.loader.annotation.Inject;
|
||||||
|
import org.nutz.ioc.loader.annotation.IocBean;
|
||||||
|
import org.nutz.mvc.annotation.At;
|
||||||
|
import org.nutz.mvc.annotation.Ok;
|
||||||
|
import org.nutz.mvc.annotation.Param;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author zhf
|
||||||
|
* @date 2025/5/20 19:17
|
||||||
|
* @description 校工会审核
|
||||||
|
*/
|
||||||
|
@IocBean
|
||||||
|
@At("/platform/theRapyRecuperation/enrollAudit/schoolAudit")
|
||||||
|
@Ok("json:full")
|
||||||
|
public class TheRapyRecuperationEnrollSchoolAuditController {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private TheRapyRecuperationEnrollService enrollService;
|
||||||
|
@Inject
|
||||||
|
private MsgApi msgApi;
|
||||||
|
|
||||||
|
@At("")
|
||||||
|
@Ok("beetl:/platform/theRapyRecuperation/enrollAudit/schoolAudit.html")
|
||||||
|
@RequiresPermissions("theRapyRecuperation.enrollAudit.schoolAudit")
|
||||||
|
public void index() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@At
|
||||||
|
@ViReturn
|
||||||
|
@RequiresPermissions("theRapyRecuperation.enrollAudit.schoolAudit")
|
||||||
|
public Object pageData(PageForm pageForm,
|
||||||
|
@Param(value = "startYear", required = false) Integer startYear,
|
||||||
|
@Param(value = "endYear", required = false) Integer endYear,
|
||||||
|
@Param("unionId") String unionId,
|
||||||
|
@Param("takePartInLineId") String takePartInLineId,
|
||||||
|
@Param(value = "lotId", required = false) String lotId,
|
||||||
|
@Param(value = "signUpMode", required = false) String signUpMode,
|
||||||
|
@Param(value = "selectId", required = false) String selectId,
|
||||||
|
@Param(value = "isAudit", required = false) Integer isAudit,
|
||||||
|
@Param(value = "regionalNature", required = false) String regionalNature) {
|
||||||
|
Sql sql = Sqls.create("""
|
||||||
|
SELECT
|
||||||
|
st.stateName,
|
||||||
|
u.username,
|
||||||
|
u.loginname,
|
||||||
|
line.id,
|
||||||
|
line.lineName,
|
||||||
|
line.regionalNature,
|
||||||
|
lineu.lineId,
|
||||||
|
lineu.id as lineUId,
|
||||||
|
lineu.signUpMode,
|
||||||
|
lineu.auditState,
|
||||||
|
lineu.minimumGroupSize,
|
||||||
|
lineu.estimatedFamilyNumbers,
|
||||||
|
YEAR(lineu.selectTime) as `year`,
|
||||||
|
CONCAT(DATE_FORMAT(lineu.playStartTime,'%m月%d日'),'-',DATE_FORMAT(lineu.playEndTime,'%m月%d日')) AS linePlayTime,
|
||||||
|
lineu.playStartTime as playStartTime1,
|
||||||
|
lineu.playEndTime as playEndTime2,
|
||||||
|
lxs.travelAgencyName,
|
||||||
|
lxs.contact,
|
||||||
|
lxs.contactMobileNumber,
|
||||||
|
enroll.takePartInUnionId AS usUnionId,
|
||||||
|
un.unionname as unionname,
|
||||||
|
lot.lotName,
|
||||||
|
lot.lotValue,
|
||||||
|
enroll.familyNumber,
|
||||||
|
( SELECT COUNT( 1 ) FROM the_rapy_recuperation_enroll WHERE takePartInLineId = lineu.id and stateId=2750 and isNormal = true $unionCnd) lineNum,
|
||||||
|
(select count(1) from the_rapy_recuperation_enroll_companion where trreId in (select id from the_rapy_recuperation_enroll where stateId=2750 and takePartInLineId = lineu.id and isNormal = true $unionCnd)) as signUpUserFamilyNum
|
||||||
|
FROM
|
||||||
|
|
||||||
|
the_rapy_recuperation_line_union_select lineu
|
||||||
|
LEFT JOIN `the_rapy_recuperation_enroll` enroll ON lineu.id=enroll.takePartInLineId
|
||||||
|
left join `user` u on u.id=lineu.selectUserId
|
||||||
|
LEFT JOIN the_rapy_recuperation_line line ON line.id = lineu.lineId
|
||||||
|
LEFT JOIN the_rapy_recuperation_lot lot ON lot.id = line.lotId
|
||||||
|
LEFT JOIN the_rapy_recuperation_travel_agency lxs ON line.travelAgencyId = lxs.id
|
||||||
|
LEFT JOIN sys_union un ON un.id = lineu.unionId
|
||||||
|
left join audit_state st on st.stateId=lineu.auditState
|
||||||
|
$condition
|
||||||
|
""");
|
||||||
|
Cnd cnd = Cnd.NEW();
|
||||||
|
if (isAudit != 0) {
|
||||||
|
cnd.andEX("lineu.auditState", isAudit == 1 ? ">" : "=", 7712);
|
||||||
|
}else{
|
||||||
|
cnd.andEX("lineu.auditState", ">=", 7712);
|
||||||
|
}
|
||||||
|
cnd.andEX("groupSuccess", "=", 1);
|
||||||
|
cnd.andEX("YEAR(lineu.selectTime)", ">=", startYear);
|
||||||
|
cnd.andEX("YEAR(lineu.selectTime)", "<=", endYear);
|
||||||
|
cnd.andEX("lineu.signUpMode", "=", signUpMode);
|
||||||
|
cnd.andEX("lineu.unionId", "=", unionId);
|
||||||
|
|
||||||
|
cnd.andEX("line.lotId", "=", lotId);
|
||||||
|
cnd.andEX("line.id", "=", takePartInLineId);
|
||||||
|
cnd.andEX("lineu.id", "=", selectId);
|
||||||
|
cnd.andEX("line.regionalNature", "=", regionalNature);
|
||||||
|
cnd.groupBy("enroll.takePartInLineId");
|
||||||
|
cnd.asc("line.serialNumber").asc("lineu.playStartTime");
|
||||||
|
sql.setCondition(cnd);
|
||||||
|
return enrollService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@At
|
||||||
|
@ViReturn
|
||||||
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
|
@RequiresPermissions("theRapyRecuperation.enrollAudit.schoolAudit")
|
||||||
|
public Result doPass(String id, Audit audit) {
|
||||||
|
audit.setAuditTime(new Date());
|
||||||
|
audit.setLoginname(ShiroUtil.getPlatformLoginname());
|
||||||
|
audit.setUsername(ShiroUtil.getPlatformUsername());
|
||||||
|
audit.setAuditor(ShiroUtil.getUserId());
|
||||||
|
enrollService.insert(audit);
|
||||||
|
TheRapyRecuperationLineUnionSelect unionSelect = enrollService.dao().fetch(TheRapyRecuperationLineUnionSelect.class, id);
|
||||||
|
unionSelect.setAuditState(7720);
|
||||||
|
unionSelect.setSchoolAuditId(audit.getId());
|
||||||
|
enrollService.update(unionSelect);
|
||||||
|
return Result.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
@At
|
||||||
|
@ViReturn
|
||||||
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
|
@RequiresPermissions("theRapyRecuperation.enrollAudit.schoolAudit")
|
||||||
|
public Result doBack(String id, Audit audit) {
|
||||||
|
audit.setAuditTime(new Date());
|
||||||
|
audit.setLoginname(ShiroUtil.getPlatformLoginname());
|
||||||
|
audit.setUsername(ShiroUtil.getPlatformUsername());
|
||||||
|
audit.setAuditor(ShiroUtil.getUserId());
|
||||||
|
enrollService.insert(audit);
|
||||||
|
TheRapyRecuperationLineUnionSelect unionSelect = enrollService.dao().fetch(TheRapyRecuperationLineUnionSelect.class, id);
|
||||||
|
unionSelect.setAuditState(7715);
|
||||||
|
unionSelect.setSchoolAuditId(audit.getId());
|
||||||
|
enrollService.update(unionSelect);
|
||||||
|
TheRapyRecuperationLine line = enrollService.dao().fetch(TheRapyRecuperationLine.class, unionSelect.getLineId());
|
||||||
|
Sys_user user = enrollService.dao().fetch(Sys_user.class, unionSelect.getSelectUserId());
|
||||||
|
msgApi.sendTextMsg("您备案的疗休养【"+line.getLineName()+"】校工会退回,请修改后在提交审核!", user.getLoginname());
|
||||||
|
return Result.success();
|
||||||
|
}
|
||||||
|
}
|
||||||
+164
@@ -0,0 +1,164 @@
|
|||||||
|
package io.v.nutz.zhgh.therapyRecuperation.controller.enrollAudit;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.wizzer.framework.base.Result;
|
||||||
|
import io.v.nutz.base.annontation.ViReturn;
|
||||||
|
import io.v.nutz.base.model.Audit;
|
||||||
|
import io.v.nutz.base.query.PageForm;
|
||||||
|
import io.v.nutz.base.utils.MsgApi;
|
||||||
|
import io.v.nutz.base.utils.Vi;
|
||||||
|
import io.v.nutz.sys.models.Sys_user;
|
||||||
|
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationEnroll;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLine;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLineUnionSelect;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationEnrollService;
|
||||||
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||||
|
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||||
|
import org.nutz.dao.Cnd;
|
||||||
|
import org.nutz.dao.Sqls;
|
||||||
|
import org.nutz.dao.sql.Sql;
|
||||||
|
import org.nutz.ioc.aop.Aop;
|
||||||
|
import org.nutz.ioc.loader.annotation.Inject;
|
||||||
|
import org.nutz.ioc.loader.annotation.IocBean;
|
||||||
|
import org.nutz.lang.Strings;
|
||||||
|
import org.nutz.mvc.annotation.At;
|
||||||
|
import org.nutz.mvc.annotation.Ok;
|
||||||
|
import org.nutz.mvc.annotation.Param;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author zhf
|
||||||
|
* @date 2025/5/20 18:42
|
||||||
|
* @description 分工会审核
|
||||||
|
*/
|
||||||
|
@IocBean
|
||||||
|
@At("/platform/theRapyRecuperation/enrollAudit/unionAudit")
|
||||||
|
@Ok("json:full")
|
||||||
|
public class TheRapyRecuperationEnrollUnionAuditController {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private TheRapyRecuperationEnrollService enrollService;
|
||||||
|
@Inject
|
||||||
|
private MsgApi msgApi;
|
||||||
|
|
||||||
|
@At("")
|
||||||
|
@Ok("beetl:/platform/theRapyRecuperation/enrollAudit/unionAudit.html")
|
||||||
|
@RequiresPermissions("theRapyRecuperation.enrollAudit.unionAudit")
|
||||||
|
public void index() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@At
|
||||||
|
@ViReturn
|
||||||
|
@RequiresPermissions("theRapyRecuperation.enrollAudit.unionAudit")
|
||||||
|
public Object pageData(PageForm pageForm,
|
||||||
|
@Param(value = "startYear", required = false) Integer startYear,
|
||||||
|
@Param(value = "endYear", required = false) Integer endYear,
|
||||||
|
@Param("takePartInLineId") String takePartInLineId,
|
||||||
|
@Param(value = "lotId", required = false) String lotId,
|
||||||
|
@Param(value = "signUpMode", required = false) String signUpMode,
|
||||||
|
@Param(value = "selectId", required = false) String selectId,
|
||||||
|
@Param(value = "isAudit", required = false) Integer isAudit,
|
||||||
|
@Param(value = "regionalNature", required = false) String regionalNature) {
|
||||||
|
Sql sql = Sqls.create("""
|
||||||
|
SELECT
|
||||||
|
st.stateName,
|
||||||
|
u.username,
|
||||||
|
u.loginname,
|
||||||
|
line.id,
|
||||||
|
line.lineName,
|
||||||
|
line.regionalNature,
|
||||||
|
lineu.lineId,
|
||||||
|
lineu.id as lineUId,
|
||||||
|
lineu.signUpMode,
|
||||||
|
lineu.auditState,
|
||||||
|
lineu.minimumGroupSize,
|
||||||
|
lineu.estimatedFamilyNumbers,
|
||||||
|
YEAR(lineu.selectTime) as `year`,
|
||||||
|
CONCAT(DATE_FORMAT(lineu.playStartTime,'%m月%d日'),'-',DATE_FORMAT(lineu.playEndTime,'%m月%d日')) AS linePlayTime,
|
||||||
|
lineu.playStartTime as playStartTime1,
|
||||||
|
lineu.playEndTime as playEndTime2,
|
||||||
|
lxs.travelAgencyName,
|
||||||
|
lxs.contact,
|
||||||
|
lxs.contactMobileNumber,
|
||||||
|
enroll.takePartInUnionId AS usUnionId,
|
||||||
|
un.unionname as unionname,
|
||||||
|
lot.lotName,
|
||||||
|
lot.lotValue,
|
||||||
|
enroll.familyNumber,
|
||||||
|
( SELECT COUNT( 1 ) FROM the_rapy_recuperation_enroll WHERE takePartInLineId = lineu.id and stateId=2750 and isNormal = true $unionCnd) lineNum,
|
||||||
|
(select count(1) from the_rapy_recuperation_enroll_companion where trreId in (select id from the_rapy_recuperation_enroll where stateId=2750 and takePartInLineId = lineu.id and isNormal = true $unionCnd)) as signUpUserFamilyNum
|
||||||
|
FROM
|
||||||
|
|
||||||
|
the_rapy_recuperation_line_union_select lineu
|
||||||
|
LEFT JOIN `the_rapy_recuperation_enroll` enroll ON lineu.id=enroll.takePartInLineId
|
||||||
|
left join `user` u on u.id=lineu.selectUserId
|
||||||
|
LEFT JOIN the_rapy_recuperation_line line ON line.id = lineu.lineId
|
||||||
|
LEFT JOIN the_rapy_recuperation_lot lot ON lot.id = line.lotId
|
||||||
|
LEFT JOIN the_rapy_recuperation_travel_agency lxs ON line.travelAgencyId = lxs.id
|
||||||
|
LEFT JOIN sys_union un ON un.id = lineu.unionId
|
||||||
|
left join audit_state st on st.stateId=lineu.auditState
|
||||||
|
$condition
|
||||||
|
""");
|
||||||
|
Cnd cnd = Cnd.NEW();
|
||||||
|
if (isAudit != 0) {
|
||||||
|
cnd.andEX("lineu.auditState", isAudit == 1 ? ">" : "=", 7700);
|
||||||
|
}
|
||||||
|
cnd.andEX("groupSuccess", "=", 1);
|
||||||
|
cnd.andEX("YEAR(lineu.selectTime)", ">=", startYear);
|
||||||
|
cnd.andEX("YEAR(lineu.selectTime)", "<=", endYear);
|
||||||
|
cnd.andEX("lineu.signUpMode", "=", signUpMode);
|
||||||
|
cnd.and("lineu.unionId", "=", Vi.getUnionId());
|
||||||
|
|
||||||
|
cnd.andEX("line.lotId", "=", lotId);
|
||||||
|
cnd.andEX("line.id", "=", takePartInLineId);
|
||||||
|
cnd.andEX("lineu.id", "=", selectId);
|
||||||
|
cnd.andEX("line.regionalNature", "=", regionalNature);
|
||||||
|
cnd.groupBy("enroll.takePartInLineId");
|
||||||
|
cnd.asc("line.serialNumber").asc("lineu.playStartTime");
|
||||||
|
sql.setCondition(cnd);
|
||||||
|
return enrollService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@At
|
||||||
|
@ViReturn
|
||||||
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
|
@RequiresPermissions("theRapyRecuperation.enrollAudit.unionAudit")
|
||||||
|
public Result doPass(String id, Audit audit) {
|
||||||
|
audit.setAuditTime(new Date());
|
||||||
|
audit.setLoginname(ShiroUtil.getPlatformLoginname());
|
||||||
|
audit.setUsername(ShiroUtil.getPlatformUsername());
|
||||||
|
audit.setAuditor(ShiroUtil.getUserId());
|
||||||
|
enrollService.insert(audit);
|
||||||
|
TheRapyRecuperationLineUnionSelect unionSelect = enrollService.dao().fetch(TheRapyRecuperationLineUnionSelect.class, id);
|
||||||
|
unionSelect.setAuditState(7707);
|
||||||
|
unionSelect.setUnionAuditId(audit.getId());
|
||||||
|
enrollService.update(unionSelect);
|
||||||
|
return Result.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
@At
|
||||||
|
@ViReturn
|
||||||
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
|
@RequiresPermissions("theRapyRecuperation.enrollAudit.unionAudit")
|
||||||
|
public Result doBack(String id, Audit audit) {
|
||||||
|
audit.setAuditTime(new Date());
|
||||||
|
audit.setLoginname(ShiroUtil.getPlatformLoginname());
|
||||||
|
audit.setUsername(ShiroUtil.getPlatformUsername());
|
||||||
|
audit.setAuditor(ShiroUtil.getUserId());
|
||||||
|
enrollService.insert(audit);
|
||||||
|
TheRapyRecuperationLineUnionSelect unionSelect = enrollService.dao().fetch(TheRapyRecuperationLineUnionSelect.class, id);
|
||||||
|
unionSelect.setAuditState(7703);
|
||||||
|
unionSelect.setUnionAuditId(audit.getId());
|
||||||
|
enrollService.update(unionSelect);
|
||||||
|
TheRapyRecuperationLine line = enrollService.dao().fetch(TheRapyRecuperationLine.class, unionSelect.getLineId());
|
||||||
|
Sys_user user = enrollService.dao().fetch(Sys_user.class, unionSelect.getSelectUserId());
|
||||||
|
msgApi.sendTextMsg("您备案的疗休养【"+line.getLineName()+"】分工会退回,请修改后在提交审核!", user.getLoginname());
|
||||||
|
return Result.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+172
@@ -0,0 +1,172 @@
|
|||||||
|
package io.v.nutz.zhgh.therapyRecuperation.controller.enrollAudit;
|
||||||
|
|
||||||
|
import cn.wizzer.framework.base.Result;
|
||||||
|
import io.v.nutz.base.annontation.ViReturn;
|
||||||
|
import io.v.nutz.base.model.Audit;
|
||||||
|
import io.v.nutz.base.query.PageForm;
|
||||||
|
import io.v.nutz.base.utils.MsgApi;
|
||||||
|
import io.v.nutz.base.utils.Vi;
|
||||||
|
import io.v.nutz.sys.models.Sys_user;
|
||||||
|
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLine;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLineUnionSelect;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationEnrollService;
|
||||||
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||||
|
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||||
|
import org.nutz.dao.Cnd;
|
||||||
|
import org.nutz.dao.Sqls;
|
||||||
|
import org.nutz.dao.sql.Sql;
|
||||||
|
import org.nutz.ioc.aop.Aop;
|
||||||
|
import org.nutz.ioc.loader.annotation.Inject;
|
||||||
|
import org.nutz.ioc.loader.annotation.IocBean;
|
||||||
|
import org.nutz.mvc.annotation.At;
|
||||||
|
import org.nutz.mvc.annotation.Ok;
|
||||||
|
import org.nutz.mvc.annotation.Param;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author zhf
|
||||||
|
* @date 2025/5/20 19:16
|
||||||
|
* @description 单位领导审核
|
||||||
|
*/
|
||||||
|
@IocBean
|
||||||
|
@At("/platform/theRapyRecuperation/enrollAudit/unitLeaderAudit")
|
||||||
|
@Ok("json:full")
|
||||||
|
public class TheRapyRecuperationEnrollUnitLeaderAuditController {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private TheRapyRecuperationEnrollService enrollService;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private MsgApi msgApi;
|
||||||
|
|
||||||
|
@At("")
|
||||||
|
@Ok("beetl:/platform/theRapyRecuperation/enrollAudit/unitLeaderAudit.html")
|
||||||
|
@RequiresPermissions("theRapyRecuperation.enrollAudit.unitLeaderAudit")
|
||||||
|
public void index() {
|
||||||
|
}
|
||||||
|
@At
|
||||||
|
@ViReturn
|
||||||
|
@RequiresPermissions("theRapyRecuperation.enrollAudit.unitLeaderAudit")
|
||||||
|
public Object pageData(PageForm pageForm,
|
||||||
|
@Param(value = "startYear", required = false) Integer startYear,
|
||||||
|
@Param(value = "endYear", required = false) Integer endYear,
|
||||||
|
@Param("takePartInLineId") String takePartInLineId,
|
||||||
|
@Param(value = "lotId", required = false) String lotId,
|
||||||
|
@Param(value = "signUpMode", required = false) String signUpMode,
|
||||||
|
@Param(value = "selectId", required = false) String selectId,
|
||||||
|
@Param(value = "isAudit", required = false) Integer isAudit,
|
||||||
|
@Param(value = "regionalNature", required = false) String regionalNature) {
|
||||||
|
Sql sql = Sqls.create("""
|
||||||
|
SELECT
|
||||||
|
st.stateName,
|
||||||
|
u.username,
|
||||||
|
u.loginname,
|
||||||
|
line.id,
|
||||||
|
line.lineName,
|
||||||
|
line.regionalNature,
|
||||||
|
lineu.lineId,
|
||||||
|
lineu.id as lineUId,
|
||||||
|
lineu.signUpMode,
|
||||||
|
lineu.auditState,
|
||||||
|
lineu.minimumGroupSize,
|
||||||
|
lineu.estimatedFamilyNumbers,
|
||||||
|
YEAR(lineu.selectTime) as `year`,
|
||||||
|
CONCAT(DATE_FORMAT(lineu.playStartTime,'%m月%d日'),'-',DATE_FORMAT(lineu.playEndTime,'%m月%d日')) AS linePlayTime,
|
||||||
|
lineu.playStartTime as playStartTime1,
|
||||||
|
lineu.playEndTime as playEndTime2,
|
||||||
|
lxs.travelAgencyName,
|
||||||
|
lxs.contact,
|
||||||
|
lxs.contactMobileNumber,
|
||||||
|
enroll.takePartInUnionId AS usUnionId,
|
||||||
|
un.unionname as unionname,
|
||||||
|
lot.lotName,
|
||||||
|
lot.lotValue,
|
||||||
|
enroll.familyNumber,
|
||||||
|
( SELECT COUNT( 1 ) FROM the_rapy_recuperation_enroll WHERE takePartInLineId = lineu.id and stateId=2750 and isNormal = true $unionCnd) lineNum,
|
||||||
|
(select count(1) from the_rapy_recuperation_enroll_companion where trreId in (select id from the_rapy_recuperation_enroll where stateId=2750 and takePartInLineId = lineu.id and isNormal = true $unionCnd)) as signUpUserFamilyNum
|
||||||
|
FROM
|
||||||
|
|
||||||
|
the_rapy_recuperation_line_union_select lineu
|
||||||
|
LEFT JOIN `the_rapy_recuperation_enroll` enroll ON lineu.id=enroll.takePartInLineId
|
||||||
|
left join `user` u on u.id=lineu.selectUserId
|
||||||
|
LEFT JOIN the_rapy_recuperation_line line ON line.id = lineu.lineId
|
||||||
|
LEFT JOIN the_rapy_recuperation_lot lot ON lot.id = line.lotId
|
||||||
|
LEFT JOIN the_rapy_recuperation_travel_agency lxs ON line.travelAgencyId = lxs.id
|
||||||
|
LEFT JOIN sys_union un ON un.id = lineu.unionId
|
||||||
|
left join audit_state st on st.stateId=lineu.auditState
|
||||||
|
$condition
|
||||||
|
""");
|
||||||
|
Cnd cnd = Cnd.NEW();
|
||||||
|
if (isAudit != 0) {
|
||||||
|
cnd.andEX("lineu.auditState", isAudit == 1 ? ">" : "=", 7707);
|
||||||
|
}else{
|
||||||
|
cnd.andEX("lineu.auditState", ">=", 7707);
|
||||||
|
}
|
||||||
|
cnd.andEX("groupSuccess", "=", 1);
|
||||||
|
cnd.andEX("YEAR(lineu.selectTime)", ">=", startYear);
|
||||||
|
cnd.andEX("YEAR(lineu.selectTime)", "<=", endYear);
|
||||||
|
cnd.andEX("lineu.signUpMode", "=", signUpMode);
|
||||||
|
if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionLxyAdmin")){
|
||||||
|
if (Vi.getUnion().getUnioncode().equals("01")){
|
||||||
|
cnd.and("lineu.unionId", "in", List.of("7406938f3d6645308245eab9394943d8","fc38a500c0d64218ada03ac49b39c856","9c8639134e1547259c4b2e0f509641aa"));
|
||||||
|
}else{
|
||||||
|
cnd.and("lineu.unionId", "=", Vi.getUnionId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
cnd.andEX("line.lotId", "=", lotId);
|
||||||
|
cnd.andEX("line.id", "=", takePartInLineId);
|
||||||
|
cnd.andEX("lineu.id", "=", selectId);
|
||||||
|
cnd.andEX("line.regionalNature", "=", regionalNature);
|
||||||
|
cnd.groupBy("enroll.takePartInLineId");
|
||||||
|
cnd.asc("line.serialNumber").asc("lineu.playStartTime");
|
||||||
|
sql.setCondition(cnd);
|
||||||
|
return enrollService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@At
|
||||||
|
@ViReturn
|
||||||
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
|
@RequiresPermissions("theRapyRecuperation.enrollAudit.unitLeaderAudit")
|
||||||
|
public Result doPass(String id, Audit audit) {
|
||||||
|
audit.setAuditTime(new Date());
|
||||||
|
audit.setLoginname(ShiroUtil.getPlatformLoginname());
|
||||||
|
audit.setUsername(ShiroUtil.getPlatformUsername());
|
||||||
|
audit.setAuditor(ShiroUtil.getUserId());
|
||||||
|
enrollService.insert(audit);
|
||||||
|
TheRapyRecuperationLineUnionSelect unionSelect = enrollService.dao().fetch(TheRapyRecuperationLineUnionSelect.class, id);
|
||||||
|
unionSelect.setAuditState(7712);
|
||||||
|
unionSelect.setUnitLeaderAuditId(audit.getId());
|
||||||
|
enrollService.update(unionSelect);
|
||||||
|
return Result.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
@At
|
||||||
|
@ViReturn
|
||||||
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
|
@RequiresPermissions("theRapyRecuperation.enrollAudit.unitLeaderAudit")
|
||||||
|
public Result doBack(String id, Audit audit) {
|
||||||
|
audit.setAuditTime(new Date());
|
||||||
|
audit.setLoginname(ShiroUtil.getPlatformLoginname());
|
||||||
|
audit.setUsername(ShiroUtil.getPlatformUsername());
|
||||||
|
audit.setAuditor(ShiroUtil.getUserId());
|
||||||
|
enrollService.insert(audit);
|
||||||
|
TheRapyRecuperationLineUnionSelect unionSelect = enrollService.dao().fetch(TheRapyRecuperationLineUnionSelect.class, id);
|
||||||
|
unionSelect.setAuditState(7710);
|
||||||
|
unionSelect.setUnitLeaderAuditId(audit.getId());
|
||||||
|
enrollService.update(unionSelect);
|
||||||
|
TheRapyRecuperationLine line = enrollService.dao().fetch(TheRapyRecuperationLine.class, unionSelect.getLineId());
|
||||||
|
Sys_user user = enrollService.dao().fetch(Sys_user.class, unionSelect.getSelectUserId());
|
||||||
|
msgApi.sendTextMsg("您备案的疗休养【"+line.getLineName()+"】单位领导退回,请修改后在提交审核!", user.getLoginname());
|
||||||
|
return Result.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+33
-90
@@ -1,6 +1,5 @@
|
|||||||
package io.v.nutz.zhgh.therapyRecuperation.controller.process;
|
package io.v.nutz.zhgh.therapyRecuperation.controller.process;
|
||||||
|
|
||||||
import cn.hutool.core.date.DateTime;
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.lang.Assert;
|
import cn.hutool.core.lang.Assert;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
@@ -8,18 +7,15 @@ import cn.wizzer.framework.base.Result;
|
|||||||
import io.v.nutz.base.annontation.ViReturn;
|
import io.v.nutz.base.annontation.ViReturn;
|
||||||
import io.v.nutz.base.query.PageForm;
|
import io.v.nutz.base.query.PageForm;
|
||||||
import io.v.nutz.sys.models.Sys_config;
|
import io.v.nutz.sys.models.Sys_config;
|
||||||
import io.v.nutz.sys.models.Sys_user;
|
|
||||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationState;
|
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationState;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationType;
|
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationType;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationBaseManagement;
|
import io.v.nutz.zhgh.therapyRecuperation.model.*;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationEnroll;
|
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLine;
|
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLineUnionSelect;
|
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationCommonService;
|
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationCommonService;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationEnrollService;
|
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationEnrollService;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationLineService;
|
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationLineService;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationTravelAgencyService;
|
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationTravelAgencyService;
|
||||||
|
import io.v.nutz.web.commons.slog.annotation.SLog;
|
||||||
import org.apache.shiro.authz.annotation.RequiresAuthentication;
|
import org.apache.shiro.authz.annotation.RequiresAuthentication;
|
||||||
import org.nutz.dao.Chain;
|
import org.nutz.dao.Chain;
|
||||||
import org.nutz.dao.Cnd;
|
import org.nutz.dao.Cnd;
|
||||||
@@ -35,7 +31,7 @@ import java.util.*;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @FileName io.v.nutz.therapyRecuperation.controller.process.TheRapyRecuperationEnroll
|
* @FileName io.v.nutz.zhgh.therapyRecuperation.controller.process.TheRapyRecuperationEnroll
|
||||||
* @Description: 疗休养报名报名
|
* @Description: 疗休养报名报名
|
||||||
* @Author zxc
|
* @Author zxc
|
||||||
* @Date 2022/5/31:16:58
|
* @Date 2022/5/31:16:58
|
||||||
@@ -83,7 +79,7 @@ public class TheRapyRecuperationEnrollController {
|
|||||||
* @param unionId 选择的工会id
|
* @param unionId 选择的工会id
|
||||||
* @param theRapyRecuperationType 线路类型 见下枚举类
|
* @param theRapyRecuperationType 线路类型 见下枚举类
|
||||||
* @return {@link Object}
|
* @return {@link Object}
|
||||||
* @see TheRapyRecuperationType
|
* @see io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationType
|
||||||
*/
|
*/
|
||||||
@At
|
@At
|
||||||
@POST
|
@POST
|
||||||
@@ -94,27 +90,40 @@ public class TheRapyRecuperationEnrollController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@At
|
@At
|
||||||
@POST
|
|
||||||
@ViReturn
|
@ViReturn
|
||||||
@RequiresAuthentication
|
@SLog(type = "lxy", tag = "我的疗休养", msg = "疗休养评价")
|
||||||
public Object getSelectLineById(String lineId, String unionId, int theRapyRecuperationType, Integer lineUnionType) {
|
public Object doEvaluate(TheRapyRecuperationEvaluate rapyRecuperationEvaluate) {
|
||||||
return enrollService.getSelectLineById(lineId, unionId, theRapyRecuperationType, lineUnionType);
|
rapyRecuperationEvaluate.setUserId(ShiroUtil.getUserId());
|
||||||
|
rapyRecuperationEvaluate.setUserName(ShiroUtil.getPlatformUsername());
|
||||||
|
rapyRecuperationEvaluate.setLoginName(ShiroUtil.getPlatformLoginname());
|
||||||
|
rapyRecuperationEvaluate.setApplyDate(new Date());
|
||||||
|
enrollService.dao().insertOrUpdate(rapyRecuperationEvaluate);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@At
|
||||||
|
@ViReturn
|
||||||
|
public Object finOneEvaluate(String lineId) {
|
||||||
|
TheRapyRecuperationEvaluate fetch = enrollService.dao().fetch(TheRapyRecuperationEvaluate.class,
|
||||||
|
Cnd.where("userId", "=", ShiroUtil.getUserId())
|
||||||
|
.and("lineId", "=", lineId));
|
||||||
|
return fetch;
|
||||||
}
|
}
|
||||||
|
|
||||||
@At
|
@At
|
||||||
@POST
|
@POST
|
||||||
@ViReturn
|
@ViReturn
|
||||||
@RequiresAuthentication
|
@RequiresAuthentication
|
||||||
public Object openSignUser(String usId, String travelId, String searchKeyWord) {
|
public Object getSelectLineById(String lineId, String unionId, int theRapyRecuperationType, @Param(value = "lineUnionType", required = false) Integer lineUnionType) {
|
||||||
return enrollService.openSignUser(usId, travelId, searchKeyWord);
|
return enrollService.getSelectLineById(lineId, unionId, theRapyRecuperationType, lineUnionType);
|
||||||
}
|
}
|
||||||
|
|
||||||
//获取设置了公开线路的分工会
|
//获取设置了公开线路的分工会
|
||||||
@At
|
@At
|
||||||
@ViReturn
|
@ViReturn
|
||||||
@RequiresAuthentication
|
@RequiresAuthentication
|
||||||
public Object getTheRapyUnions(Integer year, int theRapyRecuperationType) {
|
public Object getTheRapyUnions(Integer year) {
|
||||||
return enrollService.getTheRapyUnions(year, theRapyRecuperationType);
|
return enrollService.getTheRapyUnions(year);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -131,15 +140,7 @@ public class TheRapyRecuperationEnrollController {
|
|||||||
public Object doSignUpForLine(@Param("enroll") TheRapyRecuperationEnroll enrollInfo) {
|
public Object doSignUpForLine(@Param("enroll") TheRapyRecuperationEnroll enrollInfo) {
|
||||||
//省外的线路报名需要判断
|
//省外的线路报名需要判断
|
||||||
// if (lineInfo.getRegionalNature().equals(TheRapyRecuperationProvinceType.provinceOut.getValue())) {
|
// if (lineInfo.getRegionalNature().equals(TheRapyRecuperationProvinceType.provinceOut.getValue())) {
|
||||||
Sys_config config = dao.fetch(Sys_config.class, Cnd.where("configKey", "=", "recuperationVersion"));
|
Map<Boolean, String> validResult = enrollService.validSignUpInfo((String) ShiroUtil.getPrincipalProperty("loginname"), enrollInfo);
|
||||||
Map<Boolean, String> validResult = new HashMap<>();
|
|
||||||
if("zjxu".equals(config.getConfigValue())) {
|
|
||||||
validResult = enrollService.validSignUpInfoForZJXU((String) ShiroUtil.getPrincipalProperty("loginname"), enrollInfo);
|
|
||||||
} else if("zjiet".equals(config.getConfigValue())) {
|
|
||||||
validResult = enrollService.validSignUpInfo((String) ShiroUtil.getPrincipalProperty("loginname"), enrollInfo);
|
|
||||||
} else if("zjnu".equals(config.getConfigValue())) {
|
|
||||||
validResult = enrollService.validSignUpInfoForZJNU((String) ShiroUtil.getPrincipalProperty("loginname"), enrollInfo);
|
|
||||||
}
|
|
||||||
if (validResult.containsKey(false)) {
|
if (validResult.containsKey(false)) {
|
||||||
return Result.error(validResult.get(false));
|
return Result.error(validResult.get(false));
|
||||||
}
|
}
|
||||||
@@ -163,15 +164,7 @@ public class TheRapyRecuperationEnrollController {
|
|||||||
@ViReturn
|
@ViReturn
|
||||||
@RequiresAuthentication
|
@RequiresAuthentication
|
||||||
public Object doSignUpForTravelAgency(@Param("enroll") TheRapyRecuperationEnroll enrollInfo) {
|
public Object doSignUpForTravelAgency(@Param("enroll") TheRapyRecuperationEnroll enrollInfo) {
|
||||||
Sys_config config = dao.fetch(Sys_config.class, Cnd.where("configKey", "=", "recuperationVersion"));
|
Map<Boolean, String> resultMap = enrollService.validSignUpInfo((String) ShiroUtil.getPrincipalProperty("loginname"), enrollInfo);
|
||||||
Map<Boolean, String> resultMap = new HashMap<>();
|
|
||||||
if("zjxu".equals(config.getConfigValue())) {
|
|
||||||
resultMap = enrollService.validSignUpInfoForZJXU((String) ShiroUtil.getPrincipalProperty("loginname"), enrollInfo);
|
|
||||||
} else if("zjiet".equals(config.getConfigValue())) {
|
|
||||||
resultMap = enrollService.validSignUpInfo((String) ShiroUtil.getPrincipalProperty("loginname"), enrollInfo);
|
|
||||||
} else if("zjnu".equals(config.getConfigValue())) {
|
|
||||||
resultMap = enrollService.validSignUpInfoForZJNU((String) ShiroUtil.getPrincipalProperty("loginname"), enrollInfo);
|
|
||||||
}
|
|
||||||
if (resultMap.containsKey(false)) {
|
if (resultMap.containsKey(false)) {
|
||||||
return Result.error(resultMap.get(false));
|
return Result.error(resultMap.get(false));
|
||||||
}
|
}
|
||||||
@@ -194,17 +187,10 @@ public class TheRapyRecuperationEnrollController {
|
|||||||
@ViReturn
|
@ViReturn
|
||||||
@RequiresAuthentication
|
@RequiresAuthentication
|
||||||
public Object doSignUpForBaseManagement(@Param("enroll") TheRapyRecuperationEnroll enrollInfo) {
|
public Object doSignUpForBaseManagement(@Param("enroll") TheRapyRecuperationEnroll enrollInfo) {
|
||||||
Sys_config config = dao.fetch(Sys_config.class, Cnd.where("configKey", "=", "recuperationVersion"));
|
Map<Boolean, String> resultMap = enrollService.validSignUpInfo((String) ShiroUtil.getPrincipalProperty("loginname"), enrollInfo);
|
||||||
Map<Boolean, String> resultMap = new HashMap<>();
|
|
||||||
if("zjxu".equals(config.getConfigValue())) {
|
|
||||||
resultMap = enrollService.validSignUpInfoForZJXU((String) ShiroUtil.getPrincipalProperty("loginname"), enrollInfo);
|
|
||||||
} else {
|
|
||||||
resultMap = enrollService.validSignUpInfo((String) ShiroUtil.getPrincipalProperty("loginname"), enrollInfo);
|
|
||||||
}
|
|
||||||
if (resultMap.containsKey(false)) {
|
if (resultMap.containsKey(false)) {
|
||||||
return Result.error(resultMap.get(false));
|
return Result.error(resultMap.get(false));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (StrUtil.isBlank(enrollInfo.getId())) {
|
if (StrUtil.isBlank(enrollInfo.getId())) {
|
||||||
enrollService.doSignUpForHotel(enrollInfo);
|
enrollService.doSignUpForHotel(enrollInfo);
|
||||||
} else {
|
} else {
|
||||||
@@ -300,20 +286,10 @@ public class TheRapyRecuperationEnrollController {
|
|||||||
&& StrUtil.isBlank(enrollInfo.getTakePartInLineId())) {
|
&& StrUtil.isBlank(enrollInfo.getTakePartInLineId())) {
|
||||||
return Result.error("线路信息不能为空");
|
return Result.error("线路信息不能为空");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (StrUtil.isBlank(enrollInfo.getLoginName())){
|
if (StrUtil.isBlank(enrollInfo.getLoginName())){
|
||||||
enrollInfo.setLoginName(ShiroUtil.getPrincipalProperty("loginname").toString());
|
enrollInfo.setLoginName(ShiroUtil.getPrincipalProperty("loginname").toString());
|
||||||
}
|
}
|
||||||
|
Map<Boolean, String> resultMap = enrollService.validSignUpInfo(enrollInfo.getLoginName(), enrollInfo);
|
||||||
Sys_config config = dao.fetch(Sys_config.class, Cnd.where("configKey", "=", "recuperationVersion"));
|
|
||||||
Map<Boolean, String> resultMap = new HashMap<>();
|
|
||||||
if("zjxu".equals(config.getConfigValue())) {
|
|
||||||
resultMap = enrollService.validSignUpInfoForZJXU(enrollInfo.getLoginName(), enrollInfo);
|
|
||||||
} else if("zjiet".equals(config.getConfigValue())) {
|
|
||||||
resultMap = enrollService.validSignUpInfo(enrollInfo.getLoginName(), enrollInfo);
|
|
||||||
} else if("zjnu".equals(config.getConfigValue())) {
|
|
||||||
resultMap = enrollService.validSignUpInfoForZJNU(enrollInfo.getLoginName(), enrollInfo);
|
|
||||||
}
|
|
||||||
if (resultMap.containsKey(false)) {
|
if (resultMap.containsKey(false)) {
|
||||||
return Result.error(resultMap.get(false));
|
return Result.error(resultMap.get(false));
|
||||||
}
|
}
|
||||||
@@ -335,22 +311,6 @@ public class TheRapyRecuperationEnrollController {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 删除我的报名信息
|
|
||||||
*
|
|
||||||
* @param id id
|
|
||||||
* @return {@link Object}
|
|
||||||
*/
|
|
||||||
@At("/doModify/?")
|
|
||||||
@POST
|
|
||||||
@ViReturn
|
|
||||||
@RequiresAuthentication
|
|
||||||
public Object doModify(String id) {
|
|
||||||
enrollService.update(Chain.make("isNormal",false),Cnd.where("id","=",id));
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 能取消吗
|
* 能取消吗
|
||||||
*
|
*
|
||||||
@@ -426,8 +386,8 @@ public class TheRapyRecuperationEnrollController {
|
|||||||
|
|
||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
select
|
select
|
||||||
(select count(1) from the_rapy_recuperation_enroll where isNormal=true and takePartInUnionId = @unionId AND takePartInLineId = @lineId AND stateId = @signUpSuccessCode) as signUpUserNum,
|
(select count(1) from the_rapy_recuperation_enroll where takePartInUnionId = @unionId AND takePartInLineId = @lineId AND stateId = @signUpSuccessCode) as signUpUserNum,
|
||||||
(select count(1) from the_rapy_recuperation_enroll_companion where trreId in (select id from the_rapy_recuperation_enroll where isNormal=true and takePartInUnionId = @unionId AND takePartInLineId = @lineId AND stateId = @signUpSuccessCode)) as signUpUserFamilyNum
|
(select count(1) from the_rapy_recuperation_enroll_companion where trreId in (select id from the_rapy_recuperation_enroll where takePartInUnionId = @unionId AND takePartInLineId = @lineId AND stateId = @signUpSuccessCode)) as signUpUserFamilyNum
|
||||||
""");
|
""");
|
||||||
sql.setParam("signUpSuccessCode", TheRapyRecuperationState.PASS);
|
sql.setParam("signUpSuccessCode", TheRapyRecuperationState.PASS);
|
||||||
sql.setParam("lineId", lineId);
|
sql.setParam("lineId", lineId);
|
||||||
@@ -447,25 +407,8 @@ public class TheRapyRecuperationEnrollController {
|
|||||||
@GET
|
@GET
|
||||||
@ViReturn
|
@ViReturn
|
||||||
@RequiresAuthentication
|
@RequiresAuthentication
|
||||||
public Object selectLineAllInfo(@Param("usId") String usId,
|
public Object selectLineAllInfo(@Param("usId") String usId, @Param("usUnionId") String usUnionId) {
|
||||||
@Param("usUnionId") String usUnionId,
|
|
||||||
@Param("year") String year) {
|
|
||||||
Assert.notBlank(usId);
|
Assert.notBlank(usId);
|
||||||
return enrollService.selectLineAllInfo(usId, usUnionId, year);
|
return enrollService.selectLineAllInfo(usId, usUnionId);
|
||||||
}
|
|
||||||
|
|
||||||
@At
|
|
||||||
@ViReturn
|
|
||||||
@RequiresAuthentication
|
|
||||||
public Object getSchoolTime() {
|
|
||||||
Sys_user sysUser = dao.fetch(Sys_user.class, ShiroUtil.getUserId());
|
|
||||||
if(StrUtil.isNotBlank(sysUser.getSchoolTime())) {
|
|
||||||
DateTime schoolDate = DateUtil.parse(sysUser.getSchoolTime());
|
|
||||||
DateTime time = DateUtil.parse(DateUtil.thisYear() + "-07-01");
|
|
||||||
int compareResult = DateUtil.compare(schoolDate, time);
|
|
||||||
return compareResult >= 0 ? sysUser.getSchoolTime() : null;
|
|
||||||
} else {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -10,9 +10,9 @@ import cn.hutool.core.lang.Assert;
|
|||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import io.v.nutz.base.annontation.ViReturn;
|
import io.v.nutz.base.annontation.ViReturn;
|
||||||
import io.v.nutz.base.result.Result;
|
import io.v.nutz.base.result.Result;
|
||||||
import io.v.nutz.base.utils.ViTool;
|
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationEnroll;
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationEnroll;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationEnrollJoinUserImportService;
|
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationEnrollJoinUserImportService;
|
||||||
|
import io.v.nutz.base.utils.ViTool;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.poi.ss.usermodel.Workbook;
|
import org.apache.poi.ss.usermodel.Workbook;
|
||||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||||
|
|||||||
+3
-3
@@ -3,8 +3,8 @@ package io.v.nutz.zhgh.therapyRecuperation.controller.process;
|
|||||||
import cn.hutool.core.lang.Assert;
|
import cn.hutool.core.lang.Assert;
|
||||||
import cn.wizzer.framework.base.Result;
|
import cn.wizzer.framework.base.Result;
|
||||||
import io.v.nutz.base.annontation.ViReturn;
|
import io.v.nutz.base.annontation.ViReturn;
|
||||||
import io.v.nutz.base.query.PageForm;
|
|
||||||
import io.v.nutz.base.utils.MsgApi;
|
import io.v.nutz.base.utils.MsgApi;
|
||||||
|
import io.v.nutz.base.query.PageForm;
|
||||||
import io.v.nutz.sys.models.Sys_user;
|
import io.v.nutz.sys.models.Sys_user;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationSignUpMode;
|
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationSignUpMode;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationEnroll;
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationEnroll;
|
||||||
@@ -73,7 +73,7 @@ public class TheRapyRecuperationLineAdjustmentController {
|
|||||||
@POST
|
@POST
|
||||||
@Ok("json:full")
|
@Ok("json:full")
|
||||||
@ViReturn
|
@ViReturn
|
||||||
@RequiresRoles(value = {"sysadmin", "A06", "H04"}, logical = Logical.OR)
|
@RequiresRoles(value = {"sysadmin", "SchoolUnionAdmin", "H04"}, logical = Logical.OR)
|
||||||
public Object pageData(PageForm pageForm,
|
public Object pageData(PageForm pageForm,
|
||||||
Integer year,
|
Integer year,
|
||||||
String lineId,
|
String lineId,
|
||||||
@@ -193,7 +193,7 @@ public class TheRapyRecuperationLineAdjustmentController {
|
|||||||
String username = usernameMap.get(v);
|
String username = usernameMap.get(v);
|
||||||
String content = "%s老师您好,您报名的%s【%s-%s】(%s至%s)线路未达到成团标准,现已解散,请您选择其他线路进行报名!"
|
String content = "%s老师您好,您报名的%s【%s-%s】(%s至%s)线路未达到成团标准,现已解散,请您选择其他线路进行报名!"
|
||||||
.formatted(username,lineName,lotName,regionalNature,playStartTime,playEndTime);
|
.formatted(username,lineName,lotName,regionalNature,playStartTime,playEndTime);
|
||||||
//msgApi.sendWxMsg(content,v);
|
// msgApi.sendWxMsg(content,v);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return Result.success();
|
return Result.success();
|
||||||
|
|||||||
+1
-1
@@ -4,10 +4,10 @@ import cn.hutool.core.lang.Assert;
|
|||||||
import cn.wizzer.framework.page.Pagination;
|
import cn.wizzer.framework.page.Pagination;
|
||||||
import io.v.nutz.base.annontation.ViReturn;
|
import io.v.nutz.base.annontation.ViReturn;
|
||||||
import io.v.nutz.base.query.PageForm;
|
import io.v.nutz.base.query.PageForm;
|
||||||
import io.v.nutz.web.commons.slog.annotation.SLog;
|
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationCluster;
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationCluster;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationClusterMember;
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationClusterMember;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationLineClusterService;
|
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationLineClusterService;
|
||||||
|
import io.v.nutz.web.commons.slog.annotation.SLog;
|
||||||
import org.apache.shiro.authz.annotation.RequiresAuthentication;
|
import org.apache.shiro.authz.annotation.RequiresAuthentication;
|
||||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||||
import org.nutz.dao.Cnd;
|
import org.nutz.dao.Cnd;
|
||||||
|
|||||||
+143
-98
@@ -2,15 +2,23 @@ package io.v.nutz.zhgh.therapyRecuperation.controller.process;
|
|||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.lang.Assert;
|
import cn.hutool.core.lang.Assert;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.wizzer.framework.base.Result;
|
import cn.wizzer.framework.base.Result;
|
||||||
|
import cn.wizzer.framework.page.Pagination;
|
||||||
import io.v.nutz.base.annontation.ViReturn;
|
import io.v.nutz.base.annontation.ViReturn;
|
||||||
import io.v.nutz.base.query.PageForm;
|
|
||||||
import io.v.nutz.base.utils.Vi;
|
import io.v.nutz.base.utils.Vi;
|
||||||
import io.v.nutz.web.commons.slog.annotation.SLog;
|
import io.v.nutz.base.query.PageForm;
|
||||||
|
import io.v.nutz.sys.models.Sys_user;
|
||||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.*;
|
import io.v.nutz.zhgh.activity.models.ActivityUserScope;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationSignUpMode;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationConfig;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLineUnionSelect;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLot;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationTravelAgency;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationLineUnionSelectService;
|
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationLineUnionSelectService;
|
||||||
|
import io.v.nutz.web.commons.slog.annotation.SLog;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.shiro.authz.annotation.Logical;
|
import org.apache.shiro.authz.annotation.Logical;
|
||||||
import org.apache.shiro.authz.annotation.RequiresAuthentication;
|
import org.apache.shiro.authz.annotation.RequiresAuthentication;
|
||||||
@@ -23,10 +31,12 @@ import org.nutz.dao.Sqls;
|
|||||||
import org.nutz.dao.sql.Sql;
|
import org.nutz.dao.sql.Sql;
|
||||||
import org.nutz.dao.util.Daos;
|
import org.nutz.dao.util.Daos;
|
||||||
import org.nutz.dao.util.cri.SqlExpressionGroup;
|
import org.nutz.dao.util.cri.SqlExpressionGroup;
|
||||||
|
import org.nutz.dao.util.cri.Static;
|
||||||
import org.nutz.ioc.aop.Aop;
|
import org.nutz.ioc.aop.Aop;
|
||||||
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.Lang;
|
||||||
|
import org.nutz.lang.util.NutMap;
|
||||||
import org.nutz.mvc.annotation.At;
|
import org.nutz.mvc.annotation.At;
|
||||||
import org.nutz.mvc.annotation.Ok;
|
import org.nutz.mvc.annotation.Ok;
|
||||||
import org.nutz.mvc.annotation.POST;
|
import org.nutz.mvc.annotation.POST;
|
||||||
@@ -43,24 +53,25 @@ import java.util.stream.Collectors;
|
|||||||
* @date 2023/06/26
|
* @date 2023/06/26
|
||||||
*/
|
*/
|
||||||
@IocBean
|
@IocBean
|
||||||
@At(value = {"/platform/theRapyRecuperation/lineFghSelect", "/platform/theRapyRecuperation/lineXghSelect", "/platform/theRapyRecuperation/lineUnionSelect"})
|
@At(value = {
|
||||||
|
"/platform/theRapyRecuperation/lineFghSelect",
|
||||||
|
"/platform/theRapyRecuperation/lineXghSelect",
|
||||||
|
"/platform/theRapyRecuperation/linePersonalSelect",
|
||||||
|
})
|
||||||
@Ok("json:full")
|
@Ok("json:full")
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class TheRapyRecuperationLineUnionSelectController {
|
public class TheRapyRecuperationLineUnionSelectController {
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private Vi vi;
|
private Vi vi;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private Dao dao;
|
private Dao dao;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private TheRapyRecuperationLineUnionSelectService unionSelectService;
|
private TheRapyRecuperationLineUnionSelectService unionSelectService;
|
||||||
|
|
||||||
@At("")
|
@At("")
|
||||||
@Ok("re")
|
@Ok("re")
|
||||||
// @Ok("beetl:/platform/theRapyRecuperation/process/lineUnionSelect.html")
|
@RequiresPermissions(value = {"theRapyRecuperation.lineFghSelect", "theRapyRecuperation.lineXghSelect", "theRapyRecuperation.linePersonalSelect"}, logical = Logical.OR)
|
||||||
@RequiresPermissions(value = {"theRapyRecuperation.lineFghSelect", "theRapyRecuperation.lineXghSelect"}, logical = Logical.OR)
|
|
||||||
public String index(@Param("mode") Integer mode) {
|
public String index(@Param("mode") Integer mode) {
|
||||||
return "beetl:/platform/theRapyRecuperation/process/lineUnionSelect.html";
|
return "beetl:/platform/theRapyRecuperation/process/lineUnionSelect.html";
|
||||||
}
|
}
|
||||||
@@ -75,62 +86,64 @@ public class TheRapyRecuperationLineUnionSelectController {
|
|||||||
@At
|
@At
|
||||||
@POST
|
@POST
|
||||||
@ViReturn
|
@ViReturn
|
||||||
@RequiresPermissions(value = {"theRapyRecuperation.lineFghSelect", "theRapyRecuperation.lineXghSelect"}, logical = Logical.OR)
|
@RequiresPermissions(value = {"theRapyRecuperation.lineFghSelect", "theRapyRecuperation.lineXghSelect", "theRapyRecuperation.linePersonalSelect"}, logical = Logical.OR)
|
||||||
public Object pageData(PageForm pageForm, Integer year, String keywords, int selectStatus, String unionId,
|
public Object pageData(PageForm pageForm, Integer year, String keywords, int selectStatus, String unionId,
|
||||||
String lotId, String travelAgencyId, Integer mode, String regionalNature) {
|
String lotId, String travelAgencyId, Integer mode, String regionalNature) {
|
||||||
|
|
||||||
TheRapyRecuperationConfig config = unionSelectService.dao().fetch(TheRapyRecuperationConfig.class, Cnd.NEW());
|
year = year == null ? DateUtil.thisYear() : year;
|
||||||
|
|
||||||
Cnd cnd = Cnd.NEW();
|
Cnd cnd = Cnd.NEW();
|
||||||
cnd.andEX("line.lotId", "=", lotId);
|
cnd.andEX("line.lotId", "=", lotId);
|
||||||
cnd.andEX("us.travelAgencyId", "=", travelAgencyId);
|
cnd.andEX("line.travelAgencyId", "=", travelAgencyId);
|
||||||
if (!"全部".equals(regionalNature)) {
|
if (!"全部".equals(regionalNature)) {
|
||||||
cnd.andEX("line.regionalNature", "=", regionalNature);
|
cnd.andEX("line.regionalNature", "=", regionalNature);
|
||||||
}
|
}
|
||||||
|
cnd.and("line.signUpMode", "=", mode);
|
||||||
|
|
||||||
//当前登录用户已选择的线路id
|
//当前登录用户已选择的线路id
|
||||||
Sql hasSelectLineSql;
|
Sql hasSelectLineSql = null;
|
||||||
if (!ShiroUtil.hasAnyRoles("sysadmin, A06")) {
|
|
||||||
cnd.and(Cnd.exps("line.createUnionId", "=", Vi.getUnionId()).or("createMode", "=", 2));
|
if(mode == 1) {
|
||||||
|
SqlExpressionGroup group = new SqlExpressionGroup();
|
||||||
|
group.or("line.openChoose", "=", true);
|
||||||
|
group.or(Cnd.exps("line.openChoose", "=", false).and("line.createUnionId", "=", Vi.getUnionId()));
|
||||||
|
cnd.and(group);
|
||||||
|
|
||||||
hasSelectLineSql = Sqls.createf("""
|
hasSelectLineSql = Sqls.createf("""
|
||||||
select lineId from the_rapy_recuperation_line_union_select where selectUserId = '%s' AND unionId = '%s' AND year(selectTime) = %s
|
select lineId from the_rapy_recuperation_line_union_select where selectUserId = '%s' AND unionId = '%s' AND year(selectTime) = %s
|
||||||
""", ShiroUtil.getPrincipalProperty("id"), Vi.getUnionId(), year == null ? DateUtil.thisYear() : year);
|
""", ShiroUtil.getUserId(), Vi.getUnionId(), year);
|
||||||
} else {
|
} else if(mode == 2) {
|
||||||
hasSelectLineSql = Sqls.createf("""
|
hasSelectLineSql = Sqls.createf("""
|
||||||
select lineId from the_rapy_recuperation_line_union_select where year(selectTime) = %s
|
select lineId from the_rapy_recuperation_line_union_select where year(selectTime) = %s and signUpMode = %s
|
||||||
""", year == null ? DateUtil.thisYear() : year);
|
""", year, TheRapyRecuperationSignUpMode.FREE.getValue());
|
||||||
|
} else if(mode == 3) {
|
||||||
|
SqlExpressionGroup group = new SqlExpressionGroup();
|
||||||
|
group.or("line.openChoose", "=", true);
|
||||||
|
group.or(Cnd.exps("line.openChoose", "=", false).and("line.opBy", "=", ShiroUtil.getUserId()));
|
||||||
|
cnd.and(group);
|
||||||
|
//个人
|
||||||
|
hasSelectLineSql = Sqls.createf("""
|
||||||
|
select lineId from the_rapy_recuperation_line_union_select where selectUserId = '%s' and year(selectTime) = %s and signUpMode = %s
|
||||||
|
""", ShiroUtil.getUserId(), year, TheRapyRecuperationSignUpMode.PERSONAL.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
/*hasSelectLineSql = Sqls.createf("""
|
|
||||||
select lineId from the_rapy_recuperation_line_union_select where unionId = '%s'
|
|
||||||
""", Vi.getUnionId());*/
|
|
||||||
|
|
||||||
switch (selectStatus) {
|
switch (selectStatus) {
|
||||||
//查询未选择的线路
|
//查询未选择的线路
|
||||||
case -1 -> {
|
case -1 -> {
|
||||||
cnd.and("line.id", "not in", hasSelectLineSql);
|
cnd.and("line.id", "not in", hasSelectLineSql);
|
||||||
cnd.and("line.year", "in", year == null ? Lang.array(config.getProvinceStartYear(), config.getProvinceStartYear() + 1) : year);
|
cnd.and("line.year", "in", year);
|
||||||
}
|
}
|
||||||
|
|
||||||
case 0 -> {
|
case 0 -> {
|
||||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||||
seg.or("us.signUpMode", "is", null);
|
seg.or("us.signUpMode", "is", null);
|
||||||
seg.or("us.signUpMode", "=", mode);
|
seg.or("us.signUpMode", "=", mode);
|
||||||
cnd.and(seg);
|
cnd.and(seg);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*case 0 -> {
|
|
||||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
|
||||||
seg.or(Cnd.exps("line.id", "not in", hasSelectLineSql).and("line.createMode", "=", TheRapyRecuperationLineCreateMode.SCHOOL.getValue()));
|
|
||||||
seg.or("line.id", "in", hasSelectLineSql);
|
|
||||||
cnd.and(seg);
|
|
||||||
}*/
|
|
||||||
|
|
||||||
//查询已选择的线路
|
//查询已选择的线路
|
||||||
case 1 -> {
|
case 1 -> {
|
||||||
cnd.and("line.id", "in", hasSelectLineSql);
|
cnd.and("line.id", "in", hasSelectLineSql);
|
||||||
cnd.and("us.signUpMode", "=", mode);
|
cnd.and("us.signUpMode", "=", mode);
|
||||||
cnd.and("year(us.selectTime)", "=", year == null ? DateUtil.thisYear() : year);
|
cnd.and("year(us.selectTime)", "=", year);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -147,7 +160,7 @@ public class TheRapyRecuperationLineUnionSelectController {
|
|||||||
} else {
|
} else {
|
||||||
cnd.asc("createUnionId").desc("year").asc("serialNumber");
|
cnd.asc("createUnionId").desc("year").asc("serialNumber");
|
||||||
}
|
}
|
||||||
return unionSelectService.pageData(pageForm, cnd, year);
|
return unionSelectService.pageData(pageForm, cnd, year, mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -159,7 +172,7 @@ public class TheRapyRecuperationLineUnionSelectController {
|
|||||||
@At("/selectLine")
|
@At("/selectLine")
|
||||||
@POST
|
@POST
|
||||||
@ViReturn
|
@ViReturn
|
||||||
@RequiresPermissions(value = {"theRapyRecuperation.lineFghSelect", "theRapyRecuperation.lineXghSelect"}, logical = Logical.OR)
|
@RequiresPermissions(value = {"theRapyRecuperation.lineFghSelect", "theRapyRecuperation.lineXghSelect", "theRapyRecuperation.linePersonalSelect"}, logical = Logical.OR)
|
||||||
public Object selectLine(TheRapyRecuperationLineUnionSelect us) {
|
public Object selectLine(TheRapyRecuperationLineUnionSelect us) {
|
||||||
unionSelectService.selectLine(us);
|
unionSelectService.selectLine(us);
|
||||||
return null;
|
return null;
|
||||||
@@ -174,15 +187,12 @@ public class TheRapyRecuperationLineUnionSelectController {
|
|||||||
@At("/selectLineTimes")
|
@At("/selectLineTimes")
|
||||||
@POST
|
@POST
|
||||||
@ViReturn
|
@ViReturn
|
||||||
@RequiresPermissions(value = {"theRapyRecuperation.lineFghSelect", "theRapyRecuperation.lineXghSelect"}, logical = Logical.OR)
|
@RequiresPermissions(value = {"theRapyRecuperation.lineFghSelect", "theRapyRecuperation.lineXghSelect", "theRapyRecuperation.linePersonalSelect"}, logical = Logical.OR)
|
||||||
@Aop(TransAop.READ_COMMITTED)
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
public Object selectLineTimes(@Param("lineUnionSelects") TheRapyRecuperationLineUnionSelect[] lineUnionSelects) {
|
public Object selectLineTimes(@Param("lineUnionSelects") TheRapyRecuperationLineUnionSelect[] lineUnionSelects) {
|
||||||
if (Lang.isNotEmpty(lineUnionSelects)) {
|
if (Lang.isNotEmpty(lineUnionSelects)) {
|
||||||
TheRapyRecuperationLineUnionSelect lineUnionSelect = lineUnionSelects[0];
|
TheRapyRecuperationLineUnionSelect lineUnionSelect = lineUnionSelects[0];
|
||||||
List<TheRapyRecuperationLineUnionSelect> oldUnionSelects = unionSelectService.query(Cnd.where("unionId", "=", Vi.getUnionId()).and("lineId", "=", lineUnionSelect.getUnionId()));
|
List<TheRapyRecuperationLineUnionSelect> oldUnionSelects = unionSelectService.query(Cnd.where("selectUserId", "=", ShiroUtil.getUserId()).and("lineId", "=", lineUnionSelect.getLineId()));
|
||||||
|
|
||||||
//组织形式
|
|
||||||
int signUpMode = ShiroUtil.hasRole("H04") ? 1 : 2;
|
|
||||||
|
|
||||||
TheRapyRecuperationLineUnionSelect theRapyRecuperationLineUnionSelect = dao.fetch(TheRapyRecuperationLineUnionSelect.class, Cnd.where("id", "=", lineUnionSelect.getId()));
|
TheRapyRecuperationLineUnionSelect theRapyRecuperationLineUnionSelect = dao.fetch(TheRapyRecuperationLineUnionSelect.class, Cnd.where("id", "=", lineUnionSelect.getId()));
|
||||||
|
|
||||||
@@ -190,16 +200,35 @@ public class TheRapyRecuperationLineUnionSelectController {
|
|||||||
unionSelect.setSelectTime(new Date());
|
unionSelect.setSelectTime(new Date());
|
||||||
unionSelect.setSelectUserId(ShiroUtil.getPlatformUid());
|
unionSelect.setSelectUserId(ShiroUtil.getPlatformUid());
|
||||||
unionSelect.setUnionId(Vi.getUnionId());
|
unionSelect.setUnionId(Vi.getUnionId());
|
||||||
unionSelect.setIsOpen(Lang.isNotEmpty(theRapyRecuperationLineUnionSelect) ? theRapyRecuperationLineUnionSelect.getIsOpen() : true);
|
unionSelect.setIsOpen(Lang.isNotEmpty(theRapyRecuperationLineUnionSelect)?theRapyRecuperationLineUnionSelect.getIsOpen():false);
|
||||||
//unionSelect.setDelFlag(signUpMode == 2);
|
unionSelect.setDelFlag(false);
|
||||||
unionSelect.setSignUpMode(signUpMode);
|
|
||||||
|
//如果是个人组织,加自己
|
||||||
|
if(unionSelect.getSignUpMode() == 3) {
|
||||||
|
if(Lang.isEmpty(unionSelect.getChooseUserList())) {
|
||||||
|
unionSelect.setChooseUserList(new ArrayList<>());
|
||||||
|
}
|
||||||
|
List<String> list = unionSelect.getChooseUserList().stream().map(o -> o.getString("id")).toList();
|
||||||
|
Sys_user currentUser = (Sys_user) ShiroUtil.getPrincipal();
|
||||||
|
if(currentUser != null && !list.contains(ShiroUtil.getUserId())) {
|
||||||
|
NutMap map = new NutMap();
|
||||||
|
map.put("id", currentUser.getId());
|
||||||
|
map.put("sex", currentUser.getSex());
|
||||||
|
map.put("mobile", currentUser.getMobile());
|
||||||
|
map.put("unitname", currentUser.getUnit() != null ? currentUser.getUnit().getName() : "");
|
||||||
|
map.put("username", currentUser.getUsername());
|
||||||
|
map.put("loginname", currentUser.getLoginname());
|
||||||
|
map.put("unionname", currentUser.getUnion() != null ? currentUser.getUnion().getUnionname() : "");
|
||||||
|
unionSelect.getChooseUserList().add(map);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//新增或修改
|
//新增或修改
|
||||||
dao.insertOrUpdate(lineUnionSelects);
|
dao.insertOrUpdate(lineUnionSelects);
|
||||||
List<String> newIds = Arrays.stream(lineUnionSelects).map(v -> v.getId()).collect(Collectors.toList());
|
List<String> newIds = Arrays.stream(lineUnionSelects).map(TheRapyRecuperationLineUnionSelect::getId).toList();
|
||||||
//删除
|
//删除
|
||||||
List<String> deleteIds = oldUnionSelects.stream().map(v -> v.getId()).filter(v -> !newIds.contains(v)).collect(Collectors.toList());
|
List<String> deleteIds = oldUnionSelects.stream().map(TheRapyRecuperationLineUnionSelect::getId).filter(v -> !newIds.contains(v)).collect(Collectors.toList());
|
||||||
unionSelectService.clear(Cnd.where("id", "in", deleteIds));
|
unionSelectService.clear(Cnd.where("id", "in", deleteIds));
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
@@ -208,19 +237,19 @@ public class TheRapyRecuperationLineUnionSelectController {
|
|||||||
|
|
||||||
@At
|
@At
|
||||||
@POST
|
@POST
|
||||||
@RequiresPermissions(value = {"theRapyRecuperation.lineFghSelect", "theRapyRecuperation.lineXghSelect"}, logical = Logical.OR)
|
@RequiresPermissions(value = {"theRapyRecuperation.lineFghSelect", "theRapyRecuperation.lineXghSelect", "theRapyRecuperation.linePersonalSelect"}, logical = Logical.OR)
|
||||||
public Object selectLineInfo(@Param("lineId") String lineId, @Param("unionId") String unionId, @Param("mode") Integer mode, @Param("year") Integer year) {
|
public Object selectLineInfo(@Param("lineId") String lineId, @Param("unionId") String unionId, @Param("mode") Integer mode, @Param("year") Integer year) {
|
||||||
try {
|
try {
|
||||||
Assert.notBlank(lineId);
|
Assert.notBlank(lineId);
|
||||||
Assert.notNull(mode);
|
Assert.notNull(mode);
|
||||||
unionId = StrUtil.emptyToNull(Vi.getUnionId());
|
unionId = StrUtil.emptyToNull(Vi.getUnionId());
|
||||||
|
|
||||||
if (mode == 1 && !ShiroUtil.hasRole("H04")&&!ShiroUtil.hasRole("sysadmin")) {
|
if (mode == 1 && !ShiroUtil.hasRole("H04")) {
|
||||||
return Result.error("您没有分工会角色权限!");
|
return Result.error("您没有分工会角色权限!");
|
||||||
} else if (mode == 2 && !ShiroUtil.hasRole("SchoolUnionAdmin")&&!ShiroUtil.hasRole("sysadmin")) {
|
} else if (mode == 2 && !ShiroUtil.hasRole("SchoolUnionAdmin")) {
|
||||||
return Result.error("您没有校工会角色权限!");
|
return Result.error("您没有校工会角色权限!");
|
||||||
}
|
}
|
||||||
return Result.success(unionSelectService.selectLineInfo(lineId, unionId, mode, year));
|
return Result.success(unionSelectService.selectLineInfo(lineId, unionId,mode, year));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(e.getMessage());
|
log.error(e.getMessage());
|
||||||
return Result.error(e.getMessage());
|
return Result.error(e.getMessage());
|
||||||
@@ -237,7 +266,7 @@ public class TheRapyRecuperationLineUnionSelectController {
|
|||||||
@At
|
@At
|
||||||
@POST
|
@POST
|
||||||
@ViReturn
|
@ViReturn
|
||||||
@RequiresPermissions(value = {"theRapyRecuperation.lineFghSelect", "theRapyRecuperation.lineXghSelect"}, logical = Logical.OR)
|
@RequiresPermissions(value = {"theRapyRecuperation.lineFghSelect", "theRapyRecuperation.lineXghSelect", "theRapyRecuperation.linePersonalSelect"}, logical = Logical.OR)
|
||||||
public Object findUsLineInfo(String lineId, String usUnionId) {
|
public Object findUsLineInfo(String lineId, String usUnionId) {
|
||||||
return unionSelectService.findUsLineInfo(lineId, usUnionId);
|
return unionSelectService.findUsLineInfo(lineId, usUnionId);
|
||||||
}
|
}
|
||||||
@@ -245,7 +274,7 @@ public class TheRapyRecuperationLineUnionSelectController {
|
|||||||
@At("/deSelect")
|
@At("/deSelect")
|
||||||
@POST
|
@POST
|
||||||
@ViReturn
|
@ViReturn
|
||||||
@RequiresPermissions(value = {"theRapyRecuperation.lineFghSelect", "theRapyRecuperation.lineXghSelect"}, logical = Logical.OR)
|
@RequiresPermissions(value = {"theRapyRecuperation.lineFghSelect", "theRapyRecuperation.lineXghSelect", "theRapyRecuperation.linePersonalSelect"}, logical = Logical.OR)
|
||||||
@SLog(tag = "疗休养", msg = "取消选择线路", param = true, result = true)
|
@SLog(tag = "疗休养", msg = "取消选择线路", param = true, result = true)
|
||||||
@Aop(TransAop.READ_COMMITTED)
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
public Object deSelect(@Param("lineId") String lineId, @Param("unionId") String unionId) {
|
public Object deSelect(@Param("lineId") String lineId, @Param("unionId") String unionId) {
|
||||||
@@ -256,29 +285,8 @@ public class TheRapyRecuperationLineUnionSelectController {
|
|||||||
// enrollCnd.and("takePartInLineId", "=", lineId);
|
// enrollCnd.and("takePartInLineId", "=", lineId);
|
||||||
Cnd enrollCnd = Cnd.where("unionId", "=", unionId);
|
Cnd enrollCnd = Cnd.where("unionId", "=", unionId);
|
||||||
enrollCnd.and("lineId", "=", lineId);
|
enrollCnd.and("lineId", "=", lineId);
|
||||||
|
|
||||||
List<TheRapyRecuperationLineUnionSelect> unionSelects = unionSelectService.query(enrollCnd);
|
|
||||||
List<String> list = unionSelects.stream().map(TheRapyRecuperationLineUnionSelect::getId).collect(Collectors.toList());
|
|
||||||
|
|
||||||
List<TheRapyRecuperationEnroll> enrolls = unionSelectService.dao().query(TheRapyRecuperationEnroll.class, Cnd.where("takePartInLineId", "in", list));
|
|
||||||
List<String> enrollIdList = enrolls.stream().map(TheRapyRecuperationEnroll::getId).collect(Collectors.toList());
|
|
||||||
List<String> bedIdList = enrolls.stream().map(TheRapyRecuperationEnroll::getBedInfoId).collect(Collectors.toList());
|
|
||||||
//同伴信息
|
|
||||||
List<TheRapyRecuperationEnrollCompanion> companions = unionSelectService.dao().query(TheRapyRecuperationEnrollCompanion.class, Cnd.where("trreId", "in", enrollIdList));
|
|
||||||
List<String> comBedIdList = companions.stream().map(TheRapyRecuperationEnrollCompanion::getBedInfoId).collect(Collectors.toList());
|
|
||||||
|
|
||||||
//删除报名记录
|
|
||||||
unionSelectService.dao().clear(TheRapyRecuperationEnroll.class, Cnd.where("id", "in", enrollIdList));
|
|
||||||
//删除床位记录
|
|
||||||
unionSelectService.dao().clear(TheRapyRecuperationEnrollBed.class, Cnd.where("id", "in", bedIdList));
|
|
||||||
//删除同伴信息
|
|
||||||
unionSelectService.dao().clear(TheRapyRecuperationEnrollCompanion.class, Cnd.where("trreId", "in", enrollIdList));
|
|
||||||
//删除变更记录
|
|
||||||
unionSelectService.dao().clear(TheRapyRecuperationEnrollChangeRecord.class, Cnd.where("enrollId", "in", enrollIdList));
|
|
||||||
//删除同伴床位信息
|
|
||||||
unionSelectService.dao().clear(TheRapyRecuperationEnrollBed.class, Cnd.where("id", "in", comBedIdList));
|
|
||||||
|
|
||||||
unionSelectService.clear(enrollCnd);
|
unionSelectService.clear(enrollCnd);
|
||||||
|
|
||||||
return Result.success();
|
return Result.success();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
return Result.error(e.getMessage());
|
return Result.error(e.getMessage());
|
||||||
@@ -293,7 +301,7 @@ public class TheRapyRecuperationLineUnionSelectController {
|
|||||||
*/
|
*/
|
||||||
@At
|
@At
|
||||||
@ViReturn
|
@ViReturn
|
||||||
@RequiresPermissions(value = {"theRapyRecuperation.lineFghSelect", "theRapyRecuperation.lineXghSelect"}, logical = Logical.OR)
|
@RequiresPermissions(value = {"theRapyRecuperation.lineFghSelect", "theRapyRecuperation.lineXghSelect", "theRapyRecuperation.linePersonalSelect"}, logical = Logical.OR)
|
||||||
public Object getTravelAgencyOptions() {
|
public Object getTravelAgencyOptions() {
|
||||||
List<TheRapyRecuperationTravelAgency> travelAgencies = unionSelectService.dao().query(TheRapyRecuperationTravelAgency.class, Cnd.NEW().asc("serialNumber"));
|
List<TheRapyRecuperationTravelAgency> travelAgencies = unionSelectService.dao().query(TheRapyRecuperationTravelAgency.class, Cnd.NEW().asc("serialNumber"));
|
||||||
return travelAgencies;
|
return travelAgencies;
|
||||||
@@ -321,7 +329,7 @@ public class TheRapyRecuperationLineUnionSelectController {
|
|||||||
@At("/getLineConfig/?")
|
@At("/getLineConfig/?")
|
||||||
@POST
|
@POST
|
||||||
@ViReturn
|
@ViReturn
|
||||||
@RequiresPermissions(value = {"theRapyRecuperation.lineFghSelect", "theRapyRecuperation.lineXghSelect"}, logical = Logical.OR)
|
@RequiresPermissions(value = {"theRapyRecuperation.lineFghSelect", "theRapyRecuperation.lineXghSelect", "theRapyRecuperation.linePersonalSelect"}, logical = Logical.OR)
|
||||||
public Object getLineConfig(String id) {
|
public Object getLineConfig(String id) {
|
||||||
Sql sql = Sqls.create("select lotId from the_rapy_recuperation_line where id = @lineId");
|
Sql sql = Sqls.create("select lotId from the_rapy_recuperation_line where id = @lineId");
|
||||||
sql.setParam("lineId", id);
|
sql.setParam("lineId", id);
|
||||||
@@ -330,52 +338,89 @@ public class TheRapyRecuperationLineUnionSelectController {
|
|||||||
Integer cost = Optional.ofNullable(lotInfo).map(v -> v.getActivityCost()).orElse(0);
|
Integer cost = Optional.ofNullable(lotInfo).map(v -> v.getActivityCost()).orElse(0);
|
||||||
TheRapyRecuperationConfig config = dao.fetch(TheRapyRecuperationConfig.class, Cnd.NEW());
|
TheRapyRecuperationConfig config = dao.fetch(TheRapyRecuperationConfig.class, Cnd.NEW());
|
||||||
Integer groupNumber = Optional.ofNullable(config).map(TheRapyRecuperationConfig::getGroupNumber).orElse(0);
|
Integer groupNumber = Optional.ofNullable(config).map(TheRapyRecuperationConfig::getGroupNumber).orElse(0);
|
||||||
Integer outsideQuota = Optional.ofNullable(config).map(TheRapyRecuperationConfig::getOutsideQuota).orElse(0);
|
return Result.success(Map.of("cost", cost, "groupNumber", groupNumber));
|
||||||
return Result.success(Map.of("cost", cost, "groupNumber", groupNumber, "outsideQuota", outsideQuota));
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 一键统赋时间,针对于已选择的线路
|
* 一键统赋时间,针对于已选择的线路
|
||||||
*
|
* @param lineIds 线路Id数组
|
||||||
* @param lineIds 线路Id数组
|
|
||||||
* @param lineUnionSelects 出行时段
|
* @param lineUnionSelects 出行时段
|
||||||
* @return {@link Object}
|
* @return {@link Object}
|
||||||
*/
|
*/
|
||||||
@At("/setGiveLineTimes")
|
@At("/setGiveLineTimes")
|
||||||
@POST
|
@POST
|
||||||
@ViReturn
|
@ViReturn
|
||||||
@RequiresPermissions(value = {"theRapyRecuperation.lineFghSelect", "theRapyRecuperation.lineXghSelect"}, logical = Logical.OR)
|
@RequiresPermissions(value = {"theRapyRecuperation.lineFghSelect", "theRapyRecuperation.lineXghSelect", "theRapyRecuperation.linePersonalSelect"}, logical = Logical.OR)
|
||||||
@Aop(TransAop.READ_COMMITTED)
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
@SLog(type = "普惠疗休养", tag = "分工会/校工会选择线路", msg = "一键统赋时间,针对于已选择的线路", param = true, result = true)
|
@SLog(type = "普惠疗休养",tag = "分工会/校工会选择线路",msg = "一键统赋时间,针对于已选择的线路",param = true,result = true)
|
||||||
public Object setGiveLineTimes(@Param("lineIds") String[] lineIds, @Param("lineUnionSelects") TheRapyRecuperationLineUnionSelect[] lineUnionSelects) {
|
public Object setGiveLineTimes(@Param("lineIds") String[] lineIds,@Param("lineUnionSelects") TheRapyRecuperationLineUnionSelect[] lineUnionSelects,
|
||||||
|
@Param(value = "year",required = false) Integer year) {
|
||||||
if (Lang.isNotEmpty(lineUnionSelects) && Lang.isNotEmpty(lineIds)) {
|
if (Lang.isNotEmpty(lineUnionSelects) && Lang.isNotEmpty(lineIds)) {
|
||||||
TheRapyRecuperationLineUnionSelect lineUnionSelect = lineUnionSelects[0];
|
TheRapyRecuperationLineUnionSelect lineUnionSelect = lineUnionSelects[0];
|
||||||
|
|
||||||
Chain chain = Chain.make("enable", 1);
|
Cnd cnd = Cnd.NEW();
|
||||||
if (lineUnionSelect.getSignUpStartTime() != null)
|
cnd.and("unionId","=",Vi.getUnionId());
|
||||||
chain.add("signUpStartTime", lineUnionSelect.getSignUpStartTime());
|
cnd.and("selectUserId","=", ShiroUtil.getUserId());
|
||||||
if (lineUnionSelect.getSignUpEndTime() != null)
|
cnd.and("YEAR(selectTime)","=",year == null ? DateUtil.thisYear() : year);
|
||||||
chain.add("signUpEndTime", lineUnionSelect.getSignUpEndTime());
|
List<TheRapyRecuperationLineUnionSelect> unionSelectList = dao.query(TheRapyRecuperationLineUnionSelect.class, cnd);
|
||||||
if (lineUnionSelect.getChangeEndTime() != null)
|
|
||||||
chain.add("changeEndTime", lineUnionSelect.getChangeEndTime());
|
|
||||||
if (lineUnionSelect.getPlayStartTime() != null)
|
|
||||||
chain.add("playStartTime", lineUnionSelect.getPlayStartTime());
|
|
||||||
if (lineUnionSelect.getPlayEndTime() != null) chain.add("playEndTime", lineUnionSelect.getPlayEndTime());
|
|
||||||
|
|
||||||
dao.update(TheRapyRecuperationLineUnionSelect.class, chain, Cnd.where("id", "in", lineIds));
|
List<String> selectIdList = unionSelectList.stream().map(TheRapyRecuperationLineUnionSelect::getId).collect(Collectors.toList());
|
||||||
|
Chain chain = Chain.make("enable",1);
|
||||||
|
if (lineUnionSelect.getSignUpStartTime() != null) chain.add("signUpStartTime",lineUnionSelect.getSignUpStartTime());
|
||||||
|
if (lineUnionSelect.getSignUpEndTime() != null) chain.add("signUpEndTime",lineUnionSelect.getSignUpEndTime());
|
||||||
|
if (lineUnionSelect.getChangeEndTime() != null) chain.add("changeEndTime",lineUnionSelect.getChangeEndTime());
|
||||||
|
if (lineUnionSelect.getPlayStartTime() != null) chain.add("playStartTime",lineUnionSelect.getPlayStartTime());
|
||||||
|
if (lineUnionSelect.getPlayEndTime() != null) chain.add("playEndTime",lineUnionSelect.getPlayEndTime());
|
||||||
|
|
||||||
|
dao.update(TheRapyRecuperationLineUnionSelect.class,chain,Cnd.where("id","in",selectIdList));
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@At
|
||||||
|
@ViReturn
|
||||||
|
@RequiresPermissions(value = {"theRapyRecuperation.lineFghSelect", "theRapyRecuperation.lineXghSelect", "theRapyRecuperation.linePersonalSelect"}, logical = Logical.OR)
|
||||||
|
@SLog(type = "普惠疗休养",tag = "分工会/校工会选择线路",msg = "是否开放对外报名",param = true,result = true)
|
||||||
|
public Object doEditOpen(String id){
|
||||||
|
dao.update(TheRapyRecuperationLineUnionSelect.class,Chain.makeSpecial("isOpen", "isOpen ^ 1"), Cnd.where("id", "=", id));
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
@At
|
@At
|
||||||
@ViReturn
|
@ViReturn
|
||||||
@RequiresPermissions(value = {"theRapyRecuperation.lineFghSelect", "theRapyRecuperation.lineXghSelect"}, logical = Logical.OR)
|
@RequiresPermissions(value = {"theRapyRecuperation.lineFghSelect", "theRapyRecuperation.lineXghSelect", "theRapyRecuperation.linePersonalSelect"}, logical = Logical.OR)
|
||||||
@SLog(type = "普惠疗休养", tag = "分工会/校工会选择线路", msg = "是否开放对外报名", param = true, result = true)
|
public Object queryJoinUser(String keyWord){
|
||||||
public Object doEditOpen(String id) {
|
Sql sql = Sqls.create("""
|
||||||
dao.update(TheRapyRecuperationLineUnionSelect.class, Chain.makeSpecial("isOpen", "isOpen ^ 1"), Cnd.where("id", "=", id));
|
select
|
||||||
return null;
|
id,
|
||||||
|
username,
|
||||||
|
loginname,
|
||||||
|
sex,
|
||||||
|
mobile,
|
||||||
|
unitname,
|
||||||
|
unionname
|
||||||
|
from
|
||||||
|
user
|
||||||
|
$condition
|
||||||
|
""");
|
||||||
|
Cnd cnd = Cnd.NEW();
|
||||||
|
if(StrUtil.isNotBlank(keyWord)) {
|
||||||
|
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||||
|
seg.orLike("userName", keyWord);
|
||||||
|
seg.orLike("loginName", keyWord);
|
||||||
|
cnd.and(seg);
|
||||||
|
}
|
||||||
|
|
||||||
|
TheRapyRecuperationConfig config = dao.fetch(TheRapyRecuperationConfig.class, Cnd.NEW());
|
||||||
|
|
||||||
|
cnd.and(new Static("id in (select userId from activity_user_scope where groupId = '%s')".formatted(config.getActivityGroupId())));
|
||||||
|
|
||||||
|
cnd.groupBy("id");
|
||||||
|
cnd.asc("loginname");
|
||||||
|
sql.setCondition(cnd);
|
||||||
|
Pagination pagination = unionSelectService.listPageMap(1, 30, sql);
|
||||||
|
return pagination.getList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-5
@@ -1,9 +1,8 @@
|
|||||||
package io.v.nutz.zhgh.therapyRecuperation.controller.process;
|
package io.v.nutz.zhgh.therapyRecuperation.controller.process;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
import io.v.nutz.base.annontation.ViReturn;
|
import io.v.nutz.base.annontation.ViReturn;
|
||||||
import io.v.nutz.base.service.BaseService;
|
import io.v.nutz.base.service.BaseService;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationEnroll;
|
||||||
import org.apache.shiro.authz.annotation.RequiresAuthentication;
|
import org.apache.shiro.authz.annotation.RequiresAuthentication;
|
||||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||||
import org.nutz.dao.Cnd;
|
import org.nutz.dao.Cnd;
|
||||||
@@ -47,7 +46,7 @@ public class TheRapyRecuperationStatisticsController {
|
|||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
SELECT
|
SELECT
|
||||||
line.lineName,
|
line.lineName,
|
||||||
( SELECT COUNT( 1 ) FROM the_rapy_recuperation_enroll WHERE isNormal=true and line.id = takePartInLineId ) AS enrollNum,
|
( SELECT COUNT( 1 ) FROM the_rapy_recuperation_enroll WHERE line.id = takePartInLineId ) AS enrollNum,
|
||||||
(
|
(
|
||||||
SELECT
|
SELECT
|
||||||
COUNT( 1 )
|
COUNT( 1 )
|
||||||
@@ -123,7 +122,7 @@ public class TheRapyRecuperationStatisticsController {
|
|||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
SELECT
|
SELECT
|
||||||
agency.travelAgencyName,
|
agency.travelAgencyName,
|
||||||
( SELECT AVG( evaluationForTravelAgency ) FROM the_rapy_recuperation_enroll where isNormal=true and agency.id=takePartInTravelAgencyId) AS avg
|
( SELECT AVG( evaluationForTravelAgency ) FROM the_rapy_recuperation_enroll where agency.id=takePartInTravelAgencyId) AS avg
|
||||||
FROM
|
FROM
|
||||||
`the_rapy_recuperation_travel_agency` agency
|
`the_rapy_recuperation_travel_agency` agency
|
||||||
WHERE
|
WHERE
|
||||||
@@ -140,7 +139,7 @@ public class TheRapyRecuperationStatisticsController {
|
|||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
SELECT
|
SELECT
|
||||||
line.lineName,
|
line.lineName,
|
||||||
( SELECT AVG( evaluationForLine ) FROM the_rapy_recuperation_enroll where isNormal=true and line.id=takePartInLineId) AS avg
|
( SELECT AVG( evaluationForLine ) FROM the_rapy_recuperation_enroll where line.id=takePartInLineId) AS avg
|
||||||
FROM
|
FROM
|
||||||
`the_rapy_recuperation_line` line
|
`the_rapy_recuperation_line` line
|
||||||
WHERE
|
WHERE
|
||||||
|
|||||||
+54
-105
@@ -7,26 +7,21 @@ import cn.afterturn.easypoi.excel.entity.TemplateExportParams;
|
|||||||
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
|
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
|
||||||
import io.v.nutz.base.annontation.ViReturn;
|
import io.v.nutz.base.annontation.ViReturn;
|
||||||
import io.v.nutz.base.page.Pagination;
|
import io.v.nutz.base.page.Pagination;
|
||||||
import io.v.nutz.base.query.PageForm;
|
|
||||||
import io.v.nutz.base.service.BaseService;
|
import io.v.nutz.base.service.BaseService;
|
||||||
import io.v.nutz.base.utils.EmailUtil;
|
import io.v.nutz.base.utils.EmailUtil;
|
||||||
import io.v.nutz.base.utils.Vi;
|
import io.v.nutz.base.utils.Vi;
|
||||||
|
import io.v.nutz.base.query.PageForm;
|
||||||
import io.v.nutz.base.utils.ViTool;
|
import io.v.nutz.base.utils.ViTool;
|
||||||
import io.v.nutz.sys.models.Sys_union;
|
import io.v.nutz.sys.models.Sys_union;
|
||||||
import io.v.nutz.sys.models.Sys_user;
|
import io.v.nutz.sys.models.Sys_user;
|
||||||
|
|
||||||
import io.v.nutz.web.commons.base.Globals;
|
|
||||||
import io.v.nutz.web.commons.slog.annotation.SLog;
|
|
||||||
|
|
||||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.common.TherapyRecuperationCommon;
|
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationState;
|
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationState;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.*;
|
import io.v.nutz.zhgh.therapyRecuperation.model.*;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationTravelAgencyService;
|
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationTravelAgencyService;
|
||||||
|
import io.v.nutz.web.commons.base.Globals;
|
||||||
|
import io.v.nutz.web.commons.slog.annotation.SLog;
|
||||||
import org.apache.poi.ss.usermodel.Workbook;
|
import org.apache.poi.ss.usermodel.Workbook;
|
||||||
import org.apache.shiro.authz.annotation.RequiresAuthentication;
|
import org.apache.shiro.authz.annotation.RequiresAuthentication;
|
||||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||||
@@ -81,22 +76,15 @@ public class TheRapyRecuperationUnionQueryController {
|
|||||||
@At
|
@At
|
||||||
@ViReturn
|
@ViReturn
|
||||||
@RequiresAuthentication
|
@RequiresAuthentication
|
||||||
public Object getXlData(PageForm pageForm,
|
public Object getXlData(PageForm pageForm, String year, String unionId, String takePartInLineId, String regionalNature, String lotId) {
|
||||||
String year,
|
|
||||||
String unionId,
|
|
||||||
String takePartInLineId,
|
|
||||||
String regionalNature,
|
|
||||||
String lotId,
|
|
||||||
String state,
|
|
||||||
String selectId) {
|
|
||||||
Cnd cnd = Cnd.NEW();
|
Cnd cnd = Cnd.NEW();
|
||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
SELECT
|
SELECT
|
||||||
enroll.id as enrollId,
|
line.id,
|
||||||
lineu.id,
|
|
||||||
line.lineName,
|
line.lineName,
|
||||||
line.regionalNature,
|
line.regionalNature,
|
||||||
lineu.lineId,
|
lineu.lineId,
|
||||||
|
lineu.id AS selectId,
|
||||||
lineu.signUpMode,
|
lineu.signUpMode,
|
||||||
YEAR(lineu.selectTime) as `year`,
|
YEAR(lineu.selectTime) as `year`,
|
||||||
CONCAT(DATE_FORMAT(lineu.playStartTime,'%m月%d日'),'-',DATE_FORMAT(lineu.playEndTime,'%m月%d日')) AS linePlayTime,
|
CONCAT(DATE_FORMAT(lineu.playStartTime,'%m月%d日'),'-',DATE_FORMAT(lineu.playEndTime,'%m月%d日')) AS linePlayTime,
|
||||||
@@ -109,15 +97,15 @@ public class TheRapyRecuperationUnionQueryController {
|
|||||||
un.unionname,
|
un.unionname,
|
||||||
lot.lotName,
|
lot.lotName,
|
||||||
lot.lotValue,
|
lot.lotValue,
|
||||||
enroll.familyNumber,
|
SUM(enroll.familyNumber) AS familyNumber,
|
||||||
( SELECT COUNT( 1 ) FROM the_rapy_recuperation_enroll WHERE isNormal=true and takePartInLineId = lineu.id and stateId=@stateId $unionCnd) lineNum,
|
( SELECT COUNT( 1 ) FROM the_rapy_recuperation_enroll WHERE takePartInLineId = lineu.id and stateId=@stateId $unionCnd) lineNum,
|
||||||
(select count(1) from the_rapy_recuperation_enroll_companion where trreId in (select id from the_rapy_recuperation_enroll where isNormal=true and stateId=2750 and takePartInLineId = lineu.id $unionCnd)) as signUpUserFamilyNum
|
(select count(1) from the_rapy_recuperation_enroll_companion where trreId in (select id from the_rapy_recuperation_enroll where takePartInLineId = lineu.id $unionCnd)) as signUpUserFamilyNum
|
||||||
FROM
|
FROM
|
||||||
`the_rapy_recuperation_enroll` enroll
|
`the_rapy_recuperation_enroll` enroll
|
||||||
LEFT JOIN the_rapy_recuperation_line_union_select lineu ON lineu.id=enroll.takePartInLineId
|
LEFT JOIN the_rapy_recuperation_line_union_select lineu ON lineu.id=enroll.takePartInLineId
|
||||||
LEFT JOIN the_rapy_recuperation_line line ON line.id = lineu.lineId
|
LEFT JOIN the_rapy_recuperation_line line ON line.id = lineu.lineId
|
||||||
LEFT JOIN the_rapy_recuperation_lot lot ON lot.id = line.lotId
|
LEFT JOIN the_rapy_recuperation_lot lot ON lot.id = line.lotId
|
||||||
LEFT JOIN the_rapy_recuperation_travel_agency lxs ON lineu.travelAgencyId = lxs.id
|
LEFT JOIN the_rapy_recuperation_travel_agency lxs ON line.travelAgencyId = lxs.id
|
||||||
LEFT JOIN sys_union un ON un.id = enroll.takePartInUnionId
|
LEFT JOIN sys_union un ON un.id = enroll.takePartInUnionId
|
||||||
$condition
|
$condition
|
||||||
""").setParam("stateId", TheRapyRecuperationState.PASS);
|
""").setParam("stateId", TheRapyRecuperationState.PASS);
|
||||||
@@ -128,10 +116,10 @@ public class TheRapyRecuperationUnionQueryController {
|
|||||||
if (!ShiroUtil.hasAnyRoles("sysadmin,H06")) {
|
if (!ShiroUtil.hasAnyRoles("sysadmin,H06")) {
|
||||||
|
|
||||||
// sql.setVar("unionCnd", "and (takePartInUnionId='%s' or selfUnionId='%s')".formatted(Vi.getUnionId(), Vi.getUnionId()));
|
// sql.setVar("unionCnd", "and (takePartInUnionId='%s' or selfUnionId='%s')".formatted(Vi.getUnionId(), Vi.getUnionId()));
|
||||||
String unionCndSql = StrUtil.isBlank(year) ? "and (takePartInUnionId='%s' or selfUnionId='%s')".formatted(Vi.getUnionId(), Vi.getUnionId()) : "and (takePartInUnionId='%s' or selfUnionId='%s') and YEAR(signingUptime)='%s'".formatted(Vi.getUnionId(), Vi.getUnionId(), year);
|
String unionCndSql = StrUtil.isBlank(year) ? "and selfUnionId='%s'".formatted(Vi.getUnionId()) : "and selfUnionId='%s' and YEAR(signingUptime)='%s'".formatted(Vi.getUnionId(), year);
|
||||||
sql.setVar("unionCnd", unionCndSql);
|
sql.setVar("unionCnd", unionCndSql);
|
||||||
cnd.and(Cnd.exps("enroll.takePartInUnionId", "=", Vi.getUnionId()).or("enroll.selfUnionId", "=", Vi.getUnionId()));
|
// cnd.and(Cnd.exps("enroll.takePartInUnionId", "=", Vi.getUnionId()).or("enroll.selfUnionId", "=", Vi.getUnionId()));
|
||||||
//cnd.and("enroll.selfUnionId", "=", Vi.getUnionId());
|
cnd.and("enroll.selfUnionId", "=", Vi.getUnionId());
|
||||||
/* if (Strings.isNotBlank(unionId)) {
|
/* if (Strings.isNotBlank(unionId)) {
|
||||||
cnd.andEX("enroll.selfUnionId", "=", unionId);
|
cnd.andEX("enroll.selfUnionId", "=", unionId);
|
||||||
//cnd.and(Cnd.exps("enroll.takePartInUnionId", "=", unionId).or("enroll.selfUnionId", "=", unionId));
|
//cnd.and(Cnd.exps("enroll.takePartInUnionId", "=", unionId).or("enroll.selfUnionId", "=", unionId));
|
||||||
@@ -141,38 +129,21 @@ public class TheRapyRecuperationUnionQueryController {
|
|||||||
}*/
|
}*/
|
||||||
} else {
|
} else {
|
||||||
if (Strings.isNotBlank(unionId)) {
|
if (Strings.isNotBlank(unionId)) {
|
||||||
cnd.and(Cnd.exps("enroll.takePartInUnionId", "=", unionId).or("enroll.selfUnionId", "=", unionId));
|
// cnd.and(Cnd.exps("enroll.takePartInUnionId", "=", unionId).or("enroll.selfUnionId", "=", unionId));
|
||||||
//cnd.and("enroll.selfUnionId", "=", unionId);
|
cnd.and("enroll.selfUnionId", "=", unionId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (Strings.isNotBlank(regionalNature)) {
|
if (Strings.isNotBlank(regionalNature)) {
|
||||||
sql.setVar("regionalNature", "AND line.regionalNature='%s'".formatted(regionalNature));
|
sql.setVar("regionalNature", "AND line.regionalNature='%s'".formatted(regionalNature));
|
||||||
}
|
}
|
||||||
if(state.equals("2")) {
|
|
||||||
cnd.and("enroll.takePartInTravelAgencyId", "is not", null)
|
|
||||||
.and("enroll.takePartInTravelAgencyId", "!=", "");
|
|
||||||
} else {
|
|
||||||
cnd.and("enroll.takePartInLineId", "is not", null)
|
|
||||||
.and("enroll.takePartInLineId", "!=", "");
|
|
||||||
}
|
|
||||||
cnd.andEX("line.lotId", "=", lotId);
|
cnd.andEX("line.lotId", "=", lotId);
|
||||||
cnd.andEX("lineu.lineId", "=", takePartInLineId);
|
cnd.andEX("line.id", "=", takePartInLineId);
|
||||||
cnd.andEX("lineu.id", "=", selectId);
|
|
||||||
cnd.andEX("line.regionalNature", "=", regionalNature);
|
cnd.andEX("line.regionalNature", "=", regionalNature);
|
||||||
cnd.groupBy("enroll.takePartInLineId");
|
cnd.groupBy("enroll.takePartInLineId");
|
||||||
cnd.desc("un.unioncode");
|
cnd.desc("un.unioncode");
|
||||||
sql.setCondition(cnd);
|
sql.setCondition(cnd);
|
||||||
|
|
||||||
Pagination pagination = baseService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
return baseService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||||
List<NutMap> list = pagination.getList();
|
|
||||||
list.forEach(v -> {
|
|
||||||
List<TheRapyRecuperationEnrollCompanion> companionList = baseService.dao().query(TheRapyRecuperationEnrollCompanion.class, Cnd.where("trreId", "=", v.getString("enrollId")));
|
|
||||||
for (TheRapyRecuperationEnrollCompanion enrollCompanion : companionList) {
|
|
||||||
baseService.dao().fetchLinks(enrollCompanion, "bedInfo");
|
|
||||||
}
|
|
||||||
v.setv("companionList", companionList);
|
|
||||||
});
|
|
||||||
return pagination;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -181,8 +152,7 @@ public class TheRapyRecuperationUnionQueryController {
|
|||||||
@RequiresAuthentication
|
@RequiresAuthentication
|
||||||
public Object getRyData(PageForm pageForm, String year, String unionId, String unitId,
|
public Object getRyData(PageForm pageForm, String year, String unionId, String unitId,
|
||||||
String takePartInLineId, String regionalNature, String state,
|
String takePartInLineId, String regionalNature, String state,
|
||||||
String state2, String agencyId, String takePartInBaseManagementId,
|
String state2, String agencyId, String takePartInBaseManagementId, String lotId) {
|
||||||
String lotId, String selectId) {
|
|
||||||
Cnd cnd = Cnd.NEW();
|
Cnd cnd = Cnd.NEW();
|
||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
SELECT
|
SELECT
|
||||||
@@ -193,7 +163,6 @@ public class TheRapyRecuperationUnionQueryController {
|
|||||||
agency.travelAgencyName,
|
agency.travelAgencyName,
|
||||||
ma.baseName,
|
ma.baseName,
|
||||||
enroll.*,
|
enroll.*,
|
||||||
IF(enroll.isReimbursement = 1,'已报销','未报销') AS reimbursementStatus,
|
|
||||||
lineu.lineId,
|
lineu.lineId,
|
||||||
lineu.playStartTime,
|
lineu.playStartTime,
|
||||||
lineu.playEndTime,
|
lineu.playEndTime,
|
||||||
@@ -226,10 +195,10 @@ public class TheRapyRecuperationUnionQueryController {
|
|||||||
cnd.and(seg);
|
cnd.and(seg);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ShiroUtil.hasAnyRoles("sysadmin,A06")) {
|
if (ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin")) {
|
||||||
if (Strings.isNotBlank(unionId) && state.equals("1")) {
|
if (Strings.isNotBlank(unionId) && state.equals("1")) {
|
||||||
cnd.and(Cnd.exps("enroll.takePartInUnionId", "=", unionId).or("enroll.selfUnionId", "=", unionId));
|
// cnd.and(Cnd.exps("enroll.takePartInUnionId", "=", unionId).or("enroll.selfUnionId", "=", unionId));
|
||||||
//cnd.and("enroll.selfUnionId", "=", unionId);
|
cnd.and("enroll.selfUnionId", "=", unionId);
|
||||||
}
|
}
|
||||||
cnd.andEX("enroll.selfUnionId", "=", unionId);
|
cnd.andEX("enroll.selfUnionId", "=", unionId);
|
||||||
} else {
|
} else {
|
||||||
@@ -249,21 +218,18 @@ public class TheRapyRecuperationUnionQueryController {
|
|||||||
cnd.andEX("lineu.signUpMode", "=", 2);
|
cnd.andEX("lineu.signUpMode", "=", 2);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
cnd.and(Cnd.exps("enroll.takePartInUnionId", "=", Vi.getUnionId()).or("enroll.selfUnionId", "=", Vi.getUnionId()));
|
// cnd.and(Cnd.exps("enroll.takePartInUnionId", "=", Vi.getUnionId()).or("enroll.selfUnionId", "=", Vi.getUnionId()));
|
||||||
//cnd.and("enroll.selfUnionId", "=", Vi.getUnionId());
|
cnd.and("enroll.selfUnionId", "=", Vi.getUnionId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cnd.andEX("enroll.selfUnitId", "=", unitId);
|
cnd.andEX("enroll.selfUnitId", "=", unitId);
|
||||||
cnd.andEX("lineu.lineId", "=", takePartInLineId);
|
cnd.andEX("line.id", "=", takePartInLineId);
|
||||||
cnd.andEX("lineu.id", "=", selectId);
|
|
||||||
if (state.equals("1")) {
|
if (state.equals("1")) {
|
||||||
cnd.andEX("line.regionalNature", "=", regionalNature);
|
cnd.andEX("line.regionalNature", "=", regionalNature);
|
||||||
cnd.and("enroll.takePartInLineId", "is not", null);
|
cnd.and("enroll.takePartInLineId", "is not", null);
|
||||||
cnd.and("enroll.takePartInLineId", "!=", "");
|
|
||||||
sql.setVar("lotSql", ",(select lotName from the_rapy_recuperation_lot where id = line.lotId) as lotName");
|
sql.setVar("lotSql", ",(select lotName from the_rapy_recuperation_lot where id = line.lotId) as lotName");
|
||||||
} else if (state.equals("2")) {
|
} else if (state.equals("2")) {
|
||||||
cnd.and("enroll.takePartInTravelAgencyId", "is not", null);
|
cnd.and("enroll.takePartInTravelAgencyId", "is not", null);
|
||||||
cnd.and("enroll.takePartInTravelAgencyId", "!=", "");
|
|
||||||
cnd.andEX("enroll.takePartInTravelAgencyId", "=", agencyId);
|
cnd.andEX("enroll.takePartInTravelAgencyId", "=", agencyId);
|
||||||
} else if ("3".equals(state)) {
|
} else if ("3".equals(state)) {
|
||||||
cnd.and("enroll.takePartInBaseManagementId", "is not", null);
|
cnd.and("enroll.takePartInBaseManagementId", "is not", null);
|
||||||
@@ -292,7 +258,7 @@ public class TheRapyRecuperationUnionQueryController {
|
|||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
SELECT
|
SELECT
|
||||||
*,
|
*,
|
||||||
files AS fileId,
|
cast( files ->> '$[0].id' AS CHAR ) AS fileId,
|
||||||
( SELECT COUNT( 1 ) FROM the_rapy_recuperation_enroll WHERE agency.id = takePartInTravelAgencyId and isNormal=true and stateId=@stateId $unionCnd $yearCnd) agencyNum
|
( SELECT COUNT( 1 ) FROM the_rapy_recuperation_enroll WHERE agency.id = takePartInTravelAgencyId and isNormal=true and stateId=@stateId $unionCnd $yearCnd) agencyNum
|
||||||
FROM
|
FROM
|
||||||
the_rapy_recuperation_travel_agency agency
|
the_rapy_recuperation_travel_agency agency
|
||||||
@@ -357,7 +323,6 @@ public class TheRapyRecuperationUnionQueryController {
|
|||||||
state.stateName,
|
state.stateName,
|
||||||
state.stateColor,
|
state.stateColor,
|
||||||
enroll.*,
|
enroll.*,
|
||||||
IF(enroll.isReimbursement = 1,'已报销','未报销') AS reimbursementStatus,
|
|
||||||
lineu.lineId,
|
lineu.lineId,
|
||||||
lineu.playStartTime,
|
lineu.playStartTime,
|
||||||
lineu.playEndTime,
|
lineu.playEndTime,
|
||||||
@@ -385,17 +350,17 @@ public class TheRapyRecuperationUnionQueryController {
|
|||||||
cnd.andEX("enroll.stateId", "=", TheRapyRecuperationState.PASS);
|
cnd.andEX("enroll.stateId", "=", TheRapyRecuperationState.PASS);
|
||||||
cnd.andEX("enroll.selfUnitId", "=", unitId);
|
cnd.andEX("enroll.selfUnitId", "=", unitId);
|
||||||
cnd.andEX("enroll.isNormal", "=", true);
|
cnd.andEX("enroll.isNormal", "=", true);
|
||||||
if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) {
|
if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin")) {
|
||||||
if (StrUtil.isNotBlank(unionId)) {
|
if (StrUtil.isNotBlank(unionId)) {
|
||||||
cnd.and("enroll.selfUnionId", "=", unionId);
|
cnd.and("enroll.selfUnionId", "=", unionId);
|
||||||
} else {
|
} else {
|
||||||
cnd.and(Cnd.exps("enroll.takePartInUnionId", "=", Vi.getUnionId()).or("enroll.selfUnionId", "=", Vi.getUnionId()));
|
// cnd.and(Cnd.exps("enroll.takePartInUnionId", "=", Vi.getUnionId()).or("enroll.selfUnionId", "=", Vi.getUnionId()));
|
||||||
//cnd.and("enroll.selfUnionId", "=", Vi.getUnionId());
|
cnd.and("enroll.selfUnionId", "=", Vi.getUnionId());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (StrUtil.isNotBlank(unionId)) {
|
if (StrUtil.isNotBlank(unionId)) {
|
||||||
cnd.and(Cnd.exps("enroll.takePartInUnionId", "=", unionId).or("enroll.selfUnionId", "=", unionId));
|
// cnd.and(Cnd.exps("enroll.takePartInUnionId", "=", unionId).or("enroll.selfUnionId", "=", unionId));
|
||||||
//cnd.and("enroll.selfUnionId", "=", unionId);
|
cnd.and("enroll.selfUnionId", "=", unionId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cnd.desc("enroll.stateId");
|
cnd.desc("enroll.stateId");
|
||||||
@@ -444,6 +409,9 @@ public class TheRapyRecuperationUnionQueryController {
|
|||||||
if (Strings.isNotBlank(searchKeyword) && Strings.isNotBlank(searchName)) {
|
if (Strings.isNotBlank(searchKeyword) && Strings.isNotBlank(searchName)) {
|
||||||
cnd.and(Cnd.likeEX(searchName, searchKeyword));
|
cnd.and(Cnd.likeEX(searchName, searchKeyword));
|
||||||
}
|
}
|
||||||
|
if (!ShiroUtil.hasAnyRoles("sysadmin, SchoolUnionAdmin")) {
|
||||||
|
cnd.and(Cnd.exps("takePartInUnionId", "=", Vi.getUnionId()).or("selfUnionId", "=", Vi.getUnionId()));
|
||||||
|
}
|
||||||
cnd.and("stateId", "=", TheRapyRecuperationState.PASS);
|
cnd.and("stateId", "=", TheRapyRecuperationState.PASS);
|
||||||
cnd.and("isNormal", "=", true);
|
cnd.and("isNormal", "=", true);
|
||||||
cnd.desc("unitName");
|
cnd.desc("unitName");
|
||||||
@@ -536,7 +504,7 @@ public class TheRapyRecuperationUnionQueryController {
|
|||||||
@At
|
@At
|
||||||
@ViReturn
|
@ViReturn
|
||||||
@RequiresAuthentication
|
@RequiresAuthentication
|
||||||
public Object getApplyNum(String state, String state2, String unionId, Integer year, String regionalNature, String takePartInLineId, String selectId) {
|
public Object getApplyNum(String state, String state2, String unionId, Integer year, String regionalNature, String takePartInLineId) {
|
||||||
Cnd cnd1 = Cnd.NEW();
|
Cnd cnd1 = Cnd.NEW();
|
||||||
Sql sql1 = Sqls.create("""
|
Sql sql1 = Sqls.create("""
|
||||||
SELECT
|
SELECT
|
||||||
@@ -552,16 +520,13 @@ public class TheRapyRecuperationUnionQueryController {
|
|||||||
if (Strings.isNotBlank(state)) {
|
if (Strings.isNotBlank(state)) {
|
||||||
if (state.equals("1")) {
|
if (state.equals("1")) {
|
||||||
cnd1.andEX("line.regionalNature", "=", regionalNature);
|
cnd1.andEX("line.regionalNature", "=", regionalNature);
|
||||||
cnd1.and("enroll.takePartInLineId", "is not", null);
|
// cnd1.and("enroll.takePartInTravelAgencyId", "is", null);
|
||||||
cnd1.and("enroll.takePartInLineId", "!=", "");
|
|
||||||
if (StrUtil.isBlank(state2)) {
|
if (StrUtil.isBlank(state2)) {
|
||||||
cnd1.and(Cnd.exps("enroll.selfUnionId", "=", Vi.getUnionId()).or("enroll.takePartInUnionId", "=", Vi.getUnionId()));
|
// cnd1.and(Cnd.exps("enroll.selfUnionId", "=", Vi.getUnionId()).or("enroll.takePartInUnionId", "=", Vi.getUnionId()));
|
||||||
//cnd1.and(Cnd.exps("enroll.selfUnionId", "=", Vi.getUnionId()));
|
cnd1.and(Cnd.exps("enroll.selfUnionId", "=", Vi.getUnionId()));
|
||||||
}
|
}
|
||||||
} else if (state.equals("2")) {
|
} else if (state.equals("2")) {
|
||||||
cnd1.and("enroll.takePartInTravelAgencyId", "is not", null)
|
cnd1.and("enroll.takePartInTravelAgencyId", "is not", null).and("enroll.selfUnionId", "=", Vi.getUnionId());
|
||||||
.and("enroll.takePartInTravelAgencyId", "!=", "")
|
|
||||||
.and("enroll.selfUnionId", "=", Vi.getUnionId());
|
|
||||||
} else {
|
} else {
|
||||||
cnd1.and("enroll.takePartInBaseManagementId", "is not", null).and("enroll.selfUnionId", "=", Vi.getUnionId());
|
cnd1.and("enroll.takePartInBaseManagementId", "is not", null).and("enroll.selfUnionId", "=", Vi.getUnionId());
|
||||||
}
|
}
|
||||||
@@ -582,8 +547,8 @@ public class TheRapyRecuperationUnionQueryController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
cnd1.and(Cnd.exps("enroll.selfUnionId", "=", Vi.getUnionId()).or("enroll.takePartInUnionId", "=", Vi.getUnionId()));
|
// cnd1.and(Cnd.exps("enroll.selfUnionId", "=", Vi.getUnionId()).or("enroll.takePartInUnionId", "=", Vi.getUnionId()));
|
||||||
//cnd1.and(Cnd.exps("enroll.selfUnionId", "=", Vi.getUnionId()));
|
cnd1.and(Cnd.exps("enroll.selfUnionId", "=", Vi.getUnionId()));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (Strings.isNotBlank(state)) {
|
if (Strings.isNotBlank(state)) {
|
||||||
@@ -593,10 +558,8 @@ public class TheRapyRecuperationUnionQueryController {
|
|||||||
}
|
}
|
||||||
cnd1.andEX("line.regionalNature", "=", regionalNature);
|
cnd1.andEX("line.regionalNature", "=", regionalNature);
|
||||||
cnd1.and("enroll.takePartInLineId", "is not", null);
|
cnd1.and("enroll.takePartInLineId", "is not", null);
|
||||||
cnd1.and("enroll.takePartInLineId", "!=", "");
|
|
||||||
} else if (state.equals("2")) {
|
} else if (state.equals("2")) {
|
||||||
cnd1.and("enroll.takePartInTravelAgencyId", "is not", null);
|
cnd1.and("enroll.takePartInTravelAgencyId", "is not", null);
|
||||||
cnd1.and("enroll.takePartInTravelAgencyId", "!=", "");
|
|
||||||
cnd1.andEX("enroll.selfUnionId", "=", unionId);
|
cnd1.andEX("enroll.selfUnionId", "=", unionId);
|
||||||
} else if (state.equals("3")) {
|
} else if (state.equals("3")) {
|
||||||
cnd1.and("enroll.takePartInBaseManagementId", "is not", null);
|
cnd1.and("enroll.takePartInBaseManagementId", "is not", null);
|
||||||
@@ -605,13 +568,12 @@ public class TheRapyRecuperationUnionQueryController {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (Strings.isNotBlank(unionId)) {
|
if (Strings.isNotBlank(unionId)) {
|
||||||
cnd1.and(Cnd.exps("enroll.selfUnionId", "=", unionId).or("enroll.takePartInUnionId", "=", unionId));
|
// cnd1.and(Cnd.exps("enroll.selfUnionId", "=", unionId).or("enroll.takePartInUnionId", "=", unionId));
|
||||||
//cnd1.and(Cnd.exps("enroll.selfUnionId", "=", unionId));
|
cnd1.and(Cnd.exps("enroll.selfUnionId", "=", unionId));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cnd1.andEX("lineu.lineId", "=", takePartInLineId);
|
cnd1.andEX("line.id", "=", takePartInLineId);
|
||||||
cnd1.andEX("lineu.id", "=", selectId);
|
|
||||||
cnd1.andEX("YEAR(enroll.signingUptime)", "= ", year);
|
cnd1.andEX("YEAR(enroll.signingUptime)", "= ", year);
|
||||||
cnd1.andEX("enroll.isNormal", "= ", true);
|
cnd1.andEX("enroll.isNormal", "= ", true);
|
||||||
cnd1.andEX("enroll.stateId", "= ", TheRapyRecuperationState.PASS);
|
cnd1.andEX("enroll.stateId", "= ", TheRapyRecuperationState.PASS);
|
||||||
@@ -643,15 +605,12 @@ public class TheRapyRecuperationUnionQueryController {
|
|||||||
if (state.equals("1")) {
|
if (state.equals("1")) {
|
||||||
cnd2.andEX("line.regionalNature", "=", regionalNature);
|
cnd2.andEX("line.regionalNature", "=", regionalNature);
|
||||||
cnd2.and("enroll.takePartInLineId", "is not", null);
|
cnd2.and("enroll.takePartInLineId", "is not", null);
|
||||||
cnd2.and("enroll.takePartInLineId", "!=", "");
|
|
||||||
if (StrUtil.isBlank(state2)) {
|
if (StrUtil.isBlank(state2)) {
|
||||||
cnd2.and(Cnd.exps("enroll.selfUnionId", "=", Vi.getUnionId()).or("enroll.takePartInUnionId", "=", Vi.getUnionId()));
|
// cnd2.and(Cnd.exps("enroll.selfUnionId", "=", Vi.getUnionId()).or("enroll.takePartInUnionId", "=", Vi.getUnionId()));
|
||||||
//cnd2.and(Cnd.exps("enroll.selfUnionId", "=", Vi.getUnionId()));
|
cnd2.and(Cnd.exps("enroll.selfUnionId", "=", Vi.getUnionId()));
|
||||||
}
|
}
|
||||||
} else if (state.equals("2")) {
|
} else if (state.equals("2")) {
|
||||||
cnd2.and("enroll.takePartInTravelAgencyId", "is not", null)
|
cnd2.and("enroll.takePartInTravelAgencyId", "is not", null).and("enroll.selfUnionId", "=", Vi.getUnionId());
|
||||||
.and("enroll.takePartInTravelAgencyId", "!=", "")
|
|
||||||
.and("enroll.selfUnionId", "=", Vi.getUnionId());
|
|
||||||
} else {
|
} else {
|
||||||
cnd2.and("enroll.takePartInBaseManagementId", "is not", null).and("enroll.selfUnionId", "=", Vi.getUnionId());
|
cnd2.and("enroll.takePartInBaseManagementId", "is not", null).and("enroll.selfUnionId", "=", Vi.getUnionId());
|
||||||
}
|
}
|
||||||
@@ -671,22 +630,20 @@ public class TheRapyRecuperationUnionQueryController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
cnd2.and(Cnd.exps("enroll.selfUnionId", "=", Vi.getUnionId()).or("enroll.takePartInUnionId", "=", Vi.getUnionId()));
|
// cnd2.and(Cnd.exps("enroll.selfUnionId", "=", Vi.getUnionId()).or("enroll.takePartInUnionId", "=", Vi.getUnionId()));
|
||||||
//cnd2.and(Cnd.exps("enroll.selfUnionId", "=", Vi.getUnionId()));
|
cnd2.and(Cnd.exps("enroll.selfUnionId", "=", Vi.getUnionId()));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (Strings.isNotBlank(state)) {
|
if (Strings.isNotBlank(state)) {
|
||||||
if (state.equals("1")) {
|
if (state.equals("1")) {
|
||||||
if (Strings.isNotBlank(unionId)) {
|
if (Strings.isNotBlank(unionId)) {
|
||||||
cnd2.and(Cnd.exps("enroll.selfUnionId", "=", unionId).or("enroll.takePartInUnionId", "=", unionId));
|
// cnd2.and(Cnd.exps("enroll.selfUnionId", "=", unionId).or("enroll.takePartInUnionId", "=", unionId));
|
||||||
//cnd2.and(Cnd.exps("enroll.selfUnionId", "=", unionId));
|
cnd2.and(Cnd.exps("enroll.selfUnionId", "=", unionId));
|
||||||
}
|
}
|
||||||
cnd2.andEX("line.regionalNature", "=", regionalNature);
|
cnd2.andEX("line.regionalNature", "=", regionalNature);
|
||||||
cnd2.and("enroll.takePartInLineId", "is not", null);
|
cnd2.and("enroll.takePartInLineId", "is not", null);
|
||||||
cnd2.and("enroll.takePartInLineId", "!=", "");
|
|
||||||
} else if (state.equals("2")) {
|
} else if (state.equals("2")) {
|
||||||
cnd2.and("enroll.takePartInTravelAgencyId", "is not", null);
|
cnd2.and("enroll.takePartInTravelAgencyId", "is not", null);
|
||||||
cnd2.and("enroll.takePartInTravelAgencyId", "!=", "");
|
|
||||||
cnd2.andEX("enroll.selfUnionId", "=", unionId);
|
cnd2.andEX("enroll.selfUnionId", "=", unionId);
|
||||||
} else {
|
} else {
|
||||||
cnd2.and("enroll.takePartInBaseManagementId", "is not", null);
|
cnd2.and("enroll.takePartInBaseManagementId", "is not", null);
|
||||||
@@ -695,8 +652,7 @@ public class TheRapyRecuperationUnionQueryController {
|
|||||||
cnd2.andEX("enroll.selfUnionId", "=", unionId);
|
cnd2.andEX("enroll.selfUnionId", "=", unionId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cnd2.andEX("lineu.lineId", "=", takePartInLineId);
|
cnd2.andEX("line.id", "=", takePartInLineId);
|
||||||
cnd2.andEX("lineu.id", "=", selectId);
|
|
||||||
cnd2.andEX("YEAR(enroll.signingUptime)", "=", year);
|
cnd2.andEX("YEAR(enroll.signingUptime)", "=", year);
|
||||||
cnd2.andEX("enroll.isNormal", "=", true);
|
cnd2.andEX("enroll.isNormal", "=", true);
|
||||||
cnd2.andEX("enroll.stateId", "=", TheRapyRecuperationState.PASS);
|
cnd2.andEX("enroll.stateId", "=", TheRapyRecuperationState.PASS);
|
||||||
@@ -731,19 +687,12 @@ public class TheRapyRecuperationUnionQueryController {
|
|||||||
.and("YEAR(signingUptime)", "=", year)
|
.and("YEAR(signingUptime)", "=", year)
|
||||||
.and("stateId", "=", TheRapyRecuperationState.PASS));
|
.and("stateId", "=", TheRapyRecuperationState.PASS));
|
||||||
TheRapyRecuperationTravelAgency travelAgency = baseService.dao().fetch(TheRapyRecuperationTravelAgency.class, Cnd.where("id", "=", id));
|
TheRapyRecuperationTravelAgency travelAgency = baseService.dao().fetch(TheRapyRecuperationTravelAgency.class, Cnd.where("id", "=", id));
|
||||||
|
|
||||||
List<Sys_user> sysUsers = baseService.dao().query(Sys_user.class, Cnd.NEW());
|
|
||||||
Map<String, String> userMap = sysUsers.stream().collect(Collectors.toMap(Sys_user::getLoginname, Sys_user::getSchoolTime));
|
|
||||||
|
|
||||||
if (travelAgency != null) {
|
if (travelAgency != null) {
|
||||||
enrollList.forEach(v -> {
|
enrollList.forEach(v -> {
|
||||||
baseService.dao().fetchLinks(v, "companionList");
|
baseService.dao().fetchLinks(v, "companionList");
|
||||||
});
|
});
|
||||||
List<NutMap> arrayList = new ArrayList<>();
|
List<NutMap> arrayList = new ArrayList<>();
|
||||||
enrollList.forEach(v -> {
|
enrollList.forEach(v -> {
|
||||||
String schoolTime = userMap.getOrDefault(v.getLoginName(), "");
|
|
||||||
String sTime = TherapyRecuperationCommon.getRemarkBySchoolTime(schoolTime);
|
|
||||||
|
|
||||||
arrayList.add(new NutMap() {{
|
arrayList.add(new NutMap() {{
|
||||||
addv("userName", v.getUserName());
|
addv("userName", v.getUserName());
|
||||||
addv("loginName", v.getLoginName());
|
addv("loginName", v.getLoginName());
|
||||||
@@ -753,7 +702,6 @@ public class TheRapyRecuperationUnionQueryController {
|
|||||||
addv("idCard", v.getIdCard());
|
addv("idCard", v.getIdCard());
|
||||||
addv("relation", "本人");
|
addv("relation", "本人");
|
||||||
addv("bz", v.getUserName());
|
addv("bz", v.getUserName());
|
||||||
addv("remark", sTime);
|
|
||||||
}});
|
}});
|
||||||
v.getCompanionList().forEach(c -> {
|
v.getCompanionList().forEach(c -> {
|
||||||
arrayList.add(new NutMap() {{
|
arrayList.add(new NutMap() {{
|
||||||
@@ -778,7 +726,7 @@ public class TheRapyRecuperationUnionQueryController {
|
|||||||
exportEntities.add(new ExcelExportEntity("身份证号", "idCard", 60));
|
exportEntities.add(new ExcelExportEntity("身份证号", "idCard", 60));
|
||||||
exportEntities.add(new ExcelExportEntity("与本人关系", "relation", 60));
|
exportEntities.add(new ExcelExportEntity("与本人关系", "relation", 60));
|
||||||
exportEntities.add(new ExcelExportEntity("备注", "bz", 20));
|
exportEntities.add(new ExcelExportEntity("备注", "bz", 20));
|
||||||
exportEntities.add(new ExcelExportEntity("备注2", "remark", 30));
|
|
||||||
|
|
||||||
File xls = new File("C:\\疗休养报名信息表.xls");
|
File xls = new File("C:\\疗休养报名信息表.xls");
|
||||||
FileOutputStream fileOutputStream = null;
|
FileOutputStream fileOutputStream = null;
|
||||||
@@ -798,6 +746,7 @@ public class TheRapyRecuperationUnionQueryController {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@At
|
@At
|
||||||
@ViReturn
|
@ViReturn
|
||||||
public Object doAttend(@Param("data") String multipleSelection) {
|
public Object doAttend(@Param("data") String multipleSelection) {
|
||||||
@@ -877,7 +826,7 @@ public class TheRapyRecuperationUnionQueryController {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
map.put("maplist", nutMaps);
|
map.put("maplist", nutMaps);
|
||||||
map.put("unionName", ((Sys_union) io.v.nutz.web.commons.utils.ShiroUtil.getPrincipalProperty("union")).getUnionname());
|
map.put("unionName", ((Sys_union) ShiroUtil.getPrincipalProperty("union")).getUnionname());
|
||||||
try {
|
try {
|
||||||
response.setContentType("application/octet-stream");
|
response.setContentType("application/octet-stream");
|
||||||
ViTool.excelResponse(response, "教职工疗休养组团时间路线申报表.xlsx");
|
ViTool.excelResponse(response, "教职工疗休养组团时间路线申报表.xlsx");
|
||||||
|
|||||||
+26
-422
@@ -5,21 +5,15 @@ import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
|||||||
import cn.afterturn.easypoi.excel.ExcelImportUtil;
|
import cn.afterturn.easypoi.excel.ExcelImportUtil;
|
||||||
import cn.afterturn.easypoi.excel.entity.ExportParams;
|
import cn.afterturn.easypoi.excel.entity.ExportParams;
|
||||||
import cn.afterturn.easypoi.excel.entity.ImportParams;
|
import cn.afterturn.easypoi.excel.entity.ImportParams;
|
||||||
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
|
|
||||||
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
|
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.io.FileUtil;
|
import cn.hutool.core.io.FileUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.json.JSONArray;
|
|
||||||
import cn.hutool.json.JSONUtil;
|
|
||||||
import cn.wizzer.framework.base.Result;
|
import cn.wizzer.framework.base.Result;
|
||||||
import io.v.nutz.base.annontation.ViReturn;
|
import io.v.nutz.base.annontation.ViReturn;
|
||||||
import io.v.nutz.base.query.PageForm;
|
|
||||||
import io.v.nutz.base.service.BaseService;
|
import io.v.nutz.base.service.BaseService;
|
||||||
import io.v.nutz.base.utils.Vi;
|
import io.v.nutz.base.utils.Vi;
|
||||||
import io.v.nutz.base.utils.ViTool;
|
import io.v.nutz.base.query.PageForm;
|
||||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.common.TherapyRecuperationCommon;
|
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationState;
|
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationState;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.mode.TheRapyRecuperationEnrollExcelMode;
|
import io.v.nutz.zhgh.therapyRecuperation.mode.TheRapyRecuperationEnrollExcelMode;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.*;
|
import io.v.nutz.zhgh.therapyRecuperation.model.*;
|
||||||
@@ -28,7 +22,6 @@ import org.apache.poi.ss.usermodel.Workbook;
|
|||||||
import org.apache.shiro.authz.annotation.RequiresAuthentication;
|
import org.apache.shiro.authz.annotation.RequiresAuthentication;
|
||||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||||
import org.nutz.dao.Chain;
|
|
||||||
import org.nutz.dao.Cnd;
|
import org.nutz.dao.Cnd;
|
||||||
import org.nutz.dao.Sqls;
|
import org.nutz.dao.Sqls;
|
||||||
import org.nutz.dao.sql.Sql;
|
import org.nutz.dao.sql.Sql;
|
||||||
@@ -42,23 +35,17 @@ 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;
|
||||||
import org.nutz.mvc.annotation.Ok;
|
import org.nutz.mvc.annotation.Ok;
|
||||||
import org.nutz.mvc.annotation.Param;
|
|
||||||
import org.nutz.mvc.upload.TempFile;
|
import org.nutz.mvc.upload.TempFile;
|
||||||
import org.nutz.mvc.upload.UploadAdaptor;
|
import org.nutz.mvc.upload.UploadAdaptor;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.BufferedOutputStream;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URLEncoder;
|
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.zip.ZipEntry;
|
|
||||||
import java.util.zip.ZipOutputStream;
|
|
||||||
|
|
||||||
@IocBean
|
@IocBean
|
||||||
@At("/platform/theRapyRecuperation/user/query")
|
@At("/platform/theRapyRecuperation/user/query")
|
||||||
@@ -84,7 +71,7 @@ public class TheRapyRecuperationUserQueryController {
|
|||||||
public Object pageData(String regionalNature, Integer state, PageForm pageForm,
|
public Object pageData(String regionalNature, Integer state, PageForm pageForm,
|
||||||
Integer startYear, Integer endYear, String unionId,
|
Integer startYear, Integer endYear, String unionId,
|
||||||
String unitId, String takePartInLineId, String agencyId, String lotId,
|
String unitId, String takePartInLineId, String agencyId, String lotId,
|
||||||
String takePartInBaseManagementId, String signUpMode) {
|
String takePartInBaseManagementId,String signUpMode) {
|
||||||
Cnd cnd = Cnd.NEW();
|
Cnd cnd = Cnd.NEW();
|
||||||
|
|
||||||
if (Strings.isNotBlank(pageForm.getSearchKeyword()) && Strings.isNotBlank(pageForm.getSearchName())) {
|
if (Strings.isNotBlank(pageForm.getSearchKeyword()) && Strings.isNotBlank(pageForm.getSearchName())) {
|
||||||
@@ -96,17 +83,14 @@ public class TheRapyRecuperationUserQueryController {
|
|||||||
sql = Sqls.create("""
|
sql = Sqls.create("""
|
||||||
SELECT
|
SELECT
|
||||||
enroll.*,
|
enroll.*,
|
||||||
IF(enroll.isReimbursement = 1,'已报销','未报销') AS reimbursementStatus,
|
|
||||||
lxs.travelAgencyName,
|
lxs.travelAgencyName,
|
||||||
( SELECT COUNT( 1 ) FROM the_rapy_recuperation_enroll_companion WHERE trreId = enroll.id ) isFamily
|
( SELECT COUNT( 1 ) FROM the_rapy_recuperation_enroll_companion WHERE trreId = enroll.id AND relation = '亲属' ) isFamily
|
||||||
FROM
|
FROM
|
||||||
`the_rapy_recuperation_enroll` enroll
|
`the_rapy_recuperation_enroll` enroll
|
||||||
LEFT JOIN the_rapy_recuperation_travel_agency lxs ON lxs.id = enroll.takePartInTravelAgencyId
|
LEFT JOIN the_rapy_recuperation_travel_agency lxs ON lxs.id = enroll.takePartInTravelAgencyId
|
||||||
$condition
|
$condition
|
||||||
""");
|
""");
|
||||||
if (!ShiroUtil.hasAnyRoles("sysadmin, A06")) {
|
cnd.andEX("enroll.selfUnionId", "=", Vi.getUnionId());
|
||||||
cnd.andEX("enroll.selfUnionId", "=", Vi.getUnionId());
|
|
||||||
}
|
|
||||||
cnd.andEX("lxs.`year`", ">=", startYear);
|
cnd.andEX("lxs.`year`", ">=", startYear);
|
||||||
cnd.andEX("lxs.`year`", "<=", endYear);
|
cnd.andEX("lxs.`year`", "<=", endYear);
|
||||||
cnd.andEX("enroll.takePartInTravelAgencyId", "=", agencyId);
|
cnd.andEX("enroll.takePartInTravelAgencyId", "=", agencyId);
|
||||||
@@ -119,11 +103,10 @@ public class TheRapyRecuperationUserQueryController {
|
|||||||
line.lineName,
|
line.lineName,
|
||||||
ma.baseName,
|
ma.baseName,
|
||||||
enroll.*,
|
enroll.*,
|
||||||
IF(enroll.isReimbursement = 1,'已报销','未报销') AS reimbursementStatus,
|
|
||||||
lineu.lineId,
|
lineu.lineId,
|
||||||
lineu.playStartTime,
|
lineu.playStartTime,
|
||||||
lineu.playEndTime,
|
lineu.playEndTime,
|
||||||
( SELECT COUNT( 1 ) FROM the_rapy_recuperation_enroll_companion WHERE trreId = enroll.id ) isFamily
|
( SELECT COUNT( 1 ) FROM the_rapy_recuperation_enroll_companion WHERE trreId = enroll.id AND relation = '亲属' ) isFamily
|
||||||
FROM
|
FROM
|
||||||
`the_rapy_recuperation_enroll` enroll
|
`the_rapy_recuperation_enroll` enroll
|
||||||
LEFT JOIN the_rapy_recuperation_line_union_select lineu ON lineu.id=enroll.takePartInLineId
|
LEFT JOIN the_rapy_recuperation_line_union_select lineu ON lineu.id=enroll.takePartInLineId
|
||||||
@@ -138,7 +121,7 @@ public class TheRapyRecuperationUserQueryController {
|
|||||||
cnd.andEX("enroll.selfUnitId", "=", unitId);
|
cnd.andEX("enroll.selfUnitId", "=", unitId);
|
||||||
cnd.andEX("line.id", "=", takePartInLineId);
|
cnd.andEX("line.id", "=", takePartInLineId);
|
||||||
cnd.andEX("line.regionalNature", "=", regionalNature);
|
cnd.andEX("line.regionalNature", "=", regionalNature);
|
||||||
cnd.andEX("lineu.signUpMode", "=", signUpMode);
|
cnd.andEX("lineu.signUpMode","=",signUpMode);
|
||||||
if (state == 3) {
|
if (state == 3) {
|
||||||
sql.setVar("lotSql", "(select lotName from the_rapy_recuperation_lot where id = ma.lotId) as lotName");
|
sql.setVar("lotSql", "(select lotName from the_rapy_recuperation_lot where id = ma.lotId) as lotName");
|
||||||
cnd.and("enroll.takePartInBaseManagementId", "is not", null);
|
cnd.and("enroll.takePartInBaseManagementId", "is not", null);
|
||||||
@@ -146,7 +129,6 @@ public class TheRapyRecuperationUserQueryController {
|
|||||||
} else {
|
} else {
|
||||||
sql.setVar("lotSql", "(select lotName from the_rapy_recuperation_lot where id = line.lotId) as lotName");
|
sql.setVar("lotSql", "(select lotName from the_rapy_recuperation_lot where id = line.lotId) as lotName");
|
||||||
cnd.and("enroll.takePartInLineId", "is not", null);
|
cnd.and("enroll.takePartInLineId", "is not", null);
|
||||||
cnd.and("enroll.takePartInLineId", "!=", "");
|
|
||||||
}
|
}
|
||||||
if (StrUtil.isNotBlank(lotId)) {
|
if (StrUtil.isNotBlank(lotId)) {
|
||||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||||
@@ -158,9 +140,9 @@ public class TheRapyRecuperationUserQueryController {
|
|||||||
if (StrUtil.isNotBlank(unionId)) {
|
if (StrUtil.isNotBlank(unionId)) {
|
||||||
cnd.and("enroll.selfUnionId", "=", unionId);
|
cnd.and("enroll.selfUnionId", "=", unionId);
|
||||||
}
|
}
|
||||||
|
cnd.and("enroll.stateId", "=", TheRapyRecuperationState.PASS);
|
||||||
}
|
}
|
||||||
cnd.and("enroll.isNormal", "=", true);
|
cnd.and("enroll.isNormal", "=", true);
|
||||||
cnd.and("enroll.stateId", "=", TheRapyRecuperationState.PASS);
|
|
||||||
cnd.desc("enroll.unionName");
|
cnd.desc("enroll.unionName");
|
||||||
sql.setCondition(cnd);
|
sql.setCondition(cnd);
|
||||||
return baseService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
return baseService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||||
@@ -177,23 +159,19 @@ public class TheRapyRecuperationUserQueryController {
|
|||||||
}
|
}
|
||||||
cnd.and("isNormal", "=", true);
|
cnd.and("isNormal", "=", true);
|
||||||
cnd.and("takePartInLineId", "is not", null);
|
cnd.and("takePartInLineId", "is not", null);
|
||||||
cnd.and("takePartInLineId", "!=", "");
|
|
||||||
cnd.and("stateId", "=", TheRapyRecuperationState.PASS);
|
cnd.and("stateId", "=", TheRapyRecuperationState.PASS);
|
||||||
cnd.andEX("(select signUpMode from the_rapy_recuperation_line_union_select where id = takePartInLineId)", "=", signUpMode);
|
cnd.andEX("(select signUpMode from the_rapy_recuperation_line_union_select where id = takePartInLineId)", "=", signUpMode);
|
||||||
int count = baseService.dao().count(TheRapyRecuperationEnroll.class, cnd);
|
int count = baseService.dao().count(TheRapyRecuperationEnroll.class, cnd);
|
||||||
int count1 = baseService.dao().count(TheRapyRecuperationEnroll.class, Cnd.where("takePartInTravelAgencyId", "is not", null)
|
int count1 = baseService.dao().count(TheRapyRecuperationEnroll.class, Cnd.where("takePartInTravelAgencyId", "is not", null)
|
||||||
.and("takePartInTravelAgencyId", "!=", "")
|
|
||||||
.andEX("selfUnionId", "=", unionId)
|
.andEX("selfUnionId", "=", unionId)
|
||||||
.andEX("YEAR(signingUptime)", ">=", startYear)
|
.andEX("YEAR(signingUptime)", ">=", startYear)
|
||||||
.andEX("YEAR(signingUptime)", "<=", endYear)
|
.andEX("YEAR(signingUptime)", "<=", endYear)
|
||||||
.andEX("stateId", "=", TheRapyRecuperationState.PASS)
|
|
||||||
.andEX("isNormal", "=", true)
|
.andEX("isNormal", "=", true)
|
||||||
.andEX("(select signUpMode from the_rapy_recuperation_line_union_select where id = takePartInLineId)", "=", signUpMode));
|
.andEX("(select signUpMode from the_rapy_recuperation_line_union_select where id = takePartInLineId)", "=", signUpMode));
|
||||||
int count2 = baseService.dao().count(TheRapyRecuperationEnroll.class, Cnd.where("takePartInBaseManagementId", "is not", null)
|
int count2 = baseService.dao().count(TheRapyRecuperationEnroll.class, Cnd.where("takePartInBaseManagementId", "is not", null)
|
||||||
.andEX("selfUnionId", "=", unionId)
|
.andEX("selfUnionId", "=", unionId)
|
||||||
.andEX("YEAR(signingUptime)", ">=", startYear)
|
.andEX("YEAR(signingUptime)", ">=", startYear)
|
||||||
.andEX("YEAR(signingUptime)", "<=", endYear)
|
.andEX("YEAR(signingUptime)", "<=", endYear)
|
||||||
.andEX("stateId", "=", TheRapyRecuperationState.PASS)
|
|
||||||
.andEX("isNormal", "=", true)
|
.andEX("isNormal", "=", true)
|
||||||
.andEX("(select signUpMode from the_rapy_recuperation_line_union_select where id = takePartInLineId)", "=", signUpMode));
|
.andEX("(select signUpMode from the_rapy_recuperation_line_union_select where id = takePartInLineId)", "=", signUpMode));
|
||||||
return Map.of("xlCount", count, "lxsCount", count1, "jdCount", count2);
|
return Map.of("xlCount", count, "lxsCount", count1, "jdCount", count2);
|
||||||
@@ -292,9 +270,10 @@ public class TheRapyRecuperationUserQueryController {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@At
|
@At
|
||||||
@ViReturn
|
@ViReturn
|
||||||
public Object getUnionSelectLine(Integer startYear, Integer endYear, Integer signUpMode, String regionalNature, Boolean flag, String disPlayUnionSelectId) {
|
public Object getUnionSelectLine(Integer year,Integer signUpMode){
|
||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
SELECT
|
SELECT
|
||||||
rlus.id,
|
rlus.id,
|
||||||
@@ -305,7 +284,7 @@ public class TheRapyRecuperationUserQueryController {
|
|||||||
DATE_FORMAT( rlus.playEndTime, '%Y-%m-%d' ) AS playEndTime,
|
DATE_FORMAT( rlus.playEndTime, '%Y-%m-%d' ) AS playEndTime,
|
||||||
rl.lineName,
|
rl.lineName,
|
||||||
rl.regionalNature,
|
rl.regionalNature,
|
||||||
if(rlus.signUpMode=2,'校工会','分工会') AS signUpMode,
|
if(rlus.signUpMode=1,'分工会','校工会') AS signUpMode,
|
||||||
lot.lotName
|
lot.lotName
|
||||||
FROM
|
FROM
|
||||||
`the_rapy_recuperation_line_union_select` rlus
|
`the_rapy_recuperation_line_union_select` rlus
|
||||||
@@ -314,388 +293,30 @@ public class TheRapyRecuperationUserQueryController {
|
|||||||
$condition
|
$condition
|
||||||
""");
|
""");
|
||||||
Cnd cnd = Cnd.NEW();
|
Cnd cnd = Cnd.NEW();
|
||||||
if (flag == null || !flag) {
|
cnd.and(Cnd.exps("rlus.isOpen","=",1).or("rlus.unionId","=",Vi.getUnionId()));
|
||||||
SqlExpressionGroup group = new SqlExpressionGroup();
|
cnd.and("YEAR(rlus.selectTime)","=",DateUtil.thisYear());
|
||||||
if (ShiroUtil.hasAnyRoles("sysadmin,A06")) {
|
// cnd.and("rlus.signUpMode","=",signUpMode);
|
||||||
group.and("rlus.isOpen", "=", 1);
|
|
||||||
//cnd.and(Cnd.exps("rlus.isOpen", "=", 1));
|
|
||||||
} else {
|
|
||||||
group.or("rlus.isOpen", "=", 1).or("rlus.unionId", "=", Vi.getUnionId());
|
|
||||||
//cnd.and(Cnd.exps("rlus.isOpen", "=", 1).or();
|
|
||||||
}
|
|
||||||
if(StrUtil.isNotBlank(disPlayUnionSelectId)) {
|
|
||||||
group.or("rlus.id", "=", disPlayUnionSelectId);
|
|
||||||
}
|
|
||||||
cnd.and(group);
|
|
||||||
} else {
|
|
||||||
cnd.andEX("YEAR(rlus.selectTime)", ">=", startYear);
|
|
||||||
cnd.andEX("YEAR(rlus.selectTime)", "<=", endYear);
|
|
||||||
if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) {
|
|
||||||
cnd.and(Cnd.exps("rlus.selectUserId", "=", ShiroUtil.getUserId()).or("rlus.unionId", "=", Vi.getUnionId()));
|
|
||||||
}
|
|
||||||
cnd.andEX("rl.regionalNature", "=", regionalNature);
|
|
||||||
cnd.groupBy("rlus.lineId");
|
|
||||||
}
|
|
||||||
cnd.and("YEAR(rlus.selectTime)", "in", startYear != null ? Lang.array(startYear) : Lang.array(DateUtil.thisYear()));
|
|
||||||
cnd.andEX("rlus.signUpMode", "=", signUpMode);
|
|
||||||
cnd.desc("lot.lotValue");
|
cnd.desc("lot.lotValue");
|
||||||
cnd.desc("rl.lineName");
|
cnd.desc("rl.lineName");
|
||||||
sql.setCondition(cnd);
|
sql.setCondition(cnd);
|
||||||
return baseService.listMap(sql);
|
return baseService.listMap(sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
@At
|
|
||||||
@Ok("void")
|
|
||||||
@ViReturn
|
|
||||||
@RequiresAuthentication
|
|
||||||
public void doExportExcel(@Param(value = "regionalNature", required = false) String regionalNature,
|
|
||||||
@Param(value = "state", required = false) Integer state,
|
|
||||||
@Param(value = "searchName", required = false) String searchName,
|
|
||||||
@Param(value = "searchKeyword", required = false) String searchKeyword,
|
|
||||||
@Param(value = "startYear", required = false) Integer startYear,
|
|
||||||
@Param(value = "endYear", required = false) Integer endYear,
|
|
||||||
@Param(value = "unionId", required = false) String unionId,
|
|
||||||
@Param(value = "unitId", required = false) String unitId,
|
|
||||||
@Param(value = "takePartInLineId", required = false) String takePartInLineId,
|
|
||||||
@Param(value = "agencyId", required = false) String agencyId,
|
|
||||||
@Param(value = "lotId", required = false) String lotId,
|
|
||||||
@Param(value = "takePartInBaseManagementId", required = false) String takePartInBaseManagementId,
|
|
||||||
@Param(value = "signUpMode", required = false) String signUpMode,
|
|
||||||
@Param(value = "types", required = false) String[] types,
|
|
||||||
@Param(value = "satisfyPeople", required = false) Boolean satisfyPeople,
|
|
||||||
HttpServletResponse response) throws IOException {
|
|
||||||
|
|
||||||
Cnd commonCnd = Cnd.NEW();
|
|
||||||
if (Strings.isNotBlank(searchName) && Strings.isNotBlank(searchKeyword)) {
|
|
||||||
commonCnd.and(Cnd.likeEX(searchName, searchKeyword));
|
|
||||||
}
|
|
||||||
if (!ShiroUtil.hasAnyRoles("sysadmin, A06")) {
|
|
||||||
commonCnd.and(Cnd.exps("enroll.takePartInUnionId", "=", Vi.getUnionId()).or("enroll.selfUnionId", "=", Vi.getUnionId()));
|
|
||||||
}
|
|
||||||
commonCnd.and("enroll.isNormal", "=", true);
|
|
||||||
commonCnd.and("enroll.stateId", "=", TheRapyRecuperationState.PASS);
|
|
||||||
|
|
||||||
//线路的查询
|
|
||||||
Sql lineSql = Sqls.create("""
|
|
||||||
SELECT
|
|
||||||
line.regionalNature,
|
|
||||||
lxs.travelAgencyName,
|
|
||||||
line.lineName,
|
|
||||||
enroll.*,
|
|
||||||
date_format( enroll.signingUptime, '%Y-%m-%d %H:%i:%s' ) signingUptimeFormat,
|
|
||||||
date_format( lineu.playStartTime, '%Y-%m-%d' ) playStartTime,
|
|
||||||
lineu.lineId,
|
|
||||||
( SELECT COUNT( 1 ) FROM the_rapy_recuperation_enroll_companion WHERE trreId = enroll.id) familyCount,
|
|
||||||
u.schoolTime
|
|
||||||
FROM
|
|
||||||
`the_rapy_recuperation_enroll` enroll
|
|
||||||
LEFT JOIN `user` u on enroll.loginName = u.loginname
|
|
||||||
LEFT JOIN the_rapy_recuperation_line_union_select lineu ON lineu.id=enroll.takePartInLineId
|
|
||||||
LEFT JOIN the_rapy_recuperation_line line ON line.id = lineu.lineId
|
|
||||||
LEFT JOIN the_rapy_recuperation_travel_agency lxs ON lxs.id = lineu.travelAgencyId
|
|
||||||
$condition
|
|
||||||
""");
|
|
||||||
Cnd lineCnd = commonCnd.clone();
|
|
||||||
lineCnd.andEX("YEAR(enroll.signingUptime)", ">=", startYear);
|
|
||||||
lineCnd.andEX("YEAR(enroll.signingUptime)", "<=", endYear);
|
|
||||||
lineCnd.andEX("enroll.selfUnitId", "=", unitId);
|
|
||||||
lineCnd.andEX("line.id", "=", takePartInLineId);
|
|
||||||
lineCnd.andEX("line.regionalNature", "=", regionalNature);
|
|
||||||
lineCnd.andEX("lineu.signUpMode", "=", signUpMode);
|
|
||||||
lineCnd.andEX("enroll.selfUnionId", "=", unionId);
|
|
||||||
lineCnd.and("enroll.takePartInLineId", "is not", null);
|
|
||||||
lineCnd.and("enroll.takePartInLineId", "!=", "");
|
|
||||||
if (StrUtil.isNotBlank(lotId)) {
|
|
||||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
|
||||||
seg.or("line.lotId", "=", lotId);
|
|
||||||
seg.or("ma.lotId", "=", lotId);
|
|
||||||
lineCnd.and(seg);
|
|
||||||
}
|
|
||||||
lineCnd.asc("lineName").asc("playStartTime").asc("unionName");
|
|
||||||
lineSql.setCondition(lineCnd);
|
|
||||||
List<NutMap> lineEnroll = baseService.listMap(lineSql);
|
|
||||||
lineEnroll.forEach(item -> {
|
|
||||||
String remark = TherapyRecuperationCommon.getRemarkBySchoolTime(item.getString("schoolTime"));
|
|
||||||
item.put("remark", remark);
|
|
||||||
});
|
|
||||||
|
|
||||||
//自由组团的查询
|
|
||||||
Sql travelSql = Sqls.create("""
|
|
||||||
SELECT
|
|
||||||
enroll.*,
|
|
||||||
lxs.travelAgencyName,
|
|
||||||
u.schoolTime
|
|
||||||
FROM
|
|
||||||
`the_rapy_recuperation_enroll` enroll
|
|
||||||
LEFT JOIN `user` u on enroll.loginName = u.loginname
|
|
||||||
LEFT JOIN the_rapy_recuperation_travel_agency lxs ON lxs.id = enroll.takePartInTravelAgencyId
|
|
||||||
$condition
|
|
||||||
""");
|
|
||||||
Cnd travelCnd = commonCnd.clone();
|
|
||||||
travelCnd.andEX("enroll.selfUnionId", "=", unionId);
|
|
||||||
travelCnd.andEX("lxs.`year`", ">=", startYear);
|
|
||||||
travelCnd.andEX("lxs.`year`", "<=", endYear);
|
|
||||||
travelCnd.andEX("enroll.takePartInTravelAgencyId", "=", agencyId);
|
|
||||||
travelCnd.and("enroll.takePartInTravelAgencyId", "is not", null);
|
|
||||||
travelCnd.and("enroll.takePartInTravelAgencyId", "!=", "");
|
|
||||||
travelCnd.asc("travelAgencyName").desc("enroll.unionName");
|
|
||||||
travelSql.setCondition(travelCnd);
|
|
||||||
List<NutMap> travelEnroll = baseService.listMap(travelSql);
|
|
||||||
travelEnroll.forEach(item -> {
|
|
||||||
String remark = TherapyRecuperationCommon.getRemarkBySchoolTime(item.getString("schoolTime"));
|
|
||||||
item.put("remark", remark);
|
|
||||||
});
|
|
||||||
|
|
||||||
//公共的导出表头
|
|
||||||
ArrayList<ExcelExportEntity> commonEntities = new ArrayList<>();
|
|
||||||
commonEntities.add(new ExcelExportEntity("姓名", "userName", 20));
|
|
||||||
commonEntities.add(new ExcelExportEntity("工号", "loginName", 20));
|
|
||||||
commonEntities.add(new ExcelExportEntity("性别", "sex", 10));
|
|
||||||
commonEntities.add(new ExcelExportEntity("所属单位", "unitName", 20));
|
|
||||||
commonEntities.add(new ExcelExportEntity("所属工会", "unionName", 20));
|
|
||||||
commonEntities.add(new ExcelExportEntity("身份证号", "idCard", 30));
|
|
||||||
commonEntities.add(new ExcelExportEntity("手机号", "mobile", 15));
|
|
||||||
ExcelExportEntity entity = new ExcelExportEntity("报名时间", "signingUptime", 15);
|
|
||||||
entity.setFormat("yyyy-MM-dd HH:mm:ss");
|
|
||||||
commonEntities.add(entity);
|
|
||||||
|
|
||||||
//线路表头
|
|
||||||
ArrayList<ExcelExportEntity> lineEntities = new ArrayList<>(commonEntities);
|
|
||||||
lineEntities.add(new ExcelExportEntity("出行时间", "playStartTime", 20));
|
|
||||||
lineEntities.add(new ExcelExportEntity("线路名称", "lineName", 20));
|
|
||||||
lineEntities.add(new ExcelExportEntity("旅行社", "travelAgencyName", 20));
|
|
||||||
lineEntities.add(new ExcelExportEntity("家属人数", "familyCount", 20));
|
|
||||||
|
|
||||||
//自由组团表头
|
|
||||||
ArrayList<ExcelExportEntity> travelEntities = new ArrayList<>(commonEntities);
|
|
||||||
travelEntities.add(new ExcelExportEntity("旅行社", "travelAgencyName", 20));
|
|
||||||
|
|
||||||
commonEntities.add(new ExcelExportEntity("备注", "remark", 30));
|
|
||||||
|
|
||||||
try {
|
|
||||||
ViTool.excelResponse(response, "人员名单.xlsx");
|
|
||||||
if(Arrays.asList(types).contains("line")) {
|
|
||||||
ExportParams exportParams = new ExportParams();
|
|
||||||
exportParams.setType(ExcelType.XSSF);
|
|
||||||
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, lineEntities, lineEnroll);
|
|
||||||
workbook.write(response.getOutputStream());
|
|
||||||
}
|
|
||||||
if(Arrays.asList(types).contains("travel")) {
|
|
||||||
ExportParams exportParams = new ExportParams();
|
|
||||||
exportParams.setType(ExcelType.XSSF);
|
|
||||||
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, travelEntities, travelEnroll);
|
|
||||||
workbook.write(response.getOutputStream());
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
log.error(e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@At
|
@At
|
||||||
@Ok("void")
|
@Ok("void")
|
||||||
@ViReturn
|
@ViReturn
|
||||||
@RequiresAuthentication
|
@RequiresAuthentication
|
||||||
public void doExport(@Param(value = "regionalNature", required = false) String regionalNature,
|
public void doExport(String regionalNature, Integer state,String searchName,String searchKeyword,
|
||||||
@Param(value = "state", required = false) Integer state,
|
|
||||||
@Param(value = "searchName", required = false) String searchName,
|
|
||||||
@Param(value = "searchKeyword", required = false) String searchKeyword,
|
|
||||||
@Param(value = "startYear", required = false) Integer startYear,
|
|
||||||
@Param(value = "endYear", required = false) Integer endYear,
|
|
||||||
@Param(value = "unionId", required = false) String unionId,
|
|
||||||
@Param(value = "unitId", required = false) String unitId,
|
|
||||||
@Param(value = "takePartInLineId", required = false) String takePartInLineId,
|
|
||||||
@Param(value = "agencyId", required = false) String agencyId,
|
|
||||||
@Param(value = "lotId", required = false) String lotId,
|
|
||||||
@Param(value = "takePartInBaseManagementId", required = false) String takePartInBaseManagementId,
|
|
||||||
@Param(value = "signUpMode", required = false) String signUpMode,
|
|
||||||
@Param(value = "types", required = false) String[] types,
|
|
||||||
@Param(value = "satisfyPeople", required = false) Boolean satisfyPeople,
|
|
||||||
HttpServletResponse response) throws IOException {
|
|
||||||
|
|
||||||
response.setContentType("application/octet-stream");
|
|
||||||
response.setHeader("content-disposition", "attachment;filename="
|
|
||||||
+ URLEncoder.encode("疗休养报名人员名单.zip", StandardCharsets.UTF_8));
|
|
||||||
|
|
||||||
Cnd commonCnd = Cnd.NEW();
|
|
||||||
if (Strings.isNotBlank(searchName) && Strings.isNotBlank(searchKeyword)) {
|
|
||||||
commonCnd.and(Cnd.likeEX(searchName, searchKeyword));
|
|
||||||
}
|
|
||||||
if (!ShiroUtil.hasAnyRoles("sysadmin, A06")) {
|
|
||||||
commonCnd.and(Cnd.exps("enroll.takePartInUnionId", "=", Vi.getUnionId()).or("enroll.selfUnionId", "=", Vi.getUnionId()));
|
|
||||||
}
|
|
||||||
commonCnd.and("enroll.isNormal", "=", true);
|
|
||||||
commonCnd.and("enroll.stateId", "=", TheRapyRecuperationState.PASS);
|
|
||||||
|
|
||||||
//线路的查询
|
|
||||||
Sql lineSql = Sqls.create("""
|
|
||||||
SELECT
|
|
||||||
line.regionalNature,
|
|
||||||
lxs.travelAgencyName,
|
|
||||||
line.lineName,
|
|
||||||
enroll.*,
|
|
||||||
date_format( enroll.signingUptime, '%Y-%m-%d %H:%i:%s' ) signingUptimeFormat,
|
|
||||||
date_format( lineu.playStartTime, '%Y-%m-%d' ) playStartTime,
|
|
||||||
lineu.lineId,
|
|
||||||
( SELECT COUNT( 1 ) FROM the_rapy_recuperation_enroll_companion WHERE trreId = enroll.id) familyCount,
|
|
||||||
u.schoolTime
|
|
||||||
FROM
|
|
||||||
`the_rapy_recuperation_enroll` enroll
|
|
||||||
LEFT JOIN `user` u on enroll.loginName = u.loginname
|
|
||||||
LEFT JOIN the_rapy_recuperation_line_union_select lineu ON lineu.id=enroll.takePartInLineId
|
|
||||||
LEFT JOIN the_rapy_recuperation_line line ON line.id = lineu.lineId
|
|
||||||
LEFT JOIN the_rapy_recuperation_travel_agency lxs ON lxs.id = lineu.travelAgencyId
|
|
||||||
$condition
|
|
||||||
""");
|
|
||||||
Cnd lineCnd = commonCnd.clone();
|
|
||||||
lineCnd.andEX("YEAR(enroll.signingUptime)", ">=", startYear);
|
|
||||||
lineCnd.andEX("YEAR(enroll.signingUptime)", "<=", endYear);
|
|
||||||
lineCnd.andEX("enroll.selfUnitId", "=", unitId);
|
|
||||||
lineCnd.andEX("line.id", "=", takePartInLineId);
|
|
||||||
lineCnd.andEX("line.regionalNature", "=", regionalNature);
|
|
||||||
lineCnd.andEX("lineu.signUpMode", "=", signUpMode);
|
|
||||||
lineCnd.andEX("enroll.selfUnionId", "=", unionId);
|
|
||||||
lineCnd.and("enroll.takePartInLineId", "is not", null);
|
|
||||||
lineCnd.and("enroll.takePartInLineId", "!=", "");
|
|
||||||
if (StrUtil.isNotBlank(lotId)) {
|
|
||||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
|
||||||
seg.or("line.lotId", "=", lotId);
|
|
||||||
seg.or("ma.lotId", "=", lotId);
|
|
||||||
lineCnd.and(seg);
|
|
||||||
}
|
|
||||||
lineCnd.asc("playStartTime").asc("unionName");
|
|
||||||
lineSql.setCondition(lineCnd);
|
|
||||||
List<NutMap> lineEnroll = baseService.listMap(lineSql);
|
|
||||||
|
|
||||||
if (satisfyPeople) {
|
|
||||||
//按照选择线路id分组,便于判断是否成团
|
|
||||||
Map<String, List<NutMap>> enrollGroup = lineEnroll.stream().collect(Collectors.groupingBy(o -> o.getString("takePartInLineId")));
|
|
||||||
|
|
||||||
List<TheRapyRecuperationLineUnionSelect> unionSelects =
|
|
||||||
baseService.dao().query(TheRapyRecuperationLineUnionSelect.class, Cnd.where("enable", "=", true));
|
|
||||||
Map<String, TheRapyRecuperationLineUnionSelect> selectMap = unionSelects.stream().collect(Collectors.toMap(TheRapyRecuperationLineUnionSelect::getId, o -> o));
|
|
||||||
|
|
||||||
lineEnroll = enrollGroup.entrySet().stream()
|
|
||||||
.filter(entry -> selectMap.containsKey(entry.getKey()) && (entry.getValue().size() + entry.getValue().stream().mapToInt(o -> o.getInt("familyCount")).sum()) >= selectMap.get(entry.getKey()).getEstimatedFamilyNumbers())
|
|
||||||
.flatMap(entry -> entry.getValue().stream())
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<String, List<NutMap>> lineGroupMap = lineEnroll.stream().collect(Collectors.groupingBy(o -> o.getString("lineId")));
|
|
||||||
//查询所有的线路
|
|
||||||
List<TheRapyRecuperationLine> lineList = baseService.dao().query(TheRapyRecuperationLine.class, Cnd.NEW());
|
|
||||||
Map<String, String> lineMap = lineList.stream().collect(Collectors.toMap(TheRapyRecuperationLine::getId, TheRapyRecuperationLine::getLineName));
|
|
||||||
|
|
||||||
//自由组团的查询
|
|
||||||
Sql travelSql = Sqls.create("""
|
|
||||||
SELECT
|
|
||||||
enroll.*,
|
|
||||||
lxs.travelAgencyName,
|
|
||||||
u.schoolTime
|
|
||||||
FROM
|
|
||||||
`the_rapy_recuperation_enroll` enroll
|
|
||||||
LEFT JOIN `user` u on enroll.loginName = u.loginname
|
|
||||||
LEFT JOIN the_rapy_recuperation_travel_agency lxs ON lxs.id = enroll.takePartInTravelAgencyId
|
|
||||||
$condition
|
|
||||||
""");
|
|
||||||
Cnd travelCnd = commonCnd.clone();
|
|
||||||
travelCnd.andEX("enroll.selfUnionId", "=", unionId);
|
|
||||||
travelCnd.andEX("lxs.`year`", ">=", startYear);
|
|
||||||
travelCnd.andEX("lxs.`year`", "<=", endYear);
|
|
||||||
travelCnd.andEX("enroll.takePartInTravelAgencyId", "=", agencyId);
|
|
||||||
travelCnd.and("enroll.takePartInTravelAgencyId", "is not", null);
|
|
||||||
travelCnd.and("enroll.takePartInTravelAgencyId", "!=", "");
|
|
||||||
travelCnd.desc("enroll.unionName");
|
|
||||||
travelSql.setCondition(travelCnd);
|
|
||||||
List<NutMap> travelEnroll = baseService.listMap(travelSql);
|
|
||||||
Map<String, List<NutMap>> travelGroupMap = travelEnroll.stream().collect(Collectors.groupingBy(o -> o.getString("takePartInTravelAgencyId")));
|
|
||||||
//查询所有的旅行社
|
|
||||||
List<TheRapyRecuperationTravelAgency> travelList = baseService.dao().query(TheRapyRecuperationTravelAgency.class, Cnd.NEW());
|
|
||||||
Map<String, String> travelMap = travelList.stream().collect(Collectors.toMap(TheRapyRecuperationTravelAgency::getId, TheRapyRecuperationTravelAgency::getTravelAgencyName));
|
|
||||||
|
|
||||||
//公共的导出表头
|
|
||||||
ArrayList<ExcelExportEntity> commonEntities = new ArrayList<>();
|
|
||||||
commonEntities.add(new ExcelExportEntity("姓名", "userName", 20));
|
|
||||||
commonEntities.add(new ExcelExportEntity("工号", "loginName", 20));
|
|
||||||
commonEntities.add(new ExcelExportEntity("性别", "sex", 10));
|
|
||||||
commonEntities.add(new ExcelExportEntity("所属单位", "unitName", 20));
|
|
||||||
commonEntities.add(new ExcelExportEntity("所属工会", "unionName", 20));
|
|
||||||
commonEntities.add(new ExcelExportEntity("身份证号", "idCard", 30));
|
|
||||||
commonEntities.add(new ExcelExportEntity("手机号", "mobile", 15));
|
|
||||||
ExcelExportEntity entity = new ExcelExportEntity("报名时间", "signingUptime", 15);
|
|
||||||
entity.setFormat("yyyy-MM-dd HH:mm:ss");
|
|
||||||
commonEntities.add(entity);
|
|
||||||
|
|
||||||
//线路表头
|
|
||||||
ArrayList<ExcelExportEntity> lineEntities = new ArrayList<>(commonEntities);
|
|
||||||
lineEntities.add(new ExcelExportEntity("出行时间", "playStartTime", 20));
|
|
||||||
lineEntities.add(new ExcelExportEntity("线路名称", "lineName", 20));
|
|
||||||
lineEntities.add(new ExcelExportEntity("旅行社", "travelAgencyName", 20));
|
|
||||||
lineEntities.add(new ExcelExportEntity("家属人数", "familyCount", 20));
|
|
||||||
|
|
||||||
//自由组团表头
|
|
||||||
ArrayList<ExcelExportEntity> travelEntities = new ArrayList<>(commonEntities);
|
|
||||||
travelEntities.add(new ExcelExportEntity("旅行社", "travelAgencyName", 20));
|
|
||||||
|
|
||||||
commonEntities.add(new ExcelExportEntity("备注", "remark", 30));
|
|
||||||
|
|
||||||
ZipOutputStream zipOutputStream = new ZipOutputStream(new BufferedOutputStream(response.getOutputStream()));
|
|
||||||
|
|
||||||
try {
|
|
||||||
if(Arrays.asList(types).contains("line")) {
|
|
||||||
for (String key : lineGroupMap.keySet()) {
|
|
||||||
List<NutMap> enrollList = lineGroupMap.get(key);
|
|
||||||
enrollList.forEach(item -> {
|
|
||||||
String remark = TherapyRecuperationCommon.getRemarkBySchoolTime(item.getString("schoolTime"));
|
|
||||||
item.put("remark", remark);
|
|
||||||
});
|
|
||||||
String fileName = "线路报名人员/" + lineMap.get(key) + ".xlsx";
|
|
||||||
zipOutputStream.putNextEntry(new ZipEntry(fileName));
|
|
||||||
ExportParams exportParams = new ExportParams();
|
|
||||||
exportParams.setType(ExcelType.XSSF);
|
|
||||||
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, lineEntities, enrollList);
|
|
||||||
workbook.write(zipOutputStream);
|
|
||||||
zipOutputStream.closeEntry();
|
|
||||||
response.flushBuffer();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(Arrays.asList(types).contains("travel")) {
|
|
||||||
for (String key : travelGroupMap.keySet()) {
|
|
||||||
List<NutMap> enrollList = travelGroupMap.get(key);
|
|
||||||
enrollList.forEach(item -> {
|
|
||||||
String remark = TherapyRecuperationCommon.getRemarkBySchoolTime(item.getString("schoolTime"));
|
|
||||||
item.put("remark", remark);
|
|
||||||
});
|
|
||||||
String fileName = "自由组团报名人员/" + travelMap.get(key) + ".xlsx";
|
|
||||||
zipOutputStream.putNextEntry(new ZipEntry(fileName));
|
|
||||||
ExportParams exportParams = new ExportParams();
|
|
||||||
exportParams.setType(ExcelType.XSSF);
|
|
||||||
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, travelEntities, enrollList);
|
|
||||||
workbook.write(zipOutputStream);
|
|
||||||
zipOutputStream.closeEntry();
|
|
||||||
response.flushBuffer();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
zipOutputStream.flush();
|
|
||||||
zipOutputStream.close();
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@At
|
|
||||||
@Ok("void")
|
|
||||||
@ViReturn
|
|
||||||
@RequiresAuthentication
|
|
||||||
public void doExport1(String regionalNature, Integer state, String searchName, String searchKeyword,
|
|
||||||
Integer startYear, Integer endYear, String unionId,
|
Integer startYear, Integer endYear, String unionId,
|
||||||
String unitId, String takePartInLineId, String agencyId, String lotId,
|
String unitId, String takePartInLineId, String agencyId, String lotId,
|
||||||
String takePartInBaseManagementId, String signUpMode,
|
String takePartInBaseManagementId,String signUpMode,
|
||||||
HttpServletResponse response) throws IOException {
|
HttpServletResponse response) throws IOException {
|
||||||
|
|
||||||
Cnd cnd = Cnd.NEW();
|
Cnd cnd = Cnd.NEW();
|
||||||
|
|
||||||
if (Strings.isNotBlank(searchName) && Strings.isNotBlank(searchKeyword)) {
|
if (Strings.isNotBlank(searchName) && Strings.isNotBlank(searchKeyword)) {
|
||||||
cnd.and(Cnd.likeEX(searchName, searchKeyword));
|
cnd.and(Cnd.likeEX(searchName,searchKeyword));
|
||||||
}
|
}
|
||||||
|
|
||||||
Sql sql;
|
Sql sql;
|
||||||
@@ -714,8 +335,6 @@ public class TheRapyRecuperationUserQueryController {
|
|||||||
cnd.andEX("lxs.`year`", ">=", startYear);
|
cnd.andEX("lxs.`year`", ">=", startYear);
|
||||||
cnd.andEX("lxs.`year`", "<=", endYear);
|
cnd.andEX("lxs.`year`", "<=", endYear);
|
||||||
cnd.andEX("enroll.takePartInTravelAgencyId", "=", agencyId);
|
cnd.andEX("enroll.takePartInTravelAgencyId", "=", agencyId);
|
||||||
cnd.and("enroll.takePartInTravelAgencyId", "is not", null);
|
|
||||||
cnd.and("enroll.takePartInTravelAgencyId", "!=", "");
|
|
||||||
} else {
|
} else {
|
||||||
sql = Sqls.create("""
|
sql = Sqls.create("""
|
||||||
SELECT
|
SELECT
|
||||||
@@ -727,7 +346,7 @@ public class TheRapyRecuperationUserQueryController {
|
|||||||
enroll.*,
|
enroll.*,
|
||||||
lineu.lineId,
|
lineu.lineId,
|
||||||
lineu.playStartTime,
|
lineu.playStartTime,
|
||||||
lineu.playEndTime,
|
lineu.playEndTime,
|
||||||
( SELECT COUNT( 1 ) FROM the_rapy_recuperation_enroll_companion WHERE trreId = enroll.id AND relation = '亲属' ) isFamily
|
( SELECT COUNT( 1 ) FROM the_rapy_recuperation_enroll_companion WHERE trreId = enroll.id AND relation = '亲属' ) isFamily
|
||||||
FROM
|
FROM
|
||||||
`the_rapy_recuperation_enroll` enroll
|
`the_rapy_recuperation_enroll` enroll
|
||||||
@@ -743,9 +362,7 @@ public class TheRapyRecuperationUserQueryController {
|
|||||||
cnd.andEX("enroll.selfUnitId", "=", unitId);
|
cnd.andEX("enroll.selfUnitId", "=", unitId);
|
||||||
cnd.andEX("line.id", "=", takePartInLineId);
|
cnd.andEX("line.id", "=", takePartInLineId);
|
||||||
cnd.andEX("line.regionalNature", "=", regionalNature);
|
cnd.andEX("line.regionalNature", "=", regionalNature);
|
||||||
cnd.andEX("lineu.signUpMode", "=", signUpMode);
|
cnd.andEX("lineu.signUpMode","=",signUpMode);
|
||||||
cnd.and("enroll.takePartInLineId", "is not", null);
|
|
||||||
cnd.and("enroll.takePartInLineId", "!=", "");
|
|
||||||
if (state == 3) {
|
if (state == 3) {
|
||||||
sql.setVar("lotSql", "(select lotName from the_rapy_recuperation_lot where id = ma.lotId) as lotName");
|
sql.setVar("lotSql", "(select lotName from the_rapy_recuperation_lot where id = ma.lotId) as lotName");
|
||||||
cnd.and("enroll.takePartInBaseManagementId", "is not", null);
|
cnd.and("enroll.takePartInBaseManagementId", "is not", null);
|
||||||
@@ -764,9 +381,9 @@ public class TheRapyRecuperationUserQueryController {
|
|||||||
if (StrUtil.isNotBlank(unionId)) {
|
if (StrUtil.isNotBlank(unionId)) {
|
||||||
cnd.and("enroll.selfUnionId", "=", unionId);
|
cnd.and("enroll.selfUnionId", "=", unionId);
|
||||||
}
|
}
|
||||||
|
cnd.and("enroll.stateId", "=", TheRapyRecuperationState.PASS);
|
||||||
}
|
}
|
||||||
cnd.and("enroll.isNormal", "=", true);
|
cnd.and("enroll.isNormal", "=", true);
|
||||||
cnd.and("enroll.stateId", "=", TheRapyRecuperationState.PASS);
|
|
||||||
cnd.desc("enroll.unionName");
|
cnd.desc("enroll.unionName");
|
||||||
sql.setCondition(cnd);
|
sql.setCondition(cnd);
|
||||||
|
|
||||||
@@ -779,10 +396,8 @@ public class TheRapyRecuperationUserQueryController {
|
|||||||
baseService.dao().fetchLinks(v, "companionList");
|
baseService.dao().fetchLinks(v, "companionList");
|
||||||
baseService.dao().fetchLinks(v, "bedInfo");
|
baseService.dao().fetchLinks(v, "bedInfo");
|
||||||
baseService.dao().fetchLinks(v, "managementInfo");
|
baseService.dao().fetchLinks(v, "managementInfo");
|
||||||
if (StrUtil.isNotBlank(v.getLineId())) {
|
TheRapyRecuperationLine line = baseService.dao().fetch(TheRapyRecuperationLine.class, v.getLineId());
|
||||||
TheRapyRecuperationLine line = baseService.dao().fetch(TheRapyRecuperationLine.class, v.getLineId());
|
v.setLineInfo(line);
|
||||||
v.setLineInfo(line);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
List<NutMap> arrayList = new ArrayList<>();
|
List<NutMap> arrayList = new ArrayList<>();
|
||||||
String takePartInLineId2 = "";
|
String takePartInLineId2 = "";
|
||||||
@@ -792,9 +407,8 @@ public class TheRapyRecuperationUserQueryController {
|
|||||||
for (TheRapyRecuperationEnroll v : enrollList) {
|
for (TheRapyRecuperationEnroll v : enrollList) {
|
||||||
if (StrUtil.isNotBlank(v.getTakePartInLineId()) && !v.getTakePartInLineId().equals(takePartInLineId2)) {
|
if (StrUtil.isNotBlank(v.getTakePartInLineId()) && !v.getTakePartInLineId().equals(takePartInLineId2)) {
|
||||||
TheRapyRecuperationLine line = baseService.dao().fetch(TheRapyRecuperationLine.class, v.getLineId());
|
TheRapyRecuperationLine line = baseService.dao().fetch(TheRapyRecuperationLine.class, v.getLineId());
|
||||||
TheRapyRecuperationLineUnionSelect unionSelect = baseService.dao().fetch(TheRapyRecuperationLineUnionSelect.class, v.getTakePartInLineId());
|
|
||||||
TheRapyRecuperationLot lot = baseService.dao().fetch(TheRapyRecuperationLot.class, line.getLotId());
|
TheRapyRecuperationLot lot = baseService.dao().fetch(TheRapyRecuperationLot.class, line.getLotId());
|
||||||
TheRapyRecuperationTravelAgency agency = baseService.dao().fetch(TheRapyRecuperationTravelAgency.class, unionSelect.getTravelAgencyId());
|
TheRapyRecuperationTravelAgency agency = baseService.dao().fetch(TheRapyRecuperationTravelAgency.class, line.getTravelAgencyId());
|
||||||
agencyName = agency.getTravelAgencyName();
|
agencyName = agency.getTravelAgencyName();
|
||||||
lotName = lot.getLotName();
|
lotName = lot.getLotName();
|
||||||
} else {
|
} else {
|
||||||
@@ -823,6 +437,7 @@ public class TheRapyRecuperationUserQueryController {
|
|||||||
addv("otherSleepUser", Lang.isNotEmpty(v.getBedInfo()) ? v.getBedInfo().getOtherSleepUser() : null);
|
addv("otherSleepUser", Lang.isNotEmpty(v.getBedInfo()) ? v.getBedInfo().getOtherSleepUser() : null);
|
||||||
addv("baseName", Lang.isNotEmpty(v.getManagementInfo()) ? v.getManagementInfo().getBaseName() : v.getLineInfo().getLineName());
|
addv("baseName", Lang.isNotEmpty(v.getManagementInfo()) ? v.getManagementInfo().getBaseName() : v.getLineInfo().getLineName());
|
||||||
addv("signingUptime", DateUtil.formatDateTime(v.getSigningUptime()));
|
addv("signingUptime", DateUtil.formatDateTime(v.getSigningUptime()));
|
||||||
|
addv("cxsj", DateUtil.formatDateTime(v.getPlayStartTime()) + "至" + DateUtil.formatDateTime(v.getPlayEndTime()));
|
||||||
addv("agencyName", finalAgencyName);
|
addv("agencyName", finalAgencyName);
|
||||||
addv("lotName", finalLotName);
|
addv("lotName", finalLotName);
|
||||||
addv("bz", v.getUserName());
|
addv("bz", v.getUserName());
|
||||||
@@ -843,6 +458,7 @@ public class TheRapyRecuperationUserQueryController {
|
|||||||
addv("otherSleepUser", Lang.isNotEmpty(c.getBedInfo()) ? c.getBedInfo().getOtherSleepUser() : null);
|
addv("otherSleepUser", Lang.isNotEmpty(c.getBedInfo()) ? c.getBedInfo().getOtherSleepUser() : null);
|
||||||
addv("baseName", Lang.isNotEmpty(v.getManagementInfo()) ? v.getManagementInfo().getBaseName() : v.getLineInfo().getLineName());
|
addv("baseName", Lang.isNotEmpty(v.getManagementInfo()) ? v.getManagementInfo().getBaseName() : v.getLineInfo().getLineName());
|
||||||
addv("signingUptime", DateUtil.formatDateTime(v.getSigningUptime()));
|
addv("signingUptime", DateUtil.formatDateTime(v.getSigningUptime()));
|
||||||
|
addv("cxsj", DateUtil.formatDateTime(v.getPlayStartTime()) + "至" + DateUtil.formatDateTime(v.getPlayEndTime()));
|
||||||
addv("agencyName", finalAgencyName);
|
addv("agencyName", finalAgencyName);
|
||||||
addv("lotName", finalLotName);
|
addv("lotName", finalLotName);
|
||||||
addv("bz", v.getUserName());
|
addv("bz", v.getUserName());
|
||||||
@@ -871,6 +487,7 @@ public class TheRapyRecuperationUserQueryController {
|
|||||||
exportEntities.add(new ExcelExportEntity("旅行社", "agencyName", 20));
|
exportEntities.add(new ExcelExportEntity("旅行社", "agencyName", 20));
|
||||||
exportEntities.add(new ExcelExportEntity("报名时间", "signingUptime", 20));
|
exportEntities.add(new ExcelExportEntity("报名时间", "signingUptime", 20));
|
||||||
exportEntities.add(new ExcelExportEntity("备注", "bz", 20));
|
exportEntities.add(new ExcelExportEntity("备注", "bz", 20));
|
||||||
|
exportEntities.add(new ExcelExportEntity("出行时间", "cxsj", 50));
|
||||||
|
|
||||||
try {
|
try {
|
||||||
response.setContentType("application/octet-stream");
|
response.setContentType("application/octet-stream");
|
||||||
@@ -882,17 +499,4 @@ public class TheRapyRecuperationUserQueryController {
|
|||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@At
|
|
||||||
@ViReturn
|
|
||||||
@RequiresAuthentication
|
|
||||||
public Object doReimbursement(@Param("data") String data) {
|
|
||||||
JSONArray objects = JSONUtil.parseArray(data);
|
|
||||||
List<String> enrollIds = objects.toList(String.class);
|
|
||||||
if (Lang.isNotEmpty(enrollIds)) {
|
|
||||||
baseService.dao().update(TheRapyRecuperationEnroll.class, Chain.make("isReimbursement", 1), Cnd.where("id", "in", enrollIds));
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
+409
@@ -0,0 +1,409 @@
|
|||||||
|
package io.v.nutz.zhgh.therapyRecuperation.controller.query;
|
||||||
|
|
||||||
|
import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
||||||
|
import cn.afterturn.easypoi.excel.annotation.ExcelEntity;
|
||||||
|
import cn.afterturn.easypoi.excel.entity.ExportParams;
|
||||||
|
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
|
||||||
|
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import cn.wizzer.framework.base.Result;
|
||||||
|
import cn.wizzer.framework.base.service.BaseService;
|
||||||
|
import cn.wizzer.framework.page.Pagination;
|
||||||
|
import io.v.nutz.base.query.PageForm;
|
||||||
|
import io.v.nutz.base.utils.Vi;
|
||||||
|
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationState;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationConfig;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationEnrollBed;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationEnrollCompanion;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationEnrollService;
|
||||||
|
import org.apache.poi.ss.usermodel.Workbook;
|
||||||
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||||
|
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||||
|
import org.nutz.dao.Chain;
|
||||||
|
import org.nutz.dao.Cnd;
|
||||||
|
import org.nutz.dao.Dao;
|
||||||
|
import org.nutz.dao.Sqls;
|
||||||
|
import org.nutz.dao.sql.Sql;
|
||||||
|
import org.nutz.dao.util.cri.SqlExpressionGroup;
|
||||||
|
import org.nutz.ioc.aop.Aop;
|
||||||
|
import org.nutz.ioc.loader.annotation.Inject;
|
||||||
|
import org.nutz.ioc.loader.annotation.IocBean;
|
||||||
|
import org.nutz.json.Json;
|
||||||
|
import org.nutz.lang.Strings;
|
||||||
|
import org.nutz.lang.util.NutMap;
|
||||||
|
import org.nutz.mvc.annotation.At;
|
||||||
|
import org.nutz.mvc.annotation.Ok;
|
||||||
|
import org.nutz.mvc.annotation.Param;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分工会人员信息查询
|
||||||
|
*/
|
||||||
|
@IocBean
|
||||||
|
@At("/platform/theRapyRecuperation/branchUnionUserQuery")
|
||||||
|
@Ok("json:full")
|
||||||
|
public class TheRapyRecuperationBranchUnionUserQueryController {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private Dao dao;
|
||||||
|
@Inject
|
||||||
|
private BaseService baseService;
|
||||||
|
@Inject
|
||||||
|
private TheRapyRecuperationEnrollService enrollService;
|
||||||
|
|
||||||
|
@At("")
|
||||||
|
@Ok("beetl:/platform/theRapyRecuperation/branchUnionUserQuery/index.html")
|
||||||
|
@RequiresPermissions("theRapyRecuperation.branchUnionUserQuery")
|
||||||
|
public void index() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分工会人员信息查询
|
||||||
|
*
|
||||||
|
* @param pageForm 分页
|
||||||
|
* @param year 年度
|
||||||
|
* @param userName 姓名
|
||||||
|
* @param loginName 登录名
|
||||||
|
* @param signUpMode 报名方式(1分工会 2校工会 3个人)
|
||||||
|
* @param unionId
|
||||||
|
* @param takePartInLineId 线路id
|
||||||
|
* @param lotId 标段id
|
||||||
|
* @param regionalNature 区域性质 省内 省外
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@At
|
||||||
|
@RequiresPermissions("theRapyRecuperation.branchUnionUserQuery")
|
||||||
|
public Result pageData(PageForm pageForm,
|
||||||
|
Integer year,
|
||||||
|
String userName,
|
||||||
|
String loginName,
|
||||||
|
String signUpMode,
|
||||||
|
String unionId,
|
||||||
|
String takePartInLineId,
|
||||||
|
String lotId,
|
||||||
|
String regionalNature) {
|
||||||
|
Cnd cnd = Cnd.NEW();
|
||||||
|
Sql sql = Sqls.create("""
|
||||||
|
SELECT
|
||||||
|
state.stateName,
|
||||||
|
state.stateColor,
|
||||||
|
line.regionalNature,
|
||||||
|
line.lineName,
|
||||||
|
agency.travelAgencyName,
|
||||||
|
ma.baseName,
|
||||||
|
enroll.*,
|
||||||
|
lineu.lineId,
|
||||||
|
lineu.playStartTime,
|
||||||
|
lineu.playEndTime,
|
||||||
|
( SELECT COUNT( 1 ) FROM the_rapy_recuperation_enroll_companion WHERE trreId = enroll.id ) isFamily
|
||||||
|
$lotSql
|
||||||
|
FROM
|
||||||
|
`the_rapy_recuperation_enroll` enroll
|
||||||
|
LEFT JOIN the_rapy_recuperation_line_union_select lineu ON lineu.id=enroll.takePartInLineId
|
||||||
|
LEFT JOIN the_rapy_recuperation_line line ON line.id = lineu.lineId
|
||||||
|
LEFT JOIN the_rapy_recuperation_travel_agency agency ON agency.id = enroll.takePartInTravelAgencyId
|
||||||
|
LEFT JOIN the_rapy_recuperation_base_management ma on ma.id = enroll.takePartInBaseManagementId
|
||||||
|
LEFT JOIN audit_state state ON state.stateId = enroll.stateId
|
||||||
|
$condition
|
||||||
|
""");
|
||||||
|
if (Strings.isNotBlank(pageForm.getSearchKeyword()) && Strings.isNotBlank(pageForm.getSearchName())) {
|
||||||
|
cnd.and(Cnd.likeEX(pageForm.getSearchName(), pageForm.getSearchKeyword()));
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotBlank(pageForm.getPageOrderName()) && StrUtil.isNotBlank(pageForm.getPageOrderBy())) {
|
||||||
|
cnd.orderBy(pageForm.getPageOrderName(), pageForm.getPageOrderBy().equalsIgnoreCase("ascending") ? "ASC" : "DESC");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 年度
|
||||||
|
cnd.andEX("YEAR ( enroll.signingUptime )", "=", year);
|
||||||
|
if (StrUtil.isNotBlank(userName)) {
|
||||||
|
cnd.where().andLike("enroll.userName", loginName);
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotBlank(loginName)) {
|
||||||
|
cnd.where().andLike("enroll.loginName", userName);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 线路
|
||||||
|
cnd.andEX("enroll.takePartInLineId", "=", takePartInLineId);
|
||||||
|
|
||||||
|
// 标段
|
||||||
|
if (StrUtil.isNotBlank(lotId)) {
|
||||||
|
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||||
|
seg.or("line.lotId", "=", lotId);
|
||||||
|
seg.or("ma.lotId", "=", lotId);
|
||||||
|
cnd.and(seg);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 区域
|
||||||
|
cnd.andEX("line.regionalNature", "=", regionalNature);
|
||||||
|
|
||||||
|
// 分工会只查本分工会的人员
|
||||||
|
cnd.and("enroll.selfUnionId", "=", Vi.getUnionId());
|
||||||
|
|
||||||
|
// 报名模式
|
||||||
|
if (StrUtil.isNotBlank(signUpMode)) {
|
||||||
|
if (signUpMode.equals("1")) {
|
||||||
|
cnd.andEX("line.signUpMode", "=", 2);
|
||||||
|
} else if (signUpMode.equals("2")) {
|
||||||
|
cnd.andEX("lineu.unionId", "=", Vi.getUnionId());
|
||||||
|
cnd.andEX("line.signUpMode", "=", 1);
|
||||||
|
} else if (signUpMode.equals("3")) {
|
||||||
|
cnd.andEX("lineu.unionId", "!=", Vi.getUnionId());
|
||||||
|
cnd.andEX("line.signUpMode", "=", 1);
|
||||||
|
} else if (signUpMode.equals("4")) {
|
||||||
|
cnd.andEX("line.signUpMode", "=", 3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
cnd.desc("enroll.stateId");
|
||||||
|
cnd.andEX("enroll.stateId", "=", TheRapyRecuperationState.PASS);
|
||||||
|
cnd.andEX("enroll.isNormal", "=", true);
|
||||||
|
sql.setCondition(cnd);
|
||||||
|
|
||||||
|
Pagination pagination = baseService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||||
|
List<NutMap> list = pagination.getList();
|
||||||
|
list.forEach(v -> {
|
||||||
|
List<TheRapyRecuperationEnrollCompanion> companionList = baseService.dao().query(TheRapyRecuperationEnrollCompanion.class, Cnd.where("trreId", "=", v.getString("id")));
|
||||||
|
for (TheRapyRecuperationEnrollCompanion enrollCompanion : companionList) {
|
||||||
|
baseService.fetchLinks(enrollCompanion, "bedInfo");
|
||||||
|
}
|
||||||
|
v.setv("companionList", companionList);
|
||||||
|
});
|
||||||
|
return Result.success(pagination);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置出行人员
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@At
|
||||||
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
|
@RequiresPermissions("theRapyRecuperation.branchUnionUserQuery")
|
||||||
|
public Result setUpParticipants(@Param("data") String data) {
|
||||||
|
List<NutMap> list = Json.fromJsonAsList(NutMap.class, data);
|
||||||
|
for (NutMap map : list) {
|
||||||
|
Chain chain = Chain.make("lotId", map.getString("lotId")).add("takePartInTime", map.getString("takePartInTime")).add("isTakePartIn", true);
|
||||||
|
baseService.update("the_rapy_recuperation_enroll", chain, Cnd.where("id", "=", map.getString("id")));
|
||||||
|
}
|
||||||
|
return Result.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除报名信息
|
||||||
|
*/
|
||||||
|
@At
|
||||||
|
public Result deleteMyEnrollInfoById(String id) {
|
||||||
|
enrollService.deleteMyEnrollInfoById(id);
|
||||||
|
return Result.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编辑查询详细信息
|
||||||
|
*/
|
||||||
|
@At
|
||||||
|
@RequiresPermissions("theRapyRecuperation.branchUnionUserQuery")
|
||||||
|
public Result findOne(String id) {
|
||||||
|
Sql sql = Sqls.create("""
|
||||||
|
SELECT
|
||||||
|
lxs.travelAgencyName,
|
||||||
|
enroll.*,
|
||||||
|
line.lineName,
|
||||||
|
if(enroll.takePartInUnionId!=enroll.selfUnionId,true,false) isTransferIn,
|
||||||
|
(SELECT COUNT(1) FROM the_rapy_recuperation_enroll_companion WHERE trreId=enroll.id and relation='亲属') isFamily
|
||||||
|
FROM
|
||||||
|
`the_rapy_recuperation_enroll` enroll
|
||||||
|
LEFT JOIN the_rapy_recuperation_line_union_select lineu ON lineu.id = enroll.takePartInLineId
|
||||||
|
LEFT JOIN the_rapy_recuperation_line line ON line.id = lineu.lineId
|
||||||
|
LEFT JOIN the_rapy_recuperation_travel_agency lxs ON lxs.id = line.travelAgencyId
|
||||||
|
where enroll.id=@id
|
||||||
|
""");
|
||||||
|
sql.setParam("id", id);
|
||||||
|
sql.setCallback(Sqls.callback.map());
|
||||||
|
dao.execute(sql);
|
||||||
|
NutMap data = (NutMap) sql.getResult();
|
||||||
|
List<TheRapyRecuperationEnrollCompanion> companionList = dao.query(TheRapyRecuperationEnrollCompanion.class, Cnd.where("trreId", "=", id));
|
||||||
|
companionList.forEach(v -> {
|
||||||
|
v.setBedInfo(dao.fetch(TheRapyRecuperationEnrollBed.class, v.getBedInfoId()));
|
||||||
|
});
|
||||||
|
data.put("companionList", companionList);
|
||||||
|
return Result.success(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取线路
|
||||||
|
*
|
||||||
|
* @param year 年度
|
||||||
|
* @param signUpMode 报名模式
|
||||||
|
* @param regionalNature 区域
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@At
|
||||||
|
@RequiresPermissions("theRapyRecuperation.branchUnionUserQuery")
|
||||||
|
public Result listLine(Integer year, String signUpMode, String regionalNature) {
|
||||||
|
Sql sql = Sqls.create("""
|
||||||
|
SELECT
|
||||||
|
t1.takePartInLineId,
|
||||||
|
t3.lineName,
|
||||||
|
t4.unionname as unionName
|
||||||
|
FROM
|
||||||
|
the_rapy_recuperation_enroll t1
|
||||||
|
LEFT JOIN the_rapy_recuperation_line_union_select t2 ON t2.id = t1.takePartInLineId
|
||||||
|
LEFT JOIN the_rapy_recuperation_line t3 ON t3.id = t2.lineId
|
||||||
|
LEFT JOIN sys_union t4 ON t4.id = t2.unionId
|
||||||
|
$condition
|
||||||
|
""");
|
||||||
|
Cnd cnd = Cnd.NEW();
|
||||||
|
cnd.and("t1.selfUnionId", "=", Vi.getUnionId());
|
||||||
|
cnd.andEX("YEAR(t2.selectTime)", "=", year);
|
||||||
|
cnd.andEX("t3.regionalNature", "=", regionalNature);
|
||||||
|
|
||||||
|
if (signUpMode.equals("1")) {
|
||||||
|
cnd.andEX("t3.signUpMode", "=", 2);
|
||||||
|
} else if (signUpMode.equals("2")) {
|
||||||
|
cnd.andEX("t2.unionId", "=", Vi.getUnionId());
|
||||||
|
cnd.and("t3.signUpMode", "=", 1);
|
||||||
|
} else if (signUpMode.equals("3")) {
|
||||||
|
cnd.andEX("t2.unionId", "!=", Vi.getUnionId());
|
||||||
|
cnd.and("t3.signUpMode", "=", 1);
|
||||||
|
} else if (signUpMode.equals("4")) {
|
||||||
|
cnd.andEX("t3.signUpMode", "=", 3);
|
||||||
|
}
|
||||||
|
cnd.groupBy("t1.takePartInLineId");
|
||||||
|
sql.setCondition(cnd);
|
||||||
|
List<NutMap> list = enrollService.listMap(sql);
|
||||||
|
return Result.success(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
@At
|
||||||
|
@Ok("void")
|
||||||
|
@RequiresPermissions("theRapyRecuperation.branchUnionUserQuery")
|
||||||
|
public void exportXlsx(Integer year,
|
||||||
|
String userName,
|
||||||
|
String loginName,
|
||||||
|
String signUpMode,
|
||||||
|
String unionId,
|
||||||
|
String takePartInLineId,
|
||||||
|
String lotId,
|
||||||
|
String regionalNature,
|
||||||
|
HttpServletResponse response) {
|
||||||
|
Cnd cnd = Cnd.NEW();
|
||||||
|
Sql sql = Sqls.create("""
|
||||||
|
SELECT
|
||||||
|
state.stateName,
|
||||||
|
state.stateColor,
|
||||||
|
line.regionalNature,
|
||||||
|
line.lineName,
|
||||||
|
agency.travelAgencyName,
|
||||||
|
ma.baseName,
|
||||||
|
enroll.*,
|
||||||
|
lineu.lineId,
|
||||||
|
lineu.playStartTime,
|
||||||
|
lineu.playEndTime,
|
||||||
|
( SELECT COUNT( 1 ) FROM the_rapy_recuperation_enroll_companion WHERE trreId = enroll.id ) isFamily
|
||||||
|
$lotSql
|
||||||
|
FROM
|
||||||
|
`the_rapy_recuperation_enroll` enroll
|
||||||
|
LEFT JOIN the_rapy_recuperation_line_union_select lineu ON lineu.id=enroll.takePartInLineId
|
||||||
|
LEFT JOIN the_rapy_recuperation_line line ON line.id = lineu.lineId
|
||||||
|
LEFT JOIN the_rapy_recuperation_travel_agency agency ON agency.id = enroll.takePartInTravelAgencyId
|
||||||
|
LEFT JOIN the_rapy_recuperation_base_management ma on ma.id = enroll.takePartInBaseManagementId
|
||||||
|
LEFT JOIN audit_state state ON state.stateId = enroll.stateId
|
||||||
|
$condition
|
||||||
|
""");
|
||||||
|
// 年度
|
||||||
|
cnd.andEX("YEAR ( enroll.signingUptime )", "=", year);
|
||||||
|
if (StrUtil.isNotBlank(userName)) {
|
||||||
|
cnd.where().andLike("enroll.userName", userName);
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotBlank(loginName)) {
|
||||||
|
cnd.where().andLike("enroll.loginName", loginName);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 线路
|
||||||
|
cnd.andEX("enroll.takePartInLineId", "=", takePartInLineId);
|
||||||
|
|
||||||
|
// 标段
|
||||||
|
if (StrUtil.isNotBlank(lotId)) {
|
||||||
|
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||||
|
seg.or("line.lotId", "=", lotId);
|
||||||
|
seg.or("ma.lotId", "=", lotId);
|
||||||
|
cnd.and(seg);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 区域
|
||||||
|
cnd.andEX("line.regionalNature", "=", regionalNature);
|
||||||
|
|
||||||
|
// 分工会只查本分工会的人员
|
||||||
|
cnd.and("enroll.selfUnionId", "=", Vi.getUnionId());
|
||||||
|
|
||||||
|
// 报名模式
|
||||||
|
if (StrUtil.isNotBlank(signUpMode)) {
|
||||||
|
if (signUpMode.equals("1")) {
|
||||||
|
cnd.andEX("line.signUpMode", "=", 2);
|
||||||
|
} else if (signUpMode.equals("2")) {
|
||||||
|
cnd.andEX("lineu.unionId", "=", Vi.getUnionId());
|
||||||
|
cnd.andEX("line.signUpMode", "=", 1);
|
||||||
|
} else if (signUpMode.equals("3")) {
|
||||||
|
cnd.andEX("lineu.unionId", "!=", Vi.getUnionId());
|
||||||
|
cnd.andEX("line.signUpMode", "=", 1);
|
||||||
|
} else if (signUpMode.equals("4")) {
|
||||||
|
cnd.andEX("line.signUpMode", "=", 3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
cnd.desc("enroll.stateId");
|
||||||
|
cnd.andEX("enroll.stateId", "=", TheRapyRecuperationState.PASS);
|
||||||
|
cnd.andEX("enroll.isNormal", "=", true);
|
||||||
|
sql.setCondition(cnd);
|
||||||
|
|
||||||
|
List<NutMap> list = enrollService.listMap(sql);
|
||||||
|
list.forEach(v -> {
|
||||||
|
List<TheRapyRecuperationEnrollCompanion> companionList = baseService.dao().query(TheRapyRecuperationEnrollCompanion.class, Cnd.where("trreId", "=", v.getString("id")));
|
||||||
|
for (TheRapyRecuperationEnrollCompanion enrollCompanion : companionList) {
|
||||||
|
baseService.fetchLinks(enrollCompanion, "bedInfo");
|
||||||
|
}
|
||||||
|
v.setv("companionList", companionList);
|
||||||
|
});
|
||||||
|
|
||||||
|
// 配置
|
||||||
|
TheRapyRecuperationConfig config = baseService.dao().fetch(TheRapyRecuperationConfig.class, Cnd.NEW());
|
||||||
|
|
||||||
|
List<ExcelExportEntity> excelEntities = new ArrayList<>();
|
||||||
|
excelEntities.add(new ExcelExportEntity("姓名", "userName", 20));
|
||||||
|
excelEntities.add(new ExcelExportEntity("工号", "loginName", 20));
|
||||||
|
excelEntities.add(new ExcelExportEntity("性别", "sex", 20));
|
||||||
|
excelEntities.add(new ExcelExportEntity("单位", "unitName", 20));
|
||||||
|
excelEntities.add(new ExcelExportEntity("工会", "unionName", 20));
|
||||||
|
excelEntities.add(new ExcelExportEntity("身份证号", "idCard", 30));
|
||||||
|
excelEntities.add(new ExcelExportEntity("手机号", "mobile", 20));
|
||||||
|
if (config.getFamilyInfo() == 2) {
|
||||||
|
excelEntities.add(new ExcelExportEntity("与本人关系", "relation", 10));
|
||||||
|
excelEntities.add(new ExcelExportEntity("床型", "bedType", 10));
|
||||||
|
excelEntities.add(new ExcelExportEntity("床位数", "bedNum", 10));
|
||||||
|
excelEntities.add(new ExcelExportEntity("意向拼房人", "otherSleepUser", 10));
|
||||||
|
} else {
|
||||||
|
excelEntities.add(new ExcelExportEntity("携带家属数", "familyNumber", 10));
|
||||||
|
|
||||||
|
}
|
||||||
|
excelEntities.add(new ExcelExportEntity("备注", "bz", 20));
|
||||||
|
response.setContentType("application/octet-stream");
|
||||||
|
response.setHeader("Content-Disposition", "attachment;filename=" + new String(("报名人员.xlsx").getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1));
|
||||||
|
ExportParams exportParams = new ExportParams();
|
||||||
|
exportParams.setType(ExcelType.XSSF);
|
||||||
|
|
||||||
|
|
||||||
|
try {
|
||||||
|
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, excelEntities, list);
|
||||||
|
workbook.write(response.getOutputStream());
|
||||||
|
workbook.close();
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+122
@@ -0,0 +1,122 @@
|
|||||||
|
package io.v.nutz.zhgh.therapyRecuperation.controller.query;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import io.v.nutz.base.annontation.ViReturn;
|
||||||
|
import io.v.nutz.base.query.PageForm;
|
||||||
|
import io.v.nutz.base.utils.Vi;
|
||||||
|
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationEnrollService;
|
||||||
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||||
|
import org.nutz.dao.Cnd;
|
||||||
|
import org.nutz.dao.Sqls;
|
||||||
|
import org.nutz.dao.sql.Sql;
|
||||||
|
import org.nutz.dao.util.cri.SqlExpressionGroup;
|
||||||
|
import org.nutz.ioc.loader.annotation.Inject;
|
||||||
|
import org.nutz.ioc.loader.annotation.IocBean;
|
||||||
|
import org.nutz.mvc.annotation.At;
|
||||||
|
import org.nutz.mvc.annotation.Ok;
|
||||||
|
import org.nutz.mvc.annotation.Param;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author zhf
|
||||||
|
* @date 2025/5/23 09:04
|
||||||
|
* @description 线路查询
|
||||||
|
*/
|
||||||
|
@IocBean
|
||||||
|
@At("/platform/theRapyRecuperation/lineQuery")
|
||||||
|
@Ok("json:full")
|
||||||
|
public class TheRapyRecuperationLineQueryController {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private TheRapyRecuperationEnrollService enrollService;
|
||||||
|
|
||||||
|
@At("")
|
||||||
|
@Ok("beetl:/platform/theRapyRecuperation/lineQuery/index.html")
|
||||||
|
@RequiresPermissions("theRapyRecuperation.lineQuery")
|
||||||
|
public void index() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@At
|
||||||
|
@ViReturn
|
||||||
|
@RequiresPermissions("theRapyRecuperation.statistics")
|
||||||
|
public Object pageData(PageForm pageForm,
|
||||||
|
@Param(value = "startYear", required = false) Integer startYear,
|
||||||
|
@Param(value = "endYear", required = false) Integer endYear,
|
||||||
|
@Param(value = "unionId", required = false) String unionId,
|
||||||
|
@Param(value = "takePartInLineId") String takePartInLineId,
|
||||||
|
@Param(value = "lotId", required = false) String lotId,
|
||||||
|
@Param(value = "signUpMode", required = false) String signUpMode,
|
||||||
|
@Param(value = "selectId", required = false) String selectId,
|
||||||
|
@Param(value = "travelAgencyPlace", required = false) String travelAgencyPlace,
|
||||||
|
@Param(value = "travelAgencyId", required = false) String travelAgencyId,
|
||||||
|
@Param(value = "regionalNature", required = false) String regionalNature) {
|
||||||
|
Sql sql = Sqls.create("""
|
||||||
|
SELECT
|
||||||
|
u.username,
|
||||||
|
st.stateName,
|
||||||
|
line.id,
|
||||||
|
line.lineName,
|
||||||
|
line.regionalNature,
|
||||||
|
line.travelAgencyPlace,
|
||||||
|
lineu.auditState,
|
||||||
|
lineu.lineId,
|
||||||
|
lineu.id as lineUId,
|
||||||
|
lineu.signUpMode,
|
||||||
|
lineu.minimumGroupSize,
|
||||||
|
lineu.estimatedFamilyNumbers,
|
||||||
|
YEAR(lineu.selectTime) as `year`,
|
||||||
|
CONCAT(DATE_FORMAT(lineu.playStartTime,'%m月%d日'),'-',DATE_FORMAT(lineu.playEndTime,'%m月%d日')) AS linePlayTime,
|
||||||
|
lineu.playStartTime as playStartTime1,
|
||||||
|
lineu.playEndTime as playEndTime2,
|
||||||
|
lxs.travelAgencyName,
|
||||||
|
lxs.contact,
|
||||||
|
lxs.contactMobileNumber,
|
||||||
|
enroll.takePartInUnionId AS usUnionId,
|
||||||
|
un.unionname as unionname,
|
||||||
|
lot.lotName,
|
||||||
|
lot.lotValue,
|
||||||
|
enroll.familyNumber,
|
||||||
|
( SELECT COUNT( 1 ) FROM the_rapy_recuperation_enroll WHERE takePartInLineId = lineu.id and stateId=2750 and isNormal = true $unionCnd) lineNum,
|
||||||
|
(select count(1) from the_rapy_recuperation_enroll_companion where trreId in (select id from the_rapy_recuperation_enroll where stateId=2750 and takePartInLineId = lineu.id and isNormal = true $unionCnd)) as signUpUserFamilyNum
|
||||||
|
FROM
|
||||||
|
the_rapy_recuperation_line_union_select lineu
|
||||||
|
LEFT JOIN `the_rapy_recuperation_enroll` enroll ON lineu.id = enroll.takePartInLineId
|
||||||
|
left join `user` u on u.id=lineu.selectUserId
|
||||||
|
LEFT JOIN the_rapy_recuperation_line line ON line.id = lineu.lineId
|
||||||
|
LEFT JOIN the_rapy_recuperation_lot lot ON lot.id = line.lotId
|
||||||
|
LEFT JOIN the_rapy_recuperation_travel_agency lxs ON line.travelAgencyId = lxs.id
|
||||||
|
LEFT JOIN sys_union un ON un.id = lineu.unionId
|
||||||
|
left join audit_state st on st.stateId=lineu.auditState
|
||||||
|
$condition
|
||||||
|
""");
|
||||||
|
Cnd cnd = Cnd.NEW();
|
||||||
|
cnd.andEX("YEAR(lineu.selectTime)", ">=", startYear);
|
||||||
|
cnd.andEX("YEAR(lineu.selectTime)", "<=", endYear);
|
||||||
|
cnd.andEX("lineu.signUpMode", "=", signUpMode);
|
||||||
|
cnd.andEX("lineu.unionId", "=", unionId);
|
||||||
|
cnd.andEX("line.travelAgencyId", "=", travelAgencyId);
|
||||||
|
cnd.andEX("line.travelAgencyPlace", "=", travelAgencyPlace);
|
||||||
|
if (!ShiroUtil.hasAnyRoles("sysadmin, SchoolUnionAdmin")) {
|
||||||
|
if (ShiroUtil.hasAnyRoles("gh01")) {
|
||||||
|
cnd.andEX("lineu.unionId", "=", Vi.getUnionId());
|
||||||
|
} else {
|
||||||
|
cnd.and("lineu.selectUserId", "=", ShiroUtil.getUserId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())){
|
||||||
|
SqlExpressionGroup group = new SqlExpressionGroup();
|
||||||
|
group.orLike("u.username", pageForm.getSearchKeyword());
|
||||||
|
group.orLike("u.loginname", pageForm.getSearchKeyword());
|
||||||
|
cnd.and(group);
|
||||||
|
}
|
||||||
|
|
||||||
|
cnd.andEX("line.lotId", "=", lotId);
|
||||||
|
cnd.andEX("line.id", "=", takePartInLineId);
|
||||||
|
cnd.andEX("lineu.id", "=", selectId);
|
||||||
|
cnd.andEX("line.regionalNature", "=", regionalNature);
|
||||||
|
cnd.groupBy("lineu.id");
|
||||||
|
cnd.asc("line.serialNumber").asc("lineu.playStartTime");
|
||||||
|
sql.setCondition(cnd);
|
||||||
|
return enrollService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||||
|
}
|
||||||
|
}
|
||||||
+397
@@ -0,0 +1,397 @@
|
|||||||
|
package io.v.nutz.zhgh.therapyRecuperation.controller.query;
|
||||||
|
|
||||||
|
import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
||||||
|
import cn.afterturn.easypoi.excel.entity.ExportParams;
|
||||||
|
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
|
||||||
|
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import cn.wizzer.framework.base.Result;
|
||||||
|
import cn.wizzer.framework.base.service.BaseService;
|
||||||
|
import cn.wizzer.framework.page.Pagination;
|
||||||
|
import io.v.nutz.base.query.PageForm;
|
||||||
|
import io.v.nutz.base.utils.Vi;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationState;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationConfig;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationEnrollBed;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationEnrollCompanion;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationEnrollService;
|
||||||
|
import org.apache.poi.ss.usermodel.Workbook;
|
||||||
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||||
|
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||||
|
import org.nutz.dao.Chain;
|
||||||
|
import org.nutz.dao.Cnd;
|
||||||
|
import org.nutz.dao.Dao;
|
||||||
|
import org.nutz.dao.Sqls;
|
||||||
|
import org.nutz.dao.sql.Sql;
|
||||||
|
import org.nutz.dao.util.cri.SqlExpressionGroup;
|
||||||
|
import org.nutz.ioc.aop.Aop;
|
||||||
|
import org.nutz.ioc.loader.annotation.Inject;
|
||||||
|
import org.nutz.ioc.loader.annotation.IocBean;
|
||||||
|
import org.nutz.json.Json;
|
||||||
|
import org.nutz.lang.Strings;
|
||||||
|
import org.nutz.lang.util.NutMap;
|
||||||
|
import org.nutz.mvc.annotation.At;
|
||||||
|
import org.nutz.mvc.annotation.Ok;
|
||||||
|
import org.nutz.mvc.annotation.Param;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校工会人员信息查询
|
||||||
|
*/
|
||||||
|
@IocBean
|
||||||
|
@At("/platform/theRapyRecuperation/schoolUnionUserQuery")
|
||||||
|
@Ok("json:full")
|
||||||
|
public class TheRapyRecuperationSchoolUnionUserQueryController {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private Dao dao;
|
||||||
|
@Inject
|
||||||
|
private BaseService baseService;
|
||||||
|
@Inject
|
||||||
|
private TheRapyRecuperationEnrollService enrollService;
|
||||||
|
|
||||||
|
@At("")
|
||||||
|
@Ok("beetl:/platform/theRapyRecuperation/schoolUnionUserQuery/index.html")
|
||||||
|
@RequiresPermissions("theRapyRecuperation.schoolUnionUserQuery")
|
||||||
|
public void index() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校工会人员信息查询
|
||||||
|
*
|
||||||
|
* @param pageForm 分页
|
||||||
|
* @param year 年度
|
||||||
|
* @param userName 姓名
|
||||||
|
* @param loginName 登录名
|
||||||
|
* @param signUpMode 报名方式(1分工会 2校工会 3个人)
|
||||||
|
* @param unionId 分工会id
|
||||||
|
* @param takePartInLineId 线路id
|
||||||
|
* @param lotId 标段id
|
||||||
|
* @param regionalNature 区域性质 省内 省外
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@At
|
||||||
|
@RequiresPermissions("theRapyRecuperation.schoolUnionUserQuery")
|
||||||
|
public Result pageData(PageForm pageForm,
|
||||||
|
Integer year,
|
||||||
|
String userName,
|
||||||
|
String loginName,
|
||||||
|
String signUpMode,
|
||||||
|
String unionId,
|
||||||
|
String takePartInLineId,
|
||||||
|
String lotId,
|
||||||
|
String regionalNature) {
|
||||||
|
Cnd cnd = Cnd.NEW();
|
||||||
|
Sql sql = Sqls.create("""
|
||||||
|
SELECT
|
||||||
|
state.stateName,
|
||||||
|
state.stateColor,
|
||||||
|
line.regionalNature,
|
||||||
|
line.lineName,
|
||||||
|
agency.travelAgencyName,
|
||||||
|
ma.baseName,
|
||||||
|
enroll.*,
|
||||||
|
lineu.lineId,
|
||||||
|
lineu.playStartTime,
|
||||||
|
lineu.playEndTime,
|
||||||
|
( SELECT COUNT( 1 ) FROM the_rapy_recuperation_enroll_companion WHERE trreId = enroll.id ) isFamily
|
||||||
|
$lotSql
|
||||||
|
FROM
|
||||||
|
`the_rapy_recuperation_enroll` enroll
|
||||||
|
LEFT JOIN the_rapy_recuperation_line_union_select lineu ON lineu.id=enroll.takePartInLineId
|
||||||
|
LEFT JOIN the_rapy_recuperation_line line ON line.id = lineu.lineId
|
||||||
|
LEFT JOIN the_rapy_recuperation_travel_agency agency ON agency.id = enroll.takePartInTravelAgencyId
|
||||||
|
LEFT JOIN the_rapy_recuperation_base_management ma on ma.id = enroll.takePartInBaseManagementId
|
||||||
|
LEFT JOIN audit_state state ON state.stateId = enroll.stateId
|
||||||
|
$condition
|
||||||
|
""");
|
||||||
|
if (Strings.isNotBlank(pageForm.getSearchKeyword()) && Strings.isNotBlank(pageForm.getSearchName())) {
|
||||||
|
cnd.and(Cnd.likeEX(pageForm.getSearchName(), pageForm.getSearchKeyword()));
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotBlank(pageForm.getPageOrderName()) && StrUtil.isNotBlank(pageForm.getPageOrderBy())) {
|
||||||
|
cnd.orderBy(pageForm.getPageOrderName(), pageForm.getPageOrderBy().equalsIgnoreCase("ascending") ? "ASC" : "DESC");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 年度
|
||||||
|
cnd.andEX("YEAR ( enroll.signingUptime )", "=", year);
|
||||||
|
if (StrUtil.isNotBlank(userName)) {
|
||||||
|
cnd.where().andLike("enroll.userName", userName);
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotBlank(loginName)) {
|
||||||
|
cnd.where().andLike("enroll.loginName", loginName);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 线路
|
||||||
|
cnd.andEX("enroll.takePartInLineId", "=", takePartInLineId);
|
||||||
|
|
||||||
|
// 标段
|
||||||
|
if (StrUtil.isNotBlank(lotId)) {
|
||||||
|
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||||
|
seg.or("line.lotId", "=", lotId);
|
||||||
|
seg.or("ma.lotId", "=", lotId);
|
||||||
|
cnd.and(seg);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 区域
|
||||||
|
cnd.andEX("line.regionalNature", "=", regionalNature);
|
||||||
|
|
||||||
|
// 校工会可查询指定分工会
|
||||||
|
cnd.andEX("enroll.selfUnionId", "=", unionId);
|
||||||
|
|
||||||
|
// // 报名模式
|
||||||
|
// if (StrUtil.isNotBlank(signUpMode)) {
|
||||||
|
// if (signUpMode.equals("1")) {
|
||||||
|
// cnd.andEX("line.signUpMode", "=", 2);
|
||||||
|
// } else if (signUpMode.equals("2")) {
|
||||||
|
// cnd.andEX("lineu.unionId", "=", Vi.getUnionId());
|
||||||
|
// cnd.andEX("line.signUpMode", "=", 1);
|
||||||
|
// } else if (signUpMode.equals("3")) {
|
||||||
|
// cnd.andEX("lineu.unionId", "!=", Vi.getUnionId());
|
||||||
|
// cnd.andEX("line.signUpMode", "=", 1);
|
||||||
|
// } else if (signUpMode.equals("4")) {
|
||||||
|
// cnd.andEX("line.signUpMode", "=", 3);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
cnd.desc("enroll.stateId");
|
||||||
|
cnd.andEX("enroll.stateId", "=", TheRapyRecuperationState.PASS);
|
||||||
|
cnd.andEX("enroll.isNormal", "=", true);
|
||||||
|
sql.setCondition(cnd);
|
||||||
|
|
||||||
|
Pagination pagination = baseService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||||
|
List<NutMap> list = pagination.getList();
|
||||||
|
list.forEach(v -> {
|
||||||
|
List<TheRapyRecuperationEnrollCompanion> companionList = baseService.dao().query(TheRapyRecuperationEnrollCompanion.class, Cnd.where("trreId", "=", v.getString("id")));
|
||||||
|
for (TheRapyRecuperationEnrollCompanion enrollCompanion : companionList) {
|
||||||
|
baseService.fetchLinks(enrollCompanion, "bedInfo");
|
||||||
|
}
|
||||||
|
v.setv("companionList", companionList);
|
||||||
|
});
|
||||||
|
return Result.success(pagination);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置出行人员
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@At
|
||||||
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
|
@RequiresPermissions("theRapyRecuperation.schoolUnionUserQuery")
|
||||||
|
public Result setUpParticipants(@Param("data") String data) {
|
||||||
|
List<NutMap> list = Json.fromJsonAsList(NutMap.class, data);
|
||||||
|
for (NutMap map : list) {
|
||||||
|
Chain chain = Chain.make("lotId", map.getString("lotId")).add("takePartInTime", map.getString("takePartInTime")).add("isTakePartIn", true);
|
||||||
|
baseService.update("the_rapy_recuperation_enroll", chain, Cnd.where("id", "=", map.getString("id")));
|
||||||
|
}
|
||||||
|
return Result.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除报名信息
|
||||||
|
*/
|
||||||
|
@At
|
||||||
|
@RequiresPermissions("theRapyRecuperation.schoolUnionUserQuery")
|
||||||
|
public Result deleteMyEnrollInfoById(String id) {
|
||||||
|
enrollService.deleteMyEnrollInfoById(id);
|
||||||
|
return Result.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编辑查询详细信息
|
||||||
|
*/
|
||||||
|
@At
|
||||||
|
@RequiresPermissions("theRapyRecuperation.schoolUnionUserQuery")
|
||||||
|
public Result findOne(String id) {
|
||||||
|
Sql sql = Sqls.create("""
|
||||||
|
SELECT
|
||||||
|
lxs.travelAgencyName,
|
||||||
|
enroll.*,
|
||||||
|
line.lineName,
|
||||||
|
if(enroll.takePartInUnionId!=enroll.selfUnionId,true,false) isTransferIn,
|
||||||
|
(SELECT COUNT(1) FROM the_rapy_recuperation_enroll_companion WHERE trreId=enroll.id and relation='亲属') isFamily
|
||||||
|
FROM
|
||||||
|
`the_rapy_recuperation_enroll` enroll
|
||||||
|
LEFT JOIN the_rapy_recuperation_line_union_select lineu ON lineu.id = enroll.takePartInLineId
|
||||||
|
LEFT JOIN the_rapy_recuperation_line line ON line.id = lineu.lineId
|
||||||
|
LEFT JOIN the_rapy_recuperation_travel_agency lxs ON lxs.id = line.travelAgencyId
|
||||||
|
where enroll.id=@id
|
||||||
|
""");
|
||||||
|
sql.setParam("id", id);
|
||||||
|
sql.setCallback(Sqls.callback.map());
|
||||||
|
dao.execute(sql);
|
||||||
|
NutMap data = (NutMap) sql.getResult();
|
||||||
|
List<TheRapyRecuperationEnrollCompanion> companionList = dao.query(TheRapyRecuperationEnrollCompanion.class, Cnd.where("trreId", "=", id));
|
||||||
|
companionList.forEach(v -> {
|
||||||
|
v.setBedInfo(dao.fetch(TheRapyRecuperationEnrollBed.class, v.getBedInfoId()));
|
||||||
|
});
|
||||||
|
data.put("companionList", companionList);
|
||||||
|
return Result.success(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取线路
|
||||||
|
*
|
||||||
|
* @param year 年度
|
||||||
|
* @param signUpMode 报名模式
|
||||||
|
* @param unionId 分工会id
|
||||||
|
* @param regionalNature 区域
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@At
|
||||||
|
@RequiresPermissions("theRapyRecuperation.schoolUnionUserQuery")
|
||||||
|
public Result listLine(Integer year, String signUpMode, String unionId, String regionalNature) {
|
||||||
|
Sql sql = Sqls.create("""
|
||||||
|
SELECT
|
||||||
|
t1.takePartInLineId,
|
||||||
|
t3.lineName,
|
||||||
|
t4.unionname as unionName
|
||||||
|
FROM
|
||||||
|
the_rapy_recuperation_enroll t1
|
||||||
|
LEFT JOIN the_rapy_recuperation_line_union_select t2 ON t2.id = t1.takePartInLineId
|
||||||
|
LEFT JOIN the_rapy_recuperation_line t3 ON t3.id = t2.lineId
|
||||||
|
LEFT JOIN sys_union t4 ON t4.id = t2.unionId
|
||||||
|
$condition
|
||||||
|
""");
|
||||||
|
Cnd cnd = Cnd.NEW();
|
||||||
|
cnd.andEX("t1.selfUnionId", "=", unionId);
|
||||||
|
cnd.andEX("YEAR(t2.selectTime)", "=", year);
|
||||||
|
cnd.andEX("t3.regionalNature", "=", regionalNature);
|
||||||
|
cnd.groupBy("t1.takePartInLineId");
|
||||||
|
sql.setCondition(cnd);
|
||||||
|
List<NutMap> list = enrollService.listMap(sql);
|
||||||
|
return Result.success(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
@At
|
||||||
|
@Ok("void")
|
||||||
|
@RequiresPermissions("theRapyRecuperation.schoolUnionUserQuery")
|
||||||
|
public void exportXlsx(Integer year,
|
||||||
|
String userName,
|
||||||
|
String loginName,
|
||||||
|
String signUpMode,
|
||||||
|
String unionId,
|
||||||
|
String takePartInLineId,
|
||||||
|
String lotId,
|
||||||
|
String regionalNature,
|
||||||
|
HttpServletResponse response) {
|
||||||
|
Cnd cnd = Cnd.NEW();
|
||||||
|
Sql sql = Sqls.create("""
|
||||||
|
SELECT
|
||||||
|
state.stateName,
|
||||||
|
state.stateColor,
|
||||||
|
line.regionalNature,
|
||||||
|
line.lineName,
|
||||||
|
agency.travelAgencyName,
|
||||||
|
ma.baseName,
|
||||||
|
enroll.*,
|
||||||
|
lineu.lineId,
|
||||||
|
lineu.playStartTime,
|
||||||
|
lineu.playEndTime,
|
||||||
|
( SELECT COUNT( 1 ) FROM the_rapy_recuperation_enroll_companion WHERE trreId = enroll.id ) isFamily
|
||||||
|
$lotSql
|
||||||
|
FROM
|
||||||
|
`the_rapy_recuperation_enroll` enroll
|
||||||
|
LEFT JOIN the_rapy_recuperation_line_union_select lineu ON lineu.id=enroll.takePartInLineId
|
||||||
|
LEFT JOIN the_rapy_recuperation_line line ON line.id = lineu.lineId
|
||||||
|
LEFT JOIN the_rapy_recuperation_travel_agency agency ON agency.id = enroll.takePartInTravelAgencyId
|
||||||
|
LEFT JOIN the_rapy_recuperation_base_management ma on ma.id = enroll.takePartInBaseManagementId
|
||||||
|
LEFT JOIN audit_state state ON state.stateId = enroll.stateId
|
||||||
|
$condition
|
||||||
|
""");
|
||||||
|
// 年度
|
||||||
|
cnd.andEX("YEAR ( enroll.signingUptime )", "=", year);
|
||||||
|
if (StrUtil.isNotBlank(userName)) {
|
||||||
|
cnd.where().andLike("enroll.userName", userName);
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotBlank(loginName)) {
|
||||||
|
cnd.where().andLike("enroll.loginName", loginName);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 线路
|
||||||
|
cnd.andEX("enroll.takePartInLineId", "=", takePartInLineId);
|
||||||
|
|
||||||
|
// 标段
|
||||||
|
if (StrUtil.isNotBlank(lotId)) {
|
||||||
|
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||||
|
seg.or("line.lotId", "=", lotId);
|
||||||
|
seg.or("ma.lotId", "=", lotId);
|
||||||
|
cnd.and(seg);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 区域
|
||||||
|
cnd.andEX("line.regionalNature", "=", regionalNature);
|
||||||
|
|
||||||
|
// 校工会可查询指定分工会
|
||||||
|
cnd.andEX("enroll.selfUnionId", "=", unionId);
|
||||||
|
|
||||||
|
// // 报名模式
|
||||||
|
// if (StrUtil.isNotBlank(signUpMode)) {
|
||||||
|
// if (signUpMode.equals("1")) {
|
||||||
|
// cnd.andEX("line.signUpMode", "=", 2);
|
||||||
|
// } else if (signUpMode.equals("2")) {
|
||||||
|
// cnd.andEX("lineu.unionId", "=", Vi.getUnionId());
|
||||||
|
// cnd.andEX("line.signUpMode", "=", 1);
|
||||||
|
// } else if (signUpMode.equals("3")) {
|
||||||
|
// cnd.andEX("lineu.unionId", "!=", Vi.getUnionId());
|
||||||
|
// cnd.andEX("line.signUpMode", "=", 1);
|
||||||
|
// } else if (signUpMode.equals("4")) {
|
||||||
|
// cnd.andEX("line.signUpMode", "=", 3);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
cnd.desc("enroll.stateId");
|
||||||
|
cnd.andEX("enroll.stateId", "=", TheRapyRecuperationState.PASS);
|
||||||
|
cnd.andEX("enroll.isNormal", "=", true);
|
||||||
|
sql.setCondition(cnd);
|
||||||
|
|
||||||
|
List<NutMap> list = enrollService.listMap(sql);
|
||||||
|
list.forEach(v -> {
|
||||||
|
List<TheRapyRecuperationEnrollCompanion> companionList = baseService.dao().query(TheRapyRecuperationEnrollCompanion.class, Cnd.where("trreId", "=", v.getString("id")));
|
||||||
|
for (TheRapyRecuperationEnrollCompanion enrollCompanion : companionList) {
|
||||||
|
baseService.fetchLinks(enrollCompanion, "bedInfo");
|
||||||
|
}
|
||||||
|
v.setv("companionList", companionList);
|
||||||
|
});
|
||||||
|
|
||||||
|
// 配置
|
||||||
|
TheRapyRecuperationConfig config = baseService.dao().fetch(TheRapyRecuperationConfig.class, Cnd.NEW());
|
||||||
|
|
||||||
|
List<ExcelExportEntity> excelEntities = new ArrayList<>();
|
||||||
|
excelEntities.add(new ExcelExportEntity("姓名", "userName", 20));
|
||||||
|
excelEntities.add(new ExcelExportEntity("工号", "loginName", 20));
|
||||||
|
excelEntities.add(new ExcelExportEntity("性别", "sex", 20));
|
||||||
|
excelEntities.add(new ExcelExportEntity("单位", "unitName", 20));
|
||||||
|
excelEntities.add(new ExcelExportEntity("工会", "unionName", 20));
|
||||||
|
excelEntities.add(new ExcelExportEntity("身份证号", "idCard", 30));
|
||||||
|
excelEntities.add(new ExcelExportEntity("手机号", "mobile", 20));
|
||||||
|
if (config.getFamilyInfo() == 2) {
|
||||||
|
excelEntities.add(new ExcelExportEntity("与本人关系", "relation", 10));
|
||||||
|
excelEntities.add(new ExcelExportEntity("床型", "bedType", 10));
|
||||||
|
excelEntities.add(new ExcelExportEntity("床位数", "bedNum", 10));
|
||||||
|
excelEntities.add(new ExcelExportEntity("意向拼房人", "otherSleepUser", 10));
|
||||||
|
} else {
|
||||||
|
excelEntities.add(new ExcelExportEntity("携带家属数", "familyNumber", 10));
|
||||||
|
|
||||||
|
}
|
||||||
|
excelEntities.add(new ExcelExportEntity("备注", "bz", 20));
|
||||||
|
response.setContentType("application/octet-stream");
|
||||||
|
response.setHeader("Content-Disposition", "attachment;filename=" + new String(("报名人员.xlsx").getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1));
|
||||||
|
ExportParams exportParams = new ExportParams();
|
||||||
|
exportParams.setType(ExcelType.XSSF);
|
||||||
|
|
||||||
|
|
||||||
|
try {
|
||||||
|
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, excelEntities, list);
|
||||||
|
workbook.write(response.getOutputStream());
|
||||||
|
workbook.close();
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+67
-31
@@ -49,10 +49,8 @@ public class TheRapyRecuperationLineStatisticsController {
|
|||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private TheRapyRecuperationEnrollService enrollService;
|
private TheRapyRecuperationEnrollService enrollService;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private MsgApi msgApi;
|
private MsgApi msgApi;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private Dao dao;
|
private Dao dao;
|
||||||
|
|
||||||
@@ -69,16 +67,19 @@ public class TheRapyRecuperationLineStatisticsController {
|
|||||||
@Param(value = "startYear", required = false) Integer startYear,
|
@Param(value = "startYear", required = false) Integer startYear,
|
||||||
@Param(value = "endYear", required = false) Integer endYear,
|
@Param(value = "endYear", required = false) Integer endYear,
|
||||||
@Param(value = "unionId", required = false) String unionId,
|
@Param(value = "unionId", required = false) String unionId,
|
||||||
@Param("takePartInLineId") String takePartInLineId,
|
@Param(value = "takePartInLineId") String takePartInLineId,
|
||||||
@Param(value = "lotId", required = false) String lotId,
|
@Param(value = "lotId", required = false) String lotId,
|
||||||
@Param(value = "signUpMode", required = false) String signUpMode,
|
@Param(value = "signUpMode", required = false) String signUpMode,
|
||||||
@Param(value = "selectId",required = false) String selectId,
|
@Param(value = "selectId",required = false) String selectId,
|
||||||
@Param(value = "regionalNature", required = false) String regionalNature) {
|
@Param(value = "regionalNature", required = false) String regionalNature) {
|
||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
SELECT
|
SELECT
|
||||||
|
u.username,
|
||||||
|
st.stateName,
|
||||||
line.id,
|
line.id,
|
||||||
line.lineName,
|
line.lineName,
|
||||||
line.regionalNature,
|
line.regionalNature,
|
||||||
|
lineu.auditState,
|
||||||
lineu.lineId,
|
lineu.lineId,
|
||||||
lineu.id as lineUId,
|
lineu.id as lineUId,
|
||||||
lineu.signUpMode,
|
lineu.signUpMode,
|
||||||
@@ -92,7 +93,7 @@ public class TheRapyRecuperationLineStatisticsController {
|
|||||||
lxs.contact,
|
lxs.contact,
|
||||||
lxs.contactMobileNumber,
|
lxs.contactMobileNumber,
|
||||||
enroll.takePartInUnionId AS usUnionId,
|
enroll.takePartInUnionId AS usUnionId,
|
||||||
if(lineu.signUpMode = 2, '校工会', un.unionname) as unionname,
|
un.unionname as unionname,
|
||||||
lot.lotName,
|
lot.lotName,
|
||||||
lot.lotValue,
|
lot.lotValue,
|
||||||
enroll.familyNumber,
|
enroll.familyNumber,
|
||||||
@@ -101,17 +102,19 @@ public class TheRapyRecuperationLineStatisticsController {
|
|||||||
FROM
|
FROM
|
||||||
`the_rapy_recuperation_enroll` enroll
|
`the_rapy_recuperation_enroll` enroll
|
||||||
LEFT JOIN the_rapy_recuperation_line_union_select lineu ON lineu.id=enroll.takePartInLineId
|
LEFT JOIN the_rapy_recuperation_line_union_select lineu ON lineu.id=enroll.takePartInLineId
|
||||||
|
left join `user` u on u.id=lineu.selectUserId
|
||||||
LEFT JOIN the_rapy_recuperation_line line ON line.id = lineu.lineId
|
LEFT JOIN the_rapy_recuperation_line line ON line.id = lineu.lineId
|
||||||
LEFT JOIN the_rapy_recuperation_lot lot ON lot.id = line.lotId
|
LEFT JOIN the_rapy_recuperation_lot lot ON lot.id = line.lotId
|
||||||
LEFT JOIN the_rapy_recuperation_travel_agency lxs ON lineu.travelAgencyId = lxs.id
|
LEFT JOIN the_rapy_recuperation_travel_agency lxs ON line.travelAgencyId = lxs.id
|
||||||
LEFT JOIN sys_union un ON un.id = lineu.unionId
|
LEFT JOIN sys_union un ON un.id = lineu.unionId
|
||||||
|
left join audit_state st on st.stateId=lineu.auditState
|
||||||
$condition
|
$condition
|
||||||
""");
|
""");
|
||||||
Cnd cnd = Cnd.NEW();
|
Cnd cnd = Cnd.NEW();
|
||||||
cnd.andEX("YEAR(lineu.selectTime)", ">=", startYear);
|
cnd.andEX("YEAR(lineu.selectTime)", ">=", startYear);
|
||||||
cnd.andEX("YEAR(lineu.selectTime)", "<=", endYear);
|
cnd.andEX("YEAR(lineu.selectTime)", "<=", endYear);
|
||||||
cnd.andEX("lineu.signUpMode","=",signUpMode);
|
cnd.andEX("lineu.signUpMode","=",signUpMode);
|
||||||
if (!ShiroUtil.hasAnyRoles("sysadmin,H06")){
|
/*if (!ShiroUtil.hasAnyRoles("sysadmin,H06")){
|
||||||
String unionCndSql = "and (selfUnionId='%s' or takePartInUnionId = '%s')".formatted(Vi.getUnionId(), Vi.getUnionId());
|
String unionCndSql = "and (selfUnionId='%s' or takePartInUnionId = '%s')".formatted(Vi.getUnionId(), Vi.getUnionId());
|
||||||
sql.setVar("unionCnd", unionCndSql);
|
sql.setVar("unionCnd", unionCndSql);
|
||||||
cnd.and("lineu.unionId", "=", Vi.getUnionId());
|
cnd.and("lineu.unionId", "=", Vi.getUnionId());
|
||||||
@@ -119,6 +122,9 @@ public class TheRapyRecuperationLineStatisticsController {
|
|||||||
if (Strings.isNotBlank(unionId)) {
|
if (Strings.isNotBlank(unionId)) {
|
||||||
cnd.and("lineu.unionId", "=", unionId);
|
cnd.and("lineu.unionId", "=", unionId);
|
||||||
}
|
}
|
||||||
|
}*/
|
||||||
|
if (!ShiroUtil.hasAnyRoles("sysadmin, SchoolUnionAdmin")) {
|
||||||
|
cnd.and("lineu.selectUserId", "=", ShiroUtil.getUserId());
|
||||||
}
|
}
|
||||||
|
|
||||||
cnd.andEX("line.lotId", "=", lotId);
|
cnd.andEX("line.lotId", "=", lotId);
|
||||||
@@ -131,7 +137,6 @@ public class TheRapyRecuperationLineStatisticsController {
|
|||||||
return enrollService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
return enrollService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据线路查询报名详情
|
* 根据线路查询报名详情
|
||||||
* @param searchKeyword
|
* @param searchKeyword
|
||||||
@@ -187,28 +192,54 @@ public class TheRapyRecuperationLineStatisticsController {
|
|||||||
@At
|
@At
|
||||||
@ViReturn
|
@ViReturn
|
||||||
@RequiresAuthentication
|
@RequiresAuthentication
|
||||||
public Object sendSuccess(String id) {
|
public Object sendSuccess(String id, Boolean type) {
|
||||||
|
|
||||||
TheRapyRecuperationLineUnionSelect unionSelect = dao.fetch(TheRapyRecuperationLineUnionSelect.class, id);
|
TheRapyRecuperationLineUnionSelect unionSelect = dao.fetch(TheRapyRecuperationLineUnionSelect.class, id);
|
||||||
TheRapyRecuperationLine line = dao.fetch(TheRapyRecuperationLine.class, unionSelect.getLineId());
|
TheRapyRecuperationLine line = dao.fetch(TheRapyRecuperationLine.class, unionSelect.getLineId());
|
||||||
if (DateUtil.compare(new Date(), unionSelect.getSignUpEndTime()) < 0) {
|
if (DateUtil.compare(new Date(), unionSelect.getSignUpEndTime()) < 0) {
|
||||||
return Result.error("报名还未结束,不能发送");
|
return Result.error("报名还未结束");
|
||||||
}
|
}
|
||||||
//找出报名人员
|
|
||||||
List<TheRapyRecuperationEnroll> enrolls = dao.query(TheRapyRecuperationEnroll.class, Cnd.where("takePartInLineId", "=", id)
|
unionSelect.setGroupSuccess(true);
|
||||||
.and("isNormal", "=", true).and("year(signingUptime)", "=", DateUtil.thisYear())
|
unionSelect.setGroupTime(DateUtil.now());
|
||||||
.and("stateId", "not in", Lang.array(TheRapyRecuperationState.UNITFAIL, TheRapyRecuperationState.LINEUNITFAIL, TheRapyRecuperationState.SCHOOLFAIL)));
|
switch (unionSelect.getSignUpMode()) {
|
||||||
|
case 1 -> unionSelect.setAuditState(7707);
|
||||||
|
case 2 -> unionSelect.setAuditState(7712);
|
||||||
|
case 3 -> unionSelect.setAuditState(7700);
|
||||||
|
}
|
||||||
|
dao.update(unionSelect);
|
||||||
|
|
||||||
//发短信
|
//发短信
|
||||||
enrolls.forEach(item -> {
|
if(type) {
|
||||||
String content = "%s老师,您好!您报名的%s线路,出行时间为%s,达到成团条件,请准时参加疗休养活动。".formatted(
|
//找出报名人员
|
||||||
item.getUserName(),
|
List<TheRapyRecuperationEnroll> enrolls = dao.query(
|
||||||
line.getLineName(),
|
TheRapyRecuperationEnroll.class,
|
||||||
DateUtil.format(unionSelect.getPlayStartTime(), "yyyy-MM-dd")
|
Cnd.where("takePartInLineId", "=", id)
|
||||||
);
|
.and("isNormal", "=", true).and("year(signingUptime)", "=", DateUtil.thisYear())
|
||||||
List list = List.of(Map.of("type", "User", "userId", item.getLoginName(), "name", item.getUserName()));
|
.and("stateId", "not in", Lang.array(TheRapyRecuperationState.UNITFAIL, TheRapyRecuperationState.LINEUNITFAIL, TheRapyRecuperationState.SCHOOLFAIL)));
|
||||||
//msgApi.sendMsg(content, list, "疗休养", " IntelligenceMode", MsgApi.sendMode.normal.name());
|
enrolls.forEach(item -> {
|
||||||
});
|
String content = "%s老师,您好!您报名的%s线路,出行时间为%s,达到成团条件,请准时参加疗休养活动。".formatted(
|
||||||
|
item.getUserName(),
|
||||||
|
line.getLineName(),
|
||||||
|
DateUtil.format(unionSelect.getPlayStartTime(), "yyyy-MM-dd")
|
||||||
|
);
|
||||||
|
msgApi.sendTextMsg(content, item.getLoginName());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@At
|
||||||
|
@ViReturn
|
||||||
|
@RequiresAuthentication
|
||||||
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
|
public Object deleteJoinUser(String id) {
|
||||||
|
if (StrUtil.isBlank(id)) {
|
||||||
|
return Result.error("需要的删除的信息为空");
|
||||||
|
}
|
||||||
|
TheRapyRecuperationEnroll enroll = dao.fetch(TheRapyRecuperationEnroll.class, id);
|
||||||
|
dao.clear(TheRapyRecuperationEnroll.class, Cnd.where("id", "=", id));
|
||||||
|
dao.clear(TheRapyRecuperationEnrollCompanion.class, Cnd.where("trreId", "=", id));
|
||||||
|
dao.clear(TheRapyRecuperationEnrollBed.class, Cnd.where("id", "=", enroll.getBedInfo().getId()));
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -217,16 +248,22 @@ public class TheRapyRecuperationLineStatisticsController {
|
|||||||
@RequiresAuthentication
|
@RequiresAuthentication
|
||||||
@Aop(TransAop.READ_COMMITTED)
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
public Object sendFail(String id, Boolean type) {
|
public Object sendFail(String id, Boolean type) {
|
||||||
|
|
||||||
TheRapyRecuperationLineUnionSelect unionSelect = dao.fetch(TheRapyRecuperationLineUnionSelect.class, id);
|
TheRapyRecuperationLineUnionSelect unionSelect = dao.fetch(TheRapyRecuperationLineUnionSelect.class, id);
|
||||||
TheRapyRecuperationLine line = dao.fetch(TheRapyRecuperationLine.class, unionSelect.getLineId());
|
TheRapyRecuperationLine line = dao.fetch(TheRapyRecuperationLine.class, unionSelect.getLineId());
|
||||||
if (DateUtil.compare(new Date(), unionSelect.getSignUpEndTime()) < 0) {
|
if (DateUtil.compare(new Date(), unionSelect.getSignUpEndTime()) < 0) {
|
||||||
return Result.error("报名还未结束,不能发送");
|
return Result.error("报名还未结束");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unionSelect.setGroupSuccess(false);
|
||||||
|
unionSelect.setGroupTime(null);
|
||||||
|
dao.update(unionSelect);
|
||||||
|
|
||||||
//找出报名人员
|
//找出报名人员
|
||||||
List<TheRapyRecuperationEnroll> enrolls = dao.query(TheRapyRecuperationEnroll.class, Cnd.where("takePartInLineId", "=", id)
|
List<TheRapyRecuperationEnroll> enrolls = dao.query(
|
||||||
.and("isNormal", "=", true).and("year(signingUptime)", "=", DateUtil.thisYear())
|
TheRapyRecuperationEnroll.class,
|
||||||
.and("stateId", "not in", Lang.array(TheRapyRecuperationState.UNITFAIL, TheRapyRecuperationState.LINEUNITFAIL, TheRapyRecuperationState.SCHOOLFAIL)));
|
Cnd.where("takePartInLineId", "=", id)
|
||||||
|
.and("isNormal", "=", true).and("year(signingUptime)", "=", DateUtil.thisYear())
|
||||||
|
.and("stateId", "not in", Lang.array(TheRapyRecuperationState.UNITFAIL, TheRapyRecuperationState.LINEUNITFAIL, TheRapyRecuperationState.SCHOOLFAIL)));
|
||||||
|
|
||||||
//发短信
|
//发短信
|
||||||
enrolls.forEach(item -> {
|
enrolls.forEach(item -> {
|
||||||
@@ -235,13 +272,12 @@ public class TheRapyRecuperationLineStatisticsController {
|
|||||||
line.getLineName(),
|
line.getLineName(),
|
||||||
DateUtil.format(unionSelect.getPlayStartTime(), "yyyy-MM-dd")
|
DateUtil.format(unionSelect.getPlayStartTime(), "yyyy-MM-dd")
|
||||||
);
|
);
|
||||||
List list = List.of(Map.of("type", "User", "userId", item.getLoginName(), "name", item.getUserName()));
|
msgApi.sendTextMsg(content, item.getLoginName());
|
||||||
//msgApi.sendMsg(content, list, "疗休养", " IntelligenceMode", MsgApi.sendMode.normal.name());
|
|
||||||
});
|
});
|
||||||
|
|
||||||
if(!type) {
|
if(!type) {
|
||||||
List<String> enrollIds = enrolls.stream().map(TheRapyRecuperationEnroll::getId).collect(Collectors.toList());
|
List<String> enrollIds = enrolls.stream().map(TheRapyRecuperationEnroll::getId).collect(Collectors.toList());
|
||||||
List<TheRapyRecuperationEnrollBed> bedIds = enrolls.stream().map(TheRapyRecuperationEnroll::getBedInfo).collect(Collectors.toList());
|
List<String> bedIds = enrolls.stream().map(TheRapyRecuperationEnroll::getBedInfoId).collect(Collectors.toList());
|
||||||
dao.clear(TheRapyRecuperationEnroll.class, Cnd.where("takePartInLineId", "=", id));
|
dao.clear(TheRapyRecuperationEnroll.class, Cnd.where("takePartInLineId", "=", id));
|
||||||
dao.clear(TheRapyRecuperationEnrollCompanion.class, Cnd.where("trreId", "in", enrollIds));
|
dao.clear(TheRapyRecuperationEnrollCompanion.class, Cnd.where("trreId", "in", enrollIds));
|
||||||
dao.clear(TheRapyRecuperationEnrollBed.class, Cnd.where("id", "in", bedIds));
|
dao.clear(TheRapyRecuperationEnrollBed.class, Cnd.where("id", "in", bedIds));
|
||||||
|
|||||||
+182
@@ -0,0 +1,182 @@
|
|||||||
|
package io.v.nutz.zhgh.therapyRecuperation.controller.summary;
|
||||||
|
|
||||||
|
import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
||||||
|
import cn.afterturn.easypoi.excel.entity.ExportParams;
|
||||||
|
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import io.v.nutz.base.annontation.ViReturn;
|
||||||
|
import io.v.nutz.base.query.PageForm;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationEnrollService;
|
||||||
|
import io.v.nutz.base.utils.ViTool;
|
||||||
|
import org.apache.poi.ss.usermodel.Workbook;
|
||||||
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||||
|
import org.nutz.dao.Cnd;
|
||||||
|
import org.nutz.dao.Dao;
|
||||||
|
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.util.NutMap;
|
||||||
|
import org.nutz.mvc.annotation.At;
|
||||||
|
import org.nutz.mvc.annotation.Ok;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@IocBean
|
||||||
|
@Ok("json:full")
|
||||||
|
@At("/platform/therapyRecuperation/evaluate/statistics")
|
||||||
|
public class TherapyRecuperationEvaluateStatisticsController {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private TheRapyRecuperationEnrollService enrollService;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private Dao dao;
|
||||||
|
|
||||||
|
@At("")
|
||||||
|
@Ok("beetl:/platform/theRapyRecuperation/summary/evaluateStatistics.html")
|
||||||
|
@RequiresPermissions("theRapyRecuperation.evaluate.statistics")
|
||||||
|
public void index() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@At
|
||||||
|
@ViReturn
|
||||||
|
@RequiresPermissions("theRapyRecuperation.evaluate.statistics")
|
||||||
|
public Object pageData(PageForm pageForm,
|
||||||
|
String lineId,
|
||||||
|
String unionId,
|
||||||
|
String unitId,
|
||||||
|
String personType,
|
||||||
|
String userState,
|
||||||
|
String evaluateScore) {
|
||||||
|
Sql sql = Sqls.create("""
|
||||||
|
SELECT
|
||||||
|
we.evaluateText,
|
||||||
|
we.evaluateScore,
|
||||||
|
we.userName,
|
||||||
|
we.loginName,
|
||||||
|
u.unionname,
|
||||||
|
u.unitname,
|
||||||
|
u.userState,
|
||||||
|
u.personType,
|
||||||
|
line.lineName,
|
||||||
|
us.playStartTime
|
||||||
|
FROM
|
||||||
|
`the_rapy_recuperation_evaluate` we
|
||||||
|
LEFT JOIN `user` u ON u.id = we.userId
|
||||||
|
LEFT JOIN the_rapy_recuperation_enroll en ON en.takePartInLineId = we.lineId
|
||||||
|
LEFT JOIN the_rapy_recuperation_line_union_select us ON us.id = en.takePartInLineId
|
||||||
|
LEFT JOIN the_rapy_recuperation_line line ON line.id = us.lineId
|
||||||
|
$condition
|
||||||
|
""");
|
||||||
|
Cnd cnd = Cnd.NEW();
|
||||||
|
if (StrUtil.isNotBlank(pageForm.getSearchName()) && StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
|
||||||
|
cnd.and(Cnd.likeEX(pageForm.getSearchName(), pageForm.getSearchKeyword()));
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotBlank(pageForm.getPageOrderName()) && StrUtil.isNotBlank(pageForm.getPageOrderBy())) {
|
||||||
|
cnd.orderBy(pageForm.getPageOrderName(), pageForm.getPageOrderBy().equals("ascending") ? "asc" : "desc");
|
||||||
|
} else {
|
||||||
|
cnd.desc("we.evaluateScore");
|
||||||
|
}
|
||||||
|
if(StrUtil.isNotBlank(lineId)) {
|
||||||
|
cnd.andEX("we.lineId", "in", lineId.split(","));
|
||||||
|
}
|
||||||
|
cnd.andEX("u.unionid", "=", unionId);
|
||||||
|
cnd.andEX("u.unitid", "=", unitId);
|
||||||
|
cnd.andEX("u.personType", "=", personType);
|
||||||
|
cnd.andEX("u.userState", "=", userState);
|
||||||
|
cnd.andEX("we.evaluateScore", "=", evaluateScore);
|
||||||
|
cnd.groupBy("we.lineId");
|
||||||
|
sql.setCondition(cnd);
|
||||||
|
return enrollService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
@At
|
||||||
|
@ViReturn
|
||||||
|
@RequiresPermissions("theRapyRecuperation.evaluate.statistics")
|
||||||
|
public Object lineList(Integer year) {
|
||||||
|
Sql sql = Sqls.create("""
|
||||||
|
SELECT
|
||||||
|
GROUP_CONCAT(us.id) as id,
|
||||||
|
line.lineName,
|
||||||
|
if(us.signUpMode = 2, '校工会', un.unionname) as unionName
|
||||||
|
FROM
|
||||||
|
the_rapy_recuperation_line_union_select us
|
||||||
|
LEFT JOIN the_rapy_recuperation_line line ON us.lineId = line.id
|
||||||
|
LEFT JOIN sys_union un ON un.id = us.unionId
|
||||||
|
$condition
|
||||||
|
""");
|
||||||
|
Cnd cnd = Cnd.NEW();
|
||||||
|
cnd.andEX("year(us.selectTime)", "=", year);
|
||||||
|
cnd.groupBy("lineId, unionid");
|
||||||
|
sql.setCondition(cnd);
|
||||||
|
return enrollService.listMap(sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
@At
|
||||||
|
@Ok("void")
|
||||||
|
@RequiresPermissions("theRapyRecuperation.evaluate.statistics")
|
||||||
|
public void exportEvaluate(String lineId,
|
||||||
|
String unionId,
|
||||||
|
String unitId,
|
||||||
|
String evaluateScore,
|
||||||
|
String searchKeyword,
|
||||||
|
String searchName,
|
||||||
|
HttpServletResponse response) {
|
||||||
|
Sql sql = Sqls.create("""
|
||||||
|
SELECT
|
||||||
|
we.evaluateText,
|
||||||
|
we.evaluateScore,
|
||||||
|
we.userName,
|
||||||
|
we.loginName,
|
||||||
|
u.unionname,
|
||||||
|
u.unitname,
|
||||||
|
u.userState,
|
||||||
|
u.personType,
|
||||||
|
line.lineName,
|
||||||
|
us.playStartTime
|
||||||
|
FROM
|
||||||
|
`the_rapy_recuperation_evaluate` we
|
||||||
|
LEFT JOIN `user` u ON u.id = we.userId
|
||||||
|
LEFT JOIN the_rapy_recuperation_enroll en ON en.takePartInLineId = we.lineId
|
||||||
|
LEFT JOIN the_rapy_recuperation_line_union_select us ON us.id = en.takePartInLineId
|
||||||
|
LEFT JOIN the_rapy_recuperation_line line ON line.id = us.lineId
|
||||||
|
$condition
|
||||||
|
""");
|
||||||
|
Cnd cnd = Cnd.NEW();
|
||||||
|
if (StrUtil.isNotBlank(searchName) && StrUtil.isNotBlank(searchKeyword)) {
|
||||||
|
cnd.and(Cnd.likeEX(searchName, searchKeyword));
|
||||||
|
}
|
||||||
|
if(StrUtil.isNotBlank(lineId)) {
|
||||||
|
cnd.andEX("we.lineId", "in", lineId.split(","));
|
||||||
|
}
|
||||||
|
cnd.andEX("u.unionid", "=", unionId);
|
||||||
|
cnd.andEX("u.unitid", "=", unitId);
|
||||||
|
cnd.andEX("we.evaluateScore", "=", evaluateScore);
|
||||||
|
cnd.groupBy("we.lineId");
|
||||||
|
sql.setCondition(cnd);
|
||||||
|
|
||||||
|
List<NutMap> listMap = enrollService.listMap(sql);
|
||||||
|
|
||||||
|
List<ExcelExportEntity> entities = new ArrayList<>();
|
||||||
|
entities.add(new ExcelExportEntity("线路","lineName",20));
|
||||||
|
entities.add(new ExcelExportEntity("出行时间","playStartTime",20));
|
||||||
|
entities.add(new ExcelExportEntity("工号","loginName",20));
|
||||||
|
entities.add(new ExcelExportEntity("姓名","userName",20));
|
||||||
|
entities.add(new ExcelExportEntity("所属单位","unitname",20));
|
||||||
|
entities.add(new ExcelExportEntity("所属工会","unionname",20));
|
||||||
|
entities.add(new ExcelExportEntity("在职状态","userState",20));
|
||||||
|
entities.add(new ExcelExportEntity("人员类型","personType",20));
|
||||||
|
entities.add(new ExcelExportEntity("评分","evaluateScore",20));
|
||||||
|
entities.add(new ExcelExportEntity("评价","evaluateText",40));
|
||||||
|
|
||||||
|
try {
|
||||||
|
ViTool.excelResponse(response, "评价人员名单.xls");
|
||||||
|
Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), entities, listMap);
|
||||||
|
workbook.write(response.getOutputStream());
|
||||||
|
} catch (Exception ignored) {}
|
||||||
|
}
|
||||||
|
}
|
||||||
-1
@@ -1,6 +1,5 @@
|
|||||||
package io.v.nutz.zhgh.therapyRecuperation.controller.theRapyConfig;
|
package io.v.nutz.zhgh.therapyRecuperation.controller.theRapyConfig;
|
||||||
|
|
||||||
|
|
||||||
import io.v.nutz.base.annontation.ViReturn;
|
import io.v.nutz.base.annontation.ViReturn;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationBaseManagement;
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationBaseManagement;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationConfig;
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationConfig;
|
||||||
|
|||||||
-1
@@ -1,7 +1,6 @@
|
|||||||
package io.v.nutz.zhgh.therapyRecuperation.model;
|
package io.v.nutz.zhgh.therapyRecuperation.model;
|
||||||
|
|
||||||
import cn.afterturn.easypoi.excel.annotation.Excel;
|
import cn.afterturn.easypoi.excel.annotation.Excel;
|
||||||
|
|
||||||
import io.v.nutz.sys.models.Sys_file;
|
import io.v.nutz.sys.models.Sys_file;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
|||||||
+6
-10
@@ -1,5 +1,6 @@
|
|||||||
package io.v.nutz.zhgh.therapyRecuperation.model;
|
package io.v.nutz.zhgh.therapyRecuperation.model;
|
||||||
|
|
||||||
|
import io.v.nutz.sys.models.Sys_file;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
import org.nutz.dao.entity.annotation.*;
|
import org.nutz.dao.entity.annotation.*;
|
||||||
@@ -67,21 +68,13 @@ public class TheRapyRecuperationConfig {
|
|||||||
@Column
|
@Column
|
||||||
@ColDefine(type = ColType.BOOLEAN)
|
@ColDefine(type = ColType.BOOLEAN)
|
||||||
@Comment("省内线路是否审核")
|
@Comment("省内线路是否审核")
|
||||||
@Default(value = "0")
|
|
||||||
private Boolean isSnLine;
|
private Boolean isSnLine;
|
||||||
|
|
||||||
@Column
|
@Column
|
||||||
@ColDefine(type = ColType.BOOLEAN)
|
@ColDefine(type = ColType.BOOLEAN)
|
||||||
@Comment("省外线路是否审核")
|
@Comment("省外线路是否审核")
|
||||||
@Default(value = "0")
|
|
||||||
private Boolean isSwLine;
|
private Boolean isSwLine;
|
||||||
|
|
||||||
@Column
|
|
||||||
@ColDefine(type = ColType.BOOLEAN)
|
|
||||||
@Comment("旅行社是否审核")
|
|
||||||
@Default(value = "0")
|
|
||||||
private Boolean travelAudit;
|
|
||||||
|
|
||||||
@Column
|
@Column
|
||||||
@ColDefine(type = ColType.MYSQL_JSON)
|
@ColDefine(type = ColType.MYSQL_JSON)
|
||||||
@Comment("标段")
|
@Comment("标段")
|
||||||
@@ -109,12 +102,15 @@ public class TheRapyRecuperationConfig {
|
|||||||
@Column
|
@Column
|
||||||
@ColDefine(type = ColType.BOOLEAN)
|
@ColDefine(type = ColType.BOOLEAN)
|
||||||
@Comment("床位信息")
|
@Comment("床位信息")
|
||||||
@Default(value = "0")
|
|
||||||
private Boolean bedInfo;
|
private Boolean bedInfo;
|
||||||
|
|
||||||
@Column
|
@Column
|
||||||
@ColDefine(type = ColType.INT)
|
@ColDefine(type = ColType.INT)
|
||||||
@Comment("家属信息")
|
@Comment("家属信息")
|
||||||
@Default(value = "0")
|
|
||||||
private Integer familyInfo;
|
private Integer familyInfo;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@ColDefine(type = ColType.MYSQL_JSON)
|
||||||
|
@Comment("承诺书")
|
||||||
|
private List<Sys_file> files;
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-4
@@ -157,6 +157,10 @@ public class TheRapyRecuperationEnroll extends BaseModel {
|
|||||||
|
|
||||||
private String lineId;
|
private String lineId;
|
||||||
|
|
||||||
|
private Date playStartTime;
|
||||||
|
|
||||||
|
private Date playEndTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 床位信息
|
* 床位信息
|
||||||
*/
|
*/
|
||||||
@@ -199,9 +203,8 @@ public class TheRapyRecuperationEnroll extends BaseModel {
|
|||||||
private Integer familyNumber;
|
private Integer familyNumber;
|
||||||
|
|
||||||
@Column
|
@Column
|
||||||
@ColDefine(type = ColType.BOOLEAN)
|
@ColDefine(type = ColType.VARCHAR, width = 100)
|
||||||
@Comment("是否报销")
|
@Comment("签字")
|
||||||
private Boolean isReimbursement;
|
private String sign;
|
||||||
|
|
||||||
private String firstLetter;
|
|
||||||
}
|
}
|
||||||
|
|||||||
+58
@@ -0,0 +1,58 @@
|
|||||||
|
package io.v.nutz.zhgh.therapyRecuperation.model;
|
||||||
|
|
||||||
|
import io.v.nutz.base.model.BaseModel;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import org.nutz.dao.entity.annotation.*;
|
||||||
|
import org.nutz.dao.interceptor.annotation.PrevInsert;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Table
|
||||||
|
public class TheRapyRecuperationEvaluate extends BaseModel implements Serializable {
|
||||||
|
|
||||||
|
@Name
|
||||||
|
@Column
|
||||||
|
@Comment("ID")
|
||||||
|
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||||
|
@PrevInsert(uu32 = true)
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Comment("参加线路id")
|
||||||
|
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||||
|
private String lineId;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Comment("用户ID")
|
||||||
|
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||||
|
private String userId;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Comment("姓名")
|
||||||
|
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||||
|
private String userName;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Comment("工号")
|
||||||
|
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||||
|
private String loginName;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Comment("评分")
|
||||||
|
@ColDefine(type = ColType.VARCHAR, width = 20)
|
||||||
|
private String evaluateScore;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Comment("评价内容")
|
||||||
|
@ColDefine(type = ColType.VARCHAR, width = 100)
|
||||||
|
private String evaluateText;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Comment("评价时间")
|
||||||
|
@ColDefine(type = ColType.DATETIME)
|
||||||
|
private Date applyDate;
|
||||||
|
}
|
||||||
+15
-2
@@ -1,6 +1,7 @@
|
|||||||
package io.v.nutz.zhgh.therapyRecuperation.model;
|
package io.v.nutz.zhgh.therapyRecuperation.model;
|
||||||
|
|
||||||
import cn.wizzer.framework.base.model.BaseModel;
|
import cn.wizzer.framework.base.model.BaseModel;
|
||||||
|
import io.v.nutz.sys.models.Sys_file;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
@@ -8,6 +9,7 @@ import org.nutz.dao.entity.annotation.*;
|
|||||||
import org.nutz.dao.interceptor.annotation.PrevInsert;
|
import org.nutz.dao.interceptor.annotation.PrevInsert;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @FileName io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLine
|
* @FileName io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLine
|
||||||
@@ -120,11 +122,11 @@ public class TheRapyRecuperationLine extends BaseModel {
|
|||||||
@Column
|
@Column
|
||||||
@ColDefine(type = ColType.MYSQL_JSON)
|
@ColDefine(type = ColType.MYSQL_JSON)
|
||||||
@Comment("缩略图")
|
@Comment("缩略图")
|
||||||
private String files;
|
private List<Sys_file> files;
|
||||||
|
|
||||||
@Column
|
@Column
|
||||||
@ColDefine(type = ColType.INT)
|
@ColDefine(type = ColType.INT)
|
||||||
@Comment("报名模式(1.分工会 2.自由)")
|
@Comment("报名模式(1.分工会 2.自由 3.个人)")
|
||||||
private Integer signUpMode;
|
private Integer signUpMode;
|
||||||
|
|
||||||
@Column
|
@Column
|
||||||
@@ -147,7 +149,18 @@ public class TheRapyRecuperationLine extends BaseModel {
|
|||||||
@Comment("联系电话")
|
@Comment("联系电话")
|
||||||
private String lineContactPhone;
|
private String lineContactPhone;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@ColDefine(type = ColType.VARCHAR)
|
||||||
|
@Comment("旅行社地点")
|
||||||
|
private String travelAgencyPlace;
|
||||||
|
|
||||||
@One(field = "travelAgencyId")
|
@One(field = "travelAgencyId")
|
||||||
private TheRapyRecuperationTravelAgency travelAgency;
|
private TheRapyRecuperationTravelAgency travelAgency;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@ColDefine(type = ColType.BOOLEAN)
|
||||||
|
@Comment("开放选择")
|
||||||
|
@Default("0")
|
||||||
|
private boolean openChoose;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+42
-4
@@ -6,8 +6,10 @@ import lombok.EqualsAndHashCode;
|
|||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
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 org.nutz.lang.util.NutMap;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -117,7 +119,7 @@ public class TheRapyRecuperationLineUnionSelect extends BaseModel {
|
|||||||
|
|
||||||
@Column
|
@Column
|
||||||
@ColDefine(type = ColType.INT)
|
@ColDefine(type = ColType.INT)
|
||||||
@Comment("报名模式、组织形式(1.分工会 2.校工会)")
|
@Comment("报名模式、组织形式(1.分工会 2.校工会 3.个人)")
|
||||||
private Integer signUpMode;
|
private Integer signUpMode;
|
||||||
|
|
||||||
@Column
|
@Column
|
||||||
@@ -126,7 +128,43 @@ public class TheRapyRecuperationLineUnionSelect extends BaseModel {
|
|||||||
private Boolean enable;
|
private Boolean enable;
|
||||||
|
|
||||||
@Column
|
@Column
|
||||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
@ColDefine(type = ColType.MYSQL_JSON)
|
||||||
@Comment("旅行社id")
|
@Comment("报名范围(1.自己选择 2.分工会 3.全校)")
|
||||||
private String travelAgencyId;
|
private List<Integer> signScope;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@ColDefine(type = ColType.MYSQL_JSON)
|
||||||
|
@Comment("人员名单")
|
||||||
|
private List<NutMap> chooseUserList;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@ColDefine(type = ColType.BOOLEAN)
|
||||||
|
@Comment("是否成团")
|
||||||
|
private Boolean groupSuccess;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@ColDefine(type = ColType.VARCHAR, width = 50)
|
||||||
|
@Comment("成团时间")
|
||||||
|
private String groupTime;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@ColDefine(type = ColType.INT)
|
||||||
|
@Comment("审核状态")
|
||||||
|
private Integer auditState;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@ColDefine(type = ColType.VARCHAR,width = 32)
|
||||||
|
@Comment("分工会审核id")
|
||||||
|
private String unionAuditId;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@ColDefine(type = ColType.VARCHAR,width = 32)
|
||||||
|
@Comment("单位领导审核id")
|
||||||
|
private String unitLeaderAuditId;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@ColDefine(type = ColType.VARCHAR,width = 32)
|
||||||
|
@Comment("校工会审核id")
|
||||||
|
private String schoolAuditId;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-4
@@ -1,12 +1,15 @@
|
|||||||
package io.v.nutz.zhgh.therapyRecuperation.model;
|
package io.v.nutz.zhgh.therapyRecuperation.model;
|
||||||
|
|
||||||
import cn.wizzer.framework.base.model.BaseModel;
|
import cn.wizzer.framework.base.model.BaseModel;
|
||||||
|
import io.v.nutz.sys.models.Sys_file;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
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;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @FileName io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationTravelAgency
|
* @FileName io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationTravelAgency
|
||||||
* @Description: 疗休养旅行社管理
|
* @Description: 疗休养旅行社管理
|
||||||
@@ -74,10 +77,10 @@ public class TheRapyRecuperationTravelAgency extends BaseModel {
|
|||||||
@Column
|
@Column
|
||||||
@ColDefine(type = ColType.MYSQL_JSON)
|
@ColDefine(type = ColType.MYSQL_JSON)
|
||||||
@Comment("缩略图")
|
@Comment("缩略图")
|
||||||
private String files;
|
private List<Sys_file> files;
|
||||||
|
|
||||||
@Column
|
@Column
|
||||||
@ColDefine(type = ColType.BOOLEAN)
|
@ColDefine(type = ColType.MYSQL_JSON)
|
||||||
@Comment("是否自由组团")
|
@Comment("旅行社地点")
|
||||||
private Boolean signUpTravelAgency;
|
private List<String> travelAgencyPlaces;
|
||||||
}
|
}
|
||||||
|
|||||||
-1
@@ -1,6 +1,5 @@
|
|||||||
package io.v.nutz.zhgh.therapyRecuperation.service;
|
package io.v.nutz.zhgh.therapyRecuperation.service;
|
||||||
|
|
||||||
|
|
||||||
import io.v.nutz.base.model.Audit;
|
import io.v.nutz.base.model.Audit;
|
||||||
import io.v.nutz.base.service.ViService;
|
import io.v.nutz.base.service.ViService;
|
||||||
import org.nutz.lang.util.NutMap;
|
import org.nutz.lang.util.NutMap;
|
||||||
|
|||||||
-1
@@ -1,6 +1,5 @@
|
|||||||
package io.v.nutz.zhgh.therapyRecuperation.service;
|
package io.v.nutz.zhgh.therapyRecuperation.service;
|
||||||
|
|
||||||
|
|
||||||
import io.v.nutz.base.service.ViService;
|
import io.v.nutz.base.service.ViService;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationType;
|
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationType;
|
||||||
|
|
||||||
|
|||||||
-1
@@ -1,6 +1,5 @@
|
|||||||
package io.v.nutz.zhgh.therapyRecuperation.service;
|
package io.v.nutz.zhgh.therapyRecuperation.service;
|
||||||
|
|
||||||
|
|
||||||
import io.v.nutz.base.service.ViService;
|
import io.v.nutz.base.service.ViService;
|
||||||
import org.nutz.lang.util.NutMap;
|
import org.nutz.lang.util.NutMap;
|
||||||
|
|
||||||
|
|||||||
+2
-17
@@ -1,10 +1,8 @@
|
|||||||
package io.v.nutz.zhgh.therapyRecuperation.service;
|
package io.v.nutz.zhgh.therapyRecuperation.service;
|
||||||
|
|
||||||
import cn.wizzer.framework.page.Pagination;
|
import cn.wizzer.framework.page.Pagination;
|
||||||
|
|
||||||
import io.v.nutz.base.query.PageForm;
|
import io.v.nutz.base.query.PageForm;
|
||||||
import io.v.nutz.base.service.ViService;
|
import io.v.nutz.base.service.ViService;
|
||||||
|
|
||||||
import io.v.nutz.sys.models.Sys_union;
|
import io.v.nutz.sys.models.Sys_union;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationEnroll;
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationEnroll;
|
||||||
import org.nutz.dao.Cnd;
|
import org.nutz.dao.Cnd;
|
||||||
@@ -33,8 +31,6 @@ public interface TheRapyRecuperationEnrollService extends ViService<TheRapyRecup
|
|||||||
|
|
||||||
List<NutMap> getSelectLineById(String lineId, String unionId, int trrt, Integer lineUnionType);
|
List<NutMap> getSelectLineById(String lineId, String unionId, int trrt, Integer lineUnionType);
|
||||||
|
|
||||||
Object openSignUser(String usId, String travelId, String searchKeyWord);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 线路报名
|
* 线路报名
|
||||||
*
|
*
|
||||||
@@ -73,19 +69,8 @@ public interface TheRapyRecuperationEnrollService extends ViService<TheRapyRecup
|
|||||||
*/
|
*/
|
||||||
void updateSignUpTravelAgency(TheRapyRecuperationEnroll enrollInfo);
|
void updateSignUpTravelAgency(TheRapyRecuperationEnroll enrollInfo);
|
||||||
|
|
||||||
/**
|
|
||||||
* 验证报名登记信息
|
|
||||||
*
|
|
||||||
* @param enrollInfo 登记信息
|
|
||||||
* @param loginName 用户名
|
|
||||||
* @return {@link Map}<{@link Boolean}, {@link String}>
|
|
||||||
*/
|
|
||||||
Map<Boolean, String> validSignUpInfo(String loginName, TheRapyRecuperationEnroll enrollInfo);
|
Map<Boolean, String> validSignUpInfo(String loginName, TheRapyRecuperationEnroll enrollInfo);
|
||||||
|
|
||||||
Map<Boolean, String> validSignUpInfoForZJXU(String loginName, TheRapyRecuperationEnroll enrollInfo);
|
|
||||||
|
|
||||||
Map<Boolean, String> validSignUpInfoForZJNU(String loginName, TheRapyRecuperationEnroll enrollInfo);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 我报名的页面数据
|
* 我报名的页面数据
|
||||||
*
|
*
|
||||||
@@ -120,7 +105,7 @@ public interface TheRapyRecuperationEnrollService extends ViService<TheRapyRecup
|
|||||||
* @param usUnionId usUnionId
|
* @param usUnionId usUnionId
|
||||||
* @return {@link NutMap}
|
* @return {@link NutMap}
|
||||||
*/
|
*/
|
||||||
NutMap selectLineAllInfo(String usId, String usUnionId, String year);
|
NutMap selectLineAllInfo(String usId, String usUnionId);
|
||||||
|
|
||||||
List<Sys_union> getTheRapyUnions(Integer year, int theRapyRecuperationType);
|
List<Sys_union> getTheRapyUnions(Integer year);
|
||||||
}
|
}
|
||||||
|
|||||||
-2
@@ -1,11 +1,9 @@
|
|||||||
package io.v.nutz.zhgh.therapyRecuperation.service;
|
package io.v.nutz.zhgh.therapyRecuperation.service;
|
||||||
|
|
||||||
import cn.wizzer.framework.page.Pagination;
|
import cn.wizzer.framework.page.Pagination;
|
||||||
|
|
||||||
import io.v.nutz.base.query.PageForm;
|
import io.v.nutz.base.query.PageForm;
|
||||||
import io.v.nutz.base.service.ViService;
|
import io.v.nutz.base.service.ViService;
|
||||||
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public interface TheRapyRecuperationLineAdjustmentService extends ViService {
|
public interface TheRapyRecuperationLineAdjustmentService extends ViService {
|
||||||
|
|||||||
-1
@@ -1,7 +1,6 @@
|
|||||||
package io.v.nutz.zhgh.therapyRecuperation.service;
|
package io.v.nutz.zhgh.therapyRecuperation.service;
|
||||||
|
|
||||||
import cn.wizzer.framework.page.Pagination;
|
import cn.wizzer.framework.page.Pagination;
|
||||||
|
|
||||||
import io.v.nutz.base.query.PageForm;
|
import io.v.nutz.base.query.PageForm;
|
||||||
import io.v.nutz.base.service.ViService;
|
import io.v.nutz.base.service.ViService;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationCluster;
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationCluster;
|
||||||
|
|||||||
-1
@@ -1,7 +1,6 @@
|
|||||||
package io.v.nutz.zhgh.therapyRecuperation.service;
|
package io.v.nutz.zhgh.therapyRecuperation.service;
|
||||||
|
|
||||||
import cn.wizzer.framework.page.Pagination;
|
import cn.wizzer.framework.page.Pagination;
|
||||||
|
|
||||||
import io.v.nutz.base.query.PageForm;
|
import io.v.nutz.base.query.PageForm;
|
||||||
import io.v.nutz.base.service.ViService;
|
import io.v.nutz.base.service.ViService;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLine;
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLine;
|
||||||
|
|||||||
+2
-3
@@ -1,7 +1,6 @@
|
|||||||
package io.v.nutz.zhgh.therapyRecuperation.service;
|
package io.v.nutz.zhgh.therapyRecuperation.service;
|
||||||
|
|
||||||
import cn.wizzer.framework.page.Pagination;
|
import cn.wizzer.framework.page.Pagination;
|
||||||
|
|
||||||
import io.v.nutz.base.query.PageForm;
|
import io.v.nutz.base.query.PageForm;
|
||||||
import io.v.nutz.base.service.ViService;
|
import io.v.nutz.base.service.ViService;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLineUnionSelect;
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLineUnionSelect;
|
||||||
@@ -25,7 +24,7 @@ public interface TheRapyRecuperationLineUnionSelectService extends ViService<The
|
|||||||
* @param cnd cnd
|
* @param cnd cnd
|
||||||
* @return {@link Pagination}
|
* @return {@link Pagination}
|
||||||
*/
|
*/
|
||||||
Pagination pageData(PageForm pageForm, Cnd cnd, Integer year);
|
Pagination pageData(PageForm pageForm, Cnd cnd, Integer year , Integer mode);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -41,7 +40,7 @@ public interface TheRapyRecuperationLineUnionSelectService extends ViService<The
|
|||||||
*
|
*
|
||||||
* @return {@link List}<{@link String}>
|
* @return {@link List}<{@link String}>
|
||||||
*/
|
*/
|
||||||
List<String> getHasSelectLineIds();
|
List<String> getHasSelectLineIds(Integer mode);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
-1
@@ -1,7 +1,6 @@
|
|||||||
package io.v.nutz.zhgh.therapyRecuperation.service;
|
package io.v.nutz.zhgh.therapyRecuperation.service;
|
||||||
|
|
||||||
import cn.wizzer.framework.page.Pagination;
|
import cn.wizzer.framework.page.Pagination;
|
||||||
|
|
||||||
import io.v.nutz.base.query.PageForm;
|
import io.v.nutz.base.query.PageForm;
|
||||||
import io.v.nutz.base.service.ViService;
|
import io.v.nutz.base.service.ViService;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationTravelAgency;
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationTravelAgency;
|
||||||
|
|||||||
+6
-8
@@ -2,9 +2,9 @@ package io.v.nutz.zhgh.therapyRecuperation.service.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import io.v.nutz.base.model.Audit;
|
import io.v.nutz.base.model.Audit;
|
||||||
import io.v.nutz.base.service.impl.ViServiceImpl;
|
|
||||||
import io.v.nutz.base.utils.MsgApi;
|
import io.v.nutz.base.utils.MsgApi;
|
||||||
import io.v.nutz.base.utils.Vi;
|
import io.v.nutz.base.utils.Vi;
|
||||||
|
import io.v.nutz.base.service.impl.ViServiceImpl;
|
||||||
import io.v.nutz.sys.models.Sys_user;
|
import io.v.nutz.sys.models.Sys_user;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationState;
|
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationState;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationEnrollBed;
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationEnrollBed;
|
||||||
@@ -22,7 +22,6 @@ import org.nutz.lang.Strings;
|
|||||||
import org.nutz.lang.util.NutMap;
|
import org.nutz.lang.util.NutMap;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
@IocBean(args = {"refer:dao"})
|
@IocBean(args = {"refer:dao"})
|
||||||
public class TheRapyRecuperationAuditServiceImpl extends ViServiceImpl<Audit> implements TheRapyRecuperationAuditService {
|
public class TheRapyRecuperationAuditServiceImpl extends ViServiceImpl<Audit> implements TheRapyRecuperationAuditService {
|
||||||
@@ -83,7 +82,6 @@ public class TheRapyRecuperationAuditServiceImpl extends ViServiceImpl<Audit> im
|
|||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
SELECT
|
SELECT
|
||||||
lxs.travelAgencyName,
|
lxs.travelAgencyName,
|
||||||
ta.travelAgencyName as joinTravelAgencyName,
|
|
||||||
enroll.*,
|
enroll.*,
|
||||||
line.lineName,
|
line.lineName,
|
||||||
if(enroll.takePartInUnionId!=enroll.selfUnionId,true,false) isTransferIn,
|
if(enroll.takePartInUnionId!=enroll.selfUnionId,true,false) isTransferIn,
|
||||||
@@ -92,8 +90,7 @@ public class TheRapyRecuperationAuditServiceImpl extends ViServiceImpl<Audit> im
|
|||||||
`the_rapy_recuperation_enroll` enroll
|
`the_rapy_recuperation_enroll` enroll
|
||||||
LEFT JOIN the_rapy_recuperation_line_union_select lineu ON lineu.id = enroll.takePartInLineId
|
LEFT JOIN the_rapy_recuperation_line_union_select lineu ON lineu.id = enroll.takePartInLineId
|
||||||
LEFT JOIN the_rapy_recuperation_line line ON line.id = lineu.lineId
|
LEFT JOIN the_rapy_recuperation_line line ON line.id = lineu.lineId
|
||||||
LEFT JOIN the_rapy_recuperation_travel_agency lxs ON lxs.id = lineu.travelAgencyId
|
LEFT JOIN the_rapy_recuperation_travel_agency lxs ON lxs.id = line.travelAgencyId
|
||||||
LEFT JOIN the_rapy_recuperation_travel_agency ta ON ta.id = enroll.takePartInTravelAgencyId
|
|
||||||
where enroll.id=@id
|
where enroll.id=@id
|
||||||
""").setParam("id", id);
|
""").setParam("id", id);
|
||||||
|
|
||||||
@@ -117,7 +114,9 @@ public class TheRapyRecuperationAuditServiceImpl extends ViServiceImpl<Audit> im
|
|||||||
}
|
}
|
||||||
List<TheRapyRecuperationEnrollCompanion> companionList = dao().query(TheRapyRecuperationEnrollCompanion.class, Cnd.where("trreId", "=", id));
|
List<TheRapyRecuperationEnrollCompanion> companionList = dao().query(TheRapyRecuperationEnrollCompanion.class, Cnd.where("trreId", "=", id));
|
||||||
companionList.forEach(v -> {
|
companionList.forEach(v -> {
|
||||||
v.setBedInfo(dao().fetch(TheRapyRecuperationEnrollBed.class, v.getBedInfoId()));
|
if(StrUtil.isNotBlank(v.getBedInfoId())) {
|
||||||
|
v.setBedInfo(dao().fetch(TheRapyRecuperationEnrollBed.class, v.getBedInfoId()));
|
||||||
|
}
|
||||||
});
|
});
|
||||||
map.addv("viewData", fetch.setv("companionList", companionList));
|
map.addv("viewData", fetch.setv("companionList", companionList));
|
||||||
|
|
||||||
@@ -135,11 +134,10 @@ public class TheRapyRecuperationAuditServiceImpl extends ViServiceImpl<Audit> im
|
|||||||
String content = "【智慧工会】%s老师您好,您报名的%s线路因报名人数不足已取消,请尽快进入智慧工会重新选择线路。"
|
String content = "【智慧工会】%s老师您好,您报名的%s线路因报名人数不足已取消,请尽快进入智慧工会重新选择线路。"
|
||||||
.formatted(user.getUsername(),theRapyRecuperationLine.getLineName());
|
.formatted(user.getUsername(),theRapyRecuperationLine.getLineName());
|
||||||
|
|
||||||
List list = List.of(Map.of("type", "User", "userId", user.getLoginname(), "name", user.getUsername()));
|
|
||||||
if (stateId.equals(TheRapyRecuperationState.PASS)) {
|
if (stateId.equals(TheRapyRecuperationState.PASS)) {
|
||||||
content = "【智慧工会】%s老师您好,您报名的%s线路已组团成功,请按约定出行。"
|
content = "【智慧工会】%s老师您好,您报名的%s线路已组团成功,请按约定出行。"
|
||||||
.formatted(user.getUsername(), theRapyRecuperationLine.getLineName());
|
.formatted(user.getUsername(), theRapyRecuperationLine.getLineName());
|
||||||
}
|
}
|
||||||
//msgApi.sendMsg(content, list, "疗休养", " IntelligenceMode", MsgApi.sendMode.normal.name());
|
msgApi.sendTextMsg(content,user.getLoginname());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-2
@@ -1,8 +1,7 @@
|
|||||||
package io.v.nutz.zhgh.therapyRecuperation.service.impl;
|
package io.v.nutz.zhgh.therapyRecuperation.service.impl;
|
||||||
|
|
||||||
import io.v.nutz.base.model.Audit;
|
|
||||||
import io.v.nutz.base.service.impl.ViServiceImpl;
|
|
||||||
import io.v.nutz.base.utils.DateUtil;
|
import io.v.nutz.base.utils.DateUtil;
|
||||||
|
import io.v.nutz.base.service.impl.ViServiceImpl;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationType;
|
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationType;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationConfig;
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationConfig;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationEnroll;
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationEnroll;
|
||||||
|
|||||||
+1
-2
@@ -1,8 +1,7 @@
|
|||||||
package io.v.nutz.zhgh.therapyRecuperation.service.impl;
|
package io.v.nutz.zhgh.therapyRecuperation.service.impl;
|
||||||
|
|
||||||
import io.v.nutz.base.service.impl.ViServiceImpl;
|
|
||||||
import io.v.nutz.base.utils.Vi;
|
import io.v.nutz.base.utils.Vi;
|
||||||
|
import io.v.nutz.base.service.impl.ViServiceImpl;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationEnrollJoinUserImportService;
|
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationEnrollJoinUserImportService;
|
||||||
import org.nutz.dao.Dao;
|
import org.nutz.dao.Dao;
|
||||||
import org.nutz.dao.Sqls;
|
import org.nutz.dao.Sqls;
|
||||||
|
|||||||
+142
-572
File diff suppressed because it is too large
Load Diff
+4
-4
@@ -2,10 +2,9 @@ package io.v.nutz.zhgh.therapyRecuperation.service.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.wizzer.framework.page.Pagination;
|
import cn.wizzer.framework.page.Pagination;
|
||||||
|
import io.v.nutz.base.utils.Vi;
|
||||||
import io.v.nutz.base.query.PageForm;
|
import io.v.nutz.base.query.PageForm;
|
||||||
import io.v.nutz.base.service.impl.ViServiceImpl;
|
import io.v.nutz.base.service.impl.ViServiceImpl;
|
||||||
import io.v.nutz.base.utils.Vi;
|
|
||||||
|
|
||||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationState;
|
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationState;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationLineAdjustmentService;
|
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationLineAdjustmentService;
|
||||||
@@ -55,7 +54,8 @@ public class TheRapyRecuperationLineAdjustmentServiceImpl extends ViServiceImpl
|
|||||||
us.id as usId,
|
us.id as usId,
|
||||||
us.playStartTime,
|
us.playStartTime,
|
||||||
us.playEndTime,
|
us.playEndTime,
|
||||||
line.files AS fileId,
|
line.files,
|
||||||
|
cast( line.files ->> '$[0].id' AS CHAR ) AS fileId,
|
||||||
create_gh.unionname AS createUnionName,
|
create_gh.unionname AS createUnionName,
|
||||||
ta.travelAgencyName,
|
ta.travelAgencyName,
|
||||||
us.unionId,
|
us.unionId,
|
||||||
@@ -81,7 +81,7 @@ public class TheRapyRecuperationLineAdjustmentServiceImpl extends ViServiceImpl
|
|||||||
cnd.and("us.playStartTime", "is not", null);
|
cnd.and("us.playStartTime", "is not", null);
|
||||||
//cnd.andEX("line.year", "=", year);
|
//cnd.andEX("line.year", "=", year);
|
||||||
cnd.andEX("line.id", "=", lineId);
|
cnd.andEX("line.id", "=", lineId);
|
||||||
if (ShiroUtil.hasAnyRoles("sysadmin,A06")) {
|
if (ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin")) {
|
||||||
cnd.andEX("us.unionId", "=", unionId);
|
cnd.andEX("us.unionId", "=", unionId);
|
||||||
cnd.andEX("us.signUpMode", "=", Strings.isNotBlank(unionId) ? 1 : 2);
|
cnd.andEX("us.signUpMode", "=", Strings.isNotBlank(unionId) ? 1 : 2);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
+3
-5
@@ -2,9 +2,8 @@ package io.v.nutz.zhgh.therapyRecuperation.service.impl;
|
|||||||
|
|
||||||
import cn.wizzer.framework.page.Pagination;
|
import cn.wizzer.framework.page.Pagination;
|
||||||
import io.v.nutz.base.query.PageForm;
|
import io.v.nutz.base.query.PageForm;
|
||||||
|
|
||||||
import io.v.nutz.base.service.impl.ViServiceImpl;
|
|
||||||
import io.v.nutz.base.utils.Vi;
|
import io.v.nutz.base.utils.Vi;
|
||||||
|
import io.v.nutz.base.service.impl.ViServiceImpl;
|
||||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationState;
|
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationState;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationCluster;
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationCluster;
|
||||||
@@ -122,7 +121,7 @@ public class TheRapyRecuperationLineClusterServiceImpl extends ViServiceImpl<The
|
|||||||
// Cnd lineCnd = Cnd.NEW();
|
// Cnd lineCnd = Cnd.NEW();
|
||||||
// //如果是超管 前端传工会id 就不查自由模式的线路 只查线路归属分工会的线路
|
// //如果是超管 前端传工会id 就不查自由模式的线路 只查线路归属分工会的线路
|
||||||
// //如果是分工会管理员 不查不查自由模式的线路 由校工会去组团
|
// //如果是分工会管理员 不查不查自由模式的线路 由校工会去组团
|
||||||
// if (ShiroUtil.hasAnyRoles("sysadmin,A06")) {
|
// if (ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin")) {
|
||||||
// if (StrUtil.isNotBlank(unionId)) {
|
// if (StrUtil.isNotBlank(unionId)) {
|
||||||
// sql.setVar("lineCnd", Cnd.where("1", "!=", "1"));
|
// sql.setVar("lineCnd", Cnd.where("1", "!=", "1"));
|
||||||
// } else {
|
// } else {
|
||||||
@@ -181,11 +180,10 @@ public class TheRapyRecuperationLineClusterServiceImpl extends ViServiceImpl<The
|
|||||||
""");
|
""");
|
||||||
Cnd cnd = Cnd.NEW();
|
Cnd cnd = Cnd.NEW();
|
||||||
Cnd summaryCnd = Cnd.NEW();
|
Cnd summaryCnd = Cnd.NEW();
|
||||||
summaryCnd.and("isNormal", "=", true);
|
|
||||||
summaryCnd.and("takePartInLineId", "=", "us.id");
|
summaryCnd.and("takePartInLineId", "=", "us.id");
|
||||||
summaryCnd.and("stateId", "=", TheRapyRecuperationState.PASS);
|
summaryCnd.and("stateId", "=", TheRapyRecuperationState.PASS);
|
||||||
//如果是超级管理和校工会管理员,查看校工会线路
|
//如果是超级管理和校工会管理员,查看校工会线路
|
||||||
if (ShiroUtil.hasAnyRoles("sysadmin,A06")) {
|
if (ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin")) {
|
||||||
cnd.andEX("us.unionId", "=", unionId);
|
cnd.andEX("us.unionId", "=", unionId);
|
||||||
cnd.andEX("us.signUpMode", "=", Strings.isNotBlank(unionId) ? 1 : 2);
|
cnd.andEX("us.signUpMode", "=", Strings.isNotBlank(unionId) ? 1 : 2);
|
||||||
}else{
|
}else{
|
||||||
|
|||||||
+14
-59
@@ -2,11 +2,12 @@ package io.v.nutz.zhgh.therapyRecuperation.service.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.wizzer.framework.page.Pagination;
|
import cn.wizzer.framework.page.Pagination;
|
||||||
|
import io.v.nutz.base.utils.Vi;
|
||||||
import io.v.nutz.base.query.PageForm;
|
import io.v.nutz.base.query.PageForm;
|
||||||
import io.v.nutz.base.service.impl.ViServiceImpl;
|
import io.v.nutz.base.service.impl.ViServiceImpl;
|
||||||
import io.v.nutz.base.utils.Vi;
|
|
||||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationLineCreateMode;
|
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationLineCreateMode;
|
||||||
|
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationSignUpMode;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationState;
|
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationState;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationEnrollCompanion;
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationEnrollCompanion;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLine;
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLine;
|
||||||
@@ -23,6 +24,7 @@ import org.nutz.ioc.loader.annotation.IocBean;
|
|||||||
import org.nutz.lang.util.NutMap;
|
import org.nutz.lang.util.NutMap;
|
||||||
import org.nutz.plugins.wkcache.annotation.CacheRemove;
|
import org.nutz.plugins.wkcache.annotation.CacheRemove;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -60,33 +62,10 @@ public class TheRapyRecuperationLineServiceImpl extends ViServiceImpl<TheRapyRec
|
|||||||
@Override
|
@Override
|
||||||
@Aop(TransAop.READ_COMMITTED)
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
public void addLine(TheRapyRecuperationLine line) {
|
public void addLine(TheRapyRecuperationLine line) {
|
||||||
boolean hasSchoolAdminRole = ShiroUtil.hasAnyRoles(List.of("sysadmin", "A06"));
|
if(line.getSignUpMode() == TheRapyRecuperationSignUpMode.UNION.getValue()) {
|
||||||
|
|
||||||
if (hasSchoolAdminRole) {
|
|
||||||
line.setCreateUnionId(null);
|
|
||||||
line.setCreateMode(TheRapyRecuperationLineCreateMode.SCHOOL.getValue());
|
|
||||||
insert(line);
|
|
||||||
} else if (ShiroUtil.hasRole("H04")) {
|
|
||||||
line.setCreateUnionId(Vi.getUnionId());
|
line.setCreateUnionId(Vi.getUnionId());
|
||||||
line.setCreateMode(TheRapyRecuperationLineCreateMode.UNION.getValue());
|
|
||||||
insert(line);
|
|
||||||
|
|
||||||
/*if (line.getSignUpMode() == TheRapyRecuperationSignUpMode.UNION.getValue()) {
|
|
||||||
TheRapyRecuperationLineUnionSelect unionSelect = new TheRapyRecuperationLineUnionSelect();
|
|
||||||
unionSelect.setUnionId(line.getCreateUnionId());
|
|
||||||
unionSelect.setLineId(line.getId());
|
|
||||||
unionSelect.setSelectTime(new Date());
|
|
||||||
unionSelect.setSelectUserId((String) io.v.nutz.web.commons.utils.ShiroUtil.getPrincipalProperty("id"));
|
|
||||||
|
|
||||||
unionSelect.setSignUpStartTime(line.getSignUpStartTime());
|
|
||||||
unionSelect.setSignUpEndTime(line.getSignUpEndTime());
|
|
||||||
unionSelect.setChangeEndTime(line.getChangeEndTime());
|
|
||||||
unionSelect.setPlayStartTime(line.getPlayStartTime());
|
|
||||||
unionSelect.setPlayEndTime(line.getPlayEndTime());
|
|
||||||
|
|
||||||
insert(unionSelect);
|
|
||||||
}*/
|
|
||||||
}
|
}
|
||||||
|
insert(line);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -98,34 +77,7 @@ public class TheRapyRecuperationLineServiceImpl extends ViServiceImpl<TheRapyRec
|
|||||||
@Aop(TransAop.READ_COMMITTED)
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
public void editLine(TheRapyRecuperationLine line) {
|
public void editLine(TheRapyRecuperationLine line) {
|
||||||
update(line);
|
update(line);
|
||||||
/*if (line.getSignUpMode() == TheRapyRecuperationSignUpMode.UNION.getValue()) {
|
deleteLineInfoCache(line.getId());
|
||||||
TheRapyRecuperationLineUnionSelect unionSelect = dao().fetch(TheRapyRecuperationLineUnionSelect.class, Cnd.where("lineId", "=", line.getId()));
|
|
||||||
|
|
||||||
if (unionSelect != null) {
|
|
||||||
unionSelect.setSignUpStartTime(line.getSignUpStartTime());
|
|
||||||
unionSelect.setSignUpEndTime(line.getSignUpEndTime());
|
|
||||||
unionSelect.setChangeEndTime(line.getChangeEndTime());
|
|
||||||
unionSelect.setPlayStartTime(line.getPlayStartTime());
|
|
||||||
unionSelect.setPlayEndTime(line.getPlayEndTime());
|
|
||||||
updateIgnoreNull(unionSelect);
|
|
||||||
} else {
|
|
||||||
TheRapyRecuperationLineUnionSelect insertUnionSelect = new TheRapyRecuperationLineUnionSelect();
|
|
||||||
insertUnionSelect.setUnionId(line.getCreateUnionId());
|
|
||||||
insertUnionSelect.setLineId(line.getId());
|
|
||||||
insertUnionSelect.setSelectTime(new Date());
|
|
||||||
insertUnionSelect.setSelectUserId((String) io.v.nutz.web.commons.utils.ShiroUtil.getPrincipalProperty("id"));
|
|
||||||
|
|
||||||
insertUnionSelect.setSignUpStartTime(line.getSignUpStartTime());
|
|
||||||
insertUnionSelect.setSignUpEndTime(line.getSignUpEndTime());
|
|
||||||
insertUnionSelect.setChangeEndTime(line.getChangeEndTime());
|
|
||||||
insertUnionSelect.setPlayStartTime(line.getPlayStartTime());
|
|
||||||
insertUnionSelect.setPlayEndTime(line.getPlayEndTime());
|
|
||||||
|
|
||||||
insert(insertUnionSelect);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
deleteLineInfoCache(line.getId());*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -161,8 +113,10 @@ public class TheRapyRecuperationLineServiceImpl extends ViServiceImpl<TheRapyRec
|
|||||||
line.createUnionId,
|
line.createUnionId,
|
||||||
line.signUpMode,
|
line.signUpMode,
|
||||||
line.createMode,
|
line.createMode,
|
||||||
line.files AS fileId,
|
line.files,
|
||||||
ifnull(gh.unionname, '校工会') AS createUnionName,
|
line.travelAgencyPlace,
|
||||||
|
cast( line.files ->> '$[0].id' AS CHAR ) AS fileId,
|
||||||
|
gh.unionname AS createUnionName,
|
||||||
u.username AS createUserName,
|
u.username AS createUserName,
|
||||||
ta.travelAgencyName,
|
ta.travelAgencyName,
|
||||||
ta.contact,
|
ta.contact,
|
||||||
@@ -209,19 +163,20 @@ public class TheRapyRecuperationLineServiceImpl extends ViServiceImpl<TheRapyRec
|
|||||||
enroll.userName,
|
enroll.userName,
|
||||||
enroll.unionName,
|
enroll.unionName,
|
||||||
enroll.unitName,
|
enroll.unitName,
|
||||||
|
enroll.familyNumber,
|
||||||
( SELECT COUNT( 1 ) FROM the_rapy_recuperation_enroll_companion WHERE trreId = enroll.id) isFamily
|
( SELECT COUNT( 1 ) FROM the_rapy_recuperation_enroll_companion WHERE trreId = enroll.id) isFamily
|
||||||
FROM
|
FROM
|
||||||
`the_rapy_recuperation_enroll` enroll
|
`the_rapy_recuperation_enroll` enroll
|
||||||
LEFT JOIN the_rapy_recuperation_line_union_select lineu ON lineu.id = enroll.takePartInLineId
|
LEFT JOIN the_rapy_recuperation_line_union_select lineu ON lineu.id = enroll.takePartInLineId
|
||||||
LEFT JOIN the_rapy_recuperation_line line ON line.id = lineu.lineId
|
LEFT JOIN the_rapy_recuperation_line line ON line.id = lineu.lineId
|
||||||
WHERE
|
WHERE
|
||||||
enroll.takePartInLineId = @takePartInLineId
|
lineu.id = @takePartInLineId
|
||||||
and enroll.stateId=@stateId
|
and enroll.stateId=@stateId
|
||||||
$unionCnd
|
$unionCnd
|
||||||
""").setParam("takePartInLineId", lineId).setParam("stateId", TheRapyRecuperationState.PASS);
|
""").setParam("takePartInLineId", lineId).setParam("stateId", TheRapyRecuperationState.PASS);
|
||||||
if (StrUtil.isNotBlank(unionId) && !ShiroUtil.hasAnyRoles("sysadmin")) {
|
if (StrUtil.isNotBlank(unionId) && !ShiroUtil.hasAnyRoles("sysadmin")) {
|
||||||
sql.setVar("unionCnd", "and (enroll.takePartInUnionId='%s' or enroll.selfUnionId='%s')".formatted(unionId, unionId));
|
// sql.setVar("unionCnd", "and (enroll.takePartInUnionId='%s' or enroll.selfUnionId='%s')".formatted(unionId, unionId));
|
||||||
//sql.setVar("unionCnd", "and enroll.selfUnionId='%s'".formatted(unionId));
|
sql.setVar("unionCnd", "and enroll.selfUnionId='%s'".formatted(unionId));
|
||||||
}
|
}
|
||||||
Pagination pagination = listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
Pagination pagination = listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||||
List<NutMap> list = pagination.getList();
|
List<NutMap> list = pagination.getList();
|
||||||
|
|||||||
+40
-49
@@ -3,10 +3,12 @@ package io.v.nutz.zhgh.therapyRecuperation.service.impl;
|
|||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.wizzer.framework.page.Pagination;
|
import cn.wizzer.framework.page.Pagination;
|
||||||
|
import io.v.nutz.base.utils.Roles;
|
||||||
|
import io.v.nutz.base.utils.Vi;
|
||||||
import io.v.nutz.base.query.PageForm;
|
import io.v.nutz.base.query.PageForm;
|
||||||
import io.v.nutz.base.service.impl.ViServiceImpl;
|
import io.v.nutz.base.service.impl.ViServiceImpl;
|
||||||
import io.v.nutz.base.utils.Vi;
|
import io.v.nutz.sys.models.Sys_user_role;
|
||||||
|
import io.v.nutz.sys.models.User;
|
||||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationEnroll;
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationEnroll;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLineUnionSelect;
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLineUnionSelect;
|
||||||
@@ -21,9 +23,11 @@ import org.nutz.ioc.aop.Aop;
|
|||||||
import org.nutz.ioc.loader.annotation.IocBean;
|
import org.nutz.ioc.loader.annotation.IocBean;
|
||||||
import org.nutz.lang.util.NutMap;
|
import org.nutz.lang.util.NutMap;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @FileName io.v.nutz.zhgh.therapyRecuperation.service.impl.TheRapyRecuperationLineUnionSelectServiceImpl
|
* @FileName io.v.nutz.zhgh.therapyRecuperation.service.impl.TheRapyRecuperationLineUnionSelectServiceImpl
|
||||||
@@ -48,7 +52,7 @@ public class TheRapyRecuperationLineUnionSelectServiceImpl extends ViServiceImpl
|
|||||||
* @return {@link Pagination}
|
* @return {@link Pagination}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Pagination pageData(PageForm pageForm, Cnd cnd, Integer year) {
|
public Pagination pageData(PageForm pageForm, Cnd cnd, Integer year, Integer mode) {
|
||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
select
|
select
|
||||||
line.id,
|
line.id,
|
||||||
@@ -60,14 +64,14 @@ public class TheRapyRecuperationLineUnionSelectServiceImpl extends ViServiceImpl
|
|||||||
line.isDisabled,
|
line.isDisabled,
|
||||||
line.playNumberOfDays,
|
line.playNumberOfDays,
|
||||||
line.createUnionId,
|
line.createUnionId,
|
||||||
GROUP_CONCAT(us.playStartTime,'至',us.playEndTime,ifnull(concat('(', ta.travelAgencyName, ')'), '') order by us.playStartTime) as playTimes,
|
GROUP_CONCAT(us.playStartTime,'至',us.playEndTime) as playTimes,
|
||||||
us.signUpStartTime,
|
us.signUpStartTime,
|
||||||
us.signUpEndTime,
|
us.signUpEndTime,
|
||||||
us.playStartTime,
|
us.playStartTime,
|
||||||
us.playEndTime,
|
us.playEndTime,
|
||||||
us.changeEndTime,
|
us.changeEndTime,
|
||||||
us.isOpen,
|
us.isOpen,
|
||||||
us.signUpMode,
|
line.signUpMode,
|
||||||
line.createMode,
|
line.createMode,
|
||||||
gh.unionname AS createUnionName,
|
gh.unionname AS createUnionName,
|
||||||
u.username AS createUserName,
|
u.username AS createUserName,
|
||||||
@@ -79,35 +83,27 @@ public class TheRapyRecuperationLineUnionSelectServiceImpl extends ViServiceImpl
|
|||||||
us.unionId as usUnionId,
|
us.unionId as usUnionId,
|
||||||
us.id as usId,
|
us.id as usId,
|
||||||
usUnion.unionname as belongUnionName,
|
usUnion.unionname as belongUnionName,
|
||||||
(SELECT COUNT(*) FROM the_rapy_recuperation_enroll WHERE takePartInLineId=us.id and isNormal=true) applyCount
|
su.username as selectUserName,
|
||||||
|
(SELECT COUNT(*) FROM the_rapy_recuperation_enroll WHERE takePartInLineId=line.id AND takePartInUnionId=@unionId) applyCount
|
||||||
from
|
from
|
||||||
the_rapy_recuperation_line line
|
the_rapy_recuperation_line line
|
||||||
|
LEFT JOIN the_rapy_recuperation_travel_agency ta on ta.id = line.travelAgencyId
|
||||||
LEFT JOIN sys_union gh ON gh.id = line.createUnionid
|
LEFT JOIN sys_union gh ON gh.id = line.createUnionid
|
||||||
LEFT JOIN sys_user u ON u.id = line.opBy
|
LEFT JOIN sys_user u ON u.id = line.opBy
|
||||||
LEFT JOIN the_rapy_recuperation_line_union_select us on us.lineId = line.id AND year(selectTime) = @year $us
|
LEFT JOIN the_rapy_recuperation_line_union_select us on us.lineId = line.id and year(selectTime) = @year $us
|
||||||
LEFT JOIN the_rapy_recuperation_travel_agency ta on ta.id = us.travelAgencyId
|
|
||||||
LEFT JOIN sys_union usUnion on usUnion.id = us.unionId
|
LEFT JOIN sys_union usUnion on usUnion.id = us.unionId
|
||||||
|
LEFT JOIN sys_user su on us.selectUserId = su.id
|
||||||
LEFT JOIN the_rapy_recuperation_lot lot on lot.id = line.lotId
|
LEFT JOIN the_rapy_recuperation_lot lot on lot.id = line.lotId
|
||||||
$condition
|
$condition
|
||||||
""");
|
""");
|
||||||
if(!ShiroUtil.hasAnyRoles("sysadmin, A06")) {
|
//sql.setVar("us", "AND us.selectUserId = '%s'".formatted(ShiroUtil.getPlatformUid()));
|
||||||
sql.setVar("us", "AND us.unionId = '%s' AND us.selectUserId = '%s'".formatted(Vi.getUnionId(), ShiroUtil.getPlatformUid()));
|
|
||||||
}
|
|
||||||
//sql.setParam("unionId", Vi.getUnionId());
|
|
||||||
//sql.setParam("userId", io.v.nutz.web.commons.utils.ShiroUtil.getPrincipalProperty("id"));
|
|
||||||
sql.setParam("year", year == null ? DateUtil.thisYear() : year);
|
sql.setParam("year", year == null ? DateUtil.thisYear() : year);
|
||||||
|
|
||||||
/*SqlExpressionGroup seg = new SqlExpressionGroup();
|
|
||||||
seg.or("line.createUnionId", "=", Vi.getUnionId());
|
|
||||||
seg.or("line.createMode", "=", TheRapyRecuperationLineCreateMode.SCHOOL.getValue());
|
|
||||||
cnd.and(seg);*/
|
|
||||||
|
|
||||||
cnd.groupBy("line.id");
|
cnd.groupBy("line.id");
|
||||||
sql.setCondition(cnd);
|
sql.setCondition(cnd);
|
||||||
Pagination pagination = list(pageForm, sql);
|
Pagination pagination = list(pageForm, sql);
|
||||||
List<NutMap> list = pagination.getList();
|
List<NutMap> list = pagination.getList();
|
||||||
|
|
||||||
List<String> hasSelectLineIds = getHasSelectLineIds();
|
List<String> hasSelectLineIds = getHasSelectLineIds(mode);
|
||||||
|
|
||||||
for (NutMap m : list) {
|
for (NutMap m : list) {
|
||||||
m.setv("isSelect", hasSelectLineIds.contains(m.getString("id")));
|
m.setv("isSelect", hasSelectLineIds.contains(m.getString("id")));
|
||||||
@@ -140,12 +136,26 @@ public class TheRapyRecuperationLineUnionSelectServiceImpl extends ViServiceImpl
|
|||||||
* @return {@link List}<{@link String}>
|
* @return {@link List}<{@link String}>
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<String> getHasSelectLineIds() {
|
public List<String> getHasSelectLineIds(Integer mode) {
|
||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
select lineId from the_rapy_recuperation_line_union_select
|
select lineId from the_rapy_recuperation_line_union_select $condition
|
||||||
where selectUserId = @userId
|
|
||||||
""");
|
""");
|
||||||
sql.setParam("userId", ShiroUtil.getPrincipalProperty("id"));
|
Cnd cnd = Cnd.NEW();
|
||||||
|
cnd.and("signUpMode", "=", mode);
|
||||||
|
if(mode == 1) {
|
||||||
|
cnd.and("unionId", "=", Vi.getUnionId());
|
||||||
|
} else if(mode == 2) {
|
||||||
|
//既然你想校工会组织的线路,校工会的人都可以看,那就又根据角色查又根据部门查,可以吧
|
||||||
|
//想得多
|
||||||
|
List<Sys_user_role> userRoles = dao().query(Sys_user_role.class, Cnd.where("roleId", "=", "9b01918f873645048f8a85a4fc06d135"));
|
||||||
|
List<String> list = userRoles.stream().map(Sys_user_role::getUserId).distinct().toList();
|
||||||
|
List<User> userList = dao().query(User.class, Cnd.where("unitId", "=", "100414"));
|
||||||
|
List<String> idListByUnit = userList.stream().map(User::getId).toList();
|
||||||
|
cnd.and("selectUserId", "in", Stream.concat(list.stream(), idListByUnit.stream()).toList());
|
||||||
|
} else {
|
||||||
|
cnd.and("selectUserId", "=", ShiroUtil.getUserId());
|
||||||
|
}
|
||||||
|
sql.setCondition(cnd);
|
||||||
List<NutMap> lineIdsMap = (List<NutMap>) Daos.query(dao(), sql.toString(), Sqls.callback.maps());
|
List<NutMap> lineIdsMap = (List<NutMap>) Daos.query(dao(), sql.toString(), Sqls.callback.maps());
|
||||||
return lineIdsMap.stream().map(v -> v.getString("lineId")).collect(Collectors.toList());
|
return lineIdsMap.stream().map(v -> v.getString("lineId")).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
@@ -159,34 +169,16 @@ public class TheRapyRecuperationLineUnionSelectServiceImpl extends ViServiceImpl
|
|||||||
@Override
|
@Override
|
||||||
public Object selectLineInfo(String lineId, String unionId, Integer mode, Integer year) {
|
public Object selectLineInfo(String lineId, String unionId, Integer mode, Integer year) {
|
||||||
Sql sql;
|
Sql sql;
|
||||||
|
|
||||||
sql = Sqls.create("""
|
sql = Sqls.create("""
|
||||||
select
|
select
|
||||||
us.id,
|
*
|
||||||
lineId,
|
|
||||||
signUpStartTime,
|
|
||||||
signUpEndTime,
|
|
||||||
changeEndTime,
|
|
||||||
playStartTime,
|
|
||||||
playEndTime,
|
|
||||||
us.contact,
|
|
||||||
us.contactPhone,
|
|
||||||
minimumGroupSize,
|
|
||||||
trafficTools,
|
|
||||||
estimatedCost,
|
|
||||||
estimatedFamilyNumbers,
|
|
||||||
us.travelAgencyId,
|
|
||||||
signUpMode,
|
|
||||||
enable,
|
|
||||||
ta.travelAgencyName
|
|
||||||
from
|
from
|
||||||
the_rapy_recuperation_line_union_select us
|
the_rapy_recuperation_line_union_select
|
||||||
left join the_rapy_recuperation_travel_agency ta on ta.id = us.travelAgencyId
|
|
||||||
where unionId = @unionId
|
where unionId = @unionId
|
||||||
and lineId = @lineId
|
and lineId = @lineId
|
||||||
and signUpMode = @mode
|
and signUpMode = @mode
|
||||||
and year(selectTime) = @year
|
and year(selectTime) = @year
|
||||||
ORDER BY signUpStartTime,playStartTime ASC
|
ORDER BY signUpStartTime ASC
|
||||||
""");
|
""");
|
||||||
sql.setParam("unionId", unionId);
|
sql.setParam("unionId", unionId);
|
||||||
sql.setParam("lineId", lineId);
|
sql.setParam("lineId", lineId);
|
||||||
@@ -194,7 +186,6 @@ public class TheRapyRecuperationLineUnionSelectServiceImpl extends ViServiceImpl
|
|||||||
sql.setParam("year", year == null ? DateUtil.thisYear() : year);
|
sql.setParam("year", year == null ? DateUtil.thisYear() : year);
|
||||||
return listMap(sql);
|
return listMap(sql);
|
||||||
|
|
||||||
|
|
||||||
// TheRapyRecuperationLine line = dao().fetch(TheRapyRecuperationLine.class, lineId);
|
// TheRapyRecuperationLine line = dao().fetch(TheRapyRecuperationLine.class, lineId);
|
||||||
// if (line.getSignUpMode() == TheRapyRecuperationSignUpMode.UNION.getValue()) {
|
// if (line.getSignUpMode() == TheRapyRecuperationSignUpMode.UNION.getValue()) {
|
||||||
// sql = Sqls.create("""
|
// sql = Sqls.create("""
|
||||||
|
|||||||
+2
-6
@@ -3,9 +3,6 @@ package io.v.nutz.zhgh.therapyRecuperation.service.impl;
|
|||||||
import cn.wizzer.framework.page.Pagination;
|
import cn.wizzer.framework.page.Pagination;
|
||||||
import io.v.nutz.base.query.PageForm;
|
import io.v.nutz.base.query.PageForm;
|
||||||
import io.v.nutz.base.service.impl.ViServiceImpl;
|
import io.v.nutz.base.service.impl.ViServiceImpl;
|
||||||
import io.v.nutz.base.utils.Vi;
|
|
||||||
|
|
||||||
|
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationTravelAgency;
|
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationTravelAgency;
|
||||||
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationTravelAgencyService;
|
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationTravelAgencyService;
|
||||||
import org.nutz.dao.Chain;
|
import org.nutz.dao.Chain;
|
||||||
@@ -84,7 +81,7 @@ public class TheRapyRecuperationTravelAgencyServiceImpl extends ViServiceImpl<Th
|
|||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
select
|
select
|
||||||
*,
|
*,
|
||||||
files as fileId
|
cast(files ->> '$[0].id' as char) as fileId
|
||||||
from
|
from
|
||||||
the_rapy_recuperation_travel_agency $condition
|
the_rapy_recuperation_travel_agency $condition
|
||||||
""");
|
""");
|
||||||
@@ -119,8 +116,7 @@ public class TheRapyRecuperationTravelAgencyServiceImpl extends ViServiceImpl<Th
|
|||||||
LEFT JOIN the_rapy_recuperation_travel_agency agency ON agency.id = enroll.takePartInTravelAgencyId
|
LEFT JOIN the_rapy_recuperation_travel_agency agency ON agency.id = enroll.takePartInTravelAgencyId
|
||||||
WHERE
|
WHERE
|
||||||
enroll.takePartInTravelAgencyId = @takePartInTravelAgencyId
|
enroll.takePartInTravelAgencyId = @takePartInTravelAgencyId
|
||||||
and enroll.selfUnionId = @unionId
|
""").setParam("takePartInTravelAgencyId", id);
|
||||||
""").setParam("takePartInTravelAgencyId", id).setParam("unionId", Vi.getUnionId());
|
|
||||||
return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
</h3>
|
</h3>
|
||||||
</div>
|
</div>
|
||||||
<el-descriptions :column="2" border class="viewTable">
|
<el-descriptions :column="2" border class="viewTable">
|
||||||
<el-descriptions-item label="工号">{{ viewData.loginName }}</el-descriptions-item>
|
<el-descriptions-item label="一卡通号">{{ viewData.loginName }}</el-descriptions-item>
|
||||||
<el-descriptions-item label="姓名">{{ viewData.userName }}</el-descriptions-item>
|
<el-descriptions-item label="姓名">{{ viewData.userName }}</el-descriptions-item>
|
||||||
<el-descriptions-item label="性别">{{ viewData.sex }}</el-descriptions-item>
|
<el-descriptions-item label="性别">{{ viewData.sex }}</el-descriptions-item>
|
||||||
<el-descriptions-item label="身份证号">{{ viewData.idCard }}</el-descriptions-item>
|
<el-descriptions-item label="身份证号">{{ viewData.idCard }}</el-descriptions-item>
|
||||||
@@ -42,19 +42,21 @@
|
|||||||
{{ viewData.isFamily ? '携带' : '未携带' }}
|
{{ viewData.isFamily ? '携带' : '未携带' }}
|
||||||
</span>
|
</span>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="床型">{{ viewData.bedInfo.bedType }}</el-descriptions-item>
|
<template v-if="modifyConfig.bedInfo">
|
||||||
<el-descriptions-item label="床位">{{
|
<el-descriptions-item label="床型">{{ viewData.bedInfo.bedType }}</el-descriptions-item>
|
||||||
viewData.bedInfo.bedNum ? viewData.bedInfo.bedNum : '暂无'
|
<el-descriptions-item label="床位">{{
|
||||||
}}
|
viewData.bedInfo.bedNum ? viewData.bedInfo.bedNum : '暂无'
|
||||||
</el-descriptions-item>
|
}}
|
||||||
|
</el-descriptions-item>
|
||||||
|
|
||||||
<el-descriptions-item label="意向拼床人">
|
<el-descriptions-item label="意向拼床人">
|
||||||
{{ viewData.bedInfo.otherSleepUser ? viewData.bedInfo.otherSleepUser : '暂无' }}
|
{{ viewData.bedInfo.otherSleepUser ? viewData.bedInfo.otherSleepUser : '暂无' }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
</template>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="panel panel-default mt20" style="border: none">
|
<div v-if="modifyConfig.familyInfo == 2" class="panel panel-default mt20" style="border: none">
|
||||||
<div class="panel-heading" style="background: #fafafa;border:1px solid #ebeef5;border-bottom: none">
|
<div class="panel-heading" style="background: #fafafa;border:1px solid #ebeef5;border-bottom: none">
|
||||||
<h3 class="panel-title">
|
<h3 class="panel-title">
|
||||||
同伴信息
|
同伴信息
|
||||||
@@ -86,7 +88,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="所属分工会审核信息" name="2" v-if="viewData.selfUnionAuditId">
|
<el-tab-pane label="所属分工会审核信息" name="2" v-if="viewData.selfUnionAuditId && viewData.selfUnionAudit">
|
||||||
<div class="panel panel-default mt20" style="border: none">
|
<div class="panel panel-default mt20" style="border: none">
|
||||||
<div class="panel-heading" style="background: #fafafa;border:1px solid #ebeef5;border-bottom: none">
|
<div class="panel-heading" style="background: #fafafa;border:1px solid #ebeef5;border-bottom: none">
|
||||||
<h3 class="panel-title">
|
<h3 class="panel-title">
|
||||||
@@ -104,7 +106,7 @@
|
|||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
</div>
|
</div>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="意向线路分工会审核信息" name="3" v-if="viewData.joinLineUnionAuditId">
|
<el-tab-pane label="意向线路分工会审核信息" name="3" v-if="viewData.joinLineUnionAuditId && viewData.joinLineUnionAudit">
|
||||||
<div class="panel panel-default mt20" style="border: none">
|
<div class="panel panel-default mt20" style="border: none">
|
||||||
<div class="panel-heading" style="background: #fafafa;border:1px solid #ebeef5;border-bottom: none">
|
<div class="panel-heading" style="background: #fafafa;border:1px solid #ebeef5;border-bottom: none">
|
||||||
<h3 class="panel-title">
|
<h3 class="panel-title">
|
||||||
@@ -147,6 +149,7 @@ module.exports = {
|
|||||||
bedInfo: {},
|
bedInfo: {},
|
||||||
},
|
},
|
||||||
loading: false,
|
loading: false,
|
||||||
|
modifyConfig:{}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@@ -169,9 +172,16 @@ module.exports = {
|
|||||||
openAudit(id, activeName) {
|
openAudit(id, activeName) {
|
||||||
this.findOne(id)
|
this.findOne(id)
|
||||||
this.activeName = activeName
|
this.activeName = activeName
|
||||||
}
|
},
|
||||||
|
async getModifyConfig() {
|
||||||
|
const res = await $.post('/platform/theRapyRecuperation/TheRapyConfig/findOne')
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.modifyConfig = res.data
|
||||||
|
}
|
||||||
|
},
|
||||||
},
|
},
|
||||||
created() {
|
async created() {
|
||||||
|
await this.getModifyConfig();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
</h3>
|
</h3>
|
||||||
</div>
|
</div>
|
||||||
<el-descriptions :column="2" border class="viewTable">
|
<el-descriptions :column="2" border class="viewTable">
|
||||||
<el-descriptions-item label="工号">{{ viewData.loginName }}</el-descriptions-item>
|
<el-descriptions-item label="一卡通号">{{ viewData.loginName }}</el-descriptions-item>
|
||||||
<el-descriptions-item label="姓名">{{ viewData.userName }}</el-descriptions-item>
|
<el-descriptions-item label="姓名">{{ viewData.userName }}</el-descriptions-item>
|
||||||
<el-descriptions-item label="性别">{{ viewData.sex }}</el-descriptions-item>
|
<el-descriptions-item label="性别">{{ viewData.sex }}</el-descriptions-item>
|
||||||
<el-descriptions-item label="身份证号">{{ viewData.idCard }}</el-descriptions-item>
|
<el-descriptions-item label="身份证号">{{ viewData.idCard }}</el-descriptions-item>
|
||||||
@@ -42,19 +42,22 @@
|
|||||||
{{ viewData.isFamily ? '携带' : '未携带' }}
|
{{ viewData.isFamily ? '携带' : '未携带' }}
|
||||||
</span>
|
</span>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="床型">{{ viewData.bedInfo.bedType }}</el-descriptions-item>
|
|
||||||
<el-descriptions-item label="床位">{{
|
|
||||||
viewData.bedInfo.bedNum ? viewData.bedInfo.bedNum : '暂无'
|
|
||||||
}}
|
|
||||||
</el-descriptions-item>
|
|
||||||
|
|
||||||
<el-descriptions-item label="意向拼床人">
|
<template v-if="modifyConfig.bedInfo">
|
||||||
{{ viewData.bedInfo.otherSleepUser ? viewData.bedInfo.otherSleepUser : '暂无' }}
|
<el-descriptions-item label="床型">{{ viewData.bedInfo.bedType }}</el-descriptions-item>
|
||||||
</el-descriptions-item>
|
<el-descriptions-item label="床位">{{
|
||||||
|
viewData.bedInfo.bedNum ? viewData.bedInfo.bedNum : '暂无'
|
||||||
|
}}
|
||||||
|
</el-descriptions-item>
|
||||||
|
|
||||||
|
<el-descriptions-item label="意向拼床人">
|
||||||
|
{{ viewData.bedInfo.otherSleepUser ? viewData.bedInfo.otherSleepUser : '暂无' }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</template>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="panel panel-default mt20" style="border: none">
|
<div v-if="modifyConfig.familyInfo == 2" class="panel panel-default mt20" style="border: none">
|
||||||
<div class="panel-heading" style="background: #fafafa;border:1px solid #ebeef5;border-bottom: none">
|
<div class="panel-heading" style="background: #fafafa;border:1px solid #ebeef5;border-bottom: none">
|
||||||
<h3 class="panel-title">
|
<h3 class="panel-title">
|
||||||
同伴信息
|
同伴信息
|
||||||
@@ -129,6 +132,7 @@ module.exports = {
|
|||||||
bedInfo: {},
|
bedInfo: {},
|
||||||
},
|
},
|
||||||
loading: false,
|
loading: false,
|
||||||
|
modifyConfig:{}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@@ -149,9 +153,16 @@ module.exports = {
|
|||||||
openAudit(id, activeName) {
|
openAudit(id, activeName) {
|
||||||
this.findOne(id)
|
this.findOne(id)
|
||||||
this.activeName = activeName
|
this.activeName = activeName
|
||||||
}
|
},
|
||||||
|
async getModifyConfig() {
|
||||||
|
const res = await $.post('/platform/theRapyRecuperation/TheRapyConfig/findOne')
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.modifyConfig = res.data
|
||||||
|
}
|
||||||
|
},
|
||||||
},
|
},
|
||||||
created() {
|
async created() {
|
||||||
|
await this.getModifyConfig();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -279,9 +279,9 @@ layout("/mobile/platform.html"){
|
|||||||
</div>
|
</div>
|
||||||
<div class="van-card-body">
|
<div class="van-card-body">
|
||||||
<van-field label="姓名" readonly v-model="formData.userName"></van-field>
|
<van-field label="姓名" readonly v-model="formData.userName"></van-field>
|
||||||
<van-field label="工号" readonly v-model="formData.loginName"></van-field>
|
<van-field label="一卡通号" readonly v-model="formData.loginName"></van-field>
|
||||||
<van-field label="身份证号" name="idCard" :rules="[{ required: true }]"
|
<van-field label="身份证件" name="idCard" :rules="[{ required: true }]"
|
||||||
placeholder="请填写身份证号" v-model="formData.idCard"></van-field>
|
placeholder="请填写身份证号、护照、台胞证等" v-model="formData.idCard"></van-field>
|
||||||
<van-field label="手机号" name="mobile" :rules="[{ required: true }]"
|
<van-field label="手机号" name="mobile" :rules="[{ required: true }]"
|
||||||
placeholder="请填写手机号" v-model="formData.mobile"></van-field>
|
placeholder="请填写手机号" v-model="formData.mobile"></van-field>
|
||||||
<van-field label="所属工会" readonly v-model="formData.unionName"></van-field>
|
<van-field label="所属工会" readonly v-model="formData.unionName"></van-field>
|
||||||
@@ -335,7 +335,7 @@ layout("/mobile/platform.html"){
|
|||||||
<van-tab v-for="item, index in formData.companionList" :title="'随行人' + (index + 1)">
|
<van-tab v-for="item, index in formData.companionList" :title="'随行人' + (index + 1)">
|
||||||
<van-field label="姓名" name="userName" placeholder="请填写姓名" v-model="item.userName"
|
<van-field label="姓名" name="userName" placeholder="请填写姓名" v-model="item.userName"
|
||||||
:rules="[{ required: true }]"></van-field>
|
:rules="[{ required: true }]"></van-field>
|
||||||
<!--<van-field label="工号" name="loginName" placeholder="若没有工号,请忽略此项" v-model="item.loginName"></van-field>-->
|
<!--<van-field label="一卡通号" name="loginName" placeholder="若没有工号,请忽略此项" v-model="item.loginName"></van-field>-->
|
||||||
<van-field label="年龄" name="age" placeholder="请填写年龄" v-model="item.age"
|
<van-field label="年龄" name="age" placeholder="请填写年龄" v-model="item.age"
|
||||||
type="digit" :rules="[{ required: true }]"></van-field>
|
type="digit" :rules="[{ required: true }]"></van-field>
|
||||||
<van-field :rules="[{ required: true, message: '请选择性别' }]" label="性别" name="validator">
|
<van-field :rules="[{ required: true, message: '请选择性别' }]" label="性别" name="validator">
|
||||||
@@ -346,7 +346,7 @@ layout("/mobile/platform.html"){
|
|||||||
</van-radio-group>
|
</van-radio-group>
|
||||||
</template>
|
</template>
|
||||||
</van-field>
|
</van-field>
|
||||||
<van-field label="身份证号" name="idCard" placeholder="请填写身份证号"
|
<van-field label="身份证件" name="idCard" placeholder="请填写身份证号、护照、台胞证等"
|
||||||
:rules="[{ required: true }]" type="digit"
|
:rules="[{ required: true }]" type="digit"
|
||||||
v-model="item.idCard"></van-field>
|
v-model="item.idCard"></van-field>
|
||||||
<van-field label="手机号" name="mobile" placeholder="请填写手机号"
|
<van-field label="手机号" name="mobile" placeholder="请填写手机号"
|
||||||
@@ -445,7 +445,7 @@ layout("/mobile/platform.html"){
|
|||||||
active: 0,
|
active: 0,
|
||||||
roomColumns: ['大床房', '标准间'],
|
roomColumns: ['大床房', '标准间'],
|
||||||
bedColumns: ['1', '2'],
|
bedColumns: ['1', '2'],
|
||||||
companionColumns: ['亲属', '朋友'],
|
companionColumns: ['配偶', '子女'],
|
||||||
bedVisible: false,
|
bedVisible: false,
|
||||||
roomVisible: false,
|
roomVisible: false,
|
||||||
companionVisible: false,
|
companionVisible: false,
|
||||||
|
|||||||
@@ -36,16 +36,16 @@ layout("/mobile/platform.html"){
|
|||||||
<div id="app" v-cloak>
|
<div id="app" v-cloak>
|
||||||
|
|
||||||
<van-sticky>
|
<van-sticky>
|
||||||
<van-nav-bar @click-left="history.back()" fixed left-arrow placeholder title="职工疗休养"></van-nav-bar>
|
<van-nav-bar @click-left="pjaxReplace('/mobile/index')" fixed left-arrow placeholder title="职工疗休养"></van-nav-bar>
|
||||||
</van-sticky>
|
</van-sticky>
|
||||||
|
|
||||||
<!--顶部轮播图-->
|
<!--顶部轮播图-->
|
||||||
<van-swipe class="my-swipe" :autoplay="3000" indicator-color="white">
|
<van-swipe class="my-swipe" :autoplay="3000" indicator-color="white">
|
||||||
<van-swipe-item>
|
<van-swipe-item>
|
||||||
<van-image width="100%" height="180" src="/assets/mobile/img/therapyRecuperation/index1.jpg"></van-image>
|
<van-image width="100%" height="180" src="/assets/mobile/img/therapyRecuperation/index1.jpeg"></van-image>
|
||||||
</van-swipe-item>
|
</van-swipe-item>
|
||||||
<van-swipe-item>
|
<van-swipe-item>
|
||||||
<van-image height="180" src="/assets/mobile/img/therapyRecuperation/index2.jpg"></van-image>
|
<van-image height="180" src="/assets/mobile/img/therapyRecuperation/index1.jpeg"></van-image>
|
||||||
</van-swipe-item>
|
</van-swipe-item>
|
||||||
</van-swipe>
|
</van-swipe>
|
||||||
|
|
||||||
@@ -60,20 +60,11 @@ layout("/mobile/platform.html"){
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!--疗休养描述-->
|
<!--疗休养描述-->
|
||||||
<div class="van-doc-card" style="margin-top: 20px;margin-bottom: 60px">
|
<div class="van-doc-card" style="margin-top: 20px">
|
||||||
<van-image width="190" height="43" src="/assets/mobile/img/therapyRecuperation/title.png"></van-image>
|
<van-image width="190" height="43" src="/assets/mobile/img/therapyRecuperation/title.png"></van-image>
|
||||||
<div class="pre_text" v-html="configData.notice"></div>
|
<div class="pre_text" v-html="configData.notice"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
|
||||||
<van-tabbar v-model="tarBarActive">
|
|
||||||
<van-tabbar-item icon="home-o" replace url="/platform/mobile/theRapyRecuperation/index">疗休养报名
|
|
||||||
</van-tabbar-item>
|
|
||||||
<van-tabbar-item icon="manager-o" replace url="/platform/mobile/theRapyRecuperation/myRecuperation">我的疗休养
|
|
||||||
</van-tabbar-item>
|
|
||||||
</van-tabbar>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
const vue = new Vue({
|
const vue = new Vue({
|
||||||
@@ -83,7 +74,6 @@ layout("/mobile/platform.html"){
|
|||||||
return {
|
return {
|
||||||
chooseButton: [],
|
chooseButton: [],
|
||||||
configData: {},
|
configData: {},
|
||||||
tarBarActive: 0,
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@@ -98,7 +88,7 @@ layout("/mobile/platform.html"){
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
localStorage.setItem("clickIndex", JSON.stringify({clickIndex: index}))
|
localStorage.setItem("clickIndex", JSON.stringify({clickIndex: index}))
|
||||||
location.href = '/platform/mobile/theRapyRecuperation/mobileLineListPage'
|
pjaxReplace('/platform/mobile/theRapyRecuperation/mobileLineListPage')
|
||||||
},
|
},
|
||||||
async getConfigData() {
|
async getConfigData() {
|
||||||
const resp = await $.get('/platform/theRapyRecuperation/TheRapyConfig/findOne')
|
const resp = await $.get('/platform/theRapyRecuperation/TheRapyConfig/findOne')
|
||||||
|
|||||||
@@ -3,6 +3,10 @@ layout("/mobile/platform.html"){
|
|||||||
#-->
|
#-->
|
||||||
<style>
|
<style>
|
||||||
|
|
||||||
|
#app {
|
||||||
|
font-family: 微软雅黑,serif;
|
||||||
|
}
|
||||||
|
|
||||||
.container img {
|
.container img {
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@@ -11,13 +15,22 @@ layout("/mobile/platform.html"){
|
|||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.backTop {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
.header {
|
.header {
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.content {
|
.content {
|
||||||
line-height: 26px;
|
line-height: 26px;
|
||||||
padding: 0px 20px 56px 20px;
|
padding: 0px 10px 56px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pdf_div {
|
||||||
|
padding-bottom: 70px;
|
||||||
|
height: 800px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.title {
|
.title {
|
||||||
@@ -179,10 +192,11 @@ layout("/mobile/platform.html"){
|
|||||||
.submitButton {
|
.submitButton {
|
||||||
background-color: white !important;
|
background-color: white !important;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 60px;
|
/*height: 60px;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-evenly;
|
justify-content: space-evenly;
|
||||||
align-items: center;
|
align-items: center;*/
|
||||||
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.submitButton .van-button {
|
.submitButton .van-button {
|
||||||
@@ -195,84 +209,133 @@ layout("/mobile/platform.html"){
|
|||||||
background-color: white;
|
background-color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.van-tag {
|
||||||
|
color: white !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.viewerContainer {
|
||||||
|
overflow: unset !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sign_div {
|
||||||
|
background-color: white;
|
||||||
|
margin-bottom: 16px;
|
||||||
|
padding: 18px;
|
||||||
|
border-radius: 6px;
|
||||||
|
box-shadow: 0 8px 12px #ebedf0;
|
||||||
|
}
|
||||||
|
.van-action-sheet {
|
||||||
|
max-height: 90%;
|
||||||
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<div id="app" v-cloak>
|
<div id="app" v-cloak>
|
||||||
|
|
||||||
<van-sticky>
|
<van-sticky>
|
||||||
<van-nav-bar @click-left="history.go(-1)" fixed left-arrow placeholder title="职工疗休养-线路介绍"></van-nav-bar>
|
<van-nav-bar @click-left="history.go(-1)" fixed left-arrow placeholder
|
||||||
|
title="职工疗休养-线路介绍"></van-nav-bar>
|
||||||
</van-sticky>
|
</van-sticky>
|
||||||
|
|
||||||
<!--线路详情-->
|
<template v-if="isLoad">
|
||||||
<van-skeleton title :loading="skeLoading" :row="12">
|
<!--线路详情-->
|
||||||
<div class="container">
|
<van-skeleton title :loading="skeLoading" :row="12">
|
||||||
<div class="header">
|
<div class="container">
|
||||||
<div class="title">
|
<div class="header">
|
||||||
<van-tag size="large" color="#1867b0" style="color: white;position: relative; top: -2px">
|
<div class="title">
|
||||||
{{lineData.lotName}}
|
<van-tag size="large" color="#1867b0" style="position: relative; top: -2px">
|
||||||
</van-tag>
|
{{lineData.lotName}}
|
||||||
{{lineData.lineName}}
|
</van-tag>
|
||||||
</div>
|
{{lineData.lineName}}
|
||||||
<div style="margin-top: 10px">
|
|
||||||
<div>
|
|
||||||
<span class="line_label">成团人数:</span>
|
|
||||||
{{lineData.minimumGroupSize ? lineData.minimumGroupSize : 0}}人(最少)
|
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div style="margin-top: 10px">
|
||||||
<span>当前报名:</span>
|
<div v-if="lineData.regionalNature == '省内'">
|
||||||
{{lineData.signUpUserNum + lineData.signUpUserFamilyNum + '(家属' + lineData.signUpUserFamilyNum +
|
<div>
|
||||||
'人)'}}
|
<span class="line_label">成团人数包括家属:</span>
|
||||||
</div>
|
<label v-if="lineData.estimatedFamilyNumbers">{{lineData.estimatedFamilyNumbers}}人</label>
|
||||||
<div>
|
<label v-else>不限制</label>
|
||||||
<span>报名时间:</span>
|
</div>
|
||||||
{{moment(lineData.signUpStartTime).format('YYYY-MM-DD HH:mm') + ' ~ ' +
|
<div v-if="configData.familyInfo == 2">
|
||||||
moment(lineData.signUpEndTime).format('YYYY-MM-DD HH:mm')}}
|
<span>当前报名:</span>
|
||||||
</div>
|
{{lineData.signUpUserNum + lineData.signUpUserFamilyNum + '(家属' + lineData.signUpUserFamilyNum + '人)'}}
|
||||||
<div>
|
</div>
|
||||||
<span>出行时间:</span>
|
<div v-else>
|
||||||
{{moment(lineData.playStartTime).format('YYYY-MM-DD HH:mm') + ' ~ ' +
|
<span>当前报名:</span>
|
||||||
moment(lineData.playEndTime).format('YYYY-MM-DD HH:mm')}}
|
{{lineData.signUpUserNum + lineData.familyNumber + '(家属' + lineData.familyNumber + '人)'}}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
</div>
|
||||||
<span>旅 行 社:</span>
|
|
||||||
{{lineData.travelAgencyName}}
|
<div v-else>
|
||||||
</div>
|
<div>
|
||||||
<div>
|
<span class="line_label">最多成团人数:</span>
|
||||||
<span>联系方式:</span>
|
<label>{{configData.outsideQuota}}人</label>
|
||||||
{{lineData.contactMobileNumber}}
|
</div>
|
||||||
|
<div v-if="configData.familyInfo == 2">
|
||||||
|
<span>当前报名:</span>
|
||||||
|
{{lineData.signUpUserNum + '(家属' + lineData.signUpUserFamilyNum + '人)'}}
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
<span>当前报名:</span>
|
||||||
|
{{lineData.signUpUserNum + '(家属' + lineData.familyNumber + '人)'}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<span>报名时间:</span>
|
||||||
|
{{moment(lineData.signUpStartTime).format('YYYY-MM-DD HH:mm') + ' ~ ' +
|
||||||
|
moment(lineData.signUpEndTime).format('YYYY-MM-DD HH:mm')}}
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span>出行时间:</span>
|
||||||
|
{{moment(lineData.playStartTime).format('YYYY-MM-DD HH:mm') + ' ~ ' +
|
||||||
|
moment(lineData.playEndTime).format('YYYY-MM-DD HH:mm')}}
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span>旅 行 社:</span>
|
||||||
|
{{lineData.travelAgencyName}}
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span>联系方式:</span>
|
||||||
|
{{lineData.contactMobileNumber}}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<van-divider :style="{ color: 'orange', fontSize: '12px' }">上下滑动翻页,单击查看,再单击返回</van-divider>
|
||||||
|
<!--<div v-if="lineData.content" v-html="lineData.content" class="content"></div>
|
||||||
|
<div v-else v-html="configData.notice" class="content"></div>-->
|
||||||
|
<div v-if="isPdf" v-html="lineData.content" class="content"></div>
|
||||||
|
<div v-else id="demo" class="pdf_div"></div>
|
||||||
|
|
||||||
|
<!--<van-empty
|
||||||
|
v-else class="custom-image"
|
||||||
|
image="https://img01.yzcdn.cn/vant/custom-empty-image.png"
|
||||||
|
description="暂无详细信息"
|
||||||
|
></van-empty>-->
|
||||||
</div>
|
</div>
|
||||||
<van-divider></van-divider>
|
</van-skeleton>
|
||||||
<div v-if="lineData.content" v-html="lineData.content" class="content"></div>
|
|
||||||
<div v-else v-html="configData.notice" class="content"></div>
|
<!--置顶图标-->
|
||||||
<!--<van-empty
|
<image v-if="btnFlag" @click="backTop" src="/assets/mobile/svg/therapyRecuperation/top.svg"
|
||||||
v-else class="custom-image"
|
class="top_icon"></image>
|
||||||
image="https://img01.yzcdn.cn/vant/custom-empty-image.png"
|
|
||||||
description="暂无详细信息"
|
<!--底部报名按钮-->
|
||||||
></van-empty>-->
|
<div class="footer" v-if="fromUrlByMy != 'edit'">
|
||||||
|
<template v-if="lineData.isNormal==0&&lineData.isNormalFalse>0">
|
||||||
|
<van-button @click="join"
|
||||||
|
class="join">我要报名
|
||||||
|
</van-button>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<van-button v-if="moment().unix() <= moment(lineData.changeEndTime).unix()" @click="join"
|
||||||
|
class="join">我要报名
|
||||||
|
</van-button>
|
||||||
|
<van-button v-if="moment().unix() > moment(lineData.changeEndTime).unix()" class="join">报名结束
|
||||||
|
</van-button>
|
||||||
|
</template>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</van-skeleton>
|
</template>
|
||||||
|
|
||||||
<!--置顶图标-->
|
|
||||||
<image v-if="btnFlag" @click="backTop" src="/assets/mobile/svg/therapyRecuperation/top.svg"
|
|
||||||
class="top_icon"></image>
|
|
||||||
|
|
||||||
<!--底部报名按钮-->
|
|
||||||
<div class="footer" v-if="fromUrlByMy != 'edit'">
|
|
||||||
<template v-if="lineData.isNormal==0&&lineData.isNormalFalse>0">
|
|
||||||
<van-button @click="join"
|
|
||||||
class="join">我要报名
|
|
||||||
</van-button>
|
|
||||||
</template>
|
|
||||||
<template v-else>
|
|
||||||
<van-button v-if="moment().unix() <= moment(lineData.signUpEndTime).unix()" @click="join"
|
|
||||||
class="join">我要报名
|
|
||||||
</van-button>
|
|
||||||
<van-button v-if="moment().unix() > moment(lineData.signUpEndTime).unix()" class="join">报名结束</van-button>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<!--报名弹出框-->
|
<!--报名弹出框-->
|
||||||
<van-popup v-model:show="joinPopup" position="right" class="joinPopup">
|
<van-popup v-model:show="joinPopup" position="right" class="joinPopup">
|
||||||
<van-nav-bar @click-left="joinPopup = false" fixed left-arrow placeholder title="疗休养报名"></van-nav-bar>
|
<van-nav-bar @click-left="joinPopup = false" fixed left-arrow placeholder title="疗休养报名"></van-nav-bar>
|
||||||
@@ -288,9 +351,9 @@ layout("/mobile/platform.html"){
|
|||||||
</div>
|
</div>
|
||||||
<div class="van-card-body">
|
<div class="van-card-body">
|
||||||
<van-field label="姓名" readonly v-model="formData.userName"></van-field>
|
<van-field label="姓名" readonly v-model="formData.userName"></van-field>
|
||||||
<van-field label="工号" readonly v-model="formData.loginName"></van-field>
|
<van-field label="一卡通号" readonly v-model="formData.loginName"></van-field>
|
||||||
<van-field label="身份证号" name="idCard" :rules="[{ required: true }]"
|
<van-field label="身份证件" name="idCard" :rules="[{ required: true }]"
|
||||||
placeholder="请填写身份证号" v-model="formData.idCard"></van-field>
|
placeholder="请填写身份证号、护照、台胞证等" v-model="formData.idCard"></van-field>
|
||||||
<van-field label="手机号" name="mobile" :rules="[{ required: true }]"
|
<van-field label="手机号" name="mobile" :rules="[{ required: true }]"
|
||||||
placeholder="请填写手机号" v-model="formData.mobile"></van-field>
|
placeholder="请填写手机号" v-model="formData.mobile"></van-field>
|
||||||
<van-field label="所属工会" readonly v-model="formData.unionName"></van-field>
|
<van-field label="所属工会" readonly v-model="formData.unionName"></van-field>
|
||||||
@@ -299,7 +362,7 @@ layout("/mobile/platform.html"){
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!--床位信息-->
|
<!--床位信息-->
|
||||||
<div class="van-doc-card" style="margin-bottom: 16px">
|
<div v-if="configData.bedInfo === true" class="van-doc-card" style="margin-bottom: 16px">
|
||||||
<div></div>
|
<div></div>
|
||||||
<div class="van-card-header">
|
<div class="van-card-header">
|
||||||
床位信息
|
床位信息
|
||||||
@@ -312,7 +375,8 @@ layout("/mobile/platform.html"){
|
|||||||
readonly is-link label="床位"
|
readonly is-link label="床位"
|
||||||
name="bedNum" placeholder="请选择床位" v-model="formData.bedInfo.bedNum"
|
name="bedNum" placeholder="请选择床位" v-model="formData.bedInfo.bedNum"
|
||||||
:rules="[{ required: true }]"></van-field>
|
:rules="[{ required: true }]"></van-field>
|
||||||
<van-field v-if="formData.bedInfo.bedType == '标准间'" :rules="[{ validator, message: '请选择是否拼房' }]"
|
<van-field v-if="formData.bedInfo.bedType == '标准间'"
|
||||||
|
:rules="[{ validator, message: '请选择是否拼房' }]"
|
||||||
label="是否拼房" name="validator">
|
label="是否拼房" name="validator">
|
||||||
<template #input>
|
<template #input>
|
||||||
<van-radio-group direction="horizontal" v-model="formData.bedInfo.isSleepTogether">
|
<van-radio-group direction="horizontal" v-model="formData.bedInfo.isSleepTogether">
|
||||||
@@ -321,10 +385,11 @@ layout("/mobile/platform.html"){
|
|||||||
</van-radio-group>
|
</van-radio-group>
|
||||||
</template>
|
</template>
|
||||||
</van-field>
|
</van-field>
|
||||||
<van-field v-if="formData.bedInfo.bedType == '标准间' && formData.bedInfo.isSleepTogether == true"
|
<van-field
|
||||||
label="意向拼房人" name="otherSleepUser" placeholder="多个拼房人请用,隔开"
|
v-if="formData.bedInfo.bedType == '标准间' && formData.bedInfo.isSleepTogether == true"
|
||||||
v-model="formData.bedInfo.otherSleepUser"
|
label="意向拼房人" name="otherSleepUser" placeholder="多个拼房人请用,隔开"
|
||||||
:rules="[{ required: true }]"></van-field>
|
v-model="formData.bedInfo.otherSleepUser"
|
||||||
|
:rules="[{ required: true }]"></van-field>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -334,71 +399,97 @@ layout("/mobile/platform.html"){
|
|||||||
<div class="van-card-header"
|
<div class="van-card-header"
|
||||||
style="display: flex; justify-content: space-between; align-items: center">
|
style="display: flex; justify-content: space-between; align-items: center">
|
||||||
<span style="float:left;">随行人信息</span>
|
<span style="float:left;">随行人信息</span>
|
||||||
<div>
|
<div v-if="configData.familyInfo === 2">
|
||||||
<van-tag @click="delCompanion" size="large" type="primary" color="lightgrey">删除随行人</van-tag>
|
<van-tag @click="delCompanion" size="large" type="primary" color="lightgrey">删除随行人
|
||||||
<van-tag @click="addCompanion" size="large" type="primary" color="#1867b0">添加随行人</van-tag>
|
</van-tag>
|
||||||
|
<van-tag @click="addCompanion" size="large" type="primary" color="#1867b0">添加随行人
|
||||||
|
</van-tag>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="formData.companionList.length > 0" class="van-card-body">
|
<template v-if="configData.familyInfo === 2">
|
||||||
<van-tabs v-model="active" type="card" color="#0e78c5" animated>
|
<div v-if="formData.companionList.length > 0" class="van-card-body">
|
||||||
<van-tab v-for="item, index in formData.companionList" :title="'随行人' + (index + 1)">
|
<van-tabs v-model="active" type="card" color="#0e78c5" animated>
|
||||||
<van-field label="姓名" name="userName" placeholder="请填写姓名" v-model="item.userName"
|
<van-tab v-for="item, index in formData.companionList" :title="'随行人' + (index + 1)">
|
||||||
:rules="[{ required: true }]"></van-field>
|
<van-field label="姓名" name="userName" placeholder="请填写姓名"
|
||||||
<!--<van-field label="工号" name="loginName" placeholder="若没有工号,请忽略此项" v-model="item.loginName"></van-field>-->
|
v-model="item.userName"
|
||||||
<van-field label="年龄" name="age" placeholder="请填写年龄" v-model="item.age"
|
:rules="[{ required: true }]"></van-field>
|
||||||
type="digit" :rules="[{ required: true }]"></van-field>
|
<!--<van-field label="一卡通号" name="loginName" placeholder="若没有工号,请忽略此项" v-model="item.loginName"></van-field>-->
|
||||||
<van-field :rules="[{ required: true, message: '请选择性别' }]" label="性别" name="validator">
|
<van-field label="年龄" name="age" placeholder="请填写年龄" v-model="item.age"
|
||||||
<template #input>
|
type="digit" :rules="[{ required: true }]"></van-field>
|
||||||
<van-radio-group direction="horizontal" v-model="item.sex">
|
<van-field :rules="[{ required: true, message: '请选择性别' }]" label="性别"
|
||||||
<van-radio name="男" shape="square">男</van-radio>
|
name="validator">
|
||||||
<van-radio name="女" shape="square">女</van-radio>
|
<template #input>
|
||||||
</van-radio-group>
|
<van-radio-group direction="horizontal" v-model="item.sex">
|
||||||
</template>
|
<van-radio name="男" shape="square">男</van-radio>
|
||||||
</van-field>
|
<van-radio name="女" shape="square">女</van-radio>
|
||||||
<van-field label="身份证号" name="idCard" placeholder="请填写身份证号"
|
</van-radio-group>
|
||||||
:rules="[{ required: true }]" type="digit"
|
</template>
|
||||||
v-model="item.idCard"></van-field>
|
</van-field>
|
||||||
<van-field label="手机号" name="mobile" placeholder="请填写手机号"
|
<van-field label="身份证件" name="idCard" placeholder="请填写身份证号、护照、台胞证等"
|
||||||
:rules="[{ required: true }]" type="digit"
|
:rules="[{ required: true }]"
|
||||||
v-model="item.mobile"></van-field>
|
v-model="item.idCard"></van-field>
|
||||||
<van-field @click="companionVisible = true" readonly is-link label="与本人关系"
|
<van-field label="手机号" name="mobile" placeholder="请填写手机号"
|
||||||
name="relation"
|
:rules="[{ required: true }]" type="digit"
|
||||||
placeholder="随行人与本人关系" v-model="item.relation"
|
v-model="item.mobile"></van-field>
|
||||||
:rules="[{ required: true }]"></van-field>
|
<van-field @click="companionVisible = true" readonly is-link label="与本人关系"
|
||||||
|
name="relation"
|
||||||
|
placeholder="随行人与本人关系" v-model="item.relation"
|
||||||
|
:rules="[{ required: true }]"></van-field>
|
||||||
|
|
||||||
<van-field @click="self = false; roomVisible = true" readonly is-link label="房间"
|
<van-field @click="self = false; roomVisible = true" readonly is-link label="房间"
|
||||||
name="bedType" placeholder="请选择房间"
|
name="bedType" placeholder="请选择房间"
|
||||||
v-model="item.bedInfo.bedType"></van-field>
|
v-model="item.bedInfo.bedType"></van-field>
|
||||||
<div style="font-size: 12px; color:orangered; padding-left: 16px; padding-bottom: 4px">
|
<div style="font-size: 12px; color:orangered; padding-left: 16px; padding-bottom: 4px">
|
||||||
提醒:如果跟报名人员同一房间,无须选择!
|
提醒:如果跟报名人员同一房间,无须选择!
|
||||||
</div>
|
</div>
|
||||||
<van-field v-if="item.bedInfo.bedType == '标准间'" @click="self = false; bedVisible = true"
|
<van-field v-if="item.bedInfo.bedType == '标准间'"
|
||||||
readonly is-link label="床位"
|
@click="self = false; bedVisible = true"
|
||||||
name="bedNum" placeholder="请选择床位" v-model="item.bedInfo.bedNum"></van-field>
|
readonly is-link label="床位"
|
||||||
<van-field v-if="item.bedInfo.bedType == '标准间'"
|
name="bedNum" placeholder="请选择床位"
|
||||||
:rules="[{ validator, message: '请选择是否拼房' }]" label="是否拼房">
|
v-model="item.bedInfo.bedNum"></van-field>
|
||||||
<template #input>
|
<van-field v-if="item.bedInfo.bedType == '标准间'"
|
||||||
<van-radio-group direction="horizontal" v-model="item.bedInfo.isSleepTogether">
|
:rules="[{ validator, message: '请选择是否拼房' }]" label="是否拼房">
|
||||||
<van-radio :name="true" shape="square">是</van-radio>
|
<template #input>
|
||||||
<van-radio :name="false" shape="square">否</van-radio>
|
<van-radio-group direction="horizontal"
|
||||||
</van-radio-group>
|
v-model="item.bedInfo.isSleepTogether">
|
||||||
</template>
|
<van-radio :name="true" shape="square">是</van-radio>
|
||||||
</van-field>
|
<van-radio :name="false" shape="square">否</van-radio>
|
||||||
<van-field v-if="item.bedInfo.bedType == '标准间' && item.bedInfo.isSleepTogether == true"
|
</van-radio-group>
|
||||||
label="意向拼房人" name="otherSleepUser" placeholder="多个拼房人请用,隔开"
|
</template>
|
||||||
v-model="item.bedInfo.otherSleepUser"></van-field>
|
</van-field>
|
||||||
</van-tab>
|
<van-field
|
||||||
</van-tabs>
|
v-if="item.bedInfo.bedType == '标准间' && item.bedInfo.isSleepTogether == true"
|
||||||
</div>
|
label="意向拼房人" name="otherSleepUser" placeholder="多个拼房人请用,隔开"
|
||||||
<div v-if="formData.companionList.length == 0" class="companionList_empty_text">
|
v-model="item.bedInfo.otherSleepUser"></van-field>
|
||||||
<span>
|
</van-tab>
|
||||||
如有随行人出行,请添加随行人
|
</van-tabs>
|
||||||
|
</div>
|
||||||
|
<div v-if="formData.companionList.length == 0" class="companionList_empty_text">
|
||||||
|
<span>
|
||||||
|
如有随行人出行,请添加随行人
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<van-field label="家属数量" name="familyNumber" placeholder="请填写家属数量" v-model="formData.familyNumber"
|
||||||
|
type="digit" :rules="[{ required: true }]"></van-field>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="sign_div" v-if="formData.companionList.length > 0">
|
||||||
|
<div style="display: flex">
|
||||||
|
<van-checkbox v-model="hasRead" shape="square" @change="readChange" class="mr10"></van-checkbox>
|
||||||
|
我已查看
|
||||||
|
<span @click="openRead" style="color: #0e5996; text-decoration: underline">
|
||||||
|
《{{configData.files[0].filename.replace(/\.[^/.]+$/, '')}}》
|
||||||
</span>
|
</span>
|
||||||
|
<van-tag @click="openRead" size="large" type="primary" color="#1867b0">查看</van-tag>
|
||||||
</div>
|
</div>
|
||||||
|
<mobile-sign v-if="hasRead" class="mt10" ref="signature" v-model="formData.sign" :is_value_base64="false"></mobile-sign>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="submitButton">
|
<div class="submitButton">
|
||||||
<van-button class="join join_submit">提交报名</van-button>
|
<van-button class="join join_submit" style="margin: 10px 0">提交报名</van-button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</van-form>
|
</van-form>
|
||||||
@@ -437,6 +528,14 @@ layout("/mobile/platform.html"){
|
|||||||
</van-picker>
|
</van-picker>
|
||||||
</van-popup>
|
</van-popup>
|
||||||
|
|
||||||
|
<van-action-sheet v-model="readVisible" title="请仔细阅读确认后签字">
|
||||||
|
<van-divider :style="{ color: 'orange', fontSize: '12px' }">上下滑动翻页,单击查看,再单击返回</van-divider>
|
||||||
|
<div id="readFile" style="height: 530px; overflow-y: auto"></div>
|
||||||
|
<div class="submitButton">
|
||||||
|
<van-button @click="onRead" class="join join_submit" style="margin: 10px 0">我已阅读确认</van-button>
|
||||||
|
</div>
|
||||||
|
</van-action-sheet>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
function getQueryString(name) {
|
function getQueryString(name) {
|
||||||
@@ -446,15 +545,21 @@ layout("/mobile/platform.html"){
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let pdfh5 = null
|
||||||
const vue = new Vue({
|
const vue = new Vue({
|
||||||
el: '#app',
|
el: '#app',
|
||||||
mixins: [mobileMixins],
|
mixins: [mobileMixins],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
readVisible: false,
|
||||||
|
hasRead: false,
|
||||||
|
clickRead: false,
|
||||||
|
isPdf: false,
|
||||||
|
isLoad: false,
|
||||||
active: 0,
|
active: 0,
|
||||||
roomColumns: ['大床房', '标准间'],
|
roomColumns: ['大床房', '标准间'],
|
||||||
bedColumns: ['1', '2'],
|
bedColumns: ['1', '2'],
|
||||||
companionColumns: ['亲属', '朋友'],
|
companionColumns: ['配偶', '子女'],
|
||||||
bedVisible: false,
|
bedVisible: false,
|
||||||
roomVisible: false,
|
roomVisible: false,
|
||||||
companionVisible: false,
|
companionVisible: false,
|
||||||
@@ -483,7 +588,32 @@ layout("/mobile/platform.html"){
|
|||||||
configData: {},
|
configData: {},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
components: {
|
||||||
|
'mobile-sign': httpVueLoader('/components/sign/mobileSign.vue?v=' + new Date().getTime()),
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
openRead() {
|
||||||
|
this.readVisible = true
|
||||||
|
this.$nextTick(() => {
|
||||||
|
if(this.configData.files && this.configData.files.length > 0) {
|
||||||
|
const pdf = new Pdfh5('#readFile', {
|
||||||
|
pdfurl: CREATE_PREVIEW_URL(this.configData.files[0].id),
|
||||||
|
})
|
||||||
|
this.readPDFPicture(pdf)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
onRead() {
|
||||||
|
this.clickRead = true
|
||||||
|
this.hasRead = true
|
||||||
|
this.readVisible = false
|
||||||
|
},
|
||||||
|
readChange() {
|
||||||
|
if(this.clickRead === false) {
|
||||||
|
this.$toast('请先阅读携带家属须知')
|
||||||
|
this.hasRead = false
|
||||||
|
}
|
||||||
|
},
|
||||||
roomCancel() {
|
roomCancel() {
|
||||||
if (!this.self) {
|
if (!this.self) {
|
||||||
this.formData.companionList[this.active].bedInfo.bedType = ''
|
this.formData.companionList[this.active].bedInfo.bedType = ''
|
||||||
@@ -510,36 +640,51 @@ layout("/mobile/platform.html"){
|
|||||||
return value != null
|
return value != null
|
||||||
},
|
},
|
||||||
async joinSubmit() {
|
async joinSubmit() {
|
||||||
const toast = vant.Toast.loading({
|
if(this.formData.companionList.length > 0) {
|
||||||
duration: 0,
|
if(this.hasRead === false) {
|
||||||
forbidClick: true,
|
this.$toast('请先阅读携带家属须知')
|
||||||
overlay: true,
|
return
|
||||||
message: '努力提交中',
|
|
||||||
})
|
|
||||||
const cloneData = clone(this.formData)
|
|
||||||
cloneData.companionList.forEach((item, index) => {
|
|
||||||
if (item.userName === '') {
|
|
||||||
cloneData.companionList.splice(index, 1)
|
|
||||||
}
|
}
|
||||||
})
|
if(!this.formData.sign) {
|
||||||
const resp = await $.post('/platform/theRapyRecuperation/line/enroll/doSignUpForLine', {
|
this.$toast('请签字')
|
||||||
enroll: JSON.stringify(cloneData),
|
return
|
||||||
})
|
|
||||||
setTimeout(() => {
|
|
||||||
if (resp.code === 0) {
|
|
||||||
toast.message = '提交成功'
|
|
||||||
toast.type = 'success'
|
|
||||||
} else {
|
|
||||||
toast.message = resp.msg
|
|
||||||
toast.type = 'fail'
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
vant.Dialog.confirm({
|
||||||
|
title: '温馨提示',
|
||||||
|
message: '确定要报名吗?',
|
||||||
|
}).then(async () => {
|
||||||
|
const toast = vant.Toast.loading({
|
||||||
|
duration: 0,
|
||||||
|
forbidClick: true,
|
||||||
|
overlay: true,
|
||||||
|
message: '努力提交中',
|
||||||
|
})
|
||||||
|
const cloneData = clone(this.formData)
|
||||||
|
cloneData.companionList.forEach((item, index) => {
|
||||||
|
if (item.userName === '') {
|
||||||
|
cloneData.companionList.splice(index, 1)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
const resp = await $.post('/platform/theRapyRecuperation/line/enroll/doSignUpForLine', {
|
||||||
|
enroll: JSON.stringify(cloneData),
|
||||||
|
})
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
toast.clear()
|
if (resp.code === 0) {
|
||||||
}, 500)
|
toast.message = '提交成功'
|
||||||
if (resp.code === 0) {
|
toast.type = 'success'
|
||||||
location.href = '/platform/mobile/theRapyRecuperation/myRecuperation?index=' + this.index
|
} else {
|
||||||
}
|
toast.message = resp.msg
|
||||||
}, 1000)
|
toast.type = 'fail'
|
||||||
|
}
|
||||||
|
setTimeout(() => {
|
||||||
|
toast.clear()
|
||||||
|
}, 500)
|
||||||
|
if (resp.code === 0) {
|
||||||
|
pjaxReplace('/platform/mobile/theRapyRecuperation/myRecuperation?index=' + this.index)
|
||||||
|
}
|
||||||
|
}, 1000)
|
||||||
|
})
|
||||||
},
|
},
|
||||||
addCompanion() {
|
addCompanion() {
|
||||||
this.formData.companionList.push({userName: '', loginName: '', sex: '', relation: '', bedInfo: {}})
|
this.formData.companionList.push({userName: '', loginName: '', sex: '', relation: '', bedInfo: {}})
|
||||||
@@ -557,19 +702,21 @@ layout("/mobile/platform.html"){
|
|||||||
}),
|
}),
|
||||||
})
|
})
|
||||||
if (re.code !== 0) {
|
if (re.code !== 0) {
|
||||||
if(re.msg === '您今年已报名,如要继续报名请进入我的疗休养,取消已选择') {
|
if (re.msg === '您今年已报名,如要继续报名请进入我的疗休养,取消已选择') {
|
||||||
vant.Dialog.confirm({
|
vant.Dialog.confirm({
|
||||||
title: '温馨提示',
|
title: '温馨提示',
|
||||||
message: re.msg,
|
message: re.msg,
|
||||||
confirmButtonText: '跳转页面',
|
confirmButtonText: '跳转页面',
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
location.href = '/platform/mobile/theRapyRecuperation/myRecuperation?index=' + this.index
|
location.href = '/platform/mobile/theRapyRecuperation/myRecuperation?index=' + this.index
|
||||||
}).catch(() => {});
|
}).catch(() => {
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
vant.Dialog.alert({
|
vant.Dialog.alert({
|
||||||
title: '温馨提示',
|
title: '温馨提示',
|
||||||
message: re.msg,
|
message: re.msg,
|
||||||
}).then(() => {})
|
}).then(() => {
|
||||||
|
})
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -641,6 +788,34 @@ layout("/mobile/platform.html"){
|
|||||||
const resp = await $.get('/platform/theRapyRecuperation/TheRapyConfig/findOne')
|
const resp = await $.get('/platform/theRapyRecuperation/TheRapyConfig/findOne')
|
||||||
this.configData = resp.data
|
this.configData = resp.data
|
||||||
},
|
},
|
||||||
|
readPDFPicture(pdf) {
|
||||||
|
if(pdf != null) {
|
||||||
|
pdf.on("complete", function () {
|
||||||
|
const imgDoc = document.querySelectorAll('img')
|
||||||
|
let array = []
|
||||||
|
let classArray = []
|
||||||
|
imgDoc.forEach(o => {
|
||||||
|
if(o.getAttribute('class') !== 'top_icon') {
|
||||||
|
classArray.push(o.getAttribute('class'))
|
||||||
|
array.push(o.getAttribute('src'))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
document.addEventListener('click', function (event) {
|
||||||
|
// 打印被点击的元素标签名和 class
|
||||||
|
if (event.target.tagName === 'IMG' && event.target.className !== 'top_icon') {
|
||||||
|
const index = classArray.indexOf(event.target.className)
|
||||||
|
if(index !== -1) {
|
||||||
|
vant.ImagePreview({
|
||||||
|
images: array,
|
||||||
|
startPosition: index,
|
||||||
|
closeable: true,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
},
|
},
|
||||||
async created() {
|
async created() {
|
||||||
this.id = getQueryString('id') ? getQueryString('id') : ''
|
this.id = getQueryString('id') ? getQueryString('id') : ''
|
||||||
@@ -653,16 +828,37 @@ layout("/mobile/platform.html"){
|
|||||||
if (this.enrollId) {
|
if (this.enrollId) {
|
||||||
await this.findSignUpInfoById()
|
await this.findSignUpInfoById()
|
||||||
}
|
}
|
||||||
this.getData()
|
await this.getData()
|
||||||
|
this.isLoad = true
|
||||||
|
|
||||||
|
try {
|
||||||
|
const parser = new DOMParser();
|
||||||
|
const doc = parser.parseFromString(this.lineData.content, 'text/html');
|
||||||
|
const link = doc.querySelector('a');
|
||||||
|
const href = link.getAttribute('href');
|
||||||
|
this.$nextTick(() => {
|
||||||
|
pdfh5 = new Pdfh5('#demo', {
|
||||||
|
pdfurl: href,
|
||||||
|
});
|
||||||
|
})
|
||||||
|
}catch (e) {
|
||||||
|
this.isPdf = true
|
||||||
|
document.addEventListener('click', function (event) {
|
||||||
|
// 打印被点击的元素标签名和 class
|
||||||
|
if (event.target.tagName === 'IMG' && event.target.className !== 'top_icon') {
|
||||||
|
vant.ImagePreview({
|
||||||
|
images: [event.target.src],
|
||||||
|
closeable: true,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.readPDFPicture(pdfh5)
|
||||||
|
})
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
window.addEventListener('scroll', this.scrollToTop)
|
window.addEventListener('scroll', this.scrollToTop)
|
||||||
document.addEventListener('click', function (event) {
|
|
||||||
// 打印被点击的元素标签名和 class
|
|
||||||
if (event.target.tagName === 'IMG' && event.target.className !== 'top_icon') {
|
|
||||||
vant.ImagePreview([event.target.src])
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
destroyed() {
|
destroyed() {
|
||||||
window.removeEventListener('scroll', this.scrollToTop)
|
window.removeEventListener('scroll', this.scrollToTop)
|
||||||
|
|||||||
@@ -3,6 +3,10 @@ layout("/mobile/platform.html"){
|
|||||||
#-->
|
#-->
|
||||||
<style>
|
<style>
|
||||||
|
|
||||||
|
#app {
|
||||||
|
font-family: 微软雅黑, serif;
|
||||||
|
}
|
||||||
|
|
||||||
.van-doc-card {
|
.van-doc-card {
|
||||||
margin: 10px;
|
margin: 10px;
|
||||||
padding: 12px 12px 12px 12px;
|
padding: 12px 12px 12px 12px;
|
||||||
@@ -29,7 +33,6 @@ layout("/mobile/platform.html"){
|
|||||||
.list-card > .content {
|
.list-card > .content {
|
||||||
padding: 16px 10px;
|
padding: 16px 10px;
|
||||||
display: flex;
|
display: flex;
|
||||||
max-height: 100px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.content-right {
|
.content-right {
|
||||||
@@ -77,19 +80,21 @@ layout("/mobile/platform.html"){
|
|||||||
|
|
||||||
.footer {
|
.footer {
|
||||||
background-color: white;
|
background-color: white;
|
||||||
position: fixed;
|
|
||||||
bottom: 0;
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 60px;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-evenly;
|
justify-content: space-evenly;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
left: 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.footer .van-button {
|
.footer .van-button {
|
||||||
height: 34px;
|
height: 30px;
|
||||||
|
font-size: 12px;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
|
padding: 0 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.van-divider {
|
||||||
|
margin: 8px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.active {
|
.active {
|
||||||
@@ -122,6 +127,20 @@ layout("/mobile/platform.html"){
|
|||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.sign_button .van-button {
|
||||||
|
width: 74px;
|
||||||
|
height: 28px;
|
||||||
|
color: white;
|
||||||
|
background: rgb(24, 103, 176);
|
||||||
|
border-color: rgb(24, 103, 176);
|
||||||
|
font-size: 12px;
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
[v-cloak] {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<div id="app" v-cloak>
|
<div id="app" v-cloak>
|
||||||
@@ -129,10 +148,10 @@ layout("/mobile/platform.html"){
|
|||||||
<van-nav-bar @click-left="history.back()" fixed left-arrow placeholder title="疗休养线路"></van-nav-bar>
|
<van-nav-bar @click-left="history.back()" fixed left-arrow placeholder title="疗休养线路"></van-nav-bar>
|
||||||
</van-sticky>
|
</van-sticky>
|
||||||
|
|
||||||
<van-dropdown-menu>
|
<!--<van-dropdown-menu>
|
||||||
<van-dropdown-item v-model="pageForm.year" :options="yearArray"
|
<van-dropdown-item v-model="pageForm.year" :options="yearArray"
|
||||||
@change="doSearch"></van-dropdown-item>
|
@change="doSearch"></van-dropdown-item>
|
||||||
</van-dropdown-menu>
|
</van-dropdown-menu>-->
|
||||||
|
|
||||||
<!--按钮导航-->
|
<!--按钮导航-->
|
||||||
<div class="choose_button van-doc-card">
|
<div class="choose_button van-doc-card">
|
||||||
@@ -145,20 +164,42 @@ layout("/mobile/platform.html"){
|
|||||||
</div>
|
</div>
|
||||||
</van-grid-item>
|
</van-grid-item>
|
||||||
</van-grid>
|
</van-grid>
|
||||||
|
|
||||||
|
<van-divider></van-divider>
|
||||||
|
|
||||||
|
<div class="footer" v-if="['0', '1', 0 , 1].includes(pageForm.theRapyRecuperationType)">
|
||||||
|
<van-button :class="pageForm.lineUnionType == 3 ? 'active' : 'no_active'"
|
||||||
|
@click="pageForm.lineUnionType = 3; getData()">
|
||||||
|
校工会组织
|
||||||
|
</van-button>
|
||||||
|
<van-button :class="pageForm.lineUnionType == 1 ? 'active' : 'no_active'"
|
||||||
|
@click="pageForm.lineUnionType = 1; getData()">
|
||||||
|
本分工会
|
||||||
|
</van-button>
|
||||||
|
<van-button :class="pageForm.lineUnionType == 2 ? 'active' : 'no_active'"
|
||||||
|
@click="otherUnionClick">
|
||||||
|
其他分工会
|
||||||
|
</van-button>
|
||||||
|
<van-button :class="pageForm.lineUnionType == 4 ? 'active' : 'no_active'"
|
||||||
|
@click="pageForm.lineUnionType = 4; getData()">
|
||||||
|
个人组织
|
||||||
|
</van-button>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<van-list
|
<van-list
|
||||||
:finished="finished"
|
:finished="finished"
|
||||||
:immediate-check="true"
|
:immediate-check="true"
|
||||||
@load="onLoad"
|
|
||||||
finished-text="没有更多了"
|
finished-text="没有更多了"
|
||||||
|
@load="onLoad"
|
||||||
v-model="loading">
|
v-model="loading">
|
||||||
<div @click.stop="findOne(o)" class="list-card" v-for="o in tableData">
|
<div @click.stop="clickLineRow(o)" class="list-card" v-for="o in tableData">
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<van-image
|
<van-image
|
||||||
height="100"
|
height="100"
|
||||||
radius="8"
|
radius="8"
|
||||||
:src="APP_DOMAIN + '/file_server/fileStreamPreview?id=' + o.fileId"
|
:src="CREATE_PREVIEW_URL(o.fileId)"
|
||||||
width="150">
|
width="150">
|
||||||
</van-image>
|
</van-image>
|
||||||
<div v-if="pageForm.theRapyRecuperationType != '2' && pageForm.theRapyRecuperationType != '3'"
|
<div v-if="pageForm.theRapyRecuperationType != '2' && pageForm.theRapyRecuperationType != '3'"
|
||||||
@@ -166,22 +207,30 @@ layout("/mobile/platform.html"){
|
|||||||
<div class="cr-title">
|
<div class="cr-title">
|
||||||
<span>{{o.lineName}}</span>
|
<span>{{o.lineName}}</span>
|
||||||
<div>
|
<div>
|
||||||
<van-tag color="#1867b0">{{o.lotName}}</van-tag>
|
<van-tag color="#1867b0">{{o.travelAgencyPlace}}</van-tag>
|
||||||
<van-tag color="#1867b0">{{o.signUpMode === 2 ? '校工会' :
|
<van-tag v-if="o.signUpMode === 1" color="#1867b0">{{o.usUnionName}}</van-tag>
|
||||||
o.usUnionName}}
|
<van-tag v-if="o.signUpMode === 2" color="#1867b0">{{'校工会'}}</van-tag>
|
||||||
</van-tag>
|
<van-tag v-if="o.signUpMode === 3" color="#1867b0">{{o.selectUserName}}</van-tag>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="desc_info">
|
<div class="desc_info">
|
||||||
<!--<div class="union">
|
<!--<div class="union">
|
||||||
<span>组织形式:</span>{{o.createMode === 2 && o.signUpMode === 2 ? '校工会' : o.usUnionName}}
|
<span>组织形式:</span>{{o.createMode === 2 && o.signUpMode === 2 ? '校工会' : o.usUnionName}}
|
||||||
</div>-->
|
</div>-->
|
||||||
<div class="concat">
|
<div class="concat" v-if="modifyConfig.familyInfo == 2">
|
||||||
<span>已报人数:</span>{{o.signUpUserNum + o.signUpUserFamilyNum + '(家属' +
|
<span>已报人数:</span>{{o.signUpUserNum + o.signUpUserFamilyNum + '(家属' +
|
||||||
o.signUpUserFamilyNum + '人)'}}
|
o.signUpUserFamilyNum + '人)'}}
|
||||||
</div>
|
</div>
|
||||||
<div class="mobile" style="color: red">
|
|
||||||
<span>出行时间:</span>{{moment(o.playStartTime).format('YYYY-MM-DD')}}
|
<div class="concat" v-else>
|
||||||
|
<!--<span>已报人数:</span>{{o.signUpUserNum + o.familyNumber + '(家属' +
|
||||||
|
o.familyNumber + '人)'}}-->
|
||||||
|
<span>联 系 人:</span>{{o.contact}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mobile">
|
||||||
|
<!--<span>出行时间:</span>{{moment(o.playStartTime).format('YYYY-MM-DD')}}-->
|
||||||
|
<span>联系方式:</span>{{o.contactMobileNumber}}
|
||||||
</div>
|
</div>
|
||||||
<div class="mobile">
|
<div class="mobile">
|
||||||
<span>旅 行 社:</span>{{o.travelAgencyName}}
|
<span>旅 行 社:</span>{{o.travelAgencyName}}
|
||||||
@@ -244,22 +293,6 @@ layout("/mobile/platform.html"){
|
|||||||
</div>
|
</div>
|
||||||
</van-list>
|
</van-list>
|
||||||
|
|
||||||
<div class="footer"
|
|
||||||
v-if="['0', '1', 0 , 1].includes(pageForm.theRapyRecuperationType)">
|
|
||||||
<van-button :class="pageForm.lineUnionType == 2 ? 'active' : 'no_active'"
|
|
||||||
@click="otherUnionClick">
|
|
||||||
其他工会
|
|
||||||
</van-button>
|
|
||||||
<van-button :class="pageForm.lineUnionType == 1 ? 'active' : 'no_active'"
|
|
||||||
@click="pageForm.lineUnionType = 1; getData()">
|
|
||||||
本工会
|
|
||||||
</van-button>
|
|
||||||
<van-button :class="pageForm.lineUnionType == 3 ? 'active' : 'no_active'"
|
|
||||||
@click="pageForm.lineUnionType = 3; getData()">
|
|
||||||
校工会
|
|
||||||
</van-button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<van-popup position="bottom" round v-model:show="unionPop">
|
<van-popup position="bottom" round v-model:show="unionPop">
|
||||||
<van-picker
|
<van-picker
|
||||||
title="选择分工会" show-toolbar
|
title="选择分工会" show-toolbar
|
||||||
@@ -268,6 +301,30 @@ layout("/mobile/platform.html"){
|
|||||||
@cancel="unionPop = false"
|
@cancel="unionPop = false"
|
||||||
></van-picker>
|
></van-picker>
|
||||||
</van-popup>
|
</van-popup>
|
||||||
|
|
||||||
|
<van-action-sheet
|
||||||
|
v-model="selectLinePopup"
|
||||||
|
cancel-text="取消"
|
||||||
|
:description="clickRow.lineName"
|
||||||
|
close-on-click-action>
|
||||||
|
<button @click="onSelect(item)" v-for="(item,index) in selectLineList" type="button"
|
||||||
|
class="van-action-sheet__item">
|
||||||
|
<div style="display: flex; justify-content: space-between; align-items: center">
|
||||||
|
<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.subname}}</div>
|
||||||
|
</div>
|
||||||
|
<div class="sign_button">
|
||||||
|
<van-button @click.stop="onSelect(item)" size="mini" type="info"
|
||||||
|
style="margin-right: 8px">
|
||||||
|
点击报名
|
||||||
|
</van-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
</van-action-sheet>
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
@@ -279,7 +336,6 @@ layout("/mobile/platform.html"){
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const vue = new Vue({
|
const vue = new Vue({
|
||||||
el: '#app',
|
el: '#app',
|
||||||
mixins: [mobileMixins],
|
mixins: [mobileMixins],
|
||||||
@@ -291,20 +347,52 @@ layout("/mobile/platform.html"){
|
|||||||
chooseButton: [],
|
chooseButton: [],
|
||||||
pageForm: {
|
pageForm: {
|
||||||
theRapyRecuperationType: 0,
|
theRapyRecuperationType: 0,
|
||||||
lineUnionType: 1,
|
//lineUnionType: 1,
|
||||||
unionId: "${@shiro.getPrincipalProperty('union').getId()}",
|
unionId: "${@shiro.getPrincipalProperty('union').getId()}",
|
||||||
year: new Date().getFullYear()
|
year: null
|
||||||
},
|
},
|
||||||
loading: false,
|
loading: false,
|
||||||
finished: false,
|
finished: false,
|
||||||
refreshing: false,
|
refreshing: false,
|
||||||
lineData: {},
|
lineData: {},
|
||||||
|
modifyConfig: {},
|
||||||
|
clickRow: {},
|
||||||
|
selectLineList: [],
|
||||||
|
selectLinePopup: false,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
async clickLineRow(o) {
|
||||||
|
this.clickRow = o
|
||||||
|
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
|
||||||
|
},
|
||||||
|
onSelect(item) {
|
||||||
|
this.findOne(item)
|
||||||
|
},
|
||||||
otherUnionClick() {
|
otherUnionClick() {
|
||||||
if(this.unionColumns.length === 0) {
|
if (this.unionColumns.length === 0) {
|
||||||
vant.Toast('暂时没有工会公开线路')
|
vant.Toast('暂时没有其他分工会公开线路')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
this.pageForm.lineUnionType = 2
|
this.pageForm.lineUnionType = 2
|
||||||
@@ -349,7 +437,7 @@ layout("/mobile/platform.html"){
|
|||||||
toast.clear()
|
toast.clear()
|
||||||
}, 500)
|
}, 500)
|
||||||
if (resp.code === 0) {
|
if (resp.code === 0) {
|
||||||
location.href = '/platform/mobile/theRapyRecuperation/myRecuperation?index=' + this.pageForm.theRapyRecuperationType
|
pjaxReplace('/platform/mobile/theRapyRecuperation/myRecuperation?index=' + this.pageForm.theRapyRecuperationType)
|
||||||
}
|
}
|
||||||
}, 1000)
|
}, 1000)
|
||||||
},
|
},
|
||||||
@@ -362,20 +450,20 @@ layout("/mobile/platform.html"){
|
|||||||
const type = Number(this.pageForm.theRapyRecuperationType)
|
const type = Number(this.pageForm.theRapyRecuperationType)
|
||||||
localStorage.setItem("clickIndex", JSON.stringify({clickIndex: type}))
|
localStorage.setItem("clickIndex", JSON.stringify({clickIndex: type}))
|
||||||
if (type !== 2 && type !== 3) {
|
if (type !== 2 && type !== 3) {
|
||||||
location.href = '/platform/mobile/theRapyRecuperation/lineInfo?id=' + o.usId + '&index=' + this.pageForm.theRapyRecuperationType
|
pjaxReplace('/platform/mobile/theRapyRecuperation/lineInfo?id=' + o.usId + '&index=' + this.pageForm.theRapyRecuperationType
|
||||||
+ '&takePartInUnionId=' + o.takePartInUnionId
|
+ '&takePartInUnionId=' + o.takePartInUnionId)
|
||||||
} else if (type === 3) {
|
} else if (type === 3) {
|
||||||
location.href = '/platform/mobile/theRapyRecuperation/baseInfo?id=' + o.usId + '&index=' + this.pageForm.theRapyRecuperationType
|
pjaxReplace('/platform/mobile/theRapyRecuperation/baseInfo?id=' + o.usId + '&index=' + this.pageForm.theRapyRecuperationType)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
getData() {
|
async getData() {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
if (this.pageForm.lineUnionType === 1) {
|
if (this.pageForm.lineUnionType === 1) {
|
||||||
this.pageForm.unionId = "${@shiro.getPrincipalProperty('union').getId()}"
|
this.pageForm.unionId = "${@shiro.getPrincipalProperty('union').getId()}"
|
||||||
}
|
}
|
||||||
this.pageForm.pageNumber = 1
|
this.pageForm.pageNumber = 1
|
||||||
this.tableData = []
|
this.tableData = []
|
||||||
this.onLoad()
|
await this.onLoad()
|
||||||
},
|
},
|
||||||
async onLoad() {
|
async onLoad() {
|
||||||
const res = await $.post('/platform/theRapyRecuperation/line/enroll/pageData', this.pageForm)
|
const res = await $.post('/platform/theRapyRecuperation/line/enroll/pageData', this.pageForm)
|
||||||
@@ -385,6 +473,7 @@ layout("/mobile/platform.html"){
|
|||||||
if (this.tableData.length === res.data.totalCount) {
|
if (this.tableData.length === res.data.totalCount) {
|
||||||
this.finished = true
|
this.finished = true
|
||||||
} else {
|
} else {
|
||||||
|
this.finished = false
|
||||||
this.pageForm.pageNumber++
|
this.pageForm.pageNumber++
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -394,6 +483,7 @@ layout("/mobile/platform.html"){
|
|||||||
for (let i = 2023; i <= 2043; i++) {
|
for (let i = 2023; i <= 2043; i++) {
|
||||||
this.yearArray.push({value: i, text: i + '年'})
|
this.yearArray.push({value: i, text: i + '年'})
|
||||||
}
|
}
|
||||||
|
this.yearArray.unshift({value: null, text: '全部'})
|
||||||
},
|
},
|
||||||
async getTheRapyUnions() {
|
async getTheRapyUnions() {
|
||||||
const resp = await $.get('/platform/theRapyRecuperation/line/enroll/getTheRapyUnions', {
|
const resp = await $.get('/platform/theRapyRecuperation/line/enroll/getTheRapyUnions', {
|
||||||
@@ -401,18 +491,31 @@ layout("/mobile/platform.html"){
|
|||||||
})
|
})
|
||||||
return resp.data
|
return resp.data
|
||||||
},
|
},
|
||||||
|
async getModifyConfig() {
|
||||||
|
const res = await $.post('/platform/theRapyRecuperation/TheRapyConfig/findOne')
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.modifyConfig = res.data
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
if (localStorage.getItem('clickIndex') !== null) {
|
||||||
|
const clickIndex = localStorage.getItem('clickIndex')
|
||||||
|
this.pageForm.theRapyRecuperationType = JSON.parse(clickIndex).clickIndex
|
||||||
|
}
|
||||||
|
/*if(this.pageForm.theRapyRecuperationType == 1){
|
||||||
|
this.$set(this.pageForm, 'lineUnionType', 3)
|
||||||
|
}*/
|
||||||
},
|
},
|
||||||
async created() {
|
async created() {
|
||||||
this.createYear()
|
this.createYear()
|
||||||
const clickIndex = localStorage.getItem('clickIndex')
|
await this.getModifyConfig()
|
||||||
this.pageForm.theRapyRecuperationType = JSON.parse(clickIndex).clickIndex
|
|
||||||
this.chooseButton = await getEnumOptions('TheRapyRecuperationType')
|
this.chooseButton = await getEnumOptions('TheRapyRecuperationType')
|
||||||
this.chooseButton = this.chooseButton.filter(o => o.value !== 2 && o.value !== 3)
|
this.chooseButton = this.chooseButton.filter(o => o.value !== 2 && o.value !== 3)
|
||||||
const unions = await this.getTheRapyUnions()
|
const unions = await this.getTheRapyUnions()
|
||||||
unions.forEach(item => {
|
unions.forEach(item => {
|
||||||
this.unionColumns.push({text: item.unionname, value: item.id})
|
this.unionColumns.push({text: item.unionname, value: item.id})
|
||||||
})
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -29,7 +29,6 @@ layout("/mobile/platform.html"){
|
|||||||
.list-card > .content {
|
.list-card > .content {
|
||||||
padding: 16px 10px 8px;
|
padding: 16px 10px 8px;
|
||||||
display: flex;
|
display: flex;
|
||||||
max-height: 100px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.content-right {
|
.content-right {
|
||||||
@@ -72,21 +71,28 @@ layout("/mobile/platform.html"){
|
|||||||
|
|
||||||
.footer {
|
.footer {
|
||||||
background-color: white;
|
background-color: white;
|
||||||
position: fixed;
|
|
||||||
bottom: 0;
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 60px;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-evenly;
|
justify-content: space-evenly;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
left: 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.footer .van-button {
|
.footer .van-button {
|
||||||
height: 34px;
|
height: 30px;
|
||||||
|
font-size: 12px;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.evaluateVisible .van-button {
|
||||||
|
height: 30px;
|
||||||
|
font-size: 12px;
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.van-divider {
|
||||||
|
margin: 8px 0;
|
||||||
|
}
|
||||||
|
|
||||||
.active {
|
.active {
|
||||||
background-color: #1867b0;
|
background-color: #1867b0;
|
||||||
color: white;
|
color: white;
|
||||||
@@ -172,11 +178,59 @@ layout("/mobile/platform.html"){
|
|||||||
margin-left: 4px;
|
margin-left: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.evaluateVisible {
|
||||||
|
width: 100%;
|
||||||
|
height: 80%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title_container {
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-end;
|
||||||
|
align-items: center;
|
||||||
|
position: relative;
|
||||||
|
padding: 9px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
margin: auto;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content {
|
||||||
|
padding: 10px 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.line_info {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.evaluate_item_content {
|
||||||
|
display: flex;
|
||||||
|
gap: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.evaluate_item {
|
||||||
|
padding: 6px 20px;
|
||||||
|
border: 1px grey solid;
|
||||||
|
text-align: center;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.evaluate_active {
|
||||||
|
background-color: #07C160;
|
||||||
|
color: white;
|
||||||
|
border-color: #07C160;
|
||||||
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<div id="app" v-cloak>
|
<div id="app" v-cloak>
|
||||||
<van-sticky>
|
<van-sticky>
|
||||||
<van-nav-bar @click-left="history.back()" fixed left-arrow placeholder
|
<van-nav-bar @click-left="pjaxReplace('/mobile/index')" fixed left-arrow placeholder
|
||||||
title="我的疗休养"></van-nav-bar>
|
title="我的疗休养"></van-nav-bar>
|
||||||
</van-sticky>
|
</van-sticky>
|
||||||
|
|
||||||
@@ -188,7 +242,7 @@ layout("/mobile/platform.html"){
|
|||||||
<!--按钮导航-->
|
<!--按钮导航-->
|
||||||
<div class="choose_button van-doc-card">
|
<div class="choose_button van-doc-card">
|
||||||
<van-grid :column-num="chooseButton.length" :border="false">
|
<van-grid :column-num="chooseButton.length" :border="false">
|
||||||
<van-grid-item @click="pageForm.theRapyRecuperationType = item.value; doSearch()"
|
<van-grid-item @click="pageForm.theRapyRecuperationType = item.value;doSearch()"
|
||||||
v-for="item in chooseButton">
|
v-for="item in chooseButton">
|
||||||
<van-image width="46" height="46" :src="item.imgUrl"></van-image>
|
<van-image width="46" height="46" :src="item.imgUrl"></van-image>
|
||||||
<div :style="pageForm.theRapyRecuperationType == item.value ? 'color: #1867b0; font-weight: bold' : 'color: black; font-weight: normal'"
|
<div :style="pageForm.theRapyRecuperationType == item.value ? 'color: #1867b0; font-weight: bold' : 'color: black; font-weight: normal'"
|
||||||
@@ -196,6 +250,14 @@ layout("/mobile/platform.html"){
|
|||||||
</div>
|
</div>
|
||||||
</van-grid-item>
|
</van-grid-item>
|
||||||
</van-grid>
|
</van-grid>
|
||||||
|
|
||||||
|
<van-divider></van-divider>
|
||||||
|
|
||||||
|
<div class="footer">
|
||||||
|
<van-button @click="pageForm.signUpStateId = 1; getData()" :class="pageForm.signUpStateId == 1 ? 'active' : 'no_active'">已报名</van-button>
|
||||||
|
<van-button @click="pageForm.signUpStateId = 2; getData()" :class="pageForm.signUpStateId == 2 ? 'active' : 'no_active'">已参加</van-button>
|
||||||
|
<van-button @click="pageForm.signUpStateId = 3; getData()" :class="pageForm.signUpStateId == 3 ? 'active' : 'no_active'">未参加</van-button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<van-list
|
<van-list
|
||||||
@@ -209,7 +271,7 @@ layout("/mobile/platform.html"){
|
|||||||
<van-image
|
<van-image
|
||||||
height="100"
|
height="100"
|
||||||
radius="8"
|
radius="8"
|
||||||
:src="APP_DOMAIN + '/file_server/fileStreamPreview?id=' + o.fileId"
|
:src="CREATE_PREVIEW_URL(o.fileId)"
|
||||||
width="150"
|
width="150"
|
||||||
></van-image>
|
></van-image>
|
||||||
|
|
||||||
@@ -241,7 +303,8 @@ layout("/mobile/platform.html"){
|
|||||||
<span>联系方式:</span>{{o.contactMobileNumber}}
|
<span>联系方式:</span>{{o.contactMobileNumber}}
|
||||||
</div>
|
</div>
|
||||||
<div class="mobile" v-if="![2715,2725,2735].includes(o.stateId)">
|
<div class="mobile" v-if="![2715,2725,2735].includes(o.stateId)">
|
||||||
<span>随行家属:</span>{{o.companionUserNames ? o.companionUserNames : '无'}}
|
<span v-if="configData.familyInfo === 1">随行家属:</span>{{o.companionUserNames ? o.companionUserNames : '无'}}
|
||||||
|
<span v-else>随行家属:</span>{{o.familyNumber}}人
|
||||||
</div>
|
</div>
|
||||||
<div class="mobile" v-else>
|
<div class="mobile" v-else>
|
||||||
<span>审核状态:</span><span :style="'color: ' + o.stateColor">{{o.stateName}}</span>
|
<span>审核状态:</span><span :style="'color: ' + o.stateColor">{{o.stateName}}</span>
|
||||||
@@ -295,6 +358,9 @@ layout("/mobile/platform.html"){
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="operateDiv">
|
<div class="operateDiv">
|
||||||
|
<van-button v-if="pageForm.signUpStateId == 2" @click="openEvaluate(o)" type="info" size="small" color="#1867b0">
|
||||||
|
评 价
|
||||||
|
</van-button>
|
||||||
<van-button v-if="pageForm.theRapyRecuperationType != '2' && moment().unix() < moment(o.changeEndTime).unix()
|
<van-button v-if="pageForm.theRapyRecuperationType != '2' && moment().unix() < moment(o.changeEndTime).unix()
|
||||||
&& ![2715,2725,2735].includes(o.stateId)" @click="edit(o)"
|
&& ![2715,2725,2735].includes(o.stateId)" @click="edit(o)"
|
||||||
type="info" size="small" color="#1867b0" :disabled="o.isTakePartIn == true || getDisabled(o)">
|
type="info" size="small" color="#1867b0" :disabled="o.isTakePartIn == true || getDisabled(o)">
|
||||||
@@ -302,21 +368,15 @@ layout("/mobile/platform.html"){
|
|||||||
</van-button>
|
</van-button>
|
||||||
<van-button type="info" size="small" color="#1867b0" @click="cancel(o)"
|
<van-button type="info" size="small" color="#1867b0" @click="cancel(o)"
|
||||||
:disabled="getDisabled(o)">
|
:disabled="getDisabled(o)">
|
||||||
取 消
|
撤 销
|
||||||
</van-button>
|
</van-button>
|
||||||
<van-button v-if="o.isTakePartIn == true" type="info" size="small" color="#1867b0"
|
<!--<van-button v-if="o.isTakePartIn == true" type="info" size="small" color="#1867b0"
|
||||||
@click="satisfaction(o)">满意度反馈</van-button>
|
@click="satisfaction(o)">满意度反馈</van-button>-->
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</van-list>
|
</van-list>
|
||||||
|
|
||||||
<div class="footer">
|
|
||||||
<van-button @click="pageForm.signUpStateId = 1; getData()" :class="pageForm.signUpStateId == 1 ? 'active' : 'no_active'">已报名</van-button>
|
|
||||||
<van-button @click="pageForm.signUpStateId = 2; getData()" :class="pageForm.signUpStateId == 2 ? 'active' : 'no_active'">已参加</van-button>
|
|
||||||
<van-button @click="pageForm.signUpStateId = 3; getData()" :class="pageForm.signUpStateId == 3 ? 'active' : 'no_active'">未参加</van-button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<van-popup class="popVisible" position="right" v-model="popVisible">
|
<van-popup class="popVisible" position="right" v-model="popVisible">
|
||||||
<van-nav-bar @click-left="popVisible = false" fixed left-arrow placeholder title="满意度评分"></van-nav-bar>
|
<van-nav-bar @click-left="popVisible = false" fixed left-arrow placeholder title="满意度评分"></van-nav-bar>
|
||||||
<div class="cus_content">
|
<div class="cus_content">
|
||||||
@@ -352,14 +412,45 @@ layout("/mobile/platform.html"){
|
|||||||
</div>
|
</div>
|
||||||
</van-popup>
|
</van-popup>
|
||||||
|
|
||||||
<div>
|
<van-action-sheet title="参加体验评价" v-model="evaluatePopup">
|
||||||
<van-tabbar v-model="tarBarActive">
|
<div class="evaluateForm">
|
||||||
<van-tabbar-item icon="home-o" replace url="/platform/mobile/theRapyRecuperation/index">疗休养报名
|
|
||||||
</van-tabbar-item>
|
<div style="text-align: center;margin: 20px 0;font-size: 20px;color: #f18d8d;font-weight: bold;">
|
||||||
<van-tabbar-item icon="manager-o" replace url="/platform/mobile/theRapyRecuperation/myRecuperation">我的疗休养
|
您的评价让我们做的更好
|
||||||
</van-tabbar-item>
|
</div>
|
||||||
</van-tabbar>
|
|
||||||
</div>
|
<div style="display: flex;justify-content: center;flex-direction: column;align-items: center">
|
||||||
|
<div style="text-align: center;font-size: 13px;color: rgb(139 134 134); margin-bottom: 10px">为本次疗休养打分
|
||||||
|
</div>
|
||||||
|
<div class="evaluate_item_content">
|
||||||
|
<div class="evaluate_item" @click="evaluateClick('满意', 1)">满意</div>
|
||||||
|
<div class="evaluate_item" @click="evaluateClick('一般', 2)">一般</div>
|
||||||
|
<div class="evaluate_item" @click="evaluateClick('不满意', 3)">不满意</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<van-field
|
||||||
|
autosize
|
||||||
|
class="evaluateTextField"
|
||||||
|
label="评价"
|
||||||
|
label-width="0"
|
||||||
|
maxlength="100"
|
||||||
|
placeholder="请输入评价"
|
||||||
|
rows="5"
|
||||||
|
type="textarea"
|
||||||
|
v-model="evaluateFormData.evaluateText"
|
||||||
|
>
|
||||||
|
<div slot="label"></div>
|
||||||
|
</van-field>
|
||||||
|
</div>
|
||||||
|
<div style="padding: 10px 16px">
|
||||||
|
<van-button @click="doSubmitEvaluate"
|
||||||
|
block
|
||||||
|
type="primary"
|
||||||
|
>提交
|
||||||
|
</van-button>
|
||||||
|
</div>
|
||||||
|
</van-action-sheet>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
@@ -376,23 +467,81 @@ layout("/mobile/platform.html"){
|
|||||||
mixins: [mobileMixins],
|
mixins: [mobileMixins],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
evaluateFormData: {},
|
||||||
|
evaluatePopup: false,
|
||||||
yearArray: [],
|
yearArray: [],
|
||||||
popVisible: false,
|
popVisible: false,
|
||||||
chooseButton: [],
|
chooseButton: [],
|
||||||
pageForm: {
|
pageForm: {
|
||||||
theRapyRecuperationType: null,
|
theRapyRecuperationType: null,
|
||||||
signUpStateId: 1,
|
signUpStateId: 1,
|
||||||
year: null,
|
year: new Date().getFullYear(),
|
||||||
},
|
},
|
||||||
loading: false,
|
loading: false,
|
||||||
finished: false,
|
finished: false,
|
||||||
refreshing: false,
|
refreshing: false,
|
||||||
satisfactionForm: {},
|
satisfactionForm: {},
|
||||||
configData: {},
|
configData: {},
|
||||||
tarBarActive: 1
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
async openEvaluate(o) {
|
||||||
|
if(o.isTakePartIn === false) {
|
||||||
|
this.$modal.msg("参加后才能评价")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
await this.finOneEvaluate(o.takePartInLineId)
|
||||||
|
this.evaluatePopup = true
|
||||||
|
this.$nextTick(() => {
|
||||||
|
let score = 1
|
||||||
|
if (this.evaluateFormData.evaluateScore === '满意') {
|
||||||
|
score = 1
|
||||||
|
} else if (this.evaluateFormData.evaluateScore === '一般') {
|
||||||
|
score = 2
|
||||||
|
} else if (this.evaluateFormData.evaluateScore === '不满意') {
|
||||||
|
score = 3
|
||||||
|
}
|
||||||
|
this.evaluateClick(this.evaluateFormData.evaluateScore, score)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
evaluateClick(value, index) {
|
||||||
|
this.evaluateFormData.evaluateScore = value
|
||||||
|
const elements = document.querySelectorAll('.evaluate_item')
|
||||||
|
for (let i = 0; i < elements.length; i++) {
|
||||||
|
if(index === (i + 1)) {
|
||||||
|
elements[i].classList.add('evaluate_active')
|
||||||
|
} else {
|
||||||
|
elements[i].classList.remove('evaluate_active')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async finOneEvaluate(lineId) {
|
||||||
|
const {data, code, msg} = await $.post("/platform/theRapyRecuperation/line/enroll/finOneEvaluate", {
|
||||||
|
lineId: lineId,
|
||||||
|
})
|
||||||
|
if (code === 0) {
|
||||||
|
if (data) {
|
||||||
|
this.evaluateFormData = data
|
||||||
|
} else {
|
||||||
|
this.evaluateFormData = {lineId: lineId}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.$message.warning(msg)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async doSubmitEvaluate() {
|
||||||
|
if (!this.evaluateFormData.evaluateScore) {
|
||||||
|
this.$modal.msg("请为本次疗休养评分")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
const {code, data, msg} = await $.post('/platform/theRapyRecuperation/line/enroll/doEvaluate', this.evaluateFormData)
|
||||||
|
if (code === 0) {
|
||||||
|
this.$modal.msgSuccess("评价成功")
|
||||||
|
this.evaluatePopup = false
|
||||||
|
} else {
|
||||||
|
this.$modal.msgError(msg)
|
||||||
|
}
|
||||||
|
},
|
||||||
getDisabled(o) {
|
getDisabled(o) {
|
||||||
if(o.regionalNature === '省内') {
|
if(o.regionalNature === '省内') {
|
||||||
return this.configData.isSnLine && o.stateId === 2750
|
return this.configData.isSnLine && o.stateId === 2750
|
||||||
@@ -465,11 +614,11 @@ layout("/mobile/platform.html"){
|
|||||||
}
|
}
|
||||||
vant.Dialog.confirm({
|
vant.Dialog.confirm({
|
||||||
title: '温馨提醒',
|
title: '温馨提醒',
|
||||||
message: '您确定要取消此报名吗?',
|
message: '您确定要撤销此报名吗?',
|
||||||
}).then(async () => {
|
}).then(async () => {
|
||||||
const res = await $.post('/platform/theRapyRecuperation/line/enroll/doDeleteMyEnrollInfoById/' + o.id)
|
const res = await $.post('/platform/theRapyRecuperation/line/enroll/doDeleteMyEnrollInfoById/' + o.id)
|
||||||
if(res.code === 0) {
|
if(res.code === 0) {
|
||||||
vant.Toast('取消成功')
|
vant.Toast('撤销成功')
|
||||||
this.getData()
|
this.getData()
|
||||||
}else {
|
}else {
|
||||||
vant.Toast(res.msg)
|
vant.Toast(res.msg)
|
||||||
@@ -516,8 +665,7 @@ layout("/mobile/platform.html"){
|
|||||||
},
|
},
|
||||||
async created() {
|
async created() {
|
||||||
this.createYear()
|
this.createYear()
|
||||||
this.yearArray.unshift({value: null, text: '全部'})
|
this.yearArray.unshift({value: null, text: '所有年度'})
|
||||||
this.pageForm.year = new Date().getFullYear()
|
|
||||||
this.pageForm.theRapyRecuperationType = getQueryString('index') ? getQueryString('index') : await this.getType()
|
this.pageForm.theRapyRecuperationType = getQueryString('index') ? getQueryString('index') : await this.getType()
|
||||||
this.chooseButton = await getEnumOptions('TheRapyRecuperationType')
|
this.chooseButton = await getEnumOptions('TheRapyRecuperationType')
|
||||||
this.chooseButton = this.chooseButton.filter(o => o.value !== 2 && o.value !== 3)
|
this.chooseButton = this.chooseButton.filter(o => o.value !== 2 && o.value !== 3)
|
||||||
|
|||||||
@@ -0,0 +1,372 @@
|
|||||||
|
<!--#
|
||||||
|
layout("/layouts/platform.html"){
|
||||||
|
#-->
|
||||||
|
<style>
|
||||||
|
.top_block {
|
||||||
|
width: 100%;
|
||||||
|
padding: 20px 80px;
|
||||||
|
border-bottom: 10px solid rgb(240, 240, 240);
|
||||||
|
}
|
||||||
|
|
||||||
|
.top_title {
|
||||||
|
font-size: 18px;
|
||||||
|
height: 30px;
|
||||||
|
line-height: 30px;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top_num {
|
||||||
|
font-size: 26px;
|
||||||
|
color: #808492;
|
||||||
|
}
|
||||||
|
|
||||||
|
.two_num {
|
||||||
|
margin-top: 8px;
|
||||||
|
font-size: 18px;
|
||||||
|
color: #808492;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cut-off-line {
|
||||||
|
width: 1px;
|
||||||
|
height: 70%;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
margin: auto;
|
||||||
|
background-color: rgb(230, 230, 230);
|
||||||
|
}
|
||||||
|
|
||||||
|
.chartTitle {
|
||||||
|
font-size: 14px;
|
||||||
|
color: #808492;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<div id="app">
|
||||||
|
<el-card shadow="never">
|
||||||
|
<div class="search">
|
||||||
|
<div class="search-item">
|
||||||
|
<div class="search-item-label">年度</div>
|
||||||
|
<div class="search-item-option">
|
||||||
|
<el-date-picker
|
||||||
|
style="width: 100%"
|
||||||
|
@change="doSearch"
|
||||||
|
:clearable="false"
|
||||||
|
value-format="yyyy"
|
||||||
|
v-model="pageForm.year"
|
||||||
|
type="year"
|
||||||
|
placeholder="选择年">
|
||||||
|
</el-date-picker>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="search-item">
|
||||||
|
<div class="search-item-label">线路类型</div>
|
||||||
|
<div class="search-item-option">
|
||||||
|
<el-select v-model="pageForm.lineType" placeholder="线路类型" clearable style="width: 100%">
|
||||||
|
<el-option v-for="item in regionalNatureList" :key="item.value" :label="item.label" :value="item.value">{{item.label}}</el-option>
|
||||||
|
</el-select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="search-query">
|
||||||
|
<el-button type="primary" icon="el-icon-search" @click="doSearch()">搜索</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-card>
|
||||||
|
|
||||||
|
<el-card shadow="never" class="mt10">
|
||||||
|
<div class="top_block">
|
||||||
|
<el-row :gutter="20">
|
||||||
|
<el-col :span="4" style="position: relative">
|
||||||
|
<div class="top_title">总人数</div>
|
||||||
|
<div class="top_num">{{numData.allNum || '0'}}</div>
|
||||||
|
<div class="cut-off-line"></div>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col :span="4" style="position: relative">
|
||||||
|
<div class="top_title">省内人数</div>
|
||||||
|
<div class="top_num">{{numData.provinceNum || '0'}}</div>
|
||||||
|
<div class="cut-off-line"></div>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col :span="4" style="position: relative">
|
||||||
|
<div class="top_title">省外人数</div>
|
||||||
|
<div class="top_num">{{numData.outProvinceNum || '0'}}</div>
|
||||||
|
<div class="cut-off-line"></div>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col :span="4" style="position: relative">
|
||||||
|
<div style="display: flex;justify-content: space-between;">
|
||||||
|
<div class="top_title">总线路数</div>
|
||||||
|
<div style="margin-top: 2px;font-size: 18px;color: #1867b0">共{{numData.lineNum || '0'}}条</div>
|
||||||
|
</div>
|
||||||
|
<div class="two_num">省内{{numData.inLineNum || '0'}} | 省外{{numData.outLineNum || '0'}}</div>
|
||||||
|
<div class="cut-off-line"></div>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col :span="4" style="position: relative">
|
||||||
|
<div style="display: flex;justify-content: space-between;">
|
||||||
|
<div class="top_title">校工会组织</div>
|
||||||
|
<div style="margin-top: 2px;font-size: 18px;color: #1867b0">共{{numData.schoolUnionLineNum || '0'}}条</div>
|
||||||
|
</div>
|
||||||
|
<div class="two_num">省内{{numData.schoolInLineNum || '0'}} | 省外{{numData.schoolOutLineNum || '0'}}</div>
|
||||||
|
<div class="cut-off-line"></div>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col :span="4">
|
||||||
|
<div style="display: flex;justify-content: space-between;">
|
||||||
|
<div class="top_title">分工会组织</div>
|
||||||
|
<div style="margin-top: 2px;font-size: 18px;color: #1867b0">共{{numData.unionLineNum || '0'}}条</div>
|
||||||
|
</div>
|
||||||
|
<div class="two_num">省内{{numData.unionInLineNum || '0'}} | 省外{{numData.unionOutLineNum || '0'}}</div>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<el-row gutter="20" style="padding: 30px 0;border-bottom: 10px solid rgb(240, 240, 240)">
|
||||||
|
<el-col :span="12" v-loading="lotLoading">
|
||||||
|
<div class="chartTitle">时间标段统计</div>
|
||||||
|
<div id="lotChart" style="width: 100%;height: 300px"></div>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col :span="12" v-loading="ageLoading">
|
||||||
|
<div class="chartTitle">年龄分布统计</div>
|
||||||
|
<div id="ageChart" style="width: 100%;height: 300px"></div>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
|
||||||
|
<el-row style="padding: 30px 0;border-bottom: 10px solid rgb(240, 240, 240)">
|
||||||
|
<el-col :span="24" style="padding: 0 20px" v-loading="lineTravelOrAgeLoading">
|
||||||
|
<div class="chartTitle">线路人数及年龄统计</div>
|
||||||
|
<div id="lineTravelChart"></div>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<!-- <el-row style="padding: 30px 0;border-bottom: 10px solid rgb(240, 240, 240)">-->
|
||||||
|
<!-- <el-col :span="24" style="padding: 0 20px">-->
|
||||||
|
<!-- <div class="chartTitle">线路出行年龄统计</div>-->
|
||||||
|
<!-- </el-col>-->
|
||||||
|
<!-- </el-row>-->
|
||||||
|
|
||||||
|
</el-card>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
const vue = new Vue({
|
||||||
|
el: '#app',
|
||||||
|
mixins: [initTableMixins],
|
||||||
|
data() {
|
||||||
|
return{
|
||||||
|
pageForm: {
|
||||||
|
year: moment().format('YYYY') + "",
|
||||||
|
lineType: ''
|
||||||
|
},
|
||||||
|
numData: {
|
||||||
|
allNum: '',
|
||||||
|
provinceNum: '',
|
||||||
|
outProvinceNum: '',
|
||||||
|
allLineNum: '',
|
||||||
|
schoolLineNum: '',
|
||||||
|
branchLineNum: ''
|
||||||
|
},
|
||||||
|
regionalNatureList: [{label:'全部线路',name:'provinceAll',ordinal:0,provinceIn:'provinceIn',provinceOut:'provinceOut',value:'全部'}],
|
||||||
|
|
||||||
|
lotLoading: false,
|
||||||
|
ageLoading: false,
|
||||||
|
|
||||||
|
lineTravelOrAgeLoading: false,
|
||||||
|
isLineTravel: false,
|
||||||
|
lineTravelOrAgeTip: '出行线路年龄统计',
|
||||||
|
|
||||||
|
|
||||||
|
dualAxisChartInstance: null,
|
||||||
|
chartData: [
|
||||||
|
{ "lineName": "03-15", "takePartInLineNum": 10, "underThirtyFive": 5, "thirtyFiveToFortyFive": 3, "aboveFortyFive": 2 },
|
||||||
|
{ "lineName": "04-10", "takePartInLineNum": 15, "underThirtyFive": 7, "thirtyFiveToFortyFive": 6, "aboveFortyFive": 2 }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async getNumData(){
|
||||||
|
const resp = await $.post('/platform/theRapyRecuperation/annualAnalysis/getNumData', this.pageForm)
|
||||||
|
if (resp.code === 0) {
|
||||||
|
this.numData = resp.data
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async getLotNumData(){
|
||||||
|
this.lotLoading = true
|
||||||
|
const resp = await $.post('/platform/theRapyRecuperation/annualAnalysis/getLotNum', this.pageForm)
|
||||||
|
if (resp.code === 0) {
|
||||||
|
let {data} = resp
|
||||||
|
document.getElementById("lotChart").innerHTML = ''
|
||||||
|
const config = {
|
||||||
|
isStack: true,
|
||||||
|
"legend": {
|
||||||
|
"position": "top-right",
|
||||||
|
"flipPage": false
|
||||||
|
},
|
||||||
|
autoFit: true,
|
||||||
|
title: {
|
||||||
|
visible: true,
|
||||||
|
text: '出行时间标段统计详情',
|
||||||
|
},
|
||||||
|
description: {
|
||||||
|
visible: true,
|
||||||
|
text: '人',
|
||||||
|
},
|
||||||
|
xField: 'label',
|
||||||
|
yField: 'value',
|
||||||
|
stackField: 'type',
|
||||||
|
color: ["#5B8FF9", "#5AD8A6"],
|
||||||
|
"xAxis": {
|
||||||
|
label: {
|
||||||
|
formatter: (v) => {
|
||||||
|
if (data.length > 30 && v.length > 3) {
|
||||||
|
return v.substr(0, 2) + '...'
|
||||||
|
} else if (data.length > 20 && v.length > 4) {
|
||||||
|
return v.substr(0, 3) + '...'
|
||||||
|
} else if (data.length > 10 && v.length > 6) {
|
||||||
|
return v.substr(0, 5) + '...'
|
||||||
|
}
|
||||||
|
return v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"yAxis": {},
|
||||||
|
meta: {
|
||||||
|
label: {
|
||||||
|
alias: '标段时长',
|
||||||
|
},
|
||||||
|
value: {
|
||||||
|
alias: '人数',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
connectedArea: {
|
||||||
|
visible: true,
|
||||||
|
triggerOn: false,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
const plot = new G2Plot.Column(document.getElementById("lotChart"), {
|
||||||
|
data,
|
||||||
|
...config,
|
||||||
|
});
|
||||||
|
plot.render();
|
||||||
|
this.lotLoading = false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async getAgeData(){
|
||||||
|
this.ageLoading = true
|
||||||
|
const resp = await $.post('/platform/theRapyRecuperation/annualAnalysis/getAgeNum', this.pageForm)
|
||||||
|
if (resp.code === 0) {
|
||||||
|
let {data} = resp
|
||||||
|
document.getElementById("ageChart").innerHTML = ''
|
||||||
|
const config = {
|
||||||
|
"legend": {
|
||||||
|
"flipPage": false
|
||||||
|
},
|
||||||
|
"label": {
|
||||||
|
"type": "spider",
|
||||||
|
"offset": 50
|
||||||
|
},
|
||||||
|
"width": $('#ageChart').width(),
|
||||||
|
"height": $('#ageChart').height(),
|
||||||
|
"forceFit": false,
|
||||||
|
"radius": 1,
|
||||||
|
"colorField": "label",
|
||||||
|
"angleField": "value",
|
||||||
|
meta: {
|
||||||
|
label: {
|
||||||
|
alias: '年龄结构',
|
||||||
|
},
|
||||||
|
value: {
|
||||||
|
alias: '人数',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
const plot = new G2Plot.Pie(document.getElementById("ageChart"), {
|
||||||
|
data,
|
||||||
|
...config,
|
||||||
|
});
|
||||||
|
plot.render();
|
||||||
|
this.ageLoading = false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async getLineTravelData(){
|
||||||
|
if (this.dualAxisChartInstance) {
|
||||||
|
this.dualAxisChartInstance.destroy(); // 如果已有实例,先销毁
|
||||||
|
}
|
||||||
|
const resp = await $.post('/platform/theRapyRecuperation/annualAnalysis/getLineTravelAndAgeData', this.pageForm)
|
||||||
|
if (resp.code === 0) {
|
||||||
|
let {data} = resp
|
||||||
|
document.getElementById("lineTravelChart").innerHTML = ''
|
||||||
|
const dualAxes = new G2Plot.DualAxes('lineTravelChart', {
|
||||||
|
data: [data.uvData, data.transformData],
|
||||||
|
xField: 'lineName',
|
||||||
|
yField: ['value', 'count'],
|
||||||
|
meta: {
|
||||||
|
value: {
|
||||||
|
alias: '出行人数',
|
||||||
|
},
|
||||||
|
count: {
|
||||||
|
alias: '年龄段人数',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
yAxis: [
|
||||||
|
{
|
||||||
|
min: 0, // 设置Y轴最小值为0
|
||||||
|
max: null, // 自动计算最大值
|
||||||
|
title: {
|
||||||
|
text: '出行人数',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
position: 'right',
|
||||||
|
min: 0,
|
||||||
|
max: null,
|
||||||
|
title: {
|
||||||
|
text: '年龄段人数',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
geometryOptions: [
|
||||||
|
{
|
||||||
|
geometry: 'column',
|
||||||
|
columnWidthRatio: 0.4,
|
||||||
|
color: '#5B8FF9', // 设置柱状图颜色
|
||||||
|
},
|
||||||
|
{
|
||||||
|
geometry: 'line',
|
||||||
|
seriesField: 'name',
|
||||||
|
color: ['#5AD8A6', '#E8684A', '#FF9D4D'], // 设置线的颜色
|
||||||
|
},
|
||||||
|
],
|
||||||
|
tooltip: {
|
||||||
|
shared: true, // 共享提示框
|
||||||
|
},
|
||||||
|
});
|
||||||
|
dualAxes.render();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
doLineTravelOrAgeSwitch(){
|
||||||
|
this.isLineTravel = !this.isLineTravel
|
||||||
|
this.lineTravelOrAgeTip = this.isLineTravel ? '出行线路年龄统计' : '出行线路人数统计'
|
||||||
|
},
|
||||||
|
async pageData(){
|
||||||
|
await this.getNumData()
|
||||||
|
await this.getLotNumData()
|
||||||
|
await this.getAgeData()
|
||||||
|
await this.getLineTravelData()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async created() {
|
||||||
|
this.regionalNatureList.push(...await getEnumOptions('TheRapyRecuperationProvinceType'))
|
||||||
|
this.pageData()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
<!--#
|
||||||
|
}
|
||||||
|
#-->
|
||||||
@@ -143,9 +143,9 @@ layout("/layouts/platform.html"){
|
|||||||
style="width: 80%"
|
style="width: 80%"
|
||||||
@change="lineChange(pageForm.takePartInLineId);doSearch()">
|
@change="lineChange(pageForm.takePartInLineId);doSearch()">
|
||||||
<el-option v-for="item in takePartInLines"
|
<el-option v-for="item in takePartInLines"
|
||||||
:key="item.id"
|
:key="item.selectId"
|
||||||
:label="item.lineName"
|
:label="item.lineName"
|
||||||
:value="item.id">
|
:value="item.selectId">
|
||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-col>
|
</el-col>
|
||||||
@@ -259,7 +259,7 @@ layout("/layouts/platform.html"){
|
|||||||
</el-link>
|
</el-link>
|
||||||
</template>
|
</template>
|
||||||
<template scope="{row}" v-else-if="column.prop=='isFamily'">
|
<template scope="{row}" v-else-if="column.prop=='isFamily'">
|
||||||
<el-link v-if="!row.familyNumber" type="primary" @click="openView(row)">
|
<el-link v-if="!row.familyNumber" type="primary" @click="openUser(row)">
|
||||||
{{row.isFamily?'携带':'未携带'}}({{row.isFamily}})
|
{{row.isFamily?'携带':'未携带'}}({{row.isFamily}})
|
||||||
</el-link>
|
</el-link>
|
||||||
<el-link v-else type="primary">
|
<el-link v-else type="primary">
|
||||||
@@ -471,22 +471,22 @@ layout("/layouts/platform.html"){
|
|||||||
<el-table :data="editFormData.companionList">
|
<el-table :data="editFormData.companionList">
|
||||||
<el-table-column label="姓名" prop="userName"></el-table-column>
|
<el-table-column label="姓名" prop="userName"></el-table-column>
|
||||||
<el-table-column label="性别" prop="sex"></el-table-column>
|
<el-table-column label="性别" prop="sex"></el-table-column>
|
||||||
<el-table-column label="身份证号" prop="idCard" show-overflow-tooltip></el-table-column>
|
<el-table-column label="身份证号" prop="idCard"></el-table-column>
|
||||||
<el-table-column label="年龄" prop="age"></el-table-column>
|
<el-table-column label="年龄" prop="age"></el-table-column>
|
||||||
<el-table-column label="床型" prop="bedType">
|
<el-table-column label="床型" prop="bedType">
|
||||||
<template scope="{row}">
|
<template scope="{row}">
|
||||||
{{ row.bedInfo?.bedType }}
|
{{ row.bedInfo.bedType }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="床位" prop="bedNum">
|
<el-table-column label="床位" prop="bedNum">
|
||||||
<template scope="{row}">
|
<template scope="{row}">
|
||||||
{{ row.bedInfo?.bedNum }}
|
{{ row.bedInfo.bedNum }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="意向拼床人" prop="otherSleepUser">
|
<el-table-column label="意向拼床人" prop="otherSleepUser">
|
||||||
<template scope="{row}">
|
<template scope="{row}">
|
||||||
{{ row.bedInfo?.otherSleepUser ?
|
{{ row.bedInfo.otherSleepUser ?
|
||||||
row.bedInfo?.otherSleepUser : '暂无' }}
|
row.bedInfo.otherSleepUser : '暂无' }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="关系" prop="relation"></el-table-column>
|
<el-table-column label="关系" prop="relation"></el-table-column>
|
||||||
@@ -667,7 +667,6 @@ layout("/layouts/platform.html"){
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
async openModify(row) {
|
async openModify(row) {
|
||||||
this.getUnionSelectLine(row.takePartInLineId)
|
|
||||||
this.editFormData = {};
|
this.editFormData = {};
|
||||||
const resp = await $.get("/platform/theRapyRecuperation/TheRapyAudit/findOne", {id: row.id})
|
const resp = await $.get("/platform/theRapyRecuperation/TheRapyAudit/findOne", {id: row.id})
|
||||||
if (resp.code === 0) {
|
if (resp.code === 0) {
|
||||||
@@ -713,7 +712,7 @@ layout("/layouts/platform.html"){
|
|||||||
},
|
},
|
||||||
async lineChange(val) {
|
async lineChange(val) {
|
||||||
this.pageForm.selectId = '';
|
this.pageForm.selectId = '';
|
||||||
const data = this.takePartInLines.find(v => v.id === val)
|
const data = this.takePartInLines.find(v => v.selectId === val)
|
||||||
if (!data) {
|
if (!data) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -951,11 +950,10 @@ layout("/layouts/platform.html"){
|
|||||||
this.modifyConfig = res.data
|
this.modifyConfig = res.data
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async getUnionSelectLine(disPlayUnionSelectId = null) {
|
async getUnionSelectLine() {
|
||||||
const resp = await $.post('/platform/theRapyRecuperation/user/query/getUnionSelectLine', {
|
const resp = await $.post('/platform/theRapyRecuperation/user/query/getUnionSelectLine', {
|
||||||
startYear: this.pageForm.year,
|
year: this.pageForm.year,
|
||||||
signUpMode: 1,
|
signUpMode: 1,
|
||||||
disPlayUnionSelectId: disPlayUnionSelectId
|
|
||||||
})
|
})
|
||||||
if (resp.code === 0) {
|
if (resp.code === 0) {
|
||||||
this.unionSelectLines = resp.data
|
this.unionSelectLines = resp.data
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ layout("/layouts/platform.html"){
|
|||||||
type="year"
|
type="year"
|
||||||
value-format="yyyy"
|
value-format="yyyy"
|
||||||
placeholder="选择年"
|
placeholder="选择年"
|
||||||
style="width: 80%" @change="getLineSignNumber(); doSearch()">
|
style="width: 80%" @change="doSearch">
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
@@ -253,7 +253,7 @@ layout("/layouts/platform.html"){
|
|||||||
</el-link>
|
</el-link>
|
||||||
</template>
|
</template>
|
||||||
<template scope="{row}" v-else-if="column.prop=='isFamily'">
|
<template scope="{row}" v-else-if="column.prop=='isFamily'">
|
||||||
<el-link v-if="!row.familyNumber" type="primary" @click="openView(row)">
|
<el-link v-if="!row.familyNumber" type="primary" @click="openUser(row)">
|
||||||
{{row.isFamily?'携带':'未携带'}}({{row.isFamily}})
|
{{row.isFamily?'携带':'未携带'}}({{row.isFamily}})
|
||||||
</el-link>
|
</el-link>
|
||||||
<el-link v-else type="primary">
|
<el-link v-else type="primary">
|
||||||
@@ -361,8 +361,8 @@ layout("/layouts/platform.html"){
|
|||||||
<el-row style="margin: 40px 0;text-align: right">
|
<el-row style="margin: 40px 0;text-align: right">
|
||||||
<el-button @click="$refs.guava.index()">返回
|
<el-button @click="$refs.guava.index()">返回
|
||||||
</el-button>
|
</el-button>
|
||||||
<!--<el-button @click="doAudit(false,true)" type="warning">调整
|
<el-button @click="doAudit(false,true)" type="warning">调整
|
||||||
</el-button>-->
|
</el-button>
|
||||||
<el-button @click="doAudit(false,false)" type="danger">拒绝
|
<el-button @click="doAudit(false,false)" type="danger">拒绝
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button @click="doAudit(true,false)" type="primary">通过
|
<el-button @click="doAudit(true,false)" type="primary">通过
|
||||||
@@ -465,22 +465,22 @@ layout("/layouts/platform.html"){
|
|||||||
<el-table :data="editFormData.companionList">
|
<el-table :data="editFormData.companionList">
|
||||||
<el-table-column label="姓名" prop="userName"></el-table-column>
|
<el-table-column label="姓名" prop="userName"></el-table-column>
|
||||||
<el-table-column label="性别" prop="sex"></el-table-column>
|
<el-table-column label="性别" prop="sex"></el-table-column>
|
||||||
<el-table-column label="身份证号" prop="idCard" show-overflow-tooltip></el-table-column>
|
<el-table-column label="身份证号" prop="idCard"></el-table-column>
|
||||||
<el-table-column label="年龄" prop="age"></el-table-column>
|
<el-table-column label="年龄" prop="age"></el-table-column>
|
||||||
<el-table-column label="床型" prop="bedType">
|
<el-table-column label="床型" prop="bedType">
|
||||||
<template scope="{row}">
|
<template scope="{row}">
|
||||||
{{ row.bedInfo?.bedType }}
|
{{ row.bedInfo.bedType }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="床位" prop="bedNum">
|
<el-table-column label="床位" prop="bedNum">
|
||||||
<template scope="{row}">
|
<template scope="{row}">
|
||||||
{{ row.bedInfo?.bedNum }}
|
{{ row.bedInfo.bedNum }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="意向拼床人" prop="otherSleepUser">
|
<el-table-column label="意向拼床人" prop="otherSleepUser">
|
||||||
<template scope="{row}">
|
<template scope="{row}">
|
||||||
{{ row.bedInfo?.otherSleepUser ?
|
{{ row.bedInfo.otherSleepUser ?
|
||||||
row.bedInfo?.otherSleepUser : '暂无' }}
|
row.bedInfo.otherSleepUser : '暂无' }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="关系" prop="relation"></el-table-column>
|
<el-table-column label="关系" prop="relation"></el-table-column>
|
||||||
@@ -619,6 +619,10 @@ layout("/layouts/platform.html"){
|
|||||||
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
async playChange() {
|
||||||
|
await this.getLineSignNumber()
|
||||||
|
await this.doSearch()
|
||||||
|
},
|
||||||
async validateLine() {
|
async validateLine() {
|
||||||
const resp = await $.post('/platform/theRapyRecuperation/line/enroll/validSignUpInfo'
|
const resp = await $.post('/platform/theRapyRecuperation/line/enroll/validSignUpInfo'
|
||||||
, {enroll: JSON.stringify(this.editFormData)})
|
, {enroll: JSON.stringify(this.editFormData)})
|
||||||
@@ -662,7 +666,6 @@ layout("/layouts/platform.html"){
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
async openModify(row) {
|
async openModify(row) {
|
||||||
this.getUnionSelectLine(row.takePartInLineId)
|
|
||||||
this.editFormData = {};
|
this.editFormData = {};
|
||||||
const resp = await $.get("/platform/theRapyRecuperation/TheRapyAudit/findOne", {id: row.id})
|
const resp = await $.get("/platform/theRapyRecuperation/TheRapyAudit/findOne", {id: row.id})
|
||||||
if (resp.code === 0) {
|
if (resp.code === 0) {
|
||||||
@@ -719,10 +722,6 @@ layout("/layouts/platform.html"){
|
|||||||
await this.getLineSignNumber()
|
await this.getLineSignNumber()
|
||||||
await this.doSearch()
|
await this.doSearch()
|
||||||
},
|
},
|
||||||
async playChange() {
|
|
||||||
await this.getLineSignNumber()
|
|
||||||
await this.doSearch()
|
|
||||||
},
|
|
||||||
async getLinePlayTimeByLineId(id) {
|
async getLinePlayTimeByLineId(id) {
|
||||||
const resp = await $.get(loc() + '/getLinePlayTimeByLineId', {
|
const resp = await $.get(loc() + '/getLinePlayTimeByLineId', {
|
||||||
lineId: id,
|
lineId: id,
|
||||||
@@ -946,11 +945,10 @@ layout("/layouts/platform.html"){
|
|||||||
this.modifyConfig = res.data
|
this.modifyConfig = res.data
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async getUnionSelectLine(disPlayUnionSelectId = null) {
|
async getUnionSelectLine() {
|
||||||
const resp = await $.post('/platform/theRapyRecuperation/user/query/getUnionSelectLine', {
|
const resp = await $.post('/platform/theRapyRecuperation/user/query/getUnionSelectLine', {
|
||||||
startYear: this.pageForm.year,
|
year: this.pageForm.year,
|
||||||
//signUpMode: 1,
|
signUpMode: 1,
|
||||||
disPlayUnionSelectId: disPlayUnionSelectId
|
|
||||||
})
|
})
|
||||||
if (resp.code === 0) {
|
if (resp.code === 0) {
|
||||||
this.unionSelectLines = resp.data
|
this.unionSelectLines = resp.data
|
||||||
|
|||||||
+1
-1
@@ -304,7 +304,7 @@ layout("/layouts/platform.html"){
|
|||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :md="24" :sm="24" :xs="24">
|
<el-col :md="24" :sm="24" :xs="24">
|
||||||
<el-form-item label="详细信息" prop="content">
|
<el-form-item label="详细信息" prop="content">
|
||||||
<div id="lineContent"></div>
|
<text-editor v-model="formData.content"></text-editor>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|||||||
@@ -44,18 +44,9 @@ layout("/layouts/platform.html"){
|
|||||||
@change="handleChangeYear"
|
@change="handleChangeYear"
|
||||||
>
|
>
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
|
|
||||||
<!--<el-date-picker
|
|
||||||
style="width: 100%"
|
|
||||||
@change="doSearch"
|
|
||||||
placeholder="选择年度"
|
|
||||||
type="year"
|
|
||||||
v-model="pageForm.year"
|
|
||||||
value-format="yyyy">
|
|
||||||
</el-date-picker>-->
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!--<div class="search-item">
|
<div class="search-item">
|
||||||
<div class="search-item-label">旅行社:</div>
|
<div class="search-item-label">旅行社:</div>
|
||||||
<div class="search-item-option">
|
<div class="search-item-option">
|
||||||
<el-select @change="doSearch"
|
<el-select @change="doSearch"
|
||||||
@@ -69,7 +60,7 @@ layout("/layouts/platform.html"){
|
|||||||
v-for="item in travelAgencyOptions"></el-option>
|
v-for="item in travelAgencyOptions"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
</div>-->
|
</div>
|
||||||
<div class="search-item">
|
<div class="search-item">
|
||||||
<div class="search-item-label">线路名称:</div>
|
<div class="search-item-label">线路名称:</div>
|
||||||
<div class="search-item-option">
|
<div class="search-item-option">
|
||||||
@@ -95,7 +86,7 @@ layout("/layouts/platform.html"){
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="search-item" v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}">
|
<div class="search-item" v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionAdmin')}">
|
||||||
<div class="search-item-label">分工会:</div>
|
<div class="search-item-label">分工会:</div>
|
||||||
<div class="search-item-option">
|
<div class="search-item-option">
|
||||||
<el-select @change="doSearch"
|
<el-select @change="doSearch"
|
||||||
@@ -111,6 +102,22 @@ layout("/layouts/platform.html"){
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="search-item">
|
||||||
|
<div class="search-item-label">组织形式:</div>
|
||||||
|
<div class="search-item-option">
|
||||||
|
<el-select @change="doSearch"
|
||||||
|
clearable
|
||||||
|
filterable
|
||||||
|
style="width: 100%"
|
||||||
|
v-model="pageForm.signUpMode">
|
||||||
|
<el-option :key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
v-for="item in signUpModeList"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="search-query">
|
<div class="search-query">
|
||||||
<el-button @click="doSearch" icon="el-icon-search" type="primary">搜索</el-button>
|
<el-button @click="doSearch" icon="el-icon-search" type="primary">搜索</el-button>
|
||||||
</div>
|
</div>
|
||||||
@@ -120,7 +127,7 @@ layout("/layouts/platform.html"){
|
|||||||
<el-card class="mt10" shadow="never">
|
<el-card class="mt10" shadow="never">
|
||||||
<table-tool :app="this" label="线路列表">
|
<table-tool :app="this" label="线路列表">
|
||||||
<template #func>
|
<template #func>
|
||||||
<el-button @click="openImport" size="medium" type="primary">导入线路</el-button>
|
<!-- <el-button @click="openImport" size="medium" type="primary">导入线路</el-button>-->
|
||||||
<el-button @click="openAdd" size="medium" type="primary">新建线路</el-button>
|
<el-button @click="openAdd" size="medium" type="primary">新建线路</el-button>
|
||||||
</template>
|
</template>
|
||||||
</table-tool>
|
</table-tool>
|
||||||
@@ -155,15 +162,12 @@ layout("/layouts/platform.html"){
|
|||||||
<template scope="{row:{createMode}}" v-else-if="column.prop==='createMode'">
|
<template scope="{row:{createMode}}" v-else-if="column.prop==='createMode'">
|
||||||
{{createModeName(createMode)}}
|
{{createModeName(createMode)}}
|
||||||
</template>
|
</template>
|
||||||
<template scope="{row}" v-else-if="column.prop==='createUserName'">
|
|
||||||
{{row.createUserName + '(' + row.createUnionName + ')'}}
|
|
||||||
</template>
|
|
||||||
<template scope="{row}" v-else-if="column.prop==='playTime'">
|
<template scope="{row}" v-else-if="column.prop==='playTime'">
|
||||||
<el-button @click="viewUnionSelectTimeInfo(row.id)"
|
<el-button @click="viewUnionSelectTimeInfo(row.id)"
|
||||||
type="text">
|
type="text">
|
||||||
查看详情
|
查看详情
|
||||||
</el-button>
|
</el-button>
|
||||||
<!-- v-if="row.createMode===2 && row.signUpMode===1"-->
|
<!-- v-if="row.createMode===2 && row.signUpMode===1"-->
|
||||||
<!--<span v-else>
|
<!--<span v-else>
|
||||||
{{row.playStartTime + '至' + row.playEndTime}}
|
{{row.playStartTime + '至' + row.playEndTime}}
|
||||||
</span>-->
|
</span>-->
|
||||||
@@ -187,7 +191,7 @@ layout("/layouts/platform.html"){
|
|||||||
<el-form-item label="">
|
<el-form-item label="">
|
||||||
<span class="text-primary">
|
<span class="text-primary">
|
||||||
<i class="el-icon-warning"></i>
|
<i class="el-icon-warning"></i>
|
||||||
温馨提醒:分工会组织的线路,可以自行设置出行时间。
|
温馨提醒:校工会可以为基层工会或个人创建线路,基层工会或个人自行选择并设置活动相关时间。
|
||||||
</span>
|
</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
@@ -199,37 +203,29 @@ layout("/layouts/platform.html"){
|
|||||||
<el-date-picker style="width: 100%"
|
<el-date-picker style="width: 100%"
|
||||||
@change="yearChange"
|
@change="yearChange"
|
||||||
type="year"
|
type="year"
|
||||||
|
placeholder="请选择年度"
|
||||||
v-model="formData.year"
|
v-model="formData.year"
|
||||||
value-format="yyyy"></el-date-picker>
|
value-format="yyyy"></el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :md="12" :sm="24" :xs="24">
|
<el-col :md="12" :sm="24" :xs="24">
|
||||||
<el-form-item label="排序号" prop="serialNumber">
|
<el-form-item label="排序号" prop="serialNumber">
|
||||||
<el-input type="number" maxlength="50" v-model="formData.serialNumber"></el-input>
|
<el-input maxlength="50" v-model="formData.serialNumber"
|
||||||
|
placeholder="请输入排序号"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :md="12" :sm="24" :xs="24">
|
<el-col :md="12" :sm="24" :xs="24">
|
||||||
<el-form-item label="线路名称" prop="lineName">
|
<el-form-item label="线路名称" prop="lineName">
|
||||||
<el-input maxlength="50" v-model="formData.lineName"></el-input>
|
<el-input maxlength="50" v-model="formData.lineName"
|
||||||
|
placeholder="请输入线路名称"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :md="12" :sm="24" :xs="24">
|
||||||
<el-form-item label="时间标段" prop="lotId">
|
|
||||||
<el-select clearable filterable style="width: 100%"
|
|
||||||
v-model="formData.lotId">
|
|
||||||
<el-option :key="item.id"
|
|
||||||
:label="item.lotName"
|
|
||||||
:value="item.id"
|
|
||||||
v-for="item in lotList"
|
|
||||||
></el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<!--<el-col :md="12" :sm="24" :xs="24">
|
|
||||||
<el-form-item label="旅行社名称" prop="travelAgencyId">
|
<el-form-item label="旅行社名称" prop="travelAgencyId">
|
||||||
<el-select clearable filterable style="width: 100%" v-model="formData.travelAgencyId">
|
<el-select clearable filterable style="width: 100%" v-model="formData.travelAgencyId"
|
||||||
|
placeholder="请选择旅行社" @change="$set(formData,'travelAgencyPlace','')">
|
||||||
<el-option :key="item.id"
|
<el-option :key="item.id"
|
||||||
:label="item.travelAgencyName+'('+ item.year +'年)'"
|
:label="item.travelAgencyName+'('+ item.year +'年)'"
|
||||||
:value="item.id"
|
:value="item.id"
|
||||||
@@ -237,24 +233,37 @@ layout("/layouts/platform.html"){
|
|||||||
></el-option>
|
></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>-->
|
</el-col>
|
||||||
</el-row>
|
<el-col :md="12" :sm="24" :xs="24">
|
||||||
<!--<el-row :gutter="20">
|
<el-form-item label="旅行社地点" prop="travelAgencyPlace">
|
||||||
|
<el-select clearable filterable style="width: 100%" v-model="formData.travelAgencyPlace"
|
||||||
|
placeholder="请选择旅行社地点">
|
||||||
|
<el-option :key="index"
|
||||||
|
:label="item"
|
||||||
|
:value="item"
|
||||||
|
v-for="(item,index) in (travelAgencyList.find(v => v.id === formData.travelAgencyId) ?? {}).travelAgencyPlaces"
|
||||||
|
></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
<el-col :md="12" :sm="24" :xs="24">
|
<el-col :md="12" :sm="24" :xs="24">
|
||||||
<el-form-item label="旅行社联系人">
|
<el-form-item label="旅行社联系人">
|
||||||
<el-input
|
<el-input
|
||||||
|
placeholder="请输入旅行社联系人"
|
||||||
:value="(travelAgencyList.find(v => v.id === formData.travelAgencyId) ?? {}).contact"
|
:value="(travelAgencyList.find(v => v.id === formData.travelAgencyId) ?? {}).contact"
|
||||||
readonly></el-input>
|
readonly></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :md="12" :sm="24" :xs="24">
|
<el-col :md="12" :sm="24" :xs="24">
|
||||||
<el-form-item label="联系方式">
|
<el-form-item label="旅行社联系方式">
|
||||||
<el-input
|
<el-input
|
||||||
|
placeholder="请输入旅行社联系方式"
|
||||||
:value="(travelAgencyList.find(v => v.id === formData.travelAgencyId) ?? {}).contactMobileNumber"
|
:value="(travelAgencyList.find(v => v.id === formData.travelAgencyId) ?? {}).contactMobileNumber"
|
||||||
readonly></el-input>
|
readonly></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>-->
|
</el-row>
|
||||||
|
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :md="12" :sm="24" :xs="24">
|
<el-col :md="12" :sm="24" :xs="24">
|
||||||
@@ -269,11 +278,25 @@ layout("/layouts/platform.html"){
|
|||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col span="12" v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionAdmin')}">
|
||||||
|
<el-form-item label="开放选择" prop="openChoose">
|
||||||
|
<el-radio-group class="mr0-radio" size="small" v-model="formData.openChoose">
|
||||||
|
<el-radio :label="true" border>是</el-radio>
|
||||||
|
<el-radio :label="false" border>否</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :md="12" :sm="24" :xs="24">
|
<el-col :md="12" :sm="24" :xs="24">
|
||||||
<el-form-item label="交通工具" prop="trafficTools">
|
<el-form-item label="组织形式" prop="signUpMode">
|
||||||
<el-input clearable maxlength="50" v-model="formData.trafficTools"></el-input>
|
<el-radio-group class="mr0-radio" size="small" v-model="formData.signUpMode">
|
||||||
|
<el-radio :label="item.value" v-if="isShow(item.roles)"
|
||||||
|
size="small"
|
||||||
|
border v-for="item in signUpModeList">
|
||||||
|
{{item.label}}
|
||||||
|
</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
@@ -281,7 +304,7 @@ layout("/layouts/platform.html"){
|
|||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :md="12" :sm="24" :xs="24">
|
<el-col :md="12" :sm="24" :xs="24">
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<!--<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="最少参与教工" prop="minimumGroupSize">
|
<el-form-item label="最少参与教工" prop="minimumGroupSize">
|
||||||
<el-input-number :max="1000"
|
<el-input-number :max="1000"
|
||||||
:min="config.groupNumber"
|
:min="config.groupNumber"
|
||||||
@@ -289,9 +312,9 @@ layout("/layouts/platform.html"){
|
|||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
v-model="formData.minimumGroupSize"></el-input-number>
|
v-model="formData.minimumGroupSize"></el-input-number>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>-->
|
</el-col>
|
||||||
<el-col :span="24">
|
<el-col :span="12">
|
||||||
<el-form-item label="最少成团人数包括家属" prop="estimatedFamilyNumbers">
|
<el-form-item label="成团人数包括家属" prop="estimatedFamilyNumbers">
|
||||||
<el-input-number :max="1000"
|
<el-input-number :max="1000"
|
||||||
:min="1"
|
:min="1"
|
||||||
:precision="0"
|
:precision="0"
|
||||||
@@ -303,32 +326,32 @@ layout("/layouts/platform.html"){
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :md="12" :sm="24" :xs="24">
|
<el-col :md="12" :sm="24" :xs="24">
|
||||||
<el-form-item label="预计费用(元/人次)" prop="estimatedCost">
|
<el-form-item label="预计费用(元/人次)" prop="estimatedCost">
|
||||||
<el-input clearable maxlength="50" v-model="formData.estimatedCost"></el-input>
|
<el-input clearable maxlength="50" v-model="formData.estimatedCost"
|
||||||
|
placeholder="请输入预计费用"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :md="12" :sm="24" :xs="24">
|
<el-col :span="12">
|
||||||
<el-form-item label="组织形式" prop="signUpMode">
|
<el-form-item label="时间标段" prop="lotId">
|
||||||
<el-radio-group class="mr0-radio" size="small" v-model="formData.signUpMode">
|
<el-select clearable filterable style="width: 100%"
|
||||||
<el-radio :label="item.value" v-if="isShow(item.roles)"
|
placeholder="请选择时间标段"
|
||||||
size="small"
|
v-model="formData.lotId">
|
||||||
border v-for="item in signUpModeList">
|
<el-option :key="item.id"
|
||||||
{{item.label}}
|
:label="item.lotName"
|
||||||
</el-radio>
|
:value="item.id"
|
||||||
</el-radio-group>
|
v-for="item in lotList"
|
||||||
<div class="text-primary">
|
></el-option>
|
||||||
<i class="el-icon-warning"></i>
|
</el-select>
|
||||||
温馨提醒:校工会可以为基层工会创建线路,分工会自行选择并设置活动相关时间。
|
|
||||||
</div>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :md="12" :sm="24" :xs="24">
|
<el-col :md="12" :sm="24" :xs="24">
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="联系人" prop="lineContact">
|
<el-form-item label="联系人" prop="lineContact">
|
||||||
<el-input clearable max="50" v-model="formData.lineContact"></el-input>
|
<el-input clearable max="50" v-model="formData.lineContact"
|
||||||
|
placeholder="请输入联系人"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
@@ -336,88 +359,89 @@ layout("/layouts/platform.html"){
|
|||||||
{ required: false, message: '手机号码不能为空', trigger: 'blur' },
|
{ required: false, message: '手机号码不能为空', trigger: 'blur' },
|
||||||
{ pattern: /^1[34578]\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' }
|
{ pattern: /^1[34578]\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' }
|
||||||
]" label="联系方式" prop="lineContactPhone">
|
]" label="联系方式" prop="lineContactPhone">
|
||||||
<el-input clearable v-model="formData.lineContactPhone"></el-input>
|
<el-input clearable v-model="formData.lineContactPhone"
|
||||||
|
placeholder="请输入联系方式"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<!-- <template v-if="formData.signUpMode===2 || formData.createMode===1">-->
|
<!-- <template v-if="formData.signUpMode===2 || formData.createMode===1">-->
|
||||||
<!-- <el-row :gutter="20">-->
|
<!-- <el-row :gutter="20">-->
|
||||||
<!-- <el-col :md="12" :sm="24" :xs="24">-->
|
<!-- <el-col :md="12" :sm="24" :xs="24">-->
|
||||||
<!-- <el-form-item label="报名开始时间" prop="signUpStartTime">-->
|
<!-- <el-form-item label="报名开始时间" prop="signUpStartTime">-->
|
||||||
<!-- <el-date-picker style="width: 100%"-->
|
<!-- <el-date-picker style="width: 100%"-->
|
||||||
<!-- type="datetime"-->
|
<!-- type="datetime"-->
|
||||||
<!-- v-model="formData.signUpStartTime"-->
|
<!-- v-model="formData.signUpStartTime"-->
|
||||||
<!-- format="yyyy-MM-dd HH:mm"-->
|
<!-- format="yyyy-MM-dd HH:mm"-->
|
||||||
<!-- value-format="yyyy-MM-dd HH:mm:ss">-->
|
<!-- value-format="yyyy-MM-dd HH:mm:ss">-->
|
||||||
<!-- </el-date-picker>-->
|
<!-- </el-date-picker>-->
|
||||||
<!-- </el-form-item>-->
|
<!-- </el-form-item>-->
|
||||||
<!-- </el-col>-->
|
<!-- </el-col>-->
|
||||||
<!-- <el-col :md="12" :sm="24" :xs="24">-->
|
<!-- <el-col :md="12" :sm="24" :xs="24">-->
|
||||||
<!-- <el-form-item label="报名截至时间" prop="signUpEndTime">-->
|
<!-- <el-form-item label="报名截至时间" prop="signUpEndTime">-->
|
||||||
<!-- <el-date-picker style="width: 100%"-->
|
<!-- <el-date-picker style="width: 100%"-->
|
||||||
<!-- type="datetime"-->
|
<!-- type="datetime"-->
|
||||||
<!-- v-model="formData.signUpEndTime"-->
|
<!-- v-model="formData.signUpEndTime"-->
|
||||||
<!-- format="yyyy-MM-dd HH:mm"-->
|
<!-- format="yyyy-MM-dd HH:mm"-->
|
||||||
<!-- value-format="yyyy-MM-dd HH:mm:ss">-->
|
<!-- value-format="yyyy-MM-dd HH:mm:ss">-->
|
||||||
<!-- </el-date-picker>-->
|
<!-- </el-date-picker>-->
|
||||||
<!-- </el-form-item>-->
|
<!-- </el-form-item>-->
|
||||||
<!-- </el-col>-->
|
<!-- </el-col>-->
|
||||||
<!-- </el-row>-->
|
<!-- </el-row>-->
|
||||||
|
|
||||||
<!-- <el-row :gutter="20">-->
|
<!-- <el-row :gutter="20">-->
|
||||||
<!-- <el-col :md="12" :sm="24" :xs="24">-->
|
<!-- <el-col :md="12" :sm="24" :xs="24">-->
|
||||||
<!-- <el-form-item label="变更截至时间" prop="changeEndTime">-->
|
<!-- <el-form-item label="变更截至时间" prop="changeEndTime">-->
|
||||||
<!-- <el-date-picker style="width: 100%"-->
|
<!-- <el-date-picker style="width: 100%"-->
|
||||||
<!-- type="datetime"-->
|
<!-- type="datetime"-->
|
||||||
<!-- v-model="formData.changeEndTime"-->
|
<!-- v-model="formData.changeEndTime"-->
|
||||||
<!-- value-format="yyyy-MM-dd HH:mm:ss">-->
|
<!-- value-format="yyyy-MM-dd HH:mm:ss">-->
|
||||||
<!-- </el-date-picker>-->
|
<!-- </el-date-picker>-->
|
||||||
<!-- </el-form-item>-->
|
<!-- </el-form-item>-->
|
||||||
<!-- </el-col>-->
|
<!-- </el-col>-->
|
||||||
<!-- <el-col :md="12" :sm="24" :xs="24">-->
|
<!-- <el-col :md="12" :sm="24" :xs="24">-->
|
||||||
<!-- <el-form-item>-->
|
<!-- <el-form-item>-->
|
||||||
<!-- <template #label>-->
|
<!-- <template #label>-->
|
||||||
<!-- <span class="text-primary">-->
|
<!-- <span class="text-primary">-->
|
||||||
<!-- <i class="el-icon-warning"></i>-->
|
<!-- <i class="el-icon-warning"></i>-->
|
||||||
<!-- 温馨提醒:-->
|
<!-- 温馨提醒:-->
|
||||||
<!-- </span>-->
|
<!-- </span>-->
|
||||||
<!-- </template>-->
|
<!-- </template>-->
|
||||||
<!-- <span class="text-primary">-->
|
<!-- <span class="text-primary">-->
|
||||||
<!-- 变更时间应该大于报名截至时间,小于出行时间。-->
|
<!-- 变更时间应该大于报名截至时间,小于出行时间。-->
|
||||||
<!-- </span>-->
|
<!-- </span>-->
|
||||||
|
|
||||||
<!-- </el-form-item>-->
|
<!-- </el-form-item>-->
|
||||||
<!-- </el-col>-->
|
<!-- </el-col>-->
|
||||||
<!-- </el-row>-->
|
<!-- </el-row>-->
|
||||||
|
|
||||||
<!-- <el-row :gutter="20">-->
|
<!-- <el-row :gutter="20">-->
|
||||||
<!-- <el-col :md="12" :sm="24" :xs="24">-->
|
<!-- <el-col :md="12" :sm="24" :xs="24">-->
|
||||||
<!-- <el-form-item label="出行开始时间" prop="playStartTime">-->
|
<!-- <el-form-item label="出行开始时间" prop="playStartTime">-->
|
||||||
<!-- <el-date-picker-->
|
<!-- <el-date-picker-->
|
||||||
<!-- placeholder="出行开始时间"-->
|
<!-- placeholder="出行开始时间"-->
|
||||||
<!-- style="width: 100%"-->
|
<!-- style="width: 100%"-->
|
||||||
<!-- type="date"-->
|
<!-- type="date"-->
|
||||||
<!-- v-model="formData.playStartTime"-->
|
<!-- v-model="formData.playStartTime"-->
|
||||||
<!-- value-format="yyyy-MM-dd">-->
|
<!-- value-format="yyyy-MM-dd">-->
|
||||||
<!-- </el-date-picker>-->
|
<!-- </el-date-picker>-->
|
||||||
<!-- </el-form-item>-->
|
<!-- </el-form-item>-->
|
||||||
<!-- </el-col>-->
|
<!-- </el-col>-->
|
||||||
<!-- <el-col :md="12" :sm="24" :xs="24">-->
|
<!-- <el-col :md="12" :sm="24" :xs="24">-->
|
||||||
<!-- <el-form-item label="出行结束时间" prop="playEndTime">-->
|
<!-- <el-form-item label="出行结束时间" prop="playEndTime">-->
|
||||||
<!-- <el-date-picker-->
|
<!-- <el-date-picker-->
|
||||||
<!-- placeholder="出行结束时间"-->
|
<!-- placeholder="出行结束时间"-->
|
||||||
<!-- style="width: 100%"-->
|
<!-- style="width: 100%"-->
|
||||||
<!-- type="date"-->
|
<!-- type="date"-->
|
||||||
<!-- v-model="formData.playEndTime"-->
|
<!-- v-model="formData.playEndTime"-->
|
||||||
<!-- value-format="yyyy-MM-dd">-->
|
<!-- value-format="yyyy-MM-dd">-->
|
||||||
<!-- </el-date-picker>-->
|
<!-- </el-date-picker>-->
|
||||||
<!-- </el-form-item>-->
|
<!-- </el-form-item>-->
|
||||||
<!-- </el-col>-->
|
<!-- </el-col>-->
|
||||||
<!-- </el-row>-->
|
<!-- </el-row>-->
|
||||||
<!-- </template>-->
|
<!-- </template>-->
|
||||||
|
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :md="24" :sm="24" :xs="24">
|
<el-col :md="24" :sm="24" :xs="24">
|
||||||
@@ -443,8 +467,11 @@ layout("/layouts/platform.html"){
|
|||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :md="24" :sm="24" :xs="24">
|
<el-col :md="24" :sm="24" :xs="24">
|
||||||
<el-form-item label="移动端缩略图" prop="files">
|
<el-form-item label="移动端缩略图" prop="files">
|
||||||
<image-Upload :height="100" :width="100" :limit="1" :file-type="['png', 'jpg']" :file-size="1"
|
<file-upload :files.sync="formData.files"
|
||||||
v-model="formData.files"></image-Upload>
|
picture_card
|
||||||
|
:max="1"
|
||||||
|
:type="['jpg', 'jpeg', 'png']"
|
||||||
|
></file-upload>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
@@ -589,7 +616,8 @@ layout("/layouts/platform.html"){
|
|||||||
{label: '年度', prop: 'year', sortable: true},
|
{label: '年度', prop: 'year', sortable: true},
|
||||||
{label: '线路名称', prop: 'lineName', sortable: true, width: '200'},
|
{label: '线路名称', prop: 'lineName', sortable: true, width: '200'},
|
||||||
{label: '时间标段', prop: 'lotName', sortable: true, sortProp: 'lotValue'},
|
{label: '时间标段', prop: 'lotName', sortable: true, sortProp: 'lotValue'},
|
||||||
/*{label: '承担旅行社', prop: 'travelAgencyName', sortable: true},*/
|
{label: '承担旅行社', prop: 'travelAgencyName', sortable: true},
|
||||||
|
{label: '地点', prop: 'travelAgencyPlace', sortable: true},
|
||||||
// {label: '出行时间', prop: 'playTime', sortable: true},
|
// {label: '出行时间', prop: 'playTime', sortable: true},
|
||||||
{label: '线路类型', prop: 'regionalNature', sortable: true},
|
{label: '线路类型', prop: 'regionalNature', sortable: true},
|
||||||
{label: '组织形式', prop: 'signUpMode', sortable: true},
|
{label: '组织形式', prop: 'signUpMode', sortable: true},
|
||||||
@@ -628,7 +656,9 @@ layout("/layouts/platform.html"){
|
|||||||
message: '请输入成团人数包括家属',
|
message: '请输入成团人数包括家属',
|
||||||
trigger: ['change', 'blur']
|
trigger: ['change', 'blur']
|
||||||
}],
|
}],
|
||||||
lotId: [{required: true, message: '请选择标段时间', trigger: ['change', 'blur']}]
|
lotId: [{required: true, message: '请选择标段时间', trigger: ['change', 'blur']}],
|
||||||
|
openChoose: [{required: true, message: '请选择开放选择', trigger: ['change', 'blur']}],
|
||||||
|
travelAgencyPlace: [{required: true, message: '请选择开放选择', trigger: ['change', 'blur']}],
|
||||||
|
|
||||||
},
|
},
|
||||||
viewData: {},
|
viewData: {},
|
||||||
@@ -641,6 +671,7 @@ layout("/layouts/platform.html"){
|
|||||||
serialNumber: null,
|
serialNumber: null,
|
||||||
lineName: null,
|
lineName: null,
|
||||||
travelAgencyId: null,
|
travelAgencyId: null,
|
||||||
|
travelAgencyPlace: null,
|
||||||
regionalNature: null,
|
regionalNature: null,
|
||||||
minimumGroupSize: 1,
|
minimumGroupSize: 1,
|
||||||
year: null,
|
year: null,
|
||||||
@@ -657,10 +688,11 @@ layout("/layouts/platform.html"){
|
|||||||
playEndTime: null,
|
playEndTime: null,
|
||||||
trafficTools: null,
|
trafficTools: null,
|
||||||
estimatedCost: null,
|
estimatedCost: null,
|
||||||
estimatedFamilyNumbers: null,
|
estimatedFamilyNumbers: 1,
|
||||||
lotId: null,
|
lotId: null,
|
||||||
lineContact: null,
|
lineContact: null,
|
||||||
lineContactPhone: null
|
lineContactPhone: null,
|
||||||
|
openChoose: false,
|
||||||
},
|
},
|
||||||
pageForm: {
|
pageForm: {
|
||||||
keywords: null,
|
keywords: null,
|
||||||
@@ -681,16 +713,18 @@ layout("/layouts/platform.html"){
|
|||||||
importLoading: false,
|
importLoading: false,
|
||||||
importData: {},
|
importData: {},
|
||||||
|
|
||||||
modifyConfig:{}
|
modifyConfig: {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
isShow(roles) {
|
isShow(roles) {
|
||||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}" === 'true') {
|
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionAdmin')}" === 'true') {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
if ("${@shiro.hasRole('H04')}" === 'true') {
|
if ("${@shiro.hasRole('H04')}" === 'true') {
|
||||||
return roles.some(r => r === 'H04')
|
return roles.some(r => r === 'H04')
|
||||||
|
} else {
|
||||||
|
return roles.some(r => r === 'H01')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async getCreateMode() {
|
async getCreateMode() {
|
||||||
@@ -717,7 +751,6 @@ layout("/layouts/platform.html"){
|
|||||||
this.formData.minimumGroupSize = this.config.groupNumber
|
this.formData.minimumGroupSize = this.config.groupNumber
|
||||||
}
|
}
|
||||||
await this.getNumber()
|
await this.getNumber()
|
||||||
this.formData.estimatedFamilyNumbers = this.modifyConfig.outsideQuota
|
|
||||||
},
|
},
|
||||||
async openEdit(id) {
|
async openEdit(id) {
|
||||||
const resp = await $.post(loc() + '/selectLineInfoById/' + id)
|
const resp = await $.post(loc() + '/selectLineInfoById/' + id)
|
||||||
@@ -726,7 +759,6 @@ layout("/layouts/platform.html"){
|
|||||||
await this.$nextTick()
|
await this.$nextTick()
|
||||||
const data = resp.data
|
const data = resp.data
|
||||||
data.year = data.year.toString()
|
data.year = data.year.toString()
|
||||||
data.files = JSON.parse(data.files)
|
|
||||||
this.formData = {...data}
|
this.formData = {...data}
|
||||||
this.initLineContentEditor(data.content)
|
this.initLineContentEditor(data.content)
|
||||||
} else {
|
} else {
|
||||||
@@ -743,30 +775,15 @@ layout("/layouts/platform.html"){
|
|||||||
spinner: 'el-icon-loading',
|
spinner: 'el-icon-loading',
|
||||||
background: 'rgba(0, 0, 0, 0.7)'
|
background: 'rgba(0, 0, 0, 0.7)'
|
||||||
});
|
});
|
||||||
delete this.formData.travelAgency
|
|
||||||
this.formData.files = JSON.stringify(this.formData.files)
|
const resp = await $.post(loc() + '/doSubmit', {line: JSON.stringify(this.formData)})
|
||||||
const resp = await $.post(loc() + '/doSubmit', this.formData)
|
|
||||||
loading.close()
|
loading.close()
|
||||||
if (resp.code === 0) {
|
if (resp.code === 0) {
|
||||||
this.$message.success(resp.msg)
|
|
||||||
this.$confirm('需要将该线路设置为出行线路吗?', '提示', {
|
|
||||||
confirmButtonText: '确定',
|
|
||||||
cancelButtonText: '取消',
|
|
||||||
type: 'warning'
|
|
||||||
}).then(async () => {
|
|
||||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}" === 'true') {
|
|
||||||
sublime.jumpPagePjax('/platform/theRapyRecuperation/lineXghSelect?mode=2')
|
|
||||||
} else {
|
|
||||||
sublime.jumpPagePjax('/platform/theRapyRecuperation/lineFghSelect?mode=1')
|
|
||||||
}
|
|
||||||
})/*.catch(() => {
|
|
||||||
this.$refs.guava.index()
|
|
||||||
this.pageData()
|
|
||||||
})*/
|
|
||||||
this.$refs.guava.index()
|
this.$refs.guava.index()
|
||||||
|
this.notifySuccess(resp.msg)
|
||||||
this.pageData()
|
this.pageData()
|
||||||
} else {
|
} else {
|
||||||
this.$message.warning(resp.msg)
|
this.notifyWarning(resp.msg)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async lineStatusChange(id) {
|
async lineStatusChange(id) {
|
||||||
@@ -827,9 +844,6 @@ layout("/layouts/platform.html"){
|
|||||||
},
|
},
|
||||||
async initPageData() {
|
async initPageData() {
|
||||||
this.regionalNatureList = await getEnumOptions('TheRapyRecuperationProvinceType')
|
this.regionalNatureList = await getEnumOptions('TheRapyRecuperationProvinceType')
|
||||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}" !== 'true') {
|
|
||||||
this.regionalNatureList = this.regionalNatureList.filter(o => o.name === 'provinceIn')
|
|
||||||
}
|
|
||||||
this.signUpModeList = await getEnumOptions('TheRapyRecuperationSignUpMode')
|
this.signUpModeList = await getEnumOptions('TheRapyRecuperationSignUpMode')
|
||||||
this.createModeList = await getEnumOptions('TheRapyRecuperationLineCreateMode')
|
this.createModeList = await getEnumOptions('TheRapyRecuperationLineCreateMode')
|
||||||
this.unionOptions = await getUnions(null)
|
this.unionOptions = await getUnions(null)
|
||||||
@@ -880,18 +894,18 @@ layout("/layouts/platform.html"){
|
|||||||
data.append("file", val.raw, val.raw.name);
|
data.append("file", val.raw, val.raw.name);
|
||||||
});
|
});
|
||||||
this.importLoading = true
|
this.importLoading = true
|
||||||
const resp = await $.post(loc() + "/travelLineImport",data)
|
const resp = await $.post(loc() + "/travelLineImport", data)
|
||||||
if (resp.code === 0){
|
if (resp.code === 0) {
|
||||||
this.pageData();
|
this.pageData();
|
||||||
this.importVisible = false
|
this.importVisible = false
|
||||||
}else {
|
} else {
|
||||||
this.notifyWarning("导入失败")
|
this.notifyWarning("导入失败")
|
||||||
this.importLoading = false
|
this.importLoading = false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
handleChangeYear(){
|
handleChangeYear() {
|
||||||
if (this.pageForm.startYear && this.pageForm.endYear){
|
if (this.pageForm.startYear && this.pageForm.endYear) {
|
||||||
if (this.pageForm.startYear > this.pageForm.endYear){
|
if (this.pageForm.startYear > this.pageForm.endYear) {
|
||||||
this.pageForm.endYear = '';
|
this.pageForm.endYear = '';
|
||||||
this.$message.error('起始年份需小于结束年份!');
|
this.$message.error('起始年份需小于结束年份!');
|
||||||
}
|
}
|
||||||
@@ -910,7 +924,7 @@ layout("/layouts/platform.html"){
|
|||||||
},
|
},
|
||||||
async created() {
|
async created() {
|
||||||
await this.getModifyConfig()
|
await this.getModifyConfig()
|
||||||
this.pageForm.startYear = this.modifyConfig.provinceStartYear+''
|
this.pageForm.startYear = this.modifyConfig.provinceStartYear + ''
|
||||||
await this.initPageData()
|
await this.initPageData()
|
||||||
this.pageData()
|
this.pageData()
|
||||||
}
|
}
|
||||||
|
|||||||
+38
-37
@@ -48,7 +48,7 @@ layout("/layouts/platform.html"){
|
|||||||
<el-card class="mt10" shadow="never">
|
<el-card class="mt10" shadow="never">
|
||||||
<table-tool :app="this" label="旅行社列表">
|
<table-tool :app="this" label="旅行社列表">
|
||||||
<template #func>
|
<template #func>
|
||||||
<el-button @click="openImport" size="medium" type="primary">导入旅行社</el-button>
|
<!-- <el-button @click="openImport" size="medium" type="primary">导入旅行社</el-button>-->
|
||||||
<el-button @click="openAdd" size="medium" type="primary">新建旅行社</el-button>
|
<el-button @click="openAdd" size="medium" type="primary">新建旅行社</el-button>
|
||||||
</template>
|
</template>
|
||||||
</table-tool>
|
</table-tool>
|
||||||
@@ -117,11 +117,21 @@ layout("/layouts/platform.html"){
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :md="12" :sm="12" :xs="12">
|
<el-col :md="12" :sm="12" :xs="12">
|
||||||
<el-form-item label="是否自由组团" prop="signUpTravelAgency">
|
<el-form-item label="旅行社地点" prop="travelAgencyPlaces">
|
||||||
<el-radio-group v-model="formData.signUpTravelAgency">
|
<el-select
|
||||||
<el-radio-button :label="true">是</el-radio-button>
|
v-model="formData.travelAgencyPlaces"
|
||||||
<el-radio-button :label="false">否</el-radio-button>
|
multiple
|
||||||
</el-radio-group>
|
filterable
|
||||||
|
allow-create
|
||||||
|
default-first-option
|
||||||
|
placeholder="请创建旅行社地点" style="width: 100%">
|
||||||
|
<el-option
|
||||||
|
v-for="(item,index) in travelAgencyPlaceList"
|
||||||
|
:key="index"
|
||||||
|
:label="item"
|
||||||
|
:value="item">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
@@ -178,8 +188,11 @@ layout("/layouts/platform.html"){
|
|||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :md="24" :sm="24" :xs="24">
|
<el-col :md="24" :sm="24" :xs="24">
|
||||||
<el-form-item label="移动端缩略图" prop="files">
|
<el-form-item label="移动端缩略图" prop="files">
|
||||||
<image-Upload :height="100" :width="100" :limit="1" :file-type="['png', 'jpg']" :file-size="1"
|
<file-upload :files.sync="formData.files"
|
||||||
v-model="formData.files"></image-Upload>
|
picture_card
|
||||||
|
:max="1"
|
||||||
|
:type="['jpg', 'jpeg', 'png']"
|
||||||
|
></file-upload>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
@@ -300,7 +313,7 @@ layout("/layouts/platform.html"){
|
|||||||
{type: 'url', message: '请输入正确的官网地址', trigger: ['blur', 'change']}],
|
{type: 'url', message: '请输入正确的官网地址', trigger: ['blur', 'change']}],
|
||||||
note: [{required: false, message: '请输入备注', trigger: ['change', 'blur']}],
|
note: [{required: false, message: '请输入备注', trigger: ['change', 'blur']}],
|
||||||
year: [{required: true, message: '请选择年度', trigger: ['change', 'blur']}],
|
year: [{required: true, message: '请选择年度', trigger: ['change', 'blur']}],
|
||||||
signUpTravelAgency: [{required: true, message: '请选择是否自由组团', trigger: ['change', 'blur']}],
|
travelAgencyPlaces: [{required: true, message: '请选择旅行社地点', trigger: ['change', 'blur']}],
|
||||||
//files: [{required: true, message: '请上传移动端缩略图', trigger: ['change', 'blur']}],
|
//files: [{required: true, message: '请上传移动端缩略图', trigger: ['change', 'blur']}],
|
||||||
},
|
},
|
||||||
viewData: {},
|
viewData: {},
|
||||||
@@ -314,8 +327,7 @@ layout("/layouts/platform.html"){
|
|||||||
officialWebsite: null,
|
officialWebsite: null,
|
||||||
note: null,
|
note: null,
|
||||||
year: null,
|
year: null,
|
||||||
isDisabled: false,
|
isDisabled: false
|
||||||
signUpTravelAgency: false
|
|
||||||
},
|
},
|
||||||
pageForm: {
|
pageForm: {
|
||||||
keywords: null,
|
keywords: null,
|
||||||
@@ -325,6 +337,10 @@ layout("/layouts/platform.html"){
|
|||||||
importVisible: false,
|
importVisible: false,
|
||||||
importLoading: false,
|
importLoading: false,
|
||||||
importData: {},
|
importData: {},
|
||||||
|
|
||||||
|
travelAgencyPlaceList: ["温州", "金华", "四川", "江苏", "宁波", "舟山", "青海(海西州)"
|
||||||
|
, "安徽", "丽水", "台州", "吉林", "江西", "绍兴", "衢州", "新疆", "福建", "上海", "杭州", "嘉兴",
|
||||||
|
"湖州", "重庆(涪陵区)", "重庆(万州区)", "湖北(恩施州)", "湖北(黄冈市)"]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@@ -349,22 +365,20 @@ layout("/layouts/platform.html"){
|
|||||||
officialWebsite: null,
|
officialWebsite: null,
|
||||||
note: null,
|
note: null,
|
||||||
year: null,
|
year: null,
|
||||||
isDisabled: false,
|
isDisabled: false
|
||||||
signUpTravelAgency: false,
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
async openEdit(row) {
|
async openEdit(row) {
|
||||||
const cloneData = clone(row)
|
const cloneData = clone(row)
|
||||||
cloneData.year = cloneData.year.toString()
|
cloneData.year = cloneData.year.toString()
|
||||||
cloneData.files = JSON.parse(cloneData.files)
|
cloneData.travelAgencyPlaces = JSON.parse(cloneData.travelAgencyPlaces)
|
||||||
this.formData = {...cloneData}
|
this.formData = {...cloneData}
|
||||||
this.editDialogVisible = true
|
this.editDialogVisible = true
|
||||||
},
|
},
|
||||||
async doSubmit() {
|
async doSubmit() {
|
||||||
const valid = await this.$refs['form'].validate()
|
const valid = await this.$refs['form'].validate()
|
||||||
if (!valid) return
|
if (!valid) return
|
||||||
this.formData.files=JSON.stringify(this.formData.files)
|
|
||||||
const resp = await $.post(loc() + '/doSubmit', {travelAgency: JSON.stringify(this.formData)})
|
const resp = await $.post(loc() + '/doSubmit', {travelAgency: JSON.stringify(this.formData)})
|
||||||
if (resp.code === 0) {
|
if (resp.code === 0) {
|
||||||
this.editDialogVisible = false
|
this.editDialogVisible = false
|
||||||
@@ -423,28 +437,15 @@ layout("/layouts/platform.html"){
|
|||||||
});
|
});
|
||||||
this.importLoading = true
|
this.importLoading = true
|
||||||
|
|
||||||
$.ajax({
|
const resp = await $.post(loc() + '/travelAgencyImport', data)
|
||||||
url: loc() + '/travelAgencyImport',
|
if (resp.code === 0) {
|
||||||
type: "post",
|
this.pageData();
|
||||||
data: data,
|
this.importVisible = false
|
||||||
processData: false,
|
this.importLoading = false
|
||||||
contentType: false,
|
} else {
|
||||||
success: (resp) => {
|
this.notifyWarning("导入失败")
|
||||||
if (resp.code===0){
|
this.importLoading = false
|
||||||
this.pageData();
|
}
|
||||||
this.importVisible = false
|
|
||||||
this.importLoading = false
|
|
||||||
}else {
|
|
||||||
this.notifyWarning("导入失败")
|
|
||||||
this.importLoading = false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
error: (resp) => {
|
|
||||||
this.notifyWarning("导入失败")
|
|
||||||
this.importLoading = false
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
async created() {
|
async created() {
|
||||||
|
|||||||
+198
@@ -0,0 +1,198 @@
|
|||||||
|
const editForm = {
|
||||||
|
template: /*language=HTML*/ `
|
||||||
|
<el-dialog title="编辑" :visible.sync="visible" top="50px">
|
||||||
|
<el-form :model="formData" label-width="120px" :formRules="formRules" ref="formRef"
|
||||||
|
style="margin-right: 40px">
|
||||||
|
<el-row>
|
||||||
|
<el-col span="12">
|
||||||
|
<el-form-item prop="loginName" label="工号">
|
||||||
|
<el-input v-model="formData.loginName" readonly></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col span="12">
|
||||||
|
<el-form-item prop="userName" label="姓名">
|
||||||
|
<el-input v-model="formData.userName" readonly></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col span="12">
|
||||||
|
<el-form-item prop="userName" label="手机号">
|
||||||
|
<el-input v-model="formData.mobile" readonly></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col span="12">
|
||||||
|
<el-form-item prop="userName" label="身份证号">
|
||||||
|
<el-input v-model="formData.idCard" readonly></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col span="12">
|
||||||
|
<el-form-item prop="unionName" label="工会">
|
||||||
|
<el-input v-model="formData.unionName" readonly></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col span="12">
|
||||||
|
<el-form-item prop="unitName" label="单位">
|
||||||
|
<el-input v-model="formData.unitName" readonly></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-form-item prop="prop" :label="labelName">
|
||||||
|
<template v-if="config.familyInfo == 2">
|
||||||
|
<el-collapse v-model="activeNames">
|
||||||
|
<el-collapse-item title="点击可展开详细信息" name="1">
|
||||||
|
<el-card shadow="never">
|
||||||
|
<el-table :data="formData.companionList">
|
||||||
|
<el-table-column label="姓名" prop="userName"></el-table-column>
|
||||||
|
<el-table-column label="性别" prop="sex"></el-table-column>
|
||||||
|
<el-table-column label="身份证号" prop="idCard"></el-table-column>
|
||||||
|
<el-table-column label="年龄" prop="age"></el-table-column>
|
||||||
|
<el-table-column label="床型" prop="bedType">
|
||||||
|
<template scope="{row}">
|
||||||
|
{{ row.bedInfo.bedType }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="床位" prop="bedNum">
|
||||||
|
<template scope="{row}">
|
||||||
|
{{ row.bedInfo.bedNum }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="意向拼床人" prop="otherSleepUser">
|
||||||
|
<template scope="{row}">
|
||||||
|
{{ row.bedInfo.otherSleepUser ?
|
||||||
|
row.bedInfo.otherSleepUser : '暂无' }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="关系" prop="relation"></el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</el-card>
|
||||||
|
</el-collapse-item>
|
||||||
|
</el-collapse>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<el-input v-model="formData.bedType" readonly></el-input>
|
||||||
|
</template>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item prop="travelLine" :label="lineLabelName">
|
||||||
|
<el-select v-model="formData.takePartInLineId" filterable clearable
|
||||||
|
placeholder="请选择线路"
|
||||||
|
@change="validateLine"
|
||||||
|
style="width: 100%">
|
||||||
|
<el-option v-for="item in unionSelectLines"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.lineName + '-' + item.regionalNature + '【' + item.lotName + '】' + '(' + item.playStartTime + '至' + item.playEndTime + ')' + '(' + item.signUpMode + ')'"
|
||||||
|
:value="item.id">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- <el-form-item prop="specificTime" label="出行时间" v-if="pageForm.state==='3'">-->
|
||||||
|
<!-- <el-select v-model="formData.specificTime" filterable clearable-->
|
||||||
|
<!-- placeholder="请选择出行时间"-->
|
||||||
|
<!-- style="width: 100%">-->
|
||||||
|
<!-- <el-option v-for="item in editSpecificTimes"-->
|
||||||
|
<!-- :key="item"-->
|
||||||
|
<!-- :label="item"-->
|
||||||
|
<!-- :value="item">-->
|
||||||
|
<!-- </el-option>-->
|
||||||
|
<!-- </el-select>-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
|
</el-form>
|
||||||
|
<template #footer>
|
||||||
|
<div class="dialog-footer">
|
||||||
|
<el-button @click="visible = false">取 消</el-button>
|
||||||
|
<el-button type="primary" @click="onSubmit">确 定</el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
`,
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
visible: false,
|
||||||
|
year: null,
|
||||||
|
config: {},
|
||||||
|
formData: {},
|
||||||
|
formRules: {},
|
||||||
|
labelName: null,
|
||||||
|
lineLabelName: '线路',
|
||||||
|
unionSelectLines: [],
|
||||||
|
activeNames: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async onOpen(id, year) {
|
||||||
|
this.year = year
|
||||||
|
this.visible = true
|
||||||
|
this.getUnionSelectLine()
|
||||||
|
await this.getModifyConfig()
|
||||||
|
const {code, msg, data} = await $.get("/platform/theRapyRecuperation/branchUnionUserQuery/findOne", {id})
|
||||||
|
if (code === 0) {
|
||||||
|
this.formData = data
|
||||||
|
if (this.config.familyInfo === 2) {
|
||||||
|
this.labelName = "家属信息"
|
||||||
|
} else {
|
||||||
|
this.editFormData.bedType = data.familyNumber
|
||||||
|
this.labelName = "家属数量"
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.$message.error(msg)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
async getModifyConfig() {
|
||||||
|
const {code, data, msg} = await $.post('/platform/theRapyRecuperation/TheRapyConfig/findOne')
|
||||||
|
if (code === 0) {
|
||||||
|
this.config = data
|
||||||
|
} else {
|
||||||
|
this.$message.error(msg)
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
async getUnionSelectLine() {
|
||||||
|
const resp = await $.post('/platform/theRapyRecuperation/user/query/getUnionSelectLine', {
|
||||||
|
year: this.year,
|
||||||
|
signUpMode: 1,
|
||||||
|
})
|
||||||
|
if (resp.code === 0) {
|
||||||
|
this.unionSelectLines = resp.data
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
async validateLine() {
|
||||||
|
const resp = await $.post('/platform/theRapyRecuperation/line/enroll/validSignUpInfo'
|
||||||
|
, {enroll: JSON.stringify(this.editFormData)})
|
||||||
|
if (resp.code !== 0) {
|
||||||
|
this.$message.warning(resp.msg)
|
||||||
|
this.formData.takePartInLineId = ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onSubmit() {
|
||||||
|
this.$refs.formRef.validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
this.$confirm('您确定要修改报名信息吗?', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
}).then(async () => {
|
||||||
|
if (!this.formData.takePartInLineId && !this.formData.takePartInBaseManagementId) {
|
||||||
|
this.$message.warning('请选择线路')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
const {code,msg} = await $.post('/platform/theRapyRecuperation/user/query/doEdit', this.formData)
|
||||||
|
if (code === 0) {
|
||||||
|
this.$message.success(msg)
|
||||||
|
this.visible = false
|
||||||
|
this.$emit('refresh')
|
||||||
|
} else {
|
||||||
|
this.$message.error(msg)
|
||||||
|
}
|
||||||
|
}).catch()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
+454
@@ -0,0 +1,454 @@
|
|||||||
|
<!--#
|
||||||
|
layout("/layouts/platform.html"){
|
||||||
|
#-->
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.filter-container {
|
||||||
|
margin-bottom: 20px;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.filter-container .el-form {
|
||||||
|
padding: 10px 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Flex布局样式 */
|
||||||
|
.form-row {
|
||||||
|
display: flex;
|
||||||
|
gap: 20px;
|
||||||
|
margin-bottom: 22px;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-row .el-form-item {
|
||||||
|
flex: 1;
|
||||||
|
min-width: 240px;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex-grow-1 {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.route-line {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 22px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.route-line-title {
|
||||||
|
width: 90px;
|
||||||
|
text-align: right;
|
||||||
|
padding-right: 12px;
|
||||||
|
color: #606266;
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.route-line-content {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.route-radio-group {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.route-radio-group .el-radio {
|
||||||
|
margin-right: 0;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button-container {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
padding-top: 15px;
|
||||||
|
border-top: 1px dashed #ebeef5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button-container .el-button {
|
||||||
|
padding-left: 25px;
|
||||||
|
padding-right: 25px;
|
||||||
|
margin: 0 15px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<div id="app" v-cloak>
|
||||||
|
<guava>
|
||||||
|
<el-card shadow="never" class="filter-container">
|
||||||
|
<el-form :model="pageForm" ref="pageFormRef" label-width="90px" size="medium">
|
||||||
|
<div class="form-row">
|
||||||
|
<el-form-item label="年度">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="pageForm.year"
|
||||||
|
type="year"
|
||||||
|
placeholder="选择年度"
|
||||||
|
value-format="yyyy"
|
||||||
|
style="width: 100%">
|
||||||
|
</el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="姓名">
|
||||||
|
<el-input v-model="pageForm.userName" placeholder="请输入姓名" clearable
|
||||||
|
prefix-icon="el-icon-user"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="工号">
|
||||||
|
<el-input v-model="pageForm.loginName" placeholder="请输入工号" clearable
|
||||||
|
prefix-icon="el-icon-postcard"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="route-line">
|
||||||
|
<div class="route-line-title">报名线路</div>
|
||||||
|
<div class="route-line-content">
|
||||||
|
<el-radio-group v-model="pageForm.signUpMode" class="route-radio-group" size="small"
|
||||||
|
@change="signUpModeChange">
|
||||||
|
<el-radio :label="1" border>校工会线路</el-radio>
|
||||||
|
<el-radio :label="2" border>本分工会线路本工会人员</el-radio>
|
||||||
|
<el-radio :label="3" border>其他工会线路本工会人员</el-radio>
|
||||||
|
<el-radio :label="4" border>个人组织线路</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="route-line">
|
||||||
|
<div class="route-line-title">区域</div>
|
||||||
|
<div class="route-line-content">
|
||||||
|
<el-radio-group @change="doSearch"
|
||||||
|
size="small"
|
||||||
|
v-model="pageForm.regionalNature">
|
||||||
|
<el-radio label="" border>全部</el-radio>
|
||||||
|
<el-radio label="省内" border>省内</el-radio>
|
||||||
|
<el-radio label="省外" border>省外</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-row">
|
||||||
|
<el-form-item label="线路选择">
|
||||||
|
<el-select v-model="pageForm.takePartInLineId" placeholder="请选择线路" clearable
|
||||||
|
style="width: 100%">
|
||||||
|
<el-option
|
||||||
|
v-for="item in takePartInLines"
|
||||||
|
:key="item.takePartInLineId"
|
||||||
|
:label="item.lineName+'('+item.unionName+')'"
|
||||||
|
:value="item.takePartInLineId">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="标段">
|
||||||
|
<el-select v-model="pageForm.lotId" placeholder="请选择标段" clearable style="width: 100%">
|
||||||
|
<el-option
|
||||||
|
v-for="item in config.lots"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.lotName"
|
||||||
|
:value="item.id">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item class="flex-grow-1">
|
||||||
|
<!-- 占位,保持布局平衡 -->
|
||||||
|
</el-form-item>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="button-container">
|
||||||
|
<el-button type="primary" icon="el-icon-search" round @click="doSearch">查询</el-button>
|
||||||
|
<el-button icon="el-icon-refresh" round @click="resetQuery">重置</el-button>
|
||||||
|
</div>
|
||||||
|
</el-form>
|
||||||
|
</el-card>
|
||||||
|
|
||||||
|
<el-card shadow="never" class="mt10">
|
||||||
|
<table-tool label="人员列表" :app="this" ref="table_tool">
|
||||||
|
<template #func>
|
||||||
|
<!-- <el-button icon="el-icon-s-promotion" @click="openImport" size="small" type="primary">参加人员导入-->
|
||||||
|
<!-- </el-button>-->
|
||||||
|
<el-button icon="el-icon-s-promotion" size="small" type="primary" @click="doExport">
|
||||||
|
导出
|
||||||
|
</el-button>
|
||||||
|
<el-button icon="el-icon-s-promotion" size="small" type="primary"
|
||||||
|
@click="openSetUpPart"
|
||||||
|
>设置参加人员
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</table-tool>
|
||||||
|
<el-table :data="tableData" row-key="id" style="width: 100%" ref="tableRef">
|
||||||
|
<el-table-column reserve-selection type="selection" width="55"></el-table-column>
|
||||||
|
<el-table-column align="center" header-align="center" type="index" label="序号" :index="indexMethod"
|
||||||
|
width="80px"></el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
header-align="center"
|
||||||
|
v-for="column in tableColumns"
|
||||||
|
show-overflow-tooltip
|
||||||
|
:label="column.label"
|
||||||
|
:prop="column.prop"
|
||||||
|
:sortable="column.sortable"
|
||||||
|
>
|
||||||
|
<template scope="{row}" v-if="column.prop=='lineName'">
|
||||||
|
<el-link type="primary" @click="openLine(row)">{{row.lineName}}
|
||||||
|
</el-link>
|
||||||
|
</template>
|
||||||
|
<template scope="{row}" v-else-if="column.prop=='isFamily'">
|
||||||
|
<el-link v-if="!row.familyNumber" type="primary" @click="openUser(row)">
|
||||||
|
{{row.isFamily?'携带':'未携带'}}({{row.isFamily}})
|
||||||
|
</el-link>
|
||||||
|
<el-link v-else type="primary">
|
||||||
|
{{row.familyNumber?'携带':'未携带'}}({{row.familyNumber}})
|
||||||
|
</el-link>
|
||||||
|
</template>
|
||||||
|
<template scope="{row}" v-else-if="column.prop=='lineNum'">
|
||||||
|
|
||||||
|
<el-link v-if="!row.familyNumber" type="primary" @click="openUser(row)">
|
||||||
|
{{row.lineNum}}({{row.signUpUserFamilyNum}})
|
||||||
|
</el-link>
|
||||||
|
<el-link v-else type="primary">
|
||||||
|
{{row.lineNum}}({{row.familyNumber}})
|
||||||
|
</el-link>
|
||||||
|
|
||||||
|
|
||||||
|
</template>
|
||||||
|
<template scope="{row}" v-else-if="column.prop=='signUpMode'">
|
||||||
|
{{signUpModeName(row.signUpMode)}}
|
||||||
|
</template>
|
||||||
|
<template scope="{row}" v-else-if="column.prop=='agencyNum'">
|
||||||
|
<el-link type="primary" @click="openApplyUser(row)">{{row.agencyNum}}
|
||||||
|
</el-link>
|
||||||
|
</template>
|
||||||
|
<template scope="{row}" v-else-if="column.prop=='times'">
|
||||||
|
<div v-if="row.playStartTime">{{row.playStartTime}}</div>
|
||||||
|
<div v-else>{{row.playStartTime1}}</div>
|
||||||
|
</template>
|
||||||
|
<template scope="{row}" v-else-if="column.prop=='isTakePartIn'">
|
||||||
|
{{row.isTakePartIn?'已参加':'未参加'}}
|
||||||
|
</template>
|
||||||
|
<template scope="{row}" v-else-if="column.prop=='stateId'">
|
||||||
|
<span v-if="row.stateId">
|
||||||
|
<vi-table-state :state="row"></vi-table-state>
|
||||||
|
</span>-->
|
||||||
|
<sapn v-else style="color: #67C23A">暂无</sapn>
|
||||||
|
</template>
|
||||||
|
<template scope="{row}" v-else-if="column.prop=='lineOrMaName'">
|
||||||
|
{{row.lineName?row.lineName:row.baseName?row.baseName:row.travelAgencyName}}
|
||||||
|
</template>
|
||||||
|
<template scope="{row:{officialWebsite}}"
|
||||||
|
v-else-if="column.prop==='officialWebsite'">
|
||||||
|
<a :href="officialWebsite" class="text-primary" target="_blank">
|
||||||
|
{{officialWebsite}}
|
||||||
|
</a>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column v-if="pageForm.state=='1'||pageForm.state=='3'" align="center"
|
||||||
|
prop="lotName"
|
||||||
|
show-overflow-tooltip
|
||||||
|
header-align="center"
|
||||||
|
label="标段"
|
||||||
|
sortable>
|
||||||
|
<template scope="{row}">
|
||||||
|
{{row.lotName}}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="操作" width="250px">
|
||||||
|
<template scope="{row}">
|
||||||
|
<el-button @click="openView(row)" size="mini" type="primary">
|
||||||
|
查看
|
||||||
|
</el-button>
|
||||||
|
<el-button @click="openEdit(row)" size="mini" type="primary">编辑
|
||||||
|
</el-button>
|
||||||
|
<el-button @click="onDelete(row)" size="mini" type="danger">删除
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<!--#include("/layouts/pagination.html"){}#-->
|
||||||
|
</el-card>
|
||||||
|
</guava>
|
||||||
|
|
||||||
|
<el-dialog title="查看报名信息" :visible.sync="viewVisible" top="50px">
|
||||||
|
<enroll-info ref="viewEnrollInfoRef" :union_id="unionId"></enroll-info>
|
||||||
|
</el-dialog>
|
||||||
|
|
||||||
|
<set-up-part ref="setUpRef"></set-up-part>
|
||||||
|
|
||||||
|
<edit-form ref="editRef" @refresh="doSearch"></edit-form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
<!--#include('setUpPart.js'){}#-->
|
||||||
|
<!--#include('editForm.js'){}#-->
|
||||||
|
|
||||||
|
new Vue({
|
||||||
|
el: '#app',
|
||||||
|
mixins: [initTableMixins],
|
||||||
|
components: {
|
||||||
|
'enroll-info': httpVueLoader('/components/theRapyRecuperation/Enrollinfo.vue?v=' + new Date().getTime()),
|
||||||
|
'line-info': httpVueLoader('/components/theRapyRecuperation/LineInfo.vue'),
|
||||||
|
'set-up-part': setUpPart,
|
||||||
|
'edit-form': editForm
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
pageForm: {
|
||||||
|
year: new Date().getFullYear().toString(),
|
||||||
|
loginName: '',
|
||||||
|
userName: '',
|
||||||
|
takePartInLineId: '',
|
||||||
|
unionId: '',
|
||||||
|
signUpMode: 1,
|
||||||
|
lotId: '',
|
||||||
|
regionalNature: '',
|
||||||
|
|
||||||
|
},
|
||||||
|
takePartInLines: [],
|
||||||
|
tableColumns: [
|
||||||
|
{prop: 'loginName', label: '一卡通号'},
|
||||||
|
{prop: 'userName', label: '姓名'},
|
||||||
|
{prop: 'unitName', label: '单位', sortable: true},
|
||||||
|
{prop: 'unionName', label: '工会', sortable: true},
|
||||||
|
{prop: 'lineOrMaName', label: '线路'},
|
||||||
|
{prop: 'times', label: '出行时间'},
|
||||||
|
{prop: 'isFamily', label: '是否携带家属'},
|
||||||
|
{prop: 'isTakePartIn', label: '是否参加'}
|
||||||
|
],
|
||||||
|
viewVisible: false,
|
||||||
|
unionId: null,
|
||||||
|
unionOptions: [],
|
||||||
|
config: {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
handleQuery() {
|
||||||
|
console.log('查询参数:', this.pageForm);
|
||||||
|
// 查询逻辑
|
||||||
|
},
|
||||||
|
resetQuery() {
|
||||||
|
this.pageForm = {
|
||||||
|
year: new Date().getFullYear().toString(),
|
||||||
|
loginName: '',
|
||||||
|
userName: '',
|
||||||
|
takePartInLineId: '',
|
||||||
|
unionId: '',
|
||||||
|
signUpMode: 1,
|
||||||
|
lotId: '',
|
||||||
|
regionalNature: '',
|
||||||
|
pageNumber: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
totalCount: 0,
|
||||||
|
}
|
||||||
|
this.doSearch()
|
||||||
|
},
|
||||||
|
|
||||||
|
signUpModeName(val) {
|
||||||
|
return null
|
||||||
|
},
|
||||||
|
|
||||||
|
openApplyUser(row) {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
openView(row) {
|
||||||
|
this.viewVisible = true
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$refs.viewEnrollInfoRef.openView(row.id)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
openEdit(row) {
|
||||||
|
this.$refs.editRef.onOpen(row.id)
|
||||||
|
},
|
||||||
|
|
||||||
|
onDelete(row) {
|
||||||
|
this.$confirm("您确定要删除【<span style='color: red'>" + row.userName + "</span>】的信息吗?", '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
dangerouslyUseHTMLString: true,
|
||||||
|
type: 'warning'
|
||||||
|
}).then(async () => {
|
||||||
|
const {
|
||||||
|
code,
|
||||||
|
msg
|
||||||
|
} = await $.post('/platform/theRapyRecuperation/branchUnionUserQuery/deleteMyEnrollInfoById', {
|
||||||
|
id: row.id
|
||||||
|
})
|
||||||
|
if (code === 0) {
|
||||||
|
this.doSearch()
|
||||||
|
this.$message.success(msg)
|
||||||
|
} else {
|
||||||
|
this.$message.warning(resp.msg)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
openImport() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
doExport() {
|
||||||
|
const {year, userName, loginName, signUpMode, regionalNature, takePartInLineId, lotId} = this.pageForm
|
||||||
|
debugger
|
||||||
|
window.open('/platform/theRapyRecuperation/branchUnionUserQuery/exportXlsx?year=' +
|
||||||
|
year
|
||||||
|
+ '&userName=' + userName
|
||||||
|
+ '&loginName=' + loginName
|
||||||
|
+ '&signUpMode=' + signUpMode
|
||||||
|
+ '®ionalNature=' + regionalNature
|
||||||
|
+ '&takePartInLineId=' + takePartInLineId
|
||||||
|
+ '&lotId=' + lotId)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 打开设置参加人员
|
||||||
|
openSetUpPart() {
|
||||||
|
const selection = this.$refs.tableRef.selection
|
||||||
|
console.log(selection)
|
||||||
|
if (selection.length === 0) {
|
||||||
|
this.$message.error('请选择要设置的人员')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.$refs.setUpRef.onOpen(selection)
|
||||||
|
},
|
||||||
|
|
||||||
|
getConfig() {
|
||||||
|
$.post('/platform/theRapyRecuperation/TheRapyConfig/findOne').then((res) => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.config = res.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
signUpModeChange(val) {
|
||||||
|
this.pageForm.takePartInLineId = ''
|
||||||
|
this.getLines()
|
||||||
|
this.doSearch()
|
||||||
|
},
|
||||||
|
|
||||||
|
getLines() {
|
||||||
|
$.post('/platform/theRapyRecuperation/branchUnionUserQuery/listLine', {
|
||||||
|
year: this.pageForm.year,
|
||||||
|
signUpMode: this.pageForm.signUpMode,
|
||||||
|
regionalNature: this.pageForm.regionalNature
|
||||||
|
}).then(res => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.takePartInLines = res.data
|
||||||
|
} else {
|
||||||
|
this.$message.error(res.msg)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
async created() {
|
||||||
|
this.getLines()
|
||||||
|
this.doSearch()
|
||||||
|
this.getConfig()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<!--#
|
||||||
|
}
|
||||||
|
#-->
|
||||||
+147
@@ -0,0 +1,147 @@
|
|||||||
|
const setUpPart = {
|
||||||
|
template: /*language=HTML*/ `
|
||||||
|
<el-dialog :visible.sync="visible" title="设置参加人员" top="50px">
|
||||||
|
<el-row class="text-primary p20">
|
||||||
|
选择标段/参加时间(设置前请先勾选需要设置的用户)
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-row type="flex" style="column-gap: 10px">
|
||||||
|
<el-select v-model="lotId" filterable clearable
|
||||||
|
placeholder="请选择标段"
|
||||||
|
style="width: 100%"
|
||||||
|
@change="lotChange">
|
||||||
|
<el-option v-for="item in config.lots"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.lotName"
|
||||||
|
:value="item.id">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
<el-date-picker
|
||||||
|
v-model="takePartInTime"
|
||||||
|
type="date"
|
||||||
|
style="width: 100%"
|
||||||
|
@change="takePartInTimeChange"
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
placeholder="请选择参加时间">
|
||||||
|
</el-date-picker>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-row class="mt10">
|
||||||
|
<el-table :data="tableData" border ref="tableRef" row-key="id">
|
||||||
|
<el-table-column type="selection" width="55"></el-table-column>
|
||||||
|
<el-table-column type="index" label="序号" width="80"></el-table-column>
|
||||||
|
<el-table-column prop="loginName" label="一卡通号"></el-table-column>
|
||||||
|
<el-table-column prop="userName" label="姓名"></el-table-column>
|
||||||
|
<el-table-column prop="unitName" label="单位"></el-table-column>
|
||||||
|
<el-table-column prop="unionName" label="工会"></el-table-column>
|
||||||
|
<el-table-column prop="signingUptime" label="报名时间"></el-table-column>
|
||||||
|
<el-table-column prop="takePartInTime" label="参加时间"></el-table-column>
|
||||||
|
<el-table-column prop="lotName" label="标段"></el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<template #footer>
|
||||||
|
<el-button @click="visible = false">取消</el-button>
|
||||||
|
<el-button type="primary" @click="onSubmit">确定</el-button>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
`,
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
visible: false,
|
||||||
|
config: {},
|
||||||
|
tableData: [],
|
||||||
|
lotId: null,
|
||||||
|
takePartInTime: null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
onOpen(selection) {
|
||||||
|
this.visible = true
|
||||||
|
this.tableData = JSON.parse(JSON.stringify(selection))
|
||||||
|
this.getModifyConfig()
|
||||||
|
},
|
||||||
|
|
||||||
|
async getModifyConfig() {
|
||||||
|
const res = await $.post('/platform/theRapyRecuperation/TheRapyConfig/findOne')
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.config = res.data
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// 标段改变
|
||||||
|
lotChange(val) {
|
||||||
|
const selection = this.$refs.tableRef.selection
|
||||||
|
if (selection.length === 0) {
|
||||||
|
this.$message.error('请选择要设置的人员')
|
||||||
|
this.lotId = null
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (!val) {
|
||||||
|
this.$refs.tableRef.clearSelection()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
const lot = this.config.lots.find(v => v.id === val)
|
||||||
|
this.tableData.map((v, index) => {
|
||||||
|
this.$set(this.tableData[index], "lotId", val)
|
||||||
|
this.$set(this.tableData[index], "lotName", lot.lotName)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
// 参加时间改变
|
||||||
|
takePartInTimeChange(val) {
|
||||||
|
const selection = this.$refs.tableRef.selection
|
||||||
|
if (selection.length === 0) {
|
||||||
|
this.$message.error('请选择要设置的人员')
|
||||||
|
this.takePartInTime = null
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (!val) {
|
||||||
|
this.$refs.tableRef.clearSelection()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.tableData.map((v, index) => {
|
||||||
|
this.$set(this.tableData[index], "takePartInTime", val)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
// 确定提交
|
||||||
|
onSubmit() {
|
||||||
|
// 检查哪几条数据填写不完整
|
||||||
|
this.tableData.forEach((v, index) => {
|
||||||
|
if (!v.lotId || !v.takePartInTime) {
|
||||||
|
this.$message.error('第' + (index + 1) + '行数据填写不完整')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const data = this.tableData.map((v, index) => {
|
||||||
|
return{
|
||||||
|
lotId: v.lotId,
|
||||||
|
takePartInTime: v.takePartInTime,
|
||||||
|
id: v.id
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
this.$confirm('确定要提交吗?', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
}).then(async res => {
|
||||||
|
const {
|
||||||
|
code,
|
||||||
|
msg
|
||||||
|
} = await $.post("/platform/theRapyRecuperation/branchUnionUserQuery/setUpParticipants", {data: JSON.stringify(data)})
|
||||||
|
if (code === 0) {
|
||||||
|
this.$message.success(msg)
|
||||||
|
this.$refs.tableRef.clearSelection()
|
||||||
|
this.visible = false
|
||||||
|
} else {
|
||||||
|
this.$message.error(msg)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -0,0 +1,393 @@
|
|||||||
|
<!--#
|
||||||
|
layout("/layouts/platform.html"){
|
||||||
|
#-->
|
||||||
|
<style>
|
||||||
|
.query-row {
|
||||||
|
height: 70px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.query-row .el-col {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.query-row:not(:last-child) {
|
||||||
|
border-bottom: 1px dashed rgb(230, 230, 230);
|
||||||
|
}
|
||||||
|
|
||||||
|
.query-row-title {
|
||||||
|
width: 120px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-table-container {
|
||||||
|
padding-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.descriptions-form .el-form-item {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
</style>
|
||||||
|
<div id="app" v-cloak>
|
||||||
|
<guava ref="guava">
|
||||||
|
<template>
|
||||||
|
<el-card shadow="never">
|
||||||
|
<el-row align="middle" class="query-row" type="flex">
|
||||||
|
<el-col class="query-row-title"></el-col>
|
||||||
|
<el-col class="query-row-content">
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
|
<span>年  度:</span>
|
||||||
|
<el-date-picker
|
||||||
|
:clearable="false"
|
||||||
|
v-model="pageForm.startYear"
|
||||||
|
type="year"
|
||||||
|
value-format="yyyy"
|
||||||
|
placeholder="选择年"
|
||||||
|
style="width: 38%" @change="getUnionSelectLine(); doSearch()">
|
||||||
|
</el-date-picker>
|
||||||
|
<span>至</span>
|
||||||
|
<el-date-picker
|
||||||
|
:clearable="false"
|
||||||
|
v-model="pageForm.endYear"
|
||||||
|
type="year"
|
||||||
|
value-format="yyyy"
|
||||||
|
placeholder="选择年"
|
||||||
|
style="width: 38%" @change="doSearch">
|
||||||
|
</el-date-picker>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<span>路线类型:</span>
|
||||||
|
<el-select v-model="pageForm.regionalNature" filterable
|
||||||
|
placeholder="请选择线路"
|
||||||
|
style="width: 80%"
|
||||||
|
@change="lineTypeChange">
|
||||||
|
<el-option label="全部" value=""></el-option>
|
||||||
|
<el-option label="省内" value="省内"></el-option>
|
||||||
|
<el-option label="省外" value="省外"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<span>所属工会:</span>
|
||||||
|
<el-select v-model="pageForm.unionId" placeholder="请选择所属工会"
|
||||||
|
@change="doSearch()"
|
||||||
|
filterable clearable style="width: 80%">
|
||||||
|
<el-option
|
||||||
|
v-for="item in unions"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.unionname"
|
||||||
|
:value="item.id">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-row align="middle" class="query-row" type="flex">
|
||||||
|
<el-col class="query-row-title"></el-col>
|
||||||
|
<el-col class="query-row-content">
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
|
<span>线  路:</span>
|
||||||
|
<el-select v-model="pageForm.takePartInLineId" filterable clearable
|
||||||
|
placeholder="请选择线路"
|
||||||
|
style="width: 80%" @change="lineChange">
|
||||||
|
<el-option v-for="item in lineList"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.lineName + '-' + item.regionalNature + '【' + item.lotName + '】' + '(' + item.signUpMode + ')'"
|
||||||
|
:value="item.lineId">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<span>标  段:</span>
|
||||||
|
<el-select v-model="pageForm.lotId" filterable clearable
|
||||||
|
placeholder="请选择标段"
|
||||||
|
style="width: 80%" @change="doSearch()">
|
||||||
|
<el-option v-for="item in modifyConfig.lots"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.lotName"
|
||||||
|
:value="item.id">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<span>出行时间:</span>
|
||||||
|
<el-select v-model="pageForm.selectId" filterable clearable
|
||||||
|
placeholder="请选择出行时间"
|
||||||
|
style="width: 80%" @change="playChange">
|
||||||
|
<el-option v-for="item in linePlayTimes"
|
||||||
|
:key="item.times"
|
||||||
|
:label="item.times"
|
||||||
|
:value="item.selectId">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-row align="middle" class="query-row" type="flex">
|
||||||
|
<el-col class="query-row-title"></el-col>
|
||||||
|
<el-col class="query-row-content">
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
|
<span>组织形式:</span>
|
||||||
|
<el-select v-model="pageForm.signUpMode" filterable clearable
|
||||||
|
placeholder="请选择组织形式"
|
||||||
|
style="width: 80%" @change="doSearch">
|
||||||
|
<el-option label="个人组织" value="3"></el-option>
|
||||||
|
<el-option label="分工会组织" value="1"></el-option>
|
||||||
|
<el-option label="校工会组织" value="2"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-card>
|
||||||
|
|
||||||
|
<el-card shadow="never" class="mt10">
|
||||||
|
<table-tool :app="this" label="审核列表">
|
||||||
|
<template #func>
|
||||||
|
<el-radio-group v-model="pageForm.isAudit" @change="doSearch" size="mini" class="mr5">
|
||||||
|
<el-radio-button :label="0">全部</el-radio-button>
|
||||||
|
<el-radio-button :label="1">已审核</el-radio-button>
|
||||||
|
<el-radio-button :label="2">未审核</el-radio-button>
|
||||||
|
</el-radio-group>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
</table-tool>
|
||||||
|
<el-table :data="tableData">
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
header-align="center"
|
||||||
|
v-for="column in tableColumns"
|
||||||
|
show-overflow-tooltip
|
||||||
|
:label="column.label"
|
||||||
|
:prop="column.prop"
|
||||||
|
:sortable="column.sortable"
|
||||||
|
>
|
||||||
|
<template scope="{row}" v-if="column.prop=='signUpMode'">
|
||||||
|
<span v-if="row.signUpMode == '1'">分工会组织</span>
|
||||||
|
<span v-if="row.signUpMode == '2'">校工会组织</span>
|
||||||
|
<span v-if="row.signUpMode == '3'">个人组织</span>
|
||||||
|
</template>
|
||||||
|
<template scope="{row}" v-else-if="column.prop=='lineNum'">
|
||||||
|
<template v-if="!row.familyNumber" type="primary" >
|
||||||
|
{{row.lineNum + row.signUpUserFamilyNum}}({{row.signUpUserFamilyNum}})
|
||||||
|
</template>
|
||||||
|
<template v-else type="primary">
|
||||||
|
{{row.lineNum + row.familyNumber}}({{row.familyNumber}})
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="操作" width="200">
|
||||||
|
<template scope="{row}">
|
||||||
|
<el-button type="primary" size="mini" @click="openView(row)">查看</el-button>
|
||||||
|
<el-button type="primary" size="mini" @click="openAudit(row)"
|
||||||
|
:disabled="row.auditState!==7712">审核
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</el-card>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template #view>
|
||||||
|
<line-audit-info ref="lineAuditViewInfo"></line-audit-info>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template #edit>
|
||||||
|
<line-audit-info ref="lineAuditInfo" label="校工会审核" handle>
|
||||||
|
<template #handle>
|
||||||
|
<el-form :model="formData" ref="form" label-width="120px">
|
||||||
|
<el-descriptions border class="descriptions-form" :column="2">
|
||||||
|
<el-descriptions-item label="审核人">
|
||||||
|
<el-form-item label-width="0">
|
||||||
|
<el-input value="${@shiro.getPrincipalProperty('username')}" readonly></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-descriptions-item>
|
||||||
|
|
||||||
|
<el-descriptions-item label="审核时间">
|
||||||
|
<el-form-item label-width="0">
|
||||||
|
<el-input :value="moment().format('YYYY-MM-DD')" readonly></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-descriptions-item>
|
||||||
|
|
||||||
|
<el-descriptions-item label="审核意见" :span="2">
|
||||||
|
<el-form-item label-width="0" prop="auditOpinion"
|
||||||
|
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||||
|
<el-input v-model="formData.auditOpinion" maxlength="500"
|
||||||
|
type="textarea"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
<el-row type="flex" justify="end" align="center" style="padding: 20px">
|
||||||
|
<el-button @click="doBack" type="info">退回</el-button>
|
||||||
|
<el-button @click="doPass" type="primary">通过</el-button>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
</template>
|
||||||
|
</line-audit-info>
|
||||||
|
</template>
|
||||||
|
</guava>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
const vue = new Vue({
|
||||||
|
el: '#app',
|
||||||
|
mixins: [initTableMixins],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
pageForm: {
|
||||||
|
startYear: moment().format('YYYY'),
|
||||||
|
endYear: moment().format('YYYY'),
|
||||||
|
regionalNature: '',
|
||||||
|
signUpMode: '',
|
||||||
|
lotId: '',
|
||||||
|
takePartInLineId: '',
|
||||||
|
selectId: '',
|
||||||
|
isAudit: 2
|
||||||
|
},
|
||||||
|
unions: [],
|
||||||
|
lineList: [],
|
||||||
|
linePlayTimes: [],
|
||||||
|
tableColumns: [
|
||||||
|
{prop: 'year', label: '年度', width: 60},
|
||||||
|
{prop: 'lineName', label: '线路名称', sortable: true, width: 200},
|
||||||
|
{prop: 'linePlayTime', label: '出行时间', width: 180},
|
||||||
|
{prop: 'travelAgencyName', label: '承担旅行社', sortable: true, width: 180},
|
||||||
|
{prop: 'signUpMode', label: '组织形式', sortable: true},
|
||||||
|
{prop: 'regionalNature', label: '线路类型', sortable: true},
|
||||||
|
{prop: 'username', label: '发起人', sortable: true},
|
||||||
|
{prop: 'unionname', label: '所属工会', sortable: true},
|
||||||
|
{prop: 'estimatedFamilyNumbers', label: '最少成团人数', width: 80},
|
||||||
|
{prop: 'lineNum', label: '报名人数(家属)'},
|
||||||
|
{prop: 'stateName', label: '审核状态'},
|
||||||
|
],
|
||||||
|
userPageForm: {
|
||||||
|
pageNumber: 1,
|
||||||
|
pageSize: 10
|
||||||
|
},
|
||||||
|
modifyConfig: {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
'line-audit-info': httpVueLoader('/components/theRapyRecuperation/LineAuditInfo.vue?v=' + new Date().getTime()),
|
||||||
|
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
validateForm() {
|
||||||
|
return new Promise(resolve => {
|
||||||
|
this.$refs.form.validate(valid => {
|
||||||
|
resolve(valid)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
async doPass() {
|
||||||
|
const valid = await this.validateForm()
|
||||||
|
if (!valid) return
|
||||||
|
this.$confirm('您确定通过吗?', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
}).then(async () => {
|
||||||
|
const resp = await $.post(loc() + '/doPass', this.formData)
|
||||||
|
if (resp.code === 0) {
|
||||||
|
this.$refs.guava.index()
|
||||||
|
this.doSearch()
|
||||||
|
this.notifySuccess(resp.msg)
|
||||||
|
} else {
|
||||||
|
this.notifyWarning(resp.msg)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
async doBack() {
|
||||||
|
const valid = await this.validateForm()
|
||||||
|
if (!valid) return
|
||||||
|
this.$confirm('您确定退回吗?', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
}).then(async () => {
|
||||||
|
const resp = await $.post(loc() + '/doBack', this.formData)
|
||||||
|
if (resp.code === 0) {
|
||||||
|
this.$refs.guava.index()
|
||||||
|
this.doSearch()
|
||||||
|
this.notifySuccess(resp.msg)
|
||||||
|
} else {
|
||||||
|
this.notifyWarning(resp.msg)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
openAudit(row) {
|
||||||
|
this.formData = {
|
||||||
|
id: row.lineUId
|
||||||
|
}
|
||||||
|
this.$refs.guava.edit();
|
||||||
|
this.$refs.lineAuditInfo.init(row)
|
||||||
|
},
|
||||||
|
openView(row) {
|
||||||
|
this.$refs.guava.view();
|
||||||
|
this.$refs.lineAuditViewInfo.init(row)
|
||||||
|
},
|
||||||
|
lineTypeChange() {
|
||||||
|
this.pageForm.takePartInLineId = ''
|
||||||
|
this.getUnionSelectLine()
|
||||||
|
this.doSearch()
|
||||||
|
},
|
||||||
|
async getLinePlayTimeByLineId(id) {
|
||||||
|
const resp = await $.get('/platform/theRapyRecuperation/enrollAudit/commonAudit/getLinePlayTimeByLineId', {
|
||||||
|
lineId: id,
|
||||||
|
startYear: this.pageForm.startYear,
|
||||||
|
endYear: this.pageForm.endYear,
|
||||||
|
flag: true
|
||||||
|
})
|
||||||
|
if (resp.code === 0) {
|
||||||
|
this.linePlayTimes = resp.data
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async getUnionSelectLine() {
|
||||||
|
const resp = await $.post('/platform/theRapyRecuperation/enrollAudit/commonAudit/getUnionSelectLine', {
|
||||||
|
startYear: this.pageForm.startYear,
|
||||||
|
endYear: this.pageForm.endYear,
|
||||||
|
signUpMode: this.pageForm.signUpMode,
|
||||||
|
flag: true,
|
||||||
|
regionalNature: this.pageForm.regionalNature
|
||||||
|
})
|
||||||
|
if (resp.code === 0) {
|
||||||
|
this.lineList = resp.data
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async lineChange(val) {
|
||||||
|
this.pageForm.selectId = ''
|
||||||
|
await this.getLinePlayTimeByLineId(val);
|
||||||
|
await this.doSearch()
|
||||||
|
},
|
||||||
|
async getModifyConfig() {
|
||||||
|
const res = await $.post('/platform/theRapyRecuperation/TheRapyConfig/findOne')
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.modifyConfig = res.data
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async playChange() {
|
||||||
|
await this.doSearch()
|
||||||
|
},
|
||||||
|
},
|
||||||
|
async created() {
|
||||||
|
this.unions = await getUnions()
|
||||||
|
await this.getModifyConfig();
|
||||||
|
await this.getUnionSelectLine();
|
||||||
|
this.pageData()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<!--#
|
||||||
|
}
|
||||||
|
#-->
|
||||||
@@ -0,0 +1,379 @@
|
|||||||
|
<!--#
|
||||||
|
layout("/layouts/platform.html"){
|
||||||
|
#-->
|
||||||
|
<style>
|
||||||
|
.query-row {
|
||||||
|
height: 70px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.query-row .el-col {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.query-row:not(:last-child) {
|
||||||
|
border-bottom: 1px dashed rgb(230, 230, 230);
|
||||||
|
}
|
||||||
|
|
||||||
|
.query-row-title {
|
||||||
|
width: 120px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-table-container {
|
||||||
|
padding-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.descriptions-form .el-form-item {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
</style>
|
||||||
|
<div id="app" v-cloak>
|
||||||
|
<guava ref="guava">
|
||||||
|
<template>
|
||||||
|
<el-card shadow="never">
|
||||||
|
<el-row align="middle" class="query-row" type="flex">
|
||||||
|
<el-col class="query-row-title"></el-col>
|
||||||
|
<el-col class="query-row-content">
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="12">
|
||||||
|
<span>年  度:</span>
|
||||||
|
<el-date-picker
|
||||||
|
:clearable="false"
|
||||||
|
v-model="pageForm.startYear"
|
||||||
|
type="year"
|
||||||
|
value-format="yyyy"
|
||||||
|
placeholder="选择年"
|
||||||
|
style="width: 38%" @change="getUnionSelectLine(); doSearch()">
|
||||||
|
</el-date-picker>
|
||||||
|
<span>至</span>
|
||||||
|
<el-date-picker
|
||||||
|
:clearable="false"
|
||||||
|
v-model="pageForm.endYear"
|
||||||
|
type="year"
|
||||||
|
value-format="yyyy"
|
||||||
|
placeholder="选择年"
|
||||||
|
style="width: 38%" @change="doSearch">
|
||||||
|
</el-date-picker>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<span>路线类型:</span>
|
||||||
|
<el-select v-model="pageForm.regionalNature" filterable
|
||||||
|
placeholder="请选择线路"
|
||||||
|
style="width: 80%"
|
||||||
|
@change="lineTypeChange">
|
||||||
|
<el-option label="全部" value=""></el-option>
|
||||||
|
<el-option label="省内" value="省内"></el-option>
|
||||||
|
<el-option label="省外" value="省外"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-row align="middle" class="query-row" type="flex">
|
||||||
|
<el-col class="query-row-title"></el-col>
|
||||||
|
<el-col class="query-row-content">
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="12">
|
||||||
|
<span>线  路:</span>
|
||||||
|
<el-select v-model="pageForm.takePartInLineId" filterable clearable
|
||||||
|
placeholder="请选择线路"
|
||||||
|
style="width: 80%" @change="lineChange">
|
||||||
|
<el-option v-for="item in lineList"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.lineName + '-' + item.regionalNature + '【' + item.lotName + '】' + '(' + item.signUpMode + ')'"
|
||||||
|
:value="item.lineId">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<span>标  段:</span>
|
||||||
|
<el-select v-model="pageForm.lotId" filterable clearable
|
||||||
|
placeholder="请选择标段"
|
||||||
|
style="width: 80%" @change="doSearch()">
|
||||||
|
<el-option v-for="item in modifyConfig.lots"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.lotName"
|
||||||
|
:value="item.id">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-row align="middle" class="query-row" type="flex">
|
||||||
|
<el-col class="query-row-title"></el-col>
|
||||||
|
<el-col class="query-row-content">
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="12">
|
||||||
|
<span>出行时间:</span>
|
||||||
|
<el-select v-model="pageForm.selectId" filterable clearable
|
||||||
|
placeholder="请选择出行时间"
|
||||||
|
style="width: 80%" @change="playChange">
|
||||||
|
<el-option v-for="item in linePlayTimes"
|
||||||
|
:key="item.times"
|
||||||
|
:label="item.times"
|
||||||
|
:value="item.selectId">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<span>组织形式:</span>
|
||||||
|
<el-select v-model="pageForm.signUpMode" filterable clearable
|
||||||
|
placeholder="请选择组织形式"
|
||||||
|
style="width: 80%" @change="doSearch">
|
||||||
|
<el-option label="个人组织" value="3"></el-option>
|
||||||
|
<el-option label="分工会组织" value="1"></el-option>
|
||||||
|
<el-option label="校工会组织" value="2"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-card>
|
||||||
|
|
||||||
|
<el-card shadow="never" class="mt10">
|
||||||
|
<table-tool :app="this" label="审核列表">
|
||||||
|
<template #func>
|
||||||
|
<el-radio-group v-model="pageForm.isAudit" @change="doSearch" size="mini" class="mr5">
|
||||||
|
<el-radio-button :label="0">全部</el-radio-button>
|
||||||
|
<el-radio-button :label="1">已审核</el-radio-button>
|
||||||
|
<el-radio-button :label="2">未审核</el-radio-button>
|
||||||
|
</el-radio-group>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
</table-tool>
|
||||||
|
<el-table :data="tableData">
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
header-align="center"
|
||||||
|
v-for="column in tableColumns"
|
||||||
|
show-overflow-tooltip
|
||||||
|
:label="column.label"
|
||||||
|
:prop="column.prop"
|
||||||
|
:sortable="column.sortable"
|
||||||
|
>
|
||||||
|
<template scope="{row}" v-if="column.prop=='signUpMode'">
|
||||||
|
<span v-if="row.signUpMode == '1'">分工会组织</span>
|
||||||
|
<span v-if="row.signUpMode == '2'">校工会组织</span>
|
||||||
|
<span v-if="row.signUpMode == '3'">个人组织</span>
|
||||||
|
</template>
|
||||||
|
<template scope="{row}" v-else-if="column.prop=='lineNum'">
|
||||||
|
<template v-if="!row.familyNumber" type="primary" >
|
||||||
|
{{row.lineNum + row.signUpUserFamilyNum}}({{row.signUpUserFamilyNum}})
|
||||||
|
</template>
|
||||||
|
<template v-else type="primary">
|
||||||
|
{{row.lineNum + row.familyNumber}}({{row.familyNumber}})
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="操作" width="200">
|
||||||
|
<template scope="{row}">
|
||||||
|
<el-button type="primary" size="mini" @click="openView(row)">查看</el-button>
|
||||||
|
<el-button type="primary" size="mini" @click="openAudit(row)"
|
||||||
|
:disabled="row.auditState!==7700">审核
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</el-card>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template #view>
|
||||||
|
<line-audit-info ref="lineAuditViewInfo"></line-audit-info>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template #edit>
|
||||||
|
<line-audit-info ref="lineAuditInfo" label="分工会审核" handle>
|
||||||
|
<template #handle>
|
||||||
|
<el-form :model="formData" ref="form" label-width="120px">
|
||||||
|
<el-descriptions border class="descriptions-form" :column="2">
|
||||||
|
<el-descriptions-item label="审核人">
|
||||||
|
<el-form-item label-width="0">
|
||||||
|
<el-input value="${@shiro.getPrincipalProperty('username')}" readonly></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-descriptions-item>
|
||||||
|
|
||||||
|
<el-descriptions-item label="审核时间">
|
||||||
|
<el-form-item label-width="0">
|
||||||
|
<el-input :value="moment().format('YYYY-MM-DD')" readonly></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-descriptions-item>
|
||||||
|
|
||||||
|
<el-descriptions-item label="审核意见" :span="2">
|
||||||
|
<el-form-item label-width="0" prop="auditOpinion"
|
||||||
|
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||||
|
<el-input v-model="formData.auditOpinion" maxlength="500"
|
||||||
|
type="textarea"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
<el-row type="flex" justify="end" align="center" style="padding: 20px">
|
||||||
|
<el-button @click="doBack" type="info">退回</el-button>
|
||||||
|
<el-button @click="doPass" type="primary">通过</el-button>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
</template>
|
||||||
|
</line-audit-info>
|
||||||
|
</template>
|
||||||
|
</guava>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
const vue = new Vue({
|
||||||
|
el: '#app',
|
||||||
|
mixins: [initTableMixins],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
pageForm: {
|
||||||
|
startYear: moment().format('YYYY'),
|
||||||
|
endYear: moment().format('YYYY'),
|
||||||
|
regionalNature: '',
|
||||||
|
signUpMode: '',
|
||||||
|
lotId: '',
|
||||||
|
takePartInLineId: '',
|
||||||
|
selectId: '',
|
||||||
|
isAudit: 2
|
||||||
|
},
|
||||||
|
unions: [],
|
||||||
|
lineList: [],
|
||||||
|
linePlayTimes: [],
|
||||||
|
tableColumns: [
|
||||||
|
{prop: 'year', label: '年度', width: 60},
|
||||||
|
{prop: 'lineName', label: '线路名称', sortable: true, width: 200},
|
||||||
|
{prop: 'linePlayTime', label: '出行时间', width: 180},
|
||||||
|
{prop: 'travelAgencyName', label: '承担旅行社', sortable: true, width: 180},
|
||||||
|
{prop: 'signUpMode', label: '组织形式', sortable: true},
|
||||||
|
{prop: 'regionalNature', label: '线路类型', sortable: true},
|
||||||
|
{prop: 'username', label: '发起人', sortable: true},
|
||||||
|
{prop: 'unionname', label: '所属工会', sortable: true},
|
||||||
|
{prop: 'estimatedFamilyNumbers', label: '最少成团人数', width: 80},
|
||||||
|
{prop: 'lineNum', label: '报名人数(家属)'},
|
||||||
|
{prop: 'stateName', label: '审核状态'},
|
||||||
|
],
|
||||||
|
userPageForm: {
|
||||||
|
pageNumber: 1,
|
||||||
|
pageSize: 10
|
||||||
|
},
|
||||||
|
modifyConfig: {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
'line-audit-info': httpVueLoader('/components/theRapyRecuperation/LineAuditInfo.vue?v=' + new Date().getTime()),
|
||||||
|
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
validateForm() {
|
||||||
|
return new Promise(resolve => {
|
||||||
|
this.$refs.form.validate(valid => {
|
||||||
|
resolve(valid)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
async doPass() {
|
||||||
|
const valid = await this.validateForm()
|
||||||
|
if (!valid) return
|
||||||
|
this.$confirm('您确定通过吗?', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
}).then(async () => {
|
||||||
|
const resp = await $.post(loc() + '/doPass', this.formData)
|
||||||
|
if (resp.code === 0) {
|
||||||
|
this.$refs.guava.index()
|
||||||
|
this.doSearch()
|
||||||
|
this.notifySuccess(resp.msg)
|
||||||
|
} else {
|
||||||
|
this.notifyWarning(resp.msg)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
async doBack() {
|
||||||
|
const valid = await this.validateForm()
|
||||||
|
if (!valid) return
|
||||||
|
this.$confirm('您确定退回吗?', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
}).then(async () => {
|
||||||
|
const resp = await $.post(loc() + '/doBack', this.formData)
|
||||||
|
if (resp.code === 0) {
|
||||||
|
this.$refs.guava.index()
|
||||||
|
this.doSearch()
|
||||||
|
this.notifySuccess(resp.msg)
|
||||||
|
} else {
|
||||||
|
this.notifyWarning(resp.msg)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
openAudit(row) {
|
||||||
|
this.formData = {
|
||||||
|
id: row.lineUId
|
||||||
|
}
|
||||||
|
this.$refs.guava.edit();
|
||||||
|
this.$refs.lineAuditInfo.init(row)
|
||||||
|
},
|
||||||
|
openView(row) {
|
||||||
|
this.$refs.guava.view();
|
||||||
|
this.$refs.lineAuditViewInfo.init(row)
|
||||||
|
},
|
||||||
|
lineTypeChange() {
|
||||||
|
this.pageForm.takePartInLineId = ''
|
||||||
|
this.getUnionSelectLine()
|
||||||
|
this.doSearch()
|
||||||
|
},
|
||||||
|
async getLinePlayTimeByLineId(id) {
|
||||||
|
const resp = await $.get('/platform/theRapyRecuperation/enrollAudit/commonAudit/getLinePlayTimeByLineId', {
|
||||||
|
lineId: id,
|
||||||
|
startYear: this.pageForm.startYear,
|
||||||
|
endYear: this.pageForm.endYear,
|
||||||
|
flag: true
|
||||||
|
})
|
||||||
|
if (resp.code === 0) {
|
||||||
|
this.linePlayTimes = resp.data
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async getUnionSelectLine() {
|
||||||
|
const resp = await $.post('/platform/theRapyRecuperation/enrollAudit/commonAudit/getUnionSelectLine', {
|
||||||
|
startYear: this.pageForm.startYear,
|
||||||
|
endYear: this.pageForm.endYear,
|
||||||
|
signUpMode: this.pageForm.signUpMode,
|
||||||
|
flag: true,
|
||||||
|
regionalNature: this.pageForm.regionalNature
|
||||||
|
})
|
||||||
|
if (resp.code === 0) {
|
||||||
|
this.lineList = resp.data
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async lineChange(val) {
|
||||||
|
this.pageForm.selectId = ''
|
||||||
|
await this.getLinePlayTimeByLineId(val);
|
||||||
|
await this.doSearch()
|
||||||
|
},
|
||||||
|
async getModifyConfig() {
|
||||||
|
const res = await $.post('/platform/theRapyRecuperation/TheRapyConfig/findOne')
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.modifyConfig = res.data
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async playChange() {
|
||||||
|
await this.doSearch()
|
||||||
|
},
|
||||||
|
},
|
||||||
|
async created() {
|
||||||
|
await this.getModifyConfig();
|
||||||
|
await this.getUnionSelectLine();
|
||||||
|
this.pageData()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<!--#
|
||||||
|
}
|
||||||
|
#-->
|
||||||
+379
@@ -0,0 +1,379 @@
|
|||||||
|
<!--#
|
||||||
|
layout("/layouts/platform.html"){
|
||||||
|
#-->
|
||||||
|
<style>
|
||||||
|
.query-row {
|
||||||
|
height: 70px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.query-row .el-col {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.query-row:not(:last-child) {
|
||||||
|
border-bottom: 1px dashed rgb(230, 230, 230);
|
||||||
|
}
|
||||||
|
|
||||||
|
.query-row-title {
|
||||||
|
width: 120px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-table-container {
|
||||||
|
padding-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.descriptions-form .el-form-item {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
</style>
|
||||||
|
<div id="app" v-cloak>
|
||||||
|
<guava ref="guava">
|
||||||
|
<template>
|
||||||
|
<el-card shadow="never">
|
||||||
|
<el-row align="middle" class="query-row" type="flex">
|
||||||
|
<el-col class="query-row-title"></el-col>
|
||||||
|
<el-col class="query-row-content">
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="12">
|
||||||
|
<span>年  度:</span>
|
||||||
|
<el-date-picker
|
||||||
|
:clearable="false"
|
||||||
|
v-model="pageForm.startYear"
|
||||||
|
type="year"
|
||||||
|
value-format="yyyy"
|
||||||
|
placeholder="选择年"
|
||||||
|
style="width: 38%" @change="getUnionSelectLine(); doSearch()">
|
||||||
|
</el-date-picker>
|
||||||
|
<span>至</span>
|
||||||
|
<el-date-picker
|
||||||
|
:clearable="false"
|
||||||
|
v-model="pageForm.endYear"
|
||||||
|
type="year"
|
||||||
|
value-format="yyyy"
|
||||||
|
placeholder="选择年"
|
||||||
|
style="width: 38%" @change="doSearch">
|
||||||
|
</el-date-picker>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<span>路线类型:</span>
|
||||||
|
<el-select v-model="pageForm.regionalNature" filterable
|
||||||
|
placeholder="请选择线路"
|
||||||
|
style="width: 80%"
|
||||||
|
@change="lineTypeChange">
|
||||||
|
<el-option label="全部" value=""></el-option>
|
||||||
|
<el-option label="省内" value="省内"></el-option>
|
||||||
|
<el-option label="省外" value="省外"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-row align="middle" class="query-row" type="flex">
|
||||||
|
<el-col class="query-row-title"></el-col>
|
||||||
|
<el-col class="query-row-content">
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="12">
|
||||||
|
<span>线  路:</span>
|
||||||
|
<el-select v-model="pageForm.takePartInLineId" filterable clearable
|
||||||
|
placeholder="请选择线路"
|
||||||
|
style="width: 80%" @change="lineChange">
|
||||||
|
<el-option v-for="item in lineList"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.lineName + '-' + item.regionalNature + '【' + item.lotName + '】' + '(' + item.signUpMode + ')'"
|
||||||
|
:value="item.lineId">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<span>标  段:</span>
|
||||||
|
<el-select v-model="pageForm.lotId" filterable clearable
|
||||||
|
placeholder="请选择标段"
|
||||||
|
style="width: 80%" @change="doSearch()">
|
||||||
|
<el-option v-for="item in modifyConfig.lots"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.lotName"
|
||||||
|
:value="item.id">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-row align="middle" class="query-row" type="flex">
|
||||||
|
<el-col class="query-row-title"></el-col>
|
||||||
|
<el-col class="query-row-content">
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="12">
|
||||||
|
<span>出行时间:</span>
|
||||||
|
<el-select v-model="pageForm.selectId" filterable clearable
|
||||||
|
placeholder="请选择出行时间"
|
||||||
|
style="width: 80%" @change="playChange">
|
||||||
|
<el-option v-for="item in linePlayTimes"
|
||||||
|
:key="item.times"
|
||||||
|
:label="item.times"
|
||||||
|
:value="item.selectId">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<span>组织形式:</span>
|
||||||
|
<el-select v-model="pageForm.signUpMode" filterable clearable
|
||||||
|
placeholder="请选择组织形式"
|
||||||
|
style="width: 80%" @change="doSearch">
|
||||||
|
<el-option label="个人组织" value="3"></el-option>
|
||||||
|
<el-option label="分工会组织" value="1"></el-option>
|
||||||
|
<el-option label="校工会组织" value="2"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-card>
|
||||||
|
|
||||||
|
<el-card shadow="never" class="mt10">
|
||||||
|
<table-tool :app="this" label="审核列表">
|
||||||
|
<template #func>
|
||||||
|
<el-radio-group v-model="pageForm.isAudit" @change="doSearch" size="mini" class="mr5">
|
||||||
|
<el-radio-button :label="0">全部</el-radio-button>
|
||||||
|
<el-radio-button :label="1">已审核</el-radio-button>
|
||||||
|
<el-radio-button :label="2">未审核</el-radio-button>
|
||||||
|
</el-radio-group>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
</table-tool>
|
||||||
|
<el-table :data="tableData">
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
header-align="center"
|
||||||
|
v-for="column in tableColumns"
|
||||||
|
show-overflow-tooltip
|
||||||
|
:label="column.label"
|
||||||
|
:prop="column.prop"
|
||||||
|
:sortable="column.sortable"
|
||||||
|
>
|
||||||
|
<template scope="{row}" v-if="column.prop=='signUpMode'">
|
||||||
|
<span v-if="row.signUpMode == '1'">分工会组织</span>
|
||||||
|
<span v-if="row.signUpMode == '2'">校工会组织</span>
|
||||||
|
<span v-if="row.signUpMode == '3'">个人组织</span>
|
||||||
|
</template>
|
||||||
|
<template scope="{row}" v-else-if="column.prop=='lineNum'">
|
||||||
|
<template v-if="!row.familyNumber" type="primary" >
|
||||||
|
{{row.lineNum + row.signUpUserFamilyNum}}({{row.signUpUserFamilyNum}})
|
||||||
|
</template>
|
||||||
|
<template v-else type="primary">
|
||||||
|
{{row.lineNum + row.familyNumber}}({{row.familyNumber}})
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="操作" width="200">
|
||||||
|
<template scope="{row}">
|
||||||
|
<el-button type="primary" size="mini" @click="openView(row)">查看</el-button>
|
||||||
|
<el-button type="primary" size="mini" @click="openAudit(row)"
|
||||||
|
:disabled="row.auditState!==7707">审核
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</el-card>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template #view>
|
||||||
|
<line-audit-info ref="lineAuditViewInfo"></line-audit-info>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template #edit>
|
||||||
|
<line-audit-info ref="lineAuditInfo" label="单位领导审核" handle>
|
||||||
|
<template #handle>
|
||||||
|
<el-form :model="formData" ref="form" label-width="120px">
|
||||||
|
<el-descriptions border class="descriptions-form" :column="2">
|
||||||
|
<el-descriptions-item label="审核人">
|
||||||
|
<el-form-item label-width="0">
|
||||||
|
<el-input value="${@shiro.getPrincipalProperty('username')}" readonly></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-descriptions-item>
|
||||||
|
|
||||||
|
<el-descriptions-item label="审核时间">
|
||||||
|
<el-form-item label-width="0">
|
||||||
|
<el-input :value="moment().format('YYYY-MM-DD')" readonly></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-descriptions-item>
|
||||||
|
|
||||||
|
<el-descriptions-item label="审核意见" :span="2">
|
||||||
|
<el-form-item label-width="0" prop="auditOpinion"
|
||||||
|
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||||
|
<el-input v-model="formData.auditOpinion" maxlength="500"
|
||||||
|
type="textarea"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
<el-row type="flex" justify="end" align="center" style="padding: 20px">
|
||||||
|
<el-button @click="doBack" type="info">退回</el-button>
|
||||||
|
<el-button @click="doPass" type="primary">通过</el-button>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
</template>
|
||||||
|
</line-audit-info>
|
||||||
|
</template>
|
||||||
|
</guava>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
const vue = new Vue({
|
||||||
|
el: '#app',
|
||||||
|
mixins: [initTableMixins],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
pageForm: {
|
||||||
|
startYear: moment().format('YYYY'),
|
||||||
|
endYear: moment().format('YYYY'),
|
||||||
|
regionalNature: '',
|
||||||
|
signUpMode: '',
|
||||||
|
lotId: '',
|
||||||
|
takePartInLineId: '',
|
||||||
|
selectId: '',
|
||||||
|
isAudit: 2
|
||||||
|
},
|
||||||
|
unions: [],
|
||||||
|
lineList: [],
|
||||||
|
linePlayTimes: [],
|
||||||
|
tableColumns: [
|
||||||
|
{prop: 'year', label: '年度', width: 60},
|
||||||
|
{prop: 'lineName', label: '线路名称', sortable: true, width: 200},
|
||||||
|
{prop: 'linePlayTime', label: '出行时间', width: 180},
|
||||||
|
{prop: 'travelAgencyName', label: '承担旅行社', sortable: true, width: 180},
|
||||||
|
{prop: 'signUpMode', label: '组织形式', sortable: true},
|
||||||
|
{prop: 'regionalNature', label: '线路类型', sortable: true},
|
||||||
|
{prop: 'username', label: '发起人', sortable: true},
|
||||||
|
{prop: 'unionname', label: '所属工会', sortable: true},
|
||||||
|
{prop: 'estimatedFamilyNumbers', label: '最少成团人数', width: 80},
|
||||||
|
{prop: 'lineNum', label: '报名人数(家属)'},
|
||||||
|
{prop: 'stateName', label: '审核状态'},
|
||||||
|
],
|
||||||
|
userPageForm: {
|
||||||
|
pageNumber: 1,
|
||||||
|
pageSize: 10
|
||||||
|
},
|
||||||
|
modifyConfig: {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
'line-audit-info': httpVueLoader('/components/theRapyRecuperation/LineAuditInfo.vue?v=' + new Date().getTime()),
|
||||||
|
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
validateForm() {
|
||||||
|
return new Promise(resolve => {
|
||||||
|
this.$refs.form.validate(valid => {
|
||||||
|
resolve(valid)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
async doPass() {
|
||||||
|
const valid = await this.validateForm()
|
||||||
|
if (!valid) return
|
||||||
|
this.$confirm('您确定通过吗?', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
}).then(async () => {
|
||||||
|
const resp = await $.post(loc() + '/doPass', this.formData)
|
||||||
|
if (resp.code === 0) {
|
||||||
|
this.$refs.guava.index()
|
||||||
|
this.doSearch()
|
||||||
|
this.notifySuccess(resp.msg)
|
||||||
|
} else {
|
||||||
|
this.notifyWarning(resp.msg)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
async doBack() {
|
||||||
|
const valid = await this.validateForm()
|
||||||
|
if (!valid) return
|
||||||
|
this.$confirm('您确定退回吗?', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
}).then(async () => {
|
||||||
|
const resp = await $.post(loc() + '/doBack', this.formData)
|
||||||
|
if (resp.code === 0) {
|
||||||
|
this.$refs.guava.index()
|
||||||
|
this.doSearch()
|
||||||
|
this.notifySuccess(resp.msg)
|
||||||
|
} else {
|
||||||
|
this.notifyWarning(resp.msg)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
openAudit(row) {
|
||||||
|
this.formData = {
|
||||||
|
id: row.lineUId
|
||||||
|
}
|
||||||
|
this.$refs.guava.edit();
|
||||||
|
this.$refs.lineAuditInfo.init(row)
|
||||||
|
},
|
||||||
|
openView(row) {
|
||||||
|
this.$refs.guava.view();
|
||||||
|
this.$refs.lineAuditViewInfo.init(row)
|
||||||
|
},
|
||||||
|
lineTypeChange() {
|
||||||
|
this.pageForm.takePartInLineId = ''
|
||||||
|
this.getUnionSelectLine()
|
||||||
|
this.doSearch()
|
||||||
|
},
|
||||||
|
async getLinePlayTimeByLineId(id) {
|
||||||
|
const resp = await $.get('/platform/theRapyRecuperation/enrollAudit/commonAudit/getLinePlayTimeByLineId', {
|
||||||
|
lineId: id,
|
||||||
|
startYear: this.pageForm.startYear,
|
||||||
|
endYear: this.pageForm.endYear,
|
||||||
|
flag: true
|
||||||
|
})
|
||||||
|
if (resp.code === 0) {
|
||||||
|
this.linePlayTimes = resp.data
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async getUnionSelectLine() {
|
||||||
|
const resp = await $.post('/platform/theRapyRecuperation/enrollAudit/commonAudit/getUnionSelectLine', {
|
||||||
|
startYear: this.pageForm.startYear,
|
||||||
|
endYear: this.pageForm.endYear,
|
||||||
|
signUpMode: this.pageForm.signUpMode,
|
||||||
|
flag: true,
|
||||||
|
regionalNature: this.pageForm.regionalNature
|
||||||
|
})
|
||||||
|
if (resp.code === 0) {
|
||||||
|
this.lineList = resp.data
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async lineChange(val) {
|
||||||
|
this.pageForm.selectId = ''
|
||||||
|
await this.getLinePlayTimeByLineId(val);
|
||||||
|
await this.doSearch()
|
||||||
|
},
|
||||||
|
async getModifyConfig() {
|
||||||
|
const res = await $.post('/platform/theRapyRecuperation/TheRapyConfig/findOne')
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.modifyConfig = res.data
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async playChange() {
|
||||||
|
await this.doSearch()
|
||||||
|
},
|
||||||
|
},
|
||||||
|
async created() {
|
||||||
|
await this.getModifyConfig();
|
||||||
|
await this.getUnionSelectLine();
|
||||||
|
this.pageData()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<!--#
|
||||||
|
}
|
||||||
|
#-->
|
||||||
@@ -0,0 +1,332 @@
|
|||||||
|
<!--#
|
||||||
|
layout("/layouts/platform.html"){
|
||||||
|
#-->
|
||||||
|
<style>
|
||||||
|
.query-row {
|
||||||
|
height: 70px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.query-row .el-col {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.query-row:not(:last-child) {
|
||||||
|
border-bottom: 1px dashed rgb(230, 230, 230);
|
||||||
|
}
|
||||||
|
|
||||||
|
.query-row-title {
|
||||||
|
width: 120px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-table-container {
|
||||||
|
padding-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
</style>
|
||||||
|
<div id="app" v-cloak>
|
||||||
|
<guava ref="guava">
|
||||||
|
<template>
|
||||||
|
<el-card shadow="never">
|
||||||
|
<el-row align="middle" class="query-row" type="flex">
|
||||||
|
<el-col class="query-row-title"></el-col>
|
||||||
|
<el-col class="query-row-content">
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
|
<span>年  度:</span>
|
||||||
|
<el-date-picker
|
||||||
|
:clearable="false"
|
||||||
|
v-model="pageForm.startYear"
|
||||||
|
type="year"
|
||||||
|
value-format="yyyy"
|
||||||
|
placeholder="选择年"
|
||||||
|
style="width: 38%" @change="getUnionSelectLine(); doSearch()">
|
||||||
|
</el-date-picker>
|
||||||
|
<span>至</span>
|
||||||
|
<el-date-picker
|
||||||
|
:clearable="false"
|
||||||
|
v-model="pageForm.endYear"
|
||||||
|
type="year"
|
||||||
|
value-format="yyyy"
|
||||||
|
placeholder="选择年"
|
||||||
|
style="width: 38%" @change="doSearch">
|
||||||
|
</el-date-picker>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<span>所属工会:</span>
|
||||||
|
<el-select v-model="pageForm.unionId" placeholder="请选择所属工会"
|
||||||
|
@change="doSearch()"
|
||||||
|
filterable clearable style="width: 80%">
|
||||||
|
<el-option
|
||||||
|
v-for="item in unions"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.unionname"
|
||||||
|
:value="item.id">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<span>路线类型:</span>
|
||||||
|
<el-select v-model="pageForm.regionalNature" filterable
|
||||||
|
placeholder="请选择线路"
|
||||||
|
style="width: 80%"
|
||||||
|
@change="lineTypeChange">
|
||||||
|
<el-option label="全部" value=""></el-option>
|
||||||
|
<el-option label="省内" value="省内"></el-option>
|
||||||
|
<el-option label="省外" value="省外"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
|
||||||
|
<el-row align="middle" class="query-row" type="flex">
|
||||||
|
<el-col class="query-row-title"></el-col>
|
||||||
|
<el-col class="query-row-content">
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
|
<span>线  路:</span>
|
||||||
|
<el-select v-model="pageForm.takePartInLineId" filterable clearable
|
||||||
|
placeholder="请选择线路"
|
||||||
|
style="width: 80%" @change="doSearch">
|
||||||
|
<el-option v-for="item in lineList"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.lineName + '-' + item.regionalNature + '【' + item.lotName + '】' + '(' + item.signUpMode + ')'"
|
||||||
|
:value="item.lineId">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<span>标  段:</span>
|
||||||
|
<el-select v-model="pageForm.lotId" filterable clearable
|
||||||
|
placeholder="请选择标段"
|
||||||
|
style="width: 80%" @change="doSearch()">
|
||||||
|
<el-option v-for="item in modifyConfig.lots"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.lotName"
|
||||||
|
:value="item.id">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<span>发 起 人:</span>
|
||||||
|
<el-input placeholder="请输入发起人姓名/工号" v-model="pageForm.searchKeyword"
|
||||||
|
style="width: 80%" clearable>
|
||||||
|
<el-button slot="append" icon="el-icon-search" @click="doSearch"></el-button>
|
||||||
|
</el-input>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
|
||||||
|
<el-row align="middle" class="query-row" type="flex">
|
||||||
|
<el-col class="query-row-title"></el-col>
|
||||||
|
<el-col class="query-row-content">
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
|
<span>组织形式:</span>
|
||||||
|
<el-select v-model="pageForm.signUpMode" filterable
|
||||||
|
placeholder="请选择组织形式"
|
||||||
|
style="width: 80%"
|
||||||
|
@change="doSearch">
|
||||||
|
<el-option label="校工会组织" value="2"
|
||||||
|
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionAdmin')}"></el-option>
|
||||||
|
<el-option label="分工会组织" value="1"></el-option>
|
||||||
|
<el-option label="个人组织" value="3"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<span>旅 行 社:</span>
|
||||||
|
<el-select clearable filterable style="width: 80%" v-model="pageForm.travelAgencyId"
|
||||||
|
placeholder="请选择旅行社" @change="doSearch();$set(pageForm,'travelAgencyPlace','')">
|
||||||
|
<el-option :key="item.id"
|
||||||
|
:label="item.travelAgencyName+'('+ item.year +'年)'"
|
||||||
|
:value="item.id"
|
||||||
|
v-for="item in travelAgencyList"
|
||||||
|
></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<span>地  点:</span>
|
||||||
|
<el-select clearable filterable style="width: 80%" v-model="pageForm.travelAgencyPlace"
|
||||||
|
placeholder="请选择旅行社地点" @change="doSearch">
|
||||||
|
<el-option :key="index"
|
||||||
|
:label="item"
|
||||||
|
:value="item"
|
||||||
|
v-for="(item,index) in (travelAgencyList.find(v => v.id === pageForm.travelAgencyId) ?? {}).travelAgencyPlaces"
|
||||||
|
></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-card>
|
||||||
|
|
||||||
|
|
||||||
|
<el-card shadow="never" class="mt10">
|
||||||
|
<table-tool label="线路列表" :app="this"
|
||||||
|
ref="table_tool">
|
||||||
|
<template #func>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
</table-tool>
|
||||||
|
<el-table :data="tableData" style="width: 100%"
|
||||||
|
ref="table"
|
||||||
|
row-key="id" @sort-change="pageOrder"
|
||||||
|
v-loading="tableLoading">
|
||||||
|
<el-table-column align="center" header-align="center" type="index" label="序号"
|
||||||
|
width="80px" key="#index">
|
||||||
|
<template scope="scope">
|
||||||
|
<span>{{scope.$index+(pageForm.pageNumber - 1) * pageForm.pageSize + 1}} </span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
header-align="center"
|
||||||
|
v-for="column in tableColumns"
|
||||||
|
show-overflow-tooltip
|
||||||
|
:label="column.label"
|
||||||
|
:prop="column.prop"
|
||||||
|
:width="column.width"
|
||||||
|
:sortable="column.sortable"
|
||||||
|
>
|
||||||
|
|
||||||
|
<template scope="{row}" v-if="column.prop=='signUpMode'">
|
||||||
|
<span v-if="row.signUpMode == '1'">分工会组织</span>
|
||||||
|
<span v-if="row.signUpMode == '2'">校工会组织</span>
|
||||||
|
<span v-if="row.signUpMode == '3'">个人组织</span>
|
||||||
|
</template>
|
||||||
|
<template scope="{row}" v-else-if="column.prop=='lineNum'">
|
||||||
|
<template v-if="!row.familyNumber" type="primary">
|
||||||
|
{{row.lineNum + row.signUpUserFamilyNum}}({{row.signUpUserFamilyNum}})
|
||||||
|
</template>
|
||||||
|
<template v-else type="primary">
|
||||||
|
{{row.lineNum + row.familyNumber}}({{row.familyNumber}})
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template scope="{row}" v-else-if="column.prop=='stateName'">
|
||||||
|
{{row.stateName?row.stateName:'待成团'}}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="操作" width="100">
|
||||||
|
<template scope="{row}">
|
||||||
|
<template>
|
||||||
|
<el-button @click="openLine(row)" size="mini" type="primary">
|
||||||
|
查看人员
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<!--#include("/layouts/pagination.html"){}#-->
|
||||||
|
</el-card>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template #public>
|
||||||
|
<line-audit-info ref="lineAuditViewInfo"></line-audit-info>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
|
||||||
|
</guava>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
const vue = new Vue({
|
||||||
|
el: '#app',
|
||||||
|
mixins: [initTableMixins],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
pageForm: {
|
||||||
|
startYear: moment().format('YYYY'),
|
||||||
|
endYear: moment().format('YYYY'),
|
||||||
|
unionId: '',
|
||||||
|
regionalNature: '',
|
||||||
|
signUpMode: '',
|
||||||
|
lotId: '',
|
||||||
|
takePartInLineId: '',
|
||||||
|
selectId: '',
|
||||||
|
},
|
||||||
|
tableColumns: [
|
||||||
|
{prop: 'year', label: '年度', width: 60},
|
||||||
|
{prop: 'lineName', label: '线路名称', sortable: true, width: 200},
|
||||||
|
{prop: 'linePlayTime', label: '出行时间', width: 180},
|
||||||
|
{prop: 'travelAgencyName', label: '承担旅行社', sortable: true, width: 180},
|
||||||
|
{prop: 'travelAgencyPlace', label: '地点', sortable: true},
|
||||||
|
{prop: 'signUpMode', label: '组织形式', sortable: true},
|
||||||
|
{prop: 'regionalNature', label: '线路类型', sortable: true},
|
||||||
|
{prop: 'username', label: '发起人', sortable: true},
|
||||||
|
{prop: 'unionname', label: '所属工会', sortable: true},
|
||||||
|
{prop: 'estimatedFamilyNumbers', label: '最少成团人数', width: 80},
|
||||||
|
{prop: 'lineNum', label: '报名人数(家属)'},
|
||||||
|
{prop: 'stateName', label: '审核状态'},
|
||||||
|
],
|
||||||
|
|
||||||
|
modifyConfig: {},
|
||||||
|
lineList: [],
|
||||||
|
unions: [],
|
||||||
|
signUpModeOptions: [
|
||||||
|
{label: '校工会组织', value: 2},
|
||||||
|
{label: '分工会组织', value: 1},
|
||||||
|
{label: '个人组织', value: 3},
|
||||||
|
],
|
||||||
|
travelAgencyList: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
'line-audit-info': httpVueLoader('/components/theRapyRecuperation/LineAuditInfo.vue?v=' + new Date().getTime()),
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
lineTypeChange() {
|
||||||
|
this.pageForm.takePartInLineId = ''
|
||||||
|
this.getUnionSelectLine()
|
||||||
|
this.doSearch()
|
||||||
|
},
|
||||||
|
openLine(row) {
|
||||||
|
this.$refs.guava.public()
|
||||||
|
this.$refs.lineAuditViewInfo.init(row)
|
||||||
|
},
|
||||||
|
async getUnionSelectLine() {
|
||||||
|
const resp = await $.post('/platform/theRapyRecuperation/user/query/getUnionSelectLine', {
|
||||||
|
startYear: this.pageForm.startYear,
|
||||||
|
endYear: this.pageForm.endYear,
|
||||||
|
signUpMode: this.pageForm.signUpMode,
|
||||||
|
flag: true,
|
||||||
|
regionalNature: this.pageForm.regionalNature
|
||||||
|
})
|
||||||
|
if (resp.code === 0) {
|
||||||
|
this.lineList = resp.data
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async getModifyConfig() {
|
||||||
|
const res = await $.post('/platform/theRapyRecuperation/TheRapyConfig/findOne')
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.modifyConfig = res.data
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async selectTravelAgencyList() {
|
||||||
|
const {data} = await $.post("/platform/theRapyRecuperation/travelAgency/selectTravelAgencyByYears", {
|
||||||
|
startYear: this.pageForm.startYear,
|
||||||
|
endYear: this.pageForm.endYear
|
||||||
|
})
|
||||||
|
this.travelAgencyList = data
|
||||||
|
},
|
||||||
|
},
|
||||||
|
async created() {
|
||||||
|
this.unions = await getUnions()
|
||||||
|
await this.getModifyConfig();
|
||||||
|
await this.getUnionSelectLine();
|
||||||
|
await this.selectTravelAgencyList();
|
||||||
|
this.pageData();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
<!--#
|
||||||
|
}
|
||||||
|
#-->
|
||||||
@@ -152,10 +152,10 @@ layout("/layouts/platform.html"){
|
|||||||
<span>选择路线:</span>
|
<span>选择路线:</span>
|
||||||
<el-select v-model="pageForm.takePartInLineId" filterable clearable
|
<el-select v-model="pageForm.takePartInLineId" filterable clearable
|
||||||
placeholder="请选择线路"
|
placeholder="请选择线路"
|
||||||
style="width: 80%" @change="lineChange(pageForm.takePartInLineId); doSearch()">
|
style="width: 80%" @change="pageData()">
|
||||||
<el-option v-for="item in takePartInLines"
|
<el-option v-for="item in takePartInLines"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
:label="item.lineName"
|
:label="item.lineName+'('+item.unionname+')'"
|
||||||
:value="item.id">
|
:value="item.id">
|
||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
@@ -197,8 +197,8 @@ layout("/layouts/platform.html"){
|
|||||||
|
|
||||||
<el-row v-if="!pageForm.state">
|
<el-row v-if="!pageForm.state">
|
||||||
<el-col :span="24" style="color: red;margin-top: 10px">
|
<el-col :span="24" style="color: red;margin-top: 10px">
|
||||||
<span>温馨提醒:当前操作查询是【本工会当年参加疗休养的人员(包含校工会线路)】和【其他工会选择本工会线路的疗休养人员】</span>
|
<!-- <span>温馨提醒:当前操作查询是【本工会当年参加疗休养的人员(包含校工会线路)】和【其他工会选择本工会线路的疗休养人员】</span>-->
|
||||||
<!--<span>温馨提醒:当前操作查询是【本工会当年参加疗休养的人员(包含校工会线路)】</span>-->
|
<span>温馨提醒:当前操作查询是【本工会当年参加疗休养的人员(包含校工会线路)】</span>
|
||||||
|
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
@@ -209,18 +209,6 @@ layout("/layouts/platform.html"){
|
|||||||
v-if="pageForm.state=='1'||pageForm.state=='3'">
|
v-if="pageForm.state=='1'||pageForm.state=='3'">
|
||||||
<el-col class="query-row-title"></el-col>
|
<el-col class="query-row-title"></el-col>
|
||||||
<el-col class="query-row-content">
|
<el-col class="query-row-content">
|
||||||
<el-col :span="12">
|
|
||||||
<span>出行时间:</span>
|
|
||||||
<el-select v-model="pageForm.selectId" filterable clearable
|
|
||||||
placeholder="请选择出行时间"
|
|
||||||
style="width: 80%" @change="doSearch()">
|
|
||||||
<el-option v-for="item in linePlayTimes"
|
|
||||||
:key="item.times"
|
|
||||||
:label="item.times"
|
|
||||||
:value="item.selectId">
|
|
||||||
</el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<span>选择标段:</span>
|
<span>选择标段:</span>
|
||||||
<el-select v-model="pageForm.lotId" filterable clearable
|
<el-select v-model="pageForm.lotId" filterable clearable
|
||||||
@@ -283,29 +271,12 @@ layout("/layouts/platform.html"){
|
|||||||
<el-button icon="el-icon-s-promotion" size="small" type="primary"
|
<el-button icon="el-icon-s-promotion" size="small" type="primary"
|
||||||
@click="userDrawer = true"
|
@click="userDrawer = true"
|
||||||
:disabled="multipleSelection.length==0"
|
:disabled="multipleSelection.length==0"
|
||||||
class="mr5" v-if="pageForm.lb=='ry'||!pageForm.lb">设置参加人员
|
class="mr10" v-if="pageForm.lb=='ry'||!pageForm.lb">设置参加人员
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
||||||
<el-button icon="el-icon-s-promotion" size="small" type="primary"
|
<el-button icon="el-icon-s-promotion" size="small" type="primary"
|
||||||
@click="doReimbursement"
|
@click="doExport"
|
||||||
:disabled="multipleSelection.length==0"
|
class="mr10" v-if="pageForm.state">导出
|
||||||
class="mr5" v-if="pageForm.state == '2' && pageForm.lb == 'ry'">一键报销
|
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
||||||
<el-dropdown v-if="pageForm.state" class="ml10 mr10">
|
|
||||||
<el-button size="small" type="primary">
|
|
||||||
导出报名人员<i class="el-icon-arrow-down el-icon--right"></i>
|
|
||||||
</el-button>
|
|
||||||
<el-dropdown-menu slot="dropdown">
|
|
||||||
<el-dropdown-item @click.native="doExport">
|
|
||||||
导出压缩包(zip)
|
|
||||||
</el-dropdown-item>
|
|
||||||
<el-dropdown-item @click.native="doExportExcel">
|
|
||||||
导出表格(excel)
|
|
||||||
</el-dropdown-item>
|
|
||||||
</el-dropdown-menu>
|
|
||||||
</el-dropdown>
|
|
||||||
|
|
||||||
<el-radio-group @change="pageData()" size="small"
|
<el-radio-group @change="pageData()" size="small"
|
||||||
v-model="pageForm.regionalNature"
|
v-model="pageForm.regionalNature"
|
||||||
v-if="pageForm.state=='1'">
|
v-if="pageForm.state=='1'">
|
||||||
@@ -328,13 +299,13 @@ layout("/layouts/platform.html"){
|
|||||||
width="55">
|
width="55">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
|
|
||||||
<el-table-column align="center" header-align="center" type="index" label="序号"
|
<el-table-column align="center" header-align="center" type="index" label="序号"
|
||||||
width="80px" key="#index">
|
width="80px" key="#index">
|
||||||
<template scope="scope">
|
<template scope="scope">
|
||||||
<span>{{scope.$index+(pageForm.pageNumber - 1) * pageForm.pageSize + 1}} </span>
|
<span>{{scope.$index+(pageForm.pageNumber - 1) * pageForm.pageSize + 1}} </span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
align="center"
|
align="center"
|
||||||
header-align="center"
|
header-align="center"
|
||||||
@@ -349,7 +320,7 @@ layout("/layouts/platform.html"){
|
|||||||
</el-link>
|
</el-link>
|
||||||
</template>
|
</template>
|
||||||
<template scope="{row}" v-else-if="column.prop=='isFamily'">
|
<template scope="{row}" v-else-if="column.prop=='isFamily'">
|
||||||
<el-link v-if="!row.familyNumber" type="primary" @click="openView(row)">
|
<el-link v-if="!row.familyNumber" type="primary" @click="openUser(row)">
|
||||||
{{row.isFamily?'携带':'未携带'}}({{row.isFamily}})
|
{{row.isFamily?'携带':'未携带'}}({{row.isFamily}})
|
||||||
</el-link>
|
</el-link>
|
||||||
<el-link v-else type="primary">
|
<el-link v-else type="primary">
|
||||||
@@ -358,7 +329,7 @@ layout("/layouts/platform.html"){
|
|||||||
</template>
|
</template>
|
||||||
<template scope="{row}" v-else-if="column.prop=='lineNum'">
|
<template scope="{row}" v-else-if="column.prop=='lineNum'">
|
||||||
|
|
||||||
<el-link v-if="!row.familyNumber" type="primary" @click="openView(row)">
|
<el-link v-if="!row.familyNumber" type="primary" @click="openUser(row)">
|
||||||
{{row.lineNum}}({{row.signUpUserFamilyNum}})
|
{{row.lineNum}}({{row.signUpUserFamilyNum}})
|
||||||
</el-link>
|
</el-link>
|
||||||
<el-link v-else type="primary">
|
<el-link v-else type="primary">
|
||||||
@@ -463,15 +434,8 @@ layout("/layouts/platform.html"){
|
|||||||
|
|
||||||
<el-button @click="openEdit(row)" size="mini" type="primary">编辑
|
<el-button @click="openEdit(row)" size="mini" type="primary">编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-dropdown class="ml10 mr10" trigger="click">
|
<el-button @click="doDelete(row)" size="mini" type="danger">删除
|
||||||
<el-button size="mini" type="primary">
|
</el-button>
|
||||||
调整<i class="el-icon-arrow-down el-icon--right"></i>
|
|
||||||
</el-button>
|
|
||||||
<el-dropdown-menu slot="dropdown">
|
|
||||||
<el-dropdown-item @click.native="doModify(row)">保留报名记录</el-dropdown-item>
|
|
||||||
<el-dropdown-item @click.native="doDelete(row)">删除报名记录</el-dropdown-item>
|
|
||||||
</el-dropdown-menu>
|
|
||||||
</el-dropdown>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
@@ -521,18 +485,18 @@ layout("/layouts/platform.html"){
|
|||||||
<el-table-column label="年龄" prop="age"></el-table-column>
|
<el-table-column label="年龄" prop="age"></el-table-column>
|
||||||
<el-table-column label="床型" prop="bedType">
|
<el-table-column label="床型" prop="bedType">
|
||||||
<template scope="{row}">
|
<template scope="{row}">
|
||||||
{{ row.bedInfo?.bedType }}
|
{{ row.bedInfo.bedType }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="床位" prop="bedNum">
|
<el-table-column label="床位" prop="bedNum">
|
||||||
<template scope="{row}">
|
<template scope="{row}">
|
||||||
{{ row.bedInfo?.bedNum }}
|
{{ row.bedInfo.bedNum }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="意向拼床人" prop="otherSleepUser">
|
<el-table-column label="意向拼床人" prop="otherSleepUser">
|
||||||
<template scope="{row}">
|
<template scope="{row}">
|
||||||
{{ row.bedInfo?.otherSleepUser ?
|
{{ row.bedInfo.otherSleepUser ?
|
||||||
row.bedInfo?.otherSleepUser : '暂无' }}
|
row.bedInfo.otherSleepUser : '暂无' }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="关系" prop="relation"></el-table-column>
|
<el-table-column label="关系" prop="relation"></el-table-column>
|
||||||
@@ -557,7 +521,13 @@ layout("/layouts/platform.html"){
|
|||||||
>
|
>
|
||||||
|
|
||||||
<template scope="{row}" v-if="column.prop=='isFamily'">
|
<template scope="{row}" v-if="column.prop=='isFamily'">
|
||||||
{{row.isFamily?'携带':'未携带'}}
|
<el-link v-if="!row.familyNumber" type="primary">
|
||||||
|
{{row.isFamily?'携带':'未携带'}}({{row.isFamily}})
|
||||||
|
</el-link>
|
||||||
|
<el-link v-else type="primary">
|
||||||
|
{{row.familyNumber?'携带':'未携带'}}({{row.familyNumber}})
|
||||||
|
</el-link>
|
||||||
|
<!--{{row.isFamily?'携带':'未携带'}}-->
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" width="250px">
|
<el-table-column label="操作" width="250px">
|
||||||
@@ -609,7 +579,7 @@ layout("/layouts/platform.html"){
|
|||||||
<el-dialog
|
<el-dialog
|
||||||
title="查看个人信息"
|
title="查看个人信息"
|
||||||
:visible.sync="userFindDialogVisible"
|
:visible.sync="userFindDialogVisible"
|
||||||
width="80%" top="2%">
|
width="80%">
|
||||||
<enroll-info ref="viewEnrollInfo" :union_id="unionId"></enroll-info>
|
<enroll-info ref="viewEnrollInfo" :union_id="unionId"></enroll-info>
|
||||||
<span slot="footer" class="dialog-footer">
|
<span slot="footer" class="dialog-footer">
|
||||||
<el-button @click="userFindDialogVisible = false" type="primary">关闭</el-button>
|
<el-button @click="userFindDialogVisible = false" type="primary">关闭</el-button>
|
||||||
@@ -815,22 +785,22 @@ layout("/layouts/platform.html"){
|
|||||||
<el-table :data="editFormData.companionList">
|
<el-table :data="editFormData.companionList">
|
||||||
<el-table-column label="姓名" prop="userName"></el-table-column>
|
<el-table-column label="姓名" prop="userName"></el-table-column>
|
||||||
<el-table-column label="性别" prop="sex"></el-table-column>
|
<el-table-column label="性别" prop="sex"></el-table-column>
|
||||||
<el-table-column label="身份证号" prop="idCard" show-overflow-tooltip></el-table-column>
|
<el-table-column label="身份证号" prop="idCard"></el-table-column>
|
||||||
<el-table-column label="年龄" prop="age"></el-table-column>
|
<el-table-column label="年龄" prop="age"></el-table-column>
|
||||||
<el-table-column label="床型" prop="bedType">
|
<el-table-column label="床型" prop="bedType">
|
||||||
<template scope="{row}">
|
<template scope="{row}">
|
||||||
{{ row.bedInfo?.bedType }}
|
{{ row.bedInfo.bedType }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="床位" prop="bedNum">
|
<el-table-column label="床位" prop="bedNum">
|
||||||
<template scope="{row}">
|
<template scope="{row}">
|
||||||
{{ row.bedInfo?.bedNum }}
|
{{ row.bedInfo.bedNum }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="意向拼床人" prop="otherSleepUser">
|
<el-table-column label="意向拼床人" prop="otherSleepUser">
|
||||||
<template scope="{row}">
|
<template scope="{row}">
|
||||||
{{ row.bedInfo?.otherSleepUser ?
|
{{ row.bedInfo.otherSleepUser ?
|
||||||
row.bedInfo?.otherSleepUser : '暂无' }}
|
row.bedInfo.otherSleepUser : '暂无' }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="关系" prop="relation"></el-table-column>
|
<el-table-column label="关系" prop="relation"></el-table-column>
|
||||||
@@ -844,7 +814,7 @@ layout("/layouts/platform.html"){
|
|||||||
</template>
|
</template>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item prop="travelName" label="旅行社" v-if="pageForm.state==='2'">
|
<!--<el-form-item prop="travelName" label="旅行社">
|
||||||
<el-select v-model="editFormData.agencyId" filterable clearable
|
<el-select v-model="editFormData.agencyId" filterable clearable
|
||||||
placeholder="请选择旅行社"
|
placeholder="请选择旅行社"
|
||||||
|
|
||||||
@@ -855,8 +825,8 @@ layout("/layouts/platform.html"){
|
|||||||
:value="item.id">
|
:value="item.id">
|
||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>-->
|
||||||
<el-form-item prop="travelLine" :label="lineLabelName" v-if="pageForm.state==='1'">
|
<el-form-item prop="travelLine" :label="lineLabelName">
|
||||||
<el-select v-model="editFormData.takePartInLineId" filterable clearable
|
<el-select v-model="editFormData.takePartInLineId" filterable clearable
|
||||||
placeholder="请选择线路"
|
placeholder="请选择线路"
|
||||||
@change="validateLine"
|
@change="validateLine"
|
||||||
@@ -901,7 +871,7 @@ layout("/layouts/platform.html"){
|
|||||||
options2: [
|
options2: [
|
||||||
{label: "本工会人员(自己线路)", value: "1"},
|
{label: "本工会人员(自己线路)", value: "1"},
|
||||||
{label: "本工会人员(其他路线)", value: "2"},
|
{label: "本工会人员(其他路线)", value: "2"},
|
||||||
{label: "其他工会人员(选我线路)", value: "3"},
|
// {label: "其他工会人员(选我线路)", value: "3"},
|
||||||
{label: "选择校工会线路人员", value: "4"}
|
{label: "选择校工会线路人员", value: "4"}
|
||||||
],
|
],
|
||||||
jdList: [],
|
jdList: [],
|
||||||
@@ -957,14 +927,13 @@ layout("/layouts/platform.html"){
|
|||||||
],
|
],
|
||||||
options: [
|
options: [
|
||||||
{label: "线路", value: "1"},
|
{label: "线路", value: "1"},
|
||||||
{label: "旅行社", value: "2"},
|
// {label: "旅行社", value: "2"},
|
||||||
// {label: "酒店", value: "3"},
|
{label: "酒店", value: "3"},
|
||||||
],
|
],
|
||||||
unionDisabled: false,
|
unionDisabled: false,
|
||||||
unitDisabled: false,
|
unitDisabled: false,
|
||||||
modifyConfig: {},
|
modifyConfig: {},
|
||||||
multipleSelection: [],
|
multipleSelection: [],
|
||||||
linePlayTimes: [],
|
|
||||||
multipleSelection2: [],
|
multipleSelection2: [],
|
||||||
//人员导入
|
//人员导入
|
||||||
importVisible: false,
|
importVisible: false,
|
||||||
@@ -995,82 +964,6 @@ layout("/layouts/platform.html"){
|
|||||||
'line-info': httpVueLoader('/components/theRapyRecuperation/LineInfo.vue')
|
'line-info': httpVueLoader('/components/theRapyRecuperation/LineInfo.vue')
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
doModify(row){
|
|
||||||
this.$confirm("您确定要调整【<span style='color: red'>" + row.userName + "</span>】的此条报名信息吗?", '提示', {
|
|
||||||
confirmButtonText: '确定',
|
|
||||||
cancelButtonText: '取消',
|
|
||||||
dangerouslyUseHTMLString: true,
|
|
||||||
type: 'warning',
|
|
||||||
callback: async (a, b) => {
|
|
||||||
if ("confirm" === a) {//确认后再执行
|
|
||||||
const resp = await $.post('/platform/theRapyRecuperation/line/enroll/doModify/' + row.id)
|
|
||||||
if (resp.code === 0) {
|
|
||||||
await this.doSearch()
|
|
||||||
this.$message.success('调整成功')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
async doReimbursement(){
|
|
||||||
if (this.multipleSelection && this.multipleSelection.length > 0){
|
|
||||||
const enrollIds = this.multipleSelection.filter(v=>v.isTakePartIn).map(v=>v.id)
|
|
||||||
|
|
||||||
let msg = ''
|
|
||||||
if(enrollIds.length == this.multipleSelection.length){
|
|
||||||
msg='您确定要将勾选的报名信息设为已报销吗?'
|
|
||||||
} else {
|
|
||||||
msg='已为您忽略未参加的教工信息,您确定要将忽略后的数据设为已报销吗?'
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!enrollIds || enrollIds.length == 0){
|
|
||||||
this.$message.warning('暂无已参加的老师,不能报销')
|
|
||||||
this.$refs.table.clearSelection();
|
|
||||||
return
|
|
||||||
}
|
|
||||||
console.log(enrollIds)
|
|
||||||
this.$confirm(msg, '提示', {
|
|
||||||
confirmButtonText: '确定',
|
|
||||||
cancelButtonText: '取消',
|
|
||||||
dangerouslyUseHTMLString: true,
|
|
||||||
type: 'warning',
|
|
||||||
callback: async (a, b) => {
|
|
||||||
debugger
|
|
||||||
if ("confirm" === a) {//确认后再执行
|
|
||||||
const resp = await $.post('/platform/theRapyRecuperation/user/query/doReimbursement',{data:JSON.stringify(enrollIds)})
|
|
||||||
if (resp.code === 0) {
|
|
||||||
await this.doSearch()
|
|
||||||
this.$refs.table.clearSelection();
|
|
||||||
if (enrollIds.length == this.multipleSelection.length){
|
|
||||||
this.$message.success('操作成功')
|
|
||||||
} else {
|
|
||||||
this.$message.success('操作成功,已为您过滤未参加人员')
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
this.$message.warning('操作失败')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
this.$message.warning('请勾选需要报销的报名信息')
|
|
||||||
}
|
|
||||||
},
|
|
||||||
async lineChange(val) {
|
|
||||||
this.pageForm.selectId = '';
|
|
||||||
const data = this.takePartInLines.find(v => v.id === val)
|
|
||||||
if (!data) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
const resp = await $.get('/platform/theRapyRecuperation/TheRapyXghAudit/getLinePlayTimeByLineId', {
|
|
||||||
lineId: data.id,
|
|
||||||
year: this.pageForm.year,
|
|
||||||
signUpMode: 1,
|
|
||||||
})
|
|
||||||
if (resp.code === 0) {
|
|
||||||
this.linePlayTimes = resp.data
|
|
||||||
}
|
|
||||||
},
|
|
||||||
async validateLine() {
|
async validateLine() {
|
||||||
const resp = await $.post('/platform/theRapyRecuperation/line/enroll/validSignUpInfo'
|
const resp = await $.post('/platform/theRapyRecuperation/line/enroll/validSignUpInfo'
|
||||||
, {enroll: JSON.stringify(this.editFormData)})
|
, {enroll: JSON.stringify(this.editFormData)})
|
||||||
@@ -1099,12 +992,6 @@ layout("/layouts/platform.html"){
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
async doSearch() {
|
|
||||||
this.pageForm.pageNumber = 1;
|
|
||||||
this.pageData();
|
|
||||||
await this.getApplyNumAudit()
|
|
||||||
await this.getXlByUnion()
|
|
||||||
},
|
|
||||||
async doEdit() {
|
async doEdit() {
|
||||||
this.$refs['editForm'].validate().then(async () => {
|
this.$refs['editForm'].validate().then(async () => {
|
||||||
const confirm = await this.$confirm('您确定要修改这位老师的报名信息吗?', '提示', {
|
const confirm = await this.$confirm('您确定要修改这位老师的报名信息吗?', '提示', {
|
||||||
@@ -1284,61 +1171,26 @@ layout("/layouts/platform.html"){
|
|||||||
},
|
},
|
||||||
doExport() {
|
doExport() {
|
||||||
const {
|
const {
|
||||||
searchName,
|
|
||||||
year,
|
year,
|
||||||
|
searchName,
|
||||||
searchKeyword,
|
searchKeyword,
|
||||||
unionId,
|
unionId,
|
||||||
|
unitId,
|
||||||
agencyId,
|
agencyId,
|
||||||
specificTime,
|
|
||||||
takePartInLineId,
|
takePartInLineId,
|
||||||
state,
|
state,
|
||||||
lotId,
|
lotId,
|
||||||
linePlayTime,
|
|
||||||
} = this.pageForm
|
} = this.pageForm
|
||||||
let types = this.pageForm.state == 1 ? JSON.stringify(['line']) : JSON.stringify(['travel'])
|
window.open(loc() + "/doExport?year=" + year +
|
||||||
window.open("/platform/theRapyRecuperation/user/query/doExport?" +
|
"&searchName=" + searchName +
|
||||||
"searchName=" + searchName +
|
"&searchKeyword" + searchKeyword +
|
||||||
"&searchKeyword=" + searchKeyword +
|
|
||||||
"&startYear=" + year +
|
|
||||||
"&endYear=" + year +
|
|
||||||
"&unionId=" + unionId +
|
"&unionId=" + unionId +
|
||||||
|
"&unitId=" + unitId +
|
||||||
"&agencyId=" + agencyId +
|
"&agencyId=" + agencyId +
|
||||||
"&specificTime=" + specificTime +
|
|
||||||
"&takePartInLineId=" + takePartInLineId +
|
"&takePartInLineId=" + takePartInLineId +
|
||||||
"&state=" + state +
|
"&state=" + state +
|
||||||
"&lotId=" + lotId +
|
"&lotId=" + lotId)
|
||||||
"&satisfyPeople=false" +
|
|
||||||
"&types=" + types +
|
|
||||||
"&linePlayTime=" + linePlayTime)
|
|
||||||
},
|
|
||||||
doExportExcel() {
|
|
||||||
const {
|
|
||||||
searchName,
|
|
||||||
year,
|
|
||||||
searchKeyword,
|
|
||||||
unionId,
|
|
||||||
agencyId,
|
|
||||||
specificTime,
|
|
||||||
takePartInLineId,
|
|
||||||
state,
|
|
||||||
lotId,
|
|
||||||
linePlayTime,
|
|
||||||
} = this.pageForm
|
|
||||||
let types = this.pageForm.state == 1 ? JSON.stringify(['line']) : JSON.stringify(['travel'])
|
|
||||||
window.open("/platform/theRapyRecuperation/user/query/doExportExcel?" +
|
|
||||||
"searchName=" + searchName +
|
|
||||||
"&searchKeyword=" + searchKeyword +
|
|
||||||
"&startYear=" + year +
|
|
||||||
"&endYear=" + year +
|
|
||||||
"&unionId=" + unionId +
|
|
||||||
"&agencyId=" + agencyId +
|
|
||||||
"&specificTime=" + specificTime +
|
|
||||||
"&takePartInLineId=" + takePartInLineId +
|
|
||||||
"&state=" + state +
|
|
||||||
"&lotId=" + lotId +
|
|
||||||
"&satisfyPeople=false" +
|
|
||||||
"&types=" + types +
|
|
||||||
"&linePlayTime=" + linePlayTime)
|
|
||||||
},
|
},
|
||||||
pageSizeChange(val) {
|
pageSizeChange(val) {
|
||||||
this.pageForm.pageNumber = val;
|
this.pageForm.pageNumber = val;
|
||||||
@@ -1380,9 +1232,10 @@ layout("/layouts/platform.html"){
|
|||||||
|
|
||||||
},
|
},
|
||||||
async openApplyUser(row) {
|
async openApplyUser(row) {
|
||||||
|
debugger
|
||||||
sublime.showLoadingbar();
|
sublime.showLoadingbar();
|
||||||
const pageForm = clone(this.pageFormUser)
|
const pageForm = clone(this.pageFormUser)
|
||||||
pageForm.id = row.id
|
pageForm.id = this.pageForm.state === '1' ? row.selectId : row.id
|
||||||
pageForm.unionId = this.unionId
|
pageForm.unionId = this.unionId
|
||||||
let url = this.pageForm.state === '1' ? '/platform/theRapyRecuperation/line/selectLineUser' : '/platform/theRapyRecuperation/query/selectAgencyUser'
|
let url = this.pageForm.state === '1' ? '/platform/theRapyRecuperation/line/selectLineUser' : '/platform/theRapyRecuperation/query/selectAgencyUser'
|
||||||
$.post(url, pageForm, (data) => {
|
$.post(url, pageForm, (data) => {
|
||||||
@@ -1449,13 +1302,11 @@ layout("/layouts/platform.html"){
|
|||||||
{prop: 'userName', label: '姓名'},
|
{prop: 'userName', label: '姓名'},
|
||||||
{prop: 'unitName', label: '单位', sortable: true},
|
{prop: 'unitName', label: '单位', sortable: true},
|
||||||
{prop: 'unionName', label: '工会', sortable: true},
|
{prop: 'unionName', label: '工会', sortable: true},
|
||||||
{prop: 'lineOrMaName', label: '线路/旅行社', sortable: true},
|
{prop: 'lineOrMaName', label: '线路/酒店', sortable: true},
|
||||||
//{prop: 'travelAgencyName', label: '旅行社', sortable: true},
|
|
||||||
{prop: 'times', label: '出行时间'},
|
{prop: 'times', label: '出行时间'},
|
||||||
{prop: 'regionalNature', label: '线路类型', sortable: true},
|
{prop: 'regionalNature', label: '线路类型', sortable: true},
|
||||||
{prop: 'isFamily', label: '是否携带家属'},
|
{prop: 'isFamily', label: '是否携带家属'},
|
||||||
{prop: 'isTakePartIn', label: '是否参加'},
|
{prop: 'isTakePartIn', label: '是否参加'},
|
||||||
//{prop: 'reimbursementStatus', label: '是否报销'},
|
|
||||||
// {prop: 'stateId', label: '审核状态'},
|
// {prop: 'stateId', label: '审核状态'},
|
||||||
]
|
]
|
||||||
this.getSelfUnionUser()
|
this.getSelfUnionUser()
|
||||||
@@ -1478,11 +1329,11 @@ layout("/layouts/platform.html"){
|
|||||||
this.tableColumns = [
|
this.tableColumns = [
|
||||||
{label: '年度', prop: 'year'},
|
{label: '年度', prop: 'year'},
|
||||||
{label: '旅行社名称', prop: 'travelAgencyName', sortable: true},
|
{label: '旅行社名称', prop: 'travelAgencyName', sortable: true},
|
||||||
//{label: '旅行社编号', prop: 'serialNumber', sortable: true},
|
{label: '旅行社编号', prop: 'serialNumber', sortable: true},
|
||||||
{label: '联系人', prop: 'contact'},
|
{label: '联系人', prop: 'contact'},
|
||||||
{label: '联系人手机', prop: 'contactMobileNumber'},
|
{label: '联系人手机', prop: 'contactMobileNumber'},
|
||||||
{label: '邮箱', prop: 'email'},
|
{label: '邮箱', prop: 'email'},
|
||||||
//{label: '官网', prop: 'officialWebsite'},
|
{label: '官网', prop: 'officialWebsite'},
|
||||||
{label: '报名人数', prop: 'agencyNum', sortable: true},
|
{label: '报名人数', prop: 'agencyNum', sortable: true},
|
||||||
]
|
]
|
||||||
this.getLxsData()
|
this.getLxsData()
|
||||||
@@ -1491,7 +1342,7 @@ layout("/layouts/platform.html"){
|
|||||||
this.tableColumns = [
|
this.tableColumns = [
|
||||||
{label: '年度', prop: 'year'},
|
{label: '年度', prop: 'year'},
|
||||||
{label: '酒店名称', prop: 'baseName', sortable: true},
|
{label: '酒店名称', prop: 'baseName', sortable: true},
|
||||||
//{label: '酒店编号', prop: 'serialNumber', sortable: true},
|
// {label: '酒店编号', prop: 'serialNumber', sortable: true},
|
||||||
{label: '联系人', prop: 'baseContactPerson'},
|
{label: '联系人', prop: 'baseContactPerson'},
|
||||||
{label: '联系人手机', prop: 'baseContactNumber'},
|
{label: '联系人手机', prop: 'baseContactNumber'},
|
||||||
{label: '承担旅行社', prop: 'travelAgencyName', sortable: true},
|
{label: '承担旅行社', prop: 'travelAgencyName', sortable: true},
|
||||||
@@ -1502,33 +1353,17 @@ layout("/layouts/platform.html"){
|
|||||||
this.getJdData()
|
this.getJdData()
|
||||||
await this.getJdList()
|
await this.getJdList()
|
||||||
} else {
|
} else {
|
||||||
if(this.pageForm.state == '2') {
|
this.tableColumns = [
|
||||||
this.tableColumns = [
|
{prop: 'loginName', label: '一卡通号'},
|
||||||
{prop: 'loginName', label: '一卡通号'},
|
{prop: 'userName', label: '姓名'},
|
||||||
{prop: 'userName', label: '姓名'},
|
{prop: 'unitName', label: '单位', sortable: true},
|
||||||
{prop: 'unitName', label: '单位', sortable: true},
|
{prop: 'unionName', label: '工会', sortable: true},
|
||||||
{prop: 'unionName', label: '工会', sortable: true},
|
{prop: 'lineOrMaName', label: '线路/酒店'},
|
||||||
{prop: 'travelAgencyName', label: '旅行社'},
|
{prop: 'times', label: '出行时间'},
|
||||||
{prop: 'isFamily', label: '是否携带家属'},
|
{prop: 'isFamily', label: '是否携带家属'},
|
||||||
{prop: 'isTakePartIn', label: '是否参加'},
|
{prop: 'isTakePartIn', label: '是否参加'},
|
||||||
{prop: 'reimbursementStatus', label: '是否报销'},
|
// {prop: 'stateId', label: '审核状态'},
|
||||||
//{prop: 'stateId', label: '审核状态'},
|
]
|
||||||
]
|
|
||||||
} else {
|
|
||||||
this.tableColumns = [
|
|
||||||
{prop: 'loginName', label: '一卡通号'},
|
|
||||||
{prop: 'userName', label: '姓名'},
|
|
||||||
{prop: 'unitName', label: '单位', sortable: true},
|
|
||||||
{prop: 'unionName', label: '工会', sortable: true},
|
|
||||||
{prop: 'lineOrMaName', label: '线路/酒店'},
|
|
||||||
{prop: 'times', label: '出行时间'},
|
|
||||||
{prop: 'isFamily', label: '是否携带家属'},
|
|
||||||
{prop: 'isTakePartIn', label: '是否参加'},
|
|
||||||
//{prop: 'reimbursementStatus', label: '是否报销'},
|
|
||||||
//{prop: 'stateId', label: '审核状态'},
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
await this.getRyData()
|
await this.getRyData()
|
||||||
}
|
}
|
||||||
await this.getApplyNum()
|
await this.getApplyNum()
|
||||||
@@ -1550,6 +1385,11 @@ layout("/layouts/platform.html"){
|
|||||||
year: this.pageForm.year,
|
year: this.pageForm.year,
|
||||||
state: this.pageForm.state2
|
state: this.pageForm.state2
|
||||||
})
|
})
|
||||||
|
data.forEach(v => {
|
||||||
|
if (!v.unionname) {
|
||||||
|
v.unionname = '校工会'
|
||||||
|
}
|
||||||
|
})
|
||||||
this.takePartInLines = data
|
this.takePartInLines = data
|
||||||
},
|
},
|
||||||
async getAgencyList() {
|
async getAgencyList() {
|
||||||
@@ -1637,8 +1477,7 @@ layout("/layouts/platform.html"){
|
|||||||
state2: this.pageForm.state2,
|
state2: this.pageForm.state2,
|
||||||
regionalNature: this.pageForm.regionalNature,
|
regionalNature: this.pageForm.regionalNature,
|
||||||
takePartInLineId: this.pageForm.takePartInLineId,
|
takePartInLineId: this.pageForm.takePartInLineId,
|
||||||
year: this.pageForm.year,
|
year: this.pageForm.year
|
||||||
selectId: this.pageForm.selectId
|
|
||||||
})
|
})
|
||||||
this.applyNum = data
|
this.applyNum = data
|
||||||
},
|
},
|
||||||
@@ -1651,9 +1490,10 @@ layout("/layouts/platform.html"){
|
|||||||
this.options2 = [
|
this.options2 = [
|
||||||
{label: "本工会人员(自己线路)" + data.count1 + "人", value: "1"},
|
{label: "本工会人员(自己线路)" + data.count1 + "人", value: "1"},
|
||||||
{label: "本工会人员(其他路线)" + data.count2 + "人", value: "2"},
|
{label: "本工会人员(其他路线)" + data.count2 + "人", value: "2"},
|
||||||
{label: "其他工会人员(选我线路)" + data.count3 + "人", value: "3"},
|
// {label: "其他工会人员(选我线路)" + data.count3 + "人", value: "3"},
|
||||||
{label: "选择校工会线路人员" + data.count4 + "人", value: "4"}
|
{label: "选择校工会线路人员" + data.count4 + "人", value: "4"}
|
||||||
]
|
]
|
||||||
|
|
||||||
},
|
},
|
||||||
async getModifyConfig() {
|
async getModifyConfig() {
|
||||||
const res = await $.post('/platform/theRapyRecuperation/TheRapyConfig/findOne')
|
const res = await $.post('/platform/theRapyRecuperation/TheRapyConfig/findOne')
|
||||||
@@ -1707,7 +1547,7 @@ layout("/layouts/platform.html"){
|
|||||||
this.signUpModeList = await getEnumOptions('TheRapyRecuperationSignUpMode')
|
this.signUpModeList = await getEnumOptions('TheRapyRecuperationSignUpMode')
|
||||||
this.unionOptions = await getUnions()
|
this.unionOptions = await getUnions()
|
||||||
await this.getApplyNumAudit()
|
await this.getApplyNumAudit()
|
||||||
if ("${@shiro.hasRole('H04')}" === 'true' && "${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}" === 'false') {
|
if ("${@shiro.hasRole('H04')}" === 'true' && "${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionAdmin')}" === 'false') {
|
||||||
await this.getBmUserUnion()
|
await this.getBmUserUnion()
|
||||||
if (this.unionOptions && this.unionOptions.length > 0) {
|
if (this.unionOptions && this.unionOptions.length > 0) {
|
||||||
const union = this.unionOptions.find(v => v.id === this.unionId)
|
const union = this.unionOptions.find(v => v.id === this.unionId)
|
||||||
|
|||||||
+30
-142
@@ -47,7 +47,7 @@ layout("/layouts/platform.html"){
|
|||||||
type="year"
|
type="year"
|
||||||
value-format="yyyy"
|
value-format="yyyy"
|
||||||
placeholder="选择年"
|
placeholder="选择年"
|
||||||
style="width: 38%" @change="getUnionSelectLine(); doSearch()">
|
style="width: 38%" @change="doSearch">
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
<span>至</span>
|
<span>至</span>
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
@@ -56,7 +56,7 @@ layout("/layouts/platform.html"){
|
|||||||
type="year"
|
type="year"
|
||||||
value-format="yyyy"
|
value-format="yyyy"
|
||||||
placeholder="选择年"
|
placeholder="选择年"
|
||||||
style="width: 38%" @change="getUnionSelectLine(); doSearch()">
|
style="width: 38%" @change="doSearch">
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
@@ -217,23 +217,18 @@ layout("/layouts/platform.html"){
|
|||||||
|
|
||||||
<table-tool label="人员列表" :app="this">
|
<table-tool label="人员列表" :app="this">
|
||||||
<template #func>
|
<template #func>
|
||||||
<el-button icon="el-icon-s-promotion" size="small" type="primary"
|
<el-button icon="el-icon-s-promotion" size="medium" type="primary"
|
||||||
@click="doExport"
|
@click="doExport"
|
||||||
v-if="pageForm.state">导出
|
class="mr10" v-if="pageForm.state">导出
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button @click="openImport" size="small" type="primary">参加人员导入
|
<el-button style="margin-right: 10px" @click="openImport" size="medium" type="primary">参加人员导入
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button icon="el-icon-s-promotion" size="small" type="primary"
|
<el-button icon="el-icon-s-promotion" size="medium" type="primary"
|
||||||
@click="userDrawer = true"
|
@click="userDrawer = true"
|
||||||
:disabled="multipleSelection.length==0"
|
:disabled="multipleSelection.length==0"
|
||||||
class="mr5">设置参加人员
|
class="mr10">设置参加人员
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button size="small" type="primary"
|
<el-radio-group @change="doSearch()" size="medium"
|
||||||
@click="doReimbursement"
|
|
||||||
:disabled="multipleSelection.length==0"
|
|
||||||
class="mr10">一键报销
|
|
||||||
</el-button>
|
|
||||||
<el-radio-group @change="doSearch()" size="small"
|
|
||||||
v-model="pageForm.regionalNature"
|
v-model="pageForm.regionalNature"
|
||||||
v-if="pageForm.state=='1'">
|
v-if="pageForm.state=='1'">
|
||||||
<el-radio-button label="">全部</el-radio-button>
|
<el-radio-button label="">全部</el-radio-button>
|
||||||
@@ -273,7 +268,7 @@ layout("/layouts/platform.html"){
|
|||||||
</el-link>-->
|
</el-link>-->
|
||||||
</template>
|
</template>
|
||||||
<template scope="{row}" v-else-if="column.prop=='isFamily'">
|
<template scope="{row}" v-else-if="column.prop=='isFamily'">
|
||||||
<el-link v-if="!row.familyNumber" type="primary" @click="openView(row)">
|
<el-link v-if="!row.familyNumber" type="primary" @click="openUser(row)">
|
||||||
{{row.isFamily?'携带':'未携带'}}({{row.isFamily}})
|
{{row.isFamily?'携带':'未携带'}}({{row.isFamily}})
|
||||||
</el-link>
|
</el-link>
|
||||||
<el-link v-else type="primary">
|
<el-link v-else type="primary">
|
||||||
@@ -294,18 +289,11 @@ layout("/layouts/platform.html"){
|
|||||||
<el-button @click="openView(row)" size="mini" type="primary">查看
|
<el-button @click="openView(row)" size="mini" type="primary">查看
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}"
|
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionAdmin')}"
|
||||||
@click="openEdit(row)" size="mini" type="primary">编辑
|
@click="openEdit(row)" size="mini" type="primary">编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-dropdown class="ml10 mr10" trigger="click">
|
<el-button @click="doDelete(row)" size="mini" type="danger">删除
|
||||||
<el-button size="mini" type="primary">
|
</el-button>
|
||||||
调整<i class="el-icon-arrow-down el-icon--right"></i>
|
|
||||||
</el-button>
|
|
||||||
<el-dropdown-menu slot="dropdown">
|
|
||||||
<el-dropdown-item @click.native="doModify(row)">保留报名记录</el-dropdown-item>
|
|
||||||
<el-dropdown-item @click.native="doDelete(row)">删除报名记录</el-dropdown-item>
|
|
||||||
</el-dropdown-menu>
|
|
||||||
</el-dropdown>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@@ -313,6 +301,7 @@ layout("/layouts/platform.html"){
|
|||||||
|
|
||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
<template #view>
|
<template #view>
|
||||||
<enroll-info ref="viewEnrollInfo"></enroll-info>
|
<enroll-info ref="viewEnrollInfo"></enroll-info>
|
||||||
@@ -321,6 +310,7 @@ layout("/layouts/platform.html"){
|
|||||||
<line-info ref="viewLineInfo"></line-info>
|
<line-info ref="viewLineInfo"></line-info>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
||||||
<el-drawer
|
<el-drawer
|
||||||
size="70%"
|
size="70%"
|
||||||
title="批量设置参加人员"
|
title="批量设置参加人员"
|
||||||
@@ -383,6 +373,7 @@ layout("/layouts/platform.html"){
|
|||||||
</span>
|
</span>
|
||||||
</el-drawer>
|
</el-drawer>
|
||||||
|
|
||||||
|
|
||||||
<el-dialog
|
<el-dialog
|
||||||
title="参加人员导入"
|
title="参加人员导入"
|
||||||
:visible.sync="importVisible"
|
:visible.sync="importVisible"
|
||||||
@@ -431,6 +422,7 @@ layout("/layouts/platform.html"){
|
|||||||
</span>
|
</span>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
|
|
||||||
<el-dialog
|
<el-dialog
|
||||||
title="修改信息"
|
title="修改信息"
|
||||||
:visible.sync="editVisible"
|
:visible.sync="editVisible"
|
||||||
@@ -484,22 +476,22 @@ layout("/layouts/platform.html"){
|
|||||||
<el-table :data="editFormData.companionList">
|
<el-table :data="editFormData.companionList">
|
||||||
<el-table-column label="姓名" prop="userName"></el-table-column>
|
<el-table-column label="姓名" prop="userName"></el-table-column>
|
||||||
<el-table-column label="性别" prop="sex"></el-table-column>
|
<el-table-column label="性别" prop="sex"></el-table-column>
|
||||||
<el-table-column label="身份证号" prop="idCard" show-overflow-tooltip></el-table-column>
|
<el-table-column label="身份证号" prop="idCard"></el-table-column>
|
||||||
<el-table-column label="年龄" prop="age"></el-table-column>
|
<el-table-column label="年龄" prop="age"></el-table-column>
|
||||||
<el-table-column label="床型" prop="bedType">
|
<el-table-column label="床型" prop="bedType">
|
||||||
<template scope="{row}">
|
<template scope="{row}">
|
||||||
{{ row.bedInfo?.bedType }}
|
{{ row.bedInfo.bedType }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="床位" prop="bedNum">
|
<el-table-column label="床位" prop="bedNum">
|
||||||
<template scope="{row}">
|
<template scope="{row}">
|
||||||
{{ row.bedInfo?.bedNum }}
|
{{ row.bedInfo.bedNum }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="意向拼床人" prop="otherSleepUser">
|
<el-table-column label="意向拼床人" prop="otherSleepUser">
|
||||||
<template scope="{row}">
|
<template scope="{row}">
|
||||||
{{ row.bedInfo?.otherSleepUser ?
|
{{ row.bedInfo.otherSleepUser ?
|
||||||
row.bedInfo?.otherSleepUser : '暂无' }}
|
row.bedInfo.otherSleepUser : '暂无' }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="关系" prop="relation"></el-table-column>
|
<el-table-column label="关系" prop="relation"></el-table-column>
|
||||||
@@ -586,8 +578,8 @@ layout("/layouts/platform.html"){
|
|||||||
|
|
||||||
options: [
|
options: [
|
||||||
{label: "线路", value: "1"},
|
{label: "线路", value: "1"},
|
||||||
{label: "旅行社", value: "2"},
|
// {label: "旅行社", value: "2"},
|
||||||
// {label: "酒店", value: "3"},
|
{label: "酒店", value: "3"},
|
||||||
],
|
],
|
||||||
agencyLists: [],
|
agencyLists: [],
|
||||||
unionOptions: [],
|
unionOptions: [],
|
||||||
@@ -606,7 +598,6 @@ layout("/layouts/platform.html"){
|
|||||||
{prop: 'isFamily', label: '是否携带家属'},
|
{prop: 'isFamily', label: '是否携带家属'},
|
||||||
{prop: 'signingUptime', label: '报名时间', checked: 0},
|
{prop: 'signingUptime', label: '报名时间', checked: 0},
|
||||||
{prop: 'isTakePartIn', label: '是否参加'},
|
{prop: 'isTakePartIn', label: '是否参加'},
|
||||||
{prop: 'reimbursementStatus', label: '是否报销'},
|
|
||||||
{prop: 'takePartInTime', label: '参加时间', checked: 0},
|
{prop: 'takePartInTime', label: '参加时间', checked: 0},
|
||||||
],
|
],
|
||||||
pageForm: {
|
pageForm: {
|
||||||
@@ -618,8 +609,8 @@ layout("/layouts/platform.html"){
|
|||||||
state: '1',
|
state: '1',
|
||||||
regionalNature: '',
|
regionalNature: '',
|
||||||
signUpMode: '',
|
signUpMode: '',
|
||||||
lotId: '',
|
lotId:'',
|
||||||
takePartInLineId: '',
|
takePartInLineId:'',
|
||||||
},
|
},
|
||||||
multipleSelection: [],
|
multipleSelection: [],
|
||||||
multipleSelection2: [],
|
multipleSelection2: [],
|
||||||
@@ -648,10 +639,7 @@ layout("/layouts/platform.html"){
|
|||||||
labelName: '',
|
labelName: '',
|
||||||
unionSelectLines: [],
|
unionSelectLines: [],
|
||||||
lineLabelName: '',
|
lineLabelName: '',
|
||||||
activeNames: [],
|
activeNames:[]
|
||||||
|
|
||||||
title:'',
|
|
||||||
dialogVisible:false,
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
@@ -659,67 +647,6 @@ layout("/layouts/platform.html"){
|
|||||||
'line-info': httpVueLoader('/components/theRapyRecuperation/LineInfo.vue')
|
'line-info': httpVueLoader('/components/theRapyRecuperation/LineInfo.vue')
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
async doReimbursement(){
|
|
||||||
if (this.multipleSelection && this.multipleSelection.length > 0){
|
|
||||||
const enrollIds = this.multipleSelection.filter(v=>v.isTakePartIn).map(v=>v.id)
|
|
||||||
|
|
||||||
let msg = ''
|
|
||||||
if(enrollIds.length == this.multipleSelection.length){
|
|
||||||
msg='您确定要将勾选的报名信息设为已报销吗?'
|
|
||||||
} else {
|
|
||||||
msg='已为您忽略未参加的教工信息,您确定要将忽略后的数据设为已报销吗?'
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!enrollIds || enrollIds.length == 0){
|
|
||||||
this.$message.warning('暂无已参加的老师,不能报销')
|
|
||||||
this.$refs.table.clearSelection();
|
|
||||||
return
|
|
||||||
}
|
|
||||||
console.log(enrollIds)
|
|
||||||
this.$confirm(msg, '提示', {
|
|
||||||
confirmButtonText: '确定',
|
|
||||||
cancelButtonText: '取消',
|
|
||||||
dangerouslyUseHTMLString: true,
|
|
||||||
type: 'warning',
|
|
||||||
callback: async (a, b) => {
|
|
||||||
debugger
|
|
||||||
if ("confirm" === a) {//确认后再执行
|
|
||||||
const resp = await $.post(loc() + '/doReimbursement',{data:JSON.stringify(enrollIds)})
|
|
||||||
if (resp.code === 0) {
|
|
||||||
await this.doSearch()
|
|
||||||
this.$refs.table.clearSelection();
|
|
||||||
if (enrollIds.length == this.multipleSelection.length){
|
|
||||||
this.$message.success('操作成功')
|
|
||||||
} else {
|
|
||||||
this.$message.success('操作成功,已为您过滤未参加人员')
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
this.$message.warning('操作失败')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
this.$message.warning('请勾选需要报销的报名信息')
|
|
||||||
}
|
|
||||||
},
|
|
||||||
doModify(row){
|
|
||||||
this.$confirm("您确定要调整【<span style='color: red'>" + row.userName + "</span>】的此条报名信息吗?", '提示', {
|
|
||||||
confirmButtonText: '确定',
|
|
||||||
cancelButtonText: '取消',
|
|
||||||
dangerouslyUseHTMLString: true,
|
|
||||||
type: 'warning',
|
|
||||||
callback: async (a, b) => {
|
|
||||||
if ("confirm" === a) {//确认后再执行
|
|
||||||
const resp = await $.post('/platform/theRapyRecuperation/line/enroll/doModify/' + row.id)
|
|
||||||
if (resp.code === 0) {
|
|
||||||
await this.doSearch()
|
|
||||||
this.$message.success('调整成功')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
doExport() {
|
doExport() {
|
||||||
const {
|
const {
|
||||||
takePartInBaseManagementId,
|
takePartInBaseManagementId,
|
||||||
@@ -736,7 +663,6 @@ layout("/layouts/platform.html"){
|
|||||||
lotId,
|
lotId,
|
||||||
linePlayTime,
|
linePlayTime,
|
||||||
} = this.pageForm
|
} = this.pageForm
|
||||||
let types = this.pageForm.state == 1 ? JSON.stringify(['line']) : JSON.stringify(['travel'])
|
|
||||||
window.open(loc() + "/doExport?takePartInBaseManagementId=" + takePartInBaseManagementId +
|
window.open(loc() + "/doExport?takePartInBaseManagementId=" + takePartInBaseManagementId +
|
||||||
"&searchName=" + searchName +
|
"&searchName=" + searchName +
|
||||||
"&searchKeyword=" + searchKeyword +
|
"&searchKeyword=" + searchKeyword +
|
||||||
@@ -749,9 +675,8 @@ layout("/layouts/platform.html"){
|
|||||||
"&takePartInLineId=" + takePartInLineId +
|
"&takePartInLineId=" + takePartInLineId +
|
||||||
"&state=" + state +
|
"&state=" + state +
|
||||||
"&lotId=" + lotId +
|
"&lotId=" + lotId +
|
||||||
"&satisfyPeople=false" +
|
|
||||||
"&types=" + types +
|
|
||||||
"&linePlayTime=" + linePlayTime)
|
"&linePlayTime=" + linePlayTime)
|
||||||
|
|
||||||
},
|
},
|
||||||
async validateLine() {
|
async validateLine() {
|
||||||
const resp = await $.post('/platform/theRapyRecuperation/line/enroll/validSignUpInfo'
|
const resp = await $.post('/platform/theRapyRecuperation/line/enroll/validSignUpInfo'
|
||||||
@@ -785,7 +710,6 @@ layout("/layouts/platform.html"){
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
async openEdit(row) {
|
async openEdit(row) {
|
||||||
this.getUnionSelectLine(row.takePartInLineId)
|
|
||||||
this.editFormData = {};
|
this.editFormData = {};
|
||||||
const resp = await $.get("/platform/theRapyRecuperation/TheRapyAudit/findOne", {id: row.id})
|
const resp = await $.get("/platform/theRapyRecuperation/TheRapyAudit/findOne", {id: row.id})
|
||||||
if (resp.code === 0) {
|
if (resp.code === 0) {
|
||||||
@@ -940,38 +864,6 @@ layout("/layouts/platform.html"){
|
|||||||
this.pageData()
|
this.pageData()
|
||||||
await this.getXlLxsUserCount()
|
await this.getXlLxsUserCount()
|
||||||
this.takePartInLines = await this.getXlByUnion()
|
this.takePartInLines = await this.getXlByUnion()
|
||||||
|
|
||||||
if (this.pageForm.state == '2') {
|
|
||||||
this.tableColumns = [
|
|
||||||
{prop: 'loginName', label: '一卡通号'},
|
|
||||||
{prop: 'userName', label: '姓名'},
|
|
||||||
{prop: 'unitName', label: '单位', sortable: true},
|
|
||||||
{prop: 'unionName', label: '工会', sortable: true},
|
|
||||||
{prop: 'travelAgencyName', label: '旅行社'},
|
|
||||||
{prop: 'isFamily', label: '是否携带家属'},
|
|
||||||
{prop: 'signingUptime', label: '报名时间', checked: 0},
|
|
||||||
{prop: 'isTakePartIn', label: '是否参加'},
|
|
||||||
{prop: 'reimbursementStatus', label: '是否报销'},
|
|
||||||
{prop: 'takePartInTime', label: '参加时间', checked: 0},
|
|
||||||
]
|
|
||||||
} else {
|
|
||||||
this.tableColumns = [
|
|
||||||
{prop: 'loginName', label: '一卡通号'},
|
|
||||||
{prop: 'userName', label: '姓名'},
|
|
||||||
{prop: 'unitName', label: '单位', sortable: true},
|
|
||||||
{prop: 'unionName', label: '工会', sortable: true},
|
|
||||||
// {prop: 'travelAgencyName', label: '旅行社'},
|
|
||||||
{prop: 'lineName', label: '线路/酒店'},
|
|
||||||
{prop: 'playStartTime', label: '出行时间'},
|
|
||||||
{prop: 'regionalNature', label: '线路类型'},
|
|
||||||
{prop: 'lotName', label: '标段'},
|
|
||||||
{prop: 'isFamily', label: '是否携带家属'},
|
|
||||||
{prop: 'signingUptime', label: '报名时间', checked: 0},
|
|
||||||
{prop: 'isTakePartIn', label: '是否参加'},
|
|
||||||
{prop: 'reimbursementStatus', label: '是否报销'},
|
|
||||||
{prop: 'takePartInTime', label: '参加时间', checked: 0},
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
async getLines() {
|
async getLines() {
|
||||||
const {data} = await $.post("/platform/theRapyRecuperation/travelAgency/selectLineByAgencyId", {
|
const {data} = await $.post("/platform/theRapyRecuperation/travelAgency/selectLineByAgencyId", {
|
||||||
@@ -1016,7 +908,7 @@ layout("/layouts/platform.html"){
|
|||||||
},
|
},
|
||||||
async flushUnits() {
|
async flushUnits() {
|
||||||
this.$set(this.pageForm, "unitId", "")
|
this.$set(this.pageForm, "unitId", "")
|
||||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}" === 'true') {
|
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionAdmin')||@shiro.hasRole('H03')}" === 'true') {
|
||||||
this.unitOptions = await getUnits(this.pageForm.unionId)
|
this.unitOptions = await getUnits(this.pageForm.unionId)
|
||||||
} else {
|
} else {
|
||||||
this.unionOptions = this.unionOptions.filter(v => v.id === "${@shiro.getPrincipalProperty('unit').getUnionid()}")
|
this.unionOptions = this.unionOptions.filter(v => v.id === "${@shiro.getPrincipalProperty('unit').getUnionid()}")
|
||||||
@@ -1090,12 +982,8 @@ layout("/layouts/platform.html"){
|
|||||||
this.importVisible = false;
|
this.importVisible = false;
|
||||||
this.pageData();
|
this.pageData();
|
||||||
},
|
},
|
||||||
async getUnionSelectLine(disPlayUnionSelectId = null) {
|
async getUnionSelectLine() {
|
||||||
const resp = await $.post('/platform/theRapyRecuperation/user/query/getUnionSelectLine', {
|
const resp = await $.post('/platform/theRapyRecuperation/user/query/getUnionSelectLine')
|
||||||
startYear: this.pageForm.startYear,
|
|
||||||
endYear: this.pageForm.endYear,
|
|
||||||
disPlayUnionSelectId: disPlayUnionSelectId
|
|
||||||
})
|
|
||||||
if (resp.code === 0) {
|
if (resp.code === 0) {
|
||||||
this.unionSelectLines = resp.data
|
this.unionSelectLines = resp.data
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ layout("/layouts/platform.html"){
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="search-item" v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}">
|
<div class="search-item" v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionAdmin')}">
|
||||||
<div class="search-item-label">分工会:</div>
|
<div class="search-item-label">分工会:</div>
|
||||||
<div class="search-item-option">
|
<div class="search-item-option">
|
||||||
<el-select @change="doSearch"
|
<el-select @change="doSearch"
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ layout("/layouts/platform.html"){
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="search-item" v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}">
|
<div class="search-item" v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionAdmin')}">
|
||||||
<div class="search-item-label">分工会:</div>
|
<div class="search-item-label">分工会:</div>
|
||||||
<div class="search-item-option">
|
<div class="search-item-option">
|
||||||
<el-select @change="doSearch" clearable filterable style="width: 100%"
|
<el-select @change="doSearch" clearable filterable style="width: 100%"
|
||||||
|
|||||||
+188
-121
@@ -17,6 +17,13 @@ layout("/layouts/platform.html"){
|
|||||||
margin-bottom: 0 !important;
|
margin-bottom: 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.el-checkbox {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-descriptions-item__cell {
|
||||||
|
text-align: left !important;
|
||||||
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
@@ -49,7 +56,7 @@ layout("/layouts/platform.html"){
|
|||||||
<el-option :key="item.id"
|
<el-option :key="item.id"
|
||||||
:label="item.travelAgencyName"
|
:label="item.travelAgencyName"
|
||||||
:value="item.id"
|
:value="item.id"
|
||||||
v-for="item in travelAgencyArray"></el-option>
|
v-for="item in travelAgencyOptions"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -59,10 +66,9 @@ layout("/layouts/platform.html"){
|
|||||||
<div class="search-item-option">
|
<div class="search-item-option">
|
||||||
<el-radio-group class="mr0-radio"
|
<el-radio-group class="mr0-radio"
|
||||||
@change="doSearch"
|
@change="doSearch"
|
||||||
:disabled = "pageForm.mode == 1"
|
|
||||||
v-model="pageForm.regionalNature">
|
v-model="pageForm.regionalNature">
|
||||||
<el-radio-button :label="item.value"
|
<el-radio-button :label="item.value"
|
||||||
border v-for="item in regionalNatureList">
|
border v-for="item in regionalNatureList">
|
||||||
{{item.label}}
|
{{item.label}}
|
||||||
</el-radio-button>
|
</el-radio-button>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
@@ -80,7 +86,7 @@ layout("/layouts/platform.html"){
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="search-item" v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}">
|
<div class="search-item" v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionAdmin')}">
|
||||||
<div class="search-item-label">分工会:</div>
|
<div class="search-item-label">分工会:</div>
|
||||||
<div class="search-item-option">
|
<div class="search-item-option">
|
||||||
<el-select clearable filterable style="width: 100%" v-model="pageForm.unionId">
|
<el-select clearable filterable style="width: 100%" v-model="pageForm.unionId">
|
||||||
@@ -117,13 +123,12 @@ layout("/layouts/platform.html"){
|
|||||||
<table-tool :app="this" label="线路列表(温馨提示:如查询条件的年度为空时,已选择默认查询当年选择的线路)">
|
<table-tool :app="this" label="线路列表(温馨提示:如查询条件的年度为空时,已选择默认查询当年选择的线路)">
|
||||||
<template #func>
|
<template #func>
|
||||||
|
|
||||||
<el-button @click="showGiveTimes" type="primary"
|
<!--<el-button @click="showGiveTimes" type="primary"
|
||||||
size="small" style="margin-right: 10px">
|
size="small" style="margin-right: 10px">
|
||||||
一键统赋时间
|
一键统赋时间
|
||||||
</el-button>
|
</el-button>-->
|
||||||
|
|
||||||
<el-radio-group @change="doSearch" size="small" v-model="pageForm.selectStatus">
|
<el-radio-group @change="doSearch" size="small" v-model="pageForm.selectStatus">
|
||||||
<!--<el-radio-button :label="0">全部</el-radio-button>-->
|
|
||||||
<el-radio-button :label="1">已选择</el-radio-button>
|
<el-radio-button :label="1">已选择</el-radio-button>
|
||||||
<el-radio-button :label="-1">可选择</el-radio-button>
|
<el-radio-button :label="-1">可选择</el-radio-button>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
@@ -135,8 +140,8 @@ layout("/layouts/platform.html"){
|
|||||||
row-key="id"
|
row-key="id"
|
||||||
@selection-change="handleSelectionChange"
|
@selection-change="handleSelectionChange"
|
||||||
header-align="center">
|
header-align="center">
|
||||||
<el-table-column type="selection" reserve-selection width="55px"
|
<!--<el-table-column type="selection" reserve-selection width="55px"
|
||||||
:selectable="(row)=>{return row.isDisabled==true || !(row.usId==null || row.usId == '')}"></el-table-column>
|
:selectable="(row)=>{return row.isDisabled==true || !(row.usId==null || row.usId == '')}"></el-table-column>-->
|
||||||
|
|
||||||
<el-table-column :index="indexMethod" align="center" header-align="center" label="序号" type="index"
|
<el-table-column :index="indexMethod" align="center" header-align="center" label="序号" type="index"
|
||||||
width="80px"></el-table-column>
|
width="80px"></el-table-column>
|
||||||
@@ -148,20 +153,10 @@ layout("/layouts/platform.html"){
|
|||||||
header-align="center"
|
header-align="center"
|
||||||
:show-overflow-tooltip="column.prop!=='playTime'"
|
:show-overflow-tooltip="column.prop!=='playTime'"
|
||||||
:key="column.prop"
|
:key="column.prop"
|
||||||
v-if="pageForm.mode != 2 || (pageForm.mode == 2 && column.prop !== 'isOpen')"
|
v-if="pageForm.mode == 1 || (['2','3'].includes(pageForm.mode) && column.prop !== 'isOpen')"
|
||||||
v-for="column in tableColumns"
|
v-for="column in tableColumns"
|
||||||
:width="column.width"
|
:width="column.width"
|
||||||
>
|
>
|
||||||
<!--<template scope="{row}" v-if="column.prop==='isDisabled'">
|
|
||||||
<el-switch
|
|
||||||
:active-value="false"
|
|
||||||
:inactive-value="true"
|
|
||||||
@change="(val)=>{lineStatusChange(row.id)}"
|
|
||||||
active-color="#13ce66"
|
|
||||||
inactive-color="#ff4949"
|
|
||||||
v-model="row.isDisabled">
|
|
||||||
</el-switch>
|
|
||||||
</template>-->
|
|
||||||
<template scope="{row:{signUpMode}}" v-if="column.prop==='signUpMode'">
|
<template scope="{row:{signUpMode}}" v-if="column.prop==='signUpMode'">
|
||||||
{{signUpModeName(signUpMode)}}
|
{{signUpModeName(signUpMode)}}
|
||||||
</template>
|
</template>
|
||||||
@@ -173,14 +168,6 @@ layout("/layouts/platform.html"){
|
|||||||
</template>
|
</template>
|
||||||
<template scope="{row}" v-else-if="column.prop==='playTime'">
|
<template scope="{row}" v-else-if="column.prop==='playTime'">
|
||||||
<template v-if="row.playTimes">
|
<template v-if="row.playTimes">
|
||||||
<!--<el-tooltip placement="top">
|
|
||||||
<div slot="content">
|
|
||||||
<div v-for="t in row.playTimes.split(',')" :key="t">
|
|
||||||
{{t}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{row.playTimes}}
|
|
||||||
</el-tooltip>-->
|
|
||||||
<el-tooltip placement="top">
|
<el-tooltip placement="top">
|
||||||
<div slot="content">
|
<div slot="content">
|
||||||
<div v-for="(t,ti) in row.playTimes.split(',')" :key="t"
|
<div v-for="(t,ti) in row.playTimes.split(',')" :key="t"
|
||||||
@@ -192,9 +179,6 @@ layout("/layouts/platform.html"){
|
|||||||
{{row.playTimes}}
|
{{row.playTimes}}
|
||||||
</div>
|
</div>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
<!-- <div v-for="t in row.playTimes.split(',')" :key="t">
|
|
||||||
{{t}}
|
|
||||||
</div>-->
|
|
||||||
</template>
|
</template>
|
||||||
<el-button v-else @click="openSetLineTime(row)" type="text">
|
<el-button v-else @click="openSetLineTime(row)" type="text">
|
||||||
选择并设置出行时间段
|
选择并设置出行时间段
|
||||||
@@ -269,7 +253,7 @@ layout("/layouts/platform.html"){
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<el-dialog :close-on-click-modal="false" :visible.sync="setLineTimeDialog" title="设置出行时间段信息"
|
<el-dialog :close-on-click-modal="false" :visible.sync="setLineTimeDialog" title="设置出行时间段信息"
|
||||||
width="80%">
|
width="80%" top="2%">
|
||||||
<el-form :model="formData" :rules="rules" label-width="0" ref="form" size="small">
|
<el-form :model="formData" :rules="rules" label-width="0" ref="form" size="small">
|
||||||
<h4>{{formData.lineName}}</h4>
|
<h4>{{formData.lineName}}</h4>
|
||||||
|
|
||||||
@@ -365,24 +349,6 @@ layout("/layouts/platform.html"){
|
|||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item>
|
|
||||||
<template slot="label">
|
|
||||||
<span class="text-danger">*</span>
|
|
||||||
旅行社
|
|
||||||
</template>
|
|
||||||
<el-form-item :prop="'times.' + $index + '.travelAgencyId'"
|
|
||||||
:rules="{required:true,message:'联系人',trigger:['change','blur']}"
|
|
||||||
label-width="0">
|
|
||||||
<el-select v-model="row.travelAgencyId" style="width: 100%" clearable filterable
|
|
||||||
placeholder="请选择旅行社" @change="(val) => {selectTravelChange(val, row)}">
|
|
||||||
<el-option :key="item.id"
|
|
||||||
:label="item.travelAgencyName+'('+ item.year +'年)'"
|
|
||||||
:value="item.id"
|
|
||||||
v-for="item in travelAgencyList"
|
|
||||||
></el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-descriptions-item>
|
|
||||||
<el-descriptions-item>
|
<el-descriptions-item>
|
||||||
<template slot="label">
|
<template slot="label">
|
||||||
<span class="text-danger">*</span>
|
<span class="text-danger">*</span>
|
||||||
@@ -410,7 +376,11 @@ layout("/layouts/platform.html"){
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
|
||||||
<!--<el-descriptions-item label="最少参与教工">
|
<el-descriptions-item label="最少参与教工">
|
||||||
|
<template slot="label">
|
||||||
|
<span class="text-danger">*</span>
|
||||||
|
最少参与教工
|
||||||
|
</template>
|
||||||
<el-form-item :prop="'times.' + $index + '.minimumGroupSize'"
|
<el-form-item :prop="'times.' + $index + '.minimumGroupSize'"
|
||||||
:rules="[
|
:rules="[
|
||||||
{ required: true, message: '最少参与教工不能为空', trigger: 'blur' },
|
{ required: true, message: '最少参与教工不能为空', trigger: 'blur' },
|
||||||
@@ -419,7 +389,7 @@ layout("/layouts/platform.html"){
|
|||||||
label-width="0">
|
label-width="0">
|
||||||
<el-input clearable v-model="row.minimumGroupSize"></el-input>
|
<el-input clearable v-model="row.minimumGroupSize"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-descriptions-item>-->
|
</el-descriptions-item>
|
||||||
|
|
||||||
<el-descriptions-item label="交通工具">
|
<el-descriptions-item label="交通工具">
|
||||||
<el-form-item :prop="'times.' + $index + '.trafficTools'"
|
<el-form-item :prop="'times.' + $index + '.trafficTools'"
|
||||||
@@ -438,14 +408,18 @@ layout("/layouts/platform.html"){
|
|||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
|
||||||
|
|
||||||
<el-descriptions-item label="最少成团人数(包括家属)">
|
<el-descriptions-item label="成团人数包括家属">
|
||||||
|
<template slot="label">
|
||||||
|
<span class="text-danger">*</span>
|
||||||
|
成团人数包括家属
|
||||||
|
</template>
|
||||||
<el-form-item :prop="'times.' + $index + '.estimatedFamilyNumbers'"
|
<el-form-item :prop="'times.' + $index + '.estimatedFamilyNumbers'"
|
||||||
:rules="[
|
:rules="[
|
||||||
{ required: false, message: '最少成团人数不能为空', trigger: 'blur' },
|
{ required: true, message: '成团人数包括家属不能为空', trigger: 'blur' },
|
||||||
{ pattern: /^[0-9]*$/, message: '最少成团人数格式不正确', trigger: 'blur' }
|
{ pattern: /^[0-9]*$/, message: '成团人数包括家属格式不正确', trigger: 'blur' }
|
||||||
]"
|
]"
|
||||||
label-width="0">
|
label-width="0">
|
||||||
<el-input clearable v-model="row.estimatedFamilyNumbers"></el-input>
|
<el-input clearable v-model="row.estimatedFamilyNumbers" placeholder="请输入成团人数包括家属"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
|
||||||
@@ -461,6 +435,32 @@ layout("/layouts/platform.html"){
|
|||||||
</el-switch>
|
</el-switch>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
|
||||||
|
<template v-if="pageForm.mode == 3">
|
||||||
|
<el-descriptions-item label="报名范围">
|
||||||
|
<template slot="label">
|
||||||
|
<span class="text-danger">*</span>
|
||||||
|
报名范围
|
||||||
|
</template>
|
||||||
|
<el-form-item :prop="'times.' + $index + '.signScope'"
|
||||||
|
label-width="0"
|
||||||
|
:rules="[
|
||||||
|
{ required: true, message: '报名范围不能为空', trigger: 'blur' },
|
||||||
|
]">
|
||||||
|
<el-checkbox-group size="mini" v-model="row.signScope">
|
||||||
|
<el-checkbox :label="1" border>自己选择</el-checkbox>
|
||||||
|
<el-checkbox :label="2" border>本分工会</el-checkbox>
|
||||||
|
<el-checkbox :label="3" border>全校</el-checkbox>
|
||||||
|
</el-checkbox-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-descriptions-item>
|
||||||
|
|
||||||
|
<el-descriptions-item label="人员名单" v-if="row.signScope?.includes(1)">
|
||||||
|
<el-button @click="openJoinUserVisible(row)" type="primary" size="mini">设置人员名单(您已设置{{ row.chooseUserList?.length || 0 }}人)</el-button>
|
||||||
|
<el-button v-if="row.chooseUserList?.length > 0" @click="row.chooseUserList = [];selectRow.userTableData = [];$forceUpdate()" type="primary" size="mini">清空名单</el-button>
|
||||||
|
</el-descriptions-item>
|
||||||
|
</template>
|
||||||
|
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
|
|
||||||
</el-row>
|
</el-row>
|
||||||
@@ -469,12 +469,10 @@ layout("/layouts/platform.html"){
|
|||||||
|
|
||||||
<div class="text-right">
|
<div class="text-right">
|
||||||
<el-button
|
<el-button
|
||||||
@click="formData.times.push({enable:true,minimumGroupSize:lineConfig.groupNumber,estimatedCost:lineConfig.cost, estimatedFamilyNumbers: lineConfig.outsideQuota})"
|
@click="formData.times.push({enable:true,minimumGroupSize:lineConfig.groupNumber,estimatedCost:lineConfig.cost})"
|
||||||
size="mini" type="primary">新增出行时间
|
size="mini" type="primary">新增出行时间
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<el-alert closable show-icon style="margin:10px 0"
|
<el-alert closable show-icon style="margin:10px 0"
|
||||||
title="温馨提醒:变更时间应该大于报名截至时间,小于出行时间。"
|
title="温馨提醒:变更时间应该大于报名截至时间,小于出行时间。"
|
||||||
type="warning"></el-alert>
|
type="warning"></el-alert>
|
||||||
@@ -515,11 +513,6 @@ layout("/layouts/platform.html"){
|
|||||||
<el-descriptions-item label="出行结束时间">
|
<el-descriptions-item label="出行结束时间">
|
||||||
{{row.playEndTime}}
|
{{row.playEndTime}}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
|
||||||
<el-descriptions-item label="旅行社">
|
|
||||||
{{row.travelAgencyName}}
|
|
||||||
</el-descriptions-item>
|
|
||||||
|
|
||||||
<el-descriptions-item label="联系人">
|
<el-descriptions-item label="联系人">
|
||||||
{{row.contact}}
|
{{row.contact}}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
@@ -528,9 +521,9 @@ layout("/layouts/platform.html"){
|
|||||||
{{row.contactPhone}}
|
{{row.contactPhone}}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
|
||||||
<!--<el-descriptions-item label="最少参与教工">
|
<el-descriptions-item label="最少参与教工">
|
||||||
{{row.minimumGroupSize}}
|
{{row.minimumGroupSize}}
|
||||||
</el-descriptions-item>-->
|
</el-descriptions-item>
|
||||||
|
|
||||||
<el-descriptions-item label="交通工具">
|
<el-descriptions-item label="交通工具">
|
||||||
{{row.trafficTools}}
|
{{row.trafficTools}}
|
||||||
@@ -638,7 +631,7 @@ layout("/layouts/platform.html"){
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
|
||||||
<el-descriptions-item label="是否开启">
|
<!--<el-descriptions-item label="是否开启">
|
||||||
<el-form-item :prop="'times.' + $index + '.enable'"
|
<el-form-item :prop="'times.' + $index + '.enable'"
|
||||||
label-width="0">
|
label-width="0">
|
||||||
<el-switch
|
<el-switch
|
||||||
@@ -649,7 +642,7 @@ layout("/layouts/platform.html"){
|
|||||||
inactive-color="#ff4949">
|
inactive-color="#ff4949">
|
||||||
</el-switch>
|
</el-switch>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>-->
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
</el-row>
|
</el-row>
|
||||||
</div>
|
</div>
|
||||||
@@ -662,6 +655,54 @@ layout("/layouts/platform.html"){
|
|||||||
<el-button @click="doSetGiveLineTimes" type="primary">提交</el-button>
|
<el-button @click="doSetGiveLineTimes" type="primary">提交</el-button>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
|
<el-dialog :close-on-click-modal="false" :visible.sync="userDialogVisible" title="设置人员名单" width="60%" top="2%">
|
||||||
|
<vi-title title="筛选人员"></vi-title>
|
||||||
|
<el-select
|
||||||
|
v-model="chooseUserMultiple"
|
||||||
|
value-key="id"
|
||||||
|
filterable
|
||||||
|
remote
|
||||||
|
multiple
|
||||||
|
reserve-keyword
|
||||||
|
placeholder="请输入工号或者姓名查询"
|
||||||
|
:remote-method="queryJoinUser" style="width: 90%">
|
||||||
|
<el-option
|
||||||
|
v-for="item in canChooseUserList"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.username+'-'+item.loginname+'-'+item.unitname"
|
||||||
|
:value="item.id">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
<el-button type="primary" @click="joinUserConfirm">确定</el-button>
|
||||||
|
|
||||||
|
<vi-title class="mt10" title="已选人员"></vi-title>
|
||||||
|
<div class="btn-group tool-button">
|
||||||
|
<el-input placeholder="请输入姓名或工号查询" v-model="userSearchKeyword" clearable></el-input>
|
||||||
|
</div>
|
||||||
|
<div class="btn-group tool-button">
|
||||||
|
<el-button @click="userDoSearch" icon="el-icon-search" type="primary"></el-button>
|
||||||
|
</div>
|
||||||
|
<el-table max-height="500" :data="selectRow.userTableData">
|
||||||
|
<el-table-column label="序号" type="index" header-align="center" align="center" width="50"></el-table-column>
|
||||||
|
<el-table-column prop="username" label="姓名" header-align="center" align="center"></el-table-column>
|
||||||
|
<el-table-column prop="loginname" label="工号" header-align="center" align="center"></el-table-column>
|
||||||
|
<el-table-column prop="sex" label="性别" header-align="center" align="center"></el-table-column>
|
||||||
|
<el-table-column prop="unitname" label="所属单位" header-align="center" align="center" show-overflow-tooltip></el-table-column>
|
||||||
|
<el-table-column prop="unionname" label="所属工会" header-align="center" align="center" show-overflow-tooltip></el-table-column>
|
||||||
|
<el-table-column align="center" label="操作" width="220px">
|
||||||
|
<template slot-scope="{row}">
|
||||||
|
<el-button @click="selectRow.chooseUserList.splice(row, 1);selectRow.userTableData.splice(row, 1)" size="mini" type="danger">删除</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<el-row justify="end" type="flex" class="mt20">
|
||||||
|
<el-button @click="userDialogVisible=false">取消</el-button>
|
||||||
|
<el-button @click="selectRow.chooseUserList = [];selectRow.userTableData = [];userDialogVisible=false" type="danger">清空已选</el-button>
|
||||||
|
<el-button @click="doJoinUser" type="primary">提交</el-button>
|
||||||
|
</el-row>
|
||||||
|
</el-dialog>
|
||||||
|
|
||||||
</guava>
|
</guava>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -687,7 +728,6 @@ layout("/layouts/platform.html"){
|
|||||||
}
|
}
|
||||||
callback()
|
callback()
|
||||||
}
|
}
|
||||||
|
|
||||||
const validateChangeEndTime = (rule, value, callback) => {
|
const validateChangeEndTime = (rule, value, callback) => {
|
||||||
if (!value) {
|
if (!value) {
|
||||||
callback(new Error('请选择变更截至时间'))
|
callback(new Error('请选择变更截至时间'))
|
||||||
@@ -699,7 +739,6 @@ layout("/layouts/platform.html"){
|
|||||||
}
|
}
|
||||||
callback()
|
callback()
|
||||||
}
|
}
|
||||||
|
|
||||||
const validatePlayEndTime = (rule, value, callback) => {
|
const validatePlayEndTime = (rule, value, callback) => {
|
||||||
if (!value) {
|
if (!value) {
|
||||||
callback(new Error('请选择出行结束时间'))
|
callback(new Error('请选择出行结束时间'))
|
||||||
@@ -711,7 +750,6 @@ layout("/layouts/platform.html"){
|
|||||||
}
|
}
|
||||||
callback()
|
callback()
|
||||||
}
|
}
|
||||||
|
|
||||||
//统赋时间
|
//统赋时间
|
||||||
const validateGiveSignUpEndTime = (rule, value, callback) => {
|
const validateGiveSignUpEndTime = (rule, value, callback) => {
|
||||||
console.log(value)
|
console.log(value)
|
||||||
@@ -725,7 +763,6 @@ layout("/layouts/platform.html"){
|
|||||||
}
|
}
|
||||||
callback()
|
callback()
|
||||||
}
|
}
|
||||||
|
|
||||||
const validateGiveChangeEndTime = (rule, value, callback) => {
|
const validateGiveChangeEndTime = (rule, value, callback) => {
|
||||||
if (!value) {
|
if (!value) {
|
||||||
callback(new Error('请选择变更截至时间'))
|
callback(new Error('请选择变更截至时间'))
|
||||||
@@ -737,7 +774,6 @@ layout("/layouts/platform.html"){
|
|||||||
}
|
}
|
||||||
callback()
|
callback()
|
||||||
}
|
}
|
||||||
|
|
||||||
const validateGivePlayEndTime = (rule, value, callback) => {
|
const validateGivePlayEndTime = (rule, value, callback) => {
|
||||||
if (!value) {
|
if (!value) {
|
||||||
callback(new Error('请选择出行结束时间'))
|
callback(new Error('请选择出行结束时间'))
|
||||||
@@ -749,32 +785,22 @@ layout("/layouts/platform.html"){
|
|||||||
}
|
}
|
||||||
callback()
|
callback()
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
travelAgencyArray: [],
|
canChooseUserList: [],
|
||||||
travelAgencyList: [],
|
chooseUserMultiple: [],
|
||||||
|
userDialogVisible: false,
|
||||||
|
userSearchKeyword: '',
|
||||||
tableColumns: [
|
tableColumns: [
|
||||||
// {label: '年度', prop: 'year', sortable: true},
|
|
||||||
{label: '线路名称', prop: 'lineName', sortable: true},
|
{label: '线路名称', prop: 'lineName', sortable: true},
|
||||||
{label: '线路类型', prop: 'regionalNature', sortable: true},
|
{label: '线路类型', prop: 'regionalNature', sortable: true},
|
||||||
{label: '时间标段', prop: 'lotName', sortable: true, sortProp: 'lotValue'},
|
{label: '时间标段', prop: 'lotName', sortable: true, sortProp: 'lotValue'},
|
||||||
{label: '出行时间', prop: 'playTime', sortable: 'custom', sortProp: 'playStartTime', width: 230},
|
{label: '出行时间', prop: 'playTime', sortable: 'custom', sortProp: 'playStartTime', width: 230},
|
||||||
//{label: '承担旅行社', prop: 'travelAgencyName', sortable: true},
|
{label: '承担旅行社', prop: 'travelAgencyName', sortable: true},
|
||||||
// {label: '所属分工会', prop: 'belongUnionName', sortable: true},
|
|
||||||
{label: '组织形式', prop: 'signUpMode', sortable: true},
|
{label: '组织形式', prop: 'signUpMode', sortable: true},
|
||||||
// {label: '编号', prop: 'serialNumber', sortable: true},
|
|
||||||
// {label: '创建模式', prop: 'createMode', sortable: true},
|
|
||||||
//{label: '创建人', prop: 'createUserName', sortable: true},
|
|
||||||
{label: '选择工会', prop: 'belongUnionName', sortable: true},
|
{label: '选择工会', prop: 'belongUnionName', sortable: true},
|
||||||
{label: '是否开放对外报名', prop: 'isOpen', sortable: true},
|
|
||||||
// {label: '是否启用', prop: 'isDisabled', sortable: true}
|
|
||||||
],
|
],
|
||||||
rules: {
|
rules: {
|
||||||
signUpStartTime: [{
|
signUpStartTime: [{required: true, message: '请选择报名开始时间', trigger: ['change', 'blur']}],
|
||||||
required: true,
|
|
||||||
message: '请选择报名开始时间',
|
|
||||||
trigger: ['change', 'blur']
|
|
||||||
}],
|
|
||||||
signUpEndTime: [{required: true, validator: validateSignUpEndTime, trigger: ['change', 'blur']}],
|
signUpEndTime: [{required: true, validator: validateSignUpEndTime, trigger: ['change', 'blur']}],
|
||||||
changeEndTime: [{required: true, validator: validateChangeEndTime, trigger: ['change', 'blur']}],
|
changeEndTime: [{required: true, validator: validateChangeEndTime, trigger: ['change', 'blur']}],
|
||||||
playStartTime: [{required: true, message: '请选择出行开始时间', trigger: ['change', 'blur']}],
|
playStartTime: [{required: true, message: '请选择出行开始时间', trigger: ['change', 'blur']}],
|
||||||
@@ -795,7 +821,7 @@ layout("/layouts/platform.html"){
|
|||||||
keywords: null,
|
keywords: null,
|
||||||
selectStatus: -1,
|
selectStatus: -1,
|
||||||
unionId: null,
|
unionId: null,
|
||||||
regionalNature: '省内'
|
regionalNature: '全部'
|
||||||
},
|
},
|
||||||
createModeList: [],
|
createModeList: [],
|
||||||
signUpModeList: [],
|
signUpModeList: [],
|
||||||
@@ -810,7 +836,6 @@ layout("/layouts/platform.html"){
|
|||||||
cost: null
|
cost: null
|
||||||
},
|
},
|
||||||
regionalNatureList: [{label:'全部线路',name:'provinceAll',ordinal:0,provinceIn:'provinceIn',provinceOut:'provinceOut',value:'全部'}],
|
regionalNatureList: [{label:'全部线路',name:'provinceAll',ordinal:0,provinceIn:'provinceIn',provinceOut:'provinceOut',value:'全部'}],
|
||||||
|
|
||||||
multipleSelection: [],
|
multipleSelection: [],
|
||||||
giveLineTimesData: {
|
giveLineTimesData: {
|
||||||
times: []
|
times: []
|
||||||
@@ -832,7 +857,7 @@ layout("/layouts/platform.html"){
|
|||||||
},
|
},
|
||||||
setGiveLineTimeDialog: false,
|
setGiveLineTimeDialog: false,
|
||||||
|
|
||||||
|
selectRow: {},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@@ -844,18 +869,57 @@ layout("/layouts/platform.html"){
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
queryJoinUser(val) {
|
||||||
|
$.post('/platform/theRapyRecuperation/linePersonalSelect/queryJoinUser', {keyWord: val}).then(res => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.canChooseUserList = res.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
joinUserConfirm() {
|
||||||
|
//获取表格数据的id集合
|
||||||
|
const idList = this.selectRow.chooseUserList.map(o => o.id)
|
||||||
|
//多选框排除在表格数据里面的
|
||||||
|
const notList = this.chooseUserMultiple.filter(o => !idList.includes(o))
|
||||||
|
//通过多选框候选列表查询出可以被加到表格里面的
|
||||||
|
let list = this.canChooseUserList.filter(o => notList.includes(o.id))
|
||||||
|
this.selectRow.chooseUserList = this.selectRow.chooseUserList.concat(list)
|
||||||
|
this.selectRow.userTableData = clone(this.selectRow.chooseUserList)
|
||||||
|
this.chooseUserMultiple = []
|
||||||
|
this.$forceUpdate()
|
||||||
|
},
|
||||||
|
userDoSearch() {
|
||||||
|
if(this.userSearchKeyword === '') {
|
||||||
|
this.selectRow.userTableData = clone(this.selectRow.chooseUserList)
|
||||||
|
} else {
|
||||||
|
this.selectRow.userTableData = this.selectRow.chooseUserList.filter(o => o.username.includes(this.userSearchKeyword) || o.loginname.includes(this.userSearchKeyword))
|
||||||
|
}
|
||||||
|
},
|
||||||
|
openJoinUserVisible(row) {
|
||||||
|
if(!row.chooseUserList) {
|
||||||
|
row.chooseUserList = []
|
||||||
|
} else {
|
||||||
|
row.userTableData = clone(row.chooseUserList)
|
||||||
|
}
|
||||||
|
if(!row.userTableData) {
|
||||||
|
row.userTableData = []
|
||||||
|
}
|
||||||
|
this.selectRow = row
|
||||||
|
this.userDialogVisible = true
|
||||||
|
},
|
||||||
|
doJoinUser() {
|
||||||
|
if(this.selectRow.chooseUserList.length === 0) {
|
||||||
|
this.$message.warning('请选择人员')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.userDialogVisible = false
|
||||||
|
},
|
||||||
doSearch() {
|
doSearch() {
|
||||||
this.tableData = []
|
this.tableData = []
|
||||||
this.tableKey = new Date().getTime()
|
this.tableKey = new Date().getTime()
|
||||||
this.pageForm.pageNumber = 1
|
this.pageForm.pageNumber = 1
|
||||||
this.pageData()
|
this.pageData()
|
||||||
},
|
},
|
||||||
selectTravelChange(val, row) {
|
|
||||||
const o = this.travelAgencyList.find(o => o.id === val)
|
|
||||||
console.log(o)
|
|
||||||
row.contact = o.contact
|
|
||||||
row.contactPhone = o.contactMobileNumber
|
|
||||||
},
|
|
||||||
pageOrder(column) {
|
pageOrder(column) {
|
||||||
if(column.prop === 'playTime') {
|
if(column.prop === 'playTime') {
|
||||||
this.pageForm.pageOrderName = 'playStartTime'
|
this.pageForm.pageOrderName = 'playStartTime'
|
||||||
@@ -886,10 +950,8 @@ layout("/layouts/platform.html"){
|
|||||||
this.notifyWarning(resp.msg)
|
this.notifyWarning(resp.msg)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
async openSetLineTime({id, lineName, usUnionId, signUpMode}) {
|
async openSetLineTime({id, lineName, usUnionId, signUpMode}) {
|
||||||
await this.getLineConfig(id)
|
await this.getLineConfig(id)
|
||||||
|
|
||||||
const resp = await $.post(loc() + '/selectLineInfo', {
|
const resp = await $.post(loc() + '/selectLineInfo', {
|
||||||
lineId: id,
|
lineId: id,
|
||||||
unionId: usUnionId,
|
unionId: usUnionId,
|
||||||
@@ -901,9 +963,18 @@ layout("/layouts/platform.html"){
|
|||||||
times:[]
|
times:[]
|
||||||
}
|
}
|
||||||
if(resp.data && resp.data.length > 0){
|
if(resp.data && resp.data.length > 0){
|
||||||
|
resp.data.forEach(item => {
|
||||||
|
item.chooseUserList = JSON.parse(item.chooseUserList)
|
||||||
|
item.signScope = JSON.parse(item.signScope)
|
||||||
|
})
|
||||||
this.$set(this.formData, 'times', resp.data)
|
this.$set(this.formData, 'times', resp.data)
|
||||||
}else{
|
}else{
|
||||||
this.formData.times.push({enable:true,minimumGroupSize:this.lineConfig.groupNumber,estimatedCost:this.lineConfig.cost, estimatedFamilyNumbers: this.lineConfig.outsideQuota})
|
this.formData.times.push({
|
||||||
|
enable:true,
|
||||||
|
minimumGroupSize:this.lineConfig.groupNumber,
|
||||||
|
estimatedCost:this.lineConfig.cost,
|
||||||
|
signScope: [],
|
||||||
|
})
|
||||||
}
|
}
|
||||||
this.formData.lineId = id
|
this.formData.lineId = id
|
||||||
this.formData.signUpMode = signUpMode
|
this.formData.signUpMode = signUpMode
|
||||||
@@ -917,15 +988,14 @@ layout("/layouts/platform.html"){
|
|||||||
async doSelect() {
|
async doSelect() {
|
||||||
const valid = await this.$refs['form'].validate()
|
const valid = await this.$refs['form'].validate()
|
||||||
if (!valid) return
|
if (!valid) return
|
||||||
|
|
||||||
const confirm = await this.$confirm('请再次确认,是否选择此线路为疗休养线路?', '提示', {
|
const confirm = await this.$confirm('请再次确认,是否选择此线路为疗休养线路?', '提示', {
|
||||||
confirmButtonText: '确定',
|
confirmButtonText: '确定',
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
})
|
})
|
||||||
if (confirm !== 'confirm') return
|
if (confirm !== 'confirm') return
|
||||||
|
|
||||||
const fmtData = this.formData.times.map(v => {
|
const fmtData = this.formData.times.map(v => {
|
||||||
|
v.chooseUserList = JSON.stringify(v.chooseUserList)
|
||||||
return {
|
return {
|
||||||
...v,
|
...v,
|
||||||
lineId: this.formData.lineId,
|
lineId: this.formData.lineId,
|
||||||
@@ -933,7 +1003,6 @@ layout("/layouts/platform.html"){
|
|||||||
mode: GetQueryString('mode')
|
mode: GetQueryString('mode')
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
const resp = await $.post(loc() + '/selectLineTimes', {lineUnionSelects: JSON.stringify(fmtData)})
|
const resp = await $.post(loc() + '/selectLineTimes', {lineUnionSelects: JSON.stringify(fmtData)})
|
||||||
if (resp.code === 0) {
|
if (resp.code === 0) {
|
||||||
this.setLineTimeDialog = false
|
this.setLineTimeDialog = false
|
||||||
@@ -970,7 +1039,7 @@ layout("/layouts/platform.html"){
|
|||||||
},
|
},
|
||||||
async getTravelAgencyOptions() {
|
async getTravelAgencyOptions() {
|
||||||
const {data} = await $.get(loc() + '/getTravelAgencyOptions')
|
const {data} = await $.get(loc() + '/getTravelAgencyOptions')
|
||||||
this.travelAgencyArray = data
|
this.travelAgencyOptions = data
|
||||||
},
|
},
|
||||||
async getLotList() {
|
async getLotList() {
|
||||||
const {data} = await $.post('/platform/theRapyRecuperation/TheRapyConfig/findOne')
|
const {data} = await $.post('/platform/theRapyRecuperation/TheRapyConfig/findOne')
|
||||||
@@ -983,10 +1052,6 @@ layout("/layouts/platform.html"){
|
|||||||
handleSelectionChange(val) {
|
handleSelectionChange(val) {
|
||||||
this.multipleSelection = val;
|
this.multipleSelection = val;
|
||||||
},
|
},
|
||||||
async selectTravelAgencyList() {
|
|
||||||
const resp = await $.post('/platform/theRapyRecuperation/travelAgency/selectTravelAgency', {year: new Date().getFullYear()})
|
|
||||||
this.travelAgencyList = resp.data
|
|
||||||
},
|
|
||||||
showGiveTimes() {
|
showGiveTimes() {
|
||||||
if (!this.multipleSelection || this.multipleSelection.length == 0) {
|
if (!this.multipleSelection || this.multipleSelection.length == 0) {
|
||||||
this.$message.warning('请在线路列表中勾选您想要统赋时间的线路!');
|
this.$message.warning('请在线路列表中勾选您想要统赋时间的线路!');
|
||||||
@@ -1013,9 +1078,7 @@ layout("/layouts/platform.html"){
|
|||||||
type: 'warning'
|
type: 'warning'
|
||||||
})
|
})
|
||||||
if (confirm !== 'confirm') return
|
if (confirm !== 'confirm') return
|
||||||
|
const lineIds = this.multipleSelection.map(v => v.id)
|
||||||
const lineIds = this.multipleSelection.map(v => v.usId)
|
|
||||||
|
|
||||||
const fmtData = this.giveLineTimesData.times.map(v => {
|
const fmtData = this.giveLineTimesData.times.map(v => {
|
||||||
return {
|
return {
|
||||||
...v,
|
...v,
|
||||||
@@ -1023,10 +1086,10 @@ layout("/layouts/platform.html"){
|
|||||||
mode: GetQueryString('mode')
|
mode: GetQueryString('mode')
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
const resp = await $.post(loc() + '/setGiveLineTimes', {
|
const resp = await $.post(loc() + '/setGiveLineTimes', {
|
||||||
lineIds: JSON.stringify(lineIds),
|
lineIds: JSON.stringify(lineIds),
|
||||||
lineUnionSelects: JSON.stringify(fmtData)
|
lineUnionSelects: JSON.stringify(fmtData),
|
||||||
|
year:this.pageForm.year
|
||||||
})
|
})
|
||||||
if (resp.code === 0) {
|
if (resp.code === 0) {
|
||||||
this.setGiveLineTimeDialog = false
|
this.setGiveLineTimeDialog = false
|
||||||
@@ -1046,21 +1109,25 @@ layout("/layouts/platform.html"){
|
|||||||
this.$message.warning(resp.msg)
|
this.$message.warning(resp.msg)
|
||||||
}
|
}
|
||||||
this.pageData()
|
this.pageData()
|
||||||
}
|
},
|
||||||
|
async initTableColumns() {
|
||||||
|
if(this.pageForm.mode == 1) {
|
||||||
|
this.tableColumns.push({label: '是否开放对外报名', prop: 'isOpen', sortable: true})
|
||||||
|
} else if(this.pageForm.mode == 3) {
|
||||||
|
this.tableColumns = this.tableColumns.filter(o => o.prop !== 'belongUnionName')
|
||||||
|
this.tableColumns.push({label: '选择人', prop: 'selectUserName', sortable: true})
|
||||||
|
}
|
||||||
|
},
|
||||||
},
|
},
|
||||||
async created() {
|
async created() {
|
||||||
this.$set(this.pageForm, 'mode', GetQueryString('mode'))
|
this.$set(this.pageForm, 'mode', GetQueryString('mode'))
|
||||||
if(this.pageForm.mode == 2) {
|
await this.initTableColumns()
|
||||||
this.$set(this.pageForm, 'regionalNature', '全部')
|
|
||||||
}
|
|
||||||
this.pageData()
|
this.pageData()
|
||||||
this.createModeList = await getEnumOptions('TheRapyRecuperationLineCreateMode')
|
this.createModeList = await getEnumOptions('TheRapyRecuperationLineCreateMode')
|
||||||
this.signUpModeList = await getEnumOptions('TheRapyRecuperationSignUpMode')
|
this.signUpModeList = await getEnumOptions('TheRapyRecuperationSignUpMode')
|
||||||
this.regionalNatureList.push(...await getEnumOptions('TheRapyRecuperationProvinceType'))
|
this.regionalNatureList.push(...await getEnumOptions('TheRapyRecuperationProvinceType'))
|
||||||
// const result = await getEnumOptions('TheRapyRecuperationProvinceType')
|
|
||||||
this.unionOptions = await getUnions(null)
|
this.unionOptions = await getUnions(null)
|
||||||
this.travelAgencyOptions = this.selectTravelAgencyList()
|
this.travelAgencyOptions = this.getTravelAgencyOptions()
|
||||||
await this.getTravelAgencyOptions()
|
|
||||||
this.lotList = this.getLotList()
|
this.lotList = this.getLotList()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
+198
@@ -0,0 +1,198 @@
|
|||||||
|
const editForm = {
|
||||||
|
template: /*language=HTML*/ `
|
||||||
|
<el-dialog title="编辑" :visible.sync="visible" top="50px">
|
||||||
|
<el-form :model="formData" label-width="120px" :formRules="formRules" ref="formRef"
|
||||||
|
style="margin-right: 40px">
|
||||||
|
<el-row>
|
||||||
|
<el-col span="12">
|
||||||
|
<el-form-item prop="loginName" label="工号">
|
||||||
|
<el-input v-model="formData.loginName" readonly></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col span="12">
|
||||||
|
<el-form-item prop="userName" label="姓名">
|
||||||
|
<el-input v-model="formData.userName" readonly></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col span="12">
|
||||||
|
<el-form-item prop="userName" label="手机号">
|
||||||
|
<el-input v-model="formData.mobile" readonly></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col span="12">
|
||||||
|
<el-form-item prop="userName" label="身份证号">
|
||||||
|
<el-input v-model="formData.idCard" readonly></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col span="12">
|
||||||
|
<el-form-item prop="unionName" label="工会">
|
||||||
|
<el-input v-model="formData.unionName" readonly></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col span="12">
|
||||||
|
<el-form-item prop="unitName" label="单位">
|
||||||
|
<el-input v-model="formData.unitName" readonly></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-form-item prop="prop" :label="labelName">
|
||||||
|
<template v-if="config.familyInfo == 2">
|
||||||
|
<el-collapse v-model="activeNames">
|
||||||
|
<el-collapse-item title="点击可展开详细信息" name="1">
|
||||||
|
<el-card shadow="never">
|
||||||
|
<el-table :data="formData.companionList">
|
||||||
|
<el-table-column label="姓名" prop="userName"></el-table-column>
|
||||||
|
<el-table-column label="性别" prop="sex"></el-table-column>
|
||||||
|
<el-table-column label="身份证号" prop="idCard"></el-table-column>
|
||||||
|
<el-table-column label="年龄" prop="age"></el-table-column>
|
||||||
|
<el-table-column label="床型" prop="bedType">
|
||||||
|
<template scope="{row}">
|
||||||
|
{{ row.bedInfo.bedType }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="床位" prop="bedNum">
|
||||||
|
<template scope="{row}">
|
||||||
|
{{ row.bedInfo.bedNum }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="意向拼床人" prop="otherSleepUser">
|
||||||
|
<template scope="{row}">
|
||||||
|
{{ row.bedInfo.otherSleepUser ?
|
||||||
|
row.bedInfo.otherSleepUser : '暂无' }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="关系" prop="relation"></el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</el-card>
|
||||||
|
</el-collapse-item>
|
||||||
|
</el-collapse>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<el-input v-model="formData.bedType" readonly></el-input>
|
||||||
|
</template>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item prop="travelLine" :label="lineLabelName">
|
||||||
|
<el-select v-model="formData.takePartInLineId" filterable clearable
|
||||||
|
placeholder="请选择线路"
|
||||||
|
@change="validateLine"
|
||||||
|
style="width: 100%">
|
||||||
|
<el-option v-for="item in unionSelectLines"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.lineName + '-' + item.regionalNature + '【' + item.lotName + '】' + '(' + item.playStartTime + '至' + item.playEndTime + ')' + '(' + item.signUpMode + ')'"
|
||||||
|
:value="item.id">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- <el-form-item prop="specificTime" label="出行时间" v-if="pageForm.state==='3'">-->
|
||||||
|
<!-- <el-select v-model="formData.specificTime" filterable clearable-->
|
||||||
|
<!-- placeholder="请选择出行时间"-->
|
||||||
|
<!-- style="width: 100%">-->
|
||||||
|
<!-- <el-option v-for="item in editSpecificTimes"-->
|
||||||
|
<!-- :key="item"-->
|
||||||
|
<!-- :label="item"-->
|
||||||
|
<!-- :value="item">-->
|
||||||
|
<!-- </el-option>-->
|
||||||
|
<!-- </el-select>-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
|
</el-form>
|
||||||
|
<template #footer>
|
||||||
|
<div class="dialog-footer">
|
||||||
|
<el-button @click="visible = false">取 消</el-button>
|
||||||
|
<el-button type="primary" @click="onSubmit">确 定</el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
`,
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
visible: false,
|
||||||
|
year: null,
|
||||||
|
config: {},
|
||||||
|
formData: {},
|
||||||
|
formRules: {},
|
||||||
|
labelName: null,
|
||||||
|
lineLabelName: '线路',
|
||||||
|
unionSelectLines: [],
|
||||||
|
activeNames: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async onOpen(id, year) {
|
||||||
|
this.year = year
|
||||||
|
this.visible = true
|
||||||
|
this.getUnionSelectLine()
|
||||||
|
await this.getModifyConfig()
|
||||||
|
const {code, msg, data} = await $.get("/platform/theRapyRecuperation/schoolUnionUserQuery/findOne", {id})
|
||||||
|
if (code === 0) {
|
||||||
|
this.formData = data
|
||||||
|
if (this.config.familyInfo === 2) {
|
||||||
|
this.labelName = "家属信息"
|
||||||
|
} else {
|
||||||
|
this.editFormData.bedType = data.familyNumber
|
||||||
|
this.labelName = "家属数量"
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.$message.error(msg)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
async getModifyConfig() {
|
||||||
|
const {code, data, msg} = await $.post('/platform/theRapyRecuperation/TheRapyConfig/findOne')
|
||||||
|
if (code === 0) {
|
||||||
|
this.config = data
|
||||||
|
} else {
|
||||||
|
this.$message.error(msg)
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
async getUnionSelectLine() {
|
||||||
|
const resp = await $.post('/platform/theRapyRecuperation/user/query/getUnionSelectLine', {
|
||||||
|
year: this.year,
|
||||||
|
signUpMode: 1,
|
||||||
|
})
|
||||||
|
if (resp.code === 0) {
|
||||||
|
this.unionSelectLines = resp.data
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
async validateLine() {
|
||||||
|
const resp = await $.post('/platform/theRapyRecuperation/line/enroll/validSignUpInfo'
|
||||||
|
, {enroll: JSON.stringify(this.editFormData)})
|
||||||
|
if (resp.code !== 0) {
|
||||||
|
this.$message.warning(resp.msg)
|
||||||
|
this.formData.takePartInLineId = ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onSubmit() {
|
||||||
|
this.$refs.formRef.validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
this.$confirm('您确定要修改报名信息吗?', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
}).then(async () => {
|
||||||
|
if (!this.formData.takePartInLineId && !this.formData.takePartInBaseManagementId) {
|
||||||
|
this.$message.warning('请选择线路')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
const {code,msg} = await $.post('/platform/theRapyRecuperation/user/query/doEdit', this.formData)
|
||||||
|
if (code === 0) {
|
||||||
|
this.$message.success(msg)
|
||||||
|
this.visible = false
|
||||||
|
this.$emit('refresh')
|
||||||
|
} else {
|
||||||
|
this.$message.error(msg)
|
||||||
|
}
|
||||||
|
}).catch()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
+463
@@ -0,0 +1,463 @@
|
|||||||
|
<!--#
|
||||||
|
layout("/layouts/platform.html"){
|
||||||
|
#-->
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.filter-container {
|
||||||
|
margin-bottom: 20px;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.filter-container .el-form {
|
||||||
|
padding: 10px 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Flex布局样式 */
|
||||||
|
.form-row {
|
||||||
|
display: flex;
|
||||||
|
gap: 20px;
|
||||||
|
margin-bottom: 22px;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-row .el-form-item {
|
||||||
|
flex: 1;
|
||||||
|
min-width: 240px;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex-grow-1 {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.route-line {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 22px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.route-line-title {
|
||||||
|
width: 90px;
|
||||||
|
text-align: right;
|
||||||
|
padding-right: 12px;
|
||||||
|
color: #606266;
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.route-line-content {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.route-radio-group {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.route-radio-group .el-radio {
|
||||||
|
margin-right: 0;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button-container {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
padding-top: 15px;
|
||||||
|
border-top: 1px dashed #ebeef5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button-container .el-button {
|
||||||
|
padding-left: 25px;
|
||||||
|
padding-right: 25px;
|
||||||
|
margin: 0 15px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<div id="app" v-cloak>
|
||||||
|
<guava>
|
||||||
|
<el-card shadow="never" class="filter-container">
|
||||||
|
<el-form :model="pageForm" ref="pageFormRef" label-width="90px" size="medium">
|
||||||
|
<div class="form-row">
|
||||||
|
<el-form-item label="年度">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="pageForm.year"
|
||||||
|
type="year"
|
||||||
|
placeholder="选择年度"
|
||||||
|
value-format="yyyy"
|
||||||
|
style="width: 100%">
|
||||||
|
</el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="姓名">
|
||||||
|
<el-input v-model="pageForm.userName" placeholder="请输入姓名" clearable
|
||||||
|
prefix-icon="el-icon-user"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="工号">
|
||||||
|
<el-input v-model="pageForm.loginName" placeholder="请输入工号" clearable
|
||||||
|
prefix-icon="el-icon-postcard"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-row">
|
||||||
|
<el-form-item label="分工会">
|
||||||
|
<el-select v-model="pageForm.unionId"
|
||||||
|
@change="doSearch"
|
||||||
|
placeholder="请选择所属工会"
|
||||||
|
filterable
|
||||||
|
clearable
|
||||||
|
style="width: 100%">
|
||||||
|
<el-option
|
||||||
|
v-for="item in unionOptions"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.unionname"
|
||||||
|
:value="item.id">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="route-line">
|
||||||
|
<div class="route-line-title">区域</div>
|
||||||
|
<div class="route-line-content">
|
||||||
|
<el-radio-group @change="doSearch"
|
||||||
|
size="small"
|
||||||
|
v-model="pageForm.regionalNature">
|
||||||
|
<el-radio label="" border>全部</el-radio>
|
||||||
|
<el-radio label="省内" border>省内</el-radio>
|
||||||
|
<el-radio label="省外" border>省外</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-row">
|
||||||
|
<el-form-item label="线路选择">
|
||||||
|
<el-select v-model="pageForm.takePartInLineId" placeholder="请选择线路" clearable
|
||||||
|
style="width: 100%">
|
||||||
|
<el-option
|
||||||
|
v-for="item in takePartInLines"
|
||||||
|
:key="item.takePartInLineId"
|
||||||
|
:label="item.lineName+'('+item.unionName+')'"
|
||||||
|
:value="item.takePartInLineId">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="标段">
|
||||||
|
<el-select v-model="pageForm.lotId" placeholder="请选择标段" clearable style="width: 100%">
|
||||||
|
<el-option
|
||||||
|
v-for="item in config.lots"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.lotName"
|
||||||
|
:value="item.id">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item class="flex-grow-1">
|
||||||
|
</el-form-item>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="button-container">
|
||||||
|
<el-button type="primary" icon="el-icon-search" round @click="doSearch">查询</el-button>
|
||||||
|
<el-button icon="el-icon-refresh" round @click="resetQuery">重置</el-button>
|
||||||
|
</div>
|
||||||
|
</el-form>
|
||||||
|
</el-card>
|
||||||
|
|
||||||
|
<el-card shadow="never" class="mt10">
|
||||||
|
<table-tool label="人员列表" :app="this" ref="table_tool">
|
||||||
|
<template #func>
|
||||||
|
<!-- <el-button icon="el-icon-s-promotion" @click="openImport" size="small" type="primary">参加人员导入-->
|
||||||
|
<!-- </el-button>-->
|
||||||
|
<el-button icon="el-icon-s-promotion" size="small" type="primary" @click="doExport">
|
||||||
|
导出
|
||||||
|
</el-button>
|
||||||
|
<el-button icon="el-icon-s-promotion" size="small" type="primary"
|
||||||
|
@click="openSetUpPart"
|
||||||
|
>设置参加人员
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</table-tool>
|
||||||
|
<el-table :data="tableData" row-key="id" style="width: 100%" ref="tableRef">
|
||||||
|
<el-table-column reserve-selection type="selection" width="55"></el-table-column>
|
||||||
|
<el-table-column align="center" header-align="center" type="index" label="序号" :index="indexMethod"
|
||||||
|
width="80px"></el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
header-align="center"
|
||||||
|
v-for="column in tableColumns"
|
||||||
|
show-overflow-tooltip
|
||||||
|
:label="column.label"
|
||||||
|
:prop="column.prop"
|
||||||
|
:sortable="column.sortable"
|
||||||
|
>
|
||||||
|
<template scope="{row}" v-if="column.prop=='lineName'">
|
||||||
|
<el-link type="primary" @click="openLine(row)">{{row.lineName}}
|
||||||
|
</el-link>
|
||||||
|
</template>
|
||||||
|
<template scope="{row}" v-else-if="column.prop=='isFamily'">
|
||||||
|
<el-link v-if="!row.familyNumber" type="primary" @click="openUser(row)">
|
||||||
|
{{row.isFamily?'携带':'未携带'}}({{row.isFamily}})
|
||||||
|
</el-link>
|
||||||
|
<el-link v-else type="primary">
|
||||||
|
{{row.familyNumber?'携带':'未携带'}}({{row.familyNumber}})
|
||||||
|
</el-link>
|
||||||
|
</template>
|
||||||
|
<template scope="{row}" v-else-if="column.prop=='lineNum'">
|
||||||
|
|
||||||
|
<el-link v-if="!row.familyNumber" type="primary" @click="openUser(row)">
|
||||||
|
{{row.lineNum}}({{row.signUpUserFamilyNum}})
|
||||||
|
</el-link>
|
||||||
|
<el-link v-else type="primary">
|
||||||
|
{{row.lineNum}}({{row.familyNumber}})
|
||||||
|
</el-link>
|
||||||
|
|
||||||
|
|
||||||
|
</template>
|
||||||
|
<template scope="{row}" v-else-if="column.prop=='signUpMode'">
|
||||||
|
{{signUpModeName(row.signUpMode)}}
|
||||||
|
</template>
|
||||||
|
<template scope="{row}" v-else-if="column.prop=='agencyNum'">
|
||||||
|
<el-link type="primary" @click="openApplyUser(row)">{{row.agencyNum}}
|
||||||
|
</el-link>
|
||||||
|
</template>
|
||||||
|
<template scope="{row}" v-else-if="column.prop=='times'">
|
||||||
|
<div v-if="row.playStartTime">{{row.playStartTime}}</div>
|
||||||
|
<div v-else>{{row.playStartTime1}}</div>
|
||||||
|
</template>
|
||||||
|
<template scope="{row}" v-else-if="column.prop=='isTakePartIn'">
|
||||||
|
{{row.isTakePartIn?'已参加':'未参加'}}
|
||||||
|
</template>
|
||||||
|
<template scope="{row}" v-else-if="column.prop=='stateId'">
|
||||||
|
<span v-if="row.stateId">
|
||||||
|
<vi-table-state :state="row"></vi-table-state>
|
||||||
|
</span>-->
|
||||||
|
<sapn v-else style="color: #67C23A">暂无</sapn>
|
||||||
|
</template>
|
||||||
|
<template scope="{row}" v-else-if="column.prop=='lineOrMaName'">
|
||||||
|
{{row.lineName?row.lineName:row.baseName?row.baseName:row.travelAgencyName}}
|
||||||
|
</template>
|
||||||
|
<template scope="{row:{officialWebsite}}"
|
||||||
|
v-else-if="column.prop==='officialWebsite'">
|
||||||
|
<a :href="officialWebsite" class="text-primary" target="_blank">
|
||||||
|
{{officialWebsite}}
|
||||||
|
</a>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column v-if="pageForm.state=='1'||pageForm.state=='3'" align="center"
|
||||||
|
prop="lotName"
|
||||||
|
show-overflow-tooltip
|
||||||
|
header-align="center"
|
||||||
|
label="标段"
|
||||||
|
sortable>
|
||||||
|
<template scope="{row}">
|
||||||
|
{{row.lotName}}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="操作" width="250px">
|
||||||
|
<template scope="{row}">
|
||||||
|
<el-button @click="openView(row)" size="mini" type="primary">
|
||||||
|
查看
|
||||||
|
</el-button>
|
||||||
|
<el-button @click="openEdit(row)" size="mini" type="primary">编辑
|
||||||
|
</el-button>
|
||||||
|
<el-button @click="onDelete(row)" size="mini" type="danger">删除
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<!--#include("/layouts/pagination.html"){}#-->
|
||||||
|
</el-card>
|
||||||
|
</guava>
|
||||||
|
|
||||||
|
<el-dialog title="查看报名信息" :visible.sync="viewVisible" top="50px">
|
||||||
|
<enroll-info ref="viewEnrollInfoRef"></enroll-info>
|
||||||
|
</el-dialog>
|
||||||
|
|
||||||
|
<set-up-part ref="setUpRef"></set-up-part>
|
||||||
|
|
||||||
|
<edit-form ref="editRef" @refresh="doSearch"></edit-form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
<!--#include('setUpPart.js'){}#-->
|
||||||
|
<!--#include('editForm.js'){}#-->
|
||||||
|
|
||||||
|
new Vue({
|
||||||
|
el: '#app',
|
||||||
|
mixins: [initTableMixins],
|
||||||
|
components: {
|
||||||
|
'enroll-info': httpVueLoader('/components/theRapyRecuperation/Enrollinfo.vue?v=' + new Date().getTime()),
|
||||||
|
'line-info': httpVueLoader('/components/theRapyRecuperation/LineInfo.vue'),
|
||||||
|
'set-up-part': setUpPart,
|
||||||
|
'edit-form': editForm
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
pageForm: {
|
||||||
|
year: new Date().getFullYear().toString(),
|
||||||
|
loginName: '',
|
||||||
|
userName: '',
|
||||||
|
takePartInLineId: '',
|
||||||
|
unionId: '',
|
||||||
|
signUpMode: 1,
|
||||||
|
lotId: '',
|
||||||
|
regionalNature: ''
|
||||||
|
},
|
||||||
|
takePartInLines: [],
|
||||||
|
tableColumns: [
|
||||||
|
{prop: 'loginName', label: '一卡通号'},
|
||||||
|
{prop: 'userName', label: '姓名'},
|
||||||
|
{prop: 'unitName', label: '单位', sortable: true},
|
||||||
|
{prop: 'unionName', label: '工会', sortable: true},
|
||||||
|
{prop: 'lineOrMaName', label: '线路'},
|
||||||
|
{prop: 'times', label: '出行时间'},
|
||||||
|
{prop: 'isFamily', label: '是否携带家属'},
|
||||||
|
{prop: 'isTakePartIn', label: '是否参加'}
|
||||||
|
],
|
||||||
|
viewVisible: false,
|
||||||
|
unionOptions: [],
|
||||||
|
config: {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
handleQuery() {
|
||||||
|
console.log('查询参数:', this.pageForm);
|
||||||
|
// 查询逻辑
|
||||||
|
},
|
||||||
|
resetQuery() {
|
||||||
|
this.pageForm = {
|
||||||
|
year: new Date().getFullYear().toString(),
|
||||||
|
loginName: '',
|
||||||
|
userName: '',
|
||||||
|
takePartInLineId: '',
|
||||||
|
unionId: '',
|
||||||
|
signUpMode: 1,
|
||||||
|
lotId: '',
|
||||||
|
regionalNature: '',
|
||||||
|
pageNumber: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
totalCount: 0,
|
||||||
|
}
|
||||||
|
this.doSearch()
|
||||||
|
},
|
||||||
|
|
||||||
|
signUpModeName(val) {
|
||||||
|
return null
|
||||||
|
},
|
||||||
|
|
||||||
|
openApplyUser(row) {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
openView(row) {
|
||||||
|
this.viewVisible = true
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$refs.viewEnrollInfoRef.openView(row.id)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
openEdit(row) {
|
||||||
|
this.$refs.editRef.onOpen(row.id)
|
||||||
|
},
|
||||||
|
|
||||||
|
onDelete(row) {
|
||||||
|
this.$confirm("您确定要删除【<span style='color: red'>" + row.userName + "</span>】的信息吗?", '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
dangerouslyUseHTMLString: true,
|
||||||
|
type: 'warning'
|
||||||
|
}).then(async () => {
|
||||||
|
const {
|
||||||
|
code,
|
||||||
|
msg
|
||||||
|
} = await $.post('/platform/theRapyRecuperation/schoolUnionUserQuery/deleteMyEnrollInfoById', {
|
||||||
|
id: row.id
|
||||||
|
})
|
||||||
|
if (code === 0) {
|
||||||
|
this.doSearch()
|
||||||
|
this.$message.success(msg)
|
||||||
|
} else {
|
||||||
|
this.$message.warning(resp.msg)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
openImport() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
doExport() {
|
||||||
|
const {year, userName, loginName, unionId, signUpMode, regionalNature, takePartInLineId, lotId} = this.pageForm
|
||||||
|
debugger
|
||||||
|
window.open('/platform/theRapyRecuperation/schoolUnionUserQuery/exportXlsx?year=' +
|
||||||
|
year
|
||||||
|
+ '&userName=' + userName
|
||||||
|
+ '&loginName=' + loginName
|
||||||
|
+ '&unionId=' + unionId
|
||||||
|
+ '&signUpMode=' + signUpMode
|
||||||
|
+ '®ionalNature=' + regionalNature
|
||||||
|
+ '&takePartInLineId=' + takePartInLineId
|
||||||
|
+ '&lotId=' + lotId)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 打开设置参加人员
|
||||||
|
openSetUpPart() {
|
||||||
|
const selection = this.$refs.tableRef.selection
|
||||||
|
console.log(selection)
|
||||||
|
if (selection.length === 0) {
|
||||||
|
this.$message.error('请选择要设置的人员')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.$refs.setUpRef.onOpen(selection)
|
||||||
|
},
|
||||||
|
|
||||||
|
getConfig() {
|
||||||
|
$.post('/platform/theRapyRecuperation/TheRapyConfig/findOne').then((res) => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.config = res.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
signUpModeChange(val) {
|
||||||
|
this.pageForm.takePartInLineId = ''
|
||||||
|
this.getLines()
|
||||||
|
this.doSearch()
|
||||||
|
},
|
||||||
|
|
||||||
|
getLines() {
|
||||||
|
$.post('/platform/theRapyRecuperation/schoolUnionUserQuery/listLine', {
|
||||||
|
year: this.pageForm.year,
|
||||||
|
unionId: this.pageForm.unionId,
|
||||||
|
signUpMode: this.pageForm.signUpMode,
|
||||||
|
regionalNature: this.pageForm.regionalNature
|
||||||
|
}).then(res => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.takePartInLines = res.data
|
||||||
|
} else {
|
||||||
|
this.$message.error(res.msg)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
doSearch(){
|
||||||
|
this.getLines()
|
||||||
|
this.tableKey = new Date().getTime()
|
||||||
|
this.pageForm.pageNumber = 1
|
||||||
|
this.pageData()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async created() {
|
||||||
|
this.doSearch()
|
||||||
|
this.getConfig()
|
||||||
|
this.unionOptions = await getUnions()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<!--#
|
||||||
|
}
|
||||||
|
#-->
|
||||||
+147
@@ -0,0 +1,147 @@
|
|||||||
|
const setUpPart = {
|
||||||
|
template: /*language=HTML*/ `
|
||||||
|
<el-dialog :visible.sync="visible" title="设置参加人员" top="50px">
|
||||||
|
<el-row class="text-primary p20">
|
||||||
|
选择标段/参加时间(设置前请先勾选需要设置的用户)
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-row type="flex" style="column-gap: 10px">
|
||||||
|
<el-select v-model="lotId" filterable clearable
|
||||||
|
placeholder="请选择标段"
|
||||||
|
style="width: 100%"
|
||||||
|
@change="lotChange">
|
||||||
|
<el-option v-for="item in config.lots"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.lotName"
|
||||||
|
:value="item.id">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
<el-date-picker
|
||||||
|
v-model="takePartInTime"
|
||||||
|
type="date"
|
||||||
|
style="width: 100%"
|
||||||
|
@change="takePartInTimeChange"
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
placeholder="请选择参加时间">
|
||||||
|
</el-date-picker>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-row class="mt10">
|
||||||
|
<el-table :data="tableData" border ref="tableRef" row-key="id">
|
||||||
|
<el-table-column type="selection" width="55"></el-table-column>
|
||||||
|
<el-table-column type="index" label="序号" width="80"></el-table-column>
|
||||||
|
<el-table-column prop="loginName" label="一卡通号"></el-table-column>
|
||||||
|
<el-table-column prop="userName" label="姓名"></el-table-column>
|
||||||
|
<el-table-column prop="unitName" label="单位"></el-table-column>
|
||||||
|
<el-table-column prop="unionName" label="工会"></el-table-column>
|
||||||
|
<el-table-column prop="signingUptime" label="报名时间"></el-table-column>
|
||||||
|
<el-table-column prop="takePartInTime" label="参加时间"></el-table-column>
|
||||||
|
<el-table-column prop="lotName" label="标段"></el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<template #footer>
|
||||||
|
<el-button @click="visible = false">取消</el-button>
|
||||||
|
<el-button type="primary" @click="onSubmit">确定</el-button>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
`,
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
visible: false,
|
||||||
|
config: {},
|
||||||
|
tableData: [],
|
||||||
|
lotId: null,
|
||||||
|
takePartInTime: null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
onOpen(selection) {
|
||||||
|
this.visible = true
|
||||||
|
this.tableData = JSON.parse(JSON.stringify(selection))
|
||||||
|
this.getModifyConfig()
|
||||||
|
},
|
||||||
|
|
||||||
|
async getModifyConfig() {
|
||||||
|
const res = await $.post('/platform/theRapyRecuperation/TheRapyConfig/findOne')
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.config = res.data
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// 标段改变
|
||||||
|
lotChange(val) {
|
||||||
|
const selection = this.$refs.tableRef.selection
|
||||||
|
if (selection.length === 0) {
|
||||||
|
this.$message.error('请选择要设置的人员')
|
||||||
|
this.lotId = null
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (!val) {
|
||||||
|
this.$refs.tableRef.clearSelection()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
const lot = this.config.lots.find(v => v.id === val)
|
||||||
|
this.tableData.map((v, index) => {
|
||||||
|
this.$set(this.tableData[index], "lotId", val)
|
||||||
|
this.$set(this.tableData[index], "lotName", lot.lotName)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
// 参加时间改变
|
||||||
|
takePartInTimeChange(val) {
|
||||||
|
const selection = this.$refs.tableRef.selection
|
||||||
|
if (selection.length === 0) {
|
||||||
|
this.$message.error('请选择要设置的人员')
|
||||||
|
this.takePartInTime = null
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (!val) {
|
||||||
|
this.$refs.tableRef.clearSelection()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.tableData.map((v, index) => {
|
||||||
|
this.$set(this.tableData[index], "takePartInTime", val)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
// 确定提交
|
||||||
|
onSubmit() {
|
||||||
|
// 检查哪几条数据填写不完整
|
||||||
|
this.tableData.forEach((v, index) => {
|
||||||
|
if (!v.lotId || !v.takePartInTime) {
|
||||||
|
this.$message.error('第' + (index + 1) + '行数据填写不完整')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const data = this.tableData.map((v, index) => {
|
||||||
|
return{
|
||||||
|
lotId: v.lotId,
|
||||||
|
takePartInTime: v.takePartInTime,
|
||||||
|
id: v.id
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
this.$confirm('确定要提交吗?', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
}).then(async res => {
|
||||||
|
const {
|
||||||
|
code,
|
||||||
|
msg
|
||||||
|
} = await $.post("/platform/theRapyRecuperation/schoolUnionUserQuery/setUpParticipants", {data: JSON.stringify(data)})
|
||||||
|
if (code === 0) {
|
||||||
|
this.$message.success(msg)
|
||||||
|
this.$refs.tableRef.clearSelection()
|
||||||
|
this.visible = false
|
||||||
|
} else {
|
||||||
|
this.$message.error(msg)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
+103
-37
@@ -142,7 +142,8 @@ layout("/layouts/platform.html"){
|
|||||||
|
|
||||||
|
|
||||||
<el-card shadow="never" class="mt10">
|
<el-card shadow="never" class="mt10">
|
||||||
<table-tool label="" :app="this" ref="table_tool">
|
<table-tool label="温馨提醒:成团确认后,将进入审核流程,报名人员不能再进行取消报名的操作" :app="this"
|
||||||
|
ref="table_tool">
|
||||||
<template #func>
|
<template #func>
|
||||||
<el-button icon="el-icon-s-promotion" size="small" type="primary"
|
<el-button icon="el-icon-s-promotion" size="small" type="primary"
|
||||||
@click="doExport"
|
@click="doExport"
|
||||||
@@ -174,16 +175,21 @@ layout("/layouts/platform.html"){
|
|||||||
<el-link type="primary" @click="openLine(row)">{{row.lineName}}
|
<el-link type="primary" @click="openLine(row)">{{row.lineName}}
|
||||||
</el-link>
|
</el-link>
|
||||||
</template>
|
</template>
|
||||||
<template scope="{row}" v-if="column.prop=='signUpMode'">
|
<template scope="{row}" v-else-if="column.prop=='signUpMode'">
|
||||||
<span>{{row.signUpMode == '1' ? '校工会组织' : '分工会组织'}}</span>
|
<span v-if="row.signUpMode == '1'">分工会组织</span>
|
||||||
|
<span v-if="row.signUpMode == '2'">校工会组织</span>
|
||||||
|
<span v-if="row.signUpMode == '3'">个人组织</span>
|
||||||
</template>
|
</template>
|
||||||
<template scope="{row}" v-else-if="column.prop=='lineNum'">
|
<template scope="{row}" v-else-if="column.prop=='lineNum'">
|
||||||
<el-link v-if="!row.familyNumber" type="primary" @click="openUserData(row)">
|
<template v-if="!row.familyNumber" type="primary">
|
||||||
{{row.lineNum + row.signUpUserFamilyNum}}({{row.signUpUserFamilyNum}})
|
{{row.lineNum + row.signUpUserFamilyNum}}({{row.signUpUserFamilyNum}})
|
||||||
</el-link>
|
</template>
|
||||||
<el-link v-else type="primary">
|
<template v-else type="primary">
|
||||||
{{row.lineNum + row.familyNumber}}({{row.familyNumber}})
|
{{row.lineNum + row.familyNumber}}({{row.familyNumber}})
|
||||||
</el-link>
|
</template>
|
||||||
|
</template>
|
||||||
|
<template scope="{row}" v-else-if="column.prop=='stateName'">
|
||||||
|
{{row.stateName?row.stateName:'待成团'}}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" width="380px">
|
<el-table-column label="操作" width="380px">
|
||||||
@@ -192,17 +198,32 @@ layout("/layouts/platform.html"){
|
|||||||
<el-button @click="openUserData(row)" size="mini" type="primary">
|
<el-button @click="openUserData(row)" size="mini" type="primary">
|
||||||
查看人员
|
查看人员
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button size="mini" type="primary" @click="sendSuccess(row)">
|
|
||||||
发送成团通知
|
<el-dropdown class="ml10" trigger="click">
|
||||||
</el-button>
|
<el-button size="mini" type="primary">
|
||||||
|
成团确认<i class="el-icon-arrow-down el-icon--right"></i>
|
||||||
|
</el-button>
|
||||||
|
<el-dropdown-menu slot="dropdown">
|
||||||
|
<el-dropdown-item @click.native="sendSuccess(row, true)"
|
||||||
|
:disabled="![null,7703,7710,7715].includes(row.auditState)">
|
||||||
|
发送通知
|
||||||
|
</el-dropdown-item>
|
||||||
|
<el-dropdown-item @click.native="sendSuccess(row, false)"
|
||||||
|
:disabled="![null,7703,7710,7715].includes(row.auditState)">
|
||||||
|
不发送通知
|
||||||
|
</el-dropdown-item>
|
||||||
|
</el-dropdown-menu>
|
||||||
|
</el-dropdown>
|
||||||
|
|
||||||
<el-dropdown class="ml10 mr10" trigger="click">
|
<el-dropdown class="ml10 mr10" trigger="click">
|
||||||
<el-button size="mini" type="primary">
|
<el-button size="mini" type="primary">
|
||||||
发送未成团通知<i class="el-icon-arrow-down el-icon--right"></i>
|
发送未成团通知<i class="el-icon-arrow-down el-icon--right"></i>
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-dropdown-menu slot="dropdown">
|
<el-dropdown-menu slot="dropdown">
|
||||||
<el-dropdown-item @click.native="sendFail(row, true)">保留报名记录</el-dropdown-item>
|
<el-dropdown-item @click.native="sendFail(row, true)">保留报名记录
|
||||||
<el-dropdown-item @click.native="sendFail(row, false)">删除报名记录</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
|
<el-dropdown-item @click.native="sendFail(row, false)">删除报名记录
|
||||||
|
</el-dropdown-item>
|
||||||
</el-dropdown-menu>
|
</el-dropdown-menu>
|
||||||
</el-dropdown>
|
</el-dropdown>
|
||||||
</template>
|
</template>
|
||||||
@@ -214,7 +235,8 @@ layout("/layouts/platform.html"){
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template #public>
|
<template #public>
|
||||||
<line-info ref="viewLineInfo"></line-info>
|
<!-- <line-info ref="viewLineInfo"></line-info>-->
|
||||||
|
<line-audit-info ref="lineAuditViewInfo"></line-audit-info>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template #edit>
|
<template #edit>
|
||||||
@@ -223,17 +245,18 @@ layout("/layouts/platform.html"){
|
|||||||
<div class="search-item">
|
<div class="search-item">
|
||||||
<div class="search-item-label">工号姓名</div>
|
<div class="search-item-label">工号姓名</div>
|
||||||
<div class="search-item-option">
|
<div class="search-item-option">
|
||||||
<el-input v-model="userPageForm.searchKeyword" maxlength="10" clearable></el-input>
|
<el-input v-model="userPageForm.searchKeyword" maxlength="10" clearable
|
||||||
|
placeholder="请输入工号或姓名查询"></el-input>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="search-item"
|
<div class="search-item"
|
||||||
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('SchoolUnionMemberAdmin')}">
|
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionAdmin')||@shiro.hasRole('SchoolUnionMemberAdmin')}">
|
||||||
<div class="search-item-label">所属工会:</div>
|
<div class="search-item-label">所属工会:</div>
|
||||||
<div class="search-item-option">
|
<div class="search-item-option">
|
||||||
<el-select @change="flushUnits" @clear="flushUnits" clearable="true"
|
<el-select @change="flushUnits" @clear="flushUnits" clearable="true"
|
||||||
filterable="true"
|
filterable="true"
|
||||||
placeholder="所属工会" style="width: 100%;"
|
placeholder="请选择所属工会" style="width: 100%;"
|
||||||
v-model="userPageForm.unionId">
|
v-model="userPageForm.unionId">
|
||||||
<el-option :label="item.unionname" :value="item.id" v-for="item in unions"></el-option>
|
<el-option :label="item.unionname" :value="item.id" v-for="item in unions"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
@@ -243,7 +266,7 @@ layout("/layouts/platform.html"){
|
|||||||
<div class="search-item">
|
<div class="search-item">
|
||||||
<div class="search-item-label">所属单位:</div>
|
<div class="search-item-label">所属单位:</div>
|
||||||
<div class="search-item-option">
|
<div class="search-item-option">
|
||||||
<el-select clearable="true" filterable="true" placeholder="所属单位"
|
<el-select clearable="true" filterable="true" placeholder="请选择所属单位"
|
||||||
style="width: 100%;"
|
style="width: 100%;"
|
||||||
v-model="userPageForm.unitId">
|
v-model="userPageForm.unitId">
|
||||||
<el-option :label="item.name" :value="item.id" v-for="item in units"></el-option>
|
<el-option :label="item.name" :value="item.id" v-for="item in units"></el-option>
|
||||||
@@ -276,6 +299,18 @@ layout("/layouts/platform.html"){
|
|||||||
{{row.familyNumber?'携带':'未携带'}}({{row.familyNumber}})
|
{{row.familyNumber?'携带':'未携带'}}({{row.familyNumber}})
|
||||||
</el-link>
|
</el-link>
|
||||||
</template>
|
</template>
|
||||||
|
<template scope="{row}" v-else-if="column.prop=='sign'">
|
||||||
|
<el-image v-if="row.sign"
|
||||||
|
style="width: 100px; height: 50px"
|
||||||
|
:src="'/file_server/fileStreamPreview?id=' +row.sign"
|
||||||
|
fit="contain"></el-image>
|
||||||
|
<span v-else>暂无</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="操作" width="100">
|
||||||
|
<template scope="{row}">
|
||||||
|
<el-button @click="deleteJoinUser(row)" size="mini" type="danger">删除</el-button>
|
||||||
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
<el-row class="el-pagination-container" style="margin-bottom: 0px">
|
<el-row class="el-pagination-container" style="margin-bottom: 0px">
|
||||||
@@ -316,35 +351,37 @@ layout("/layouts/platform.html"){
|
|||||||
{prop: 'lineName', label: '线路名称', sortable: true, width: 200},
|
{prop: 'lineName', label: '线路名称', sortable: true, width: 200},
|
||||||
{prop: 'linePlayTime', label: '出行时间', width: 180},
|
{prop: 'linePlayTime', label: '出行时间', width: 180},
|
||||||
{prop: 'travelAgencyName', label: '承担旅行社', sortable: true, width: 180},
|
{prop: 'travelAgencyName', label: '承担旅行社', sortable: true, width: 180},
|
||||||
{prop: 'unionname', label: '选择线路工会', sortable: true},
|
{prop: 'signUpMode', label: '组织形式', sortable: true},
|
||||||
{prop: 'regionalNature', label: '线路类型', sortable: true},
|
{prop: 'regionalNature', label: '线路类型', sortable: true},
|
||||||
{prop: 'contact', label: '联系人', sortable: true, checked: 0},
|
{prop: 'username', label: '发起人', sortable: true},
|
||||||
{prop: 'contactMobileNumber', label: '联系方式', checked: 0},
|
{prop: 'unionname', label: '所属工会', sortable: true},
|
||||||
{prop: 'estimatedFamilyNumbers', label: '最少成团人数', width: 80},
|
{prop: 'estimatedFamilyNumbers', label: '最少成团人数', width: 80},
|
||||||
{prop: 'lineNum', label: '报名人数(家属)'},
|
{prop: 'lineNum', label: '报名人数(家属)'},
|
||||||
|
{prop: 'stateName', label: '审核状态'},
|
||||||
],
|
],
|
||||||
|
|
||||||
modifyConfig: {},
|
modifyConfig: {},
|
||||||
lineList: [],
|
lineList: [],
|
||||||
unions: [],
|
unions: [],
|
||||||
units:[],
|
units: [],
|
||||||
signUpModeOptions: [
|
signUpModeOptions: [
|
||||||
{label: '校工会组织', value: 2},
|
{label: '校工会组织', value: 2},
|
||||||
{label: '分工会组织', value: 1},
|
{label: '分工会组织', value: 1},
|
||||||
],
|
],
|
||||||
|
|
||||||
userPageForm:{
|
userPageForm: {
|
||||||
pageNumber:1,
|
pageNumber: 1,
|
||||||
pageSize: 10
|
pageSize: 10
|
||||||
},
|
},
|
||||||
userData:[],
|
userData: [],
|
||||||
userDataTableColumns:[
|
userDataTableColumns: [
|
||||||
{prop: 'loginName', label: '工号'},
|
{prop: 'loginName', label: '工号'},
|
||||||
{prop: 'userName', label: '姓名'},
|
{prop: 'userName', label: '姓名'},
|
||||||
{prop: 'unionName', label: '所属工会'},
|
{prop: 'unionName', label: '所属工会'},
|
||||||
{prop: 'unitName', label: '所属单位', sortable: true},
|
{prop: 'unitName', label: '所属单位', sortable: true},
|
||||||
{prop: 'isFamily', label: '是否携带家属'},
|
{prop: 'isFamily', label: '是否携带家属'},
|
||||||
{prop: 'linePlayTime', label: '出行时间', sortable: true}
|
{prop: 'linePlayTime', label: '出行时间', sortable: true},
|
||||||
|
{prop: 'sign', label: '签字'}
|
||||||
],
|
],
|
||||||
|
|
||||||
lineUId: '',
|
lineUId: '',
|
||||||
@@ -356,9 +393,25 @@ layout("/layouts/platform.html"){
|
|||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
'enroll-info': httpVueLoader('/components/theRapyRecuperation/Enrollinfo.vue?v=1.0.1'),
|
'enroll-info': httpVueLoader('/components/theRapyRecuperation/Enrollinfo.vue?v=1.0.1'),
|
||||||
|
'line-audit-info': httpVueLoader('/components/theRapyRecuperation/LineAuditInfo.vue?v=' + new Date().getTime()),
|
||||||
'line-info': httpVueLoader('/components/theRapyRecuperation/LineInfo.vue')
|
'line-info': httpVueLoader('/components/theRapyRecuperation/LineInfo.vue')
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
deleteJoinUser(row) {
|
||||||
|
this.$confirm('您确定要删除' + row.userName + '的报名信息吗', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning',
|
||||||
|
dangerouslyUseHTMLString: true
|
||||||
|
}).then(async () => {
|
||||||
|
const resp = await $.post('/platform/theRapyRecuperation/statistics/deleteJoinUser', {id: row.id})
|
||||||
|
if (resp.code === 0) {
|
||||||
|
this.$message.success(resp.msg)
|
||||||
|
} else {
|
||||||
|
this.$message.warning(resp.msg)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
doExport() {
|
doExport() {
|
||||||
const {
|
const {
|
||||||
startYear,
|
startYear,
|
||||||
@@ -375,6 +428,7 @@ layout("/layouts/platform.html"){
|
|||||||
"&unionId=" + unionId +
|
"&unionId=" + unionId +
|
||||||
"&takePartInLineId=" + takePartInLineId +
|
"&takePartInLineId=" + takePartInLineId +
|
||||||
"&lotId=" + lotId +
|
"&lotId=" + lotId +
|
||||||
|
"&state=" + 1 +
|
||||||
"®ionalNature=" + regionalNature +
|
"®ionalNature=" + regionalNature +
|
||||||
"&satisfyPeople=true" +
|
"&satisfyPeople=true" +
|
||||||
"&types=" + JSON.stringify(['line']) +
|
"&types=" + JSON.stringify(['line']) +
|
||||||
@@ -404,15 +458,23 @@ layout("/layouts/platform.html"){
|
|||||||
this.getUnionSelectLine()
|
this.getUnionSelectLine()
|
||||||
this.doSearch()
|
this.doSearch()
|
||||||
},
|
},
|
||||||
async sendSuccess(row) {
|
async sendSuccess(row, type) {
|
||||||
this.$confirm("确定发送<span style='color: red'>成团通知</span>吗?", '提示', {
|
let message = '确定要成团吗?'
|
||||||
|
if (type) {
|
||||||
|
message += "此操作将会<span style='color: red'>发送通知</span>,请再次确认!";
|
||||||
|
}
|
||||||
|
this.$confirm(message, '提示', {
|
||||||
confirmButtonText: '确定',
|
confirmButtonText: '确定',
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
dangerouslyUseHTMLString: true
|
dangerouslyUseHTMLString: true
|
||||||
}).then(async () => {
|
}).then(async () => {
|
||||||
const resp = await $.post('/platform/theRapyRecuperation/statistics/sendSuccess', {id: row.lineUId})
|
const resp = await $.post('/platform/theRapyRecuperation/statistics/sendSuccess', {
|
||||||
|
id: row.lineUId,
|
||||||
|
type: type
|
||||||
|
})
|
||||||
if (resp.code === 0) {
|
if (resp.code === 0) {
|
||||||
|
this.doSearch()
|
||||||
this.$message.success(resp.msg)
|
this.$message.success(resp.msg)
|
||||||
} else {
|
} else {
|
||||||
this.$message.warning(resp.msg)
|
this.$message.warning(resp.msg)
|
||||||
@@ -426,7 +488,10 @@ layout("/layouts/platform.html"){
|
|||||||
type: 'warning',
|
type: 'warning',
|
||||||
dangerouslyUseHTMLString: true
|
dangerouslyUseHTMLString: true
|
||||||
}).then(async () => {
|
}).then(async () => {
|
||||||
const resp = await $.post('/platform/theRapyRecuperation/statistics/sendFail', {id: row.lineUId, type: type})
|
const resp = await $.post('/platform/theRapyRecuperation/statistics/sendFail', {
|
||||||
|
id: row.lineUId,
|
||||||
|
type: type
|
||||||
|
})
|
||||||
if (resp.code === 0) {
|
if (resp.code === 0) {
|
||||||
this.$message.success(resp.msg)
|
this.$message.success(resp.msg)
|
||||||
} else {
|
} else {
|
||||||
@@ -436,14 +501,15 @@ layout("/layouts/platform.html"){
|
|||||||
},
|
},
|
||||||
openLine(row) {
|
openLine(row) {
|
||||||
this.$refs.guava.public()
|
this.$refs.guava.public()
|
||||||
if (row.regionalNature === "省内") {
|
this.$refs.lineAuditViewInfo.init(row)
|
||||||
|
/*if (row.regionalNature === "省内") {
|
||||||
this.$refs.viewLineInfo.findOne(row.lineId, null)
|
this.$refs.viewLineInfo.findOne(row.lineId, null)
|
||||||
} else {
|
} else {
|
||||||
this.$refs.viewLineInfo.findOne(row.lineId, row.usUnionId)
|
this.$refs.viewLineInfo.findOne(row.lineId, row.usUnionId)
|
||||||
|
|
||||||
}
|
}*/
|
||||||
},
|
},
|
||||||
openUserData(row){
|
openUserData(row) {
|
||||||
this.lineUId = row.lineUId
|
this.lineUId = row.lineUId
|
||||||
this.$refs.guava.edit();
|
this.$refs.guava.edit();
|
||||||
this.getUserDataByLineId(row)
|
this.getUserDataByLineId(row)
|
||||||
@@ -468,7 +534,7 @@ layout("/layouts/platform.html"){
|
|||||||
},
|
},
|
||||||
async flushUnits() {
|
async flushUnits() {
|
||||||
this.$set(this.userData, "unitId", "")
|
this.$set(this.userData, "unitId", "")
|
||||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('SchoolUnionMemberAdmin')}" === 'true') {
|
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionAdmin')||@shiro.hasRole('SchoolUnionMemberAdmin')}" === 'true') {
|
||||||
this.units = await getUnits(this.userData.unionId)
|
this.units = await getUnits(this.userData.unionId)
|
||||||
} else {
|
} else {
|
||||||
this.units = await getUnits("${@shiro.getPrincipalProperty('unit').getUnionid()}")
|
this.units = await getUnits("${@shiro.getPrincipalProperty('unit').getUnionid()}")
|
||||||
@@ -482,10 +548,10 @@ layout("/layouts/platform.html"){
|
|||||||
this.userPageForm.pageNumber = val;
|
this.userPageForm.pageNumber = val;
|
||||||
this.getUserDataByLineId();
|
this.getUserDataByLineId();
|
||||||
},
|
},
|
||||||
async getUserDataByLineId(row){
|
async getUserDataByLineId(row) {
|
||||||
this.userPageForm.takePartLineId = this.lineUId
|
this.userPageForm.takePartLineId = this.lineUId
|
||||||
const resp = await $.post(loc() + '/getUserDateByLine',this.userPageForm)
|
const resp = await $.post(loc() + '/getUserDateByLine', this.userPageForm)
|
||||||
if (resp.code === 0){
|
if (resp.code === 0) {
|
||||||
this.userData = resp.data.list
|
this.userData = resp.data.list
|
||||||
this.userPageForm.totalCount = resp.data.totalCount
|
this.userPageForm.totalCount = resp.data.totalCount
|
||||||
}
|
}
|
||||||
|
|||||||
+268
@@ -0,0 +1,268 @@
|
|||||||
|
<!--#
|
||||||
|
layout("/layouts/platform.html"){
|
||||||
|
#-->
|
||||||
|
|
||||||
|
<div id="app" v-cloak>
|
||||||
|
<guava :edit_scroll="false" ref="guava">
|
||||||
|
<template>
|
||||||
|
<el-card shadow="never">
|
||||||
|
<div class="search">
|
||||||
|
|
||||||
|
<div class="search-item">
|
||||||
|
<div class="search-item-label">年度:</div>
|
||||||
|
<div class="search-item-option">
|
||||||
|
<el-date-picker
|
||||||
|
:clearable="false"
|
||||||
|
@change="yearChange"
|
||||||
|
placeholder="选择年"
|
||||||
|
style="width: 100%"
|
||||||
|
type="year"
|
||||||
|
v-model="pageForm.year"
|
||||||
|
value-format="yyyy">
|
||||||
|
</el-date-picker>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="search-item">
|
||||||
|
<div class="search-item-label">线路:</div>
|
||||||
|
<div class="search-item-option">
|
||||||
|
<el-select @change="doSearch" filterable="true"
|
||||||
|
placeholder="请选择线路"
|
||||||
|
style="width: 100%;" :clearable="true"
|
||||||
|
v-model="pageForm.lineId">
|
||||||
|
<el-option :label="item.lineName + '(' + item.unionName + ')'" :value="item.id"
|
||||||
|
v-for="item in lineList"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="search-item">
|
||||||
|
<div class="search-item-label">职工信息:</div>
|
||||||
|
<div class="search-item-option">
|
||||||
|
<el-input @keyup.enter.native="doSearch" clearable placeholder="请输入内容"
|
||||||
|
style="width: 100%" v-model="pageForm.searchKeyword">
|
||||||
|
<el-select slot="prepend" style="width: 80px;"
|
||||||
|
v-model="pageForm.searchName">
|
||||||
|
<el-option label="姓名" value="we.userName"></el-option>
|
||||||
|
<el-option label="工号" value="we.loginName"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-input>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="search-item">
|
||||||
|
<div class="search-item-label">所属工会:</div>
|
||||||
|
<div class="search-item-option">
|
||||||
|
<el-select @change="flushUnits" @clear="flushUnits"
|
||||||
|
clearable
|
||||||
|
filterable="true"
|
||||||
|
placeholder="所属工会" style="width: 100%;"
|
||||||
|
v-model="pageForm.unionId">
|
||||||
|
<el-option :label="item.unionname" :value="item.id"
|
||||||
|
v-for="item in unions"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="search-item">
|
||||||
|
<div class="search-item-label">组成单位:</div>
|
||||||
|
<div class="search-item-option">
|
||||||
|
<el-select clearable filterable placeholder="请选择"
|
||||||
|
style="width: 100%"
|
||||||
|
v-model="pageForm.unitId">
|
||||||
|
<el-option
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.id"
|
||||||
|
v-for="item in units">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="search-item">
|
||||||
|
<div class="search-item-label">评分:</div>
|
||||||
|
<div class="search-item-option">
|
||||||
|
<el-select clearable filterable placeholder="请选择"
|
||||||
|
style="width: 100%"
|
||||||
|
v-model="pageForm.evaluateScore">
|
||||||
|
<el-option
|
||||||
|
:key="item.code"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.code"
|
||||||
|
v-for="item in evaluateScores">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="search-query">
|
||||||
|
<el-button @click="doSearch" icon="el-icon-search" type="primary">搜索
|
||||||
|
</el-button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</el-card>
|
||||||
|
|
||||||
|
<el-card class="mt10" shadow="never">
|
||||||
|
<table-tool :app="this" label="评价名单">
|
||||||
|
<template #func>
|
||||||
|
<el-button @click="exportEvaluate" size="small" type="primary">导出名单</el-button>
|
||||||
|
</template>
|
||||||
|
</table-tool>
|
||||||
|
|
||||||
|
|
||||||
|
<el-table :data="tableData" :size="tableSize" @sort-change="pageOrder"
|
||||||
|
ref="table"
|
||||||
|
row-key="id" style="width: 100%" v-loading="tableLoading">
|
||||||
|
|
||||||
|
<el-table-column :index="indexMethod" align="center" header-align="center"
|
||||||
|
label="序号" type="index"
|
||||||
|
width="80px"></el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
:key="column.prop"
|
||||||
|
:label="column.label"
|
||||||
|
:prop="column.prop"
|
||||||
|
:sortable="column.sortable"
|
||||||
|
:width="column.width"
|
||||||
|
align="center"
|
||||||
|
header-align="center"
|
||||||
|
min-width="100px" show-overflow-tooltip
|
||||||
|
v-for="column in tableColumns">
|
||||||
|
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" header-align="center" label="操作"
|
||||||
|
prop="userOnline" width="150px">
|
||||||
|
<template scope="{row}">
|
||||||
|
<el-button @click="openEvaluate(row)" size="mini" type="primary">查看评价
|
||||||
|
</el-button>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<!--#include("/layouts/pagination.html"){}#-->
|
||||||
|
|
||||||
|
</el-card>
|
||||||
|
</template>
|
||||||
|
</guava>
|
||||||
|
|
||||||
|
<el-dialog
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
:visible.sync="evaluateDialogVisible"
|
||||||
|
title="评分内容"
|
||||||
|
width="30%">
|
||||||
|
<el-form :model="formData" label-width="60px" ref="form">
|
||||||
|
<el-form-item :rules="[{ required: true, message: ''}]" label="评分">
|
||||||
|
<!--<div style="position: absolute; top: 20%;">
|
||||||
|
<el-rate disabled
|
||||||
|
show-score text-color="#ff9900"
|
||||||
|
v-model="viewData.evaluateScore"></el-rate>
|
||||||
|
</div>-->
|
||||||
|
<span>{{viewData.evaluateScore}}</span>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="评价">
|
||||||
|
<!--<el-input disabled
|
||||||
|
maxlength="100"
|
||||||
|
placeholder="请输入评价"
|
||||||
|
rows="5"
|
||||||
|
show-word-limit
|
||||||
|
type="textarea"
|
||||||
|
v-model="viewData.evaluateText"
|
||||||
|
>
|
||||||
|
</el-input>-->
|
||||||
|
<span>{{viewData.evaluateText}}</span>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<span class="dialog-footer" slot="footer">
|
||||||
|
<el-button @click="evaluateDialogVisible = false" type="primary">关 闭</el-button>
|
||||||
|
</span>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
const vue = new Vue({
|
||||||
|
el: '#app',
|
||||||
|
mixins: [initTableMixins],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
unions: [],
|
||||||
|
units: [],
|
||||||
|
evaluateDialogVisible: false,
|
||||||
|
lineList: [],
|
||||||
|
tableColumns: [
|
||||||
|
{prop: 'lineName', label: '线路'},
|
||||||
|
{prop: 'playStartTime', label: '出行时间'},
|
||||||
|
{prop: 'loginName', label: '工号'},
|
||||||
|
{prop: 'userName', label: '姓名'},
|
||||||
|
{prop: 'unitname', label: '单位'},
|
||||||
|
{prop: 'unionname', label: '工会'},
|
||||||
|
{prop: 'userState', label: '在职状态'},
|
||||||
|
{prop: 'personType', label: '人员类型'},
|
||||||
|
{prop: 'evaluateScore', label: '评分', sortable: true},
|
||||||
|
{prop: 'evaluateText', label: '评价'},
|
||||||
|
],
|
||||||
|
pageForm: {
|
||||||
|
searchName: "we.userName",
|
||||||
|
year: new Date().getFullYear().toString(),
|
||||||
|
lineId: '',
|
||||||
|
searchKeyword: '',
|
||||||
|
unionId: '',
|
||||||
|
unitId: '',
|
||||||
|
evaluateScore: '',
|
||||||
|
},
|
||||||
|
viewData: {},
|
||||||
|
evaluateScores: [
|
||||||
|
{name: "满意", code: "满意"},
|
||||||
|
{name: "一般", code: "一般"},
|
||||||
|
{name: "不满意", code: "不满意"},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
exportEvaluate() {
|
||||||
|
window.open('/platform/therapyRecuperation/evaluate/statistics/exportEvaluate' +
|
||||||
|
'?lineId=' + this.pageForm.lineId +
|
||||||
|
'&searchName=' + this.pageForm.searchName +
|
||||||
|
'&searchKeyword=' + this.pageForm.searchKeyword +
|
||||||
|
'&unionId=' + this.pageForm.unionId +
|
||||||
|
'&unitId=' + this.pageForm.unitId +
|
||||||
|
'&evaluateScore=' + this.pageForm.evaluateScore)
|
||||||
|
},
|
||||||
|
openEvaluate(row) {
|
||||||
|
this.viewData = {
|
||||||
|
lineId: row.id,
|
||||||
|
evaluateText: row.evaluateText,
|
||||||
|
evaluateScore: row.evaluateScore,
|
||||||
|
}
|
||||||
|
this.evaluateDialogVisible = true
|
||||||
|
},
|
||||||
|
async getLineList() {
|
||||||
|
const resp = await $.get('/platform/therapyRecuperation/evaluate/statistics/lineList', {year: this.pageForm.year})
|
||||||
|
this.lineList = resp.data
|
||||||
|
},
|
||||||
|
async yearChange() {
|
||||||
|
this.$set(this.pageForm, "lineId", null)
|
||||||
|
await this.getLineList()
|
||||||
|
this.doSearch()
|
||||||
|
},
|
||||||
|
async flushUnits() {
|
||||||
|
this.$set(this.pageForm, "unitId", null)
|
||||||
|
this.units = []
|
||||||
|
if (this.pageForm.unionId) {
|
||||||
|
this.units = await getUnits(this.pageForm.unionId)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
async created() {
|
||||||
|
await this.getLineList()
|
||||||
|
this.pageData()
|
||||||
|
this.unions = await getUnions(null, false)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<!--#
|
||||||
|
}
|
||||||
|
#-->
|
||||||
+21
-35
@@ -50,17 +50,17 @@ layout("/layouts/platform.html"){
|
|||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="省外最少成团人数(包括家属)" prop="outsideQuota">
|
<el-form-item label="省外最多成团人数" prop="outsideQuota">
|
||||||
<el-input v-model.number="formData.outsideQuota"
|
<el-input v-model.number="formData.outsideQuota"
|
||||||
placeholder="请输入省外最少成团人数(包括家属)"></el-input>
|
placeholder="请输入每条省外线路最多成团人数"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
|
|
||||||
<!--<el-form-item label="省外名额分配比例" prop="outsideQuotaProportion">
|
<el-form-item label="省外名额分配比例" prop="outsideQuotaProportion">
|
||||||
<el-input placeholder="请输入省外名额分配比例" v-model="formData.outsideQuotaProportion">
|
<el-input placeholder="请输入省外名额分配比例" v-model="formData.outsideQuotaProportion">
|
||||||
<template slot="append">%</template>
|
<template slot="append">%</template>
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>-->
|
</el-form-item>
|
||||||
|
|
||||||
|
|
||||||
<el-form-item label="省外几年去一次" prop="outsideNumber">
|
<el-form-item label="省外几年去一次" prop="outsideNumber">
|
||||||
@@ -70,22 +70,22 @@ layout("/layouts/platform.html"){
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="每年旅行频率" prop="travelFrequency">
|
<el-form-item label="每年旅行频率" prop="travelFrequency">
|
||||||
<el-input max="100"
|
<el-input max="100" disabled
|
||||||
placeholder="请输入每年旅行频率"
|
placeholder="请输入每年旅行频率"
|
||||||
v-model.number="formData.travelFrequency"></el-input>
|
v-model.number="formData.travelFrequency"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<!--<el-form-item label="最少教工人数" prop="groupNumber">
|
<el-form-item label="最少教工人数" prop="groupNumber">
|
||||||
<el-input max="100"
|
<el-input max="100"
|
||||||
placeholder="请输入最少教工人数"
|
placeholder="请输入最少教工人数"
|
||||||
v-model.number="formData.groupNumber"></el-input>
|
v-model.number="formData.groupNumber"></el-input>
|
||||||
</el-form-item>-->
|
</el-form-item>
|
||||||
|
|
||||||
<!--<el-form-item label="不可取消修改天数" prop="modifyDays">
|
<el-form-item label="不可取消修改天数" prop="modifyDays">
|
||||||
<el-input max="100"
|
<el-input max="100"
|
||||||
placeholder="请输入不可取消修改天数"
|
placeholder="请输入不可取消修改天数"
|
||||||
v-model.number="formData.modifyDays"></el-input>
|
v-model.number="formData.modifyDays"></el-input>
|
||||||
</el-form-item>-->
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="可以修改几次" prop="modifyNumber">
|
<el-form-item label="可以修改几次" prop="modifyNumber">
|
||||||
<el-input max="100"
|
<el-input max="100"
|
||||||
@@ -107,13 +107,6 @@ layout("/layouts/platform.html"){
|
|||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="旅行社是否需要审核" prop="travelAudit">
|
|
||||||
<el-radio-group v-model="formData.travelAudit">
|
|
||||||
<el-radio-button :label="true">需要</el-radio-button>
|
|
||||||
<el-radio-button :label="false">不需要</el-radio-button>
|
|
||||||
</el-radio-group>
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<el-form-item label="全批次最多报名人数" prop="allLineSignUpNumber">
|
<el-form-item label="全批次最多报名人数" prop="allLineSignUpNumber">
|
||||||
<el-input max="100"
|
<el-input max="100"
|
||||||
placeholder="请输入全批次最多报名人数"
|
placeholder="请输入全批次最多报名人数"
|
||||||
@@ -140,6 +133,13 @@ layout("/layouts/platform.html"){
|
|||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="承诺书" prop="files">
|
||||||
|
<file-upload :files.sync="formData.files"
|
||||||
|
:max="1"
|
||||||
|
:type="['pdf']"
|
||||||
|
></file-upload>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
<vi-title title="标段管理"></vi-title>
|
<vi-title title="标段管理"></vi-title>
|
||||||
<el-form-item label="标段">
|
<el-form-item label="标段">
|
||||||
<el-button type="primary" @click="formData.lots.push({})"
|
<el-button type="primary" @click="formData.lots.push({})"
|
||||||
@@ -238,7 +238,6 @@ layout("/layouts/platform.html"){
|
|||||||
<script>
|
<script>
|
||||||
const vue = new Vue({
|
const vue = new Vue({
|
||||||
el: '#app',
|
el: '#app',
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
activityGroupList: [],
|
activityGroupList: [],
|
||||||
@@ -246,7 +245,6 @@ layout("/layouts/platform.html"){
|
|||||||
formData: {
|
formData: {
|
||||||
isSnLine: 0,
|
isSnLine: 0,
|
||||||
isSwLine: 0,
|
isSwLine: 0,
|
||||||
travelAudit: 0,
|
|
||||||
lots: [],
|
lots: [],
|
||||||
configName: '智慧工会疗休养配置',
|
configName: '智慧工会疗休养配置',
|
||||||
outsideQuota: null,
|
outsideQuota: null,
|
||||||
@@ -266,10 +264,9 @@ layout("/layouts/platform.html"){
|
|||||||
configName: [{required: true, message: '请填写配置名称', trigger: ['blur', 'change']}],
|
configName: [{required: true, message: '请填写配置名称', trigger: ['blur', 'change']}],
|
||||||
isSnLine: [{required: true, message: '请选择省内线路是否需要审核', trigger: ['blur', 'change']}],
|
isSnLine: [{required: true, message: '请选择省内线路是否需要审核', trigger: ['blur', 'change']}],
|
||||||
isSwLine: [{required: true, message: '请选择省外线路是否需要审核', trigger: ['blur', 'change']}],
|
isSwLine: [{required: true, message: '请选择省外线路是否需要审核', trigger: ['blur', 'change']}],
|
||||||
travelAudit: [{required: true, message: '请选择旅行社是否需要审核', trigger: ['blur', 'change']}],
|
|
||||||
outsideQuota: [{
|
outsideQuota: [{
|
||||||
required: true,
|
required: true,
|
||||||
message: '省外最少成团人数(包括家属)',
|
message: '请输入每条省外线路最多成团人数',
|
||||||
trigger: ['blur', 'change']
|
trigger: ['blur', 'change']
|
||||||
}],
|
}],
|
||||||
outsideNumber: [{
|
outsideNumber: [{
|
||||||
@@ -323,7 +320,7 @@ layout("/layouts/platform.html"){
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
'drawer-user-scope': httpVueLoader('/components/plugins/DrawerUserScope.vue'),
|
'drawer-user-scope': httpVueLoader('/components/plugins/DrawerUserScope.vue?v=1.0.1'),
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
async deleteLotsRow(scope) {
|
async deleteLotsRow(scope) {
|
||||||
@@ -368,6 +365,9 @@ layout("/layouts/platform.html"){
|
|||||||
})
|
})
|
||||||
const cloneData = clone(this.formData)
|
const cloneData = clone(this.formData)
|
||||||
|
|
||||||
|
if (this.formData.files && this.formData.files.length > 0) {
|
||||||
|
cloneData.files = JSON.stringify(this.formData.files)
|
||||||
|
}
|
||||||
if (this.lotDeleteList && this.lotDeleteList.length > 0) {
|
if (this.lotDeleteList && this.lotDeleteList.length > 0) {
|
||||||
cloneData.lotDeleteList = JSON.stringify(this.lotDeleteList)
|
cloneData.lotDeleteList = JSON.stringify(this.lotDeleteList)
|
||||||
}
|
}
|
||||||
@@ -396,24 +396,11 @@ layout("/layouts/platform.html"){
|
|||||||
data.lots = []
|
data.lots = []
|
||||||
}
|
}
|
||||||
this.formData = data
|
this.formData = data
|
||||||
this.initLineContentEditor(data.notice)
|
|
||||||
},
|
},
|
||||||
async getActivityGroup() {
|
async getActivityGroup() {
|
||||||
const {data} = await $.get('/platform/activity/basic/scope/getActivityUserScopeGroup')
|
const {data} = await $.get('/platform/activity/basic/scope/getActivityUserScopeGroup')
|
||||||
this.activityGroupList = data
|
this.activityGroupList = data
|
||||||
},
|
},
|
||||||
initLineContentEditor(content) {
|
|
||||||
$("#lineContent").html("")
|
|
||||||
lineContentEditor = new wangEditor("#lineContent")
|
|
||||||
lineContentEditor.config.onchange = (html) => {
|
|
||||||
this.formData.notice = html.replace(/<p\><\/p>/g, '')
|
|
||||||
}
|
|
||||||
lineContentEditor.config.uploadImgShowBase64 = true
|
|
||||||
lineContentEditor.create()
|
|
||||||
if (content) {
|
|
||||||
lineContentEditor.txt.html(content)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
async closeDialog() {
|
async closeDialog() {
|
||||||
this.tableScopeIndex = '';
|
this.tableScopeIndex = '';
|
||||||
this.tableScopeId = '';
|
this.tableScopeId = '';
|
||||||
@@ -441,7 +428,6 @@ layout("/layouts/platform.html"){
|
|||||||
},
|
},
|
||||||
async created() {
|
async created() {
|
||||||
this.findOne();
|
this.findOne();
|
||||||
this.initLineContentEditor();
|
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
'formData.activityGroupId': {
|
'formData.activityGroupId': {
|
||||||
|
|||||||
Reference in New Issue
Block a user