Commit a01c7d7e authored by huyuchen's avatar huyuchen

Merge remote-tracking branch 'origin/develop'

parents 8d35f90b cc3f97ab
......@@ -49,6 +49,7 @@
<docker.password>password</docker.password>
<git.commit.plugin>4.9.9</git.commit.plugin>
<spring.checkstyle.plugin>0.0.29</spring.checkstyle.plugin>
<mail.version>1.4.7</mail.version>
</properties>
<!-- 以下依赖 全局所有的模块都会引入 -->
......@@ -88,6 +89,12 @@
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- 发送邮件依赖 -->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>${mail.version}</version>
</dependency>
</dependencies>
<modules>
......
......@@ -203,4 +203,12 @@ public class DispatchEmpVo implements Serializable {
*/
private String contactAddress;
/**
* 试用期(单位月)
*/
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty(value ="试用期")
private String tryPeriod;
}
......@@ -203,7 +203,7 @@ public class EmpProjectDispatchVo implements Serializable {
* 是否更新岗位信息
*/
@Schema(description ="是否更新岗位信息")
private Boolean postUpdate;
private Boolean needUpdate;
/**
* 入职日期
......
......@@ -97,6 +97,8 @@ public class TMainExportAllVO {
private String field23;
@ExcelAttribute(needExport = true, name ="项目名称")
private String field24;
@ExcelAttribute(needExport = true, name ="项目编码")
private String field64;
@ExcelAttribute(needExport = true, name ="业务类型")
private String field25;
@ExcelAttribute(needExport = true, name = "合同类型", isDataId = true, dataType = ExcelAttributeConstants.PERSONNEL_TYPE)
......
......@@ -33,6 +33,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.cache.CacheManager;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.util.*;
import java.util.stream.Collectors;
......@@ -62,6 +63,7 @@ public class CustomerBusinessContoller {
private final UpmsDaprUtils upmsDaprUtils;
private final CacheManager cacheManager;
/**
* 简单分页查询
* @param page 分页对象
......
......@@ -117,7 +117,7 @@ public interface TEmployeeProjectMapper extends BaseMapper<TEmployeeProject> {
void updateContractStatus(@Param("empId") String empId, @Param("deptId") String deptId, @Param("status")int status);
int updatePostByEmpDeptNo(@Param("deptNo")String deptNo, @Param("post")String post,@Param("empIdcard")String empIdcard);
int updatePostByEmpDeptNo(@Param("deptNo")String deptNo, @Param("tryPeriod")String tryPeriod, @Param("post")String post,@Param("empIdcard")String empIdcard);
/**
......
......@@ -271,7 +271,7 @@ public interface TEmployeeProjectService extends IService<TEmployeeProject> {
void updateContractStatus(String empId, String deptId, int status);
void updatePostByEmpDeptNo(String deptNo, String post, String empIdcard);
void updatePostByEmpDeptNo(String deptNo, String tryPeriod, String post, String empIdcard);
/**
* @param deptId 项目id
......
......@@ -352,13 +352,6 @@ public class TCompleteMonitorServiceImpl extends ServiceImpl<TCompleteMonitorMap
response.setHeader(CommonConstants.CONTENT_DISPOSITION, CommonConstants.ATTACHMENT_FILENAME + URLEncoder.encode(fileName, CommonConstants.UTF8));
ExcelWriter excelWriter = null;
if (count > 200000) {
//if (count > CommonConstants.EXCEL_EXPORT_LIMIT)
/*List<List<String>> strList = new ArrayList<>();
strList.add(this.getNewArrayList(new String[]{"数据超过20万条,请联系管理员后端导出!"}));
List<List<String>> headList = Lists.newArrayList();
headList.add(this.getNewArrayList(new String[]{"提示"}));
EasyExcelFactory.write(out).head(headList).sheet("数据超限")
.registerConverter(new DictConverter(null, null)).doWrite(strList);*/
exportError(response, "数据超过20万条,请联系管理员后端导出");
} else {
exportLimit.setDeleteFlag(CommonConstants.ZERO_INT);
......@@ -398,6 +391,7 @@ public class TCompleteMonitorServiceImpl extends ServiceImpl<TCompleteMonitorMap
oneTitle = "在项信息";
headList.add(this.getNewArrayList(new String[]{oneTitle, "客户名称"}));
headList.add(this.getNewArrayList(new String[]{oneTitle, "项目名称"}));
headList.add(this.getNewArrayList(new String[]{oneTitle, "项目编码"}));
headList.add(this.getNewArrayList(new String[]{oneTitle, "业务类型"}));
headList.add(this.getNewArrayList(new String[]{oneTitle, "合同类型"}));
headList.add(this.getNewArrayList(new String[]{oneTitle, "工时制"}));
......
......@@ -2788,7 +2788,7 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T
EmpAddDispatchVo emp;
for (Map.Entry<String, EmpProjectDispatchVo> entry : projectsMap.entrySet()) {
projectAdd = entry.getValue();
if (Common.isNotNull(projectAdd.getPostUpdate()) && projectAdd.getPostUpdate()) {
if (Common.isNotNull(projectAdd.getNeedUpdate()) && projectAdd.getNeedUpdate()) {
continue;
}
try {
......@@ -2838,8 +2838,8 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T
EmpProjectDispatchVo projectAdd;
for (Map.Entry<String, EmpProjectDispatchVo> entry : projectsMap.entrySet()) {
projectAdd = entry.getValue();
if (Common.isNotNull(projectAdd.getPostUpdate()) && projectAdd.getPostUpdate()) {
tEmployeeProjectService.updatePostByEmpDeptNo(projectAdd.getDeptNo(), projectAdd.getPost(), projectAdd.getEmpIdcard());
if (Common.isNotNull(projectAdd.getNeedUpdate()) && projectAdd.getNeedUpdate()) {
tEmployeeProjectService.updatePostByEmpDeptNo(projectAdd.getDeptNo(), projectAdd.getTryPeriod(), projectAdd.getPost(), projectAdd.getEmpIdcard());
}
}
}
......
......@@ -1905,8 +1905,8 @@ public class TEmployeeProjectServiceImpl extends ServiceImpl<TEmployeeProjectMap
}
@Override
public void updatePostByEmpDeptNo(String deptNo, String post, String empIdcard) {
baseMapper.updatePostByEmpDeptNo(deptNo,post,empIdcard);
public void updatePostByEmpDeptNo(String deptNo,String tryPeriod, String post, String empIdcard) {
baseMapper.updatePostByEmpDeptNo(deptNo,tryPeriod,post,empIdcard);
}
/**
......
......@@ -1743,6 +1743,8 @@ public class TPreEmpMainServiceImpl extends ServiceImpl<TPreEmpMainMapper, TPreE
empId = tPreEmployeeInfo.getOldId();
emp = tEmployeeInfoService.getById(empId);
if (emp != null) {
// 生成性别年龄等:
this.setBaseSexInfo(tPreEmployeeInfo);
BeanUtil.copyProperties(tPreEmployeeInfo, emp, ID);
if (CommonConstants.ONE_INT == emp.getFileStatus()) {
emp.setCreateTime(LocalDateTime.now());
......
......@@ -16,6 +16,7 @@ spring:
password: yf_zsk
#url: jdbc:mysql://127.0.0.1:3306/yifu_upms?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
url: jdbc:mysql://192.168.1.65:43306/mvp_archives?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
#url: jdbc:mysql://119.96.147.6:22306/mvp_archives?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
hikari:
driver-class-name: ${spring.datasource.driver-class-name}
jdbc-url: ${spring.datasource.url}
......
......@@ -55,7 +55,6 @@ security:
- /tpreempmain/checkCode
# 文件上传相关 支持阿里云、华为云、腾讯、minio
oss:
endpoint: http://oss-cn-beijing.aliyuncs.com
......
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="false">
<springProperty scop="context" name="spring.application.name" source="spring.application.name" defaultValue=""/>
<property name="log.path" value="logs/${spring.application.name}"/>
<springProperty scop="context" name="springAppName" source="spring.application.name" defaultValue=""/>
<springProperty scop="context" name="springAppActive" source="spring.profiles.active" defaultValue=""/>
<property name="log.path" value="logs/${springAppName}"/>
<!-- 彩色日志格式 -->
<property name="CONSOLE_LOG_PATTERN"
value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
......@@ -19,6 +20,7 @@
</encoder>
</appender>
<!-- Log file debug output -->
<appender name="debug" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/debug.log</file>
......@@ -47,13 +49,50 @@
<level>ERROR</level>
</filter>
</appender>
<!--邮件提醒-->
<appender name="MAIL" class="ch.qos.logback.classic.net.SMTPAppender">
<smtpHost>smtp.exmail.qq.com</smtpHost>
<smtpPort>465</smtpPort>
<username>information@wanxin-holdings.com</username>
<password>QmdCaQSPmCAQEddd</password>
<SSL>true</SSL>
<asynchronousSending>true</asynchronousSending>
<to>wangpeng@wanxin-holdings.com,fangxinjiang@wanxin-holdings.com,hongguangwu@wanxin-holdings.com</to>
<from>information@wanxin-holdings.com</from>
<subject>hro-mvp ${springAppActive}环境 ${springAppName}服务: %-20msg 错误</subject>
<charsetEncoding>UTF-8</charsetEncoding>
<cyclicBufferTracker class="ch.qos.logback.core.spi.CyclicBufferTracker">
<!-- &lt;!&ndash; 每个电子邮件只发送一个日志条目 &ndash;&gt;-->
<bufferSize>1</bufferSize>
</cyclicBufferTracker>
<layout class="ch.qos.logback.classic.html.HTMLLayout"/>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
</appender>
<springProfile name="prd">
<root level="error">
<appender-ref ref="console"/>
<appender-ref ref="debug"/>
<appender-ref ref="error"/>
<appender-ref ref="MAIL"/>
</root>
</springProfile>
<springProfile name="dev">
<root level="error">
<appender-ref ref="console"/>
<appender-ref ref="debug"/>
<appender-ref ref="error"/>
</root>
</springProfile>
<springProfile name="test">
<!-- Level: FATAL 0 ERROR 3 WARN 4 INFO 6 DEBUG 7 -->
<root level="error">
<appender-ref ref="console"/>
<appender-ref ref="debug"/>
<appender-ref ref="error"/>
</root>
</springProfile>
</configuration>
......@@ -346,7 +346,7 @@
,e.POLITICAL_STATUS field15,e.EMP_PHONE field16,e.EMP_EMAIL field17
,e.ID_PROVINCE field18,e.ID_CITY field69,e.ID_TOWN field70,e.ID_PROVINCE field18,e.EMP_REGIS_TYPE field19
,e.FILE_PROVINCE field20,e.FILE_CITY field71,e.FILE_TOWN field72,if(e.status=0,'草稿','已审核') field21
,e.CONTACT_ADDRESS field22,p.UNIT_NAME field23,p.DEPT_NAME field24
,e.CONTACT_ADDRESS field22,p.UNIT_NAME field23,p.DEPT_NAME field24,p.DEPT_NO field64
,concat(p.BUSINESS_PRIMARY_TYPE,'-',ifnull(p.BUSINESS_SECOND_TYPE,''),'-',ifnull(p.BUSINESS_THIRD_TYPE,'')) field25
,p.EMP_LABEL field31
,ec.EMP_NAME field32,ec.RELATION_TYPE field33,ec.ADDRESS field34,ec.TEL field35
......
......@@ -197,6 +197,7 @@
<result property="deptNo" column="DEPT_NO"/>
<result property="post" column="POST"/>
<result property="empNo" column="EMP_NO"/>
<result property="tryPeriod" column="TRY_PERIOD"/>
</resultMap>
<sql id="baseParam">
......@@ -968,7 +969,7 @@
b.CONTRACT_START,b.CONTRACT_END,b.CONTRACT_TERM,b.CONTRACT_SUB_NAME,b.CONTRACT_ID,
c.UNIT_NAME,
c.UNIT_NO,c.DEPT_ID,c.DEPT_NAME,c.DEPT_NO,c.POST,c.EMP_NO,c.PROJECT_STATUS,c.EMP_NATRUE
c.UNIT_NO,c.DEPT_ID,c.DEPT_NAME,c.DEPT_NO,c.POST,c.EMP_NO,c.PROJECT_STATUS,c.EMP_NATRUE,c.TRY_PERIOD
from (
select e.ID,e.EMP_CODE,e.EMP_NAME,e.EMP_IDCARD,e.EMP_NATIONAL,e.EMP_PHONE,e.ID_PROVINCE,e.ID_CITY,
e.ID_TOWN,e.EMP_REGIS_TYPE,e.FILE_PROVINCE,e.FILE_CITY,e.FILE_TOWN,e.HIGN_EDUCATION,e.FILE_STATUS,e.CONTACT_ADDRESS
......@@ -984,7 +985,7 @@
</if>
) a
left join (
select p.UNIT_NAME,p.UNIT_NO,p.DEPT_ID,p.DEPT_NAME,p.DEPT_NO,p.POST,p.EMP_ID,p.EMP_NO,P.PROJECT_STATUS,p.EMP_NATRUE
select p.UNIT_NAME,p.UNIT_NO,p.DEPT_ID,p.DEPT_NAME,p.DEPT_NO,p.POST,p.EMP_ID,p.EMP_NO,P.PROJECT_STATUS,p.EMP_NATRUE,p.TRY_PERIOD
from t_employee_project p
where 1=1 and p.DELETE_FLAG = '0'
<if test="checkVo != null">
......
......@@ -1093,7 +1093,16 @@
</update>
<update id="updatePostByEmpDeptNo" >
update t_employee_project a
set a.POST = #{post}
set
<if test="post != null and post !=''">
a.POST = #{post}
<if test="tryPeriod != null and tryPeriod !=''">
,
</if>
</if>
<if test="tryPeriod != null and tryPeriod !=''">
a.TRY_PERIOD = #{tryPeriod}
</if>
WHERE a.DEPT_NO=#{deptNo} and a.EMP_IDCARD=#{empIdcard} and a.DELETE_FLAG ='0'
</update>
......
......@@ -16,8 +16,9 @@
-->
<configuration debug="false" scan="false">
<springProperty scop="context" name="spring.application.name" source="spring.application.name" defaultValue=""/>
<property name="log.path" value="logs/${spring.application.name}"/>
<springProperty scop="context" name="springAppName" source="spring.application.name" defaultValue=""/>
<springProperty scop="context" name="springAppActive" source="spring.profiles.active" defaultValue=""/>
<property name="log.path" value="logs/${springAppName}"/>
<!-- 彩色日志格式 -->
<property name="CONSOLE_LOG_PATTERN"
value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
......@@ -68,10 +69,49 @@
<appender-ref ref="error"/>
</logger>
<!--邮件提醒-->
<appender name="MAIL" class="ch.qos.logback.classic.net.SMTPAppender">
<smtpHost>smtp.exmail.qq.com</smtpHost>
<smtpPort>465</smtpPort>
<username>information@wanxin-holdings.com</username>
<password>QmdCaQSPmCAQEddd</password>
<SSL>true</SSL>
<asynchronousSending>true</asynchronousSending>
<to>wangpeng@wanxin-holdings.com,fangxinjiang@wanxin-holdings.com,hongguangwu@wanxin-holdings.com</to>
<from>information@wanxin-holdings.com</from>
<subject>hro-mvp ${springAppActive}环境 ${springAppName}服务: %-20msg 错误</subject>
<charsetEncoding>UTF-8</charsetEncoding>
<cyclicBufferTracker class="ch.qos.logback.core.spi.CyclicBufferTracker">
<!-- &lt;!&ndash; 每个电子邮件只发送一个日志条目 &ndash;&gt;-->
<bufferSize>1</bufferSize>
</cyclicBufferTracker>
<layout class="ch.qos.logback.classic.html.HTMLLayout"/>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
</appender>
<springProfile name="prd">
<root level="error">
<appender-ref ref="console"/>
<appender-ref ref="debug"/>
<appender-ref ref="error"/>
<appender-ref ref="MAIL"/>
</root>
</springProfile>
<springProfile name="dev">
<root level="error">
<appender-ref ref="console"/>
<appender-ref ref="debug"/>
<appender-ref ref="error"/>
</root>
</springProfile>
<springProfile name="test">
<!-- Level: FATAL 0 ERROR 3 WARN 4 INFO 6 DEBUG 7 -->
<root level="INFO">
<root level="error">
<appender-ref ref="console"/>
<appender-ref ref="debug"/>
<appender-ref ref="error"/>
</root>
</springProfile>
</configuration>
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="false">
<springProperty scop="context" name="spring.application.name" source="spring.application.name" defaultValue=""/>
<property name="log.path" value="logs/${spring.application.name}"/>
<springProperty scop="context" name="springAppName" source="spring.application.name" defaultValue=""/>
<springProperty scop="context" name="springAppActive" source="spring.profiles.active" defaultValue=""/>
<property name="log.path" value="logs/${springAppName}"/>
<!-- 彩色日志格式 -->
<property name="CONSOLE_LOG_PATTERN"
value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
......
......@@ -541,6 +541,7 @@ public interface CommonConstants {
public static final String PARAM_INFO_ERROR = "传参有误!";
public static final String XLS = ".xls";
public static final String XLSX = ".xlsx";
public static final String ERROR_IMPORT = "执行异常";
// 权限使用的
......
......@@ -626,4 +626,8 @@ public interface ErrorCodes {
* 户口性质不可为空
*/
String EMP_DISPATCH_EMP_REGISTYPE_NOT_EMPTY = "dispatch.emp.registype.not.empty";
/**
* 试用期不可为空
*/
String EMP_DISPATCH_EMP_TRYPERIOD_NOT_EMPTY = "dispatch.emp.tryperiod.not.empty";
}
......@@ -301,6 +301,23 @@ public class DateUtil {
}
}
public static Date stringToDateByFormat(String dateText, String format) {
if (dateText == null) {
return null;
}
try {
// 兼容多格式,格式化为没有分隔符的格式:
if (format == null) {
format = ISO_DATE_FORMAT;
}
DateFormat df = new SimpleDateFormat(format);
df.setLenient(false);
return df.parse(dateText);
} catch (ParseException e) {
return null;
}
}
/**
* @Description: 格式化字符串日期
* @Author: hgw
......@@ -1624,6 +1641,18 @@ public class DateUtil {
return sf.format(new Date());
}
/**
* @Description: 返回当前年月日时分秒字符串(一般用在导出文件名)
* @Description: 不含-
* @Author: hgw
* @Date: 2024-11-20 16:21:45
* @return: java.lang.String
**/
public static String getThisTimeNoLine(){
SimpleDateFormat sf = new SimpleDateFormat(DateUtil.DATE_PATTERN);
return sf.format(new Date());
}
/**
* @param
......
......@@ -214,7 +214,7 @@ public class NoUtil {
}
}
if (pos == -1) {
System.out.println("查找字母出错");
log.info("查找字母出错");
return "error";
}
if ('Z' == alphatableb[pos]) {
......@@ -225,7 +225,7 @@ public class NoUtil {
+ 'A' + restNumberFunc(numStr.substring(1));
} else {
//ZZZZZ
System.out.println("商户序号已达到最大值,请联系管理员");
log.info("商户序号已达到最大值,请联系管理员");
return "error";
}
} else {
......
......@@ -242,6 +242,8 @@ dispatch.emp.education.not.empty=\u5DF2\u6709\u6863\u6848\u5B66\u5386\u4E3A\u7A7
dispatch.emp.registype.not.empty=\u5DF2\u6709\u6863\u6848\u6237\u53E3\u6027\u8D28\u4E3A\u7A7A\u6216\u65E0\u6863\u6848\uFF0C\u6D3E\u5355\u6A21\u677F\u6237\u53E3\u6027\u8D28\u4E0D\u53EF\u4E3A\u7A7A\uFF0C\u8BF7\u8865\u5145\u6237\u53E3\u6027\u8D28
dispatch.emp.tryperiod.not.empty=\u5DF2\u6709\u6863\u6848\u8BD5\u7528\u671F\u4E3A\u7A7A\u6216\u65E0\u6863\u6848\uFF0C\u6D3E\u5355\u6A21\u677F\u8BD5\u7528\u671F\u4E0D\u53EF\u4E3A\u7A7A\uFF0C\u8BF7\u8865\u5145\u8BD5\u7528\u671F
......
......@@ -20,6 +20,10 @@ public class EkpOrderProperties {
* 接口url
*/
String url;
/**
* 接口url
*/
String url2;
/**
* 订单modelId
......
package com.yifu.cloud.plus.v1.yifu.ekp.util;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.ekp.config.EkpOrderProperties;
import com.yifu.cloud.plus.v1.yifu.ekp.constant.EkpConstants;
import com.yifu.cloud.plus.v1.yifu.ekp.vo.EkpOrderParam;
......@@ -13,6 +16,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.core.io.FileSystemResource;
import org.springframework.http.*;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
......@@ -21,6 +26,7 @@ import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @author licancan
......@@ -29,6 +35,7 @@ import java.util.List;
*/
@Log4j2
@EnableConfigurationProperties(EkpOrderProperties.class)
@Component
public class EkpOrderUtil {
@Autowired
private EkpOrderProperties ekpProperties;
......@@ -139,6 +146,38 @@ public class EkpOrderUtil {
});
}
}
/**
* @Author fxj
* @Description 同步项目订单的附件信息(含删除的附件)
* @Date 15:10 2024/11/15
* @Param
* @return
**/
public String syncFileFromEkp(String orderNo, String attIds){
log.info("同步项目订单附件信息");
RestTemplate yourRestTemplate = new RestTemplate();
try{
HttpHeaders headers = new HttpHeaders();
//如果EKP对该接口启用了Basic认证,那么客户端需要加入
//addAuth(headers,"yourAccount"+":"+"yourPassword");是VO,则使用APPLICATION_JSON
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
//必须设置上传类型,如果入参是字符串,使用MediaType.TEXT_PLAIN;如果
HttpEntity<Map<String,Object>> entity = new HttpEntity<Map<String,Object>>(null,headers);
//有返回值的情况 VO可以替换成具体的JavaBean
log.error("附件同步结果"+ekpProperties.getUrl());
ResponseEntity<String> obj = yourRestTemplate.exchange(ekpProperties.getUrl2()+"?addIds="+attIds+"&orderNo="+orderNo, HttpMethod.POST, null, String.class);
log.error("附件同步结果:"+ JSONObject.toJSONString(obj));
String body = obj.getBody();
if (!"推送成功".equals(body)){
log.error(EkpConstants.SEND_FAILED);
return EkpConstants.SEND_FAILED;
}else{
log.info(EkpConstants.SEND_SUCCESS + body);
return null;
}
}catch (Exception e){
log.error(e);
return "项目订单附件同步异常:"+e.getMessage();
}
}
}
......@@ -20,4 +20,6 @@ public class EkpOrderParam implements Serializable {
* 订单状态 待处理,处理中,已办结
**/
private String fd_3b0b02a34a0134;
}
#ekporder.url=http://192.168.0.228:8080/api/sys-modeling/appModelRestService/addModel
ekporder.url=http://36.7.147.29:27007/api/sys-modeling/appModelRestService/addModel
ekporder.url2=http://36.7.147.29:27007/api/hro/modelingWebservice/updateOrderFileInfo
ekporder.orderFdModelId=182f1b7ffe2e96f975564e44e559847d
ekporder.orderFdFlowId=182f1c098ce991ca96bc927408792beb
ekporder.replyFdModelId=182f1bb35bb2156fb9a02904bc88dd8a
......
/*
* 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.ekp.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;
/**
* 银企付款下载关联表
*
* @author hgw
* @date 2024-11-15 15:02:38
*/
@Data
@TableName("ekp_bank_atta")
@Schema(description = "银企付款下载关联表")
public class EkpBankAtta {
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("主键")
private String fdId;
/**
* 附件名称
*/
@ExcelAttribute(name = "附件名称", isNotEmpty = true, errorInfo = "附件名称不能为空", maxLength = 200)
@NotBlank(message = "附件名称不能为空")
@Length(max = 200, message = "附件名称不能超过200个字符")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("附件名称")
private String fdAttaName;
/**
* 资源路径
*/
@ExcelAttribute(name = "资源路径", isNotEmpty = true, errorInfo = "资源路径不能为空", maxLength = 200)
@NotBlank(message = "资源路径不能为空")
@Length(max = 200, message = "资源路径不能超过200个字符")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("资源路径")
private String fdAttaSrc;
/**
* 资源地址
*/
@ExcelAttribute(name = "资源地址", maxLength = 100)
@Length(max = 100, message = "资源地址不能超过100个字符")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("资源地址")
private String fdAttaUrl;
/**
* 资源大小
*/
@ExcelAttribute(name = "资源大小", isNotEmpty = true, errorInfo = "资源大小不能为空")
@NotBlank(message = "资源大小不能为空")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("资源大小")
private Long fdAttaSize;
/**
* 链接ID
*/
@ExcelAttribute(name = "链接ID", maxLength = 32)
@Length(max = 32, message = "链接ID不能超过32个字符")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("链接ID")
private String fdLinkId;
/**
* 类型:1:银企付款主表;2:银企付款明细表
*/
@ExcelAttribute(name = "类型")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("类型")
private Integer fdLinkType;
/**
* 创建时间
*/
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(description = "创建时间")
@TableField(fill = FieldFill.INSERT)
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("创建时间")
private LocalDateTime fdCreateTime;
/**
* @Description: 生成mdCode码
* @Author: hgw
* @Date: 2024/11/20 16:07
* @return:
**/
@TableField(exist = false)
private String mdCode;
/**
* @Description: 批次号
* @Author: hgw
* @Date: 2024/11/20 16:07
* @return:
**/
@TableField(exist = false)
private String wxNo;
}
/*
* 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.ekp.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;
/**
* 银企付款查询卡号所属行号记录表
*
* @author hgw
* @date 2024-11-18 17:04:20
*/
@Data
@TableName("ekp_bank_code_set")
@Schema(description = "银企付款查询卡号所属行号记录表")
public class EkpBankCodeSet {
/**
* fdId
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("fdId")
@Schema(description = "fdId")
private String fdId;
/**
* 卡号
*/
@ExcelAttribute(name = "卡号", isNotEmpty = true, errorInfo = "卡号不能为空", maxLength = 50)
@NotBlank(message = "卡号不能为空")
@Length(max = 50, message = "卡号不能超过50个字符")
@ExcelProperty("卡号")
@Schema(description = "卡号")
private String fdPayeeAccount;
/**
* 收款账号开户行
*/
@ExcelAttribute(name = "收款账号开户行", maxLength = 100)
@Length(max = 100, message = "收款账号开户行不能超过100个字符")
@ExcelProperty("收款账号开户行")
@Schema(description = "收款账号开户行")
private String fdRecipientBank;
/**
* 收款银行人行行号
*/
@ExcelAttribute(name = "收款银行人行行号", maxLength = 100)
@Length(max = 100, message = "收款银行人行行号不能超过100个字符")
@ExcelProperty("收款银行人行行号")
@Schema(description = "收款银行人行行号")
private String fdRecipientBankCode;
/**
* 创建时间
*/
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(description = "创建时间")
@TableField(fill = FieldFill.INSERT)
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("创建时间")
private LocalDateTime fdCreateTime;
}
/*
* 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.ekp.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 io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;
/**
* 发放结果明细(银企付款任务)
*
* @author hgw
* @date 2024-11-15 17:12:14
*/
@Data
@TableName("ekp_bank_grant_detail")
@Schema(description = "发放结果明细(银企付款任务)")
public class EkpBankGrantDetail {
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("主键")
@Schema(description = "主键")
private String fdId;
/**
* 关联银企付款表主键
*/
@ExcelAttribute(name = "关联银企付款表主键", isNotEmpty = true, errorInfo = "关联银企付款表主键不能为空", maxLength = 36)
@NotBlank(message = "关联银企付款表主键不能为空")
@Length(max = 36, message = "关联银企付款表主键不能超过36个字符")
@ExcelProperty("关联银企付款表主键")
@Schema(description = "关联银企付款表主键")
private String fdParentId;
/**
* 流水号
*/
@ExcelAttribute(name = "流水号", maxLength = 50)
@Length(max = 50, message = "流水号不能超过50个字符")
@ExcelProperty("流水号")
@Schema(description = "流水号")
private String fdSerialNumber;
/**
* 收款人名称
*/
@ExcelAttribute(name = "收款人名称", maxLength = 30)
@Length(max = 30, message = "收款人名称不能超过30个字符")
@ExcelProperty("收款人名称")
@Schema(description = "收款人名称")
private String fdPayeeName;
/**
* 收款账号
*/
@ExcelAttribute(name = "收款账号", maxLength = 50)
@Length(max = 50, message = "收款账号不能超过50个字符")
@ExcelProperty("收款账号")
@Schema(description = "收款账号")
private String fdPayeeAccount;
/**
* 金额
*/
@ExcelAttribute(name = "金额")
@ExcelProperty("金额")
@Schema(description = "金额")
private Double fdMoney;
/**
* 收款银行
*/
@ExcelAttribute(name = "收款银行", maxLength = 100)
@Length(max = 100, message = "收款银行不能超过100个字符")
@ExcelProperty("收款银行")
@Schema(description = "收款银行")
private String fdRecipientBank;
/**
* 汇款用途:工资等
*/
@ExcelAttribute(name = "汇款用途:工资等", maxLength = 10)
@Length(max = 10, message = "汇款用途:工资等不能超过10个字符")
@ExcelProperty("汇款用途:工资等")
@Schema(description = "汇款用途:工资等")
private String fdRemittancePurpose;
/**
* 备注
*/
@ExcelAttribute(name = "备注", maxLength = 500)
@Length(max = 500, message = "备注不能超过500个字符")
@ExcelProperty("备注")
@Schema(description = "备注")
private String fdRemark;
/**
* 发生时间
*/
@ExcelAttribute(name = "发生时间", isDate = true)
@ExcelProperty("发生时间")
@Schema(description = "发生时间")
private LocalDateTime fdCreateTime;
/**
* 失败反馈
*/
@ExcelAttribute(name = "失败反馈", maxLength = 500)
@Length(max = 500, message = "失败反馈不能超过500个字符")
@ExcelProperty("失败反馈")
@Schema(description = "失败反馈")
private String fdFailureFeedback;
/**
* 发放状态:发放成功、发放失败
*/
@ExcelAttribute(name = "发放状态:发放成功、发放失败", maxLength = 30)
@Length(max = 30, message = "发放状态:发放成功、发放失败不能超过30个字符")
@ExcelProperty("发放状态:发放成功、发放失败")
@Schema(description = "发放状态:发放成功、发放失败")
private String fdGrantStatus;
/**
* 处理状态:待发放、发放中、转手工
*/
@ExcelAttribute(name = "处理状态:待发放、发放中、转手工", maxLength = 30)
@Length(max = 30, message = "处理状态:待发放、发放中、转手工不能超过30个字符")
@ExcelProperty("处理状态:待发放、发放中、转手工")
@Schema(description = "处理状态:待发放、发放中、转手工")
private String fdHandleStatus;
/**
* 失败处理编号
*/
@ExcelAttribute(name = "失败处理编号", maxLength = 20)
@Length(max = 20, message = "失败处理编号不能超过20个字符")
@ExcelProperty("失败处理编号")
@Schema(description = "失败处理编号")
private String fdHandleFailNo;
/**
* 失败处理ID
*/
@ExcelAttribute(name = "失败处理ID", maxLength = 36)
@Length(max = 36, message = "失败处理ID不能超过36个字符")
@ExcelProperty("失败处理ID")
@Schema(description = "失败处理ID")
private String fdHandleFailId;
/**
* 附件ID
*/
@ExcelAttribute(name = "附件ID", maxLength = 36)
@Length(max = 36, message = "附件ID不能超过36个字符")
@ExcelProperty("附件ID")
@Schema(description = "附件ID")
private String fdAttaId;
/**
* 附件名称
*/
@ExcelAttribute(name = "附件名称", maxLength = 200)
@Length(max = 200, message = "附件名称不能超过200个字符")
@ExcelProperty("附件名称")
@Schema(description = "附件名称")
private String fdAttaName;
/**
* 附件资源路径
*/
@ExcelAttribute(name = "附件资源路径", maxLength = 200)
@Length(max = 200, message = "附件资源路径不能超过200个字符")
@ExcelProperty("附件资源路径")
@Schema(description = "附件资源路径")
private String fdAttaSrc;
/**
* 附件下载次数
*/
@ExcelAttribute(name = "附件下载次数")
@ExcelProperty("附件下载次数")
@Schema(description = "附件下载次数")
private Integer fdDownloadNum;
/**
* 失败次数
*/
@ExcelAttribute(name = "失败次数")
@ExcelProperty("失败次数")
@Schema(description = "失败次数")
private Integer fdFailNum;
/**
* 发放次数
*/
@ExcelAttribute(name = "发放次数")
@ExcelProperty("发放次数")
@Schema(description = "发放次数")
private Integer fdGrantNum;
@ExcelAttribute(name = "收款账户短信通知手机号码")
@ExcelProperty("收款账户短信通知手机号码")
@Schema(description = "收款账户短信通知手机号码")
private String fdEmpPhone;
@ExcelAttribute(name = "批次号", maxLength = 36)
@Length(max = 36, message = "批次号不能超过36个字符")
@ExcelProperty("批次号")
@Schema(description = "批次号")
private String fdWxNo;
@ExcelAttribute(name = "MD码", maxLength = 100)
@Length(max = 100, message = "MD码不能超过100个字符")
@ExcelProperty("MD码")
@Schema(description = "MD码")
private String fdMdCode;
@ExcelAttribute(name = "工资明细ID", maxLength = 36)
@Length(max = 36, message = "工资明细ID不能超过36个字符")
@ExcelProperty("工资明细ID")
@Schema(description = "工资明细ID,用来同步中信银行状态")
private String fdSalaryId;
}
/*
* 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.ekp.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
/**
* 发放日志(银企付款任务)
*
* @author hgw
* @date 2024-11-15 17:12:14
*/
@Data
@TableName("ekp_bank_grant_log")
@Schema(description = "发放日志(银企付款任务)")
public class EkpBankGrantLog {
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("主键")
@Schema(description = "主键")
private String fdId;
/**
* 关联银企付款表主键
*/
@ExcelAttribute(name = "关联银企付款表主键", isNotEmpty = true, errorInfo = "关联银企付款表主键不能为空", maxLength = 36)
@NotBlank(message = "关联银企付款表主键不能为空")
@Length(max = 36, message = "关联银企付款表主键不能超过36个字符")
@ExcelProperty("关联银企付款表主键")
@Schema(description = "关联银企付款表主键")
private String fdParentId;
/**
* 代发批次号
*/
@ExcelAttribute(name = "代发批次号", maxLength = 20)
@Length(max = 20, message = "代发批次号不能超过20个字符")
@ExcelProperty("代发批次号")
@Schema(description = "代发批次号")
private String fdBatchNumber;
/**
* 批量包名称
*/
@ExcelAttribute(name = "批量包名称", maxLength = 50)
@Length(max = 50, message = "批量包名称不能超过50个字符")
@ExcelProperty("批量包名称")
@Schema(description = "批量包名称")
private String fdBatchPackage;
/**
* 付款账号
*/
@ExcelAttribute(name = "付款账号", maxLength = 50)
@Length(max = 50, message = "付款账号不能超过50个字符")
@ExcelProperty("付款账号")
@Schema(description = "付款账号")
private String fdPaymentAccount;
/**
* 付款人名称
*/
@ExcelAttribute(name = "付款人名称", maxLength = 50)
@Length(max = 50, message = "付款人名称不能超过50个字符")
@ExcelProperty("付款人名称")
@Schema(description = "付款人名称")
private String fdDrawee;
/**
* 币种
*/
@ExcelAttribute(name = "币种", maxLength = 10)
@Length(max = 10, message = "币种不能超过10个字符")
@ExcelProperty("币种")
@Schema(description = "币种")
private String fdCurrency;
/**
* 业务类型:代发工资等
*/
@ExcelAttribute(name = "业务类型:代发工资等", maxLength = 20)
@Length(max = 20, message = "业务类型:代发工资等不能超过20个字符")
@ExcelProperty("业务类型:代发工资等")
@Schema(description = "业务类型:代发工资等")
private String fdBusinessType;
/**
* 提交时间
*/
@ExcelAttribute(name = "提交时间", isDate = true)
@ExcelProperty("提交时间")
@Schema(description = "提交时间")
private LocalDateTime fdSubmitTime;
/**
* 交易时间
*/
@ExcelAttribute(name = "交易时间", isDate = true)
@ExcelProperty("交易时间")
@Schema(description = "交易时间")
private Date fdTransactionTime;
/**
* 成功总金额
*/
@ExcelAttribute(name = "成功总金额")
@ExcelProperty("成功总金额")
@Schema(description = "成功总金额")
private BigDecimal fdSuccessFee;
/**
* 失败总金额
*/
@ExcelAttribute(name = "失败总金额")
@ExcelProperty("失败总金额")
@Schema(description = "失败总金额")
private BigDecimal fdFailFee;
/**
* 总金额
*/
@ExcelAttribute(name = "总金额")
@ExcelProperty("总金额")
@Schema(description = "总金额")
private BigDecimal fdSumFee;
/**
* 总笔数
*/
@ExcelAttribute(name = "总笔数")
@ExcelProperty("总笔数")
@Schema(description = "总笔数")
private Integer fdTransactionTotal;
/**
* 成功总笔数
*/
@ExcelAttribute(name = "成功总笔数")
@ExcelProperty("成功总笔数")
@Schema(description = "成功总笔数")
private Integer fdTransactionSuccessTotal;
/**
* 失败总笔数
*/
@ExcelAttribute(name = "失败总笔数")
@ExcelProperty("失败总笔数")
@Schema(description = "失败总笔数")
private Integer fdTransactionFailTotal;
}
/*
* 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.ekp.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 io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
/**
* 发放日志明细(银企付款任务)
*
* @author hgw
* @date 2024-11-15 17:12:14
*/
@Data
@TableName("ekp_bank_grant_log_detail")
@Schema(description = "发放日志明细(银企付款任务)")
public class EkpBankGrantLogDetail {
/**
* fdId
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("fdId")
@Schema(description = "fdId")
private String fdId;
/**
* 发放日志关联主键
*/
@ExcelAttribute(name = "发放日志关联主键", isNotEmpty = true, errorInfo = "发放日志关联主键不能为空", maxLength = 36)
@NotBlank(message = "发放日志关联主键不能为空")
@Length(max = 36, message = "发放日志关联主键不能超过36个字符")
@ExcelProperty("发放日志关联主键")
@Schema(description = "发放日志关联主键")
private String fdParentId;
/**
* 收款人名称
*/
@ExcelAttribute(name = "收款人名称", maxLength = 50)
@Length(max = 50, message = "收款人名称不能超过50个字符")
@ExcelProperty("收款人名称")
@Schema(description = "收款人名称")
private String fdPayee;
/**
* 收款账号
*/
@ExcelAttribute(name = "收款账号", maxLength = 50)
@Length(max = 50, message = "收款账号不能超过50个字符")
@ExcelProperty("收款账号")
@Schema(description = "收款账号")
private String fdPayeeAccount;
/**
* 金额
*/
@ExcelAttribute(name = "金额")
@ExcelProperty("金额")
@Schema(description = "金额")
private BigDecimal fdMoney;
/**
* 收款银行
*/
@ExcelAttribute(name = "收款银行", maxLength = 100)
@Length(max = 100, message = "收款银行不能超过100个字符")
@ExcelProperty("收款银行")
@Schema(description = "收款银行")
private String fdRecipientBank;
/**
* 汇款用途:工资等
*/
@ExcelAttribute(name = "汇款用途:工资等", maxLength = 10)
@Length(max = 10, message = "汇款用途:工资等不能超过10个字符")
@ExcelProperty("汇款用途:工资等")
@Schema(description = "汇款用途:工资等")
private String fdRemittancePurpose;
/**
* 备注
*/
@ExcelAttribute(name = "备注", maxLength = 500)
@Length(max = 500, message = "备注不能超过500个字符")
@ExcelProperty("备注")
@Schema(description = "备注")
private String fdRemark;
/**
* 指令状态
*/
@ExcelAttribute(name = "指令状态", maxLength = 20)
@Length(max = 20, message = "指令状态不能超过20个字符")
@ExcelProperty("指令状态")
@Schema(description = "指令状态")
private String fdCommandStatus;
}
/*
* 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.ekp.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 io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import java.time.LocalDateTime;
/**
* 工行返回的数据记录表
*
* @author hgw
* @date 2024-11-27 16:50:15
*/
@Data
@TableName("ekp_bank_icbc_log")
@Schema(description = "工行返回的数据记录表")
public class EkpBankIcbcLog {
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("主键")
@Schema(description = "主键")
private String fdId;
/**
* 批次号
*/
@ExcelAttribute(name = "批次号", maxLength = 50)
@Length(max = 50, message = "批次号不能超过50个字符")
@ExcelProperty("批次号")
@Schema(description = "批次号")
private String fdWxNo;
/**
* 关联ID
*/
@ExcelAttribute(name = "关联ID", maxLength = 36)
@Length(max = 36, message = "关联ID不能超过36个字符")
@ExcelProperty("关联ID")
@Schema(description = "关联ID")
private String fdParentId;
/**
* 类型
*/
@ExcelAttribute(name = "类型", maxLength = 1)
@Length(max = 36, message = "类型不能超过1个字符")
@ExcelProperty("类型")
@Schema(description = "类型:1:提交;2:获取结果")
private Integer fdType;
/**
* 日志
*/
@ExcelAttribute(name = "日志")
@ExcelProperty("日志")
@Schema(description = "日志")
private String fdLog;
/**
* 创建时间
*/
@ExcelAttribute(name = "创建时间", isDate = true)
@ExcelProperty("创建时间")
@Schema(description = "创建时间")
private LocalDateTime fdCreateTime;
}
/*
* 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.ekp.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 银企付款任务主表信息
*
* @author hgw
* @date 2024-11-15 17:12:14
*/
@Data
@TableName("ekp_bank_pay_task")
@Schema(description = "银企付款任务主表信息")
public class EkpBankPayTask {
/**
* 主键ID
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("主键ID")
@Schema(description = "主键ID")
private String fdId;
/**
* 客户名称
*/
@ExcelAttribute(name = "客户名称", maxLength = 100)
@Length(max = 100, message = "客户名称不能超过100个字符")
@ExcelProperty("客户名称")
@Schema(description = "客户名称")
private String fdCustomerName;
/**
* 项目名称
*/
@ExcelAttribute(name = "项目名称", maxLength = 100)
@Length(max = 100, message = "项目名称不能超过100个字符")
@ExcelProperty("项目名称")
@Schema(description = "项目名称")
private String fdProjectName;
/**
* 项目编码
*/
@ExcelAttribute(name = "项目编码", maxLength = 20)
@Length(max = 20, message = "项目编码不能超过20个字符")
@ExcelProperty("项目编码")
@Schema(description = "项目编码")
private String fdProjectCode;
/**
* 省
*/
@ExcelAttribute(name = "省", maxLength = 100)
@Length(max = 100, message = "省不能超过100个字符")
@ExcelProperty("省")
@Schema(description = "省")
private String fdProvince;
/**
* 市
*/
@ExcelAttribute(name = "市", maxLength = 100)
@Length(max = 100, message = "市不能超过100个字符")
@ExcelProperty("市")
@Schema(description = "市")
private String fdCity;
/**
* 县/区
*/
@ExcelAttribute(name = "县/区", maxLength = 100)
@Length(max = 100, message = "县/区不能超过100个字符")
@ExcelProperty("县/区")
@Schema(description = "县/区")
private String fdTown;
/**
* 金额
*/
@ExcelAttribute(name = "金额")
@ExcelProperty("金额")
@Schema(description = "金额")
private BigDecimal fdMoney;
/**
* 支付类别:工资、社保
*/
@ExcelAttribute(name = "支付类别:工资、社保", maxLength = 30)
@Length(max = 30, message = "支付类别:工资、社保不能超过30个字符")
@ExcelProperty("支付类别:工资、社保")
@Schema(description = "支付类别:工资、社保")
private String fdPayType;
/**
* 付款银行名称
*/
@ExcelAttribute(name = "付款银行名称", maxLength = 100)
@Length(max = 100, message = "付款银行名称不能超过100个字符")
@ExcelProperty("付款银行名称")
@Schema(description = "付款银行名称")
private String fdBankName;
/**
* 付款银行开户行
*/
@ExcelAttribute(name = "付款银行开户行", maxLength = 100)
@Length(max = 100, message = "付款银行开户行不能超过100个字符")
@ExcelProperty("付款银行开户行")
@Schema(description = "付款银行开户行")
private String fdBankNo;
/**
* 付款银行账户
*/
@ExcelAttribute(name = "付款银行账户", maxLength = 30)
@Length(max = 30, message = "付款银行账户不能超过30个字符")
@ExcelProperty("付款银行账户")
@Schema(description = "付款银行账户")
private String fdBankAccount;
/**
* 前端客服
*/
@ExcelAttribute(name = "前端客服", maxLength = 30)
@Length(max = 30, message = "前端客服不能超过30个字符")
@ExcelProperty("前端客服")
@Schema(description = "前端客服")
private String fdCustomerServer;
/**
* 创建者
*/
@ExcelAttribute(name = "创建者", maxLength = 30)
@Length(max = 30, message = "创建者不能超过30个字符")
@ExcelProperty("创建者")
@Schema(description = "创建者")
private String fdCreater;
/**
* 发放状态:待发放、发放中、已发放
*/
@ExcelAttribute(name = "发放状态:待发放、发放中、已发放", maxLength = 20)
@Length(max = 20, message = "发放状态:待发放、发放中、已发放不能超过20个字符")
@ExcelProperty("发放状态:待发放、发放中、已发放")
@Schema(description = "发放状态:待发放、发放中、已发放")
private String fdGrantStatus;
/**
* 提交出纳
*/
@ExcelAttribute(name = "提交出纳", maxLength = 20)
@Length(max = 20, message = "提交出纳不能超过20个字符")
@ExcelProperty("提交出纳")
@Schema(description = "提交出纳")
private String fdSubmitCashier;
/**
* 创建时间
*/
@ExcelAttribute(name = "创建时间", isDate = true)
@ExcelProperty("创建时间")
@Schema(description = "创建时间")
private LocalDateTime fdCreateTime;
/**
* 结算单号
*/
@ExcelAttribute(name = "结算单号", isNotEmpty = true, errorInfo = "结算单号不能为空", maxLength = 20)
@NotBlank(message = "结算单号不能为空")
@Length(max = 20, message = "结算单号不能超过20个字符")
@ExcelProperty("结算单号")
@Schema(description = "结算单号")
private String fdSettlementNo;
/**
* 结算单ID 页面跳转使用
*/
@ExcelAttribute(name = "结算单ID 页面跳转使用", isNotEmpty = true, errorInfo = "结算单ID 页面跳转使用不能为空", maxLength = 36)
@NotBlank(message = "结算单ID 页面跳转使用不能为空")
@Length(max = 36, message = "结算单ID 页面跳转使用不能超过36个字符")
@ExcelProperty("结算单ID 页面跳转使用")
@Schema(description = "结算单ID 页面跳转使用")
private String fdSettlementId;
/**
* 发放失败处理状态:待发放、发放中、已处理、转手工
*/
@ExcelAttribute(name = "发放失败处理状态:待发放、发放中、已处理、转手工", maxLength = 10)
@Length(max = 10, message = "发放失败处理状态:待发放、发放中、已处理、转手工不能超过10个字符")
@ExcelProperty("发放失败处理状态:待发放、发放中、已处理、转手工")
@Schema(description = "发放失败处理状态:待发放、发放中、已处理、转手工")
private String fdFailHandleStatus;
/**
* 附件ID
*/
@ExcelAttribute(name = "附件ID", maxLength = 36)
@Length(max = 36, message = "附件ID不能超过36个字符")
@ExcelProperty("附件ID")
@Schema(description = "附件ID")
private String fdAttaId;
/**
* 附件名称
*/
@ExcelAttribute(name = "附件名称", maxLength = 200)
@Length(max = 200, message = "附件名称不能超过200个字符")
@ExcelProperty("附件名称")
@Schema(description = "附件名称")
private String fdAttaName;
/**
* 附件资源路径
*/
@ExcelAttribute(name = "附件资源路径", maxLength = 200)
@Length(max = 200, message = "附件资源路径不能超过200个字符")
@ExcelProperty("附件资源路径")
@Schema(description = "附件资源路径")
private String fdAttaSrc;
/**
* 附件下载次数
*/
@ExcelAttribute(name = "附件下载次数")
@ExcelProperty("附件下载次数")
@Schema(description = "附件下载次数")
private Integer fdDownloadNum;
/**
* 失败次数
*/
@ExcelAttribute(name = "失败次数")
@ExcelProperty("失败次数")
@Schema(description = "失败次数")
private Integer fdFailNum;
/**
* 发放次数
*/
@ExcelAttribute(name = "发放次数")
@ExcelProperty("发放次数")
@Schema(description = "发放次数")
private Integer fdGrantNum;
@ExcelAttribute(name = "批次号", maxLength = 36)
@Length(max = 36, message = "批次号不能超过36个字符")
@ExcelProperty("批次号")
@Schema(description = "批次号")
private String fdWxNo;
@ExcelAttribute(name = "MD码", maxLength = 100)
@Length(max = 100, message = "MD码不能超过100个字符")
@ExcelProperty("MD码")
@Schema(description = "MD码")
private String fdMdCode;
@ExcelAttribute(name = "失败原因", maxLength = 500)
@Length(max = 500, message = "失败原因不能超过500个字符")
@ExcelProperty("失败原因")
@Schema(description = "失败原因")
private String fdErrorMsg;
// 明细条数
@TableField(exist = false)
private String num;
}
package com.yifu.cloud.plus.v1.ekp.vo;
import lombok.Data;
import java.io.Serializable;
/**
* @Author hgw
* @Date 2024-11-18 10:23:18
* @Description EKP银企付款下载文件Vo
* @Version 1.0
*/
@Data
public class EkpBankAttaReturnVo implements Serializable {
private String fdAttaName;
private String fdAttaUrl;
}
package com.yifu.cloud.plus.v1.ekp.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* @Author hgw
* @Date 2024-11-18 10:23:18
* @Description EKP银企付款下载文件Vo
* @Version 1.0
*/
@Data
public class EkpBankExcelVo implements Serializable {
// 日期 明细标志 顺序号 报销号 单据张数 付款账号开户行 付款账号/卡号 付款账号名称/卡名称 收款账号开户行
// 收款地区 收款银行人行行号 汇款方式 收款账号 收款账号名称 金额 汇款用途 备注信息 收款账户短信通知手机号码
@ExcelProperty("日期")
private String nowDate;
@ExcelProperty("明细标志")
private String detailTag;
@ExcelProperty("顺序号")
private String fdSerialNumber;
@ExcelProperty("报销号")
private String baoXiaoNumber;
@ExcelProperty("单据张数")
private String danJuNumber;
@ExcelProperty("付款账号开户行")
private String fdBankNo;
@ExcelProperty("付款账号/卡号")
private String fdBankAccount;
@ExcelProperty("付款账号名称/卡名称")
private String fdBankName;
// 收款银行
@ExcelProperty("收款账号开户行")
private String fdRecipientBank;
@ExcelProperty("收款地区")
private String fdRecipientAdress;
@ExcelProperty("收款银行人行行号")
private String fdRecipientBankCode;
@ExcelProperty("汇款方式")
private String payType;
@ExcelProperty("收款账号")
private String fdPayeeAccount;
@ExcelProperty("收款账号名称")
private String fdPayeeName;
@ExcelProperty("金额")
private String fdMoney;
@ExcelProperty("汇款用途")
private String fdRemittancePurpose;
@ExcelProperty("备注信息")
private String fdCoverRemark;
@ExcelProperty("收款账户短信通知手机号码")
private String fdEmpPhone;
}
package com.yifu.cloud.plus.v1.ekp.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
/**
* @Author hgw
* @Date 2024-11-25 10:32:26
* @Description EKP银企付款获取待查询结果的VO
* @Version 1.0
*/
@Data
public class EkpBankResultVo implements Serializable {
private String fdId;
private String fdParentId;
private String fdWxNo;
private String fdSalaryId;
@Schema(description = "付款银行名称")
private String fdBankName;
@Schema(description = "付款银行开户行")
private String fdBankNo;
@Schema(description = "付款银行账户")
private String fdBankAccount;
@Schema(description = "收款人名称")
private String fdPayeeName;
@Schema(description = "收款银行")
private String fdRecipientBank;
private Integer fdGrantNum;
private Integer fdFailNum;
private Integer num;
}
......@@ -99,6 +99,7 @@
<artifactId>yifu-common-ekp</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
<build>
......@@ -107,6 +108,17 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>xls</nonFilteredFileExtension>
<nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
......
package com.yifu.cloud.plus.v1.ekp.controller;
import com.icbc.api.response.JftApiPayrollQueryDetailResponseV1;
import com.yifu.cloud.plus.v1.ekp.service.IcbcTransactionFlowIssueService;
import com.yifu.cloud.plus.v1.ekp.vo.EkpBankAttaReturnVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
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.log.annotation.SysLog;
import com.yifu.cloud.plus.v1.yifu.common.security.annotation.Inner;
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 org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 聚富通代发工资相关
......@@ -19,7 +24,7 @@ import javax.servlet.http.HttpServletRequest;
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/icbcIssue" )
@RequestMapping("/icbcIssue")
@Tag(name = "聚富通代发工资相关")
public class IcbcTransactionFlowIssueController {
......@@ -34,8 +39,17 @@ public class IcbcTransactionFlowIssueController {
*/
@Operation(summary = "聚富通代发工资确认提交接口", description = "聚富通代发工资确认提交接口")
@PostMapping("/submit")
public R submitIcbcTransactionFlow() {
return icbcTransactionFlowIssueService.submitIcbcTransactionFlow();
public R<String> submitIcbcTransactionFlow(@RequestParam(required = false) String totalAmt
, @RequestParam(required = false) String totalCount, @RequestParam(required = false) String wxNo
, @RequestParam(required = false) String url, @RequestParam(required = false) String mdCode) {
if (Common.isEmpty(totalAmt) || !CommonConstants.ONE_STRING.equals(totalAmt)) {
totalAmt = "1";
totalCount = "1";
wxNo = "WX202411201649110001732092551023";
url = "020101190_WX202411201649110001732092551023_0_20241120.xls";
mdCode = "49003789330801136756328772184671605624443424719041259624457722383503273821290";
}
return icbcTransactionFlowIssueService.submitIcbcTransactionFlow(totalAmt, totalCount, wxNo, url, mdCode);
}
/**
......@@ -47,8 +61,9 @@ public class IcbcTransactionFlowIssueController {
*/
@Operation(summary = "代发工资明细查询", description = "代发工资明细查询")
@PostMapping("/page")
public R selectIcbcTransactionFlowInfo() {
return icbcTransactionFlowIssueService.selectIcbcTransactionFlowInfo();
public JftApiPayrollQueryDetailResponseV1 selectIcbcTransactionFlowInfo(@RequestParam String wxNo
, @RequestParam String startId, @RequestParam String endId) {
return icbcTransactionFlowIssueService.selectIcbcTransactionFlowInfo(wxNo, startId, endId);
}
/**
......@@ -71,9 +86,54 @@ public class IcbcTransactionFlowIssueController {
* @param
* @return
*/
@Operation(summary = "行名行号查询接口", description = "行名行号查询接口")
@Operation(summary = "行名行号查询接口---测试接口,实际接口用代发模块的查询接口", description = "行名行号查询接口")
@PostMapping("/querybankinfo")
public R querybankinfo() {
return icbcTransactionFlowIssueService.querybankinfo();
}
/**
* @param fdId 主键ID
* @param type 类型 1:主表附件;2:明细表附件
* @Description: 下载代发任务附件
* @Author: hgw
* @Date: 2024/11/15 14:51
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.ekp.entity.EkpBankAtta>
**/
@Operation(summary = "下载代发任务附件--EKP调用接口", description = "下载代发任务附件--EKP调用接口")
@SysLog("下载代发任务附件--EKP调用接口")
@GetMapping("/getIssueFileByFdId")
public R<EkpBankAttaReturnVo> getIssueFileByFdId(@RequestParam String fdId, @RequestParam String type) {
return icbcTransactionFlowIssueService.getIssueFileByFdId(fdId, type);
}
/**
* @param fdId 主键ID
* @param type 类型 1:主表附件;2:明细表附件
* @Description: 发放
* @Author: hgw
* @Date: 2024-11-22 11:32:21
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.ekp.entity.EkpBankAtta>
**/
@Operation(summary = "发放银企付款--EKP调用接口", description = "发放银企付款--EKP调用接口")
@SysLog("发放银企付款--EKP调用接口")
@GetMapping("/submitBankTask")
public R<String> submitBankTask(@RequestParam String fdId, @RequestParam String type, @RequestParam String submitUser) {
return icbcTransactionFlowIssueService.submitBankTask(fdId, type, submitUser);
}
@Operation(description = "下载文件测试")
@PostMapping("/exportAll")
@SysLog("下载文件测试")
public void exportAll(HttpServletResponse response) {
icbcTransactionFlowIssueService.exportAll(response);
}
@Operation(summary = "每小时获取银企付款结果", description = "每小时获取银企付款结果")
@Inner
@PostMapping("/inner/doGetEkpBankStatus")
public R<String> doGetEkpBankStatus() {
return icbcTransactionFlowIssueService.doGetEkpBankStatus();
}
}
package com.yifu.cloud.plus.v1.ekp.controller;
import com.icbc.api.IcbcApiException;
import com.icbc.api.response.MybankEnterpriseAccountQuerybankinfoResponseV1;
import com.yifu.cloud.plus.v1.ekp.entity.EkpBankCodeSet;
import com.yifu.cloud.plus.v1.ekp.service.IcbcTransactionFlowQueryService;
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.security.annotation.Inner;
import io.swagger.v3.oas.annotations.Operation;
......@@ -10,6 +13,7 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
......@@ -99,7 +103,10 @@ public class IcbcTransactionFlowQueryController {
*/
@Operation(summary = "行名行号查询接口", description = "行名行号查询接口")
@PostMapping("/querybankinfo")
public R querybankinfo() {
return icbcTransactionFlowQueryService.querybankinfo();
public R<EkpBankCodeSet> querybankinfo(@RequestParam(required = false) String cardNo) {
if (Common.isEmpty(cardNo)) {
cardNo = "6217752510002149161";
}
return icbcTransactionFlowQueryService.querybankinfo(cardNo);
}
}
package com.yifu.cloud.plus.v1.ekp.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yifu.cloud.plus.v1.ekp.entity.EkpBankAtta;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 社保明细表
*
* @author huyc
* @date 2024-02-29 11:21:56
*/
@Mapper
public interface EkpBankAttaMapper extends BaseMapper<EkpBankAtta> {
/**
* @param fdId
* @param type
* @Description: 获取最新的附件
* @Author: hgw
* @Date: 2024/11/15 15:20
* @return: com.yifu.cloud.plus.v1.ekp.vo.EkpDeptInfoVo
**/
EkpBankAtta getEkpBankAttaLimit(@Param("fdId") String fdId, @Param("type") String type);
}
/*
* 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.ekp.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yifu.cloud.plus.v1.ekp.entity.EkpBankCodeSet;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 银企付款查询卡号所属行号记录表
*
* @author hgw
* @date 2024-11-18 17:07:24
*/
@Mapper
public interface EkpBankCodeSetMapper extends BaseMapper<EkpBankCodeSet> {
EkpBankCodeSet getCodeSetByCardNo(@Param("cardNo") String cardNo);
}
/*
* 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.ekp.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yifu.cloud.plus.v1.ekp.entity.EkpBankGrantDetail;
import com.yifu.cloud.plus.v1.ekp.vo.EkpBankExcelVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 发放结果明细(银企付款任务)
*
* @author hgw
* @date 2024-11-15 17:12:14
*/
@Mapper
public interface EkpBankGrantDetailMapper extends BaseMapper<EkpBankGrantDetail> {
// 查询待发放条数
int getCountByIdAndMain(@Param("fdParentId") String fdParentId);
// 查询主表下的全部数据
List<EkpBankExcelVo> getEkpBankExcelVoByIdAndMain(@Param("fdParentId") String fdParentId);
// 查询详情里的1条数据
List<EkpBankExcelVo> getEkpBankExcelVoByIdAndDetail(@Param("fdId") String fdId);
// 编号查重
String getWxNoByWxNo(@Param("wxNo") String wxNo);
// 主表发放时,更新明细表的发放时间与状态
void updateStatusByGrant(@Param("fdParentId") String fdParentId);
// 主表拒绝授权时,批量更新明细表为发放失败,原因为拒绝授权
void updateStatusByGrantFail(@Param("fdParentId") String fdParentId);
// 发放失败,批量更新中信银行交易流水表fd_3b148bc0c28e48为失败,根据 工资明细fdId:fd_3b1fe00b0f5dde
void updateZhongXinStatus(@Param("salaryId") String salaryId, @Param("detailId") String detailId);
// 发放失败,批量更新中信银行交易流水Model表fd_3b148bc0c28e48为失败,根据 工资明细fdId:fd_3b1fe00b0f5dde
void updateZhongXinMainStatus(@Param("salaryId") String salaryId, @Param("detailId") String detailId);
// 发放失败,批量更新中信银行交易流水表fd_3b148bc0c28e48为失败,根据 工资明细fdId:fd_3b1fe00b0f5dde
void updateZhongXinStatusAndBankInfo(@Param("salaryIdList") List<String> salaryIdList);
// 发放失败,批量更新中信银行交易流水Model表fd_3b148bc0c28e48为失败,根据 工资明细fdId:fd_3b1fe00b0f5dde
void updateZhongXinMainStatusAndBankInfo(@Param("salaryIdList") List<String> salaryIdList);
// 获取明细表ID来更新状态
List<EkpBankGrantDetail> getListByParentId(@Param("fdParentId") String fdParentId);
}
/*
* 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.ekp.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yifu.cloud.plus.v1.ekp.entity.EkpBankGrantLogDetail;
import org.apache.ibatis.annotations.Mapper;
/**
* 发放日志明细(银企付款任务)
*
* @author hgw
* @date 2024-11-15 17:12:14
*/
@Mapper
public interface EkpBankGrantLogDetailMapper extends BaseMapper<EkpBankGrantLogDetail> {
}
/*
* 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.ekp.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yifu.cloud.plus.v1.ekp.entity.EkpBankGrantLog;
import org.apache.ibatis.annotations.Mapper;
/**
* 发放日志(银企付款任务)
*
* @author hgw
* @date 2024-11-15 17:12:14
*/
@Mapper
public interface EkpBankGrantLogMapper extends BaseMapper<EkpBankGrantLog> {
}
/*
* 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.ekp.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yifu.cloud.plus.v1.ekp.entity.EkpBankIcbcLog;
import org.apache.ibatis.annotations.Mapper;
/**
* 工行返回的数据记录表
*
* @author hgw
* @date 2024-11-27 16:50:15
*/
@Mapper
public interface EkpBankIcbcLogMapper extends BaseMapper<EkpBankIcbcLog> {
}
/*
* 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.ekp.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yifu.cloud.plus.v1.ekp.entity.EkpBankPayTask;
import com.yifu.cloud.plus.v1.ekp.vo.EkpBankResultVo;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 银企付款任务主表信息
*
* @author hgw
* @date 2024-11-15 17:12:14
*/
@Mapper
public interface EkpBankPayTaskMapper extends BaseMapper<EkpBankPayTask> {
// 获取发放中的主表,查询结果
List<EkpBankResultVo> getEkpBankMainByNeedResultMain();
// 获取发放中的明细表,查询结果
List<EkpBankResultVo> getEkpBankMainByNeedResultDetail();
}
/*
* 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.ekp.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.ekp.entity.EkpBankAtta;
/**
* 银企付款下载关联表
*
* @author hgw
* @date 2024-11-15 17:12:14
*/
public interface EkpBankAttaService extends IService<EkpBankAtta> {
}
/*
* 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.ekp.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.ekp.entity.EkpBankCodeSet;
/**
* 银企付款查询卡号所属行号记录表
*
* @author hgw
* @date 2024-11-18 17:07:24
*/
public interface EkpBankCodeSetService extends IService<EkpBankCodeSet> {
EkpBankCodeSet getCodeSetByCardNo(String cardNo);
}
/*
* 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.ekp.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.ekp.entity.EkpBankGrantDetail;
import com.yifu.cloud.plus.v1.ekp.vo.EkpBankExcelVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 发放结果明细(银企付款任务)
*
* @author hgw
* @date 2024-11-15 17:12:14
*/
public interface EkpBankGrantDetailService extends IService<EkpBankGrantDetail> {
// 查询待发条数
int getCountByIdAndMain(String fdParentId);
// 查询下载的待发 明细数据
List<EkpBankExcelVo> getEkpBankExcelVoByIdAndMain(String fdParentId);
// 查询下载的待发 明细数据
List<EkpBankExcelVo> getEkpBankExcelVoByIdAndDetail(String fdId);
// 查询编码是否重复
String getWxNoByWxNo(String wxNo);
// 主表发放时,更新明细表的发放时间与状态
void updateStatusByGrant(String fdParentId);
// 发放失败,批量更新中信银行交易流水表fd_3b148bc0c28e48为失败,根据 工资明细fdId:fd_3b1fe00b0f5dde
void updateZhongXinStatus(String salaryId, String detailId);
void updateZhongXinMainStatus(String salaryId, String detailId);
// 明细再次-发放失败,批量更新中信银行交易流水表fd_3b148bc0c28e48为失败,根据 工资明细fdId:fd_3b1fe00b0f5dde
void updateZhongXinStatusAndBankInfo(List<String> salaryIdList);
void updateZhongXinMainStatusAndBankInfo(List<String> salaryIdList);
// 主表拒绝授权时,批量更新明细表为发放失败,原因为拒绝授权
void updateStatusByGrantFail(String fdParentId);
// 获取明细表ID来更新状态
List<EkpBankGrantDetail> getListByParentId(String fdParentId);
}
/*
* 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.ekp.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.ekp.entity.EkpBankGrantLogDetail;
/**
* 发放日志明细(银企付款任务)
*
* @author hgw
* @date 2024-11-15 17:12:14
*/
public interface EkpBankGrantLogDetailService extends IService<EkpBankGrantLogDetail> {
}
/*
* 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.ekp.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.ekp.entity.EkpBankGrantLog;
/**
* 发放日志(银企付款任务)
*
* @author hgw
* @date 2024-11-15 17:12:14
*/
public interface EkpBankGrantLogService extends IService<EkpBankGrantLog> {
}
/*
* 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.ekp.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.ekp.entity.EkpBankIcbcLog;
/**
* 工行返回的数据记录表
*
* @author hgw
* @date 2024-11-27 16:50:15
*/
public interface EkpBankIcbcLogService extends IService<EkpBankIcbcLog> {
}
/*
* 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.ekp.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.ekp.entity.EkpBankPayTask;
import com.yifu.cloud.plus.v1.ekp.vo.EkpBankResultVo;
import java.util.List;
/**
* 银企付款任务主表信息
*
* @author hgw
* @date 2024-11-15 17:12:14
*/
public interface EkpBankPayTaskService extends IService<EkpBankPayTask> {
/**
* @Description: 获取发放中的主表,查询结果
* @Author: hgw
* @Date: 2024-11-25 10:25:58
* @return: com.yifu.cloud.plus.v1.ekp.entity.EkpBankPayTask
**/
List<EkpBankResultVo> getEkpBankMainByNeedResultMain();
/**
* @Description: 获取发放中的明细表,查询结果
* @Author: hgw
* @Date: 2024/11/25 10:38
* @return: java.util.List<com.yifu.cloud.plus.v1.ekp.vo.EkpBankResultVo>
**/
List<EkpBankResultVo> getEkpBankMainByNeedResultDetail();
}
package com.yifu.cloud.plus.v1.ekp.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.icbc.api.response.JftApiPayrollQueryDetailResponseV1;
import com.yifu.cloud.plus.v1.ekp.entity.EkpBankAtta;
import com.yifu.cloud.plus.v1.ekp.entity.EkpSocialInfo;
import com.yifu.cloud.plus.v1.ekp.vo.EkpBankAttaReturnVo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 聚富通代发工资相关
......@@ -20,7 +24,8 @@ public interface IcbcTransactionFlowIssueService extends IService<EkpSocialInfo>
* @Date: 2024-11-12
* @return: R
**/
R submitIcbcTransactionFlow();
R<String> submitIcbcTransactionFlow(String totalAmt, String totalCount, String wxNo
, String url, String mdCode);
/**
* @Description: 代发任务批次明细查询
......@@ -28,7 +33,7 @@ public interface IcbcTransactionFlowIssueService extends IService<EkpSocialInfo>
* @Date: 2024-11-12
* @return: R
**/
R selectIcbcTransactionFlowInfo();
JftApiPayrollQueryDetailResponseV1 selectIcbcTransactionFlowInfo(String wxNo, String startId, String endId);
R asyncNotice(HttpServletRequest request) throws Exception;
......@@ -40,4 +45,35 @@ public interface IcbcTransactionFlowIssueService extends IService<EkpSocialInfo>
**/
R querybankinfo();
/**
* @param fdId 主键ID
* @param type 类型 1:主表附件;2:明细表附件
* @Description: 下载银企付款
* @Author: hgw
* @Date: 2024/11/18 10:18
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.ekp.entity.EkpBankAtta>
**/
R<EkpBankAttaReturnVo> getIssueFileByFdId(String fdId, String type);
/**
* @param fdId 主键ID
* @param type 类型 1:主表附件;2:明细表附件
* @Description: 发放银企付款
* @Author: hgw
* @Date: 2024/11/22 11:32
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
R<String> submitBankTask(String fdId, String type, String submitUser);
// 验证下载文件的正确性
void exportAll(HttpServletResponse response);
/**
* @Description: 每小时获取银企付款结果
* @Author: hgw
* @Date: 2024/11/22 16:56
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
R<String> doGetEkpBankStatus();
}
......@@ -2,6 +2,8 @@ package com.yifu.cloud.plus.v1.ekp.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.icbc.api.IcbcApiException;
import com.icbc.api.response.MybankEnterpriseAccountQuerybankinfoResponseV1;
import com.yifu.cloud.plus.v1.ekp.entity.EkpBankCodeSet;
import com.yifu.cloud.plus.v1.ekp.entity.EkpSocialInfo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
......@@ -27,6 +29,6 @@ public interface IcbcTransactionFlowQueryService extends IService<EkpSocialInfo>
* @Date: 2024-11-12
* @return: R
**/
R querybankinfo();
R<EkpBankCodeSet> querybankinfo(String cardNo);
}
/*
* 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.ekp.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.ekp.entity.EkpBankAtta;
import com.yifu.cloud.plus.v1.ekp.mapper.EkpBankAttaMapper;
import com.yifu.cloud.plus.v1.ekp.service.EkpBankAttaService;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
/**
* 银企付款下载关联表
*
* @author hgw
* @date 2024-11-15 17:12:14
*/
@Log4j2
@Service
public class EkpBankAttaServiceImpl extends ServiceImpl<EkpBankAttaMapper, EkpBankAtta> implements EkpBankAttaService {
}
/*
* 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.ekp.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.ekp.entity.EkpBankCodeSet;
import com.yifu.cloud.plus.v1.ekp.mapper.EkpBankCodeSetMapper;
import com.yifu.cloud.plus.v1.ekp.service.EkpBankCodeSetService;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
/**
* 银企付款查询卡号所属行号记录表
*
* @author hgw
* @date 2024-11-18 17:07:24
*/
@Log4j2
@Service
public class EkpBankCodeSetServiceImpl extends ServiceImpl<EkpBankCodeSetMapper, EkpBankCodeSet> implements EkpBankCodeSetService {
@Override
public EkpBankCodeSet getCodeSetByCardNo(String cardNo) {
return baseMapper.getCodeSetByCardNo(cardNo);
}
}
/*
* 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.ekp.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.ekp.entity.EkpBankGrantDetail;
import com.yifu.cloud.plus.v1.ekp.mapper.EkpBankGrantDetailMapper;
import com.yifu.cloud.plus.v1.ekp.service.EkpBankGrantDetailService;
import com.yifu.cloud.plus.v1.ekp.vo.EkpBankExcelVo;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 发放结果明细(银企付款任务)
*
* @author hgw
* @date 2024-11-15 17:12:14
*/
@Log4j2
@Service
public class EkpBankGrantDetailServiceImpl extends ServiceImpl<EkpBankGrantDetailMapper, EkpBankGrantDetail> implements EkpBankGrantDetailService {
@Override
public int getCountByIdAndMain(String fdParentId) {
return baseMapper.getCountByIdAndMain(fdParentId);
}
@Override
public List<EkpBankExcelVo> getEkpBankExcelVoByIdAndMain(String fdParentId) {
return baseMapper.getEkpBankExcelVoByIdAndMain(fdParentId);
}
@Override
public List<EkpBankExcelVo> getEkpBankExcelVoByIdAndDetail(String fdId) {
return baseMapper.getEkpBankExcelVoByIdAndDetail(fdId);
}
@Override
public String getWxNoByWxNo(String wxNo) {
return baseMapper.getWxNoByWxNo(wxNo);
}
@Override
public void updateStatusByGrant(String fdParentId) {
baseMapper.updateStatusByGrant(fdParentId);
}
// 发放失败,批量更新中信银行交易流水表fd_3b148bc0c28e48为失败,根据 工资明细fdId:fd_3b1fe00b0f5dde
@Override
public void updateZhongXinStatus(String salaryId, String detailId) {
baseMapper.updateZhongXinStatus(salaryId, detailId);
}
// 发放失败,批量更新中信银行交易流水表fd_3b148bc0c28e48为失败,根据 工资明细fdId:fd_3b1fe00b0f5dde
@Override
public void updateZhongXinMainStatus(String salaryId, String detailId) {
baseMapper.updateZhongXinMainStatus(salaryId, detailId);
}
// 明细再次-发放失败,批量更新中信银行交易流水表fd_3b148bc0c28e48为失败,根据 工资明细fdId:fd_3b1fe00b0f5dde
@Override
public void updateZhongXinStatusAndBankInfo(List<String> salaryIdList) {
baseMapper.updateZhongXinStatusAndBankInfo(salaryIdList);
}
// 明细再次-发放失败,批量更新中信银行交易流水表fd_3b148bc0c28e48为失败,根据 工资明细fdId:fd_3b1fe00b0f5dde
@Override
public void updateZhongXinMainStatusAndBankInfo(List<String> salaryIdList) {
baseMapper.updateZhongXinMainStatusAndBankInfo(salaryIdList);
}
@Override
public void updateStatusByGrantFail(String fdParentId) {
baseMapper.updateStatusByGrantFail(fdParentId);
}
@Override
public List<EkpBankGrantDetail> getListByParentId(String fdParentId) {
return baseMapper.getListByParentId(fdParentId);
}
}
/*
* 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.ekp.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.ekp.entity.EkpBankGrantLogDetail;
import com.yifu.cloud.plus.v1.ekp.mapper.EkpBankGrantLogDetailMapper;
import com.yifu.cloud.plus.v1.ekp.service.EkpBankGrantLogDetailService;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
/**
* 发放日志明细(银企付款任务)
*
* @author hgw
* @date 2024-11-15 17:12:14
*/
@Log4j2
@Service
public class EkpBankGrantLogDetailServiceImpl extends ServiceImpl<EkpBankGrantLogDetailMapper, EkpBankGrantLogDetail> implements EkpBankGrantLogDetailService {
}
/*
* 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.ekp.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.ekp.entity.EkpBankGrantLog;
import com.yifu.cloud.plus.v1.ekp.mapper.EkpBankGrantLogMapper;
import com.yifu.cloud.plus.v1.ekp.service.EkpBankGrantLogService;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
/**
* 发放日志(银企付款任务)
*
* @author hgw
* @date 2024-11-15 17:12:14
*/
@Log4j2
@Service
public class EkpBankGrantLogServiceImpl extends ServiceImpl<EkpBankGrantLogMapper, EkpBankGrantLog> implements EkpBankGrantLogService {
}
/*
* 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.ekp.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.ekp.entity.EkpBankIcbcLog;
import com.yifu.cloud.plus.v1.ekp.mapper.EkpBankIcbcLogMapper;
import com.yifu.cloud.plus.v1.ekp.service.EkpBankIcbcLogService;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
/**
* 工行返回的数据记录表
*
* @author hgw
* @date 2024-11-27 16:50:15
*/
@Log4j2
@Service
public class EkpBankIcbcLogServiceImpl extends ServiceImpl<EkpBankIcbcLogMapper, EkpBankIcbcLog> implements EkpBankIcbcLogService {
}
/*
* 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.ekp.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.ekp.entity.EkpBankPayTask;
import com.yifu.cloud.plus.v1.ekp.mapper.EkpBankPayTaskMapper;
import com.yifu.cloud.plus.v1.ekp.service.EkpBankPayTaskService;
import com.yifu.cloud.plus.v1.ekp.vo.EkpBankResultVo;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 银企付款任务主表信息
*
* @author hgw
* @date 2024-11-15 17:12:14
*/
@Log4j2
@Service
public class EkpBankPayTaskServiceImpl extends ServiceImpl<EkpBankPayTaskMapper, EkpBankPayTask> implements EkpBankPayTaskService {
/**
* @Description: 获取发放中的主表,查询结果
* @Author: hgw
* @Date: 2024/11/25 10:26
* @return: java.util.List<com.yifu.cloud.plus.v1.ekp.entity.EkpBankPayTask>
**/
@Override
public List<EkpBankResultVo> getEkpBankMainByNeedResultMain() {
return baseMapper.getEkpBankMainByNeedResultMain();
}
/**
* @Description: 获取发放中的明细表,查询结果
* @Author: hgw
* @Date: 2024/11/25 10:39
* @return: java.util.List<com.yifu.cloud.plus.v1.ekp.vo.EkpBankResultVo>
**/
@Override
public List<EkpBankResultVo> getEkpBankMainByNeedResultDetail() {
return baseMapper.getEkpBankMainByNeedResultDetail();
}
}
......@@ -16,10 +16,13 @@ import com.icbc.api.response.MybankEnterpriseAccountQuerybankinfoResponseV1;
import com.icbc.api.response.MybankEnterpriseTradeQhisdResponseV1;
import com.yifu.cloud.plus.v1.ekp.config.EkpEntryProperties;
import com.yifu.cloud.plus.v1.ekp.config.IcbcConfigProperties;
import com.yifu.cloud.plus.v1.ekp.entity.EkpBankCodeSet;
import com.yifu.cloud.plus.v1.ekp.entity.EkpSocialInfo;
import com.yifu.cloud.plus.v1.ekp.mapper.EkpSocialInfoMapper;
import com.yifu.cloud.plus.v1.ekp.service.EkpBankCodeSetService;
import com.yifu.cloud.plus.v1.ekp.service.IcbcTransactionFlowQueryService;
import com.yifu.cloud.plus.v1.ekp.vo.EKPEntryPushParam;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.DateUtil;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import io.micrometer.core.instrument.util.StringUtils;
......@@ -34,6 +37,7 @@ import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import java.text.ParseException;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
......@@ -58,6 +62,8 @@ public class IcbcTransactionFlowQueryServiceImpl extends ServiceImpl<EkpSocialIn
@Autowired
private EkpEntryProperties ekpEntryProperties;
@Autowired
private EkpBankCodeSetService ekpBankCodeSetService;
@Override
public R getIcbcTransactionFlow() {
......@@ -104,8 +110,8 @@ public class IcbcTransactionFlowQueryServiceImpl extends ServiceImpl<EkpSocialIn
try {
//到账通知交易流水查询
response = client.execute(request);
log.error("到账通知交易流水状态" + response.getStatus());
log.error("到账通知交易流水结果" + response.getErrordesc());
log.info("到账通知交易流水状态" + response.getStatus());
log.info("到账通知交易流水结果" + response.getErrordesc());
if ("00".equals(response.getStatus())) {
return R.ok(response.getDatalist());
} else {
......@@ -333,17 +339,19 @@ public class IcbcTransactionFlowQueryServiceImpl extends ServiceImpl<EkpSocialIn
* @return: R
**/
@Override
public R querybankinfo() {
public R<EkpBankCodeSet> querybankinfo(String cardNo) {
String privateKey = "4d931f6ad4331158fcc4dea23f0d71393328146e40b5f63f197b9f6ad3732f44";
String APIGW_PUBLIC_KEY = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCMpjaWjngB4E3ATh+G1DVAmQnIpiPEFAEDqRfNGAVvvH35yDetqewKi0l7OEceTMN1C6NPym3zStvSoQayjYV+eIcZERkx31KhtFu9clZKgRTyPjdKMIth/wBtPKjL/5+PYalLdomM4ONthrPgnkN4x4R0+D4+EBpXo8gNiAFsNwIDAQAB";
// DefaultIcbcClient client = new DefaultIcbcClient("11000000000000019038", IcbcConstants.SIGN_TYPE_CA_SM_ICBC,privateKey, APIGW_PUBLIC_KEY);
// DefaultIcbcClient client = new DefaultIcbcClient("11000000000000019038", IcbcConstants.SIGN_TYPE_CA_SM_ICBC,privateKey, APIGW_PUBLIC_KEY)
DefaultIcbcClient client = new DefaultIcbcClient("11000000000000019038", IcbcConstants.SIGN_TYPE_CA_SM_ICBC, privateKey,
IcbcConstants.CHARSET_UTF8, IcbcConstants.FORMAT_JSON, null,
null, null, icbcConfigProperties.getCaSm(), null);
client.setIcbc_ca(icbcConfigProperties.getCaSmIcbc());
// 返回
MybankEnterpriseAccountQuerybankinfoResponseV1 response = null;
try {
MybankEnterpriseAccountQuerybankinfoRequestV1.MybankEnterpriseAccountQuerybankinfoRequestBizV1 bizContent =
new MybankEnterpriseAccountQuerybankinfoRequestV1.MybankEnterpriseAccountQuerybankinfoRequestBizV1();
......@@ -356,21 +364,25 @@ public class IcbcTransactionFlowQueryServiceImpl extends ServiceImpl<EkpSocialIn
bizContent.setTranTime("103231001");
bizContent.setLanguage("zh_CN");
bizContent.setfSeqNo("AHWX"+ System.currentTimeMillis());
bizContent.setCardNo("6217752510002149161");
// 6217752510002149161
bizContent.setCardNo(cardNo);
request.setServiceUrl("https://gw.open.icbc.com.cn/api/mybank/enterprise/account/querybankinfo/V1");
request.setBizContent(bizContent);
MybankEnterpriseAccountQuerybankinfoResponseV1 response = client.execute(request);
response = client.execute(request);
if (response.isSuccess()) {
// 业务成功处理
System.out.println("success");
} else {
// 失败
System.out.println("error");
// 业务成功处理-存储起来
EkpBankCodeSet codeSet = new EkpBankCodeSet();
codeSet.setFdCreateTime(LocalDateTime.now());
codeSet.setFdRecipientBankCode(response.getBankCode());
codeSet.setFdPayeeAccount(cardNo);
codeSet.setFdRecipientBank(response.getBankName());
ekpBankCodeSetService.save(codeSet);
return R.ok(codeSet);
}
} catch (Exception e) {
e.printStackTrace();
log.error("银企付款任务,查询行号错误:", e);
}
return R.ok();
return R.failed("未找到");
}
@Override
......
......@@ -71,10 +71,20 @@ springdoc:
#按包路径匹配
packagesToScan: com.yifu.cloud.plus.v1.ekp.controller
#工行生产环境配置
#工行到账查询生产环境配置
icbc:
appId: 11000000000000019038
appPrivateKey: 4d931f6ad4331158fcc4dea23f0d71393328146e40b5f63f197b9f6ad3732f44
serverUrl: https://gw.open.icbc.com.cn/api/mybank/enterprise/trade/qhisd/V1
caSm: MIICSTCCAeygAwIBAgIGAJuAEtYAMAwGCCqBHM9VAYN1BQAwQTELMAkGA1UEBhMCY24xGzAZBgNVBAoMEnNtMmNvci5pY2JjLmNvbS5jbjEVMBMGA1UEAwwMc20ycm9vdGNhY29yMB4XDTIzMTIyMTA5NTAxNloXDTI4MTIyMTE1NTk1OVowVDELMAkGA1UEBhMCY24xGzAZBgNVBAoMEnNtMmNvci5pY2JjLmNvbS5jbjENMAsGA1UECwwEMTMwMjEZMBcGA1UEAwwQYWh3eC55LjEzMDIuMDIwMTBZMBMGByqGSM49AgEGCCqBHM9VAYItA0IABGEC1fF2rHTWfipQhOr+8SfvXDBiazIrImcsPH5aGaYMFK2RIXv0AF2xe2ZgAzcWRbgop0cAjaBHXpzSfIlnfl6jgbowgbcwHwYDVR0jBBgwFoAUDD6RRlIIkxjZ0/0x6S8mKdW3D2YwCQYDVR0TBAIwADBdBgNVHR8EVjBUMFKgUKBOpEwwSjEQMA4GA1UEAwwHY3JsNDE3MDEMMAoGA1UECwwDY3JsMRswGQYDVQQKDBJzbTJjb3IuaWNiYy5jb20uY24xCzAJBgNVBAYTAmNuMAsGA1UdDwQEAwIHgDAdBgNVHQ4EFgQUd0LHEI6l7Faq6/9GObNld3SH7xswDAYIKoEcz1UBg3UFAANJADBGAiEA68uRM5zYzMhaheAG+fw3AtkRFE5146+Qw6GVP93WojwCIQDzsIL3duLRtTot8ciVuKUQkI+GrXAg7nWnd2M2o9oRBw==
caSmIcbc: MIIDdDCCAxegAwIBAgIFRjBiNDYwDAYIKoEcz1UBg3UFADBcMQswCQYDVQQGEwJDTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRswGQYDVQQDDBJDRkNBIEFDUyBTTTIgT0NBMzEwHhcNMjMwMjE1MDkyMTA5WhcNMjgwMjE1MDkyMTA5WjCBpTELMAkGA1UEBhMCQ04xGzAZBgNVBAoMEkNGQ0EgQUNTIFNNMiBPQ0EzMTETMBEGA1UECwwKQ0ZDQSBPQ0EzMTEZMBcGA1UECwwQT3JnYW5pemF0aW9uYWwtMTFJMEcGA1UEAwxAQ0ZDQUDkuK3lm73lt6XllYbpk7booYzogqHku73mnInpmZDlhazlj7hATjkxMTAwMDAwMTAwMDAzOTYyVEAxNjBZMBMGByqGSM49AgEGCCqBHM9VAYItA0IABC7pDFU19+SE4Bog4M7om/nsDbTtXHBlfp5G2e1Iya4LmFW5ZqOxmmQBysFwl9nDq3svOHMZ53Mpe14Z1m/OYFajggF4MIIBdDBsBggrBgEFBQcBAQRgMF4wKAYIKwYBBQUHMAGGHGh0dHA6Ly9vY3NwLmNmY2EuY29tLmNuL29jc3AwMgYIKwYBBQUHMAKGJmh0dHA6Ly9jcmwuY2ZjYS5jb20uY24vb2NhMzEvb2NhMzEuY2VyMB8GA1UdIwQYMBaAFAjY0SbESH2c7KyY6fF/YrmAzqlFMAwGA1UdEwEB/wQCMAAwSAYDVR0gBEEwPzA9BghggRyG7yoBBDAxMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmNmY2EuY29tLmNuL3VzL3VzLTE0Lmh0bTA9BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3JsLmNmY2EuY29tLmNuL29jYTMxL1NNMi9jcmwyNzMwLmNybDAOBgNVHQ8BAf8EBAMCBsAwHQYDVR0OBBYEFOpEqrs73yvBXqvDQoT33v05FnDIMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDAMBggqgRzPVQGDdQUAA0kAMEYCIQCdKpfhUijpAKEQekHxlk4LvnqzzaYmODo3T3qmZUJsUwIhAOaMMH0IpwefVTSwJlhrVbmEB5DmoxLo1Xb/1tvfW1l2
#工行代发生产环境配置
icbcissue:
appId: 11000000000000028685
appPrivateKey: MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCEZYrhm3dBp3PqlMc9fBBEE8Tp8M34Yy6Ucs3FV/VahsdHaLe0kEPugf1twbt/hD4hdIwzUj/ZtG2BhusRiMptdlWtNKcIgFxaaFaKANKrIodeQjv0jjZvK9ugoQxmiM4gF5SGX2a847zohv/6TvAYiB9AI3tdKQTbj6I3pwmuO3cfzgU5IwepeguE4fxqnh7C19MEq4vXv0yBq/f43zQ2HBMS+KRgokNLUBqoEOyfaKkPL9ot+zISPwENQOLqQMZ1hczp5tEB2FeZecdzrzjeXkzPSy1ZJmNyNuOl+WG85aoeDJTQ7hx/g6KFA6zU2VBGUR7q4pXdGRslpa6KYETBAgMBAAECggEALkfElXqf5G5hocWiJAcDNJjog5JunX4mITREY9CMbrmgXYDofpDTfkMoUL6hCUEz6sPv4lzE/xgIE3gTIcz8Xek4p9Q480rTfbLtVU5WVgY65aMnjCROOOxO2MaTLCB0VVmIzLP6mNrPBUVzo48GdLzYl7YPgJA/J3T9EpEsXB/iAdjiv/VH9vOIW6WUlQUSceyNznf1rfwMJvHt7zb56IJGZMq9G6C5SUeqWbqbvNi+nL8yeu8fM/O/ERZJQBDwMXbRAPvhhcbDwVzpg4BRc7AVv0SLzy6ZA2+zLJmDe9F9uXmG6QQ4ra8mDqLeugDP9blKUOEm8JLIh7nzvhpNhQKBgQDK4ZEz1zui6GQsxsnbm24EvparfniPqDBS/V29MDZysXDmG123R22RA//BWC3m5cY+3vg0ayCGaXRrc9/V+u+jmwVfsR6XCM6WM2IZVVFBUzqKMlTKsZ4n3V/6pqBHG8++GUab5W6p/7NYI22xx0ZFObEt4EkaaaP7RzY6AVrtCwKBgQCnD6P24uR6VHN84lhyZl+iJW6azTd26AhaJ768wSl5rqN6N4AV9cXeAUKylPgMPvy+2mjNX7He0Oitb7/lrKK93/olmDQoHpqj1yZum8VVPiyEKk6qCoYYoHEloLPJDPRs6yiBjrO8oghHRuyJErKRN6IZC3Rq/mrXuDwrZYS84wKBgFn9wDisigly56xs6PD+esij+ZVMXhHq2rSVKlVW42/wgVGwZdt8VX9ztKiAgqve1BbjNFmcAytb74YSOgFic5Wwl6uglx8LiwdY93ShQY+maVsPhEj8jFjGe2JlMscX8QgzkfxowrOpdlXsMSYgbG0ccBkXWZXbsh8tsUH9g+WNAoGAbQ5avOo0uF603Uts7ZFC0Lia0Vcx499oxGG5s8Js7tBAS6I7bRp5xokQHz/8BRKBL52oWJklpgy+N6oBnU7rFgRGaZBITABedqIWppHtac4ihUyQ+ZPRIfZqpmOXuaFJVmjUkm6zimpD+TOlaX3ZL88fdDX0E3xuBtBwBuxIkH0CgYEAlXyBbG2/fVV/PDUVCAA+aeWstojR1ncDhJmFnENSk5I/y3mh+d+u4ZG3hmVQZfR1EYM+n9wPQ2LxqNpGPA8o4JK/MSfVKun4lBwjkergHzxWJ5AMuYL1DPrOtMPEqrTqOHfVzSZGsz9cMK4tDWETKKFBOM/5oSdGGW3oYvzcS0M=
apigwPublicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCMpjaWjngB4E3ATh+G1DVAmQnIpiPEFAEDqRfNGAVvvH35yDetqewKi0l7OEceTMN1C6NPym3zStvSoQayjYV+eIcZERkx31KhtFu9clZKgRTyPjdKMIth/wBtPKjL/5+PYalLdomM4ONthrPgnkN4x4R0+D4+EBpXo8gNiAFsNwIDAQAB
companyNo: '020101190'
aesKey: 8jTKCqZ9035g+HRzpZQqZA==
caSm: MIICSTCCAeygAwIBAgIGAJuAEtYAMAwGCCqBHM9VAYN1BQAwQTELMAkGA1UEBhMCY24xGzAZBgNVBAoMEnNtMmNvci5pY2JjLmNvbS5jbjEVMBMGA1UEAwwMc20ycm9vdGNhY29yMB4XDTIzMTIyMTA5NTAxNloXDTI4MTIyMTE1NTk1OVowVDELMAkGA1UEBhMCY24xGzAZBgNVBAoMEnNtMmNvci5pY2JjLmNvbS5jbjENMAsGA1UECwwEMTMwMjEZMBcGA1UEAwwQYWh3eC55LjEzMDIuMDIwMTBZMBMGByqGSM49AgEGCCqBHM9VAYItA0IABGEC1fF2rHTWfipQhOr+8SfvXDBiazIrImcsPH5aGaYMFK2RIXv0AF2xe2ZgAzcWRbgop0cAjaBHXpzSfIlnfl6jgbowgbcwHwYDVR0jBBgwFoAUDD6RRlIIkxjZ0/0x6S8mKdW3D2YwCQYDVR0TBAIwADBdBgNVHR8EVjBUMFKgUKBOpEwwSjEQMA4GA1UEAwwHY3JsNDE3MDEMMAoGA1UECwwDY3JsMRswGQYDVQQKDBJzbTJjb3IuaWNiYy5jb20uY24xCzAJBgNVBAYTAmNuMAsGA1UdDwQEAwIHgDAdBgNVHQ4EFgQUd0LHEI6l7Faq6/9GObNld3SH7xswDAYIKoEcz1UBg3UFAANJADBGAiEA68uRM5zYzMhaheAG+fw3AtkRFE5146+Qw6GVP93WojwCIQDzsIL3duLRtTot8ciVuKUQkI+GrXAg7nWnd2M2o9oRBw==
caSmIcbc: MIIDdDCCAxegAwIBAgIFRjBiNDYwDAYIKoEcz1UBg3UFADBcMQswCQYDVQQGEwJDTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRswGQYDVQQDDBJDRkNBIEFDUyBTTTIgT0NBMzEwHhcNMjMwMjE1MDkyMTA5WhcNMjgwMjE1MDkyMTA5WjCBpTELMAkGA1UEBhMCQ04xGzAZBgNVBAoMEkNGQ0EgQUNTIFNNMiBPQ0EzMTETMBEGA1UECwwKQ0ZDQSBPQ0EzMTEZMBcGA1UECwwQT3JnYW5pemF0aW9uYWwtMTFJMEcGA1UEAwxAQ0ZDQUDkuK3lm73lt6XllYbpk7booYzogqHku73mnInpmZDlhazlj7hATjkxMTAwMDAwMTAwMDAzOTYyVEAxNjBZMBMGByqGSM49AgEGCCqBHM9VAYItA0IABC7pDFU19+SE4Bog4M7om/nsDbTtXHBlfp5G2e1Iya4LmFW5ZqOxmmQBysFwl9nDq3svOHMZ53Mpe14Z1m/OYFajggF4MIIBdDBsBggrBgEFBQcBAQRgMF4wKAYIKwYBBQUHMAGGHGh0dHA6Ly9vY3NwLmNmY2EuY29tLmNuL29jc3AwMgYIKwYBBQUHMAKGJmh0dHA6Ly9jcmwuY2ZjYS5jb20uY24vb2NhMzEvb2NhMzEuY2VyMB8GA1UdIwQYMBaAFAjY0SbESH2c7KyY6fF/YrmAzqlFMAwGA1UdEwEB/wQCMAAwSAYDVR0gBEEwPzA9BghggRyG7yoBBDAxMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmNmY2EuY29tLmNuL3VzL3VzLTE0Lmh0bTA9BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3JsLmNmY2EuY29tLmNuL29jYTMxL1NNMi9jcmwyNzMwLmNybDAOBgNVHQ8BAf8EBAMCBsAwHQYDVR0OBBYEFOpEqrs73yvBXqvDQoT33v05FnDIMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDAMBggqgRzPVQGDdQUAA0kAMEYCIQCdKpfhUijpAKEQekHxlk4LvnqzzaYmODo3T3qmZUJsUwIhAOaMMH0IpwefVTSwJlhrVbmEB5DmoxLo1Xb/1tvfW1l2
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="false">
<springProperty scop="context" name="spring.application.name" source="spring.application.name" defaultValue=""/>
<property name="log.path" value="logs/${spring.application.name}"/>
<springProperty scop="context" name="springAppName" source="spring.application.name" defaultValue=""/>
<springProperty scop="context" name="springAppActive" source="spring.profiles.active" defaultValue=""/>
<property name="log.path" value="logs/${springAppName}"/>
<!-- 彩色日志格式 -->
<property name="CONSOLE_LOG_PATTERN"
value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
......@@ -48,11 +49,50 @@
</filter>
</appender>
<!--邮件提醒-->
<appender name="MAIL" class="ch.qos.logback.classic.net.SMTPAppender">
<smtpHost>smtp.exmail.qq.com</smtpHost>
<smtpPort>465</smtpPort>
<username>information@wanxin-holdings.com</username>
<password>QmdCaQSPmCAQEddd</password>
<SSL>true</SSL>
<asynchronousSending>true</asynchronousSending>
<to>wangpeng@wanxin-holdings.com,fangxinjiang@wanxin-holdings.com,hongguangwu@wanxin-holdings.com</to>
<from>information@wanxin-holdings.com</from>
<subject>hro-mvp ${springAppActive}环境 ${springAppName}服务: %-20msg 错误</subject>
<charsetEncoding>UTF-8</charsetEncoding>
<cyclicBufferTracker class="ch.qos.logback.core.spi.CyclicBufferTracker">
<!-- &lt;!&ndash; 每个电子邮件只发送一个日志条目 &ndash;&gt;-->
<bufferSize>1</bufferSize>
</cyclicBufferTracker>
<layout class="ch.qos.logback.classic.html.HTMLLayout"/>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
</appender>
<springProfile name="prd">
<root level="error">
<appender-ref ref="console"/>
<appender-ref ref="debug"/>
<appender-ref ref="error"/>
<appender-ref ref="MAIL"/>
</root>
</springProfile>
<springProfile name="dev">
<root level="error">
<appender-ref ref="console"/>
<appender-ref ref="debug"/>
<appender-ref ref="error"/>
</root>
</springProfile>
<springProfile name="test">
<!-- Level: FATAL 0 ERROR 3 WARN 4 INFO 6 DEBUG 7 -->
<root level="INFO">
<root level="info">
<appender-ref ref="console"/>
<appender-ref ref="debug"/>
<appender-ref ref="error"/>
</root>
</springProfile>
</configuration>
<?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.ekp.mapper.EkpBankAttaMapper">
<resultMap id="tAttaMap" type="com.yifu.cloud.plus.v1.ekp.entity.EkpBankAtta">
<id property="fdId" column="fd_id"/>
<result property="fdAttaName" column="fd_atta_name"/>
<result property="fdAttaSrc" column="fd_atta_src"/>
<result property="fdAttaUrl" column="fd_atta_url"/>
<result property="fdAttaSize" column="fd_atta_size"/>
<result property="fdLinkId" column="fd_link_id"/>
<result property="fdLinkType" column="fd_link_type"/>
<result property="fdCreateTime" column="fd_create_time"/>
</resultMap>
<sql id="selectParams">
a.fd_id,
a.fd_atta_name,
a.fd_atta_src,
a.fd_atta_url,
a.fd_atta_size,
a.fd_link_id,
a.fd_link_type,
a.fd_create_time
</sql>
<!--获取最新的附件-->
<select id="getEkpBankAttaLimit" resultMap="tAttaMap">
SELECT
<include refid="selectParams"/>
FROM t_salary_atta a
where a.fd_link_id = #{fdId} and a.fd_link_type = #{type}
order by a.fd_create_time desc limit 1
</select>
</mapper>
<?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.ekp.mapper.EkpBankCodeSetMapper">
<resultMap id="ekpBankCodeSetMap" type="com.yifu.cloud.plus.v1.ekp.entity.EkpBankCodeSet">
<id property="fdId" column="fd_id"/>
<result property="fdPayeeAccount" column="fd_payee_account"/>
<result property="fdRecipientBank" column="fd_recipient_bank"/>
<result property="fdRecipientBankCode" column="fd_recipient_bank_code"/>
</resultMap>
<sql id="Base_Column_List">
a.fd_id,
a.fd_payee_account,
a.fd_recipient_bank,
a.fd_recipient_bank_code
</sql>
<select id="getCodeSetByCardNo" resultMap="ekpBankCodeSetMap" >
select
<include refid="Base_Column_List"/>
from ekp_bank_code_set a
where a.fd_payee_account = #{cardNo} limit 1
</select>
</mapper>
<?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.ekp.mapper.EkpBankGrantDetailMapper">
<resultMap id="ekpBankGrantDetailMap" type="com.yifu.cloud.plus.v1.ekp.entity.EkpBankGrantDetail">
<id property="fdId" column="fd_id"/>
<result property="fdSerialNumber" column="fd_serial_number"/>
<result property="fdPayeeName" column="fd_payee_name"/>
<result property="fdPayeeAccount" column="fd_payee_account"/>
<result property="fdMoney" column="fd_money"/>
<result property="fdRecipientBank" column="fd_recipient_bank"/>
<result property="fdRemittancePurpose" column="fd_remittance_purpose"/>
<result property="fdRemark" column="fd_remark"/>
<result property="fdCreateTime" column="fd_create_time"/>
<result property="fdFailureFeedback" column="fd_failure_feedback"/>
<result property="fdGrantStatus" column="fd_grant_status"/>
<result property="fdHandleStatus" column="fd_handle_status"/>
<result property="fdHandleFailNo" column="fd_handle_fail_no"/>
<result property="fdHandleFailId" column="fd_handle_fail_id"/>
<result property="fdAttaId" column="fd_atta_id"/>
<result property="fdAttaName" column="fd_atta_name"/>
<result property="fdAttaSrc" column="fd_atta_src"/>
<result property="fdDownloadNum" column="fd_download_num"/>
<result property="fdFailNum" column="fd_fail_num"/>
<result property="fdGrantNum" column="fd_grant_num"/>
<result property="fdParentId" column="fd_parent_id"/>
<result property="fdEmpPhone" column="fd_emp_phone"/>
<result property="fdWxNo" column="fd_wx_no"/>
<result property="fdMdCode" column="fd_md_dcode"/>
<result property="fdSalaryId" column="fd_salary_id"/>
</resultMap>
<sql id="Base_Excel_Sql">
select
DATE_FORMAT(now(),'%Y%m%d') nowDate,
'2' detailTag,
a.fd_serial_number fdSerialNumber,
'' baoXiaoNumber,
'0' danJuNumber,
m.fd_bank_name fdBankName,
m.fd_bank_no fdBankNo,
m.fd_bank_account fdBankAccount,
ifnull(c.fd_recipient_bank,a.fd_recipient_bank) fdRecipientBank,
'' fdRecipientAdress,
c.fd_recipient_bank_code fdRecipientBankCode,
'1' payType,
a.fd_payee_account fdPayeeAccount,
a.fd_payee_name fdPayeeName,
concat('',round(a.fd_money * 100,0)) fdMoney,
a.fd_remittance_purpose fdRemittancePurpose,
ifnull(a.fd_remark,'工资') fdCoverRemark,
a.fd_emp_phone fdEmpPhone
from ekp_bank_grant_detail a
left join ekp_bank_pay_task m on a.fd_parent_id=m.fd_id
left join ekp_bank_code_set c on c.fd_payee_account=a.fd_payee_account
where
</sql>
<!-- 查询待发放条数 -->
<select id="getCountByIdAndMain" resultType="java.lang.Integer">
select count(1)
from ekp_bank_grant_detail a
where (a.fd_handle_status is null or a.fd_handle_status = '待发放')
and a.fd_parent_id = #{fdParentId}
</select>
<!-- 查询主表下的所有待发放数据 -->
<select id="getEkpBankExcelVoByIdAndMain" resultType="com.yifu.cloud.plus.v1.ekp.vo.EkpBankExcelVo">
<include refid="Base_Excel_Sql"/>
(a.fd_handle_status is null or a.fd_handle_status = '待发放') and a.fd_parent_id = #{fdParentId}
</select>
<!-- 查询主表下的所有待发放数据 -->
<select id="getEkpBankExcelVoByIdAndDetail" resultType="com.yifu.cloud.plus.v1.ekp.vo.EkpBankExcelVo">
<include refid="Base_Excel_Sql"/>
a.fd_handle_status = '待发放' and a.fd_id = #{fdId}
</select>
<!-- 查询编号是否重复 -->
<select id="getWxNoByWxNo" resultType="java.lang.String">
select a.fd_wx_no from (
select a.fd_wx_no from ekp_bank_grant_detail a where a.fd_wx_no = #{wxNo}
union all
select a.fd_wx_no from ekp_bank_pay_task a where a.fd_wx_no = #{wxNo}
) a limit 1
</select>
<!-- 主表发放时,更新明细表的发放时间与状态 -->
<update id="updateStatusByGrant">
update ekp_bank_grant_detail a set a.fd_create_time = NOW(),a.fd_grant_status='发放中' where a.fd_parent_id = #{fdParentId}
</update>
<!-- 主表处理失败时,批量更新明细表为发放失败,原因为处理失败 -->
<update id="updateStatusByGrantFail">
update ekp_bank_grant_detail a set a.fd_grant_status='发放失败',a.fd_failure_feedback = '处理失败' where a.fd_parent_id = #{fdParentId}
</update>
<select id="getListByParentId" resultMap="ekpBankGrantDetailMap">
select
a.fd_id,a.fd_salary_id,a.fd_serial_number,a.fd_payee_name,a.fd_recipient_bank,a.fd_fail_num
from ekp_bank_grant_detail a where a.fd_parent_id = #{fdParentId}
</select>
<!-- 发放失败,批量更新中信银行交易流水表fd_3b148bc0c28e48为失败,根据 工资明细fdId:fd_3b1fe00b0f5dde -->
<update id="updateZhongXinStatus">
update ekp_db4ed54e25543f4b7a9a a
set a.fd_3b148bc0c28e48='失败',a.fd_tbankempid = #{detailId}
where a.fd_3b1fe00b0f5dde = #{salaryId}
</update>
<!-- 发放失败,批量更新中信银行交易流水Model表fd_3b148bc0c28e48为失败,根据 工资明细fdId:fd_3b1fe00b0f5dde -->
<update id="updateZhongXinMainStatus">
UPDATE modeling_simple_main a
JOIN ekp_db4ed54e25543f4b7a9a b on a.fd_id=b.fd_id
SET a.extend_data_xml=JSON_SET(a.extend_data_xml,'$[1].fd_3b148bc0c28e48', '失败','$[1].fd_tbankempid', #{detailId})
where b.fd_3b56782982b8b2 = #{salaryId}
</update>
<!-- 明细再次-发放失败,批量更新中信银行交易流水表fd_3b148bc0c28e48为失败,根据 工资明细fdId:fd_3b1fe00b0f5dde -->
<update id="updateZhongXinStatusAndBankInfo">
update ekp_db4ed54e25543f4b7a9a a
left join ekp_bank_grant_detail d on a.fd_3b1fe00b0f5dde=d.fd_salary_id
set a.fd_3b148bc0c28e48='失败',a.fd_3c754f2a7125a0 = '1183b0b84ee4f581bba001c47a78b2d9',a.fd_3c754a976ddde2=now(),
a.fd_3afd45029541be=d.fd_payee_name,a.fd_3afd4500f91ae6=d.fd_payee_account,a.fd_3afd4502e34bc0=d.fd_recipient_bank
where
<if test="salaryIdList != null and salaryIdList.size() > 0">
a.fd_3b1fe00b0f5dde in
<foreach collection="salaryIdList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</update>
<!-- 明细再次-发放失败,批量更新中信银行交易流水Model表fd_3b148bc0c28e48为失败,根据 工资明细fdId:fd_3b1fe00b0f5dde -->
<update id="updateZhongXinMainStatusAndBankInfo">
UPDATE modeling_simple_main a
JOIN ekp_db4ed54e25543f4b7a9a b on a.fd_id=b.fd_id
left join ekp_bank_grant_detail d on b.fd_3b1fe00b0f5dde=d.fd_salary_id
SET a.extend_data_xml=JSON_SET(a.extend_data_xml,'$[1].fd_3b148bc0c28e48', '失败'
, '$[1].fd_3c754f2a7125a0', '1183b0b84ee4f581bba001c47a78b2d9'
,'$[1].fd_3c754a976ddde2', now()
,'$[1].fd_3afd45029541be', d.fd_payee_name
,'$[1].fd_3afd4500f91ae6', d.fd_payee_account
,'$[1].fd_3afd4502e34bc0', d.fd_recipient_bank
)
where
<if test="salaryIdList != null and salaryIdList.size() > 0">
b.fd_3b56782982b8b2 in
<foreach collection="salaryIdList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</update>
</mapper>
<?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.ekp.mapper.EkpBankGrantLogDetailMapper">
<resultMap id="ekpBankGrantLogDetailMap" type="com.yifu.cloud.plus.v1.ekp.entity.EkpBankGrantLogDetail">
<id property="fdId" column="fd_id"/>
<result property="fdParentId" column="fd_parent_id"/>
<result property="fdPayee" column="fd_payee"/>
<result property="fdPayeeAccount" column="fd_payee_account"/>
<result property="fdMoney" column="fd_money"/>
<result property="fdRecipientBank" column="fd_recipient_bank"/>
<result property="fdRemittancePurpose" column="fd_remittance_purpose"/>
<result property="fdRemark" column="fd_remark"/>
<result property="fdCommandStatus" column="fd_command_status"/>
</resultMap>
<sql id="Base_Column_List">
a.fd_id,
a.fd_parent_id,
a.fd_payee,
a.fd_payee_account,
a.fd_money,
a.fd_recipient_bank,
a.fd_remittance_purpose,
a.fd_remark,
a.fd_command_status
</sql>
</mapper>
<?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.ekp.mapper.EkpBankGrantLogMapper">
<resultMap id="ekpBankGrantLogMap" type="com.yifu.cloud.plus.v1.ekp.entity.EkpBankGrantLog">
<id property="fdId" column="fd_id"/>
<result property="fdBatchNumber" column="fd_batch_number"/>
<result property="fdBatchPackage" column="fd_batch_package"/>
<result property="fdPaymentAccount" column="fd_payment_account"/>
<result property="fdDrawee" column="fd_drawee"/>
<result property="fdCurrency" column="fd_currency"/>
<result property="fdBusinessType" column="fd_business_type"/>
<result property="fdSubmitTime" column="fd_submit_time"/>
<result property="fdTransactionTime" column="fd_transaction_time"/>
<result property="fdSuccessFee" column="fd_success_fee"/>
<result property="fdFailFee" column="fd_fail_fee"/>
<result property="fdSumFee" column="fd_sum_fee"/>
<result property="fdTransactionTotal" column="fd_transaction_total"/>
<result property="fdTransactionSuccessTotal" column="fd_transaction_success_total"/>
<result property="fdTransactionFailTotal" column="fd_transaction_fail_total"/>
</resultMap>
<sql id="Base_Column_List">
a.fd_id,
a.fd_batch_number,
a.fd_batch_package,
a.fd_payment_account,
a.fd_drawee,
a.fd_currency,
a.fd_business_type,
a.fd_submit_time,
a.fd_transaction_time,
a.fd_success_fee,
a.fd_fail_fee,
a.fd_sum_fee,
a.fd_transaction_total,
a.fd_transaction_success_total,
a.fd_transaction_fail_total
</sql>
</mapper>
<?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.ekp.mapper.EkpBankIcbcLogMapper">
<resultMap id="ekpBankIcbcLogMap" type="com.yifu.cloud.plus.v1.ekp.entity.EkpBankIcbcLog">
<id property="fdId" column="fd_id"/>
<result property="fdWxNo" column="fd_wx_no"/>
<result property="fdLog" column="fd_log"/>
<result property="fdParentId" column="fd_parent_id"/>
<result property="fdType" column="fd_type"/>
<result property="fdCreateTime" column="fd_create_time"/>
</resultMap>
<sql id="Base_Column_List">
a.fd_id,
a.fd_wx_no,
a.fd_log,
a.fd_parent_id,
a.fd_type,
a.fd_create_time
</sql>
</mapper>
<?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.ekp.mapper.EkpBankPayTaskMapper">
<resultMap id="ekpBankPayTaskMap" type="com.yifu.cloud.plus.v1.ekp.entity.EkpBankPayTask">
<id property="fdId" column="fd_id"/>
<result property="fdCustomerName" column="fd_customer_name"/>
<result property="fdProjectName" column="fd_project_name"/>
<result property="fdProjectCode" column="fd_project_code"/>
<result property="fdProvince" column="fd_province"/>
<result property="fdCity" column="fd_city"/>
<result property="fdTown" column="fd_town"/>
<result property="fdMoney" column="fd_money"/>
<result property="fdPayType" column="fd_pay_type"/>
<result property="fdBankName" column="fd_bank_name"/>
<result property="fdBankNo" column="fd_bank_no"/>
<result property="fdBankAccount" column="fd_bank_account"/>
<result property="fdCustomerServer" column="fd_customer_server"/>
<result property="fdCreater" column="fd_creater"/>
<result property="fdGrantStatus" column="fd_grant_status"/>
<result property="fdSubmitCashier" column="fd_submit_cashier"/>
<result property="fdCreateTime" column="fd_create_time"/>
<result property="fdSettlementNo" column="fd_settlement_no"/>
<result property="fdSettlementId" column="fd_settlement_id"/>
<result property="fdFailHandleStatus" column="fd_fail_handle_status"/>
<result property="fdAttaId" column="fd_atta_id"/>
<result property="fdAttaName" column="fd_atta_name"/>
<result property="fdAttaSrc" column="fd_atta_src"/>
<result property="fdDownloadNum" column="fd_download_num"/>
<result property="fdFailNum" column="fd_fail_num"/>
<result property="fdGrantNum" column="fd_grant_num"/>
<result property="fdWxNo" column="fd_wx_no"/>
<result property="fdMdCode" column="fd_md_dcode"/>
<result property="fdErrorMsg" column="fd_error_msg"/>
</resultMap>
<sql id="Base_Column_List">
a.fd_id,
a.fd_customer_name,
a.fd_project_name,
a.fd_project_code,
a.fd_province,
a.fd_city,
a.fd_town,
a.fd_money,
a.fd_pay_type,
a.fd_bank_name,
a.fd_bank_no,
a.fd_bank_account,
a.fd_customer_server,
a.fd_creater,
a.fd_grant_status,
a.fd_submit_cashier,
a.fd_create_time,
a.fd_settlement_no,
a.fd_settlement_id,
a.fd_fail_handle_status,
a.fd_atta_id,
a.fd_atta_name,
a.fd_atta_src,
a.fd_download_num,
a.fd_fail_num,
a.fd_grant_num,
a.fd_wx_no,
a.fd_md_dcode,
a.fd_error_msg
</sql>
<!-- 获取发放中的主表,查询结果 -->
<select id="getEkpBankMainByNeedResultMain" resultType="com.yifu.cloud.plus.v1.ekp.vo.EkpBankResultVo">
select a.fd_id fdId,a.fd_wx_no fdWxNo
,count(d.fd_id) num,a.fd_bank_name fdBankName,a.fd_bank_no fdBankNo,a.fd_bank_account fdBankAccount
,a.fd_grant_num fdGrantNum
from ekp_bank_pay_task a left join ekp_bank_grant_detail d on a.fd_id = d.fd_parent_id
where a.fd_grant_status = '发放中'
GROUP BY a.fd_id
</select>
<!-- 获取发放中的明细表,查询结果 -->
<select id="getEkpBankMainByNeedResultDetail" resultType="com.yifu.cloud.plus.v1.ekp.vo.EkpBankResultVo">
select d.fd_id fdId,d.fd_wx_no fdWxNo,d.fd_parent_id fdParentId,d.fd_fail_num fdFailNum,d.fd_salary_id fdSalaryId
,'1' num,a.fd_bank_name fdBankName,a.fd_bank_no fdBankNo,a.fd_bank_account fdBankAccount,d.fd_payee_name fdPayeeName
,d.fd_grant_num fdGrantNum,d.fd_recipient_bank fdRecipientBank
from ekp_bank_grant_detail d left join ekp_bank_pay_task a on a.fd_id = d.fd_parent_id
where a.fd_grant_status = '已发放' and d.fd_grant_status = '发放失败' and d.fd_handle_status = '发放中'
</select>
</mapper>
......@@ -61,7 +61,7 @@ public class LocalDateUtil {
cal.setTime(date);
return true;
}catch (ParseException pe){
System.out.println("日期解析异常,返回false");
//System.out.println("日期解析异常,返回false")
return false;
}
}
......@@ -82,7 +82,7 @@ public class LocalDateUtil {
}
return null;
}catch (Exception e){
System.out.println("字符串格式的日期转LocalDate失败");
//System.out.println("字符串格式的日期转LocalDate失败")
return null;
}
}
......@@ -108,17 +108,18 @@ public class LocalDateUtil {
pastDate = sdf.parse(strDate);
//调用Date里面的after方法来做判断
flag = pastDate.after(nowDate);
if (flag) {
System.out.println("该日期晚于今日");
}else {
System.out.println("该日期早于今日");
}
/*if (flag)
System.out.println("该日期晚于今日")
}else
System.out.println("该日期早于今日")
}*/
} catch (ParseException e) {
e.printStackTrace();
}
}else {
System.out.println("日期参数不可为空");
}
//else {
//System.out.println("日期参数不可为空")
//}
return flag;
}
......@@ -145,17 +146,17 @@ public class LocalDateUtil {
pastDate = sdf.parse(strDate);
//调用Date里面的after方法来做判断
flag = pastDate.after(nowDate);
if (flag) {
System.out.println("该日期晚于今日");
}else {
System.out.println("该日期早于今日");
}
/*if (flag)
System.out.println("该日期晚于今日")
}else
System.out.println("该日期早于今日")
}*/
} catch (ParseException e) {
e.printStackTrace();
}
}else {
System.out.println("日期参数不可为空");
}
}/*else
System.out.println("日期参数不可为空")
}*/
return flag;
}
......@@ -181,17 +182,17 @@ public class LocalDateUtil {
parseEndDate = sdf.parse(endDate);
//调用Date里面的before方法来做判断
flag = parseStartDate.before(parseEndDate);
if (flag) {
System.out.println("开始日期早于结束日期");
/*if (flag)
System.out.println("开始日期早于结束日期")
}else {
System.out.println("开始日期晚于结束日期");
}
System.out.println("开始日期晚于结束日期")
}*/
} catch (ParseException e) {
e.printStackTrace();
}
}else {
System.out.println("日期参数不可为空");
}
}/*else
System.out.println("日期参数不可为空")
}*/
return flag;
}
......@@ -225,9 +226,9 @@ public class LocalDateUtil {
} catch (ParseException e) {
e.printStackTrace();
}
}else {
}/*else {
System.out.println("年月参数不可为空");
}
}*/
return flag;
}
......@@ -256,9 +257,9 @@ public class LocalDateUtil {
} catch (ParseException e) {
e.printStackTrace();
}
}else {
System.out.println("日期参数不可为空");
}
}/*else
System.out.println("日期参数不可为空")
}*/
return dif + 1;
}
......@@ -304,9 +305,9 @@ public class LocalDateUtil {
} catch (ParseException e) {
e.printStackTrace();
}
}else {
System.out.println("日期参数不可为空");
}
}/*else
System.out.println("日期参数不可为空")
}*/
return dif;
}
......@@ -339,7 +340,7 @@ public class LocalDateUtil {
&& (rightStartDate.equals(leftEndDate) || rightStartDate.isBefore(leftEndDate)));
}
public static void main(String[] args) {
System.out.println(parseLocalDate("2022-8-3"));
}
/*public static void main(String[] args)
System.out.println(parseLocalDate("2022-8-3"))
}*/
}
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="false">
<springProperty scop="context" name="spring.application.name" source="spring.application.name" defaultValue=""/>
<property name="log.path" value="logs/${spring.application.name}"/>
<springProperty scop="context" name="springAppName" source="spring.application.name" defaultValue=""/>
<springProperty scop="context" name="springAppActive" source="spring.profiles.active" defaultValue=""/>
<property name="log.path" value="logs/${springAppName}"/>
<!-- 彩色日志格式 -->
<property name="CONSOLE_LOG_PATTERN"
value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
......@@ -49,11 +50,50 @@
</appender>
<!--邮件提醒-->
<appender name="MAIL" class="ch.qos.logback.classic.net.SMTPAppender">
<smtpHost>smtp.exmail.qq.com</smtpHost>
<smtpPort>465</smtpPort>
<username>information@wanxin-holdings.com</username>
<password>QmdCaQSPmCAQEddd</password>
<SSL>true</SSL>
<asynchronousSending>true</asynchronousSending>
<to>wangpeng@wanxin-holdings.com,fangxinjiang@wanxin-holdings.com,hongguangwu@wanxin-holdings.com</to>
<from>information@wanxin-holdings.com</from>
<subject>hro-mvp ${springAppActive}环境 ${springAppName}服务: %-20msg 错误</subject>
<charsetEncoding>UTF-8</charsetEncoding>
<cyclicBufferTracker class="ch.qos.logback.core.spi.CyclicBufferTracker">
<!-- &lt;!&ndash; 每个电子邮件只发送一个日志条目 &ndash;&gt;-->
<bufferSize>1</bufferSize>
</cyclicBufferTracker>
<layout class="ch.qos.logback.classic.html.HTMLLayout"/>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
</appender>
<springProfile name="prd">
<root level="error">
<appender-ref ref="console"/>
<appender-ref ref="debug"/>
<appender-ref ref="error"/>
<appender-ref ref="MAIL"/>
</root>
</springProfile>
<springProfile name="dev">
<root level="error">
<appender-ref ref="console"/>
<appender-ref ref="debug"/>
<appender-ref ref="error"/>
</root>
</springProfile>
<springProfile name="test">
<!-- Level: FATAL 0 ERROR 3 WARN 4 INFO 6 DEBUG 7 -->
<root level="error">
<appender-ref ref="console"/>
<appender-ref ref="debug"/>
<appender-ref ref="error"/>
</root>
</springProfile>
</configuration>
......@@ -49,5 +49,16 @@ public class EkpTask {
log.info("------------定时生成昨日未生成的入账明细数据-定时任务结束------------");
}
/**
* @Author hgw
* @Description 每小时获取银企付款结果
* @Date 2024-11-22 16:52:28
**/
public void doGetEkpBankStatus() {
log.info("------------每小时获取银企付款结果-定时任务开始------------");
HttpDaprUtil.invokeMethodPost(daprEkpProperties.getAppUrl(),daprEkpProperties.getAppId(),"/icbcIssue/inner/doGetEkpBankStatus","", Object.class, SecurityConstants.FROM_IN);
log.info("------------每小时获取银企付款结果-定时任务结束------------");
}
}
\ No newline at end of file
......@@ -25,7 +25,7 @@ public class MailServiceImpl implements MailService {
mailMessage.setText("你好 hello world");
mailMessage.setSubject("测试Spring邮箱服务");
mailSender.send(mailMessage);
System.out.println("====完成发送!====");
//System.out.println("====完成发送!====")
return null;
}
}
......@@ -380,4 +380,10 @@ public class TOrder implements Serializable {
@Schema(description = "其他项费用")
private String otherExpenses;
/**
* 附件ID集合
*/
@Schema(description = "附件ID集合")
private String attIds;
}
\ No newline at end of file
/*
* 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.order.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;
import java.util.Date;
/**
* 项目订单附件同步日志信息
*
* @author fxj
* @date 2024-11-15 17:21:46
*/
@Data
@TableName("t_order_file_sync_log")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "项目订单附件同步日志信息")
public class TOrderFileSyncLog extends BaseEntity {
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("主键")
@Schema(description = "主键")
private String id;
/**
* 项目单号
*/
@ExcelAttribute(name = "项目单号", maxLength = 30)
@Length(max = 30, message = "项目单号不能超过30个字符")
@ExcelProperty("项目单号")
@Schema(description = "项目单号")
private String orderNo;
/**
* 附件IDS
*/
@ExcelAttribute(name = "附件IDS", maxLength = 500)
@Length(max = 500, message = "附件IDS不能超过500个字符")
@ExcelProperty("附件IDS")
@Schema(description = "附件IDS")
private String attIds;
/**
* 失败原因
*/
@ExcelAttribute(name = "失败原因")
@ExcelProperty("失败原因")
@Schema(description = "失败原因")
private String reason;
/**
* 重试结果:0 成功 1 失败
*/
@ExcelAttribute(name = "重试结果:0 成功 1 失败", maxLength = 1)
@Length(max = 1, message = "重试结果:0 成功 1 失败不能超过1个字符")
@ExcelProperty("重试结果:0 成功 1 失败")
@Schema(description = "重试结果:0 成功 1 失败")
private String flag;
}
......@@ -420,6 +420,10 @@ public class OrderAddVO implements Serializable {
private MultipartFile[] salaryHandoverFile;
/**
* 附件ID集合
*/
@Schema(description = "附件ID集合")
private String attIds;
}
......@@ -32,4 +32,10 @@ public class OrderAttVo implements Serializable {
@Schema(description = "附件")
private MultipartFile[] file;
/**
* 附件ID
*/
@Schema(description = "附件ID")
private String fileIds;
}
/*
* 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.order.vo;
import com.yifu.cloud.plus.v1.yifu.order.entity.TOrderFileSyncLog;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
* 项目订单附件同步日志信息
*
* @author fxj
* @date 2024-11-15 17:21:46
*/
@Data
public class TOrderFileSyncLogSearchVo extends TOrderFileSyncLog {
/**
* 多选导出或删除等操作
*/
@Schema(description = "选中ID,多个逗号分割")
private String ids;
/**
* @Author fxj
* 查询数据起
**/
@Schema(description = "查询limit 开始")
private int limitStart;
/**
* @Author fxj
* 查询数据止
**/
@Schema(description = "查询limit 数据条数")
private int limitEnd;
}
/*
* 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.order.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.RowIndex;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* 项目订单附件同步日志信息
*
* @author fxj
* @date 2024-11-15 17:21:46
*/
@Data
public class TOrderFileSyncLogVo extends RowIndex implements Serializable {
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@NotBlank(message = "主键 不能为空")
@Length(max = 32, message = "主键 不能超过32 个字符")
@ExcelAttribute(name = "主键", isNotEmpty = true, errorInfo = "主键 不能为空", maxLength = 32)
@Schema(description = "主键")
@ExcelProperty("主键")
private String id;
/**
* 项目单号
*/
@Length(max = 30, message = "项目单号 不能超过30 个字符")
@ExcelAttribute(name = "项目单号", maxLength = 30)
@Schema(description = "项目单号")
@ExcelProperty("项目单号")
private String orderNo;
/**
* 附件IDS
*/
@Length(max = 500, message = "附件IDS 不能超过500 个字符")
@ExcelAttribute(name = "附件IDS", maxLength = 500)
@Schema(description = "附件IDS")
@ExcelProperty("附件IDS")
private String attIds;
/**
* 失败原因
*/
@ExcelAttribute(name = "失败原因")
@Schema(description = "失败原因")
@ExcelProperty("失败原因")
private String reason;
/**
* 重试结果:0 成功 1 失败
*/
@Length(max = 1, message = "重试结果:0 成功 1 失败 不能超过1 个字符")
@ExcelAttribute(name = "重试结果:0 成功 1 失败", maxLength = 1)
@Schema(description = "重试结果:0 成功 1 失败")
@ExcelProperty("重试结果:0 成功 1 失败")
private String flag;
}
......@@ -118,7 +118,7 @@ public interface TOrderService extends IService<TOrder> {
* @return {@link R}
* @throws IOException
*/
void receiveOrderNew(InputStream inputStream, String file1, String orderNo, String fileName, String originalFileName) throws IOException;
void receiveOrderNew(InputStream inputStream, String file1, String orderNo, String fileName, String originalFileName,String fileIds) throws IOException;
void receiveOrderFileAsc(InputStream inputStream, String orderNo, String fileName, String originalFileName);
......@@ -130,4 +130,6 @@ public interface TOrderService extends IService<TOrder> {
* @return {@link R}
*/
R invalidOrder(String id);
R<String> syncFileFromEkpInterface(String id);
}
......@@ -28,10 +28,10 @@ public class EkpOrderFileTask {
* @return
**/
@Async
public void receiveOrderNew(InputStream inputStream, String file1, String orderNo, String fileName, String originalFileName){
public void receiveOrderNew(InputStream inputStream, String file1, String orderNo, String fileName, String originalFileName,String fileIds){
synchronized (this){
try {
orderService.receiveOrderNew(inputStream,file1,orderNo,fileName,originalFileName);
orderService.receiveOrderNew(inputStream,file1,orderNo,fileName,originalFileName,fileIds);
} catch (IOException e) {
log.error("订单附件上传异常:",e);
}
......
......@@ -50,7 +50,7 @@
<!-- Level: FATAL 0 ERROR 3 WARN 4 INFO 6 DEBUG 7 -->
<root level="debug">
<root level="error">
<appender-ref ref="console"/>
<appender-ref ref="debug"/>
<appender-ref ref="error"/>
......
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