init
This commit is contained in:
+28
@@ -0,0 +1,28 @@
|
||||
package io.v.nutz.zhgh.medicalMutualAidFund.constant;
|
||||
|
||||
import io.v.nutz.base.annontation.SelectEnum;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 互助金审核代码
|
||||
*
|
||||
* @author jug
|
||||
* @date 2024/01/17
|
||||
*/
|
||||
@Getter
|
||||
@SelectEnum
|
||||
@AllArgsConstructor
|
||||
public enum MedicalMutualAidFundAuditStateConstant {
|
||||
|
||||
NOT_SUBMIT(1, "待提交"),
|
||||
BRANCH_UNION_AUDIT(2, "待分工会审核"),
|
||||
BRANCH_UNION_REJECT(3, "分工会审核拒绝"),
|
||||
SCHOOL_HOSPITAL_IMPORT(4,"待校医院核定金额"),
|
||||
FUND_AID_GROUP_IMPORT(5,"待医疗互助金小组核定金额"),
|
||||
PASS(6,"申请通过");
|
||||
|
||||
private final int code;
|
||||
private final String desc;
|
||||
|
||||
}
|
||||
+158
@@ -0,0 +1,158 @@
|
||||
package io.v.nutz.zhgh.medicalMutualAidFund.controller;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.wizzer.framework.base.Result;
|
||||
import com.deepoove.poi.XWPFTemplate;
|
||||
import com.deepoove.poi.config.Configure;
|
||||
import com.deepoove.poi.policy.HackLoopTableRenderPolicy;
|
||||
import io.v.nutz.base.utils.OfficeTemplateUtil;
|
||||
import io.v.nutz.web.commons.slog.annotation.SLog;
|
||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||
import io.v.nutz.zhgh.medicalMutualAidFund.constant.MedicalMutualAidFundAuditStateConstant;
|
||||
import io.v.nutz.zhgh.medicalMutualAidFund.handler.MedicalMutualAidFundToDoHandler;
|
||||
import io.v.nutz.zhgh.medicalMutualAidFund.model.MedicalMutualAidFund;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.shiro.authz.annotation.Logical;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.lang.Lang;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
import javax.servlet.ServletOutputStream;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 互助金申请
|
||||
*
|
||||
* @author jug
|
||||
* @date 2024/01/17
|
||||
*/
|
||||
@IocBean
|
||||
@At("/platform/medicalMutualAidFund/apply")
|
||||
@Slf4j
|
||||
@Ok("json:full")
|
||||
public class MedicalMutualAidFundApplyController {
|
||||
|
||||
@Inject
|
||||
private Dao dao;
|
||||
|
||||
@Inject
|
||||
private OfficeTemplateUtil officeTemplateUtil;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/medicalMutualAidFund/apply.html")
|
||||
@RequiresPermissions("medicalMutualAidFund.apply")
|
||||
public void index(HttpServletRequest request) {
|
||||
}
|
||||
|
||||
@At
|
||||
@RequiresPermissions("medicalMutualAidFund.apply")
|
||||
@SLog(type = "medicalMutualAidFund", tag = "互助金申请保存", msg = "互助金申请保存")
|
||||
public Result save(@Param("apply") MedicalMutualAidFund medicalMutualAidFund) {
|
||||
if (StrUtil.isBlank(medicalMutualAidFund.getId())) {
|
||||
int count = dao.count(MedicalMutualAidFund.class, Cnd.where("YEAR(applyDate)", "=", DateUtil.thisYear())
|
||||
.and("userId", "=", ShiroUtil.getUserId()));
|
||||
if (count > 0) {
|
||||
return Result.error("您今年已经申请过了,请到我的申请里查看!");
|
||||
}
|
||||
}
|
||||
|
||||
medicalMutualAidFund.setStateId(MedicalMutualAidFundAuditStateConstant.NOT_SUBMIT.getCode());
|
||||
medicalMutualAidFund.setApplyDate(new Date());
|
||||
dao.insertOrUpdate(medicalMutualAidFund);
|
||||
|
||||
//开启流程
|
||||
MedicalMutualAidFundToDoHandler.START_PROCESS.exec(medicalMutualAidFund);
|
||||
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At
|
||||
@RequiresPermissions("medicalMutualAidFund.apply")
|
||||
@SLog(type = "medicalMutualAidFund", tag = "互助金申请提交", msg = "互助金申请提交")
|
||||
public Result submit(@Param("apply") MedicalMutualAidFund medicalMutualAidFund) {
|
||||
if (StrUtil.isBlank(medicalMutualAidFund.getId())) {
|
||||
int count = dao.count(MedicalMutualAidFund.class, Cnd.where("YEAR(applyDate)", "=", DateUtil.thisYear())
|
||||
.and("userId", "=", ShiroUtil.getUserId()));
|
||||
if (count > 0) {
|
||||
return Result.error("您今年已经申请过了,请到我的申请里查看!");
|
||||
}
|
||||
}
|
||||
|
||||
medicalMutualAidFund.setStateId(MedicalMutualAidFundAuditStateConstant.BRANCH_UNION_AUDIT.getCode());
|
||||
medicalMutualAidFund.setApplyDate(new Date());
|
||||
dao.insertOrUpdate(medicalMutualAidFund);
|
||||
|
||||
//开启流程
|
||||
MedicalMutualAidFundToDoHandler.START_PROCESS.exec(medicalMutualAidFund);
|
||||
//完成修改任务 如果有的话
|
||||
MedicalMutualAidFundToDoHandler.COMPLETE_APPLY_RE_MODIFY_TASK.exec(medicalMutualAidFund);
|
||||
//创建分工会待办
|
||||
MedicalMutualAidFundToDoHandler.CREATE_UNION_TASK.exec(medicalMutualAidFund);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At
|
||||
@RequiresPermissions("medicalMutualAidFund.apply")
|
||||
@SLog(type = "medicalMutualAidFund", tag = "互助金申请修改", msg = "互助金申请修改")
|
||||
public Result update(@Param("apply") MedicalMutualAidFund medicalMutualAidFund) {
|
||||
dao.updateIgnoreNull(medicalMutualAidFund);
|
||||
return null;
|
||||
}
|
||||
|
||||
@At
|
||||
@RequiresPermissions("medicalMutualAidFund.apply")
|
||||
public Result findOne(String id) {
|
||||
MedicalMutualAidFund mutualAidFund = dao.fetch(MedicalMutualAidFund.class, id);
|
||||
dao.fetchLinks(mutualAidFund, "branchUnionAudit");
|
||||
// dao.fetchLinks(mutualAidFund, "schoolHospitalConfirmSelfPaymentAmountAudit");
|
||||
dao.fetchLinks(mutualAidFund, "schoolConfirmSelfPaymentAmountAudit");
|
||||
return Result.success(mutualAidFund);
|
||||
}
|
||||
|
||||
@At
|
||||
@RequiresPermissions(value =
|
||||
{"medicalMutualAidFund.apply",
|
||||
"medicalMutualAidFund.myApply",
|
||||
"medicalMutualAidFund.branchUnionAudit",
|
||||
"medicalMutualAidFund.schoolUnionAudit"}, logical = Logical.OR)
|
||||
@Ok("void")
|
||||
public void exportApply(String id, HttpServletResponse response) {
|
||||
try {
|
||||
MedicalMutualAidFund mutualAidFund = dao.fetch(MedicalMutualAidFund.class, id);
|
||||
dao.fetchLinks(mutualAidFund, "branchUnionAudit");
|
||||
HackLoopTableRenderPolicy policy = new HackLoopTableRenderPolicy();
|
||||
Configure config = Configure.builder().bind("familyIncome", policy).build();
|
||||
String docxName = mutualAidFund.getUserName() + "互助金申请";
|
||||
|
||||
NutMap nutMap = Lang.obj2nutmap(mutualAidFund);
|
||||
nutMap.setv("applyDate", DateUtil.format(DateUtil.parseDate(nutMap.getString("applyDate")), "yyyy年MM月dd日"));
|
||||
nutMap.setv("birthday", DateUtil.format(DateUtil.parseDate(nutMap.getString("birthday")), "yyyy年MM月dd日"));
|
||||
nutMap.setv("fghyj", mutualAidFund.getBranchUnionAudit() != null ? mutualAidFund.getBranchUnionAudit().getAuditOpinion() : null);
|
||||
nutMap.setv("hdje", mutualAidFund.getSchoolConfirmSelfPaymentAmount());
|
||||
nutMap.setv("bzje", mutualAidFund.getFinalSubsidyMoney());
|
||||
|
||||
response.addHeader("Content-Type", "application/octet-stream");
|
||||
response.addHeader("Content-Disposition", "attachment; filename=\"" + new String(docxName.getBytes("UTF-8"), "ISO-8859-1") + "\".docx");
|
||||
|
||||
ServletOutputStream os = response.getOutputStream();
|
||||
XWPFTemplate.compile(officeTemplateUtil.getPath("medicalMutualAidFundApply"),
|
||||
config).render(nutMap).writeAndClose(os);
|
||||
os.close();
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+107
@@ -0,0 +1,107 @@
|
||||
package io.v.nutz.zhgh.medicalMutualAidFund.controller;
|
||||
|
||||
import cn.wizzer.framework.base.Result;
|
||||
import cn.wizzer.framework.page.Pagination;
|
||||
import io.v.nutz.base.utils.Vi;
|
||||
import io.v.nutz.base.model.Audit;
|
||||
import io.v.nutz.base.query.PageForm;
|
||||
import io.v.nutz.base.service.ViService;
|
||||
import io.v.nutz.web.commons.slog.annotation.SLog;
|
||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||
import io.v.nutz.zhgh.medicalMutualAidFund.constant.MedicalMutualAidFundAuditStateConstant;
|
||||
import io.v.nutz.zhgh.medicalMutualAidFund.handler.MedicalMutualAidFundToDoHandler;
|
||||
import io.v.nutz.zhgh.medicalMutualAidFund.model.MedicalMutualAidFund;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
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.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 javax.servlet.http.HttpServletRequest;
|
||||
|
||||
/**
|
||||
* 分工会审核
|
||||
*
|
||||
* @author jug
|
||||
* @date 2024/01/17
|
||||
*/
|
||||
@IocBean
|
||||
@At("/platform/medicalMutualAidFund/branchUnionAudit")
|
||||
@Slf4j
|
||||
@Ok("json:full")
|
||||
public class MedicalMutualAidFundBranchUnionAuditController {
|
||||
|
||||
@Inject
|
||||
private Dao dao;
|
||||
|
||||
@Inject(value = "MedicalMutualAidFund")
|
||||
private ViService medicalMutualAidFundService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/medicalMutualAidFund/branchUnionAudit.html")
|
||||
@RequiresPermissions("medicalMutualAidFund.branchUnionAudit")
|
||||
public void index(HttpServletRequest request) {
|
||||
|
||||
}
|
||||
|
||||
@At
|
||||
@RequiresPermissions("medicalMutualAidFund.branchUnionAudit")
|
||||
public Result pageData(PageForm pageForm, @Param(required = false, value = "year") Integer year,Integer isAudit) {
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.andEX("YEAR(applyDate)", "=", year);
|
||||
if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) {
|
||||
cnd.and("unionId", "=", Vi.getUnionId());
|
||||
}
|
||||
switch (isAudit) {
|
||||
case 0 -> cnd.and("stateId", ">=", MedicalMutualAidFundAuditStateConstant.BRANCH_UNION_AUDIT.getCode());
|
||||
case 1 -> cnd.and("stateId", ">", MedicalMutualAidFundAuditStateConstant.BRANCH_UNION_AUDIT.getCode());
|
||||
case -1 -> cnd.and("stateId", "=", MedicalMutualAidFundAuditStateConstant.BRANCH_UNION_AUDIT.getCode());
|
||||
}
|
||||
Pagination pagination = medicalMutualAidFundService.listPage(pageForm.getPageNumber(), pageForm.getPageSize(), cnd);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
@At
|
||||
@RequiresPermissions("medicalMutualAidFund.branchUnionAudit")
|
||||
@SLog(type = "medicalMutualAidFund", tag = "分工会(离退休)审核通过", msg = "分工会(离退休)审核通过")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
public Result pass(Audit audit, String id) {
|
||||
dao.insert(audit);
|
||||
dao.update(MedicalMutualAidFund.class,
|
||||
Chain.make("stateId", MedicalMutualAidFundAuditStateConstant.SCHOOL_HOSPITAL_IMPORT.getCode())
|
||||
.add("branchUnionAuditId", audit.getId()),
|
||||
Cnd.where("id", "=", id));
|
||||
|
||||
//完成待办
|
||||
MedicalMutualAidFundToDoHandler.COMPLETE_UNION_TASK.exec(new MedicalMutualAidFund().setId(id));
|
||||
//发起校医院待办
|
||||
MedicalMutualAidFundToDoHandler.CREATE_SCHOOL_HOSPITAL_TASK.exec(new MedicalMutualAidFund().setId(id));
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At
|
||||
@RequiresPermissions("medicalMutualAidFund.branchUnionAudit")
|
||||
@SLog(type = "medicalMutualAidFund", tag = "分工会(离退休)审核拒绝", msg = "分工会(离退休)审核拒绝")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
public Result reject(Audit audit, String id) {
|
||||
dao.insert(audit);
|
||||
dao.update(MedicalMutualAidFund.class,
|
||||
Chain.make("stateId", MedicalMutualAidFundAuditStateConstant.BRANCH_UNION_REJECT.getCode())
|
||||
.add("branchUnionAuditId", audit.getId()),
|
||||
Cnd.where("id", "=", id));
|
||||
|
||||
//完成待办
|
||||
MedicalMutualAidFundToDoHandler.COMPLETE_UNION_TASK.exec(new MedicalMutualAidFund().setId(id));
|
||||
//发起重新填写待办
|
||||
MedicalMutualAidFundToDoHandler.CREATE_APPLY_RE_MODIFY_TASK.exec(new MedicalMutualAidFund().setId(id));
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
}
|
||||
+195
@@ -0,0 +1,195 @@
|
||||
package io.v.nutz.zhgh.medicalMutualAidFund.controller;
|
||||
|
||||
import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
||||
import cn.afterturn.easypoi.excel.ExcelImportUtil;
|
||||
import cn.afterturn.easypoi.excel.entity.ExportParams;
|
||||
import cn.afterturn.easypoi.excel.entity.ImportParams;
|
||||
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.wizzer.framework.base.Result;
|
||||
import cn.wizzer.framework.page.Pagination;
|
||||
import io.v.nutz.base.query.PageForm;
|
||||
import io.v.nutz.base.service.ViService;
|
||||
import io.v.nutz.base.utils.ViTool;
|
||||
import io.v.nutz.zhgh.medicalMutualAidFund.constant.MedicalMutualAidFundAuditStateConstant;
|
||||
import io.v.nutz.zhgh.medicalMutualAidFund.model.MedicalMutualAidFund;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.nutz.dao.Chain;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.dao.util.cri.SqlExpressionGroup;
|
||||
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.AdaptBy;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
import org.nutz.mvc.upload.TempFile;
|
||||
import org.nutz.mvc.upload.UploadAdaptor;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 互助金小组金额
|
||||
*
|
||||
* @author jug
|
||||
* @date 2024/01/17
|
||||
*/
|
||||
@IocBean
|
||||
@At("/platform/medicalMutualAidFund/finalAudit")
|
||||
@Slf4j
|
||||
@Ok("json:full")
|
||||
public class MedicalMutualAidFundFinalAuditController {
|
||||
|
||||
private static final BigDecimal lowerBound = new BigDecimal("5000");
|
||||
private static final BigDecimal middleBound = new BigDecimal("30000");
|
||||
private static final BigDecimal upperBound = new BigDecimal("70000");
|
||||
private static final BigDecimal maxSubsidyAmount = new BigDecimal("30000");
|
||||
|
||||
@Inject
|
||||
private Dao dao;
|
||||
|
||||
@Inject(value = "MedicalMutualAidFund")
|
||||
private ViService medicalMutualAidFundService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/medicalMutualAidFund/finalAudit.html")
|
||||
@RequiresPermissions("medicalMutualAidFund.finalAudit")
|
||||
public void index(HttpServletRequest request) {
|
||||
|
||||
}
|
||||
|
||||
@At
|
||||
@RequiresPermissions("medicalMutualAidFund.finalAudit")
|
||||
public Result pageData(PageForm pageForm, @Param(required = false, value = "year") Integer year, Integer isAudit) {
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.andEX("YEAR(applyDate)", "=", year);
|
||||
cnd.and("stateId", ">", MedicalMutualAidFundAuditStateConstant.FUND_AID_GROUP_IMPORT.getCode());
|
||||
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
|
||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||
seg.orLike("userName", pageForm.getSearchKeyword());
|
||||
seg.orLike("loginName", pageForm.getSearchKeyword());
|
||||
cnd.and(seg);
|
||||
}
|
||||
Pagination pagination = medicalMutualAidFundService.listPage(pageForm.getPageNumber(), pageForm.getPageSize(), cnd);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
@At
|
||||
@RequiresPermissions("medicalMutualAidFund.finalAudit")
|
||||
public Result modifyFinalSubsidyMoney(String id,
|
||||
double schoolHospitalConfirmSelfPaymentAmount,
|
||||
double schoolConfirmSelfPaymentAmount,
|
||||
double finalSubsidyMoney,
|
||||
boolean calcMode) {
|
||||
Chain chain = Chain.make("schoolHospitalConfirmSelfPaymentAmount", BigDecimal.valueOf(schoolHospitalConfirmSelfPaymentAmount).setScale(2));
|
||||
chain.add("schoolConfirmSelfPaymentAmount", BigDecimal.valueOf(schoolConfirmSelfPaymentAmount).setScale(2));
|
||||
chain.add("finalSubsidyMoney", finalSubsidyMoney);
|
||||
medicalMutualAidFundService.update(chain, Cnd.where("id", "=", id));
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算金额
|
||||
*
|
||||
* @param schoolConfirmSelfPaymentAmount 互助金小组核对金额
|
||||
* @return
|
||||
*/
|
||||
@At
|
||||
@RequiresPermissions("medicalMutualAidFund.finalAudit")
|
||||
public Result calcMoney(double schoolConfirmSelfPaymentAmount) {
|
||||
BigDecimal confirmMoney = new BigDecimal(schoolConfirmSelfPaymentAmount).setScale(2, RoundingMode.HALF_UP);
|
||||
|
||||
BigDecimal subsidyAmount = BigDecimal.ZERO;
|
||||
if (confirmMoney.compareTo(lowerBound) > 0) {
|
||||
if (confirmMoney.compareTo(middleBound) <= 0) {
|
||||
subsidyAmount = subsidyAmount.add((confirmMoney.subtract(lowerBound)).multiply(new BigDecimal("0.2")));
|
||||
} else if (confirmMoney.compareTo(upperBound) <= 0) {
|
||||
subsidyAmount = subsidyAmount.add((middleBound.subtract(lowerBound)).multiply(new BigDecimal("0.2")));
|
||||
subsidyAmount = subsidyAmount.add((confirmMoney.subtract(middleBound)).multiply(new BigDecimal("0.3")));
|
||||
} else {
|
||||
subsidyAmount = subsidyAmount.add((middleBound.subtract(lowerBound)).multiply(new BigDecimal("0.2")));
|
||||
subsidyAmount = subsidyAmount.add((upperBound.subtract(middleBound)).multiply(new BigDecimal("0.3")));
|
||||
subsidyAmount = subsidyAmount.add((confirmMoney.subtract(upperBound)).multiply(new BigDecimal("0.35")));
|
||||
}
|
||||
}
|
||||
subsidyAmount = subsidyAmount.min(maxSubsidyAmount);
|
||||
// 向上取整至十位计
|
||||
subsidyAmount = subsidyAmount.setScale(-1, BigDecimal.ROUND_CEILING);
|
||||
return Result.success(subsidyAmount);
|
||||
}
|
||||
|
||||
@At
|
||||
@RequiresPermissions("medicalMutualAidFund.finalAudit")
|
||||
public Result batchCalcSubsidyAmount(Integer year) {
|
||||
List<MedicalMutualAidFund> list = dao.query(MedicalMutualAidFund.class, Cnd.where("YEAR(applyDate)", "=", year));
|
||||
for (MedicalMutualAidFund medicalMutualAidFund : list) {
|
||||
BigDecimal confirmMoney = medicalMutualAidFund.getSchoolConfirmSelfPaymentAmount();
|
||||
|
||||
BigDecimal subsidyAmount = BigDecimal.ZERO;
|
||||
if (confirmMoney.compareTo(lowerBound) > 0) {
|
||||
if (confirmMoney.compareTo(middleBound) <= 0) {
|
||||
subsidyAmount = subsidyAmount.add((confirmMoney.subtract(lowerBound)).multiply(new BigDecimal("0.2")));
|
||||
} else if (confirmMoney.compareTo(upperBound) <= 0) {
|
||||
subsidyAmount = subsidyAmount.add((middleBound.subtract(lowerBound)).multiply(new BigDecimal("0.2")));
|
||||
subsidyAmount = subsidyAmount.add((confirmMoney.subtract(middleBound)).multiply(new BigDecimal("0.3")));
|
||||
} else {
|
||||
subsidyAmount = subsidyAmount.add((middleBound.subtract(lowerBound)).multiply(new BigDecimal("0.2")));
|
||||
subsidyAmount = subsidyAmount.add((upperBound.subtract(middleBound)).multiply(new BigDecimal("0.3")));
|
||||
subsidyAmount = subsidyAmount.add((confirmMoney.subtract(upperBound)).multiply(new BigDecimal("0.35")));
|
||||
}
|
||||
}
|
||||
subsidyAmount = subsidyAmount.min(maxSubsidyAmount);
|
||||
// 向上取整至十位计
|
||||
subsidyAmount = subsidyAmount.setScale(-1, BigDecimal.ROUND_CEILING);
|
||||
String s = subsidyAmount.toPlainString();
|
||||
System.out.println(s);
|
||||
medicalMutualAidFund.setFinalSubsidyMoney(new BigDecimal(s));
|
||||
}
|
||||
dao.update(list,"finalSubsidyMoney");
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@Ok("void")
|
||||
@RequiresPermissions("medicalMutualAidFund.finalAudit")
|
||||
public void exportSummary(Integer year, HttpServletResponse response) {
|
||||
try {
|
||||
List<ExcelExportEntity> exportEntities = new ArrayList<>();
|
||||
exportEntities.add(new ExcelExportEntity("姓名", "userName", 20));
|
||||
exportEntities.add(new ExcelExportEntity("工号", "loginName", 20));
|
||||
exportEntities.add(new ExcelExportEntity("单位", "unitName", 20));
|
||||
exportEntities.add(new ExcelExportEntity("分工会", "unionName", 20));
|
||||
exportEntities.add(new ExcelExportEntity("疾病", "diseaseCategory", 20));
|
||||
exportEntities.add(new ExcelExportEntity("个人现金支付金额", "selfPaymentAmount", 20));
|
||||
exportEntities.add(new ExcelExportEntity("病种", "diseaseType", 20));
|
||||
exportEntities.add(new ExcelExportEntity("核定个人现金支付金额", "confirmSelfPaymentAmount", 20));
|
||||
exportEntities.add(new ExcelExportEntity("最终补助金额", "finalSubsidyMoney", 20));
|
||||
exportEntities.add(new ExcelExportEntity("备注", "note", 20));
|
||||
exportEntities.add(new ExcelExportEntity("联系方式", "mobile", 20));
|
||||
|
||||
|
||||
List<MedicalMutualAidFund> list = dao.query(MedicalMutualAidFund.class, Cnd.where("year(applyDate)", "=", year));
|
||||
ViTool.excelResponse(response, "互助金申请汇总表.xls");
|
||||
ExportParams exportParams = new ExportParams();
|
||||
exportParams.setTitle(year + "年在职医疗互助金申请汇总表");
|
||||
|
||||
try (Workbook workbook = ExcelExportUtil.exportExcel(exportParams, exportEntities, list)) {
|
||||
workbook.write(response.getOutputStream());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
+80
@@ -0,0 +1,80 @@
|
||||
package io.v.nutz.zhgh.medicalMutualAidFund.controller;
|
||||
|
||||
import cn.wizzer.framework.base.Result;
|
||||
import cn.wizzer.framework.page.Pagination;
|
||||
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.slog.annotation.SLog;
|
||||
import io.v.nutz.zhgh.medicalMutualAidFund.model.MedicalMutualAidFund;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
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 javax.servlet.http.HttpServletRequest;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 互助金我的申请
|
||||
*
|
||||
* @author jug
|
||||
* @date 2024/01/17
|
||||
*/
|
||||
@IocBean
|
||||
@At("/platform/medicalMutualAidFund/myApply")
|
||||
@Slf4j
|
||||
@Ok("json:full")
|
||||
public class MedicalMutualAidFundMyApplyController {
|
||||
|
||||
@Inject
|
||||
private Dao dao;
|
||||
|
||||
@Inject(value = "MedicalMutualAidFund")
|
||||
private ViService medicalMutualAidFundService;
|
||||
|
||||
@At("/h5")
|
||||
@Ok("beetl:/mobile/medicalMutualAidFund/index.html")
|
||||
@RequiresPermissions("medicalMutualAidFund.myApply")
|
||||
public void h5_index(HttpServletRequest request) {
|
||||
|
||||
}
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/medicalMutualAidFund/myApply.html")
|
||||
@RequiresPermissions("medicalMutualAidFund.myApply")
|
||||
public void index(HttpServletRequest request) {
|
||||
|
||||
}
|
||||
|
||||
@At(value = {"/pageData","/h5/pageData"})
|
||||
@RequiresPermissions("medicalMutualAidFund.myApply")
|
||||
public Result pageData(PageForm pageForm, @Param(required = false,value = "year") Integer year) {
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.andEX("YEAR(applyDate)", "=", year);
|
||||
if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionIllAdmin")){
|
||||
cnd.and("userId","=",ShiroUtil.getUserId());
|
||||
}
|
||||
Pagination pagination = medicalMutualAidFundService.listPage(pageForm.getPageNumber(), pageForm.getPageSize(), cnd);
|
||||
List<MedicalMutualAidFund> list = pagination.getList();
|
||||
for (MedicalMutualAidFund medicalMutualAidFund : list) {
|
||||
medicalMutualAidFund.setSchoolHospitalConfirmSelfPaymentAmount(null);
|
||||
}
|
||||
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
@At
|
||||
@RequiresPermissions("medicalMutualAidFund.myApply")
|
||||
@SLog(type = "medicalMutualAidFund", tag = "互助金申请删除", msg = "互助金申请删除")
|
||||
public Result delete(@Param("id") String id) {
|
||||
dao.clear(MedicalMutualAidFund.class, Cnd.where("id", "=", id));
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
}
|
||||
+226
@@ -0,0 +1,226 @@
|
||||
package io.v.nutz.zhgh.medicalMutualAidFund.controller;
|
||||
|
||||
import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
||||
import cn.afterturn.easypoi.excel.ExcelImportUtil;
|
||||
import cn.afterturn.easypoi.excel.entity.ExportParams;
|
||||
import cn.afterturn.easypoi.excel.entity.ImportParams;
|
||||
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.wizzer.framework.base.Result;
|
||||
import cn.wizzer.framework.page.Pagination;
|
||||
import io.v.nutz.base.model.Audit;
|
||||
import io.v.nutz.base.query.PageForm;
|
||||
import io.v.nutz.base.service.ViService;
|
||||
import io.v.nutz.base.utils.ViTool;
|
||||
import io.v.nutz.web.commons.slog.annotation.SLog;
|
||||
import io.v.nutz.zhgh.medicalMutualAidFund.constant.MedicalMutualAidFundAuditStateConstant;
|
||||
import io.v.nutz.zhgh.medicalMutualAidFund.handler.MedicalMutualAidFundToDoHandler;
|
||||
import io.v.nutz.zhgh.medicalMutualAidFund.model.MedicalMutualAidFund;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
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.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.lang.util.NutMap;
|
||||
import org.nutz.mvc.annotation.AdaptBy;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
import org.nutz.mvc.upload.TempFile;
|
||||
import org.nutz.mvc.upload.UploadAdaptor;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 导入校医院核定金额
|
||||
*
|
||||
* @author jug
|
||||
* @date 2024/01/17
|
||||
*/
|
||||
@IocBean
|
||||
@At("/platform/medicalMutualAidFund/schoolHospitalAudit")
|
||||
@Slf4j
|
||||
@Ok("json:full")
|
||||
public class MedicalMutualAidFundSchoolHospitalAuditController {
|
||||
@Inject
|
||||
private Dao dao;
|
||||
|
||||
@Inject(value = "MedicalMutualAidFund")
|
||||
private ViService medicalMutualAidFundService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/medicalMutualAidFund/schoolHospitalAudit.html")
|
||||
@RequiresPermissions("medicalMutualAidFund.schoolHospitalAudit")
|
||||
public void index(HttpServletRequest request) {
|
||||
|
||||
}
|
||||
|
||||
@At
|
||||
@RequiresPermissions("medicalMutualAidFund.schoolHospitalAudit")
|
||||
public Result pageData(PageForm pageForm, Integer isAudit, @Param(required = false, value = "year") Integer year, @Param(required = false, value = "unionId") String unionId, @Param(required = false, value = "unitId") String unitId) {
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.andEX("YEAR(applyDate)", "=", year);
|
||||
cnd.andEX("unionId", "=", unionId);
|
||||
cnd.andEX("unitId", "=", unitId);
|
||||
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
|
||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||
seg.orLike("userName", pageForm.getSearchKeyword());
|
||||
seg.orLike("loginName", pageForm.getSearchKeyword());
|
||||
cnd.and(seg);
|
||||
}
|
||||
switch (isAudit) {
|
||||
case 0 -> cnd.and("stateId", ">=", MedicalMutualAidFundAuditStateConstant.SCHOOL_HOSPITAL_IMPORT.getCode());
|
||||
case 1 -> cnd.and("stateId", ">", MedicalMutualAidFundAuditStateConstant.SCHOOL_HOSPITAL_IMPORT.getCode());
|
||||
case -1 -> cnd.and("stateId", "=", MedicalMutualAidFundAuditStateConstant.SCHOOL_HOSPITAL_IMPORT.getCode());
|
||||
}
|
||||
Pagination pagination = medicalMutualAidFundService.listPage(pageForm.getPageNumber(), pageForm.getPageSize(), cnd);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
@At
|
||||
@Ok("void")
|
||||
@RequiresPermissions("medicalMutualAidFund.schoolHospitalAudit")
|
||||
public void exportToHospital(Integer year, HttpServletResponse response) {
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.and("YEAR(applyDate)", "=", year);
|
||||
List<MedicalMutualAidFund> list = medicalMutualAidFundService.query(cnd);
|
||||
|
||||
List<ExcelExportEntity> exportEntities = new ArrayList<>();
|
||||
exportEntities.add(new ExcelExportEntity("序号", "index"));
|
||||
exportEntities.add(new ExcelExportEntity("姓名", "userName", 20));
|
||||
exportEntities.add(new ExcelExportEntity("工号", "loginName", 20));
|
||||
exportEntities.add(new ExcelExportEntity("疾病", "diseaseCategory", 20));
|
||||
exportEntities.add(new ExcelExportEntity("个人现金支付金额", "selfPaymentAmount", 20));
|
||||
exportEntities.add(new ExcelExportEntity("病种", "diseaseType", 20));
|
||||
exportEntities.add(new ExcelExportEntity("校医院核定个人现金支付金额", "schoolHospitalConfirmSelfPaymentAmount", 20));
|
||||
exportEntities.add(new ExcelExportEntity("备注", "note", 20));
|
||||
exportEntities.add(new ExcelExportEntity("联系方式", "mobile", 20));
|
||||
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
list.get(i).setIndex((i + 1L));
|
||||
}
|
||||
|
||||
try {
|
||||
ViTool.excelResponse(response, "互助金申请汇总表.xls");
|
||||
ExportParams exportParams = new ExportParams();
|
||||
exportParams.setTitle(year + "年在职医疗互助金申请汇总表");
|
||||
|
||||
try (Workbook workbook = ExcelExportUtil.exportExcel(exportParams, exportEntities, list)) {
|
||||
workbook.write(response.getOutputStream());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@At
|
||||
@RequiresPermissions("medicalMutualAidFund.schoolHospitalAudit")
|
||||
@AdaptBy(type = UploadAdaptor.class, args = {"ioc:fileUpload"})
|
||||
public Result importHospital(@Param("file") TempFile tempFile) {
|
||||
int thisYear = DateUtil.thisYear();
|
||||
List<MedicalMutualAidFund> list = medicalMutualAidFundService.query(Cnd.where("YEAR(applyDate)", "=", thisYear));
|
||||
List<String> loginNames = list.stream().map(v -> v.getLoginName()).collect(Collectors.toList());
|
||||
|
||||
|
||||
ImportParams importParams = new ImportParams();
|
||||
importParams.setTitleRows(1);
|
||||
List<MedicalMutualAidFund> medicalMutualAidFunds = ExcelImportUtil.importExcel(tempFile.getFile(), MedicalMutualAidFund.class, importParams);
|
||||
|
||||
int successCount = 0;
|
||||
int errorCount = 0;
|
||||
|
||||
for (MedicalMutualAidFund medicalMutualAidFund : medicalMutualAidFunds) {
|
||||
String loginName = medicalMutualAidFund.getLoginName();
|
||||
if (!loginNames.contains(loginName)) {
|
||||
medicalMutualAidFund.setErrMsg("工号不存在");
|
||||
errorCount++;
|
||||
continue;
|
||||
}
|
||||
BigDecimal schoolHospitalConfirmSelfPaymentAmount = medicalMutualAidFund.getSchoolHospitalConfirmSelfPaymentAmount();
|
||||
if (schoolHospitalConfirmSelfPaymentAmount == null) {
|
||||
medicalMutualAidFund.setErrMsg("请填写校医院核定个人现金支付金额");
|
||||
errorCount++;
|
||||
continue;
|
||||
}
|
||||
String diseaseType = medicalMutualAidFund.getDiseaseType();
|
||||
if (StrUtil.isBlank(diseaseType)) {
|
||||
medicalMutualAidFund.setErrMsg("请填写病种");
|
||||
errorCount++;
|
||||
continue;
|
||||
}
|
||||
|
||||
Integer stateId = medicalMutualAidFund.getStateId();
|
||||
if (stateId != MedicalMutualAidFundAuditStateConstant.SCHOOL_HOSPITAL_IMPORT.getCode()) {
|
||||
medicalMutualAidFund.setErrMsg("不是待校医院审核的记录");
|
||||
errorCount++;
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
dao.update(MedicalMutualAidFund.class, Chain.make("schoolHospitalConfirmSelfPaymentAmount", schoolHospitalConfirmSelfPaymentAmount).add("diseaseType", diseaseType).add("stateId", MedicalMutualAidFundAuditStateConstant.FUND_AID_GROUP_IMPORT.getCode()), Cnd.where("loginName", "=", loginName).and("YEAR(applyDate)", "=", thisYear));
|
||||
successCount++;
|
||||
|
||||
String id = list.stream().filter(v -> v.getLoginName().equals(loginName)).findFirst().map(MedicalMutualAidFund::getId).orElse(null);
|
||||
MedicalMutualAidFundToDoHandler.COMPLETE_SCHOOL_HOSPITAL_TASK.exec(new MedicalMutualAidFund().setId(id));
|
||||
//发起互助金小组核对任务
|
||||
MedicalMutualAidFundToDoHandler.CREATE_SCHOOL_TASK.exec(new MedicalMutualAidFund().setId(id));
|
||||
}
|
||||
|
||||
NutMap nutMap = NutMap.NEW();
|
||||
nutMap.put("totalCount", medicalMutualAidFunds.size());
|
||||
nutMap.put("successCount", successCount);
|
||||
nutMap.put("errorCount", errorCount);
|
||||
|
||||
nutMap.put("errorList", medicalMutualAidFunds.stream().map(v -> new NutMap() {{
|
||||
put("姓名", v.getUserName());
|
||||
put("工号", v.getLoginName());
|
||||
put("疾病", v.getDiseaseCategory());
|
||||
put("申请金额", v.getSelfPaymentAmount());
|
||||
put("校医院核定个人现金支付金额", v.getSchoolHospitalConfirmSelfPaymentAmount());
|
||||
put("病种", v.getDiseaseType());
|
||||
put("备注", v.getNote());
|
||||
put("联系方式", v.getMobile());
|
||||
put("错误信息", v.getErrMsg());
|
||||
}}).collect(Collectors.toList()));
|
||||
|
||||
return Result.success(nutMap);
|
||||
}
|
||||
|
||||
@At
|
||||
@RequiresPermissions("medicalMutualAidFund.schoolHospitalAudit")
|
||||
@SLog(type = "medicalMutualAidFund", tag = "校医院核对金额", msg = "校医院核对金额")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
public Result pass(Audit audit, String id, Double schoolHospitalConfirmSelfPaymentAmount, String diseaseType) {
|
||||
dao.insert(audit);
|
||||
dao.update(MedicalMutualAidFund.class, Chain.make("stateId", MedicalMutualAidFundAuditStateConstant.FUND_AID_GROUP_IMPORT.getCode()).add("schoolHospitalConfirmSelfPaymentAmount", BigDecimal.valueOf(schoolHospitalConfirmSelfPaymentAmount).setScale(2)).add("diseaseType", diseaseType).add("schoolHospitalConfirmSelfPaymentAmountAuditId", audit.getId()), Cnd.where("id", "=", id));
|
||||
|
||||
//完成待办
|
||||
MedicalMutualAidFundToDoHandler.COMPLETE_UNION_TASK.exec(new MedicalMutualAidFund().setId(id));
|
||||
//发起互助金小组
|
||||
MedicalMutualAidFundToDoHandler.CREATE_SCHOOL_TASK.exec(new MedicalMutualAidFund().setId(id));
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@RequiresPermissions("medicalMutualAidFund.schoolHospitalAudit")
|
||||
@SLog(type = "medicalMutualAidFund", tag = "校医院编辑核对金额", msg = "校医院编辑核对金额")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
public Result modify(String id, Double schoolHospitalConfirmSelfPaymentAmount, String diseaseType) {
|
||||
dao.update(MedicalMutualAidFund.class, Chain.make("schoolHospitalConfirmSelfPaymentAmount", BigDecimal.valueOf(schoolHospitalConfirmSelfPaymentAmount).setScale(2)).add("diseaseType", diseaseType), Cnd.where("id", "=", id));
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
}
|
||||
+262
@@ -0,0 +1,262 @@
|
||||
package io.v.nutz.zhgh.medicalMutualAidFund.controller;
|
||||
|
||||
import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
||||
import cn.afterturn.easypoi.excel.ExcelImportUtil;
|
||||
import cn.afterturn.easypoi.excel.entity.ExportParams;
|
||||
import cn.afterturn.easypoi.excel.entity.ImportParams;
|
||||
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.wizzer.framework.base.Result;
|
||||
import cn.wizzer.framework.page.Pagination;
|
||||
import io.v.nutz.base.model.Audit;
|
||||
import io.v.nutz.base.query.PageForm;
|
||||
import io.v.nutz.base.service.ViService;
|
||||
import io.v.nutz.base.utils.ViTool;
|
||||
import io.v.nutz.web.commons.slog.annotation.SLog;
|
||||
import io.v.nutz.zhgh.medicalMutualAidFund.constant.MedicalMutualAidFundAuditStateConstant;
|
||||
import io.v.nutz.zhgh.medicalMutualAidFund.handler.MedicalMutualAidFundToDoHandler;
|
||||
import io.v.nutz.zhgh.medicalMutualAidFund.model.MedicalMutualAidFund;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
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.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.lang.util.NutMap;
|
||||
import org.nutz.mvc.annotation.AdaptBy;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
import org.nutz.mvc.upload.TempFile;
|
||||
import org.nutz.mvc.upload.UploadAdaptor;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 校工会审核
|
||||
*
|
||||
* @author jug
|
||||
* @date 2024/01/17
|
||||
*/
|
||||
@IocBean
|
||||
@At("/platform/medicalMutualAidFund/schoolUnionAudit")
|
||||
@Slf4j
|
||||
@Ok("json:full")
|
||||
public class MedicalMutualAidFundSchoolUnionAuditController {
|
||||
|
||||
private static final BigDecimal lowerBound = new BigDecimal("5000");
|
||||
private static final BigDecimal middleBound = new BigDecimal("30000");
|
||||
private static final BigDecimal upperBound = new BigDecimal("70000");
|
||||
private static final BigDecimal maxSubsidyAmount = new BigDecimal("30000");
|
||||
|
||||
@Inject
|
||||
private Dao dao;
|
||||
|
||||
@Inject(value = "MedicalMutualAidFund")
|
||||
private ViService medicalMutualAidFundService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/medicalMutualAidFund/schoolUnionAudit.html")
|
||||
@RequiresPermissions("medicalMutualAidFund.schoolUnionAudit")
|
||||
public void index(HttpServletRequest request) {
|
||||
|
||||
}
|
||||
|
||||
@At
|
||||
@RequiresPermissions("medicalMutualAidFund.schoolUnionAudit")
|
||||
public Result pageData(PageForm pageForm, @Param(required = false, value = "year") Integer year, Integer isAudit) {
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.andEX("YEAR(applyDate)", "=", year);
|
||||
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
|
||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||
seg.orLike("userName", pageForm.getSearchKeyword());
|
||||
seg.orLike("loginName", pageForm.getSearchKeyword());
|
||||
cnd.and(seg);
|
||||
}
|
||||
switch (isAudit) {
|
||||
case 0 -> cnd.and("stateId", ">=", MedicalMutualAidFundAuditStateConstant.FUND_AID_GROUP_IMPORT.getCode());
|
||||
case 1 -> cnd.and("stateId", ">", MedicalMutualAidFundAuditStateConstant.FUND_AID_GROUP_IMPORT.getCode());
|
||||
case -1 -> cnd.and("stateId", "=", MedicalMutualAidFundAuditStateConstant.FUND_AID_GROUP_IMPORT.getCode());
|
||||
}
|
||||
Pagination pagination = medicalMutualAidFundService.listPage(pageForm.getPageNumber(), pageForm.getPageSize(), cnd);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
@At
|
||||
@Ok("void")
|
||||
@RequiresPermissions("medicalMutualAidFund.schoolUnionAudit")
|
||||
public void exportSummary(Integer year, HttpServletResponse response) {
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.and("YEAR(applyDate)", "=", year);
|
||||
List<MedicalMutualAidFund> list = medicalMutualAidFundService.query(cnd);
|
||||
|
||||
List<ExcelExportEntity> exportEntities = new ArrayList<>();
|
||||
exportEntities.add(new ExcelExportEntity("序号", "index"));
|
||||
exportEntities.add(new ExcelExportEntity("姓名", "userName", 20));
|
||||
exportEntities.add(new ExcelExportEntity("工号", "loginName", 20));
|
||||
exportEntities.add(new ExcelExportEntity("疾病", "diseaseCategory", 20));
|
||||
exportEntities.add(new ExcelExportEntity("个人现金支付金额", "selfPaymentAmount", 20));
|
||||
exportEntities.add(new ExcelExportEntity("病种", "diseaseType", 20));
|
||||
exportEntities.add(new ExcelExportEntity("校医院核定个人现金支付金额", "schoolHospitalConfirmSelfPaymentAmount", 20));
|
||||
exportEntities.add(new ExcelExportEntity("互助金小组核定个人现金支付金额", "schoolConfirmSelfPaymentAmount", 20));
|
||||
exportEntities.add(new ExcelExportEntity("备注", "note", 20));
|
||||
exportEntities.add(new ExcelExportEntity("联系方式", "mobile", 20));
|
||||
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
list.get(i).setIndex((i + 1L));
|
||||
}
|
||||
|
||||
try {
|
||||
ViTool.excelResponse(response, "互助金申请汇总表.xls");
|
||||
ExportParams exportParams = new ExportParams();
|
||||
exportParams.setTitle(year + "年在职医疗互助金申请汇总表");
|
||||
|
||||
try (Workbook workbook = ExcelExportUtil.exportExcel(exportParams, exportEntities, list)) {
|
||||
workbook.write(response.getOutputStream());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@At
|
||||
@RequiresPermissions("medicalMutualAidFund.schoolUnionAudit")
|
||||
@AdaptBy(type = UploadAdaptor.class, args = {"ioc:fileUpload"})
|
||||
public Result importAidFund(@Param("file") TempFile tempFile) {
|
||||
int thisYear = DateUtil.thisYear();
|
||||
List<MedicalMutualAidFund> list = medicalMutualAidFundService.query(Cnd.where("YEAR(applyDate)", "=", thisYear));
|
||||
List<String> loginNames = list.stream().map(v -> v.getLoginName()).collect(Collectors.toList());
|
||||
|
||||
ImportParams importParams = new ImportParams();
|
||||
importParams.setTitleRows(1);
|
||||
List<MedicalMutualAidFund> medicalMutualAidFunds = ExcelImportUtil.importExcel(tempFile.getFile(), MedicalMutualAidFund.class, importParams);
|
||||
|
||||
int successCount = 0;
|
||||
int errorCount = 0;
|
||||
|
||||
for (MedicalMutualAidFund medicalMutualAidFund : medicalMutualAidFunds) {
|
||||
String loginName = medicalMutualAidFund.getLoginName();
|
||||
if (!loginNames.contains(loginName)) {
|
||||
medicalMutualAidFund.setErrMsg("工号不存在");
|
||||
errorCount++;
|
||||
continue;
|
||||
}
|
||||
BigDecimal schoolConfirmSelfPaymentAmount = medicalMutualAidFund.getSchoolConfirmSelfPaymentAmount();
|
||||
if (schoolConfirmSelfPaymentAmount == null) {
|
||||
medicalMutualAidFund.setErrMsg("请填写互助金小组核定个人现金支付金额");
|
||||
errorCount++;
|
||||
continue;
|
||||
}
|
||||
String diseaseType = medicalMutualAidFund.getDiseaseType();
|
||||
if (StrUtil.isBlank(diseaseType)) {
|
||||
medicalMutualAidFund.setErrMsg("请填写病种");
|
||||
errorCount++;
|
||||
continue;
|
||||
}
|
||||
|
||||
Integer stateId = medicalMutualAidFund.getStateId();
|
||||
if (stateId != MedicalMutualAidFundAuditStateConstant.FUND_AID_GROUP_IMPORT.getCode()) {
|
||||
medicalMutualAidFund.setErrMsg("不是待互助金小组审核的记录");
|
||||
errorCount++;
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
// BigDecimal subsidyAmount = BigDecimal.ZERO;
|
||||
//
|
||||
// if (schoolConfirmSelfPaymentAmount.compareTo(lowerBound) > 0) {
|
||||
// if (schoolConfirmSelfPaymentAmount.compareTo(middleBound) <= 0) {
|
||||
// subsidyAmount = subsidyAmount.add((schoolConfirmSelfPaymentAmount.subtract(lowerBound)).multiply(new BigDecimal("0.2")));
|
||||
// } else if (schoolConfirmSelfPaymentAmount.compareTo(upperBound) <= 0) {
|
||||
// subsidyAmount = subsidyAmount.add((middleBound.subtract(lowerBound)).multiply(new BigDecimal("0.2")));
|
||||
// subsidyAmount = subsidyAmount.add((schoolConfirmSelfPaymentAmount.subtract(middleBound)).multiply(new BigDecimal("0.3")));
|
||||
// } else {
|
||||
// subsidyAmount = subsidyAmount.add((middleBound.subtract(lowerBound)).multiply(new BigDecimal("0.2")));
|
||||
// subsidyAmount = subsidyAmount.add((upperBound.subtract(middleBound)).multiply(new BigDecimal("0.3")));
|
||||
// subsidyAmount = subsidyAmount.add((schoolConfirmSelfPaymentAmount.subtract(upperBound)).multiply(new BigDecimal("0.35")));
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// subsidyAmount = subsidyAmount.min(maxSubsidyAmount);
|
||||
// // 向上取整至十位计
|
||||
// subsidyAmount = subsidyAmount.setScale(-1, BigDecimal.ROUND_CEILING);
|
||||
|
||||
|
||||
dao.update(MedicalMutualAidFund.class,
|
||||
Chain.make("schoolConfirmSelfPaymentAmount", schoolConfirmSelfPaymentAmount)
|
||||
// .add("finalSubsidyMoney", subsidyAmount)
|
||||
// .add("diseaseType", diseaseType)
|
||||
.add("stateId", MedicalMutualAidFundAuditStateConstant.PASS.getCode()),
|
||||
Cnd.where("loginName", "=", loginName)
|
||||
.and("YEAR(applyDate)", "=", thisYear));
|
||||
successCount++;
|
||||
|
||||
//直接完成流程
|
||||
String id = list.stream().filter(v -> v.getLoginName().equals(loginName)).findFirst().map(MedicalMutualAidFund::getId).orElse(null);
|
||||
MedicalMutualAidFundToDoHandler.COMPLETE_PROCESS.exec(new MedicalMutualAidFund().setId(id));
|
||||
}
|
||||
|
||||
NutMap nutMap = NutMap.NEW();
|
||||
nutMap.put("totalCount", medicalMutualAidFunds.size());
|
||||
nutMap.put("successCount", successCount);
|
||||
nutMap.put("errorCount", errorCount);
|
||||
|
||||
nutMap.put("errorList", medicalMutualAidFunds.stream().map(v -> new NutMap() {{
|
||||
put("姓名", v.getUserName());
|
||||
put("工号", v.getLoginName());
|
||||
put("疾病", v.getDiseaseCategory());
|
||||
put("申请金额", v.getSelfPaymentAmount());
|
||||
put("互助金小组核定个人现金支付金额", v.getSchoolConfirmSelfPaymentAmount());
|
||||
put("病种", v.getDiseaseType());
|
||||
put("备注", v.getNote());
|
||||
put("联系方式", v.getMobile());
|
||||
put("错误信息", v.getErrMsg());
|
||||
}}).collect(Collectors.toList()));
|
||||
|
||||
return Result.success(nutMap);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@RequiresPermissions("medicalMutualAidFund.schoolUnionAudit")
|
||||
@SLog(type = "medicalMutualAidFund", tag = "互助金小组核对金额", msg = "互助金小组核对金额")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
public Result pass(Audit audit, String id, Double schoolConfirmSelfPaymentAmount) {
|
||||
dao.insert(audit);
|
||||
dao.update(MedicalMutualAidFund.class,
|
||||
Chain.make("stateId", MedicalMutualAidFundAuditStateConstant.PASS.getCode())
|
||||
.add("schoolConfirmSelfPaymentAmount", BigDecimal.valueOf(schoolConfirmSelfPaymentAmount).setScale(2))
|
||||
.add("schoolConfirmSelfPaymentAmountAuditId", audit.getId()),
|
||||
Cnd.where("id", "=", id));
|
||||
|
||||
//完成待办
|
||||
MedicalMutualAidFundToDoHandler.COMPLETE_SCHOOL_TASK.exec(new MedicalMutualAidFund().setId(id));
|
||||
//完成流程
|
||||
MedicalMutualAidFundToDoHandler.COMPLETE_PROCESS.exec(new MedicalMutualAidFund().setId(id));
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@RequiresPermissions("medicalMutualAidFund.schoolUnionAudit")
|
||||
@SLog(type = "medicalMutualAidFund", tag = "互助金小组编辑核对金额", msg = "互助金小组编辑核对金额")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
public Result modify(String id, Double schoolConfirmSelfPaymentAmount) {
|
||||
dao.update(MedicalMutualAidFund.class,
|
||||
Chain.make("schoolConfirmSelfPaymentAmount", BigDecimal.valueOf(schoolConfirmSelfPaymentAmount).setScale(2)),
|
||||
Cnd.where("id", "=", id));
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
}
|
||||
+226
@@ -0,0 +1,226 @@
|
||||
package io.v.nutz.zhgh.medicalMutualAidFund.handler;
|
||||
|
||||
import io.v.nutz.base.utils.Roles;
|
||||
import io.v.nutz.base.utils.Vi;
|
||||
import io.v.nutz.base.utils.ViResource;
|
||||
import io.v.nutz.sys.services.SysLocalProcessService;
|
||||
import io.v.nutz.sys.services.impl.SysLocalProcessServiceImpl;
|
||||
import io.v.nutz.web.commons.base.Globals;
|
||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||
import io.v.nutz.zhgh.medicalMutualAidFund.constant.MedicalMutualAidFundAuditStateConstant;
|
||||
import io.v.nutz.zhgh.medicalMutualAidFund.model.MedicalMutualAidFund;
|
||||
import io.v.nutz.zhgh.zgfw.model.difficult.Zgfw_knbf;
|
||||
import lombok.Getter;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Getter
|
||||
public enum MedicalMutualAidFundToDoHandler {
|
||||
|
||||
/**
|
||||
* 流程开始
|
||||
*/
|
||||
START_PROCESS() {
|
||||
@Override
|
||||
public void exec(MedicalMutualAidFund mutualAidFund) {
|
||||
localProcessService.startProcess(
|
||||
"【医疗互助】" + mutualAidFund.getUserName(),
|
||||
"medical_mutual_aid_fund@" + mutualAidFund.getId(),
|
||||
"",
|
||||
mutualAidFund.getUserId(),
|
||||
Globals.AppDomain + "/platform/medicalMutualAidFund/myApply",
|
||||
Globals.AppDomain + "/platform/medicalMutualAidFund/myApply"
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 重新修改申请
|
||||
*/
|
||||
CREATE_APPLY_RE_MODIFY_TASK() {
|
||||
@Override
|
||||
public void exec(MedicalMutualAidFund mutualAidFund) {
|
||||
Sql sql = Sqls.fetchString(Sqls.create("select loginname from medical_mutual_aid_fund where id = @id").setParam("id", mutualAidFund.getId()).toString());
|
||||
dao.execute(sql);
|
||||
String loginName = sql.getString();
|
||||
|
||||
String desc = MedicalMutualAidFundAuditStateConstant.BRANCH_UNION_REJECT.getDesc();
|
||||
|
||||
localProcessService.createTask(
|
||||
"medical_mutual_aid_fund@" + mutualAidFund.getId(),
|
||||
"apply_re_modify",
|
||||
desc,
|
||||
ShiroUtil.getUserId(),
|
||||
List.of(loginName),
|
||||
"/platform/medicalMutualAidFund/myApply",
|
||||
"/platform/medicalMutualAidFund/myApply",
|
||||
"/platform/medicalMutualAidFund/myApply",
|
||||
"/platform/medicalMutualAidFund/myApply"
|
||||
);
|
||||
|
||||
localProcessService.updateProcessNodeName("medical_mutual_aid_fund@" + mutualAidFund.getId(), desc);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 修改完成
|
||||
*/
|
||||
COMPLETE_APPLY_RE_MODIFY_TASK() {
|
||||
@Override
|
||||
public void exec(MedicalMutualAidFund mutualAidFund) {
|
||||
localProcessService.completeTask(
|
||||
"apply_re_modify",
|
||||
"medical_mutual_aid_fund@" + mutualAidFund.getId(),
|
||||
ShiroUtil.getUserId(),
|
||||
""
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 创建分工会任务
|
||||
*/
|
||||
CREATE_UNION_TASK() {
|
||||
@Override
|
||||
public void exec(MedicalMutualAidFund mutualAidFund) {
|
||||
Sql sqlStr = Sqls.create("""
|
||||
SELECT
|
||||
u.loginname
|
||||
FROM
|
||||
sys_user_role sur
|
||||
LEFT JOIN `user` u ON u.id = sur.userid
|
||||
WHERE
|
||||
sur.roleId = @roleId and u.unionid = @unionId
|
||||
GROUP BY
|
||||
sur.userId
|
||||
""")
|
||||
.setParam("roleId", Roles.UNION_MANGER)
|
||||
.setParam("unionId", mutualAidFund.getUnionId());
|
||||
Sql sql = Sqls.queryString(sqlStr.toString());
|
||||
dao.execute(sql);
|
||||
List<String> loginNames = sql.getList(String.class);
|
||||
|
||||
localProcessService.createTask(
|
||||
"medical_mutual_aid_fund@" + mutualAidFund.getId(),
|
||||
"branchUnionAuditId",
|
||||
"分工会审核",
|
||||
ShiroUtil.getUserId(),
|
||||
loginNames,
|
||||
"/platform/medicalMutualAidFund/branchUnionAudit",
|
||||
"/platform/medicalMutualAidFund/branchUnionAudit",
|
||||
"/platform/medicalMutualAidFund/branchUnionAudit",
|
||||
"/platform/medicalMutualAidFund/branchUnionAudit"
|
||||
);
|
||||
|
||||
localProcessService.updateProcessNodeName("medical_mutual_aid_fund@" + mutualAidFund.getId(), "分工会审核");
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 分工会完成
|
||||
*/
|
||||
COMPLETE_UNION_TASK() {
|
||||
@Override
|
||||
public void exec(MedicalMutualAidFund mutualAidFund) {
|
||||
localProcessService.completeTask(
|
||||
"branchUnionAuditId",
|
||||
"medical_mutual_aid_fund@" + mutualAidFund.getId(),
|
||||
ShiroUtil.getUserId(),
|
||||
""
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
* 校医院核对
|
||||
*/
|
||||
CREATE_SCHOOL_HOSPITAL_TASK() {
|
||||
@Override
|
||||
public void exec(MedicalMutualAidFund mutualAidFund) {
|
||||
localProcessService.createTask(
|
||||
"medical_mutual_aid_fund@" + mutualAidFund.getId(),
|
||||
"branchUnionAuditId",
|
||||
"校医院核对",
|
||||
ShiroUtil.getUserId(),
|
||||
List.of(),
|
||||
"/platform/medicalMutualAidFund/branchUnionAudit",
|
||||
"/platform/medicalMutualAidFund/branchUnionAudit",
|
||||
"/platform/medicalMutualAidFund/branchUnionAudit",
|
||||
"/platform/medicalMutualAidFund/branchUnionAudit"
|
||||
);
|
||||
localProcessService.updateProcessNodeName("medical_mutual_aid_fund@" + mutualAidFund.getId(), "校医院核对");
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 校医院核对完成
|
||||
*/
|
||||
COMPLETE_SCHOOL_HOSPITAL_TASK() {
|
||||
@Override
|
||||
public void exec(MedicalMutualAidFund mutualAidFund) {
|
||||
localProcessService.completeTask(
|
||||
"branchUnionAuditId",
|
||||
"medical_mutual_aid_fund@" + mutualAidFund.getId(),
|
||||
ShiroUtil.getUserId(),
|
||||
""
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 互助金小组核对
|
||||
*/
|
||||
CREATE_SCHOOL_TASK(){
|
||||
@Override
|
||||
public void exec(MedicalMutualAidFund mutualAidFund) {
|
||||
localProcessService.createTask(
|
||||
"medical_mutual_aid_fund@" + mutualAidFund.getId(),
|
||||
"schoolUnionAuditId",
|
||||
"医疗互助金小组核对",
|
||||
ShiroUtil.getUserId(),
|
||||
List.of(),
|
||||
"/platform/medicalMutualAidFund/schoolUnionAudit",
|
||||
"/platform/medicalMutualAidFund/schoolUnionAudit",
|
||||
"/platform/medicalMutualAidFund/schoolUnionAudit",
|
||||
"/platform/medicalMutualAidFund/schoolUnionAudit"
|
||||
);
|
||||
localProcessService.updateProcessNodeName("medical_mutual_aid_fund@" + mutualAidFund.getId(), "医疗互助金小组核对");
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 互助金小组核对完成
|
||||
*/
|
||||
COMPLETE_SCHOOL_TASK(){
|
||||
@Override
|
||||
public void exec(MedicalMutualAidFund mutualAidFund) {
|
||||
localProcessService.completeTask(
|
||||
"schoolUnionAuditId",
|
||||
"medical_mutual_aid_fund@" + mutualAidFund.getId(),
|
||||
ShiroUtil.getUserId(),
|
||||
""
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 流程完成
|
||||
*/
|
||||
COMPLETE_PROCESS() {
|
||||
@Override
|
||||
public void exec(MedicalMutualAidFund mutualAidFund) {
|
||||
localProcessService.completeProcess("medical_mutual_aid_fund@" + mutualAidFund.getId());
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
public abstract void exec(MedicalMutualAidFund mutualAidFund);
|
||||
|
||||
public Dao dao = ViResource.dao;
|
||||
public SysLocalProcessService localProcessService = ViResource.ioc.get(SysLocalProcessServiceImpl.class);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,215 @@
|
||||
package io.v.nutz.zhgh.medicalMutualAidFund.model;
|
||||
|
||||
import cn.afterturn.easypoi.excel.annotation.Excel;
|
||||
import io.v.nutz.base.model.BaseModel;
|
||||
import io.v.nutz.base.model.Audit;
|
||||
import io.v.nutz.sys.models.Sys_file;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.nutz.dao.entity.annotation.*;
|
||||
import org.nutz.dao.interceptor.annotation.PrevInsert;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Table
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class MedicalMutualAidFund extends BaseModel {
|
||||
|
||||
@Name
|
||||
@Comment("ID")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
@PrevInsert(uu32 = true)
|
||||
private String id;
|
||||
|
||||
@Column
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
@Comment("申请人ID")
|
||||
private String userId;
|
||||
|
||||
@Column
|
||||
@ColDefine(type = ColType.VARCHAR, width = 20)
|
||||
@Comment("申请人姓名")
|
||||
@Excel(name = "姓名", width = 20)
|
||||
private String userName;
|
||||
|
||||
@Column
|
||||
@ColDefine(type = ColType.VARCHAR, width = 20)
|
||||
@Comment("申请人工号")
|
||||
@Excel(name = "工号", width = 20)
|
||||
private String loginName;
|
||||
|
||||
@Column
|
||||
@ColDefine(type = ColType.VARCHAR, width = 1)
|
||||
@Comment("申请人性别")
|
||||
private String sex;
|
||||
|
||||
@Column
|
||||
@ColDefine(type = ColType.DATE)
|
||||
@Comment("申请人生日")
|
||||
private Date birthday;
|
||||
|
||||
@Column
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
@Comment("申请人家庭住址")
|
||||
private String homeAddress;
|
||||
|
||||
@Column
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
@Comment("申请人手机号")
|
||||
@Excel(name = "联系方式", width = 20)
|
||||
private String mobile;
|
||||
|
||||
@Column
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
@Comment("单位Id")
|
||||
private String unitId;
|
||||
|
||||
@Column
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
@Comment("单位")
|
||||
private String unitName;
|
||||
|
||||
@Column
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
@Comment("分工会Id")
|
||||
private String unionId;
|
||||
|
||||
@Column
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
@Comment("分工会")
|
||||
private String unionName;
|
||||
|
||||
@Column
|
||||
@ColDefine(type = ColType.VARCHAR)
|
||||
@Comment("疾病类别")
|
||||
@Excel(name = "疾病", width = 20)
|
||||
private String diseaseCategory;
|
||||
|
||||
@Column
|
||||
@Comment("医疗总金额")
|
||||
@ColDefine(customType = "decimal")
|
||||
private BigDecimal totalMedicalAmount;
|
||||
|
||||
@Column
|
||||
@ColDefine(customType = "decimal", width = 10, precision = 2)
|
||||
@Comment("个人现金支付金额")
|
||||
@Excel(name = "个人现金支付金额", width = 20)
|
||||
private BigDecimal selfPaymentAmount;
|
||||
|
||||
@Column
|
||||
@ColDefine(type = ColType.INT)
|
||||
@Comment("几张单据")
|
||||
private Integer documentNum;
|
||||
|
||||
@Column
|
||||
@ColDefine(type = ColType.INT)
|
||||
@Comment("几张处方")
|
||||
private Integer prescriptionNum;
|
||||
|
||||
@Column
|
||||
@ColDefine(type = ColType.INT)
|
||||
@Comment("几本病历")
|
||||
private Integer medicalRecordNum;
|
||||
|
||||
@Column
|
||||
@ColDefine(type = ColType.MYSQL_JSON)
|
||||
@Comment("家庭收入")
|
||||
private List<FamilyIncome> familyIncome;
|
||||
|
||||
@Column
|
||||
@ColDefine(type = ColType.VARCHAR, width = 255)
|
||||
@Comment("申请补助原因")
|
||||
private String applyReason;
|
||||
|
||||
@Column
|
||||
@ColDefine(type = ColType.MYSQL_JSON)
|
||||
@Comment("申请材料")
|
||||
private List<Sys_file> files;
|
||||
|
||||
@Column
|
||||
@ColDefine(type = ColType.DATETIME)
|
||||
@Comment("申请时间")
|
||||
private Date applyDate;
|
||||
|
||||
@Column
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
@Comment("分工会、离退休审核Id")
|
||||
private String branchUnionAuditId;
|
||||
|
||||
@Column
|
||||
@Comment("审核状态")
|
||||
private Integer stateId;
|
||||
|
||||
@Excel(name = "校医院核定个人现金支付金额", width = 20)
|
||||
@Column
|
||||
@Comment("校医院核定个人现金支付金额")
|
||||
@ColDefine(customType = "decimal", precision = 2)
|
||||
private BigDecimal schoolHospitalConfirmSelfPaymentAmount;
|
||||
|
||||
@Column
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
@Comment("校医院审核Id")
|
||||
private String schoolHospitalConfirmSelfPaymentAmountAuditId;
|
||||
|
||||
@Excel(name = "互助金小组核定个人现金支付金额", width = 20)
|
||||
@Column
|
||||
@Comment("互助金小组核定个人现金支付金额")
|
||||
@ColDefine(customType = "decimal", width = 10, precision = 2)
|
||||
private BigDecimal schoolConfirmSelfPaymentAmount;
|
||||
|
||||
@Column
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
@Comment("互助金小组审核Id")
|
||||
private String schoolConfirmSelfPaymentAmountAuditId;
|
||||
|
||||
@Excel(name = "最终补助金额", width = 20)
|
||||
@Column
|
||||
@Comment("最终补助金额")
|
||||
@ColDefine(customType = "decimal")
|
||||
private BigDecimal finalSubsidyMoney;
|
||||
|
||||
@Excel(name = "备注", width = 20)
|
||||
@Column
|
||||
@Comment("备注")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 255)
|
||||
private String note;
|
||||
|
||||
@Excel(name = "预测补助金额", width = 20)
|
||||
@Column
|
||||
@Comment("预测补助金额")
|
||||
@ColDefine(customType = "decimal")
|
||||
private String predictedSubsidyMoney;
|
||||
|
||||
@Excel(name = "病种", width = 20)
|
||||
@Column
|
||||
@Comment("病种")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 20)
|
||||
private String diseaseType;
|
||||
|
||||
@Data
|
||||
public static class FamilyIncome {
|
||||
private String userName;
|
||||
private String age;
|
||||
private String relation;
|
||||
private String workUnit;
|
||||
private String annualIncome;
|
||||
}
|
||||
|
||||
@One(field = "branchUnionAuditId", key = "id")
|
||||
private Audit branchUnionAudit;
|
||||
|
||||
@One(field = "schoolHospitalConfirmSelfPaymentAmountAuditId", key = "id")
|
||||
private Audit schoolHospitalConfirmSelfPaymentAmountAudit;
|
||||
|
||||
@One(field = "schoolConfirmSelfPaymentAmountAuditId", key = "id")
|
||||
private Audit schoolConfirmSelfPaymentAmountAudit;
|
||||
|
||||
private Long index;
|
||||
|
||||
private String errMsg;
|
||||
}
|
||||
Reference in New Issue
Block a user