QueryHelperqueryHelper=newQueryHelper("SELECT s.*, ms.*, FORMAT(s.contract_amount,2) as contractAmountRound, FORMAT(s.total_collect,2) as totalCollectRound, FORMAT(s.total_purchased_paid,2) as totalPurchasedPaidRound, FORMAT(s.total_purchased_unpaid,2) as totalPurchasedUnpaidRound"+
", FORMAT(s.time_out_amount,2) as timeOutAmountRound, FORMAT(s.total_bill_amount,2) as totalBillAmountRound, FORMAT(s.collect_amount,2) as collectAmountRound, FORMAT(s.collect_actual_amount,2) as collectActualAmountRound"+
", FORMAT(s.uncollect_actual_amount,2) as uncollectActualAmountRound, FORMAT(s.cal_col_amount,2) as calColAmountRound, FORMAT(s.uncal_col_amount,2) as uncalColAmountRound"+
", DATE_FORMAT(s.contract_sign_time, '%Y-%m-%d') as contractSignTimeStr, DATE_FORMAT(s.collect_required_time, '%Y-%m-%d') as collectRequiredTimeStr, DATE_FORMAT(s.collect_actual_time, '%Y-%m-%d') as collectActualTimeStr, DATE_FORMAT(s.inspection_report_time, '%Y-%m-%d') as inspectionReportTimeStr ","(select project_name as name, max(ms.month) as time from monthly_settle ms group by ms.project_name)","ms");
queryHelper.leftJoin("monthly_settle s","ms.time = s.month and ms.name = s.project_name");
queryHelper.addCondition(StrUtil.isNotEmpty(searchInfo.get("projectNo")),"s.project_no LIKE ?","%"+searchInfo.get("projectNo")+"%");
queryHelper.addCondition(StrUtil.isNotEmpty(searchInfo.get("name")),"s.project_name LIKE ?","%"+searchInfo.get("name")+"%");
queryHelper.addCondition(StrUtil.isNotEmpty(searchInfo.get("owner")),"s.owner LIKE ?","%"+searchInfo.get("owner")+"%");
queryHelper.addCondition(StrUtil.isNotEmpty(searchInfo.get("contractParty")),"s.contract_party LIKE ?","%"+searchInfo.get("contractParty")+"%");
queryHelper.addCondition(StrUtil.isNotEmpty(searchInfo.get("contractNo")),"s.contract_no LIKE ?","%"+searchInfo.get("contractNo")+"%");
queryHelper.addCondition(StrUtil.isNotEmpty(searchInfo.get("projectType")),"s.project_type LIKE ?","%"+searchInfo.get("projectType")+"%");
queryHelper.addCondition(StrUtil.isNotEmpty(searchInfo.get("saleManager")),"s.sale_manager LIKE ?","%"+searchInfo.get("saleManager")+"%");
queryHelper.addCondition(StrUtil.isNotEmpty(searchInfo.get("projectManager")),"s.project_manager LIKE ?","%"+searchInfo.get("projectManager")+"%");
queryHelper.addCondition(StrUtil.isNotEmpty(searchInfo.get("timeOutDay")),"s.time_out_day LIKE ?","%"+searchInfo.get("timeOutDay")+"%");
QueryHelperqueryHelper=newQueryHelper("SELECT s.*, FORMAT(s.contract_amount,2) as contractAmountRound, FORMAT(s.total_collect,2) as totalCollectRound, FORMAT(s.total_purchased_paid,2) as totalPurchasedPaidRound, FORMAT(s.total_purchased_unpaid,2) as totalPurchasedUnpaidRound"+
", FORMAT(s.time_out_amount,2) as timeOutAmountRound, FORMAT(s.total_bill_amount,2) as totalBillAmountRound, FORMAT(s.collect_amount,2) as collectAmountRound, FORMAT(s.collect_actual_amount,2) as collectActualAmountRound"+
", FORMAT(s.uncollect_actual_amount,2) as uncollectActualAmountRound, FORMAT(s.cal_col_amount,2) as calColAmountRound, FORMAT(s.uncal_col_amount,2) as uncalColAmountRound "+
", DATE_FORMAT(s.contract_sign_time, '%Y-%m-%d') as contractSignTimeStr, DATE_FORMAT(s.collect_required_time, '%Y-%m-%d') as collectRequiredTimeStr, DATE_FORMAT(s.collect_actual_time, '%Y-%m-%d') as collectActualTimeStr, DATE_FORMAT(s.inspection_report_time, '%Y-%m-%d') as inspectionReportTimeStr ","monthly_settle","s");
QueryHelperqueryHelper=newQueryHelper("SELECT s.*, FORMAT(s.contract_amount,2) as contractAmountRound, FORMAT(s.total_collect,2) as totalCollectRound, FORMAT(s.total_purchased_paid,2) as totalPurchasedPaidRound, FORMAT(s.total_purchased_unpaid,2) as totalPurchasedUnpaidRound"+
", FORMAT(s.time_out_amount,2) as timeOutAmountRound, FORMAT(s.total_bill_amount,2) as totalBillAmountRound, FORMAT(s.collect_amount,2) as collectAmountRound, FORMAT(s.collect_actual_amount,2) as collectActualAmountRound"+
", FORMAT(s.uncollect_actual_amount,2) as uncollectActualAmountRound, FORMAT(s.cal_col_amount,2) as calColAmountRound, FORMAT(s.uncal_col_amount,2) as uncalColAmountRound "+
", DATE_FORMAT(s.contract_sign_time, '%Y-%m-%d') as contractSignTimeStr, DATE_FORMAT(s.collect_required_time, '%Y-%m-%d') as collectRequiredTimeStr, DATE_FORMAT(s.collect_actual_time, '%Y-%m-%d') as collectActualTimeStr, DATE_FORMAT(s.inspection_report_time, '%Y-%m-%d') as inspectionReportTimeStr ","monthly_settle","s");