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.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.bos.util.BOSUuid;
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.shr.dydeploy.web.executeSql.ExceptionUtils;
import org.apache.log4j.Logger;
import java.util.List;
import java.util.Map;
/**
* 扣除名单确认反馈
* description: GetPreDeductConfirmFeedBack
* date: 2024/8/29 15:02
* author: lhbj
* version: 1.0
*/
public class GetPreDeductConfirmFeedBack implements IHRMsfService {
private static final Logger LOG = Logger.getLogger(GetPreDeductConfirmFeedBack.class);
@Override
public Object process(Context context, Map map) throws EASBizException, BOSException {
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.GETPREDEDUCTCONFIRMFEEDBACK_VALUE;
JSONObject paramMap = JSONUtil.parseObj(paramData);
//获取传入任务id
String preTaskId = (String) paramMap.get("parent_taskid");
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);
String result = facade.get(url,paramData);
JSONObject resultMap = JSONUtil.parseObj(result);
JSONObject head = resultMap.getJSONObject("head");
JSONObject body = resultMap.getJSONObject("body");
String code = head.getStr("code");
if ("00000000".equals(code)) {
TaskRequestParamInfo requestParamInfo = taskInfo.getRequestParam();
String paramCon = requestParamInfo.getParamContent();
JSONObject json = JSONUtil.parseObj(paramCon);
JSONArray kczglb=json.getJSONArray("kczglb");
List listUp = Lists.newArrayList();
StringBuilder sqler = new StringBuilder();
sqler.append(" update T_HR_STaxDirectDeduction set FSATE='20' where fid in ( ");
sqler.append(" select tdd.fid from T_HR_STaxDirectDeduction tdd ");
sqler.append(" left join T_HR_STaxPersonRecordEntry tpre on tpre.fid=tdd.FTAXPERSONRECORDENTRYID ");
sqler.append(" left join T_HR_STaxPersonRecord tpr on tpr.fid=tpre.FBILLID ");
sqler.append(" left join T_HR_STaxUnitDeduction tud on tud.fid=tdd.FTAXUNITDEDUCTIONID ");
sqler.append(" where tpre.fid is not null and tud.FTAXUNITID = tpre.FTAXUNITID and tpr.FCARDNUMBER=?)");
for(int i=0;i list = Lists.newArrayList();
for(int i=0;i