9d4cc12b0fbbe9786f4cbb0bef605ef1171efeae.svn-base 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. package com.kingdee.shr.compensation.web.handler.integrate;
  2. import java.sql.SQLException;
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5. import java.util.List;
  6. import java.util.Map;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9. import org.apache.commons.lang3.StringUtils;
  10. import org.apache.log4j.Logger;
  11. import org.springframework.ui.ModelMap;
  12. import com.google.common.collect.Maps;
  13. import com.kingdee.bos.BOSException;
  14. import com.kingdee.bos.Context;
  15. import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
  16. import com.kingdee.eas.common.EASBizException;
  17. import com.kingdee.eas.framework.CoreBaseInfo;
  18. import com.kingdee.eas.util.app.DbUtil;
  19. import com.kingdee.jdbc.rowset.IRowSet;
  20. import com.kingdee.shr.base.syssetting.context.SHRContext;
  21. import com.kingdee.shr.base.syssetting.exception.SHRWebException;
  22. import com.kingdee.shr.base.syssetting.exception.ShrWebBizException;
  23. import com.kingdee.shr.base.syssetting.web.json.JSONUtils;
  24. import com.kingdee.shr.compensation.app.integrate.BatchSubmitShemeBillFactory;
  25. import com.kingdee.shr.compensation.app.integrate.BatchSubmitShemeBillInfo;
  26. import com.kingdee.shr.compensation.app.integrate.CalSubmitSchemeFactory;
  27. import com.kingdee.shr.compensation.app.integrate.CalSubmitSchemeInfo;
  28. import com.kingdee.shr.compensation.util.columnModel.CmpColumnModelWrapper;
  29. import com.kingdee.shr.compensation.util.columnModel.CmpColumnModels;
  30. import com.kingdee.shr.customer.gtiit.helper.CmpDisplayViewAnalyzing;
  31. /**
  32. * 专业用户提报单
  33. * @author issuser
  34. *
  35. */
  36. public class BatchSubmitShemeBillEditHandlerEx extends BatchSubmitShemeBillEditHandler {
  37. private static Logger logger =
  38. Logger.getLogger("com.kingdee.shr.compensation.web.handler.integrate.BatchSubmitShemeBillEditHandlerEx");
  39. @Override
  40. protected void beforeSave(HttpServletRequest request,
  41. HttpServletResponse respone, CoreBaseInfo model) throws SHRWebException {
  42. super.beforeSave(request, respone, model);
  43. }
  44. @Override
  45. public String getEditGridColModelAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap)
  46. throws SHRWebException {
  47. String submitSchemeId = request.getParameter("submitSchemeId");
  48. if (StringUtils.isEmpty(submitSchemeId)) {
  49. JSONUtils.writeJson(response, modelMap);
  50. return null;
  51. } else {
  52. boolean dynamicColmunRequired = this.isDynamicColmunRequired(request);
  53. Map<String, Object> params = Maps.newHashMap();
  54. params.put("datasource", Integer.valueOf(request.getParameter("datasource")));
  55. params.put("costTypeId", request.getParameter("costTypeId"));
  56. params.put("dynamicColmunRequired", dynamicColmunRequired);
  57. params.put("hrOrgUnitId", request.getParameter("hrOrgUnitId"));
  58. Context ctx = SHRContext.getInstance().getContext();
  59. CmpColumnModels cmpColumnModels = this.getEntryGenerator().getEntryColumnModels(ctx, submitSchemeId, params);
  60. assembleAddNewPropName(ctx, cmpColumnModels);
  61. modelMap.put("colNames", cmpColumnModels.getColNames());
  62. modelMap.put("colModel", cmpColumnModels.getColModel());
  63. modelMap.put("defaultSortname", (Object)null);
  64. CalSubmitSchemeInfo schemeInfo;
  65. try {
  66. schemeInfo = CalSubmitSchemeFactory.getLocalInstance(ctx).getCalSubmitSchemeInfo(new ObjectUuidPK(submitSchemeId));
  67. } catch (EASBizException var11) {
  68. throw new ShrWebBizException(var11.getMessage(), var11);
  69. } catch (BOSException var12) {
  70. throw new SHRWebException(var12.getMessage(), var12);
  71. }
  72. modelMap.put("description", schemeInfo.getDescription());
  73. JSONUtils.writeJson(response, modelMap);
  74. return null;
  75. }
  76. }
  77. /**
  78. * 自定义字段添加
  79. * @param ctx
  80. * @param cmpColumnModels
  81. */
  82. @SuppressWarnings({ "unchecked", "rawtypes" })
  83. public void assembleAddNewPropName(Context ctx, CmpColumnModels cmpColumnModels) {
  84. Map<String, Map<String, Boolean>> attrMap = null;
  85. try {
  86. attrMap = CmpDisplayViewAnalyzing.complementDefaultField(ctx, "com.kingdee.shr.compensation.app.integrate.BatchSubmitShemeBill.form.display");
  87. } catch (SHRWebException e) {
  88. e.printStackTrace();
  89. }
  90. String tempPropName = "备注";
  91. if(!(ctx.getLocale().toString().equalsIgnoreCase("zh_CN") || ctx.getLocale().toString().equalsIgnoreCase("l2") || ctx.getLocale().toString().equalsIgnoreCase("L2"))) {
  92. tempPropName = "Remark";
  93. }
  94. Map<String, Boolean> attr = attrMap == null ? new HashMap() : (Map)attrMap.get("remark");
  95. cmpColumnModels.add(tempPropName, CmpColumnModelWrapper.createTextColModel("remark", tempPropName, 250).assembleTextInputEditOptions(false, 500).frozen((Boolean)((Map)attr).get("frozen")).hidden((Boolean)((Map)attr).get("hidden")).key().get());
  96. }
  97. @Override
  98. protected void verifyModel(HttpServletRequest request, HttpServletResponse response, CoreBaseInfo model)
  99. throws SHRWebException {
  100. super.verifyModel(request, response, model);
  101. Context ctx = SHRContext.getInstance().getContext();
  102. BatchSubmitShemeBillInfo info = (BatchSubmitShemeBillInfo) model;
  103. if(StringUtils.isNotBlank(info.getString("id"))) {
  104. try {
  105. info = BatchSubmitShemeBillFactory.getLocalInstance(ctx).getBatchSubmitShemeBillInfo(new ObjectUuidPK(info.getString("id")));
  106. } catch (EASBizException e) {
  107. e.printStackTrace();
  108. } catch (BOSException e) {
  109. e.printStackTrace();
  110. }
  111. }
  112. //参数校验
  113. BatchSubmitSchemeUtils.checkExists(info);
  114. }
  115. @Override
  116. protected void beforeSubmit(HttpServletRequest request, HttpServletResponse response, CoreBaseInfo model)
  117. throws SHRWebException {
  118. super.beforeSubmit(request, response, model);
  119. Context ctx = SHRContext.getInstance().getContext();
  120. BatchSubmitShemeBillInfo info = (BatchSubmitShemeBillInfo) model;
  121. if(StringUtils.isNotBlank(info.getString("id"))) {
  122. try {
  123. info = BatchSubmitShemeBillFactory.getLocalInstance(ctx).getBatchSubmitShemeBillInfo(new ObjectUuidPK(info.getString("id")));
  124. } catch (EASBizException e) {
  125. e.printStackTrace();
  126. } catch (BOSException e) {
  127. e.printStackTrace();
  128. }
  129. }
  130. //校验员工+提报月+方案只能提交一次
  131. BatchSubmitSchemeUtils.checkSubmitCount(info);
  132. //参数校验
  133. BatchSubmitSchemeUtils.checkExists(info);
  134. //校验只能提交发生日期和提报日期在一个月内的单据
  135. BatchSubmitSchemeUtils.checkSubmitDate(info);
  136. //校验分录人员是否重复
  137. BatchSubmitSchemeUtils.checkPersonRepeat(info);
  138. //校验员工+方案+发生日期不能重复
  139. BatchSubmitSchemeUtils.checkSubmitRepeat(info);
  140. }
  141. /**
  142. * 获取提报方案中数据类型为数值的提报项目字段
  143. * @param request
  144. * @param response
  145. * @param modelMap
  146. * @throws SHRWebException
  147. */
  148. public void getSchemeItemFildsAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException {
  149. Context ctx = SHRContext.getInstance().getContext();
  150. //提报方案ID
  151. String calSchemeId = request.getParameter("calSchemeId");
  152. List<String> list = new ArrayList<String>();
  153. String sql = "select b.FIELDSN from T_HR_SCalSubmitSchemeItem a left join T_HR_SCalSubmitItem b on a.FCALSUBMITITEMID = b.fid where a.FISSHOW = '1' and a.FSTATE = '1' and a.FCALSUBMITSCHEMEID = '"+calSchemeId+"'";
  154. try {
  155. IRowSet iRowSet = DbUtil.executeQuery(ctx, sql);
  156. while(iRowSet.next()) {
  157. list.add("S"+iRowSet.getString("FIELDSN"));
  158. }
  159. } catch (BOSException e) {
  160. e.printStackTrace();
  161. } catch (SQLException e) {
  162. e.printStackTrace();
  163. }
  164. modelMap.put("schemeItemList", list);
  165. JSONUtils.writeJson(response, modelMap);
  166. }
  167. }