283 lines
10 KiB
Java
283 lines
10 KiB
Java
package com.engine.salary.wrapper;
|
|
|
|
import com.cloudstore.eccom.result.WeaResultMsg;
|
|
import com.engine.common.util.ServiceUtil;
|
|
import com.engine.core.impl.Service;
|
|
import com.engine.salary.component.SalaryWeaTable;
|
|
import com.engine.salary.entity.salaryBill.dto.*;
|
|
import com.engine.salary.entity.salaryBill.param.SalaryTemplateCopyParam;
|
|
import com.engine.salary.entity.salaryBill.param.SalaryTemplateDefaultUseParam;
|
|
import com.engine.salary.entity.salaryBill.param.SalaryTemplateQueryParam;
|
|
import com.engine.salary.entity.salaryBill.param.SalaryTemplateSaveParam;
|
|
import com.engine.salary.entity.salaryBill.po.SalaryTemplatePO;
|
|
import com.engine.salary.entity.salarysob.po.SalarySobPO;
|
|
import com.engine.salary.enums.salarybill.SalaryTemplateVarEnum;
|
|
import com.engine.salary.enums.salarybill.SalaryTemplateWhetherEnum;
|
|
import com.engine.salary.exception.SalaryRunTimeException;
|
|
import com.engine.salary.service.SalarySobService;
|
|
import com.engine.salary.service.SalaryTemplateService;
|
|
import com.engine.salary.service.impl.SalarySobServiceImpl;
|
|
import com.engine.salary.service.impl.SalaryTemplateServiceImpl;
|
|
import com.engine.salary.util.db.DBType;
|
|
import com.mzlion.core.json.fastjson.JsonUtil;
|
|
import com.mzlion.core.utils.BeanUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.math.NumberUtils;
|
|
import org.springframework.stereotype.Component;
|
|
import weaver.conn.RecordSet;
|
|
import weaver.hrm.User;
|
|
|
|
import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
|
|
/**
|
|
* @Description: 工资单模板
|
|
* @Author: wangxiangzhong
|
|
* @Date: 2022/3/16 13:56
|
|
*/
|
|
@Component
|
|
public class SalaryTemplateWrapper extends Service {
|
|
|
|
private SalaryTemplateService getSalaryTemplateService(User user) {
|
|
return ServiceUtil.getService(SalaryTemplateServiceImpl.class, user);
|
|
}
|
|
// @RpcReference
|
|
// private MailBaseService mailBaseService;
|
|
|
|
private SalarySobService getSalarySobService(User user) {
|
|
return ServiceUtil.getService(SalarySobServiceImpl.class, user);
|
|
}
|
|
|
|
/**
|
|
* 工资单模板列表
|
|
*
|
|
* @param queryParam
|
|
* @return
|
|
*/
|
|
public Map<String, Object> list(SalaryTemplateQueryParam queryParam) {
|
|
SalaryWeaTable<SalaryTemplateListDTO> table = new SalaryWeaTable<SalaryTemplateListDTO>(user, SalaryTemplateListDTO.class);
|
|
|
|
String fields = " t.id" +
|
|
" , t.name" +
|
|
" , t.salary_sob_id as salarySob" +
|
|
" , t.use_type as useType" +
|
|
" , t.description";
|
|
|
|
String from = " from hrsa_salary_template t";
|
|
|
|
table.setBackfields(fields);
|
|
table.setSqlform(from);
|
|
table.setSqlwhere(makeSqlWhere(queryParam));
|
|
table.setSqlorderby("t.id DESC");
|
|
table.setSqlprimarykey("t.id");
|
|
table.setSqlisdistinct("false");
|
|
|
|
WeaResultMsg result = new WeaResultMsg(false);
|
|
result.putAll(table.makeDataResult());
|
|
result.success();
|
|
return result.getResultMap();
|
|
}
|
|
|
|
private String makeSqlWhere(SalaryTemplateQueryParam queryParam) {
|
|
DBType dbType = DBType.get(new RecordSet().getDBType());
|
|
|
|
String sqlWhere = " t.delete_type = 0 ";
|
|
|
|
String name = queryParam.getName();
|
|
if (StringUtils.isNotBlank(name)) {
|
|
sqlWhere += " AND t.name " + dbType.like(name);
|
|
}
|
|
|
|
Collection<Long> ids = queryParam.getIds();
|
|
|
|
if(ids != null && ids.size() > 0) {
|
|
sqlWhere += " AND t.id in ("+ ids.stream().map(Object::toString).collect(Collectors.joining(",")) + ") ";
|
|
}
|
|
|
|
Long salarySobId = queryParam.getSalarySobId();
|
|
|
|
if(salarySobId != null) {
|
|
sqlWhere += " AND t.salary_sob_id = " + salarySobId;
|
|
}
|
|
|
|
return sqlWhere;
|
|
}
|
|
|
|
/**
|
|
* 获取工资单模板基础设置表单
|
|
*
|
|
* @param id
|
|
* @return
|
|
*/
|
|
public SalaryTemplateBaseFormDTO getBaseForm(Long id) {
|
|
|
|
SalaryTemplateBaseSetDTO salaryTemplateBaseSetDTO = new SalaryTemplateBaseSetDTO();
|
|
|
|
if (id != null) {
|
|
SalaryTemplatePO po = getSalaryTemplateService(user).getById(id);
|
|
if (po == null) {
|
|
throw new SalaryRunTimeException("工资单模板不存在");
|
|
}
|
|
BeanUtils.copyProperties(po, salaryTemplateBaseSetDTO);
|
|
salaryTemplateBaseSetDTO.setSendEmail(po.getSendEmailId());
|
|
salaryTemplateBaseSetDTO.setEmailStatus(po.getEmailStatus().equals(SalaryTemplateWhetherEnum.TRUE.getValue()));
|
|
salaryTemplateBaseSetDTO.setMsgStatus(po.getMsgStatus().equals(SalaryTemplateWhetherEnum.TRUE.getValue()));
|
|
salaryTemplateBaseSetDTO.setSalarySob(po.getSalarySobId());
|
|
salaryTemplateBaseSetDTO.setSendEmail(po.getSendEmailId());
|
|
}
|
|
|
|
|
|
// 查询所有启用的薪资账套
|
|
List<SalarySobPO> salarySobs = getSalarySobService(user).listByDisable(NumberUtils.INTEGER_ZERO);
|
|
List<Map<String, Object>> salarySobOptions = salarySobs.stream()
|
|
.map(salarySobPO -> {
|
|
Map<String, Object> item = new HashMap<>();
|
|
item.put("id", salarySobPO.getId());
|
|
item.put("name", salarySobPO.getName());
|
|
return item;
|
|
})
|
|
.collect(Collectors.toList());
|
|
|
|
// 邮箱下拉
|
|
// List<WeaFormOption> sendEmailOptions = Lists.newArrayList();
|
|
// MailPublicAccountListObj mailPublicAccountListObj = mailBaseService.getMailPublicAccountList(employeeId, tenantKey);
|
|
// List<MailPublicAccountBo> mailPublicAccountBos = mailPublicAccountListObj.getMailPublicAccountList();
|
|
// mailPublicAccountBos.forEach(e->sendEmailOptions.add(new WeaFormOption(String.valueOf(e.getId()), e.getMailAddress())));
|
|
|
|
// WeaForm salaryTemplateBase = SalaryFormatUtil.<SalaryTemplateBaseSetDTO>getInstance().buildForm(SalaryTemplateBaseSetDTO.class, SalaryTemplateBaseSetDTO.builder().salarySobOptions(salarySobOptions).sendEmailOptions(sendEmailOptions).build());
|
|
|
|
Map<String, Object> salaryTemplateBase = new HashMap<>();
|
|
salaryTemplateBase.put("data", salaryTemplateBaseSetDTO);
|
|
salaryTemplateBase.put("salarySobOptions", salarySobOptions);
|
|
// 编辑时禁止修改薪资账套 前端实现
|
|
// 分组 前端实现
|
|
|
|
return SalaryTemplateBaseFormDTO.builder()
|
|
.id(id)
|
|
.salaryTemplateBaseSet(salaryTemplateBase)
|
|
.build();
|
|
|
|
}
|
|
|
|
/**
|
|
* 获取工资单模板显示设置表单
|
|
*
|
|
* @param id
|
|
* @return
|
|
*/
|
|
public SalaryTemplateShowFormDTO getShowForm(Long id) {
|
|
SalaryTemplateShowSetDTO salaryTemplateShowSetDTO = new SalaryTemplateShowSetDTO();
|
|
|
|
SalaryTemplatePO po = new SalaryTemplatePO();
|
|
if (id != null) {
|
|
po = getSalaryTemplateService(user).getById(id);
|
|
if (po == null) {
|
|
throw new SalaryRunTimeException("工资单模板不存在");
|
|
}
|
|
BeanUtils.copyProperties(po, salaryTemplateShowSetDTO);
|
|
salaryTemplateShowSetDTO.setTextContentPosition(po.getTextContentPosition().toString());
|
|
salaryTemplateShowSetDTO.setSalaryItemNullStatus(po.getSalaryItemNullStatus().equals(SalaryTemplateWhetherEnum.TRUE.getValue()));
|
|
salaryTemplateShowSetDTO.setSalaryItemZeroStatus(po.getSalaryItemZeroStatus().equals(SalaryTemplateWhetherEnum.TRUE.getValue()));
|
|
}
|
|
|
|
// 主题及其他设置
|
|
// WeaForm salaryTemplateShowSet = SalaryFormatUtil.<SalaryTemplateShowSetDTO>getInstance().buildForm(SalaryTemplateShowSetDTO.class, new SalaryTemplateShowSetDTO());
|
|
//
|
|
// WeaFormItem textContentItem = salaryTemplateShowSet.getItems().get("textContent");
|
|
// Map<String, Object> otherParams = Maps.newHashMap();
|
|
// otherParams.put("showCount", true);
|
|
// otherParams.put("placeholder", SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 85987, "请输入"));
|
|
// textContentItem.setOtherParams(otherParams);
|
|
// salaryTemplateShowSet.getItems().put("textContent", textContentItem);
|
|
//
|
|
// salaryTemplateShowSet.setData(JsonUtil.parseMap(salaryTemplateShowSetDTO, Object.class));
|
|
|
|
Map<String, Object> salaryTemplateShowSet = new HashMap<>();
|
|
salaryTemplateShowSet.put("data", salaryTemplateShowSetDTO);
|
|
|
|
// 薪资项目设置
|
|
List<SalaryTemplateSalaryItemSetListDTO> salaryTemplateShowSetData = new ArrayList<>();
|
|
if (StringUtils.isNotEmpty(po.getSalaryItemSetting())) {
|
|
salaryTemplateShowSetData = JsonUtil.fromJson(po.getSalaryItemSetting(), List.class);
|
|
}
|
|
|
|
return SalaryTemplateShowFormDTO.builder()
|
|
.id(id)
|
|
.vars(Arrays.stream(SalaryTemplateVarEnum.values()).map(SalaryTemplateVarEnum::getValue).collect(Collectors.toList()))
|
|
.salaryTemplateShowSet(salaryTemplateShowSet)
|
|
.salaryTemplateSalaryItemSet(salaryTemplateShowSetData)
|
|
.build();
|
|
}
|
|
|
|
/**
|
|
* 获取薪资项目设置
|
|
*
|
|
* @param salarySobId
|
|
* @return
|
|
*/
|
|
public List<SalaryTemplateSalaryItemSetListDTO> getSalaryItemSet(Long salarySobId) {
|
|
return getSalaryTemplateService(user).getSalaryItemSet(salarySobId);
|
|
}
|
|
|
|
/**
|
|
* 工资单模板默认使用
|
|
*
|
|
* @param defaultUseParam
|
|
* @return
|
|
*/
|
|
public String defaultUse(SalaryTemplateDefaultUseParam defaultUseParam) {
|
|
return getSalaryTemplateService(user).defaultUse(defaultUseParam);
|
|
}
|
|
|
|
/**
|
|
* 新建工资单模板
|
|
*
|
|
* @param saveParam
|
|
* @return
|
|
*/
|
|
public String save(SalaryTemplateSaveParam saveParam) {
|
|
return getSalaryTemplateService(user).save(saveParam);
|
|
}
|
|
|
|
/**
|
|
* 编辑工资单模板
|
|
*
|
|
* @param saveParam
|
|
* @return
|
|
*/
|
|
public String update(SalaryTemplateSaveParam saveParam) {
|
|
return getSalaryTemplateService(user).update(saveParam);
|
|
}
|
|
|
|
/**
|
|
* 复制工资单模板
|
|
*
|
|
* @param copyParam
|
|
* @return
|
|
*/
|
|
public String copy(SalaryTemplateCopyParam copyParam) {
|
|
return getSalaryTemplateService(user).copy(copyParam);
|
|
}
|
|
|
|
/**
|
|
* 删除工资单模板
|
|
*
|
|
* @param ids
|
|
* @return
|
|
*/
|
|
public String delete(Collection<Long> ids) {
|
|
return getSalaryTemplateService(user).delete(ids);
|
|
}
|
|
|
|
/**
|
|
* 获取薪资账套下拉列表
|
|
*
|
|
* @return
|
|
*/
|
|
public List<Map<String, Object>> selectSalarySobList() {
|
|
return getSalaryTemplateService(user).selectSalarySobList();
|
|
}
|
|
|
|
|
|
}
|