123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- 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 <br>
- * date: 2024/8/29 15:02 <br>
- * author: lhbj <br>
- * version: 1.0 <br>
- */
- 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<String, Object> 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<String[]> 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<kczglb.size();i++){
- JSONObject kczgl = kczglb.getJSONObject(i);
- String zzhm = kczgl.getStr("zzhm");
- String[] param = new String[1];
- param[0]=zzhm;
- listUp.add(param);
- }
- if (!listUp.isEmpty()) {
- DbUtil.executeBatch(context, sqler.toString(), listUp);
- }
- JSONArray jsonArray = body.getJSONArray("kcqrsblb");
- List<String[]> list = Lists.newArrayList();
- for(int i=0;i<jsonArray.size();i++){
- JSONObject obj = jsonArray.getJSONObject(i);
- String zzhm = obj.getStr("zzhm");
- String sbyy = obj.getStr("sbyy");
- String[] param = new String[2];
- param[0]=(sbyy);
- param[1]=(zzhm);
- list.add(param);
- }
- StringBuilder sql = new StringBuilder();
- sql.append(" update T_HR_STaxDirectDeduction set FSATE='30',FERRORMSG_L2=? where fid in ( ");
- sql.append(" select tdd.fid from T_HR_STaxDirectDeduction tdd ");
- sql.append(" left join T_HR_STaxPersonRecordEntry tpre on tpre.fid=tdd.FTAXPERSONRECORDENTRYID ");
- sql.append(" left join T_HR_STaxPersonRecord tpr on tpr.fid=tpre.FBILLID ");
- sql.append(" left join T_HR_STaxUnitDeduction tud on tud.fid=tdd.FTAXUNITDEDUCTIONID ");
- sql.append(" where tpre.fid is not null and tud.FTAXUNITID = tpre.FTAXUNITID and tpr.FCARDNUMBER=?)");
- if (!list.isEmpty()) {
- DbUtil.executeBatch(context, sql.toString(), list);
- }
- messageResult=MessageResult.SUCCESS(result);
- }else if("00000004".equals(head.getStr("code"))) {
- messageResult = MessageResult.AGAIN();
- }else {
- messageResult = MessageResult.FAILED(result);
- }
- }catch (Exception e){
- e.printStackTrace();
- messageResult = MessageResult.ERROR(ExceptionUtils.getStackTrace(e));
- }
- return messageResult;
- }
- }
|