123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972 |
- ##通用参数
- #parse("PublicMacro/ConstantMarco.vm")
- #ConstantParams()
- #set($mapObject ="Map<String, Object>")
- ##创建QueryWrapper
- #macro(CreateWrapper)
- MPJLambdaWrapper<${Entity}> wrapper = JoinWrappers
- #foreach($item in $allTableNameList)
- #set($TableEntity = "${item.table.substring(0,1).toUpperCase()}${item.table.substring(1)}")
- #if(${item.tableTag} =='main')
- .lambda("${item.initName}",${TableEntity}Entity.class)
- #end
- #if(${item.tableTag} =='sub-jnpf')
- .selectAssociation(${TableEntity}Entity.class,${Entity}::get${TableEntity})
- .leftJoin(${TableEntity}Entity.class,"${item.initName}",${TableEntity}Entity::get${item.tableField},${Entity}::get${item.relationField})
- #end
- #if(${item.tableTag} =='sub')
- .selectCollection(${TableEntity}Entity.class,${Entity}::get${TableEntity})
- .leftJoin(${TableEntity}Entity.class,"${item.initName}",${TableEntity}Entity::get${item.tableField},${Entity}::get${item.relationField})
- #end
- #end
- .selectAll(${Name}Entity.class);
- #end
- ##创建QueryWrapper2
- #macro(CreateWrapper2)
- MPJLambdaWrapper<${Entity}> wrapper2 = JoinWrappers
- #foreach($item in $allTableNameList)
- #set($TableEntity = "${item.table.substring(0,1).toUpperCase()}${item.table.substring(1)}")
- #if(${item.tableTag} =='main')
- .lambda("${item.initName}",${TableEntity}Entity.class)
- #end
- #if(${item.tableTag} =='sub-jnpf')
- .leftJoin(${TableEntity}Entity.class,"${item.initName}",${TableEntity}Entity::get${item.tableField},${Entity}::get${item.relationField})
- #end
- #if(${item.tableTag} =='sub')
- .leftJoin(${TableEntity}Entity.class,"${item.initName}",${TableEntity}Entity::get${item.tableField},${Entity}::get${item.relationField})
- #end
- #end
- .distinct().select(${Name}Entity::get${peimaryKeyName});
- #end
- ##权限查询条件拼接
- #macro(CreateDataPermission $menuIdModel)
- boolean pcPermission = ${pcDataPermisson};
- boolean appPermission = ${appDataPermisson};
- if(isPc && pcPermission){
- if (!userProvider.get().getIsAdministrator()){
- #foreach($child in ${allTableNameList})
- #set($ModelName= "${child.table.substring(0,1).toUpperCase()}${child.table.substring(1)}")
- #set($modelName ="${child.table.substring(0,1).toLowerCase()}${child.table.substring(1)}")
- #set($modelNum = "${modelName}Num")
- #set($initName = "${child.initName}")
- #set($modelQueryWrapper = "${modelName}QueryWrapper")
- #if(!${child.tableField})
- Object ${modelName}Obj=generaterSwapUtil.getAuthorizeCondition(new QueryModel(${modelQueryWrapper},${ModelName}Entity.class,${menuIdModel}.getMenuId(),#if(${DS})"${DS}"#else"0"#end));
- if (ObjectUtil.isEmpty(${modelName}Obj)){
- return new ArrayList<>();
- } else {
- ${modelQueryWrapper} = (QueryWrapper<${ModelName}Entity>)${modelName}Obj;
- }
- #end
- #end
- }
- }
- if(!isPc && appPermission){
- if (!userProvider.get().getIsAdministrator()){
- #foreach($child in ${allTableNameList})
- #set($ModelName= "${child.table.substring(0,1).toUpperCase()}${child.table.substring(1)}")
- #set($modelName ="${child.table.substring(0,1).toLowerCase()}${child.table.substring(1)}")
- #set($modelNum = "${modelName}Num")
- #set($modelQueryWrapper = "${modelName}QueryWrapper")
- #if($child.tableTag =='main')
- Object ${modelName}Obj=generaterSwapUtil.getAuthorizeCondition(new QueryModel(${modelQueryWrapper},${ModelName}Entity.class,${menuIdModel}.getMenuId(),#if(${DS})"${DS}"#else"0"#end));
- if (ObjectUtil.isEmpty(${modelName}Obj)){
- return new ArrayList<>();
- } else {
- ${modelQueryWrapper} = (QueryWrapper<${ModelName}Entity>)${modelName}Obj;
- }
- #end
- #end
- }
- }
- #end
- ##普通查询条件拼接
- #macro(PaginationSerach)
- #if($groupModels.size()>0)
- if(isPc){
- #foreach($Group in ${groupModels})
- #set($ModelName= "${Group.modelName.substring(0,1).toUpperCase()}${Group.modelName.substring(1)}")
- #set($ModelNameEntity = "${ModelName}Entity")
- #set($modelName ="${Group.modelName.substring(0,1).toLowerCase()}${Group.modelName.substring(1)}")
- #set($modelQueryWrapper ="wrapper")
- #set($modelNum = "${modelName}Num")
- #set($ForeignKey =${Group.ForeignKey})
- #PaginationQuery(${Group.searchTypeModelList},${modelQueryWrapper},${ModelNameEntity},${modelNum})
- #end
- }
- #end
- #if($groupAppModels.size()>0)
- if(!isPc){
- #foreach($appGroup in ${groupAppModels})
- #set($ModelName= "${appGroup.modelName.substring(0,1).toUpperCase()}${appGroup.modelName.substring(1)}")
- #set($ModelNameEntity = "${ModelName}Entity")
- #set($modelName ="${appGroup.modelName.substring(0,1).toLowerCase()}${appGroup.modelName.substring(1)}")
- #set($modelQueryWrapper ="wrapper")
- #set($modelNum = "${modelName}Num")
- #set($ForeignKey =${appGroup.ForeignKey})
- #PaginationQuery(${appGroup.searchTypeModelList},${modelQueryWrapper},${ModelNameEntity},${modelNum})
- #end
- }
- #end
- #end
- ##普通查询条件拼接
- #macro(PaginationQuery $searchListSizes $queryWrapper $ModelNameEntity,$modelNum)
- #if($searchListSizes)
- #foreach($SearchTypeModel in ${searchListSizes})
- #set($vModelName = "${SearchTypeModel.afterVModel}")
- #set($fieldAliasName = "${SearchTypeModel.afterVModel}")
- #set($tableAliasName = "${SearchTypeModel.tableAliasName}")
- #if($SearchTypeModel.id.contains("_jnpf_"))
- #set($fieldAliasName = "jnpf_${tableAliasName}_jnpf_${vModelName}")
- #elseif($SearchTypeModel.id.toLowerCase().startsWith("tablefield"))
- #set($fieldAliasName = "${tableAliasName}_${vModelName}")
- #end
- #set($fieldName = "${vModelName.substring(0,1).toUpperCase()}${vModelName.substring(1)}")
- #set($paginationName ="${fieldAliasName.substring(0,1).toUpperCase()}${fieldAliasName.substring(1)}")
- if(ObjectUtil.isNotEmpty(${name}Pagination.get${paginationName}())){
- #if(${SearchTypeModel.searchType}==1)
- #set($jnpfKey=${SearchTypeModel.jnpfKey})
- ## 多选统一处理
- #MultipleHandle("${name}Pagination")
- #elseif(${SearchTypeModel.searchType}==2)
- String value = ${name}Pagination.get${paginationName}() instanceof List ?
- JsonUtil.getObjectToString(${name}Pagination.get${paginationName}()) :
- String.valueOf(${name}Pagination.get${paginationName}());
- ${queryWrapper}.like(${ModelNameEntity}::get${fieldName},value);
- #elseif(${SearchTypeModel.searchType}==3)
- List ${fieldName}List = JsonUtil.getJsonToList(${name}Pagination.get${paginationName}(),String.class);
- for(int i=0;i<${fieldName}List.size();i++){
- String id = String.valueOf(${fieldName}List.get(i));
- boolean idAll = StringUtil.isNotEmpty(id) && !id.equals("null");
- if(idAll){
- #set($dataValues= "id;")
- #if(${SearchTypeModel.jnpfKey}=="dateTime" || ${SearchTypeModel.jnpfKey}=='datePicker' || ${SearchTypeModel.jnpfKey}=="createTime" || ${SearchTypeModel.jnpfKey}=="modifyTime")
- #set($dataValues= "new Date(Long.valueOf(id));")
- #elseif(${SearchTypeModel.jnpfKey}=="inputNumber" || ${SearchTypeModel.jnpfKey}=="calculate")
- #set($dataValues= "new BigDecimal(id);")
- #end
- Object b= ${dataValues}
- if(i==0){
- ${queryWrapper}.ge(${ModelNameEntity}::get${fieldName},b);
- }else{
- ${queryWrapper}.le(${ModelNameEntity}::get${fieldName},b);
- }
- }
- }
- #end
- }
- #end
- #end
- #end
- ##多选统一处理
- #macro(MultipleHandle $pagination)
- #if(${multipleUnit.contains(${jnpfKey})})
- List<String> idList = new ArrayList<>();
- try {
- String[][] ${vModelName} = JsonUtil.getJsonToBean(${pagination}.get${paginationName}(),String[][].class);
- for(int i=0;i<${vModelName}.length;i++){
- if(${vModelName}[i].length>0){
- idList.add(JsonUtil.getObjectToString(Arrays.asList(${vModelName}[i])));
- }
- }
- }catch (Exception e1){
- try {
- List<String> ${vModelName} = JsonUtil.getJsonToList(${pagination}.get${paginationName}(),String.class);
- if(${vModelName}.size()>0){
- #if(${multipleTwoUnit.contains(${jnpfKey})})
- idList.add(JsonUtil.getObjectToString(${vModelName}));
- #elseif(${jnpfKey} =='currOrganize')
- idList.add(${vModelName}.get(${vModelName}.size()-1));
- #else
- idList.addAll(${vModelName});
- #end
- }
- }catch (Exception e2){
- idList.add(String.valueOf(${pagination}.get${paginationName}()));
- }
- }
- ${queryWrapper}.and(t->{
- idList.forEach(tt->{
- if(StringUtil.isNotEmpty(tt) && "Microsoft SQL Server".equalsIgnoreCase(databaseName)){
- tt = tt.replaceFirst("\\[","[[]");
- }
- t.like(${ModelNameEntity}::get${fieldName}, tt).or();
- });
- });
- #else
- ${queryWrapper}.eq(${ModelNameEntity}::get${fieldName},${pagination}.get${paginationName}());
- #end
- #end
- ##关键词搜索
- #macro(JnpfKeywordSerach)
- if(ObjectUtil.isNotEmpty(${name}Pagination.getJnpfKeyword())){
- #if($!{keywordModels})
- if(isPc){
- wrapper.and(t -> {
- #foreach($Group in ${groupModels})
- #set($ModelName= "${Group.modelName.substring(0,1).toUpperCase()}${Group.modelName.substring(1)}")
- #set($ModelNameEntity = "${ModelName}Entity")
- #foreach($item in ${Group.searchTypeModelList})
- #if($item.afterVModel)
- #set($vModelName = $item.afterVModel)
- #else
- #set($vModelName = $item.id)
- #end
- #set($fieldName = "${vModelName.substring(0,1).toUpperCase()}${vModelName.substring(1)}")
- #if(${item.isKeyword})
- t.like(${ModelName}Entity::get${fieldName},${name}Pagination.getJnpfKeyword()).or();
- #end
- #end
- #end
- });
- }
- #end
- #if($!{keywordAppModels})
- if(!isPc){
- wrapper.and(t -> {
- #foreach($Group in ${groupAppModels})
- #set($ModelName= "${Group.modelName.substring(0,1).toUpperCase()}${Group.modelName.substring(1)}")
- #set($ModelNameEntity = "${ModelName}Entity")
- #foreach($item in ${Group.searchTypeModelList})
- #if($item.afterVModel)
- #set($vModelName = $item.afterVModel)
- #else
- #set($vModelName = $item.id)
- #end
- #set($fieldName = "${vModelName.substring(0,1).toUpperCase()}${vModelName.substring(1)}")
- #if(${item.isKeyword})
- t.like(${ModelName}Entity::get${fieldName},${name}Pagination.getJnpfKeyword()).or();
- #end
- #end
- #end
- });
- }
- #end
- }
- #end
- ##获取系统参数
- #macro(GetSystemData $isSave $chidKeyName)
- #if(${systemJnpfKey.contains(${key})})
- #set($opFlag = true)
- #if((${key}=='createUser' && !$isSave)
- ||(${key}=='createTime' && !$isSave)
- ||(${key}=='modifyUser' && $isSave)
- ||(${key}=='modifyTime' && $isSave)
- ||(${key}=='currOrganize' && !$isSave)
- ||(${key}=='currPosition' && !$isSave))
- #set($opFlag = false)
- #end
- #if($isFlow && $opFlag)
- if(hasOperate.contains("${realVmodel}") || noOperate){
- #end
- #if(${key}=='createUser')
- #if($isSave)
- ${nameEntity}.set${model}(userInfo.getUserId());
- #else
- ${nameEntity}.set${model}(null);
- #end
- #elseif(${key}=='createTime')
- #if($isSave)
- ${nameEntity}.set${model}(DateUtil.getNowDate());
- #else
- ${nameEntity}.set${model}(null);
- #end
- #elseif(${key}=='modifyUser')
- #if($isSave)
- ${nameEntity}.set${model}(null);
- #else
- ${nameEntity}.set${model}(userInfo.getUserId());
- #end
- #elseif(${key}=='modifyTime')
- #if($isSave)
- ${nameEntity}.set${model}(null);
- #else
- ${nameEntity}.set${model}(DateUtil.getNowDate());
- #end
- #elseif(${key}=='currOrganize')
- #if($isSave)
- ${nameEntity}.set${model}(generaterSwapUtil.getCurrentOrgIds(userInfo.getOrganizeId(),#if(${showLevel})"${showLevel}"#else"all"#end));
- #else
- ${nameEntity}.set${model}(null);
- #end
- #elseif(${key}=='currPosition')
- #if($isSave)
- ${nameEntity}.set${model}(StringUtil.isNotEmpty(userEntity.getPositionId()) ? userEntity.getPositionId() : null);
- #else
- ${nameEntity}.set${model}(null);
- #end
- #elseif(${key}=='billRule')
- #if($isSave)
- #if($config.ruleType == 2)
- ${nameEntity}.set${model}(generaterSwapUtil.getBillNumber2("${VisualDevId}","${config.formId}",${Name}Constant.${constantVmodel}, ${name}Form));
- #else
- ${nameEntity}.set${model}(generaterSwapUtil.getBillNumber("${rule}", false));
- #end
- #else
- if(StringUtil.isEmpty(${nameEntity}.get${model}()) #if(${chidKeyName})|| ${nameEntity}.get${chidKeyName}() == null #end){
- #if($config.ruleType == 2)
- ${nameEntity}.set${model}(generaterSwapUtil.getBillNumber2("${VisualDevId}","${config.formId}",${Name}Constant.${constantVmodel}, ${name}Form));
- #else
- ${nameEntity}.set${model}(generaterSwapUtil.getBillNumber("${rule}", false));
- #end
- }
- #end
- #end
- #if($isFlow && $opFlag)
- }
- #end
- #end
- #end
- ## 正则验证方法
- #macro(RegMethod $jnpfKey,$param $config)
- #if(!${lineEdit})
- #if($jnpfKey == 'input' && ${config.regList} && ${config.regList.size()}>0)
- if(StringUtil.isNotEmpty($param)){
- #foreach($regItem in ${config.regList})
- #set($pattern=$regItem.pattern.replace("\","\\").replace("/",""))
- if(!Pattern.compile("$pattern").matcher(String.valueOf($param)).matches()){
- return #if(${regItem.messageI18nCode})I18nUtil.getMessageStr("${regItem.messageI18nCode}", "${regItem.message}"); #else "${regItem.message}"; #end
- }
- #end
- }
- #end
- #end
- #end
- ##########################以上为宏调用,以下为实际方法##########################
- ## 列表接口
- #macro(GetTypeList)
- @Override
- public List<${Entity}> getList(${Name}Pagination ${name}Pagination){
- return getTypeList(${name}Pagination,${name}Pagination.getDataType());
- }
- /** 列表查询 */
- @Override
- public List<${Entity}> getTypeList(${Name}Pagination ${name}Pagination,String dataType){
- String userId=userProvider.get().getUserId();
- Map<String,Class> tableClassMap=new HashMap<>();
- #foreach($item in $allTableNameList)
- #set($TableEntity = "${item.table.substring(0,1).toUpperCase()}${item.table.substring(1)}")
- tableClassMap.put("${item.initName}",${TableEntity}Entity.class);
- #end
- ## 生成MPJLambdaWrapper对象
- #CreateWrapper()
- #CreateWrapper2()
- QueryAllModel queryAllModel = new QueryAllModel();
- queryAllModel.setWrapper(wrapper);
- queryAllModel.setClassMap(tableClassMap);
- queryAllModel.setDbLink(${Name}Constant.DBLINKID);
- ## 数据过滤
- //数据过滤
- boolean isPc = ServletUtil.getHeader("jnpf-origin").equals("pc");
- String columnData = !isPc ? ${Name}Constant.getAppColumnData() : ${Name}Constant.getColumnData();
- ColumnDataModel columnDataModel = JsonUtil.getJsonToBean(columnData, ColumnDataModel.class);
- String ruleJson = !isPc ? JsonUtil.getObjectToString(columnDataModel.getRuleListApp()) : JsonUtil.getObjectToString(columnDataModel.getRuleList());
- queryAllModel.setRuleJson(ruleJson);
- ## 高级查询
- //高级查询
- boolean hasSuperQuery = #if($superQuery) true#else false#end;
- if (hasSuperQuery) {
- queryAllModel.setSuperJson(${name}Pagination.getSuperQueryJson());
- }
- ## 数据权限
- //数据权限
- boolean pcPermission = ${pcDataPermisson};
- boolean appPermission = ${appDataPermisson};
- if (isPc && pcPermission) {
- queryAllModel.setModuleId(${name}Pagination.getMenuId());
- }
- if (!isPc && appPermission) {
- queryAllModel.setModuleId(${name}Pagination.getMenuId());
- }
- //拼接复杂条件
- wrapper = generaterSwapUtil.getConditionAllTable(queryAllModel);
- if(wrapper == null) return new ArrayList<>();
- queryAllModel.setWrapper(wrapper2);
- wrapper2 = generaterSwapUtil.getConditionAllTable(queryAllModel);
- ## 普通查询
- //其他条件拼接
- otherConditions(${name}Pagination, wrapper, isPc);
- otherConditions(${name}Pagination, wrapper2, isPc);
- #if(${groupTable} == true || ${treeTable} == true || ${hasPage} == false)
- //分组和树形生成这个代码,pc端返回全部数据 !"2".equals(dataType)导出选中数据
- if(isPc && !"2".equals(dataType)){
- dataType = "1";
- }
- #end
- if("0".equals(dataType)){
- com.github.pagehelper.Page<Object> objects = PageHelper.startPage((int) ${name}Pagination.getCurrentPage(), (int) ${name}Pagination.getPageSize(), true);
- List<${Entity}> userIPage = this.selectJoinList(${Entity}.class, wrapper2);
- List<Object> collect = userIPage.stream().map(t -> t.get${peimaryKeyName}()).collect(Collectors.toList());
- if(CollectionUtils.isNotEmpty(collect)){
- wrapper.in(${Entity}::get${peimaryKeyName},collect);
- }
- List<${Entity}> result = this.selectJoinList(${Entity}.class, wrapper);
- return ${name}Pagination.setData(result,objects.getTotal());
- }else{
- List<${Entity}> list = this.selectJoinList(${Entity}.class, wrapper);
- if("2".equals(dataType)){
- List<Object> selectIds = Arrays.asList(${name}Pagination.getSelectIds());
- return list.stream().filter(t -> selectIds.contains(t.get$peimaryKeyName())).collect(Collectors.toList());
- }else{
- return list;
- }
- }
- }
- /**
- * 其他条件拼接
- */
- private void otherConditions(${Name}Pagination ${name}Pagination, MPJLambdaWrapper<${Entity}> wrapper, boolean isPc) {
- String databaseName;
- try {
- @Cleanup Connection cnn = DynamicDataSourceUtil.getCurrentConnection();
- databaseName = cnn.getMetaData().getDatabaseProductName().trim();
- } catch (SQLException e) {
- throw new DataException(e.getMessage());
- }
- #if($logicalDelete)
- //假删除标志
- wrapper.isNull(${Entity}::getDeleteMark);
- #end
- #if($isFlow)
- //流程数据隔离
- List<String> flowIds = generaterSwapUtil.getFlowIds(${name}Pagination.getFlowId());
- wrapper.in(${Entity}::getFlowId,flowIds);
- #else
- wrapper.isNull(${Entity}::getFlowId);
- #end
- //关键词
- #JnpfKeywordSerach()
- //普通查询
- #PaginationSerach()
- //排序
- if(StringUtil.isEmpty(${name}Pagination.getSidx())){
- #if(${defaultSidx})
- #set($model = "${defaultSidx.substring(0,1).toUpperCase()}${defaultSidx.substring(1)}")
- #set($Sort = "${sort.substring(0,1).toUpperCase()}${sort.substring(1)}")
- wrapper.orderBy${Sort}(${Entity}::get${model});
- #else
- wrapper.orderByDesc(${Entity}::get${peimaryKeyName});
- #end
- }else{
- try {
- String[] split = ${name}Pagination.getSidx().split(",");
- for(String sidx:split){
- #if($lineEdit)
- sidx = sidx.split("_name")[0];
- #end
- ${Entity} ${name}Entity = new ${Entity}();
- String oderTableField = ${name}Entity.getClass().getAnnotation(TableName.class).value();
- boolean descFlag = sidx.startsWith("-");
- String sidxField = descFlag ? sidx.substring(1) : sidx;
- try{
- Field declaredField = ${name}Entity.getClass().getDeclaredField(sidxField);
- declaredField.setAccessible(true);
- sidxField = declaredField.getAnnotation(TableField.class).value();
- }catch (Exception e){
- }
- String finalOderTableField = oderTableField;
- String finalSidxField = sidxField;
- Object select = wrapper.getSelectColumns().stream().filter(t -> Objects.equals(finalOderTableField, t.getTableAlias())
- && Objects.equals(finalSidxField, t.getColumn())).findFirst().orElse(null);
- oderTableField = oderTableField + "." + sidxField;
- if (select == null) {
- wrapper.select(oderTableField);
- }
- if (descFlag) {
- wrapper.orderByDesc(oderTableField);
- } else {
- wrapper.orderByAsc(oderTableField);
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- #end
- ## 增删改查接口
- #macro(CrudMethod)
- @Override
- public ${Entity} getInfo(String ${peimaryKeyname}){
- ## 生成MPJLambdaWrapper对象
- #CreateWrapper()
- wrapper.and(
- t->t.eq(${Entity}::get${peimaryKeyName}, #if($snowflake)${peimaryKeyname} #else Long.parseLong(${peimaryKeyname})#end)
- .or().eq(${Entity}::getFlowTaskId, ${peimaryKeyname})
- );
- return this.selectJoinOne(${Entity}.class,wrapper);
- }
- @Override
- public void create(${Entity} entity){
- this.save(entity);
- }
- @Override
- public boolean update(String ${peimaryKeyname}, ${Entity} entity){
- return this.updateById(entity);
- }
- @Override
- public void delete(${Entity} entity){
- if(entity!=null){
- this.removeById(entity.get${peimaryKeyName}());
- }
- }
- #end
- ## 表单验证
- #macro(CheckForm)
- /** 验证表单唯一字段,正则,非空 i-0新增-1修改*/
- @Override
- public String checkForm(${Name}Form form,int i) {
- #if(${isFlow})
- List<String> flowIds = generaterSwapUtil.getFlowIds(form.getFlowId());
- #end
- boolean isUp =StringUtil.isNotEmpty(form.get${peimaryKeyName}()) && !form.get${peimaryKeyName}().equals("0");
- Object id= null;
- String countRecover = "";
- String fieldTipName = "";
- String canNotNull = I18nUtil.getMessageStr("sys.validate.textRequiredSuffix", "不能为空");
- String canNotRepeated = I18nUtil.getMessageStr("EXIST103", "不能重复");
- if (isUp){
- #if($snowflake)
- id = form.get${peimaryKeyName}();
- #else
- id = Long.parseLong(form.get${peimaryKeyName}());
- #end
- }
- ## 验证业务主键
- #if(${useBusinessKey})
- //验证业务主键
- String businessErr = checkBusinessKey(form, isUp ? id : null,#if($isFlow)flowIds#else null#end);
- if (StringUtil.isNotEmpty(businessErr)) {
- return businessErr;
- }
- #end
- ## 主表字段验证
- //主表字段验证
- #foreach($mastField in ${mastTableHandle})
- #set($Field = $mastField)
- #set($config = $Field.config)
- #set($unique = $config.unique)
- #set($required = $config.required)
- #set($jnpfKey = $config.jnpfKey)
- #set($vModel = ${Field.vModel})
- #set($upName = "${Field.fieldAlias.substring(0,1).toUpperCase()}${Field.fieldAlias.substring(1)}")
- fieldTipName = #if(${config.labelI18nCode}) I18nUtil.getMessageStr("${config.labelI18nCode}", "${config.label}"); #else "${config.label}"; #end
- #if($jnpfKey == 'input' && $required ==true && !${lineEdit})
- if(StringUtil.isEmpty(form.get${upName}())){
- return fieldTipName + canNotNull;
- }
- #end
- #if($jnpfKey == 'input' && $unique ==true)
- if(StringUtil.isNotEmpty(form.get${upName}())){
- form.set${upName}(form.get${upName}()#if($jnpfKey == 'input').trim()#end);
- QueryWrapper<${Name}Entity> ${vModel}Wrapper=new QueryWrapper<>();
- ${vModel}Wrapper.lambda().eq(${Name}Entity::get${upName},form.get${upName}());
- #if(${isFlow})
- ${vModel}Wrapper.lambda().in(${Name}Entity::getFlowId, flowIds);
- #else
- ${vModel}Wrapper.lambda().isNull(${Name}Entity::getFlowId);
- #end
- #if($logicalDelete)
- //假删除标志
- ${vModel}Wrapper.lambda().isNull(${Name}Entity::getDeleteMark);
- #end
- if (isUp){
- ${vModel}Wrapper.lambda().ne(${Name}Entity::get${peimaryKeyName}, id);
- }
- if((int) this.count(${vModel}Wrapper)>0){
- countRecover = fieldTipName + canNotRepeated;
- }
- }
- #end
- ## 正则判断
- #RegMethod($jnpfKey,"form.get${upName}()",$config)
- #end
- ## 副表字段验证
- #if(${columnTableHandle.size()}>0)
- //副表字段验证
- #foreach($cl in ${columnTableHandle})
- #set($columnTableName = "${cl.modelUpName}")
- #set($columnTableName = "${cl.modelLowName}")
- #foreach($clModel in ${cl.fieLdsModelList})
- #set($fieLdsModel = ${clModel.mastTable.fieLdsModel})
- #set($config = ${fieLdsModel.config})
- #set($fileRenameUp = "${fieLdsModel.fieldAlias.substring(0,1).toUpperCase()}${fieLdsModel.fieldAlias.substring(1)}")
- #set($fullName = "Jnpf_${fieLdsModel.tableAlias}_jnpf_${fieLdsModel.fieldAlias}")
- #set($key = ${config.jnpfKey})
- #set($unique = $config.unique)
- #set($required = $config.required)
- fieldTipName = #if(${config.labelI18nCode}) I18nUtil.getMessageStr("${config.labelI18nCode}", "${config.label}"); #else "${config.label}"; #end
- #if($required ==true && !${lineEdit})
- if(#if($key =='input') StringUtil.isEmpty(form.get${fullName}()) #else form.get${fullName}() == null #end){
- return fieldTipName + canNotNull;
- }
- #end
- #if($unique ==true)
- if(#if($key =='input') StringUtil.isNotEmpty(form.get${fullName}())#else form.get${fullName}() ==null #end ){
- form.set${fullName}(form.get${fullName}()#if($key == 'input').trim()#end);
- MPJLambdaWrapper<${Name}Entity> ${cl.modelLowName}${fileRenameUp}Wrapper = new MPJLambdaWrapper<>(${Name}Entity.class)
- .leftJoin(${cl.modelUpName}Entity.class, ${cl.modelUpName}Entity::get${cl.relationUpField}, ${Name}Entity::get${cl.mainUpKey})
- .select(${Name}Entity::get${peimaryKeyName});
- #if(${isFlow})
- ${cl.modelLowName}${fileRenameUp}Wrapper.in(${Name}Entity::getFlowId, flowIds);
- #else
- ${cl.modelLowName}${fileRenameUp}Wrapper.isNull(${Name}Entity::getFlowId);
- #end
- #if($logicalDelete)
- //假删除标志
- ${cl.modelLowName}${fileRenameUp}Wrapper.isNull(${Name}Entity::getDeleteMark);
- #end
- ${cl.modelLowName}${fileRenameUp}Wrapper.eq(${cl.modelUpName}Entity::get${fileRenameUp},form.get${fullName}());
- if (isUp){
- ${cl.modelLowName}${fileRenameUp}Wrapper.ne(${cl.modelUpName}Entity::get${cl.relationUpField}, id);
- }
- if((int) this.count(${cl.modelLowName}${fileRenameUp}Wrapper)>0){
- countRecover = fieldTipName + canNotRepeated;
- }
- }
- #end
- ## 正则判断
- #RegMethod($key,"form.get${fullName}()",$config)
- #end
- #end
- #end
- ## 子表字段验证
- #if(${childTableHandle.size()}>0)
- //子表字段验证
- #foreach($grid in ${childTableHandle})
- if (form.get${grid.aliasUpName}List()!=null){
- #foreach($jnpfkey in ${grid.childList})
- #if(${jnpfkey.fieLdsModel.vModel} != '')
- #set($fieLdsModel = ${jnpfkey.fieLdsModel})
- #set($config = ${fieLdsModel.config})
- #set($key = ${config.jnpfKey})
- #set($model = "${fieLdsModel.fieldAlias.substring(0,1).toUpperCase()}${fieLdsModel.fieldAlias.substring(1)}")
- #set($unique = ${config.unique})
- #set($required = ${config.required})
- fieldTipName = #if(${grid.labelI18nCode}) I18nUtil.getMessageStr("${grid.labelI18nCode}", "${grid.label}")#else "${grid.label}" #end
- + "-" + #if(${config.labelI18nCode}) I18nUtil.getMessageStr("${config.labelI18nCode}", "${config.label}");#else "${config.label}"; #end
- #if($required ==true || $unique ==true || ${config.regList})
- for(${grid.aliasUpName}Model t : form.get${grid.aliasUpName}List()){
- if(#if($key =='input') StringUtil.isNotEmpty(t.get${model}()) #else t.get${model}() != null #end){
- t.set${model}(t.get${model}()#if($key == 'input').trim()#end);
- }
- #if($required ==true && !${lineEdit})
- else{
- return fieldTipName + canNotNull;
- }
- #end
- ## 子表正则
- #RegMethod($key,"t.get${model}()",$config)
- }
- #end
- #if($key =='input' && $unique ==true)
- 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());
- HashSet<String> ${model}Set = new HashSet<>(${model}List);
- if(${model}Set.size() != ${model}List.size()){
- countRecover = fieldTipName + canNotRepeated;
- }
- #end
- #end
- #end
- }
- #end
- #end
- return countRecover;
- }
- #end
- #macro(CheckBusinessKey)
- /**
- * 验证业务主键
- */
- private String checkBusinessKey(${Name}Form form, Object id, List<String> flowIds){
- QueryWrapper<${Name}Entity> wrapper = new QueryWrapper<>();
- //修改
- if (id != null){
- wrapper.lambda().ne(${Name}Entity::get${peimaryKeyName}, id);
- }
- //是否流程
- if(flowIds == null){
- wrapper.lambda().isNull(${Name}Entity::getFlowId);
- }else{
- wrapper.lambda().in(${Name}Entity::getFlowId, flowIds);
- }
- #if($logicalDelete)
- //假删除标志
- wrapper.lambda().isNull(${Name}Entity::getDeleteMark);
- #end
- #set($notToJson=['inputNumber','input','textarea','radio','timePicker','createUser','modifyUser','location','currPosition'])
- #foreach($item in ${businessKeyList})
- #set($jnpfKey = $item.config.jnpfKey)
- #set($fieldNameUp = "${item.fieldAlias.substring(0,1).toUpperCase()}${item.fieldAlias.substring(1)}")
- //${item.config.label}字段判断
- #if($jnpfKey == 'datePicker')
- if(form.get${fieldNameUp}() == null || form.get${fieldNameUp}().trim().isEmpty()){
- wrapper.lambda().isNull(${Name}Entity::get${fieldNameUp});
- }else{
- Object obj = new Date(Long.parseLong(form.get${fieldNameUp}()));
- wrapper.lambda().eq(${Name}Entity::get${fieldNameUp}, obj);
- }
- #elseif(${notToJson.contains(${jnpfKey})})
- if(form.get${fieldNameUp}() == null || form.get${fieldNameUp}().toString().trim().isEmpty()){
- wrapper.lambda().isNull(${Name}Entity::get${fieldNameUp});
- }else{
- wrapper.lambda().eq(${Name}Entity::get${fieldNameUp}, form.get${fieldNameUp}());
- }
- #else
- if(form.get${fieldNameUp}() == null || form.get${fieldNameUp}().toString().trim().isEmpty()
- ||(form.get${fieldNameUp}() instanceof List && ((List) form.get${fieldNameUp}()).size() == 0)){
- wrapper.lambda().isNull(${Name}Entity::get${fieldNameUp});
- }else{
- Object obj = form.get${fieldNameUp}() instanceof List ?JsonUtil.getObjectToString(form.get${fieldNameUp}()):form.get${fieldNameUp}();
- wrapper.lambda().eq(${Name}Entity::get${fieldNameUp}, obj);
- }
- #end
- #end
- if((int) this.count(wrapper)>0){
- return "${businessKeyTip}";
- }
- return "";
- }
- #end
- ## 保存或者修改事务方法
- #macro(SaveOrUpdate)
- /**
- * 新增修改数据(事务回滚)
- * @param id
- * @param ${name}Form
- * @return
- */
- @Override
- #if(${DS})
- @DSTransactional
- #else
- @Transactional
- #end
- public void saveOrUpdate(${Name}Form ${name}Form,String id, boolean isSave) throws Exception{
- #if($isFlow)
- List<$mapObject> formOperates = ${name}Form.getFormOperates();
- List<String> hasOperate = new ArrayList<>();
- boolean noOperate = false;
- if(CollectionUtils.isNotEmpty(formOperates)){
- for ($mapObject formOperate : formOperates) {
- String formOperateId = formOperate.get("id").toString();
- boolean formOperateWrite = formOperate.get("write") ==null? false : (boolean) formOperate.get("write");
- if(formOperateWrite){
- hasOperate.add(formOperateId);
- }
- }
- }else{
- noOperate = true;
- }
- #end
- UserInfo userInfo=userProvider.get();
- UserEntity userEntity = generaterSwapUtil.getUser(userInfo.getUserId());
- ${name}Form = JsonUtil.getJsonToBean(
- generaterSwapUtil.swapDatetime(${Name}Constant.getFormData(),${name}Form,${Name}Constant.TABLERENAMES),${Name}Form.class);
- ${Name}Entity entity = JsonUtil.getJsonToBean(${name}Form, ${Name}Entity.class);
- #set($peimaryKeyName="${pKeyName.substring(0,1).toUpperCase()}${pKeyName.substring(1)}")
- String mainUuid = StringUtil.isEmpty(id) ? RandomUtil.uuId() : id;
- #if($isFlow)
- entity.setFlowId(${name}Form.getFlowId());
- #end
- ##主表保存修改判断是否有系统控件
- #foreach($field in ${mastTableHandle})
- #set($key = ${field.config.jnpfKey})
- #if(${systemJnpfKey.contains(${key})})
- #set($mainHasSysFields =true)
- #end
- #end
- if(isSave){
- entity.setFlowTaskId(mainUuid);
- #foreach($field in ${mastTableHandle})
- #set($model = "${field.fieldAlias.substring(0,1).toUpperCase()}${field.fieldAlias.substring(1)}")
- #set($key = ${field.config.jnpfKey})
- #set($nameEntity = "entity")
- #set($rule ="${field.config.rule}")
- #set($showLevel ="${field.showLevel}")
- #set($realVmodel ="${field.vModel}")
- #set($config =${field.config})
- #set($constantVmodel ="${field.vModel}")
- #GetSystemData(true)
- #end
- #if($snowflake)
- entity.set${peimaryKeyName}(mainUuid);
- #end
- #if($version)
- #if(${versionType} == "bigint")
- entity.setVersion(0l);
- #else
- entity.setVersion(0);
- #end
- #end
- } else {
- #foreach($field in ${mastTableHandle})
- #set($model = "${field.fieldAlias.substring(0,1).toUpperCase()}${field.fieldAlias.substring(1)}")
- #set($key = ${field.config.jnpfKey})
- #set($nameEntity = "entity")
- #set($rule ="${field.config.rule}")
- #set($showLevel ="${field.showLevel}")
- #set($realVmodel ="${field.vModel}")
- #set($config =${field.config})
- #set($constantVmodel ="${field.vModel}")
- #GetSystemData(false)
- #end
- }
- boolean b = this.saveOrUpdate(entity);
- #if($version)
- if(!b){
- throw new DataException("当前表单原数据已被调整,请重新进入该页面编辑并提交数据");
- }
- #end
- ${Name}Entity info = this.getInfo(mainUuid);
- if (info == null) throw new RuntimeException(MsgCode.FA001.get());
- #if(!$snowflake)
- entity.set${peimaryKeyName}(info.get${peimaryKeyName}());
- #end
- ##子表数据新增修改
- #if(${childTableHandle.size()}>0)
- #foreach($grid in ${childTableHandle})
- #set($tableField = "${grid.tablefield.substring(0,1).toUpperCase()}${grid.tablefield.substring(1)}")
- #set($relationField = "${grid.relationField.substring(0,1).toUpperCase()}${grid.relationField.substring(1)}")
- #set($chidKeyName = "${grid.chidKeyName.substring(0,1).toUpperCase()}${grid.chidKeyName.substring(1)}")
- //${grid.aliasUpName}子表数据新增修改
- QueryWrapper<${grid.aliasUpName}Entity> ${grid.aliasUpName}queryWrapper = new QueryWrapper<>();
- ${grid.aliasUpName}queryWrapper.lambda().eq(${grid.aliasUpName}Entity::get${tableField}, info.get${relationField}());
- if(!isSave && !CollectionUtils.isNotEmpty(${name}Form.get${grid.aliasUpName}List())){
- ${grid.aliasLowName}Service.remove(${grid.aliasUpName}queryWrapper);
- }
- if (CollectionUtils.isNotEmpty(${name}Form.get${grid.aliasUpName}List())){
- List<${grid.aliasUpName}Entity> ${grid.tableModel} = JsonUtil.getJsonToList(${name}Form.get${grid.aliasUpName}List(),${grid.aliasUpName}Entity.class);
- //移除的数据
- List<Object> childIds = ${grid.tableModel}.stream().filter(t->t.get${chidKeyName}()!=null).map(${grid.aliasUpName}Entity::get${chidKeyName}).collect(Collectors.toList());
- if(CollectionUtils.isNotEmpty(childIds)){
- ${grid.aliasUpName}queryWrapper.lambda().notIn(${grid.aliasUpName}Entity::get${chidKeyName},childIds);
- }
- ${grid.aliasLowName}Service.remove(${grid.aliasUpName}queryWrapper);
- for(${grid.aliasUpName}Entity entitys : ${grid.tableModel}){
- entitys.set${tableField}(entity.get${relationField}());
- ##子表保存修改判断是否有系统控件
- #set($childHasSysFields =false)
- #foreach($jnpfkey in ${grid.childList})
- #if(${jnpfkey.fieLdsModel.vModel} != '')
- #set($key = ${jnpfkey.fieLdsModel.config.jnpfKey})
- #if(${systemJnpfKey.contains(${key})})
- #set($childHasSysFields =true)
- #end
- #end
- #end
- #if($childHasSysFields)
- if(isSave || entitys.get${chidKeyName}()==null){
- #foreach($jnpfkey in ${grid.childList})
- #if(${jnpfkey.fieLdsModel.vModel} != '')
- #set($key = ${jnpfkey.fieLdsModel.config.jnpfKey})
- #set($rule = ${jnpfkey.fieLdsModel.config.rule})
- #set($showLevel ="${jnpfkey.fieLdsModel.showLevel}")
- #set($model = "${jnpfkey.fieLdsModel.fieldAlias.substring(0,1).toUpperCase()}${jnpfkey.fieLdsModel.fieldAlias.substring(1)}")
- #set($nameEntity = "entitys")
- #set($realVmodel ="${grid.aliasLowName}List-${jnpfkey.fieLdsModel.vModel}")
- #set($config =${jnpfkey.fieLdsModel.config})
- #set($constantVmodel ="${grid.aliasLowName}_${jnpfkey.fieLdsModel.vModel}")
- #GetSystemData(true)
- #end
- #end
- }else{
- #foreach($jnpfkey in ${grid.childList})
- #if(${jnpfkey.fieLdsModel.vModel} != '')
- #set($key = ${jnpfkey.fieLdsModel.config.jnpfKey})
- #set($rule = ${jnpfkey.fieLdsModel.config.rule})
- #set($showLevel ="${jnpfkey.fieLdsModel.showLevel}")
- #set($model = "${jnpfkey.fieLdsModel.fieldAlias.substring(0,1).toUpperCase()}${jnpfkey.fieLdsModel.fieldAlias.substring(1)}")
- #set($nameEntity = "entitys")
- #set($realVmodel ="${grid.aliasLowName}List-${jnpfkey.fieLdsModel.vModel}")
- #set($config =${jnpfkey.fieLdsModel.config})
- #set($constantVmodel ="${grid.aliasLowName}_${jnpfkey.fieLdsModel.vModel}")
- #GetSystemData(false,${chidKeyName})
- #end
- #end
- }
- #end
- #if($snowflake)
- if(entitys.get${chidKeyName}()==null){
- entitys.set${chidKeyName}(RandomUtil.uuId());
- }
- #end
- ${grid.aliasLowName}Service.saveOrUpdate(entitys);
- }
- }
- #end
- #end
- ##副表数据新增修改
- #if(${columnTableHandle.size()}>0)
- #foreach($cl in ${columnTableHandle})
- ##副表保存修改判断是否有系统控件
- #set($mastHasSysFields =false)
- #foreach($clModel in ${cl.fieLdsModelList})
- #set($key = ${clModel.mastTable.fieLdsModel.config.jnpfKey})
- #if($key!='' && ${systemJnpfKey.contains(${key})})
- #set($mastHasSysFields =true)
- #end
- #end
- //${cl.tableName}副表数据新增修改
- #set($mainField = $cl.mainField)
- #set($mainUpId = "${mainField.substring(0,1).toUpperCase()}${mainField.substring(1)}")
- $mapObject ${cl.modelName}Map = generaterSwapUtil.getMastTabelData(${name}Form,"${cl.tableName}");
- ${cl.modelName}Entity ${cl.modelLowName}entity = JsonUtil.getJsonToBean(${cl.modelName}Map,${cl.modelName}Entity.class);
- //自动生成的字段
- if(isSave){
- #if($mastHasSysFields)
- #foreach($clModel in ${cl.fieLdsModelList})
- #set($model = "${clModel.mastTable.fieLdsModel.fieldAlias.substring(0,1).toUpperCase()}${clModel.mastTable.fieLdsModel.fieldAlias.substring(1)}")
- #set($key = ${clModel.mastTable.fieLdsModel.config.jnpfKey})
- #set($nameEntity = "${cl.modelLowName}entity")
- #set($rule ="${clModel.mastTable.fieLdsModel.config.rule}")
- #set($showLevel ="${clModel.mastTable.fieLdsModel.showLevel}")
- #set($realVmodel ="${clModel.vModel}")
- #set($config =${clModel.mastTable.fieLdsModel.config})
- #set($constantVmodel ="${clModel.vModel}")
- #GetSystemData(true)
- #end
- #end
- #if($snowflake)
- ${cl.modelLowName}entity.set${mainUpId}(RandomUtil.uuId());
- #end
- ${cl.modelLowName}entity.set${cl.relationUpField}(entity.get${cl.mainUpKey}());
- }else{
- QueryWrapper<${cl.modelUpName}Entity> queryWrapper${cl.modelUpName} =new QueryWrapper<>();
- queryWrapper${cl.modelUpName}.lambda().eq(${cl.modelUpName}Entity::get${cl.relationUpField},info.get${cl.mainUpKey}());
- ${cl.modelUpName}Entity ${cl.modelLowName}OneEntity= ${cl.modelLowName}Service.getOne(queryWrapper${cl.modelUpName});
- #if($mastHasSysFields)
- #foreach($clModel in ${cl.fieLdsModelList})
- #set($model = "${clModel.mastTable.fieLdsModel.fieldAlias.substring(0,1).toUpperCase()}${clModel.mastTable.fieLdsModel.fieldAlias.substring(1)}")
- #set($key = ${clModel.mastTable.fieLdsModel.config.jnpfKey})
- #set($nameEntity = "${cl.modelLowName}entity")
- #set($rule ="${clModel.mastTable.fieLdsModel.config.rule}")
- #set($showLevel ="${clModel.mastTable.fieLdsModel.showLevel}")
- #set($realVmodel ="${clModel.vModel}")
- #set($config =${clModel.mastTable.fieLdsModel.config})
- #set($constantVmodel ="${clModel.vModel}")
- #GetSystemData(false)
- #end
- #end
- ${cl.modelLowName}entity.set${cl.mainField}(${cl.modelLowName}OneEntity.get${cl.mainField}());
- ${cl.modelLowName}entity.set${cl.relationUpField}(entity.get${cl.mainUpKey}());
- }
- ${cl.modelLowName}Service.saveOrUpdate(${cl.modelLowName}entity);
- #end
- #end
- }
- #end
|