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.kingdee.bos.BOSException; import com.kingdee.bos.Context; import com.kingdee.bos.bsf.service.app.IHRMsfService; 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.MessageResult; import com.kingdee.eas.custom.shuiyou.uitls.ISYUtilsFacade; import com.kingdee.eas.custom.shuiyou.uitls.SYUtilsFacadeFactory; import com.kingdee.shr.compensation.BankCardStatusEnum; import com.kingdee.shr.compensation.IdentityStatusEnume; import com.kingdee.shr.compensation.SubmitStatusEnum; import com.kingdee.shr.compensation.app.incomeTax.ITaxPersonRecordEntry; import com.kingdee.shr.compensation.app.incomeTax.TaxPersonRecordEntryFactory; import com.kingdee.shr.compensation.app.incomeTax.TaxPersonRecordEntryInfo; import com.kingdee.shr.compensation.app.incomeTax.TaxPersonRecordInfo; import com.kingdee.shr.dydeploy.web.executeSql.ExceptionUtils; import org.apache.log4j.Logger; import java.util.Map; /** * 人员报送反馈接口 */ public class PersonnelReportService implements IHRMsfService { private static Logger logger = Logger.getLogger("com.kingdee.eas.custom.shuiyou.service.PersonnelReportService"); @Override public Object process(Context context, Map map) throws EASBizException, BOSException { logger.error("com.kingdee.eas.custom.shuiyou.service.PersonnelReportService.process"); MessageResult messageResult=null; String paramData = (String) map.get("paramData"); System.out.println("PersonnelReportService:"+paramData); ISYUtilsFacade facade = SYUtilsFacadeFactory.getLocalInstance(context); Map config = facade.getConfig(); String url = config.get("ip")+"/gateway/iit/declare/getEmployeeInfoFeedback"; String result=null; try { result = facade.get(url, paramData); if (result == null) { messageResult = MessageResult.ERROR("参数result为空"); } else { JSONObject jsonObject = JSONUtil.parseObj(result); logger.error("入参:" + jsonObject); JSONObject head = jsonObject.getJSONObject("head"); String code =head.getStr("code"); if ("00000000".equals(code)){ JSONObject body = jsonObject.getJSONObject("body"); if(body.containsKey("bsjg")) { JSONArray bsjgs = body.getJSONArray("bsjg"); SelectorItemCollection sc = new SelectorItemCollection(); sc.add(new SelectorItemInfo("identityStatus")); sc.add(new SelectorItemInfo("submitStatus")); sc.add(new SelectorItemInfo("failReason")); sc.add(new SelectorItemInfo("failReason")); sc.add(new SelectorItemInfo("bill.bankCardStatus")); for (int b = 0; b < bsjgs.size(); b++) { JSONObject bsjg = bsjgs.getJSONObject(b); String zzhm = bsjg.getStr("zzhm"); ITaxPersonRecordEntry tyse = TaxPersonRecordEntryFactory.getLocalInstance(context); TaxPersonRecordEntryInfo taxPersonRecordEntry = tyse.getTaxPersonRecordEntryInfo("select * , bill.* where bill.cardnumber = '" + zzhm + "'"); String sbzt = bsjg.getStr("sbzt");//报送状态 1 待报送 2 代报中 3 代报失败 4 代报成功 taxPersonRecordEntry.setSubmitStatus(StartReflection(sbzt)); String rzzt = bsjg.getStr("rzzt");//验证状态0 若是身份证,状态为验证中;其他证件为暂不验证 1 验证通过 2 验证不通过 4 待验证 9 同代码0处理 taxPersonRecordEntry.setIdentityStatus(IdentityStatusEnume.getEnum(("4".compareTo(rzzt) < 0 ? "0" : rzzt))); //bsjg.getString("sfyjd");//是否建档 String sbyy = bsjg.getStr("sbyy");//失败原因 taxPersonRecordEntry.setFailReason(sbyy); String yhkzhzt = bsjg.getStr("yhkzhzt");//银行卡账号状态 TaxPersonRecordInfo taxPersonRecord = taxPersonRecordEntry.getBill(); taxPersonRecord.setBankCardStatus(BankCardStatusEnum.getEnum(("1".equals(yhkzhzt) ? "2" : "3"))); tyse.updatePartial(taxPersonRecordEntry, sc); } messageResult = MessageResult.SUCCESS(result); }else { messageResult = MessageResult.FAILED(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)+result); } return messageResult; } public SubmitStatusEnum StartReflection(String start){ switch (start){ case "1": return SubmitStatusEnum.NotSubmit; case "2": return SubmitStatusEnum.Submiting; case "3": return SubmitStatusEnum.SubmitFail; case "4": return SubmitStatusEnum.HaveSubmit; } return null; } }