Commit bef4d521 authored by huyuchen's avatar huyuchen

Merge remote-tracking branch 'origin/develop'

parents 5ddcf2f4 a2ebb69d
...@@ -16,7 +16,9 @@ ...@@ -16,7 +16,9 @@
*/ */
package com.yifu.cloud.plus.v1.yifu.archives.entity; package com.yifu.cloud.plus.v1.yifu.archives.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat; import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute; import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
...@@ -25,6 +27,7 @@ import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity; ...@@ -25,6 +27,7 @@ import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.Max; import javax.validation.constraints.Max;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
......
package com.yifu.cloud.plus.v1.yifu.archives.vo;
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 java.io.Serializable;
/**
* @Author fxj
* @Date 2023/10/17
* @Description
* @Version 1.0
*/
@Data
public class DataPermissionImportVo extends RowIndex implements Serializable {
@ExcelAttribute(name = "登录账号", maxLength = 30,isNotEmpty = true)
@Schema(description = "登录账号")
private String userLoginName;
@ExcelAttribute(name = "项目名称", maxLength = 32,isNotEmpty = false)
@Schema(description = "项目名称")
private String settleDomainName;
@Length(max = 32, message = "项目编码不能超过32个字符")
@ExcelAttribute(name = "项目编码", maxLength = 32,isNotEmpty = true)
@Schema(description = "项目编码")
private String settleDomainNo;
}
package com.yifu.cloud.plus.v1.yifu.archives.vo;
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 java.io.Serializable;
/**
* @Author fxj
* @Date 2023/10/17
* @Description 社保公积金审核权限VO
* @Version 1.0
*/
@Data
public class SocialAuthHandleImportVo extends RowIndex implements Serializable {
@ExcelAttribute(name = "登录账号", maxLength = 30,isNotEmpty = true)
@Schema(description = "登录账号")
private String userLoginName;
@Length(max = 32, message = "户名称不能超过32个字符")
@ExcelAttribute(name = "户名称", maxLength = 32,isNotEmpty = true)
@Schema(description = "户名称")
private String houseHold;
}
package com.yifu.cloud.plus.v1.yifu.archives.vo;
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 java.io.Serializable;
/**
* @Author fxj
* @Date 2023/10/17
* @Description 社保公积金审核权限VO
* @Version 1.0
*/
@Data
public class SocialAuthImportVo extends RowIndex implements Serializable {
@ExcelAttribute(name = "登录账号", maxLength = 30,isNotEmpty = true)
@Schema(description = "登录账号")
private String userLoginName;
/**
* 户类型:0社保 1公积金
*/
@Schema(description ="户类型:0社保 1公积金")
@ExcelAttribute(name = "户类型:0社保 1公积金", maxLength = 32,isNotEmpty = true,isDataId = true,readConverterExp = "0=社保,1=公积金")
private String type;
@Length(max = 32, message = "户名称不能超过32个字符")
@ExcelAttribute(name = "户名称", maxLength = 32,isNotEmpty = false)
@Schema(description = "户名称")
private String houseHold;
}
package com.yifu.cloud.plus.v1.yifu.archives.vo; package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import org.hibernate.validator.constraints.Length;
import java.io.Serializable; import java.io.Serializable;
...@@ -53,5 +57,17 @@ public class UpProjectSocialFundVo implements Serializable { ...@@ -53,5 +57,17 @@ public class UpProjectSocialFundVo implements Serializable {
String detailId; String detailId;
String contactAddress; String contactAddress;
String highEducation; String highEducation;
/**
* 学校
*/
@Schema(description = "学校" )
private String schoolName;
/**
* 专业
*/
@Schema(description = "专业" )
private String major;
// 是否更新学历标识
String flag; String flag;
} }
...@@ -87,6 +87,12 @@ ...@@ -87,6 +87,12 @@
<artifactId>mapper</artifactId> <artifactId>mapper</artifactId>
<version>2.3.0</version> <version>2.3.0</version>
</dependency> </dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-transaction-core</artifactId>
<version>4.1.1</version>
<scope>compile</scope>
</dependency>
</dependencies> </dependencies>
<build> <build>
......
...@@ -9,6 +9,7 @@ import com.yifu.cloud.plus.v1.yifu.archives.service.TCutsomerDataPermissonServic ...@@ -9,6 +9,7 @@ import com.yifu.cloud.plus.v1.yifu.archives.service.TCutsomerDataPermissonServic
import com.yifu.cloud.plus.v1.yifu.archives.service.TSettleDomainService; import com.yifu.cloud.plus.v1.yifu.archives.service.TSettleDomainService;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants; 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.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R; import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser; import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog; import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
...@@ -16,7 +17,10 @@ import com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils; ...@@ -16,7 +17,10 @@ import com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.SneakyThrows;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
...@@ -34,133 +38,152 @@ import java.util.List; ...@@ -34,133 +38,152 @@ import java.util.List;
@Tag(name = "客户数据权限表") @Tag(name = "客户数据权限表")
public class TCutsomerDataPermissonController { public class TCutsomerDataPermissonController {
private final TCutsomerDataPermissonService tCutsomerDataPermissonService; private final TCutsomerDataPermissonService tCutsomerDataPermissonService;
private final TSettleDomainService settleDomainService; private final TSettleDomainService settleDomainService;
/** /**
* 简单分页查询 * 简单分页查询
* @param page 分页对象 *
* @param tCutsomerDataPermisson 客户数据权限表 * @param page 分页对象
* @return * @param tCutsomerDataPermisson 客户数据权限表
*/ * @return
@Operation(description = "简单分页查询") */
@GetMapping("/page") @Operation(description = "简单分页查询")
public R<IPage<TCutsomerDataPermisson>> getTCutsomerDataPermissonPage(Page<TCutsomerDataPermisson> page, TCutsomerDataPermisson tCutsomerDataPermisson) { @GetMapping("/page")
return new R<>(tCutsomerDataPermissonService.getTCutsomerDataPermissonPage(page,tCutsomerDataPermisson)); public R<IPage<TCutsomerDataPermisson>> getTCutsomerDataPermissonPage(Page<TCutsomerDataPermisson> page, TCutsomerDataPermisson tCutsomerDataPermisson) {
} return new R<>(tCutsomerDataPermissonService.getTCutsomerDataPermissonPage(page, tCutsomerDataPermisson));
}
/** /**
* 导出list * 导出list
* @param tCutsomerDataPermisson 客户数据权限表 *
* @return * @param tCutsomerDataPermisson 客户数据权限表
*/ * @return
@Operation(description = "导出的list") */
@PostMapping("/getList") @Operation(description = "导出的list")
public R<List<TCutsomerDataPermisson>> getTCutsomerDataPermissonList(@RequestBody TCutsomerDataPermisson tCutsomerDataPermisson) { @PostMapping("/getList")
return new R<>(tCutsomerDataPermissonService.getTCutsomerDataPermissonList(tCutsomerDataPermisson)); public R<List<TCutsomerDataPermisson>> getTCutsomerDataPermissonList(@RequestBody TCutsomerDataPermisson tCutsomerDataPermisson) {
} return new R<>(tCutsomerDataPermissonService.getTCutsomerDataPermissonList(tCutsomerDataPermisson));
}
/** /**
* @Author fxj * @return
* @Description 获取实体的权限: type-类型0:客户1:合同2:项目(不传默认2项目) * @Author fxj
* @Date 15:20 2022/7/13 * @Description 获取实体的权限: type-类型0:客户1:合同2:项目(不传默认2项目)
* @Param * @Date 15:20 2022/7/13
* @return * @Param
**/ **/
@Operation(description = "获取实体的权限:默认项目") @Operation(description = "获取实体的权限:默认项目")
@GetMapping("/getPermissonByTypeAndId") @GetMapping("/getPermissonByTypeAndId")
public R<IPage<TCutsomerDataPermisson>> getTCutsomerDataPermissonByTypeAndId(@RequestParam String settleDomainId) { public R<IPage<TCutsomerDataPermisson>> getTCutsomerDataPermissonByTypeAndId(@RequestParam String settleDomainId) {
TCutsomerDataPermisson tp = new TCutsomerDataPermisson(); TCutsomerDataPermisson tp = new TCutsomerDataPermisson();
tp.setSettleDomainId(settleDomainId); tp.setSettleDomainId(settleDomainId);
return new R(tCutsomerDataPermissonService.list(Wrappers.lambdaQuery(tp))); return new R(tCutsomerDataPermissonService.list(Wrappers.lambdaQuery(tp)));
} }
/** /**
* @return
* @Author fxj * @Author fxj
* @Description 获取实体的权限: type-类型0:客户1:合同2:项目(不传默认2项目) * @Description 获取实体的权限: type-类型0:客户1:合同2:项目(不传默认2项目)
* @Date 15:21 2022/7/13 * @Date 15:21 2022/7/13
* @Param * @Param
* @return **/
**/ @Operation(description = "权限复制 权限同项目分配客服(wxhr:tsettledomain_assign_customerservice)")
@Operation(description = "权限复制 权限同项目分配客服(wxhr:tsettledomain_assign_customerservice)") @GetMapping("/copy")
@GetMapping("/copy") public R<String> insertForCopyCutsomerDataPermisson(String[] srcUser, String[] beUser) {
public R<String> insertForCopyCutsomerDataPermisson(String[] srcUser, String[] beUser) { YifuUser user = SecurityUtils.getUser();
YifuUser user = SecurityUtils.getUser(); R<String> result = tCutsomerDataPermissonService.insertForCopyCutsomerDataPermisson(srcUser, beUser, user);
R<String> result = tCutsomerDataPermissonService.insertForCopyCutsomerDataPermisson(srcUser, beUser, user); if (CommonConstants.SUCCESS.equals(result.getCode())) {//权限刷新
if(CommonConstants.SUCCESS.equals(result.getCode())){//权限刷新 settleDomainService.removeSettleCache(user, Arrays.asList(beUser));
settleDomainService.removeSettleCache(user, Arrays.asList(beUser)); }
} return result;
return result ; }
}
/** /**
* 通过id查询单条记录 * 通过id查询单条记录
* @param id *
* @return R * @param id
*/ * @return R
@Operation(description = "id查询") */
@GetMapping("/{id}") @Operation(description = "id查询")
public R<TCutsomerDataPermisson> getById(@PathVariable("id") String id){ @GetMapping("/{id}")
return new R<>(tCutsomerDataPermissonService.getById(id)); public R<TCutsomerDataPermisson> getById(@PathVariable("id") String id) {
} return new R<>(tCutsomerDataPermissonService.getById(id));
}
/** /**
* 新增记录 * 新增记录
* @param tCutsomerDataPermisson *
* @return R * @param tCutsomerDataPermisson
*/ * @return R
@Operation(description = "新增") */
@SysLog("新增客户数据权限表") @Operation(description = "新增")
@PostMapping @SysLog("新增客户数据权限表")
public R<String> save(@RequestBody TCutsomerDataPermisson tCutsomerDataPermisson){ @PostMapping
YifuUser user = SecurityUtils.getUser(); public R<String> save(@RequestBody TCutsomerDataPermisson tCutsomerDataPermisson) {
settleDomainService.removeSettleCache(user, Arrays.asList(tCutsomerDataPermisson.getUserId())); YifuUser user = SecurityUtils.getUser();
if (Common.isNotNull(tCutsomerDataPermisson.getUserId()) && Common.isNotNull(tCutsomerDataPermisson.getSettleDomainId())) { settleDomainService.removeSettleCache(user, Arrays.asList(tCutsomerDataPermisson.getUserId()));
List<TCutsomerDataPermisson> list = tCutsomerDataPermissonService.list(Wrappers.<TCutsomerDataPermisson>query().lambda() if (Common.isNotNull(tCutsomerDataPermisson.getUserId()) && Common.isNotNull(tCutsomerDataPermisson.getSettleDomainId())) {
.eq(TCutsomerDataPermisson::getUserId, tCutsomerDataPermisson.getUserId()) List<TCutsomerDataPermisson> list = tCutsomerDataPermissonService.list(Wrappers.<TCutsomerDataPermisson>query().lambda()
.eq(TCutsomerDataPermisson::getSettleDomainId, tCutsomerDataPermisson.getSettleDomainId()) .eq(TCutsomerDataPermisson::getUserId, tCutsomerDataPermisson.getUserId())
); .eq(TCutsomerDataPermisson::getSettleDomainId, tCutsomerDataPermisson.getSettleDomainId())
if (list != null && !list.isEmpty()) { );
return R.failed("该用户已存在该项目"); if (list != null && !list.isEmpty()) {
return R.failed("该用户已存在该项目");
}
tCutsomerDataPermissonService.save(tCutsomerDataPermisson);
return R.ok();
} else {
return R.failed("用户id与项目id必填");
} }
tCutsomerDataPermissonService.save(tCutsomerDataPermisson);
return R.ok();
} else {
return R.failed("用户id与项目id必填");
} }
}
/**
* 修改记录
* @param tCutsomerDataPermisson
* @return R
*/
@Operation(description = "修改")
@SysLog("修改客户数据权限表")
@PutMapping
public R<Boolean> update(@RequestBody TCutsomerDataPermisson tCutsomerDataPermisson) {
YifuUser user = SecurityUtils.getUser();
settleDomainService.removeSettleCache(user, Arrays.asList(tCutsomerDataPermisson.getUserId()));
return new R<>(tCutsomerDataPermissonService.updateById(tCutsomerDataPermisson));
}
/** /**
* 通过id删除一条记录 * 修改记录
* @param id *
* @return R * @param tCutsomerDataPermisson
*/ * @return R
@Operation(description = "删除(tcutsomerdatapermisson_del)") */
@SysLog("删除客户数据权限表") @Operation(description = "修改")
@DeleteMapping("/{id}") @SysLog("修改客户数据权限表")
public R<Boolean> removeById(@PathVariable String id){ @PutMapping
YifuUser user = SecurityUtils.getUser(); public R<Boolean> update(@RequestBody TCutsomerDataPermisson tCutsomerDataPermisson) {
TCutsomerDataPermisson tdp = tCutsomerDataPermissonService.getById(id); YifuUser user = SecurityUtils.getUser();
if(null == tdp){ settleDomainService.removeSettleCache(user, Arrays.asList(tCutsomerDataPermisson.getUserId()));
return new R<>(true); return new R<>(tCutsomerDataPermissonService.updateById(tCutsomerDataPermisson));
} }
//刷新缓存
settleDomainService.removeSettleCache(user, Arrays.asList(tdp.getUserId()));
return new R<>(tCutsomerDataPermissonService.removeById(id));
}
/**
* 通过id删除一条记录
*
* @param id
* @return R
*/
@Operation(description = "删除(tcutsomerdatapermisson_del)")
@SysLog("删除客户数据权限表")
@DeleteMapping("/{id}")
public R<Boolean> removeById(@PathVariable String id) {
YifuUser user = SecurityUtils.getUser();
TCutsomerDataPermisson tdp = tCutsomerDataPermissonService.getById(id);
if (null == tdp) {
return new R<>(true);
}
//刷新缓存
settleDomainService.removeSettleCache(user, Arrays.asList(tdp.getUserId()));
return new R<>(tCutsomerDataPermissonService.removeById(id));
}
/**
* @Author fxj
* @Description 批量导入项目权限
* @Date 16:59 2023/10/17
* @Param
* @return
**/
@SneakyThrows
@Operation(description = "批量新增项目权限")
@SysLog("批量新增项目权限")
@PostMapping("/importListAdd")
public R<List<ErrorMessage>> importListAdd(@RequestBody MultipartFile file) {
return tCutsomerDataPermissonService.importDiy(file.getInputStream());
}
} }
...@@ -24,9 +24,11 @@ import com.yifu.cloud.plus.v1.yifu.archives.entity.TCustomerInfo; ...@@ -24,9 +24,11 @@ import com.yifu.cloud.plus.v1.yifu.archives.entity.TCustomerInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TSettleDomain; import com.yifu.cloud.plus.v1.yifu.archives.entity.TSettleDomain;
import com.yifu.cloud.plus.v1.yifu.archives.vo.*; import com.yifu.cloud.plus.v1.yifu.archives.vo.*;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R; import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.HashMap;
import java.util.List; import java.util.List;
/** /**
...@@ -111,4 +113,6 @@ public interface TSettleDomainMapper extends BaseMapper<TSettleDomain> { ...@@ -111,4 +113,6 @@ public interface TSettleDomainMapper extends BaseMapper<TSettleDomain> {
void changeIssueStatus(@Param("changeIssueStatusVo")ChangeIssueStatusVo changeIssueStatusVo); void changeIssueStatus(@Param("changeIssueStatusVo")ChangeIssueStatusVo changeIssueStatusVo);
List<TSettleDomain> getAllInfoMap();
} }
...@@ -4,9 +4,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -4,9 +4,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TCutsomerDataPermisson; import com.yifu.cloud.plus.v1.yifu.archives.entity.TCutsomerDataPermisson;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R; import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser; import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import java.io.InputStream;
import java.util.List; import java.util.List;
/** /**
...@@ -43,4 +45,6 @@ public interface TCutsomerDataPermissonService extends IService<TCutsomerDataPer ...@@ -43,4 +45,6 @@ public interface TCutsomerDataPermissonService extends IService<TCutsomerDataPer
* @return * @return
**/ **/
R<String> insertForCopyCutsomerDataPermisson(String[] srcUserList, String[] beUser, YifuUser user); R<String> insertForCopyCutsomerDataPermisson(String[] srcUserList, String[] beUser, YifuUser user);
R<List<ErrorMessage>> importDiy(InputStream inputStream);
} }
package com.yifu.cloud.plus.v1.yifu.archives.service.impl; package com.yifu.cloud.plus.v1.yifu.archives.service.impl;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.ReadListener;
import com.alibaba.excel.read.metadata.holder.ReadRowHolder;
import com.alibaba.excel.util.ListUtils;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TCutsomerDataPermisson; import com.yifu.cloud.plus.v1.yifu.archives.entity.TCutsomerDataPermisson;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TSettleDomain;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TCutsomerDataPermissonMapper; import com.yifu.cloud.plus.v1.yifu.archives.mapper.TCutsomerDataPermissonMapper;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TSettleDomainMapper;
import com.yifu.cloud.plus.v1.yifu.archives.service.TCutsomerDataPermissonService; import com.yifu.cloud.plus.v1.yifu.archives.service.TCutsomerDataPermissonService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.DataPermissionImportVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CacheConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants; import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common; import com.yifu.cloud.plus.v1.yifu.common.core.util.*;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser; import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprUpmsProperties; import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprUpmsProperties;
import com.yifu.cloud.plus.v1.yifu.common.dapr.util.UpmsDaprUtils;
import lombok.AllArgsConstructor;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.shardingsphere.transaction.annotation.ShardingTransactionType;
import org.apache.shardingsphere.transaction.core.TransactionType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.io.InputStream;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
/** /**
...@@ -32,9 +48,15 @@ import java.util.*; ...@@ -32,9 +48,15 @@ import java.util.*;
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
@EnableConfigurationProperties(DaprUpmsProperties.class) @EnableConfigurationProperties(DaprUpmsProperties.class)
@AllArgsConstructor
@Slf4j @Slf4j
public class TCutsomerDataPermissonServiceImpl extends ServiceImpl<TCutsomerDataPermissonMapper, TCutsomerDataPermisson> implements TCutsomerDataPermissonService { public class TCutsomerDataPermissonServiceImpl extends ServiceImpl<TCutsomerDataPermissonMapper, TCutsomerDataPermisson> implements TCutsomerDataPermissonService {
@Autowired
private UpmsDaprUtils upmsDaprUtils;
@Autowired
private TSettleDomainMapper domainMapper;
@Autowired
private RedisUtil redisUtil;
/** /**
* 客户数据权限表简单分页查询 * 客户数据权限表简单分页查询
* *
...@@ -118,4 +140,176 @@ public class TCutsomerDataPermissonServiceImpl extends ServiceImpl<TCutsomerData ...@@ -118,4 +140,176 @@ public class TCutsomerDataPermissonServiceImpl extends ServiceImpl<TCutsomerData
public boolean save(TCutsomerDataPermisson cutsomerDataPermisson){ public boolean save(TCutsomerDataPermisson cutsomerDataPermisson){
return super.save(cutsomerDataPermisson); return super.save(cutsomerDataPermisson);
} }
/**
* @Author fxj
* @Description 批量导入项目权限
* @Date 16:59 2023/10/17
* @Param
* @return
**/
@Transactional(rollbackFor = Exception.class)
@ShardingTransactionType(TransactionType.BASE)
@Override
public R<List<ErrorMessage>> importDiy(InputStream inputStream) {
List<ErrorMessage> errorMessageList = new ArrayList<>();
ExcelUtil<DataPermissionImportVo> util1 = new ExcelUtil<>(DataPermissionImportVo.class);
List<TSettleDomain> settleDomains = domainMapper.getAllInfoMap();
Map<String, TSettleDomain> domainMap = null;
if (Common.isNotNull(settleDomains)){
domainMap = settleDomains.stream().collect(Collectors.toMap(k->k.getDepartNo(),k->k));
}
if (Common.isEmpty(domainMap)){
domainMap = new HashMap<>();
}
Map<String,SysUser> userMap = new HashMap<>();
Map<String,String> existMap = new HashMap<>();
// 写法2:
// 匿名内部类 不用额外写一个DemoDataListener
// 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭
try {
Map<String, TSettleDomain> finalDomainMap = domainMap;
EasyExcel.read(inputStream, DataPermissionImportVo.class, new ReadListener<DataPermissionImportVo>() {
/**
* 单次缓存的数据量
*/
public static final int BATCH_COUNT = CommonConstants.BATCH_COUNT;
/**
*临时存储
*/
private List<DataPermissionImportVo> cachedDataList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);
@Override
public void invoke(DataPermissionImportVo data, AnalysisContext context) {
ReadRowHolder readRowHolder = context.readRowHolder();
Integer rowIndex = readRowHolder.getRowIndex();
data.setRowIndex(rowIndex+1);
ErrorMessage errorMessage = util1.checkEntity(data, data.getRowIndex());
if (Common.isNotNull(errorMessage)){
errorMessage.setData(data);
errorMessageList.add(errorMessage);
}else {
cachedDataList.add(data);
}
if (cachedDataList.size() >= BATCH_COUNT) {
saveData();
// 存储完成清理 list
cachedDataList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);
}
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
saveData();
}
/**
* 加上存储数据库
*/
private void saveData() {
log.info("{}条数据,开始存储数据库!", cachedDataList.size());
importEntity(cachedDataList,errorMessageList, finalDomainMap,userMap,existMap);
log.info("存储数据库成功!");
}
}).sheet().doRead();
}catch (Exception e){
log.error(CommonConstants.IMPORT_DATA_ANALYSIS_ERROR,e);
return R.failed(CommonConstants.IMPORT_DATA_ANALYSIS_ERROR);
}finally {
// 清理
domainMap.clear();
}
return judgeAllMessage(errorMessageList);
}
/**
* @Author fxj
* @Description 判断所有返回数据,是否全部为正确的
* @Date 18:01 2023/10/18
* @Param
* @return
**/
private R<List<ErrorMessage>> judgeAllMessage(List<ErrorMessage> errorMessageList) {
if (!errorMessageList.isEmpty() && errorMessageList.stream().noneMatch(e-> e.getColor().equals(CommonConstants.RED))) {
return R.ok();
}
return R.ok(errorMessageList);
}
private void importEntity(List<DataPermissionImportVo> excelVOList,
List<ErrorMessage> errorMessageList,
Map<String,TSettleDomain> domainMap,
Map<String,SysUser> userMap,
Map<String,String> existMap) {
// 执行数据插入操作 组装
TCutsomerDataPermisson permission = null;
SysUser user;
R<SysUser> res;
TSettleDomain domain;
TCutsomerDataPermisson exist;
String temp;
DataPermissionImportVo excel;
for (int i = 0; i < excelVOList.size(); i++) {
excel = excelVOList.get(i);
// 数据合法情况
user = userMap.get(excel.getUserLoginName());
// 用户信息验证
if (Common.isEmpty(user)){
res = upmsDaprUtils.getSimpleUserByLoginName(excel.getUserLoginName());
if (Common.isNotNull(res) && Common.isNotNull(res.getData())){
user = res.getData();
userMap.put(user.getUsername(),user);
}else {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(),CommonConstants.USER_FAIL,excel));
continue;
}
}
if (Common.isEmpty(user.getDeptName())){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(),"对应登录账号无部门信息,请完善后导入",excel));
continue;
}
// 项目信息验证
domain = domainMap.get(excel.getSettleDomainNo());
if (Common.isEmpty(domain)){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(),CommonConstants.SETTLE_DOMAIN_NOT_EXIST,excel));
continue;
}
// 重复校验
temp = existMap.get(excel.getUserLoginName()+CommonConstants.DOWN_LINE_STRING+excel.getSettleDomainNo());
if (Common.isNotNull(temp)){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(),"对应账号的权限已存在,请勿重复导入",excel));
continue;
}else {
exist = baseMapper.selectOne(Wrappers.<TCutsomerDataPermisson>query().lambda()
.eq(TCutsomerDataPermisson::getSettleDomainNo,excel.getSettleDomainNo())
.eq(TCutsomerDataPermisson::getUserLoginName,excel.getUserLoginName())
.last(CommonConstants.LAST_ONE_SQL));
if (Common.isNotNull(exist)){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(),"对应账号的权限已存在,请勿重复导入",excel));
continue;
}
}
// 初始化及新增数据
permission = new TCutsomerDataPermisson();
permission.setType(CommonConstants.ONE_STRING);
permission.setSettleDomainId(domain.getId());
permission.setRemark("批量授权");
permission.setSettleDomainName(domain.getDepartName());
permission.setSettleDomainNo(domain.getDepartNo());
permission.setStatus(CommonConstants.ZERO_STRING);
permission.setUserId(user.getUserId());
permission.setUserDeptName(user.getDeptName());
permission.setUserLoginName(user.getUsername());
permission.setUserNickName(user.getNickname());
insertExcel(permission);
// 加入map 验证当前表单数据是否重复
existMap.put(excel.getUserLoginName()+CommonConstants.DOWN_LINE_STRING+excel.getSettleDomainNo(),excel.getSettleDomainNo());
errorMessageList.add(new ErrorMessage(excel.getRowIndex(),CommonConstants.SAVE_SUCCESS,CommonConstants.GREEN,excel));
// 清理缓存
redisUtil.remove(CacheConstants.WXHR_SETTLE_DOMAIN_VOS_BY_USERID +"_"+user.getUserId());
redisUtil.remove(CacheConstants.WXHR_SETTLE_DOMAIN_NOS_BY_USERID +"_"+user.getUserId());
}
}
/**
* 插入excel bad record
*/
private void insertExcel(TCutsomerDataPermisson entity) {
this.save(entity);
}
} }
...@@ -1418,6 +1418,12 @@ public class TEmployeeProjectServiceImpl extends ServiceImpl<TEmployeeProjectMap ...@@ -1418,6 +1418,12 @@ public class TEmployeeProjectServiceImpl extends ServiceImpl<TEmployeeProjectMap
if (Common.isNotNull(vo.getHighEducation())) { if (Common.isNotNull(vo.getHighEducation())) {
employee.setHignEducation(vo.getHighEducation()); employee.setHignEducation(vo.getHighEducation());
} }
if (Common.isNotNull(vo.getSchoolName())){
employee.setSchool(vo.getSchoolName());
}
if (Common.isNotNull(vo.getMajor())){
employee.setMajor(vo.getMajor());
}
} }
tEmployeeInfoMapper.updateSocialInfoById(employee); tEmployeeInfoMapper.updateSocialInfoById(employee);
} }
......
...@@ -1140,6 +1140,8 @@ ...@@ -1140,6 +1140,8 @@
<if test="tEmployeeInfo.socialStatus != null">SOCIAL_STATUS=#{tEmployeeInfo.socialStatus},</if> <if test="tEmployeeInfo.socialStatus != null">SOCIAL_STATUS=#{tEmployeeInfo.socialStatus},</if>
<if test="tEmployeeInfo.fundStatus != null">FUND_STATUS=#{tEmployeeInfo.fundStatus},</if> <if test="tEmployeeInfo.fundStatus != null">FUND_STATUS=#{tEmployeeInfo.fundStatus},</if>
<if test="tEmployeeInfo.hignEducation != null">HIGN_EDUCATION=#{tEmployeeInfo.hignEducation},</if> <if test="tEmployeeInfo.hignEducation != null">HIGN_EDUCATION=#{tEmployeeInfo.hignEducation},</if>
<if test="tEmployeeInfo.school != null">SCHOOL=#{tEmployeeInfo.school},</if>
<if test="tEmployeeInfo.major != null">MAJOR=#{tEmployeeInfo.major},</if>
<if test="tEmployeeInfo.contactAddress != null">CONTACT_ADDRESS=#{tEmployeeInfo.contactAddress},</if> <if test="tEmployeeInfo.contactAddress != null">CONTACT_ADDRESS=#{tEmployeeInfo.contactAddress},</if>
<if test="tEmployeeInfo.isCollege != null">IS_COLLEGE='1',</if> <if test="tEmployeeInfo.isCollege != null">IS_COLLEGE='1',</if>
<if test="tEmployeeInfo.fileProvince != null">a.FILE_PROVINCE=#{tEmployeeInfo.fileProvince},</if> <if test="tEmployeeInfo.fileProvince != null">a.FILE_PROVINCE=#{tEmployeeInfo.fileProvince},</if>
......
...@@ -510,4 +510,11 @@ ...@@ -510,4 +510,11 @@
set a.ISSUE_STATUS=#{changeIssueStatusVo.issueStatus} set a.ISSUE_STATUS=#{changeIssueStatusVo.issueStatus}
WHERE a.ID=#{changeIssueStatusVo.id} WHERE a.ID=#{changeIssueStatusVo.id}
</update> </update>
<select id="getAllInfoMap" resultMap="tSettleDomainMap">
SELECT
<include refid="Base_Column_List"/>
FROM
t_settle_domain a
where a.DELETE_FLAG = '0'
</select>
</mapper> </mapper>
...@@ -154,6 +154,8 @@ public interface CacheConstants { ...@@ -154,6 +154,8 @@ public interface CacheConstants {
String PAYMENT_PRE_DISPATCH_BATCH_ADD_IMPORT = "payment_pre_dispatch_batch_add_import"; String PAYMENT_PRE_DISPATCH_BATCH_ADD_IMPORT = "payment_pre_dispatch_batch_add_import";
String INSURANCE_BATCH_UPDATE_IMPORT = "insurance_batch_update_import";
String DISPATCH_BATCH_AUDIT = "dispatch_batch_audit"; String DISPATCH_BATCH_AUDIT = "dispatch_batch_audit";
String DISPATCH_BATCH_HANDLED = "dispatch_batch_handled"; String DISPATCH_BATCH_HANDLED = "dispatch_batch_handled";
......
...@@ -532,6 +532,8 @@ public interface CommonConstants { ...@@ -532,6 +532,8 @@ public interface CommonConstants {
String SETTLE_DOMAIN_GET_ERROR = "获取结算主体信息失败!"; String SETTLE_DOMAIN_GET_ERROR = "获取结算主体信息失败!";
String SETTLE_DOMAIN_NOT_EXIST = "无对应项目信息";
/** /**
* c端机构节点 code * c端机构节点 code
* @Author hgw * @Author hgw
......
...@@ -475,6 +475,10 @@ public class ExcelUtil <T> implements Serializable { ...@@ -475,6 +475,10 @@ public class ExcelUtil <T> implements Serializable {
return (String)RedisUtil.redis.opsForValue().get(CacheConstants.AREA_LABEL + c); return (String)RedisUtil.redis.opsForValue().get(CacheConstants.AREA_LABEL + c);
} }
public String getAreaLabelPublic(String c) {
return (String)RedisUtil.redis.opsForValue().get(CacheConstants.AREA_LABEL + c);
}
private String getAreaValue(String c, String tempStr, ExcelAttribute attr,Integer rowNum, ErrorMessage errorTemp) { private String getAreaValue(String c, String tempStr, ExcelAttribute attr,Integer rowNum, ErrorMessage errorTemp) {
tempStr = String.valueOf(RedisUtil.redis.opsForValue().get(CacheConstants.AREA_VALUE + c)); tempStr = String.valueOf(RedisUtil.redis.opsForValue().get(CacheConstants.AREA_VALUE + c));
if (Common.isEmpty(tempStr)){ if (Common.isEmpty(tempStr)){
......
...@@ -90,4 +90,12 @@ public class UpmsDaprUtils { ...@@ -90,4 +90,12 @@ public class UpmsDaprUtils {
} }
return userR; return userR;
} }
public R<SysUser> getSimpleUserByLoginName(String loginName) {
R<SysUser> userR = HttpDaprUtil.invokeMethodPost(daprUpmsProperties.getAppUrl(),daprUpmsProperties.getAppId(),"/user/inner/getSimpleUserByLoginName",loginName, SysUser.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(userR)){
return R.failed("获取所有用户数据失败!");
}
return userR;
}
} }
...@@ -2,7 +2,10 @@ package com.yifu.cloud.plus.v1.yifu.insurances.controller; ...@@ -2,7 +2,10 @@ package com.yifu.cloud.plus.v1.yifu.insurances.controller;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CacheConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants; import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ResultConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.redis.RedisDistributedLock;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common; 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.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser; import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
...@@ -310,7 +313,30 @@ public class TInsuranceDetailController { ...@@ -310,7 +313,30 @@ public class TInsuranceDetailController {
@PostMapping("/registeredPolicyPremium") @PostMapping("/registeredPolicyPremium")
@PreAuthorize("@pms.hasPermission('handle_insure_cost')") @PreAuthorize("@pms.hasPermission('handle_insure_cost')")
public R<List<InsuranceRegisterParam>> registeredPolicyPremium(@RequestBody @Valid @Size(min = 1,message = "集合不能为空") List<InsuranceRegisterParam> paramList){ public R<List<InsuranceRegisterParam>> registeredPolicyPremium(@RequestBody @Valid @Size(min = 1,message = "集合不能为空") List<InsuranceRegisterParam> paramList){
return tInsuranceDetailService.registeredPolicyPremium(paramList); YifuUser user = SecurityUtils.getUser();
if (Common.isEmpty(user)){
return R.failed(CommonConstants.USER_FAIL);
}
// 获取redis分布式事务锁
String key = CacheConstants.INSURANCE_BATCH_UPDATE_IMPORT + CommonConstants.DOWN_LINE_STRING + user.getId();
String requestId;
try {
requestId = RedisDistributedLock.getLock(key,"10");
} catch (Exception e) {
throw new RuntimeException(ResultConstants.NO_GETLOCK_DATA+CommonConstants.DOWN_LINE_STRING+e.getMessage());
}
try {
if (Common.isNotNull(requestId)) {
//主动释放锁
return tInsuranceDetailService.registeredPolicyPremium(paramList);
} else {
return R.failed(ResultConstants.NO_GETLOCK_DATA);
}
}finally {
//主动释放锁
RedisDistributedLock.unlock(key, requestId);
}
} }
/** /**
...@@ -324,7 +350,30 @@ public class TInsuranceDetailController { ...@@ -324,7 +350,30 @@ public class TInsuranceDetailController {
@PostMapping("/registeredInvoiceNo") @PostMapping("/registeredInvoiceNo")
@PreAuthorize("@pms.hasPermission('handle_insure_invoice')") @PreAuthorize("@pms.hasPermission('handle_insure_invoice')")
public R<List<InsuranceRegisterInvoiceNoParam>> registeredInvoiceNo(@RequestBody @Valid @Size(min = 1,message = "集合不能为空") List<InsuranceRegisterInvoiceNoParam> paramList){ public R<List<InsuranceRegisterInvoiceNoParam>> registeredInvoiceNo(@RequestBody @Valid @Size(min = 1,message = "集合不能为空") List<InsuranceRegisterInvoiceNoParam> paramList){
return tInsuranceDetailService.registeredInvoiceNo(paramList);
YifuUser user = SecurityUtils.getUser();
if (Common.isEmpty(user)){
return R.failed(CommonConstants.USER_FAIL);
}
// 获取redis分布式事务锁
String key = CacheConstants.INSURANCE_BATCH_UPDATE_IMPORT + CommonConstants.DOWN_LINE_STRING + user.getId();
String requestId;
try {
requestId = RedisDistributedLock.getLock(key,"10");
} catch (Exception e) {
throw new RuntimeException(ResultConstants.NO_GETLOCK_DATA+CommonConstants.DOWN_LINE_STRING+e.getMessage());
}
try {
if (Common.isNotNull(requestId)) {
//主动释放锁
return tInsuranceDetailService.registeredInvoiceNo(paramList);
} else {
return R.failed(ResultConstants.NO_GETLOCK_DATA);
}
}finally {
//主动释放锁
RedisDistributedLock.unlock(key, requestId);
}
} }
/** /**
......
...@@ -133,6 +133,12 @@ public class SysMenu extends BaseEntity { ...@@ -133,6 +133,12 @@ public class SysMenu extends BaseEntity {
@Schema(description = "部门权限id") @Schema(description = "部门权限id")
private String deptId; private String deptId;
/**
* 二级指标归属id
*/
@Schema(description = "二级指标归属id")
private String twoLevelId;
/** /**
* 权限idList * 权限idList
*/ */
......
...@@ -109,6 +109,14 @@ public interface SysUserPermissionMapper extends BaseMapper<SysUserPermission> { ...@@ -109,6 +109,14 @@ public interface SysUserPermissionMapper extends BaseMapper<SysUserPermission> {
*/ */
IPage<SysUserDeptVo> selectDeptVO(Page<SysUserDeptVo> page, @Param("name") String name); IPage<SysUserDeptVo> selectDeptVO(Page<SysUserDeptVo> page, @Param("name") String name);
/**
* 根据名称或者编码查询数据
* 二级指标归属权限
* @param name 名称
* @return
*/
IPage<SysUserDeptVo> selectTwoGsVO(Page<SysUserDeptVo> page, @Param("name") String name);
/** /**
* 根据类型查询字典值 * 根据类型查询字典值
* *
...@@ -181,6 +189,14 @@ public interface SysUserPermissionMapper extends BaseMapper<SysUserPermission> { ...@@ -181,6 +189,14 @@ public interface SysUserPermissionMapper extends BaseMapper<SysUserPermission> {
*/ */
Integer selectDeptCount(@Param("name") String name); Integer selectDeptCount(@Param("name") String name);
/**
* 根据名称或者编码查询数据
* 部门&&收入归属权限
* @param name 名称
* @return
*/
Integer selectTwoGsCount(@Param("name") String name);
/** /**
* @param userId * @param userId
* @Description: 查找当前用户的所有权限 * @Description: 查找当前用户的所有权限
......
...@@ -163,6 +163,9 @@ public class SysUserPermissionServiceImpl extends ServiceImpl<SysUserPermissionM ...@@ -163,6 +163,9 @@ public class SysUserPermissionServiceImpl extends ServiceImpl<SysUserPermissionM
} else if (CommonConstants.EIGHT_STRING.equals(searchVo.getType()) || CommonConstants.NINE_STRING.equals(searchVo.getType())) { } else if (CommonConstants.EIGHT_STRING.equals(searchVo.getType()) || CommonConstants.NINE_STRING.equals(searchVo.getType())) {
//部门&&收入归属权限 //部门&&收入归属权限
iPage = baseMapper.selectDeptVO(page, searchVo.getName()); iPage = baseMapper.selectDeptVO(page, searchVo.getName());
} else if (CommonConstants.TEN_STRING.equals(searchVo.getType()) ) {
//二级指标归属权限
iPage = baseMapper.selectTwoGsVO(page, searchVo.getName());
} else { } else {
//项目权限 //项目权限
if (Common.isNotNull(user.getId()) && CommonConstants.ZERO_STRING.equals(user.getSystemFlag())) { if (Common.isNotNull(user.getId()) && CommonConstants.ZERO_STRING.equals(user.getSystemFlag())) {
...@@ -305,7 +308,8 @@ public class SysUserPermissionServiceImpl extends ServiceImpl<SysUserPermissionM ...@@ -305,7 +308,8 @@ public class SysUserPermissionServiceImpl extends ServiceImpl<SysUserPermissionM
flag.append(insert.getPermissionType()); flag.append(insert.getPermissionType());
flag.append("_"); flag.append("_");
if (CommonConstants.SIX_STRING.equals(insert.getPermissionType()) || if (CommonConstants.SIX_STRING.equals(insert.getPermissionType()) ||
CommonConstants.SEVEN_STRING.equals(insert.getPermissionType())) { CommonConstants.SEVEN_STRING.equals(insert.getPermissionType()) ||
CommonConstants.TEN_STRING.equals(insert.getPermissionType())) {
flag.append(excel.getName()); flag.append(excel.getName());
} else { } else {
flag.append(excel.getCode()); flag.append(excel.getCode());
...@@ -317,14 +321,17 @@ public class SysUserPermissionServiceImpl extends ServiceImpl<SysUserPermissionM ...@@ -317,14 +321,17 @@ public class SysUserPermissionServiceImpl extends ServiceImpl<SysUserPermissionM
uniqueMap.put(flag.toString(), CommonConstants.ONE_STRING); uniqueMap.put(flag.toString(), CommonConstants.ONE_STRING);
} }
//BU和条线的时候用名称判断,其他用编码判断 //BU、条线、二级指标归属的时候用名称判断,其他用编码判断
//判断此登录名是否已经存在此权限维度 //判断此登录名是否已经存在此权限维度
if (CommonConstants.SIX_STRING.equals(insert.getPermissionType()) if (CommonConstants.SIX_STRING.equals(insert.getPermissionType())
|| CommonConstants.SEVEN_STRING.equals(insert.getPermissionType())) { || CommonConstants.SEVEN_STRING.equals(insert.getPermissionType())
|| CommonConstants.TEN_STRING.equals(insert.getPermissionType())) {
//判断对应维度的名称是否存在 //判断对应维度的名称是否存在
Integer count; Integer count;
if (CommonConstants.SIX_STRING.equals(insert.getPermissionType())) { if (CommonConstants.SIX_STRING.equals(insert.getPermissionType())) {
count = baseMapper.selectDictByName(excel.getName(), "bu"); count = baseMapper.selectDictByName(excel.getName(), "bu");
} else if (CommonConstants.TEN_STRING.equals(insert.getPermissionType())) {
count = baseMapper.selectTwoGsCount(excel.getName());
} else { } else {
count = baseMapper.selectDictByName(excel.getName(), "line"); count = baseMapper.selectDictByName(excel.getName(), "line");
} }
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
<result property="buId" column="BU_ID"/> <result property="buId" column="BU_ID"/>
<result property="lineId" column="LINE_ID"/> <result property="lineId" column="LINE_ID"/>
<result property="deptId" column="DEPT_ID"/> <result property="deptId" column="DEPT_ID"/>
<result property="twoLevelId" column="TWO_LEVEL_ID"/>
<result property="createBy" column="CREATE_BY"/> <result property="createBy" column="CREATE_BY"/>
<result property="updateBy" column="UPDATE_BY"/> <result property="updateBy" column="UPDATE_BY"/>
<result property="createName" column="CREATE_NAME"/> <result property="createName" column="CREATE_NAME"/>
...@@ -50,6 +51,7 @@ ...@@ -50,6 +51,7 @@
a.LINE_ID, a.LINE_ID,
a.DEPT_ID, a.DEPT_ID,
a.IS_OPEN, a.IS_OPEN,
a.TWO_LEVEL_ID,
a.VIEW_ID, a.VIEW_ID,
a.CREATE_TIME, a.CREATE_TIME,
a.TABLE_NAME, a.TABLE_NAME,
......
...@@ -207,6 +207,16 @@ ...@@ -207,6 +207,16 @@
</if> </if>
</select> </select>
<select id="selectTwoGsVO" resultMap="nameAndCodeMap">
SELECT
a.fd_3b1235d8f35c6c name
from ekp_793f0c590104b7ebd460 a
where 1 = 1
<if test="name != null and name.trim() != ''">
AND a.fd_3b1235d8f35c6c like concat('%',#{name},'%')
</if>
</select>
<!--根据部门编码查询id--> <!--根据部门编码查询id-->
<select id="selectSettleByCode" resultType="java.lang.String"> <select id="selectSettleByCode" resultType="java.lang.String">
SELECT SELECT
...@@ -281,6 +291,13 @@ ...@@ -281,6 +291,13 @@
where a.fd_is_available = '1' and fd_org_type = 2 and a.fd_no = #{name} where a.fd_is_available = '1' and fd_org_type = 2 and a.fd_no = #{name}
</select> </select>
<select id="selectTwoGsCount" resultType="java.lang.Integer">
SELECT
count(1)
from ekp_793f0c590104b7ebd460 a
where a.fd_3b1235d8f35c6c = #{name}
</select>
<!-- 查找当前用户的所有权限 --> <!-- 查找当前用户的所有权限 -->
<select id="getUserPermissionByUserId" resultMap="sysUserPermissionMap"> <select id="getUserPermissionByUserId" resultMap="sysUserPermissionMap">
select select
......
/*
* 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.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 javax.validation.constraints.NotBlank;
/**
* 薪资人员档案变更记录
*
* @author fxj
* @date 2023-10-11 17:48:31
*/
@Data
@TableName("t_salary_emp_mod_log")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "薪资人员档案变更记录")
public class TSalaryEmpModLog extends BaseEntity {
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("id")
@Schema(description = "id")
private String id;
/**
* content
*/
@ExcelAttribute(name = "content", maxLength = 50)
@Length(max = 50, message = "content不能超过50个字符")
@ExcelProperty("content")
@Schema(description = "content")
private String content;
/**
* 0编辑、1批量更新、2EKP变更银行卡号
*/
@ExcelAttribute(name = "0编辑、1批量更新、2EKP变更银行卡号", isNotEmpty = true, errorInfo = "0编辑、1批量更新、2EKP变更银行卡号不能为空", maxLength = 1)
@NotBlank(message = "0编辑、1批量更新、2EKP变更银行卡号不能为空")
@Length(max = 1, message = "0编辑、1批量更新、2EKP变更银行卡号不能超过1个字符")
@ExcelProperty("0编辑、1批量更新、2EKP变更银行卡号")
@Schema(description = "0编辑、1批量更新、2EKP变更银行卡号")
private String type;
/**
* idNum
*/
@ExcelAttribute(name = "idNum", maxLength = 20)
@Length(max = 20, message = "idNum不能超过20个字符")
@ExcelProperty("idNum")
@Schema(description = "idNum")
private String idNum;
/**
* parentId
*/
@ExcelAttribute(name = "parentId", maxLength = 32)
@Length(max = 32, message = "parentId不能超过32个字符")
@ExcelProperty("parentId")
@Schema(description = "parentId")
private String parentId;
}
/*
* 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.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryEmpModLog;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 薪资人员档案变更记录
*
* @author fxj
* @date 2023-10-11 17:48:31
*/
@Data
public class TSalaryEmpModLogSearchVo extends TSalaryEmpModLog {
/**
* 多选导出或删除等操作
*/
@Schema(description = "选中ID,多个逗号分割")
private String ids;
/**
* 创建时间区间 [开始时间,结束时间]
*/
@Schema(description = "创建时间区间")
private LocalDateTime[] createTimes;
/**
* @Author fxj
* 查询数据起
**/
@Schema(description = "查询limit 开始")
private int limitStart;
/**
* @Author fxj
* 查询数据止
**/
@Schema(description = "查询limit 数据条数")
private int limitEnd;
//开始时间(查询专用)
@ExcelAttribute(name = "创建开始时间")
@TableField(exist = false)
private LocalDateTime createTimeStart;
//截止时间(查询专用)
@ExcelAttribute(name = "创建截止时间")
@TableField(exist = false)
private LocalDateTime createTimeEnd;
}
/*
* 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.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 2023-10-11 17:48:31
*/
@Data
public class TSalaryEmpModLogVo extends RowIndex implements Serializable {
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@NotBlank(message = "id 不能为空")
@Length(max = 32, message = "id 不能超过32 个字符")
@ExcelAttribute(name = "id", isNotEmpty = true, errorInfo = "id 不能为空", maxLength = 32)
@Schema(description = "id")
@ExcelProperty("id")
private String id;
/**
* content
*/
@Length(max = 50, message = "content 不能超过50 个字符")
@ExcelAttribute(name = "content", maxLength = 50)
@Schema(description = "content")
@ExcelProperty("content")
private String content;
/**
* 0编辑、1批量更新、2EKP变更银行卡号
*/
@NotBlank(message = "0编辑、1批量更新、2EKP变更银行卡号 不能为空")
@Length(max = 1, message = "0编辑、1批量更新、2EKP变更银行卡号 不能超过1 个字符")
@ExcelAttribute(name = "0编辑、1批量更新、2EKP变更银行卡号", isNotEmpty = true, errorInfo = "0编辑、1批量更新、2EKP变更银行卡号 不能为空", maxLength = 1)
@Schema(description = "0编辑、1批量更新、2EKP变更银行卡号")
@ExcelProperty("0编辑、1批量更新、2EKP变更银行卡号")
private String type;
/**
* idNum
*/
@Length(max = 20, message = "idNum 不能超过20 个字符")
@ExcelAttribute(name = "idNum", maxLength = 20)
@Schema(description = "idNum")
@ExcelProperty("idNum")
private String idNum;
/**
* parentId
*/
@Length(max = 32, message = "parentId 不能超过32 个字符")
@ExcelAttribute(name = "parentId", maxLength = 32)
@Schema(description = "parentId")
@ExcelProperty("parentId")
private String parentId;
}
/*
* 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.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.salary.entity.TSalaryEmpModLog;
import com.yifu.cloud.plus.v1.yifu.salary.service.TSalaryEmpModLogService;
import com.yifu.cloud.plus.v1.yifu.salary.vo.TSalaryEmpModLogSearchVo;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 薪资人员档案变更记录
*
* @author fxj
* @date 2023-10-11 17:48:31
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/tsalaryempmodlog" )
@Tag(name = "薪资人员档案变更记录管理")
public class TSalaryEmpModLogController {
private final TSalaryEmpModLogService tSalaryEmpModLogService;
/**
* 简单分页查询
* @param page 分页对象
* @param tSalaryEmpModLog 薪资人员档案变更记录
* @return
*/
@Operation(description = "简单分页查询")
@GetMapping("/page")
public R<IPage<TSalaryEmpModLog>> getTSalaryEmpModLogPage(Page<TSalaryEmpModLog> page, TSalaryEmpModLogSearchVo tSalaryEmpModLog) {
return new R<>(tSalaryEmpModLogService.getTSalaryEmpModLogPage(page,tSalaryEmpModLog));
}
/**
* 不分页查询
* @param tSalaryEmpModLog 薪资人员档案变更记录
* @return
*/
@Operation(summary = "不分页查询", description = "不分页查询")
@PostMapping("/noPage" )
public R<List<TSalaryEmpModLog>> getTSalaryEmpModLogNoPage(@RequestBody TSalaryEmpModLogSearchVo tSalaryEmpModLog) {
return R.ok(tSalaryEmpModLogService.noPageDiy(tSalaryEmpModLog));
}
/**
* 通过id查询薪资人员档案变更记录
* @param id id
* @return R
*/
@Operation(summary = "通过id查询", description = "通过id查询:hasPermission('demo_tsalaryempmodlog_get')")
@GetMapping("/{id}" )
@PreAuthorize("@pms.hasPermission('demo_tsalaryempmodlog_get')" )
public R<TSalaryEmpModLog> getById(@PathVariable("id" ) String id) {
return R.ok(tSalaryEmpModLogService.getById(id));
}
/**
* 新增薪资人员档案变更记录
* @param tSalaryEmpModLog 薪资人员档案变更记录
* @return R
*/
@Operation(summary = "新增薪资人员档案变更记录", description = "新增薪资人员档案变更记录:hasPermission('demo_tsalaryempmodlog_add')")
@SysLog("新增薪资人员档案变更记录" )
@PostMapping
public R<Boolean> save(@RequestBody TSalaryEmpModLog tSalaryEmpModLog) {
return R.ok(tSalaryEmpModLogService.save(tSalaryEmpModLog));
}
/**
* 修改薪资人员档案变更记录
* @param tSalaryEmpModLog 薪资人员档案变更记录
* @return R
*/
@Operation(summary = "修改薪资人员档案变更记录", description = "修改薪资人员档案变更记录:hasPermission('demo_tsalaryempmodlog_edit')")
@SysLog("修改薪资人员档案变更记录" )
@PutMapping
public R<Boolean> updateById(@RequestBody TSalaryEmpModLog tSalaryEmpModLog) {
return R.ok(tSalaryEmpModLogService.updateById(tSalaryEmpModLog));
}
/**
* 通过id删除薪资人员档案变更记录
* @param id id
* @return R
*/
@Operation(summary = "通过id删除薪资人员档案变更记录", description = "通过id删除薪资人员档案变更记录:hasPermission('demo_tsalaryempmodlog_del')")
@SysLog("通过id删除薪资人员档案变更记录" )
@DeleteMapping("/{id}" )
public R<Boolean> removeById(@PathVariable String id) {
return R.ok(tSalaryEmpModLogService.removeById(id));
}
}
...@@ -128,7 +128,7 @@ public class TSalaryEmployeeController { ...@@ -128,7 +128,7 @@ public class TSalaryEmployeeController {
@PutMapping @PutMapping
@PreAuthorize("@pms.hasPermission('salary_tsalaryemployee_edit')") @PreAuthorize("@pms.hasPermission('salary_tsalaryemployee_edit')")
public R<Boolean> updateById(@RequestBody TSalaryEmployee tSalaryEmployee) { public R<Boolean> updateById(@RequestBody TSalaryEmployee tSalaryEmployee) {
return R.ok(tSalaryEmployeeService.updateById(tSalaryEmployee)); return tSalaryEmployeeService.updateByIdDiy(tSalaryEmployee);
} }
/** /**
......
/*
* 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.TSalaryEmpModLog;
import com.yifu.cloud.plus.v1.yifu.salary.vo.TSalaryEmpModLogSearchVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 薪资人员档案变更记录
*
* @author fxj
* @date 2023-10-11 17:48:31
*/
@Mapper
public interface TSalaryEmpModLogMapper extends BaseMapper<TSalaryEmpModLog> {
/**
* 薪资人员档案变更记录简单分页查询
* @param tSalaryEmpModLog 薪资人员档案变更记录
* @return
*/
IPage<TSalaryEmpModLog> getTSalaryEmpModLogPage(Page<TSalaryEmpModLog> page, @Param("tSalaryEmpModLog") TSalaryEmpModLogSearchVo tSalaryEmpModLog);
}
/*
* 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.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ExcelUtil;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryEmpModLog;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryEmployee;
import com.yifu.cloud.plus.v1.yifu.salary.vo.TSalaryEmpModLogSearchVo;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.util.List;
/**
* 薪资人员档案变更记录
*
* @author fxj
* @date 2023-10-11 17:48:31
*/
public interface TSalaryEmpModLogService extends IService<TSalaryEmpModLog> {
/**
* 薪资人员档案变更记录简单分页查询
* @param tSalaryEmpModLog 薪资人员档案变更记录
* @return
*/
IPage<TSalaryEmpModLog> getTSalaryEmpModLogPage(Page<TSalaryEmpModLog> page, TSalaryEmpModLogSearchVo tSalaryEmpModLog);
List<TSalaryEmpModLog> noPageDiy(TSalaryEmpModLogSearchVo searchVo);
void initModLog(TSalaryEmployee newEntity, TSalaryEmployee oldEntity, String type, String userName, ExcelUtil<TSalaryEmployee> util);
}
...@@ -123,4 +123,7 @@ public interface TSalaryEmployeeService extends IService<TSalaryEmployee> { ...@@ -123,4 +123,7 @@ public interface TSalaryEmployeeService extends IService<TSalaryEmployee> {
R updateEmployeeFromEkp(TSalaryEmployeeEkpUpdateVo vo); R updateEmployeeFromEkp(TSalaryEmployeeEkpUpdateVo vo);
List<TSalaryEmpRosterVo> getSalaryEmpRoster(List<String> idCardList); List<TSalaryEmpRosterVo> getSalaryEmpRoster(List<String> idCardList);
R<Boolean> updateByIdDiy(TSalaryEmployee tSalaryEmployee);
} }
/*
* 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 cn.hutool.core.util.ArrayUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.esotericsoftware.minlog.Log;
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.ExcelUtil;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryEmpModLog;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryEmployee;
import com.yifu.cloud.plus.v1.yifu.salary.mapper.TSalaryEmpModLogMapper;
import com.yifu.cloud.plus.v1.yifu.salary.service.TSalaryEmpModLogService;
import com.yifu.cloud.plus.v1.yifu.salary.vo.TSalaryEmpModLogSearchVo;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 薪资人员档案变更记录
*
* @author fxj
* @date 2023-10-11 17:48:31
*/
@Log4j2
@Service
public class TSalaryEmpModLogServiceImpl extends ServiceImpl<TSalaryEmpModLogMapper, TSalaryEmpModLog> implements TSalaryEmpModLogService {
/**
* 薪资人员档案变更记录简单分页查询
* @param tSalaryEmpModLog 薪资人员档案变更记录
* @return
*/
@Override
public IPage<TSalaryEmpModLog> getTSalaryEmpModLogPage(Page<TSalaryEmpModLog> page, TSalaryEmpModLogSearchVo tSalaryEmpModLog){
return baseMapper.getTSalaryEmpModLogPage(page,tSalaryEmpModLog);
}
@Override
public List<TSalaryEmpModLog> noPageDiy(TSalaryEmpModLogSearchVo searchVo) {
LambdaQueryWrapper<TSalaryEmpModLog> wrapper = buildQueryWrapper(searchVo);
List<String> idList = Common.getList(searchVo.getIds());
if (Common.isNotNull(idList)){
wrapper.in(TSalaryEmpModLog::getId,idList);
}
if (searchVo.getLimitStart() >= 0 && searchVo.getLimitEnd() > 0){
wrapper.last(" limit "+ searchVo.getLimitStart() +","+ searchVo.getLimitEnd());
}
wrapper.orderByDesc(BaseEntity::getCreateTime);
return baseMapper.selectList(wrapper);
}
/**
* @Author fxj
* @Description 记录变更日志
* @Date 17:59 2023/10/24
* @Param type 0 编辑 1 批量更新 3 EKP 更新
* @return
**/
@Override
public void initModLog(TSalaryEmployee newEntity, TSalaryEmployee oldEntity, String type,String userName,ExcelUtil<TSalaryEmployee> util) {
if (Common.isNotNull(newEntity) && Common.isNotNull(oldEntity)){
TSalaryEmpModLog log = new TSalaryEmpModLog();
log.setIdNum(newEntity.getEmpIdcard());
log.setParentId(newEntity.getId());
log.setType(type);
log.setCreateName(userName);
StringBuilder str = new StringBuilder();
//编辑
if (Common.isEmpty(util)){
util = new ExcelUtil<>(TSalaryEmployee.class);
}
extracted(newEntity, oldEntity, str);
//计税月份
if (Common.isNotNull(newEntity.getTaxMonth()) && !oldEntity.getTaxMonth().equals(newEntity.getTaxMonth())){
str.append("计税月份:");
str.append(oldEntity.getTaxMonth());
str.append("->");
str.append(newEntity.getTaxMonth());
str.append(" ");
}
//开户行省
if (Common.isNotNull(newEntity.getBankProvince())
&& !oldEntity.getBankProvince().equals(newEntity.getBankProvince())){
str.append("开户行省:");
str.append(Common.isEmpty(oldEntity.getBankProvince())?"":util.getAreaLabelPublic(oldEntity.getBankProvince()));
str.append("->");
str.append(Common.isEmpty(newEntity.getBankProvince())?"":util.getAreaLabelPublic(newEntity.getBankProvince()));
str.append(" ");
}
//开户行市
if (Common.isNotNull(newEntity.getBankCity()) && !oldEntity.getBankCity().equals(newEntity.getBankCity())){
str.append("开户行市:");
str.append(Common.isEmpty(oldEntity.getBankCity())?"":util.getAreaLabelPublic(oldEntity.getBankCity()));
str.append("->");
str.append(Common.isEmpty(newEntity.getBankCity())?"":util.getAreaLabelPublic(newEntity.getBankCity()));
str.append(" ");
}
log.setContent(str.toString());
Log.error("薪资人员变更记录表:"+str.toString());
if (Common.isNotNull(log.getContent())){
baseMapper.insert(log);
}
}
}
private void extracted(TSalaryEmployee newEntity, TSalaryEmployee oldEntity, StringBuilder str) {
//姓名
if (Common.isNotNull(newEntity.getEmpName())
&& !oldEntity.getEmpName().equals(newEntity.getEmpName())){
str.append("员工姓名:");
str.append(oldEntity.getEmpName());
str.append("->");
str.append(newEntity.getEmpName());
str.append(" ");
}
//开户行
if (Common.isNotNull(newEntity.getBankName())
&& !oldEntity.getBankName().equals(newEntity.getBankName())){
str.append("开户行:");
str.append(oldEntity.getBankName());
str.append("->");
str.append(newEntity.getBankName());
str.append(" ");
}
//银行卡号
if (Common.isNotNull(newEntity.getBankNo())
&& !oldEntity.getBankNo().equals(newEntity.getBankNo())){
str.append("银行卡号:");
str.append(oldEntity.getBankNo());
str.append("->");
str.append(newEntity.getBankNo());
str.append(" ");
}
//开户行支行
if ((Common.isEmpty(oldEntity.getBankSubName())
&& Common.isNotNull(newEntity.getBankSubName()))
|| (Common.isNotNull(newEntity.getBankSubName())
&& !newEntity.getBankSubName().equals(oldEntity.getBankSubName()))){
str.append("开户行支行:");
str.append(oldEntity.getBankSubName());
str.append("->");
str.append(newEntity.getBankSubName());
str.append(" ");
}
//在职状态
if (Common.isNotNull(newEntity.getFileStatus())
&& !oldEntity.getFileStatus().equals(newEntity.getFileStatus())){
str.append("在职状态:");
str.append(CommonConstants.ZERO_STRING.equals(oldEntity.getFileStatus())?"在职":"离职");
str.append("->");
str.append(CommonConstants.ZERO_STRING.equals(newEntity.getFileStatus())?"在职":"离职");
str.append(" ");
}
//手机号码
if (Common.isNotNull(newEntity.getEmpPhone())
&& !oldEntity.getEmpPhone().equals(newEntity.getEmpPhone())){
str.append("手机号码:");
str.append(oldEntity.getEmpPhone());
str.append("->");
str.append(newEntity.getEmpPhone());
str.append(" ");
}
}
private LambdaQueryWrapper buildQueryWrapper(TSalaryEmpModLogSearchVo entity){
LambdaQueryWrapper<TSalaryEmpModLog> wrapper = Wrappers.lambdaQuery();
if (ArrayUtil.isNotEmpty(entity.getCreateTimes())) {
wrapper.ge(TSalaryEmpModLog::getCreateTime, entity.getCreateTimes()[0])
.le(TSalaryEmpModLog::getCreateTime,
entity.getCreateTimes()[1]);
}
if (Common.isNotNull(entity.getCreateName())){
wrapper.eq(TSalaryEmpModLog::getCreateName,entity.getCreateName());
}
return wrapper;
}
}
...@@ -26,33 +26,40 @@ import com.alibaba.excel.read.listener.ReadListener; ...@@ -26,33 +26,40 @@ import com.alibaba.excel.read.listener.ReadListener;
import com.alibaba.excel.read.metadata.holder.ReadRowHolder; import com.alibaba.excel.read.metadata.holder.ReadRowHolder;
import com.alibaba.excel.util.ListUtils; import com.alibaba.excel.util.ListUtils;
import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.esotericsoftware.minlog.Log;
import com.yifu.cloud.plus.v1.check.entity.TCheckBankNo; import com.yifu.cloud.plus.v1.check.entity.TCheckBankNo;
import com.yifu.cloud.plus.v1.check.entity.TCheckIdCard; import com.yifu.cloud.plus.v1.check.entity.TCheckIdCard;
import com.yifu.cloud.plus.v1.check.entity.TCheckMobile; import com.yifu.cloud.plus.v1.check.entity.TCheckMobile;
import com.yifu.cloud.plus.v1.check.vo.CheckBankNoVo; import com.yifu.cloud.plus.v1.check.vo.CheckBankNoVo;
import com.yifu.cloud.plus.v1.check.vo.CheckBatchVo; import com.yifu.cloud.plus.v1.check.vo.CheckBatchVo;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TSettleDomain; import com.yifu.cloud.plus.v1.yifu.archives.entity.TSettleDomain;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CacheConstants; import com.yifu.cloud.plus.v1.yifu.common.core.constant.CacheConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants; import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.SecurityConstants; import com.yifu.cloud.plus.v1.yifu.common.core.constant.SecurityConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.*; import com.yifu.cloud.plus.v1.yifu.common.core.util.*;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprCheckProperties; import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprCheckProperties;
import com.yifu.cloud.plus.v1.yifu.common.dapr.util.HttpDaprUtil; import com.yifu.cloud.plus.v1.yifu.common.dapr.util.HttpDaprUtil;
import com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryAccountItem; import com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryAccountItem;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryEmployee; import com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryEmployee;
import com.yifu.cloud.plus.v1.yifu.salary.mapper.TSalaryEmployeeMapper; import com.yifu.cloud.plus.v1.yifu.salary.mapper.TSalaryEmployeeMapper;
import com.yifu.cloud.plus.v1.yifu.salary.service.TBankSetService; import com.yifu.cloud.plus.v1.yifu.salary.service.TBankSetService;
import com.yifu.cloud.plus.v1.yifu.salary.service.TSalaryEmpModLogService;
import com.yifu.cloud.plus.v1.yifu.salary.service.TSalaryEmployeeService; import com.yifu.cloud.plus.v1.yifu.salary.service.TSalaryEmployeeService;
import com.yifu.cloud.plus.v1.yifu.salary.util.SalaryConstants; import com.yifu.cloud.plus.v1.yifu.salary.util.SalaryConstants;
import com.yifu.cloud.plus.v1.yifu.salary.vo.*; import com.yifu.cloud.plus.v1.yifu.salary.vo.*;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -82,6 +89,9 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe ...@@ -82,6 +89,9 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe
@Autowired @Autowired
private TBankSetService tBankSetService; private TBankSetService tBankSetService;
@Autowired
private TSalaryEmpModLogService logService;
/** /**
* 薪酬人员表简单分页查询 * 薪酬人员表简单分页查询
* *
...@@ -531,6 +541,11 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe ...@@ -531,6 +541,11 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe
* @return: void * @return: void
**/ **/
public void updateTSalaryEmployee(List<TSalaryEmployeeUpdateVo> excelVOList, List<ErrorMessage> errorMessageList) { public void updateTSalaryEmployee(List<TSalaryEmployeeUpdateVo> excelVOList, List<ErrorMessage> errorMessageList) {
YifuUser user = SecurityUtils.getUser();
if (Common.isEmpty(user)){
errorMessageList.add(new ErrorMessage(CommonConstants.ONE_INT_NEGATE, CommonConstants.USER_FAIL));
return;
}
/// 个性化校验逻辑 /// 个性化校验逻辑
TSalaryEmployeeUpdateVo excel; TSalaryEmployeeUpdateVo excel;
List<String> idCardList = new ArrayList<>(); List<String> idCardList = new ArrayList<>();
...@@ -549,11 +564,15 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe ...@@ -549,11 +564,15 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe
String areaStr; String areaStr;
boolean curTaxMonth; boolean curTaxMonth;
Map<String, String> bankMap = tBankSetService.getBankMap(null); Map<String, String> bankMap = tBankSetService.getBankMap(null);
ExcelUtil<TSalaryEmployee> util = new ExcelUtil<>(TSalaryEmployee.class);
TSalaryEmployee old =null;
for (int i = 0; i < excelVOList.size(); i++) { for (int i = 0; i < excelVOList.size(); i++) {
excel = excelVOList.get(i); excel = excelVOList.get(i);
if (excel != null) { if (excel != null) {
if (Common.isNotNull(excel.getEmpIdcard())) { if (Common.isNotNull(excel.getEmpIdcard())) {
emp = empMap.get(excel.getEmpIdcard()); emp = empMap.get(excel.getEmpIdcard());
old = new TSalaryEmployee();
BeanUtil.copyProperties(emp,old);
if (Common.isNotNull(emp)) { if (Common.isNotNull(emp)) {
curTaxMonth = false; curTaxMonth = false;
if (Common.isNotNull(emp.getTaxMonth()) && Common.isNotNull(excel.getTaxMonth()) && emp.getTaxMonth().length()==6) { if (Common.isNotNull(emp.getTaxMonth()) && Common.isNotNull(excel.getTaxMonth()) && emp.getTaxMonth().length()==6) {
...@@ -599,6 +618,8 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe ...@@ -599,6 +618,8 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe
if (Common.isNotNull(excel.getEmpName())) { if (Common.isNotNull(excel.getEmpName())) {
emp.setEmpName(excel.getEmpName()); emp.setEmpName(excel.getEmpName());
} }
// 变更日志 fxj 2023-10-24
logService.initModLog(old,emp,CommonConstants.ONE_STRING,user.getNickname(),util);
baseMapper.updateById(emp); baseMapper.updateById(emp);
if (curTaxMonth) { if (curTaxMonth) {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), SalaryConstants.CUR_TAX_INFO)); errorMessageList.add(new ErrorMessage(excel.getRowIndex(), SalaryConstants.CUR_TAX_INFO));
...@@ -691,6 +712,7 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe ...@@ -691,6 +712,7 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe
+ "行:-上次代发户未校验【姓名与卡号】,本次校验结果:不匹配。请去薪酬人员查询处更新卡号信息!")); + "行:-上次代发户未校验【姓名与卡号】,本次校验结果:不匹配。请去薪酬人员查询处更新卡号信息!"));
return false; return false;
} }
} }
this.saveOrUpdateBatch(empList); this.saveOrUpdateBatch(empList);
} }
...@@ -902,17 +924,17 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe ...@@ -902,17 +924,17 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public R updateEmployeeFromEkp(TSalaryEmployeeEkpUpdateVo vo) { public R updateEmployeeFromEkp(TSalaryEmployeeEkpUpdateVo vo) {
if (Common.isEmpty(vo.getEmpIdcard())) {
return R.failed(CommonConstants.PARAM_IS_NOT_ERROR);
}
TSalaryEmployee one = baseMapper.selectOne(Wrappers.<TSalaryEmployee>query().lambda() TSalaryEmployee one = baseMapper.selectOne(Wrappers.<TSalaryEmployee>query().lambda()
.eq(TSalaryEmployee::getEmpIdcard, vo.getEmpIdcard()) .eq(TSalaryEmployee::getEmpIdcard, vo.getEmpIdcard())
.last(CommonConstants.LAST_ONE_SQL)); .last(CommonConstants.LAST_ONE_SQL));
TSalaryEmployee old = new TSalaryEmployee();
BeanUtil.copyProperties(one,old);
if (Common.isNotNull(one)) { if (Common.isNotNull(one)) {
one.setBankNo(vo.getBankNo()); one.setBankNo(vo.getBankNo());
one.setEmpName(vo.getEmpName()); one.setEmpName(vo.getEmpName());
one.setBankName(vo.getBankName()); one.setBankName(vo.getBankName());
baseMapper.updateById(one); baseMapper.updateById(one);
logService.initModLog(old,one,CommonConstants.TWO_STRING, "ekp",null);
} }
return R.ok(); return R.ok();
} }
...@@ -930,4 +952,24 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe ...@@ -930,4 +952,24 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe
} }
return null; return null;
} }
@Override
public R<Boolean> updateByIdDiy(TSalaryEmployee tSalaryEmployee) {
if (Common.isEmpty(tSalaryEmployee.getId())){
return R.failed(CommonConstants.PARAM_INFO_ERROR);
}
YifuUser user = SecurityUtils.getUser();
if (Common.isEmpty(user)){
return R.failed(CommonConstants.USER_FAIL);
}
// 变更日志 fxj 2023-10-24
TSalaryEmployee old = baseMapper.selectById(tSalaryEmployee.getId());
logService.initModLog(old,tSalaryEmployee,CommonConstants.ZERO_STRING,user.getNickname(),null);
int res = baseMapper.updateById(tSalaryEmployee);
if (res >= CommonConstants.ZERO_INT){
return R.ok();
}else {
return R.failed(CommonConstants.UPDATE_DATA_FAIL);
}
}
} }
<?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.TSalaryEmpModLogMapper">
<resultMap id="tSalaryEmpModLogMap" type="com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryEmpModLog">
<id property="id" column="id"/>
<result property="content" column="content"/>
<result property="type" column="type"/>
<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="idNum" column="id_num"/>
<result property="parentId" column="parent_id"/>
</resultMap>
<sql id="Base_Column_List">
a.id,
a.content,
a.type,
a.CREATE_BY,
a.CREATE_NAME,
a.CREATE_TIME,
a.UPDATE_BY,
a.UPDATE_TIME,
a.id_num,
a.parent_id
</sql>
<sql id="tSalaryEmpModLog_where">
<if test="tSalaryEmpModLog != null">
<if test="tSalaryEmpModLog.id != null and tSalaryEmpModLog.id.trim() != ''">
AND a.id = #{tSalaryEmpModLog.id}
</if>
<if test="tSalaryEmpModLog.content != null and tSalaryEmpModLog.content.trim() != ''">
AND a.content like concat('%',#{tSalaryEmpModLog.content},'%')
</if>
<if test="tSalaryEmpModLog.type != null and tSalaryEmpModLog.type.trim() != ''">
AND a.type = #{tSalaryEmpModLog.type}
</if>
<if test="tSalaryEmpModLog.createBy != null and tSalaryEmpModLog.createBy.trim() != ''">
AND a.CREATE_BY = #{tSalaryEmpModLog.createBy}
</if>
<if test="tSalaryEmpModLog.createName != null and tSalaryEmpModLog.createName.trim() != ''">
AND a.CREATE_NAME = #{tSalaryEmpModLog.createName}
</if>
<if test="tSalaryEmpModLog.createTimeStart != null">
AND a.CREATE_TIME <![CDATA[ >= ]]> #{tSalaryEmpModLog.createTimeStart}
</if>
<if test="tSalaryEmpModLog.createTimeEnd != null">
AND a.CREATE_TIME <![CDATA[ <= ]]> #{tSalaryEmpModLog.createTimeEnd}
</if>
<if test="tSalaryEmpModLog.updateBy != null and tSalaryEmpModLog.updateBy.trim() != ''">
AND a.UPDATE_BY = #{tSalaryEmpModLog.updateBy}
</if>
<if test="tSalaryEmpModLog.updateTime != null">
AND a.UPDATE_TIME = #{tSalaryEmpModLog.updateTime}
</if>
<if test="tSalaryEmpModLog.idNum != null and tSalaryEmpModLog.idNum.trim() != ''">
AND a.id_num = #{tSalaryEmpModLog.idNum}
</if>
<if test="tSalaryEmpModLog.parentId != null and tSalaryEmpModLog.parentId.trim() != ''">
AND a.parent_id = #{tSalaryEmpModLog.parentId}
</if>
</if>
</sql>
<!--tSalaryEmpModLog简单分页查询-->
<select id="getTSalaryEmpModLogPage" resultMap="tSalaryEmpModLogMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_salary_emp_mod_log a
<where>
1=1
<include refid="tSalaryEmpModLog_where"/>
</where>
</select>
</mapper>
...@@ -626,6 +626,36 @@ public class TDispatchInfo extends BaseEntity { ...@@ -626,6 +626,36 @@ public class TDispatchInfo extends BaseEntity {
@Schema(description = "学历", name = "contractName") @Schema(description = "学历", name = "contractName")
private String educationName; private String educationName;
/**
* 学校
*/
@ExcelAttribute(name = "学校",isNotEmpty = false)
@Length(max = 50, message = "学校不能超过50个字符")
@Schema(description = "学校:派增只做记录" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty(value ="学校")
private String schoolName;
/**
* 专业
*/
@ExcelAttribute(name = "专业",isNotEmpty = false)
@Length(max = 50, message = "学校不能超过50个字符")
@Schema(description = "专业:派增只做记录" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty(value ="专业")
private String major;
/**
* 首次至缴纳地时间
*/
@ExcelAttribute(name = "首次至缴纳地时间",isNotEmpty = false, isDate = true)
@Length(max = 50, message = "学校不能超过50个字符")
@Schema(description = "首次至缴纳地时间" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty(value ="首次至缴纳地时间")
private Date firstPayTime;
/** /**
* 试用期(单位月) * 试用期(单位月)
*/ */
......
...@@ -955,4 +955,14 @@ public class TSocialInfo extends BaseEntity { ...@@ -955,4 +955,14 @@ public class TSocialInfo extends BaseEntity {
@HeadFontStyle(fontHeightInPoints = 11) @HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("个人社保合计") @ExcelProperty("个人社保合计")
private BigDecimal personalSocialSum; private BigDecimal personalSocialSum;
/**
* 首次至缴纳地时间
*/
@ExcelAttribute(name = "首次至缴纳地时间",isNotEmpty = false, isDate = true)
@Length(max = 50, message = "学校不能超过50个字符")
@Schema(description = "首次至缴纳地时间" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty(value ="首次至缴纳地时间")
private Date firstPayTime;
} }
...@@ -4,13 +4,16 @@ import com.alibaba.excel.annotation.ExcelProperty; ...@@ -4,13 +4,16 @@ import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat; import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.annotation.write.style.HeadFontStyle; import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute; import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttributeConstants; import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttributeConstants;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import org.hibernate.validator.constraints.Length;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date;
/** /**
* @Author fxj * @Author fxj
...@@ -435,4 +438,33 @@ public class SocialHandleExportVo implements Serializable { ...@@ -435,4 +438,33 @@ public class SocialHandleExportVo implements Serializable {
@HeadFontStyle(fontHeightInPoints = 11) @HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("是否已导出" ) @ExcelProperty("是否已导出" )
private String exportSocialFlag; private String exportSocialFlag;
/**
* 学校
*/
@ExcelAttribute(name = "学校",isNotEmpty = false)
@Schema(description = "学校:派增只做记录" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty(value ="学校")
private String schoolName;
/**
* 专业
*/
@ExcelAttribute(name = "专业",isNotEmpty = false)
@Length(max = 50, message = "学校不能超过50个字符")
@Schema(description = "专业:派增只做记录" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty(value ="专业")
private String major;
/**
* 首次至缴纳地时间
*/
@DateTimeFormat("yyyy-MM-dd")
@ExcelAttribute(name = "首次至缴纳地时间",isNotEmpty = false,isDate = true)
@Schema(description = "首次至缴纳地时间" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty(value ="首次至缴纳地时间")
private Date firstPayTime;
} }
...@@ -351,4 +351,37 @@ public class TDispatchAuditExportVo { ...@@ -351,4 +351,37 @@ public class TDispatchAuditExportVo {
@ExcelProperty("个人公积金缴纳比例" ) @ExcelProperty("个人公积金缴纳比例" )
private BigDecimal personalProvidentPer; private BigDecimal personalProvidentPer;
@ExcelAttribute(name = "学历", maxLength = 32)
@Schema(description = "学历", name = "contractName")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("学历")
private String educationName;
/**
* 学校
*/
@ExcelAttribute(name = "学校",isNotEmpty = false)
@Schema(description = "学校:派增只做记录" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty(value ="学校")
private String schoolName;
/**
* 专业
*/
@ExcelAttribute(name = "专业",isNotEmpty = false)
@Length(max = 50, message = "学校不能超过50个字符")
@Schema(description = "专业:派增只做记录" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty(value ="专业")
private String major;
/**
* 首次至缴纳地时间
*/
@DateTimeFormat("yyyy-MM-dd")
@ExcelAttribute(name = "首次至缴纳地时间",isNotEmpty = false,isDate = true)
@Schema(description = "首次至缴纳地时间" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty(value ="首次至缴纳地时间")
private Date firstPayTime;
} }
...@@ -280,6 +280,36 @@ public class TDispatchImportVo extends RowIndex implements Serializable { ...@@ -280,6 +280,36 @@ public class TDispatchImportVo extends RowIndex implements Serializable {
@ExcelProperty(value ="学历") @ExcelProperty(value ="学历")
private String educationName; private String educationName;
/**
* 学校
*/
@ExcelAttribute(name = "学校",isNotEmpty = false,maxLength = 50)
@Length(max = 50, message = "学校不能超过50个字符")
@Schema(description = "学校:派增只做记录" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty(value ="学校")
private String schoolName;
/**
* 专业
*/
@ExcelAttribute(name = "专业",isNotEmpty = false,maxLength = 50)
@Length(max = 50, message = "学校不能超过50个字符")
@Schema(description = "专业:派增只做记录" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty(value ="专业")
private String major;
/**
* 首次至缴纳地时间
*/
@ExcelAttribute(name = "首次至缴纳地时间",isNotEmpty = false,isDate = true)
@Length(max = 50, message = "学校不能超过50个字符")
@Schema(description = "首次至缴纳地时间" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty(value ="首次至缴纳地时间")
private Date firstPayTime;
/** /**
* 备案基数 * 备案基数
*/ */
......
...@@ -476,4 +476,38 @@ public class TDispatchInfoExportVo { ...@@ -476,4 +476,38 @@ public class TDispatchInfoExportVo {
@HeadFontStyle(fontHeightInPoints = 11) @HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("公积金办理备注" ) @ExcelProperty("公积金办理备注" )
private String fundHandleRemark; private String fundHandleRemark;
@ExcelAttribute(name = "学历", maxLength = 32)
@Schema(description = "学历", name = "contractName")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("学历")
private String educationName;
/**
* 学校
*/
@ExcelAttribute(name = "学校",isNotEmpty = false)
@Schema(description = "学校:派增只做记录" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty(value ="学校")
private String schoolName;
/**
* 专业
*/
@ExcelAttribute(name = "专业",isNotEmpty = false)
@Schema(description = "专业:派增只做记录" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty(value ="专业")
private String major;
/**
* 首次至缴纳地时间
*/
@DateTimeFormat("yyyy-MM-dd")
@ExcelAttribute(name = "首次至缴纳地时间",isNotEmpty = false,isDate = true)
@Schema(description = "首次至缴纳地时间" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty(value ="首次至缴纳地时间")
private Date firstPayTime;
} }
...@@ -333,6 +333,106 @@ public class TPaymentInfoNewExportVo extends RowIndex implements Serializable { ...@@ -333,6 +333,106 @@ public class TPaymentInfoNewExportVo extends RowIndex implements Serializable {
@HeadFontStyle(fontHeightInPoints = 11) @HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("个人大病金额") @ExcelProperty("个人大病金额")
private BigDecimal personalBigmailmentMoney; private BigDecimal personalBigmailmentMoney;
/**
* 养老保险合计
*/
@ExcelAttribute(name = "养老保险合计")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("养老保险合计")
private BigDecimal pensionMoneySum;
/**
* 医疗保险合计
*/
@ExcelAttribute(name = "医疗保险合计")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("医疗保险合计")
private BigDecimal medicalMoneySum;
/**
* 失业保险合计
*/
@ExcelAttribute(name = "失业保险合计")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("失业保险合计")
private BigDecimal unemploymentMoneySum;
/**
* 工伤保险合计
*/
@ExcelAttribute(name = "工伤保险合计")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("工伤保险合计")
private BigDecimal injuryMoneySum;
/**
* 生育保险合计
*/
@ExcelAttribute(name = "生育保险合计")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("生育保险合计")
private BigDecimal birthMoneySum;
/**
* 大病保险合计
*/
@ExcelAttribute(name = "大病保险合计")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("大病保险合计")
private BigDecimal bigmailmentMoneySum;
/**
* 养老单位比例
*/
@ExcelAttribute(name = "养老单位比例")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("养老单位比例")
private BigDecimal unitPensionPer;
/**
* 医疗单位比例
*/
@ExcelAttribute(name = "医疗单位比例")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("医疗单位比例")
private BigDecimal unitMedicalPer;
/**
* 失业单位比例
*/
@ExcelAttribute(name = "失业单位比例")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("失业单位比例")
private BigDecimal unitUnemploymentPer;
/**
* 工伤单位比例
*/
@ExcelAttribute(name = "工伤单位比例")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("工伤单位比例")
private BigDecimal unitInjuryPer;
/**
* 生育单位比例
*/
@ExcelAttribute(name = "生育单位比例")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("生育单位比例")
private BigDecimal unitBirthPer;
/**
* 养老个人比例
*/
@ExcelAttribute(name = "养老个人比例")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("养老个人比例")
private BigDecimal personalPensionPer;
/**
* 个人医疗比例
*/
@ExcelAttribute(name = "医疗个人比例")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("医疗个人比例")
private BigDecimal personalMedicalPer;
/**
* 失业个人比例
*/
@ExcelAttribute(name = "失业个人比例")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("失业个人比例")
private BigDecimal personalUnemploymentPer;
/** /**
* 公积金编号 * 公积金编号
*/ */
......
...@@ -411,4 +411,62 @@ public class TPaymentInfoNewVo extends RowIndex implements Serializable { ...@@ -411,4 +411,62 @@ public class TPaymentInfoNewVo extends RowIndex implements Serializable {
@Schema(description = "二级指标归属") @Schema(description = "二级指标归属")
private String secondIndicatorBelong ; private String secondIndicatorBelong ;
/**
* 养老单位比例
*/
@ExcelAttribute(name = "养老单位比例")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("养老单位比例")
private BigDecimal unitPensionPer;
/**
* 医疗单位比例
*/
@ExcelAttribute(name = "医疗单位比例")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("医疗单位比例")
private BigDecimal unitMedicalPer;
/**
* 失业单位比例
*/
@ExcelAttribute(name = "失业单位比例")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("失业单位比例")
private BigDecimal unitUnemploymentPer;
/**
* 工伤单位比例
*/
@ExcelAttribute(name = "工伤单位比例")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("工伤单位比例")
private BigDecimal unitInjuryPer;
/**
* 生育单位比例
*/
@ExcelAttribute(name = "生育单位比例")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("生育单位比例")
private BigDecimal unitBirthPer;
/**
* 养老个人比例
*/
@ExcelAttribute(name = "养老个人比例")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("养老个人比例")
private BigDecimal personalPensionPer;
/**
* 个人医疗比例
*/
@ExcelAttribute(name = "医疗个人比例")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("医疗个人比例")
private BigDecimal personalMedicalPer;
/**
* 失业个人比例
*/
@ExcelAttribute(name = "失业个人比例")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("失业个人比例")
private BigDecimal personalUnemploymentPer;
} }
...@@ -19,15 +19,19 @@ package com.yifu.cloud.plus.v1.yifu.social.controller; ...@@ -19,15 +19,19 @@ package com.yifu.cloud.plus.v1.yifu.social.controller;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R; 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.log.annotation.SysLog;
import com.yifu.cloud.plus.v1.yifu.social.entity.TSocialfundHouseRes; import com.yifu.cloud.plus.v1.yifu.social.entity.TSocialfundHouseRes;
import com.yifu.cloud.plus.v1.yifu.social.service.TSocialfundHouseResService; import com.yifu.cloud.plus.v1.yifu.social.service.TSocialfundHouseResService;
import lombok.SneakyThrows;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.List; import java.util.List;
...@@ -119,4 +123,37 @@ public class TSocialfundHouseResController { ...@@ -119,4 +123,37 @@ public class TSocialfundHouseResController {
public R<Boolean> removeById(@PathVariable String id) { public R<Boolean> removeById(@PathVariable String id) {
return R.ok(tSocialfundHouseResService.removeById(id)); return R.ok(tSocialfundHouseResService.removeById(id));
} }
/**
* @Author fxj
* @Description 批量导入社保公积金审核权限
* @Date 16:59 2023/10/17
* @Param
* @return
**/
@SneakyThrows
@Operation(description = "批量新增社保公积金审核权限")
@SysLog("批量新增社保公积金审核权限")
@PostMapping("/importListAdd")
public R<List<ErrorMessage>> importListAdd(@RequestBody MultipartFile file) {
return tSocialfundHouseResService.importDiy(file.getInputStream());
}
/**
* @Author fxj
* @Description 批量新增社保|公积金办理权限
* @Date 16:59 2023/10/17
* @Param
* @return
**/
@SneakyThrows
@Operation(description = "批量新增社保|公积金办理权限")
@SysLog("批量新增社保|公积金办理权限")
@PostMapping("/importListAddAll")
public R<List<ErrorMessage>> importListAddAll(@RequestBody MultipartFile file,String type) {
if (CommonConstants.ZERO_STRING.equals(type) && CommonConstants.ONE_STRING.equals(type)){
return R.failed(CommonConstants.PARAM_INFO_ERROR);
}
return tSocialfundHouseResService.importDiyAll(file.getInputStream(),type);
}
} }
...@@ -63,4 +63,7 @@ public interface TSocialfundHouseResService extends IService<TSocialfundHouseRes ...@@ -63,4 +63,7 @@ public interface TSocialfundHouseResService extends IService<TSocialfundHouseRes
**/ **/
void deleteHandleUser(SysHouseHoldInfo holdInfo); void deleteHandleUser(SysHouseHoldInfo holdInfo);
R<List<ErrorMessage>> importDiy(InputStream inputStream);
R<List<ErrorMessage>> importDiyAll(InputStream inputStream, String type);
} }
...@@ -738,7 +738,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T ...@@ -738,7 +738,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
if (Common.isNotNull(socialFund) && Common.isNotNull(socialFund.getId())){ if (Common.isNotNull(socialFund) && Common.isNotNull(socialFund.getId())){
forecastLibraryService.updateForecastLibaryByDispatch(null,null,socialFund); forecastLibraryService.updateForecastLibaryByDispatch(null,null,socialFund);
} }
// 同步更新人员档案和项目档案的社保公积金状态 // 同步更新人员档案和项目档案的社保公积金状态 学历信息
updateDocSocialFund(social, fund, socialFund,empVoMap,excel); updateDocSocialFund(social, fund, socialFund,empVoMap,excel);
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), CommonConstants.SAVE_SUCCESS, CommonConstants.GREEN)); errorMessageList.add(new ErrorMessage(excel.getRowIndex(), CommonConstants.SAVE_SUCCESS, CommonConstants.GREEN));
...@@ -812,6 +812,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T ...@@ -812,6 +812,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
} }
if(Common.isNotNull(emp)) { if(Common.isNotNull(emp)) {
if (Common.isEmpty(emp.getHignEducation())) { if (Common.isEmpty(emp.getHignEducation())) {
vo.setHighEducation("");
if (excel.getEducationName().equals("文盲")) { if (excel.getEducationName().equals("文盲")) {
vo.setHighEducation("1"); vo.setHighEducation("1");
} }
...@@ -845,8 +846,11 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T ...@@ -845,8 +846,11 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
if (excel.getEducationName().equals("中专")) { if (excel.getEducationName().equals("中专")) {
vo.setHighEducation("11"); vo.setHighEducation("11");
} }
else { if (Common.isNotNull(excel.getSchoolName())){
vo.setHighEducation(""); vo.setSchoolName(excel.getSchoolName());
}
if (Common.isNotNull(excel.getMajor())){
vo.setMajor(excel.getMajor());
} }
} }
} }
...@@ -1320,6 +1324,9 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T ...@@ -1320,6 +1324,9 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
dispatch.setBelongUnit(excel.getCustomerId()); dispatch.setBelongUnit(excel.getCustomerId());
dispatch.setBelongUnitName(excel.getCustomerName()); dispatch.setBelongUnitName(excel.getCustomerName());
dispatch.setEducationName(excel.getEducationName()); dispatch.setEducationName(excel.getEducationName());
dispatch.setSchoolName(excel.getSchoolName());
dispatch.setMajor(excel.getMajor());
dispatch.setFirstPayTime(excel.getFirstPayTime());
dispatch.setIdCardProvince(excel.getIdCardProvince()); dispatch.setIdCardProvince(excel.getIdCardProvince());
dispatch.setIdCardCity(excel.getIdCardCity()); dispatch.setIdCardCity(excel.getIdCardCity());
dispatch.setIdCardTown(excel.getIdCardTown()); dispatch.setIdCardTown(excel.getIdCardTown());
...@@ -1598,6 +1605,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T ...@@ -1598,6 +1605,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
social.setHandleStatus(CommonConstants.ZERO_STRING); social.setHandleStatus(CommonConstants.ZERO_STRING);
social.setDeleteFlag(CommonConstants.ZERO_STRING); social.setDeleteFlag(CommonConstants.ZERO_STRING);
social.setTrustRemark(excel.getTrustRemark()); social.setTrustRemark(excel.getTrustRemark());
social.setFirstPayTime(excel.getFirstPayTime());
List<Date> lstDate = new ArrayList<>(); List<Date> lstDate = new ArrayList<>();
if (Common.isNotNull(excel.getPensionStart())) { if (Common.isNotNull(excel.getPensionStart())) {
lstDate.add(excel.getPensionStart()); lstDate.add(excel.getPensionStart());
...@@ -2125,6 +2133,8 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T ...@@ -2125,6 +2133,8 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
emp.setEmpPhone(excel.getEmpMobile()); emp.setEmpPhone(excel.getEmpMobile());
emp.setEmpRegisType(excel.getEmpRegisType()); emp.setEmpRegisType(excel.getEmpRegisType());
emp.setHignEducation(excel.getEducationName()); emp.setHignEducation(excel.getEducationName());
emp.setMajor(excel.getMajor());
emp.setSchool(excel.getSchoolName());
emp.setContractStatus(CommonConstants.ZERO_INT); emp.setContractStatus(CommonConstants.ZERO_INT);
emp.setDeleteFlag(CommonConstants.ZERO_STRING); emp.setDeleteFlag(CommonConstants.ZERO_STRING);
emp.setFileSource(CommonConstants.ONE_STRING); emp.setFileSource(CommonConstants.ONE_STRING);
......
...@@ -16,21 +16,46 @@ ...@@ -16,21 +16,46 @@
*/ */
package com.yifu.cloud.plus.v1.yifu.social.service.impl; package com.yifu.cloud.plus.v1.yifu.social.service.impl;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.ReadListener;
import com.alibaba.excel.read.metadata.holder.ReadRowHolder;
import com.alibaba.excel.util.ListUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser;
import com.yifu.cloud.plus.v1.yifu.archives.vo.SocialAuthHandleImportVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.SocialAuthImportVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants; 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.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ExcelUtil;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R; import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.dapr.util.UpmsDaprUtils;
import com.yifu.cloud.plus.v1.yifu.social.entity.SysBaseSetInfo;
import com.yifu.cloud.plus.v1.yifu.social.entity.SysHouseHoldInfo; import com.yifu.cloud.plus.v1.yifu.social.entity.SysHouseHoldInfo;
import com.yifu.cloud.plus.v1.yifu.social.entity.TSocialfundHouseRes; import com.yifu.cloud.plus.v1.yifu.social.entity.TSocialfundHouseRes;
import com.yifu.cloud.plus.v1.yifu.social.mapper.TSocialfundHouseResMapper; import com.yifu.cloud.plus.v1.yifu.social.mapper.TSocialfundHouseResMapper;
import com.yifu.cloud.plus.v1.yifu.social.service.SysBaseSetInfoService;
import com.yifu.cloud.plus.v1.yifu.social.service.TSocialfundHouseResService; import com.yifu.cloud.plus.v1.yifu.social.service.TSocialfundHouseResService;
import lombok.AllArgsConstructor;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.apache.shardingsphere.transaction.annotation.ShardingTransactionType;
import org.apache.shardingsphere.transaction.core.TransactionType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.InputStream;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/** /**
* 社保公积金户权限配置表 * 社保公积金户权限配置表
...@@ -39,8 +64,12 @@ import java.util.List; ...@@ -39,8 +64,12 @@ import java.util.List;
* @date 2022-11-02 09:13:07 * @date 2022-11-02 09:13:07
*/ */
@Log4j2 @Log4j2
@AllArgsConstructor
@Service @Service
public class TSocialfundHouseResServiceImpl extends ServiceImpl<TSocialfundHouseResMapper, TSocialfundHouseRes> implements TSocialfundHouseResService { public class TSocialfundHouseResServiceImpl extends ServiceImpl<TSocialfundHouseResMapper, TSocialfundHouseRes> implements TSocialfundHouseResService {
@Autowired
private UpmsDaprUtils upmsDaprUtils;
private SysBaseSetInfoService baseSetInfoService;
/** /**
* 社保公积金户权限配置表简单分页查询 * 社保公积金户权限配置表简单分页查询
* @param tSocialfundHouseRes 社保公积金户权限配置表 * @param tSocialfundHouseRes 社保公积金户权限配置表
...@@ -129,4 +158,395 @@ public class TSocialfundHouseResServiceImpl extends ServiceImpl<TSocialfundHouse ...@@ -129,4 +158,395 @@ public class TSocialfundHouseResServiceImpl extends ServiceImpl<TSocialfundHouse
} }
} }
/**
* @Author fxj
* @Description 批量新增社保公积金审核权限
* @Date 16:59 2023/10/17
* @Param
* @return
**/
@Transactional(rollbackFor = Exception.class)
@ShardingTransactionType(TransactionType.BASE)
@Override
public R<List<ErrorMessage>> importDiy(InputStream inputStream) {
List<ErrorMessage> errorMessageList = new ArrayList<>();
ExcelUtil<SocialAuthImportVo> util1 = new ExcelUtil<>(SocialAuthImportVo.class);
Map<String, SysBaseSetInfo> fundBaseSetMap = null;
Map<String, SysBaseSetInfo> socialBaseSetMap = null;
// 获取社保公积金配置
List<SysBaseSetInfo> socialSet = baseSetInfoService.list(Wrappers.<SysBaseSetInfo>query().lambda()
.eq(SysBaseSetInfo::getBaseType,CommonConstants.ZERO_STRING)
.eq(SysBaseSetInfo::getDeleteFlag,CommonConstants.ZERO_STRING)
.groupBy(SysBaseSetInfo::getDepartName,SysBaseSetInfo::getProvince,SysBaseSetInfo::getCity,SysBaseSetInfo::getTown));
if (Common.isNotNull(socialSet)){
socialBaseSetMap = socialSet.stream().collect(Collectors.toMap(k->k.getDepartName(), k->k));
}
List<SysBaseSetInfo> fundSet = baseSetInfoService.list(Wrappers.<SysBaseSetInfo>query().lambda()
.eq(SysBaseSetInfo::getBaseType,CommonConstants.ONE_STRING)
.eq(SysBaseSetInfo::getDeleteFlag,CommonConstants.ZERO_STRING)
.groupBy(SysBaseSetInfo::getDepartName,SysBaseSetInfo::getProvince,SysBaseSetInfo::getCity,SysBaseSetInfo::getTown));
if (Common.isNotNull(fundSet)){
fundBaseSetMap = fundSet.stream().collect(Collectors.toMap(k->k.getDepartName(), k->k));
}
if (Common.isEmpty(socialBaseSetMap) || Common.isEmpty(fundBaseSetMap)){
return R.failed("获取社保及公积金户配置信息失败!");
}
Map<String, SysUser> userMap = new HashMap<>();
Map<String,String> existMap = new HashMap<>();
// 写法2:
// 匿名内部类 不用额外写一个DemoDataListener
// 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭
try {
Map<String, SysBaseSetInfo> finalSocialBaseSetMap = socialBaseSetMap;
Map<String, SysBaseSetInfo> finalFundBaseSetMap = fundBaseSetMap;
EasyExcel.read(inputStream, SocialAuthImportVo.class, new ReadListener<SocialAuthImportVo>() {
/**
* 单次缓存的数据量
*/
public static final int BATCH_COUNT = CommonConstants.BATCH_COUNT;
/**
*临时存储
*/
private List<SocialAuthImportVo> cachedDataList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);
@Override
public void invoke(SocialAuthImportVo data, AnalysisContext context) {
ReadRowHolder readRowHolder = context.readRowHolder();
Integer rowIndex = readRowHolder.getRowIndex();
data.setRowIndex(rowIndex+1);
ErrorMessage errorMessage = util1.checkEntity(data, data.getRowIndex());
if (Common.isNotNull(errorMessage)){
errorMessage.setData(data);
errorMessageList.add(errorMessage);
}else {
cachedDataList.add(data);
}
if (cachedDataList.size() >= BATCH_COUNT) {
saveData();
// 存储完成清理 list
cachedDataList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);
}
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
saveData();
}
/**
* 加上存储数据库
*/
private void saveData() {
log.info("{}条数据,开始存储数据库!", cachedDataList.size());
importEntity(cachedDataList,errorMessageList, finalSocialBaseSetMap, finalFundBaseSetMap,userMap,existMap);
log.info("存储数据库成功!");
}
}).sheet().doRead();
}catch (Exception e){
log.error(CommonConstants.IMPORT_DATA_ANALYSIS_ERROR,e);
return R.failed(CommonConstants.IMPORT_DATA_ANALYSIS_ERROR);
}finally {
// 清理
socialBaseSetMap.clear();
fundBaseSetMap.clear();
}
return judgeAllMessage(errorMessageList);
}
private void importEntity(List<SocialAuthImportVo> excelVOList,
List<ErrorMessage> errorMessageList,
Map<String, SysBaseSetInfo> socialBaseSetMap,
Map<String, SysBaseSetInfo> fundBaseSetMap,
Map<String,SysUser> userMap,
Map<String,String> existMap) {
// 执行数据插入操作 组装
TSocialfundHouseRes save;
SysUser user;
R<SysUser> res;
TSocialfundHouseRes exist;
String temp;
SysBaseSetInfo baseSet = null;
for (int i = 0; i < excelVOList.size(); i++) {
SocialAuthImportVo excel = excelVOList.get(i);
// 数据合法情况
user = userMap.get(excel.getUserLoginName());
// 用户信息验证
if (Common.isEmpty(user)){
res = upmsDaprUtils.getSimpleUserByLoginName(excel.getUserLoginName());
if (Common.isNotNull(res) && Common.isNotNull(res.getData())){
user = res.getData();
userMap.put(user.getUsername(),user);
}else {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(),"无有效状态的用户信息!",excel));
continue;
}
}
if (Common.isEmpty(user.getDeptName())){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(),"对应登录账号无部门信息,请完善后导入",excel));
continue;
}
// 户验证
if (CommonConstants.ZERO_STRING.equals(excel.getType())){
baseSet = socialBaseSetMap.get(excel.getHouseHold());
if (Common.isEmpty(baseSet)){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(),"未找到对应社保户数据!",excel));
continue;
}
}
if (CommonConstants.ONE_STRING.equals(excel.getType())){
baseSet = fundBaseSetMap.get(excel.getHouseHold());
if (Common.isEmpty(baseSet)){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(),"未找到对应公积金户数据!",excel));
continue;
}
}
// 重复校验
temp = existMap.get(excel.getUserLoginName()
+CommonConstants.DOWN_LINE_STRING
+excel.getHouseHold()
+CommonConstants.DOWN_LINE_STRING
+ excel.getType());
if (Common.isNotNull(temp)){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(),"对应账号的权限已存在,请勿重复导入",excel));
continue;
}else {
if (CommonConstants.ZERO_STRING.equals(excel.getType())){
exist = baseMapper.selectOne(Wrappers.<TSocialfundHouseRes>query().lambda()
.eq(TSocialfundHouseRes::getSocialHousehold,excel.getHouseHold())
.eq(TSocialfundHouseRes::getHouseNameType,excel.getType())
.eq(TSocialfundHouseRes::getUserId,user.getUserId())
.eq(TSocialfundHouseRes::getAuthType,CommonConstants.ZERO_STRING)
.last(CommonConstants.LAST_ONE_SQL));
}else {
exist = baseMapper.selectOne(Wrappers.<TSocialfundHouseRes>query().lambda()
.eq(TSocialfundHouseRes::getFundHousehold,excel.getHouseHold())
.eq(TSocialfundHouseRes::getHouseNameType,excel.getType())
.eq(TSocialfundHouseRes::getUserId,user.getUserId())
.eq(TSocialfundHouseRes::getAuthType,CommonConstants.ZERO_STRING)
.last(CommonConstants.LAST_ONE_SQL));
}
if (Common.isNotNull(exist)){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(),"对应账号的权限已存在,请勿重复导入",excel));
continue;
}
}
// 初始化及新增数据
save = new TSocialfundHouseRes();
save.setAuthType(CommonConstants.ZERO_STRING);
save.setFundHousehold(CommonConstants.ZERO_STRING.equals(baseSet.getBaseType())?null:baseSet.getDepartName());
save.setSocialHousehold(CommonConstants.ZERO_STRING.equals(baseSet.getBaseType())?baseSet.getDepartName():null);
save.setStatus(CommonConstants.ZERO_STRING);
save.setUserId(user.getUserId());
save.setHouseNameType(baseSet.getBaseType());
save.setCreateTime(LocalDateTime.now());
save.setUserName(user.getNickname());
save.setUserDeptName(user.getDeptName());
insertExcel(save);
// 加入map 验证当前表单数据是否重复
existMap.put(excel.getUserLoginName()
+CommonConstants.DOWN_LINE_STRING
+excel.getHouseHold()
+CommonConstants.DOWN_LINE_STRING
+ excel.getType(),excel.getHouseHold());
errorMessageList.add(new ErrorMessage(excel.getRowIndex(),CommonConstants.SAVE_SUCCESS,CommonConstants.GREEN,excel));
}
}
/**
* 插入excel bad record
*/
private void insertExcel(TSocialfundHouseRes entity) {
this.save(entity);
}
/**
* @Author fxj
* @Description 判断所有返回数据,是否全部为正确的
* @Date 18:01 2023/10/18
* @Param
* @return
**/
private R<List<ErrorMessage>> judgeAllMessage(List<ErrorMessage> errorMessageList) {
if (!errorMessageList.isEmpty() && errorMessageList.stream().noneMatch(e-> e.getColor().equals(CommonConstants.RED))) {
return R.ok();
}
return R.ok(errorMessageList);
}
/**
* @Author fxj
* @Description 批量新增社保公积金审核权限
* @Date 16:59 2023/10/17
* @Param
* @return
**/
@Transactional(rollbackFor = Exception.class)
@ShardingTransactionType(TransactionType.BASE)
@Override
public R<List<ErrorMessage>> importDiyAll(InputStream inputStream,String type) {
List<ErrorMessage> errorMessageList = new ArrayList<>();
ExcelUtil<SocialAuthHandleImportVo> util1 = new ExcelUtil<>(SocialAuthHandleImportVo.class);
Map<String, SysBaseSetInfo> baseSetInfoMap= new HashMap<>();
List<SysBaseSetInfo> setInfos = baseSetInfoService.list(Wrappers.<SysBaseSetInfo>query().lambda()
.eq(SysBaseSetInfo::getBaseType,type)
.eq(SysBaseSetInfo::getDeleteFlag,CommonConstants.ZERO_STRING)
.groupBy(SysBaseSetInfo::getDepartName,SysBaseSetInfo::getProvince,SysBaseSetInfo::getCity,SysBaseSetInfo::getTown));
if (Common.isNotNull(setInfos)){
baseSetInfoMap = setInfos.stream().collect(Collectors.toMap(k->k.getDepartName(),k->k));
}
if (Common.isEmpty(baseSetInfoMap)){
return R.failed("获取户配置信息失败!");
}
Map<String, SysUser> userMap = new HashMap<>();
Map<String,String> existMap = new HashMap<>();
// 写法2:
// 匿名内部类 不用额外写一个DemoDataListener
// 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭
try {
Map<String, SysBaseSetInfo> finalBaseSetInfoMap = baseSetInfoMap;
EasyExcel.read(inputStream, SocialAuthHandleImportVo.class, new ReadListener<SocialAuthHandleImportVo>() {
/**
* 单次缓存的数据量
*/
public static final int BATCH_COUNT = CommonConstants.BATCH_COUNT;
/**
*临时存储
*/
private List<SocialAuthHandleImportVo> cachedDataList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);
@Override
public void invoke(SocialAuthHandleImportVo data, AnalysisContext context) {
ReadRowHolder readRowHolder = context.readRowHolder();
Integer rowIndex = readRowHolder.getRowIndex();
data.setRowIndex(rowIndex+1);
ErrorMessage errorMessage = util1.checkEntity(data, data.getRowIndex());
if (Common.isNotNull(errorMessage)){
errorMessage.setData(data);
errorMessageList.add(errorMessage);
}else {
cachedDataList.add(data);
}
if (cachedDataList.size() >= BATCH_COUNT) {
saveData();
// 存储完成清理 list
cachedDataList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);
}
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
saveData();
}
/**
* 加上存储数据库
*/
private void saveData() {
log.info("{}条数据,开始存储数据库!", cachedDataList.size());
importEntity(cachedDataList,errorMessageList, finalBaseSetInfoMap,userMap,existMap,type);
log.info("存储数据库成功!");
}
}).sheet().doRead();
}catch (Exception e){
log.error(CommonConstants.IMPORT_DATA_ANALYSIS_ERROR,e);
return R.failed(CommonConstants.IMPORT_DATA_ANALYSIS_ERROR);
}finally {
// 清理
baseSetInfoMap.clear();
}
return judgeAllMessage(errorMessageList);
}
private void importEntity(List<SocialAuthHandleImportVo> excelVOList,
List<ErrorMessage> errorMessageList,
Map<String, SysBaseSetInfo> baseSetInfoMap,
Map<String,SysUser> userMap,
Map<String,String> existMap,
String type) {
// 执行数据插入操作 组装
TSocialfundHouseRes save;
SysUser user;
R<SysUser> res;
TSocialfundHouseRes exist;
String temp;
SysBaseSetInfo baseSet = null;
for (int i = 0; i < excelVOList.size(); i++) {
SocialAuthHandleImportVo excel = excelVOList.get(i);
// 数据合法情况
user = userMap.get(excel.getUserLoginName());
// 用户信息验证
if (Common.isEmpty(user)){
res = upmsDaprUtils.getSimpleUserByLoginName(excel.getUserLoginName());
if (Common.isNotNull(res) && Common.isNotNull(res.getData())){
user = res.getData();
userMap.put(user.getUsername(),user);
}else {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(),"无有效状态的用户信息!",excel));
continue;
}
}
if (Common.isEmpty(user.getDeptName())){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(),"对应登录账号无部门信息,请完善后导入",excel));
continue;
}
// 户验证
if (CommonConstants.ZERO_STRING.equals(type)){
baseSet = baseSetInfoMap.get(excel.getHouseHold());
if (Common.isEmpty(baseSet)){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(),"未找到对应社保户数据!",excel));
continue;
}
}
if (CommonConstants.ONE_STRING.equals(type)){
baseSet = baseSetInfoMap.get(excel.getHouseHold());
if (Common.isEmpty(baseSet)){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(),"未找到对应公积金户数据!",excel));
continue;
}
}
// 重复校验
temp = existMap.get(excel.getUserLoginName()
+CommonConstants.DOWN_LINE_STRING
+excel.getHouseHold());
if (Common.isNotNull(temp)){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(),"对应账号的权限已存在,请勿重复导入",excel));
continue;
}else {
if (CommonConstants.ZERO_STRING.equals(type)){
exist = baseMapper.selectOne(Wrappers.<TSocialfundHouseRes>query().lambda()
.eq(TSocialfundHouseRes::getSocialHousehold,excel.getHouseHold())
.eq(TSocialfundHouseRes::getUserId,user.getUserId())
.eq(TSocialfundHouseRes::getHouseNameType,type)
.eq(TSocialfundHouseRes::getAuthType,CommonConstants.ONE_STRING)
.last(CommonConstants.LAST_ONE_SQL));
}else {
exist = baseMapper.selectOne(Wrappers.<TSocialfundHouseRes>query().lambda()
.eq(TSocialfundHouseRes::getFundHousehold,excel.getHouseHold())
.eq(TSocialfundHouseRes::getUserId,user.getUserId())
.eq(TSocialfundHouseRes::getHouseNameType,type)
.eq(TSocialfundHouseRes::getAuthType,CommonConstants.ONE_STRING)
.last(CommonConstants.LAST_ONE_SQL));
}
if (Common.isNotNull(exist)){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(),"对应账号的权限已存在,请勿重复导入",excel));
continue;
}
}
// 初始化及新增数据
save = new TSocialfundHouseRes();
save.setAuthType(CommonConstants.ONE_STRING);
save.setFundHousehold(CommonConstants.ZERO_STRING.equals(type)?null:baseSet.getDepartName());
save.setSocialHousehold(CommonConstants.ZERO_STRING.equals(type)?baseSet.getDepartName():null);
save.setStatus(CommonConstants.ZERO_STRING);
save.setUserId(user.getUserId());
save.setHouseNameType(type);
save.setCreateTime(LocalDateTime.now());
save.setUserName(user.getNickname());
save.setUserDeptName(user.getDeptName());
insertExcel(save);
// 加入map 验证当前表单数据是否重复
existMap.put(excel.getUserLoginName()
+CommonConstants.DOWN_LINE_STRING
+excel.getHouseHold(),excel.getUserLoginName());
errorMessageList.add(new ErrorMessage(excel.getRowIndex(),CommonConstants.SAVE_SUCCESS,CommonConstants.GREEN,excel));
}
}
} }
...@@ -99,6 +99,10 @@ ...@@ -99,6 +99,10 @@
<result property="createTime" column="CREATE_TIME"/> <result property="createTime" column="CREATE_TIME"/>
<result property="orderId" column="ORDER_ID"/> <result property="orderId" column="ORDER_ID"/>
<result property="schoolName" column="SCHOOL_NAME"/>
<result property="major" column="MAJOR"/>
<result property="firstPayTime" column="FIRST_PAY_TIME"/>
</resultMap> </resultMap>
<resultMap id="dispatchPageMap" type="com.yifu.cloud.plus.v1.yifu.social.vo.TDispatchInfoPageVo" extends="tDispatchInfoMap"> <resultMap id="dispatchPageMap" type="com.yifu.cloud.plus.v1.yifu.social.vo.TDispatchInfoPageVo" extends="tDispatchInfoMap">
<result property="providentHouseholdName" column="PROVIDENT_HOUSEHOLD_NAME"/> <result property="providentHouseholdName" column="PROVIDENT_HOUSEHOLD_NAME"/>
...@@ -163,6 +167,11 @@ ...@@ -163,6 +167,11 @@
<result property="unitWorkInjuryCardinal" column="UNIT_WORK_INJURY_CARDINAL"/> <result property="unitWorkInjuryCardinal" column="UNIT_WORK_INJURY_CARDINAL"/>
<result property="unitBirthCardinal" column="UNIT_BIRTH_CARDINAL"/> <result property="unitBirthCardinal" column="UNIT_BIRTH_CARDINAL"/>
<result property="empMobile" column="EMP_MOBILE"/> <result property="empMobile" column="EMP_MOBILE"/>
<result property="educationName" column="EDUCATION_NAME"/>
<result property="schoolName" column="SCHOOL_NAME"/>
<result property="major" column="MAJOR"/>
<result property="firstPayTime" column="FIRST_PAY_TIME"/>
</resultMap> </resultMap>
<resultMap id="fundSupplementaryMap" type="com.yifu.cloud.plus.v1.yifu.social.vo.FundSupplementaryExportVo"> <resultMap id="fundSupplementaryMap" type="com.yifu.cloud.plus.v1.yifu.social.vo.FundSupplementaryExportVo">
...@@ -327,6 +336,11 @@ ...@@ -327,6 +336,11 @@
<result property="personalProvidentCardinal" column="PERSONAL_PROVIDENT_CARDINAL"/> <result property="personalProvidentCardinal" column="PERSONAL_PROVIDENT_CARDINAL"/>
<result property="unitProvidentPer" column="UNIT_PROVIDENT_PER"/> <result property="unitProvidentPer" column="UNIT_PROVIDENT_PER"/>
<result property="personalProvidentPer" column="PERSONAL_PROVIDENT_PER"/> <result property="personalProvidentPer" column="PERSONAL_PROVIDENT_PER"/>
<result property="educationName" column="EDUCATION_NAME"/>
<result property="schoolName" column="SCHOOL_NAME"/>
<result property="major" column="MAJOR"/>
<result property="firstPayTime" column="FIRST_PAY_TIME"/>
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
...@@ -403,7 +417,10 @@ ...@@ -403,7 +417,10 @@
a.ID_CARD_TOWN, a.ID_CARD_TOWN,
a.ID_CARD_ADDRESS, a.ID_CARD_ADDRESS,
a.APPLY_NO, a.APPLY_NO,
a.ORDER_ID a.ORDER_ID,
a.SCHOOL_NAME,
a.MAJOR,
a.FIRST_PAY_TIME
</sql> </sql>
<sql id="tDispatchInfo_where"> <sql id="tDispatchInfo_where">
<if test="tDispatchInfo != null"> <if test="tDispatchInfo != null">
...@@ -934,7 +951,11 @@ ...@@ -934,7 +951,11 @@
c.PROVIDENT_HOUSEHOLD_NAME, c.PROVIDENT_HOUSEHOLD_NAME,
c.UNIT_PROVIDENG_CARDINAL, c.UNIT_PROVIDENG_CARDINAL,
c.UNIT_PROVIDENT_PER, c.UNIT_PROVIDENT_PER,
a.EMP_MOBILE a.EMP_MOBILE,
a.EDUCATION_NAME,
a.SCHOOL_NAME,
a.MAJOR,
a.FIRST_PAY_TIME
from t_dispatch_info a from t_dispatch_info a
left join t_social_info s on s.id=a.SOCIAL_ID left join t_social_info s on s.id=a.SOCIAL_ID
...@@ -991,7 +1012,11 @@ ...@@ -991,7 +1012,11 @@
c.PROVIDENT_START, c.PROVIDENT_START,
c.PERSONAL_PROVIDENT_CARDINAL, c.PERSONAL_PROVIDENT_CARDINAL,
c.UNIT_PROVIDENT_PER, c.UNIT_PROVIDENT_PER,
c.PERSONAL_PROVIDENT_PER c.PERSONAL_PROVIDENT_PER,
a.EDUCATION_NAME,
a.SCHOOL_NAME,
a.MAJOR,
a.FIRST_PAY_TIME
from t_dispatch_info a from t_dispatch_info a
left join t_social_info b on a.SOCIAL_ID = b.ID left join t_social_info b on a.SOCIAL_ID = b.ID
left join t_provident_fund c on a.FUND_ID = C.ID left join t_provident_fund c on a.FUND_ID = C.ID
...@@ -1075,6 +1100,9 @@ ...@@ -1075,6 +1100,9 @@
<result property="birthStart" column="BIRTH_START"/> <result property="birthStart" column="BIRTH_START"/>
<result property="bigailmentStart" column="BIGAILMENT_START"/> <result property="bigailmentStart" column="BIGAILMENT_START"/>
<result property="exportSocialFlag" column="EXPORT_SOCIAL_FLAG"/> <result property="exportSocialFlag" column="EXPORT_SOCIAL_FLAG"/>
<result property="schoolName" column="SCHOOL_NAME"/>
<result property="major" column="MAJOR"/>
<result property="firstPayTime" column="FIRST_PAY_TIME"/>
</resultMap> </resultMap>
<resultMap id="fundHandleMap" type="com.yifu.cloud.plus.v1.yifu.social.vo.FundHandleExportVo"> <resultMap id="fundHandleMap" type="com.yifu.cloud.plus.v1.yifu.social.vo.FundHandleExportVo">
...@@ -1160,7 +1188,10 @@ ...@@ -1160,7 +1188,10 @@
s.PERSONAL_BIGAILMENT_MONEY, s.PERSONAL_BIGAILMENT_MONEY,
a.TRUST_REMARK, a.TRUST_REMARK,
a.REDUCE_REASON, a.REDUCE_REASON,
'1' as EXPORT_SOCIAL_FLAG '1' as EXPORT_SOCIAL_FLAG,
a.SCHOOL_NAME,
a.MAJOR,
a.FIRST_PAY_TIME
FROM t_dispatch_info a FROM t_dispatch_info a
left join t_social_info s on a.SOCIAL_ID = s.id left join t_social_info s on a.SOCIAL_ID = s.id
<include refid="where_getSocialRecordRoster"/> <include refid="where_getSocialRecordRoster"/>
......
...@@ -302,6 +302,14 @@ ...@@ -302,6 +302,14 @@
<result property="socialFundPersonalSum" column="SOCIAL_FUND_PERSONAL_SUM"/> <result property="socialFundPersonalSum" column="SOCIAL_FUND_PERSONAL_SUM"/>
<result property="keyGroup" column="keyGroup"/> <result property="keyGroup" column="keyGroup"/>
<result property="secondIndicatorBelong" column="SECOND_INDICATOR_BELONG"/> <result property="secondIndicatorBelong" column="SECOND_INDICATOR_BELONG"/>
<result property="unitPensionPer" column="UNIT_PENSION_PER"/>
<result property="unitMedicalPer" column="UNIT_MEDICAL_PER"/>
<result property="unitUnemploymentPer" column="UNIT_UNEMPLOYMENT_PER"/>
<result property="unitInjuryPer" column="UNIT_INJURY_PER"/>
<result property="unitBirthPer" column="UNIT_BIRTH_PER"/>
<result property="personalPensionPer" column="PERSONAL_PENSION_PER"/>
<result property="personalMedicalPer" column="PERSONAL_MEDICAL_PER"/>
<result property="personalUnemploymentPer" column="PERSONAL_UNEMPLOYMENT_PER"/>
</resultMap> </resultMap>
<resultMap id="tPaymentInfoNewExportMap" type="com.yifu.cloud.plus.v1.yifu.social.vo.TPaymentInfoNewExportVo"> <resultMap id="tPaymentInfoNewExportMap" type="com.yifu.cloud.plus.v1.yifu.social.vo.TPaymentInfoNewExportVo">
...@@ -351,6 +359,20 @@ ...@@ -351,6 +359,20 @@
<result property="personalProvidentSum" column="PERSONAL_PROVIDENT_SUM"/> <result property="personalProvidentSum" column="PERSONAL_PROVIDENT_SUM"/>
<result property="keyGroup" column="keyGroup"/> <result property="keyGroup" column="keyGroup"/>
<result property="secondIndicatorBelong" column="SECOND_INDICATOR_BELONG"/> <result property="secondIndicatorBelong" column="SECOND_INDICATOR_BELONG"/>
<result property="unitPensionPer" column="UNIT_PENSION_PER"/>
<result property="unitMedicalPer" column="UNIT_MEDICAL_PER"/>
<result property="unitUnemploymentPer" column="UNIT_UNEMPLOYMENT_PER"/>
<result property="unitInjuryPer" column="UNIT_INJURY_PER"/>
<result property="unitBirthPer" column="UNIT_BIRTH_PER"/>
<result property="personalPensionPer" column="PERSONAL_PENSION_PER"/>
<result property="personalMedicalPer" column="PERSONAL_MEDICAL_PER"/>
<result property="personalUnemploymentPer" column="PERSONAL_UNEMPLOYMENT_PER"/>
<result property="pensionMoneySum" column="PENSION_MONEY_SUM"/>
<result property="medicalMoneySum" column="MEDICAL_MONEY_SUM"/>
<result property="unemploymentMoneySum" column="UNEMPLOYMENT_MONEY_SUM"/>
<result property="injuryMoneySum" column="INJURY_MONEY_SUM"/>
<result property="birthMoneySum" column="BIRTH_MONEY_SUM"/>
<result property="bigmailmentMoneySum" column="BIGMAILMENT_MONEY_SUM"/>
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
a.ID, a.ID,
...@@ -1302,7 +1324,15 @@ ...@@ -1302,7 +1324,15 @@
k.PROVIDENT_PERCENT, k.PROVIDENT_PERCENT,
k.SOCIAL_FUND_PERSONAL_SUM, k.SOCIAL_FUND_PERSONAL_SUM,
k.UNIT_SOCIAL_FUND_SUM, k.UNIT_SOCIAL_FUND_SUM,
k.UNIT_PROVIDENT_SUM k.UNIT_PROVIDENT_SUM,
k.UNIT_PENSION_PER,
k.UNIT_MEDICAL_PER,
k.UNIT_UNEMPLOYMENT_PER,
k.UNIT_INJURY_PER,
k.UNIT_BIRTH_PER,
k.PERSONAL_PENSION_PER,
k.PERSONAL_MEDICAL_PER,
k.PERSONAL_UNEMPLOYMENT_PER
from ( from (
select select
w.keyGroup, w.keyGroup,
...@@ -1352,7 +1382,15 @@ ...@@ -1352,7 +1382,15 @@
SUM( w.PROVIDENT_PERCENT ) AS PROVIDENT_PERCENT, SUM( w.PROVIDENT_PERCENT ) AS PROVIDENT_PERCENT,
ifnull(SUM( w.SOCIAL_SECURITY_PERSONAL_SUM ),0) + ifnull(SUM( w.PERSONAL_PROVIDENT_SUM ),0) AS SOCIAL_FUND_PERSONAL_SUM, ifnull(SUM( w.SOCIAL_SECURITY_PERSONAL_SUM ),0) + ifnull(SUM( w.PERSONAL_PROVIDENT_SUM ),0) AS SOCIAL_FUND_PERSONAL_SUM,
ifnull(SUM( w.UNIT_SOCIAL_SUM ),0) + ifnull(SUM( w.UNIT_PROVIDENT_SUM ),0) AS UNIT_SOCIAL_FUND_SUM, ifnull(SUM( w.UNIT_SOCIAL_SUM ),0) + ifnull(SUM( w.UNIT_PROVIDENT_SUM ),0) AS UNIT_SOCIAL_FUND_SUM,
SUM( w.UNIT_PROVIDENT_SUM ) AS UNIT_PROVIDENT_SUM SUM( w.UNIT_PROVIDENT_SUM ) AS UNIT_PROVIDENT_SUM,
MAX(w.UNIT_PENSION_PER) as UNIT_PENSION_PER,
MAX(w.UNIT_MEDICAL_PER) as UNIT_MEDICAL_PER,
MAX(w.UNIT_UNEMPLOYMENT_PER) as UNIT_UNEMPLOYMENT_PER,
MAX(w.UNIT_INJURY_PER) as UNIT_INJURY_PER,
MAX(w.UNIT_BIRTH_PER) as UNIT_BIRTH_PER,
MAX(w.PERSONAL_PENSION_PER) as PERSONAL_PENSION_PER,
MAX(w.PERSONAL_MEDICAL_PER) as PERSONAL_MEDICAL_PER,
MAX(w.PERSONAL_UNEMPLOYMENT_PER) as PERSONAL_UNEMPLOYMENT_PER
FROM ( FROM (
(SELECT (SELECT
CONCAT( a.EMP_IDCARD, '_', a.SOCIAL_PAY_MONTH, '_', a.SOCIAL_CREATE_MONTH, '_', a.SETTLE_DOMAIN_CODE ) AS keyGroup, CONCAT( a.EMP_IDCARD, '_', a.SOCIAL_PAY_MONTH, '_', a.SOCIAL_CREATE_MONTH, '_', a.SETTLE_DOMAIN_CODE ) AS keyGroup,
...@@ -1400,7 +1438,15 @@ ...@@ -1400,7 +1438,15 @@
a.UNIT_PROVIDENT_SET, a.UNIT_PROVIDENT_SET,
a.PROVIDENT_PERCENT, a.PROVIDENT_PERCENT,
a.PERSONAL_PROIDENT_SET, a.PERSONAL_PROIDENT_SET,
a.UNIT_PROVIDENT_SUM a.UNIT_PROVIDENT_SUM,
if(null = a.UNIT_PENSION_MONEY,'',round(SUM(a.UNIT_PENSION_MONEY)/MAX(a.UNIT_PENSION_SET),4)) as UNIT_PENSION_PER,
if(null = a.UNIT_MEDICAL_MONEY,'',round(SUM(a.UNIT_MEDICAL_MONEY)/MAX(a.UNIT_MEDICAL_SET),4)) as UNIT_MEDICAL_PER,
if(null = a.UNIT_UNEMPLOYMENT_MONEY,'',round(SUM(a.UNIT_UNEMPLOYMENT_MONEY)/MAX(a.UNIT_UNEMPLOYMENT_SET),4)) as UNIT_UNEMPLOYMENT_PER,
if(null = a.UNIT_INJURY_MONEY,'',round(SUM(a.UNIT_INJURY_MONEY)/MAX(a.UNIT_INJURY_SET),4)) as UNIT_INJURY_PER,
if(null = a.UNIT_BIRTH_MONEY,'',round(SUM(a.UNIT_BIRTH_MONEY)/MAX(a.UNIT_BIRTH_SET),4)) as UNIT_BIRTH_PER,
if(null = a.PERSONAL_PENSION_MONEY,'',round(SUM(a.PERSONAL_PENSION_MONEY)/MAX(a.UNIT_PENSION_SET),4)) as PERSONAL_PENSION_PER,
if(null = a.PERSONAL_MEDICAL_MONEY,'',round(SUM(a.PERSONAL_MEDICAL_MONEY)/MAX(a.UNIT_MEDICAL_SET),4)) as PERSONAL_MEDICAL_PER,
if(null = a.PERSONAL_UNEMPLOYMENT_MONEY,'',round(SUM(a.PERSONAL_UNEMPLOYMENT_MONEY)/MAX(a.UNIT_UNEMPLOYMENT_SET),4)) as PERSONAL_UNEMPLOYMENT_PER
FROM t_payment_info a FROM t_payment_info a
<where> <where>
IFNULL(a.SOCIAL_ID,'1') != '1' IFNULL(a.SOCIAL_ID,'1') != '1'
...@@ -1455,7 +1501,15 @@ ...@@ -1455,7 +1501,15 @@
a.UNIT_PROVIDENT_SET, a.UNIT_PROVIDENT_SET,
a.PROVIDENT_PERCENT, a.PROVIDENT_PERCENT,
a.PERSONAL_PROIDENT_SET, a.PERSONAL_PROIDENT_SET,
SUM( a.UNIT_PROVIDENT_SUM ) AS UNIT_PROVIDENT_SUM SUM( a.UNIT_PROVIDENT_SUM ) AS UNIT_PROVIDENT_SUM,
'' as UNIT_PENSION_PER,
'' as UNIT_MEDICAL_PER,
'' as UNIT_UNEMPLOYMENT_PER,
'' as UNIT_INJURY_PER,
'' as UNIT_BIRTH_PER,
'' as PERSONAL_PENSION_PER,
'' as PERSONAL_MEDICAL_PER,
'' as PERSONAL_UNEMPLOYMENT_PER
FROM t_payment_info a FROM t_payment_info a
<where> <where>
IFNULL(a.FUND_ID,'1') != '1' IFNULL(a.FUND_ID,'1') != '1'
...@@ -1554,6 +1608,20 @@ ...@@ -1554,6 +1608,20 @@
c.PERSONAL_MEDICAL_MONEY, c.PERSONAL_MEDICAL_MONEY,
c.PERSONAL_UNEMPLOYMENT_MONEY, c.PERSONAL_UNEMPLOYMENT_MONEY,
c.PERSONAL_BIGMAILMENT_MONEY, c.PERSONAL_BIGMAILMENT_MONEY,
c.PENSION_MONEY_SUM,
c.MEDICAL_MONEY_SUM,
c.UNEMPLOYMENT_MONEY_SUM,
c.INJURY_MONEY_SUM,
c.BIRTH_MONEY_SUM,
c.BIGMAILMENT_MONEY_SUM,
c.UNIT_PENSION_PER,
c.UNIT_MEDICAL_PER,
c.UNIT_UNEMPLOYMENT_PER,
c.UNIT_INJURY_PER,
c.UNIT_BIRTH_PER,
c.PERSONAL_PENSION_PER,
c.PERSONAL_MEDICAL_PER,
c.PERSONAL_UNEMPLOYMENT_PER,
c.PROVIDENT_NO AS PROVIDENT_NO, c.PROVIDENT_NO AS PROVIDENT_NO,
c.PERSONAL_PROIDENT_SET, c.PERSONAL_PROIDENT_SET,
c.UNIT_PROVIDENT_SET, c.UNIT_PROVIDENT_SET,
...@@ -1602,6 +1670,20 @@ ...@@ -1602,6 +1670,20 @@
w.PERSONAL_MEDICAL_MONEY, w.PERSONAL_MEDICAL_MONEY,
w.PERSONAL_UNEMPLOYMENT_MONEY, w.PERSONAL_UNEMPLOYMENT_MONEY,
w.PERSONAL_BIGMAILMENT_MONEY, w.PERSONAL_BIGMAILMENT_MONEY,
w.PENSION_MONEY_SUM,
w.MEDICAL_MONEY_SUM,
w.UNEMPLOYMENT_MONEY_SUM,
w.INJURY_MONEY_SUM,
w.BIRTH_MONEY_SUM,
w.BIGMAILMENT_MONEY_SUM,
w.UNIT_PENSION_PER,
w.UNIT_MEDICAL_PER,
w.UNIT_UNEMPLOYMENT_PER,
w.UNIT_INJURY_PER,
w.UNIT_BIRTH_PER,
w.PERSONAL_PENSION_PER,
w.PERSONAL_MEDICAL_PER,
w.PERSONAL_UNEMPLOYMENT_PER,
MAX( w.PROVIDENT_NO ) AS PROVIDENT_NO, MAX( w.PROVIDENT_NO ) AS PROVIDENT_NO,
MAX( w.PERSONAL_PROIDENT_SET ) AS PERSONAL_PROIDENT_SET, MAX( w.PERSONAL_PROIDENT_SET ) AS PERSONAL_PROIDENT_SET,
SUM( w.UNIT_PROVIDENT_SET ) AS UNIT_PROVIDENT_SET, SUM( w.UNIT_PROVIDENT_SET ) AS UNIT_PROVIDENT_SET,
...@@ -1650,6 +1732,20 @@ ...@@ -1650,6 +1732,20 @@
SUM( a.PERSONAL_MEDICAL_MONEY ) AS PERSONAL_MEDICAL_MONEY, SUM( a.PERSONAL_MEDICAL_MONEY ) AS PERSONAL_MEDICAL_MONEY,
SUM( a.PERSONAL_UNEMPLOYMENT_MONEY ) AS PERSONAL_UNEMPLOYMENT_MONEY, SUM( a.PERSONAL_UNEMPLOYMENT_MONEY ) AS PERSONAL_UNEMPLOYMENT_MONEY,
SUM( a.PERSONAL_BIGMAILMENT_MONEY ) AS PERSONAL_BIGMAILMENT_MONEY, SUM( a.PERSONAL_BIGMAILMENT_MONEY ) AS PERSONAL_BIGMAILMENT_MONEY,
SUM( a.UNIT_PENSION_MONEY + a.PERSONAL_PENSION_MONEY) as PENSION_MONEY_SUM,
SUM( a.UNIT_MEDICAL_MONEY + a.PERSONAL_MEDICAL_MONEY) as MEDICAL_MONEY_SUM,
SUM( a.UNIT_UNEMPLOYMENT_MONEY + a.PERSONAL_UNEMPLOYMENT_MONEY) as UNEMPLOYMENT_MONEY_SUM,
SUM( a.UNIT_INJURY_MONEY) as INJURY_MONEY_SUM,
SUM( a.UNIT_BIRTH_MONEY) as BIRTH_MONEY_SUM,
SUM( a.UNIT_BIGMAILMENT_MONEY + a.PERSONAL_BIGMAILMENT_MONEY) as BIGMAILMENT_MONEY_SUM,
if(null = a.UNIT_PENSION_MONEY,'',round(SUM(a.UNIT_PENSION_MONEY)/MAX(a.UNIT_PENSION_SET),4)) as UNIT_PENSION_PER,
if(null = a.UNIT_MEDICAL_MONEY,'',round(SUM(a.UNIT_MEDICAL_MONEY)/MAX(a.UNIT_MEDICAL_SET),4)) as UNIT_MEDICAL_PER,
if(null = a.UNIT_UNEMPLOYMENT_MONEY,'',round(SUM(a.UNIT_UNEMPLOYMENT_MONEY)/MAX(a.UNIT_UNEMPLOYMENT_SET),4)) as UNIT_UNEMPLOYMENT_PER,
if(null = a.UNIT_INJURY_MONEY,'',round(SUM(a.UNIT_INJURY_MONEY)/MAX(a.UNIT_INJURY_SET),4)) as UNIT_INJURY_PER,
if(null = a.UNIT_BIRTH_MONEY,'',round(SUM(a.UNIT_BIRTH_MONEY)/MAX(a.UNIT_BIRTH_SET),4)) as UNIT_BIRTH_PER,
if(null = a.PERSONAL_PENSION_MONEY,'',round(SUM(a.PERSONAL_PENSION_MONEY)/MAX(a.UNIT_PENSION_SET),4)) as PERSONAL_PENSION_PER,
if(null = a.PERSONAL_MEDICAL_MONEY,'',round(SUM(a.PERSONAL_MEDICAL_MONEY)/MAX(a.UNIT_MEDICAL_SET),4)) as PERSONAL_MEDICAL_PER,
if(null = a.PERSONAL_UNEMPLOYMENT_MONEY,'',round(SUM(a.PERSONAL_UNEMPLOYMENT_MONEY)/MAX(a.UNIT_UNEMPLOYMENT_SET),4)) as PERSONAL_UNEMPLOYMENT_PER,
a.PROVIDENT_NO, a.PROVIDENT_NO,
a.UNIT_PROVIDENT_SET, a.UNIT_PROVIDENT_SET,
a.PROVIDENT_PERCENT, a.PROVIDENT_PERCENT,
...@@ -1705,6 +1801,20 @@ ...@@ -1705,6 +1801,20 @@
a.PERSONAL_MEDICAL_MONEY, a.PERSONAL_MEDICAL_MONEY,
a.PERSONAL_UNEMPLOYMENT_MONEY, a.PERSONAL_UNEMPLOYMENT_MONEY,
a.PERSONAL_BIGMAILMENT_MONEY, a.PERSONAL_BIGMAILMENT_MONEY,
'' as PENSION_MONEY_SUM,
'' as MEDICAL_MONEY_SUM,
'' as UNEMPLOYMENT_MONEY_SUM,
'' as INJURY_MONEY_SUM,
'' as BIRTH_MONEY_SUM,
'' as BIGMAILMENT_MONEY_SUM,
'' as UNIT_PENSION_PER,
'' as UNIT_MEDICAL_PER,
'' as UNIT_UNEMPLOYMENT_PER,
'' as UNIT_INJURY_PER,
'' as UNIT_BIRTH_PER,
'' as PERSONAL_PENSION_PER,
'' as PERSONAL_MEDICAL_PER,
'' as PERSONAL_UNEMPLOYMENT_PER,
a.PROVIDENT_NO, a.PROVIDENT_NO,
a.UNIT_PROVIDENT_SET, a.UNIT_PROVIDENT_SET,
a.PROVIDENT_PERCENT, a.PROVIDENT_PERCENT,
......
...@@ -134,6 +134,8 @@ ...@@ -134,6 +134,8 @@
<result property="upperLimit" column="UPPER_LIMIT"/> <result property="upperLimit" column="UPPER_LIMIT"/>
<result property="unitSocialSum" column="UNIT_SOCIAL_SUM"/> <result property="unitSocialSum" column="UNIT_SOCIAL_SUM"/>
<result property="personalSocialSum" column="PERSONAL_SOCIAL_SUM"/> <result property="personalSocialSum" column="PERSONAL_SOCIAL_SUM"/>
<result property="firstPayTime" column="FIRST_PAY_TIME"/>
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
a.ID, a.ID,
...@@ -236,7 +238,8 @@ ...@@ -236,7 +238,8 @@
a.UPDATE_TIME, a.UPDATE_TIME,
a.PAY_POLICY, a.PAY_POLICY,
a.LOWER_LIMIT, a.LOWER_LIMIT,
a.UPPER_LIMIT,a.UNIT_SOCIAL_SUM,a.PERSONAL_SOCIAL_SUM a.UPPER_LIMIT,a.UNIT_SOCIAL_SUM,a.PERSONAL_SOCIAL_SUM,
a.FIRST_PAY_TIME
</sql> </sql>
<sql id="tSocialInfo_where"> <sql id="tSocialInfo_where">
<if test="tSocialInfo != null"> <if test="tSocialInfo != null">
......
...@@ -415,6 +415,12 @@ public class UserController { ...@@ -415,6 +415,12 @@ public class UserController {
return userService.getById(userId); return userService.getById(userId);
} }
@Inner
@PostMapping(value = {"/inner/getSimpleUserByLoginName"})
public SysUser getSimpleUserByLoginName(@RequestBody String loginName) {
return userService.getOne(Wrappers.<SysUser>query().lambda().eq(SysUser::getUsername,loginName).last(CommonConstants.LAST_ONE_SQL));
}
/** /**
* @param nickName 用户名称 * @param nickName 用户名称
* @return 上级部门用户列表 * @return 上级部门用户列表
......
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