weaver-zhuyou/src/com/engine/zhuyou/service/impl/CommonFormModeServiceImpl.java

379 lines
16 KiB
Java

package com.engine.zhuyou.service.impl;
import com.engine.core.impl.Service;
import com.engine.jz.util.CommonUtil;
import com.engine.zhuyou.service.CommonFormModeService;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.weaver.general.BaseBean;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.CollectionUtils;
import weaver.common.DateUtil;
import weaver.conn.RecordSet;
import weaver.formmode.setup.ModeRightInfo;
import weaver.general.Util;
import java.lang.reflect.Type;
import java.text.SimpleDateFormat;
import java.time.YearMonth;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class CommonFormModeServiceImpl extends Service implements CommonFormModeService {
public BaseBean bb = new BaseBean();
@Override
public Map<String, Object> getAllState(Map<String, Object> params) {
bb.writeLog("getAllState param:" + params);
Map<String, Object> resultMap = new HashMap<>();
try {
String rq = Util.null2String(params.get("rq"));
if (StringUtils.isEmpty(rq)) {
rq = DateUtil.getCurrentDate();
}
String bhParam = Util.null2String(params.get("bh"));
String ygxmParam = Util.null2String(params.get("ygxm"));
String gcParam = Util.null2String(params.get("gc"));
String bmParam = Util.null2String(params.get("bm"));
String zwParam = Util.null2String(params.get("zw"));
String qfParam = Util.null2String(params.get("qf"));
String zzParam = Util.null2String(params.get("zz"));
String zgdjParam = Util.null2String(params.get("zgdj"));
String jhParam = Util.null2String(params.get("jh"));
String bbParam = Util.null2String(params.get("bb"));
// 人事变更记录表billid
String billid = bb.getPropValue("zhuyou_prop_zm", "rsbgjl_table_billid");
if (StringUtils.isEmpty(billid)) {
billid = "-198";
}
RecordSet rs = new RecordSet();
//表格数据
List<Map<String, Object>> infos = new ArrayList<>();
String sql = "SELECT t1.*, t3.lastname, t4.jobactivitymark, t5.zgdj as zgdjName, t6.jhmc, t7.bbmc " +
"FROM uf_rsbgjl t1\n" +
"INNER JOIN (\n" +
" SELECT \n" +
" xm,\n" +
" MAX(sxrq) AS sxrq " +
" FROM uf_rsbgjl\n" +
" WHERE sxrq <= '" + rq + "' " +
" GROUP BY xm\n" +
") t2 ON t1.xm = t2.xm \n" +
" AND t1.sxrq = t2.sxrq " +
"LEFT JOIN hrmresource t3 ON t1.xm = t3.id " +
"LEFT JOIN hrmjobactivities t4 ON t1.zw = t4.id " +
"LEFT JOIN uf_zgdjda t5 ON t1.zgdj = t5.zgdjbh " +
"LEFT JOIN uf_jhda t6 ON t1.jh = t6.jhbm " +
"LEFT JOIN uf_bbgl t7 on t1.bb = t7.bbbm ";
rs.execute(sql);
while (rs.next()) {
String xm = rs.getString("xm");
String lastname = rs.getString("lastname");
String gh = rs.getString("gh");
String bmmc = rs.getString("bmmc");
String gcmc = rs.getString("gcmc");
String jobactivitymark = rs.getString("jobactivitymark");
String qf = rs.getString("qf");
String zz = rs.getString("zz");
String zgdjName = rs.getString("zgdjName");
String jhmc = rs.getString("jhmc");
String bbmc = rs.getString("bbmc");
String sxrq = rs.getString("sxrq");
String qfName = null;
if (StringUtils.isNotEmpty(qf)) {
qfName = getSelectNameMain("qf", billid, qf);
}
String zzName = null;
if (StringUtils.isNotEmpty(zz)) {
zzName = getSelectNameMain("zz", billid, zz);
}
if (StringUtils.isNotEmpty(bhParam)) {
if (StringUtils.isEmpty(gh) || !gh.contains(bhParam)) {
continue;
}
}
if (StringUtils.isNotEmpty(ygxmParam)) {
if (StringUtils.isEmpty(lastname) || !lastname.contains(ygxmParam)) {
continue;
}
}
if (StringUtils.isNotEmpty(gcParam)) {
if (StringUtils.isEmpty(gcmc) || !gcmc.contains(gcParam)) {
continue;
}
}
if (StringUtils.isNotEmpty(bmParam)) {
if (StringUtils.isEmpty(bmmc) || !bmmc.contains(bmParam)) {
continue;
}
}
if (StringUtils.isNotEmpty(zwParam)) {
if (StringUtils.isEmpty(jobactivitymark) || !jobactivitymark.contains(zwParam)) {
continue;
}
}
if (StringUtils.isNotEmpty(qfParam)) {
if (StringUtils.isEmpty(qfName) || !qfName.contains(qfParam)) {
continue;
}
}
if (StringUtils.isNotEmpty(zzParam)) {
if (StringUtils.isEmpty(zzName) || !zzName.contains(zzParam)) {
continue;
}
}
if (StringUtils.isNotEmpty(zgdjParam)) {
if (StringUtils.isEmpty(zgdjName) || !zgdjName.contains(zgdjParam)) {
continue;
}
}
if (StringUtils.isNotEmpty(jhParam)) {
if (StringUtils.isEmpty(jhmc) || !jhmc.contains(jhParam)) {
continue;
}
}
if (StringUtils.isNotEmpty(bbParam)) {
if (StringUtils.isEmpty(bbmc) || !bbmc.contains(bbParam)) {
continue;
}
}
Map<String, Object> info = new HashMap<>();
info.put("ryid", xm);
info.put("xm", lastname);
info.put("gh", gh);
info.put("gc", gcmc);
info.put("bm", bmmc);
info.put("zw", jobactivitymark);
info.put("qf", qfName);
info.put("zz", zzName);
info.put("zgdj", zgdjName);
info.put("jh", jhmc);
info.put("bb", bbmc);
info.put("sxrq", sxrq);
infos.add(info);
}
List<Map<String, String>> colMapList = new ArrayList<>();
Map<String, String> colMap = new HashMap<>();
colMap.put("colSpan", "1");
colMap.put("dataIndex", "gh");
colMap.put("width", "100");
colMap.put("title", "工号");
colMapList.add(colMap);
colMap = new HashMap<>();
colMap.put("colSpan", "1");
colMap.put("dataIndex", "xm");
colMap.put("width", "100");
colMap.put("title", "姓名");
colMapList.add(colMap);
colMap = new HashMap<>();
colMap.put("colSpan", "1");
colMap.put("dataIndex", "gc");
colMap.put("width", "100");
colMap.put("title", "工程");
colMapList.add(colMap);
colMap = new HashMap<>();
colMap.put("colSpan", "1");
colMap.put("dataIndex", "bm");
colMap.put("width", "100");
colMap.put("title", "部门");
colMapList.add(colMap);
colMap = new HashMap<>();
colMap.put("colSpan", "1");
colMap.put("dataIndex", "zw");
colMap.put("width", "100");
colMap.put("title", "职务");
colMapList.add(colMap);
colMap = new HashMap<>();
colMap.put("colSpan", "1");
colMap.put("dataIndex", "qf");
colMap.put("width", "100");
colMap.put("title", "区分");
colMapList.add(colMap);
colMap = new HashMap<>();
colMap.put("colSpan", "1");
colMap.put("dataIndex", "zz");
colMap.put("width", "100");
colMap.put("title", "职种");
colMapList.add(colMap);
colMap = new HashMap<>();
colMap.put("colSpan", "1");
colMap.put("dataIndex", "zgdj");
colMap.put("width", "100");
colMap.put("title", "资格等级");
colMapList.add(colMap);
colMap = new HashMap<>();
colMap.put("colSpan", "1");
colMap.put("dataIndex", "jh");
colMap.put("width", "100");
colMap.put("title", "级号");
colMapList.add(colMap);
colMap = new HashMap<>();
colMap.put("colSpan", "1");
colMap.put("dataIndex", "bb");
colMap.put("width", "100");
colMap.put("title", "班别");
colMapList.add(colMap);
resultMap.put("count", infos.size());
resultMap.put("dataList", infos);
resultMap.put("colList", colMapList);
resultMap.put("code", "200");
} catch (Exception e) {
resultMap.put("code", "500");
bb.writeLog("getAllState error:" + e);
}
bb.writeLog("getAllState end.");
return resultMap;
}
@Override
public Map<String, Object> handlePushData(Map<String, Object> param) {
bb.writeLog("handlePushData start.");
Map<String, Object> resultMap = new HashMap<>();
try {
String ip = Util.null2String(param.get("ip"));
if (StringUtils.isEmpty(ip)) {
resultMap.put("errCode", "01");
resultMap.put("errMes", "handlePushData ip is null.");
bb.writeLog("handlePushData ip is null.");
return resultMap;
}
Object dataObj = param.get("data");
if (dataObj == null || dataObj == "") {
resultMap.put("errCode", "01");
resultMap.put("errMes", "handlePushData data is null.");
bb.writeLog("handlePushData data is null.");
return resultMap;
}
String dataStr = dataObj.toString();
Gson gson = new Gson();
Type type = new TypeToken<List<Map<String, String>>>() {}.getType();
List<Map<String, String>> dataMapList = gson.fromJson(dataStr, type);
// List<Map<String, String>> dataMapList = (List<Map<String, String>>) dataObj;
if (CollectionUtils.isEmpty(dataMapList)) {
resultMap.put("errCode", "01");
resultMap.put("errMes", "handlePushData dataMapList is null.");
bb.writeLog("handlePushData dataMapList is null.");
return resultMap;
}
RecordSet rs = new RecordSet();
// 获取工号与id对应
Map<String, String> ghAndIdMap = new HashMap<>();
rs.execute("SELECT id, workcode FROM hrmresource WHERE workcode is not null");
while (rs.next()) {
String id = rs.getString("id");
String workcode = rs.getString("workcode");
if (StringUtils.isEmpty(id) || StringUtils.isEmpty(workcode)) {
continue;
}
ghAndIdMap.put(workcode, id);
}
if (CollectionUtils.isEmpty(ghAndIdMap)) {
bb.writeLog("handlePushData ghAndIdMap is null.");
resultMap.put("errCode", "01");
resultMap.put("errMes", "handlePushData ghAndIdMap is null.");
return resultMap;
}
// 获取老数据去重
Set<String> oldDataSet = new HashSet<>();
YearMonth ny = YearMonth.now();
String ksrq = ny.minusMonths(2) + "-01";
rs.execute("SELECT transactionid, person_code FROM uf_ysdkjl WHERE signtime >= '" + ksrq + "'");
while (rs.next()) {
String transactionid = rs.getString("transactionid");
String person_code = rs.getString("person_code");
if (StringUtils.isEmpty(transactionid) || StringUtils.isEmpty(person_code)) {
continue;
}
oldDataSet.add(transactionid + "_" + person_code);
}
List<List> insertParams = new ArrayList<>();
SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdfTime = new SimpleDateFormat("HH:mm:ss");
for (Map<String, String> map : dataMapList) {
String id = map.get("id");
if (StringUtils.isEmpty(id)) {
id = "";
}
String pers_person_name = map.get("pers_person_name");
String pers_person_pin = map.get("pers_person_pin");
if (StringUtils.isEmpty(pers_person_pin)) {
pers_person_pin = "";
}
String att_datetime = map.get("att_datetime");
String machine_no = map.get("machine_no");
String mark = map.get("mark");
String update_time = map.get("update_time");
if ((!CollectionUtils.isEmpty(oldDataSet)) && oldDataSet.contains(id + "_" + pers_person_pin)) {
continue;
}
List insertParam = new ArrayList<>();
insertParam.add(att_datetime);
insertParam.add(pers_person_name);
insertParam.add(pers_person_pin);
insertParam.add(machine_no);
insertParam.add(mark);
insertParam.add(update_time);
insertParam.add(id);
insertParam.add(machine_no);
insertParam.add(ip);
insertParam.add("95");
insertParam.add("141");
insertParam.add("1");
insertParam.add("0");
insertParam.add(sdfDate.format(new Date()));
insertParam.add(sdfTime.format(new Date()));
insertParams.add(insertParam);
}
if (org.springframework.util.CollectionUtils.isEmpty(insertParams)) {
bb.writeLog("handlePushData insertParams is null.");
} else {
String insertSql = "INSERT INTO uf_ysdkjl (signtime,person_name,person_code,machine_no,mark,storets,transactionid," +
"deviceid,ip,formmodeid,MODEUUID, modedatacreater,modedatacreatertype, modedatacreatedate," +
" modedatacreatetime) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
rs.executeBatchSql(insertSql, insertParams);
//权限重构
ModeRightInfo modeRightInfo = new ModeRightInfo();
modeRightInfo.setNewRight(true);
modeRightInfo.editModeDataShare(1, 95, 141);
}
} catch (Exception e) {
bb.writeLog("handlePushData error:" + e);
resultMap.put("errCode", "01");
resultMap.put("errMes", "handlePushData error is:" + e);
return resultMap;
}
resultMap.put("errCode", "00");
resultMap.put("errMes", "handlePushData end.");
bb.writeLog("handlePushData end.");
return resultMap;
}
private String getSelectNameMain(String fieldName, String billid, String selectValue) {
RecordSet rs = new RecordSet();
rs.executeQuery("select id from workflow_billfield where fieldname = ? and billid = ? and viewtype=0", fieldName, billid);
rs.next();
int fieldId = com.weaver.general.Util.getIntValue(rs.getString("id"),-1);
rs.executeQuery("select selectname from workflow_SelectItem where fieldid = ? and selectvalue = ?", fieldId, selectValue);
rs.next();
return com.weaver.general.Util.null2String(rs.getString("selectname"));
}
}