SELECT
  qq.*
FROM
  (SELECT
 IFNULL(bpa1.cou,0) laidcou,
    buk.id,
    buk.`eqId`,
    buk.bigupkeeptemplateId,
    CONCAT(
      '名称:',
      but.`upkeepName`,
      '|保养级别:',
      but.`upkeepLevel`
    ) upNameLevel,
    buk.`upkeepCode`,
   buk.scores,
    buk.workflowNote,
    DATE_FORMAT(buk.chargeDate,'%Y-%m-%d %H:%i:%s') chargeDate,
    DATE_FORMAT(buk.useChargeDate,'%Y-%m-%d %H:%i:%s') useChargeDate,
    DATE_FORMAT(buk.finishedTime,'%Y-%m-%d %H:%i:%s')  finishedTime,
    em1.`empname`  upkeepPerson,
    em2.`empname`  useChargePerson,
    em3.`empname`  chargePerson,
em4.empname deptChargePerson,IFNULL( buk.useEmpId, e.employeeId) useEmpId,IFNULL(em5.empname ,em.empname) useEmpName,
  DATE_FORMAT(buk.deptChargeDate,'%Y-%m-%d %H:%i:%s') deptChargeDate,
buk.deptChargeId,
    IFNULL(em.`empname`,employeName) employeName,
    e.employeeId,
    e.`departmentId`,
    buk.upkeepPerson upkeepPersonId,
    e.`eqCode`,
    e.`eqName`,
    e.`specification`,
    p.`name` pastureName,
    d.`name` departmentName,
    IF(
      buk.`statue` = 0
     AND (DATE_FORMAT(NOW(), '%Y-%m-%d') = buk.`plantime` OR buk.`flowCompeleted`>1 
   OR DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -1 DAY), '%Y-%m-%d') = buk.`plantime` ),
      1,
      buk.`statue`
    ) statue,
    IF(bpa.cou  IS NULL,'未领用','已领用') LYStatue,
    IF(rf.cou  IS NULL,'未录入','已录入') LRStatue,
    buk.flowCompeleted  SHStatue,
    case 
      when (select  id  from video where  upkeepId =buk.id) is null then '未录制'
      when (select  id  from video where  upkeepId =buk.id and endRecord  =2 ) is not null then '录制中'
      when (select  id  from video where  upkeepId =buk.id and newCreateTime=createTime and location <>'') is not null then '已录制'
      else '已录制上传中'
    end as videoTxt,# 录制状态
    ifnull((select  location  from video where  upkeepId =buk.id),'')  videoPath, # 录制地址
    buk.`plantime`
  FROM
    bigupkeep buk
    INNER JOIN equipment e
      ON buk.`eqId` = e.`id`
    INNER JOIN pasture p
      ON p.`id` = e.`pastureId`
    LEFT JOIN department d
      ON e.`departmentId` = d.`id`
    LEFT JOIN emp em
      ON em.id = e.employeeId
    LEFT JOIN emp em1
      ON em1.id = buk.upkeepPerson
    LEFT JOIN emp em2
      ON em2.id = buk.useChargeId
 LEFT JOIN emp em3
      ON em3.id = buk.chargeId
 LEFT JOIN emp em4
      ON em4.id = buk.deptChargeId
 LEFT JOIN emp em5
      ON em5.id = buk.useEmpId
    LEFT JOIN bigupkeeptemplate but
      ON but.id = buk.bigupkeeptemplateId
   LEFT JOIN (SELECT RUCode,COUNT(id)cou FROM  bigpartapply GROUP BY  RUCode ) bpa
    ON bpa.`RUCode` = buk.`upkeepCode`
 LEFT JOIN (SELECT repairCode,COUNT(id)cou FROM  refuse GROUP BY  repairCode)rf
    ON rf.`repairCode` = buk.`upkeepCode`
   LEFT JOIN (SELECT RUCode,COUNT(id)cou FROM  bigpartapply WHERE statue =0 AND (SHStatus IN (2,3,5,7,9)) GROUP BY  RUCode ) bpa1
    ON bpa1.`RUCode` = buk.`upkeepCode`
WHERE 
((buk.upkeepPerson= ? OR buk.useEmpId=? OR IFNULL((SELECT  MAX(r.`datarole`) FROM `user` u
   LEFT JOIN user_role ur
   ON ur.`user_id`= u.`id`
   LEFT JOIN role r
   ON r.`id` = ur.`role_id`
   LEFT JOIN role_menu rm
   ON r.`id` = rm.`role_id`
   LEFT JOIN menu m
   ON m.`id` = rm.`menu_id`
   WHERE u.`empid` = ? AND m.`path`=?),0) IN (1,2,3))

   AND (e.departmentId IN (SELECT id FROM department WHERE pastureId =? AND id IN (
	 
SELECT  SUBSTRING_INDEX(SUBSTRING_INDEX(ss.www,',',b.seq+1),',',-1) AS 'ids' 
				 FROM 
					(SELECT @i:=1 i,IFNULL((SELECT GROUP_CONCAT(department_id)SSSS 
				 FROM role_department WHERE role_id = (SELECT  MAX(r.id) FROM `user` u
					 LEFT JOIN user_role ur
					 ON ur.`user_id`= u.`id`
					 LEFT JOIN role r
					 ON r.`id` = ur.`role_id`
					 LEFT JOIN role_menu rm
					 ON r.`id` = rm.`role_id` 
					 LEFT JOIN role_department rd
					 ON r.`id` = rd.`role_id`
					 LEFT JOIN menu m
					 ON m.`id` = rm.`menu_id`
					 WHERE u.`empid` = ? AND m.`path`=?) AND department_id IN (SELECT id FROM department WHERE pastureId = ?)),?) www) ss
					 JOIN   sequence b ON b.seq < (LENGTH(ss.www) - LENGTH(REPLACE(ss.www,',',''))+1)
					WHERE ss.i =1
					GROUP BY ids				
					) 
	 ) 
	 OR buk.upkeepPerson= ? OR buk.useEmpId=? OR IFNULL((SELECT  MAX(r.`datarole`) FROM `user` u
   LEFT JOIN user_role ur
   ON ur.`user_id`= u.`id`
   LEFT JOIN role r
   ON r.`id` = ur.`role_id`
   LEFT JOIN role_menu rm
   ON r.`id` = rm.`role_id`
   LEFT JOIN menu m
   ON m.`id` = rm.`menu_id`
   WHERE u.`empid` =? AND m.`path`=? ),0) IN (2,3))
   
   AND (p.id= ? OR IFNULL((SELECT  MAX(r.`datarole`)  FROM `user` u
   LEFT JOIN user_role ur
   ON ur.`user_id`= u.`id`
   LEFT JOIN role r
   ON r.`id` = ur.`role_id`
   LEFT JOIN role_menu rm
   ON r.`id` = rm.`role_id`
   LEFT JOIN menu m
   ON m.`id` = rm.`menu_id`
   WHERE u.`empid` = ? AND m.`path`=? ),0) = 3)) AND
(p.`name`=? OR ?='现代牧业') AND (buk.upkeepCode LIKE CONCAT('%',?,'%')OR ?='') 
AND (e.`eqName` LIKE CONCAT('%',?,'%')OR ?='')
AND (e.`eqCode` LIKE CONCAT('%',?,'%')OR ?='')
AND (e.`departmentId`=? OR ?='')

AND (buk.`plantime` >=? AND buk.`plantime`<=?  OR ?='')
AND  buk.upkeepCode IS NOT NULL   AND (
   IF (?=0,buk.flowCompeleted IN (2,3,5) ,
        IF(?=1,buk.flowCompeleted=7,buk.flowCompeleted IN (4,6,8))
   )
    OR ? = ''
  )) qq
WHERE qq.statue=? OR ?=''
ORDER BY qq.plantime DESC, qq.upkeepCode  DESC