|
|
package com.engine.qz.service.impl;
|
|
|
|
|
|
import com.engine.core.impl.Service;
|
|
|
import com.engine.qz.entity.CustomTemplateVo;
|
|
|
import com.engine.qz.entity.CustomTranscerDataVo;
|
|
|
|
|
|
import com.engine.qz.entity.TemplateFieldsPo;
|
|
|
import com.engine.qz.service.HrmCustomTemplateService;
|
|
|
import weaver.general.TimeUtil;
|
|
|
import weaver.general.Util;
|
|
|
import weaver.conn.RecordSet;
|
|
|
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
|
/**
|
|
|
* @Author Apple
|
|
|
* @Date 2025/2/24 11:08
|
|
|
* @Description:
|
|
|
* @Version 1.0
|
|
|
*/
|
|
|
public class HrmCustomTemplateServiceImpl extends Service implements HrmCustomTemplateService {
|
|
|
|
|
|
|
|
|
@Override
|
|
|
public CustomTranscerDataVo getCustomTransferData(Map<String, Object> params) {
|
|
|
|
|
|
//1.所有可查看字段 (todo 权限控制获取)
|
|
|
LinkedList<TemplateFieldsPo> transferDatas = rosterList();
|
|
|
|
|
|
//2.存在模板 且已经选择的字段
|
|
|
LinkedList<CustomTemplateVo> customTemplate = getCustomTemplate();
|
|
|
Optional<CustomTemplateVo> result = customTemplate.stream()
|
|
|
.filter(vo -> vo.getIsused() == 1)
|
|
|
.findFirst();
|
|
|
|
|
|
LinkedList<String> transferKeys = new LinkedList<>();
|
|
|
CustomTemplateVo customTemplateVo = new CustomTemplateVo();
|
|
|
if (result.isPresent()) {
|
|
|
customTemplateVo = result.get();
|
|
|
transferKeys.addAll(Arrays.asList(customTemplateVo.getTemplateFields().split(",")));
|
|
|
|
|
|
} else {
|
|
|
//(todo 无模板或不存在启用模板)
|
|
|
|
|
|
|
|
|
}
|
|
|
return CustomTranscerDataVo.builder().templateId(customTemplateVo.getKey()).transferDatas(transferDatas).transferKeys(transferKeys).build();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public LinkedList<CustomTemplateVo> getCustomTemplate() {
|
|
|
|
|
|
RecordSet rs = new RecordSet();
|
|
|
LinkedList<CustomTemplateVo> customTemplateVos = new LinkedList<>();
|
|
|
rs.executeQuery("select id,templateName,templateFields,isused,belongto from uf_custom_template \n" +
|
|
|
"where belongto = ? order by id asc",user.getUID());
|
|
|
|
|
|
while (rs.next()) {
|
|
|
customTemplateVos.add(CustomTemplateVo.builder()
|
|
|
.key(Util.null2String(rs.getString("id")))
|
|
|
.showname(Util.null2String(rs.getString("templateName")))
|
|
|
.templateFields(Util.null2String(rs.getString("templateFields")))
|
|
|
.isused(Util.getIntValue(rs.getString("isused")))
|
|
|
.belongto(Util.getIntValue(rs.getString("belongto")))
|
|
|
.build());
|
|
|
}
|
|
|
|
|
|
//todo 没有模板或者模版都没启用
|
|
|
|
|
|
return customTemplateVos;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public Map<String, Object> addCustomTemplate(Map<String, Object> params) {
|
|
|
|
|
|
String customTemplateName = Util.null2String(params.get("showname"));
|
|
|
String fields = Util.null2String(params.get("fields"));
|
|
|
|
|
|
String currentDate = TimeUtil.getCurrentDateString();
|
|
|
String currentTime = TimeUtil.getOnlyCurrentTimeString();
|
|
|
int uid = user.getUID();
|
|
|
String uuid = UUID.randomUUID().toString();
|
|
|
Map<String, Object> datas = new HashMap<>(4);
|
|
|
|
|
|
RecordSet rs = new RecordSet();
|
|
|
String templateId = "";
|
|
|
boolean result = rs.executeUpdate("insert into uf_custom_template(templateName,templateFields,isused,belongto,modedatacreatedate,modedatacreatetime," +
|
|
|
" modedatacreater,modeuuid) values(?,?,?,?,?,?,?,?)", customTemplateName, fields, 0, uid, currentDate, currentTime, uid, uuid);
|
|
|
if (result) {
|
|
|
rs.executeQuery("select id from uf_custom_template where modeuuid = ?",uuid);
|
|
|
if (rs.next()) {
|
|
|
templateId = Util.null2String(rs.getString("id"));
|
|
|
}
|
|
|
}
|
|
|
datas.put("templateId",templateId);
|
|
|
datas.put("customTemplates",getCustomTemplate());
|
|
|
|
|
|
|
|
|
return datas;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void updateCustomTemplateFields(Map<String, Object> params) {
|
|
|
|
|
|
String templateId = Util.null2String(params.get("templateId"));
|
|
|
String fields = Util.null2String(params.get("fields"));
|
|
|
|
|
|
RecordSet rs = new RecordSet();
|
|
|
//1.更新当前用户该方案数据
|
|
|
boolean flag = rs.executeUpdate("update uf_custom_template set templateFields = '" + fields + "',isused = 1 where id = ?", templateId);
|
|
|
|
|
|
//2.更新当前用户其它方案为未启用
|
|
|
if (flag) {
|
|
|
rs.executeUpdate("update uf_custom_template set isused = 0 where belongto = ? and id <> ?",user.getUID(),templateId);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public LinkedList<String> getTemplateSelectKeys(String templateId) {
|
|
|
LinkedList<CustomTemplateVo> customTemplateList = getCustomTemplate();
|
|
|
CustomTemplateVo customTemplate = customTemplateList.stream()
|
|
|
.filter(item -> templateId.equals(item.getKey()))
|
|
|
.findFirst()
|
|
|
.get();
|
|
|
|
|
|
return new LinkedList<>(Arrays.asList(customTemplate.getTemplateFields().split(",")));
|
|
|
}
|
|
|
|
|
|
|
|
|
private LinkedList<TemplateFieldsPo> rosterList() {
|
|
|
|
|
|
LinkedList<TemplateFieldsPo> templateFields = new LinkedList<>();
|
|
|
RecordSet rs = new RecordSet();
|
|
|
rs.executeQuery("select id,chinese,dataName from uf_roster_field order by id asc");
|
|
|
while (rs.next()) {
|
|
|
templateFields.add(TemplateFieldsPo.builder()
|
|
|
.id(Util.null2String(rs.getString("id")))
|
|
|
.fieldName(Util.null2String(rs.getString("chinese")))
|
|
|
.fieldDataName(Util.null2String(rs.getString("dataName")))
|
|
|
.build());
|
|
|
}
|
|
|
|
|
|
return templateFields;
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|