TaxSpeAddDedReportExFacadeControllerBean.java 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426
  1. package com.kingdee.eas.custom.shuiyou.incomeTax;
  2. import cn.hutool.core.util.StrUtil;
  3. import cn.hutool.json.JSONUtil;
  4. import com.kingdee.bos.dao.IObjectPK;
  5. import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
  6. import com.kingdee.bos.util.BOSUuid;
  7. import com.kingdee.eas.basedata.person.Genders;
  8. import com.kingdee.eas.basedata.person.PersonInfo;
  9. import com.kingdee.eas.custom.shuiyou.six.osf.vo.SixTPersonInfo;
  10. import com.kingdee.eas.custom.shuiyou.six.osf.vo.SpecialAmountInfo;
  11. import com.kingdee.eas.custom.shuiyou.task.MessageResult;
  12. import com.kingdee.eas.custom.shuiyou.task.TaskFactory;
  13. import com.kingdee.eas.custom.shuiyou.task.TaskInfo;
  14. import com.kingdee.eas.custom.shuiyou.uitls.ISYUtilsFacade;
  15. import com.kingdee.eas.custom.shuiyou.uitls.SYUtilsFacadeFactory;
  16. import com.kingdee.eas.custom.shuiyou.uitls.URLConfigEnum;
  17. import com.kingdee.eas.framework.CoreBaseCollection;
  18. import com.kingdee.eas.util.app.DbUtil;
  19. import com.kingdee.jdbc.rowset.IRowSet;
  20. import com.kingdee.shr.base.syssetting.json.JSONUtils;
  21. import com.kingdee.shr.compensation.*;
  22. import com.kingdee.shr.compensation.app.tax.*;
  23. import com.kingdee.shr.compensation.app.taxCal.TaxCalInitDetailStateEnum;
  24. import com.kingdee.shr.compensation.util.Base64Utils;
  25. import org.apache.commons.lang3.StringUtils;
  26. import org.apache.log4j.Logger;
  27. import com.kingdee.bos.*;
  28. import java.text.SimpleDateFormat;
  29. import java.util.*;
  30. import java.lang.String;
  31. public class TaxSpeAddDedReportExFacadeControllerBean extends AbstractTaxSpeAddDedReportExFacadeControllerBean
  32. {
  33. private static Logger logger =
  34. Logger.getLogger("com.kingdee.eas.custom.shuiyou.incomeTax.TaxSpeAddDedReportExFacadeControllerBean");
  35. private static final long serialVersionUID = 1L;
  36. private Map<String, String> taskMap;
  37. private Map<String, Map<String, Object>> dataMap = new HashMap();
  38. private List<String> sumTaxList;
  39. private List<String> allTaxItemList;
  40. private static final int FIXED_PARA_COUNT = 15;
  41. private String userId;
  42. private boolean isDelete = false;
  43. private boolean isFbSubmit;
  44. private boolean checkParams(Map<String, Object> paramMap) {
  45. if (!paramMap.containsKey("accept_id") && !paramMap.containsKey("RELAYTASK")) {
  46. return true;
  47. } else {
  48. return !paramMap.containsKey("TaxPersonRecordEntryIDS");
  49. }
  50. }
  51. @Override
  52. protected MessageResult _report(Context ctx, Map paramMap) throws BOSException {
  53. logger.error("_report:"+paramMap);
  54. if (this.checkParams(paramMap)) {
  55. throw new BOSException("专项附加扣除申报服务参数缺失,请检查参数");
  56. } else {
  57. //前置任务
  58. String RELAYTASK = (String)paramMap.get("RELAYTASK");
  59. String taxUnitID = (String)paramMap.get("TAXUNITID");
  60. String initIds = (String)paramMap.get("initIds");
  61. String period = (String)paramMap.get("PERIOD");
  62. String taxPersonRecordEntryIDS = (String)paramMap.get("TaxPersonRecordEntryIDS");
  63. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  64. TaxUnitCollection taxUnitCollection = TaxUnitFactory.getLocalInstance(ctx).getTaxUnitCollection("select id,name,number,taxNumber,areaCode,regNumber,declPassword,realPassword,isAutoDeduct where id = '" + taxUnitID + "'");
  65. logger.error("taxUnitCollection:"+taxUnitCollection);
  66. if (null != taxUnitCollection && taxUnitCollection.size() != 0) {
  67. TaxUnitInfo taxUnitInfo = taxUnitCollection.get(0);
  68. IsAllowedQuoted isAutoDeduct = taxUnitInfo.getIsAutoDeduct();
  69. if (0 == isAutoDeduct.getValue()) {
  70. return null;
  71. } else {
  72. logger.error("period:"+period);
  73. period = period.replace("-", "");
  74. int periodYear = Integer.parseInt(period.substring(0, 4));
  75. int periodMonth = Integer.parseInt(period.substring(4, 6));
  76. StringBuilder checkSQL = new StringBuilder();
  77. checkSQL.append(" SELECT ");
  78. checkSQL.append(" PERSON.FID PERSONID, ");
  79. checkSQL.append(" PERSON.FNAME_L2 PERSONNAME, ");
  80. checkSQL.append(" PERSON.FNUMBER PERSONNUMBER, ");
  81. checkSQL.append(" PERSON.FGENDER GENDER, ");
  82. checkSQL.append(" TAX.FPHONENUMBER PHONENUMBER, ");
  83. checkSQL.append(" ENTRY.FPERSONSTATUS PERSONSTATUS, ");
  84. checkSQL.append(" ENTRY.FEMPLOYEDTYPE EMPLOYEDTYPE, ");
  85. checkSQL.append(" ENTRY.FEMPLOYEDDATE EMPLOYEDDATE, ");
  86. checkSQL.append(" isnull(TAX.FBIRTHDAY,PERSON.FBIRTHDAY) BIRTHDAY, ");
  87. checkSQL.append(" nl.fname_l2 NATIONALITY, ");
  88. checkSQL.append(" TAX.FISOVERSEA ISOVERSEA,");
  89. checkSQL.append(" ENTRY.FDEPARTUREDATE DEPARTUREDATE,");
  90. checkSQL.append(" TAX.FINVESTMENTTOTAL INVESTMENTTOTAL,");
  91. checkSQL.append(" TAX.FINVESTMENTRATE INVESTMENTRATE,");
  92. checkSQL.append(" TAX.FISDISABILITY ISDISABILITY,");
  93. checkSQL.append(" TAX.FISHERO ISHERO,");
  94. checkSQL.append(" TAX.FISOLD ISOLD,");
  95. checkSQL.append(" ENTRY.FDEDUCTFEES DEDUCTFEES,");
  96. checkSQL.append(" TAX.FDISCARDNUMBER DISCARDNUMBER,");
  97. checkSQL.append(" TAX.FHEROCARDNUMBER HEROCARDNUMBER,");
  98. checkSQL.append(" TAX.FEMAIL EMAIL,");
  99. checkSQL.append(" dip.fname_l2 EDULEVEL,");
  100. checkSQL.append(" TAX.FPOSITION POSITION,");
  101. checkSQL.append(" bank.fname_l2 BANKNAME,");
  102. checkSQL.append(" TAX.FBANKCARDPROVINCE BANKCARDPROVINCE,");
  103. checkSQL.append(" TAX.FACCOUNT BANKACCOUNT,");
  104. checkSQL.append(" birNl.fName_l2 BIRTHPLACE,");
  105. checkSQL.append(" TAX.FTAXREASON TAXREASON,");
  106. checkSQL.append(" TAX.FENTRYDATE ENTRYDATE,");
  107. checkSQL.append(" TAX.FLEAVEDATE LEAVEDATE,");
  108. checkSQL.append(" TAX.FCARDTYPE CARDTYPE, ");
  109. checkSQL.append(" TAX.FReportName reportName, ");
  110. checkSQL.append(" TAX.FCARDNUMBER CARDNUMBER, ");
  111. checkSQL.append(" ENTRY.FID ENTRYID, ");
  112. checkSQL.append(" ENTRY.FTAXUNITID TAXUNITID, ");
  113. checkSQL.append(" RECORD.FID RECORDID, ");
  114. checkSQL.append(" RECORD.FSTATE ");
  115. checkSQL.append(" FROM T_HR_STAXPERSONRECORD TAX ");
  116. checkSQL.append(" INNER JOIN T_HR_STAXPERSONRECORDENTRY ENTRY ON TAX.FID = ENTRY.FBILLID ");
  117. checkSQL.append(" LEFT JOIN T_HR_STAXSPEADDDEDRECORD RECORD ON ENTRY.FPERSONID = RECORD.FPERSONID AND ENTRY.FTAXUNITID = RECORD.FTAXUNITID ");
  118. checkSQL.append(" AND RECORD.FPERIODYEAR = ").append(periodYear);
  119. checkSQL.append(" AND RECORD.FPERIODMONTH = ").append(periodMonth);
  120. checkSQL.append(" AND RECORD.FTAXUNITID = '").append(taxUnitInfo.getId().toString()).append("' ");
  121. checkSQL.append(" INNER JOIN T_BD_PERSON PERSON ON ENTRY.FPERSONID = PERSON.FID ");
  122. checkSQL.append(" LEFT JOIN T_BD_Nationality nl ON nl.fid = TAX.FNATIONALITYID ");
  123. checkSQL.append(" LEFT JOIN T_BD_HRDiploma dip ON dip.fid = TAX.FEDULEVELID ");
  124. checkSQL.append(" LEFT JOIN T_HR_SBank bank ON bank.fid = TAX.FBANKID ");
  125. checkSQL.append(" LEFT JOIN T_BD_Nationality birNl ON birNl.fid = TAX.FBIRTHPLACEID ");
  126. checkSQL.append(" WHERE ");
  127. checkSQL.append(" ENTRY.FID IN (").append(taxPersonRecordEntryIDS).append(") ");
  128. String updateRecordSQL = " update T_HR_STAXSPEADDDEDRECORD set Fstate = 30, CFTaskID = ? where FID = ?";
  129. ArrayList updateParamList = new ArrayList();
  130. ISYUtilsFacade facade = SYUtilsFacadeFactory.getLocalInstance(ctx);
  131. try {
  132. logger.error("_report:"+checkSQL);
  133. IRowSet rowSet = DbUtil.executeQuery(ctx, checkSQL.toString());
  134. List<SixTPersonInfo> rylb = new ArrayList();
  135. CoreBaseCollection recordCollection = new CoreBaseCollection();
  136. HashSet reportPersonSet = new HashSet();
  137. while(true) {
  138. while(true) {
  139. if (!rowSet.next()) {
  140. if (rylb.isEmpty()) {
  141. return null;
  142. }
  143. SpecialAmountInfo specialAmountInfo = new SpecialAmountInfo();
  144. specialAmountInfo.setTaxPersonRecordEntryIDS(initIds);
  145. specialAmountInfo.setBizNo(facade.getBizNo());
  146. specialAmountInfo.setQymc(taxUnitInfo.getName());
  147. specialAmountInfo.setMmlx("0");
  148. specialAmountInfo.setSmzh(null);
  149. specialAmountInfo.setJmsmmm(null);
  150. specialAmountInfo.setSbmm(Base64Utils.decode(taxUnitInfo.getDeclPassword()));
  151. specialAmountInfo.setJmsbmm(null);
  152. specialAmountInfo.setDjxhid(taxUnitInfo.getRegNumber());
  153. specialAmountInfo.setNsrsbh(taxUnitInfo.getTaxNumber());
  154. specialAmountInfo.setAreaid(taxUnitInfo.getAreaCode());
  155. specialAmountInfo.setSkssq(period);
  156. specialAmountInfo.setBmbh(null);
  157. specialAmountInfo.setBmmc(null);
  158. specialAmountInfo.setSfrysb(null);
  159. specialAmountInfo.setXzms("1");
  160. specialAmountInfo.setRylb(rylb);
  161. paramMap.put("qymc", taxUnitInfo.getName());
  162. paramMap.put("nsrsbh", taxUnitInfo.getTaxNumber());
  163. paramMap.put("areaid", taxUnitInfo.getAreaCode());
  164. paramMap.put("sdyf", period);
  165. paramMap.put("ver", "V2.0.000");
  166. paramMap.put("djxhid", taxUnitInfo.getRegNumber());
  167. paramMap.put("smmm", Base64Utils.decode(taxUnitInfo.getRealPassword()));
  168. paramMap.put("sbmm", Base64Utils.decode(taxUnitInfo.getDeclPassword()));
  169. paramMap.put("xzzxxx", "是");
  170. Map<String, Object> dataMap = new HashMap();
  171. dataMap.put("rylb", rylb);
  172. paramMap.put("data", dataMap);
  173. Map<String,Object> config = facade.getConfig();
  174. String url = config.get("ip")+ URLConfigEnum.QUERYPREDEDUCT_VALUE;
  175. String result = facade.post(url, JSONUtil.toJsonStr(specialAmountInfo));
  176. // if
  177. // facade.addTask("GetQuerySpecialAmountFeedback",);
  178. // TaskInfo taxCalTaskInfo = TaskFactory.getLocalInstance(ctx).getTaskInfo(new ObjectUuidPK(tastId));
  179. //
  180. // int i = 0;
  181. //
  182. // for(int size = recordCollection.size(); i < size; ++i) {
  183. // TaxSpeAddDedRecordInfo taxSpeAddDedRecordInfo = (TaxSpeAddDedRecordInfo)recordCollection.get(i);
  184. // taxSpeAddDedRecordInfo.put("task",taxCalTaskInfo);
  185. // }
  186. //
  187. // Object[] objects;
  188. // for(Iterator i$ = updateParamList.iterator(); i$.hasNext(); objects[0] = tastId) {
  189. // objects = (Object[])i$.next();
  190. // }
  191. //
  192. // TaxSpeAddDedRecordFactory.getLocalInstance(ctx).saveBatchData(recordCollection);
  193. // if (updateParamList.size() > 0) {
  194. // DbUtil.executeBatch(ctx, updateRecordSQL, updateParamList);
  195. // }
  196. //
  197. // List<IObjectPK> arrayList = new ArrayList();
  198. // arrayList.add(new ObjectUuidPK(tastId));
  199. return MessageResult.SUCCESS();
  200. }
  201. String recordId = rowSet.getString("RECORDID");
  202. if (StringUtils.isEmpty(recordId)) {
  203. break;
  204. }
  205. int state = rowSet.getInt("FSTATE");
  206. if (40 != state && 30 != state) {
  207. if (50 == state) {
  208. Object[] updateParam = new Object[]{null, recordId};
  209. updateParamList.add(updateParam);
  210. }
  211. break;
  212. }
  213. }
  214. String personId = rowSet.getString("PERSONID");
  215. String personName = rowSet.getString("reportName");
  216. String personNumber = rowSet.getString("PERSONNUMBER");
  217. String phoneNumber = rowSet.getString("PHONENUMBER");
  218. String personStatus = rowSet.getString("PERSONSTATUS");
  219. String employedType = rowSet.getString("EMPLOYEDTYPE");
  220. Date employeddate = rowSet.getDate("EMPLOYEDDATE");
  221. String gender = rowSet.getString("GENDER");
  222. if (StringUtils.isEmpty(personName)) {
  223. personName = rowSet.getString("PERSONNAME");
  224. }
  225. Date birthday = rowSet.getDate("BIRTHDAY");
  226. String nationality = rowSet.getString("NATIONALITY");
  227. String isoversea = rowSet.getString("ISOVERSEA");
  228. Date departuredate = rowSet.getDate("DEPARTUREDATE");
  229. String investmenttotal = rowSet.getString("INVESTMENTTOTAL");
  230. String investmentrate = rowSet.getString("INVESTMENTRATE");
  231. String isdisability = rowSet.getString("ISDISABILITY");
  232. String ishero = rowSet.getString("ISHERO");
  233. String isold = rowSet.getString("ISOLD");
  234. String deductfees = rowSet.getString("DEDUCTFEES");
  235. String discardnumber = rowSet.getString("DISCARDNUMBER");
  236. String herocardnumber = rowSet.getString("HEROCARDNUMBER");
  237. String email = rowSet.getString("EMAIL");
  238. String edulevel = rowSet.getString("EDULEVEL");
  239. String position = rowSet.getString("POSITION");
  240. String bankname = rowSet.getString("BANKNAME");
  241. String bankcardprovince = rowSet.getString("BANKCARDPROVINCE");
  242. String bankaccount = rowSet.getString("BANKACCOUNT");
  243. String birthplace = rowSet.getString("BIRTHPLACE");
  244. String taxreason = rowSet.getString("TAXREASON");
  245. Date entrydate = rowSet.getDate("ENTRYDATE");
  246. Date leavedate = rowSet.getDate("LEAVEDATE");
  247. String cardType = rowSet.getString("CARDTYPE");
  248. String cardNumber = rowSet.getString("CARDNUMBER");
  249. String reportPersonSetKey = personId + "_" + taxUnitID + "_" + periodYear + "_" + periodMonth;
  250. if (!reportPersonSet.contains(reportPersonSetKey)) {
  251. reportPersonSet.add(reportPersonSetKey);
  252. SixTPersonInfo sixTPersonInfo = new SixTPersonInfo();
  253. sixTPersonInfo.setXm(personName);
  254. sixTPersonInfo.setZzlx(CardTypeEnum.getEnum(cardType).getAlias());
  255. sixTPersonInfo.setZzhm(cardNumber);
  256. sixTPersonInfo.setQtzzlx(null);
  257. sixTPersonInfo.setQtzzhm(null);
  258. sixTPersonInfo.setGh(personNumber);
  259. sixTPersonInfo.setSkssq(period);
  260. sixTPersonInfo.setLxdh(phoneNumber);
  261. sixTPersonInfo.setNsrzt(("1".equals(personStatus)? PersonStatusEnum.Normal.getAlias():PersonStatusEnum.NotNormal.getAlias()));
  262. if(StrUtil.isNotBlank(employedType)) {
  263. sixTPersonInfo.setSfgy(EmployedTypeEnum.getEnum(employedType).getAlias());
  264. }else{
  265. sixTPersonInfo.setSfgy(null);
  266. }
  267. if(null!=employeddate){
  268. sixTPersonInfo.setRzsgrq(format.format(employeddate));
  269. }else {
  270. sixTPersonInfo.setRzsgrq(format.format(new Date()));
  271. }
  272. if(null!=gender) {
  273. sixTPersonInfo.setXb(Genders.getEnum(Integer.parseInt(gender)).getAlias());
  274. }else{
  275. sixTPersonInfo.setXb(Genders.Male.getAlias());
  276. }
  277. sixTPersonInfo.setCsny(format.format(birthday));
  278. if(StrUtil.isNotBlank(nationality)){
  279. sixTPersonInfo.setGj(nationality);
  280. }else{
  281. sixTPersonInfo.setGj("中国");
  282. }
  283. sixTPersonInfo.setRydq("0".equals(isoversea)?"境内":"境外");
  284. if(null!=departuredate) {
  285. sixTPersonInfo.setLzrq(format.format(departuredate));
  286. }else {
  287. sixTPersonInfo.setLzrq("");
  288. }
  289. if(StrUtil.isNotBlank(investmenttotal)){
  290. sixTPersonInfo.setGrgbze(investmenttotal);
  291. }else {
  292. sixTPersonInfo.setGrgbze(null);
  293. }
  294. if(StrUtil.isNotBlank(investmentrate)){
  295. sixTPersonInfo.setGrgbbl(investmentrate);
  296. }else {
  297. sixTPersonInfo.setGrgbbl(null);
  298. }
  299. if(StrUtil.isNotBlank(isdisability)) {
  300. sixTPersonInfo.setSfcj("0".equals(isdisability)?"否":"是");
  301. }else {
  302. sixTPersonInfo.setSfcj(null);
  303. }
  304. if(StrUtil.isNotBlank(ishero)) {
  305. sixTPersonInfo.setSfls("0".equals(ishero)?"否":"是");
  306. }else {
  307. sixTPersonInfo.setSfls(null);
  308. }
  309. if(StrUtil.isNotBlank(isold)) {
  310. sixTPersonInfo.setSfgl("0".equals(isold)?"否":"是");
  311. }else {
  312. sixTPersonInfo.setSfgl(null);
  313. }
  314. if(StrUtil.isNotBlank(deductfees)) {
  315. sixTPersonInfo.setSfzdw(DeductFeesEnum.getEnum(deductfees).getAlias());
  316. }else {
  317. sixTPersonInfo.setSfzdw(null);
  318. }
  319. sixTPersonInfo.setCjzh(discardnumber);
  320. sixTPersonInfo.setLszh(herocardnumber);
  321. sixTPersonInfo.setDzyx(email);
  322. sixTPersonInfo.setXl(edulevel);
  323. if(StrUtil.isNotBlank(position)) {
  324. sixTPersonInfo.setZw(PositionTypeEnum.getEnum(position).getAlias());
  325. }else{
  326. sixTPersonInfo.setZw(null);
  327. }
  328. sixTPersonInfo.setKhyh(bankname);
  329. sixTPersonInfo.setKhyhsfmz(bankcardprovince);
  330. sixTPersonInfo.setYhzh(bankaccount);
  331. sixTPersonInfo.setLxdz_sheng(null);
  332. sixTPersonInfo.setLxdz_shi(null);
  333. sixTPersonInfo.setLxdz_qx(null);
  334. sixTPersonInfo.setLxdz_jd(null);
  335. sixTPersonInfo.setLxdz(null);
  336. sixTPersonInfo.setHjszd_sheng(null);
  337. sixTPersonInfo.setHjszd_shi(null);
  338. sixTPersonInfo.setHjszd_qx(null);
  339. sixTPersonInfo.setHjszd_jd(null);
  340. sixTPersonInfo.setHjszd_xxdz(null);
  341. sixTPersonInfo.setBz(null);
  342. sixTPersonInfo.setCsd(birthplace);
  343. sixTPersonInfo.setSssx(taxreason);
  344. if(null!=entrydate){
  345. sixTPersonInfo.setScrjsj(format.format(entrydate));
  346. }
  347. if(null!=leavedate){
  348. sixTPersonInfo.setYjljsj(format.format(leavedate));
  349. }
  350. sixTPersonInfo.setWjrlxdz_sheng(null);
  351. sixTPersonInfo.setWjrlxdz_shi(null);
  352. sixTPersonInfo.setWjrlxdz_qx(null);
  353. sixTPersonInfo.setWjrlxdz_jd(null);
  354. sixTPersonInfo.setWjrlxdz_xxdz(null);
  355. sixTPersonInfo.setXmzw(null);
  356. sixTPersonInfo.setBz(null);
  357. rylb.add(sixTPersonInfo);
  358. TaxSpeAddDedRecordInfo taxSpeAddDedRecordInfo = new TaxSpeAddDedRecordInfo();
  359. taxSpeAddDedRecordInfo.setTaxUnit(taxUnitInfo);
  360. PersonInfo personInfo = new PersonInfo();
  361. personInfo.setId(BOSUuid.read(personId));
  362. taxSpeAddDedRecordInfo.setPerson(personInfo);
  363. taxSpeAddDedRecordInfo.setPeriodYear(periodYear);
  364. taxSpeAddDedRecordInfo.setPeriodMonth(periodMonth);
  365. taxSpeAddDedRecordInfo.setState(TaxCalInitDetailStateEnum.RUNNING);
  366. recordCollection.add(taxSpeAddDedRecordInfo);
  367. }
  368. }
  369. } catch (Exception var27) {
  370. logger.error(var27.getMessage(), var27);
  371. throw new BOSException("生成项附加扣除申报服务时,判断是否存在未下载的专项附加扣除信息数据出错", var27);
  372. }
  373. }
  374. } else {
  375. throw new BOSException("生成项附加扣除申报服务时,未获取到对应的纳税单位数据,请联系管理员检查数据是否被删除");
  376. }
  377. }
  378. }
  379. @Override
  380. protected void _save(Context ctx, String taskID, String result) throws BOSException {
  381. super._save(ctx, taskID, result);
  382. Map<String, Object> bodyMap = (Map) JSONUtils.convertJsonToObject(ctx, result, Map.class);
  383. String code = (String)bodyMap.get("code");
  384. if ("00000000".equals(code)) {
  385. String updateSql = "update T_HR_STAXSPEADDDEDRECORD set FSTATE = 40 where CFTaskID = '" + taskID + "'";
  386. DbUtil.execute(ctx, updateSql);
  387. }
  388. }
  389. }