|
|
@@ -2,11 +2,14 @@ package cn.muchinfo.rma.view.base.home.commodity.modify
|
|
|
|
|
|
import androidx.lifecycle.MutableLiveData
|
|
|
import cn.muchinfo.rma.global.GlobalDataCollection
|
|
|
+import cn.muchinfo.rma.global.data.GoodsGroupData
|
|
|
import cn.muchinfo.rma.global.data.MiddleGoodsData
|
|
|
import cn.muchinfo.rma.netManage.base.InteractiveException
|
|
|
import cn.muchinfo.rma.protobuf.protoclasses.ManageServiceMI3
|
|
|
import cn.muchinfo.rma.view.MyApplication
|
|
|
+import cn.muchinfo.rma.view.autoWidget.toArrayList
|
|
|
import cn.muchinfo.rma.view.base.BaseViewModel
|
|
|
+import cn.muchinfo.rma.view.base.home.commodity.newspot.NewSpotInfoData
|
|
|
import kotlinx.coroutines.GlobalScope
|
|
|
import kotlinx.coroutines.launch
|
|
|
import mtp.polymer.com.autowidget.utils.TaskUiModel
|
|
|
@@ -22,14 +25,17 @@ class ModifyViewModel : BaseViewModel(){
|
|
|
val loadingDialogStatus: MutableLiveData<TaskUiModel> = MutableLiveData()
|
|
|
|
|
|
//可供选择的套保品种
|
|
|
- val middleGoodsDataList : MutableLiveData<List<MiddleGoodsData>> = MutableLiveData()
|
|
|
+ val middleGoodsDataList : MutableLiveData<List<GoodsGroupData>> = MutableLiveData()
|
|
|
+
|
|
|
+ //用于新增套保品种时选择的商品组
|
|
|
+ val selectGoodsGroupData : MutableLiveData<GoodsGroupData> = MutableLiveData()
|
|
|
|
|
|
fun queryMiddleGodsDataList(){
|
|
|
val params = mutableMapOf<String,String>().apply {
|
|
|
put("userid", GlobalDataCollection.instance?.loginRsp?.userID.toString())
|
|
|
put("status","1")
|
|
|
}
|
|
|
- MyApplication.getInstance()?.commodityManager?.queryMiddleGoods(params = params){isSuccess, respData, error ->
|
|
|
+ MyApplication.getInstance()?.futureManager?.queryGoodsGroup(params = params){isSuccess, respData, error ->
|
|
|
if (isSuccess){
|
|
|
middleGoodsDataList.postValue(respData)
|
|
|
}
|
|
|
@@ -37,19 +43,22 @@ class ModifyViewModel : BaseViewModel(){
|
|
|
}
|
|
|
|
|
|
//新增套保品种的列表的点击选择
|
|
|
- fun setOnMiddleGoodsNameItemClick(middlegoodsid : String){
|
|
|
- val newDataList = arrayListOf<MiddleGoodsData>()
|
|
|
+ fun setOnMiddleGoodsNameItemClick(goodsGroupId : String){
|
|
|
+ val newDataList = arrayListOf<GoodsGroupData>()
|
|
|
middleGoodsDataList.value?.forEach {
|
|
|
- if (middlegoodsid == it.middlegoodsid){
|
|
|
+ if (goodsGroupId == it.goodsgroupid){
|
|
|
if (it.isClick == 0){
|
|
|
newDataList.add(it.copy(isClick = 1))
|
|
|
+ selectGoodsGroupData.postValue(it)
|
|
|
}else{
|
|
|
newDataList.add(it.copy(isClick = 0))
|
|
|
+ selectGoodsGroupData.postValue(GoodsGroupData())
|
|
|
}
|
|
|
}else{
|
|
|
- newDataList.add(it)
|
|
|
+ newDataList.add(it.copy(isClick = 0))
|
|
|
}
|
|
|
}
|
|
|
+ middleGoodsDataList.postValue(newDataList)
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -214,5 +223,394 @@ class ModifyViewModel : BaseViewModel(){
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 套保品种操作请求
|
|
|
+ */
|
|
|
+ fun ermsMiddleGoodsOperateCommonReq(
|
|
|
+ goodsgroupid : Long = 0,//期货品种id
|
|
|
+ type : Int = 0,//类型 1 新增
|
|
|
+ isSuccess: (isCompleted: Boolean) -> Unit
|
|
|
+ ){
|
|
|
+ loadingDialogStatus.value = TaskUiModel.inFlight()
|
|
|
+ GlobalScope.launch {
|
|
|
+ MyApplication.getInstance()?.commodityManager?.ermsMiddleGoodsOperateCommonReq(
|
|
|
+ goodsgroupid = goodsgroupid,
|
|
|
+ type = type
|
|
|
+ ) { isCompleted, err ->
|
|
|
+ if (isCompleted) {
|
|
|
+ loadingDialogStatus.postValue(TaskUiModel.success(msg = "请求成功"))
|
|
|
+ isSuccess(true)
|
|
|
+ } else {
|
|
|
+ loadingDialogStatus.postValue(
|
|
|
+ TaskUiModel.failed(
|
|
|
+ InteractiveException(
|
|
|
+ errorMessage = err?.message!!
|
|
|
+ )
|
|
|
+ )
|
|
|
+ )
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //--------------------------------------- 以下是新增商品的数据业务区------------------------------------------------
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 套保品种正常列表
|
|
|
+ */
|
|
|
+ val middleGoodsNormalList: MutableLiveData<List<GoodsGroupData>> = MutableLiveData()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 新增现货品种时的型号列表数据(三期为品类)
|
|
|
+ */
|
|
|
+ val spotModelList: MutableLiveData<List<NewSpotInfoData>> = MutableLiveData()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 暂存的型号列表数据(三期为品类)
|
|
|
+ */
|
|
|
+ val spotModelcacheList: MutableLiveData<List<NewSpotInfoData>> = MutableLiveData()
|
|
|
+ /**
|
|
|
+ * 查询期货商品组(原套保品种)
|
|
|
+ * @param wrstandardid String
|
|
|
+ */
|
|
|
+ fun queryGoodsGroup() {
|
|
|
+ val params = mutableMapOf<String, String>().apply {
|
|
|
+ put("userid", GlobalDataCollection.instance?.loginRsp?.userID.toString())
|
|
|
+ put("usertype", GlobalDataCollection.instance?.userAccountData?.usertype?.toString() ?: "")
|
|
|
+// put("deliverygoodsid", deliverygoodsid)
|
|
|
+ }
|
|
|
+ MyApplication.getInstance()?.futureManager?.queryGoodsGroup(params = params) { isSuccess, respData, _ ->
|
|
|
+ if (isSuccess) {
|
|
|
+ middleGoodsNormalList.postValue(respData)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 品类列表
|
|
|
+ * type 1为添加,2为删除 ,3为更换资料
|
|
|
+ */
|
|
|
+ fun changeSpotModelList(
|
|
|
+ type: String,//类型
|
|
|
+ id: String,//列表下标id
|
|
|
+ value: String = "",//品类名称
|
|
|
+ enumdicname: String = "",//单位名称
|
|
|
+ enumdicnameid: String = "",//单位id
|
|
|
+ coefficientwarehouse: String = ""//增值税税率
|
|
|
+ ) {
|
|
|
+ val oldDatacacheList = spotModelcacheList.value?.toArrayList()
|
|
|
+ val oldDataList = spotModelList.value?.toArrayList()
|
|
|
+ val newDataList = arrayListOf<NewSpotInfoData>()
|
|
|
+ if (type == "1") {//新增
|
|
|
+ oldDatacacheList?.forEach {
|
|
|
+ newDataList.add(it)
|
|
|
+ }
|
|
|
+ newDataList.add(NewSpotInfoData(id = id,middleGoodsList = arrayListOf(NewSpotInfoData(id = "1"))))
|
|
|
+ spotModelList.postValue(newDataList)
|
|
|
+ spotModelcacheList.postValue(newDataList)
|
|
|
+ } else if (type == "2") {//删除
|
|
|
+ oldDatacacheList?.forEach {
|
|
|
+ if (id.toInt() < it.id.toInt()) {
|
|
|
+ newDataList.add(it.copy(id = oldDatacacheList.indexOf(it).toString(),value = it.value,coefficientwarehouse = it.coefficientwarehouse))
|
|
|
+ }else if (id.toInt() > it.id.toInt()){
|
|
|
+ newDataList.add(it.copy(id = oldDatacacheList.indexOf(it).toString(),value = it.value,coefficientwarehouse = it.coefficientwarehouse))
|
|
|
+ }
|
|
|
+ }
|
|
|
+ spotModelList.postValue(newDataList)
|
|
|
+ spotModelcacheList.postValue(newDataList)
|
|
|
+ } else if (type == "3") {//更换资料
|
|
|
+ oldDatacacheList?.forEach {
|
|
|
+ var newValue = ""
|
|
|
+ var newEnumdicnameid = ""
|
|
|
+ var newEnumdicname = ""
|
|
|
+ var newCoefficientwarehouse = ""
|
|
|
+
|
|
|
+ var newData: NewSpotInfoData
|
|
|
+ if (it.id == id) {
|
|
|
+ newValue = if (value.isNullOrEmpty()) {
|
|
|
+ it.value
|
|
|
+ } else {
|
|
|
+ value
|
|
|
+ }
|
|
|
+ newEnumdicnameid = if (enumdicnameid.isNullOrEmpty()) {
|
|
|
+ it.enumdicnameid
|
|
|
+ } else {
|
|
|
+ enumdicnameid
|
|
|
+ }
|
|
|
+ newEnumdicname = if (newEnumdicname.isNullOrEmpty()) {
|
|
|
+ it.enumdicname
|
|
|
+ } else {
|
|
|
+ enumdicname
|
|
|
+ }
|
|
|
+ newCoefficientwarehouse = if (coefficientwarehouse.isNullOrEmpty()) {
|
|
|
+ it.coefficientwarehouse
|
|
|
+ } else {
|
|
|
+ coefficientwarehouse
|
|
|
+ }
|
|
|
+ newData = it.copy(
|
|
|
+ id = id,
|
|
|
+ value = newValue,
|
|
|
+ enumdicname = newEnumdicname,
|
|
|
+ coefficientwarehouse = newCoefficientwarehouse,
|
|
|
+ enumdicnameid = newEnumdicnameid
|
|
|
+ )
|
|
|
+ newDataList.add(newData)
|
|
|
+ } else {
|
|
|
+ newDataList.add(it)
|
|
|
+ }
|
|
|
+ }
|
|
|
+// spotModelList.postValue(newDataList)
|
|
|
+ spotModelcacheList.postValue(newDataList)
|
|
|
+ }else if (type == "4") {//更换资料
|
|
|
+ oldDatacacheList?.forEach {
|
|
|
+ var newValue = ""
|
|
|
+ var newEnumdicnameid = ""
|
|
|
+ var newEnumdicname = ""
|
|
|
+ var newCoefficientwarehouse = ""
|
|
|
+ var newData: NewSpotInfoData
|
|
|
+ if (it.id == id) {
|
|
|
+ newValue = if (value.isNullOrEmpty()) {
|
|
|
+ it.value
|
|
|
+ } else {
|
|
|
+ value
|
|
|
+ }
|
|
|
+ newEnumdicnameid = if (enumdicnameid.isNullOrEmpty()) {
|
|
|
+ it.enumdicnameid
|
|
|
+ } else {
|
|
|
+ enumdicnameid
|
|
|
+ }
|
|
|
+ newEnumdicname = if (enumdicname.isNullOrEmpty()) {
|
|
|
+ it.enumdicname
|
|
|
+ } else {
|
|
|
+ enumdicname
|
|
|
+ }
|
|
|
+ newCoefficientwarehouse = if (coefficientwarehouse.isNullOrEmpty()) {
|
|
|
+ it.coefficientwarehouse
|
|
|
+ } else {
|
|
|
+ coefficientwarehouse
|
|
|
+ }
|
|
|
+ newData = it.copy(
|
|
|
+ id = id,
|
|
|
+ value = newValue,
|
|
|
+ enumdicname = newEnumdicname,
|
|
|
+ coefficientwarehouse = newCoefficientwarehouse,
|
|
|
+ enumdicnameid = newEnumdicnameid
|
|
|
+ )
|
|
|
+ newDataList.add(newData)
|
|
|
+ } else {
|
|
|
+ newDataList.add(it)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ spotModelList.postValue(newDataList)
|
|
|
+ spotModelcacheList.postValue(newDataList)
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 现货套保品种列表
|
|
|
+ * type 1为添加,2为删除 ,3为更换资料
|
|
|
+ */
|
|
|
+ fun changeMiddleGoodsList(
|
|
|
+ wrstandId : String,//所属新增商品的id
|
|
|
+ type: String,//类型
|
|
|
+ id: String,//列表的下标id
|
|
|
+ middlegoodsId: String = "",//套保id
|
|
|
+ ano: String = "",
|
|
|
+ enumdicname: String = "",
|
|
|
+ enumdicnameid: String = "",
|
|
|
+ costWeight : String = "",//成本权重
|
|
|
+ middleGoodsName: String = ""
|
|
|
+ ) {
|
|
|
+ //暂储存的商品下的套保品种
|
|
|
+ val oldDataCacheList = spotModelcacheList.value?.toArrayList()?.find { data ->
|
|
|
+ data.id == wrstandId
|
|
|
+ }?.middleGoodsList
|
|
|
+ val oldDataList = spotModelList.value?.toArrayList()?.find { data ->
|
|
|
+ data.id == wrstandId
|
|
|
+ }?.middleGoodsList
|
|
|
+ //相应套保品种的列表
|
|
|
+ val newDataList = arrayListOf<NewSpotInfoData>()
|
|
|
+ if (type == "1") {//增加一个套保品种
|
|
|
+ oldDataCacheList?.forEach {
|
|
|
+ newDataList.add(it)
|
|
|
+ }
|
|
|
+ newDataList.add(NewSpotInfoData(id = id, value = ano, middleGoodsId = middlegoodsId))
|
|
|
+ val newSpotList = arrayListOf<NewSpotInfoData>()
|
|
|
+ spotModelcacheList.value?.forEach {
|
|
|
+ if (it.id == wrstandId){
|
|
|
+ newSpotList.add(it.copy(middleGoodsList = newDataList))
|
|
|
+ }else{
|
|
|
+ newSpotList.add(it)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ spotModelcacheList.postValue(newSpotList)
|
|
|
+ spotModelList.postValue(newSpotList)
|
|
|
+ } else if (type == "2") {//删除相应的套保品种
|
|
|
+ oldDataCacheList?.forEach {
|
|
|
+
|
|
|
+ if (id != it.id) {
|
|
|
+ newDataList.add(it.copy(id = oldDataCacheList.indexOf(it).toString()))
|
|
|
+ }
|
|
|
+ }
|
|
|
+ val newSpotList = arrayListOf<NewSpotInfoData>()
|
|
|
+ spotModelcacheList.value?.forEach {
|
|
|
+ if (it.id == wrstandId){
|
|
|
+ newSpotList.add(it.copy(middleGoodsList = newDataList))
|
|
|
+ }else{
|
|
|
+ newSpotList.add(it)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ spotModelcacheList.postValue(newSpotList)
|
|
|
+ spotModelList.postValue(newSpotList)
|
|
|
+ } else if (type == "3") {//更换资料
|
|
|
+ oldDataCacheList?.forEach {
|
|
|
+ var newMiddlegoodsId = ""
|
|
|
+ var newEnumdicname = ""
|
|
|
+ var newMiddleGoodsName = ""
|
|
|
+ var newEnumdicnameid = ""
|
|
|
+ var newAno = ""
|
|
|
+ var newCostWeight = ""
|
|
|
+ var newData: NewSpotInfoData
|
|
|
+ if (it.id == id) {
|
|
|
+ newMiddlegoodsId = if (middlegoodsId.isNullOrEmpty()) {
|
|
|
+ it.middleGoodsId
|
|
|
+ } else {
|
|
|
+ middlegoodsId
|
|
|
+ }
|
|
|
+ newMiddleGoodsName = if (middleGoodsName.isNullOrEmpty()) {
|
|
|
+ it.middleGoodsName
|
|
|
+ } else {
|
|
|
+ middleGoodsName
|
|
|
+ }
|
|
|
+ newEnumdicname = if (enumdicname.isNullOrEmpty()) {
|
|
|
+ it.enumdicname
|
|
|
+ } else {
|
|
|
+ enumdicname
|
|
|
+ }
|
|
|
+ newEnumdicnameid = if (enumdicnameid.isNullOrEmpty()) {
|
|
|
+ it.enumdicnameid
|
|
|
+ } else {
|
|
|
+ enumdicnameid
|
|
|
+ }
|
|
|
+ newAno = if (ano.isNullOrEmpty()){
|
|
|
+ it.value
|
|
|
+ }else{
|
|
|
+ ano
|
|
|
+ }
|
|
|
+ newCostWeight = if (costWeight.isNullOrEmpty()){
|
|
|
+ it.costWeight
|
|
|
+ }else{
|
|
|
+ costWeight
|
|
|
+ }
|
|
|
+ newData = it.copy(
|
|
|
+ id = id,
|
|
|
+ value = newAno,
|
|
|
+ costWeight = newCostWeight,
|
|
|
+ middleGoodsId = newMiddlegoodsId,
|
|
|
+ enumdicname = newEnumdicname,
|
|
|
+ enumdicnameid = newEnumdicnameid,
|
|
|
+ middleGoodsName = newMiddleGoodsName
|
|
|
+ )
|
|
|
+ newDataList.add(newData)
|
|
|
+ } else {
|
|
|
+ newDataList.add(it)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ val newSpotList = arrayListOf<NewSpotInfoData>()
|
|
|
+ spotModelcacheList.value?.forEach {
|
|
|
+ if (it.id == wrstandId){
|
|
|
+ newSpotList.add(it.copy(middleGoodsList = newDataList))
|
|
|
+ }else{
|
|
|
+ newSpotList.add(it)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ spotModelcacheList.postValue(newSpotList)
|
|
|
+ } else if (type == "4") {//用于选择套保品种
|
|
|
+ oldDataCacheList?.forEach {
|
|
|
+ var newMiddlegoodsId = ""
|
|
|
+ var newEnumdicname = ""
|
|
|
+ var newMiddleGoodsName = ""
|
|
|
+ var newAno = ""
|
|
|
+ var newCostWeight = ""
|
|
|
+ var newEnumdicnameid = ""
|
|
|
+ var newData: NewSpotInfoData
|
|
|
+ if (it.id == id) {
|
|
|
+ newEnumdicnameid = if (enumdicnameid.isNullOrEmpty()) {
|
|
|
+ it.enumdicname
|
|
|
+ } else {
|
|
|
+ enumdicnameid
|
|
|
+ }
|
|
|
+ newMiddlegoodsId = if (middlegoodsId.isNullOrEmpty()) {
|
|
|
+ it.middleGoodsId
|
|
|
+ } else {
|
|
|
+ middlegoodsId
|
|
|
+ }
|
|
|
+ newMiddleGoodsName = if (middleGoodsName.isNullOrEmpty()) {
|
|
|
+ it.middleGoodsName
|
|
|
+ } else {
|
|
|
+ middleGoodsName
|
|
|
+ }
|
|
|
+ newEnumdicname = if (enumdicname.isNullOrEmpty()) {
|
|
|
+ it.enumdicname
|
|
|
+ } else {
|
|
|
+ enumdicname
|
|
|
+ }
|
|
|
+ newAno = if (ano.isNullOrEmpty()){
|
|
|
+ it.value
|
|
|
+ }else{
|
|
|
+ ano
|
|
|
+ }
|
|
|
+ newCostWeight = if (costWeight.isNullOrEmpty()){
|
|
|
+ it.costWeight
|
|
|
+ }else{
|
|
|
+ costWeight
|
|
|
+ }
|
|
|
+ newData = it.copy(
|
|
|
+ id = id,
|
|
|
+ value = newAno,
|
|
|
+ costWeight = newCostWeight,
|
|
|
+ enumdicnameid = newEnumdicnameid,
|
|
|
+ middleGoodsId = newMiddlegoodsId,
|
|
|
+ enumdicname = newEnumdicname,
|
|
|
+ middleGoodsName = newMiddleGoodsName
|
|
|
+ )
|
|
|
+ newDataList.add(newData)
|
|
|
+ } else {
|
|
|
+ newDataList.add(it)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ val newSpotList = arrayListOf<NewSpotInfoData>()
|
|
|
+ spotModelcacheList.value?.forEach {
|
|
|
+ if (it.id == wrstandId){
|
|
|
+ newSpotList.add(it.copy(middleGoodsList = newDataList))
|
|
|
+ }else{
|
|
|
+ newSpotList.add(it)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ spotModelList.postValue(newSpotList)
|
|
|
+ spotModelcacheList.postValue(newSpotList)
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取剩下可选择的套保品种
|
|
|
+ * @return List<MiddleGoodsData>
|
|
|
+ */
|
|
|
+ fun getRemainingMiddleGoodsList(): List<GoodsGroupData> {
|
|
|
+ val allSelectDataList = middleGoodsNormalList.value//所有可选择套保品种
|
|
|
+// val middlegoodList = middlegoodList.value//列表数据已显示的套保品种
|
|
|
+// val newSelectDataList = arrayListOf<GoodsGroupData>()//剩下的可选择套保品种
|
|
|
+// allSelectDataList?.forEach { data ->
|
|
|
+//
|
|
|
+// }
|
|
|
+// middlegoodList?.forEach { data ->
|
|
|
+// allSelectDataList?.remove { it.goodsgroupid == data.middleGoodsId }
|
|
|
+// }
|
|
|
+
|
|
|
+ return allSelectDataList ?: arrayListOf()
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|