|
|
@ -0,0 +1,135 @@
|
|
|
|
|
|
|
|
package weaver.interfaces.gsjrkg.action;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
|
|
|
import weaver.conn.RecordSet;
|
|
|
|
|
|
|
|
import weaver.general.Util;
|
|
|
|
|
|
|
|
import weaver.interfaces.workflow.action.Action;
|
|
|
|
|
|
|
|
import weaver.soa.workflow.request.MainTableInfo;
|
|
|
|
|
|
|
|
import weaver.soa.workflow.request.Property;
|
|
|
|
|
|
|
|
import weaver.soa.workflow.request.RequestInfo;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* @Description: 同步证书到人员卡片个人信息
|
|
|
|
|
|
|
|
* @author:dxfeng
|
|
|
|
|
|
|
|
* @createTime: 2023/02/20
|
|
|
|
|
|
|
|
* @version: 1.0
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
public class SyncCertificateAction implements Action {
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 建模表表名
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
private String modeTableName;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 参数名称:建模表字段名:人员表字段名
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
private String params;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private String resourceFieldGroup;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public String execute(RequestInfo requestInfo) {
|
|
|
|
|
|
|
|
if (StringUtils.isBlank(params)) {
|
|
|
|
|
|
|
|
requestInfo.getRequestManager().setMessagecontent("自定义接口参数值配置错误");
|
|
|
|
|
|
|
|
return Action.FAILURE_AND_CONTINUE;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (StringUtils.isBlank(resourceFieldGroup)) {
|
|
|
|
|
|
|
|
// -1:基本信息,1:个人信息,3:工作信息
|
|
|
|
|
|
|
|
resourceFieldGroup = "1";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
Map<String, String> fieldMap = new HashMap<>();
|
|
|
|
|
|
|
|
String[] fieldsArray = params.split(";");
|
|
|
|
|
|
|
|
for (String fields : fieldsArray) {
|
|
|
|
|
|
|
|
String[] field = fields.split(":");
|
|
|
|
|
|
|
|
if (field.length == 2) {
|
|
|
|
|
|
|
|
fieldMap.put(field[0], field[1]);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (fieldMap.size() != fieldsArray.length) {
|
|
|
|
|
|
|
|
requestInfo.getRequestManager().setMessagecontent("自定义接口参数值格式错误,请检查");
|
|
|
|
|
|
|
|
return Action.FAILURE_AND_CONTINUE;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
Set<String> modeFields = fieldMap.keySet();
|
|
|
|
|
|
|
|
Map<String, Set<String>> modeMap = new HashMap<>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RecordSet rs = new RecordSet();
|
|
|
|
|
|
|
|
String resourceId = "";
|
|
|
|
|
|
|
|
MainTableInfo mainTableInfo = requestInfo.getMainTableInfo();
|
|
|
|
|
|
|
|
Property[] property = mainTableInfo.getProperty();
|
|
|
|
|
|
|
|
for (Property item : property) {
|
|
|
|
|
|
|
|
String name = item.getName();
|
|
|
|
|
|
|
|
String value = Util.null2String(item.getValue());
|
|
|
|
|
|
|
|
if (StringUtils.isNotBlank(name) && StringUtils.isNotBlank(value)) {
|
|
|
|
|
|
|
|
if ("xm".equals(name)) {
|
|
|
|
|
|
|
|
resourceId = value;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 查询当前人员的所有数据
|
|
|
|
|
|
|
|
StringBuilder sqlBuilder = new StringBuilder("select ").append(StringUtils.join(modeFields, ",")).append(" from ").append(modeTableName).append(" where xm = ").append(resourceId).append(" order by id");
|
|
|
|
|
|
|
|
rs.executeQuery(sqlBuilder.toString());
|
|
|
|
|
|
|
|
while (rs.next()) {
|
|
|
|
|
|
|
|
appendIds(modeFields, rs, modeMap);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 判断有无数据,没有的话插入数据
|
|
|
|
|
|
|
|
sqlBuilder = new StringBuilder("SELECT id FROM CUS_FIELDDATA where scope ='HrmCustomFieldByInfoType' and scopeid = '").append(resourceFieldGroup).append("' and id =? ");
|
|
|
|
|
|
|
|
rs.executeQuery(sqlBuilder.toString(), resourceId);
|
|
|
|
|
|
|
|
if (!rs.next()) {
|
|
|
|
|
|
|
|
// 插入人员信息数据
|
|
|
|
|
|
|
|
rs.executeUpdate("insert into cus_fielddata (scope,scopeid,id) values ('HrmCustomFieldByInfoType','" + resourceFieldGroup + "',?)", resourceId);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 组装更新SQL语句
|
|
|
|
|
|
|
|
sqlBuilder = new StringBuilder("update cus_fielddata set ");
|
|
|
|
|
|
|
|
for (Map.Entry<String, String> entry : fieldMap.entrySet()) {
|
|
|
|
|
|
|
|
Set<String> valueSet = modeMap.get(entry.getKey());
|
|
|
|
|
|
|
|
String values = CollectionUtils.isEmpty(valueSet) ? "" : StringUtils.join(valueSet, ",");
|
|
|
|
|
|
|
|
sqlBuilder.append(" ").append(entry.getValue()).append(" = '").append(values).append("',");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
sqlBuilder.deleteCharAt(sqlBuilder.length() - 1);
|
|
|
|
|
|
|
|
sqlBuilder.append(" where scope ='HrmCustomFieldByInfoType' and scopeid = ").append(resourceFieldGroup).append(" and id = ").append(resourceId);
|
|
|
|
|
|
|
|
rs.executeUpdate(sqlBuilder.toString());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return Action.SUCCESS;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void appendIds(Set<String> modeFields, RecordSet rs, Map<String, Set<String>> modeMap) {
|
|
|
|
|
|
|
|
for (String modeField : modeFields) {
|
|
|
|
|
|
|
|
String ids = rs.getString(modeField);
|
|
|
|
|
|
|
|
if (StringUtils.isBlank(ids)) {
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (CollectionUtils.isEmpty(modeMap.get(modeField))) {
|
|
|
|
|
|
|
|
modeMap.put(modeField, new HashSet<>());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
modeMap.get(modeField).addAll(Arrays.asList(ids.split(",")));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public String getParams() {
|
|
|
|
|
|
|
|
return params;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void setParams(String params) {
|
|
|
|
|
|
|
|
this.params = params;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public String getModeTableName() {
|
|
|
|
|
|
|
|
return modeTableName;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void setModeTableName(String modeTableName) {
|
|
|
|
|
|
|
|
this.modeTableName = modeTableName;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public String getResourceFieldGroup() {
|
|
|
|
|
|
|
|
return resourceFieldGroup;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void setResourceFieldGroup(String resourceFieldGroup) {
|
|
|
|
|
|
|
|
this.resourceFieldGroup = resourceFieldGroup;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|