This commit is contained in:
那些花儿
2025-12-26 11:23:10 +08:00
25 changed files with 340 additions and 281 deletions
@@ -391,6 +391,7 @@ public class ProcessTaskServiceImpl extends BaseServiceImpl<ProcessTask> impleme
processTask.setTaskState(ProcessTaskStateEnum.DOING.getCode()); processTask.setTaskState(ProcessTaskStateEnum.DOING.getCode());
processTask.setTaskType(taskModel.getTaskType().getCode()); processTask.setTaskType(taskModel.getTaskType().getCode());
processTask.setProcessInstanceId(execution.getProcessInstanceId()); processTask.setProcessInstanceId(execution.getProcessInstanceId());
processTask.setH5FormKey(taskModel.getH5form());
// 增加是否为第一个任务节点标识 // 增加是否为第一个任务节点标识
execution.getArgs().put(FlowConst.IS_FIRST_TASK_NODE, FlowUtil.isFistTaskName(execution.getProcessModel(), taskModel.getName())); execution.getArgs().put(FlowConst.IS_FIRST_TASK_NODE, FlowUtil.isFistTaskName(execution.getProcessModel(), taskModel.getName()));
@@ -106,6 +106,7 @@ public class ActivityDeclareBranchUnionController {
cnd.and("t.taskName", "=", "54f481d7-3239-4cd2-882d-e1cc18ea86eb"); cnd.and("t.taskName", "=", "54f481d7-3239-4cd2-882d-e1cc18ea86eb");
cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId())); cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId()));
cnd.andEX("info.applyTime", "=", pageParam.getYear());
if (pageParam.getAudit()) { if (pageParam.getAudit()) {
cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.WITHDRAW.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode())); cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.WITHDRAW.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode()));
@@ -100,6 +100,7 @@ public class ActivityDeclareClubPrincipalController {
cnd.and("t.taskName", "=", "06d5979b-b52f-4df1-8974-087568322cd6"); cnd.and("t.taskName", "=", "06d5979b-b52f-4df1-8974-087568322cd6");
cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId())); cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId()));
cnd.andEX("info.applyTime", "=", pageParam.getYear());
if (pageParam.getAudit()) { if (pageParam.getAudit()) {
cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.WITHDRAW.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode())); cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.WITHDRAW.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode()));
@@ -66,225 +66,229 @@ import java.util.*;
@At("/platform/activityDeclare/mine") @At("/platform/activityDeclare/mine")
public class ActivityDeclareMineController { public class ActivityDeclareMineController {
@Inject @Inject
private Dao dao; private Dao dao;
@Inject @Inject
private FlowEngine flowEngine; private FlowEngine flowEngine;
@Inject @Inject
private SysOfficeTemplateUtil sysOfficeTemplateUtil; private SysOfficeTemplateUtil sysOfficeTemplateUtil;
@Inject @Inject
private ActivityDeclareService activityDeclareService; private ActivityDeclareService activityDeclareService;
@At("") @At("")
@SaCheckPermission("activityDeclare.mine") @SaCheckPermission("activityDeclare.mine")
@Ok("beetl:/platform/zhgh/activity/declarereimbursement/declare/mine/index.html") @Ok("beetl:/platform/zhgh/activity/declarereimbursement/declare/mine/index.html")
public void index() { public void index() {
} }
@At @At
@ApiOperation("活动申报,我的申请列表") @ApiOperation("活动申报,我的申请列表")
@SaCheckPermission("activityDeclare.mine") @SaCheckPermission("activityDeclare.mine")
public Result pageData(CommonPageParam pageParam) { public Result pageData(CommonPageParam pageParam) {
Sql sql = Sqls.create(""" Sql sql = Sqls.create("""
SELECT SELECT
info.id, info.id,
info.userName, info.userName,
info.mobile, info.mobile,
info.loginName, info.loginName,
info.applyTime, info.applyTime,
info.activityName, info.activityName,
info.activityAddress, info.activityAddress,
info.planStartTime, info.planStartTime,
info.planEndTime, info.planEndTime,
info.declareUnitName, info.declareUnitName,
info.activityType, info.activityType,
info.activityContent, info.activityContent,
info.activityNumber, info.activityNumber,
ins.id AS instanceId, ins.id AS instanceId,
ins.businessNo, ins.businessNo,
ins.state instanceState, ins.state instanceState,
ins.variable instanceVariable, ins.variable instanceVariable,
ins.processDefineId instanceProcessDefineId, ins.processDefineId instanceProcessDefineId,
t.id taskId, t.id taskId,
t.taskName AS taskKey, t.taskName AS taskKey,
t.displayName taskName, t.displayName taskName,
t.taskType, t.taskType,
t.performType taskPerformType, t.performType taskPerformType,
t.taskState, t.taskState,
t.finishTime, t.finishTime,
t.taskParentId, t.taskParentId,
t.variable taskVariable, t.variable taskVariable,
IF((SELECT taskName FROM wf_process_task tt WHERE tt.id = t.taskParentId) = 'startTask', 1, 0) canRevoke, IF((SELECT taskName FROM wf_process_task tt WHERE tt.id = t.taskParentId) = 'startTask', 1, 0) canRevoke,
(select MAX(id) from wf_process_task where processInstanceId = ins.id and taskName = 'startTask' AND taskState in (10,20)) AS startTaskId (select MAX(id) from wf_process_task where processInstanceId = ins.id and taskName = 'startTask' AND taskState in (10,20)) AS startTaskId
FROM FROM
activity_declare_info info activity_declare_info info
LEFT JOIN `wf_process_instance` ins ON ins.businessNo = info.id LEFT JOIN `wf_process_instance` ins ON ins.businessNo = info.id
LEFT JOIN wf_process_task t ON t.processInstanceId = ins.id AND t.taskState = 10 LEFT JOIN wf_process_task t ON t.processInstanceId = ins.id AND t.taskState = 10
LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id
$condition $condition
"""); """);
Cnd cnd = Cnd.NEW(); Cnd cnd = Cnd.NEW();
pageParam.buildSearch(cnd, "info."); pageParam.buildSearch(cnd, "info.");
if (StrUtil.isAllBlank(pageParam.getPageOrderName(), pageParam.getPageOrderBy())) { cnd.andEX("info.applyTime", "=", pageParam.getYear());
cnd.desc("info.applyTime"); if (StrUtil.isAllBlank(pageParam.getPageOrderName(), pageParam.getPageOrderBy())) {
} else { cnd.desc("info.applyTime");
cnd.orderBy("info." + pageParam.getPageOrderName(), PageUtil.getOrder(pageParam.getPageOrderBy())); } else {
} cnd.orderBy("info." + pageParam.getPageOrderName(), PageUtil.getOrder(pageParam.getPageOrderBy()));
sql.setCondition(cnd); }
Pagination<NutMap> pagination = activityDeclareService.listPageMap(pageParam.getPageNumber(), pageParam.getPageSize(), sql); sql.setCondition(cnd);
return Result.success().addData(pagination); Pagination<NutMap> pagination = activityDeclareService.listPageMap(pageParam.getPageNumber(), pageParam.getPageSize(), sql);
} return Result.success().addData(pagination);
}
@At @At
@ApiOperation("活动申报,查看活动申报") @ApiOperation("活动申报,查看活动申报")
@SaCheckPermission("activityDeclare") @SaCheckPermission("activityDeclare")
public Result findOne(@Valid String id) { public Result findOne(@Valid String id) {
ActivityDeclareInfo info = dao.fetch(ActivityDeclareInfo.class, id); ActivityDeclareInfo info = dao.fetch(ActivityDeclareInfo.class, id);
return Result.success().addData(info); return Result.success().addData(info);
} }
@At @At
@ApiOperation("删除活动申报") @ApiOperation("删除活动申报")
@Aop(TransAop.READ_COMMITTED) @Aop(TransAop.READ_COMMITTED)
@SaCheckPermission("activityDeclare.mine") @SaCheckPermission("activityDeclare.mine")
@SLog(tag = "活动申报", msg = "删除活动申报id: ${args[0]}") @SLog(tag = "活动申报", msg = "删除活动申报id: ${args[0]}")
public Result onDelete(@Valid String id) { public Result onDelete(@Valid String id) {
dao.clear(ActivityDeclareInfo.class, Cnd.where("id", "=", id)); dao.clear(ActivityDeclareInfo.class, Cnd.where("id", "=", id));
// 删除流程相关 // 删除流程相关
flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(id); flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(id);
// 如果有报销的流程,也一并删除 // 如果有报销的流程,也一并删除
ActivityReimbursementInfo reimbursementInfo = dao.fetch(ActivityReimbursementInfo.class, Cnd.where("declareId", "=", id)); ActivityReimbursementInfo reimbursementInfo = dao.fetch(ActivityReimbursementInfo.class, Cnd.where("declareId", "=", id));
if (Lang.isNotEmpty(reimbursementInfo)) { if (Lang.isNotEmpty(reimbursementInfo)) {
dao.clear(ActivityReimbursementInfo.class, Cnd.where("id", "=", reimbursementInfo.getId())); dao.clear(ActivityReimbursementInfo.class, Cnd.where("id", "=", reimbursementInfo.getId()));
// 删除流程相关 // 删除流程相关
flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(reimbursementInfo.getId()); flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(reimbursementInfo.getId());
} }
return Result.success(); return Result.success();
} }
@At @At
@Ok("void") @Ok("void")
@SaCheckPermission("activityDeclare.mine") @SaCheckPermission("activityDeclare.mine")
@SLog(tag = "活动申报", msg = "导出活动申报表") @SLog(tag = "活动申报", msg = "导出活动申报表")
public void doExportDeclare(@Valid String id, HttpServletResponse response) { public void doExportDeclare(@Valid String id, HttpServletResponse response) {
HashMap<String, Object> docData = new HashMap<>(); HashMap<String, Object> docData = new HashMap<>();
Sql sql = Sqls.create(""" Sql sql = Sqls.create("""
SELECT SELECT
info.*, info.*,
ins.id AS instanceId ins.id AS instanceId
FROM FROM
`activity_declare_info` info `activity_declare_info` info
LEFT JOIN wf_process_instance ins ON ins.businessNo = info.id LEFT JOIN wf_process_instance ins ON ins.businessNo = info.id
WHERE WHERE
ins.state = 20 AND info.id = @id ins.state = 20 AND info.id = @id
""").setParam("id", id); """).setParam("id", id);
sql.setCallback(Sqls.callback.map()); sql.setCallback(Sqls.callback.map());
dao.execute(sql); dao.execute(sql);
NutMap info = (NutMap) sql.getResult(); NutMap info = (NutMap) sql.getResult();
String activityContent = info.getString("activityContent"); String activityContent = info.getString("activityContent");
info.put("activityContent", sysOfficeTemplateUtil.convertRichTextToDocText(activityContent)); info.put("activityContent", sysOfficeTemplateUtil.convertRichTextToDocText(activityContent));
docData.put("schoolName", Globals.AppName); info.put("applyTime", DateUtil.format(info.getTime("applyTime"), "yyyy-MM-dd"));
docData.put("info", info); info.put("planStartTime", DateUtil.format(info.getTime("planStartTime"), "yyyy年MM月dd日"));
info.put("planEndTime", DateUtil.format(info.getTime("planEndTime"), "yyyy年MM月dd日"));
docData.put("schoolName", Globals.AppName);
docData.put("info", info);
List<ProcessTaskVO> doneTaskVos = new ArrayList<>(); List<ProcessTaskVO> doneTaskVos = new ArrayList<>();
List<ProcessTask> doneTaskList = flowEngine.processTaskService().getDoneTaskList(info.getLong("instanceId"), null); List<ProcessTask> doneTaskList = flowEngine.processTaskService().getDoneTaskList(info.getLong("instanceId"), null);
for (ProcessTask doneTask : doneTaskList) { for (ProcessTask doneTask : doneTaskList) {
ProcessTaskVO taskVO = flowEngine.processTaskService().findById(doneTask.getId()); ProcessTaskVO taskVO = flowEngine.processTaskService().findById(doneTask.getId());
doneTaskVos.add(taskVO); doneTaskVos.add(taskVO);
} }
// 分工会审核 // 分工会审核
doneTaskVos.stream().filter(task -> "分工会审核".equals(task.getDisplayName())) doneTaskVos.stream().filter(task -> "分工会审核".equals(task.getDisplayName()))
.max(Comparator.comparing(ProcessTaskVO::getCreatedAt)) .max(Comparator.comparing(ProcessTaskVO::getCreatedAt))
.ifPresent(v -> { .ifPresent(v -> {
Dict taskFormData = v.getTaskFormData(); Dict taskFormData = v.getTaskFormData();
HashMap<String, Object> approval = new HashMap<>(); HashMap<String, Object> approval = new HashMap<>();
approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日")); approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日"));
approval.put("user", taskFormData.getStr("tf_userName")); approval.put("user", taskFormData.getStr("tf_userName"));
if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) { if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) {
approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign"))); approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign")));
} }
approval.put("opinion", taskFormData.getStr("tf_opinion")); approval.put("opinion", taskFormData.getStr("tf_opinion"));
docData.put("fgh", approval); docData.put("fgh", approval);
}); });
// 协会负责人审核 // 协会负责人审核
doneTaskVos.stream().filter(task -> "协会负责人审核".equals(task.getDisplayName())) doneTaskVos.stream().filter(task -> "协会负责人审核".equals(task.getDisplayName()))
.max(Comparator.comparing(ProcessTaskVO::getCreatedAt)) .max(Comparator.comparing(ProcessTaskVO::getCreatedAt))
.ifPresent(v -> { .ifPresent(v -> {
Dict taskFormData = v.getTaskFormData(); Dict taskFormData = v.getTaskFormData();
HashMap<String, Object> approval = new HashMap<>(); HashMap<String, Object> approval = new HashMap<>();
approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日")); approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日"));
approval.put("user", taskFormData.getStr("tf_userName")); approval.put("user", taskFormData.getStr("tf_userName"));
if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) { if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) {
approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign"))); approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign")));
} }
approval.put("opinion", taskFormData.getStr("tf_opinion")); approval.put("opinion", taskFormData.getStr("tf_opinion"));
docData.put("xh", approval); docData.put("xh", approval);
}); });
// 校工会负责人审核 // 校工会负责人审核
doneTaskVos.stream().filter(task -> "校工会负责人审核".equals(task.getDisplayName())) doneTaskVos.stream().filter(task -> "校工会负责人审核".equals(task.getDisplayName()))
.max(Comparator.comparing(ProcessTaskVO::getCreatedAt)) .max(Comparator.comparing(ProcessTaskVO::getCreatedAt))
.ifPresent(v -> { .ifPresent(v -> {
Dict taskFormData = v.getTaskFormData(); Dict taskFormData = v.getTaskFormData();
HashMap<String, Object> approval = new HashMap<>(); HashMap<String, Object> approval = new HashMap<>();
approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日")); approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日"));
approval.put("user", taskFormData.getStr("tf_userName")); approval.put("user", taskFormData.getStr("tf_userName"));
if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) { if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) {
approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign"))); approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign")));
} }
approval.put("opinion", taskFormData.getStr("tf_opinion")); approval.put("opinion", taskFormData.getStr("tf_opinion"));
docData.put("xfzr", approval); docData.put("xfzr", approval);
}); });
// 校工会主席审核 // 校工会主席审核
doneTaskVos.stream().filter(task -> "校工会主席审核".equals(task.getDisplayName())) doneTaskVos.stream().filter(task -> "校工会主席审核".equals(task.getDisplayName()))
.max(Comparator.comparing(ProcessTaskVO::getCreatedAt)) .max(Comparator.comparing(ProcessTaskVO::getCreatedAt))
.ifPresent(v -> { .ifPresent(v -> {
Dict taskFormData = v.getTaskFormData(); Dict taskFormData = v.getTaskFormData();
HashMap<String, Object> approval = new HashMap<>(); HashMap<String, Object> approval = new HashMap<>();
approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日")); approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日"));
approval.put("user", taskFormData.getStr("tf_userName")); approval.put("user", taskFormData.getStr("tf_userName"));
if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) { if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) {
approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign"))); approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign")));
} }
approval.put("opinion", taskFormData.getStr("tf_opinion")); approval.put("opinion", taskFormData.getStr("tf_opinion"));
docData.put("xzx", approval); docData.put("xzx", approval);
}); });
String budgetsStr = info.getString("budgets"); String budgetsStr = info.getString("budgets");
List<ActivityBudgetVO> list = JSONUtil.parseArray(budgetsStr).toList(ActivityBudgetVO.class); List<ActivityBudgetVO> list = JSONUtil.parseArray(budgetsStr).toList(ActivityBudgetVO.class);
for (int i = 0; i < list.size(); i++) { for (int i = 0; i < list.size(); i++) {
list.get(i).setRanking(i + 1); list.get(i).setRanking(i + 1);
} }
docData.put("budgets", list); docData.put("budgets", list);
LoopRowTableRenderPolicy policy = new LoopRowTableRenderPolicy(); LoopRowTableRenderPolicy policy = new LoopRowTableRenderPolicy();
Configure config = Configure.builder() Configure config = Configure.builder()
.bind("budgets", policy) .bind("budgets", policy)
.build(); .build();
String fileName = Globals.AppName + "" + info.getString("activityName") + "】申报表.docx"; String fileName = Globals.AppName + "" + info.getString("activityName") + "】申报表.docx";
try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream()) { try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream()) {
XWPFTemplate.compile(sysOfficeTemplateUtil.getTemplate("activity_declare"), config).render(docData).writeAndClose(byteArrayOutputStream); XWPFTemplate.compile(sysOfficeTemplateUtil.getTemplate("activity_declare"), config).render(docData).writeAndClose(byteArrayOutputStream);
CommonDownloadUtil.download(fileName, byteArrayOutputStream.toByteArray(), response); CommonDownloadUtil.download(fileName, byteArrayOutputStream.toByteArray(), response);
} catch (IOException e) { } catch (IOException e) {
log.error("活动申报表导出失败,id:{},错误信息:{}", id, e.getMessage()); log.error("活动申报表导出失败,id:{},错误信息:{}", id, e.getMessage());
} }
} }
} }
@@ -100,6 +100,7 @@ public class ActivityDeclareSchoolPrincipalController {
cnd.and("t.taskName", "=", "5b511275-143f-4ecd-8eff-7c8ad1456b1b"); cnd.and("t.taskName", "=", "5b511275-143f-4ecd-8eff-7c8ad1456b1b");
cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId())); cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId()));
cnd.andEX("info.applyTime", "=", pageParam.getYear());
if (pageParam.getAudit()) { if (pageParam.getAudit()) {
cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.WITHDRAW.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode())); cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.WITHDRAW.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode()));
@@ -97,6 +97,7 @@ public class ActivityDeclareSchoolUnionController {
Cnd cnd = Cnd.NEW(); Cnd cnd = Cnd.NEW();
cnd.and("t.taskName", "=", "81428a9b-63c0-44b8-a28c-17d282c2cc8e"); cnd.and("t.taskName", "=", "81428a9b-63c0-44b8-a28c-17d282c2cc8e");
cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId())); cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId()));
cnd.andEX("info.applyTime", "=", pageParam.getYear());
if (pageParam.getAudit()) { if (pageParam.getAudit()) {
cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.WITHDRAW.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode())); cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.WITHDRAW.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode()));
@@ -108,7 +108,7 @@ public class ActivityReimbursementBranchUnionController {
cnd.andEX("outlay.budgetReimburseType", "=" , pageParam.getBudgetReimburseType()); cnd.andEX("outlay.budgetReimburseType", "=" , pageParam.getBudgetReimburseType());
cnd.andEX("info.outlayManageSource", "=", pageParam.getOutlayManageSource()); cnd.andEX("info.outlayManageSource", "=", pageParam.getOutlayManageSource());
cnd.andEX("info.activityReimbursementMode", "=", pageParam.getActivityReimbursementMode()); cnd.andEX("info.activityReimbursementMode", "=", pageParam.getActivityReimbursementMode());
cnd.andEX("YEAR(info.applyTime)", "=", pageParam.getYear());
if (pageParam.getAudit()) { if (pageParam.getAudit()) {
cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.WITHDRAW.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode())); cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.WITHDRAW.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode()));
} else { } else {
@@ -108,7 +108,7 @@ public class ActivityReimbursementClubPrincipalController {
cnd.andEX("outlay.budgetReimburseType", "=" , pageParam.getBudgetReimburseType()); cnd.andEX("outlay.budgetReimburseType", "=" , pageParam.getBudgetReimburseType());
cnd.andEX("info.outlayManageSource", "=", pageParam.getOutlayManageSource()); cnd.andEX("info.outlayManageSource", "=", pageParam.getOutlayManageSource());
cnd.andEX("info.activityReimbursementMode", "=", pageParam.getActivityReimbursementMode()); cnd.andEX("info.activityReimbursementMode", "=", pageParam.getActivityReimbursementMode());
cnd.andEX("YEAR(info.applyTime)", "=", pageParam.getYear());
if (pageParam.getAudit()) { if (pageParam.getAudit()) {
cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.WITHDRAW.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode())); cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.WITHDRAW.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode()));
} else { } else {
@@ -133,6 +133,7 @@ public class ActivityReimbursementMineController {
cnd.and("info.userId", "=", SecurityUtil.getUserId()); cnd.and("info.userId", "=", SecurityUtil.getUserId());
} }
} }
cnd.andEX("YEAR(info.applyTime)", "=", pageParam.getYear());
if (StrUtil.isAllBlank(pageParam.getPageOrderName(), pageParam.getPageOrderBy())) { if (StrUtil.isAllBlank(pageParam.getPageOrderName(), pageParam.getPageOrderBy())) {
cnd.desc("info.applyTime"); cnd.desc("info.applyTime");
} else { } else {
@@ -100,7 +100,7 @@ public class ActivityReimbursementSchoolFinanceController {
cnd.andEX("outlay.budgetReimburseType", "=" , pageParam.getBudgetReimburseType()); cnd.andEX("outlay.budgetReimburseType", "=" , pageParam.getBudgetReimburseType());
cnd.andEX("info.outlayManageSource", "=", pageParam.getOutlayManageSource()); cnd.andEX("info.outlayManageSource", "=", pageParam.getOutlayManageSource());
cnd.andEX("info.activityReimbursementMode", "=", pageParam.getActivityReimbursementMode()); cnd.andEX("info.activityReimbursementMode", "=", pageParam.getActivityReimbursementMode());
cnd.andEX("YEAR(info.applyTime)", "=", pageParam.getYear());
if (pageParam.getAudit()) { if (pageParam.getAudit()) {
cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.WITHDRAW.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode())); cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.WITHDRAW.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode()));
} else { } else {
@@ -108,7 +108,7 @@ public class ActivityReimbursementSchoolPrincipalController {
cnd.andEX("outlay.budgetReimburseType", "=" , pageParam.getBudgetReimburseType()); cnd.andEX("outlay.budgetReimburseType", "=" , pageParam.getBudgetReimburseType());
cnd.andEX("info.outlayManageSource", "=", pageParam.getOutlayManageSource()); cnd.andEX("info.outlayManageSource", "=", pageParam.getOutlayManageSource());
cnd.andEX("info.activityReimbursementMode", "=", pageParam.getActivityReimbursementMode()); cnd.andEX("info.activityReimbursementMode", "=", pageParam.getActivityReimbursementMode());
cnd.andEX("YEAR(info.applyTime)", "=", pageParam.getYear());
if (pageParam.getAudit()) { if (pageParam.getAudit()) {
cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.WITHDRAW.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode())); cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.WITHDRAW.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode()));
} else { } else {
@@ -124,6 +124,7 @@ public class ActivityReimbursementSchoolUnionController {
cnd.andEX("outlay.budgetReimburseType", "=" , pageParam.getBudgetReimburseType()); cnd.andEX("outlay.budgetReimburseType", "=" , pageParam.getBudgetReimburseType());
cnd.andEX("info.outlayManageSource", "=", pageParam.getOutlayManageSource()); cnd.andEX("info.outlayManageSource", "=", pageParam.getOutlayManageSource());
cnd.andEX("info.activityReimbursementMode", "=", pageParam.getActivityReimbursementMode()); cnd.andEX("info.activityReimbursementMode", "=", pageParam.getActivityReimbursementMode());
cnd.andEX("YEAR(info.applyTime)", "=", pageParam.getYear());
if (pageParam.getAudit()) { if (pageParam.getAudit()) {
cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.WITHDRAW.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode())); cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.WITHDRAW.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode()));
@@ -177,7 +177,7 @@ public class ClubUserJoinApplyController {
} }
ProcessInstance processInstance = dao.fetch(ProcessInstance.class, Cnd.where(ProcessInstance::getBusinessNo, "=", userApply.getId())); ProcessInstance processInstance = dao.fetch(ProcessInstance.class, Cnd.where(ProcessInstance::getBusinessNo, "=", userApply.getId()));
if (!processInstance.getState().equals(ProcessInstanceStateEnum.FINISHED.getCode())) { if (!List.of(ProcessInstanceStateEnum.REJECT.getCode(),ProcessInstanceStateEnum.FINISHED.getCode()).contains(processInstance.getState())) {
return Result.error(99, "您有该协会的申请记录尚未完成,请到我的申请里查看!"); return Result.error(99, "您有该协会的申请记录尚未完成,请到我的申请里查看!");
} }
return Result.success(); return Result.success();
@@ -70,7 +70,7 @@ public class Asset extends BaseModel implements Serializable {
@Column @Column
@Comment("单价") @Comment("单价")
@ColDefine(customType = "decimal(6,2)") @ColDefine(customType = "decimal(10,2)")
private BigDecimal assetUnitPrice; private BigDecimal assetUnitPrice;
@Column @Column
@@ -43,22 +43,22 @@ public class AssetDepreciationRecord extends BaseModel implements Serializable {
@Column @Column
@Comment("资产全部的价值") @Comment("资产全部的价值")
@ColDefine(customType = "decimal(6,2)") @ColDefine(customType = "decimal(10,2)")
private BigDecimal assetAllMoney; private BigDecimal assetAllMoney;
@Column @Column
@Comment("剩余价值") @Comment("剩余价值")
@ColDefine(customType = "decimal(6,2)") @ColDefine(customType = "decimal(10,2)")
private BigDecimal assetSurplusMoney; private BigDecimal assetSurplusMoney;
@Column @Column
@Comment("累计折旧多少钱") @Comment("累计折旧多少钱")
@ColDefine(customType = "decimal(6,2)") @ColDefine(customType = "decimal(10,2)")
private BigDecimal assetDepreciationMoney; private BigDecimal assetDepreciationMoney;
@Column @Column
@Comment("平均一个月多少钱") @Comment("平均一个月多少钱")
@ColDefine(customType = "decimal(6,2)") @ColDefine(customType = "decimal(10,2)")
private BigDecimal assetAverageMonthMoney; private BigDecimal assetAverageMonthMoney;
@Column @Column
@@ -18,9 +18,11 @@ import com.budwk.app.zhgh.dayofficework.qsv.service.QsvQuizService;
import com.budwk.app.zhgh.dayofficework.qsv.service.QsvUserAnswerRecordService; import com.budwk.app.zhgh.dayofficework.qsv.service.QsvUserAnswerRecordService;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.nutz.aop.interceptor.ioc.TransAop;
import org.nutz.dao.Cnd; import org.nutz.dao.Cnd;
import org.nutz.dao.Dao; import org.nutz.dao.Dao;
import org.nutz.dao.util.cri.Static; import org.nutz.dao.util.cri.Static;
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.util.NutMap; import org.nutz.lang.util.NutMap;
@@ -61,10 +63,11 @@ public class H5QsvQuizController {
@At @At
@SaCheckLogin @SaCheckLogin
@Aop(TransAop.READ_COMMITTED)
public Result subjects(@Valid String activityId) { public Result subjects(@Valid String activityId) {
QsvActivity activity = dao.fetch(QsvActivity.class, activityId); QsvActivity activity = dao.fetch(QsvActivity.class, activityId);
if(activity.getGroupId() != null){ if (activity.getGroupId() != null) {
int count = dao.count(ActivityUserScope.class, Cnd.where("groupId", "=", activity.getGroupId()) int count = dao.count(ActivityUserScope.class, Cnd.where("groupId", "=", activity.getGroupId())
.and("userId", "=", SecurityUtil.getUserId())); .and("userId", "=", SecurityUtil.getUserId()));
if (count != 1) { if (count != 1) {
@@ -102,7 +105,7 @@ public class H5QsvQuizController {
cnd.and(new Static("1=1 ORDER BY FIELD (id," + dynamic + ")")); cnd.and(new Static("1=1 ORDER BY FIELD (id," + dynamic + ")"));
resultSubjects = dao.query(QsvSubject.class, cnd); resultSubjects = dao.query(QsvSubject.class, cnd);
answerRecordId = lastRecordOptional.get().getId(); answerRecordId = lastRecordOptional.get().getId();
}else{ } else {
//没生成过 那就看全部的题目 //没生成过 那就看全部的题目
List<QsvSubject> subjects = dao.query(QsvSubject.class, Cnd.where("activityId", "=", activityId)); List<QsvSubject> subjects = dao.query(QsvSubject.class, Cnd.where("activityId", "=", activityId));
QsvUserAnswerRecord answerRecord = qsvUserAnswerRecordService.insertRecord(activityId, subjects.stream().map(QsvSubject::getId).collect(Collectors.toList())); QsvUserAnswerRecord answerRecord = qsvUserAnswerRecordService.insertRecord(activityId, subjects.stream().map(QsvSubject::getId).collect(Collectors.toList()));
@@ -319,14 +322,14 @@ public class H5QsvQuizController {
return Result.success(result); return Result.success(result);
} }
// 答题记录 // 答题记录
@At @At
public Result answerRecord(@Valid String answerRecordId) { public Result answerRecord(@Valid String answerRecordId) {
QsvUserAnswerRecord record = dao.fetch(QsvUserAnswerRecord.class, answerRecordId); QsvUserAnswerRecord record = dao.fetch(QsvUserAnswerRecord.class, answerRecordId);
return Result.success(record); return Result.success(record);
} }
// 提交答题 // 提交答题
@At @At
@ApiOperation("提交答题") @ApiOperation("提交答题")
@SLog(type = "qsv.quiz", tag = "提交答题", msg = "问卷调查提交答题") @SLog(type = "qsv.quiz", tag = "提交答题", msg = "问卷调查提交答题")
@@ -77,25 +77,25 @@ public class ProposalQueryComprehensiveController {
$condition $condition
"""); """);
Cnd cnd = Cnd.NEW(); Cnd cnd = Cnd.NEW();
if(ArrayUtil.isNotEmpty(pageForm.getOrigins())){ if (ArrayUtil.isNotEmpty(pageForm.getOrigins()) && StrUtil.isNotBlank(pageForm.getCommonKeyword())) {
SqlExpressionGroup seg = new SqlExpressionGroup(); SqlExpressionGroup seg = new SqlExpressionGroup();
// 案名 // 案名
if(ArrayUtil.contains(pageForm.getOrigins(),"name")){ if (ArrayUtil.contains(pageForm.getOrigins(), "name")) {
for (String keyword : pageForm.getCommonKeyword().split(" ")) { for (String keyword : pageForm.getCommonKeyword().split(" ")) {
seg.orLike("info.name", keyword); seg.orLike("info.name", keyword);
} }
} }
// 案由 // 案由
if(ArrayUtil.contains(pageForm.getOrigins(),"brief")){ if (ArrayUtil.contains(pageForm.getOrigins(), "brief")) {
for (String keyword : pageForm.getCommonKeyword().split(" ")) { for (String keyword : pageForm.getCommonKeyword().split(" ")) {
seg.orLike("info.brief", keyword); seg.orLike("info.brief", keyword);
} }
} }
// 提案人 // 提案人
if(ArrayUtil.contains(pageForm.getOrigins(),"createUserName")){ if (ArrayUtil.contains(pageForm.getOrigins(), "createUserName")) {
for (String keyword : pageForm.getCommonKeyword().split(" ")) { for (String keyword : pageForm.getCommonKeyword().split(" ")) {
seg.orLike("info.createUserName", keyword); seg.orLike("info.createUserName", keyword);
seg.orLike("info.createUserLoginName", keyword); seg.orLike("info.createUserLoginName", keyword);
@@ -103,18 +103,18 @@ public class ProposalQueryComprehensiveController {
} }
// 答复内容 // 答复内容
if(ArrayUtil.contains(pageForm.getOrigins(),"answer")){ if (ArrayUtil.contains(pageForm.getOrigins(), "answer")) {
for (String keyword : pageForm.getCommonKeyword().split(" ")) { for (String keyword : pageForm.getCommonKeyword().split(" ")) {
seg.orLike("JSON_EXTRACT(replyTask.variable,'$.tf_opinion')", keyword); seg.orLike("JSON_EXTRACT(replyTask.variable,'$.tf_opinion')", keyword);
} }
} }
if(!seg.isEmpty()){ if (!seg.isEmpty()) {
cnd.and(seg); cnd.and(seg);
} }
} }
if(StrUtil.isNotBlank(pageForm.getUnderTakeUnitId())){ if (StrUtil.isNotBlank(pageForm.getUnderTakeUnitId())) {
cnd.andEX("pru.unitId", "=", pageForm.getUnderTakeUnitId()); cnd.andEX("pru.unitId", "=", pageForm.getUnderTakeUnitId());
} }
ProposalQueryComprehensiveParam.buildSearch(cnd, pageForm); ProposalQueryComprehensiveParam.buildSearch(cnd, pageForm);
@@ -123,7 +123,7 @@ public class TeacherCongressDelegateServiceImpl extends BaseServiceImpl<Teacher_
delegationSql.setParam("sessionId", pageForm.getSessionId()); delegationSql.setParam("sessionId", pageForm.getSessionId());
List<NutMap> delegationList = listMap(delegationSql); List<NutMap> delegationList = listMap(delegationSql);
//查询所有的团长、副团长 //查询所有的团长
Sys_role tzRole = sysRoleService.getByCode(RoleConstant.TEACHER_CONGRESS_DELEGATION_HEAD); Sys_role tzRole = sysRoleService.getByCode(RoleConstant.TEACHER_CONGRESS_DELEGATION_HEAD);
Sql tzSql = Sqls.create(""" Sql tzSql = Sqls.create("""
SELECT SELECT
@@ -142,6 +142,25 @@ public class TeacherCongressDelegateServiceImpl extends BaseServiceImpl<Teacher_
tzSql.setParam("tzRoles", List.of(tzRole.getId())); tzSql.setParam("tzRoles", List.of(tzRole.getId()));
List<NutMap> tzList = listMap(tzSql); List<NutMap> tzList = listMap(tzSql);
//查询所有的副团长
Sys_role ftzRole = sysRoleService.getByCode(RoleConstant.TEACHER_CONGRESS_VICE_DELEGATION_HEAD);
Sql ftzSql = Sqls.create("""
SELECT
t2.id,
t2.username,
t2.sex,
t1.tcDelegationId
FROM
sys_user_role t1
LEFT JOIN sys_user t2 ON t2.id = t1.userId
WHERE
t1.tcSessionId = @sessionId
AND t1.roleId IN (@ftzRoles)
""");
ftzSql.setParam("sessionId", pageForm.getSessionId());
ftzSql.setParam("ftzRoles", List.of(ftzRole.getId()));
List<NutMap> ftzList = listMap(ftzSql);
//查询代表 //查询代表
Sql delegateSql = Sqls.create(""" Sql delegateSql = Sqls.create("""
SELECT SELECT
@@ -161,6 +180,7 @@ public class TeacherCongressDelegateServiceImpl extends BaseServiceImpl<Teacher_
for (NutMap delegation : delegationList) { for (NutMap delegation : delegationList) {
delegation.put("tz", tzList.stream().filter(tz -> tz.getString("tcDelegationId").equals(delegation.getString("id"))).toList()); delegation.put("tz", tzList.stream().filter(tz -> tz.getString("tcDelegationId").equals(delegation.getString("id"))).toList());
delegation.put("ftz", ftzList.stream().filter(ftz -> ftz.getString("tcDelegationId").equals(delegation.getString("id"))).toList());
//过滤本代表团的代表 //过滤本代表团的代表
List<NutMap> delegateList = delegateAllList.stream().filter(delegate -> delegate.getString("delegationId").equals(delegation.getString("id"))).toList(); List<NutMap> delegateList = delegateAllList.stream().filter(delegate -> delegate.getString("delegationId").equals(delegation.getString("id"))).toList();
//按5人平均分组 //按5人平均分组
@@ -74,7 +74,8 @@ layout("/layouts/platform.html"){
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="申请时间"> <el-descriptions-item label="申请时间">
<el-form-item prop="applyTime"> <el-form-item prop="applyTime">
<el-input disabled type="text" v-model="$moment(formData.applyTime).format('YYYY-MM-DD')"></el-input> <el-input disabled type="text"
v-model="$moment(formData.applyTime).format('YYYY-MM-DD')"></el-input>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
@@ -226,7 +227,7 @@ layout("/layouts/platform.html"){
} }
}, },
watch: { watch: {
'formData.activityType': function(newVal, oldVal) { 'formData.activityType': function (newVal, oldVal) {
if (newVal !== oldVal) { if (newVal !== oldVal) {
this.$set(this.formData, "deductionBudgetId", null) this.$set(this.formData, "deductionBudgetId", null)
this.getBudgetByYear() this.getBudgetByYear()
@@ -277,46 +278,55 @@ layout("/layouts/platform.html"){
// 提交 // 提交
onSubmit() { onSubmit() {
this.$confirm("您确定要提交吗?", "提示", { this.$refs.formRef.validate().then((valid) => {
confirmButtonText: "确定", if (valid) {
cancelButtonText: "取消", this.$confirm("您确定要提交吗?", "提示", {
type: "warning" confirmButtonText: "确定",
}).then(() => { cancelButtonText: "取消",
if (this.formData.planDate && this.formData.planDate.length > 0) { type: "warning"
this.formData.planStartTime = this.formData.planDate[0] }).then(() => {
this.formData.planEndTime = this.formData.planDate[1] if (this.formData.planDate && this.formData.planDate.length > 0) {
this.formData.planStartTime = this.formData.planDate[0]
this.formData.planEndTime = this.formData.planDate[1]
}
this.$axios.post('/platform/activityDeclare/apply/submit', {
data: JSON.stringify(this.formData)
}).then(res => {
if (res.code === 0) {
this.$message.success("提交成功")
commonUtil.pjaxPush('/platform/activityDeclare/mine')
}
})
})
} }
this.$axios.post('/platform/activityDeclare/apply/submit', {
data: JSON.stringify(this.formData)
}).then(res => {
if (res.code === 0) {
this.$message.success("提交成功")
commonUtil.pjaxPush('/platform/activityDeclare/mine')
}
})
}) })
}, },
onFinishTask() { onFinishTask() {
this.$confirm("您确定要提交吗?", "提示", { this.$refs.formRef.validate().then((valid) => {
confirmButtonText: "确定", if (valid) {
cancelButtonText: "取消", this.$confirm("您确定要提交吗?", "提示", {
type: "warning" confirmButtonText: "确定",
}).then(() => { cancelButtonText: "取消",
if (this.formData.planDate && this.formData.planDate.length > 0) { type: "warning"
this.formData.planStartTime = this.formData.planDate[0] }).then(() => {
this.formData.planEndTime = this.formData.planDate[1] if (this.formData.planDate && this.formData.planDate.length > 0) {
this.formData.planStartTime = this.formData.planDate[0]
this.formData.planEndTime = this.formData.planDate[1]
}
this.$axios.post('/platform/activityDeclare/apply/submitAgain', {
data: JSON.stringify(this.formData),
taskId: GetQueryString("taskId")
}).then(res => {
if (res.code === 0) {
this.$message.success("提交成功")
commonUtil.pjaxPush('/platform/activityDeclare/mine')
}
})
})
} }
this.$axios.post('/platform/activityDeclare/apply/submitAgain', {
data: JSON.stringify(this.formData),
taskId: GetQueryString("taskId")
}).then(res => {
if (res.code === 0) {
this.$message.success("提交成功")
commonUtil.pjaxPush('/platform/activityDeclare/mine')
}
})
}) })
}, },
// 设置申报主体名称 // 设置申报主体名称
setDeclareUnitName(val) { setDeclareUnitName(val) {
@@ -28,7 +28,8 @@ layout("/layouts/platform.html"){
<el-descriptions-item label="报销模式"> <el-descriptions-item label="报销模式">
<el-form-item prop="activityReimbursementMode" <el-form-item prop="activityReimbursementMode"
:rules="[{required:true,message:'必填',trigger:['change','blur']}]"> :rules="[{required:true,message:'必填',trigger:['change','blur']}]">
<el-radio-group v-model="formData.activityReimbursementMode" @change="getActivityReimbursementByUser"> <el-radio-group v-model="formData.activityReimbursementMode"
@change="getActivityReimbursementByUser">
<el-radio-button label="activity">活动报销</el-radio-button> <el-radio-button label="activity">活动报销</el-radio-button>
<el-radio-button label="daily">日常报销</el-radio-button> <el-radio-button label="daily">日常报销</el-radio-button>
</el-radio-group> </el-radio-group>
@@ -522,14 +523,14 @@ layout("/layouts/platform.html"){
} }
}) })
} }
if (this.$auth.hasRoleOr(["UNION_REIMBURSEMENT_MANAGER","UNION_REIMBURSEMENT_MANAGER"])) { if (this.$auth.hasRoleOr(["UNION_REIMBURSEMENT_MANAGER", "BRANCH_UNION_CHAIRMAN", "BRANCH_UNION_WENTI_SPORTS"])) {
this.budgetTypeOption.map(v => { this.budgetTypeOption.map(v => {
if (["ACTIVITY_BUDGET_TYPE_TWO"].includes(v.code)) { if (["ACTIVITY_BUDGET_TYPE_TWO"].includes(v.code)) {
budgetTypeCloseOption.push(v) budgetTypeCloseOption.push(v)
} }
}) })
} }
if (this.$auth.hasRoleOr(["CLUB_REIMBURSEMENT_MANAGER","CLUB_PRESIDENT"])) { if (this.$auth.hasRoleOr(["CLUB_REIMBURSEMENT_MANAGER", "CLUB_PRESIDENT"])) {
this.budgetTypeOption.map(v => { this.budgetTypeOption.map(v => {
if (["ACTIVITY_BUDGET_TYPE_THREE"].includes(v.code)) { if (["ACTIVITY_BUDGET_TYPE_THREE"].includes(v.code)) {
budgetTypeCloseOption.push(v) budgetTypeCloseOption.push(v)
@@ -27,14 +27,15 @@ const INFO = {
<el-descriptions-item></el-descriptions-item> <el-descriptions-item></el-descriptions-item>
<template v-if="viewData.activityReimbursementMode==='activity'"> <template v-if="viewData.activityReimbursementMode==='activity'">
<el-descriptions-item label="活动计划时间">{{ (viewData.planStartTime ? viewData.planStartTime : <el-descriptions-item label="活动计划时间">
{{ (viewData.planStartTime ? $moment(viewData.planStartTime).format('YYYY-MM-DD') :
'未填写') '未填写')
+ ' ~ ' + (viewData.planEndTime ? viewData.planEndTime : '未填写') }} + ' ~ ' + (viewData.planEndTime ? $moment(viewData.planEndTime).format('YYYY-MM-DD') : '未填写') }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="活动人数">{{ viewData.activityNumber }}</el-descriptions-item> <el-descriptions-item label="活动人数">{{ viewData.activityNumber }}</el-descriptions-item>
<el-descriptions-item label="实际活动时间" :span="2">{{ (viewData.startTime ? viewData.startTime : <el-descriptions-item label="实际活动时间" :span="2">{{ (viewData.startTime ? $moment(viewData.startTime).format('YYYY-MM-DD') :
'未填写') + ' ~ ' + (viewData.endTime ? viewData.endTime : '未填写') }} '未填写') + ' ~ ' + (viewData.endTime ? $moment(viewData.endTime).format('YYYY-MM-DD') : '未填写') }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="活动地址" :span="2">{{ viewData.activityAddress }} <el-descriptions-item label="活动地址" :span="2">{{ viewData.activityAddress }}
@@ -713,6 +713,7 @@ var ACTIVITY_SPORTS_APPLY_USER = {
}) })
//表格的人员 //表格的人员
arr.forEach((v) => { arr.forEach((v) => {
this.applyFromData.teamName=this.teamList.find(t=>t.id===this.applyFromData.teamId)?.name
const data = { const data = {
id: null, id: null,
loginname: v.loginname, loginname: v.loginname,
@@ -115,18 +115,19 @@ layout("/layouts/platform.html"){
<!-- ></el-input>--> <!-- ></el-input>-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
<!-- <el-form-item label="调研情况" prop="researchFindings">--> <!-- <el-form-item label="调研情况" prop="researchFindings">-->
<!-- <el-input--> <!-- <el-input-->
<!-- v-model="formData.researchFindings"--> <!-- v-model="formData.researchFindings"-->
<!-- type="textarea"--> <!-- type="textarea"-->
<!-- autosize--> <!-- autosize-->
<!-- :autosize="{ minRows: 4, maxRows: 4}"--> <!-- :autosize="{ minRows: 4, maxRows: 4}"-->
<!-- placeholder="调研情况"--> <!-- placeholder="调研情况"-->
<!-- ></el-input>--> <!-- ></el-input>-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
<el-form-item label="建议承办单位" prop="suggestUnits"> <el-form-item label="建议承办单位" prop="suggestUnits">
<el-select v-model="formData.suggestUnits" multiple filterable style="width: 100%" placeholder="请选择建议承办单位"> <el-select v-model="formData.suggestUnits" multiple filterable style="width: 100%"
placeholder="请选择建议承办单位">
<el-option :key="item.id" :label="item.name" :value="item.name" <el-option :key="item.id" :label="item.name" :value="item.name"
v-for="item in suggestUnitOptions"></el-option> v-for="item in suggestUnitOptions"></el-option>
</el-select> </el-select>
@@ -242,7 +243,9 @@ layout("/layouts/platform.html"){
this.$message.warning("请填写提案名称") this.$message.warning("请填写提案名称")
return return
} }
if (this.formData.brief.length < this.proposalConfig.briefMinLength) { let brief = clone(this.formData.brief)
brief = removeHTMLTag(brief)
if (brief.length < this.proposalConfig.briefMinLength) {
this.$message.warning("提案内容和依据最少为" + this.proposalConfig.briefMinLength + "字") this.$message.warning("提案内容和依据最少为" + this.proposalConfig.briefMinLength + "字")
return return
} }
@@ -257,16 +260,21 @@ layout("/layouts/platform.html"){
loading.close() loading.close()
if (res.code === 0) { if (res.code === 0) {
this.$message.success("提交成功") this.$message.success("提交成功")
this.$confirm("提交成功,是否立即去邀请附议人?", "提示", { if (this.formData.source==="PERSONAL"){
confirmButtonText: "确定", this.$confirm("提交成功,是否立即去邀请附议人?", "提示", {
cancelButtonText: "取消", confirmButtonText: "确定",
type: "warning" cancelButtonText: "取消",
}).then(() => { type: "warning"
commonUtil.pjaxPush('/platform/proposal/mine?bizId=' + res.data.id + "&operation=invite") }).then(() => {
}).catch(() => { commonUtil.pjaxPush('/platform/proposal/mine?bizId=' + res.data.id + "&operation=invite")
this.$message.info("请到我的提案界面邀请附议人") }).catch(() => {
this.$message.info("请到我的提案界面邀请附议人")
commonUtil.pjaxPush('/platform/proposal/mine')
})
}else{
commonUtil.pjaxPush('/platform/proposal/mine') commonUtil.pjaxPush('/platform/proposal/mine')
}) }
} }
}) })
}) })
@@ -275,13 +283,16 @@ layout("/layouts/platform.html"){
// 重新提交 // 重新提交
async onSubmitAgain() { async onSubmitAgain() {
const valid = await this.$refs["addForm"].validate() const valid = await this.$refs["addForm"].validate()
if (valid) { if (valid) {
if (!this.formData.name || this.formData.name.trim().length < 1) { if (!this.formData.name || this.formData.name.trim().length < 1) {
this.$message.warning("请填写提案名称") this.$message.warning("请填写提案名称")
return return
} }
if (this.formData.brief.length < this.proposalConfig.briefMinLength) { let brief = clone(this.formData.brief)
brief = removeHTMLTag(brief)
if (brief.length < this.proposalConfig.briefMinLength) {
this.$message.warning("提案内容和依据最少为" + this.proposalConfig.briefMinLength + "字") this.$message.warning("提案内容和依据最少为" + this.proposalConfig.briefMinLength + "字")
return return
} }
@@ -412,7 +412,7 @@ layout("/layouts/platform_h5.html"){
} else if (this.viewData.userNumberLimit === 2) { } else if (this.viewData.userNumberLimit === 2) {
//分工会人数限制 //分工会人数限制
const union = this.viewData.unionUserNumberLimit.find(v => v.id === this.$store.state.user.union.id) const union = this.viewData.unionUserNumberLimit.find(v => v.id === this.$store.state.user.union.id)
this.viewData.unionTeamNum = union.limitNum this.viewData.unionLimitNum = union.limitNum
} }
if (this.viewData.signUpMethod === 3) { if (this.viewData.signUpMethod === 3) {
this.listTeamUserUnion() this.listTeamUserUnion()
@@ -768,6 +768,7 @@ layout("/layouts/platform_h5.html"){
}, },
created() { created() {
this.init() this.init()
} }
}) })
</script> </script>
@@ -66,7 +66,7 @@ layout("/layouts/platform_h5.html"){
</van-form> </van-form>
<div style="display: flex; justify-content: space-between; column-gap: 10px; padding: 10px"> <div style="display: flex; justify-content: space-between; column-gap: 10px; padding: 10px">
<van-button type="danger" block @click="handleTaskAction(6)">退回</van-button> <van-button type="danger" block @click="handleTaskAction(6)">退回</van-button>
<van-button type="danger" block @click="handleTaskAction(20)">不同意</van-button> <van-button type="danger" block @click="handleTaskAction(2)">不同意</van-button>
<van-button type="primary" block @click="handleTaskAction(1)">同意</van-button> <van-button type="primary" block @click="handleTaskAction(1)">同意</van-button>
</div> </div>
</div> </div>