diff --git a/src/com/engine/qz/controller/HrmCustomTemplateAction.java b/src/com/engine/qz/controller/HrmCustomTemplateAction.java index b93a80f..7302b37 100644 --- a/src/com/engine/qz/controller/HrmCustomTemplateAction.java +++ b/src/com/engine/qz/controller/HrmCustomTemplateAction.java @@ -14,10 +14,7 @@ import weaver.hrm.User; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; +import javax.ws.rs.*; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import java.util.HashMap; @@ -70,11 +67,28 @@ public class HrmCustomTemplateAction { return JSONObject.toJSONString(data, SerializerFeature.DisableCircularReferenceDetect); } + @GET + @Path("/getTemplateSelectKeys") + @Produces(MediaType.TEXT_PLAIN) + public String getTemplateSelectKeys(@Context HttpServletRequest request, @Context HttpServletResponse response, + @QueryParam("templateId") String templateId){ + Map data = new HashMap<>(8); + try { + User user = HrmUserVarify.getUser(request, response); + data.put("result",getService(user).getTemplateSelectKeys(templateId)); + data.put("api_status", true); + } catch (Exception e) { + data.put("api_status", false); + data.put("msg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(data, SerializerFeature.DisableCircularReferenceDetect); + } + @POST @Path("/addCustomTemplate") @Produces(MediaType.TEXT_PLAIN) - public String updateCustomTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response){ + public String addCustomTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response){ Map data = new HashMap<>(8); try { User user = HrmUserVarify.getUser(request, response); @@ -96,7 +110,7 @@ public class HrmCustomTemplateAction { try { User user = HrmUserVarify.getUser(request, response); Map map = ParamUtil.request2Map(request); - data.putAll(getService(user).updateCustomTemplateFields(map)); + getService(user).updateCustomTemplateFields(map); data.put("api_status", true); } catch (Exception e) { data.put("api_status", false); diff --git a/src/com/engine/qz/entity/CustomTemplateVo.java b/src/com/engine/qz/entity/CustomTemplateVo.java index 4f99514..5df4937 100644 --- a/src/com/engine/qz/entity/CustomTemplateVo.java +++ b/src/com/engine/qz/entity/CustomTemplateVo.java @@ -28,6 +28,4 @@ public class CustomTemplateVo { private Integer belongto; - - } diff --git a/src/com/engine/qz/entity/CustomTranscerDataVo.java b/src/com/engine/qz/entity/CustomTranscerDataVo.java index a45c8f9..0dde9fe 100644 --- a/src/com/engine/qz/entity/CustomTranscerDataVo.java +++ b/src/com/engine/qz/entity/CustomTranscerDataVo.java @@ -20,7 +20,7 @@ import java.util.LinkedList; @NoArgsConstructor public class CustomTranscerDataVo { - private Integer templateId; + private String templateId; private LinkedList transferDatas; diff --git a/src/com/engine/qz/entity/TemplateFieldsPo.java b/src/com/engine/qz/entity/TemplateFieldsPo.java index 500be43..86a6312 100644 --- a/src/com/engine/qz/entity/TemplateFieldsPo.java +++ b/src/com/engine/qz/entity/TemplateFieldsPo.java @@ -18,7 +18,7 @@ import lombok.NoArgsConstructor; @NoArgsConstructor public class TemplateFieldsPo { - private Integer id; + private String id; private String fieldName; diff --git a/src/com/engine/qz/service/HrmCustomTemplateService.java b/src/com/engine/qz/service/HrmCustomTemplateService.java index cdc1a27..d22b9d5 100644 --- a/src/com/engine/qz/service/HrmCustomTemplateService.java +++ b/src/com/engine/qz/service/HrmCustomTemplateService.java @@ -3,6 +3,7 @@ package com.engine.qz.service; import com.engine.qz.entity.CustomTemplateVo; import com.engine.qz.entity.CustomTranscerDataVo; + import java.util.LinkedList; import java.util.Map; @@ -33,7 +34,7 @@ public interface HrmCustomTemplateService { LinkedList getCustomTemplate(); /** - * @Description: 列定制增加模板 + * @Description: 列定制保存模板 * @Author: Apple * @Date: 2025/3/11 13:49 * @param: [params] @@ -46,10 +47,17 @@ public interface HrmCustomTemplateService { * @Author: Apple * @Date: 2025/3/11 13:49 * @param: [params] - * @return: java.util.Map + * @return: void */ - Map updateCustomTemplateFields(Map params); - + void updateCustomTemplateFields(Map params); + /** + * @Description: 列定制切换模板 + * @Author: Apple + * @Date: 2025/3/11 13:49 + * @param: templateId + * @return: java.util.Map + */ + LinkedList getTemplateSelectKeys(String templateId); } diff --git a/src/com/engine/qz/service/impl/HrmCustomTemplateServiceImpl.java b/src/com/engine/qz/service/impl/HrmCustomTemplateServiceImpl.java index 6c30976..302d5ed 100644 --- a/src/com/engine/qz/service/impl/HrmCustomTemplateServiceImpl.java +++ b/src/com/engine/qz/service/impl/HrmCustomTemplateServiceImpl.java @@ -4,12 +4,14 @@ 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 com.weaver.general.Util; +import weaver.general.TimeUtil; +import weaver.general.Util; import weaver.conn.RecordSet; -import java.util.LinkedList; -import java.util.Map; +import java.util.*; + /** * @Author Apple @@ -23,14 +25,27 @@ public class HrmCustomTemplateServiceImpl extends Service implements HrmCustomTe @Override public CustomTranscerDataVo getCustomTransferData(Map params) { - //1.所有可查看字段 + //1.所有可查看字段 (todo 权限控制获取) + LinkedList transferDatas = rosterList(); //2.存在模板 且已经选择的字段 + LinkedList customTemplate = getCustomTemplate(); + Optional result = customTemplate.stream() + .filter(vo -> vo.getIsused() == 1) + .findFirst(); + LinkedList transferKeys = new LinkedList<>(); + CustomTemplateVo customTemplateVo = new CustomTemplateVo(); + if (result.isPresent()) { + customTemplateVo = result.get(); + transferKeys.addAll(Arrays.asList(customTemplateVo.getTemplateFields().split(","))); + } else { + //(todo 无模板或不存在启用模板) - return null; + } + return CustomTranscerDataVo.builder().templateId(customTemplateVo.getKey()).transferDatas(transferDatas).transferKeys(transferKeys).build(); } @Override @@ -58,12 +73,76 @@ public class HrmCustomTemplateServiceImpl extends Service implements HrmCustomTe @Override public Map addCustomTemplate(Map params) { - return null; + + 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 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 Map updateCustomTemplateFields(Map params) { - return null; + public void updateCustomTemplateFields(Map 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 getTemplateSelectKeys(String templateId) { + LinkedList customTemplateList = getCustomTemplate(); + CustomTemplateVo customTemplate = customTemplateList.stream() + .filter(item -> templateId.equals(item.getKey())) + .findFirst() + .get(); + + return new LinkedList<>(Arrays.asList(customTemplate.getTemplateFields().split(","))); + } + + + private LinkedList rosterList() { + + LinkedList 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; }