ServiceImpMarco.vm 49 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037
  1. ##通用参数
  2. #parse("PublicMacro/ConstantMarco.vm")
  3. #ConstantParams()
  4. #set($mapObject ="Map<String, Object>")
  5. ##创建QueryWrapper
  6. #macro(CreateWrapper)
  7. MPJLambdaWrapper<${Entity}> wrapper = JoinWrappers
  8. #foreach($item in $allTableNameList)
  9. #set($TableEntity = "${item.table.substring(0,1).toUpperCase()}${item.table.substring(1)}")
  10. #if(${item.tableTag} =='main')
  11. #set($mainRelTable = "${item.initName}")
  12. .lambda("${item.initName}",${TableEntity}Entity.class)
  13. #end
  14. #if(${item.tableTag} =='sub-jnpf')
  15. .selectAssociation(${TableEntity}Entity.class,${Entity}::get${TableEntity})
  16. .leftJoin(${TableEntity}Entity.class,"${item.initName}",
  17. #if($logicalDelete)
  18. t-> t.eq(${TableEntity}Entity::get${item.tableField},${Entity}::get${item.relationField})
  19. .isNull(${TableEntity}Entity::getDeleteMark)
  20. #else
  21. ${TableEntity}Entity::get${item.tableField},${Entity}::get${item.relationField}
  22. #end
  23. )
  24. #end
  25. #if(${item.tableTag} =='sub')
  26. .selectCollection(${TableEntity}Entity.class,${Entity}::get${TableEntity})
  27. .leftJoin(${TableEntity}Entity.class,"${item.initName}",
  28. #if($logicalDelete)
  29. t-> t.eq(${TableEntity}Entity::get${item.tableField},${Entity}::get${item.relationField})
  30. .isNull(${TableEntity}Entity::getDeleteMark)
  31. #else
  32. ${TableEntity}Entity::get${item.tableField},${Entity}::get${item.relationField}
  33. #end
  34. )
  35. #end
  36. #end
  37. .selectAll(${Name}Entity.class);
  38. #end
  39. ##创建QueryWrapper2
  40. #macro(CreateWrapper2)
  41. MPJLambdaWrapper<${Entity}> wrapper2 = JoinWrappers
  42. #foreach($item in $allTableNameList)
  43. #set($TableEntity = "${item.table.substring(0,1).toUpperCase()}${item.table.substring(1)}")
  44. #if(${item.tableTag} =='main')
  45. .lambda("${item.initName}",${TableEntity}Entity.class)
  46. #end
  47. #if(${item.tableTag} =='sub-jnpf')
  48. .leftJoin(${TableEntity}Entity.class,"${item.initName}",
  49. #if($logicalDelete)
  50. t-> t.eq(${TableEntity}Entity::get${item.tableField},${Entity}::get${item.relationField})
  51. .isNull(${TableEntity}Entity::getDeleteMark)
  52. #else
  53. ${TableEntity}Entity::get${item.tableField},${Entity}::get${item.relationField}
  54. #end
  55. )
  56. #end
  57. #if(${item.tableTag} =='sub')
  58. .leftJoin(${TableEntity}Entity.class,"${item.initName}",
  59. #if($logicalDelete)
  60. t-> t.eq(${TableEntity}Entity::get${item.tableField},${Entity}::get${item.relationField})
  61. .isNull(${TableEntity}Entity::getDeleteMark)
  62. #else
  63. ${TableEntity}Entity::get${item.tableField},${Entity}::get${item.relationField}
  64. #end
  65. )
  66. #end
  67. #end
  68. .distinct().select(${Name}Entity::get${peimaryKeyName});
  69. #end
  70. ##权限查询条件拼接
  71. #macro(CreateDataPermission $menuIdModel)
  72. boolean pcPermission = ${pcDataPermisson};
  73. boolean appPermission = ${appDataPermisson};
  74. if(isPc && pcPermission){
  75. if (!userProvider.get().getIsAdministrator()){
  76. #foreach($child in ${allTableNameList})
  77. #set($ModelName= "${child.table.substring(0,1).toUpperCase()}${child.table.substring(1)}")
  78. #set($modelName ="${child.table.substring(0,1).toLowerCase()}${child.table.substring(1)}")
  79. #set($modelNum = "${modelName}Num")
  80. #set($initName = "${child.initName}")
  81. #set($modelQueryWrapper = "${modelName}QueryWrapper")
  82. #if(!${child.tableField})
  83. Object ${modelName}Obj=generaterSwapUtil.getAuthorizeCondition(new QueryModel(${modelQueryWrapper},${ModelName}Entity.class,${menuIdModel}.getMenuId(),#if(${DS})"${DS}"#else"0"#end));
  84. if (ObjectUtil.isEmpty(${modelName}Obj)){
  85. return new ArrayList<>();
  86. } else {
  87. ${modelQueryWrapper} = (QueryWrapper<${ModelName}Entity>)${modelName}Obj;
  88. }
  89. #end
  90. #end
  91. }
  92. }
  93. if(!isPc && appPermission){
  94. if (!userProvider.get().getIsAdministrator()){
  95. #foreach($child in ${allTableNameList})
  96. #set($ModelName= "${child.table.substring(0,1).toUpperCase()}${child.table.substring(1)}")
  97. #set($modelName ="${child.table.substring(0,1).toLowerCase()}${child.table.substring(1)}")
  98. #set($modelNum = "${modelName}Num")
  99. #set($modelQueryWrapper = "${modelName}QueryWrapper")
  100. #if($child.tableTag =='main')
  101. Object ${modelName}Obj=generaterSwapUtil.getAuthorizeCondition(new QueryModel(${modelQueryWrapper},${ModelName}Entity.class,${menuIdModel}.getMenuId(),#if(${DS})"${DS}"#else"0"#end));
  102. if (ObjectUtil.isEmpty(${modelName}Obj)){
  103. return new ArrayList<>();
  104. } else {
  105. ${modelQueryWrapper} = (QueryWrapper<${ModelName}Entity>)${modelName}Obj;
  106. }
  107. #end
  108. #end
  109. }
  110. }
  111. #end
  112. ##普通查询条件拼接
  113. #macro(PaginationSerach)
  114. #if($groupModels.size()>0)
  115. if(isPc){
  116. #foreach($Group in ${groupModels})
  117. #set($ModelName= "${Group.modelName.substring(0,1).toUpperCase()}${Group.modelName.substring(1)}")
  118. #set($ModelNameEntity = "${ModelName}Entity")
  119. #set($modelName ="${Group.modelName.substring(0,1).toLowerCase()}${Group.modelName.substring(1)}")
  120. #set($modelQueryWrapper ="wrapper")
  121. #set($modelNum = "${modelName}Num")
  122. #set($ForeignKey =${Group.ForeignKey})
  123. #PaginationQuery(${Group.searchTypeModelList},${modelQueryWrapper},${ModelNameEntity},${modelNum})
  124. #end
  125. }
  126. #end
  127. #if($groupAppModels.size()>0)
  128. if(!isPc){
  129. #foreach($appGroup in ${groupAppModels})
  130. #set($ModelName= "${appGroup.modelName.substring(0,1).toUpperCase()}${appGroup.modelName.substring(1)}")
  131. #set($ModelNameEntity = "${ModelName}Entity")
  132. #set($modelName ="${appGroup.modelName.substring(0,1).toLowerCase()}${appGroup.modelName.substring(1)}")
  133. #set($modelQueryWrapper ="wrapper")
  134. #set($modelNum = "${modelName}Num")
  135. #set($ForeignKey =${appGroup.ForeignKey})
  136. #PaginationQuery(${appGroup.searchTypeModelList},${modelQueryWrapper},${ModelNameEntity},${modelNum})
  137. #end
  138. }
  139. #end
  140. #end
  141. ##普通查询条件拼接
  142. #macro(PaginationQuery $searchListSizes $queryWrapper $ModelNameEntity,$modelNum)
  143. #if($searchListSizes)
  144. #foreach($SearchTypeModel in ${searchListSizes})
  145. #set($vModelName = "${SearchTypeModel.afterVModel}")
  146. #set($fieldAliasName = "${SearchTypeModel.afterVModel}")
  147. #set($tableAliasName = "${SearchTypeModel.tableAliasName}")
  148. #if($SearchTypeModel.id.contains("_jnpf_"))
  149. #set($fieldAliasName = "jnpf_${tableAliasName}_jnpf_${vModelName}")
  150. #elseif($SearchTypeModel.id.toLowerCase().startsWith("tablefield"))
  151. #set($fieldAliasName = "${tableAliasName}_${vModelName}")
  152. #end
  153. #set($fieldName = "${vModelName.substring(0,1).toUpperCase()}${vModelName.substring(1)}")
  154. #set($paginationName ="${fieldAliasName.substring(0,1).toUpperCase()}${fieldAliasName.substring(1)}")
  155. if(ObjectUtil.isNotEmpty(${name}Pagination.get${paginationName}())){
  156. #if(${SearchTypeModel.searchType}==1)
  157. #set($jnpfKey=${SearchTypeModel.jnpfKey})
  158. ## 多选统一处理
  159. #MultipleHandle("${name}Pagination")
  160. #elseif(${SearchTypeModel.searchType}==2)
  161. String value = ${name}Pagination.get${paginationName}() instanceof List ?
  162. JsonUtil.getObjectToString(${name}Pagination.get${paginationName}()) :
  163. String.valueOf(${name}Pagination.get${paginationName}());
  164. ${queryWrapper}.like(${ModelNameEntity}::get${fieldName},value);
  165. #elseif(${SearchTypeModel.searchType}==3)
  166. List ${fieldName}List = JsonUtil.getJsonToList(${name}Pagination.get${paginationName}(),String.class);
  167. for(int i=0;i<${fieldName}List.size();i++){
  168. String id = String.valueOf(${fieldName}List.get(i));
  169. boolean idAll = StringUtil.isNotEmpty(id) && !id.equals("null");
  170. if(idAll){
  171. #set($dataValues= "id;")
  172. #if(${SearchTypeModel.jnpfKey}=="dateTime" || ${SearchTypeModel.jnpfKey}=='datePicker' || ${SearchTypeModel.jnpfKey}=="createTime" || ${SearchTypeModel.jnpfKey}=="modifyTime")
  173. #set($dataValues= "new Date(Long.valueOf(id));")
  174. #elseif(${SearchTypeModel.jnpfKey}=="inputNumber" || ${SearchTypeModel.jnpfKey}=="calculate")
  175. #set($dataValues= "new BigDecimal(id);")
  176. #end
  177. Object b= ${dataValues}
  178. if(i==0){
  179. ${queryWrapper}.ge(${ModelNameEntity}::get${fieldName},b);
  180. }else{
  181. ${queryWrapper}.le(${ModelNameEntity}::get${fieldName},b);
  182. }
  183. }
  184. }
  185. #end
  186. }
  187. #end
  188. #end
  189. #end
  190. ##多选统一处理
  191. #macro(MultipleHandle $pagination)
  192. #if(${multipleUnit.contains(${jnpfKey})})
  193. List<String> idList = new ArrayList<>();
  194. try {
  195. String[][] ${vModelName} = JsonUtil.getJsonToBean(${pagination}.get${paginationName}(),String[][].class);
  196. for(int i=0;i<${vModelName}.length;i++){
  197. if(${vModelName}[i].length>0){
  198. idList.add(JsonUtil.getObjectToString(Arrays.asList(${vModelName}[i])));
  199. }
  200. }
  201. }catch (Exception e1){
  202. try {
  203. List<String> ${vModelName} = JsonUtil.getJsonToList(${pagination}.get${paginationName}(),String.class);
  204. if(${vModelName}.size()>0){
  205. #if(${multipleTwoUnit.contains(${jnpfKey})})
  206. idList.add(JsonUtil.getObjectToString(${vModelName}));
  207. #else
  208. idList.addAll(${vModelName});
  209. #end
  210. }
  211. }catch (Exception e2){
  212. idList.add(String.valueOf(${pagination}.get${paginationName}()));
  213. }
  214. }
  215. ${queryWrapper}.and(t->{
  216. idList.forEach(tt->{
  217. if(StringUtil.isNotEmpty(tt) && "Microsoft SQL Server".equalsIgnoreCase(databaseName)){
  218. tt = tt.replaceFirst("\\[","[[]");
  219. }
  220. t.like(${ModelNameEntity}::get${fieldName}, tt).or();
  221. });
  222. });
  223. #else
  224. ${queryWrapper}.eq(${ModelNameEntity}::get${fieldName},${pagination}.get${paginationName}());
  225. #end
  226. #end
  227. ##关键词搜索
  228. #macro(JnpfKeywordSerach)
  229. if(ObjectUtil.isNotEmpty(${name}Pagination.getJnpfKeyword())){
  230. #if($!{keywordModels})
  231. if(isPc){
  232. wrapper.and(t -> {
  233. #foreach($Group in ${groupModels})
  234. #set($ModelName= "${Group.modelName.substring(0,1).toUpperCase()}${Group.modelName.substring(1)}")
  235. #set($ModelNameEntity = "${ModelName}Entity")
  236. #foreach($item in ${Group.searchTypeModelList})
  237. #if($item.afterVModel)
  238. #set($vModelName = $item.afterVModel)
  239. #else
  240. #set($vModelName = $item.id)
  241. #end
  242. #set($fieldName = "${vModelName.substring(0,1).toUpperCase()}${vModelName.substring(1)}")
  243. #if(${item.isKeyword})
  244. t.like(${ModelName}Entity::get${fieldName},${name}Pagination.getJnpfKeyword()).or();
  245. #end
  246. #end
  247. #end
  248. });
  249. }
  250. #end
  251. #if($!{keywordAppModels})
  252. if(!isPc){
  253. wrapper.and(t -> {
  254. #foreach($Group in ${groupAppModels})
  255. #set($ModelName= "${Group.modelName.substring(0,1).toUpperCase()}${Group.modelName.substring(1)}")
  256. #set($ModelNameEntity = "${ModelName}Entity")
  257. #foreach($item in ${Group.searchTypeModelList})
  258. #if($item.afterVModel)
  259. #set($vModelName = $item.afterVModel)
  260. #else
  261. #set($vModelName = $item.id)
  262. #end
  263. #set($fieldName = "${vModelName.substring(0,1).toUpperCase()}${vModelName.substring(1)}")
  264. #if(${item.isKeyword})
  265. t.like(${ModelName}Entity::get${fieldName},${name}Pagination.getJnpfKeyword()).or();
  266. #end
  267. #end
  268. #end
  269. });
  270. }
  271. #end
  272. }
  273. #end
  274. ##获取系统参数
  275. #macro(GetSystemData $isSave $chidKeyName)
  276. #if(${systemJnpfKey.contains(${key})})
  277. #set($opFlag = true)
  278. #if((${key}=='createUser' && !$isSave)
  279. ||(${key}=='createTime' && !$isSave)
  280. ||(${key}=='modifyUser' && $isSave)
  281. ||(${key}=='modifyTime' && $isSave)
  282. ||(${key}=='currOrganize' && !$isSave)
  283. ||(${key}=='currPosition' && !$isSave))
  284. #set($opFlag = false)
  285. #end
  286. #if($isFlow && $opFlag)
  287. if(hasOperate.contains("${realVmodel}") || noOperate){
  288. #end
  289. #if(${key}=='createUser')
  290. #if($isSave)
  291. ${nameEntity}.set${model}(userInfo.getUserId());
  292. #else
  293. ${nameEntity}.set${model}(null);
  294. #end
  295. #elseif(${key}=='createTime')
  296. #if($isSave)
  297. ${nameEntity}.set${model}(DateUtil.getNowDate());
  298. #else
  299. ${nameEntity}.set${model}(null);
  300. #end
  301. #elseif(${key}=='modifyUser')
  302. #if($isSave)
  303. ${nameEntity}.set${model}(null);
  304. #else
  305. ${nameEntity}.set${model}(userInfo.getUserId());
  306. #end
  307. #elseif(${key}=='modifyTime')
  308. #if($isSave)
  309. ${nameEntity}.set${model}(null);
  310. #else
  311. ${nameEntity}.set${model}(DateUtil.getNowDate());
  312. #end
  313. #elseif(${key}=='currOrganize')
  314. #if($isSave)
  315. ${nameEntity}.set${model}(JsonUtil.getObjectToString(userInfo.getOrganizeIds()));
  316. #else
  317. ${nameEntity}.set${model}(null);
  318. #end
  319. #elseif(${key}=='currPosition')
  320. #if($isSave)
  321. ${nameEntity}.set${model}(JsonUtil.getObjectToString(userInfo.getPositionIds()));
  322. #else
  323. ${nameEntity}.set${model}(null);
  324. #end
  325. #elseif(${key}=='billRule')
  326. #set($billMethodName = "${constantVmodel.substring(0,1).toUpperCase()}${constantVmodel.substring(1)}")
  327. #if($isSave)
  328. #if($config.ruleType == 2)
  329. ${nameEntity}.set${model}(generaterSwapUtil.getBillNumber2("${VisualDevId}","${config.formId}",paramConst.get${billMethodName}(), ${name}Form));
  330. #else
  331. ${nameEntity}.set${model}(generaterSwapUtil.getBillNumber("${rule}", false));
  332. #end
  333. #else
  334. if(StringUtil.isEmpty(${nameEntity}.get${model}()) #if(${chidKeyName})|| ${nameEntity}.get${chidKeyName}() == null #end){
  335. #if($config.ruleType == 2)
  336. ${nameEntity}.set${model}(generaterSwapUtil.getBillNumber2("${VisualDevId}","${config.formId}",paramConst.get${billMethodName}(), ${name}Form));
  337. #else
  338. ${nameEntity}.set${model}(generaterSwapUtil.getBillNumber("${rule}", false));
  339. #end
  340. }
  341. #end
  342. #end
  343. #if($isFlow && $opFlag)
  344. }
  345. #end
  346. #end
  347. #end
  348. ## 正则验证方法
  349. #macro(RegMethod $jnpfKey,$param $config)
  350. #if(!${lineEdit})
  351. #if($jnpfKey == 'input' && ${config.regList} && ${config.regList.size()}>0)
  352. if(StringUtil.isNotEmpty($param)){
  353. #foreach($regItem in ${config.regList})
  354. #set($pattern=$regItem.pattern.replace("\","\\").replace("/",""))
  355. if(!Pattern.compile("$pattern").matcher(String.valueOf($param)).matches()){
  356. return #if(${regItem.messageI18nCode})I18nUtil.getMessageStr("${regItem.messageI18nCode}", "${regItem.message}"); #else "${regItem.message}"; #end
  357. }
  358. #end
  359. }
  360. #end
  361. #end
  362. #end
  363. ##########################以上为宏调用,以下为实际方法##########################
  364. ## 列表接口
  365. #macro(GetTypeList)
  366. @Override
  367. public List<${Entity}> getList(${Name}Pagination ${name}Pagination){
  368. return getTypeList(${name}Pagination,${name}Pagination.getDataType());
  369. }
  370. /** 列表查询 */
  371. @Override
  372. public List<${Entity}> getTypeList(${Name}Pagination ${name}Pagination,String dataType){
  373. String userId=userProvider.get().getUserId();
  374. Map<String,Class> tableClassMap=new HashMap<>();
  375. #foreach($item in $allTableNameList)
  376. #set($TableEntity = "${item.table.substring(0,1).toUpperCase()}${item.table.substring(1)}")
  377. tableClassMap.put("${item.initName}",${TableEntity}Entity.class);
  378. #end
  379. ## 生成MPJLambdaWrapper对象
  380. #CreateWrapper()
  381. #CreateWrapper2()
  382. ## 流程状态相关代码添加
  383. #if($isFlow)
  384. //流程状态相关代码添加
  385. wrapper.orderByAsc(${Entity}::getFlowState);
  386. if (${name}Pagination.getJnpfFlowState() != null) {
  387. wrapper.eq(${Entity}::getFlowState, ${name}Pagination.getJnpfFlowState());
  388. }
  389. #end
  390. QueryAllModel queryAllModel = new QueryAllModel();
  391. queryAllModel.setWrapper(wrapper);
  392. queryAllModel.setClassMap(tableClassMap);
  393. queryAllModel.setDbLink(paramConst.getDbLinkId());
  394. ## 数据过滤
  395. //数据过滤
  396. boolean isPc = ServletUtil.getHeader("jnpf-origin").equals("pc");
  397. String ruleJson = !isPc ? JsonUtil.getObjectToString(paramConst.getRuleListApp()) : JsonUtil.getObjectToString(paramConst.getRuleList());
  398. queryAllModel.setRuleJson(ruleJson);
  399. ## 高级查询
  400. //高级查询
  401. boolean hasSuperQuery = #if($superQuery) true#else false#end;
  402. if (hasSuperQuery) {
  403. queryAllModel.setSuperJson(${name}Pagination.getSuperQueryJson());
  404. }
  405. ## 数据权限
  406. //数据权限
  407. boolean pcPermission = ${pcDataPermisson};
  408. boolean appPermission = ${appDataPermisson};
  409. if (isPc && pcPermission) {
  410. queryAllModel.setModuleId(${name}Pagination.getMenuId());
  411. }
  412. if (!isPc && appPermission) {
  413. queryAllModel.setModuleId(${name}Pagination.getMenuId());
  414. }
  415. //拼接复杂条件
  416. wrapper = generaterSwapUtil.getConditionAllTable(queryAllModel);
  417. if(wrapper == null) return new ArrayList<>();
  418. queryAllModel.setWrapper(wrapper2);
  419. wrapper2 = generaterSwapUtil.getConditionAllTable(queryAllModel);
  420. ## 普通查询
  421. //其他条件拼接
  422. otherConditions(${name}Pagination, wrapper, isPc);
  423. otherConditions(${name}Pagination, wrapper2, isPc);
  424. #if(${groupTable} == true || ${treeTable} == true || ${hasPage} == false)
  425. //分组和树形生成这个代码,pc端返回全部数据 !"2".equals(dataType)导出选中数据
  426. if(isPc && !"2".equals(dataType)){
  427. dataType = "1";
  428. }
  429. #end
  430. if("0".equals(dataType)){
  431. com.github.pagehelper.Page<Object> objects = PageHelper.startPage((int) ${name}Pagination.getCurrentPage(), (int) ${name}Pagination.getPageSize(), true);
  432. List<${Entity}> userIPage = this.selectJoinList(${Entity}.class, wrapper2);
  433. List<Object> collect = userIPage.stream().map(t -> t.get${peimaryKeyName}()).collect(Collectors.toList());
  434. if(CollectionUtils.isNotEmpty(collect)){
  435. wrapper.in(${Entity}::get${peimaryKeyName},collect);
  436. }
  437. List<${Entity}> result = this.selectJoinList(${Entity}.class, wrapper);
  438. return ${name}Pagination.setData(result,objects.getTotal());
  439. }else{
  440. List<${Entity}> list = this.selectJoinList(${Entity}.class, wrapper);
  441. if("2".equals(dataType)){
  442. List<Object> selectIds = Arrays.asList(${name}Pagination.getSelectIds());
  443. return list.stream().filter(t -> selectIds.contains(t.get$peimaryKeyName())).collect(Collectors.toList());
  444. }else{
  445. return list;
  446. }
  447. }
  448. }
  449. /**
  450. * 其他条件拼接
  451. */
  452. private void otherConditions(${Name}Pagination ${name}Pagination, MPJLambdaWrapper<${Entity}> wrapper, boolean isPc) {
  453. String databaseName;
  454. try {
  455. @Cleanup Connection cnn = DynamicDataSourceUtil.getCurrentConnection();
  456. databaseName = cnn.getMetaData().getDatabaseProductName().trim();
  457. } catch (SQLException e) {
  458. throw new DataException(e.getMessage());
  459. }
  460. #if($logicalDelete)
  461. //假删除标志
  462. wrapper.isNull(${Entity}::getDeleteMark);
  463. #end
  464. #if($isFlow)
  465. //流程数据隔离
  466. List<String> flowIds = generaterSwapUtil.getFlowIds(${name}Pagination.getFlowId());
  467. wrapper.in(${Entity}::getFlowId,flowIds);
  468. #else
  469. wrapper.isNull(${Entity}::getFlowId);
  470. #end
  471. //关键词
  472. #JnpfKeywordSerach()
  473. //普通查询
  474. #PaginationSerach()
  475. //排序
  476. if(StringUtil.isEmpty(${name}Pagination.getSidx())){
  477. #if(${defaultSidx})
  478. #set($model = "${defaultSidx.substring(0,1).toUpperCase()}${defaultSidx.substring(1)}")
  479. #set($Sort = "${sort.substring(0,1).toUpperCase()}${sort.substring(1)}")
  480. wrapper.orderBy${Sort}(${Entity}::get${model});
  481. #else
  482. wrapper.orderByDesc(${Entity}::get${peimaryKeyName});
  483. #end
  484. }else{
  485. try {
  486. String[] split = ${name}Pagination.getSidx().split(",");
  487. List<Select> selectColumns = new ArrayList<>(wrapper.getSelectColumns());
  488. for(String sidx:split){
  489. ${Entity} ${name}Entity = new ${Entity}();
  490. String oderTableField = ${name}Entity.getClass().getAnnotation(TableName.class).value();
  491. boolean descFlag = sidx.startsWith("-");
  492. String sidxField = descFlag ? sidx.substring(1) : sidx;
  493. try{
  494. Field declaredField = ${name}Entity.getClass().getDeclaredField(sidxField);
  495. declaredField.setAccessible(true);
  496. sidxField = declaredField.getAnnotation(TableField.class).value();
  497. }catch (Exception e){
  498. }
  499. String finalOderTableField = oderTableField;
  500. String finalSidxField = sidxField;
  501. Object select = selectColumns.stream().filter(t -> Objects.equals(finalOderTableField, t.getTableAlias())
  502. && Objects.equals(finalSidxField, t.getColumn())).findFirst().orElse(null);
  503. oderTableField = oderTableField + "." + sidxField;
  504. if (select == null) {
  505. wrapper.select(oderTableField);
  506. }
  507. if (descFlag) {
  508. wrapper.orderByDesc(oderTableField);
  509. } else {
  510. wrapper.orderByAsc(oderTableField);
  511. }
  512. }
  513. } catch (Exception e) {
  514. e.printStackTrace();
  515. }
  516. }
  517. }
  518. #end
  519. ## 增删改查接口
  520. #macro(CrudMethod)
  521. @Override
  522. public ${Entity} getInfo(String ${peimaryKeyname}){
  523. ## 生成MPJLambdaWrapper对象
  524. #CreateWrapper()
  525. wrapper.and(
  526. t->t.eq(${Entity}::get${peimaryKeyName}, #if($snowflake)${peimaryKeyname} #else Long.parseLong(${peimaryKeyname})#end)
  527. .or().eq(${Entity}::getFlowTaskId, ${peimaryKeyname})
  528. );
  529. return this.selectJoinOne(${Entity}.class,wrapper);
  530. }
  531. @Override
  532. public void create(${Entity} entity){
  533. this.save(entity);
  534. }
  535. @Override
  536. public boolean update(String ${peimaryKeyname}, ${Entity} entity){
  537. return this.updateById(entity);
  538. }
  539. @Override
  540. public void delete(${Entity} entity){
  541. if(entity!=null){
  542. this.removeById(entity.get${peimaryKeyName}());
  543. }
  544. }
  545. #end
  546. ## 表单验证
  547. #macro(CheckForm)
  548. /** 验证表单唯一字段,正则,非空 i-0新增-1修改*/
  549. @Override
  550. public String checkForm(${Name}Form form,int i) {
  551. #if(${isFlow})
  552. List<String> flowIds = generaterSwapUtil.getFlowIds(form.getFlowId());
  553. #end
  554. boolean isUp =StringUtil.isNotEmpty(form.get${peimaryKeyName}()) && !form.get${peimaryKeyName}().equals("0");
  555. Object id= null;
  556. String countRecover = "";
  557. String fieldTipName = "";
  558. String canNotNull = I18nUtil.getMessageStr("sys.validate.textRequiredSuffix", "不能为空");
  559. String canNotRepeated = I18nUtil.getMessageStr("EXIST103", "不能重复");
  560. if (isUp){
  561. #if($snowflake)
  562. id = form.get${peimaryKeyName}();
  563. #else
  564. id = Long.parseLong(form.get${peimaryKeyName}());
  565. #end
  566. }
  567. ## 验证业务主键
  568. #if(${useBusinessKey})
  569. //验证业务主键
  570. String businessErr = checkBusinessKey(form, isUp ? id : null,#if($isFlow)flowIds#else null#end);
  571. if (StringUtil.isNotEmpty(businessErr)) {
  572. return businessErr;
  573. }
  574. #end
  575. ## 主表字段验证
  576. //主表字段验证
  577. #foreach($mastField in ${mastTableHandle})
  578. #set($Field = $mastField)
  579. #set($config = $Field.config)
  580. #set($unique = $config.unique)
  581. #set($required = $config.required)
  582. #set($jnpfKey = $config.jnpfKey)
  583. #set($vModel = ${Field.vModel})
  584. #set($upName = "${Field.fieldAlias.substring(0,1).toUpperCase()}${Field.fieldAlias.substring(1)}")
  585. fieldTipName = #if(${config.labelI18nCode}) I18nUtil.getMessageStr("${config.labelI18nCode}", "${config.label}"); #else "${config.label}"; #end
  586. #if($jnpfKey == 'input' && $required ==true && !${lineEdit})
  587. if(StringUtil.isEmpty(form.get${upName}())){
  588. return fieldTipName + canNotNull;
  589. }
  590. #end
  591. #if($jnpfKey == 'input' && $unique ==true)
  592. if(StringUtil.isNotEmpty(form.get${upName}())){
  593. form.set${upName}(form.get${upName}()#if($jnpfKey == 'input').trim()#end);
  594. QueryWrapper<${Name}Entity> ${vModel}Wrapper=new QueryWrapper<>();
  595. ${vModel}Wrapper.lambda().eq(${Name}Entity::get${upName},form.get${upName}());
  596. #if(${isFlow})
  597. ${vModel}Wrapper.lambda().in(${Name}Entity::getFlowId, flowIds);
  598. #else
  599. ${vModel}Wrapper.lambda().isNull(${Name}Entity::getFlowId);
  600. #end
  601. #if($logicalDelete)
  602. //假删除标志
  603. ${vModel}Wrapper.lambda().isNull(${Name}Entity::getDeleteMark);
  604. #end
  605. if (isUp){
  606. ${vModel}Wrapper.lambda().ne(${Name}Entity::get${peimaryKeyName}, id);
  607. }
  608. if((int) this.count(${vModel}Wrapper)>0){
  609. countRecover = fieldTipName + canNotRepeated;
  610. }
  611. }
  612. #end
  613. ## 正则判断
  614. #RegMethod($jnpfKey,"form.get${upName}()",$config)
  615. #end
  616. ## 副表字段验证
  617. #if(${columnTableHandle.size()}>0)
  618. //副表字段验证
  619. #foreach($cl in ${columnTableHandle})
  620. #set($columnTableName = "${cl.modelUpName}")
  621. #set($columnTableName = "${cl.modelLowName}")
  622. #foreach($clModel in ${cl.fieLdsModelList})
  623. #set($fieLdsModel = ${clModel.mastTable.fieLdsModel})
  624. #set($config = ${fieLdsModel.config})
  625. #set($fileRenameUp = "${fieLdsModel.fieldAlias.substring(0,1).toUpperCase()}${fieLdsModel.fieldAlias.substring(1)}")
  626. #set($fullName = "Jnpf_${fieLdsModel.tableAlias}_jnpf_${fieLdsModel.fieldAlias}")
  627. #set($key = ${config.jnpfKey})
  628. #set($unique = $config.unique)
  629. #set($required = $config.required)
  630. fieldTipName = #if(${config.labelI18nCode}) I18nUtil.getMessageStr("${config.labelI18nCode}", "${config.label}"); #else "${config.label}"; #end
  631. #if($required ==true && !${lineEdit})
  632. if(#if($key =='input') StringUtil.isEmpty(form.get${fullName}()) #else form.get${fullName}() == null #end){
  633. return fieldTipName + canNotNull;
  634. }
  635. #end
  636. #if($unique ==true)
  637. if(#if($key =='input') StringUtil.isNotEmpty(form.get${fullName}())#else form.get${fullName}() ==null #end ){
  638. form.set${fullName}(form.get${fullName}()#if($key == 'input').trim()#end);
  639. MPJLambdaWrapper<${Name}Entity> ${cl.modelLowName}${fileRenameUp}Wrapper = new MPJLambdaWrapper<>(${Name}Entity.class)
  640. .leftJoin(${cl.modelUpName}Entity.class, ${cl.modelUpName}Entity::get${cl.relationUpField}, ${Name}Entity::get${cl.mainUpKey})
  641. .select(${Name}Entity::get${peimaryKeyName});
  642. #if(${isFlow})
  643. ${cl.modelLowName}${fileRenameUp}Wrapper.in(${Name}Entity::getFlowId, flowIds);
  644. #else
  645. ${cl.modelLowName}${fileRenameUp}Wrapper.isNull(${Name}Entity::getFlowId);
  646. #end
  647. #if($logicalDelete)
  648. //假删除标志
  649. ${cl.modelLowName}${fileRenameUp}Wrapper.isNull(${Name}Entity::getDeleteMark);
  650. #end
  651. ${cl.modelLowName}${fileRenameUp}Wrapper.eq(${cl.modelUpName}Entity::get${fileRenameUp},form.get${fullName}());
  652. if (isUp){
  653. ${cl.modelLowName}${fileRenameUp}Wrapper.ne(${cl.modelUpName}Entity::get${cl.relationUpField}, id);
  654. }
  655. if((int) this.count(${cl.modelLowName}${fileRenameUp}Wrapper)>0){
  656. countRecover = fieldTipName + canNotRepeated;
  657. }
  658. }
  659. #end
  660. ## 正则判断
  661. #RegMethod($key,"form.get${fullName}()",$config)
  662. #end
  663. #end
  664. #end
  665. ## 子表字段验证
  666. #if(${childTableHandle.size()}>0)
  667. //子表字段验证
  668. #foreach($grid in ${childTableHandle})
  669. if (form.get${grid.aliasUpName}List()!=null){
  670. #foreach($jnpfkey in ${grid.childList})
  671. #if(${jnpfkey.fieLdsModel.vModel} != '')
  672. #set($fieLdsModel = ${jnpfkey.fieLdsModel})
  673. #set($config = ${fieLdsModel.config})
  674. #set($key = ${config.jnpfKey})
  675. #set($model = "${fieLdsModel.fieldAlias.substring(0,1).toUpperCase()}${fieLdsModel.fieldAlias.substring(1)}")
  676. #set($unique = ${config.unique})
  677. #set($required = ${config.required})
  678. fieldTipName = #if(${grid.labelI18nCode}) I18nUtil.getMessageStr("${grid.labelI18nCode}", "${grid.label}")#else "${grid.label}" #end
  679. + "-" + #if(${config.labelI18nCode}) I18nUtil.getMessageStr("${config.labelI18nCode}", "${config.label}");#else "${config.label}"; #end
  680. #if($required ==true || $unique ==true || ${config.regList})
  681. for(${grid.aliasUpName}Model t : form.get${grid.aliasUpName}List()){
  682. if(#if($key =='input') StringUtil.isNotEmpty(t.get${model}()) #else t.get${model}() != null #end){
  683. t.set${model}(t.get${model}()#if($key == 'input').trim()#end);
  684. }
  685. #if($required ==true && !${lineEdit})
  686. else{
  687. return fieldTipName + canNotNull;
  688. }
  689. #end
  690. ## 子表正则
  691. #RegMethod($key,"t.get${model}()",$config)
  692. }
  693. #end
  694. #if($key =='input' && $unique ==true)
  695. List<String> ${model}List = form.get${grid.aliasUpName}List().stream().filter(f->StringUtil.isNotEmpty(f.get${model}())).map(f -> f.get${model}()).collect(Collectors.toList());
  696. HashSet<String> ${model}Set = new HashSet<>(${model}List);
  697. if(${model}Set.size() != ${model}List.size()){
  698. countRecover = fieldTipName + canNotRepeated;
  699. }
  700. #end
  701. #end
  702. #end
  703. }
  704. #end
  705. #end
  706. return countRecover;
  707. }
  708. #end
  709. #macro(CheckBusinessKey)
  710. /**
  711. * 验证业务主键
  712. */
  713. private String checkBusinessKey(${Name}Form form, Object id, List<String> flowIds){
  714. QueryWrapper<${Name}Entity> wrapper = new QueryWrapper<>();
  715. //修改
  716. if (id != null){
  717. wrapper.lambda().ne(${Name}Entity::get${peimaryKeyName}, id);
  718. }
  719. //是否流程
  720. if(flowIds == null){
  721. wrapper.lambda().isNull(${Name}Entity::getFlowId);
  722. }else{
  723. wrapper.lambda().in(${Name}Entity::getFlowId, flowIds);
  724. }
  725. #if($logicalDelete)
  726. //假删除标志
  727. wrapper.lambda().isNull(${Name}Entity::getDeleteMark);
  728. #end
  729. #set($notToJson=['inputNumber','input','textarea','radio','timePicker','createUser','modifyUser','location','currPosition'])
  730. #foreach($item in ${businessKeyList})
  731. #set($jnpfKey = $item.config.jnpfKey)
  732. #set($fieldNameUp = "${item.fieldAlias.substring(0,1).toUpperCase()}${item.fieldAlias.substring(1)}")
  733. //${item.config.label}字段判断
  734. #if($jnpfKey == 'datePicker')
  735. if(form.get${fieldNameUp}() == null || form.get${fieldNameUp}().trim().isEmpty()){
  736. wrapper.lambda().isNull(${Name}Entity::get${fieldNameUp});
  737. }else{
  738. Object obj = new Date(Long.parseLong(form.get${fieldNameUp}()));
  739. wrapper.lambda().eq(${Name}Entity::get${fieldNameUp}, obj);
  740. }
  741. #elseif(${notToJson.contains(${jnpfKey})})
  742. if(form.get${fieldNameUp}() == null || form.get${fieldNameUp}().toString().trim().isEmpty()){
  743. wrapper.lambda().isNull(${Name}Entity::get${fieldNameUp});
  744. }else{
  745. wrapper.lambda().eq(${Name}Entity::get${fieldNameUp}, form.get${fieldNameUp}());
  746. }
  747. #else
  748. if(form.get${fieldNameUp}() == null || form.get${fieldNameUp}().toString().trim().isEmpty()
  749. ||(form.get${fieldNameUp}() instanceof List && ((List) form.get${fieldNameUp}()).size() == 0)){
  750. wrapper.lambda().isNull(${Name}Entity::get${fieldNameUp});
  751. }else{
  752. Object obj = form.get${fieldNameUp}() instanceof List ?JsonUtil.getObjectToString(form.get${fieldNameUp}()):form.get${fieldNameUp}();
  753. wrapper.lambda().eq(${Name}Entity::get${fieldNameUp}, obj);
  754. }
  755. #end
  756. #end
  757. if((int) this.count(wrapper)>0){
  758. return "${businessKeyTip}";
  759. }
  760. return "";
  761. }
  762. #end
  763. ## 保存或者修改事务方法
  764. #macro(SaveOrUpdate)
  765. /**
  766. * 新增修改数据(事务回滚)
  767. * @param id
  768. * @param ${name}Form
  769. * @return
  770. */
  771. @Override
  772. #if(${DS})
  773. @DSTransactional
  774. #else
  775. @Transactional
  776. #end
  777. public void saveOrUpdate(${Name}Form ${name}Form,String id, boolean isSave) throws Exception{
  778. #if($isFlow)
  779. List<$mapObject> formOperates = ${name}Form.getFormOperates();
  780. List<String> hasOperate = new ArrayList<>();
  781. boolean noOperate = false;
  782. if(CollectionUtils.isNotEmpty(formOperates)){
  783. for ($mapObject formOperate : formOperates) {
  784. String formOperateId = formOperate.get("id").toString();
  785. boolean formOperateWrite = formOperate.get("write") ==null? false : (boolean) formOperate.get("write");
  786. if(formOperateWrite){
  787. hasOperate.add(formOperateId);
  788. }
  789. }
  790. }else{
  791. noOperate = true;
  792. }
  793. #end
  794. UserInfo userInfo=userProvider.get();
  795. UserEntity userEntity = generaterSwapUtil.getUser(userInfo.getUserId());
  796. ${name}Form = JsonUtil.getJsonToBean(
  797. generaterSwapUtil.swapDatetime(paramConst.getFields(),${name}Form,paramConst.getTableRenames()),${Name}Form.class);
  798. ${Name}Entity entity = JsonUtil.getJsonToBean(${name}Form, ${Name}Entity.class);
  799. #set($peimaryKeyName="${pKeyName.substring(0,1).toUpperCase()}${pKeyName.substring(1)}")
  800. String mainUuid = StringUtil.isEmpty(id) ? RandomUtil.uuId() : id;
  801. #if($isFlow)
  802. entity.setFlowId(${name}Form.getFlowId());
  803. #end
  804. ##主表保存修改判断是否有系统控件
  805. #foreach($field in ${mastTableHandle})
  806. #set($key = ${field.config.jnpfKey})
  807. #if(${systemJnpfKey.contains(${key})})
  808. #set($mainHasSysFields =true)
  809. #end
  810. #end
  811. if(isSave){
  812. entity.setFlowTaskId(mainUuid);
  813. #foreach($field in ${mastTableHandle})
  814. #set($model = "${field.fieldAlias.substring(0,1).toUpperCase()}${field.fieldAlias.substring(1)}")
  815. #set($key = ${field.config.jnpfKey})
  816. #set($nameEntity = "entity")
  817. #set($rule ="${field.config.rule}")
  818. #set($showLevel ="${field.showLevel}")
  819. #set($realVmodel ="${field.vModel}")
  820. #set($config =${field.config})
  821. #set($constantVmodel ="${field.vModel}")
  822. #GetSystemData(true)
  823. #end
  824. #if($snowflake)
  825. entity.set${peimaryKeyName}(mainUuid);
  826. #end
  827. #if($version)
  828. #if(${versionType} == "bigint")
  829. entity.setVersion(0l);
  830. #else
  831. entity.setVersion(0);
  832. #end
  833. #end
  834. } else {
  835. #foreach($field in ${mastTableHandle})
  836. #set($model = "${field.fieldAlias.substring(0,1).toUpperCase()}${field.fieldAlias.substring(1)}")
  837. #set($key = ${field.config.jnpfKey})
  838. #set($nameEntity = "entity")
  839. #set($rule ="${field.config.rule}")
  840. #set($showLevel ="${field.showLevel}")
  841. #set($realVmodel ="${field.vModel}")
  842. #set($config =${field.config})
  843. #set($constantVmodel ="${field.vModel}")
  844. #GetSystemData(false)
  845. #end
  846. }
  847. boolean b = this.saveOrUpdate(entity);
  848. #if($version)
  849. if(!b){
  850. throw new DataException("当前表单原数据已被调整,请重新进入该页面编辑并提交数据");
  851. }
  852. #end
  853. ${Name}Entity info = this.getInfo(mainUuid);
  854. if (info == null) throw new RuntimeException(MsgCode.FA001.get());
  855. #if(!$snowflake)
  856. entity.set${peimaryKeyName}(info.get${peimaryKeyName}());
  857. #end
  858. ##子表数据新增修改
  859. #if(${childTableHandle.size()}>0)
  860. #foreach($grid in ${childTableHandle})
  861. #set($tableField = "${grid.tablefield.substring(0,1).toUpperCase()}${grid.tablefield.substring(1)}")
  862. #set($relationField = "${grid.relationField.substring(0,1).toUpperCase()}${grid.relationField.substring(1)}")
  863. #set($chidKeyName = "${grid.chidKeyName.substring(0,1).toUpperCase()}${grid.chidKeyName.substring(1)}")
  864. #set($tableModel = "${grid.tableModel}")
  865. //${grid.aliasUpName}子表数据新增修改
  866. #if($logicalDelete)
  867. UpdateWrapper<${grid.aliasUpName}Entity> ${grid.aliasLowName}UpdateWrapper = new UpdateWrapper<>();
  868. ${grid.aliasLowName}UpdateWrapper.lambda().set(${grid.aliasUpName}Entity::getDeleteMark,1);
  869. ${grid.aliasLowName}UpdateWrapper.lambda().set(${grid.aliasUpName}Entity::getDeleteUserId,UserProvider.getUser().getUserId());
  870. ${grid.aliasLowName}UpdateWrapper.lambda().set(${grid.aliasUpName}Entity::getDeleteTime,new Date());
  871. ${grid.aliasLowName}UpdateWrapper.lambda().eq(${grid.aliasUpName}Entity::get${tableField}, info.get${relationField}());
  872. #else
  873. QueryWrapper<${grid.aliasUpName}Entity> ${grid.aliasLowName}QueryWrapper = new QueryWrapper<>();
  874. ${grid.aliasLowName}QueryWrapper.lambda().eq(${grid.aliasUpName}Entity::get${tableField}, info.get${relationField}());
  875. #end
  876. if(!isSave && !CollectionUtils.isNotEmpty(${name}Form.get${grid.aliasUpName}List())){
  877. #if($logicalDelete)
  878. ${grid.aliasLowName}Service.update(${grid.aliasLowName}UpdateWrapper);
  879. #else
  880. ${grid.aliasLowName}Service.remove(${grid.aliasLowName}QueryWrapper);
  881. #end
  882. }
  883. if (CollectionUtils.isNotEmpty(${name}Form.get${grid.aliasUpName}List())){
  884. List<${grid.aliasUpName}Entity> ${grid.tableModel} = JsonUtil.getJsonToList(${name}Form.get${grid.aliasUpName}List(),${grid.aliasUpName}Entity.class);
  885. //移除的数据
  886. List<Object> childIds = ${grid.tableModel}.stream().filter(t->t.get${chidKeyName}()!=null).map(${grid.aliasUpName}Entity::get${chidKeyName}).collect(Collectors.toList());
  887. if(CollectionUtils.isNotEmpty(childIds)){
  888. #if($logicalDelete)
  889. ${grid.aliasLowName}UpdateWrapper.lambda().notIn(${grid.aliasUpName}Entity::get${chidKeyName},childIds);
  890. #else
  891. ${grid.aliasLowName}QueryWrapper.lambda().notIn(${grid.aliasUpName}Entity::get${chidKeyName},childIds);
  892. #end
  893. }
  894. #if($logicalDelete)
  895. ${grid.aliasLowName}Service.update(${grid.aliasLowName}UpdateWrapper);
  896. #else
  897. ${grid.aliasLowName}Service.remove(${grid.aliasLowName}QueryWrapper);
  898. #end
  899. for(${grid.aliasUpName}Entity entitys : ${grid.tableModel}){
  900. entitys.set${tableField}(entity.get${relationField}());
  901. ##子表保存修改判断是否有系统控件
  902. #set($childHasSysFields =false)
  903. #foreach($jnpfkey in ${grid.childList})
  904. #if(${jnpfkey.fieLdsModel.vModel} != '')
  905. #set($key = ${jnpfkey.fieLdsModel.config.jnpfKey})
  906. #if(${systemJnpfKey.contains(${key})})
  907. #set($childHasSysFields =true)
  908. #end
  909. #end
  910. #end
  911. #if($childHasSysFields)
  912. if(isSave || entitys.get${chidKeyName}()==null){
  913. #foreach($jnpfkey in ${grid.childList})
  914. #if(${jnpfkey.fieLdsModel.vModel} != '')
  915. #set($key = ${jnpfkey.fieLdsModel.config.jnpfKey})
  916. #set($rule = ${jnpfkey.fieLdsModel.config.rule})
  917. #set($showLevel ="${jnpfkey.fieLdsModel.showLevel}")
  918. #set($model = "${jnpfkey.fieLdsModel.fieldAlias.substring(0,1).toUpperCase()}${jnpfkey.fieLdsModel.fieldAlias.substring(1)}")
  919. #set($nameEntity = "entitys")
  920. #set($realVmodel ="${tableModel}-${jnpfkey.fieLdsModel.vModel}")
  921. #set($config =${jnpfkey.fieLdsModel.config})
  922. #set($constantVmodel ="${grid.aliasLowName}_${jnpfkey.fieLdsModel.vModel}")
  923. #GetSystemData(true)
  924. #end
  925. #end
  926. }else{
  927. #foreach($jnpfkey in ${grid.childList})
  928. #if(${jnpfkey.fieLdsModel.vModel} != '')
  929. #set($key = ${jnpfkey.fieLdsModel.config.jnpfKey})
  930. #set($rule = ${jnpfkey.fieLdsModel.config.rule})
  931. #set($showLevel ="${jnpfkey.fieLdsModel.showLevel}")
  932. #set($model = "${jnpfkey.fieLdsModel.fieldAlias.substring(0,1).toUpperCase()}${jnpfkey.fieLdsModel.fieldAlias.substring(1)}")
  933. #set($nameEntity = "entitys")
  934. #set($realVmodel ="${tableModel}-${jnpfkey.fieLdsModel.vModel}")
  935. #set($config =${jnpfkey.fieLdsModel.config})
  936. #set($constantVmodel ="${grid.aliasLowName}_${jnpfkey.fieLdsModel.vModel}")
  937. #GetSystemData(false,${chidKeyName})
  938. #end
  939. #end
  940. }
  941. #end
  942. #if($snowflake)
  943. if(entitys.get${chidKeyName}()==null){
  944. entitys.set${chidKeyName}(RandomUtil.uuId());
  945. }
  946. #end
  947. ${grid.aliasLowName}Service.saveOrUpdate(entitys);
  948. }
  949. }
  950. #end
  951. #end
  952. ##副表数据新增修改
  953. #if(${columnTableHandle.size()}>0)
  954. #foreach($cl in ${columnTableHandle})
  955. ##副表保存修改判断是否有系统控件
  956. #set($mastHasSysFields =false)
  957. #foreach($clModel in ${cl.fieLdsModelList})
  958. #set($key = ${clModel.mastTable.fieLdsModel.config.jnpfKey})
  959. #if($key!='' && ${systemJnpfKey.contains(${key})})
  960. #set($mastHasSysFields =true)
  961. #end
  962. #end
  963. //${cl.tableName}副表数据新增修改
  964. #set($mainField = $cl.mainField)
  965. #set($mainUpId = "${mainField.substring(0,1).toUpperCase()}${mainField.substring(1)}")
  966. $mapObject ${cl.modelName}Map = generaterSwapUtil.getMastTabelData(${name}Form,"${cl.tableName}");
  967. ${cl.modelName}Entity ${cl.modelLowName}entity = JsonUtil.getJsonToBean(${cl.modelName}Map,${cl.modelName}Entity.class);
  968. //自动生成的字段
  969. if(isSave){
  970. #if($mastHasSysFields)
  971. #foreach($clModel in ${cl.fieLdsModelList})
  972. #set($model = "${clModel.mastTable.fieLdsModel.fieldAlias.substring(0,1).toUpperCase()}${clModel.mastTable.fieLdsModel.fieldAlias.substring(1)}")
  973. #set($key = ${clModel.mastTable.fieLdsModel.config.jnpfKey})
  974. #set($nameEntity = "${cl.modelLowName}entity")
  975. #set($rule ="${clModel.mastTable.fieLdsModel.config.rule}")
  976. #set($showLevel ="${clModel.mastTable.fieLdsModel.showLevel}")
  977. #set($realVmodel ="${clModel.vModel}")
  978. #set($config =${clModel.mastTable.fieLdsModel.config})
  979. #set($constantVmodel ="${clModel.vModel}")
  980. #GetSystemData(true)
  981. #end
  982. #end
  983. #if($snowflake)
  984. ${cl.modelLowName}entity.set${mainUpId}(RandomUtil.uuId());
  985. #end
  986. ${cl.modelLowName}entity.set${cl.relationUpField}(entity.get${cl.mainUpKey}());
  987. }else{
  988. QueryWrapper<${cl.modelUpName}Entity> queryWrapper${cl.modelUpName} =new QueryWrapper<>();
  989. queryWrapper${cl.modelUpName}.lambda().eq(${cl.modelUpName}Entity::get${cl.relationUpField},info.get${cl.mainUpKey}());
  990. ${cl.modelUpName}Entity ${cl.modelLowName}OneEntity= ${cl.modelLowName}Service.getOne(queryWrapper${cl.modelUpName});
  991. #if($mastHasSysFields)
  992. #foreach($clModel in ${cl.fieLdsModelList})
  993. #set($model = "${clModel.mastTable.fieLdsModel.fieldAlias.substring(0,1).toUpperCase()}${clModel.mastTable.fieLdsModel.fieldAlias.substring(1)}")
  994. #set($key = ${clModel.mastTable.fieLdsModel.config.jnpfKey})
  995. #set($nameEntity = "${cl.modelLowName}entity")
  996. #set($rule ="${clModel.mastTable.fieLdsModel.config.rule}")
  997. #set($showLevel ="${clModel.mastTable.fieLdsModel.showLevel}")
  998. #set($realVmodel ="${clModel.vModel}")
  999. #set($config =${clModel.mastTable.fieLdsModel.config})
  1000. #set($constantVmodel ="${clModel.vModel}")
  1001. #GetSystemData(false)
  1002. #end
  1003. #end
  1004. ${cl.modelLowName}entity.set${cl.mainField}(${cl.modelLowName}OneEntity.get${cl.mainField}());
  1005. ${cl.modelLowName}entity.set${cl.relationUpField}(entity.get${cl.mainUpKey}());
  1006. }
  1007. ${cl.modelLowName}Service.saveOrUpdate(${cl.modelLowName}entity);
  1008. #end
  1009. #end
  1010. }
  1011. #if($isFlow)
  1012. @Override
  1013. public void saveState(String flowTaskId, Integer flowState){
  1014. ${Name}Entity info = this.getInfo(flowTaskId);
  1015. info.setFlowState(flowState);
  1016. this.updateById(info);
  1017. }
  1018. #end
  1019. #end