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.*; 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 this_taskId =(String) map.get("this_taskId"); 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); System.out.println("TaxPersonRecordEntryCollection:"+zzhm+"_"); TaxPersonRecordEntryCollection c = tyse.getTaxPersonRecordEntryCollection("select * , bill.*,taxunit.* where bill.cardnumber = '" + zzhm + "' and task.id='" + this_taskId + "' "); System.out.println("TaxPersonRecordEntryCollection:"+c); for (int i = 0; null!=c && i < c.size(); i++) { TaxPersonRecordEntryInfo taxPersonRecordEntry = c.get(i); String sbzt = bsjg.getStr("sbzt");//报送状态 1待报送,2代报中,3代报失败,4代报成功 taxPersonRecordEntry.setSubmitStatus(this.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"))); System.out.println("taxPersonRecordEntry:"+taxPersonRecordEntry); tyse.updatePartial(taxPersonRecordEntry, sc); } } messageResult = MessageResult.SUCCESS(result); } else { messageResult = MessageResult.FAILED(result); } } else if ("000004".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) { if ("1".equals(start)) { return SubmitStatusEnum.NotSubmit; }else if ("2".equals(start)) { return SubmitStatusEnum.Submiting; } else if ("3".equals(start)) { return SubmitStatusEnum.SubmitFail; } else if ("4".equals(start)){ return SubmitStatusEnum.HaveSubmit; } return SubmitStatusEnum.SubmitFail; } }