编辑代码

/**
*魏聪
* 2022-1-19
* 1.选择多条【定金/学费】数据后,将这些数据及三个从对象的全部数据合并
* 2.【协议收款/收款列表】跳转到新建页面
* 3.将合并后的数据带到到【协议收款/收款列表】新建页面中
* 4.列表页选择数据前校验是否都为同一学员下的【定金/学费】
**/
List objDataList = context.dataList as List  //获取选中的数据
Map mainObjData = [:]    
List object_oD4kM__c = []  //收款方式
List object_25nje__c = []  //顾问业绩拆分
List object_M0lBx__c = []  //讲师业绩拆分
String khname = null
String kh=null
Boolean isSame = true
String xq = null

objDataList.eachWithIndex{ item1 ,int index1 ->
  Map tmp_map = item1 as Map
  if( index1==0 ){
    kh = tmp_map.field_Aq1fR__c as String
    log.info("kh0:"+tmp_map.name)
    return ;
  }
  if(!(tmp_map.field_Aq1fR__c as String ).contains(kh) ){
    isSame = false
  }
}
log.info(isSame)

if( isSame ){
objDataList.eachWithIndex{ item ,int index ->
  Map tmp = item as Map
  String sksj =null //收款时间
  DateTime sksj_dt=tmp.field_56BM8__c as DateTime
  
  String objData_id =tmp._id as String  //学费_id
  
   /*****************将【定金/学费】的数据转移到【协议收款】中Start************************/
  if( index==0 ){
    def (Boolean errorS,Map dataS,String errorMessageS) =  Fx.object.findById("object_2bwgw__c", tmp.field_lUsWJ__c as String)  //查找校区的name
    if(!errorS)
      xq = dataS.name as String
    def (Boolean error,Map data,String errorMessage) =  Fx.object.findById("AccountObj", tmp.field_Aq1fR__c as String)  //查找客户的name
      if(!error)
        khname = data.name as String
      String pjlx = tmp.field_ceKHX__c as String
      if(pjlx=='Fnd97yB27')
        pjlx="s5E14NlL8"
      
      mainObjData=[
      "field_k1rsW__c":tmp.field_Dna01__c as String,   //一级渠道
      "field_5aRDe__c":tmp.field_p4eBg__c as String,   //二级渠道
      // "field_jeFaq__c":tmp.field_jeFaq__c as String ,  //归属大区
      "field_w72Rv__c": tmp.field_Aq1fR__c as String,  //学员姓名
      "field_w72Rv__c__r": khname as String,  //学员姓名
      "field_Wew8k__c": tmp.field_cC4el__c as String,  //学员电话
      "field_21ezL__c": tmp.field_lUsWJ__c as String,  //所属校区
      "field_21ezL__c__r":xq,//所属校区
      "field_qWbxp__c": pjlx,  //票据类型
      "field_zwczq__c":tmp.field_j8us2__c as String,//票据编号
      "field_ysyy1__c":tmp.field_8KiD4__c as String  //是否首次收款
      ]
      log.info(mainObjData)
    

  }
  if(sksj_dt!=null){
        sksj = tmp.field_56BM8__c as String
        long timelong = (tmp.field_56BM8__c as DateTime ).toTimestamp()
        mainObjData.put("field_pamB2__c",timelong )
  } 
   /*****************将【定金/学费】的数据转移到【协议收款】中End************************/
   
   /*****************将【定金/学费】下的【学费/定金明细】数据转移到【协议收款】的【收款方式】下Start************************/ 
  def (Boolean error1,QueryResult data1,String errorMessage1) =  Fx.object.find("object_2Qo5n__c",[["field_68824__c":objData_id]],["name":1],30,0);
  if( error1 ){
    log.info(errorMessage1)
  }else{
    log.info("本条【定金/学费】的【学费/定金明细】条数为:"+data1.size)
    List object_oD4kM__c_tmplist = data1.dataList as List
    object_oD4kM__c_tmplist.each{ i1 ->
      Map tmp1 = i1 as Map
      Map object_oD4kM__c_tmp = [
        "field_eYIa4__c":objData_id,  //学费/定金列表
        "field_eYIa4__c__r":tmp.name as String,
        "field_VQDVe__c":khname as String,  //学员姓名
        "field_wdG4p__c":tmp1.field_Zsf99__c as String,  //流水号
        "field_7INak__c":tmp.field_8crmz__c as BigDecimal, //待转金额
        "field_d2161__c":tmp.field_j8us2__c as String,//票据编号
        'record_type': 'record_nsUW9__c'
        ]
      
       if(sksj_dt!=null){
        sksj = tmp.field_56BM8__c as String
        long timelong = (tmp.field_56BM8__c as DateTime ).toTimestamp()
        object_oD4kM__c_tmp.put("field_TF39p__c",timelong )//收款时间
      }
      object_oD4kM__c.add(object_oD4kM__c_tmp)
    }
  }
   /*****************将【定金/学费】下的【学费/定金明细】数据转移到【协议收款】的【收款方式】下End************************/ 
   
  /*****************将【定金/学费】下的【顾问业绩拆分(定金)】数据转移到【协议收款】的【顾问业绩拆分】下Start************************/ 
   def (Boolean error2,QueryResult data2,String errorMessage2) =  Fx.object.find("object_YX8uy__c",[["field_raU0m__c":objData_id]],["name":1],30,0);
  if( error2 ){
    log.info(errorMessage2)
  }else{
    log.info("本条【定金/学费】的【顾问业绩拆分(定金)】条数为:"+data2.size)
    List object_25nje__c_tmplist = data2.dataList as List
    object_25nje__c_tmplist.each{ i2 ->
      Map tmp2 = i2 as Map
      Map object_25nje__c_tmp = [
        "field_n4uoK__c":tmp2.field_7bPL0__c as List,  //业绩分出顾问
        "field_2Homp__c":tmp2.field_3e2l9__c as BigDecimal,  //分出比例
        "field_1lyP1__c":tmp2.field_5vZ9q__c as BigDecimal,  //顾问业绩
        "field_45Nxa__c":tmp2.field_bt08o__c as String,  //所属校区
        "field_45Nxa__c__r":xq,  //所属校区
        "field_wpr8l__c":tmp2.field_I3pp9__c as String,  //大区
        "field_Spb1G__c":khname as String,  //学员姓名
        "field_WmYmu__c":tmp.field_cC4el__c as String,   //电话
        "field_Qok8v__c":tmp.field_8KiD4__c as String,  //是否首次收款
        "field_oG8mS__c":tmp.field_Dna01__c as String,  //一级渠道
        "field_17qz6__c":objData_id,//定金费用列表
        "field_17qz6__c__r":tmp.name as String,
        'record_type': 'default__c'
         
        ]
      if(sksj_dt!=null){
        sksj = tmp.field_56BM8__c as String
        long timelong = (tmp.field_56BM8__c as DateTime ).toTimestamp()
        object_25nje__c_tmp.put("field_Yp91k__c",timelong )//收款时间
      } 
      object_25nje__c.add(object_25nje__c_tmp)
    }
  }
  /*****************将【定金/学费】下的【顾问业绩拆分(定金)】数据转移到【协议收款】的【顾问业绩拆分】End************************/ 
  
  /*****************将【定金/学费】下的【讲师业绩拆分(定金))】数据转移到【协议收款】的【讲师业绩提成】下Start************************/ 
  def (Boolean error3,QueryResult data3,String errorMessage3) =  Fx.object.find("object_4Twn0__c",[["field_4nr3I__c":objData_id]],["name":1],30,0);
  if( error3){
    log.info(errorMessage3)
  }else{
    log.info("本条【定金/学费】的【讲师业绩拆分(定金)】条数为:"+data3.size)
    List object_M0lBx__c_tmplist = data3.dataList as List
    object_M0lBx__c_tmplist.each{ i3 ->
      Map tmp3 = i3 as Map
      def (Boolean errorT,Map dataT,String errorMessageT) =  Fx.object.findById("object_q4TS1__c", tmp3.field_1Aetu__c as String)  //查找讲师
      String tname=dataT.name as String
      def (Boolean errorC,Map dataC,String errorMessageC) =  Fx.object.findById("object_G2aY4__c", tmp3.field_cxI2H__c as String)  //查找排课
      String cname=dataC.name as String
      Map object_M0lBx__c_tmp = [
        "field_1Xy8U__c":tmp3.field_1Aetu__c as String,  //讲师名称
        "field_1Xy8U__c__r":tname,  //讲师名称
        "field_mbQdz__c":tmp3.field_CIvcU__c as String,  //提成类型
        "field_sLp24__c":tmp3.field_aaw3m__c as BigDecimal,  //业绩金额
        "field_1MVjw__c":tmp3.field_cxI2H__c as String,  //排课编号
        "field_1MVjw__c__r":cname,  //排课编号
        "field_JM16W__c":objData_id,//定金费用列表
        "field_JM16W__c__r":tmp.name as String,
        'record_type': 'default__c'
        ]
      object_M0lBx__c.add(object_M0lBx__c_tmp)
    }
  }
  
   /*****************将【定金/学费】下的【讲师业绩拆分(定金))】数据转移到【协议收款】的【讲师业绩提成】下End************************/
  
}
log.info("【讲师业绩提成】总条数:"+object_M0lBx__c.size()+" 【顾问业绩拆分】总条数:"+object_25nje__c.size()+" [收款方式]总条数:"+object_oD4kM__c.size())

Map data = [
  'apiname':'object_cmqv1__c',
  'record_type': 'default__c',
  'data': mainObjData,
  'details':[
    "object_M0lBx__c":object_M0lBx__c,
    "object_25nje__c":object_25nje__c,
    "object_oD4kM__c":object_oD4kM__c
    ]
]
WebAction action = WebAction.builder()
  .type('form')
  .data(data)
  .build()
return action

}else{
  AlertAction action1 = AlertAction.builder()
  .type('error')
  .text('只能选择相同学员下的【学费/定金】!')
  .build()
return action1
}