Commit 507b4f9c authored by hongguangwu's avatar hongguangwu

Merge remote-tracking branch 'origin/MVP-1.7.3-shuiyou' into MVP-1.7.3-shuiyou

parents ec323865 00d62fa4
......@@ -632,4 +632,6 @@ public interface CommonConstants {
List<String> socialInfoStatus = Stream.of("1","3","5","7").collect(Collectors.toList());
String USER_DIR = "user.dir";
String DOUBLE_LINE = "//";
}
......@@ -153,4 +153,12 @@ public class SocialHandleSearchVo extends TDispatchInfo {
@Schema(description ="社保ID")
@ExcelIgnore
private String socialId;
/**
* 税友自动化办理,此标识区分于页面的导出功能,值为1 时 默认取值派单审核通过 且 未办理的派单数据
*/
@ExcelAttribute(name = "税友自动化办理")
@ExcelIgnore
@Schema(description = "税友自动化办理")
private String syFlag;
}
......@@ -99,22 +99,7 @@
<version>1.0.0</version>
</dependency>
<!-- Apache POI -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.3</version> <!-- 使用最新版本 -->
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.3</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.12.0</version>
</dependency>
<!-- excel to image -->
<dependency>
<groupId>spire.xls</groupId>
<artifactId>spire.xls</artifactId>
......
......@@ -28,9 +28,10 @@ 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.yifu.cloud.plus.v1.check.entity.TCheckMobile;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysArea;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.AllUserNaVo;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.AreaMap;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.AreaVo;
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.util.*;
......@@ -129,6 +130,16 @@ public class SysHouseHoldInfoServiceImpl extends ServiceImpl<SysHouseHoldInfoMap
if (Common.isEmpty(sysHouseHoldInfo.getAuditUser()) || Common.isEmpty(sysHouseHoldInfo.getHandleUser())) {
return R.failed("审核人或办理人必填!");
}
//获取行政区化代码
if (CommonConstants.ZERO_STRING.equals(sysHouseHoldInfo.getType())) {
HashMap<String, SysArea> map = initAreaMap();
if (Common.isNotNull(map) && map.size() > 0) {
SysArea area = map.get(sysHouseHoldInfo.getCity());
if (Common.isNotNull(area)) {
sysHouseHoldInfo.setAreaCode(area.getAreaCode());
}
}
}
baseMapper.insert(sysHouseHoldInfo);
//维护附件信息
if (Common.isNotNull(sysHouseHoldInfo.getAttaId())) {
......@@ -225,6 +236,16 @@ public class SysHouseHoldInfoServiceImpl extends ServiceImpl<SysHouseHoldInfoMap
.ge(SysBaseSetInfo::getApplyEndDate,DateUtil.getCurrentDateTime()))) > CommonConstants.ZERO_INT){
return R.failed("户下存在可用基数配置,请禁用可用基数配置后禁用户配置!");
}
//更新行政区划代码
if (CommonConstants.ZERO_STRING.equals(hold.getType()) && Common.isNotNull(hold.getCity())) {
HashMap<String, SysArea> map = initAreaMap();
if (Common.isNotNull(map) && map.size() > 0) {
SysArea area = map.get(hold.getCity());
if (Common.isNotNull(area)) {
hold.setAreaCode(area.getAreaCode());
}
}
}
int res = baseMapper.updateById(hold);
if (res >= 0){
if (isEdit) {
......@@ -401,11 +422,8 @@ public class SysHouseHoldInfoServiceImpl extends ServiceImpl<SysHouseHoldInfoMap
return;
}
//获取所有区域数据
Map<String,String> areaMap = new HashMap<>();
R<AreaMap> areaListR = upmsDaprUtils.getAreaMapR();
if (null != areaListR && !Common.isEmpty(areaListR.getData())) {
areaMap = areaListR.getData().getIdLabelMap();
} else {
HashMap<String, SysArea> areaMap = initAreaMap();
if (Common.isEmpty(areaMap)) {
errorMessageList.add(new ErrorMessage(1, "获取区域数据失败"));
}
//获取所有的人员信息
......@@ -433,10 +451,10 @@ public class SysHouseHoldInfoServiceImpl extends ServiceImpl<SysHouseHoldInfoMap
excel.setOrganName(excel.getOrganName().trim());
SysHouseHoldInfo household = new SysHouseHoldInfo();
BeanCopyUtils.copyProperties(excel,household);
excel.setProvince(areaMap.get(excel.getProvince()));
excel.setCity(areaMap.get(excel.getCity()));
excel.setProvince(areaMap.get(excel.getProvince()).getAreaName());
excel.setCity(areaMap.get(excel.getCity()).getAreaName());
if (Common.isNotNull(excel.getTown())) {
excel.setTown(areaMap.get(excel.getTown()));
excel.setTown(areaMap.get(excel.getTown()).getAreaName());
}
//判断模板中是否有户重复的数据
if (null == exitNameMap.get(excel.getName())) {
......@@ -490,6 +508,7 @@ public class SysHouseHoldInfoServiceImpl extends ServiceImpl<SysHouseHoldInfoMap
continue;
}
//封装和插入数据
household.setAreaCode(areaMap.get(household.getCity()).getAreaCode());
household.setAutoStatus(excel.getAutoStatus().equals(CommonConstants.IS_TRUE) ? "0" : "1");
household.setType("0");
household.setHouseType(excel.getHouseType().equals(HouseConfigConstants.HOUSE_TYPE_ONE) ? "0" : "1");
......@@ -511,11 +530,8 @@ public class SysHouseHoldInfoServiceImpl extends ServiceImpl<SysHouseHoldInfoMap
return;
}
//获取所有区域数据
Map<String,String> areaMap = new HashMap<>();
R<AreaMap> areaListR = upmsDaprUtils.getAreaMapR();
if (null != areaListR && !Common.isEmpty(areaListR.getData())) {
areaMap = areaListR.getData().getIdLabelMap();
} else {
HashMap<String, SysArea> areaMap = initAreaMap();
if (Common.isEmpty(areaMap)) {
errorMessageList.add(new ErrorMessage(1, "获取区域数据失败"));
}
//获取所有的人员信息
......@@ -548,6 +564,7 @@ public class SysHouseHoldInfoServiceImpl extends ServiceImpl<SysHouseHoldInfoMap
if (Common.isNotNull(excel.getProvince()) && Common.isNotNull(excel.getCity())) {
info.setProvince(excel.getProvince());
info.setCity(excel.getCity());
info.setAreaCode(areaMap.get(excel.getCity()).getAreaCode());
if (Common.isNotNull(excel.getTown())) {
info.setTown(excel.getTown());
} else {
......@@ -555,13 +572,13 @@ public class SysHouseHoldInfoServiceImpl extends ServiceImpl<SysHouseHoldInfoMap
}
}
if (Common.isNotNull(excel.getProvince())) {
excel.setProvince(areaMap.get(excel.getProvince()));
excel.setProvince(areaMap.get(excel.getProvince()).getAreaName());
}
if (Common.isNotNull(excel.getCity())) {
excel.setCity(areaMap.get(excel.getCity()));
excel.setCity(areaMap.get(excel.getCity()).getAreaName());
}
if (Common.isNotNull(excel.getTown())) {
excel.setTown(areaMap.get(excel.getTown()));
excel.setTown(areaMap.get(excel.getTown()).getAreaName());
}
if (Common.isEmpty(info)){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), HouseConfigConstants.ERROR_NOT_EXIT,excel));
......@@ -696,4 +713,22 @@ public class SysHouseHoldInfoServiceImpl extends ServiceImpl<SysHouseHoldInfoMap
}
baseMapper.updateById(info);
}
//获取所有区域数据
private HashMap<String,SysArea> initAreaMap() {
HashMap<String,SysArea> areaMap = new HashMap<>();
R<AreaVo> areaListR = upmsDaprUtils.getAreaListR();
if (null == areaListR || areaListR.getCode() != CommonConstants.SUCCESS) {
return new HashMap<>();
}
AreaVo areaList = areaListR.getData();
if (null != areaList && !areaList.getSysAreaList().isEmpty()) {
for (SysArea area : areaList.getSysAreaList()) {
areaMap.put(Integer.toString(area.getId()), area);
}
} else {
return new HashMap<>();
}
return areaMap;
}
}
......@@ -61,7 +61,9 @@ import com.yifu.cloud.plus.v1.yifu.social.constants.DispatchConstants;
import com.yifu.cloud.plus.v1.yifu.social.constants.PreDispatchConstants;
import com.yifu.cloud.plus.v1.yifu.social.entity.*;
import com.yifu.cloud.plus.v1.yifu.social.mapper.*;
import com.yifu.cloud.plus.v1.yifu.social.service.*;
import com.yifu.cloud.plus.v1.yifu.social.service.TDispatchInfoService;
import com.yifu.cloud.plus.v1.yifu.social.service.TDispatchSocialFundInfoService;
import com.yifu.cloud.plus.v1.yifu.social.service.TForecastLibraryService;
import com.yifu.cloud.plus.v1.yifu.social.util.DoSocialTask;
import com.yifu.cloud.plus.v1.yifu.social.util.ExcelMergeImage;
import com.yifu.cloud.plus.v1.yifu.social.util.ExcelToImage;
......@@ -97,7 +99,7 @@ import java.util.stream.Collectors;
* 派单信息记录表
*
* @author fxj
* @date 2022-07-15 11:38:05
* @Date 2022-07-15 11:38:05
*/
@Log4j2
@RequiredArgsConstructor
......@@ -127,10 +129,6 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
private final TForecastLibraryService forecastLibraryService;
private final TIncomeDetailService detailService;
private final TIncomeService incomeService;
ExcelUtil<Object> excelUtil = new ExcelUtil<>(Object.class);
private final MenuUtil menuUtil;
......@@ -150,6 +148,9 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
@Autowired
private SysHouseHoldInfoMapper houseHoldInfoMapper;
@Autowired
private TAttaInfoMapper attaInfoMapper;
/**
* 派单信息记录表简单分页查询
*
......@@ -7531,9 +7532,9 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
}
/**
* @Author fxj
* @Description
* @Description 查询当月已经审核通过的未办理完成的社保或医保 增减信息
* @Date 15:58 2024/12/10
* @Param socialId:社保明细ID type: 1 社保增 2社保减 3 医保增 4 医保减
* @Param socialId:社保明细ID type: 1 社保增 2社保减 3 医保增 4 医保减 unitCreditCode:单位统一信用代码
* @return
**/
@Override
......@@ -7544,7 +7545,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
}
TSocialInfo socialInfo = socialMapper.selectById(socialId);
if (Common.isEmpty(socialInfo)){
return R.failed(CommonConstants.PARAM_IS_NOT_ERROR);
return R.failed(CommonConstants.PARAM_IS_NOT_ERROR+":未获取到社保明细信息");
}
//查询户名称对应的户配置 以获取公章信息
SysHouseHoldInfo holdInfo = houseHoldInfoMapper.selectOne(Wrappers.<SysHouseHoldInfo>query().lambda()
......@@ -7553,27 +7554,29 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
.eq(SysHouseHoldInfo::getDelFlag,0)
.last(CommonConstants.LAST_ONE_SQL));
if (Common.isEmpty(holdInfo)){
return R.failed(CommonConstants.RESULT_DATA_FAIL+":获取户配置失败");
return R.failed(CommonConstants.RESULT_DATA_FAIL+":获取户配置信息失败");
}
SysBaseSetInfo socialBaseSet = baseSetMapper.selectById(socialInfo.getSocialHousehold());
if (Common.isEmpty(socialBaseSet)){
return R.failed(CommonConstants.PARAM_IS_NOT_ERROR);
TAttaInfo att = attaInfoMapper.selectOne(Wrappers.<TAttaInfo>query().lambda()
.eq(TAttaInfo::getDomainId,holdInfo.getId()).last(CommonConstants.LAST_ONE_SQL));
if (Common.isEmpty(att)){
return R.failed(CommonConstants.RESULT_DATA_FAIL+":获取电子印章信息失败");
}
searchVo.setSocialHouseholdName(socialInfo.getSocialHouseholdName());
//searchVo.setDisMonth(DateUtil.getThisMonth());
searchVo.setDisMonth("202410");
searchVo.setAuditStatus(CommonConstants.ZERO_STRING);
//searchVo.setSocialHandleStatus(CommonConstants.ZERO_STRING);
searchVo.setUnitCreditCode(unitCreditCode);
searchVo.setDisMonth(DateUtil.getThisMonth());
searchVo.setSyFlag(CommonConstants.ONE_STRING);
//税友特殊处理标识
searchVo.setSocialId(socialId);
String fileName = DispatchConstants.SOCIAL_MEDICAL_EXPORT + searchVo.getSocialHouseholdName() + "_" + socialId + CommonConstants.XLS;
String projectRoot = System.getProperty(CommonConstants.USER_DIR);
String filePath = projectRoot+CommonConstants.DOUBLE_LINE+fileName;
//社保增减
if (CommonConstants.ONE_STRING.equals(type) || CommonConstants.TWO_STRING.equals(type)){
return doExportRosterSocial(searchVo,type);
return doExportRosterSocial(searchVo,type,fileName,projectRoot,filePath,att.getAttaSrc());
}
//医保增减
if (CommonConstants.THREE_STRING.equals(type) || CommonConstants.FOUR_STRING.equals(type)){
return doExportRosterMedical(searchVo,type);
return doExportRosterMedical(searchVo,type,fileName,projectRoot,filePath,att.getAttaSrc());
}
return null;
}
......@@ -7584,13 +7587,21 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
* @Param
* @return
**/
public R<URL> doExportRosterMedical(SocialHandleSearchVo searchVo,String type){
String fileName = DispatchConstants.SOCIAL_MEDICAL_EXPORT + searchVo.getSocialHouseholdName() + "_" + DateUtil.getThisMonth() + CommonConstants.XLSX;
public R<URL> doExportRosterMedical(SocialHandleSearchVo searchVo,
String type,
String fileName,
String projectRoot,
String filePath,
String src){
//获取要导出的列表
List<TDispatchSocialExportVo> list = new ArrayList<>();
try (FileOutputStream out = new FileOutputStream(fileName)){
File createFile = null;
ExcelWriter excelWriter = null;
try {
// 这里 需要指定写用哪个class去写,然后写到第一个sheet,然后文件流会自动关闭
ExcelWriter excelWriter = EasyExcel.write(out).build();
createFile = new File(filePath);
excelWriter = EasyExcel.write(createFile).build();
WriteSheet writeSheet;
WriteTable writeTable0;
WriteTable writeTable1;
......@@ -7722,11 +7733,87 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
if (excelWriter!= null) {
excelWriter.finish();
}
File outFile = null;
File inputFile = null;
File tempFile = null;
FileInputStream inputStream = null;
FileOutputStream fileOUt = null;
InputStream inStream = null;
FileInputStream inputStreamOut = null;
try {
//读取文件 生成电子章
inputFile = new File(filePath);
inputStream = new FileInputStream(inputFile);
String tempPath = projectRoot+"//temp_"+fileName;
tempFile = new File(tempPath);
fileOUt = new FileOutputStream(tempFile);
URL url =ossUtil.getObjectUrl(null,src);
if (Common.isEmpty(url)){
return R.failed(CommonConstants.RESULT_DATA_FAIL+":电子印章OSS获取URL异常");
}
inStream = url.openStream();
if (Common.isEmpty(inStream)){
return R.failed(CommonConstants.RESULT_DATA_FAIL+":电子印章OSS获取流异常");
}
// 添加电子章 完成后关闭所有流
excelMergeImage.addPictureToExcel(inputStream,inStream,fileOUt,0,type);
outFile = new File(tempPath);
inputStreamOut = new FileInputStream(outFile);
// 转换成图片 完成后清理流
return excelToImage.excelToImg(inputStreamOut,ossUtil);
}catch (Exception e){
log.error("执行异常" ,e);
return R.failed("税友附件生成异常:"+e.getMessage());
}finally {
// 清理文件
finallyClose(inputFile, tempFile, outFile, inputStream, fileOUt, inStream,inputStreamOut);
}
}catch (Exception e){
if (excelWriter!= null) {
excelWriter.finish();
}
log.error("税友附件生成异常" ,e);
return R.failed("税友附件生成异常:"+e.getMessage());
}finally {
if (null != createFile && createFile.exists()){
createFile.delete();
}
if (null != list){
list.clear();
}
}
return null;
}
private void finallyClose(File inputFile,
File tempFile,
File outFile,
FileInputStream inputStream,
FileOutputStream fileOUt,
InputStream inStream,
FileInputStream inputStreamOut) throws IOException {
if (inputFile.exists()){
inputFile.delete();
}
if (tempFile.exists()){
tempFile.delete();
}
if (outFile.exists()){
outFile.delete();
}
if (null != inputStream){
inputStream.close();
}
if (null != fileOUt){
fileOUt.close();
}
if (null != inStream){
inStream.close();
}
if (null != inputStreamOut){
inputStreamOut.close();
}
}
/**
* @Author fxj
* @Description 社保增减花名册
......@@ -7734,15 +7821,20 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
* @Param
* @return
**/
public R<URL> doExportRosterSocial(SocialHandleSearchVo searchVo,String type){
String fileName = DispatchConstants.SOCIAL_MEDICAL_EXPORT + searchVo.getSocialHouseholdName() + "_" + DateUtil.getThisMonth() + CommonConstants.XLS;
String projectRoot = System.getProperty("user.dir");
String filePath = projectRoot+"//"+fileName;
public R<URL> doExportRosterSocial(SocialHandleSearchVo searchVo,
String type,
String fileName,
String projectRoot,
String filePath,
String src){
//获取要导出的列表
List<TDispatchSocialPersionExportVo> list = new ArrayList<>();
ExcelWriter excelWriter = null;
File createFile = null;
try {
// 这里 需要指定写用哪个class去写,然后写到第一个sheet,然后文件流会自动关闭
ExcelWriter excelWriter = EasyExcel.write(filePath).build();
createFile = new File(filePath);
excelWriter = EasyExcel.write(createFile).build();
WriteSheet writeSheet;
WriteTable writeTable0;
WriteTable writeTable1;
......@@ -7825,7 +7917,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
excelWriter.write(new ArrayList<>(), writeSheet, writeTable3);
excelWriter.write(new ArrayList<>(), writeSheet, writeTable4);
}
}else if (CommonConstants.ONE_STRING.equals(type)){
}else if (CommonConstants.TWO_STRING.equals(type)){
//派减的数据--社保
searchVo.setType(CommonConstants.ONE_STRING);
long count1 = getSocialPersionReduceDisCount(searchVo);
......@@ -7895,23 +7987,65 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
excelWriter.write(listReduce, writeSheet, writeTable2);
excelWriter.write(new ArrayList<>(), writeSheet, writeTable3);
}
if (Common.isNotNull(listReduce)){
listReduce.clear();
}
}
if (excelWriter!= null) {
excelWriter.finish();
}
File inputFile = null;
File tempFile = null;
File outFile = null;
FileInputStream inputStream = null;
FileOutputStream fileOUt = null;
InputStream inStream = null;
FileInputStream inputStreamOut = null;
try {
//读取文件 生成电子章
FileInputStream inputStream = new FileInputStream(filePath);
String outPath = projectRoot+"//out_"+fileName;
FileOutputStream fileOUt = new FileOutputStream(outPath);
URL url =ossUtil.getObjectUrl(null,"");
InputStream inStream = url.openStream();
excelMergeImage.addPictureToExcel(inputStream,inStream,fileOUt,0);
inputFile = new File(filePath);
inputStream = new FileInputStream(inputFile);
String tempPath = projectRoot+"//temp_"+fileName;
tempFile = new File(tempPath);
fileOUt = new FileOutputStream(tempFile);
URL url =ossUtil.getObjectUrl(null,src);
if (Common.isEmpty(url)){
return R.failed(CommonConstants.RESULT_DATA_FAIL+":电子印章OSS获取URL异常");
}
inStream = url.openStream();
if (Common.isEmpty(inStream)){
return R.failed(CommonConstants.RESULT_DATA_FAIL+":电子印章OSS获取流异常");
}
// 添加电子章 完成后关闭所有流
excelMergeImage.addPictureToExcel(inputStream,inStream,fileOUt,0,type);
outFile = new File(tempPath);
inputStreamOut = new FileInputStream(outFile);
// 转换成图片 完成后清理流
return excelToImage.excelToImg(inputStreamOut,ossUtil);
}catch (Exception e){
log.error("执行异常" ,e);
return R.failed("税友附件生成异常:"+e.getMessage());
}finally {
// 清理文件
finallyClose(inputFile, tempFile, outFile, inputStream, fileOUt, inStream,inputStreamOut);
}
}catch (Exception e){
if (excelWriter!= null) {
excelWriter.finish();
}
log.error("税友附件生成异常" ,e);
return R.failed("税友附件生成异常:"+e.getMessage());
}finally {
finallyClear(list, createFile);
}
}
return null;
private void finallyClear(List<TDispatchSocialPersionExportVo> list, File createFile) {
if (null != createFile && createFile.exists()){
createFile.delete();
}
if (null != list){
list.clear();
}
}
......
......@@ -1274,11 +1274,11 @@ public class TForecastLibraryServiceImpl extends ServiceImpl<TForecastLibraryMap
}
if (CommonConstants.ONE_STRING.equals(social.getCollectType())
&& CommonConstants.ONE_STRING.equals(social.getValueType())) {
if (social.getUnitBigailmentCardinal().compareTo(socialSet.getLowerBig()) < CommonConstants.ZERO_INT) {
if (BigDecimalUtils.isNullToZero(social.getUnitBigailmentCardinal()).compareTo(socialSet.getLowerBig()) < CommonConstants.ZERO_INT) {
//按年收取大病方式按定值
social.setPersonalBigailmentCardinal(socialSet.getLowerBig());
social.setUnitBigailmentCardinal(socialSet.getLowerBig());
} else if (social.getUnitBigailmentCardinal().compareTo(socialSet.getUpBig()) > CommonConstants.ZERO_INT) {
} else if (BigDecimalUtils.isNullToZero(social.getUnitBigailmentCardinal()).compareTo(socialSet.getUpBig()) > CommonConstants.ZERO_INT) {
social.setPersonalBigailmentCardinal(socialSet.getUpBig());
social.setUnitBigailmentCardinal(socialSet.getUpBig());
}
......
......@@ -307,12 +307,30 @@ public class TSocialDeadlineInfoServiceImpl extends ServiceImpl<TSocialDeadlineI
if (Common.isNotNull(save.getSocialEndDate())) {
save.setSocialEndDate(this.getNewDateByOldDate(save.getSocialEndDate()));
}
//2024-12-09 fxj v1.7.3
if (Common.isNotNull(save.getSocialStartDateReduce())){
save.setSocialStartDateReduce(this.getNewDateByOldDate(save.getSocialStartDateReduce()));
}
if (Common.isNotNull(save.getSocialEndDateReduce())){
save.setSocialEndDateReduce(this.getNewDateByOldDate(save.getSocialEndDateReduce()));
//处理社保减少截止时间和医保减少截止时间
initSocialEndDateReduce(holidayMap, save);
}
if (Common.isNotNull(save.getMedicalStartDateReduce())){
save.setMedicalStartDateReduce(this.getNewDateByOldDate(save.getMedicalStartDateReduce()));
}
if (Common.isNotNull(save.getMedicalEndDateReduce())){
save.setMedicalEndDateReduce(this.getNewDateByOldDate(save.getMedicalEndDateReduce()));
//处理社保减少截止时间和医保减少截止时间
initMedicalEndDateReduce(holidayMap, save);
}
initSocialEndDate(holidayMap, save);
initMedicalEndDate(holidayMap, save);
save.setUpdateTime(null);
save.setUpdateBy(null);
save.setUpdateName(null);
//已存在跳过
queryWrapper = initCountQuery(save,queryWrapper);
if (baseMapper.selectCount(queryWrapper) > 0){
continue;
......@@ -458,6 +476,28 @@ public class TSocialDeadlineInfoServiceImpl extends ServiceImpl<TSocialDeadlineI
initSocialEndDate(holidayMap,save);
}
private void initSocialEndDateReduce(Map<String, String> holidayMap, TSocialDeadlineInfo save) {
// type 0 休假 1 补班
String day= holidayMap.get(DateUtil.getDay(save.getSocialEndDateReduce()));
if (Common.isNotNull(day)){
save.setSocialEndDateReduce(DateUtil.addDayByDate(save.getSocialEndDateReduce(),CommonConstants.ONE_INT_NEGATE));
}else {
return;
}
initSocialEndDateReduce(holidayMap,save);
}
private void initMedicalEndDateReduce(Map<String, String> holidayMap, TSocialDeadlineInfo save) {
// type 0 休假 1 补班
String day= holidayMap.get(DateUtil.getDay(save.getMedicalEndDateReduce()));
if (Common.isNotNull(day)){
save.setMedicalEndDateReduce(DateUtil.addDayByDate(save.getMedicalEndDateReduce(),CommonConstants.ONE_INT_NEGATE));
}else {
return;
}
initMedicalEndDateReduce(holidayMap,save);
}
/**
* @Description: 获取 当月启用 的配置
* @Author: hgw
......
package com.yifu.cloud.plus.v1.yifu.social.util;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import lombok.extern.log4j.Log4j2;
import org.apache.commons.compress.utils.IOUtils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.stereotype.Component;
import javax.imageio.ImageIO;
import java.awt.Color;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.*;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
/**
* @Author fxj
......@@ -18,74 +18,10 @@ import java.io.*;
* @Description
* @Version 1.0
*/
@Log4j2
@Component
public class ExcelMergeImage {
public static void main(String[] args) throws IOException {
String excelFilePath = "E:\\test\\11\\1.xls";
String imageFilePath = "E:\\test\\11\\1.png";
//convertExcelToImage(excelFilePath, imageFilePath);
//stampAdder();
}
public static void convertExcelToImage(String excelFilePath, String imageFilePath) throws IOException {
FileInputStream fis = new FileInputStream(new File(excelFilePath));
Workbook workbook;
if (excelFilePath.endsWith(".xls")) {
workbook = new HSSFWorkbook(fis); // For Excel 97-2003 (.xls) format
} else if (excelFilePath.endsWith(".xlsx")) {
workbook = new XSSFWorkbook(fis); // For Excel 2007 and later (.xlsx) format
} else {
throw new IllegalArgumentException("Unsupported file type");
}
Sheet sheet = workbook.getSheetAt(0);
int rowCount = 16; //sheet.getPhysicalNumberOfRows();
int colCount = 25;//sheet.getRow(0).getPhysicalNumberOfCells();
BufferedImage image = new BufferedImage(896, 424, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = image.createGraphics();
for (int i = 0; i < rowCount; i++) {
Row row = sheet.getRow(i);
for (int j = 0; j < colCount; j++) {
Cell cell = row.getCell(j);
if (cell != null) {
graphics.fillRect(j*150, i*47, 896, 424);
graphics.setColor(Color.black); // 设置边框颜色
graphics.drawRect(j*150, i*47, 896, 424);
String cellValue = getCellValueAsString(cell);
graphics.drawString(cellValue, j * 150+10, i * 45+30);
}
}
}
graphics.dispose();
ImageIO.write(image, "png", new File(imageFilePath));
workbook.close();
fis.close();
}
private static String getCellValueAsString(Cell cell) {
String cellValue = "";
if (cell != null) {
switch (cell.getCellType()) {
case STRING:
cellValue = cell.getStringCellValue();
break;
case NUMERIC:
cellValue = String.valueOf(cell.getNumericCellValue());
break;
case BOOLEAN:
cellValue = String.valueOf(cell.getBooleanCellValue());
break;
case FORMULA:
cellValue = cell.getCellFormula();
break;
default:
cellValue = "";
}
}
return cellValue;
}
/**
* @Author fxj
* @Description 03格式excel添加电子印章或图片
......@@ -93,10 +29,10 @@ public class ExcelMergeImage {
* @Param
* @return
**/
public FileOutputStream addPictureToExcel(FileInputStream fis,
public void addPictureToExcel(FileInputStream fis,
InputStream imageIs,
FileOutputStream fileOut,
int SheetNum){
int SheetNum,String type){
Workbook workbook = null;
try {
workbook = new HSSFWorkbook(fis);
......@@ -107,14 +43,24 @@ public class ExcelMergeImage {
ClientAnchor anchor = helper.createClientAnchor();
anchor.setCol1(2);
anchor.setRow1(0);
// 按花名册类型特殊处理对应印章的效果
if (CommonConstants.TWO_STRING.equals(type)){
anchor.setCol2(5);
anchor.setRow2(6);
}else if (CommonConstants.FOUR_STRING.equals(type) || CommonConstants.THREE_STRING.equals(type)){
anchor.setCol2(5);
anchor.setRow2(8);
}else {
anchor.setCol2(4);
anchor.setRow2(7);
}
// 添加印章图片
int pictureIdx = workbook.addPicture(IOUtils.toByteArray(imageIs), Workbook.PICTURE_TYPE_PNG);
drawing.createPicture(anchor, pictureIdx);
workbook.write(fileOut);
}catch (Exception e){
e.printStackTrace();
log.error("excel插入电子印章异常:{}",e.getMessage());
}finally {
try {
if (null != fis){
......@@ -123,10 +69,15 @@ public class ExcelMergeImage {
if (null != workbook){
workbook.close();
}
if (null != imageIs){
imageIs.close();
}
if (null != fileOut){
fileOut.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return fileOut;
}
}
......@@ -6,9 +6,11 @@ import com.spire.xls.Worksheet;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.OSSUtil;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import groovyjarjarpicocli.CommandLine;
import org.springframework.stereotype.Component;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
......@@ -22,7 +24,10 @@ import java.net.URL;
public class ExcelToImage {
public R<URL> excelToImg(InputStream inputStream ,OSSUtil ossUtil){
String projectRoot = System.getProperty("user.dir");
if (null == inputStream || null == ossUtil){
return R.failed(CommonConstants.RESULT_DATA_FAIL+":带印章excel生成图片传参异常");
}
String projectRoot = System.getProperty(CommonConstants.USER_DIR);
//加载Excel工作表
Workbook wb = new Workbook();
wb.loadFromHtml(inputStream);
......@@ -42,12 +47,18 @@ public class ExcelToImage {
}
}
} catch (Exception e) {
e.printStackTrace();
return R.failed(CommonConstants.RESULT_DATA_FAIL+":ExcelToImage转换异常-"+e.getMessage());
} finally {
if (file.exists()){
file.delete();
}
if (null != inputStream){
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return R.failed(CommonConstants.RESULT_DATA_FAIL);
//调用方法,将指定Excel单元格数据范围保存为图片
......
......@@ -2260,10 +2260,12 @@
a.DELETE_FLAG = 0
AND a.social_id is not null
<if test='tDispatchInfo.socialId != null and tDispatchInfo.socialId.trim() == "0" '>
AND a.social_id = #{tDispatchInfo.socialId}
<if test="tDispatchInfo.socialId != null and tDispatchInfo.socialId.trim() != ''">
AND a.SOCIAL_ID = #{tDispatchInfo.socialId}
</if>
<if test="tDispatchInfo.syFlag != null and tDispatchInfo.syFlag.trim() == '1'">
AND a.STATUS = '2'
</if>
<!-- dispatch-status 未提交1待审核2审核通过3审核不通过4办理完成5待SSC审核 -->
<if test='tDispatchInfo.auditStatus != null and tDispatchInfo.auditStatus.trim() == "0" '>
AND a.STATUS in ('2','4')
......@@ -2360,9 +2362,13 @@
<sql id="where_getSocialPersionDisRecord">
a.DELETE_FLAG = 0
AND a.social_id is not null
<if test='tDispatchInfo.socialId != null and tDispatchInfo.socialId.trim() == "0" '>
AND a.social_id = #{tDispatchInfo.socialId}
<if test="tDispatchInfo.socialId != null and tDispatchInfo.socialId.trim() != ''">
AND a.SOCIAL_ID = #{tDispatchInfo.socialId}
</if>
<if test="tDispatchInfo.syFlag != null and tDispatchInfo.syFlag.trim() == '1'">
AND a.STATUS = '2'
</if>
<!-- dispatch-status 未提交1待审核2审核通过3审核不通过4办理完成5待SSC审核 -->
<if test='tDispatchInfo.auditStatus != null and tDispatchInfo.auditStatus.trim() == "0"'>
AND a.STATUS in ('2','4')
......
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