From 0c2994734fa7d7020bfa391ca3e9e7a37814ea4a Mon Sep 17 00:00:00 2001 From: zhangming <965499528@qq.com> Date: Fri, 1 Aug 2025 14:59:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=93=E5=8D=A1=E6=95=B0=E6=8D=AE=E6=8E=A8?= =?UTF-8?q?=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/CommonFormModeController.java | 34 +++++ .../zhuyou/service/CommonFormModeService.java | 8 ++ .../impl/CommonFormModeServiceImpl.java | 133 ++++++++++++++++++ 3 files changed, 175 insertions(+) diff --git a/src/com/engine/zhuyou/controller/CommonFormModeController.java b/src/com/engine/zhuyou/controller/CommonFormModeController.java index a1e07ba..02b3dd4 100644 --- a/src/com/engine/zhuyou/controller/CommonFormModeController.java +++ b/src/com/engine/zhuyou/controller/CommonFormModeController.java @@ -6,8 +6,10 @@ import com.engine.zhuyou.service.CommonFormModeService; import com.engine.zhuyou.service.impl.CommonFormModeServiceImpl; import com.engine.zhuyou.util.BzExcelExpUtil; import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; import org.apache.commons.lang3.StringUtils; import org.apache.poi.xssf.streaming.SXSSFWorkbook; +import org.springframework.util.CollectionUtils; import weaver.conn.RecordSet; import weaver.general.BaseBean; import weaver.general.Util; @@ -17,6 +19,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.core.Context; @@ -25,6 +28,7 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.StreamingOutput; import java.io.IOException; import java.io.OutputStream; +import java.lang.reflect.Type; import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; @@ -38,6 +42,36 @@ public class CommonFormModeController { return ServiceUtil.getService(CommonFormModeServiceImpl.class, user); } + /** + * 处理打卡推送数据 + */ + @POST + @Path("/handlePushData") + @Produces(MediaType.APPLICATION_JSON) + public String handlePushData(@Context HttpServletRequest request, @Context HttpServletResponse response) { + BaseBean baseBean = new BaseBean(); + baseBean.writeLog("handlePushData go."); + Map resultMap = new HashMap<>(); + try { + Map params = ParamUtil.request2Map(request); + baseBean.writeLog("handlePushData params is:" + params); + if (CollectionUtils.isEmpty(params)) { + resultMap.put("errCode", "00"); + resultMap.put("errMes", "params is null."); + return new Gson().toJson(resultMap); + } + User user = new User(); + user.setUid(1); + + resultMap = commonFormModeService(user).handlePushData(params); + } catch (Exception e) { + baseBean.writeLog("handlePushData error:" + e); + resultMap.put("errCode", "01"); + resultMap.put("errMes", "handlePushData error:" + e); + } + return new Gson().toJson(resultMap); + } + /** * 获取历史花名册数据 * diff --git a/src/com/engine/zhuyou/service/CommonFormModeService.java b/src/com/engine/zhuyou/service/CommonFormModeService.java index 7b9c744..86ffda2 100644 --- a/src/com/engine/zhuyou/service/CommonFormModeService.java +++ b/src/com/engine/zhuyou/service/CommonFormModeService.java @@ -11,4 +11,12 @@ public interface CommonFormModeService { * @return */ Map getAllState(Map param); + + /** + * 处理打卡推送数据 + * + * @param param + * @return + */ + Map handlePushData(Map param); } diff --git a/src/com/engine/zhuyou/service/impl/CommonFormModeServiceImpl.java b/src/com/engine/zhuyou/service/impl/CommonFormModeServiceImpl.java index 1ff92a4..149f6d4 100644 --- a/src/com/engine/zhuyou/service/impl/CommonFormModeServiceImpl.java +++ b/src/com/engine/zhuyou/service/impl/CommonFormModeServiceImpl.java @@ -1,16 +1,25 @@ 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.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.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 { @@ -226,6 +235,130 @@ public class CommonFormModeServiceImpl extends Service implements CommonFormMode 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; + } + 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);