controllerLg.ftl 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411
  1. <#assign package=table.variable.package>
  2. <#assign class=table.variable.class>
  3. <#assign classVar=table.variable.classVar>
  4. <#assign package=table.variable.package>
  5. <#assign comment=table.tableDesc>
  6. <#assign fieldList=table.fieldList>
  7. <#assign subTableList=table.subTableList>
  8. <#assign hasScript=0>
  9. <#assign hasIdentity=0>
  10. <#list fieldList as field>
  11. <#if field.valueFrom==1|| field.valueFrom==2>
  12. <#assign hasScript=1>
  13. <#elseif field.valueFrom==3>
  14. <#assign hasIdentity=1>
  15. </#if>
  16. </#list>
  17. package com.hotent.${system}.controller.${package};
  18. import java.io.PrintWriter;
  19. import net.sf.json.JSONArray;
  20. import net.sf.json.JSONObject;
  21. import com.hotent.core.page.PageBean;
  22. import com.hotent.core.util.StringUtil;
  23. import com.hotent.core.util.DateUtil;
  24. import java.util.HashMap;
  25. import java.util.Map;
  26. import java.util.List;
  27. import javax.annotation.Resource;
  28. import javax.servlet.http.HttpServletRequest;
  29. import javax.servlet.http.HttpServletResponse;
  30. import org.springframework.stereotype.Controller;
  31. import org.springframework.web.bind.annotation.RequestMapping;
  32. import com.hotent.platform.annotion.Action;
  33. import org.springframework.web.servlet.ModelAndView;
  34. import com.hotent.core.util.UniqueIdUtil;
  35. import com.hotent.core.web.util.RequestUtil;
  36. import com.hotent.core.web.controller.BaseController;
  37. import com.hotent.core.util.BeanUtils;
  38. import com.hotent.core.web.query.QueryFilter;
  39. import com.hotent.${system}.model.${package}.${class};
  40. import com.hotent.${system}.service.${package}.${class}Service;
  41. <#if subTableList?size != 0>
  42. <#list subTableList as subtable>
  43. import com.hotent.${system}.model.${subtable.variable.package}.${subtable.variable.class};
  44. </#list>
  45. </#if>
  46. import com.hotent.core.web.ResultMessage;
  47. <#if hasScript==1>
  48. import com.hotent.core.engine.GroovyScriptEngine;
  49. </#if>
  50. <#if hasIdentity==1>
  51. import com.hotent.platform.service.system.IdentityService;
  52. </#if>
  53. <#if flowKey?exists>
  54. import com.hotent.core.util.StringUtil;
  55. import com.hotent.core.api.util.ContextUtil;
  56. import com.hotent.core.bpm.model.ProcessCmd;
  57. import com.hotent.platform.model.bpm.ProcessRun;
  58. import com.hotent.platform.service.bpm.ProcessRunService;
  59. </#if>
  60. /**
  61. * 对象功能:${comment} 控制器类
  62. */
  63. @Controller
  64. @RequestMapping("/${system}/${package}/${classVar}/")
  65. public class ${class}Controller extends BaseController
  66. {
  67. @Resource
  68. private ${class}Service ${classVar}Service;
  69. <#if hasScript==1>
  70. @Resource
  71. private GroovyScriptEngine engine;
  72. </#if>
  73. <#if hasIdentity==1>
  74. @Resource
  75. private IdentityService identityService;
  76. </#if>
  77. <#if flowKey?exists>
  78. @Resource
  79. private ProcessRunService processRunService;
  80. </#if>
  81. /**
  82. * 添加或更新${comment}。
  83. * @param request
  84. * @param response
  85. * @param ${classVar} 添加或更新的实体
  86. * @return
  87. * @throws Exception
  88. */
  89. @RequestMapping("save")
  90. @Action(description="添加或更新${comment}")
  91. public void save(HttpServletRequest request, HttpServletResponse response,${class} ${classVar}) throws Exception
  92. {
  93. String resultMsg=null;
  94. String json=RequestUtil.getString(request, "json");
  95. if(StringUtil.isNotEmpty(json)){
  96. JSONObject obj = JSONObject.fromObject(json);
  97. ${classVar} = (${class})JSONObject.toBean(obj, ${class}.class);
  98. <#list fieldList as field>
  99. <#if field.fieldType=="date">
  100. ${classVar}.set${(field.fieldName)?cap_first}(DateUtil.parseDate(obj.getString("${field.fieldName}")));
  101. </#if>
  102. </#list>
  103. }
  104. try{
  105. if(${classVar}.get<#if table.isExternal==0>Id<#else>${table.pkField?cap_first}</#if>()==null){
  106. <#if table.isExternal==0>
  107. Long id=UniqueIdUtil.genId();
  108. ${classVar}.setId(id);
  109. <#else>
  110. Long ${table.pkField}=UniqueIdUtil.genId();
  111. ${classVar}.set${(table.pkField)?cap_first}(${table.pkField});
  112. </#if>
  113. <#if subTableList?size != 0>
  114. ${classVar}Service.addAll(${classVar});
  115. <#else>
  116. ${classVar}Service.add(${classVar});
  117. </#if>
  118. resultMsg=getText("添加","${comment}");
  119. }else{
  120. <#if subTableList?size != 0>
  121. ${classVar}Service.updateAll(${classVar});
  122. <#else>
  123. ${classVar}Service.update(${classVar});
  124. </#if>
  125. resultMsg=getText("更新","${comment}");
  126. }
  127. writeResultMessage(response.getWriter(),resultMsg,ResultMessage.Success);
  128. }catch(Exception e){
  129. writeResultMessage(response.getWriter(),resultMsg+","+e.getMessage(),ResultMessage.Fail);
  130. }
  131. }
  132. /**
  133. * 取得${comment}分页列表
  134. * @param request
  135. * @param response
  136. * @param page
  137. * @return
  138. * @throws Exception
  139. */
  140. @RequestMapping("getList")
  141. @Action(description="查看${comment}分页列表")
  142. public void getList(HttpServletRequest request,HttpServletResponse response) throws Exception
  143. {
  144. QueryFilter queryFilter=new QueryFilter(request,true,"${classVar}Item");
  145. List<${class}> list=${classVar}Service.getAll(queryFilter);
  146. sendJsonToWeb(list,response,queryFilter);
  147. }
  148. /**
  149. * 删除${comment}
  150. * @param request
  151. * @param response
  152. * @throws Exception
  153. */
  154. @RequestMapping("del")
  155. @Action(description="删除${comment}")
  156. public void del(HttpServletRequest request, HttpServletResponse response) throws Exception
  157. {
  158. String preUrl= RequestUtil.getPrePage(request);
  159. ResultMessage message=null;
  160. try{
  161. <#if table.isExternal==0>
  162. Long[] lAryId=RequestUtil.getLongAryByStr(request,"id");
  163. <#else>
  164. Long[] lAryId=RequestUtil.getLongAryByStr(request,"id");
  165. </#if>
  166. <#if subTableList?size != 0>
  167. ${classVar}Service.delAll(lAryId);
  168. message=new ResultMessage(ResultMessage.Success,"删除${comment}及其从表成功!");
  169. <#else>
  170. </#if>
  171. ${classVar}Service.delByIds(lAryId);
  172. message=new ResultMessage(ResultMessage.Success, "删除${comment}成功!");
  173. }catch(Exception ex){
  174. message=new ResultMessage(ResultMessage.Fail, "删除失败" + ex.getMessage());
  175. }
  176. writeResultMessage(response.getWriter(), message);
  177. getList(request,response);
  178. }
  179. /**
  180. * 编辑${comment}
  181. * @param request
  182. * @param response
  183. * @throws Exception
  184. */
  185. @RequestMapping("edit")
  186. @Action(description="编辑${comment}")
  187. public ModelAndView edit(HttpServletRequest request) throws Exception
  188. {
  189. <#if table.isExternal==0>
  190. Long id=RequestUtil.getLong(request,"id");
  191. <#else>
  192. Long ${table.pkField}=RequestUtil.getLong(request,"id");
  193. </#if>
  194. <#if flowKey?exists>
  195. Long runId=0L;
  196. ProcessRun processRun=processRunService.getByBusinessKey(<#if table.isExternal==0>id.toString()<#else>${table.pkField}.toString()</#if>);
  197. if(BeanUtils.isNotEmpty(processRun)){
  198. runId=processRun.getRunId();
  199. }
  200. </#if>
  201. String returnUrl=RequestUtil.getPrePage(request);
  202. <#if table.isExternal==0>
  203. ${class} ${classVar}=${classVar}Service.getById(id);
  204. <#else>
  205. ${class} ${classVar}=${classVar}Service.getById(${table.pkField});
  206. </#if>
  207. <#if hasScript==1||hasIdentity==1>
  208. if(BeanUtils.isEmpty(${classVar})){
  209. ${classVar}=new ${class}();
  210. <#list fieldList as field>
  211. <#if field.valueFrom!=0>
  212. <#if (field.valueFrom==1||field.valueFrom==2)>
  213. String ${field.fieldName}_script="${field.script?trim}";
  214. ${classVar}.set${field.fieldName?cap_first}(engine.executeObject(${field.fieldName}_script, null).toString());
  215. <#elseif (field.valueFrom==3)>
  216. String ${field.fieldName}_id=identityService.nextId("${field.identity}");
  217. ${classVar}.set${(field.fieldName)?cap_first}(${field.fieldName}_id);
  218. </#if>
  219. </#if>
  220. <#if field.fieldType=="date">
  221. <#if field.isCurrentDateStr==1>
  222. ${classVar}.set${field.fieldName?cap_first}(new Date());
  223. </#if>
  224. </#if>
  225. </#list>
  226. }
  227. </#if>
  228. <#if subTableList?size != 0>
  229. <#list subTableList as subtable>
  230. <#assign vars=subtable.variable>
  231. List<${subtable.variable.class}> ${subtable.variable.classVar}List=${classVar}Service.get${vars.classVar?cap_first}List(<#if table.isExternal==0>id<#else>${table.pkField}</#if>);
  232. </#list>
  233. </#if>
  234. return getAutoView().addObject("${classVar}",${classVar})
  235. <#if subTableList?size != 0>
  236. <#list subTableList as subtable>
  237. .addObject("${subtable.variable.classVar}List",${subtable.variable.classVar}List)
  238. </#list>
  239. </#if>
  240. <#if flowKey?exists>
  241. .addObject("runId", runId)
  242. </#if>
  243. .addObject("returnUrl",returnUrl);
  244. }
  245. /**
  246. * 取得${comment}明细
  247. * @param request
  248. * @param response
  249. * @return
  250. * @throws Exception
  251. */
  252. @RequestMapping("get")
  253. @Action(description="查看${comment}明细")
  254. public ModelAndView get(HttpServletRequest request, HttpServletResponse response) throws Exception
  255. {
  256. <#if table.isExternal==0>
  257. Long id=RequestUtil.getLong(request,"id");
  258. ${class} ${classVar}=${classVar}Service.getById(id);
  259. <#else>
  260. Long ${table.pkField}=RequestUtil.getLong(request,"id");
  261. ${class} ${classVar}=${classVar}Service.getById(${table.pkField});
  262. </#if>
  263. <#if flowKey?exists>
  264. Long runId=0L;
  265. ProcessRun processRun=processRunService.getByBusinessKey(<#if table.isExternal==0>id.toString()<#else>${table.pkField}.toString()</#if>);
  266. if(BeanUtils.isNotEmpty(processRun)){
  267. runId=processRun.getRunId();
  268. }
  269. </#if>
  270. <#if subTableList?size != 0>
  271. <#list subTableList as subtable>
  272. <#assign vars=subtable.variable>
  273. List<${vars.class}> ${vars.classVar}List=${classVar}Service.get${vars.classVar?cap_first}List(<#if table.isExternal==0>id<#else>${table.pkField}</#if>);
  274. </#list>
  275. return getAutoView().addObject("${classVar}",${classVar})
  276. <#if flowKey?exists>
  277. .addObject("runId", runId)
  278. </#if>
  279. <#list subTableList as subtable>
  280. .addObject("${subtable.variable.classVar}List",${subtable.variable.classVar}List)<#if !subtable_has_next>;</#if>
  281. </#list>
  282. <#else>
  283. return getAutoView().addObject("${classVar}", ${classVar})<#if flowKey?exists>.addObject("runId", runId)</#if>;
  284. </#if>
  285. }
  286. <#if flowKey?exists>
  287. /**
  288. * 流程url表单 绑定的表单明细
  289. * @param request
  290. * @param response
  291. * @return
  292. * @throws Exception
  293. */
  294. @RequestMapping("detail")
  295. @Action(description="表单明细")
  296. public ModelAndView detail(HttpServletRequest request, HttpServletResponse response) throws Exception
  297. {
  298. <#if table.isExternal==0>
  299. Long id=RequestUtil.getLong(request,"id");
  300. ${class} ${classVar} = ${classVar}Service.getById(id);
  301. <#else>
  302. Long ${table.pkField}=RequestUtil.getLong(request,"id");
  303. ${class} ${classVar}=${classVar}Service.getById(${table.pkField});
  304. </#if>
  305. <#if subTableList?exists && subTableList?size != 0>
  306. <#list subTableList as subtable>
  307. <#assign vars=subtable.variable>
  308. List<${vars.class}> ${vars.classVar}List=${classVar}Service.get${vars.classVar?cap_first}List(<#if table.isExternal==0>id<#else>${table.pkField}</#if>);
  309. </#list>
  310. return getAutoView().addObject("${classVar}",${classVar})
  311. <#list subTableList as subtable>
  312. .addObject("${subtable.variable.classVar}List",${subtable.variable.classVar}List)<#if !subtable_has_next>;</#if>
  313. </#list>
  314. <#else>
  315. return getAutoView().addObject("${classVar}", ${classVar});
  316. </#if>
  317. }
  318. /**
  319. * 流程url表单 绑定的表单编辑页面
  320. * @param request
  321. * @param response
  322. * @return
  323. * @throws Exception
  324. */
  325. @RequestMapping("modify")
  326. public ModelAndView modify(HttpServletRequest request, HttpServletResponse response) throws Exception
  327. {
  328. <#if table.isExternal==0>
  329. Long id=RequestUtil.getLong(request,"id");
  330. ${class} ${classVar} = ${classVar}Service.getById(id);
  331. <#else>
  332. Long ${table.pkField}=RequestUtil.getLong(request,"id");
  333. ${class} ${classVar}=${classVar}Service.getById(${table.pkField});
  334. </#if>
  335. <#if subTableList?exists && subTableList?size != 0>
  336. <#list subTableList as subtable>
  337. <#assign vars=subtable.variable>
  338. List<${vars.class}> ${vars.classVar}List=${classVar}Service.get${vars.classVar?cap_first}List(<#if table.isExternal==0>id<#else>${table.pkField}</#if>);
  339. </#list>
  340. return getAutoView().addObject("${classVar}",${classVar})
  341. <#list subTableList as subtable>
  342. .addObject("${subtable.variable.classVar}List",${subtable.variable.classVar}List)<#if !subtable_has_next>;</#if>
  343. </#list>
  344. <#else>
  345. return getAutoView().addObject("${classVar}", ${classVar});
  346. </#if>
  347. }
  348. /**
  349. * 启动流程
  350. * @param request
  351. * @param response
  352. * @return
  353. * @throws Exception
  354. */
  355. @RequestMapping("run")
  356. @Action(description="启动流程")
  357. public void run(HttpServletRequest request, HttpServletResponse response,${class} ${classVar}) throws Exception
  358. {
  359. <#if table.isExternal==0>
  360. Long id=RequestUtil.getLong(request,"id",0L);
  361. <#else>
  362. Long ${table.pkField}=RequestUtil.getLong(request,"${table.pkField}",0L);
  363. </#if>
  364. Integer isList=RequestUtil.getInt(request, "isList",0);
  365. ProcessCmd processCmd=new ProcessCmd();
  366. processCmd.setFlowKey("${flowKey}");
  367. processCmd.setUserAccount(ContextUtil.getCurrentUser().getAccount());
  368. try {
  369. if(<#if table.isExternal==0>id<#else>${table.pkField}</#if>!=0L){
  370. processCmd.setBusinessKey(Long.toString(<#if table.isExternal==0>id<#else>${table.pkField}</#if>));
  371. processRunService.startProcess(processCmd);
  372. if(isList==0){
  373. <#if subTableList?size==0>
  374. ${classVar}Service.update(${classVar});
  375. <#else>
  376. ${classVar}Service.updateAll(${classVar});
  377. </#if>
  378. }
  379. }else{
  380. Long genId=UniqueIdUtil.genId();
  381. processCmd.setBusinessKey(genId.toString());
  382. ${classVar}.set<#if table.isExternal==0>Id<#else>${table.pkField?cap_first}</#if>(genId);
  383. processRunService.startProcess(processCmd);
  384. <#if subTableList?size==0>
  385. ${classVar}Service.add(${classVar});
  386. <#else>
  387. ${classVar}Service.addAll(${classVar});
  388. </#if>
  389. }
  390. writeResultMessage(response.getWriter(), new ResultMessage(ResultMessage.Success, "启动流程成功"));
  391. } catch (Exception e) {
  392. writeResultMessage(response.getWriter(), new ResultMessage(ResultMessage.Fail, "启动流程失败"));
  393. }
  394. }
  395. </#if>
  396. }