You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
weaver-develop/src/com/engine/qz/service/impl/HrmCustomTemplateServiceImp...

150 lines
5.5 KiB
Java

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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;
}
}