package com.kingdee.eas.custom.shuiyou.six.osf;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.google.common.collect.Lists;
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.ormapping.ObjectUuidPK;
import com.kingdee.bos.metadata.entity.SelectorItemCollection;
import com.kingdee.bos.metadata.entity.SelectorItemInfo;
import com.kingdee.eas.common.EASBizException;
import com.kingdee.eas.custom.shuiyou.task.*;
import com.kingdee.eas.custom.shuiyou.uitls.ISYUtilsFacade;
import com.kingdee.eas.custom.shuiyou.uitls.SYUtilsFacadeFactory;
import com.kingdee.eas.custom.shuiyou.uitls.URLConfigEnum;
import com.kingdee.eas.util.app.DbUtil;
import com.kingdee.jdbc.rowset.IRowSet;
import com.kingdee.shr.dydeploy.web.executeSql.ExceptionUtils;
import java.util.List;
import java.util.Map;
/**
* 养老金下载反馈
* description: GetDownloadFeedback
* date: 2024/9/12 16:58
* author: lhbj
* version: 1.0
*/
public class GetPensionDownloadFeedback implements IHRMsfService {
@Override
public Object process(Context context, Map map) throws EASBizException, BOSException {
SelectorItemCollection scs = new SelectorItemCollection();
scs.add(new SelectorItemInfo("state"));
ITask iTask = TaskFactory.getLocalInstance(context);
ISYUtilsFacade facade = SYUtilsFacadeFactory.getLocalInstance(context);
//获取请求结果
TaskInfo taskInfo = null;
String paramData = (String) map.get("paramData");
MessageResult messageResult = null;
try {
Map config = facade.getConfig();
String url = config.get("ip") + URLConfigEnum.PENSIONDOWNLOADFEEDBACK_VALUE;
JSONObject paramMap = JSONUtil.parseObj(paramData);
//获取传入任务id
String preTaskId = (String) paramMap.get("parent_taskid");
String initIds = (String) paramMap.get("initIds");
//获取本次的数据id
String taxIDS = initIds;
StringBuilder sel = new StringBuilder();
sel.append(" select tax.fid,stpr.FCARDNUMBER from ");
sel.append(" T_HR_STAXCALINITDETAIL tax ");
sel.append(" left join T_HR_STaxPersonRecord stpr on stpr.FPERSONID=tax.FPERSONID ");
sel.append(" left join T_HR_STaxPersonRecordEntry stpre on stpre.FBILLID =stpr.fid ");
sel.append(" where tax.FTAXUNITID=stpre.FTAXUNITID ");
sel.append(" and tax.fid in (" + taxIDS + ")");
IRowSet rs = DbUtil.executeQuery(context, sel.toString());
Map card_idMap = Maps.newHashMap();
while (rs.next()) {
String id = rs.getString("fid");
String card = rs.getString("FCARDNUMBER");
card_idMap.put(card, id);
}
SelectorItemCollection sc = new SelectorItemCollection();
sc.add(new SelectorItemInfo("id"));
sc.add(new SelectorItemInfo("url"));
sc.add(new SelectorItemInfo("requestId"));
sc.add(new SelectorItemInfo("requestType"));
sc.add(new SelectorItemInfo("requestParam.id"));
sc.add(new SelectorItemInfo("requestParam.paramContent"));
sc.add(new SelectorItemInfo("requestResult.id"));
sc.add(new SelectorItemInfo("requestResult.resultContent"));
sc.add(new SelectorItemInfo("requestState"));
sc.add(new SelectorItemInfo("state"));
sc.add(new SelectorItemInfo("name"));
sc.add(new SelectorItemInfo("osfServiceName"));
sc.add(new SelectorItemInfo("number"));
sc.add(new SelectorItemInfo("taskPre.id"));
sc.add(new SelectorItemInfo("taskPre.state"));
sc.add(new SelectorItemInfo("taskPre.requestState"));
taskInfo = iTask.getTaskInfo(new ObjectUuidPK(preTaskId), sc);
int pageNo = 1;
int pageSize = 4999;
boolean next = false;
StringBuilder updateljgrylj = new StringBuilder();
updateljgrylj.append("update T_HR_STAXCALINITDETAIL set T46 =? where fid=?");
List list = Lists.newArrayList();
String result = facade.get(url, paramData);
JSONObject resultMap = JSONUtil.parseObj(result);
JSONObject head = resultMap.getJSONObject("head");
JSONArray body = resultMap.getJSONArray("body");
String code = head.getStr("code");
if ("00000000".equals(code)) {
for(int j =0; j