commit
This commit is contained in:
@@ -138,6 +138,7 @@ public enum SickHelpCalc {
|
||||
if (howManyDidNotApplyYears >= 5) {
|
||||
otherSubsidyRatio = Math.min(howManyDidNotApplyYears, 10) * 0.01;
|
||||
sr.setSubsidyDesc("满" + howManyDidNotApplyYears + "年且未补助");
|
||||
sr.setNoSubsidyYear(howManyDidNotApplyYears);
|
||||
}
|
||||
|
||||
// if (howManyDidNotApplyYears >= 15) {
|
||||
|
||||
@@ -41,8 +41,10 @@ public class SickHelpImportController {
|
||||
excelTemplateEntityList.add(new ExcelExportEntity("工号", "loginName", 20));
|
||||
excelTemplateEntityList.add(new ExcelExportEntity("姓名", "userName", 20));
|
||||
// excelTemplateEntityList.add(new ExcelExportEntity("单位", "unitName", 20));
|
||||
excelTemplateEntityList.add(new ExcelExportEntity("两项自付之和金额(元)", "selfPayTotalMoney", 25));
|
||||
excelTemplateEntityList.add(new ExcelExportEntity("个人支付金额(元)", "selfPayMoney", 20));
|
||||
excelTemplateEntityList.add(new ExcelExportEntity("医保四项之和金额(元)", "medicalFourTotalMoney", 30));
|
||||
excelTemplateEntityList.add(new ExcelExportEntity("两项自付之和金额(元)", "selfPayTotalMoney", 30));
|
||||
excelTemplateEntityList.add(new ExcelExportEntity("学校二次报销金额(元)", "schoolSecondSubsidyMoney", 30));
|
||||
excelTemplateEntityList.add(new ExcelExportEntity("个人支付金额(元)", "selfPayMoney", 30));
|
||||
// excelTemplateEntityList.add(new ExcelExportEntity("账号", "hospitalAccount", 20));
|
||||
// excelTemplateEntityList.add(new ExcelExportEntity("补助金额(元)", "", 20));
|
||||
// excelTemplateEntityList.add(new ExcelExportEntity("最近年度", "", 20));
|
||||
|
||||
@@ -4,6 +4,7 @@ import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
||||
import cn.afterturn.easypoi.excel.entity.ExportParams;
|
||||
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
|
||||
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.wizzer.framework.base.Result;
|
||||
import io.v.nutz.annontation.ViReturn;
|
||||
import io.v.nutz.modules.models.PageForm;
|
||||
@@ -181,13 +182,19 @@ public class SickHelpListController {
|
||||
sick.loginName,
|
||||
sick.userName,
|
||||
sick.unitName,
|
||||
sick.medicalFourTotalMoney,
|
||||
sick.selfPayMoney,
|
||||
sick.selfPayTotalMoney,
|
||||
sick.schoolSecondSubsidyMoney,
|
||||
sick.noSubsidyYear,
|
||||
sick.subsidyMoney,
|
||||
sick.remarks,
|
||||
sfm.userState\s
|
||||
sfm.userState,
|
||||
u.userState userState2
|
||||
FROM
|
||||
sick_help sick
|
||||
LEFT JOIN sick_fund_member sfm ON sfm.loginName = sick.loginName
|
||||
LEFT JOIN user u on u.loginName = sick.loginName
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
@@ -196,6 +203,14 @@ public class SickHelpListController {
|
||||
sql.setCondition(cnd);
|
||||
List<NutMap> list = sickHelpListService.listMap(sql);
|
||||
|
||||
for (NutMap row : list) {
|
||||
String userState = row.getString("userState","");
|
||||
String userState2 = row.getString("userState2","");
|
||||
if(!userState.equals(userState2)){
|
||||
row.put("userState",userState2);
|
||||
}
|
||||
}
|
||||
|
||||
ExportParams exportParams = new ExportParams();
|
||||
exportParams.setType(ExcelType.XSSF);
|
||||
exportParams.setTitle(year + "教职工大病医疗互助金补助汇总表");
|
||||
@@ -205,8 +220,12 @@ public class SickHelpListController {
|
||||
excelExportEntities.add(new ExcelExportEntity("姓名", "userName", 20));
|
||||
excelExportEntities.add(new ExcelExportEntity("单位", "unitName", 20));
|
||||
excelExportEntities.add(new ExcelExportEntity("状态", "userState", 20));
|
||||
excelExportEntities.add(new ExcelExportEntity("自费金额", "selfPayMoney", 20));
|
||||
excelExportEntities.add(new ExcelExportEntity("补助金额", "subsidyMoney", 20));
|
||||
excelExportEntities.add(new ExcelExportEntity("医保四项之和金额(元)", "medicalFourTotalMoney", 30));
|
||||
excelExportEntities.add(new ExcelExportEntity("两项自付之和金额(元)", "selfPayTotalMoney", 30));
|
||||
excelExportEntities.add(new ExcelExportEntity("学校二次报销金额(元)", "schoolSecondSubsidyMoney", 30));
|
||||
excelExportEntities.add(new ExcelExportEntity("个人支付金额(元)", "selfPayMoney", 20));
|
||||
excelExportEntities.add(new ExcelExportEntity("补助金额(元)", "subsidyMoney", 20));
|
||||
excelExportEntities.add(new ExcelExportEntity("未补助年份", "noSubsidyYear", 20));
|
||||
excelExportEntities.add(new ExcelExportEntity("备注", "remarks", 20));
|
||||
|
||||
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, excelExportEntities, list);
|
||||
|
||||
@@ -66,6 +66,13 @@ public class SickHelp {
|
||||
@Excel(name = "申报年度", width = 20)
|
||||
private Integer year;
|
||||
|
||||
@Column
|
||||
@Comment("医保四项之和金额(元)")
|
||||
@ColDefine(type = ColType.FLOAT, width = 10, precision = 2)
|
||||
@Excel(name = "医保四项之和金额(元)", numFormat = "#.##", width = 20)
|
||||
@JsonField(forceString = true)
|
||||
private BigDecimal medicalFourTotalMoney;
|
||||
|
||||
@Column
|
||||
@Comment("个人支付金额(元)")
|
||||
@ColDefine(type = ColType.FLOAT, width = 10, precision = 2)
|
||||
@@ -73,6 +80,13 @@ public class SickHelp {
|
||||
@JsonField(forceString = true)
|
||||
private BigDecimal selfPayMoney;
|
||||
|
||||
@Column
|
||||
@Comment("学校二次报销金额(元)")
|
||||
@ColDefine(type = ColType.FLOAT, width = 10, precision = 2)
|
||||
@Excel(name = "学校二次报销金额(元)", numFormat = "#.##", width = 20)
|
||||
@JsonField(forceString = true)
|
||||
private BigDecimal schoolSecondSubsidyMoney;
|
||||
|
||||
@Column
|
||||
@Comment("两项自付之和金额(元)")
|
||||
@ColDefine(type = ColType.FLOAT, width = 10, precision = 2)
|
||||
@@ -124,6 +138,11 @@ public class SickHelp {
|
||||
@Excel(name = "入会年限∕是否享受过补助", width = 40)
|
||||
private String subsidyDesc;
|
||||
|
||||
@Column
|
||||
@Comment("未补助年份")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 20)
|
||||
private Integer noSubsidyYear;
|
||||
|
||||
@Column
|
||||
@Comment("备注")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 50)
|
||||
|
||||
@@ -61,6 +61,18 @@ public class SickHelpImportServiceImpl extends ViServiceImpl<SickHelp> implement
|
||||
sick.getValidMsg().add("姓名为空");
|
||||
sick.setValidMsg(sick.getValidMsg());
|
||||
}
|
||||
if(Lang.isEmpty(sick.getMedicalFourTotalMoney())){
|
||||
sick.getValidMsg().add("医保四项之和金额为空");
|
||||
sick.setValidMsg(sick.getValidMsg());
|
||||
}
|
||||
if(Lang.isEmpty(sick.getSelfPayTotalMoney())){
|
||||
sick.getValidMsg().add("两项自付之和金额为空");
|
||||
sick.setValidMsg(sick.getValidMsg());
|
||||
}
|
||||
if(Lang.isEmpty(sick.getSchoolSecondSubsidyMoney())){
|
||||
sick.getValidMsg().add("学校二次报销金额为空");
|
||||
sick.setValidMsg(sick.getValidMsg());
|
||||
}
|
||||
if (Lang.isEmpty(sick.getSelfPayMoney())) {
|
||||
sick.getValidMsg().add("个人支付金额为空");
|
||||
sick.setValidMsg(sick.getValidMsg());
|
||||
|
||||
+14
-2
@@ -20,13 +20,15 @@ import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.POST;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author zxy
|
||||
* @Description 新建活动
|
||||
* @createTime 2022年03月07日 10:16:00
|
||||
*/
|
||||
@IocBean
|
||||
@At("/platform/trainSingUp/manage/activity")
|
||||
@At("/platform/trainSingUp/manage/activity/add")
|
||||
@Slf4j
|
||||
public class TrainSignUpActivityAddController {
|
||||
|
||||
@@ -36,7 +38,7 @@ public class TrainSignUpActivityAddController {
|
||||
@Inject
|
||||
private Dao dao;
|
||||
|
||||
@At("/add")
|
||||
@At("")
|
||||
@RequiresPermissions("trainSingUp.manage.activity.add")
|
||||
@Ok("beetl:/platform/trainSingUp/manage/activity_add.html")
|
||||
public void add() {
|
||||
@@ -86,4 +88,14 @@ public class TrainSignUpActivityAddController {
|
||||
//已报人数
|
||||
return dao.count(TrainSignUpUser.class, Cnd.where("courseId", "=", courseId));
|
||||
}
|
||||
|
||||
@At
|
||||
@ViReturn
|
||||
@Ok("json:full")
|
||||
@RequiresPermissions("trainSingUp.manage.activity.add")
|
||||
public Object getHistoricalActList() {
|
||||
List<TrainSignUpActivity> query = dao.query(TrainSignUpActivity.class, Cnd.NEW().desc("activityStartTime"));
|
||||
return query;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -122,4 +122,9 @@ public class TrainSignUpActivity extends BaseModel implements Serializable {
|
||||
@Comment("活动类型")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 20)
|
||||
private String trainType;
|
||||
|
||||
@Column
|
||||
@Comment("地点显示名称")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 50)
|
||||
private String addressName;
|
||||
}
|
||||
|
||||
@@ -193,7 +193,8 @@ layout("/mobile/platform.html"){
|
||||
<span>{{o.campus}}</span>
|
||||
</div>
|
||||
<div>
|
||||
<span class="train-title">地  点:</span>
|
||||
<span class="train-title" v-if="activity.addressName">{{activity.addressName}}:</span>
|
||||
<span class="train-title" v-else>地  点:</span>
|
||||
<span>{{o.courseLocation}}</span>
|
||||
</div>
|
||||
<div>
|
||||
|
||||
@@ -97,16 +97,12 @@ layout("/layouts/platform.html"){
|
||||
<!-- <el-input v-model="row.unitName" maxlength="10" size="small"></el-input>-->
|
||||
<!-- </template>-->
|
||||
</el-table-column>
|
||||
<el-table-column label="个人支付金额(元)" prop="selfPayMoney" width="200">
|
||||
<!-- <template scope="{row}">-->
|
||||
<!-- <el-input-number v-model="row.selfPayMoney" :min="0" :max="999999"-->
|
||||
<!-- :precision="2" size="small" style="width: 100%"></el-input-number>-->
|
||||
<!-- </template>-->
|
||||
</el-table-column>
|
||||
<el-table-column label="医保四项之和金额(元)" prop="medicalFourTotalMoney" width="200"></el-table-column>
|
||||
<el-table-column label="两项自付之和金额(元)" prop="selfPayTotalMoney" width="200"></el-table-column>
|
||||
|
||||
<el-table-column label="学校二次报销金额(元)" prop="schoolSecondSubsidyMoney" width="200"></el-table-column>
|
||||
<el-table-column label="个人支付金额(元)" prop="selfPayMoney" width="200"></el-table-column>
|
||||
<el-table-column label="未补助年份" prop="noSubsidyYear" width="200"></el-table-column>
|
||||
<el-table-column label="计算金额(元)" prop="noLimitSubsidyMoney" width="200"></el-table-column>
|
||||
|
||||
<el-table-column label="补助金额(元)" prop="subsidyMoney" width="200">
|
||||
<!-- <template scope="{row}">-->
|
||||
<!-- <el-input-number v-model="row.subsidyMoney" :min="0" :max="999999"-->
|
||||
|
||||
@@ -107,7 +107,7 @@ layout("/layouts/platform.html"){
|
||||
</table-tool>
|
||||
<el-table :data="tableData" :size="tableSize" @sort-change="pageOrder"
|
||||
align="center" header-align="center">
|
||||
<el-table-column align="center" header-align="center" label="序号" type="index" width="80">
|
||||
<el-table-column align="center" header-align="center" label="序号" type="index" width="80" fixed="left">
|
||||
<template scope="scope">
|
||||
<span>{{ scope.$index + (pageForm.pageNumber - 1) * pageForm.pageSize + 1 }} </span>
|
||||
</template>
|
||||
@@ -119,6 +119,7 @@ layout("/layouts/platform.html"){
|
||||
:width="column.width"
|
||||
align="center"
|
||||
header-align="center"
|
||||
:fixed="column.fixed"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns"
|
||||
>
|
||||
@@ -230,15 +231,19 @@ layout("/layouts/platform.html"){
|
||||
data() {
|
||||
return {
|
||||
tableColumns: [
|
||||
{prop: 'year', label: '年度', sortable: true},
|
||||
{prop: 'userName', label: '姓名'},
|
||||
{prop: 'loginName', label: '工号'},
|
||||
{prop: 'year', label: '年度', sortable: true, fixed: 'left'},
|
||||
{prop: 'userName', label: '姓名', fixed: 'left'},
|
||||
{prop: 'loginName', label: '工号', fixed: 'left',width: 120},
|
||||
{prop: 'unionName', label: '分工会', sortable: true, width: 150},
|
||||
{prop: 'unitName', label: '单位', sortable: true, width: 150},
|
||||
|
||||
{prop: 'selfPayMoney', label: '个人支付金额(元)', sortable: true, width: 150},
|
||||
{prop: 'medicalFourTotalMoney', label: '医保四项之和金额(元)', sortable: true, width: 200},
|
||||
{prop: 'selfPayTotalMoney', label: '两项自付之和金额(元)', sortable: true, width: 200},
|
||||
{prop: 'schoolSecondSubsidyMoney', label: '学校二次报销金额(元)', sortable: true, width: 200},
|
||||
{prop: 'selfPayMoney', label: '个人支付金额(元)', sortable: true, width: 170},
|
||||
{prop: 'noLimitSubsidyMoney', label: '计算金额(元)', sortable: true, width: 150},
|
||||
{prop: 'subsidyMoney', label: '补助金额(元)', sortable: true, width: 150},
|
||||
{prop: 'noSubsidyYear', label: '未补助年份', sortable: true, width: 120},
|
||||
{prop: 'isMember', label: '是否会员', sortable: true, width: 100},
|
||||
|
||||
// {prop: 'selfPaySubsidyRatio', label: '个人支付金额补助比例', sortable: true, width: 160},
|
||||
@@ -250,7 +255,8 @@ layout("/layouts/platform.html"){
|
||||
],
|
||||
pageForm: {
|
||||
year: (new Date().getFullYear() - 1).toString(),
|
||||
isMember: null
|
||||
isMember: null,
|
||||
unitName:''
|
||||
},
|
||||
unions: [],
|
||||
units: [],
|
||||
|
||||
@@ -46,6 +46,9 @@ layout("/layouts/platform.html"){
|
||||
data() {
|
||||
const that = this
|
||||
return {
|
||||
use: false,
|
||||
historicalActList: [],
|
||||
historicalAct: "",
|
||||
trainType: '培训班',
|
||||
trainTypeList: [],
|
||||
fromEdit: '',
|
||||
@@ -62,6 +65,7 @@ layout("/layouts/platform.html"){
|
||||
restrictLimit: 1,
|
||||
limitNum: 1,
|
||||
typeLimits: [],
|
||||
addressDisplayName: '培训班地点',
|
||||
},
|
||||
pickerOptions: {
|
||||
disabledDate(time) {
|
||||
@@ -117,6 +121,13 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
getAddressName() {
|
||||
if(!this.formData.addressName) {
|
||||
this.formData.addressDisplayName = this.trainType + '地点'
|
||||
} else {
|
||||
this.formData.addressDisplayName = this.formData.addressName
|
||||
}
|
||||
},
|
||||
openUserScope() {
|
||||
this.userScopeDialog = true
|
||||
},
|
||||
@@ -648,6 +659,34 @@ layout("/layouts/platform.html"){
|
||||
typeChange(val) {
|
||||
const type = this.trainTypeList.find(o => o.code === val)
|
||||
this.trainType = type ? type.name : ''
|
||||
this.getAddressName()
|
||||
},
|
||||
async getHistoricalActList() {
|
||||
const resp = await $.post("/platform/trainSingUp/manage/activity/add/getHistoricalActList", {})
|
||||
return resp.data
|
||||
},
|
||||
async historicalActChange(val) {
|
||||
const resp = await $.get("/platform/trainSingUp/manage/activity/findOne", { id: val })
|
||||
if (resp.code === 0) {
|
||||
/*resp.data.cover = [resp.data.cover]
|
||||
if (resp.data.wechat) {
|
||||
resp.data.wechat = [resp.data.wechat]
|
||||
}*/
|
||||
this.formData = resp.data
|
||||
const type = this.trainTypeList.find(o => o.code === this.formData.trainType)
|
||||
this.trainType = type ? type.name : "培训班"
|
||||
this.$nextTick(() => {
|
||||
$("#introduce").html("")
|
||||
var editor = new E("#introduce")
|
||||
editor.config.onchange = (html) => {
|
||||
this.formData.introduce = html.replace(/<p\><\/p>/g, "")
|
||||
}
|
||||
editor.create()
|
||||
editor.txt.html(resp.data.introduce)
|
||||
})
|
||||
this.getAddressName()
|
||||
this.formData.id = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
@@ -656,7 +695,9 @@ layout("/layouts/platform.html"){
|
||||
await this.initData()
|
||||
this.activityGroupList = await getActivityGroup()
|
||||
this.campusList = await getCampus()
|
||||
this.historicalActList = await this.getHistoricalActList()
|
||||
this.courseTypeList = await this.getAllType()
|
||||
this.getAddressName()
|
||||
},
|
||||
watch: {
|
||||
'formData.restrictLimit'(val) {
|
||||
|
||||
@@ -1,10 +1,42 @@
|
||||
<el-form :model="formData" label-width="120px" ref="form">
|
||||
<el-form :model="formData" label-width="130px" ref="form">
|
||||
<vi-title title="活动信息"></vi-title>
|
||||
<el-row :gutter="20" type="flex">
|
||||
<el-row :gutter="20" type="flex" v-if="fromEdit !== 'edit'">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否沿用之前活动" prop="use">
|
||||
<el-radio-group size="medium" v-model="use">
|
||||
<el-radio-button :label="true" border>沿用之前活动</el-radio-button>
|
||||
<el-radio-button :label="false" border>不沿用之前活动</el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="往期活动" prop="historicalAct">
|
||||
<el-select :disabled="!use" @change="historicalActChange"
|
||||
placeholder="请选择往期活动"
|
||||
style="width: 100%" v-model="historicalAct">
|
||||
<el-option
|
||||
:key="item.id"
|
||||
:label="item.activityName"
|
||||
:value="item.id"
|
||||
v-for="item in historicalActList">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20" type="flex">
|
||||
<el-col :span="24">
|
||||
<el-form-item :rules="{required:true,message: '请输入活动名称', trigger: 'blur'}" label="活动名称"
|
||||
prop="activityName">
|
||||
<el-input maxlength="50" v-model="formData.activityName"></el-input>
|
||||
<el-input maxlength="50" v-model="formData.activityName" placeholder="请输入活动名称"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20" type="flex">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="地点显示文字"
|
||||
prop="addressName">
|
||||
<el-input @input="getAddressName" maxlength="50" v-model="formData.addressName" placeholder="请输入地点显示文字"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
@@ -181,7 +213,7 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column :label="trainType + '地点'" prop="courseLocation">
|
||||
<el-table-column :label="formData.addressDisplayName" prop="courseLocation">
|
||||
<template scope="{row}">
|
||||
<el-input v-model="row.courseLocation"></el-input>
|
||||
</template>
|
||||
|
||||
Reference in New Issue
Block a user