OSDN Git Service

Refactoring to PartsListController
authoruyaji <yuichiro.uyama@gmail.com>
Mon, 9 Sep 2013 00:43:45 +0000 (09:43 +0900)
committeruyaji <yuichiro.uyama@gmail.com>
Mon, 9 Sep 2013 00:43:45 +0000 (09:43 +0900)
PartsList/PartsList/app/controllers/PartsListController.scala
PartsList/PartsList/app/services/PartManager.scala
PartsList/PartsList/app/utils/Recursion.scala [new file with mode: 0644]
PartsList/PartsList/toDo/toDoList.txt

index 950c721..4bb7fde 100644 (file)
@@ -11,6 +11,8 @@ import views._
 import models._
 import beans._
 import forms._
+import utils._
+import services._
 import scala.collection.mutable.ArrayBuffer
 
 object PartsListController extends Controller{
@@ -45,7 +47,7 @@ object PartsListController extends Controller{
                var partBuffer = ArrayBuffer[PartsListBean]()
            inTransaction {
                  for (parentPart <- PartsListDb.parts.where(p => p.name like key + "%" )) {
-                         Recursion(parentPart, partBuffer, opt)
+                   Recursion().down(parentPart, partBuffer, opt)
                  }
            }
          val row = Integer.decode(Messages("list.row"))
@@ -56,41 +58,12 @@ object PartsListController extends Controller{
          var partBuffer = ArrayBuffer[PartsListBean]()
          inTransaction {
                  for (childPart <- PartsListDb.parts.where(p => p.name like key +"%")) {
-                   UpRecursion(childPart, partBuffer, opt)
+                   Recursion().up(childPart, partBuffer, opt)
                  }
           }
           val row = Integer.decode(Messages("list.row"))
           Ok(views.html.uppartslistshow(partBuffer.drop(page*row).take(row), opt, page, partBuffer.size, key))
        }
-       
-       def Recursion(parentPart:Part, partBuffer:ArrayBuffer[PartsListBean], opt:Int):Unit = {
-         for(child <- parentPart.parts) {
-               if(parentPart.partRelation(child.id).delDcId==0) {
-                       if(opt!=3 || opt==3 && child.name.startsWith("Unit")) {
-                               partBuffer += PartsListBean(parentPart.name, child.name, parentPart.partRelation(child.id).quantity)
-                       }
-                       if(opt==1 || opt==2 && !child.name.startsWith("Part") || opt==3) {
-                               Recursion(child, partBuffer, opt)
-                       }
-               }
-         }
-       }
-
-       def UpRecursion(childPart:Part, partBuffer:ArrayBuffer[PartsListBean], opt:Int):Unit = {
-         if(childPart.parentParts.size == 0 && opt == 2) {
-           partBuffer += PartsListBean("", childPart.name,0)
-         }
-         for(parent <- childPart.parentParts) {
-                 if(parent.partRelation(childPart.id).delDcId == 0 ) {
-                         if(opt != 2) {
-                                 partBuffer += PartsListBean(childPart.name, parent.name, parent.partRelation(childPart.id).quantity)
-                         }
-                         if(opt != 1) {
-                                 UpRecursion(parent, partBuffer, opt)
-                         }
-                 }
-         }
-       }
 
        def createRelation(parent:String) = Action {implicit request =>
          Ok(views.html.createRelationForm(relationForm.fill(new PartsListBean(parent, "", 0)),""))
@@ -110,12 +83,12 @@ object PartsListController extends Controller{
                     // 子品番正展開配列
                     var partBuffer = ArrayBuffer[PartsListBean]()
                     for (parentPart <- PartsListDb.parts.where(p => p.name === data.child )) {
-                                Recursion(parentPart, partBuffer, 1)
+                                Recursion().down(parentPart, partBuffer, 1)
                          }
                     // 親品番逆展開配列
                     var upPartBuffer = ArrayBuffer[PartsListBean]()
                     for (childPart <- PartsListDb.parts.where(p => p.name === data.parent)) {
-                        UpRecursion(childPart, upPartBuffer, 0)
+                        Recursion().up(childPart, upPartBuffer, 0)
                      }
                     var message:String = null
                     // 部品表ループチェック
@@ -139,7 +112,7 @@ object PartsListController extends Controller{
                         }
                     }
                    if(message == null) {
-                         val pr = getPart(data.parent).parts.associate(getPart(data.child))
+                         val pr = PartManager().getByName(data.parent).parts.associate(PartManager().getByName(data.child))
                          pr.quantity = data.quantity
                          PartsListDb.partRelations.update(pr)
                          Home.flashing("success" -> "Relation %s has been created".format(data.parent))
@@ -158,7 +131,7 @@ object PartsListController extends Controller{
             if(data.child == childName) {
                //PartRelation データ更新処理
                                inTransaction {
-                                       val pr = getPart(data.parent).parts.assign(getPart(data.child))
+                                       val pr = PartManager().getByName(data.parent).parts.assign(PartManager().getByName(data.child))
                                        pr.quantity = data.quantity
                                        PartsListDb.partRelations.update(pr)
                                        Home.flashing("success" -> "Relation %s has been created".format(data.parent))
@@ -166,9 +139,9 @@ object PartsListController extends Controller{
             } else {
                                //PartRelation キー情報(ChildId)の更新なので削除/登録処理
                        inTransaction {
-                               PartsListDb.partRelations.deleteWhere(tpr => tpr.parentId === getPart(data.parent).id 
-                                   and tpr.childId === getPart(childName).id)
-                               val pr = getPart(data.parent).parts.associate(getPart(data.child))
+                               PartsListDb.partRelations.deleteWhere(tpr => tpr.parentId === PartManager().getByName(data.parent).id 
+                                   and tpr.childId === PartManager().getByName(childName).id)
+                               val pr = PartManager().getByName(data.parent).parts.associate(PartManager().getByName(data.child))
                                pr.quantity = data.quantity
                                PartsListDb.partRelations.update(pr)
                                        Home.flashing("success" -> "Relation %s has been created".format(data.parent))
@@ -180,8 +153,8 @@ object PartsListController extends Controller{
        
        def relationDelete(parentName:String, childName:String) = Action {
          inTransaction {
-           val parent = getPart(parentName)
-           val child = getPart(childName)
+           val parent = PartManager().getByName(parentName)
+           val child = PartManager().getByName(childName)
            PartsListDb.partRelations.deleteWhere(pl => pl.parentId === parent.id and pl.childId === child.id)
            Home.flashing("success" -> "Relation %s has been deleted".format(parent.name + "/" + child.name))
          }
@@ -200,15 +173,15 @@ object PartsListController extends Controller{
              data => {
                  inTransaction {
                          val dc = PartsListDb.designChanges.where(dc => dc.dcNo === data.dcno).head
-                         val parent = getPart(data.partsListBeanBefore.parent)
+                         val parent = PartManager().getByName(data.partsListBeanBefore.parent)
                          if(!data.partsListBeanBefore.child.isEmpty()) {
-                                 val delRelation = parent.parts.assign(getPart(data.partsListBeanBefore.child))
+                                 val delRelation = parent.parts.assign(PartManager().getByName(data.partsListBeanBefore.child))
                                  dc.delPartRelation.assign(delRelation)
                                  delRelation.dcSeq = dc.dcSeq
                                  PartsListDb.partRelations.update(delRelation)
                          }
                          if(!data.partsListBeanAfter.child.isEmpty()) {
-                                 val addRelation = parent.parts.associate(getPart(data.partsListBeanAfter.child))
+                                 val addRelation = parent.parts.associate(PartManager().getByName(data.partsListBeanAfter.child))
                                  dc.addPartRelation.associate(addRelation)
                                  addRelation.quantity = data.partsListBeanAfter.quantity
                                  addRelation.dcSeq = dc.dcSeq
@@ -221,16 +194,12 @@ object PartsListController extends Controller{
              }
          )
        }
-       
-       def getPart(partNo:String):Part =  {
-                 PartsListDb.parts.where(p => p.name === partNo).head
-       }
-       
+               
        def generatePartsListBean(parentNo:String, childNo:String):PartsListBean = {
          if(childNo.isEmpty()) {
              PartsListBean(parentNo, childNo, 0)
          } else {
-                 PartsListBean(parentNo, childNo, getPart(parentNo).partRelation(getPart(childNo).id).quantity)
+                 PartsListBean(parentNo, childNo, PartManager().getByName(parentNo).partRelation(PartManager().getByName(childNo).id).quantity)
          }
        }
 
index f200949..9f8ba2c 100644 (file)
@@ -21,8 +21,11 @@ case class PartManager() {
     return updPart
   }
   
-  def getById(id :Long):Part = {
+  def getById(idLong):Part = {
     return PartsListDb.parts.where(p => p.id === id).head
   }
   
+  def getByName(name: String):Part ={
+    return PartsListDb.parts.where(p => p.name === name).head
+  }
 }
\ No newline at end of file
diff --git a/PartsList/PartsList/app/utils/Recursion.scala b/PartsList/PartsList/app/utils/Recursion.scala
new file mode 100644 (file)
index 0000000..1666a4d
--- /dev/null
@@ -0,0 +1,37 @@
+package utils
+import models._
+import beans._
+import scala.collection.mutable.ArrayBuffer
+case class Recursion() {
+  
+  def down(parentPart: Part, partBuffer: ArrayBuffer[PartsListBean], opt: Int):Unit = {
+    for(child <-parentPart.parts) {
+      if(parentPart.partRelation(child.id).delDcId==0) {
+        if(opt!=3 || opt==3 && child.name.startsWith("Unit")) {
+               partBuffer += PartsListBean(parentPart.name, child.name, parentPart.partRelation(child.id).quantity)
+            }
+           if(opt==1 || opt==2 && !child.name.startsWith("Part") || opt==3) {
+             Recursion().down(child, partBuffer, opt)
+           }
+          }
+    }
+  }
+  
+  def up(childPart: Part, partBuffer: ArrayBuffer[PartsListBean], opt: Int):Unit = {
+    if(childPart.parentParts.size == 0 && opt == 2) {
+          partBuffer += PartsListBean("", childPart.name,0)
+        }
+        for(parent <- childPart.parentParts) {
+          if(parent.partRelation(childPart.id).delDcId == 0 ) {
+            if(opt != 2) {
+              partBuffer += PartsListBean(childPart.name, parent.name, parent.partRelation(childPart.id).quantity)
+             }
+                 if(opt != 1) {
+                   Recursion().up(parent, partBuffer, opt)
+                 }
+               }
+         }
+
+  }
+
+}
\ No newline at end of file
index c5679e6..491e7e6 100644 (file)
@@ -1,3 +1,2 @@
-1.NotifyとReplyのsuer class を trait で mixin する(多重継承)
-2.設計変更の取り消し機能の実装
-3.設計変更の表示SEQ 追加
+1.リファクタリング。アプリケーションサービスレイヤ導入
+2.上位部品表の国際化不具合
\ No newline at end of file