cgform_controllerTemplate.ftl 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597
  1. <#if packageStyle == "service">
  2. package ${bussiPackage}.${entityPackage}.controller;
  3. import ${bussiPackage}.${entityPackage}.entity.${entityName}Entity;
  4. import ${bussiPackage}.${entityPackage}.service.${entityName}ServiceI;
  5. import ${bussiPackage}.${entityPackage}.page.${entityName}Page;
  6. <#list subTab as sub>
  7. import ${bussiPackage}.${sub.entityPackage}.entity.${sub.entityName}Entity;
  8. </#list>
  9. <#else>
  10. package ${bussiPackage}.controller.${entityPackage};
  11. import ${bussiPackage}.entity.${entityPackage}.${entityName}Entity;
  12. import ${bussiPackage}.service.${entityPackage}.${entityName}ServiceI;
  13. import ${bussiPackage}.page.${entityPackage}.${entityName}Page;
  14. <#list subTab as sub>
  15. import ${bussiPackage}.entity.${sub.entityPackage}.${sub.entityName}Entity;
  16. </#list>
  17. </#if>
  18. import java.util.ArrayList;
  19. import java.util.List;
  20. import java.text.SimpleDateFormat;
  21. import javax.servlet.http.HttpServletRequest;
  22. import javax.servlet.http.HttpServletResponse;
  23. import org.apache.log4j.Logger;
  24. import org.springframework.beans.factory.annotation.Autowired;
  25. import org.springframework.stereotype.Controller;
  26. import org.springframework.web.bind.annotation.RequestMapping;
  27. import org.springframework.web.bind.annotation.RequestMethod;
  28. import org.springframework.web.bind.annotation.ResponseBody;
  29. import org.springframework.web.servlet.ModelAndView;
  30. import org.jeecgframework.core.common.controller.BaseController;
  31. import org.jeecgframework.core.common.exception.BusinessException;
  32. import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery;
  33. import org.jeecgframework.core.common.model.json.AjaxJson;
  34. import org.jeecgframework.core.common.model.json.DataGrid;
  35. import org.jeecgframework.core.constant.Globals;
  36. import org.jeecgframework.core.util.ExceptionUtil;
  37. import org.jeecgframework.core.util.ResourceUtil;
  38. import org.jeecgframework.core.util.StringUtil;
  39. import org.jeecgframework.tag.core.easyui.TagUtil;
  40. import org.jeecgframework.web.system.pojo.base.TSDepart;
  41. import org.jeecgframework.web.system.service.SystemService;
  42. import org.jeecgframework.core.util.MyBeanUtils;
  43. import org.jeecgframework.poi.excel.ExcelImportUtil;
  44. import org.jeecgframework.poi.excel.entity.ExportParams;
  45. import org.jeecgframework.poi.excel.entity.ImportParams;
  46. import org.jeecgframework.poi.excel.entity.vo.NormalExcelConstants;
  47. import org.springframework.ui.ModelMap;
  48. import org.springframework.web.multipart.MultipartFile;
  49. import org.springframework.web.multipart.MultipartHttpServletRequest;
  50. import java.io.IOException;
  51. import java.util.Map;
  52. <#-- restful 通用方法生成 -->
  53. import org.springframework.http.ResponseEntity;
  54. import org.springframework.stereotype.Controller;
  55. import org.springframework.web.bind.annotation.PathVariable;
  56. import org.springframework.web.bind.annotation.RequestBody;
  57. import org.springframework.web.bind.annotation.RequestMapping;
  58. import org.springframework.web.bind.annotation.RequestMethod;
  59. import org.springframework.web.bind.annotation.ResponseBody;
  60. import org.springframework.web.bind.annotation.ResponseStatus;
  61. import org.springframework.http.HttpHeaders;
  62. import org.springframework.http.HttpStatus;
  63. import org.jeecgframework.core.beanvalidator.BeanValidators;
  64. import java.util.Set;
  65. import javax.validation.ConstraintViolation;
  66. import javax.validation.Validator;
  67. import java.net.URI;
  68. import org.springframework.http.MediaType;
  69. import org.springframework.web.util.UriComponentsBuilder;
  70. <#-- restful 通用方法生成 -->
  71. <#-- 列为文件类型的文件代码生成 -->
  72. <#assign fileFlag = false />
  73. <#list columns as filePo>
  74. <#if filePo.showType=='file'>
  75. <#assign fileFlag = true />
  76. </#if>
  77. </#list>
  78. <#if fileFlag==true>
  79. import org.jeecgframework.web.cgform.entity.upload.CgUploadEntity;
  80. import org.jeecgframework.web.cgform.service.config.CgFormFieldServiceI;
  81. import java.util.HashMap;
  82. </#if>
  83. <#-- 列为文件类型的文件代码生成 -->
  84. /**
  85. * @Title: Controller
  86. * @Description: ${ftl_description}
  87. * @author onlineGenerator
  88. * @date ${ftl_create_time}
  89. * @version V1.0
  90. *
  91. */
  92. @Controller
  93. @RequestMapping("/${entityName?uncap_first}Controller")
  94. public class ${entityName}Controller extends BaseController {
  95. /**
  96. * Logger for this class
  97. */
  98. private static final Logger logger = Logger.getLogger(${entityName}Controller.class);
  99. @Autowired
  100. private ${entityName}ServiceI ${entityName?uncap_first}Service;
  101. @Autowired
  102. private SystemService systemService;
  103. @Autowired
  104. private Validator validator;
  105. <#-- 列为文件类型的文件代码生成 -->
  106. <#if fileFlag==true>
  107. @Autowired
  108. private CgFormFieldServiceI cgFormFieldService;
  109. </#if>
  110. <#-- 列为文件类型的文件代码生成 -->
  111. /**
  112. * ${ftl_description}列表 页面跳转
  113. *
  114. * @return
  115. */
  116. @RequestMapping(params = "list")
  117. public ModelAndView list(HttpServletRequest request) {
  118. return new ModelAndView("${bussiPackage?replace(".","/")}/${entityPackage}/${entityName?uncap_first}List");
  119. }
  120. /**
  121. * easyui AJAX请求数据
  122. *
  123. * @param request
  124. * @param response
  125. * @param dataGrid
  126. * @param user
  127. */
  128. @RequestMapping(params = "datagrid")
  129. public void datagrid(${entityName}Entity ${entityName?uncap_first},HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
  130. CriteriaQuery cq = new CriteriaQuery(${entityName}Entity.class, dataGrid);
  131. //查询条件组装器
  132. org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, ${entityName?uncap_first});
  133. try{
  134. //自定义追加查询条件
  135. <#list columns as po>
  136. <#if po.isQuery =='Y' && po.queryMode =='group'>
  137. String query_${po.fieldName}_begin = request.getParameter("${po.fieldName}_begin");
  138. String query_${po.fieldName}_end = request.getParameter("${po.fieldName}_end");
  139. if(StringUtil.isNotEmpty(query_${po.fieldName}_begin)){
  140. <#if po.type == "java.util.Date">
  141. cq.ge("${po.fieldName}", new SimpleDateFormat("yyyy-MM-dd").parse(query_${po.fieldName}_begin));
  142. <#else>
  143. cq.ge("${po.fieldName}", Integer.parseInt(query_${po.fieldName}_begin));
  144. </#if>
  145. }
  146. if(StringUtil.isNotEmpty(query_${po.fieldName}_end)){
  147. <#if po.type == "java.util.Date">
  148. cq.le("${po.fieldName}", new SimpleDateFormat("yyyy-MM-dd").parse(query_${po.fieldName}_end));
  149. <#else>
  150. cq.le("${po.fieldName}", Integer.parseInt(query_${po.fieldName}_end));
  151. </#if>
  152. }
  153. </#if>
  154. </#list>
  155. }catch (Exception e) {
  156. throw new BusinessException(e.getMessage());
  157. }
  158. cq.add();
  159. this.${entityName?uncap_first}Service.getDataGridReturn(cq, true);
  160. TagUtil.datagrid(response, dataGrid);
  161. }
  162. /**
  163. * 删除${ftl_description}
  164. *
  165. * @return
  166. */
  167. @RequestMapping(params = "doDel")
  168. @ResponseBody
  169. public AjaxJson doDel(${entityName}Entity ${entityName?uncap_first}, HttpServletRequest request) {
  170. AjaxJson j = new AjaxJson();
  171. ${entityName?uncap_first} = systemService.getEntity(${entityName}Entity.class, ${entityName?uncap_first}.getId());
  172. String message = "${ftl_description}删除成功";
  173. try{
  174. ${entityName?uncap_first}Service.delMain(${entityName?uncap_first});
  175. systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
  176. }catch(Exception e){
  177. e.printStackTrace();
  178. message = "${ftl_description}删除失败";
  179. throw new BusinessException(e.getMessage());
  180. }
  181. j.setMsg(message);
  182. return j;
  183. }
  184. /**
  185. * 批量删除${ftl_description}
  186. *
  187. * @return
  188. */
  189. @RequestMapping(params = "doBatchDel")
  190. @ResponseBody
  191. public AjaxJson doBatchDel(String ids,HttpServletRequest request){
  192. AjaxJson j = new AjaxJson();
  193. String message = "${ftl_description}删除成功";
  194. try{
  195. for(String id:ids.split(",")){
  196. ${entityName}Entity ${entityName?uncap_first} = systemService.getEntity(${entityName}Entity.class,
  197. <#if cgformConfig.cgFormHead.jformPkType?if_exists?html == "UUID">
  198. id
  199. <#elseif cgformConfig.cgFormHead.jformPkType?if_exists?html == "NATIVE">
  200. Integer.parseInt(id)
  201. <#elseif cgformConfig.cgFormHead.jformPkType?if_exists?html == "SEQUENCE">
  202. Integer.parseInt(id)
  203. <#else>
  204. id
  205. </#if>
  206. );
  207. ${entityName?uncap_first}Service.delMain(${entityName?uncap_first});
  208. systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
  209. }
  210. }catch(Exception e){
  211. e.printStackTrace();
  212. message = "${ftl_description}删除失败";
  213. throw new BusinessException(e.getMessage());
  214. }
  215. j.setMsg(message);
  216. return j;
  217. }
  218. /**
  219. * 添加${ftl_description}
  220. *
  221. * @param ids
  222. * @return
  223. */
  224. @RequestMapping(params = "doAdd")
  225. @ResponseBody
  226. public AjaxJson doAdd(${entityName}Entity ${entityName?uncap_first},${entityName}Page ${entityName?uncap_first}Page, HttpServletRequest request) {
  227. <#list subTab as sub>
  228. List<${sub.entityName}Entity> ${sub.entityName?uncap_first}List = ${entityName?uncap_first}Page.get${sub.entityName}List();
  229. </#list>
  230. AjaxJson j = new AjaxJson();
  231. String message = "添加成功";
  232. try{
  233. ${entityName?uncap_first}Service.addMain(${entityName?uncap_first}, <#list subTab as sub>${sub.entityName?uncap_first}List<#if sub_has_next>,</#if></#list>);
  234. systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);
  235. }catch(Exception e){
  236. e.printStackTrace();
  237. message = "${ftl_description}添加失败";
  238. throw new BusinessException(e.getMessage());
  239. }
  240. j.setMsg(message);
  241. <#-- 列为文件类型的文件代码生成 -->
  242. <#if fileFlag==true>
  243. j.setObj(${entityName?uncap_first});
  244. </#if>
  245. <#-- 列为文件类型的文件代码生成 -->
  246. return j;
  247. }
  248. /**
  249. * 更新${ftl_description}
  250. *
  251. * @param ids
  252. * @return
  253. */
  254. @RequestMapping(params = "doUpdate")
  255. @ResponseBody
  256. public AjaxJson doUpdate(${entityName}Entity ${entityName?uncap_first},${entityName}Page ${entityName?uncap_first}Page, HttpServletRequest request) {
  257. <#list subTab as sub>
  258. List<${sub.entityName}Entity> ${sub.entityName?uncap_first}List = ${entityName?uncap_first}Page.get${sub.entityName}List();
  259. </#list>
  260. AjaxJson j = new AjaxJson();
  261. String message = "更新成功";
  262. try{
  263. ${entityName?uncap_first}Service.updateMain(${entityName?uncap_first}, <#list subTab as sub>${sub.entityName?uncap_first}List<#if sub_has_next>,</#if></#list>);
  264. systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
  265. }catch(Exception e){
  266. e.printStackTrace();
  267. message = "更新${ftl_description}失败";
  268. throw new BusinessException(e.getMessage());
  269. }
  270. j.setMsg(message);
  271. return j;
  272. }
  273. /**
  274. * ${ftl_description}新增页面跳转
  275. *
  276. * @return
  277. */
  278. @RequestMapping(params = "goAdd")
  279. public ModelAndView goAdd(${entityName}Entity ${entityName?uncap_first}, HttpServletRequest req) {
  280. if (StringUtil.isNotEmpty(${entityName?uncap_first}.getId())) {
  281. ${entityName?uncap_first} = ${entityName?uncap_first}Service.getEntity(${entityName}Entity.class, ${entityName?uncap_first}.getId());
  282. req.setAttribute("${entityName?uncap_first}Page", ${entityName?uncap_first});
  283. }
  284. return new ModelAndView("${bussiPackage?replace(".","/")}/${entityPackage}/${entityName?uncap_first}-add");
  285. }
  286. /**
  287. * ${ftl_description}编辑页面跳转
  288. *
  289. * @return
  290. */
  291. @RequestMapping(params = "goUpdate")
  292. public ModelAndView goUpdate(${entityName}Entity ${entityName?uncap_first}, HttpServletRequest req) {
  293. if (StringUtil.isNotEmpty(${entityName?uncap_first}.getId())) {
  294. ${entityName?uncap_first} = ${entityName?uncap_first}Service.getEntity(${entityName}Entity.class, ${entityName?uncap_first}.getId());
  295. req.setAttribute("${entityName?uncap_first}Page", ${entityName?uncap_first});
  296. }
  297. return new ModelAndView("${bussiPackage?replace(".","/")}/${entityPackage}/${entityName?uncap_first}-update");
  298. }
  299. <#list subTab as sub>
  300. /**
  301. * 加载明细列表[${sub.ftlDescription}]
  302. *
  303. * @return
  304. */
  305. @RequestMapping(params = "${sub.entityName?uncap_first}List")
  306. public ModelAndView ${sub.entityName?uncap_first}List(${entityName}Entity ${entityName?uncap_first}, HttpServletRequest req) {
  307. //===================================================================================
  308. //获取参数
  309. <#list sub.foreignKeys as key>
  310. <#if key?lower_case?index_of("${jeecg_table_id}")!=-1>
  311. Object ${jeecg_table_id}${sub_index} = ${entityName?uncap_first}.get${jeecg_table_id?cap_first}();
  312. <#else>
  313. Object ${key?uncap_first}${sub_index} = ${entityName?uncap_first}.get${key}();
  314. </#if>
  315. </#list>
  316. //===================================================================================
  317. //查询-${sub.ftlDescription}
  318. String hql${sub_index} = "from ${sub.entityName}Entity where 1 = 1<#list sub.foreignKeys as key> AND ${key?uncap_first} = ? </#list>";
  319. try{
  320. List<${sub.entityName}Entity> ${sub.entityName?uncap_first}EntityList = systemService.findHql(hql${sub_index},<#list sub.foreignKeys as key><#if key?lower_case?index_of("${jeecg_table_id}")!=-1>${jeecg_table_id}${sub_index}<#else>${key?uncap_first}${sub_index}</#if><#if key_has_next>,</#if></#list>);
  321. req.setAttribute("${sub.entityName?uncap_first}List", ${sub.entityName?uncap_first}EntityList);
  322. }catch(Exception e){
  323. logger.info(e.getMessage());
  324. }
  325. return new ModelAndView("${bussiPackage?replace(".","/")}/${sub.entityPackage}/${sub.entityName?uncap_first}List");
  326. }
  327. </#list>
  328. /**
  329. * 导出excel
  330. *
  331. * @param request
  332. * @param response
  333. */
  334. @RequestMapping(params = "exportXls")
  335. public String exportXls(${entityName}Entity ${entityName?uncap_first},HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid,ModelMap map) {
  336. CriteriaQuery cq = new CriteriaQuery(${entityName}Entity.class, dataGrid);
  337. //查询条件组装器
  338. org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, ${entityName?uncap_first});
  339. try{
  340. //自定义追加查询条件
  341. }catch (Exception e) {
  342. throw new BusinessException(e.getMessage());
  343. }
  344. cq.add();
  345. List<${entityName}Entity> list=this.${entityName?uncap_first}Service.getListByCriteriaQuery(cq, false);
  346. List<${entityName}Page> pageList=new ArrayList<${entityName}Page>();
  347. if(list!=null&&list.size()>0){
  348. for(${entityName}Entity entity:list){
  349. try{
  350. ${entityName}Page page=new ${entityName}Page();
  351. MyBeanUtils.copyBeanNotNull2Bean(entity,page);
  352. <#list subTab as sub>
  353. <#list sub.foreignKeys as key>
  354. <#if key?lower_case?index_of("${jeecg_table_id}")!=-1>
  355. Object ${jeecg_table_id}${sub_index} = entity.get${jeecg_table_id?cap_first}();
  356. <#else>
  357. Object ${key?uncap_first}${sub_index} = entity.get${key}();
  358. </#if>
  359. </#list>
  360. String hql${sub_index} = "from ${sub.entityName}Entity where 1 = 1<#list sub.foreignKeys as key> AND ${key?uncap_first} = ? </#list>";
  361. List<${sub.entityName}Entity> ${sub.entityName?uncap_first}EntityList = systemService.findHql(hql${sub_index},<#list sub.foreignKeys as key><#if key?lower_case?index_of("${jeecg_table_id}")!=-1>${jeecg_table_id}${sub_index}<#else>${key?uncap_first}${sub_index}</#if><#if key_has_next>,</#if></#list>);
  362. page.set${sub.entityName}List(${sub.entityName?uncap_first}EntityList);
  363. </#list>
  364. pageList.add(page);
  365. }catch(Exception e){
  366. logger.info(e.getMessage());
  367. }
  368. }
  369. }
  370. map.put(NormalExcelConstants.FILE_NAME,"${ftl_description}");
  371. map.put(NormalExcelConstants.CLASS,${entityName}Page.class);
  372. map.put(NormalExcelConstants.PARAMS,new ExportParams("${ftl_description}列表", "导出人:Jeecg",
  373. "导出信息"));
  374. map.put(NormalExcelConstants.DATA_LIST,pageList);
  375. return NormalExcelConstants.JEECG_EXCEL_VIEW;
  376. }
  377. /**
  378. * 通过excel导入数据
  379. * @param request
  380. * @param
  381. * @return
  382. */
  383. @RequestMapping(params = "importExcel", method = RequestMethod.POST)
  384. @ResponseBody
  385. public AjaxJson importExcel(HttpServletRequest request, HttpServletResponse response) {
  386. AjaxJson j = new AjaxJson();
  387. MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
  388. Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
  389. for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
  390. MultipartFile file = entity.getValue();// 获取上传文件对象
  391. ImportParams params = new ImportParams();
  392. params.setTitleRows(2);
  393. params.setHeadRows(2);
  394. params.setNeedSave(true);
  395. try {
  396. List<${entityName}Page> list = ExcelImportUtil.importExcel(file.getInputStream(), ${entityName}Page.class, params);
  397. ${entityName}Entity entity1=null;
  398. for (${entityName}Page page : list) {
  399. entity1=new ${entityName}Entity();
  400. MyBeanUtils.copyBeanNotNull2Bean(page,entity1);
  401. ${entityName?uncap_first}Service.addMain(entity1, <#list subTab as sub>page.get${sub.entityName}List()<#if sub_has_next>,</#if></#list>);
  402. }
  403. j.setMsg("文件导入成功!");
  404. } catch (Exception e) {
  405. j.setMsg("文件导入失败!");
  406. logger.error(ExceptionUtil.getExceptionMessage(e));
  407. }finally{
  408. try {
  409. file.getInputStream().close();
  410. } catch (IOException e) {
  411. e.printStackTrace();
  412. }
  413. }
  414. }
  415. return j;
  416. }
  417. /**
  418. * 导出excel 使模板
  419. */
  420. @RequestMapping(params = "exportXlsByT")
  421. public String exportXlsByT(ModelMap map) {
  422. map.put(NormalExcelConstants.FILE_NAME,"${ftl_description}");
  423. map.put(NormalExcelConstants.CLASS,${entityName}Page.class);
  424. map.put(NormalExcelConstants.PARAMS,new ExportParams("${ftl_description}列表", "导出人:"+ ResourceUtil.getSessionUser().getRealName(),
  425. "导出信息"));
  426. map.put(NormalExcelConstants.DATA_LIST,new ArrayList());
  427. return NormalExcelConstants.JEECG_EXCEL_VIEW;
  428. }
  429. /**
  430. * 导入功能跳转
  431. *
  432. * @return
  433. */
  434. @RequestMapping(params = "upload")
  435. public ModelAndView upload(HttpServletRequest req) {
  436. req.setAttribute("controller_name", "${entityName?uncap_first}Controller");
  437. return new ModelAndView("common/upload/pub_excel_upload");
  438. }
  439. <#list buttons as btn>
  440. <#if btn.buttonStyle =='button' && btn.optType=='action'>
  441. /**
  442. * 自定义按钮-sql增强-${btn.buttonName}
  443. * @param ids
  444. * @return
  445. */
  446. @RequestMapping(params = "do${btn.buttonCode?cap_first}")
  447. @ResponseBody
  448. public AjaxJson do${btn.buttonCode?cap_first}(${entityName}Entity ${entityName?uncap_first}, HttpServletRequest request) {
  449. AjaxJson j = new AjaxJson();
  450. message = "${btn.buttonName}成功";
  451. ${entityName}Entity t = ${entityName?uncap_first}Service.get(${entityName}Entity.class, ${entityName?uncap_first}.getId());
  452. try{
  453. ${entityName?uncap_first}Service.do${btn.buttonCode?cap_first}Sql(t);
  454. systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
  455. }catch(Exception e){
  456. e.printStackTrace();
  457. message = "${btn.buttonName}失败";
  458. }
  459. j.setMsg(message);
  460. return j;
  461. }
  462. </#if>
  463. </#list>
  464. <#-- restful 通用方法生成 -->
  465. @RequestMapping(method = RequestMethod.GET)
  466. @ResponseBody
  467. public List<${entityName}Entity> list() {
  468. List<${entityName}Entity> list${entityName}s=${entityName?uncap_first}Service.getList(${entityName}Entity.class);
  469. return list${entityName}s;
  470. }
  471. @RequestMapping(value = "/{id}", method = RequestMethod.GET)
  472. @ResponseBody
  473. public ResponseEntity<?> get(@PathVariable("id") String id) {
  474. ${entityName}Entity task = ${entityName?uncap_first}Service.get(${entityName}Entity.class, id);
  475. if (task == null) {
  476. return new ResponseEntity(HttpStatus.NOT_FOUND);
  477. }
  478. return new ResponseEntity(task, HttpStatus.OK);
  479. }
  480. @RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
  481. @ResponseBody
  482. public ResponseEntity<?> create(@RequestBody ${entityName}Page ${entityName?uncap_first}Page, UriComponentsBuilder uriBuilder) {
  483. //调用JSR303 Bean Validator进行校验,如果出错返回含400错误码及json格式的错误信息.
  484. Set<ConstraintViolation<${entityName}Page>> failures = validator.validate(${entityName?uncap_first}Page);
  485. if (!failures.isEmpty()) {
  486. return new ResponseEntity(BeanValidators.extractPropertyAndMessage(failures), HttpStatus.BAD_REQUEST);
  487. }
  488. //保存
  489. <#list subTab as sub>
  490. List<${sub.entityName}Entity> ${sub.entityName?uncap_first}List = ${entityName?uncap_first}Page.get${sub.entityName}List();
  491. </#list>
  492. ${entityName}Entity ${entityName?uncap_first} = new ${entityName}Entity();
  493. try{
  494. MyBeanUtils.copyBeanNotNull2Bean(${entityName?uncap_first},${entityName?uncap_first}Page);
  495. }catch(Exception e){
  496. logger.info(e.getMessage());
  497. }
  498. ${entityName?uncap_first}Service.addMain(${entityName?uncap_first}, <#list subTab as sub>${sub.entityName?uncap_first}List<#if sub_has_next>,</#if></#list>);
  499. //按照Restful风格约定,创建指向新任务的url, 也可以直接返回id或对象.
  500. String id = ${entityName?uncap_first}Page.getId();
  501. URI uri = uriBuilder.path("/rest/${entityName?uncap_first}Controller/" + id).build().toUri();
  502. HttpHeaders headers = new HttpHeaders();
  503. headers.setLocation(uri);
  504. return new ResponseEntity(headers, HttpStatus.CREATED);
  505. }
  506. @RequestMapping(value = "/{id}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE)
  507. public ResponseEntity<?> update(@RequestBody ${entityName}Page ${entityName?uncap_first}Page) {
  508. //调用JSR303 Bean Validator进行校验,如果出错返回含400错误码及json格式的错误信息.
  509. Set<ConstraintViolation<${entityName}Page>> failures = validator.validate(${entityName?uncap_first}Page);
  510. if (!failures.isEmpty()) {
  511. return new ResponseEntity(BeanValidators.extractPropertyAndMessage(failures), HttpStatus.BAD_REQUEST);
  512. }
  513. //保存
  514. <#list subTab as sub>
  515. List<${sub.entityName}Entity> ${sub.entityName?uncap_first}List = ${entityName?uncap_first}Page.get${sub.entityName}List();
  516. </#list>
  517. ${entityName}Entity ${entityName?uncap_first} = new ${entityName}Entity();
  518. try{
  519. MyBeanUtils.copyBeanNotNull2Bean(${entityName?uncap_first},${entityName?uncap_first}Page);
  520. }catch(Exception e){
  521. logger.info(e.getMessage());
  522. }
  523. ${entityName?uncap_first}Service.updateMain(${entityName?uncap_first}, <#list subTab as sub>${sub.entityName?uncap_first}List<#if sub_has_next>,</#if></#list>);
  524. //按Restful约定,返回204状态码, 无内容. 也可以返回200状态码.
  525. return new ResponseEntity(HttpStatus.NO_CONTENT);
  526. }
  527. @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
  528. @ResponseStatus(HttpStatus.NO_CONTENT)
  529. public void delete(@PathVariable("id") String id) {
  530. ${entityName}Entity ${entityName?uncap_first} = ${entityName?uncap_first}Service.get(${entityName}Entity.class, id);
  531. ${entityName?uncap_first}Service.delMain(${entityName?uncap_first});
  532. }
  533. <#-- restful 通用方法生成 -->
  534. <#-- 列为文件类型的文件代码生成 -->
  535. <#if fileFlag==true>
  536. /**
  537. * 获取文件附件信息
  538. *
  539. * @param id ${entityName?uncap_first}主键id
  540. */
  541. @RequestMapping(params = "getFiles")
  542. @ResponseBody
  543. public AjaxJson getFiles(String id){
  544. List<CgUploadEntity> uploadBeans = cgFormFieldService.findByProperty(CgUploadEntity.class, "cgformId", id);
  545. List<Map<String,Object>> files = new ArrayList<Map<String,Object>>(0);
  546. for(CgUploadEntity b:uploadBeans){
  547. String title = b.getAttachmenttitle();//附件名
  548. String fileKey = b.getId();//附件主键
  549. String path = b.getRealpath();//附件路径
  550. String field = b.getCgformField();//表单中作为附件控件的字段
  551. Map<String, Object> file = new HashMap<String, Object>();
  552. file.put("title", title);
  553. file.put("fileKey", fileKey);
  554. file.put("path", path);
  555. file.put("field", field==null?"":field);
  556. files.add(file);
  557. }
  558. AjaxJson j = new AjaxJson();
  559. j.setObj(files);
  560. return j;
  561. }
  562. </#if>
  563. <#-- 列为文件类型的文件代码生成 -->
  564. }