kazpgmの日記

『プログラム自動作成@自動生成』作成の日記

「kaz_javaSpringBootプログラム自動作成◎生成ツール」ajaxで名称表示。などのバグ修正

kaz_javaSpringBootプログラム自動作成◎生成ツール」java ,SpringBoot
https://www.vector.co.jp/soft/winnt/prog/se523123.html
のバグ修正が完了した。本日VectorにVer1.4(202109080000)で登録依頼する。

修正履歴は以下のようになる。
・1.4(202109080000)
 1.バグ修正
  ■「検索・入力ajax」(1.2(202108180000)で追加)ができるようになったので
   Long項目に"aaa"が入力できるようになり、例外が発生する。

   対処:DbElementsControllerでエレメントがLongのときに、
      入力が数字でないとき空文字名称を戻すことにした。
   補足:「検索・入力プルダウン」(SELECT項目)時はエレメント値しか選べないので例外発生はなかった。
   ①DbElementsController.java
    例:修正前
    if (fmElementNm.equals("ary_lrgmidsml_biztype")) {
     if (!ObjectUtils.isEmpty(fmLrgKey)) {
      //表示名を設定
      map.put("LrgName",dbElementsService.getBizname(Long.parseLong(fmLrgKey), getAllFlg));
     } else {
      map.put("LrgName", "");
     }
    }
    修正後
    if (fmElementNm.equals("ary_lrgmidsml_biztype")) {
     if (!Functions.isItemEmptyOrNoGood(fmLrgKey, true)) {
      //表示名を設定
      map.put("LrgName",dbElementsService.getBizname(Long.parseLong(fmLrgKey), getAllFlg));
     } else {
      map.put("LrgName", "");
     }
    }

   ②com.kaz01u.demo.utils.Functions.javaに追加
    /**
    * 項目値のチェック。
    * @param str 項目値
    * @param longKbn true:Long false:Long以外
    * @return true:NULLまたは空白または属性例外、false:NULL以外かつ空白以外かつ属性例外以外
    */
    public static boolean isItemEmptyOrNoGood(String str, boolean longKbn) {
     boolean flg  = true;
     if (!ObjectUtils.isEmpty(str)) {
      if (longKbn) {
       boolean isNumber = str.codePoints()
           .allMatch(Character::isDigit);
       if (isNumber) {
        flg  = false;
       }
      }else {
       flg  = false;
      }
     }
     return flg;
    }

   ③hinagata中の変更は
    変更内容
    import com.kaz01u.demo.utils.Functions;
    ObjectUtils.isEmpty(fmLrgKey) → Functions.isItemEmptyOrNoGood(fmLrgKey, ■{LrgKeyLongKbn}■)
    ObjectUtils.isEmpty(fmMidKey) → Functions.isItemEmptyOrNoGood(fmMidKey, ■{MidKeyLongKbn}■)
    ObjectUtils.isEmpty(fmSmlKey) → Functions.isItemEmptyOrNoGood(fmSmlKey, ■{SmlKeyLongKbn}■)
    対象ファイルは
    作成例\hinagata\java\controller\01_00_DbElementsController.txt
    作成例\hinagata\java\controller\01_03_00_DbElementsGets_LrgMidSml部品.txt
    作成例\hinagata\java\controller\01_03_00_DbElementsGets_LrgMid部品.txt
    作成例\hinagata\java\controller\01_04_00_DbElementsGets_LrgMidSml部品.txt
    作成例\hinagata\java\controller\01_04_00_DbElementsGets_LrgMid部品.txt
    作成例\hinagata\java\controller\01_04_00_DbElementsGets_Lrg部品.txt
   ④VBAの変更は
    templateなどOtaasukeクラス

  ■前回の修正1.3(202108290000)で、各テーブル用コントローラの「@PostMapping(params="mode=insList_add")」メソッドで、
   @Validatedを修正したが、大分類、中分類、小分類の、DBエレメントを作成する処理は、入力エラーでもやらないといけない
   ということを加味していなかった。
   ので「if (result.hasErrors())」より前に、大分類、中分類、小分類の、DBエレメントを作成する処理を行うように変更する。

  ■前回の修正1.3(202108290000)で、各テーブル用コントローラの「@PostMapping(params="mode=insList_del")」メソッドで、
   @Validatedを修正したが、大分類、中分類、小分類の、DBエレメントを作成する処理は、入力エラーでもやらないといけない
   ということを加味していなかった。
   ので「if (result.hasErrors())」より前に、大分類、中分類、小分類の、DBエレメントを作成する処理を行うように変更する。


■2021/06/21から、『kaz_javaSpringBootプログラム自動作成◎自動生成ツール』をVectorに載せています。2022年にZenn本も書きました。使ってみての感想や間違いの指定や、こうやったほうがいいとかの情報があればメールください。
Vector
www.vector.co.jp
・Zenn本(SpringBoot、Thymeleaf プログラム自動作成(マクロ使用版))
zenn.dev