Commit 14205bc9 authored by fangxinjiang's avatar fangxinjiang

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

parents 0bd44101 1dae489c
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
/**
* 法大大专业版公司信息表
*
* @author hgw
* @date 2025-10-22 17:43:17
*/
@Data
@TableName("t_fasc_company")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "法大大专业版公司信息表")
public class TFascCompany extends BaseEntity {
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("id")
@Schema(description = "id")
private String id;
/**
* 公司主体
*/
@ExcelAttribute(name = "公司主体", maxLength = 100)
@Length(max = 100, message = "公司主体不能超过100个字符")
@ExcelProperty("公司主体")
@Schema(description = "公司主体")
private String companyName;
/**
* APPID
*/
@ExcelAttribute(name = "APPID", maxLength = 100)
@Length(max = 100, message = "APPID不能超过100个字符")
@ExcelProperty("APPID")
@Schema(description = "APPID")
private String appId;
/**
* AppSecret
*/
@ExcelAttribute(name = "AppSecret", maxLength = 100)
@Length(max = 100, message = "AppSecret不能超过100个字符")
@ExcelProperty("AppSecret")
@Schema(description = "AppSecret")
private String appSecret;
/**
* AppUrl
*/
@ExcelAttribute(name = "AppUrl", maxLength = 100)
@Length(max = 100, message = "AppUrl不能超过100个字符")
@ExcelProperty("AppUrl")
@Schema(description = "AppUrl")
private String appUrl;
/**
* openId
*/
@ExcelAttribute(name = "openId", maxLength = 100)
@Length(max = 100, message = "openId不能超过100个字符")
@ExcelProperty("openId")
@Schema(description = "openId")
private String openId;
}
......@@ -51,6 +51,14 @@ public class TFascTemplate extends BaseEntity {
@ExcelProperty("id")
@Schema(description = "id")
private String id;
/**
* 公司主体Id
*/
@ExcelAttribute(name = "公司主体Id", maxLength = 100)
@Length(max = 100, message = "公司主体Id不能超过100个字符")
@ExcelProperty("公司主体Id")
@Schema(description = "公司主体Id")
private String companyId;
/**
* 公司主体
*/
......
......@@ -223,7 +223,8 @@ public class FascController {
boolean flag = fascService.getFileByRequestId(pre.getId());
contractInfo.setAuditStatus(CommonConstants.TWO_INT);
tEmployeeContractInfoService.auditContract(contractInfo, user);
// 传了false,就不要审核日志
tEmployeeContractInfoService.auditContract(contractInfo, user, false);
if (flag) {
// 加日志
this.saveAuditLogSuccess(pre, "归档成功");
......@@ -309,25 +310,24 @@ public class FascController {
public void saveAuditLogSuccess(TEmployeeContractPre tEmployeeContractPre, String rootName) {
// 加流程进展明细
if (tEmployeeContractPre != null && Common.isNotNull(tEmployeeContractPre.getContractId())) {
this.saveAuditLogInfo(tEmployeeContractPre.getContractId(), rootName, "审核通过", null);
this.saveAuditLogInfo(tEmployeeContractPre.getContractId(), rootName, null);
}
}
// 加合同里的流程进展明细的日志——失败
public void saveAuditLogFail(TEmployeeContractPre tEmployeeContractPre, String rootName, String remark) {
// 加流程进展明细
if (tEmployeeContractPre != null && Common.isNotNull(tEmployeeContractPre.getContractId())) {
this.saveAuditLogInfo(tEmployeeContractPre.getContractId(), rootName, "审核不通过", remark);
this.saveAuditLogInfo(tEmployeeContractPre.getContractId(), rootName, remark);
}
}
// 加合同里的流程进展明细的日志
public void saveAuditLogInfo(String contractId, String rootName, String auditStatus, String remark) {
public void saveAuditLogInfo(String contractId, String rootName, String remark) {
// 加流程进展明细
if (Common.isNotNull(contractId)) {
TEmployeeContractAudit audit = new TEmployeeContractAudit();
audit.setRootName(rootName);
audit.setLinkId(contractId);
audit.setLinkType(CommonConstants.ONE_INT);
audit.setAuditStatus(auditStatus);
if (Common.isNotNull(remark)) {
audit.setRemark(remark);
}
......
......@@ -228,7 +228,7 @@ public class TEmployeeContractInfoController {
if (Common.isNotNull(tEmployeeContractInfo.getAuditRemark()) && tEmployeeContractInfo.getAuditRemark().length() > 200) {
return R.failed(ArchivesConstants.CONTRACT_AUDIT_REMARK_TOO_LONG);
}
return tEmployeeContractInfoService.auditContract(tEmployeeContractInfo,user);
return tEmployeeContractInfoService.auditContract(tEmployeeContractInfo,user, true);
}
/**
* @Author fxj
......
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TFascCompany;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 法大大专业版公司信息表
*
* @author hgw
* @date 2025-10-22 17:43:17
*/
@Mapper
public interface TFascCompanyMapper extends BaseMapper<TFascCompany> {
/**
* 法大大专业版公司信息表简单分页查询
* @return
*/
List<TFascCompany> getTFascCompanyAllList();
}
......@@ -98,12 +98,13 @@ public interface TEmployeeContractInfoService extends IService<TEmployeeContract
/**
* @param tEmployeeContractInfo
* @param user
* @param isNotFascLog 是否要日志,默认true,如果是法大大回调的成功审核,不加日志
* @Description: 审核
* @Author: hgw
* @Date: 2022/7/1 10:23
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
R<String> auditContract(TEmployeeContractInfo tEmployeeContractInfo, YifuUser user);
R<String> auditContract(TEmployeeContractInfo tEmployeeContractInfo, YifuUser user, boolean isNotFascLog);
/**
* @param id
......
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TFascCompany;
import java.util.List;
/**
* 法大大专业版公司信息表
*
* @author hgw
* @date 2025-10-22 17:43:17
*/
public interface TFascCompanyService extends IService<TFascCompany> {
/**
* 法大大专业版公司信息表简单分页查询
*
* @return
*/
List<TFascCompany> getTFascCompanyAllList();
}
......@@ -57,106 +57,114 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr
private final TEmployeeContractPreMapper tEmployeeContractPreMapper;
private final TEmployeeContractInfoMapper tEmployeeContractInfoMapper;
private final TAttaInfoMapper tAttaInfoMapper;
private final TFascCompanyService tFascCompanyService;
private final OSSUtil ossUtil;
private final static String FASC_NO_CONTRACT = "未找到合同自动化";
private final static String FASC_NO_EMP_CONTRACT = "未找到自动生成的员工合同";
private final static String FASC_NO_TEMPLATE = "未找到新法大大模板";
private static final String FASC_NO_CONTRACT = "未找到合同自动化";
private static final String FASC_NO_EMP_CONTRACT = "未找到自动生成的员工合同";
private static final String FASC_NO_TEMPLATE = "未找到新法大大模板";
@Override
public R<String> getTemplate(String templateName) throws ApiException {
// templateName 签署任务模板名称
List<SignTemplateListInfo> list = fascUtil.getTemplateList(templateName, tFascPushLogService);
if (list != null && !list.isEmpty()) {
List<TFascTemplate> tList = new ArrayList<>();
List<TFascTemplateDetail> detailList = new ArrayList<>();
fascUtil.getTemplateDetailList(list, tList, detailList, tFascPushLogService);
// 拉取到数据再更新:
if (!tList.isEmpty() && !detailList.isEmpty()) {
String editContent1 = "定时任务同步,拉取到数据";
String 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);
}
for (TFascTemplateDetail t : detailList) {
this.addFascLogToList(t.getId(), CommonConstants.TWO_STRING, editContent1, logList);
}
} 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());
List<TFascCompany> companyList = tFascCompanyService.getTFascCompanyAllList();
if (companyList != null && !companyList.isEmpty()) {
for (TFascCompany company : companyList) {
// 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 = "定时任务同步,法大大无该数据";
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);
}
for (TFascTemplateDetail t : detailList) {
this.addFascLogToList(t.getId(), CommonConstants.TWO_STRING, editContent1, logList);
}
} else {
logId = String.valueOf(UUID.randomUUID()).replaceAll("-", "");
t.setId(logId);
// 混合老新数据
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);
updateMain.add(t);
oldMainMap.remove(t.getSignTemplateId());
}
for (TFascTemplate t : oldMainMap.values()) {
this.addFascLogToList(t.getId(), CommonConstants.ONE_STRING, editContent2, logList);
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);
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);
t.setDeleteFlag(CommonConstants.DELETE_FLAG);
updateDetail.add(t);
}
}
this.addFascLogToList(t.getId(), CommonConstants.ONE_STRING, editContent1, logList);
updateMain.add(t);
oldMainMap.remove(t.getSignTemplateId());
}
for (TFascTemplate t : oldMainMap.values()) {
this.addFascLogToList(t.getId(), CommonConstants.ONE_STRING, editContent2, logList);
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);
// 更新日志
if (!logList.isEmpty()) {
tFascEditLogService.saveBatch(logList);
}
this.addFascLogToList(t.getId(), CommonConstants.TWO_STRING, editContent1, logList);
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);
t.setDeleteFlag(CommonConstants.DELETE_FLAG);
updateDetail.add(t);
// 更新模板
if (!updateMain.isEmpty()) {
tFascTemplateService.saveOrUpdateBatch(updateMain);
}
// 更新模板映射
if (!updateDetail.isEmpty()) {
tFascTemplateDetailService.saveOrUpdateBatch(updateDetail);
}
// 重新刷新主模板表的必填是否已填
tFascTemplateDetailService.initFascTemplateIsMust(null);
}
}
// 更新日志
if (!logList.isEmpty()) {
tFascEditLogService.saveBatch(logList);
}
// 更新模板
if (!updateMain.isEmpty()) {
tFascTemplateService.saveOrUpdateBatch(updateMain);
}
// 更新模板映射
if (!updateDetail.isEmpty()) {
tFascTemplateDetailService.saveOrUpdateBatch(updateDetail);
}
// 重新刷新主模板表的必填是否已填
tFascTemplateDetailService.initFascTemplateIsMust(null);
}
}
return R.ok();
......@@ -166,7 +174,17 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr
@Override
public R<String> getTemplateDetailUrl(String signTemplateId) throws ApiException {
// templateName 签署任务模板名称
return fascUtil.getTemplateDetailUrl(signTemplateId, tFascPushLogService);
TFascCompany company = null;
TFascTemplate tFascTemplate = tFascTemplateService.getOne(Wrappers.<TFascTemplate>query()
.lambda().eq(TFascTemplate::getSignTemplateId, signTemplateId)
.last(CommonConstants.LAST_ONE_SQL));
if (tFascTemplate != null && Common.isNotNull(tFascTemplate.getCompanyId())) {
company = tFascCompanyService.getById(tFascTemplate.getCompanyId());
}
if (company == null) {
return R.failed("无公司信息,请检查数据!");
}
return fascUtil.getTemplateDetailUrl(signTemplateId, tFascPushLogService, company);
}
/**
......@@ -231,7 +249,9 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr
List<TFascTemplateDetail> detailList = tFascTemplateDetailService.getTFascTemplateDetailList(detail);
// - 判断是否入职超过1个月——接口入口做了
R<String> requestInfo = fascUtil.submitContract(contract, tFascPushLogService, tEmployeeContractPreMapper, tFascTemplate, detailList);
TFascCompany company = tFascCompanyService.getById(tFascTemplate.getCompanyId());
R<String> requestInfo = fascUtil.submitContract(contract, tFascPushLogService, tEmployeeContractPreMapper, tFascTemplate, detailList, company);
return requestInfo;
}
......@@ -254,9 +274,25 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr
return R.failed("无requestId,请检查数据");
}
// TODO - 判断什么状态撤销等,需要产品定
TFascCompany company = getTFascCompany(contract);
if (company == null) {
return R.failed("无公司信息,请检查数据!");
}
return fascUtil.cancelTask(contract, tFascPushLogService, tEmployeeContractPreMapper, company);
return fascUtil.cancelTask(contract, tFascPushLogService, tEmployeeContractPreMapper);
}
private TFascCompany getTFascCompany(TEmployeeContractPre contract) {
TFascCompany company = null;
if (Common.isNotNull(contract.getFadadaTemplateId())) {
TFascTemplate tFascTemplate = tFascTemplateService.getOne(Wrappers.<TFascTemplate>query()
.lambda().eq(TFascTemplate::getSignTemplateId, contract.getFadadaTemplateId())
.last(CommonConstants.LAST_ONE_SQL));
if (tFascTemplate != null && Common.isNotNull(tFascTemplate.getCompanyId())) {
company = tFascCompanyService.getById(tFascTemplate.getCompanyId());
}
}
return company;
}
/**
......@@ -278,7 +314,11 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr
}
// TODO - 判断什么状态催办等,需要产品定
return fascUtil.urgeTask(contract, tFascPushLogService, tEmployeeContractPreMapper);
TFascCompany company = getTFascCompany(contract);
if (company == null) {
return R.failed("无公司信息,请检查数据!");
}
return fascUtil.urgeTask(contract, tFascPushLogService, tEmployeeContractPreMapper, company);
}
/**
......@@ -299,7 +339,11 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr
// return R.failed("无requestId,请检查数据")
return false;
}
return fascUtil.getFileByRequestId(contract, tFascPushLogService, tAttaInfoMapper, ossUtil);
TFascCompany company = getTFascCompany(contract);
if (company == null) {
return false;
}
return fascUtil.getFileByRequestId(contract, tFascPushLogService, tAttaInfoMapper, ossUtil, company);
}
......
......@@ -785,7 +785,7 @@ public class TEmployeeContractInfoServiceImpl extends ServiceImpl<TEmployeeContr
}
@Override
public R<String> auditContract(TEmployeeContractInfo tEmployeeContractInfo, YifuUser user) {
public R<String> auditContract(TEmployeeContractInfo tEmployeeContractInfo, YifuUser user, boolean isNotFascLog) {
// 是否电子签,默认否
boolean fascFlag = false;
if (tEmployeeContractInfo != null) {
......@@ -958,7 +958,10 @@ public class TEmployeeContractInfoServiceImpl extends ServiceImpl<TEmployeeContr
tEmployeeContractInfo.setAuditUserName(user.getNickname());
tEmployeeContractInfo.setContractNo(contractInfo.getContractNo());
// 不是待提交,记录审核记录
this.setAuditInfo(tEmployeeContractInfo);
// 非法大大,要日志,法大大的签署完成,不要这个日志,有了其他的日志
if (isNotFascLog) {
this.setAuditInfo(tEmployeeContractInfo);
}
this.updateById(tEmployeeContractInfo);
return R.ok();
}
......
......@@ -835,8 +835,10 @@ public class TEmployeeContractPreServiceImpl extends ServiceImpl<TEmployeeContra
this.update(updateWrapper);
TEmployeeContractAudit audit = new TEmployeeContractAudit();
audit.setRootName("撤销签署");
audit.setCreateName("系统自动撤销");
audit.setLinkId(contractPre.getContractId());
audit.setLinkType(CommonConstants.ONE_INT);
audit.setRemark("电子合同签署超过1个月未完成签署系统,自动撤销");
tEmployeeContractAuditService.save(audit);
} else if ("已完成签署".equals(revokeResult.getMsg())) {
......@@ -875,6 +877,7 @@ public class TEmployeeContractPreServiceImpl extends ServiceImpl<TEmployeeContra
List<TEmployeeContractAudit> yesterdayAudits = tEmployeeContractAuditService.list(Wrappers.<TEmployeeContractAudit>query()
.lambda()
.eq(TEmployeeContractAudit::getRootName, "撤销签署")
.eq(TEmployeeContractAudit::getCreateName, "系统自动撤销")
.eq(TEmployeeContractAudit::getLinkType, CommonConstants.ONE_INT)
.ge(TEmployeeContractAudit::getCreateTime, yesterdayStart)
.lt(TEmployeeContractAudit::getCreateTime, yesterdayEnd)
......
......@@ -205,6 +205,35 @@ public class TEmployeePreLogServiceImpl extends ServiceImpl<TEmployeePreLogMappe
IGNORE_FIELD.add("id");
}
private static final List<String> SOCIAL_IGNORE_FIELD = new ArrayList<>();
static {
IGNORE_FIELD.add("joinLeaveDate");
IGNORE_FIELD.add("createTime");
IGNORE_FIELD.add("empName");
IGNORE_FIELD.add("phone");
IGNORE_FIELD.add("employeeName");
IGNORE_FIELD.add("empIdcard");
IGNORE_FIELD.add("deptNo");
IGNORE_FIELD.add("deptName");
IGNORE_FIELD.add("deptId");
IGNORE_FIELD.add("customerUsername");
IGNORE_FIELD.add("customerUserLoginname");
IGNORE_FIELD.add("position");
IGNORE_FIELD.add("contractId");
IGNORE_FIELD.add("errorBackInfo");
IGNORE_FIELD.add("errorInfo");
IGNORE_FIELD.add("errorTime");
IGNORE_FIELD.add("socialFundId");
IGNORE_FIELD.add("dispatcherId");
IGNORE_FIELD.add("contractStatus");
IGNORE_FIELD.add("typeSub");
IGNORE_FIELD.add("registerId");
IGNORE_FIELD.add("createBy");
IGNORE_FIELD.add("createName");
IGNORE_FIELD.add("updateBy");
IGNORE_FIELD.add("id");
}
@Override
public void saveModifyAndUpdateInsurance(String empPreId, EmployeeRegistrationPre oldInfo
, EmployeeRegistrationPre newInfo, YifuUser user, Map<String, TEmployeeInsurancePre> oldMap,
......@@ -426,24 +455,29 @@ public class TEmployeePreLogServiceImpl extends ServiceImpl<TEmployeePreLogMappe
}
TDispatchInfoPreVo dispatchInfoPreVo = newInfo.getDispatchInfoPreVo();
if (!newInfo.getServerItem().contains("社保") && oldInfo.getServerItem().contains("社保")
&& Common.isNotNull(dispatchInfoPreOldVo)) {
//记录操作记录
detailEmpLog = new TEmployeePreLogDetail();
detailEmpLog.setModelType(CommonConstants.THREE_STRING);
detailEmpLog.setType(CommonConstants.FOUR_STRING);
this.setLogBaseInfo(empPreId, dispatchInfoPreOldVo, null, user, null
, logId, detailEmpLog);
detailList.add(detailEmpLog);
if (Common.isNotNull(diffTitle)) {
diffTitle += "、社保信息";
} else {
diffTitle = "社保信息";
if (!newInfo.getServerItem().contains("社保") && oldInfo.getServerItem().contains("社保")) {
//删除社保待购买相关数据
socialDaprUtils.deleteUnProcessSocialPreInfo(empPreId);
//如果之前包含流程中的社保待购买数据,记录删除日志
if (Common.isNotNull(dispatchInfoPreOldVo)) {
//记录操作记录
detailEmpLog = new TEmployeePreLogDetail();
detailEmpLog.setModelType(CommonConstants.THREE_STRING);
detailEmpLog.setType(CommonConstants.FOUR_STRING);
this.setLogBaseInfo(empPreId, dispatchInfoPreOldVo, null, user, null
, logId, detailEmpLog);
detailList.add(detailEmpLog);
if (Common.isNotNull(diffTitle)) {
diffTitle += "、社保信息";
} else {
diffTitle = "社保信息";
}
}
}
if (newInfo.getServerItem().contains("社保") && dispatchInfoPreOldVo != null && dispatchInfoPreVo != null) {
differenceSocialKey = HrEquator.comparisonValueIgnoreField(dispatchInfoPreOldVo
, dispatchInfoPreVo, CONTRACT_IGNORE_FIELD);
, dispatchInfoPreVo, SOCIAL_IGNORE_FIELD);
if (differenceSocialKey.length() > 0) {
if (Common.isNotNull(diffTitle)) {
diffTitle += "、社保信息";
......@@ -696,7 +730,7 @@ public class TEmployeePreLogServiceImpl extends ServiceImpl<TEmployeePreLogMappe
}
}
if (newInfo.getServerItem().contains("社保") && dispatchInfoPreOldVo != null && dispatchInfoPreVo != null) {
differenceSocialKey = HrEquator.comparisonValueIgnoreField(dispatchInfoPreOldVo, dispatchInfoPreVo, CONTRACT_IGNORE_FIELD);
differenceSocialKey = HrEquator.comparisonValueIgnoreField(dispatchInfoPreOldVo, dispatchInfoPreVo, SOCIAL_IGNORE_FIELD);
if (differenceSocialKey.length() > 0) {
if (Common.isNotNull(diffTitle)) {
diffTitle += "、社保信息";
......
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TFascCompany;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TFascCompanyMapper;
import com.yifu.cloud.plus.v1.yifu.archives.service.TFascCompanyService;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 法大大专业版公司信息表
*
* @author hgw
* @date 2025-10-22 17:43:17
*/
@Log4j2
@Service
public class TFascCompanyServiceImpl extends ServiceImpl<TFascCompanyMapper, TFascCompany> implements TFascCompanyService {
/**
* 法大大专业版公司信息表简单分页查询
*
* @return
*/
@Override
public List<TFascCompany> getTFascCompanyAllList() {
return baseMapper.getTFascCompanyAllList();
}
}
......@@ -55,7 +55,7 @@ public class FascUtil {
@Autowired
private RedisTemplate redisTemplate;
@Autowired
private FascConfig fascConfig;
//private FascConfig fascConfig;
private static final SerializerFeature[] features = new SerializerFeature[]{
WriteMapNullValue, WriteNullNumberAsZero, WriteNullListAsEmpty,
......@@ -68,14 +68,14 @@ public class FascUtil {
* @Date: 2023/7/28 14:46
* @return: java.lang.String
**/
public String getFascToken(OpenApiClient openApiClient) throws ApiException {
public String getFascToken(OpenApiClient openApiClient, TFascCompany company) throws ApiException {
String tokenKey = CacheConstants.FASC_ACCOSS_TOKEN;
Object wxToken = redisTemplate.opsForValue().get(tokenKey);
if (null != wxToken) {
return String.valueOf(wxToken);
}
if (openApiClient == null) {
openApiClient = new OpenApiClient(fascConfig.getAppId(), fascConfig.getAppSecret(), fascConfig.getAppUrl());
openApiClient = new OpenApiClient(company.getAppId(), company.getAppSecret(), company.getAppUrl());
}
ServiceClient serviceClient = new ServiceClient(openApiClient);
BaseRes<AccessTokenRes> res = serviceClient.getAccessToken();
......@@ -97,18 +97,18 @@ public class FascUtil {
* @Date: 2025/10/10 17:59
* @return: java.util.List<com.fasc.open.api.v5_1.res.template.SignTemplateListInfo>
**/
public List<SignTemplateListInfo> getTemplateList(String templateName, TFascPushLogService tFascPushLogService)
public List<SignTemplateListInfo> getTemplateList(String templateName, TFascPushLogService tFascPushLogService, TFascCompany company)
throws ApiException {
OpenApiClient openApiClient = new OpenApiClient(fascConfig.getAppId(), fascConfig.getAppSecret(), fascConfig.getAppUrl());
OpenApiClient openApiClient = new OpenApiClient(company.getAppId(), company.getAppSecret(), company.getAppUrl());
TemplateClient templateClient = new TemplateClient(openApiClient);
String accessToken = this.getFascToken(openApiClient);
String accessToken = this.getFascToken(openApiClient, company);
GetSignTemplateListReq getSignTemplateListReq = new GetSignTemplateListReq();
getSignTemplateListReq.setListPageNo(1);
getSignTemplateListReq.setListPageSize(100);
OpenId ownerId = new OpenId();
ownerId.setIdType(CacheConstants.FASC_ID_TYPE);
ownerId.setOpenId(fascConfig.getOpenId());
ownerId.setOpenId(company.getOpenId());
getSignTemplateListReq.setOwnerId(ownerId);
SignTemplateListFilterInfo signTemplateListFilterInfo = new SignTemplateListFilterInfo();
if (Common.isNotNull(templateName)) {
......@@ -122,7 +122,7 @@ public class FascUtil {
// 新增推送日志
TFascPushLog pushLog = new TFascPushLog();
pushLog.setTransReferenceId(fascConfig.getOpenId());
pushLog.setTransReferenceId(company.getOpenId());
pushLog.setPushData(JSON.toJSONString(getSignTemplateListReq, features));
pushLog.setTaskStatus(CommonConstants.ZERO_STRING);
pushLog.setTypeKey("获取所有模板");
......@@ -148,7 +148,7 @@ public class FascUtil {
getSignTemplateListReq.setListPageNo(i);
pushLog = new TFascPushLog();
pushLog.setTransReferenceId(fascConfig.getOpenId());
pushLog.setTransReferenceId(company.getOpenId());
pushLog.setPushData(JSON.toJSONString(getSignTemplateListReq, features));
pushLog.setTaskStatus(CommonConstants.ZERO_STRING);
pushLog.setTypeKey(pushLog.getId() + "获取所有模板" + i);
......@@ -181,14 +181,15 @@ public class FascUtil {
* @return: void
**/
public void getTemplateDetailList(List<SignTemplateListInfo> templateList, List<TFascTemplate> tList
, List<TFascTemplateDetail> detailList, TFascPushLogService tFascPushLogService) throws ApiException {
OpenApiClient openApiClient = new OpenApiClient(fascConfig.getAppId(), fascConfig.getAppSecret(), fascConfig.getAppUrl());
, List<TFascTemplateDetail> detailList, TFascPushLogService tFascPushLogService
, TFascCompany company) throws ApiException {
OpenApiClient openApiClient = new OpenApiClient(company.getAppId(), company.getAppSecret(), company.getAppUrl());
TemplateClient templateClient = new TemplateClient(openApiClient);
String accessToken = this.getFascToken(openApiClient);
String accessToken = this.getFascToken(openApiClient, company);
OpenId openId = new OpenId();
openId.setIdType(CacheConstants.FASC_ID_TYPE);
openId.setOpenId(fascConfig.getOpenId());
openId.setOpenId(company.getOpenId());
List<DocumentInfo> list = null;
if (templateList != null && !templateList.isEmpty()) {
// 调用查询模板详情接口
......@@ -211,8 +212,11 @@ public class FascUtil {
template.setSignTemplateStatus(mainInfo.getSignTemplateStatus());
template.setFascCreateTime(LocalDateTimeUtils.coverStringToLDT(mainInfo.getCreateTime()));
template.setUpdateTime(LocalDateTimeUtils.coverStringToLDT(mainInfo.getUpdateTime()));
// 有可能不对:template.setCompanyName(mainInfo.getCatalogName());
template.setCompanyName(mainInfo.getCatalogName());
template.setCompanyId(company.getId());
template.setCompanyName(company.getCompanyName());
template.setSignName(company.getCompanyName());
template.setSignOpenId(company.getOpenId());
template.setCreatorMemberName(mainInfo.getCreatorMemberName());
template.setDeleteFlag(CommonConstants.NOT_DELETE_FLAG);
tList.add(template);
......@@ -224,7 +228,7 @@ public class FascUtil {
// 新增推送日志
TFascPushLog pushLog = new TFascPushLog();
pushLog.setTransReferenceId(fascConfig.getOpenId());
pushLog.setTransReferenceId(company.getOpenId());
pushLog.setPushData(JSON.toJSONString(signTemplateDetailReq, features));
pushLog.setTaskStatus(CommonConstants.ZERO_STRING);
pushLog.setTypeKey("获取所有明细映射");
......@@ -312,12 +316,12 @@ public class FascUtil {
public R<String> submitContract(TEmployeeContractPre contract, TFascPushLogService tFascPushLogService
, TEmployeeContractPreMapper tEmployeeContractPreMapper
, TFascTemplate tFascTemplate, List<TFascTemplateDetail> detailList) throws ApiException {
OpenApiClient openApiClient = new OpenApiClient(fascConfig.getAppId(), fascConfig.getAppSecret(), fascConfig.getAppUrl());
String accessToken = this.getFascToken(openApiClient);
, TFascTemplate tFascTemplate, List<TFascTemplateDetail> detailList, TFascCompany company) throws ApiException {
OpenApiClient openApiClient = new OpenApiClient(company.getAppId(), company.getAppSecret(), company.getAppUrl());
String accessToken = this.getFascToken(openApiClient, company);
OpenId openId = new OpenId();
openId.setIdType(CacheConstants.FASC_ID_TYPE);
openId.setOpenId(fascConfig.getOpenId());
openId.setOpenId(company.getOpenId());
SignTaskClient signTaskClient = new SignTaskClient(openApiClient);
CreateWithTemplateReq createWithTemplateReq = new CreateWithTemplateReq();
......@@ -331,10 +335,10 @@ public class FascUtil {
createWithTemplateReq.setSignTemplateId(contract.getFadadaTemplateId());
// 核心代码:设置参与方列表
createWithTemplateReq.setActors(this.buildActors(contract));
createWithTemplateReq.setActors(this.buildActors(contract, company));
// 新增推送日志
TFascPushLog pushLog = new TFascPushLog();
pushLog.setTransReferenceId(fascConfig.getOpenId());
pushLog.setTransReferenceId(company.getOpenId());
pushLog.setPushData(JSON.toJSONString(createWithTemplateReq, features));
pushLog.setTaskStatus(CommonConstants.ZERO_STRING);
String empIdCard = contract.getEmpIdcard();
......@@ -505,11 +509,11 @@ public class FascUtil {
/**
* 构建参与方列表
*/
private List<AddActorsTempInfo> buildActors(TEmployeeContractPre contract) {
private List<AddActorsTempInfo> buildActors(TEmployeeContractPre contract, TFascCompany company) {
List<AddActorsTempInfo> actors = new ArrayList<>();
// 添加企业方(甲方)
actors.add(buildCompanyActor(contract));
actors.add(buildCompanyActor(contract, company));
// 核心代码:添加员工方(乙方)
actors.add(buildEmployeeActor(contract));
......@@ -520,7 +524,7 @@ public class FascUtil {
/**
* 构建企业方参与方
*/
private AddActorsTempInfo buildCompanyActor(TEmployeeContractPre contract) {
private AddActorsTempInfo buildCompanyActor(TEmployeeContractPre contract, TFascCompany company) {
AddActorsTempInfo companyActor = new AddActorsTempInfo();
......@@ -535,7 +539,7 @@ public class FascUtil {
actor.setPermissions(Collections.singletonList("sign"));
// 企业OpenId
actor.setActorOpenId(fascConfig.getOpenId());
actor.setActorOpenId(company.getOpenId());
// 通知设置
actor.setSendNotification(true);
......@@ -583,9 +587,9 @@ public class FascUtil {
// 撤销签署
public R<String> cancelTask(TEmployeeContractPre contract, TFascPushLogService tFascPushLogService
, TEmployeeContractPreMapper tEmployeeContractPreMapper) throws ApiException {
OpenApiClient openApiClient = new OpenApiClient(fascConfig.getAppId(), fascConfig.getAppSecret(), fascConfig.getAppUrl());
String accessToken = this.getFascToken(openApiClient);
, TEmployeeContractPreMapper tEmployeeContractPreMapper, TFascCompany company) throws ApiException {
OpenApiClient openApiClient = new OpenApiClient(company.getAppId(), company.getAppSecret(), company.getAppUrl());
String accessToken = this.getFascToken(openApiClient, company);
SignTaskClient signTaskClient = new SignTaskClient(openApiClient);
SignTaskCancelReq signTaskCancelReq = new SignTaskCancelReq();
......@@ -593,7 +597,7 @@ public class FascUtil {
signTaskCancelReq.setAccessToken(accessToken);
// 新增推送日志
TFascPushLog pushLog = new TFascPushLog();
pushLog.setTransReferenceId(fascConfig.getOpenId());
pushLog.setTransReferenceId(company.getOpenId());
pushLog.setPushData(JSON.toJSONString(signTaskCancelReq, features));
pushLog.setTaskStatus(CommonConstants.ZERO_STRING);
String empIdCard = contract.getEmpIdcard();
......@@ -629,9 +633,9 @@ public class FascUtil {
// 催办
public R<String> urgeTask(TEmployeeContractPre contract, TFascPushLogService tFascPushLogService
, TEmployeeContractPreMapper tEmployeeContractPreMapper) throws ApiException {
OpenApiClient openApiClient = new OpenApiClient(fascConfig.getAppId(), fascConfig.getAppSecret(), fascConfig.getAppUrl());
String accessToken = this.getFascToken(openApiClient);
, TEmployeeContractPreMapper tEmployeeContractPreMapper, TFascCompany company) throws ApiException {
OpenApiClient openApiClient = new OpenApiClient(company.getAppId(), company.getAppSecret(), company.getAppUrl());
String accessToken = this.getFascToken(openApiClient, company);
SignTaskClient signTaskClient = new SignTaskClient(openApiClient);
SignTaskBaseReq signTaskBaseReq = new SignTaskBaseReq();
......@@ -640,7 +644,7 @@ public class FascUtil {
// 新增推送日志
TFascPushLog pushLog = new TFascPushLog();
pushLog.setTransReferenceId(fascConfig.getOpenId());
pushLog.setTransReferenceId(company.getOpenId());
pushLog.setPushData(JSON.toJSONString(signTaskClient, features));
pushLog.setTaskStatus(CommonConstants.ZERO_STRING);
String empIdCard = contract.getEmpIdcard();
......@@ -667,20 +671,20 @@ public class FascUtil {
// 获取模板详情预览链接
public R<String> getTemplateDetailUrl(String signTemplateId, TFascPushLogService tFascPushLogService) throws ApiException {
OpenApiClient openApiClient = new OpenApiClient(fascConfig.getAppId(), fascConfig.getAppSecret(), fascConfig.getAppUrl());
String accessToken = this.getFascToken(openApiClient);
public R<String> getTemplateDetailUrl(String signTemplateId, TFascPushLogService tFascPushLogService, TFascCompany company) throws ApiException {
OpenApiClient openApiClient = new OpenApiClient(company.getAppId(), company.getAppSecret(), company.getAppUrl());
String accessToken = this.getFascToken(openApiClient, company);
TemplateClient templateClient = new TemplateClient(openApiClient) ;
GetTemplatePreviewUrlReq getTemplatePreviewUrlReq = new GetTemplatePreviewUrlReq() ;
getTemplatePreviewUrlReq.setOpenCorpId(fascConfig.getOpenId()) ;
getTemplatePreviewUrlReq.setOpenCorpId(company.getOpenId()) ;
getTemplatePreviewUrlReq.setTemplateId(signTemplateId) ;
getTemplatePreviewUrlReq.setAccessToken(accessToken) ;
// 新增推送日志
TFascPushLog pushLog = new TFascPushLog();
pushLog.setTransReferenceId(fascConfig.getOpenId());
pushLog.setTransReferenceId(company.getOpenId());
pushLog.setPushData(JSON.toJSONString(templateClient, features));
pushLog.setTaskStatus(CommonConstants.ZERO_STRING);
pushLog.setTypeKey("获取模板详情预览链接,signTemplateId:" + signTemplateId);
......@@ -704,9 +708,9 @@ public class FascUtil {
// 获取附件
public boolean getFileByRequestId(TEmployeeContractPre contract, TFascPushLogService tFascPushLogService
, TAttaInfoMapper tAttaInfoMapper, OSSUtil ossUtil) throws ApiException {
OpenApiClient openApiClient = new OpenApiClient(fascConfig.getAppId(), fascConfig.getAppSecret(), fascConfig.getAppUrl());
String accessToken = this.getFascToken(openApiClient);
, TAttaInfoMapper tAttaInfoMapper, OSSUtil ossUtil, TFascCompany company) throws ApiException {
OpenApiClient openApiClient = new OpenApiClient(company.getAppId(), company.getAppSecret(), company.getAppUrl());
String accessToken = this.getFascToken(openApiClient, company);
SignTaskClient signTaskClient = new SignTaskClient(openApiClient);
SignTaskGetFileReq signTaskGetFileReq = new SignTaskGetFileReq();
......@@ -715,7 +719,7 @@ public class FascUtil {
// 新增推送日志
TFascPushLog pushLog = new TFascPushLog();
pushLog.setTransReferenceId(fascConfig.getOpenId());
pushLog.setTransReferenceId(company.getOpenId());
pushLog.setPushData(JSON.toJSONString(signTaskClient, features));
pushLog.setTaskStatus(CommonConstants.ZERO_STRING);
String empIdCard = contract.getEmpIdcard();
......
<?xml version="1.0" encoding="UTF-8"?>
<!--
~
~ Copyright (c) 2018-2025, lengleng All rights reserved.
~
~ Redistribution and use in source and binary forms, with or without
~ modification, are permitted provided that the following conditions are met:
~
~ Redistributions of source code must retain the above copyright notice,
~ this list of conditions and the following disclaimer.
~ Redistributions in binary form must reproduce the above copyright
~ notice, this list of conditions and the following disclaimer in the
~ documentation and/or other materials provided with the distribution.
~ Neither the name of the yifu4cloud.com developer nor the names of its
~ contributors may be used to endorse or promote products derived from
~ this software without specific prior written permission.
~ Author: lengleng (wangiegie@gmail.com)
~
-->
<!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.archives.mapper.TFascCompanyMapper">
<resultMap id="tFascCompanyMap" type="com.yifu.cloud.plus.v1.yifu.archives.entity.TFascCompany">
<id property="id" column="id"/>
<result property="companyName" column="company_name"/>
<result property="appId" column="app_id"/>
<result property="openId" column="open_id"/>
<result property="appSecret" column="app_secret"/>
<result property="appUrl" column="app_url"/>
<result property="createBy" column="CREATE_BY"/>
<result property="createName" column="CREATE_NAME"/>
<result property="createTime" column="CREATE_TIME"/>
<result property="updateBy" column="UPDATE_BY"/>
<result property="updateTime" column="UPDATE_TIME"/>
</resultMap>
<sql id="Base_Column_List">
a.id,
a.company_name,
a.app_id,
a.app_secret,
a.app_url,
a.open_id,
a.CREATE_BY,
a.CREATE_NAME,
a.CREATE_TIME,
a.UPDATE_BY,
a.UPDATE_TIME
</sql>
<sql id="tFascCompany_where">
<if test="tFascCompany != null">
<if test="tFascCompany.id != null and tFascCompany.id.trim() != ''">
AND a.id = #{tFascCompany.id}
</if>
<if test="tFascCompany.companyName != null and tFascCompany.companyName.trim() != ''">
AND a.company_name = #{tFascCompany.companyName}
</if>
<if test="tFascCompany.appId != null and tFascCompany.appId.trim() != ''">
AND a.app_id = #{tFascCompany.appId}
</if>
<if test="tFascCompany.appSecret != null and tFascCompany.appSecret.trim() != ''">
AND a.app_secret = #{tFascCompany.appSecret}
</if>
<if test="tFascCompany.appUrl != null and tFascCompany.appUrl.trim() != ''">
AND a.app_url = #{tFascCompany.appUrl}
</if>
<if test="tFascCompany.createBy != null and tFascCompany.createBy.trim() != ''">
AND a.CREATE_BY = #{tFascCompany.createBy}
</if>
<if test="tFascCompany.createName != null and tFascCompany.createName.trim() != ''">
AND a.CREATE_NAME = #{tFascCompany.createName}
</if>
<if test="tFascCompany.createTime != null">
AND a.CREATE_TIME = #{tFascCompany.createTime}
</if>
<if test="tFascCompany.updateBy != null and tFascCompany.updateBy.trim() != ''">
AND a.UPDATE_BY = #{tFascCompany.updateBy}
</if>
<if test="tFascCompany.updateTime != null">
AND a.UPDATE_TIME = #{tFascCompany.updateTime}
</if>
</if>
</sql>
<select id="getTFascCompanyAllList" resultMap="tFascCompanyMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_fasc_company a
<where>
1=1
<include refid="tFascCompany_where"/>
</where>
</select>
</mapper>
......@@ -25,6 +25,7 @@
<resultMap id="tFascTemplateMap" type="com.yifu.cloud.plus.v1.yifu.archives.entity.TFascTemplate">
<id property="id" column="id"/>
<result property="companyId" column="company_id"/>
<result property="companyName" column="company_name"/>
<result property="signName" column="sign_name"/>
<result property="signOpenId" column="sign_open_id"/>
......@@ -65,6 +66,7 @@
</resultMap>
<sql id="Base_Column_List">
a.id,
a.company_id,
a.company_name,
a.sign_name,
a.sign_open_id,
......@@ -89,6 +91,9 @@
<if test="tFascTemplate.id != null and tFascTemplate.id.trim() != ''">
AND a.id = #{tFascTemplate.id}
</if>
<if test="tFascTemplate.companyId != null and tFascTemplate.companyId.trim() != ''">
AND a.company_id like concat('%', #{tFascTemplate.companyId}, '%')
</if>
<if test="tFascTemplate.companyName != null and tFascTemplate.companyName.trim() != ''">
AND a.company_name like concat('%', #{tFascTemplate.companyName}, '%')
</if>
......
......@@ -184,6 +184,7 @@ public class TSocialDeadlineInfo extends BaseEntity {
@ExcelAttribute(name = "社保预减员起始日期", isDate = true)
@ExcelProperty("社保预减员起始日期")
@Schema(description = "社保预减员起始日期")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Date socialPreReduceStartDate;
/**
......@@ -192,6 +193,7 @@ public class TSocialDeadlineInfo extends BaseEntity {
@ExcelAttribute(name = "社保预减员截止日期", isDate = true)
@ExcelProperty("社保预减员截止日期")
@Schema(description = "社保预减员截止日期")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Date socialPreReduceEndDate;
}
......@@ -167,7 +167,6 @@ public class TDispatchInfoPreController {
return tDispatchInfoPreService.saveSocialPreInfo(preVo);
}
/**
* 更新社保待购买的前端客服姓名
* @author huych
......
......@@ -286,6 +286,7 @@ public class TDispatchInfoPreServiceImpl extends ServiceImpl<TDispatchInfoPreMap
}
TDispatchInfoPre preExit = baseMapper.selectOne(Wrappers.<TDispatchInfoPre>query().lambda()
.eq(TDispatchInfoPre::getRegisterId, id)
.in(TDispatchInfoPre::getProcessStatus, Arrays.asList("0", "1", "2", "4","8"))
.last(CommonConstants.LAST_ONE_SQL));
if (Common.isNotNull(preExit)) {
TDispatchInfoPreVo pre = new TDispatchInfoPreVo();
......@@ -319,6 +320,9 @@ public class TDispatchInfoPreServiceImpl extends ServiceImpl<TDispatchInfoPreMap
this.remove(Wrappers.<TDispatchInfoPre>query().lambda()
.in(TDispatchInfoPre::getProcessStatus, Arrays.asList("0", "1", "2", "4","8"))
.eq(TDispatchInfoPre::getRegisterId, id));
socialPreDetailService.remove(Wrappers.<TSocialPreDetail>query().lambda()
.eq(TSocialPreDetail::getRegisterId, id));
}
......
......@@ -3735,20 +3735,15 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
dispatchInfoPre.setErrorBackInfo(auditRemark);
dispatchInfoPreMapper.updateById(dispatchInfoPre);
Map<String, String> loginNameMap = new HashMap<>();
if (null == loginNameMap.get(dispatchInfoPre.getCustomerUserLoginName())) {
UUID uuid = UUID.randomUUID();
loginNameMap.put(dispatchInfoPre.getCustomerUserLoginName(), uuid.toString());
}
TSocialAutoLog socialAutoLog = new TSocialAutoLog();
socialAutoLog.setSocialId(loginNameMap.get(dispatchInfoPre.getCustomerUserLoginName()));
socialAutoLog.setSocialId(UUID.randomUUID().toString());
socialAutoLog.setEmpName(dispatchInfoPre.getEmpName());
socialAutoLog.setEmpIdcard(dispatchInfoPre.getEmpIdcard());
socialAutoLog.setErrorInfo(auditRemark);
socialAutoLog.setPhone(dispatchInfoPre.getPhone());
socialAutoLogService.save(socialAutoLog);
sendDisFalureMessageToWx(dispatchInfoPre,null, loginNameMap);
sendDisFalureMessageToWx(dispatchInfoPre,socialAutoLog.getId());
}
}
socialInfo.setAuditTime(now);
......@@ -4485,33 +4480,27 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
if (Common.isNotNull(errorTemp.toString())) {
dispatchInfoPre.setDispatchItem(errorTemp.deleteCharAt(errorTemp.length() - 1).toString());
}
if (null == loginNameMap.get(dispatchInfoPre.getCustomerUserLoginName())) {
UUID uuid = UUID.randomUUID();
loginNameMap.put(dispatchInfoPre.getCustomerUserLoginName(), uuid.toString());
}
TSocialAutoLog socialAutoLog = new TSocialAutoLog();
socialAutoLog.setSocialId(loginNameMap.get(dispatchInfoPre.getCustomerUserLoginName()));
socialAutoLog.setSocialId(UUID.randomUUID().toString());
socialAutoLog.setEmpName(dispatchInfoPre.getEmpName());
socialAutoLog.setEmpIdcard(dispatchInfoPre.getEmpIdcard());
socialAutoLog.setErrorInfo(handleRemark);
socialAutoLog.setPhone(dispatchInfoPre.getPhone());
socialAutoLogService.save(socialAutoLog);
sendDisFalureMessageToWx(dispatchInfoPre,socialAutoLog.getId(),null);
sendDisFalureMessageToWx(dispatchInfoPre,socialAutoLog.getId());
}
if (sf.getSocialStatus().equals(CommonConstants.FIVE_STRING)) {
dispatchInfoPre.setProcessStatus(CommonConstants.EIGHT_STRING);
dispatchInfoPre.setErrorBackInfo(handleRemark);
if (null == loginNameMap.get(dispatchInfoPre.getCustomerUserLoginName())) {
UUID uuid = UUID.randomUUID();
loginNameMap.put(dispatchInfoPre.getCustomerUserLoginName(), uuid.toString());
}
TSocialAutoLog socialAutoLog = new TSocialAutoLog();
socialAutoLog.setSocialId(loginNameMap.get(dispatchInfoPre.getCustomerUserLoginName()));
socialAutoLog.setSocialId(UUID.randomUUID().toString());
socialAutoLog.setEmpName(dispatchInfoPre.getEmpName());
socialAutoLog.setEmpIdcard(dispatchInfoPre.getEmpIdcard());
socialAutoLog.setErrorInfo(handleRemark);
socialAutoLog.setPhone(dispatchInfoPre.getPhone());
socialAutoLogService.save(socialAutoLog);
sendDisFalureMessageToWx(dispatchInfoPre,socialAutoLog.getId(),null);
sendDisFalureMessageToWx(dispatchInfoPre,socialAutoLog.getId());
}
if (sf.getSocialStatus().equals(CommonConstants.THREE_STRING)) {
dispatchInfoPre.setErrorBackInfo(null);
......@@ -8862,7 +8851,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
}
//发送企业微信待办
private void sendDisFalureMessageToWx(TDispatchInfoPre pre,String id,Map<String, String> loginNameMap) {
private void sendDisFalureMessageToWx(TDispatchInfoPre pre,String id) {
//获取前端客服
SysUser user;
if (Common.isEmpty(pre.getCustomerUserLoginName())) {
......@@ -8883,7 +8872,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
Map<String, Object> requestMap = new HashMap<>();
Map<String, Object> textcard = new HashMap<>();
String authUrl = String.format(SecurityConstants.WX_GET_MESSAGE_AUTH_URL, wxConfig.getCorpid()
, wxConfig.getDomainName() + "/auth/oauth/wxLogin", "68" + null == id ? loginNameMap.get(pre.getCustomerUserLoginName()): id);
, wxConfig.getDomainName() + "/auth/oauth/wxLogin", "68" + id);
StringBuilder description = new StringBuilder();
String title = "作业自动化——社保办理失败提醒";
description.append(pre.getEmpName()).append("-").append(pre.getEmpIdcard()).append("-")
......
......@@ -45,8 +45,8 @@
<result property="medicalStartDateReduce" column="MEDICAL_START_DATE_REDUCE"/>
<result property="socialEndDateReduce" column="SOCIAL_END_DATE_REDUCE"/>
<result property="medicalEndDateReduce" column="MEDICAL_END_DATE_REDUCE"/>
<result property="SOCIAL_PRE_REDUCE_START_DATE" column="SOCIAL_PRE_REDUCE_START_DATE"/>
<result property="SOCIAL_PRE_REDUCE_END_DATE" column="SOCIAL_PRE_REDUCE_END_DATE"/>
<result property="socialPreReduceStartDate" column="SOCIAL_PRE_REDUCE_START_DATE"/>
<result property="socialPreReduceEndDate" column="SOCIAL_PRE_REDUCE_END_DATE"/>
</resultMap>
<sql id="Base_Column_List">
a.ID,
......
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