package com.kingdee.eas.custom.esign.osf; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.google.common.collect.Maps; import com.kingdee.bos.BOSException; import com.kingdee.bos.Context; import com.kingdee.bos.bsf.service.app.IHRMsfService; import com.kingdee.bos.dao.IObjectPK; import com.kingdee.bos.rabbitmq.guava.Lists; import com.kingdee.bos.util.BOSUuid; import com.kingdee.eas.basedata.person.PersonInfo; import com.kingdee.eas.common.EASBizException; import com.kingdee.eas.custom.esign.ESignGlobalStatusOverviewCollection; import com.kingdee.eas.custom.esign.ESignGlobalStatusOverviewFactory; import com.kingdee.eas.custom.esign.ESignGlobalStatusOverviewInfo; import com.kingdee.eas.custom.esign.IESignGlobalStatusOverview; import com.kingdee.eas.custom.esign.bizEnum.EsignConfigEnum; import com.kingdee.eas.custom.esign.bizEnum.EsignStatusEnum; import com.kingdee.eas.custom.esign.bizEnum.SendStatusEnum; import com.kingdee.eas.custom.esign.tsign.hz.comm.EsignHttpResponse; import com.kingdee.eas.custom.esign.tsign.hz.exception.EsignException; import com.kingdee.eas.custom.esign.util.EsignHttpUtil; import com.kingdee.eas.custom.esign.util.SyncSignedFilesUtil; import com.kingdee.eas.util.app.DbUtil; import com.kingdee.jdbc.rowset.IRowSet; import org.apache.commons.lang3.StringUtils; import java.sql.SQLException; import java.time.*; import java.time.format.DateTimeFormatter; import java.util.List; import java.util.Map; /** * * description: EsignFlowListOSFService
* date: 4/1/2026 下午 4:23
* author: lhbj
* version: 1.0
*/ public class EsignFlowListOSFService implements IHRMsfService { public static LocalDateTime formatter(String time) { LocalDateTime dateTime = null; if (time.length() == 10) { LocalDate localD = LocalDate.parse(time); LocalTime localT = LocalTime.of(0, 0, 0); dateTime = LocalDateTime.of(localD, localT); } else if (time.length() == 16) { dateTime = LocalDateTime.parse(time, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")); } else if (time.length() == 19) { dateTime = LocalDateTime.parse(time, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); } return dateTime; } public static LocalDateTime startDateTimeNow() { LocalDate localD1 = LocalDate.now(); LocalTime time1 = LocalTime.now(); LocalTime localT1 = LocalTime.of(time1.getHour(), 0, 0); LocalDateTime dateTime = LocalDateTime.of(localD1, localT1); dateTime=dateTime.minusHours(1); return dateTime; } public static LocalDateTime endDateTimeNow() { LocalDate localD2 = LocalDate.now(); LocalTime localT2 = LocalTime.of(23, 59, 59); LocalDateTime dateTime = LocalDateTime.of(localD2, localT2); return dateTime; } @Override public Object process(Context context, Map map) throws EASBizException, BOSException { String param = (String) map.get("data"); LocalDateTime startDateTime = null; LocalDateTime endDateTime = null; StringBuilder msg = new StringBuilder(); if (StringUtils.isNotBlank(param)) { JSONObject object = JSON.parseObject(param); String startTime = object.getString("startTime"); String endTime = object.getString("endTime"); String status = object.getString("status"); String advanceHours = object.getString("advanceHours"); if (StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime) ) { startDateTime = this.formatter(startTime); endDateTime = this.formatter(endTime); } if (null == startDateTime || null == endDateTime) { startDateTime = startDateTimeNow(); endDateTime = endDateTimeNow(); } startDateTime = startDateTime.minusHours(Integer.parseInt(advanceHours)); } if (null == startDateTime || null == endDateTime) { startDateTime = startDateTimeNow(); endDateTime = endDateTimeNow(); } int pageNum=0; int pageSize=100; long totalNum=1; do { pageNum++; Map jsonMap = Maps.newHashMap(); long signFlowStartTimeFrom = startDateTime.atZone(ZoneId.systemDefault()) .toInstant() .toEpochMilli(); long signFlowStartTimeTo = endDateTime.atZone(ZoneId.systemDefault()) .toInstant() .toEpochMilli(); jsonMap.put("signFlowStartTimeFrom", signFlowStartTimeFrom); jsonMap.put("signFlowStartTimeTo", signFlowStartTimeTo); jsonMap.put("pageNum", pageNum); jsonMap.put("pageSize", pageSize); List list = Lists.newArrayList(); list.add("2"); jsonMap.put("signFlowStatus", list); try { IESignGlobalStatusOverview overview = ESignGlobalStatusOverviewFactory.getLocalInstance(context); EsignHttpResponse response = EsignHttpUtil.sign_flow_list(context, jsonMap, "查询签署流程列表"); JSONObject jsonObject = JSON.parseObject(response.getBody()); int code =jsonObject.getInteger("code"); if (0==code){ JSONObject data = jsonObject.getJSONObject("data"); if (null!=data){ long total = data.getLong("total"); if(total%pageSize==0){ totalNum=total/pageSize; }else { totalNum=total/pageSize+1; } JSONArray signFlowInfos = data.getJSONArray("signFlowInfos"); for (int i=0;i jsonMap = Maps.newHashMap(); long signFlowStartTimeFrom = startDateTime.atZone(ZoneId.systemDefault()) .toInstant() .toEpochMilli(); long signFlowStartTimeTo = endDateTime.atZone(ZoneId.systemDefault()) .toInstant() .toEpochMilli(); jsonMap.put("signFlowStartTimeFrom", signFlowStartTimeFrom); jsonMap.put("signFlowStartTimeTo", signFlowStartTimeTo); jsonMap.put("pageNum", pageNum); jsonMap.put("pageSize", pageSize); List list = Lists.newArrayList(); //list.add("1"); list.add("2"); //list.add("3"); jsonMap.put("signFlowStatus", list); try { EsignHttpResponse response = EsignHttpUtil.sign_flow_list(null, jsonMap, "查询签署流程列表"); System.out.println(response.getBody()); JSONObject jsonObject = JSON.parseObject(response.getBody()); int code =jsonObject.getInteger("code"); if (0==code){ JSONObject data = jsonObject.getJSONObject("data"); if (null!=data){ JSONArray signFlowInfos = data.getJSONArray("signFlowInfos"); System.out.println(signFlowInfos.size()); long total = data.getLong("total"); if(total%pageSize==0){ totalNum=total/pageSize; }else { totalNum=total/pageSize+1; } } } } catch (EsignException e) { e.printStackTrace(); } } while (pageNum