Compare commits
6 Commits
46f1c9fde1
...
8b6f80c518
| Author | SHA1 | Date |
|---|---|---|
|
|
8b6f80c518 | |
|
|
036a1c3a26 | |
|
|
ad5400dfaf | |
|
|
c54bcc26c8 | |
|
|
032ea192ee | |
|
|
f3ec80f972 |
|
|
@ -1,15 +1,11 @@
|
||||||
/weaver-develop.iml
|
/weaver-develop.iml
|
||||||
/out/
|
/out/
|
||||||
.idea/
|
.idea/
|
||||||
|
/target/
|
||||||
HELP.md
|
|
||||||
target/
|
|
||||||
|
|
||||||
.idea
|
|
||||||
|
|
||||||
/test
|
/test
|
||||||
/src/rebel.xml
|
/src/rebel.xml
|
||||||
/src/META-INF
|
/src/META-INF
|
||||||
/WEB-INF/config
|
/WEB-INF/config
|
||||||
|
|
||||||
/log
|
/log
|
||||||
|
/src/META-INF/
|
||||||
|
/src/test/
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
<component name="ArtifactManager">
|
|
||||||
<artifact type="jar" name="weaver-develop:jar">
|
|
||||||
<output-path>$PROJECT_DIR$/out/artifacts/weaver_develop_jar</output-path>
|
|
||||||
<root id="archive" name="weaver-develop.jar">
|
|
||||||
<element id="module-output" name="weaver-develop" />
|
|
||||||
</root>
|
|
||||||
</artifact>
|
|
||||||
</component>
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="CompilerConfiguration">
|
|
||||||
<annotationProcessing>
|
|
||||||
<profile default="true" name="Default" enabled="true" />
|
|
||||||
</annotationProcessing>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
<component name="libraryTable">
|
|
||||||
<library name="classbean">
|
|
||||||
<CLASSES>
|
|
||||||
<root url="file://$PROJECT_DIR$/../../../../weaver/ecology/classbean" />
|
|
||||||
</CLASSES>
|
|
||||||
<JAVADOC />
|
|
||||||
<SOURCES />
|
|
||||||
</library>
|
|
||||||
</component>
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
<component name="libraryTable">
|
|
||||||
<library name="lib">
|
|
||||||
<CLASSES>
|
|
||||||
<root url="file://$PROJECT_DIR$/../../../../weaver/ecology/WEB-INF/lib" />
|
|
||||||
</CLASSES>
|
|
||||||
<JAVADOC />
|
|
||||||
<SOURCES>
|
|
||||||
<root url="file://$PROJECT_DIR$/../../../../weaver/ecology/WEB-INF/lib" />
|
|
||||||
</SOURCES>
|
|
||||||
<jarDirectory url="file://$PROJECT_DIR$/../../../../weaver/ecology/WEB-INF/lib" recursive="false" />
|
|
||||||
<jarDirectory url="file://$PROJECT_DIR$/../../../../weaver/ecology/WEB-INF/lib" recursive="false" type="SOURCES" />
|
|
||||||
</library>
|
|
||||||
</component>
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
Manifest-Version: 1.0
|
|
||||||
Main-Class: test.MainTest
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
package com.api.qz.controller;
|
||||||
|
|
||||||
|
import javax.ws.rs.Path;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author Apple
|
||||||
|
* @Date 2025/2/24 11:08
|
||||||
|
* @Description:
|
||||||
|
* @Version 1.0
|
||||||
|
*/
|
||||||
|
@Path("/qz/hrm/resource")
|
||||||
|
public class HrmCustomTemplateAction extends com.engine.qz.controller.HrmCustomTemplateAction {
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,156 @@
|
||||||
|
package com.engine.qz.controller;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.alibaba.fastjson.serializer.SerializerFeature;
|
||||||
|
import com.engine.common.util.ParamUtil;
|
||||||
|
import com.engine.common.util.ServiceUtil;
|
||||||
|
|
||||||
|
import com.engine.qz.service.HrmCustomTemplateService;
|
||||||
|
|
||||||
|
|
||||||
|
import com.engine.qz.service.impl.HrmCustomTemplateServiceImpl;
|
||||||
|
import weaver.hrm.HrmUserVarify;
|
||||||
|
import weaver.hrm.User;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import javax.ws.rs.*;
|
||||||
|
import javax.ws.rs.core.Context;
|
||||||
|
import javax.ws.rs.core.MediaType;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author Apple
|
||||||
|
* @Date 2025/2/24 11:07
|
||||||
|
* @Description: 钱智定制化花名册
|
||||||
|
* @Version 1.0
|
||||||
|
*/
|
||||||
|
public class HrmCustomTemplateAction {
|
||||||
|
|
||||||
|
private HrmCustomTemplateService getService(User user) {
|
||||||
|
return ServiceUtil.getService(HrmCustomTemplateServiceImpl.class,user);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@GET
|
||||||
|
@Path("/getCustomTransferData")
|
||||||
|
@Produces(MediaType.TEXT_PLAIN)
|
||||||
|
public String getCustomTransferData(@Context HttpServletRequest request, @Context HttpServletResponse response){
|
||||||
|
Map<String, Object> data = new HashMap<>(8);
|
||||||
|
try {
|
||||||
|
User user = HrmUserVarify.getUser(request, response);
|
||||||
|
Map<String, Object> map = ParamUtil.request2Map(request);
|
||||||
|
data.put("result",getService(user).getCustomTransferData(map));
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@GET
|
||||||
|
@Path("/getCustomTemplate")
|
||||||
|
@Produces(MediaType.TEXT_PLAIN)
|
||||||
|
public String getCustomTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response){
|
||||||
|
Map<String, Object> data = new HashMap<>(8);
|
||||||
|
try {
|
||||||
|
User user = HrmUserVarify.getUser(request, response);
|
||||||
|
data.put("result",getService(user).getCustomTemplate());
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GET
|
||||||
|
@Path("/getTemplateSelectKeys")
|
||||||
|
@Produces(MediaType.TEXT_PLAIN)
|
||||||
|
public String getTemplateSelectKeys(@Context HttpServletRequest request, @Context HttpServletResponse response,
|
||||||
|
@QueryParam("templateId") String templateId){
|
||||||
|
Map<String, Object> 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 addCustomTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response){
|
||||||
|
Map<String, Object> data = new HashMap<>(8);
|
||||||
|
try {
|
||||||
|
User user = HrmUserVarify.getUser(request, response);
|
||||||
|
Map<String, Object> map = ParamUtil.request2Map(request);
|
||||||
|
data.putAll(getService(user).addCustomTemplate(map));
|
||||||
|
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("/updateCustomTemplateFields")
|
||||||
|
@Produces(MediaType.TEXT_PLAIN)
|
||||||
|
public String updateCustomTemplateFields(@Context HttpServletRequest request, @Context HttpServletResponse response){
|
||||||
|
Map<String, Object> data = new HashMap<>(8);
|
||||||
|
try {
|
||||||
|
User user = HrmUserVarify.getUser(request, response);
|
||||||
|
Map<String, Object> map = ParamUtil.request2Map(request);
|
||||||
|
getService(user).updateCustomTemplateFields(map);
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GET
|
||||||
|
@Path("/customTemplateTable")
|
||||||
|
@Produces(MediaType.TEXT_PLAIN)
|
||||||
|
public String customTemplateTable(@Context HttpServletRequest request, @Context HttpServletResponse response){
|
||||||
|
Map<String, Object> data = new HashMap<>(8);
|
||||||
|
try {
|
||||||
|
User user = HrmUserVarify.getUser(request, response);
|
||||||
|
data.put("result",getService(user).customTemplateTable());
|
||||||
|
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("/saveCustomTemplateTable")
|
||||||
|
@Produces(MediaType.TEXT_PLAIN)
|
||||||
|
public String saveCustomTemplateTable(@Context HttpServletRequest request, @Context HttpServletResponse response){
|
||||||
|
Map<String, Object> data = new HashMap<>(8);
|
||||||
|
try {
|
||||||
|
User user = HrmUserVarify.getUser(request, response);
|
||||||
|
Map<String, Object> map = ParamUtil.request2Map(request);
|
||||||
|
getService(user).saveCustomTemplateTable(map);
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
package com.engine.qz.entity;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author Apple
|
||||||
|
* @Date 2025/3/11 13:50
|
||||||
|
* @Description: TODO
|
||||||
|
* @Version 1.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class CustomTemplateVo {
|
||||||
|
|
||||||
|
private String key;
|
||||||
|
|
||||||
|
private String showname;
|
||||||
|
|
||||||
|
private String templateFields;
|
||||||
|
|
||||||
|
private Integer isused;
|
||||||
|
|
||||||
|
private Integer belongto;
|
||||||
|
|
||||||
|
private String modedatacreatedate;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
package com.engine.qz.entity;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.util.LinkedList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author Apple
|
||||||
|
* @Date 2025/3/11 13:50
|
||||||
|
* @Description: TODO
|
||||||
|
* @Version 1.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class CustomTranscerDataVo {
|
||||||
|
|
||||||
|
private String templateId;
|
||||||
|
|
||||||
|
private LinkedList<TemplateFieldsPo> transferDatas;
|
||||||
|
|
||||||
|
private LinkedList<String> transferKeys;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
package com.engine.qz.entity;
|
||||||
|
|
||||||
|
import com.api.hrm.util.FieldType;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author Apple
|
||||||
|
* @Date 2025/3/13 09:40
|
||||||
|
* @Description:
|
||||||
|
* @Version 1.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class EditTableColumn {
|
||||||
|
|
||||||
|
private String fieldName;
|
||||||
|
|
||||||
|
private String fieldNameDesc;
|
||||||
|
|
||||||
|
private FieldType fieldType;
|
||||||
|
|
||||||
|
private Integer viewAttr;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
package com.engine.qz.entity;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author Apple
|
||||||
|
* @Date 2025/3/11 13:50
|
||||||
|
* @Description: TODO
|
||||||
|
* @Version 1.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class TemplateFieldsPo {
|
||||||
|
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
private String fieldName;
|
||||||
|
|
||||||
|
private String fieldDataName;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,34 @@
|
||||||
|
package com.engine.qz.service;
|
||||||
|
|
||||||
|
import com.engine.qz.entity.CustomTemplateVo;
|
||||||
|
import com.engine.qz.entity.TemplateFieldsPo;
|
||||||
|
|
||||||
|
import java.util.LinkedList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @version 1.0
|
||||||
|
* @Title ecology-9
|
||||||
|
* @Company 泛微软件
|
||||||
|
* @CreateDate 2025/3/10
|
||||||
|
* @Description ${description}
|
||||||
|
* @Author Lee
|
||||||
|
*/
|
||||||
|
public interface CustomRosterService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param paramMap 参数
|
||||||
|
* @return 返回
|
||||||
|
*/
|
||||||
|
Map<String, Object> listPage(Map<String, Object> paramMap);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 可选字段
|
||||||
|
*
|
||||||
|
* @param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
LinkedList<TemplateFieldsPo> customFieldMap();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,80 @@
|
||||||
|
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;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author Apple
|
||||||
|
* @Date 2025/2/24 11:08
|
||||||
|
* @Description:
|
||||||
|
* @Version 1.0
|
||||||
|
*/
|
||||||
|
public interface HrmCustomTemplateService {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 列定制内容查询
|
||||||
|
* @Author: Apple
|
||||||
|
* @param: [params]
|
||||||
|
* @return: CustomTranscerDataVo
|
||||||
|
*/
|
||||||
|
CustomTranscerDataVo getCustomTransferData(Map<String, Object> params);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 列定制模板查询
|
||||||
|
* @Author: Apple
|
||||||
|
* @Date: 2025/3/11 13:49
|
||||||
|
* @param: [params]
|
||||||
|
* @return: java.util.Map<java.lang.String,java.lang.Object>
|
||||||
|
*/
|
||||||
|
LinkedList<CustomTemplateVo> getCustomTemplate();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 列定制保存模板
|
||||||
|
* @Author: Apple
|
||||||
|
* @Date: 2025/3/11 13:49
|
||||||
|
* @param: [params]
|
||||||
|
* @return: java.util.Map<java.lang.String,java.lang.Object>
|
||||||
|
*/
|
||||||
|
Map<String, Object> addCustomTemplate(Map<String, Object> params);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 列定制模板字段更新
|
||||||
|
* @Author: Apple
|
||||||
|
* @Date: 2025/3/11 13:49
|
||||||
|
* @param: [params]
|
||||||
|
* @return: void
|
||||||
|
*/
|
||||||
|
void updateCustomTemplateFields(Map<String, Object> params);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 列定制切换模板
|
||||||
|
* @Author: Apple
|
||||||
|
* @Date: 2025/3/11 13:49
|
||||||
|
* @param: templateId
|
||||||
|
* @return: java.util.Map<java.lang.String,java.lang.Object>
|
||||||
|
*/
|
||||||
|
LinkedList<String> getTemplateSelectKeys(String templateId);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 模板管理列表
|
||||||
|
* @Author: Apple
|
||||||
|
* @Date: 2025/3/11 13:49
|
||||||
|
* @return: java.util.Map<java.lang.String,java.lang.Object>
|
||||||
|
*/
|
||||||
|
Map<String, Object> customTemplateTable();
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 模板管理列表保存
|
||||||
|
* @Author: Apple
|
||||||
|
* @Date: 2025/3/11 13:49
|
||||||
|
*/
|
||||||
|
void saveCustomTemplateTable(Map<String, Object> params);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,421 @@
|
||||||
|
package com.engine.qz.service.impl;
|
||||||
|
|
||||||
|
import b.a.a.w.e;
|
||||||
|
import com.cloudstore.eccom.constant.WeaBoolAttr;
|
||||||
|
import com.cloudstore.eccom.pc.table.WeaTable;
|
||||||
|
import com.cloudstore.eccom.pc.table.WeaTableColumn;
|
||||||
|
import com.cloudstore.eccom.pc.table.WeaTableType;
|
||||||
|
import com.cloudstore.eccom.result.WeaResultMsg;
|
||||||
|
import com.engine.common.util.ServiceUtil;
|
||||||
|
import com.engine.core.impl.Service;
|
||||||
|
import com.engine.qz.entity.CustomTemplateVo;
|
||||||
|
import com.engine.qz.entity.TemplateFieldsPo;
|
||||||
|
import com.engine.qz.service.CustomRosterService;
|
||||||
|
import com.engine.qz.service.HrmCustomTemplateService;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import weaver.conn.RecordSet;
|
||||||
|
import weaver.general.BaseBean;
|
||||||
|
import weaver.general.PageIdConst;
|
||||||
|
import weaver.hrm.User;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.LinkedList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
public class CustomRosterServiceImpl extends Service implements CustomRosterService {
|
||||||
|
private static RecordSet rs = new RecordSet();
|
||||||
|
private BaseBean bb = new BaseBean();
|
||||||
|
|
||||||
|
private HrmCustomTemplateService getService(User user) {
|
||||||
|
return ServiceUtil.getService(HrmCustomTemplateServiceImpl.class, user);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> listPage(Map<String, Object> paramMap) {
|
||||||
|
BaseBean bb = new BaseBean();
|
||||||
|
String sqlWhere = " where ISNUMERIC(workcode)=1 and ISNULL(t1.accounttype, 0) != 1";
|
||||||
|
String fromSql = getSqlFrom(paramMap);
|
||||||
|
|
||||||
|
Map<String, Object> resultMap = new HashMap<>(4);
|
||||||
|
try {
|
||||||
|
//字段对照关系
|
||||||
|
HashMap<String, Map<String, String>> fieldMap = new HashMap<>();
|
||||||
|
String sql = "select id,chinese,dataName,transMethod,width from uf_roster_field";
|
||||||
|
rs.execute(sql);
|
||||||
|
while (rs.next()) {
|
||||||
|
HashMap<String, String> map = new HashMap<>();
|
||||||
|
map.put("chinese", rs.getString("chinese"));
|
||||||
|
map.put("transMethod", rs.getString("transMethod"));
|
||||||
|
map.put("width", rs.getString("width"));
|
||||||
|
fieldMap.put(rs.getString("dataName"), map);
|
||||||
|
}
|
||||||
|
|
||||||
|
WeaTable table = new WeaTable();
|
||||||
|
String pageId = "73ed858b37304757987724e81d096ff2";
|
||||||
|
table.setPageID(pageId);
|
||||||
|
table.setPageUID(String.format("%s_%s", pageId, user.getUID()));
|
||||||
|
String pageSize = PageIdConst.getPageSize(pageId, user.getUID());
|
||||||
|
table.setPagesize(pageSize);
|
||||||
|
|
||||||
|
//获取显示字段
|
||||||
|
String fields = getFields(user, rs);
|
||||||
|
if (StringUtils.isEmpty(fields)) {
|
||||||
|
resultMap.put("msg", "fields is null");
|
||||||
|
return resultMap;
|
||||||
|
}
|
||||||
|
table.setBackfields(fields);
|
||||||
|
table.setSqlform(fromSql);
|
||||||
|
table.setSqlwhere(sqlWhere);
|
||||||
|
table.setSqlprimarykey("id");
|
||||||
|
table.getColumns().add(new WeaTableColumn("id").setDisplay(WeaBoolAttr.FALSE));
|
||||||
|
|
||||||
|
// table.getColumns().add(new WeaTableColumn("10%", "性别", "sex").setTransmethod("com.engine.kqsolution.util.ResourceSnipUtils.selectSexName"));
|
||||||
|
|
||||||
|
for (String tableKey : fields.split(",")) {
|
||||||
|
String lk = StringUtils.isNotEmpty(fieldMap.get(tableKey).get("width")) ? fieldMap.get(tableKey).get("width") : "10%";
|
||||||
|
String transMethod = fieldMap.get(tableKey).get("transMethod");
|
||||||
|
String chinese = fieldMap.get(tableKey).get("chinese");
|
||||||
|
WeaTableColumn column = new WeaTableColumn(lk, chinese, tableKey).setTransmethod(transMethod);
|
||||||
|
table.getColumns().add(column);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
table.setTableType(WeaTableType.NONE);
|
||||||
|
WeaResultMsg result = new WeaResultMsg(false);
|
||||||
|
result.putAll(table.makeDataResult());
|
||||||
|
result.success();
|
||||||
|
resultMap.putAll(result.getResultMap());
|
||||||
|
} catch (Exception e) {
|
||||||
|
bb.writeLog("CustomRosterService-e-" + e.getMessage());
|
||||||
|
return resultMap;
|
||||||
|
}
|
||||||
|
return resultMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LinkedList<TemplateFieldsPo> customFieldMap() {
|
||||||
|
LinkedList<TemplateFieldsPo> linkedList = new LinkedList<TemplateFieldsPo>();
|
||||||
|
try {
|
||||||
|
String compareId = "," + user.getUID() + ",";
|
||||||
|
String compareDept = "," + user.getUserDepartment() + ",";
|
||||||
|
String compareCompany = "," + user.getUserSubCompany1() + ",";
|
||||||
|
RecordSet rs2 = new RecordSet();
|
||||||
|
//查询默认可展示字段
|
||||||
|
String sql = "select id,chinese,dataName,defaultShow,zdjs,zdrlzy,zdfb,zdbm from uf_roster_field order by id asc";
|
||||||
|
CustomRosterServiceImpl.rs.executeQuery(sql);
|
||||||
|
while (CustomRosterServiceImpl.rs.next()) {
|
||||||
|
String defaultShow = CustomRosterServiceImpl.rs.getString("defaultShow");
|
||||||
|
String roleIds = CustomRosterServiceImpl.rs.getString("zdjs");
|
||||||
|
String members = "," + CustomRosterServiceImpl.rs.getString("zdrlzy") + ",";
|
||||||
|
String companyIds = CustomRosterServiceImpl.rs.getString("zdfb");
|
||||||
|
String departments = CustomRosterServiceImpl.rs.getString("zdbm");
|
||||||
|
TemplateFieldsPo fieldsPo = TemplateFieldsPo.builder().id(CustomRosterServiceImpl.rs.getString("id")).
|
||||||
|
fieldName(CustomRosterServiceImpl.rs.getString("chinese")).
|
||||||
|
fieldDataName(CustomRosterServiceImpl.rs.getString("dataName")).
|
||||||
|
build();
|
||||||
|
//默认显示的字段
|
||||||
|
if ("0".equals(defaultShow)) {
|
||||||
|
linkedList.add(fieldsPo);
|
||||||
|
} else {
|
||||||
|
if (members.contains(compareId)) {
|
||||||
|
linkedList.add(fieldsPo);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
//当前人员的部门和分部,是否在权限下
|
||||||
|
String s1 = "," + companyIds + ",";
|
||||||
|
String s2 = "," + departments + ",";
|
||||||
|
if (s1.contains(compareCompany) || s2.contains(compareDept)) {
|
||||||
|
linkedList.add(fieldsPo);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
//查询角色成员中是否当前人员
|
||||||
|
if (StringUtils.isNotEmpty(roleIds) && isRoleContainsCurrentUser(rs2, roleIds)) {
|
||||||
|
linkedList.add(fieldsPo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
bb.writeLog("customFields-e-" + e.getMessage());
|
||||||
|
}
|
||||||
|
return linkedList;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isRoleContainsCurrentUser(RecordSet rs2, String roleIds) {
|
||||||
|
String sql = "select resourceid from HrmRoleMembers where roleid in(" + roleIds + ") and resourceid=?";
|
||||||
|
rs2.executeQuery(sql, user.getUID());
|
||||||
|
if (rs2.next()) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getFields(User user, RecordSet rs) {
|
||||||
|
String fields = "";
|
||||||
|
//先查询是否有模板,有则取模板字段
|
||||||
|
LinkedList<CustomTemplateVo> customTemplate = getService(user).getCustomTemplate();
|
||||||
|
List<CustomTemplateVo> filteredList = customTemplate.stream()
|
||||||
|
.filter(vo -> vo.getIsused() != null && vo.getIsused() == 1)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
if (filteredList.size() > 0) {
|
||||||
|
|
||||||
|
CustomTemplateVo templateVo = filteredList.get(0);
|
||||||
|
//查询模板对应字段
|
||||||
|
String sql = "select dataName from uf_roster_field where id in (" + templateVo.getTemplateFields() + ")";
|
||||||
|
rs.executeQuery(sql);
|
||||||
|
while (rs.next()) {
|
||||||
|
fields += rs.getString("dataName") + ",";
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//取默认显示字段
|
||||||
|
String sql = "select dataName from uf_roster_field where defaultShow=0";
|
||||||
|
rs.executeQuery(sql);
|
||||||
|
while (rs.next()) {
|
||||||
|
fields += rs.getString("dataName") + ",";
|
||||||
|
}
|
||||||
|
return fields.substring(0, fields.lastIndexOf(","));
|
||||||
|
}
|
||||||
|
return fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getSqlFrom(Map<String, Object> paramMap) {
|
||||||
|
String fromSql = " from view_yghmc ";
|
||||||
|
String referDate = (String) paramMap.get("referDate");
|
||||||
|
if (StringUtils.isNotEmpty(referDate)) {
|
||||||
|
fromSql = "WITH htxy AS (\n" +
|
||||||
|
" SELECT \n" +
|
||||||
|
" ygxm, \n" +
|
||||||
|
" htgsmc, \n" +
|
||||||
|
" zt, \n" +
|
||||||
|
" htqsrq, \n" +
|
||||||
|
" htzzrq, \n" +
|
||||||
|
" qdcs,\n" +
|
||||||
|
" ROW_NUMBER() OVER (\n" +
|
||||||
|
" PARTITION BY ygxm\n" +
|
||||||
|
" ORDER BY htzzrq DESC, htqsrq DESC\n" +
|
||||||
|
" ) AS RowNum\n" +
|
||||||
|
" FROM uf_htxy\n" +
|
||||||
|
"),\n" +
|
||||||
|
"zlxx AS (\n" +
|
||||||
|
" SELECT \n" +
|
||||||
|
" xm, \n" +
|
||||||
|
" COUNT(*) AS zlsl, \n" +
|
||||||
|
" MAX(csrq) AS zlcsrq\n" +
|
||||||
|
" FROM uf_shgx\n" +
|
||||||
|
" WHERE gx = 1\n" +
|
||||||
|
" GROUP BY xm\n" +
|
||||||
|
"),\n" +
|
||||||
|
"jjlxrxx AS (\n" +
|
||||||
|
" SELECT \n" +
|
||||||
|
" xm, \n" +
|
||||||
|
" gx, \n" +
|
||||||
|
" lxrxm, \n" +
|
||||||
|
" dh,\n" +
|
||||||
|
" ROW_NUMBER() OVER (\n" +
|
||||||
|
" PARTITION BY xm\n" +
|
||||||
|
" ORDER BY id DESC\n" +
|
||||||
|
" ) AS RowNum\n" +
|
||||||
|
" FROM uf_shgx\n" +
|
||||||
|
" WHERE sfjjlxr = 0\n" +
|
||||||
|
"),\n" +
|
||||||
|
"rzjl AS (\n" +
|
||||||
|
" SELECT \n" +
|
||||||
|
" yg, \n" +
|
||||||
|
" bdhgw, \n" +
|
||||||
|
" bdhbm,\n" +
|
||||||
|
" bdhzt,\n" +
|
||||||
|
" bdhygxz,\n" +
|
||||||
|
" shenxrq,\n" +
|
||||||
|
" ROW_NUMBER() OVER (PARTITION BY yg ORDER BY shenxrq DESC) AS rn\n" +
|
||||||
|
" FROM uf_rzjl where shenxrq>='" + referDate + "'\n" +
|
||||||
|
"),\n" +
|
||||||
|
"khbhqxxrg AS (\n" +
|
||||||
|
" SELECT id,ygxm,\n" +
|
||||||
|
" ROW_NUMBER() OVER (PARTITION BY ygxm ORDER BY id DESC) AS rn\n" +
|
||||||
|
" FROM uf_khbhqxxrg where lx=0 and ksrq<='" + referDate + "' and jsrq>='" + referDate + "'\n" +
|
||||||
|
"),\n" +
|
||||||
|
"rzlc AS (\n" +
|
||||||
|
" SELECT \n" +
|
||||||
|
" *,\n" +
|
||||||
|
" ROW_NUMBER() OVER (\n" +
|
||||||
|
" PARTITION BY rzryid \n" +
|
||||||
|
" ORDER BY rzsj DESC\n" +
|
||||||
|
" ) AS RowNum \n" +
|
||||||
|
" FROM formtable_main_36\n" +
|
||||||
|
")\n" +
|
||||||
|
"\n" +
|
||||||
|
"SELECT \n" +
|
||||||
|
" t1.id,\n" +
|
||||||
|
" t1.workcode,\n" +
|
||||||
|
" t1.lastname,\n" +
|
||||||
|
"\n" +
|
||||||
|
" SUBSTRING(t10.IDpath, 0, \n" +
|
||||||
|
" CASE WHEN CHARINDEX('>', t10.IDpath) != 0 \n" +
|
||||||
|
" THEN CHARINDEX('>', t10.IDpath) \n" +
|
||||||
|
" ELSE 20 END\n" +
|
||||||
|
" ) AS FB1,\n" +
|
||||||
|
" CASE WHEN CHARINDEX('>', t10.IDpath) != 0 \n" +
|
||||||
|
" THEN SUBSTRING(t10.IDpath, CHARINDEX('>', t10.IDpath) + 1, 20) \n" +
|
||||||
|
" ELSE NULL END AS FB2,\n" +
|
||||||
|
" SUBSTRING(t9.IDpath, 0, \n" +
|
||||||
|
" CASE WHEN CHARINDEX('>', t9.IDpath) != 0 \n" +
|
||||||
|
" THEN CHARINDEX('>', t9.IDpath) \n" +
|
||||||
|
" ELSE 20 END\n" +
|
||||||
|
" ) AS BM1,\n" +
|
||||||
|
" CASE \n" +
|
||||||
|
" WHEN CHARINDEX('>', t9.IDpath) != 0 \n" +
|
||||||
|
" AND CHARINDEX('>', t9.IDpath, CHARINDEX('>', t9.IDpath) + 1) != 0 \n" +
|
||||||
|
" THEN SUBSTRING(t9.IDpath, \n" +
|
||||||
|
" CHARINDEX('>', t9.IDpath) + 1, \n" +
|
||||||
|
" CHARINDEX('>', t9.IDpath, CHARINDEX('>', t9.IDpath) + 1) - CHARINDEX('>', t9.IDpath) - 1)\n" +
|
||||||
|
" WHEN CHARINDEX('>', t9.IDpath) != 0 \n" +
|
||||||
|
" THEN SUBSTRING(t9.IDpath, CHARINDEX('>', t9.IDpath) + 1, 20) \n" +
|
||||||
|
" ELSE NULL \n" +
|
||||||
|
" END AS BM2,\n" +
|
||||||
|
" CASE \n" +
|
||||||
|
" WHEN CHARINDEX('>', t9.IDpath) != 0 \n" +
|
||||||
|
" AND CHARINDEX('>', t9.IDpath, CHARINDEX('>', t9.IDpath) + 1) != 0 \n" +
|
||||||
|
" AND CHARINDEX('>', t9.IDpath, CHARINDEX('>', t9.IDpath, CHARINDEX('>', t9.IDpath) + 1) + 1) != 0 \n" +
|
||||||
|
" THEN SUBSTRING(t9.IDpath, \n" +
|
||||||
|
" CHARINDEX('>', t9.IDpath, CHARINDEX('>', t9.IDpath) + 1) + 1, \n" +
|
||||||
|
" CHARINDEX('>', t9.IDpath, CHARINDEX('>', t9.IDpath, CHARINDEX('>', t9.IDpath) + 1) + 1) - CHARINDEX('>', t9.IDpath, CHARINDEX('>', t9.IDpath) + 1) - 1)\n" +
|
||||||
|
" WHEN CHARINDEX('>', t9.IDpath) != 0 \n" +
|
||||||
|
" AND CHARINDEX('>', t9.IDpath, CHARINDEX('>', t9.IDpath) + 1) != 0 \n" +
|
||||||
|
" THEN SUBSTRING(t9.IDpath, \n" +
|
||||||
|
" CHARINDEX('>', t9.IDpath, CHARINDEX('>', t9.IDpath) + 1) + 1, 20) \n" +
|
||||||
|
" ELSE NULL \n" +
|
||||||
|
" END AS BM3,\n" +
|
||||||
|
" \n" +
|
||||||
|
" -- 工作信息\n" +
|
||||||
|
" t8.bdhgw AS gwmc,\n" +
|
||||||
|
" t3.field21 AS gwdj,\n" +
|
||||||
|
" t3.field45 AS ygzj,\n" +
|
||||||
|
" t1.certificatenum,\n" +
|
||||||
|
" t1.mobile,\n" +
|
||||||
|
" t1.birthday,\n" +
|
||||||
|
" t4.field62 AS srrqlx,\n" +
|
||||||
|
" DATEDIFF(DAY, \n" +
|
||||||
|
" CASE WHEN ISDATE(SUBSTRING(t1.certificatenum, 7, 8)) = 1 \n" +
|
||||||
|
" THEN SUBSTRING(t1.certificatenum, 7, 8) \n" +
|
||||||
|
" ELSE t1.birthday END, \n" +
|
||||||
|
" GETDATE()\n" +
|
||||||
|
" ) / 365 AS age,\n" +
|
||||||
|
" t8.bdhzt as \"status\",\n" +
|
||||||
|
" t8.bdhygxz as usekind,\n" +
|
||||||
|
" t1.sex,\n" +
|
||||||
|
" t1.companystartdate,\n" +
|
||||||
|
" t3.field18 AS jrjtrq,\n" +
|
||||||
|
" t3.field59 AS zzrq,\n" +
|
||||||
|
" t4.field14 AS gryx,\n" +
|
||||||
|
" t1.educationlevel,\n" +
|
||||||
|
" t4.field44 AS dyxlbyyx,\n" +
|
||||||
|
" t4.field22 AS zy,\n" +
|
||||||
|
" t4.field58 AS xllb,\n" +
|
||||||
|
" t1.degree,\n" +
|
||||||
|
" \n" +
|
||||||
|
" -- 合同信息\n" +
|
||||||
|
" t5.htqsrq,\n" +
|
||||||
|
" t5.htzzrq,\n" +
|
||||||
|
" t5.qdcs,\n" +
|
||||||
|
" t5.htgsmc,\n" +
|
||||||
|
" \n" +
|
||||||
|
" -- 个人信息\n" +
|
||||||
|
" t1.maritalstatus,\n" +
|
||||||
|
" t6.zlsl,\n" +
|
||||||
|
" t6.zlcsrq,\n" +
|
||||||
|
" t1.height,\n" +
|
||||||
|
" t1.weight,\n" +
|
||||||
|
" t1.policy,\n" +
|
||||||
|
" t1.nativeplace,\n" +
|
||||||
|
" t1.folk,\n" +
|
||||||
|
" t1.regresidentplace,\n" +
|
||||||
|
" t4.field12 AS hjdz,\n" +
|
||||||
|
" t1.residentplace,\n" +
|
||||||
|
" t7.lxrxm,\n" +
|
||||||
|
" t7.gx,\n" +
|
||||||
|
" t7.dh,\n" +
|
||||||
|
" t1.workstartdate,\n" +
|
||||||
|
" t1.workyear,\n" +
|
||||||
|
" t1.companyworkyear,t2.deptpath,\n" +
|
||||||
|
" DATEDIFF(DAY, t8.shenxrq, GETDATE()) / 365 AS gl,\n" +
|
||||||
|
" CASE WHEN t5.ygxm IS NOT NULL \n" +
|
||||||
|
" THEN '已签订' \n" +
|
||||||
|
" ELSE '未签订' \n" +
|
||||||
|
" END AS sfqdht,\n" +
|
||||||
|
" t3.field29 AS sfgb,\n" +
|
||||||
|
" t3.field40 AS gbqx,\n" +
|
||||||
|
" t3.field31 AS qccjg,\n" +
|
||||||
|
" t3.field32 AS dyzysq,\n" +
|
||||||
|
" t3.field33 AS zymb,\n" +
|
||||||
|
" t3.field34 AS grqkbc,\n" +
|
||||||
|
" t3.field35 AS wdd,\n" +
|
||||||
|
" t3.field36 AS jrzxm,\n" +
|
||||||
|
" t3.field37 AS jrzcsd,\n" +
|
||||||
|
" t3.field38 AS ydyyd,\n" +
|
||||||
|
" t3.field39 AS djls,\n" +
|
||||||
|
" t1.textfield2 AS ah,\n" +
|
||||||
|
" t1.textfield1 AS tc,\n" +
|
||||||
|
" t4.field48 AS xg,\n" +
|
||||||
|
" t3.field42 AS zply,\n" +
|
||||||
|
" t3.field43 AS lymx,\n" +
|
||||||
|
" t3.field60 AS sfecrz,\n" +
|
||||||
|
" lizhiyewuleixing,\n" +
|
||||||
|
" t14.yuangongjianyi,\n" +
|
||||||
|
" t14.rszy_1,\n" +
|
||||||
|
" t14.rszy_2,\n" +
|
||||||
|
" t14.lzxxyyzjsj,\n" +
|
||||||
|
" t14.lzxxyygsyy,\n" +
|
||||||
|
" t14.lzxxyyygyy,\n" +
|
||||||
|
" t14.lzhlxfs,\n" +
|
||||||
|
" t14.ywxz,\n" +
|
||||||
|
" t14.rszy_4,\n" +
|
||||||
|
" t14.xczy_1,\n" +
|
||||||
|
" t3.field64,\n" +
|
||||||
|
" CASE WHEN t1.seclevel >= 60 \n" +
|
||||||
|
" THEN '总部' \n" +
|
||||||
|
" ELSE SUBSTRING(t10.NAMEPath, 0, \n" +
|
||||||
|
" CASE WHEN CHARINDEX('>', t10.NAMEPath) != 0 \n" +
|
||||||
|
" THEN CHARINDEX('>', t10.NAMEPath) \n" +
|
||||||
|
" ELSE 20 END\n" +
|
||||||
|
" ) \n" +
|
||||||
|
" END AS SYZZ,\n" +
|
||||||
|
" \n" +
|
||||||
|
" t1.degree,\n" +
|
||||||
|
" t16.ntry,\n" +
|
||||||
|
" t16.sfstwjr,\n" +
|
||||||
|
" t17.ylzgs,\n" +
|
||||||
|
" t18.hm,\n" +
|
||||||
|
" t18.khyx,\n" +
|
||||||
|
" t18.zh,\n" +
|
||||||
|
" t18.gjjzh,\n" +
|
||||||
|
" CASE WHEN t15.id is not null then '是' else '否' end AS SFKHQ\n" +
|
||||||
|
"FROM hrmresource t1\n" +
|
||||||
|
"LEFT JOIN view_dept t2 ON t2.deptid = t1.departmentid\n" +
|
||||||
|
"LEFT JOIN cus_fielddata t3 ON t3.id = t1.id AND t3.scopeid = 3\n" +
|
||||||
|
"LEFT JOIN cus_fielddata t4 ON t4.id = t1.id AND t4.scopeid = 1\n" +
|
||||||
|
"LEFT JOIN htxy t5 ON t5.ygxm = t1.id AND t5.RowNum = 1 \n" +
|
||||||
|
"LEFT JOIN zlxx t6 ON t6.xm = t1.id\n" +
|
||||||
|
"LEFT JOIN jjlxrxx t7 ON t7.xm = t1.id AND t7.RowNum = 1\n" +
|
||||||
|
"LEFT JOIN rzjl t8 ON t8.rn = 1 and t1.id = t8.yg AND t8.bdhgw = t3.field13\n" +
|
||||||
|
"LEFT JOIN View_QZ_Department t9 ON t9.id = t8.bdhbm\n" +
|
||||||
|
"LEFT JOIN View_QZ_Subcompany t10 ON t10.id = (select subcompanyid1 from HrmDepartment where id=t8.bdhbm )\n" +
|
||||||
|
"LEFT JOIN ( \n" +
|
||||||
|
" SELECT t11.* \n" +
|
||||||
|
" FROM formtable_main_35 t11 \n" +
|
||||||
|
" LEFT JOIN workflow_requestbase t12 \n" +
|
||||||
|
" ON t11.requestId = t12.requestid \n" +
|
||||||
|
" WHERE t12.currentnodetype = 3\n" +
|
||||||
|
") t14 ON t1.id = t14.sqr\n" +
|
||||||
|
"LEFT JOIN khbhqxxrg t15 ON t15.rn=1 and t1.id = t15.ygxm\n" +
|
||||||
|
"LEFT JOIN rzlc t16 ON t16.rzryid = t1.id AND t16.RowNum = 1\n" +
|
||||||
|
"LEFT JOIN formtable_main_71 t17 ON t17.requestId = t16.yglydx\n" +
|
||||||
|
"LEFT JOIN uf_yhk t18 ON t1.id = t18.xm \n" +
|
||||||
|
" AND t18.yt LIKE '%0%' \n" +
|
||||||
|
" AND ISNULL(t18.qyzt, 0) = 0\n";
|
||||||
|
return fromSql;
|
||||||
|
}
|
||||||
|
return fromSql;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,247 @@
|
||||||
|
package com.engine.qz.service.impl;
|
||||||
|
|
||||||
|
import com.api.hrm.bean.FieldItem;
|
||||||
|
import com.api.hrm.util.FieldType;
|
||||||
|
import com.engine.common.util.ServiceUtil;
|
||||||
|
import com.engine.core.impl.Service;
|
||||||
|
import com.engine.qz.entity.CustomTemplateVo;
|
||||||
|
import com.engine.qz.entity.CustomTranscerDataVo;
|
||||||
|
|
||||||
|
import com.engine.qz.entity.EditTableColumn;
|
||||||
|
import com.engine.qz.entity.TemplateFieldsPo;
|
||||||
|
import com.engine.qz.service.CustomRosterService;
|
||||||
|
import com.engine.qz.service.HrmCustomTemplateService;
|
||||||
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import weaver.general.TimeUtil;
|
||||||
|
import weaver.general.Util;
|
||||||
|
import weaver.conn.RecordSet;
|
||||||
|
import weaver.hrm.User;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author Apple
|
||||||
|
* @Date 2025/2/24 11:08
|
||||||
|
* @Description:
|
||||||
|
* @Version 1.0
|
||||||
|
*/
|
||||||
|
public class HrmCustomTemplateServiceImpl extends Service implements HrmCustomTemplateService {
|
||||||
|
|
||||||
|
|
||||||
|
private CustomRosterService getService(User user) {
|
||||||
|
return ServiceUtil.getService(CustomRosterServiceImpl.class,user);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CustomTranscerDataVo getCustomTransferData(Map<String, Object> params) {
|
||||||
|
|
||||||
|
//1.所有可查看字段 (todo 权限控制获取)
|
||||||
|
//LinkedList<TemplateFieldsPo> transferDatas = rosterList();
|
||||||
|
LinkedList<TemplateFieldsPo> transferDatas = getService(user).customFieldMap();
|
||||||
|
|
||||||
|
//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,modedatacreatedate 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")))
|
||||||
|
.modedatacreatedate(Util.null2String(rs.getString("modedatacreatedate")))
|
||||||
|
.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(",")));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> customTemplateTable() {
|
||||||
|
|
||||||
|
Map<String, Object> result = new HashMap<>(4);
|
||||||
|
|
||||||
|
List<EditTableColumn> columns = new ArrayList<>();
|
||||||
|
columns.add(EditTableColumn.builder().viewAttr(3).fieldName("templateName").fieldNameDesc("模板名称").fieldType(FieldType.INPUT).build());
|
||||||
|
columns.add(EditTableColumn.builder().viewAttr(1).fieldName("modedatacreatedate").fieldNameDesc("创建日期").fieldType(FieldType.INPUT).build());
|
||||||
|
|
||||||
|
List<Map<String, Object>> lsCol = new ArrayList<>();
|
||||||
|
Map<String, Object> col;
|
||||||
|
|
||||||
|
int width = 100 / columns.size();
|
||||||
|
for (EditTableColumn editTableColumn : columns) {
|
||||||
|
String tmpkey = editTableColumn.getFieldName();
|
||||||
|
col = new HashMap<>(8);
|
||||||
|
col.put("title", editTableColumn.getFieldNameDesc());
|
||||||
|
col.put("key", tmpkey);
|
||||||
|
col.put("dataIndex", tmpkey);
|
||||||
|
col.put("com", getFieldDetailInfo(editTableColumn,width));
|
||||||
|
col.put("width", width + "%");
|
||||||
|
|
||||||
|
lsCol.add(col);
|
||||||
|
}
|
||||||
|
result.put("columns",lsCol);
|
||||||
|
LinkedList<CustomTemplateVo> templateVos = getCustomTemplate();
|
||||||
|
List<Map<String, Object>> collect = templateVos.stream().map(item -> {
|
||||||
|
Map<String, Object> resultMap = new HashMap<>(8);
|
||||||
|
resultMap.put("id", item.getKey());
|
||||||
|
resultMap.put("templateName", item.getShowname());
|
||||||
|
resultMap.put("modedatacreatedate", item.getModedatacreatedate());
|
||||||
|
return resultMap;
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
|
||||||
|
result.put("datas", collect);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void saveCustomTemplateTable(Map<String, Object> params) {
|
||||||
|
LinkedList<CustomTemplateVo> customTemplateList = getCustomTemplate();
|
||||||
|
LinkedList<String> keyList = customTemplateList.stream()
|
||||||
|
.map(CustomTemplateVo::getKey)
|
||||||
|
.collect(Collectors.toCollection(LinkedList::new));
|
||||||
|
int rowNum = Util.getIntValue((String) params.get("rownum"));
|
||||||
|
RecordSet rs = new RecordSet();
|
||||||
|
for (int i = 0; i < rowNum; i++) {
|
||||||
|
String recordIndex = "_" + i;
|
||||||
|
String id = Util.null2String(params.get("id" + recordIndex));
|
||||||
|
String templateName = Util.null2String(params.get("templateName" + recordIndex));
|
||||||
|
rs.executeUpdate("update uf_custom_template set templateName = ? where id = ?",templateName,id);
|
||||||
|
keyList.remove(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (CollectionUtils.isNotEmpty(keyList)) {
|
||||||
|
String value = StringUtils.join(keyList,",");
|
||||||
|
rs.executeUpdate("delete from uf_custom_template where id in ("+value+")");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<FieldItem> getFieldDetailInfo(EditTableColumn column,int width) {
|
||||||
|
List<FieldItem> ls = new ArrayList<>();
|
||||||
|
FieldItem fieldItem = new FieldItem();
|
||||||
|
fieldItem.setType(column.getFieldType());
|
||||||
|
fieldItem.setKey(column.getFieldName());
|
||||||
|
fieldItem.setViewAttr(column.getViewAttr());
|
||||||
|
switch (fieldItem.getType()) {
|
||||||
|
case INPUT:
|
||||||
|
Map<String, Object> otherParams = new HashMap<>(2);
|
||||||
|
otherParams.put("inputType","multilang");
|
||||||
|
fieldItem.setOtherParams(otherParams);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
fieldItem.setWidth(width + "%");
|
||||||
|
ls.add(fieldItem);
|
||||||
|
return ls;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
package test;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Author weaver_cl
|
|
||||||
* @Description:
|
|
||||||
* @Date 2022/10/9
|
|
||||||
* @Version V1.0
|
|
||||||
**/
|
|
||||||
public class MainTest {
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Loading…
Reference in New Issue