package com.kingdee.eas.custom.shuiyou.six.osf;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
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.EntityViewInfo;
import com.kingdee.bos.metadata.entity.SelectorItemCollection;
import com.kingdee.bos.metadata.entity.SelectorItemInfo;
import com.kingdee.bos.rabbitmq.guava.Lists;
import com.kingdee.eas.common.EASBizException;
import com.kingdee.eas.custom.shuiyou.task.ITask;
import com.kingdee.eas.custom.shuiyou.task.TaskCollection;
import com.kingdee.eas.custom.shuiyou.task.TaskFactory;
import com.kingdee.eas.custom.shuiyou.task.TaskInfo;
import com.kingdee.eas.util.app.DbUtil;
import com.kingdee.jdbc.rowset.IRowSet;
import java.util.List;
import java.util.Map;
/**
* description: GetQuerySpecialAmountFeedback
* date: 2024/9/9 16:03
* author: lhbj
* version: 1.0
*/
public class GetQuerySpecialAmountFeedback implements IHRMsfService {
@Override
public Object process(Context context, Map map) throws EASBizException, BOSException {
//获取请求结果
String result = (String) map.get("result");
//获取请求参数
String paramData = (String) map.get("paramData");
JSONObject paramMap = JSONUtil.parseObj(paramData);
//获取传入任务id
String preTaskId = paramMap.getStr("preTaskId");
String skssq = paramMap.getStr("skssq");
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"));
ITask iTask = TaskFactory.getLocalInstance(context);
TaskInfo taskInfo = iTask.getTaskInfo(new ObjectUuidPK(preTaskId),sc);
JSONObject paramContent = JSONUtil.parseObj(taskInfo.getRequestParam().getParamContent());
String taxPersonRecordEntryIDS = paramContent.getStr("taxPersonRecordEntryIDS");
JSONObject resultMap = JSONUtil.parseObj(result);
JSONObject head = resultMap.getJSONObject("head");
JSONObject body = resultMap.getJSONObject("body");
String code = head.getStr("code");
if("00000000".equals(code)){
Map> sql_param = Maps.newHashMap();
JSONArray ryxxlb = body.getJSONArray("ryxxlb");
for(int i=0;i paramList = Lists.newArrayList();
for(Map.Entry entry : ryxx.entrySet()){
String key =entry.getKey();
Object value =entry.getValue();
String field = this.getFieldByNumber(context,key);
if(StrUtil.isNotBlank(field)) {
paramList.add(StrUtil.toString(value));
sql.append(field+"=?,");
}
}
String zzhm = ryxx.getStr("zzhm");
sql=sql.delete(sql.length()-1,sql.length());
//select * from T_BD_Person where FIDCARDNO=''
sql.append(" where ");
sql_param.put(sql.toString(),paramList);
}
}
return null;
}
protected String getFieldByNumber(Context context,String number){
String sql = "select ('T'||FIELDSN) fieldName,fname_L2 from T_HR_STaxItem where FSIMPLENAME=?";
try {
IRowSet rs = DbUtil.executeQuery(context, sql, new String[]{number});
if (rs.next()) {
return rs.getString("fieldName");
}
}catch (Exception e){
e.printStackTrace();
}
return null;
}
}