医疗互助补助模块1.1
This commit is contained in:
+6
-4
@@ -43,13 +43,14 @@ public class MedicalMutualAidSummaryController {
|
|||||||
* @param deptName 所在单位
|
* @param deptName 所在单位
|
||||||
* @param userName 姓名
|
* @param userName 姓名
|
||||||
* @param joinYear 加入年份
|
* @param joinYear 加入年份
|
||||||
|
* @param submitYear 申报年份,按申请提交时间所在年份过滤
|
||||||
* @return 汇总分页数据
|
* @return 汇总分页数据
|
||||||
*/
|
*/
|
||||||
@At("/summary/page")
|
@At("/summary/page")
|
||||||
@ApiOperation("查询医疗互助汇总")
|
@ApiOperation("查询医疗互助汇总")
|
||||||
@SaCheckPermission("medicalMutualAid.apply.summary")
|
@SaCheckPermission("medicalMutualAid.apply.summary")
|
||||||
public Result page(PageForm pageForm, String deptName, String userName, Integer joinYear) {
|
public Result page(PageForm pageForm, String deptName, String userName, Integer joinYear, Integer submitYear) {
|
||||||
return Result.success(medicalMutualAidApplyService.summaryPage(pageForm, deptName, userName, joinYear));
|
return Result.success(medicalMutualAidApplyService.summaryPage(pageForm, deptName, userName, joinYear, submitYear));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -58,14 +59,15 @@ public class MedicalMutualAidSummaryController {
|
|||||||
* @param deptName 所在单位
|
* @param deptName 所在单位
|
||||||
* @param userName 姓名
|
* @param userName 姓名
|
||||||
* @param joinYear 加入年份
|
* @param joinYear 加入年份
|
||||||
|
* @param submitYear 申报年份,按申请提交时间所在年份过滤
|
||||||
* @param response HTTP 响应
|
* @param response HTTP 响应
|
||||||
*/
|
*/
|
||||||
@At("/summary/exportExcel")
|
@At("/summary/exportExcel")
|
||||||
@Ok("void")
|
@Ok("void")
|
||||||
@ApiOperation("导出医疗互助汇总")
|
@ApiOperation("导出医疗互助汇总")
|
||||||
@SaCheckPermission("medicalMutualAid.apply.summary")
|
@SaCheckPermission("medicalMutualAid.apply.summary")
|
||||||
public void exportExcel(String deptName, String userName, Integer joinYear, HttpServletResponse response) {
|
public void exportExcel(String deptName, String userName, Integer joinYear, Integer submitYear, HttpServletResponse response) {
|
||||||
Workbook workbook = medicalMutualAidApplyService.exportSummary(deptName, userName, joinYear);
|
Workbook workbook = medicalMutualAidApplyService.exportSummary(deptName, userName, joinYear, submitYear);
|
||||||
CommonDownloadUtil.download("医疗互助汇总.xlsx", workbook, response);
|
CommonDownloadUtil.download("医疗互助汇总.xlsx", workbook, response);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-2
@@ -114,9 +114,10 @@ public interface MedicalMutualAidApplyService extends BaseService<MutualApply> {
|
|||||||
* @param deptName 所在单位
|
* @param deptName 所在单位
|
||||||
* @param userName 姓名
|
* @param userName 姓名
|
||||||
* @param joinYear 加入年份
|
* @param joinYear 加入年份
|
||||||
|
* @param submitYear 申报年份,按提交时间所属年份过滤
|
||||||
* @return 汇总分页列表
|
* @return 汇总分页列表
|
||||||
*/
|
*/
|
||||||
Pagination<NutMap> summaryPage(PageForm pageForm, String deptName, String userName, Integer joinYear);
|
Pagination<NutMap> summaryPage(PageForm pageForm, String deptName, String userName, Integer joinYear, Integer submitYear);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出医疗互助汇总,导出字段与汇总页面展示列保持一致,动态补助区间按当前查询结果生成。
|
* 导出医疗互助汇总,导出字段与汇总页面展示列保持一致,动态补助区间按当前查询结果生成。
|
||||||
@@ -124,7 +125,8 @@ public interface MedicalMutualAidApplyService extends BaseService<MutualApply> {
|
|||||||
* @param deptName 所在单位
|
* @param deptName 所在单位
|
||||||
* @param userName 姓名
|
* @param userName 姓名
|
||||||
* @param joinYear 加入年份
|
* @param joinYear 加入年份
|
||||||
|
* @param submitYear 申报年份,按提交时间所属年份过滤
|
||||||
* @return Excel 工作簿
|
* @return Excel 工作簿
|
||||||
*/
|
*/
|
||||||
Workbook exportSummary(String deptName, String userName, Integer joinYear);
|
Workbook exportSummary(String deptName, String userName, Integer joinYear, Integer submitYear);
|
||||||
}
|
}
|
||||||
|
|||||||
+19
-5
@@ -51,6 +51,8 @@ import java.io.ByteArrayOutputStream;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.ZoneId;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
@@ -345,8 +347,8 @@ public class MedicalMutualAidApplyServiceImpl extends BaseServiceImpl<MutualAppl
|
|||||||
* 汇总页先返回审核通过的申请数据,并携带动态补助明细列表,前端按明细动态展示列。
|
* 汇总页先返回审核通过的申请数据,并携带动态补助明细列表,前端按明细动态展示列。
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Pagination<NutMap> summaryPage(PageForm pageForm, String deptName, String userName, Integer joinYear) {
|
public Pagination<NutMap> summaryPage(PageForm pageForm, String deptName, String userName, Integer joinYear, Integer submitYear) {
|
||||||
Cnd cnd = buildSummaryCnd(deptName, userName, joinYear);
|
Cnd cnd = buildSummaryCnd(deptName, userName, joinYear, submitYear);
|
||||||
Pagination<MutualApply> page = listPage(pageForm.getPageNumber(), pageForm.getPageSize(), cnd.desc("auditTime"));
|
Pagination<MutualApply> page = listPage(pageForm.getPageNumber(), pageForm.getPageSize(), cnd.desc("auditTime"));
|
||||||
List<NutMap> rows = page.getList().stream()
|
List<NutMap> rows = page.getList().stream()
|
||||||
.map(this::buildSummaryRow)
|
.map(this::buildSummaryRow)
|
||||||
@@ -358,8 +360,8 @@ public class MedicalMutualAidApplyServiceImpl extends BaseServiceImpl<MutualAppl
|
|||||||
* 按汇总页当前展示列导出 Excel,动态补助区间列由当前查询结果中的补助明细生成。
|
* 按汇总页当前展示列导出 Excel,动态补助区间列由当前查询结果中的补助明细生成。
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Workbook exportSummary(String deptName, String userName, Integer joinYear) {
|
public Workbook exportSummary(String deptName, String userName, Integer joinYear, Integer submitYear) {
|
||||||
List<MutualApply> applies = query(buildSummaryCnd(deptName, userName, joinYear).desc("auditTime"));
|
List<MutualApply> applies = query(buildSummaryCnd(deptName, userName, joinYear, submitYear).desc("auditTime"));
|
||||||
List<String> rangeNames = collectSummaryRangeNames(applies);
|
List<String> rangeNames = collectSummaryRangeNames(applies);
|
||||||
List<ExcelExportEntity> exportEntities = buildSummaryExportEntities(rangeNames);
|
List<ExcelExportEntity> exportEntities = buildSummaryExportEntities(rangeNames);
|
||||||
List<Map<String, Object>> exportRows = buildSummaryExportRows(applies, rangeNames);
|
List<Map<String, Object>> exportRows = buildSummaryExportRows(applies, rangeNames);
|
||||||
@@ -592,7 +594,7 @@ public class MedicalMutualAidApplyServiceImpl extends BaseServiceImpl<MutualAppl
|
|||||||
/**
|
/**
|
||||||
* 构建汇总查询条件,列表和导出共用该条件,保证页面展示与 Excel 导出数据范围一致。
|
* 构建汇总查询条件,列表和导出共用该条件,保证页面展示与 Excel 导出数据范围一致。
|
||||||
*/
|
*/
|
||||||
private Cnd buildSummaryCnd(String deptName, String userName, Integer joinYear) {
|
private Cnd buildSummaryCnd(String deptName, String userName, Integer joinYear, Integer submitYear) {
|
||||||
Cnd cnd = Cnd.where("status", "=", 1);
|
Cnd cnd = Cnd.where("status", "=", 1);
|
||||||
if (StrUtil.isNotBlank(deptName)) {
|
if (StrUtil.isNotBlank(deptName)) {
|
||||||
cnd.and(Cnd.likeEX("deptName", StrUtil.trim(deptName)));
|
cnd.and(Cnd.likeEX("deptName", StrUtil.trim(deptName)));
|
||||||
@@ -603,9 +605,21 @@ public class MedicalMutualAidApplyServiceImpl extends BaseServiceImpl<MutualAppl
|
|||||||
if (joinYear != null) {
|
if (joinYear != null) {
|
||||||
cnd.and("joinYear", "=", joinYear);
|
cnd.and("joinYear", "=", joinYear);
|
||||||
}
|
}
|
||||||
|
if (submitYear != null) {
|
||||||
|
Date startDate = toStartDate(submitYear);
|
||||||
|
Date endDate = toStartDate(submitYear + 1);
|
||||||
|
cnd.and("submitTime", ">=", startDate).and("submitTime", "<", endDate);
|
||||||
|
}
|
||||||
return cnd;
|
return cnd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 将年度转换为该年第一天零点时间,汇总页按提交时间区间过滤,避免在数据库字段上套函数影响索引。
|
||||||
|
*/
|
||||||
|
private Date toStartDate(Integer year) {
|
||||||
|
return Date.from(LocalDate.of(year, 1, 1).atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 收集导出数据中出现过的补助区间名称,顺序按明细排序和首次出现顺序保持稳定。
|
* 收集导出数据中出现过的补助区间名称,顺序按明细排序和首次出现顺序保持稳定。
|
||||||
*/
|
*/
|
||||||
|
|||||||
+8
-2
@@ -25,6 +25,9 @@ layout("/layouts/platform.html"){
|
|||||||
<el-form-item label="加入年份">
|
<el-form-item label="加入年份">
|
||||||
<el-date-picker v-model="searchForm.joinYear" type="year" value-format="yyyy" placeholder="请选择加入年份" style="width: 220px"></el-date-picker>
|
<el-date-picker v-model="searchForm.joinYear" type="year" value-format="yyyy" placeholder="请选择加入年份" style="width: 220px"></el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="申报时间">
|
||||||
|
<el-date-picker v-model="searchForm.submitYear" type="year" value-format="yyyy" placeholder="请选择申报时间" style="width: 220px"></el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="loadPage">查询</el-button>
|
<el-button type="primary" @click="loadPage">查询</el-button>
|
||||||
<el-button @click="resetSearch">重置</el-button>
|
<el-button @click="resetSearch">重置</el-button>
|
||||||
@@ -78,7 +81,7 @@ layout("/layouts/platform.html"){
|
|||||||
totalCount: 0,
|
totalCount: 0,
|
||||||
tableHeight: 360,
|
tableHeight: 360,
|
||||||
apiBase: "${base!}/platform/medicalMutualAid/apply/summary",
|
apiBase: "${base!}/platform/medicalMutualAid/apply/summary",
|
||||||
searchForm: { deptName: "", userName: "", joinYear: "" },
|
searchForm: { deptName: "", userName: "", joinYear: "", submitYear: String(new Date().getFullYear()) },
|
||||||
pageForm: { pageNumber: 1, pageSize: 10 }
|
pageForm: { pageNumber: 1, pageSize: 10 }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -135,7 +138,7 @@ layout("/layouts/platform.html"){
|
|||||||
this.scheduleTableLayout()
|
this.scheduleTableLayout()
|
||||||
},
|
},
|
||||||
resetSearch() {
|
resetSearch() {
|
||||||
this.searchForm = { deptName: "", userName: "", joinYear: "" }
|
this.searchForm = { deptName: "", userName: "", joinYear: "", submitYear: String(new Date().getFullYear()) }
|
||||||
this.pageForm.pageNumber = 1
|
this.pageForm.pageNumber = 1
|
||||||
this.loadPage()
|
this.loadPage()
|
||||||
},
|
},
|
||||||
@@ -150,6 +153,9 @@ layout("/layouts/platform.html"){
|
|||||||
if (this.searchForm.joinYear) {
|
if (this.searchForm.joinYear) {
|
||||||
params.push("joinYear=" + encodeURIComponent(this.searchForm.joinYear))
|
params.push("joinYear=" + encodeURIComponent(this.searchForm.joinYear))
|
||||||
}
|
}
|
||||||
|
if (this.searchForm.submitYear) {
|
||||||
|
params.push("submitYear=" + encodeURIComponent(this.searchForm.submitYear))
|
||||||
|
}
|
||||||
window.open(this.apiBase + "/exportExcel" + (params.length ? "?" + params.join("&") : ""))
|
window.open(this.apiBase + "/exportExcel" + (params.length ? "?" + params.join("&") : ""))
|
||||||
},
|
},
|
||||||
formatMoney(value) {
|
formatMoney(value) {
|
||||||
|
|||||||
Reference in New Issue
Block a user