Commit 0fe21cb8 authored by hongguangwu's avatar hongguangwu

Merge remote-tracking branch 'origin/develop'

# Conflicts:
#	yifu-common/yifu-common-dapr/src/main/resources/daprConfig.properties
parents f6e292df 2909e997
package com.yifu.cloud.plus.v1.check.vo;
import com.yifu.cloud.plus.v1.check.entity.TCheckIdCard;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* @Author hgw
* @Date 2024-4-16 19:39:51
*/
@Data
public class CheckIdCardListVo implements Serializable {
// 200:成功; 其他:失败
private int code;
// 错误信息
private String errorMsg;
// 其他内容
private List<TCheckIdCard> checkList = new ArrayList<>();
}
......@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.check.entity.TCheckIdCard;
import com.yifu.cloud.plus.v1.check.service.TCheckIdCardService;
import com.yifu.cloud.plus.v1.check.vo.CheckIdCardListVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
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;
......@@ -176,4 +178,35 @@ public class TCheckIdCardController {
public R<List<TCheckIdCard>> checkSalaryIdCard(@RequestBody List<TCheckIdCard> checkList) {
return tCheckIdCardService.checkSalaryIdCard(checkList);
}
/**
* @Description: 批量校验姓名身份证
* @Author: hgw
* @Date: 2024-4-16 19:47:20
* @return: com.yifu.cloud.v1.common.core.util.R
**/
@Operation(description = "批量校验姓名身份证")
@SysLog("批量校验姓名身份证")
@Inner
@PostMapping("/inner/checkIdCardList")
public CheckIdCardListVo checkIdCardList(@RequestBody CheckIdCardListVo vo) {
CheckIdCardListVo returnVo = new CheckIdCardListVo();
R<List<TCheckIdCard>> checkR = tCheckIdCardService.checkSalaryIdCard(vo.getCheckList());
if (checkR != null) {
if (checkR.getCode() == CommonConstants.SUCCESS) {
returnVo.setCode(CommonConstants.SUCCESS);
return returnVo;
} else {
returnVo.setCode(checkR.getCode());
returnVo.setErrorMsg(checkR.getMsg());
returnVo.setCheckList(checkR.getData());
return returnVo;
}
} else {
returnVo.setCode(CommonConstants.FAIL);
returnVo.setErrorMsg("校验服务无返回!");
return returnVo;
}
}
}
......@@ -168,6 +168,9 @@ public interface CacheConstants {
String FUND_IMPORT_HANDLE_LOCK = "fund_import_handle_handle_lock";
// 项目报销token的key
String WX_REIMBURSEMENT_TOKEN = "WX_REIMBURSEMENT_TOKEN";
public static final String WX_ACCOSS_TOKEN = "WX_ACCOSS_TOKEN";
/**
......
......@@ -152,4 +152,9 @@ public interface SecurityConstants {
**/
String WX_GET_MESSAGE_AUTH_URL = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=%s&redirect_uri=%s&response_type=code&scope=snsapi_base&state=%s#wechat_redirect";
// 获取审批单号list hgw 2024-4-12 14:45:25
String WX_GET_APPROVAL_LIST = "https://qyapi.weixin.qq.com/cgi-bin/oa/getapprovalinfo?access_token={1}";
// 获取审核详情
String WX_GET_APPROVAL_DETAIL = "https://qyapi.weixin.qq.com/cgi-bin/oa/getapprovaldetail?access_token={1}";
}
......@@ -23,13 +23,13 @@ spring:
password: ll_mysql
jdbc-url: jdbc:mysql://192.168.1.122:33306/ekp?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
hikari:
minimum-idle: 10 # 最小空闲连接数量
minimum-idle: 20 # 最小空闲连接数量
idle-timeout: 60000 # 空闲连接存活最大时间,默认600000(10分钟)
maximum-pool-size: 12 # 连接池最大连接数,默认是10
auto-commit: true #此属性控制从池返回的连接的默认自动提交行为,默认值:true
max-lifetime: 0 #此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认1800000即30分钟
ekp:
url: http://119.96.227.251:8080/api/sys-modeling/appModelRestService/addModel
url: http://192.168.0.251:8080/api/sys-modeling/appModelRestService/addModel
fdModelId: '181d73279372e5a55438a47d7436ab7e'
fdFlowId: '18267f206233f29cbd3c5ee425c9408a'
docStatus: '20'
......
......@@ -37,4 +37,19 @@ public class EkpPermissionTask {
log.info("-------------刷新EKP权限里的账号信息-定时任务结束------------");
}
/**
* @return
* @Author hgw
* @Description 每天1点,定时同步企业微信审批出差数据
* @Date 2024-4-15 18:24:06
* @Param
**/
public void doSaveQiWeiChuChai() throws Exception {
log.info("-------------获取企业微信出差数据-定时任务开始------------");
HttpDaprUtil.invokeMethodPost(daprEkpPermissionProperties.getAppUrl(), daprEkpPermissionProperties.getAppId(),
"/qiWei/inner/everyDaySaveQiWeiChuChai", "", Object.class,
SecurityConstants.FROM_IN);
log.info("-------------获取企业微信出差数据-定时任务结束------------");
}
}
\ No newline at end of file
package com.yifu.cloud.plus.v1.yifu.permission.entity;
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 io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* 企业微信出差
*/
@TableName(value = "ekp_qiwei_chuchai")
@Data
@Schema(description = "企业微信出差")
public class EkpQiwiChuchai {
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(description = "主键", name = "fdId")
private String fdId;
@Schema(description = "审批编号")
@NotBlank(message = "审批编号不能为空")
private String fdSpNo;
@Schema(description = "申请人姓名")
@NotBlank(message = "申请人姓名不能为空")
private String fdApplyUserName;
@Schema(description = "申请人部门")
@NotBlank(message = "申请人部门不能为空")
private String fdApplyUserDept;
@Schema(description = "申请日期")
@NotNull(message = "申请日期不能为空")
private LocalDateTime fdApplyDate;
@Schema(description = "开始日期")
private LocalDate fdNewBegin;
@Schema(description = "结束日期")
private LocalDate fdNewEnd;
@Schema(description = "出差事由")
private String fdReason;
@Schema(description = "随行人员")
private String fdPerson;
@Schema(description = "出差地点")
private String fdAddress;
@Schema(description = "出发地点")
private String fdOldAddress;
@Schema(description = "出行工具")
private String fdTools;
@Schema(description = "出差地点级别")
private String fdAddressLevel;
@Schema(description = "交通补助")
private String fdJiaoTong;
@Schema(description = "餐饮补助")
private String fdCanYin;
@Schema(description = "人数")
private Integer fdRenShu;
// status 0 初始;1已结算;
@Schema(description = "结算状态")
private String fdStatus;
@Schema(description = "关联结算ID")
private String fdSettleFormId;
@Schema(description = "创建时间")
private LocalDateTime createTime;
}
\ No newline at end of file
package com.yifu.cloud.plus.v1.yifu.permission.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
/**
* @Author hgw
* @Date 2024-4-16 15:04:11
* @Description 企业微信用户vo
* @Version 1.0
*/
@Data
public class QiWeiUserVo implements Serializable {
@Schema(description = "用户id")
private String userId;
@Schema(description = "用户姓名")
private String userName;
}
package com.yifu.cloud.plus.v1.permission.controller;
import com.yifu.cloud.plus.v1.permission.service.QiWeiService;
import com.yifu.cloud.plus.v1.yifu.common.core.util.DateUtil;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.security.annotation.Inner;
import com.yifu.cloud.plus.v1.yifu.permission.entity.EkpQiwiChuchai;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 工资服务-获取微信
*
* @author hgw
* @date 2024-4-10 11:26:50
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/qiWei")
@Tag(name = "工资服务-获取微信")
public class QiWeiController {
private final QiWeiService wxSalaryService;
/**
* @Description: 每日获取当日企业微信审批里的出差
* @Author: hgw
* @Date: 2024-4-11 11:03:34
* @return: com.yifu.cloud.v1.common.core.util.R<java.util.List < com.yifu.cloud.v1.hrms.api.entity.TEventFeeDetail>>
**/
@PostMapping("/inner/everyDaySaveQiWeiChuChai")
@Inner
public R<List<EkpQiwiChuchai>> everyDaySaveQiWeiChuChai() {
String startDay = DateUtil.addDay(-29);
String endDay = DateUtil.addDay(0);
return wxSalaryService.getQiWeiChuChaiAndSave(startDay, endDay);
}
/**
* @param startTime
* @param endTime
* @Description: 获取企业微信审批里的出差
* @Author: hgw
* @Date: 2024-4-11 11:03:30
* @return: com.yifu.cloud.v1.common.core.util.R<java.util.List < com.yifu.cloud.v1.hrms.api.entity.TStatisticsProjectReimburse>>
**/
@Operation(description = "获取企业微信审批里的出差数据:startTime格式:2024-04-10")
@PostMapping("/getQiWeiChuCHaiInfoAndSave")
//@PreAuthorize("@pms.hasPermission('wxhr:wxsalaryauth')")
public R<List<EkpQiwiChuchai>> getQiWeiChuCHaiInfoAndSave(@RequestParam String startTime, @RequestParam String endTime) {
return wxSalaryService.getQiWeiChuChaiAndSave(startTime, endTime);
}
}
package com.yifu.cloud.plus.v1.permission.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yifu.cloud.plus.v1.yifu.permission.entity.EkpQiwiChuchai;
import com.yifu.cloud.plus.v1.yifu.permission.vo.QiWeiUserVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 企业微信出差
*
* @Entity generator.domain.TStatisticsProjectReimburse
*/
@Mapper
public interface EkpQiweiChuchaiMapper extends BaseMapper<EkpQiwiChuchai> {
/**
* @param status 状态
* @Description: 获取全部的列表,用来: 拉取企业微信时,不覆盖数据
* @Author: hgw
* @Date: 2021/7/28 18:05
* @return: java.util.List<com.yifu.cloud.v1.hrms.api.entity.salary.TStatisticsProjectReimburse>
**/
List<EkpQiwiChuchai> getAllInfo(@Param("status") String status);
List<QiWeiUserVo> getQiYeWeiXinUserList();
}
package com.yifu.cloud.plus.v1.permission.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.permission.entity.EkpQiwiChuchai;
import java.util.List;
/**
* 成本支出表
*
* @author hgw
* @date 2024-4-15 17:16:50
*/
public interface QiWeiService extends IService<EkpQiwiChuchai> {
/**
* @param startTime
* @param endTime
* @Description: 获取微信信息
* @Author: hgw
* @Date: 2021-7-28 17:46:01
* @return: com.yifu.cloud.v1.common.core.util.R<java.util.List < com.yifu.cloud.v1.hrms.api.entity.TStatisticsProjectReimburse>>
**/
R<List<EkpQiwiChuchai>> getQiWeiChuChaiAndSave(String startTime, String endTime);
}
......@@ -8,6 +8,8 @@ spring:
on-profile: dev
redis:
host: 127.0.0.1
port: 6379
password: '@yf_2017'
datasource:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
......
......@@ -83,3 +83,9 @@ springdoc:
- group: permission
#按包路径匹配
packagesToScan: com.yifu.cloud.plus.v1.permission.controller
wx:
corpid: wwbcb090af0dfe50e5
corpsecret: o3fLn0u9SFHh5_htpIRBSp2bOibTa8pZGcOJIJqvidQ
agentid: 1000019
authUrl: https://wmp.worfu.com/api
reimbursementCorpsecret: R0nKkvsY-oF41fuQvUXZ-kFG3_g_Ce0bpZt6mByx524
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yifu.cloud.plus.v1.permission.mapper.EkpQiweiChuchaiMapper">
<resultMap id="BaseResultMap" type="com.yifu.cloud.plus.v1.yifu.permission.entity.EkpQiwiChuchai">
<id property="fdId" column="fd_ID" />
<result property="fdSpNo" column="FD_SP_NO"/>
<result property="fdApplyUserName" column="FD_APPLY_USER_NAME"/>
<result property="fdApplyUserDept" column="FD_APPLY_USER_DEPT"/>
<result property="fdApplyDate" column="FD_APPLY_DATE"/>
<result property="fdNewBegin" column="FD_NEW_BEGIN"/>
<result property="fdNewEnd" column="FD_NEW_END"/>
<result property="fdReason" column="FD_REASON"/>
<result property="fdPerson" column="FD_PERSON"/>
<result property="fdAddress" column="FD_ADDRESS"/>
<result property="fdOldAddress" column="FD_OLD_ADDRESS"/>
<result property="fdTools" column="FD_TOOLS"/>
<result property="fdAddressLevel" column="FD_ADDRESS_LEVEL"/>
<result property="fdJiaoTong" column="FD_JIAO_TONG"/>
<result property="fdCanYin" column="FD_CAN_YIN"/>
<result property="fdRenShu" column="FD_REN_SHU"/>
<result property="fdStatus" column="FD_STATUS"/>
<result property="fdSettleFormId" column="FD_SETTLE_FORM_ID"/>
<result property="createTime" column="create_time"/>
</resultMap>
<sql id="Base_Column_List">
a.FD_ID,
a.FD_SP_NO,
a.FD_APPLY_USER_NAME,
a.FD_APPLY_USER_DEPT,
a.FD_APPLY_DATE,
a.FD_NEW_BEGIN,
a.FD_NEW_END,
a.FD_REASON,
a.FD_PERSON,
a.FD_ADDRESS,
a.FD_OLD_ADDRESS,
a.FD_TOOLS,
a.FD_ADDRESS_LEVEL,
a.FD_JIAO_TONG,
a.FD_CAN_YIN,
a.FD_REN_SHU,
a.FD_STATUS,
a.FD_SETTLE_FORM_ID,
a.create_time
</sql>
<!--获取全部的,用来: 拉取企业微信时,不覆盖数据 -->
<select id="getAllInfo" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM ekp_qiwei_chuchai a
<where>
1=1
<if test="status != null and status.trim() != ''">
AND a.FD_STATUS = #{status}
</if>
</where>
</select>
<!--获取全部的,用来: 拉取企业微信时,不覆盖数据 -->
<select id="getQiYeWeiXinUserList" resultType="com.yifu.cloud.plus.v1.yifu.permission.vo.QiWeiUserVo">
SELECT USER_ID as userId,USER_NAME as userName FROM ekp_qiwei_user
</select>
</mapper>
......@@ -48,5 +48,11 @@
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.yifu.cloud.plus.v1</groupId>
<artifactId>yifu-check-api</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
......@@ -37,4 +37,6 @@ public class SalaryConstants {
public static final String PDEDUCTION_JAVA = "pdeduction";
//单位代扣
public static final String UDEDUCTION_JAVA = "udeduction";
// 项目报销的 数据来源:0企业微信;1固资划转
public static final Integer[] DATA_SOURCE = {0,1};
}
package com.yifu.cloud.plus.v1.yifu.salary.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
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 com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.util.ArrayList;
import java.util.List;
/**
* 薪资原表识别主表
*
* @author hgw
* @date 2024-4-1 18:06:46
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("t_salary_standard_original")
@Tag(name = "薪资原表识别主表")
public class TSalaryStandardOriginal extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId(type = IdType.ASSIGN_ID)
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty(value = "主键")
private String id;
/**
* 部门ID
*/
@ExcelAttribute(name = "部门ID", isNotEmpty = true, errorInfo = "部门ID不能为空", maxLength = 32)
@NotBlank(message = "部门ID不能为空")
@Length(max = 32, message = "部门ID不能超过32个字符")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("部门ID")
private String deptId;
/**
* 部门名称
*/
@ExcelAttribute(name = "部门名称", isNotEmpty = true, errorInfo = "部门名称不能为空", maxLength = 50)
@NotBlank(message = "部门名称不能为空")
@Length(max = 50, message = "部门名称不能超过50个字符")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("部门名称")
private String deptName;
/**
* 部门编码
*/
@ExcelAttribute(name = "部门编码", maxLength = 32)
@Length(max = 32, message = "部门编码不能超过32个字符")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("部门编码")
private String deptNo;
/**
* 原表类型
*/
@NotBlank(message = "原表类型不能为空")
@ExcelAttribute(name = "原表类型", maxLength = 50)
@Length(max = 50, message = "原表类型不能超过50个字符")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("原表类型")
private String setName;
/**
* sheet名
*/
@ExcelAttribute(name = "sheet名", maxLength = 100)
@Length(max = 100, message = "sheet名不能超过100个字符")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("sheet名")
private String sheetName;
/**
* 附件名称
*/
@ExcelAttribute(name = "附件名称", maxLength = 200)
@Length(max = 200, message = "附件名称不能超过200个字符")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("附件名称")
private String attaName;
/**
* 资源路径
*/
@ExcelAttribute(name = "资源路径", maxLength = 200)
@Length(max = 200, message = "资源路径不能超过200个字符")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("资源路径")
private String attaSrc;
/**
* 资源地址
*/
@ExcelAttribute(name = "资源地址", maxLength = 100)
@Length(max = 100, message = "资源地址不能超过100个字符")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("资源地址")
private String attaUrl;
/**
* 资源大小
*/
@ExcelAttribute(name = "资源大小")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("资源大小")
private Long attaSize;
/**
* 资源类型(数据字典)
*/
@ExcelAttribute(name = "资源类型(数据字典)", maxLength = 32)
@Length(max = 32, message = "资源类型(数据字典)不能超过32个字符")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("资源类型(数据字典)")
private String attaType;
/**
* 是否删除0:未删除;1:已删除
*/
@ExcelAttribute(name = "是否删除0:未删除;1:已删除")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("是否删除0:未删除;1:已删除")
private Integer deleteFlag;
/**
* 数据所在行
*/
@ExcelAttribute(name = "数据所在行")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("数据所在行")
private Integer dateNum;
/**
* 明细
*/
@TableField(exist = false)
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty(value = "明细")
private List<TSalaryStandardOriginalDetail> detailList = new ArrayList<>();
}
package com.yifu.cloud.plus.v1.yifu.salary.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
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.tags.Tag;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
/**
* 薪资原表识别明细表
*
* @author hgw
* @date 2024-4-1 18:10:43
*/
@Data
@TableName("t_salary_standard_original_detail")
@Tag(name = "薪资原表识别明细表")
public class TSalaryStandardOriginalDetail {
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId(type = IdType.ASSIGN_ID)
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty(value = "主键")
private String id;
/**
* TSalaryStandardOriginal表的主键
*/
@NotBlank(message = "TSalaryStandardOriginal表的主键不能为空")
@Length(max = 32, message = "TSalaryStandardOriginal表的主键不能超过32个字符")
@ExcelAttribute(name = "TSalaryStandardOriginal表的主键", isNotEmpty = true, errorInfo = "不能为空", maxLength = 32)
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty(value = "TSalaryStandardOriginal表的主键")
private String originalId;
/**
* 表格列号
*/
@ExcelAttribute(name = "表格列号", isNotEmpty = true, errorInfo = "表格列号不能为空")
@NotBlank(message = "表格列号不能为空")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("表格列号")
private Integer columnNo;
/**
* 原表表头
*/
@Length(max = 50, message = "原表表头不能超过50个字符")
@ExcelAttribute(name = "原表表头", maxLength = 50)
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty(value = "原表表头")
private String excelName;
/**
* 模板表头
*/
@Length(max = 50, message = "模板表头不能超过50个字符")
@ExcelAttribute(name = "模板表头", maxLength = 50)
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty(value = "模板表头")
private String modelName;
/**
* 公式标志:MAIN主;ADD加;REDUCE减
*/
@Length(max = 50, message = "公式标志不能超过50个字符")
@ExcelAttribute(name = "公式标志", maxLength = 50)
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty(value = "公式标志:MAIN主;ADD加;REDUCE减")
private String flag;
/**
* 公式顺序编号(前端使用)
*/
@ExcelAttribute(name = "公式顺序编号")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("公式顺序编号")
private Integer formulaNo;
}
package com.yifu.cloud.plus.v1.yifu.salary.vo;
import lombok.Getter;
import lombok.Setter;
/**
* @author hgw
* @description 薪资原表识别的 列内容 vo
* @date 2024-4-3 09:15:24
*/
@Getter
@Setter
public class ExcelColumnVo {
// 列号
private int lineNum;
// 列内容
private String content;
}
package com.yifu.cloud.plus.v1.yifu.salary.vo;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
import java.util.Map;
/**
* @author hgw
* @description 薪资原表识别的 sheet vo
* @date 2024-4-3 09:15:24
*/
@Getter
@Setter
public class ExcelSheetVo {
// 数据行
private int dataNum;
// sheet名
private String sheetName;
// 解析过程发现的错误信息
private String errorInfo;
// 标题行
private List<ExcelColumnVo> titleList;
// 内容行+列
private List<Map<String, String>> contentList;
}
package com.yifu.cloud.plus.v1.yifu.salary.vo;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryStandardOriginal;
import lombok.Getter;
import lombok.Setter;
import org.springframework.web.multipart.MultipartFile;
/**
* @author hgw
* @description 薪资原表识别vo
* @date 2024-4-3 09:15:24
*/
@Getter
@Setter
public class SalaryOriginalVo {
/**
* 附件
*/
//private MultipartFile file;
private MultipartFile file;
private String filename;
private String contentType;
/**
* 配置关系(含配置list)
*/
private TSalaryStandardOriginal salaryOriginal;
}
package com.yifu.cloud.plus.v1.yifu.salary.vo;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryStandardIssueRes;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
/**
* @author hgw2
* @description 薪资上传vo
* @date 2023/1/10
*/
@Getter
@Setter
public class SalaryUploadOriginalParamVo {
// 配置
String originalId;
// sheetName;必填
String sheetName;
// 结算主体id;必填
String settleDepart;
// 工资配置结算月等信息的id
String configId;
// 工资类型。必填
String salaryType;
// 订单id
String orderId;
// 是否代发户,默认为空或0:非代发户,1是代发户
Integer isIssue;
// 代发户的配置list
List<TSalaryStandardIssueRes> resList;
}
package com.yifu.cloud.plus.v1.yifu.salary.vo;
import com.yifu.cloud.plus.v1.check.entity.TCheckIdCard;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryStandardIssueRes;
import lombok.Getter;
import lombok.Setter;
......@@ -35,4 +36,10 @@ public class SalaryUploadParamVo {
// 代发户的配置list
List<TSalaryStandardIssueRes> resList;
// 原表识别,返回校验信息给前端
List<TCheckIdCard> checkList;
// 数据行,从0开始计数的
Integer dataNum;
}
/*
* 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.salary.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryStandardOriginalDetail;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 薪资原表识别导入
*
* @author hgw
* @date 2024-4-2 11:57:29
*/
@Mapper
public interface TSalaryStandardOriginalDetailMapper extends BaseMapper<TSalaryStandardOriginalDetail> {
/**
* 薪资原表识别导入-分页
*/
IPage<TSalaryStandardOriginalDetail> getTSalaryStandardOriginalDetailPage(Page<TSalaryStandardOriginalDetail> page
, @Param("tSalaryStandardOriginalDetail") TSalaryStandardOriginalDetail tSalaryStandardOriginalDetail);
/**
* 薪资原表识别导入-分页
*/
List<TSalaryStandardOriginalDetail> getTSalaryStandardOriginalDetailByOrgId(@Param("originalId") String originalId);
/**
* @Description: 删除关系
* @Author: hgw
* @Date: 2024/4/3 15:42
* @return: int
**/
int deleteByOrgId(@Param("originalId") String originalId);
}
/*
* 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.salary.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryStandardOriginal;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 薪资原表识别导入
*
* @author hgw
* @date 2024-4-2 11:57:29
*/
@Mapper
public interface TSalaryStandardOriginalMapper extends BaseMapper<TSalaryStandardOriginal> {
/**
* 薪资原表识别导入-分页
*/
IPage<TSalaryStandardOriginal> getTSalaryStandardOriginalPage(Page<TSalaryStandardOriginal> page
, @Param("tSalaryStandardOriginal") TSalaryStandardOriginal tSalaryStandardOriginal);
/**
* 薪资原表识别导入-分页
*/
List<TSalaryStandardOriginal> getTSalaryStandardOriginalList(
@Param("tSalaryStandardOriginal") TSalaryStandardOriginal tSalaryStandardOriginal);
/**
* 特殊身份证允许识别为数据行
*/
List<String> getSpecialIdCardList();
}
/*
* 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.salary.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryStandardOriginalDetail;
import java.util.List;
/**
* 薪资原表识别
*
* @author hgw
* @date 2024-4-2 17:20:36
*/
public interface TSalaryStandardOriginalDetailService extends IService<TSalaryStandardOriginalDetail> {
/**
* @Description: 分页查询
* @Author: hgw
* @Date: 2024/4/2 17:20
* @return:
**/
IPage<TSalaryStandardOriginalDetail> getTSalaryStandardOriginalPage(Page<TSalaryStandardOriginalDetail> page, TSalaryStandardOriginalDetail tSalaryStandardOriginalDetail);
/**
* @param originalId
* @Description: 获取详情
* @Author: hgw
* @Date: 2024/4/2 18:18
* @return: java.util.List<com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryStandardOriginalDetail>
**/
List<TSalaryStandardOriginalDetail> getTSalaryStandardOriginalDetailByOrgId(String originalId);
/**
* @param originalId
* @Description: 删除关系
* @Author: hgw
* @Date: 2024/4/3 15:39
* @return: boolean
**/
int deleteByOrgId(String originalId);
}
/*
* 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.salary.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryStandardOriginal;
import com.yifu.cloud.plus.v1.yifu.salary.vo.ExcelSheetVo;
import com.yifu.cloud.plus.v1.yifu.salary.vo.SalaryUploadOriginalParamVo;
import com.yifu.cloud.plus.v1.yifu.salary.vo.SalaryUploadParamVo;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/**
* 薪资原表识别
*
* @author hgw
* @date 2024-4-2 17:20:36
*/
public interface TSalaryStandardOriginalService extends IService<TSalaryStandardOriginal> {
/**
* @Description: 分页查询
* @Author: hgw
* @Date: 2024/4/2 17:20
* @return:
**/
IPage<TSalaryStandardOriginal> getTSalaryStandardOriginalPage(Page<TSalaryStandardOriginal> page, TSalaryStandardOriginal tSalaryStandardOriginal);
List<TSalaryStandardOriginal> getTSalaryStandardOriginalList(TSalaryStandardOriginal tSalaryStandardOriginal);
/**
* @param file
* @Description: 识别表头主类
* @Author: hgw
* @Date: 2024/4/3 17:40
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.salary.vo.ExcelVo>
**/
R<ExcelSheetVo> getExcelHeader(MultipartFile file, String sheetName);
/**
* @param excelVo
* @Description: 新版原表识别导入
* @Author: hgw
* @Date: 2024/4/8 18:05
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.util.List < com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage>>
**/
R<SalaryUploadParamVo> salaryUploadByOriginal(MultipartFile file, SalaryUploadOriginalParamVo excelVo);
}
/*
* 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.salary.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryStandardOriginalDetail;
import com.yifu.cloud.plus.v1.yifu.salary.mapper.TSalaryStandardOriginalDetailMapper;
import com.yifu.cloud.plus.v1.yifu.salary.service.TSalaryStandardOriginalDetailService;
import lombok.AllArgsConstructor;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 薪资原表识别
* @author hgw
* @date 2024-4-2 17:20:46
*/
@Log4j2
@Service
@AllArgsConstructor
public class TSalaryStandardOriginalDetailServiceImpl extends ServiceImpl<TSalaryStandardOriginalDetailMapper, TSalaryStandardOriginalDetail>
implements TSalaryStandardOriginalDetailService {
/**
* @Description: 分页查询
* @Author: hgw
* @Date: 2024/4/2 17:19
* @return:
**/
@Override
public IPage<TSalaryStandardOriginalDetail> getTSalaryStandardOriginalPage(Page<TSalaryStandardOriginalDetail> page, TSalaryStandardOriginalDetail tSalaryStandardOriginalDetail) {
return baseMapper.getTSalaryStandardOriginalDetailPage(page, tSalaryStandardOriginalDetail);
}
@Override
public List<TSalaryStandardOriginalDetail> getTSalaryStandardOriginalDetailByOrgId(String originalId) {
return baseMapper.getTSalaryStandardOriginalDetailByOrgId(originalId);
}
/**
* @Description: 删除关系
* @Author: hgw
* @Date: 2024/4/3 15:42
* @return: int
**/
@Override
public int deleteByOrgId(String originalId) {
return baseMapper.deleteByOrgId(originalId);
}
}
......@@ -39,7 +39,8 @@ public class SalaryConstants {
//模板列必填
public static final String IS_MUST = "1";
public static final String EMP_NAME = "姓名";
public static final String IF_NEW_EMPLOYEE = "是否新员工(默认否)";
public static final String EMP_NAME2 = "员工姓名";
public static final String IF_NEW_EMPLOYEE = "是否新员工(默认否)";
public static final String IS_NEW_EMPLOYEE = "是否新员工";
public static final String IS_NEW = "是";
public static final String ID_NUMBER = "身份证号";
......
<?xml version="1.0" encoding="UTF-8"?>
<!--
~
~ Copyright (c) 2018-2025, lengleng All rights reserved.
~
~ Redistribution and use in source and binary forms, with or without
~ modification, are permitted provided that the following conditions are met:
~
~ Redistributions of source code must retain the above copyright notice,
~ this list of conditions and the following disclaimer.
~ Redistributions in binary form must reproduce the above copyright
~ notice, this list of conditions and the following disclaimer in the
~ documentation and/or other materials provided with the distribution.
~ Neither the name of the yifu4cloud.com developer nor the names of its
~ contributors may be used to endorse or promote products derived from
~ this software without specific prior written permission.
~ Author: lengleng (wangiegie@gmail.com)
~
-->
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yifu.cloud.plus.v1.yifu.salary.mapper.TSalaryStandardOriginalDetailMapper">
<resultMap id="TSalaryStandardOriginalDetailMap" type="com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryStandardOriginalDetail">
<id property="id" column="ID"/>
<result property="originalId" column="ORIGINAL_ID"/>
<result property="columnNo" column="COLUMN_NO"/>
<result property="excelName" column="EXCEL_NAME"/>
<result property="modelName" column="MODEL_NAME"/>
<result property="flag" column="FLAG"/>
<result property="formulaNo" column="FORMULA_NO"/>
</resultMap>
<sql id="Base_Column_List">
a.ID,
a.ORIGINAL_ID,
a.COLUMN_NO,
a.EXCEL_NAME,
a.MODEL_NAME,
a.FLAG,
a.FORMULA_NO
</sql>
<sql id="TSalaryStandardOriginalDetail_where">
<if test="tSalaryStandardOriginalDetail != null">
<if test="tSalaryStandardOriginalDetail.id != null and tSalaryStandardOriginalDetail.id.trim() != ''">
AND a.ID = #{tSalaryStandardOriginalDetail.id}
</if>
<if test="tSalaryStandardOriginalDetail.originalId != null and tSalaryStandardOriginalDetail.originalId.trim() != ''">
AND a.ORIGINAL_ID = #{tSalaryStandardOriginalDetail.originalId}
</if>
<if test="tSalaryStandardOriginalDetail.columnNo != null and tSalaryStandardOriginalDetail.columnNo.trim() != ''">
AND a.COLUMN_NO = #{tSalaryStandardOriginalDetail.columnNo}
</if>
<if test="tSalaryStandardOriginalDetail.excelName != null and tSalaryStandardOriginalDetail.excelName.trim() != ''">
AND a.EXCEL_NAME = #{tSalaryStandardOriginalDetail.excelName}
</if>
<if test="tSalaryStandardOriginalDetail.modelName != null and tSalaryStandardOriginalDetail.modelName.trim() != ''">
AND a.MODEL_NAME = #{tSalaryStandardOriginalDetail.modelName}
</if>
</if>
</sql>
<!--TSalaryStandardOriginalDetail简单分页查询-->
<select id="getTSalaryStandardOriginalDetailPage" resultMap="TSalaryStandardOriginalDetailMap">
SELECT
<include refid="Base_Column_List"/>
FROM
t_salary_standard_original_detail a
<where> 1=1
<include refid="TSalaryStandardOriginalDetail_where"/>
</where>
ORDER BY a.COLUMN_NO asc
</select>
<!--获取详情-->
<select id="getTSalaryStandardOriginalDetailByOrgId" resultMap="TSalaryStandardOriginalDetailMap">
SELECT
<include refid="Base_Column_List"/>
FROM
t_salary_standard_original_detail a
where a.ORIGINAL_ID = #{originalId}
ORDER BY a.COLUMN_NO asc
</select>
<!--删除关系-->
<delete id="deleteByOrgId" >
DELETE FROM t_salary_standard_original_detail WHERE ORIGINAL_ID = #{originalId}
</delete>
</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.yifu.salary.mapper.TSalaryStandardOriginalMapper">
<resultMap id="TSalaryStandardOriginalMap" type="com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryStandardOriginal">
<id property="id" column="ID"/>
<result property="deptId" column="DEPT_ID"/>
<result property="deptName" column="DEPT_NAME"/>
<result property="deptNo" column="DEPT_NO"/>
<result property="createBy" column="CREATE_BY"/>
<result property="createName" column="CREATE_NAME"/>
<result property="createTime" column="CREATE_TIME"/>
<result property="updateBy" column="UPDATE_BY"/>
<result property="updateTime" column="UPDATE_TIME"/>
<result property="setName" column="SET_NAME"/>
<result property="sheetName" column="SHEET_NAME"/>
<result property="attaName" column="ATTA_NAME"/>
<result property="attaSrc" column="ATTA_SRC"/>
<result property="attaUrl" column="ATTA_URL"/>
<result property="attaSize" column="ATTA_SIZE"/>
<result property="attaType" column="ATTA_TYPE"/>
<result property="dateNum" column="DATE_NUM"/>
<result property="deleteFlag" column="DELETE_FLAG"/>
</resultMap>
<sql id="Base_Column_List">
a.ID,
a.DEPT_ID,
a.DEPT_NAME,
a.DEPT_NO,
a.CREATE_BY,
a.CREATE_NAME,
a.CREATE_TIME,
a.UPDATE_BY,
a.UPDATE_TIME,
a.SET_NAME,
a.SHEET_NAME,
a.ATTA_NAME,
a.ATTA_SRC,
a.ATTA_URL,
a.ATTA_SIZE,
a.ATTA_TYPE,
a.DATE_NUM,
a.DELETE_FLAG
</sql>
<sql id="TSalaryStandardOriginal_where">
<if test="tSalaryStandardOriginal != null">
<if test="tSalaryStandardOriginal.id != null and tSalaryStandardOriginal.id.trim() != ''">
AND a.ID != #{tSalaryStandardOriginal.id}
</if>
<if test="tSalaryStandardOriginal.deptId != null and tSalaryStandardOriginal.deptId.trim() != ''">
AND a.DEPT_ID = #{tSalaryStandardOriginal.deptId}
</if>
<if test="tSalaryStandardOriginal.deptName != null and tSalaryStandardOriginal.deptName.trim() != ''">
AND a.DEPT_NAME like concat('%',#{tSalaryStandardOriginal.deptName},'%')
</if>
<if test="tSalaryStandardOriginal.deptNo != null and tSalaryStandardOriginal.deptNo.trim() != ''">
AND a.DEPT_NO = #{tSalaryStandardOriginal.deptNo}
</if>
<if test="tSalaryStandardOriginal.setName != null and tSalaryStandardOriginal.setName.trim() != ''">
AND a.SET_NAME like concat('%',#{tSalaryStandardOriginal.setName},'%')
</if>
<if test="tSalaryStandardOriginal.sheetName != null and tSalaryStandardOriginal.sheetName.trim() != ''">
AND a.SHEET_NAME like concat('%',#{tSalaryStandardOriginal.sheetName},'%')
</if>
<if test="tSalaryStandardOriginal.attaName != null and tSalaryStandardOriginal.attaName.trim() != ''">
AND ATTA_NAME = #{tSalaryStandardOriginal.attaName}
</if>
<if test="tSalaryStandardOriginal.attaSrc != null and tSalaryStandardOriginal.attaSrc.trim() != ''">
AND ATTA_SRC = #{tSalaryStandardOriginal.attaSrc}
</if>
<if test="tSalaryStandardOriginal.attaUrl != null and tSalaryStandardOriginal.attaUrl.trim() != ''">
AND ATTA_URL = #{tSalaryStandardOriginal.attaUrl}
</if>
<if test="tSalaryStandardOriginal.attaSize != null and tSalaryStandardOriginal.attaSize.trim() != ''">
AND ATTA_SIZE = #{tSalaryStandardOriginal.attaSize}
</if>
<if test="tSalaryStandardOriginal.attaType != null and tSalaryStandardOriginal.attaType.trim() != ''">
AND ATTA_TYPE = #{tSalaryStandardOriginal.attaType}
</if>
</if>
</sql>
<!--TSalaryStandardOriginal简单分页查询-->
<select id="getTSalaryStandardOriginalPage" resultMap="TSalaryStandardOriginalMap">
SELECT
<include refid="Base_Column_List"/>
FROM
t_salary_standard_original a
<where> a.DELETE_FLAG = 0
<include refid="TSalaryStandardOriginal_where"/>
</where>
ORDER BY a.CREATE_TIME desc
</select>
<!--导入工资时的获取识别配置列表-->
<select id="getTSalaryStandardOriginalList" resultMap="TSalaryStandardOriginalMap">
SELECT
<include refid="Base_Column_List"/>
FROM
t_salary_standard_original a
<where> a.DELETE_FLAG = 0
<if test="tSalaryStandardOriginal != null">
<if test="tSalaryStandardOriginal.id != null and tSalaryStandardOriginal.id.trim() != ''">
AND a.ID != #{tSalaryStandardOriginal.id}
</if>
<if test="tSalaryStandardOriginal.deptId != null and tSalaryStandardOriginal.deptId.trim() != ''">
AND a.DEPT_ID = #{tSalaryStandardOriginal.deptId}
</if>
<if test="tSalaryStandardOriginal.deptName != null and tSalaryStandardOriginal.deptName.trim() != ''">
AND a.DEPT_NAME = #{tSalaryStandardOriginal.deptName}
</if>
<if test="tSalaryStandardOriginal.deptNo != null and tSalaryStandardOriginal.deptNo.trim() != ''">
AND a.DEPT_NO = #{tSalaryStandardOriginal.deptNo}
</if>
<if test="tSalaryStandardOriginal.setName != null and tSalaryStandardOriginal.setName.trim() != ''">
AND a.SET_NAME = #{tSalaryStandardOriginal.setName}
</if>
</if>
</where>
ORDER BY a.CREATE_TIME asc
</select>
<!-- 特殊身份证允许识别为数据行 -->
<select id="getSpecialIdCardList" resultType="java.lang.String">
SELECT a.ID_CARD FROM t_salary_standard_original_special_idcard a
</select>
</mapper>
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