ButterflyPrincipalEditHandler.java 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. package com.kingdee.eas.custom.wamke.syncdata.web;
  2. import javax.servlet.http.HttpServletRequest;
  3. import javax.servlet.http.HttpServletResponse;
  4. import org.apache.log4j.Logger;
  5. import org.apache.log4j.Priority;
  6. import com.alibaba.fastjson.JSON;
  7. import com.alibaba.fastjson.JSONObject;
  8. import com.kingdee.bos.Context;
  9. import com.kingdee.bos.dao.IObjectPK;
  10. import com.kingdee.eas.custom.wamke.syncdata.ButterflyPrincipalInfo;
  11. import com.kingdee.eas.framework.CoreBaseInfo;
  12. import com.kingdee.eas.util.app.DbUtil;
  13. import com.kingdee.jdbc.rowset.IRowSet;
  14. import com.kingdee.shr.base.syssetting.context.SHRContext;
  15. import com.kingdee.shr.base.syssetting.exception.SHRWebException;
  16. import com.kingdee.shr.base.syssetting.web.handler.EditHandler;
  17. public class ButterflyPrincipalEditHandler extends EditHandler {
  18. private static Logger logger = Logger.getLogger(ButterflyPrincipalEditHandler.class);
  19. @Override
  20. protected IObjectPK runSaveData(HttpServletRequest request,
  21. HttpServletResponse response, CoreBaseInfo model) throws Exception {
  22. JSONObject jsonObj = JSON.parseObject(request.getParameter("model"));
  23. String personId = jsonObj.get("personId").toString();
  24. ButterflyPrincipalInfo info = (ButterflyPrincipalInfo)model;
  25. //校验是否已存在相面的关联人员,蝶城,负责人类型
  26. String personType = mappingPersonType(model.get("personType").toString());
  27. checkExistRelation(personId, info.getButterflyCode(), personType);
  28. IObjectPK pk = super.runSaveData(request, response, model);
  29. //更新负责人姓名和编号,蝶城
  30. if( ( info!=null &&info.getId() != null ) || pk != null ){
  31. String id = pk !=null ? pk.toString(): info.getId().toString();
  32. afterRunSaveData( id, personType, personId);
  33. }
  34. return pk;
  35. }
  36. private void afterRunSaveData(String id, String personType, String personId) throws Exception{
  37. //更新负责人类型
  38. Context ctx = SHRContext.getInstance().getContext();
  39. StringBuilder sb = new StringBuilder();
  40. //获取ID
  41. //获取人员
  42. String sql = "SELECT TOP 1 FName_L2 AS personName, FNumber AS personCode FROM T_BD_Person WHERE FId = '"+ personId +"'";
  43. logInfo("执行SQL"+sql);
  44. IRowSet rowSet = DbUtil.executeQuery(ctx,sql);
  45. String personName = "";
  46. String personCode = "";
  47. while(rowSet.next()){
  48. personName = rowSet.getString("personName");
  49. personCode = rowSet.getString("personCode");
  50. break;
  51. }
  52. sb.append(" UPDATE CT_WK_ButterflyPrincipal SET CFPersonType = N'").append(personType)
  53. .append("', CFPersonName = N'").append(personName).append("' ")
  54. .append(", CFPersonCode = N'").append(personCode).append("' ")
  55. .append(" WHERE CT_WK_ButterflyPrincipal.FID = '").append(id).append("'");
  56. logInfo("执行SQL"+sb.toString());
  57. DbUtil.execute(ctx, sb.toString());
  58. }
  59. private void logInfo(String msg){
  60. logger.log(Priority.DEBUG, msg);
  61. }
  62. /**
  63. * 校验是否存在相同的关系
  64. * @throws Exception
  65. */
  66. private void checkExistRelation(String personId, String butterflyCode, String personType) throws Exception{
  67. String sql = "SELECT COUNT(1) AS num FROM CT_WK_ButterflyPrincipal WHERE CFPersonId = '"+personId+"' AND CFPersonType = '"
  68. +personType+"' AND CFButterflyCode = '"+butterflyCode+"'";
  69. Context ctx = SHRContext.getInstance().getContext();
  70. IRowSet rowSet = DbUtil.executeQuery(ctx, sql);
  71. while(rowSet.next()){
  72. if(rowSet.getInt("num")>0){
  73. throw new SHRWebException("已存在相同的负责人关系");
  74. }
  75. }
  76. }
  77. private String mappingPersonType(String webPeronType){
  78. if(webPeronType.equals("人事运营")){
  79. return "PersonnelOperation";
  80. }
  81. if(webPeronType.equals("人事主管")){
  82. return "PersonnelSupervisor";
  83. }
  84. return webPeronType;
  85. }
  86. }