Commit efc91385 authored by fangxinjiang's avatar fangxinjiang

Merge remote-tracking branch 'origin/MVP1.7.14' into MVP1.7.14

parents decc6d2d 14a8d98d
...@@ -574,4 +574,7 @@ public class TGzEmpInfo extends BaseEntity { ...@@ -574,4 +574,7 @@ public class TGzEmpInfo extends BaseEntity {
@Schema(description = "持卡人姓名") @Schema(description = "持卡人姓名")
private String accountName; private String accountName;
@Schema(description = "档案状态(0:已提交,1:暂存)")
private String empStatus;
} }
...@@ -48,6 +48,10 @@ public class TGzEmpInfoExportMain implements Serializable { ...@@ -48,6 +48,10 @@ public class TGzEmpInfoExportMain implements Serializable {
@ExcelProperty("员工档案提交时间") @ExcelProperty("员工档案提交时间")
private String createTime; private String createTime;
@ExcelAttribute(name = "档案状态", isDataId = true, readConverterExp = "0=已提交,1=暂存")
@ExcelProperty("档案状态")
private String empStatus;
@ExcelAttribute(name = "档案推送瓜子状态", isDataId = true, readConverterExp = "0=待推送,1=已推送") @ExcelAttribute(name = "档案推送瓜子状态", isDataId = true, readConverterExp = "0=待推送,1=已推送")
@ExcelProperty("档案推送瓜子状态") @ExcelProperty("档案推送瓜子状态")
private String empPushStatus; private String empPushStatus;
......
...@@ -491,6 +491,10 @@ public class TGzEmpInfoServiceImpl extends ServiceImpl<TGzEmpInfoMapper, TGzEmpI ...@@ -491,6 +491,10 @@ public class TGzEmpInfoServiceImpl extends ServiceImpl<TGzEmpInfoMapper, TGzEmpI
YifuUser user = getNewYifuUser(); YifuUser user = getNewYifuUser();
TGzEmpInfo tGzEmpInfo = tGzEmpInfoVo; TGzEmpInfo tGzEmpInfo = tGzEmpInfoVo;
Integer offerId = tGzEmpInfoVo.getOfferId(); Integer offerId = tGzEmpInfoVo.getOfferId();
// 1.7.14: 档案状态必传
if (Common.isEmpty(tGzEmpInfoVo.getEmpStatus())) {
return R.failed("档案状态必传!");
}
if (Common.isEmpty(offerId)) { if (Common.isEmpty(offerId)) {
return R.failed("请传参流程ID!"); return R.failed("请传参流程ID!");
} else { } else {
...@@ -504,30 +508,33 @@ public class TGzEmpInfoServiceImpl extends ServiceImpl<TGzEmpInfoMapper, TGzEmpI ...@@ -504,30 +508,33 @@ public class TGzEmpInfoServiceImpl extends ServiceImpl<TGzEmpInfoMapper, TGzEmpI
// 测试 郭彤:这个提示改下吧,没必要吧ID还有状态枚举值列出来 2025-6-30 18:09:05 // 测试 郭彤:这个提示改下吧,没必要吧ID还有状态枚举值列出来 2025-6-30 18:09:05
// return R.failed("瓜子Offer状态不对("+gzOfferInfo.getOfferStatus()+"),不可编辑,Offer的ID="+ offerId) // return R.failed("瓜子Offer状态不对("+gzOfferInfo.getOfferStatus()+"),不可编辑,Offer的ID="+ offerId)
} }
gzOfferInfo.setOfferStatus("12"); // 1.7.14: 档案状态是提交,才更新offer状态
gzOfferInfoMapper.updateById(gzOfferInfo); if(CommonConstants.ZERO_STRING.equals(tGzEmpInfoVo.getEmpStatus())){
gzOfferInfo.setOfferStatus("12");
// 记录状态变更的offer操作日志 记录来源: 6:(系统触发)C端采集提交 gzOfferInfoMapper.updateById(gzOfferInfo);
this.saveOfferStatusRecord(gzOfferInfo.getId(),CommonConstants.SIX_STRING,
CommonConstants.NINE_STRING,gzOfferInfo.getOfferStatus(),"0","系统触发"); // 记录状态变更的offer操作日志 记录来源: 6:(系统触发)C端采集提交
this.saveOfferStatusRecord(gzOfferInfo.getId(),CommonConstants.SIX_STRING,
// 1.7.13: 同一个流程ID推送过12:候选人信息审核,之前没推送过这个状态的,才触发推送 CommonConstants.NINE_STRING,gzOfferInfo.getOfferStatus(),"0","系统触发");
TGzPushEntry findFailInfo = tGzPushEntryService.getOne(Wrappers.<TGzPushEntry>query().lambda()
.eq(TGzPushEntry::getBizId, gzOfferInfo.getBizId()) // 1.7.13: 同一个流程ID推送过12:候选人信息审核,之前没推送过这个状态的,才触发推送
.eq(TGzPushEntry::getTaskType, "12") TGzPushEntry findFailInfo = tGzPushEntryService.getOne(Wrappers.<TGzPushEntry>query().lambda()
.eq(TGzPushEntry::getDelFlag, CommonConstants.ZERO_STRING) .eq(TGzPushEntry::getBizId, gzOfferInfo.getBizId())
.last(CommonConstants.LAST_ONE_SQL)); .eq(TGzPushEntry::getTaskType, "12")
if (Common.isEmpty(findFailInfo)) { .eq(TGzPushEntry::getDelFlag, CommonConstants.ZERO_STRING)
// 推送状态给瓜子 .last(CommonConstants.LAST_ONE_SQL));
if(!CommonConstants.ZERO_STRING.equals(gzOfferInfo.getBizId())){ if (Common.isEmpty(findFailInfo)) {
TGzPushEntry tGzPushEntry = new TGzPushEntry(); // 推送状态给瓜子
tGzPushEntry.setCreateBy(user.getId()); if(!CommonConstants.ZERO_STRING.equals(gzOfferInfo.getBizId())){
tGzPushEntry.setCreateName(user.getNickname()); TGzPushEntry tGzPushEntry = new TGzPushEntry();
tGzPushEntry.setBizId(gzOfferInfo.getBizId()); tGzPushEntry.setCreateBy(user.getId());
tGzPushEntry.setTaskType("12"); tGzPushEntry.setCreateName(user.getNickname());
tGzPushEntry.setName(gzOfferInfo.getName()); tGzPushEntry.setBizId(gzOfferInfo.getBizId());
tGzPushEntry.setNationalId(gzOfferInfo.getNationalId()); tGzPushEntry.setTaskType("12");
tGzPushEntryService.addPushEntry(tGzPushEntry); tGzPushEntry.setName(gzOfferInfo.getName());
tGzPushEntry.setNationalId(gzOfferInfo.getNationalId());
tGzPushEntryService.addPushEntry(tGzPushEntry);
}
} }
} }
} }
...@@ -536,12 +543,19 @@ public class TGzEmpInfoServiceImpl extends ServiceImpl<TGzEmpInfoMapper, TGzEmpI ...@@ -536,12 +543,19 @@ public class TGzEmpInfoServiceImpl extends ServiceImpl<TGzEmpInfoMapper, TGzEmpI
if (Common.isEmpty(gzEmpId)) { if (Common.isEmpty(gzEmpId)) {
tGzEmpInfo.setCreateBy(user.getId()); tGzEmpInfo.setCreateBy(user.getId());
tGzEmpInfo.setCreateName(user.getNickname()); tGzEmpInfo.setCreateName(user.getNickname());
tGzEmpInfo.setCreateTime(LocalDateTime.now()); // 1.7.14: 档案状态是提交,才存 创建时间(提交时间)
if(CommonConstants.ZERO_STRING.equals(tGzEmpInfoVo.getEmpStatus())){
tGzEmpInfo.setCreateTime(LocalDateTime.now());
}
this.save(tGzEmpInfo); this.save(tGzEmpInfo);
gzEmpId = tGzEmpInfo.getId(); gzEmpId = tGzEmpInfo.getId();
} else { } else {
tGzEmpInfo.setUpdateBy(user.getId()); tGzEmpInfo.setUpdateBy(user.getId());
tGzEmpInfo.setUpdateTime(LocalDateTime.now()); tGzEmpInfo.setUpdateTime(LocalDateTime.now());
// 1.7.14: 档案状态是暂存,清除 创建时间(提交时间)
if(CommonConstants.ONE_STRING.equals(tGzEmpInfoVo.getEmpStatus())){
tGzEmpInfo.setCreateTime(null);
}
this.updateById(tGzEmpInfo); this.updateById(tGzEmpInfo);
} }
// 获取瓜子档案附属信息:先删除后增加: // 获取瓜子档案附属信息:先删除后增加:
...@@ -843,6 +857,22 @@ public class TGzEmpInfoServiceImpl extends ServiceImpl<TGzEmpInfoMapper, TGzEmpI ...@@ -843,6 +857,22 @@ public class TGzEmpInfoServiceImpl extends ServiceImpl<TGzEmpInfoMapper, TGzEmpI
if (Common.isEmpty(attaEmp.getAttaName())) { if (Common.isEmpty(attaEmp.getAttaName())) {
attaEmp.setAttaName(CommonConstants.CENTER_SPLIT_LINE_STRING); attaEmp.setAttaName(CommonConstants.CENTER_SPLIT_LINE_STRING);
} }
// 1.7.14: 附件类型映射
// 41(瓜子申明签名)42(瓜子确认签名)NID_A(证件正面) NID_B(证件反面)
// 附件类型转化:声明签字:21;确认签字:22; 9身份证;24 身份证国徽
if("41".equals(atta.getRelationType())){
atta.setRelationType("21");
}
if("42".equals(atta.getRelationType())){
atta.setRelationType("22");
}
if("NID_A".equals(atta.getRelationType())){
atta.setRelationType("9");
}
if("NID_B".equals(atta.getRelationType())){
atta.setRelationType("24");
}
attaEmp.setDomainId(empId); attaEmp.setDomainId(empId);
attaEmp.setCreateBy(user.getId()); attaEmp.setCreateBy(user.getId());
attaEmp.setCreateName(user.getNickname()); attaEmp.setCreateName(user.getNickname());
...@@ -1020,9 +1050,11 @@ public class TGzEmpInfoServiceImpl extends ServiceImpl<TGzEmpInfoMapper, TGzEmpI ...@@ -1020,9 +1050,11 @@ public class TGzEmpInfoServiceImpl extends ServiceImpl<TGzEmpInfoMapper, TGzEmpI
// 按gzEmpInfo实体类顺序转化: // 按gzEmpInfo实体类顺序转化:
emp.setEmpName(gzEmpInfo.getName()); emp.setEmpName(gzEmpInfo.getName());
emp.setEmpIdcard(gzEmpInfo.getNationalId()); emp.setEmpIdcard(gzEmpInfo.getNationalId());
emp.setIdProvince(gzEmpInfo.getNativePlaceAreaId()); // 1.7.14: 户籍所在地取值调整
emp.setIdCity(null); emp.setIdProvince(gzEmpInfo.getHukouProvinceAreaId());
emp.setIdTown(null); emp.setIdCity(gzEmpInfo.getHukouCityAreaId());
emp.setIdTown(gzEmpInfo.getHukouCountyAreaId());
// 民族 // 民族
emp.setEmpNational(getDictValue(dictMap, gzEmpInfo.getEthnicGrpCd(), ExcelAttributeConstants.GZ_ETHNIC_GRP_CD)); emp.setEmpNational(getDictValue(dictMap, gzEmpInfo.getEthnicGrpCd(), ExcelAttributeConstants.GZ_ETHNIC_GRP_CD));
// 婚姻状态 // 婚姻状态
...@@ -1050,10 +1082,10 @@ public class TGzEmpInfoServiceImpl extends ServiceImpl<TGzEmpInfoMapper, TGzEmpI ...@@ -1050,10 +1082,10 @@ public class TGzEmpInfoServiceImpl extends ServiceImpl<TGzEmpInfoMapper, TGzEmpI
emp.setContactAddress(gzEmpInfo.getAddress()); emp.setContactAddress(gzEmpInfo.getAddress());
// 户口性质 // 户口性质
emp.setEmpRegisType(getDictValue(dictMap, gzEmpInfo.getHukouType(), ExcelAttributeConstants.GZ_HUKOU_TYPE)); emp.setEmpRegisType(getDictValue(dictMap, gzEmpInfo.getHukouType(), ExcelAttributeConstants.GZ_HUKOU_TYPE));
// 1.7.14: 档案所在地取值调整: ”默认为“安徽省-合肥市-蜀山区”
emp.setFileProvince(gzEmpInfo.getHukouProvinceAreaId()); emp.setFileProvince(12);
emp.setFileCity(gzEmpInfo.getHukouCityAreaId()); emp.setFileCity(135);
emp.setFileTown(gzEmpInfo.getHukouCountyAreaId()); emp.setFileTown(1267);
emp.setBankName(getDictValue(dictMap, gzEmpInfo.getBankCd(), ExcelAttributeConstants.GZ_BANK)); emp.setBankName(getDictValue(dictMap, gzEmpInfo.getBankCd(), ExcelAttributeConstants.GZ_BANK));
emp.setBankSubName(gzEmpInfo.getBankName()); emp.setBankSubName(gzEmpInfo.getBankName());
if (Common.isNotNull(gzEmpInfo.getAccountProvinceAreaId())) { if (Common.isNotNull(gzEmpInfo.getAccountProvinceAreaId())) {
......
...@@ -102,6 +102,7 @@ ...@@ -102,6 +102,7 @@
<result property="hukouCountyAreaId" column="hukou_county_area_id"/> <result property="hukouCountyAreaId" column="hukou_county_area_id"/>
<result property="accountProvinceAreaId" column="account_province_area_id"/> <result property="accountProvinceAreaId" column="account_province_area_id"/>
<result property="accountCityAreaId" column="account_city_area_id"/> <result property="accountCityAreaId" column="account_city_area_id"/>
<result property="empStatus" column="emp_status"/>
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
a.id, a.id,
...@@ -181,7 +182,8 @@ ...@@ -181,7 +182,8 @@
a.hukou_city_area_id, a.hukou_city_area_id,
a.hukou_county_area_id, a.hukou_county_area_id,
a.account_province_area_id, a.account_province_area_id,
a.account_city_area_id a.account_city_area_id,
a.emp_status
</sql> </sql>
<sql id="tGzEmpInfo_where"> <sql id="tGzEmpInfo_where">
<if test="tGzEmpInfo != null"> <if test="tGzEmpInfo != null">
...@@ -194,6 +196,9 @@ ...@@ -194,6 +196,9 @@
<if test="tGzEmpInfo.offerId != null "> <if test="tGzEmpInfo.offerId != null ">
AND a.offer_id = #{tGzEmpInfo.offerId} AND a.offer_id = #{tGzEmpInfo.offerId}
</if> </if>
<if test="tGzEmpInfo.empStatus != null and tGzEmpInfo.empStatus.trim() != ''">
AND a.emp_status = #{tGzEmpInfo.empStatus}
</if>
<if test="tGzEmpInfo.empPushStatus != null and tGzEmpInfo.empPushStatus.trim() != ''"> <if test="tGzEmpInfo.empPushStatus != null and tGzEmpInfo.empPushStatus.trim() != ''">
AND a.emp_push_status = #{tGzEmpInfo.empPushStatus} AND a.emp_push_status = #{tGzEmpInfo.empPushStatus}
</if> </if>
...@@ -411,7 +416,7 @@ ...@@ -411,7 +416,7 @@
a.del_flag = '0' a.del_flag = '0'
<include refid="tGzEmpInfo_where"/> <include refid="tGzEmpInfo_where"/>
</where> </where>
ORDER by a.create_time desc,a.id desc ORDER by a.emp_status,a.create_time desc,a.id desc
</select> </select>
<!--count--> <!--count-->
...@@ -431,6 +436,7 @@ ...@@ -431,6 +436,7 @@
a.id, a.id,
a.biz_id, a.biz_id,
a.offer_id, a.offer_id,
a.emp_status,
a.emp_push_status, a.emp_push_status,
a.contract_push_status, a.contract_push_status,
a.contract_atta_push_status, a.contract_atta_push_status,
...@@ -517,7 +523,7 @@ ...@@ -517,7 +523,7 @@
<include refid="tGzEmpInfo_where"/> <include refid="tGzEmpInfo_where"/>
</where> </where>
group by a.id group by a.id
ORDER by a.create_time desc,a.id desc ORDER by a.emp_status,a.create_time desc,a.id desc
<if test="tGzEmpInfo.limitStart != null"> <if test="tGzEmpInfo.limitStart != null">
limit #{tGzEmpInfo.limitStart},#{tGzEmpInfo.limitEnd} limit #{tGzEmpInfo.limitStart},#{tGzEmpInfo.limitEnd}
</if> </if>
......
...@@ -99,7 +99,7 @@ public class UpmsDaprUtils { ...@@ -99,7 +99,7 @@ public class UpmsDaprUtils {
} }
/** /**
* @Author fxj * @Author fxj
* @Description 通过用户ID 获取 在用的MVP系统的用户 * @Description 通过用户ID 获取 在用的MVP系统的用户
* @Date 17:24 2025/3/12 * @Date 17:24 2025/3/12
**/ **/
public R<SysUsersVo> getUserVoByUserIds(String userIds) { public R<SysUsersVo> getUserVoByUserIds(String userIds) {
...@@ -109,6 +109,21 @@ public class UpmsDaprUtils { ...@@ -109,6 +109,21 @@ public class UpmsDaprUtils {
} }
return allUserVoR; return allUserVoR;
} }
/**
* @Author hgw
* @Description 通过用户ID 获取 在用的MVP系统的用户
* @Date 2025-8-1 14:51:03
**/
public R<SysUsersVo> getInUseUserByIds(String userIds) {
R<SysUsersVo> allUserVoR = HttpDaprUtil.invokeMethodPost(daprUpmsProperties.getAppUrl(),daprUpmsProperties.getAppId()
,"/user/inner/getInUseUserByIds", userIds, SysUsersVo.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(allUserVoR)){
return R.failed("获取指定用户IDS对应在用的用户信息失败!");
}
return allUserVoR;
}
public R<SysUser> getSimpleUser(String userId) { public R<SysUser> getSimpleUser(String userId) {
R<SysUser> userR = HttpDaprUtil.invokeMethodPost(daprUpmsProperties.getAppUrl(),daprUpmsProperties.getAppId(),"/user/inner/getSimpleUser",userId, SysUser.class, SecurityConstants.FROM_IN); R<SysUser> userR = HttpDaprUtil.invokeMethodPost(daprUpmsProperties.getAppUrl(),daprUpmsProperties.getAppId(),"/user/inner/getSimpleUser",userId, SysUser.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(userR)){ if (Common.isEmpty(userR)){
......
...@@ -468,6 +468,10 @@ public class InsurancesConstants { ...@@ -468,6 +468,10 @@ public class InsurancesConstants {
* 商险已结算,无法登记保单保费 * 商险已结算,无法登记保单保费
*/ */
public static final String SETTLE_HANDLE_THREE_NOT_REGISTERED = "商险已结算,无法登记保单保费"; public static final String SETTLE_HANDLE_THREE_NOT_REGISTERED = "商险已结算,无法登记保单保费";
/**
* 商险已支出,无法登记保单保费
*/
public static final String PAY_SETTLE_NOT_REGISTERED = "商险已支出,无法登记保单保费";
/** /**
* 保单号不存在或已过期 * 保单号不存在或已过期
*/ */
......
package com.yifu.cloud.plus.v1.yifu.insurances.vo;
import lombok.Data;
import java.io.Serializable;
/**
* @Description: 查询EKP中的状态,拦截批量保单号保费
* @Author: hgw
* @Date: 2025/8/1 18:02
* @return:
**/
@Data
public class EkpSettleStatusVo implements Serializable {
/**
* 结算状态
**/
private String settleStatus;
/**
* 支出状态
**/
private String payStatus;
}
...@@ -47,7 +47,7 @@ public interface EkpSettleMapper { ...@@ -47,7 +47,7 @@ public interface EkpSettleMapper {
* @param id * @param id
* @return {@link SettleVo} * @return {@link SettleVo}
*/ */
String getSettleStatusFromEkpInsuranceDetail(String id); EkpSettleStatusVo getSettleStatusFromEkpInsuranceDetail(String id);
List<EkpInsuranceViewVo> selectSettleStatusBySettleNo(@Param("settleNo") String settleNo, @Param("payFlag") String payFlag); List<EkpInsuranceViewVo> selectSettleStatusBySettleNo(@Param("settleNo") String settleNo, @Param("payFlag") String payFlag);
......
...@@ -36,7 +36,7 @@ public interface EkpSettleService extends IService<TInsuranceTypeRate> { ...@@ -36,7 +36,7 @@ public interface EkpSettleService extends IService<TInsuranceTypeRate> {
* @param id 新增类 * @param id 新增类
* @return {@link R} * @return {@link R}
*/ */
String getSettleStatusFromEkpInsuranceDetail(String id); EkpSettleStatusVo getSettleStatusFromEkpInsuranceDetail(String id);
/** /**
* 根据结算单编号查询商险视图信息 * 根据结算单编号查询商险视图信息
......
...@@ -45,7 +45,7 @@ public class EkpSettleServiceImpl implements EkpSettleService { ...@@ -45,7 +45,7 @@ public class EkpSettleServiceImpl implements EkpSettleService {
} }
@Override @Override
public String getSettleStatusFromEkpInsuranceDetail(String id) { public EkpSettleStatusVo getSettleStatusFromEkpInsuranceDetail(String id) {
return ekpSettleMapper.getSettleStatusFromEkpInsuranceDetail(id); return ekpSettleMapper.getSettleStatusFromEkpInsuranceDetail(id);
} }
......
...@@ -3863,7 +3863,8 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap ...@@ -3863,7 +3863,8 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
InsuranceRegisterParam param; InsuranceRegisterParam param;
SettleVo settleVo; SettleVo settleVo;
List<TInsuranceEkp> ekpList; List<TInsuranceEkp> ekpList;
String status; // EKP 结算状态、支出状态
EkpSettleStatusVo settleStatus;
for (int i = 0; i < distinctList.size(); i++) { for (int i = 0; i < distinctList.size(); i++) {
param = distinctList.get(i); param = distinctList.get(i);
param.setFlag(CommonConstants.ONE_STRING); param.setFlag(CommonConstants.ONE_STRING);
...@@ -4052,15 +4053,22 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap ...@@ -4052,15 +4053,22 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
if (StringUtils.isNotBlank(detail.getDefaultSettleId())){ if (StringUtils.isNotBlank(detail.getDefaultSettleId())){
settle = tInsuranceSettleService.getById(detail.getDefaultSettleId()); settle = tInsuranceSettleService.getById(detail.getDefaultSettleId());
if (Optional.ofNullable(settle).isPresent()){ if (Optional.ofNullable(settle).isPresent()){
status = getSettleStatusFromEkpInsuranceDetail(detail.getId(), detail.getDefaultSettleId()); settleStatus = getSettleStatusFromEkpInsuranceDetail(detail.getId(), detail.getDefaultSettleId());
if(null != status){ if(null != settleStatus){
//保费更新或者保单号发票号更新 if(Common.isNotNull(settleStatus.getSettleStatus())) {
if (InsurancesConstants.SETTLE_TWO.equals(status)) { //保费更新或者保单号发票号更新
param.setErrorMessage(InsurancesConstants.SETTLE_HANDLE_THREE_NOT_REGISTERED); if (InsurancesConstants.SETTLE_TWO.equals(settleStatus.getSettleStatus())) {
continue; param.setErrorMessage(InsurancesConstants.SETTLE_HANDLE_THREE_NOT_REGISTERED);
continue;
}
if (InsurancesConstants.SETTLE_ONE.equals(settleStatus.getSettleStatus())) {
param.setErrorMessage(InsurancesConstants.SETTLE_HANDLE_TWO_NOT_REGISTERED);
continue;
}
} }
if (InsurancesConstants.SETTLE_ONE.equals(status)) { // 商险已支出,无法登记保单保费
param.setErrorMessage(InsurancesConstants.SETTLE_HANDLE_TWO_NOT_REGISTERED); if(Common.isNotNull(settleStatus.getPayStatus()) && InsurancesConstants.SETTLE_TWO.equals(settleStatus.getPayStatus())) {
param.setErrorMessage(InsurancesConstants.PAY_SETTLE_NOT_REGISTERED);
continue; continue;
} }
} }
...@@ -7630,7 +7638,7 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap ...@@ -7630,7 +7638,7 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
* @param * @param
* @return {@link String} * @return {@link String}
*/ */
public String getSettleStatusFromEkpInsuranceDetail(String detailId,String settleId){ public EkpSettleStatusVo getSettleStatusFromEkpInsuranceDetail(String detailId,String settleId){
String id = detailId+CommonConstants.DOWN_LINE_STRING+settleId; String id = detailId+CommonConstants.DOWN_LINE_STRING+settleId;
//获取ekp结算信息 //获取ekp结算信息
return ekpSettleService.getSettleStatusFromEkpInsuranceDetail(id); return ekpSettleService.getSettleStatusFromEkpInsuranceDetail(id);
......
...@@ -61,9 +61,9 @@ ...@@ -61,9 +61,9 @@
group by fd_3b0a5743acab7e group by fd_3b0a5743acab7e
</select> </select>
<select id="getSettleStatusFromEkpInsuranceDetail" resultType="java.lang.String"> <select id="getSettleStatusFromEkpInsuranceDetail" resultType="com.yifu.cloud.plus.v1.yifu.insurances.vo.EkpSettleStatusVo">
select select
fd_3adfe6ec6a8cbe fd_3adfe6ec6a8cbe settleStatus,fd_3adfe6eda67236 payStatus
from from
ekp_insurances_info ekp_insurances_info
where where
......
...@@ -48,6 +48,7 @@ public interface TSalaryEmployeeMapper extends BaseMapper<TSalaryEmployee> { ...@@ -48,6 +48,7 @@ public interface TSalaryEmployeeMapper extends BaseMapper<TSalaryEmployee> {
List<TSalaryEmployeeExportVo> noPageDiy( @Param("tSalaryEmployee") TSalaryEmployeeSearchVo searchVo, @Param("idList")List<String> idList); List<TSalaryEmployeeExportVo> noPageDiy( @Param("tSalaryEmployee") TSalaryEmployeeSearchVo searchVo, @Param("idList")List<String> idList);
List<TSalaryEmployee> getListByIdCard(@Param("idCardList") List<String> idCardList); List<TSalaryEmployee> getListByIdCard(@Param("idCardList") List<String> idCardList);
List<TSalaryEmployee> getListByPhone(@Param("phoneList") List<String> phoneList);
TSalaryEmployee getByEmpIdCard(@Param("empIdCard") String empIdCard); TSalaryEmployee getByEmpIdCard(@Param("empIdCard") String empIdCard);
......
...@@ -613,7 +613,8 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe ...@@ -613,7 +613,8 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe
if (a != null && a.getData() != null) { if (a != null && a.getData() != null) {
checkMobile = a.getData(); checkMobile = a.getData();
if (checkMobile != null && Common.isNotNull(checkMobile.getStatus())) { if (checkMobile != null && Common.isNotNull(checkMobile.getStatus())) {
if (!CommonConstants.ONE_STRING.equals(checkMobile.getStatus())) { if (!CommonConstants.ONE_STRING.equals(checkMobile.getStatus())
&& !CommonConstants.FOUR_STRING.equals(checkMobile.getStatus())) {
return pre + checkMobile.getMessage(); return pre + checkMobile.getMessage();
} }
} else { } else {
...@@ -711,28 +712,112 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe ...@@ -711,28 +712,112 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe
/// 个性化校验逻辑 /// 个性化校验逻辑
TSalaryEmployeeUpdateVo excel; TSalaryEmployeeUpdateVo excel;
List<String> idCardList = new ArrayList<>(); List<String> idCardList = new ArrayList<>();
// 查重,查非自己的手机号是否存在
List<String> phoneList = new ArrayList<>();
// 查本表重
Map<String, Integer> phoneMap = new HashMap<>();
// 本表重复的手机号,不允许导入该行
Map<String, Integer> phoneRepeatMap = new HashMap<>();
Integer phoneCount;
TCheckBankNo checkBankNo;
List<TCheckBankNo> bankList = new ArrayList<>();
// 执行数据插入操作 组装 // 执行数据插入操作 组装
for (TSalaryEmployeeUpdateVo vo : excelVOList) { for (TSalaryEmployeeUpdateVo vo : excelVOList) {
idCardList.add(vo.getEmpIdcard()); idCardList.add(vo.getEmpIdcard());
if (Common.isNotNull(vo.getEmpPhone())) {
phoneCount = phoneMap.get(vo.getEmpPhone());
if (phoneCount == null) {
phoneMap.put(vo.getEmpPhone(), CommonConstants.ONE_INT);
phoneList.add(vo.getEmpPhone());
} else {
phoneRepeatMap.put(vo.getEmpPhone(), CommonConstants.ONE_INT);
}
}
if (Common.isNotNull(vo.getBankNo()) && Common.isNotNull(vo.getEmpName())) {
checkBankNo = new TCheckBankNo();
checkBankNo.setName(vo.getEmpName());
checkBankNo.setBankNo(vo.getBankNo());
bankList.add(checkBankNo);
}
} }
List<TSalaryEmployee> empList = baseMapper.getListByIdCard(idCardList); List<TSalaryEmployee> empList = baseMapper.getListByIdCard(idCardList);
// 人员Map // 人员Map
Map<String, TSalaryEmployee> empMap = new HashMap<>(); Map<String, TSalaryEmployee> empMap = new HashMap<>();
for (TSalaryEmployee e : empList) { for (TSalaryEmployee e : empList) {
empMap.put(e.getEmpIdcard(), e); empMap.put(e.getEmpIdcard(), e);
} }
List<TSalaryEmployee> empPhoneList = baseMapper.getListByPhone(phoneList);
// 人员手机号Map
Map<String, List<String>> empPhoneMap = new HashMap<>();
List<String> phoneIdCardList;
for (TSalaryEmployee e : empPhoneList) {
phoneIdCardList = empPhoneMap.get(e.getEmpPhone());
if (phoneIdCardList == null) {
phoneIdCardList = new ArrayList<>();
}
phoneIdCardList.add(e.getEmpIdcard());
empPhoneMap.put(e.getEmpPhone(), phoneIdCardList);
}
TSalaryEmployee emp; TSalaryEmployee emp;
// 开户行省市的区域暂存 // 开户行省市的区域暂存
String areaStr; String areaStr;
boolean curTaxMonth; boolean curTaxMonth;
Map<String, String> bankMap = tBankSetService.getBankMap(null); Map<String, String> bankMap = tBankSetService.getBankMap(null);
ExcelUtil<TSalaryEmployee> util = new ExcelUtil<>(TSalaryEmployee.class); ExcelUtil<TSalaryEmployee> util = new ExcelUtil<>(TSalaryEmployee.class);
TSalaryEmployee old =null; TSalaryEmployee old;
String idCard;
boolean phoneFlag;
// 校验卡号所用的
Map<String, Boolean> bankCheckMap = new HashMap<>();
if (!bankList.isEmpty()) {
R<CheckBatchVo> checkListR = HttpDaprUtil.invokeMethodPost(checkProperties.getAppUrl(), checkProperties.getAppId()
, "/tcheckbankno/inner/checkBankNoBatch", bankList, CheckBatchVo.class, SecurityConstants.FROM_IN);
if (checkListR != null && checkListR.getData() != null) {
bankCheckMap = checkListR.getData().getCheckMap();
}
}
Map<String, Boolean> phoneCheckMap = new HashMap<>();
if (!phoneList.isEmpty()) {
R<CheckBatchVo> phoneR = HttpDaprUtil.invokeMethodPost(checkProperties.getAppUrl(), checkProperties.getAppId()
, "/tcheckmobile/inner/checkMobileBatch", phoneList, CheckBatchVo.class, SecurityConstants.FROM_IN);
if (phoneR != null && phoneR.getData() != null) {
phoneCheckMap = phoneR.getData().getCheckMap();
}
}
for (int i = 0; i < excelVOList.size(); i++) { for (int i = 0; i < excelVOList.size(); i++) {
excel = excelVOList.get(i); excel = excelVOList.get(i);
if (excel != null) { if (excel != null) {
if (Common.isNotNull(excel.getEmpIdcard())) { idCard = excel.getEmpIdcard();
emp = empMap.get(excel.getEmpIdcard()); if (Common.isNotNull(idCard)) {
if (Common.isNotNull(excel.getEmpPhone())) {
// 手机号本表重复,该条直接不给导入
if (phoneRepeatMap.get(excel.getEmpPhone()) != null) {
errorMessageList.add(new ErrorMessage((i), "该手机号在本次导入表中有重复,请检查并修改后重新导入"));
continue;
}
// 手机号与系统里重复
phoneIdCardList = empPhoneMap.get(excel.getEmpPhone());
if (phoneIdCardList != null) {
phoneFlag = false;
for (String phoneIdCard : phoneIdCardList) {
if (!idCard.equals(phoneIdCard)) {
phoneFlag = true;
break;
}
}
if (phoneFlag) {
errorMessageList.add(new ErrorMessage((i), "手机号已被占用,请更改手机号后重试"));
continue;
}
}
}
emp = empMap.get(idCard);
old = new TSalaryEmployee(); old = new TSalaryEmployee();
if (Common.isNotNull(emp) && Common.isNotNull(emp.getId())) { if (Common.isNotNull(emp) && Common.isNotNull(emp.getId())) {
BeanUtil.copyProperties(emp,old); BeanUtil.copyProperties(emp,old);
...@@ -781,9 +866,17 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe ...@@ -781,9 +866,17 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe
emp.setEmpName(excel.getEmpName()); emp.setEmpName(excel.getEmpName());
} }
// 2024-2-4 16:05:56 hgw 银行卡需要校验 // 2024-2-4 16:05:56 hgw 银行卡需要校验
String pre = getCheckBankNo(emp, old); // 改为批量
if (pre != null) { if (Common.isNotNull(emp.getBankNo()) && !emp.getBankNo().equals(old.getBankNo())
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), pre)); && bankCheckMap.get(emp.getBankNo()) != null
&& Boolean.FALSE.equals(bankCheckMap.get(emp.getBankNo()))) {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), "【姓名与卡号】校验结果:不匹配。请更改卡号或姓名后重试!"));
continue;
}
if (Common.isNotNull(emp.getEmpPhone()) && phoneCheckMap.get(emp.getEmpPhone()) != null
&& Boolean.FALSE.equals(phoneCheckMap.get(emp.getEmpPhone()))) {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), "手机号校验不通过,请更改手机号后重试!"));
continue; continue;
} }
// 变更日志 fxj 2023-10-24 // 变更日志 fxj 2023-10-24
...@@ -902,15 +995,68 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe ...@@ -902,15 +995,68 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe
List<String> idCardList = new ArrayList<>(); List<String> idCardList = new ArrayList<>();
// 执行数据插入操作 组装 // 执行数据插入操作 组装
List<TSalaryEmployee> excelVOList = vo.getEmpList(); List<TSalaryEmployee> excelVOList = vo.getEmpList();
// 查重,查非自己的手机号是否存在
List<String> phoneList = new ArrayList<>();
// 查本表重
Map<String, Integer> phoneMap = new HashMap<>();
// 本表重复的手机号,不允许导入该行
Map<String, Integer> phoneRepeatMap = new HashMap<>();
Integer phoneCount;
List<TCheckBankNo> bankList = new ArrayList<>();
TCheckBankNo checkBankNo;
List<TCheckIdCard> checkList = new ArrayList<>();
YifuUser user = SecurityUtils.getUser();
if (user == null || Common.isEmpty(user.getId())) {
return R.failed("请登录!");
}
TCheckIdCard idCardCheck;
for (TSalaryEmployee emp : excelVOList) { for (TSalaryEmployee emp : excelVOList) {
idCardList.add(emp.getEmpIdcard()); if (Common.isNotNull(emp.getEmpIdcard())) {
idCardCheck = new TCheckIdCard();
idCardCheck.setIdCard(emp.getEmpIdcard());
idCardCheck.setName(emp.getEmpName());
idCardCheck.setCreateUser(user.getId());
idCardCheck.setReason(user.getNickname());
checkList.add(idCardCheck);
idCardList.add(emp.getEmpIdcard());
}
if (Common.isNotNull(emp.getEmpPhone())) {
phoneCount = phoneMap.get(emp.getEmpPhone());
if (phoneCount == null) {
phoneMap.put(emp.getEmpPhone(), CommonConstants.ONE_INT);
phoneList.add(emp.getEmpPhone());
} else {
phoneRepeatMap.put(emp.getEmpPhone(), CommonConstants.ONE_INT);
}
}
if (Common.isNotNull(emp.getBankNo()) && Common.isNotNull(emp.getEmpName())) {
checkBankNo = new TCheckBankNo();
checkBankNo.setName(emp.getEmpName());
checkBankNo.setBankNo(emp.getBankNo());
bankList.add(checkBankNo);
}
} }
List<TSalaryEmployee> empList = baseMapper.getListByIdCard(idCardList); List<TSalaryEmployee> empList = baseMapper.getListByIdCard(idCardList);
// 人员Map // 人员Map
Map<String, TSalaryEmployee> empMap = new HashMap<>(); Map<String, TSalaryEmployee> empMap = new HashMap<>();
for (TSalaryEmployee e : empList) { for (TSalaryEmployee e : empList) {
empMap.put(e.getEmpIdcard(), e); empMap.put(e.getEmpIdcard(), e);
} }
List<TSalaryEmployee> empPhoneList = baseMapper.getListByPhone(phoneList);
// 人员手机号Map
Map<String, List<String>> empPhoneMap = new HashMap<>();
List<String> phoneIdCardList;
for (TSalaryEmployee e : empPhoneList) {
phoneIdCardList = empPhoneMap.get(e.getEmpPhone());
if (phoneIdCardList == null) {
phoneIdCardList = new ArrayList<>();
}
phoneIdCardList.add(e.getEmpIdcard());
empPhoneMap.put(e.getEmpPhone(), phoneIdCardList);
}
TSalaryEmployee emp; TSalaryEmployee emp;
// 开户行省市的区域暂存 // 开户行省市的区域暂存
String areaProvince; String areaProvince;
...@@ -926,14 +1072,75 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe ...@@ -926,14 +1072,75 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe
// 校验卡号所用的 // 校验卡号所用的
Map<String, Boolean> bankCheckMap = new HashMap<>(); Map<String, Boolean> bankCheckMap = new HashMap<>();
List<TCheckBankNo> bankList = new ArrayList<>(); Map<String, Boolean> phoneCheckMap = new HashMap<>();
TCheckBankNo checkBankNo; Map<String, Boolean> idCardMap = new HashMap<>();
if (!phoneList.isEmpty()) {
R<CheckBatchVo> phoneR = HttpDaprUtil.invokeMethodPost(checkProperties.getAppUrl(), checkProperties.getAppId()
, "/tcheckmobile/inner/checkMobileBatch", phoneList, CheckBatchVo.class, SecurityConstants.FROM_IN);
if (phoneR != null && phoneR.getData() != null) {
phoneCheckMap = phoneR.getData().getCheckMap();
}
}
if (!bankList.isEmpty()) {
R<CheckBatchVo> checkListR = HttpDaprUtil.invokeMethodPost(checkProperties.getAppUrl(), checkProperties.getAppId()
, "/tcheckbankno/inner/checkBankNoBatch", bankList, CheckBatchVo.class, SecurityConstants.FROM_IN);
if (checkListR != null && checkListR.getData() != null) {
bankCheckMap = checkListR.getData().getCheckMap();
}
}
if (!checkList.isEmpty()) {
R<CheckBatchVo> idCardR = HttpDaprUtil.invokeMethodPost(checkProperties.getAppUrl(), checkProperties.getAppId()
, "/tcheckidcard/inner/checkIdCardBatch", checkList, CheckBatchVo.class, SecurityConstants.FROM_IN);
if (idCardR != null && idCardR.getData() != null) {
idCardMap = idCardR.getData().getCheckMap();
}
}
int idCardFlag = 0;
if (idCardMap != null && !idCardMap.isEmpty()) {
if (idCardMap.get("全部正确") != null) {
idCardFlag = 1;
}
if (idCardMap.get("全部错误") != null) {
idCardFlag = 2;
}
}
String idCard;
boolean phoneFlag;
Boolean resultB;
for (int i = 0; i < excelVOList.size(); i++) { for (int i = 0; i < excelVOList.size(); i++) {
excel = excelVOList.get(i); excel = excelVOList.get(i);
if (excel != null) { if (excel != null) {
if (Common.isNotNull(excel.getEmpIdcard())) { idCard = excel.getEmpIdcard();
emp = empMap.get(excel.getEmpIdcard()); if (Common.isNotNull(idCard)) {
if (Common.isNotNull(excel.getEmpPhone())) {
// 手机号本表重复,该条直接不给导入
if (phoneRepeatMap.get(excel.getEmpPhone()) != null) {
errorMessageList.add(new ErrorMessage((i), "该手机号在本次导入表中有重复,请检查并修改后重新导入"));
continue;
}
// 手机号与系统里重复
phoneIdCardList = empPhoneMap.get(excel.getEmpPhone());
if (phoneIdCardList != null) {
phoneFlag = false;
for (String phoneIdCard : phoneIdCardList) {
if (!idCard.equals(phoneIdCard)) {
phoneFlag = true;
break;
}
}
if (phoneFlag) {
errorMessageList.add(new ErrorMessage((i), "手机号已被占用,请更改手机号后重试"));
continue;
}
}
if (phoneCheckMap.get(excel.getEmpPhone()) != null
&& Boolean.FALSE.equals(phoneCheckMap.get(excel.getEmpPhone()))) {
errorMessageList.add(new ErrorMessage((i), "手机号校验不通过,请更改手机号后重试!"));
continue;
}
}
emp = empMap.get(idCard);
if (Common.isNotNull(emp)) { if (Common.isNotNull(emp)) {
if (canUpdate) { if (canUpdate) {
curTaxMonth = false; curTaxMonth = false;
...@@ -999,14 +1206,15 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe ...@@ -999,14 +1206,15 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe
emp.setDeptNo(dept.getDepartNo()); emp.setDeptNo(dept.getDepartNo());
emp.setInvoiceTitle(dept.getInvoiceTitleSalary()); emp.setInvoiceTitle(dept.getInvoiceTitleSalary());
if (Common.isNotNull(excel.getBankNo())) { if (Common.isNotNull(excel.getBankNo()) && bankCheckMap.get(excel.getBankNo()) != null
checkBankNo = new TCheckBankNo(); && Boolean.FALSE.equals(bankCheckMap.get(excel.getBankNo()))) {
emp.setLineNums((i )); errorMessageList.add(new ErrorMessage((i ), "【姓名与卡号】校验结果:不匹配。请更改卡号或姓名后重试!"));
checkBankNo.setName(excel.getEmpName()); continue;
checkBankNo.setBankNo(excel.getBankNo());
bankList.add(checkBankNo);
} }
// 处理省市
doSetIntegerAreaByEmp(emp);
emp.setIssueStatus(CommonConstants.ZERO_INT);
emp.setLineNums(null);
updateList.add(emp); updateList.add(emp);
if (curTaxMonth) { if (curTaxMonth) {
errorMessageList.add(new ErrorMessage((i ), SalaryConstants.CUR_TAX_INFO)); errorMessageList.add(new ErrorMessage((i ), SalaryConstants.CUR_TAX_INFO));
...@@ -1018,7 +1226,7 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe ...@@ -1018,7 +1226,7 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe
} }
} else { } else {
// 新增人员 // 新增人员
if (Common.isEmpty(excel.getEmpName()) || Common.isEmpty(excel.getEmpIdcard()) if (Common.isEmpty(excel.getEmpName()) || Common.isEmpty(idCard)
|| Common.isEmpty(excel.getEmpPhone()) || Common.isEmpty(excel.getBankName()) || Common.isEmpty(excel.getEmpPhone()) || Common.isEmpty(excel.getBankName())
|| Common.isEmpty(excel.getBankNo()) || Common.isEmpty(excel.getBankProvince()) || Common.isEmpty(excel.getBankNo()) || Common.isEmpty(excel.getBankProvince())
|| Common.isEmpty(excel.getBankCity()) || Common.isEmpty(excel.getTaxMonth())) { || Common.isEmpty(excel.getBankCity()) || Common.isEmpty(excel.getTaxMonth())) {
...@@ -1040,43 +1248,57 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe ...@@ -1040,43 +1248,57 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe
errorMessageList.add(new ErrorMessage((i ), SalaryConstants.BANK_NAME_ERROR)); errorMessageList.add(new ErrorMessage((i ), SalaryConstants.BANK_NAME_ERROR));
continue; continue;
} }
String pre = this.checkNewEmpBankAndPhone(excel, true); if (idCardFlag == 0) {
if (pre != null) { if (Common.isNotNull(idCard)) {
errorMessageList.add(new ErrorMessage((i ), pre)); resultB = idCardMap.get(idCard + CommonConstants.DOWN_LINE_STRING + excel.getEmpName());
continue; if (resultB != null) {
} else { if (Boolean.FALSE.equals(resultB)) {
areaProvince = ExcelUtil.getRedisAreaValue(CacheConstants.AREA_VALUE + excel.getBankProvince().trim()); errorMessageList.add(new ErrorMessage((i), "姓名&身份证号不一致,请检查并修改后重新导入"));
if (Common.isNotNull(areaProvince)) { continue;
areaCity = ExcelUtil.getRedisAreaValue(CacheConstants.AREA_VALUE + excel.getBankCity().trim() }
+ CommonConstants.DOWN_LINE_STRING + excel.getBankProvince().trim());
excel.setBankProvince(areaProvince);
if (Common.isNotNull(areaCity)) {
excel.setBankCity(areaCity);
} else { } else {
errorMessageList.add(new ErrorMessage((i ), SalaryConstants.CITY_ERROR)); errorMessageList.add(new ErrorMessage((i), "姓名&身份证号不一致,请检查并修改后重新导入!"));
continue; continue;
} }
}
} else if (idCardFlag == 2) {
errorMessageList.add(new ErrorMessage((i), "姓名&身份证号不一致,请检查并修改后重新导入!!"));
continue;
}
areaProvince = ExcelUtil.getRedisAreaValue(CacheConstants.AREA_VALUE + excel.getBankProvince().trim());
if (Common.isNotNull(areaProvince)) {
areaCity = ExcelUtil.getRedisAreaValue(CacheConstants.AREA_VALUE + excel.getBankCity().trim()
+ CommonConstants.DOWN_LINE_STRING + excel.getBankProvince().trim());
excel.setBankProvince(areaProvince);
if (Common.isNotNull(areaCity)) {
excel.setBankCity(areaCity);
} else { } else {
errorMessageList.add(new ErrorMessage((i ), SalaryConstants.PROVINCE_ERROR)); errorMessageList.add(new ErrorMessage((i ), SalaryConstants.CITY_ERROR));
continue; continue;
} }
excel.setUnitId(dept.getCustomerId()); } else {
excel.setUnitName(dept.getCustomerName()); errorMessageList.add(new ErrorMessage((i ), SalaryConstants.PROVINCE_ERROR));
excel.setUnitNo(dept.getCustomerNo()); continue;
excel.setDeptId(dept.getId()); }
excel.setDeptName(dept.getDepartName()); excel.setUnitId(dept.getCustomerId());
excel.setDeptNo(dept.getDepartNo()); excel.setUnitName(dept.getCustomerName());
excel.setInvoiceTitle(dept.getInvoiceTitleSalary()); excel.setUnitNo(dept.getCustomerNo());
if (Common.isNotNull(excel.getBankNo())) { excel.setDeptId(dept.getId());
checkBankNo = new TCheckBankNo(); excel.setDeptName(dept.getDepartName());
excel.setLineNums((i )); excel.setDeptNo(dept.getDepartNo());
checkBankNo.setName(excel.getEmpName()); excel.setInvoiceTitle(dept.getInvoiceTitleSalary());
checkBankNo.setBankNo(excel.getBankNo()); if (Common.isNotNull(excel.getBankNo()) && bankCheckMap.get(excel.getBankNo()) != null
bankList.add(checkBankNo); && Boolean.FALSE.equals(bankCheckMap.get(excel.getBankNo()))) {
} errorMessageList.add(new ErrorMessage((i ), "【姓名与卡号】校验结果:不匹配。请更改卡号或姓名后重试!!"));
saveList.add(excel); continue;
errorMessageList.add(new ErrorMessage((i ), CommonConstants.SAVE_SUCCESS));
} }
// 处理省市
doSetIntegerAreaByEmp(excel);
excel.setIssueStatus(CommonConstants.ZERO_INT);
excel.setLineNums(null);
saveList.add(excel);
errorMessageList.add(new ErrorMessage((i ), CommonConstants.SAVE_SUCCESS));
} }
} }
} else { } else {
...@@ -1087,43 +1309,13 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe ...@@ -1087,43 +1309,13 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe
} }
} }
if (bankList != null && !bankList.isEmpty()) {
R<CheckBatchVo> checkListR = HttpDaprUtil.invokeMethodPost(checkProperties.getAppUrl(), checkProperties.getAppId()
, "/tcheckbankno/inner/checkBankNoBatch", bankList, CheckBatchVo.class, SecurityConstants.FROM_IN);
if (checkListR != null && checkListR.getData() != null) {
bankCheckMap = checkListR.getData().getCheckMap();
}
}
if (!updateList.isEmpty()) { if (!updateList.isEmpty()) {
List<TSalaryEmployee> newUpdateList = new ArrayList<>(); // 校验挪到上面循环里
for (TSalaryEmployee employee : updateList) { this.updateBatchById(updateList);
if (bankCheckMap.get(employee.getBankNo()) != null && Boolean.FALSE.equals(bankCheckMap.get(employee.getBankNo()))) {
errorMessageList.add(new ErrorMessage(employee.getLineNums(), "第" + employee.getLineNums()
+ "行:-上次代发户未校验【姓名与卡号】,本次校验结果:不匹配。请去薪酬人员查询处更新卡号信息!!"));
} else {
employee.setIssueStatus(CommonConstants.ZERO_INT);
employee.setLineNums(null);
newUpdateList.add(employee);
}
}
doSetIntegerArea(newUpdateList);
this.updateBatchById(newUpdateList);
} }
if (!saveList.isEmpty()) { if (!saveList.isEmpty()) {
List<TSalaryEmployee> newSaveList = new ArrayList<>(); // 校验挪到上面循环里
for (TSalaryEmployee employee : saveList) { this.saveBatch(saveList);
if (bankCheckMap.get(employee.getBankNo()) != null && Boolean.FALSE.equals(bankCheckMap.get(employee.getBankNo()))) {
errorMessageList.add(new ErrorMessage(employee.getLineNums(), "第" + employee.getLineNums()
+ "行:-上次代发户未校验【姓名与卡号】,本次校验结果:不匹配。请去薪酬人员查询处更新卡号信息!!!"));
} else {
employee.setIssueStatus(CommonConstants.ZERO_INT);
employee.setLineNums(null);
newSaveList.add(employee);
}
}
doSetIntegerArea(newSaveList);
this.saveBatch(newSaveList);
} }
boolean isTrue = true; boolean isTrue = true;
for (ErrorMessage message : errorMessageList) { for (ErrorMessage message : errorMessageList) {
...@@ -1192,6 +1384,9 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe ...@@ -1192,6 +1384,9 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe
// 2024-2-4 16:05:56 hgw 银行卡需要校验 // 2024-2-4 16:05:56 hgw 银行卡需要校验
String pre = getCheckBankNo(tSalaryEmployee, old); String pre = getCheckBankNo(tSalaryEmployee, old);
if (pre != null) {return R.failed(pre);} if (pre != null) {return R.failed(pre);}
// 2025-8-4 10:00:21 hgw 手机号需要校验,且与卡号校验不一样,无论改不改,都校验,且校验重复性
String prePhone = getCheckPhone(tSalaryEmployee);
if (prePhone != null) {return R.failed(prePhone);}
// 变更日志 fxj 2023-10-24 // 变更日志 fxj 2023-10-24
logService.initModLog(tSalaryEmployee,old,CommonConstants.ZERO_STRING,user.getNickname(),null); logService.initModLog(tSalaryEmployee,old,CommonConstants.ZERO_STRING,user.getNickname(),null);
...@@ -1235,6 +1430,41 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe ...@@ -1235,6 +1430,41 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe
return null; return null;
} }
/**
* @Description: 单个校验手机号通用方法
* @Author: hgw
* @Date: 2025-8-4 10:18:41
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.Boolean>
**/
private String getCheckPhone(TSalaryEmployee employee) {
if (Common.isNotNull(employee.getEmpPhone()) && Common.isNotNull(employee.getEmpIdcard())) {
// 先校验重复性:
TSalaryEmployee one = baseMapper.selectOne(Wrappers.<TSalaryEmployee>query().lambda()
.ne(TSalaryEmployee::getEmpIdcard, employee.getEmpIdcard())
.eq(TSalaryEmployee::getEmpPhone, employee.getEmpPhone()).last(CommonConstants.LAST_ONE_SQL));
if (one != null) {
return "手机号已被占用,请更改手机号后重试";
}
// 调用校验服务-校验手机号
TCheckMobile checkMobile = new TCheckMobile();
checkMobile.setMobile(employee.getEmpPhone());
R<TCheckMobile> a = HttpDaprUtil.invokeMethodPost(checkProperties.getAppUrl(), checkProperties.getAppId()
, "/tcheckmobile/inner/checkOneMobile", checkMobile, TCheckMobile.class, SecurityConstants.FROM_IN);
if (a != null && a.getData() != null) {
checkMobile = a.getData();
if (checkMobile != null && Common.isNotNull(checkMobile.getStatus())) {
if (!CommonConstants.ONE_STRING.equals(checkMobile.getStatus())
&& !CommonConstants.FOUR_STRING.equals(checkMobile.getStatus())) {
return "手机号校验不通过,请更改手机号后重试";
}
} else {
return "手机号校验不通过,请更改手机号后重试!";
}
}
}
return null;
}
/** /**
* @param empIdCard 身份证 * @param empIdCard 身份证
* @Description: C端预入职获取计税月份 * @Description: C端预入职获取计税月份
......
...@@ -256,6 +256,19 @@ ...@@ -256,6 +256,19 @@
</if> </if>
</select> </select>
<!-- 按手机号查询全部人员 -->
<select id="getListByPhone" resultMap="tSalaryEmployeeMap" >
<if test="phoneList != null and phoneList.size>0">
SELECT
<include refid="Base_Column_List"/>
FROM t_salary_employee a
where a.EMP_PHONE in
<foreach item="idStr" index="index" collection="phoneList" open="(" separator="," close=")">
#{idStr}
</foreach>
</if>
</select>
<!-- 按身份证查询人员 --> <!-- 按身份证查询人员 -->
<select id="getByEmpIdCard" resultMap="tSalaryEmployeeMap" > <select id="getByEmpIdCard" resultMap="tSalaryEmployeeMap" >
SELECT SELECT
......
package com.yifu.cloud.plus.v1.yifu.social.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
* @description 派单办理失败发送企微消息
* @date 2025-8-1 11:22:43
*/
@Data
@Schema(description = "派单办理失败发送企微消息")
public class TSocialAlert {
@Schema(description = "客服ID")
private String createBy;
@Schema(description = "客服姓名")
private String createName;
@Schema(description = "社保条数")
private int socialNum;
@Schema(description = "公积金条数")
private int fundNum;
}
\ No newline at end of file
package com.yifu.cloud.plus.v1.yifu.social.config;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.google.gson.Gson;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CacheConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.SecurityConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.exception.CheckedException;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;
import java.util.Map;
import java.util.concurrent.TimeUnit;
/**
* @Author: huyc
* @Date: 2023/7/28
* @Description:
* @return: 企业微信配置——拷贝过来的
**/
@Configuration
@Data
@Slf4j
public class WxConfig {
@Value("${wx.corpid}")
private String corpid;
@Value("${wx.corpsecret}")
private String corpsecret;
@Value("${wx.agentid}")
private String agentid;
@Value("${wx.authUrl}")
private String authUrl;
@Value("${wx.domainName}")
private String domainName;
@Autowired
private RedisTemplate redisTemplate;
//未授权
private String accossTokenInvliad = "40014";
/**
* @param
* @Author: huyc
* @Date: 2023/7/28
* @Description: 获取微信accos_token
* @return: java.lang.String
**/
public String getAccessToken(RestTemplate restTemplate) {
if (Common.isNotNull(agentid)) {
return this.getToken(restTemplate, CacheConstants.WX_ACCOSS_TOKEN.concat(agentid), corpsecret);
}
return this.getToken(restTemplate, CacheConstants.WX_ACCOSS_TOKEN, corpsecret);
}
/**
* @param restTemplate
* @param tokenKey
* @param corpsecretKey
* @Description: 获取token
* @Author: huyc
* @Date: 2023/7/28 14:46
* @return: java.lang.String
**/
public String getToken(RestTemplate restTemplate, String tokenKey, String corpsecretKey) {
Object wxToken = redisTemplate.opsForValue().get(tokenKey);
if (null != wxToken) {
return String.valueOf(wxToken);
}
String requestTokenUrl = String.format(SecurityConstants.WX_GET_ACCOSS_TOKEN, corpid, corpsecretKey);
String result = restTemplate.getForObject(requestTokenUrl, String.class);
if (Common.isEmpty(result)) {
throw new CheckedException("微信授权失败");
}
String token = JSON.parseObject(result).getString("access_token");
if (Common.isEmpty(token)) {
log.info(result);
throw new CheckedException("获取微信token失败");
}
redisTemplate.opsForValue().set(tokenKey, token);
redisTemplate.expire(tokenKey, 3600, TimeUnit.SECONDS);
return token;
}
/**
* @param
* @Author: huyc
* @Date: 2023/7/28 14:43
* @Description: 移除微信accossToken
* @return: java.lang.String
**/
public void removeAccessToken() {
redisTemplate.delete(CacheConstants.WX_ACCOSS_TOKEN);
}
/**
* @param restTemplate
* @param requestMap 请求内容
* @Author: huyc
* @Date: 2023/7/28 14:48
* @Description: 发送卡片消息
* @return: java.lang.String
**/
public boolean sendTextCard(RestTemplate restTemplate, Map<String, Object> requestMap) {
// 必须加上header说明
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
Gson gson = new Gson();
log.debug("发企业微信===请求:{}", gson.toJson(requestMap));
HttpEntity<String> requestEntity = new HttpEntity<>(gson.toJson(requestMap), headers);
String accessToken = getAccessToken(restTemplate);
ResponseEntity<String> responseEntity = restTemplate.postForEntity(String.format(SecurityConstants.WX_SEND_MESSAGE, accessToken), requestEntity, String.class);
log.debug("发企业微信===返回:{}", JSON.toJSONString(responseEntity));
JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(responseEntity));
JSONObject jsonBody = jsonObject.getJSONObject("body");
if (jsonBody != null) {
String errcode = jsonBody.getString("errcode");
if (accossTokenInvliad.equals(errcode)) {
//删除accossToken缓存
removeAccessToken();
return false;
}
if (!CommonConstants.ZERO_STRING.equals(errcode)) { //非正常,则打印错误日志
log.info(jsonObject.toJSONString());
}
} else {
log.info(jsonObject.toJSONString());
}
return true;
}
}
package com.yifu.cloud.plus.v1.yifu.social.controller;
import com.yifu.cloud.plus.v1.yifu.common.security.annotation.Inner;
import com.yifu.cloud.plus.v1.yifu.social.service.TSocialWarnService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* @Author hgw
* @Date2025-8-1 11:19:32
* @Description 派单提醒相关
* @Version 1.0
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/socialWarn")
@Tag(name = "派单提醒相关")
public class TSocialWarnController {
@Resource
private TSocialWarnService socialWarnService;
@Operation(description = "每天10:00推送派单办理失败的消息")
@Inner
@PostMapping("/inner/pushSocialAlertToWx")
public void pushSocialAlertToWx() {
socialWarnService.pushSocialAlertToWx();
}
}
package com.yifu.cloud.plus.v1.yifu.social.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yifu.cloud.plus.v1.yifu.social.vo.TSocialAlert;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @author hgw
* @description 查询派单失败的数据
* @date 2025-8-1 15:23:34
*/
@Mapper
public interface TSocialWarnMapper extends BaseMapper<TSocialAlert> {
/**
* @Description: 获取派单办理失败的信息
* @Author: hgw
* @Date: 2025/8/1 15:09
* @return: java.util.List<com.yifu.cloud.plus.v1.yifu.social.vo.TSocialAlert>
**/
List<TSocialAlert> getSocialAlertToWx();
}
package com.yifu.cloud.plus.v1.yifu.social.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.social.vo.TSocialAlert;
/**
* @author hgw
* @description 查询派单办理失败的信息,推送企微
* @date 2025-8-1 15:23:20
*/
public interface TSocialWarnService extends IService<TSocialAlert> {
void pushSocialAlertToWx();
}
package com.yifu.cloud.plus.v1.yifu.social.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.SysUsersVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.SecurityConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.dapr.util.UpmsDaprUtils;
import com.yifu.cloud.plus.v1.yifu.social.config.WxConfig;
import com.yifu.cloud.plus.v1.yifu.social.mapper.TSocialWarnMapper;
import com.yifu.cloud.plus.v1.yifu.social.service.TSocialWarnService;
import com.yifu.cloud.plus.v1.yifu.social.vo.TSocialAlert;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @author hgw
* @description 派单办理失败的,推送企微
* @date 2025-8-1 15:23:16
*/
@Service
public class TSocialWarnServiceImpl extends ServiceImpl<TSocialWarnMapper, TSocialAlert> implements TSocialWarnService {
@Autowired
private UpmsDaprUtils upmsDaprUtils;
@Autowired
private WxConfig wxConfig;
/**
* @Description: 10点推送企微消息——派单办理失败
* @Author: hgw
* @Date: 2025/8/1 15:11
* @return: void
**/
@Override
public void pushSocialAlertToWx() {
try {
// TODO - 逻辑待产品梳理清楚,sql待完善
List<TSocialAlert> list = baseMapper.getSocialAlertToWx();
String userIds;
if (Common.isNotKong(list)) {
userIds = list.stream().map(TSocialAlert::getCreateBy).distinct().collect(Collectors.joining(","));
// 获取在用账号信息
Map<String, SysUser> inUseUserMap = this.getInUseUserByIds(userIds);
if (inUseUserMap != null && !inUseUserMap.isEmpty()) {
// 离职人员
StringBuilder liZhiUserName = new StringBuilder();
SysUser user;
Map<String, String> pushMap = new HashMap<>();
StringBuilder content;
for (TSocialAlert vo : list) {
user = inUseUserMap.get(vo.getCreateBy());
if (user == null || Common.isEmpty(user.getWxMessage())) {
if (Common.isNotNull(liZhiUserName)) {
liZhiUserName.append("、");
}
liZhiUserName.append(vo.getCreateName());
} else {
content = new StringBuilder("当前存在");
if (vo.getSocialNum() > 0) {
content.append("社保派单失败数量:").append(vo.getSocialNum());
if (vo.getFundNum() > 0) {
content.append(",公积金派单失败数量:").append(vo.getFundNum());
}
} else if (vo.getFundNum() > 0) {
content.append("公积金派单失败数量:").append(vo.getFundNum());
}
content.append("<br/>请及时至HRO系统进行处理。");
pushMap.put(user.getWxMessage(), content.toString());
}
}
// 离职的人,发给陈红:
if (Common.isNotNull(liZhiUserName)) {
// 陈红的 user.getWxMessage()
pushMap.put("66870fa57d72637233f81f1e0b26311e", "申请人" + liZhiUserName
+ "状态异常,当前存在社保派单失败、公积金派单失败。请及时至HRO系统进行处理。");
}
//开始推送信息到企业微信
if (Common.isNotKong(pushMap)) {
pushMap.forEach((k, v) -> {
sendMessageToWx(k, v);
});
}
}
}
} catch (Exception e) {
log.error("推送社保办理失败信息到企业微信异常", e);
}
}
/**
* @Description 获取在用账号信息
* @Date 2025-8-1 11:50:06
**/
private Map<String, SysUser> getInUseUserByIds(String userIds) {
Map<String, SysUser> userMap = null;
if (Common.isNotKong(userIds)) {
R<SysUsersVo> res = upmsDaprUtils.getInUseUserByIds(userIds);
if (Common.isNotNull(res) && Common.isNotNull(res.getData()) && Common.isNotNull(res.getData().getUserList())) {
userMap = res.getData().getUserList();
}
}
return userMap;
}
//发送企业微信待办
private void sendMessageToWx(String useruserWx, String content) {
if (Common.isEmpty(useruserWx) || Common.isEmpty(content)) {
return;
}
StringBuilder sendUser = null;
if (Common.isNotKong(useruserWx)) {
sendUser = new StringBuilder(useruserWx);
}
if (sendUser != null) {
RestTemplate restTemplate = new RestTemplate();
Map<String, Object> requestMap = new HashMap<>();
Map<String, Object> textcard = new HashMap<>();
textcard.put("title", "派单办理失败提醒");
textcard.put("url", String.format(SecurityConstants.WX_GET_MESSAGE_AUTH_URL, wxConfig.getCorpid(), wxConfig.getDomainName() + "/auth/oauth/wxLogin", "66"));
textcard.put("description", content);
requestMap.put("touser", sendUser);
requestMap.put("agentid", wxConfig.getAgentid());
requestMap.put("msgtype", "textcard");
requestMap.put("textcard", textcard);
// 必须加上header说明
if (!wxConfig.sendTextCard(restTemplate, requestMap)) {
wxConfig.sendTextCard(restTemplate, requestMap);
}
}
}
}
\ No newline at end of file
...@@ -78,4 +78,12 @@ socialFriend: ...@@ -78,4 +78,12 @@ socialFriend:
appSecret : V52dkvxtFUgIvzlfNE9G8g== appSecret : V52dkvxtFUgIvzlfNE9G8g==
#线上 #线上
#appKey : 3082B14EE2114C2D93B3A222DD925C26= #appKey : 3082B14EE2114C2D93B3A222DD925C26=
#appSecret : VmURqoxqmoKnNLXzAWynqQ== #appSecret : VmURqoxqmoKnNLXzAWynqQ==
\ No newline at end of file
#企业微信配置
wx:
corpid: wwbcb090af0dfe50e5
corpsecret: 16kqEL_eU-ARwYyqLgEBWHgxm8gXVnkzv_eJMLy9NpU
agentid: 1000010
authUrl: https://test-wx.worfu.com/yifu-auth/method/oauth/wxLogin
domainName: https://test-wx.worfu.com
\ No newline at end of file
...@@ -67,4 +67,12 @@ socialFriend: ...@@ -67,4 +67,12 @@ socialFriend:
urlDownloadEmployeeFeedback: /gateway/pts/hrss/sourceFile/downloadEmployeeFeedback urlDownloadEmployeeFeedback: /gateway/pts/hrss/sourceFile/downloadEmployeeFeedback
urlUpload : /gateway/file/upload urlUpload : /gateway/file/upload
appKey : 3082B14EE2114C2D93B3A222DD925C26= appKey : 3082B14EE2114C2D93B3A222DD925C26=
appSecret : VmURqoxqmoKnNLXzAWynqQ== appSecret : VmURqoxqmoKnNLXzAWynqQ==
\ No newline at end of file
#企业微信配置
wx:
corpid: wwbcb090af0dfe50e5
corpsecret: 16kqEL_eU-ARwYyqLgEBWHgxm8gXVnkzv_eJMLy9NpU
agentid: 1000010
authUrl: https://test-wx.worfu.com/yifu-auth/method/oauth/wxLogin
domainName: https://test-wx.worfu.com
\ No newline at end of file
...@@ -66,4 +66,12 @@ socialFriend: ...@@ -66,4 +66,12 @@ socialFriend:
urlDownloadEmployeeFeedback: /gateway/pts/hrss/sourceFile/downloadEmployeeFeedback urlDownloadEmployeeFeedback: /gateway/pts/hrss/sourceFile/downloadEmployeeFeedback
urlUpload : /gateway/file/upload urlUpload : /gateway/file/upload
appKey : 89357285571962202409230949030 appKey : 89357285571962202409230949030
appSecret : V52dkvxtFUgIvzlfNE9G8g== appSecret : V52dkvxtFUgIvzlfNE9G8g==
\ No newline at end of file
#企业微信配置
wx:
corpid: wwbcb090af0dfe50e5
corpsecret: 16kqEL_eU-ARwYyqLgEBWHgxm8gXVnkzv_eJMLy9NpU
agentid: 1000010
authUrl: https://test-wx.worfu.com/yifu-auth/method/oauth/wxLogin
domainName: https://test-wx.worfu.com
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yifu.cloud.plus.v1.yifu.social.mapper.TSocialWarnMapper">
<select id="getSocialAlertToWx" resultType="com.yifu.cloud.plus.v1.yifu.social.vo.TSocialAlert">
select
d.CREATE_BY createBy,d.CREATE_NAME createName
,sum(if(d.SOCIAL_HANDLE_STATUS in ('2','3'),1,0)) socialNum
,sum(if(d.FUND_HANDLE_STATUS = '2',1,0)) fundNum
from t_dispatch_info d
where d.CREATE_TIME >= CONCAT(DATE_SUB(CURDATE(), INTERVAL 1 DAY), ' 00:00:00')
and d.CREATE_TIME <![CDATA[ <= ]]> CONCAT(CURDATE(), ' 00:00:00')
and (d.SOCIAL_HANDLE_STATUS in ('2','3') or d.FUND_HANDLE_STATUS = '2')
GROUP BY d.CREATE_BY
</select>
</mapper>
...@@ -734,4 +734,28 @@ public class UserController { ...@@ -734,4 +734,28 @@ public class UserController {
} }
return naVo; return naVo;
} }
/**
* @Author hgw
* @Description 获取所有在用的账号,key是userId
* @Date 2025-8-1 14:48:15
**/
@Inner
@PostMapping(value = {"/inner/getInUseUserByIds"})
public SysUsersVo getInUseUserByIds(@RequestBody String userIds) {
SysUsersVo naVo = new SysUsersVo();
if (Common.isNotNull(userIds)) {
//获取所有在用的账号
List<SysUser> sysUsers = userService.list(Wrappers.<SysUser>query().lambda()
.eq(SysUser::getLockFlag,CommonConstants.ZERO_STRING)
.eq(SysUser::getDelFlag,CommonConstants.ZERO_STRING)
.in(SysUser::getUserId, Common.getList(userIds)));
if (Common.isNotEmpty(sysUsers)) {
Map<String,SysUser> userMap = sysUsers.stream().collect(Collectors.toMap(SysUser::getUserId, v->v));
naVo.setUserList(userMap);
}
}
return naVo;
}
} }
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