Pastebin: Java Dao ソースメモ

Format
Plain text
Post date
2016-11-30 00:01
Publication Period
Unlimited
  1. Action.java
  2. @Path("/")
  3. public class PC005Action {
  4. Logger logger = Logger.getGlobal();
  5. @GET
  6. @Path("/action/mworkkbn")
  7. @Produces(MediaType.APPLICATION_JSON)
  8. public HashMap<String, Object> selectmworkkbn(){
  9. logger.log(Level.INFO, "作業者情報取得API 処理開始");
  10. // トランザクションの取得
  11. TransactionManager tm = AppConfig.singleton().getTransactionManager();
  12. //返却値
  13. HashMap<String,Object> vResult = new HashMap<String,Object>();
  14. // MWorkerInfo
  15. MWorkKbnDao daoWInfo = new MWorkKbnDaoImpl() ;;
  16. List<MWorkKbn> resInfo = tm.required(() -> {
  17. try{
  18. return daoWInfo.selectAll();
  19. }catch(Exception e){
  20. e.getStackTrace();
  21. return null ;
  22. }
  23. });
  24. vResult.put("result", (resInfo == null ? false : true)); //検索結果、1件以上取得できた場合はtrue
  25. vResult.put("data", resInfo); //検索結果
  26. // 処理終了
  27. logger.log(Level.INFO, "作業者情報取得API 処理終了");
  28. return vResult;
  29. }
  30. /**
  31. * 保存
  32. * info.get("updateCount")の存在チェックを行い、有無でInsertまたはUpdate振り分ける
  33. * @param data
  34. * @return
  35. * (登録) 0:正常/-1:MWorkerInfo重複エラー/
  36. * -10:該当グループコードなしエラー/-20:該当シフト区分なしエラー/-99:その他エラー
  37. * (更新) 1:正常/-5:MWorkerInfo更新対象存在なしエラー/-6:更新回数エラー
  38. * /-10:該当グループコードなしエラー/-20:該当シフト区分なしエラー/-99:その他エラー
  39. */
  40. @POST
  41. @Path("/pc005/execute")
  42. @Consumes(MediaType.APPLICATION_JSON)
  43. @Produces(MediaType.TEXT_PLAIN)
  44. public int execute(LinkedHashMap<String, Object> data){
  45. //初期化
  46. int vResult = -99;
  47. //引数よりデータ取得
  48. List<LinkedHashMap<String,Object>> work = Utility.autoCast(data.get("inputData"));
  49. //TODO:パラメータの中に'inputData'が存在しない場合はエラー
  50. if (work == null){
  51. vResult = -98;
  52. }
  53. // トランザクションの取得
  54. TransactionManager tm = AppConfig.singleton().getTransactionManager();
  55. vResult = tm.required(() -> {
  56. try{
  57. LinkedHashMap<String,Object> info = work.get(0);
  58. if(info.get("updateCount") == null){
  59. //登録
  60. return this.insertWorkKbn(data);
  61. }
  62. }catch(Exception e){
  63. e.getStackTrace();
  64. tm.setRollbackOnly();
  65. return -99;
  66. }
  67. });
  68. return vResult;
  69. }
  70. public int insertWorkKbn(LinkedHashMap<String , Object> data){
  71. //初期化
  72. int vResult = -99;
  73. //引数よりデータ取得
  74. List<LinkedHashMap<String,Object>> work = Utility.autoCast(data.get("inputData"));
  75. // トランザクションの取得
  76. TransactionManager tm = AppConfig.singleton().getTransactionManager();
  77. vResult = tm.required(() -> {
  78. try{
  79. LinkedHashMap<String,Object> kbn = work.get(0);
  80. String term = (String)kbn.get("term");
  81. String pgmId = (String)kbn.get("pgmId");
  82. MWorkKbnDao daoMWorkKbn = new MWorkKbnDaoImpl();
  83. //MWorkerInfo重複チェック
  84. int cnt = daoMWorkKbn.selectCountMWorkKbn((String)kbn.get("eigyoCd"), (String)kbn.get("workName"));
  85. if(cnt > 0){
  86. tm.setRollbackOnly();
  87. return -1;
  88. }
  89. //エラーなしの場合は登録
  90. MWorkKbn MWorkKbnDto = new MWorkKbn();
  91. setInsertContentsInfo(MWorkKbnDto,kbn,term,pgmId);
  92. daoMWorkKbn.insertMWorkKbn(MWorkKbnDto);
  93. }catch(Exception e){
  94. e.getStackTrace();
  95. tm.setRollbackOnly();
  96. return -99;
  97. }
  98. return 0; //エラーが発生しなかった場合は0を返す
  99. });
  100. return vResult;
  101. }
  102. /**
  103. * 登録内容の設定(MWorkerInfo)
  104. * @param dataWorkerInfo
  105. * @param term
  106. * @param pgmId
  107. * @throws InvocationTargetException
  108. * @throws IllegalAccessException
  109. */
  110. private void setInsertContentsInfo(MWorkKbn MWorkKbnDto,LinkedHashMap<String,Object> kbn,String term,String pgmId) throws IllegalAccessException, InvocationTargetException{
  111. //infoの内容をworkerInfoDtoにうつす
  112. BeanUtils.populate(MWorkKbnDto,kbn);
  113. MWorkKbnDto.setCreateTermid(term);
  114. MWorkKbnDto.setCreatePgmid(pgmId);
  115. }
  116. Dao.java
  117. package jp.co.wissen.pac.PACLibrary.api.dao;
  118. import java.util.List;
  119. import org.seasar.doma.Dao;
  120. import org.seasar.doma.Delete;
  121. import org.seasar.doma.Insert;
  122. import org.seasar.doma.Select;
  123. import org.seasar.doma.Update;
  124. import jp.co.wissen.pac.PACLibrary.api.common.database.AppConfig;
  125. import jp.co.wissen.pac.PACLibrary.api.entity.MatrixData;
  126. import jp.co.wissen.pac.PACLibrary.api.entity.db.MWorkKbn;
  127. /**
  128. */
  129. @Dao(config = AppConfig.class)
  130. public interface MWorkKbnDao {
  131. @Select
  132. List<MWorkKbn> selectAll();
  133. @Select
  134. List<MatrixData> selectWorkerCount(String startYMD, String endYMD);
  135. @Select
  136. MWorkKbn selectMWorkKbn( String eigyoCd , String workName);
  137. /**
  138. * @param eigyoCd
  139. * @param ninuCd
  140. * @param workKbn
  141. * @return the MWorkKbn entity
  142. */
  143. @Select
  144. MWorkKbn selectById(String eigyoCd, String workKbn);
  145. /**
  146. * @param entity
  147. * @return affected rows
  148. */
  149. @Insert
  150. int insert(MWorkKbn entity);
  151. /**
  152. * @param entity
  153. * @return affected rows
  154. */
  155. @Update
  156. int update(MWorkKbn entity);
  157. /**
  158. * @param entity
  159. * @return affected rows
  160. */
  161. @Delete
  162. int delete(MWorkKbn entity);
  163. /**
  164. * DEL_FLG=' 'のMWorkKbnを取得します
  165. * @param eigyoCd
  166. * @return
  167. */
  168. @Select
  169. List<MWorkKbn> selectWorkKbn(String eigyoCd);
  170. @Select
  171. int selectCountMWorkKbn(String eigyoCd ,String workName);
  172. @Insert(sqlFile = true)
  173. int insertMWorkKbn(MWorkKbn entity);
  174. @Update(sqlFile = true)
  175. int updateMWorkKbn(MWorkKbn entity);
  176. @Update(sqlFile = true)
  177. int deleteupdateMWorkKbn( MWorkKbn entity) ;
  178. }
Download Printable view

URL of this paste

Embed with JavaScript

Embed with iframe

Raw text