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; } }