ServiceImpMarco.vm 46 KB

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