bug优化

This commit is contained in:
Paidax
2025-11-12 10:47:42 +08:00
parent 3d7a081eb3
commit 3008813cd1
13 changed files with 156 additions and 45 deletions
@@ -1,15 +1,3 @@
/*
* Copyright [2022] [https://www.xiaonuo.vip]
*
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
*
* 1.请不要删除和修改根目录下的LICENSE文件。
* 2.请不要删除和修改Snowy源码头部的版权声明。
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
*/
package io.v.nutz.base.utils;
import cn.hutool.core.io.FileUtil;
@@ -26,7 +26,7 @@ public class ExpressSelectUtil {
private static final String URL = "https://eolink.o.apispace.com/wlgj1/paidtobuy_api/trace_search";
//获取快递公司codeURL
private static final String EXPRESS_COMPANY_URL = "https://eolink.o.apispace.com/wlgj1/paidtobuy_api/mail_discern";
private static final String TOKEN = "vvzpibv7yzp2l89noyp8ut7tdjqqf1fq";
private static final String TOKEN = "zjklldtxynqrusiedjm1meno83bfk5id";
public JSONObject getExpressInfo(String mailNo, String tel) {
@@ -176,6 +176,7 @@ public class ActivityUnionManageController {
if (tissue.getIsEnrollSystem()) {
Sys_home_activity sysHomeActivity = tissue.covertToSysHomeActivity();
sysHomeActivity.setEnable(ShiroUtil.hasAnyRoles("sysadmin,A06"));
activitySchoolService.dao().insertOrUpdate(sysHomeActivity);
}
@@ -240,6 +241,11 @@ public class ActivityUnionManageController {
tissue.setState(3);
}
activityTissueService.doEdit(tissue);
if (tissue.getIsEnrollSystem()) {
Sys_home_activity sysHomeActivity = tissue.covertToSysHomeActivity();
activitySchoolService.dao().insertOrUpdate(sysHomeActivity);
}
return null;
}
@@ -248,6 +254,7 @@ public class ActivityUnionManageController {
@RequiresPermissions(value = {"activity.union.info", "activity.club.info", "activity.school.info2"}, logical = Logical.OR)
public Object doDelete(String id) {
activityTissueService.doDelete(id);
activityTissueService.dao().delete(Sys_home_activity.class, id);
return null;
}
@@ -330,6 +337,7 @@ public class ActivityUnionManageController {
u.unionname,
u.sex,
u.mobile,
u.idcard,
atp.applyDateTime,
IF(atp.isSign = 1, '已签到', '未签到') AS signState,
signTime
@@ -348,14 +356,17 @@ public class ActivityUnionManageController {
ActivityTissue tissue = tissuePersonService.dao().fetch(ActivityTissue.class, Cnd.where("id", "=", id));
List<ActivityTissuePerson> tissuePeople = tissuePersonService.listEntity(sql);
List<NutMap> tissuePeople = tissuePersonService.listMap(sql);
List<ExcelExportEntity> entityList = new ArrayList<>();
entityList.add(new ExcelExportEntity("姓名", "userName", 20));
entityList.add(new ExcelExportEntity("工号", "loginName", 20));
entityList.add(new ExcelExportEntity("姓名", "username", 20));
entityList.add(new ExcelExportEntity("工号", "loginname", 20));
entityList.add(new ExcelExportEntity("性别", "sex", 20));
entityList.add(new ExcelExportEntity("联系方式", "mobile", 20));
entityList.add(new ExcelExportEntity("单位", "unitName", 20));
entityList.add(new ExcelExportEntity("工会", "unionName", 20));
if (ShiroUtil.hasAnyRoles("sysadmin, A06")) {
entityList.add(new ExcelExportEntity("身份证号", "idcard", 30));
}
entityList.add(new ExcelExportEntity("单位", "unitname", 20));
entityList.add(new ExcelExportEntity("工会", "unionname", 20));
if (isSign) {
entityList.add(new ExcelExportEntity("签到状态", "singState", 20));
entityList.add(new ExcelExportEntity("签到时间", "signTime", 20));
@@ -532,17 +532,19 @@ public class SourceUserServiceImpl extends ViServiceImpl<UserSource> implements
// 变更记录
List<NutMap> changeList = new ArrayList<>();
for (String fieldName : allowChangeFieldNames) {
if (List.of("retireDate", "welfareStopDate", "idcard").contains(fieldName)) {
continue;
}
// if (List.of("retireDate", "welfareStopDate", "idcard").contains(fieldName)) {
// continue;
// }
//
// if (List.of("education", "campus", "academicDegree").contains(fieldName)) {
// if (StrUtil.isNotBlank(sourceMap.getString(fieldName, "")) && StrUtil.isBlank(newMap.getString(fieldName, ""))) {
// continue;
// }
// }
if (List.of("education", "campus", "academicDegree").contains(fieldName)) {
if (StrUtil.isNotBlank(sourceMap.getString(fieldName, "")) && StrUtil.isBlank(newMap.getString(fieldName, ""))) {
continue;
}
if (List.of("unitId", "userState", "personType").contains(fieldName)) {
memberCommonService.extractChange(newMap, sourceMap, fieldName, dictMap, changeList);
}
memberCommonService.extractChange(newMap, sourceMap, fieldName, dictMap, changeList);
}
if (Lang.isEmpty(changeList)) {
return null;
@@ -587,16 +589,18 @@ public class SourceUserServiceImpl extends ViServiceImpl<UserSource> implements
NutMap sourceMap = Lang.obj2nutmap(user);
List<NutMap> changeList = new ArrayList<>();
for (String fieldName : allowChangeFieldNames) {
if (List.of("retireDate", "welfareStopDate", "idcard").contains(fieldName)) {
continue;
// if (List.of("retireDate", "welfareStopDate", "idcard").contains(fieldName)) {
// continue;
// }
//
// if (List.of("education", "campus", "academicDegree").contains(fieldName)) {
// if (StrUtil.isBlank(sourceMap.getString(fieldName, "")) && StrUtil.isNotBlank(newMap.getString(fieldName, ""))) {
// continue;
// }
// }
if (List.of("unitId", "userState", "personType").contains(fieldName)) {
memberCommonService.extractChange(newMap, sourceMap, fieldName, dictMap, changeList);
}
if (List.of("education", "campus", "academicDegree").contains(fieldName)) {
if (StrUtil.isBlank(sourceMap.getString(fieldName, "")) && StrUtil.isNotBlank(newMap.getString(fieldName, ""))) {
continue;
}
}
memberCommonService.extractChange(newMap, sourceMap, fieldName, dictMap, changeList);
}
if (Lang.isEmpty(changeList)) {
return null;
@@ -621,7 +625,7 @@ public class SourceUserServiceImpl extends ViServiceImpl<UserSource> implements
* @param changeTypes
*/
private void commonCompareChange(UserSource source, Sys_user user, List<String> changeTypes){
changeTypes.add(MemberChangeType.BASIC_CHANGE.getType());
// changeTypes.add(MemberChangeType.BASIC_CHANGE.getType());
if (!ObjectUtil.equals(user.getUserState(), source.getUserState())) {
List<MemberChangeType> list = Arrays.stream(MemberChangeType.values())
@@ -273,7 +273,10 @@ public class ProposalUnderTakeSummaryController {
LEFT JOIN sys_user u ON u.id = sur.userId
$condition
""");
sql.setParam("leaderRoleId", Roles.IN_CHARGE_LEADER);
// 分管校领导
// sql.setParam("leaderRoleId", Roles.IN_CHARGE_LEADER);
// 承办单位负责人
sql.setParam("leaderRoleId", Roles.CONTRACTOR_PERSON);
Cnd cnd = Cnd.NEW();
cnd.and("pu.id", "in", unitIds);
cnd.groupBy("pu.id");
@@ -287,7 +290,8 @@ public class ProposalUnderTakeSummaryController {
sbf.append(unitMap.getString("unitName"));
sbf.append("&nbsp;&nbsp;");
sbf.append("<i class='el-icon-user-solid'></i>");
sbf.append(StrUtil.isBlank(unitMap.getString("username")) ? "未分配校领导" : unitMap.getString("username"));
// sbf.append(StrUtil.isBlank(unitMap.getString("username")) ? "未分配校领导" : unitMap.getString("username"));
sbf.append(StrUtil.isBlank(unitMap.getString("username")) ? "未分配承办单位负责人" : unitMap.getString("username"));
sbf.append("&nbsp;&nbsp;");
sbf.append("<i class='el-icon-phone'></i>");
sbf.append(StrUtil.isBlank(unitMap.getString("mobile")) ? "暂无联系方式" : unitMap.getString("mobile"));
@@ -166,6 +166,7 @@ public class MemberApplyBranchUnionAuditController {
Sys_user sysUser = new Sys_user();
BeanUtil.copyProperties(record, sysUser);
sysUser.setId(user.getId());
sysUser.setWelfareMember(1);
dao.updateIgnoreNull(sysUser);
// 还要设置会员角色
@@ -496,10 +496,10 @@ public class MemberInquireIntegrateController {
}
if (!ShiroUtil.hasAnyRoles("sysadmin,A06,H03")) {
cnd.and("unionid", "=", Vi.getUnionId());
cnd.and("u.unionid", "=", Vi.getUnionId());
}
cnd.asc("unitcode");
cnd.asc("unioncode");
cnd.asc("u.unitcode");
cnd.asc("u.unioncode");
cnd.asc("memberJoinTime");
cnd.groupBy("u.id");
sql.setCondition(cnd);
@@ -166,6 +166,7 @@ public class SourceChangeManageServiceImpl extends BaseServiceImpl<SourceChangeM
}
// 杭医特有,其他学校请删除
middleTable.setPreparedBy("会员");
middleTable.setWelfareMember(1);
} else {
if (middleTable.getIsExitActivityMemberScope() != null && middleTable.getIsExitActivityMemberScope()) {
dao().clear(ActivityUserScope.class, Cnd.where("userId", "=", userId).and("groupId", "=", 1));
@@ -173,6 +174,7 @@ public class SourceChangeManageServiceImpl extends BaseServiceImpl<SourceChangeM
dao().clear(Sys_user_role.class, Cnd.where("userId", "=", userId).and("roleId", "=", Roles.MEMBER));
// 杭医特有,其他学校请删除
middleTable.setPreparedBy("教职工");
middleTable.setWelfareMember(0);
}
// 加入福利会员 是否加入福利项目
@@ -748,4 +748,86 @@ public class WelfareListController {
return null;
}
@At
@Ok("void")
@RequiresPermissions("welfare.list.mange")
public void doExportWelfareBySearch(@Param(value = "searchName",required = false) String searchName,
@Param(value = "searchKeyWord",required = false) String searchKeyWord,
@Param(value = "projectId",required = false) String projectId,
@Param(value = "unionId",required = false) String unionId,
@Param(value = "units",required = false) String[] units,
@Param(value = "threeUnitId",required = false) String threeUnitId,
@Param(value = "isChoose",required = false) Integer isChoose,
HttpServletResponse response){
Sql sql = Sqls.create("""
SELECT
CASE
WHEN
wus.selectUserId IS NOT NULL THEN
1 ELSE 0
END AS isChoose,
wl.id,
wl.username,
wl.loginname,
wl.personType,
wl.userState,
wl.unionname,
wl.unitname,
wl.listId,
wus.userSign,
wus.courierNumber,
wus.receiveAddress,
GROUP_CONCAT( DISTINCT wuso.optionName, IF(wus.selectSpecs is not null, (CONCAT('—规格:', wus.selectSpecs)), ''), '', wus.selectNum, '份)' ) AS gist_list
FROM
view_welfare_list wl
LEFT JOIN welfare_project_user_selection wus ON wus.welfareId = wl.projectId
AND wus.selectUserId = wl.id
LEFT JOIN welfare_project_subject_option wuso ON wus.selectOptionId = wuso.id
LEFT JOIN welfare_courier_number wcn on wcn.selectUserId = wl.id
LEFT JOIN welfare_project wp ON wp.id = wus.welfareId
$condition
""");
Cnd cnd = Cnd.NEW();
cnd.and("wl.projectId", "=", projectId);
cnd.andEX("wl.unionid", "=", unionId);
cnd.andEX("wl.unitid", "in", units);
if (isChoose != null) {
if (isChoose.equals(1)) {
cnd.and("wus.selectUserId", "is not", null);
} else if (isChoose.equals(2)) {
cnd.and("wus.selectUserId", "is", null);
}
}
cnd.groupBy("wl.id");
cnd.asc("wl.unitCode");
cnd.asc("wl.loginname");
if (!ShiroUtil.hasAnyRoles("sysadmin")) {
cnd.and("wl.unionid", "=", Vi.getUnionId());
}
sql.setCondition(cnd);
List<NutMap> list = welfareListService.listMap(sql);
List<ExcelExportEntity> exportEntities = new ArrayList<>();
exportEntities.add(new ExcelExportEntity("工号", "loginname", 20));
exportEntities.add(new ExcelExportEntity("姓名", "username", 20));
exportEntities.add(new ExcelExportEntity("工会", "unionname", 20));
exportEntities.add(new ExcelExportEntity("单位", "unitname", 20));
exportEntities.add(new ExcelExportEntity("科室", "threeUnitName", 20));
exportEntities.add(new ExcelExportEntity("所选福利", "gist_list", 20));
exportEntities.add(new ExcelExportEntity("收货地址", "receiveAddress", 20));
try {
ViTool.excelResponse(response,"福利名单.xls");
Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), exportEntities, list);
workbook.write(response.getOutputStream());
} catch (IOException e) {
e.printStackTrace();
}
}
}
@@ -858,6 +858,9 @@ layout("/mobile/platform.html"){
let msg = '您选择了【' + this.choose.courseName + (flag ? this.formData.courseTimeName : '') + '】\n的报名,是否确认?'
if (this.choose.id === "76619f05ae904324930747087c408b5e") {
msg = "本人已认真阅读本次活动《安全告知书》,并确认自身身体状况可以参与活动方案提示的相关内容"
}
vant.Dialog.confirm({
title: '温馨提示',
message: msg,
@@ -701,6 +701,7 @@
signUpMethod: [{required: true, message: '必填', trigger: ['blur', 'change']}],
address: [{required: true, message: '必填', trigger: ['blur', 'change']}],
plannedDate: [{required: true, message: '必填', trigger: ['blur', 'change']}],
cover: [{required: true, message: '必填', trigger: ['blur', 'change']}],
},
userColumns: [
{prop: 'userName', label: '姓名'},
@@ -699,7 +699,10 @@ layout("/layouts/platform.html"){
}
this.$refs['form'].validate(valid => {
if (valid) {
const msg = '您确认要提交' + this.choose.courseName + '的报名吗?'
let msg = '您确认要提交' + this.choose.courseName + '的报名吗?'
if (this.choose.id === "76619f05ae904324930747087c408b5e") {
msg = "本人已认真阅读本次活动《安全告知书》,并确认自身身体状况可以参与活动方案提示的相关内容"
}
this.$confirm(msg, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
@@ -267,13 +267,13 @@ layout("/layouts/platform.html"){
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('H05')}">
批量领取
</el-button>-->
<el-button :disabled="pageFormProjectType!==3"
<!--<el-button :disabled="pageFormProjectType!==3"
@click="doExcelByOptionId"
icon="el-icon-printer" size="small"
type="primary"
v-if="judgmentAuthority">
导出报销表
</el-button>
</el-button>-->
<!--<el-button :disabled="pageFormProjectType!==3"
@click="reimbursementDialog=true"
icon="el-icon-printer" size="small"
@@ -313,6 +313,9 @@ layout("/layouts/platform.html"){
type="primary"
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('H05')}">添加
</el-button>-->
<el-button :disabled="!pageForm.projectId" type="primary" size="small"
@click="doExportWelfareBySearch">导出名单
</el-button>
</template>
</table-tool>
@@ -827,6 +830,15 @@ layout("/layouts/platform.html"){
'courier-number-info': httpVueLoader('/components/welfare/CourierNumberInfo.vue?v=' + new Date().getTime())
},
methods: {
doExportWelfareBySearch(){
window.open(loc() + '/doExportWelfareBySearch?searchName=' + this.pageForm.searchName +
'&searchKeyWord=' + this.pageForm.searchKeyword +
'&projectId=' + this.pageForm.projectId +
'&unionId=' + this.pageForm.welfareUnit +
'&threeUnitId=' + this.pageForm.threeUnitId +
'&units=' + (this.pageForm.units ? JSON.stringify(this.pageForm.units) : null) +
"&isChoose=" + this.pageForm.isChoose)
},
async sendMsg(){
if (!this.pageForm.projectId) {
this.$message.warning('请选择福利项目')