weaver-hrm-salary/src/com/engine/salary/service/impl/SalaryBillBaseSetServiceImp...

130 lines
6.0 KiB
Java
Raw Normal View History

2023-06-09 17:57:17 +08:00
package com.engine.salary.service.impl;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.salary.constant.SalaryDefaultTenantConstant;
2023-06-13 10:02:11 +08:00
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
import com.engine.salary.entity.salaryBill.bo.SalaryBillBO;
2023-06-09 17:57:17 +08:00
import com.engine.salary.entity.salaryBill.dto.SalaryBillWatermarkDTO;
import com.engine.salary.entity.salaryBill.param.SalaryBaseSetSaveParam;
import com.engine.salary.entity.salaryBill.po.SalaryBillWatermarkPO;
import com.engine.salary.enums.salarybill.SalaryTemplateWatermarkTypeEnum;
import com.engine.salary.service.SalaryBillBaseSetService;
import com.engine.salary.service.SalaryBillWatermarkService;
2023-06-13 10:02:11 +08:00
import com.engine.salary.service.SalaryEmployeeService;
2023-06-09 17:57:17 +08:00
import com.engine.salary.util.JsonUtil;
2023-06-13 10:02:11 +08:00
import com.google.common.collect.Lists;
2023-06-09 17:57:17 +08:00
import dm.jdbc.util.IdGenerator;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.math.NumberUtils;
import org.apache.commons.lang3.StringUtils;
import weaver.hrm.User;
import java.util.Date;
import java.util.List;
2023-06-13 10:02:11 +08:00
import java.util.Map;
2023-06-09 17:57:17 +08:00
import java.util.Objects;
/**
* @Description: 工资单水印
* @Author: wangxiangzhong
* @Date: 2023/5/16 11:10
*/
public class SalaryBillBaseSetServiceImpl extends Service implements SalaryBillBaseSetService {
private SalaryBillWatermarkService getSalaryBillWatermarkService(User user) {
return ServiceUtil.getService(SalaryBillWatermarkServiceImpl.class, user);
}
2023-06-13 10:02:11 +08:00
private SalaryEmployeeService getSalaryEmployeeService(User user) {
return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user);
}
2023-06-09 17:57:17 +08:00
@Override
public SalaryBillWatermarkDTO getWatermarkSetting() {
List<SalaryBillWatermarkPO> list = getSalaryBillWatermarkService(user).listAll();
SalaryBillWatermarkPO watermarkPO = CollectionUtils.isNotEmpty(list) ? list.get(0) : null;
if (Objects.isNull(watermarkPO)) {
return null;
}
return SalaryBillWatermarkDTO.builder()
.watermarkStatus(NumberUtils.INTEGER_ONE.equals(watermarkPO.getWatermarkStatus()))
.watermarkType(watermarkPO.getWatermarkType())
.wmSetting(JsonUtil.parseMap(watermarkPO.getWatermarkSetting(), Object.class))
.build();
}
@Override
public String saveBaseSet(SalaryBaseSetSaveParam saveParam) {
// 检查参数
SalaryBaseSetSaveParam.checkParam(saveParam);
Date now = new Date();
// 工资单水印===========================================================
Integer watermarkStatus = NumberUtils.INTEGER_ONE;
String watermark = null;
String wmSetting = StringUtils.EMPTY;
// 如果开启了
if (saveParam.getWatermarkStatus()) {
if (SalaryTemplateWatermarkTypeEnum.CUSTOM.equals(saveParam.getWatermark())) {
wmSetting = JsonUtil.toJsonString(saveParam.getWmSetting());
2023-06-12 15:19:24 +08:00
}else{
// 系统默认水印 给一个默认的json
2023-06-16 09:58:54 +08:00
wmSetting = "{\"wmWidth\":100,\"wmRotate\":30,\"wmSelectedFieldIds\":[\"HRM_Name\"],\"pureWmText\":\" 当前操作者姓名 \",\"wmText\":\"<p><span style=\\\"font-size:16px;\\\">&nbsp;<span>$HRM_Name</span>&nbsp;</span></p>\",\"wmClassify\":\"text\",\"wmHeight\":100,\"wmOriginText\":\"<p><span style=\\\"font-size:16px;\\\">&nbsp;<span contenteditable=\\\"false\\\" data-id=\\\"HRM_Name\\\">当前操作者姓名</span>&nbsp;</span></p>\",\"wmNoTransparent\":15}";
2023-06-09 17:57:17 +08:00
}
watermark = saveParam.getWatermark().getValue();
} else {
watermarkStatus = NumberUtils.INTEGER_ZERO;
}
// 将当前生效的水印信息都删除
getSalaryBillWatermarkService(user).deleteAll();
// 保存最新的水印信息
getSalaryBillWatermarkService(user).insertIgnoreNull(SalaryBillWatermarkPO.builder()
.id(IdGenerator.generate())
.watermarkStatus(watermarkStatus)
.watermarkType(watermark)
.watermarkSetting(wmSetting)
.createTime(now)
.updateTime(now)
.creator(Long.valueOf(user.getUID()))
.deleteType(NumberUtils.INTEGER_ZERO)
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
.build());
// // 工资单确认和反馈 ===========================================================
// new LambdaUpdateChainWrapper<>(salaryBillAckFeedbackMapper)
// .eq(SalaryBillAckFeedbackPO::getDeleteType, 0)
// .eq(SalaryBillAckFeedbackPO::getTenantKey, tenantKey)
// .set(SalaryBillAckFeedbackPO::getDeleteType, 3)
// .update();
// salaryBillAckFeedbackMapper.insert(SalaryBillAckFeedbackPO.builder()
// .id(IdGenerator.generate())
// .ackStatus(saveParam.getAckStatus() ? NumberUtils.INTEGER_ONE : NumberUtils.INTEGER_ZERO)
// .feedbackStatus(saveParam.getFeedbackStatus() ? NumberUtils.INTEGER_ONE : NumberUtils.INTEGER_ZERO)
// .createTime(now)
// .updateTime(now)
// .creator(employeeId)
// .deleteType(NumberUtils.INTEGER_ZERO)
// .tenantKey(tenantKey)
// .build());
return StringUtils.EMPTY;
}
2023-06-13 10:02:11 +08:00
@Override
public String previewWaterMark(Map<String, Object> wmSetting) {
String wmText = wmSetting.getOrDefault("wmText", StringUtils.EMPTY).toString();
List<String> wmTextFieldIds = (List<String>) wmSetting.getOrDefault("wmSelectedFieldIds", Lists.newArrayList());
if (CollectionUtils.isEmpty(wmTextFieldIds) || StringUtils.isEmpty(wmText)) {
return wmText;
}
DataCollectionEmployee simpleEmployee = getSalaryEmployeeService(user).getEmployeeById(Long.valueOf(user.getUID()));
return SalaryBillBO.handleWmText(wmText, wmTextFieldIds, simpleEmployee);
}
2023-06-09 17:57:17 +08:00
}