Commit 95f0212c authored by hongguangwu's avatar hongguangwu

Merge branch 'develop'

parents e3bb1d0e 6f2c0d1f
......@@ -79,106 +79,114 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr
}
List<TFascCompany> companyList = tFascCompanyService.getTFascCompanyAllList();
if (companyList != null && !companyList.isEmpty()) {
// templateName 签署任务模板名称
List<TFascTemplate> tList = new ArrayList<>();
List<SignTemplateListInfo> listSubList;
List<TFascTemplate> tempList = new ArrayList<>();
List<TFascTemplateDetail> detailList = new ArrayList<>();
List<TFascTemplateDetail> detailSubList;
for (TFascCompany company : companyList) {
listSubList = fascUtil.getTemplateList(templateName, tFascPushLogService, company);
if (listSubList != null && !listSubList.isEmpty()) {
detailSubList = new ArrayList<>();
fascUtil.getTemplateDetailList(listSubList, tempList, detailSubList, tFascPushLogService, company);
if (!tempList.isEmpty() && !detailSubList.isEmpty()) {
tList.addAll(tempList);
detailList.addAll(detailSubList);
}
}
}
// templateName 签署任务模板名称
List<SignTemplateListInfo> list = fascUtil.getTemplateList(templateName, tFascPushLogService, company);
if (list != null && !list.isEmpty()) {
List<TFascTemplate> tList = new ArrayList<>();
List<TFascTemplateDetail> detailList = new ArrayList<>();
fascUtil.getTemplateDetailList(list, tList, detailList, tFascPushLogService, company);
// 拉取到数据再更新:
if (!tList.isEmpty() && !detailList.isEmpty()) {
String editContent1 = "定时任务同步,拉取到数据";
String editContent2 = "定时任务同步,法大大无该数据";
if (!"-1".equals(userId)) {
editContent1 = "手动拉取任务同步,拉取到数据";
editContent2 = "手动拉取任务同步,法大大无该数据";
}
List<TFascTemplate> updateMain = new ArrayList<>();
List<TFascTemplateDetail> updateDetail = new ArrayList<>();
// 拉取到数据再更新:
if (!tList.isEmpty() && !detailList.isEmpty()) {
String editContent1 = "定时任务同步,拉取到数据";
String editContent2 = "定时任务同步,法大大无该数据";
if (!"-1".equals(userId)) {
editContent1 = "手动拉取任务同步,拉取到数据";
editContent2 = "手动拉取任务同步,法大大无该数据";
}
List<TFascTemplate> updateMain = new ArrayList<>();
List<TFascTemplateDetail> updateDetail = new ArrayList<>();
List<TFascTemplate> allMain = tFascTemplateService.getTFascTemplateListAll(null);
List<TFascTemplateDetail> allDetail = tFascTemplateDetailService.getTFascTemplateDetailList(null);
List<TFascEditLog> logList = new ArrayList<>();
if (allMain == null || allMain.isEmpty()) {
// 都是新的:
tFascTemplateService.saveBatch(tList);
tFascTemplateDetailService.saveOrUpdateBatch(detailList);
for (TFascTemplate t : tList) {
this.addFascLogToList(t.getId(), CommonConstants.ONE_STRING, editContent1, logList, userId, userName);
}
for (TFascTemplateDetail t : detailList) {
this.addFascLogToList(t.getId(), CommonConstants.TWO_STRING, editContent1, logList, userId, userName);
}
List<TFascTemplate> allMain = tFascTemplateService.getTFascTemplateListAll(null);
List<TFascTemplateDetail> allDetail = tFascTemplateDetailService.getTFascTemplateDetailList(null);
List<TFascEditLog> logList = new ArrayList<>();
if (allMain == null || allMain.isEmpty()) {
// 都是新的:
tFascTemplateService.saveBatch(tList);
tFascTemplateDetailService.saveOrUpdateBatch(detailList);
for (TFascTemplate t : tList) {
this.addFascLogToList(t.getId(), CommonConstants.ONE_STRING, editContent1, logList, userId, userName);
}
for (TFascTemplateDetail t : detailList) {
this.addFascLogToList(t.getId(), CommonConstants.TWO_STRING, editContent1, logList, userId, userName);
}
} else {
// 混合老新数据
Map<String, TFascTemplate> oldMainMap = new HashMap<>();
Map<String, TFascTemplateDetail> oldDetailMap = new HashMap<>();
for (TFascTemplate t : allMain) {
oldMainMap.put(t.getSignTemplateId(), t);
}
for (TFascTemplateDetail t : allDetail) {
oldDetailMap.put(t.getSignTemplateId() + CommonConstants.DOWN_LINE_STRING + t.getFascFieldId(), t);
}
// 主表:
TFascTemplate oldMain;
String logId;
for (TFascTemplate t : tList) {
oldMain = oldMainMap.get(t.getSignTemplateId());
if (oldMain != null) {
t.setId(oldMain.getId());
} else {
// 混合老新数据
Map<String, TFascTemplate> oldMainMap = new HashMap<>();
Map<String, TFascTemplateDetail> oldDetailMap = new HashMap<>();
for (TFascTemplate t : allMain) {
oldMainMap.put(t.getSignTemplateId(), t);
}
for (TFascTemplateDetail t : allDetail) {
oldDetailMap.put(t.getSignTemplateId() + CommonConstants.DOWN_LINE_STRING + t.getFascFieldId(), t);
}
// 主表:
TFascTemplate oldMain;
String logId;
for (TFascTemplate t : tList) {
oldMain = oldMainMap.get(t.getSignTemplateId());
if (oldMain != null) {
t.setId(oldMain.getId());
} else {
logId = String.valueOf(UUID.randomUUID()).replaceAll("-", "");
t.setId(logId);
}
this.addFascLogToList(t.getId(), CommonConstants.ONE_STRING, editContent1, logList, userId, userName);
updateMain.add(t);
oldMainMap.remove(t.getSignTemplateId());
}
for (TFascTemplate t : oldMainMap.values()) {
this.addFascLogToList(t.getId(), CommonConstants.ONE_STRING, editContent2, logList, userId, userName);
t.setDeleteFlag(CommonConstants.DELETE_FLAG);
updateMain.add(t);
}
// 映射表:
TFascTemplateDetail oldDetail;
for (TFascTemplateDetail t : detailList) {
oldDetail = oldDetailMap.get(t.getSignTemplateId() + CommonConstants.DOWN_LINE_STRING + t.getFascFieldId());
if (oldDetail != null) {
t.setId(oldDetail.getId());
t.setHrField(oldDetail.getHrField());
t.setHrFieldId(oldDetail.getHrFieldId());
} else {
logId = String.valueOf(UUID.randomUUID()).replaceAll("-", "");
t.setId(logId);
}
this.addFascLogToList(t.getId(), CommonConstants.TWO_STRING, editContent1, logList, userId, userName);
updateDetail.add(t);
oldDetailMap.remove(t.getSignTemplateId() + CommonConstants.DOWN_LINE_STRING + t.getFascFieldId());
}
for (TFascTemplateDetail t : oldDetailMap.values()) {
this.addFascLogToList(t.getId(), CommonConstants.TWO_STRING, editContent2, logList, userId, userName);
t.setDeleteFlag(CommonConstants.DELETE_FLAG);
updateDetail.add(t);
}
logId = String.valueOf(UUID.randomUUID()).replaceAll("-", "");
t.setId(logId);
}
// 更新日志
if (!logList.isEmpty()) {
tFascEditLogService.saveBatch(logList);
}
// 更新模板
if (!updateMain.isEmpty()) {
tFascTemplateService.saveOrUpdateBatch(updateMain);
}
// 更新模板映射
if (!updateDetail.isEmpty()) {
tFascTemplateDetailService.saveOrUpdateBatch(updateDetail);
this.addFascLogToList(t.getId(), CommonConstants.ONE_STRING, editContent1, logList, userId, userName);
updateMain.add(t);
oldMainMap.remove(t.getSignTemplateId());
}
for (TFascTemplate t : oldMainMap.values()) {
this.addFascLogToList(t.getId(), CommonConstants.ONE_STRING, editContent2, logList, userId, userName);
t.setDeleteFlag(CommonConstants.DELETE_FLAG);
updateMain.add(t);
}
// 映射表:
TFascTemplateDetail oldDetail;
for (TFascTemplateDetail t : detailList) {
oldDetail = oldDetailMap.get(t.getSignTemplateId() + CommonConstants.DOWN_LINE_STRING + t.getFascFieldId());
if (oldDetail != null) {
t.setId(oldDetail.getId());
t.setHrField(oldDetail.getHrField());
t.setHrFieldId(oldDetail.getHrFieldId());
} else {
logId = String.valueOf(UUID.randomUUID()).replaceAll("-", "");
t.setId(logId);
}
// 重新刷新主模板表的必填是否已填
tFascTemplateDetailService.initFascTemplateIsMust(null);
this.addFascLogToList(t.getId(), CommonConstants.TWO_STRING, editContent1, logList, userId, userName);
updateDetail.add(t);
oldDetailMap.remove(t.getSignTemplateId() + CommonConstants.DOWN_LINE_STRING + t.getFascFieldId());
}
for (TFascTemplateDetail t : oldDetailMap.values()) {
this.addFascLogToList(t.getId(), CommonConstants.TWO_STRING, editContent2, logList, userId, userName);
t.setDeleteFlag(CommonConstants.DELETE_FLAG);
updateDetail.add(t);
}
}
// 更新日志
if (!logList.isEmpty()) {
tFascEditLogService.saveBatch(logList);
}
// 更新模板
if (!updateMain.isEmpty()) {
tFascTemplateService.saveOrUpdateBatch(updateMain);
}
// 更新模板映射
if (!updateDetail.isEmpty()) {
tFascTemplateDetailService.saveOrUpdateBatch(updateDetail);
}
// 重新刷新主模板表的必填是否已填
tFascTemplateDetailService.initFascTemplateIsMust(null);
}
}
return R.ok();
......
......@@ -95,7 +95,9 @@
SELECT
h.endTime,
max( l.POLICY_START ) POLICY_START,
l.EMP_IDCARD_NO
l.EMP_IDCARD_NO,
l.INSURANCE_COMPANY_NAME,
l.INSURANCE_TYPE_NAME
FROM
(
SELECT
......@@ -142,7 +144,11 @@
) ll ON ll.EMP_IDCARD_NO = a.EMP_IDCARD_NO
AND ll.POLICY_START = a.POLICY_START
AND ll.endTime = a.POLICY_END
AND ll.INSURANCE_COMPANY_NAME = a.INSURANCE_COMPANY_NAME
AND ll.INSURANCE_TYPE_NAME = a.INSURANCE_TYPE_NAME
where a.DELETE_FLAG = '0'
AND a.EXPIRE_IGNORE_FLAG = '1'
AND a.IS_EFFECT = 0
</select>
<resultMap id="PushWxResultMap" type="com.yifu.cloud.plus.v1.yifu.insurances.vo.InsuranceAlertWx">
<result property="projectName" column="DEPT_NAME" jdbcType="VARCHAR"/>
......
......@@ -53,7 +53,7 @@ public class TSocialFriendReduceSet {
@Schema(description = "减少原因")
private String reduceReasonName;
/**
* 中断原因
* 中断原因(池州特殊减员映射1:减员原因
*/
@ExcelAttribute(name = "中断原因", maxLength = 32)
@Length(max = 32, message = "中断原因不能超过32个字符")
......@@ -61,7 +61,7 @@ public class TSocialFriendReduceSet {
@Schema(description = "中断原因")
private String tbyy;
/**
* 劳动用工备案解除/终止原因
* 劳动用工备案解除/终止原因(池州特殊减员映射2:劳动用工备案解除/终止原因
*/
@ExcelAttribute(name = "劳动用工备案解除/终止原因", maxLength = 32)
@Length(max = 32, message = "劳动用工备案解除/终止原因不能超过32个字符")
......@@ -86,12 +86,12 @@ public class TSocialFriendReduceSet {
@Schema(description = "离职原因")
private String mvpKey;
/**
* 类型1:社保;2:医保
* 类型1:社保;2:医保;3池州特殊减员映射
*/
@ExcelAttribute(name = "类型", maxLength = 32)
@Length(max = 32, message = "类型")
@ExcelProperty("类型")
@Schema(description = "类型1:社保;2:医保")
@Schema(description = "类型1:社保;2:医保;3池州特殊减员映射")
private String mvpType;
}
......@@ -2,6 +2,9 @@ package com.yifu.cloud.plus.v1.yifu.social.vo;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
......@@ -201,4 +204,18 @@ public class SociaFriendYgsAddVo implements Serializable {
@ExcelProperty("是否强制停保" )
private String sfqztb;
// 池州特殊减员映射1:减员原因
@ExcelProperty("池州特殊减员映射1:减员原因")
private String chiZhouTbyy;
// 池州特殊减员映射2:劳动用工备案解除/终止原因
@ExcelProperty("池州特殊减员映射2:劳动用工备案解除/终止原因")
private String chiZhouZzyy;
@ExcelProperty("身份证省" )
private String idCardProvince;
@ExcelProperty("身份证市" )
private String idCardCity;
@ExcelProperty("身份证县" )
private String idCardTown;
}
......@@ -102,6 +102,7 @@ public class TSocialFriendPushServiceImpl extends ServiceImpl<TSocialFriendMappe
@Autowired
private TDispatchInfoMapper dispatchInfoMapper;
private final static String AND_STR = "&";
/**
* @Description: 推送到税友
* @Author: hgw
......@@ -118,17 +119,19 @@ public class TSocialFriendPushServiceImpl extends ServiceImpl<TSocialFriendMappe
// 通用的模板+查到的户的模板map
Map<String, URL> templateSrcMap = new HashMap<>();
// 通用的花名册模板
List<TAttaInfo> srcList = attaInfoMapper.getTemplateSrcById();
// 2025-11-4 17:45:38 1.7.17-税友临时分支,此处代码暂时注释掉,因为需求(陈红)说暂时不要通用花名册模板,后面有可能还是要通用花名册模板
// List<TAttaInfo> srcList = attaInfoMapper.getTemplateSrcById();
URL url;
if (srcList != null && !srcList.isEmpty()) {
/*if (srcList != null && !srcList.isEmpty()) {
for (TAttaInfo src : srcList) {
url = ossUtil.getObjectUrl(null, src.getAttaSrc());
templateSrcMap.put("template_" + src.getId(), url);
}
}
}*/
// 离职原因Map,将离职原因翻译为税友的字典
Map<String, TSocialFriendReduceSet> reduceYgsMap = tSocialFriendReduceSetService.getFriendReduceMap(CommonConstants.ONE_STRING);
Map<String, TSocialFriendReduceSet> reduceYsdMap = tSocialFriendReduceSetService.getFriendReduceMap(CommonConstants.TWO_STRING);
Map<String, TSocialFriendReduceSet> reduceChiZhouMap = tSocialFriendReduceSetService.getFriendReduceMap(CommonConstants.THREE_STRING);
// 获取时间限制配置(获取 当月启用 的配置)
Map<String, TSocialDeadlineInfo> socialSetMap = tSocialDeadlineInfoService.getSocialSetByAreaId();
......@@ -151,23 +154,23 @@ public class TSocialFriendPushServiceImpl extends ServiceImpl<TSocialFriendMappe
// 养工失新增列表
List<SociaFriendYgsAddVo> ygsAddlist = baseMapper.getSocialSoldierYgsAddVoList(dispatchIdList);
if (ygsAddlist != null && !ygsAddlist.isEmpty()) {
this.doPushSocialAndLogYgs(socialSetMap, ygsAddlist, 1, reduceYgsMap, zhangMap, templateUrl, templateSrcMap);
this.doPushSocialAndLogYgs(socialSetMap, ygsAddlist, 1, reduceYgsMap, zhangMap, templateUrl, templateSrcMap, reduceChiZhouMap);
}
// 养工失减少列表
List<SociaFriendYgsAddVo> ygsReducelist = baseMapper.getSocialSoldierYgsReduceVoList(dispatchIdList);
if (ygsReducelist != null && !ygsReducelist.isEmpty()) {
this.doPushSocialAndLogYgs(socialSetMap, ygsReducelist, 2, reduceYgsMap, zhangMap, templateUrl, templateSrcMap);
this.doPushSocialAndLogYgs(socialSetMap, ygsReducelist, 2, reduceYgsMap, zhangMap, templateUrl, templateSrcMap, reduceChiZhouMap);
}
// 医生大新增列表
List<SociaFriendYgsAddVo> ysdAddlist = baseMapper.getSocialSoldierYsdAddVoList(dispatchIdList);
if (ysdAddlist != null && !ysdAddlist.isEmpty()) {
this.doPushSocialAndLogYsd(socialSetMap, ysdAddlist, 3, reduceYsdMap, zhangMap, templateUrl, templateSrcMap);
this.doPushSocialAndLogYsd(socialSetMap, ysdAddlist, 3, reduceYsdMap, zhangMap, templateUrl, templateSrcMap, reduceChiZhouMap);
}
// 医生大减少列表
List<SociaFriendYgsAddVo> ysdReducelist = baseMapper.getSocialSoldierYsdReduceVoList(dispatchIdList);
if (ysdReducelist != null && !ysdReducelist.isEmpty()) {
this.doPushSocialAndLogYsd(socialSetMap, ysdReducelist, 4, reduceYsdMap, zhangMap, templateUrl, templateSrcMap);
this.doPushSocialAndLogYsd(socialSetMap, ysdReducelist, 4, reduceYsdMap, zhangMap, templateUrl, templateSrcMap, reduceChiZhouMap);
}
if ((ygsAddlist == null || ygsAddlist.isEmpty())
&& (ygsReducelist == null || ygsReducelist.isEmpty())
......@@ -195,7 +198,8 @@ public class TSocialFriendPushServiceImpl extends ServiceImpl<TSocialFriendMappe
**/
private R<String> doPushSocialAndLogYgs(Map<String, TSocialDeadlineInfo> socialSetMap
, List<SociaFriendYgsAddVo> ygsAddlist, int type, Map<String, TSocialFriendReduceSet> reduceMap
, Map<String, URL> zhangMap, URL templateUrl, Map<String, URL> templateSrcMap) {
, Map<String, URL> zhangMap, URL templateUrl, Map<String, URL> templateSrcMap
, Map<String, TSocialFriendReduceSet> reduceChiZhouMap) {
int canPushType;
TSocialInfo socialInfo;
String typeStr = "提交";
......@@ -234,6 +238,11 @@ public class TSocialFriendPushServiceImpl extends ServiceImpl<TSocialFriendMappe
vo = ygsAddlist.get(index);
// 派减离职原因转化:
if (type == 2 && Common.isNotNull(vo.getTbyy())) {
reduceSet = reduceChiZhouMap.get(vo.getTbyy());
if (reduceSet != null) {
vo.setChiZhouTbyy(reduceSet.getTbyy());
vo.setChiZhouZzyy(reduceSet.getZzyy());
}
reduceSet = reduceMap.get(vo.getTbyy());
if (reduceSet != null) {
vo.setTbyy(reduceSet.getTbyy());
......@@ -486,7 +495,8 @@ public class TSocialFriendPushServiceImpl extends ServiceImpl<TSocialFriendMappe
**/
private void doPushSocialAndLogYsd(Map<String, TSocialDeadlineInfo> socialSetMap
, List<SociaFriendYgsAddVo> ysdAddlist, int type, Map<String, TSocialFriendReduceSet> reduceMap
, Map<String, URL> zhangMap, URL templateUrl, Map<String, URL> templateSrcMap) {
, Map<String, URL> zhangMap, URL templateUrl, Map<String, URL> templateSrcMap
, Map<String, TSocialFriendReduceSet> reduceChiZhouMap) {
int canPushType;
TSocialInfo socialInfo;
String typeStr = "提交";
......@@ -540,6 +550,11 @@ public class TSocialFriendPushServiceImpl extends ServiceImpl<TSocialFriendMappe
} else {*/
// 派减离职原因转化:
if (type == 4 && Common.isNotNull(vo.getTbyy())) {
reduceSet = reduceChiZhouMap.get(vo.getTbyy());
if (reduceSet != null) {
vo.setChiZhouTbyy(reduceSet.getTbyy());
vo.setChiZhouZzyy(reduceSet.getZzyy());
}
reduceSet = reduceMap.get(vo.getTbyy());
if (reduceSet != null) {
vo.setTbyy(reduceSet.getTbyy());
......@@ -1518,7 +1533,7 @@ public class TSocialFriendPushServiceImpl extends ServiceImpl<TSocialFriendMappe
}
if (key.contains(CommonConstants.QIAN_MING)) {
// 签名样式
qianMingArr = key.split("&");
qianMingArr = key.split(AND_STR);
if (qianMingArr.length>1) {
key = qianMingArr[1];
} else {
......@@ -1528,11 +1543,18 @@ public class TSocialFriendPushServiceImpl extends ServiceImpl<TSocialFriendMappe
setQianMingStyle(cell, newValue);
} else if (key.contains(CommonConstants.GU_DING)) {
// 固定文字
qianMingArr = key.split("&");
qianMingArr = key.split(AND_STR);
if (qianMingArr.length>1) {
key = qianMingArr[1];
cell.setCellValue(key);
}
} else if (key.contains(AND_STR)) {
qianMingArr = key.split(AND_STR);
newValue = "";
for (String s : qianMingArr) {
newValue += getFieldValue(vo, s);
}
cell.setCellValue(newValue);
} else {
newValue = getFieldValue(vo, key);
cell.setCellValue(newValue);
......
......@@ -106,6 +106,9 @@
,DATE_FORMAT(now(),"%Y年%m月%d日") nowDay
,s.SOCIAL_HOUSEHOLD huId
,s.SFQZTB sfqztb
,idp.AREA_NAME idCardProvince
,idc.AREA_NAME idCardCity
,idt.AREA_NAME idCardTown
</sql>
......@@ -117,7 +120,9 @@
left join t_dispatch_social_fund_info h on a.id = h.REDUCE_SOCIAL_FUND_ID
left join sys_house_hold_info shh on shh.id = s.SOCIAL_HOUSEHOLD
left join view_sys_dict_item nation on nation.value=a.EMP_NATIONAL and nation.type='emp_national'
left join sys_area idp on idp.id = a.ID_CARD_PROVINCE
left join sys_area idc on idc.id = a.ID_CARD_CITY
left join sys_area idt on idt.id = a.ID_CARD_TOWN
<include refid="where_getSocialSoldier_base_handler"/>
and DATE_FORMAT(a.AUDIT_TIME,'%Y%m') = DATE_FORMAT(now(),'%Y%m')
</sql>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment