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.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import com.kingdee.bos.BOSException;
import com.kingdee.bos.Context;
import com.kingdee.bos.bsf.service.app.IHRMsfService;
import com.kingdee.eas.common.EASBizException;
import com.kingdee.eas.custom.esign.bizEnum.EsignStatusEnum;
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.EsignConfig;
import com.kingdee.eas.custom.esign.util.EsignHttpUtil;
import org.apache.commons.lang3.StringUtils;
import java.net.URISyntaxException;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
/**
* description: Create_by_fileOSFService
* date: 28/11/2025 上午 9:46
* author: lhbj
* version: 1.0
*/
public class Create_by_fileOSFService implements IHRMsfService {
private static final String SUCCESS_CODE = "0";
private static final String PREVIEW_OPERATION = "预览";
private static final int MAX_RETRY_COUNT = 20;
private static final int RETRY_INTERVAL_SECONDS = 3;
@Override
public Object process(Context context, Map map) throws EASBizException, BOSException {
String mack = (String) map.get("mack");
String data = (String) map.get("data");
Map resul = Maps.newHashMap();
try {
JSONObject jsonObject = JSON.parseObject(data);
if ("preview".equals(mack)) {
for (Map.Entry fileEntry : jsonObject.entrySet()) {
JSONObject fieldObject = (JSONObject) fileEntry.getValue();
EsignHttpResponse response = this.previewFile(context, fieldObject, "预览");
if (response.getStatus() >= 200 && response.getStatus() < 300) {
resul.putAll(this.processFileResponse(response, context));
} else {
resul.put("code", response.getStatus());
resul.put("message", "网络异常");
resul.put("data", null);
}
}
} else {
Map signMap = Maps.newHashMap();
String sourceId = jsonObject.getString("sourceId");
String signFlowTitle = jsonObject.getString("signFlowTitle");
String personId = jsonObject.getString("personId");
String operatorId = jsonObject.getString("operatorId");
//文件
JSONObject templateInfo = jsonObject.getJSONObject("templateInfo");
//设置待签署文件信息
try {
List