编辑代码

 /**
 * 创建人:曾宪礼
 * 时间:2022-04-13
 * 需求描述:根据定金列表更新定金明细字段
 **/
 String id2 = context.data._id; 
  String bbb = context.data.field_nycC2__c; //shenp
 String aaa = context.data.field_WyeTl__c; //zhifu
 
String id = context.data._id;
String khId = context.data.field_Aq1fR__c;//客户
DateTime collectionTime = context.data.field_56BM8__c as DateTime;  //本次学费收款时间
BigDecimal je = context.data.field_6pjoF__c as BigDecimal


BigDecimal  field_imZIW__c=context.data.field_imZIW__c as BigDecimal; //讲师业绩拆分明细条数
BigDecimal  field_Y7xOq__c=context.data.field_Y7xOq__c as BigDecimal; //讲师业绩拆分明细条数


    String AAA=""
    String BBB=""
    
   if(aaa=="option1"){
     AAA="专属码扫码收款"
   }else if(aaa=="006AsZVOF"){
     AAA="智能POS机"
   }else if(aaa=="w63r7jdnW"){
     AAA="线下收款"
   }else if(aaa=="6Nlfisges"){
     AAA="第三方平台收款"
   }else if(aaa=="2o16V2F33"){
     AAA="对公转账(公对公)"
   }else if(aaa=="other"){
     AAA="其他"
   }
   

   
  if(bbb=="L341B84We"){
     BBB="待审核"
   }else if( bbb=="K7QY22geT" ){
      BBB="审核中"
   }else if( bbb=="o2109bB2h" ){
      BBB="已通过"
   }else if( bbb=="2jbvip5of" ){
      BBB="已驳回"
   }else if( bbb=="kGE2dK5o8" ){
      BBB="已撤回"
   }else if( bbb=="other" ){
      BBB="其他"
   }
   log.info(aaa)
   log.info(bbb)
   log.info(AAA)
   log.info(BBB)
   
   
def (Boolean error1,QueryResult data,String errorMessage1) = Fx.object.find("object_2Qo5n__c",[["field_68824__c":id2]],10,0) 
log.info(data)
List a = data.dataList  as List
a.each{


   item1 ->
    
   String ID2=item1["_id"]
   //log.info(id1)
   def(error2,data2,errorMessage2)= Fx.object.update( "object_2Qo5n__c",  ID2, [
      "field_8xmjA__c":AAA,
    "field_7rV27__c":BBB
    ])
    if(error2 ){
      log.info("定金明细更新失败:"+errorMessage2)
    }
    else{
      log.info("定金明细更新成功")
    }
}


 String field_1cwqQ__c =context.data.field_nFjtq__c //是否拆分业绩
 List owners  = context.data.owner as List;
BigDecimal field_523s1__c = context.data.field_6pjoF__c as BigDecimal;  //学费(收款)金额
log.info("合计:" + field_523s1__c)
int aaa1=context.data.field_Y7xOq__c  as int//业绩拆分明细
String field_WyeTl__c =context.data.field_WyeTl__c //支付方式

// if(field_1cwqQ__c=="M85GkK4m8"&&aaa1<=0&&field_WyeTl__c!="w63r7jdnW"){
if(field_Y7xOq__c==0){
//查找业绩分出顾问所在部门
  def ret1 = Fx.object.find("PersonnelObj",[["user_id":owners]],10,0)
  if(ret1[0]){
    log.info("查询出错,原因:" + ret1[2])
  }else{
    log.info("查询到的数据:"+ret1[1])
  }
  List department = ret1[1]["dataList"]["owner_department"] as List
  String department1 = department[0]
  log.info("负责人所在部门:" + department1)
  //查找与顾问所在部门相同名称的校区
  def rgt1 = Fx.object.find("object_2bwgw__c",[["name":department1]],10,0)
  if(rgt1[0]){
    log.info("查询出错,原因:" + rgt1[2])
  }else{
    log.info("查询到的数据:"+rgt1[1])
  }
  List xqid = rgt1[1]["dataList"]["_id"] as List
  String xqid1 = xqid[0]
  log.info("校区:" + xqid1)
ActionAttribute attribute = ActionAttribute.build {
   triggerApprovalFlow = true
   triggerWorkflow = true
   skipFunctionAction = true
   specifyCreatedBy = true
   specifyTime = true
   duplicateSearch = false
}
//创建顾问业绩拆分 

String field_61a2c__c = context.data.field_61a2c__c
BigDecimal field_cE1Lg__c = context.data.field_cE1Lg__c as BigDecimal
// if( field_cE1Lg__c <= 0 && field_61a2c__c != "1s94dv26H" && field_WyeTl__c != "option1"){
  
// def(error2,data2,errorMessage2) = Fx.object.create("object_YX8uy__c", ["field_raU0m__c":id2,
// "field_5vZ9q__c":field_523s1__c,
// "field_7bPL0__c":owners,
// "field_3e2l9__c":100,
// "field_bt08o__c":xqid1,
// "field_HNck7__c":"否"//是否拆分业绩
// ],null,attribute)
// if( error2 ){
//   log.info("失败"+errorMessage2)
// }
// else{
//   log.info("成功")
//     }
//   }
}

String zf = context.data.field_WyeTl__c
String sdzt = context.data.lock_status
String skzt = context.data.field_o5J62__c

if( zf == "rVS9U9e46" && skzt == "n4nnN832t" || zf == "006AsZVOF" && skzt == "n4nnN832t"){
  def (Boolean error5,data5,String errorMessage5) = Fx.object.unlock('object_8yo7D__c' , id2 , true)
  if( error5 ){
    log.info("解锁失败"+errorMessage5)
  }else{
    log.info("解锁成功")
  }
}



//查询客户首次收款时间
def retstu = Fx.object.find("AccountObj",[["_id":khId]],10, 0)
if(retstu[0]){
  log.info("查询失败,原因:"+ retstu[2])
}else{
//  log.info("查询到的列表数据:"+ retstu[1])
}

List studate1 = retstu[1]["dataList"]["field_uxq9p__c"] as List 
DateTime studate = studate1[0] as DateTime

log.info("客户首次时间:"+studate)



//查询客户名下收款时间最早的学费
def retxf = Fx.object.find("object_8yo7D__c",[["field_Aq1fR__c":khId]],["field_56BM8__c":1],1, 0)
if(retxf[0]){
  log.info("查询失败,原因:"+ retxf[2])
}else{
//  log.info("查询到的列表数据:"+ retxf[1])
}

List xfdate1 = retxf[1]["dataList"]["field_56BM8__c"] as List 
DateTime xfdate = xfdate1[0] as DateTime

log.info("学费最早时间:"+xfdate)


//查询客户名下收款时间最早的收款
def retsk = Fx.object.find("object_cmqv1__c",[["field_w72Rv__c":khId]],["field_pamB2__c":1],1, 0)
if(retsk[0]){
  log.info("查询失败,原因:"+ retsk[2])
}else{
//  log.info("查询到的列表数据:"+ retsk[1])
}

List skdate1 = retsk[1]["dataList"]["field_pamB2__c"] as List 
DateTime skdate = skdate1[0] as DateTime

log.info("收款最早时间:"+skdate)

log.info("本次学费收款时间:"+collectionTime)


Date khdate = null;
if(studate != null){
  khdate = studate.toDate() as Date
}

Date collectionTimedate = collectionTime.toDate() as Date

log.info("客户首次收款日期:"+khdate)
log.info("学费收款日期:"+collectionTimedate)

log.info(collectionTime)
boolean bool = false

if( khdate == collectionTimedate ){
  bool = true
}
log.info(bool)

//如果客户首次收款时间不为空且客户首次收款时间小于本次学费收款时间,则学费是否首次更新为“否”
if( studate != null && studate < collectionTime && bool != true){
  def xfretf  =  Fx.object.update( "object_8yo7D__c",  id,  ["field_8KiD4__c":"否"])
    if(xfretf[0]){
    log.info("更新失败,原因:"+xfretf[2])
    }else{
    log.info("学费否更新成功"+",规则是 客户首次收款不为空且小于本次学费时间")
  }
//else 客户首次收款时间为空,且收款不为空,则比对学员的收款时间是否小于学费收款时间,如果小于则学费是否首次更新为“否”且再把收款的收款时间更新到客户的收款时间
}else if( studate == null && skdate != null && skdate < xfdate && bool != true){
  //更新学费为否
    def xfretf2  =  Fx.object.update( "object_8yo7D__c",  id,  ["field_8KiD4__c":"否"])
      if(xfretf2[0]){
      log.info("更新失败,原因:"+xfretf2[2])
      }else{
      log.info("学费否更新成功"+",规则是首次收款为空,收款不为空")
    }
//更新客户首次收款时间为收款最早的时间
      def stuscret  =  Fx.object.update( "AccountObj",  khId,  ["field_uxq9p__c":skdate])
        if(stuscret[0]){
        log.info("更新失败,原因:"+stuscret[2])
        }else{
        log.info("客户是首次收款时间更新成功")
      }
//如果客户首次收款为空,且没有收款,则更新学费是否首次为“是” 且把学费的收款时间赋值到客户列表
}else if( studate == collectionTime || studate == null && skdate == null || studate == collectionTime ){
//学费是否更新成是
        def xfrets  =  Fx.object.update( "object_8yo7D__c",  id,  ["field_8KiD4__c":"是"])
          if(xfrets[0]){
          log.info("更新失败,原因:"+xfrets[2])
          }else{
          log.info("学费是更新成功"+",规则为客户首次NULL")
        }
//把学费收款时间更新成客户首次收款时间 
          def stuscret  =  Fx.object.update( "AccountObj",  khId,  ["field_uxq9p__c":collectionTime])
            if(stuscret[0]){
            log.info("更新失败,原因:"+stuscret[2])
            }else{
            log.info("客户是首次收款时间更新成功")
          }

//当天学费更新成是
}else if( studate != null && bool == true ){
          def dtret  =  Fx.object.update( "object_8yo7D__c",  id,  ["field_8KiD4__c":"是"])
          if(dtret[0]){
          log.info("更新失败,原因:"+dtret[2])
          }else{
          log.info("学费是更新成功"+",规则是当天学费")
        }
}

//大区

String Campus = context.data.field_lUsWJ__c
DateTime Collectiontime = context.data.field_56BM8__c as DateTime

def rst = Fx.object.find("object_8yrg3__c",[["field_22E7t__c":Campus],["field_4cioO__c": Operator.GTE(Collectiontime)]],10, 0)
  if(rst[0]){
    log.info("查询失败,原因:"+ rst[2])
  }else{
 //  log.info("查询到的列表数据:"+ rst[1])
  }
  
if(Collectiontime != null){
  List Region = rst[1]["dataList"]["name"] as List 
  String region = Region[0] as String
 // log.info(region)
  
def ret  =  Fx.object.update( "object_8yo7D__c",  id,  ["field_KeQLd__c":region])
  if(ret[0]){
  log.info("更新失败,原因:"+ret[2])
  }else{
  log.info("更新成功:"+region)
  
}
}

def retconsultant = Fx.object.find("object_YX8uy__c",[["field_raU0m__c":id]],10, 0)
if(retconsultant[0]){
  log.info("查询失败,原因:"+ retconsultant[2])
}else{
//  log.info("查询到的列表数据:"+ retconsultant[1])
}


List consultant = retconsultant[1]["dataList"] as List

consultant.each{
  item ->
    String consultantid = item["_id"]
    List consultantname = item["field_7bPL0__c"] as List
    DateTime Collectiontimes = item["field_bwtzE__c"] as DateTime


def ret = Fx.object.find("PersonnelObj",[["_id":consultantname]],10, 0)
  if(ret[0]){
    log.info("查询失败,原因:"+ ret[2])
  }else{
//   log.info("查询到的列表数据:"+ ret[1])
}

List departments = ret[1]["dataList"]["main_department"] as List //ID
List department = departments[0] as List

  def main_department = Fx.object.find("DepartmentObj",[["_id":department]],10, 0)
    if(main_department[0]){
      log.info("查询失败,原因:"+ main_department[2])
    }else{
     // log.info("查询到的列表数据:"+ main_department[1])
  }
  
  List departmentsname = main_department[1]["dataList"]["name"] as List 
  String departmentname = departmentsname[0] as String
  
  def rvt = Fx.object.find("object_2bwgw__c",[["name":departmentname]],10, 0)
    if(rvt[0]){
      log.info("查询失败,原因:"+ rvt[2])
    }else{
    //  log.info("查询到的列表数据:"+ rvt[1])
    }
    
  List departmentsid = rvt[1]["dataList"]["_id"] as List 
  String departmentid = departmentsid[0] as String
    
    
   def rstz = Fx.object.find("object_8yrg3__c",[["field_22E7t__c":departmentid],["field_4cioO__c": Operator.GTE(collectionTime)]],10, 0)
    if(rstz[0]){
      log.info("查询失败,原因:"+ rstz[2])
    }else{
    //  log.info("查询到的列表数据:"+ rstz[1])
    }   
  
  List Region = rstz[1]["dataList"]["name"] as List 
  String region = Region[0] as String
  
def retupdate  =  Fx.object.update( "object_YX8uy__c",  consultantid,  ["field_tM687__c":region])
  if(retupdate[0]){
  log.info("更新失败,原因:"+retupdate[2])
  }else{
  log.info("更新成功:"+region)
  
} 
}

/**
 * 财务打款日期非空的情况下,「归属大区(静)」为空值
 *
 * 企信提示
 */
 List object_YX8uy_list= context.details["object_YX8uy__c"] as List;  //顾问业绩拆分(学费)
 List object_25nje_list= context.details["object_25nje__c"] as List;  //协议顾问业绩明细
 
 def objDef = Fx.object.findById("object_8yo7D__c",context.data._id as String);
 Map objMap = objDef[1];
 
 DateTime paymentDate =  objMap.get("field_56BM8__c") as DateTime;
 String field_KeQLd =objMap.get("field_KeQLd__c") as String;
 Channel channel = Channel.Service("修改往期")
 String name = context.data.name as String;
 List receiverIds = [2624,1498,1007,2275]; //消息接收用户
// if(paymentDate!=null && (field_KeQLd == null || field_KeQLd == "")
//     && ((object_YX8uy_list!=null && object_YX8uy_list.size()>0)
//     ||(object_25nje_list!=null && object_25nje_list.size()>0))){
//   String msg = "学费列表"+name+"编号的「归属大区(静)」为空值";
//   def (sendError,sendData,sendErrorMessage) = Fx.message.send(msg, receiverIds, channel);
//   if(sendError){
//     log.info(sendErrorMessage);
//   }
// } 



return  null