Parcourir la source

创建作业票临时提交

Frankensteinly il y a 1 an
Parent
commit
07f4b6480e

+ 25 - 3
app/src/main/java/com/grkj/iscs/activity/CreateTicketActivity.kt

@@ -1,11 +1,13 @@
 package com.grkj.iscs.activity
 
+import com.grkj.iscs.R
 import com.grkj.iscs.base.BaseMvpActivity
 import com.grkj.iscs.databinding.ActivityCreateTicketBinding
 import com.grkj.iscs.iview.ICreateTicketView
-import com.grkj.iscs.model.vo.SopPageVO
-import com.grkj.iscs.presentation.PresentationManager
+import com.grkj.iscs.model.vo.CreateTicketReqVO
+import com.grkj.iscs.model.vo.SopPageRespVO
 import com.grkj.iscs.presenter.CreateTicketPresenter
+import com.grkj.iscs.util.ToastUtils
 import com.grkj.iscs.widget.SelectableInput
 import java.util.stream.Collectors
 
@@ -25,9 +27,29 @@ class CreateTicketActivity : BaseMvpActivity<ICreateTicketView, CreateTicketPres
                 mBinding?.siTicketNumber?.setText(null)
             }
         }
+        mBinding?.confirm?.setOnClickListener {
+            if (mSelectedSopIdx == null) {
+                ToastUtils.tip(resources.getString(R.string.sop_is_null))
+                return@setOnClickListener
+            }
+            val ticketVO = CreateTicketReqVO(
+                mBinding?.siTicketNumber?.getText(),
+                mBinding?.siTicketName?.getText(),
+                presenter?.mSopList?.get(mSelectedSopIdx!!)?.workshopId,
+                presenter?.mSopList?.get(mSelectedSopIdx!!)?.workareaId,
+                presenter?.mSopList?.get(mSelectedSopIdx!!)?.sopId,
+                presenter?.mTicketTypeList?.get(mBinding?.siTicketType?.mSelectIdx!!)?.dictType,
+                mBinding?.siContent?.getText(),
+                mBinding?.tvStartTime?.text.toString(),
+                mBinding?.tvEndTime?.text.toString(),
+                mBinding?.siSegregationPoint?.getText().toString().replace("[", "").replace("]", ""),
+                null
+            )
+            presenter?.createTicket(ticketVO)
+        }
     }
 
-    override fun showSopList(sopList: MutableList<SopPageVO.Record>) {
+    override fun showSopList(sopList: MutableList<SopPageRespVO.Record>) {
         mBinding?.siSop?.mOptionList = sopList.stream().map { it.sopName }.collect(Collectors.toList())
         mBinding?.siSop?.setOnSpinnerSelectListener(object : SelectableInput.OnSpinnerSelectListener {
             override fun onSelect(str: String?, index: Int) {

+ 2 - 2
app/src/main/java/com/grkj/iscs/iview/ICreateTicketView.kt

@@ -1,11 +1,11 @@
 package com.grkj.iscs.iview
 
 import com.grkj.iscs.base.IView
-import com.grkj.iscs.model.vo.SopPageVO
+import com.grkj.iscs.model.vo.SopPageRespVO
 
 interface ICreateTicketView : IView {
 
-    fun showSopList(sopList: MutableList<SopPageVO.Record>)
+    fun showSopList(sopList: MutableList<SopPageRespVO.Record>)
 
     fun updateLockerList(lockerList: List<String>?)
 }

+ 5 - 0
app/src/main/java/com/grkj/iscs/model/UrlConsts.kt

@@ -36,4 +36,9 @@ object UrlConsts {
      * 获取用户列表 - 上锁人
      */
     const val USER_LIST = "/system/user/list"
+
+    /**
+     * 创建工作票
+     */
+    const val CREATE_TICKET = "/iscs/ticket/insertIsJobTicket"
 }

+ 24 - 0
app/src/main/java/com/grkj/iscs/model/vo/CreateTicketReqVO.kt

@@ -0,0 +1,24 @@
+package com.grkj.iscs.model.vo
+
+import java.util.Date
+
+data class CreateTicketReqVO(
+    val ticketCode: String?,
+    val ticketName: String?,
+    val workshopId: Long?,
+    val workareaId: Long?,
+    val sopId: Long?,
+    val ticketType: String?,
+    val ticketContent: String?,
+    val ticketStartTime: String?,
+    val ticketEndTime: String?,
+    val pointIds: String?,
+    val ticketUserDTOList: List<TicketUserVO>? = null
+) {
+    data class TicketUserVO(
+        val userId: Long?,
+        val userName: String?,
+        val userType: String,
+        val userRole: String?
+    )
+}

+ 1 - 1
app/src/main/java/com/grkj/iscs/model/vo/SopInfoVO.kt → app/src/main/java/com/grkj/iscs/model/vo/SopInfoRespVO.kt

@@ -1,6 +1,6 @@
 package com.grkj.iscs.model.vo
 
-data class SopInfoVO(
+data class SopInfoRespVO(
     val sopId: Long?,
     val sopCode: String?,
     val sopName: String?,

+ 1 - 1
app/src/main/java/com/grkj/iscs/model/vo/SopPageVO.kt → app/src/main/java/com/grkj/iscs/model/vo/SopPageRespVO.kt

@@ -1,6 +1,6 @@
 package com.grkj.iscs.model.vo
 
-data class SopPageVO(
+data class SopPageRespVO(
     val current: Int,
     val optimizeCountSql: Boolean,
     val orders: List<Any>,

+ 1 - 1
app/src/main/java/com/grkj/iscs/model/vo/TicketTypeVO.kt → app/src/main/java/com/grkj/iscs/model/vo/TicketTypeRespVO.kt

@@ -1,6 +1,6 @@
 package com.grkj.iscs.model.vo
 
-data class TicketTypeVO(
+data class TicketTypeRespVO(
     val createBy: String,
     val createTime: String,
     val default: Boolean,

+ 1 - 1
app/src/main/java/com/grkj/iscs/model/vo/UserListVO.kt → app/src/main/java/com/grkj/iscs/model/vo/UserListRespVO.kt

@@ -1,6 +1,6 @@
 package com.grkj.iscs.model.vo
 
-data class UserListVO(
+data class UserListRespVO(
     val code: Int,
     val msg: String,
     val rows: List<Row>,

+ 37 - 6
app/src/main/java/com/grkj/iscs/presenter/CreateTicketPresenter.kt

@@ -1,26 +1,29 @@
 package com.grkj.iscs.presenter
 
+import com.grkj.iscs.R
 import com.grkj.iscs.base.BasePresenter
 import com.grkj.iscs.iview.ICreateTicketView
 import com.grkj.iscs.model.UrlConsts
-import com.grkj.iscs.model.vo.SopPageVO
-import com.grkj.iscs.model.vo.TicketTypeVO
+import com.grkj.iscs.model.vo.CreateTicketReqVO
+import com.grkj.iscs.model.vo.SopPageRespVO
+import com.grkj.iscs.model.vo.TicketTypeRespVO
 import com.grkj.iscs.util.Executor
 import com.grkj.iscs.util.NetApi
+import com.grkj.iscs.util.ToastUtils
 
 class CreateTicketPresenter : BasePresenter<ICreateTicketView>() {
 
-    var mSopList = mutableListOf<SopPageVO.Record>()
-    var mTicketTypeList = mutableListOf<TicketTypeVO>()
+    var mSopList = mutableListOf<SopPageRespVO.Record>()
+    var mTicketTypeList = mutableListOf<TicketTypeRespVO>()
 
     fun initData() {
         NetApi.getTicketType {
-            mTicketTypeList = it as MutableList<TicketTypeVO>
+            mTicketTypeList = it as MutableList<TicketTypeRespVO>
         }
 
         NetApi.getSopPage(0, 10) {
             Executor.runOnMain {
-                mSopList = it?.records as MutableList<SopPageVO.Record>
+                mSopList = it?.records as MutableList<SopPageRespVO.Record>
                 mvpView?.showSopList(mSopList)
             }
         }
@@ -46,4 +49,32 @@ class CreateTicketPresenter : BasePresenter<ICreateTicketView>() {
     fun getTicketTypeName(type: String): String? {
         return mTicketTypeList.find { it.dictValue == type }?.dictLabel
     }
+
+    fun createTicket(ticketVO: CreateTicketReqVO) {
+        if (ticketVO.ticketCode.isNullOrEmpty()) {
+            ToastUtils.tip(mContext?.resources?.getString(R.string.ticket_code_is_null))
+            return
+        }
+        if (ticketVO.ticketName.isNullOrEmpty()) {
+            ToastUtils.tip(mContext?.resources?.getString(R.string.ticket_name_is_null))
+            return
+        }
+        if (ticketVO.workshopId == null) {
+            ToastUtils.tip(mContext?.resources?.getString(R.string.work_shop_is_null))
+            return
+        }
+        if (ticketVO.workareaId == null) {
+            ToastUtils.tip(mContext?.resources?.getString(R.string.work_area_is_null))
+            return
+        }
+        if (ticketVO.sopId == null) {
+            ToastUtils.tip(mContext?.resources?.getString(R.string.sop_is_null))
+            return
+        }
+        if (ticketVO.ticketType.isNullOrEmpty()) {
+            ToastUtils.tip(mContext?.resources?.getString(R.string.ticket_type_is_null))
+            return
+        }
+
+    }
 }

+ 0 - 1
app/src/main/java/com/grkj/iscs/util/Funcs.kt

@@ -6,7 +6,6 @@ import cn.zhxu.data.TypeRef
 import cn.zhxu.okhttps.HttpResult
 import com.google.gson.Gson
 import com.grkj.iscs.model.vo.BaseVO
-import com.grkj.iscs.model.vo.SopPageVO
 import java.io.Closeable
 import java.io.File
 

+ 22 - 9
app/src/main/java/com/grkj/iscs/util/NetApi.kt

@@ -3,10 +3,10 @@ package com.grkj.iscs.util
 import com.grkj.iscs.MyApplication
 import com.grkj.iscs.model.Token
 import com.grkj.iscs.model.UrlConsts
-import com.grkj.iscs.model.vo.SopInfoVO
-import com.grkj.iscs.model.vo.SopPageVO
-import com.grkj.iscs.model.vo.TicketTypeVO
-import com.grkj.iscs.model.vo.UserListVO
+import com.grkj.iscs.model.vo.SopInfoRespVO
+import com.grkj.iscs.model.vo.SopPageRespVO
+import com.grkj.iscs.model.vo.TicketTypeRespVO
+import com.grkj.iscs.model.vo.UserListRespVO
 
 /**
  * 网络请求
@@ -28,7 +28,7 @@ object NetApi {
             }, isGet = false, isAuth = false)
     }
 
-    fun getSopPage(current: Int, size: Int, callBack: (SopPageVO?) -> Unit) {
+    fun getSopPage(current: Int, size: Int, callBack: (SopPageRespVO?) -> Unit) {
         NetHttpManager.getInstance().doRequestNet(
             UrlConsts.SOP_PAGE,
             false,
@@ -43,7 +43,7 @@ object NetApi {
             }, isGet = true, isAuth = true)
     }
 
-    fun getTicketType(callBack: (MutableList<TicketTypeVO>?) -> Unit) {
+    fun getTicketType(callBack: (MutableList<TicketTypeRespVO>?) -> Unit) {
         NetHttpManager.getInstance().doRequestNet(
             UrlConsts.TICKET_TYPE,
             false,
@@ -67,7 +67,7 @@ object NetApi {
             }, isGet = true, isAuth = true)
     }
 
-    fun getSopInfo(sopId: Long, callBack: (SopInfoVO?) -> Unit) {
+    fun getSopInfo(sopId: Long, callBack: (SopInfoRespVO?) -> Unit) {
         NetHttpManager.getInstance().doRequestNet(
             UrlConsts.SOP_INFO,
             false,
@@ -81,7 +81,7 @@ object NetApi {
             }, isGet = true, isAuth = true)
     }
 
-    fun getUserList(pageNum: Int, pageSize: Int, callBack: (UserListVO?) -> Unit) {
+    fun getUserList(pageNum: Int, pageSize: Int, callBack: (UserListRespVO?) -> Unit) {
         NetHttpManager.getInstance().doRequestNet(
             UrlConsts.USER_LIST,
             false,
@@ -91,8 +91,21 @@ object NetApi {
             ),
             { res, errMsg, codeInt ->
                 res?.let {
-                    callBack.invoke(it.toBean(UserListVO::class.java))
+                    callBack.invoke(it.toBean(UserListRespVO::class.java))
                 }
             }, isGet = true, isAuth = true)
     }
+
+    fun createTicket() {
+        NetHttpManager.getInstance().doRequestNet(
+            UrlConsts.CREATE_TICKET,
+            false,
+            mapOf<String, String>(),
+            { res, errMsg, codeInt ->
+                res?.let {
+                    //TODO 创建工作票结果
+                }
+            }, isGet = false, isAuth = true
+        )
+    }
 }

+ 4 - 0
app/src/main/java/com/grkj/iscs/widget/SelectableInput.kt

@@ -98,6 +98,10 @@ class SelectableInput(private val ctx: Context, attrs: AttributeSet) : LinearLay
         isSkipListener = false
     }
 
+    fun getText(): String {
+        return mBinding.et.text.toString()
+    }
+
     private fun showDropdown() {
         mDropdownView?:let {
             mDropdownView = LayoutInflater.from(ctx).inflate(R.layout.layout_selectableinput_spinner, null)

+ 9 - 0
app/src/main/res/layout/activity_create_ticket.xml

@@ -134,6 +134,15 @@
             app:mode="select"
             app:name="@string/presentation_person_safety" />
 
+        <com.grkj.iscs.widget.SelectableInput
+            android:id="@+id/si_content"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="7dp"
+            app:edittext_hint="@string/presentation_hint_content"
+            app:mode="input"
+            app:name="@string/presentation_ticket_content" />
+
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"

+ 9 - 0
app/src/main/res/values/strings.xml

@@ -29,6 +29,13 @@
     <string name="ble_connect_fail">连接失败,请重试!</string>
     <string name="ble_disconnect">连接断开了,请重试!</string>
 
+    <string name="ticket_code_is_null">请填写作业票编号</string>
+    <string name="ticket_name_is_null">请填写作业票名称</string>
+    <string name="work_shop_is_null">请选择所属车间</string>
+    <string name="work_area_is_null">请选择所属区域</string>
+    <string name="sop_is_null">请选择SOP</string>
+    <string name="ticket_type_is_null">请选择作业票类型</string>
+
 
     <!--  演示页  -->
     <string name="presentation_select_sop">选择SOP</string>
@@ -41,6 +48,7 @@
     <string name="presentation_person_lock">上锁人</string>
     <string name="presentation_person_lock_together">共锁人</string>
     <string name="presentation_person_safety">安全员</string>
+    <string name="presentation_ticket_content">作业内容</string>
 
     <string name="presentation_hint_workshop">请选择车间</string>
     <string name="presentation_hint_line">请选择产线</string>
@@ -52,6 +60,7 @@
     <string name="presentation_hint_locker">请选择上锁人</string>
     <string name="presentation_hint_together">请输入共锁人</string>
     <string name="presentation_hint_safety">请选择安全员</string>
+    <string name="presentation_hint_content">请输入作业内容</string>
 
     <string name="presentation_login_tip">请刷卡登录</string>
 </resources>