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 getAllState(Map params) { bb.writeLog("getAllState param:" + params); Map 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> 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 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> colMapList = new ArrayList<>(); Map 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 handlePushData(Map param) { bb.writeLog("handlePushData start."); Map 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>>() {}.getType(); List> dataMapList = gson.fromJson(dataStr, type); // List> dataMapList = (List>) 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 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 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 insertParams = new ArrayList<>(); SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdfTime = new SimpleDateFormat("HH:mm:ss"); for (Map 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")); } }