This commit is contained in:
2025-08-28 11:29:30 +08:00
parent f364119414
commit c93cf2f36c
2 changed files with 307 additions and 0 deletions
@@ -0,0 +1,73 @@
package com.budwk.app.zhgh.outlay.outlayReimburse.service.impl;
import cn.hutool.core.util.StrUtil;
import com.budwk.app.base.service.impl.BaseServiceImpl;
import com.budwk.app.base.utils.PageUtil;
import com.budwk.app.flow.enums.ProcessTaskStateEnum;
import com.budwk.app.zhgh.outlay.outlayReimburse.service.OutlayReimburseSummaryService;
import com.budwk.app.zhgh.outlay.outlayReimburse.vo.OutlayReimbursePageForm;
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.IocBean;
/**
* @author zhf
* @date 2025/8/21 09:17
* @description
*/
@IocBean(args = {"refer:dao"})
public class OutlayReimburseSummaryServiceImpl extends BaseServiceImpl implements OutlayReimburseSummaryService {
public OutlayReimburseSummaryServiceImpl(Dao dao) {
super(dao);
}
@Override
public Sql getSql(OutlayReimbursePageForm pageForm) {
Sql sql = Sqls.create("""
SELECT
info.*,
ins.id AS instanceId,
ins.businessNo,
ins.state instanceState,
ins.variable instanceVariale,
ins.processDefineId instanceProcessDefineId,
t.id taskId,
t.taskName AS taskKey,
t.displayName taskName,
t.taskType,
t.performType taskPerformType,
t.taskState,
t.finishTime,
t.taskParentId,
t.variable taskVariale,
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
FROM
outlay_reimburse info
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_actor ta ON ta.processTaskId = t.id
$condition
""");
Cnd cnd = Cnd.NEW();
cnd.andEX("info.unionId", "=", pageForm.getUnionId());
cnd.andEX("info.outlayManageSource", "=", pageForm.getOutlayManageSource());
cnd.andEX("YEAR(info.applyTime)", "=", pageForm.getYear());
cnd.andEX("info.detailsTypeId", "=", pageForm.getDetailsTypeId());
cnd.and("ins.state", "=", ProcessTaskStateEnum.FINISHED.getCode());
if (StrUtil.isAllNotEmpty(pageForm.getSearchName(), pageForm.getSearchKeyword())) {
cnd.where().andLike(pageForm.getSearchName(), pageForm.getSearchKeyword());
}
if (StrUtil.isAllBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) {
cnd.desc("t.createdAt").desc("info.applyTime");
} else {
cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy()));
}
sql.setCondition(cnd);
return sql;
}
}