package com.ld.igds.m.service; import com.bstek.bdf2.core.orm.jdbc.JdbcDao; import com.bstek.dorado.data.provider.Page; import com.ld.igds.inout.InoutConstant; import com.ld.igds.m.dto.ReportInoutCheckData; import com.ld.igds.m.dto.ReportInoutCheckDataRowMapepr; import com.ld.igds.util.ContextUtil; import com.ld.igds.util.DateUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; import java.util.*; @Component(JInoutCheckService.BEAN_ID) public class JInoutCheckService extends JdbcDao { public static final String BEAN_ID = "jdbcInoutCheckServiceImpl"; public void pageReportCheckData(Page page, Map param) { StringBuilder sb = new StringBuilder(); sb.append("SELECT "); sb.append("d.ID_ as id, "); sb.append("d.DEPT_ID_ as deptId, "); sb.append("d.DEPOT_ID_ as depotId, "); sb.append("d.USER_NAME_ as userName, "); sb.append("d.PLATE_NUM_ as plateNum, "); sb.append("d.CUSTOMER_ID_ as customerId, "); sb.append("d.CUSTOMER_NAME_ as customerName, "); sb.append("d.FOOD_VARIETY_ as foodVariety, "); sb.append("d.FOOD_LEVEL_ as foodLevel, "); sb.append("d.FOOD_LOCATION_ as foodLocation, "); sb.append("d.FOOD_YEAR_ as foodYear, "); sb.append("d.CHECK_STATUS_ as checkStatus, "); sb.append("d.SETTLE_WEIGHT_ as settleWeight, "); sb.append("d.COMPLETE_TIME_ as completeTime, "); sb.append("d.REMARKS_ as remarks, "); sb.append("f.STANDARD_ID_ as standardId, "); sb.append("f.STANDARD_NAME_ as standardName, "); sb.append("f.LOWER_LIMIT_ as lowerLimit, "); sb.append("f.UPPER_LIMIT_ as upperLimit, "); sb.append("f.VALUE_ as value, "); sb.append("e.STANDARD_ID_ as standardId2, "); sb.append("e.STANDARD_NAME_ as standardName2, "); sb.append("e.LOWER_LIMIT_ as lowerLimit2, "); sb.append("e.UPPER_LIMIT_ as upperLimit2, "); sb.append("e.VALUE_ as value2 "); sb.append("FROM d_inout_record d "); sb.append("LEFT JOIN d_check_item c "); sb.append("ON d.COMPANY_ID_ = c.COMPANY_ID_ "); sb.append("AND d.CHECK_ID_ = c.CHECK_ID_ "); sb.append("LEFT JOIN "); sb.append("( SELECT * FROM d_check_item WHERE STANDARD_ID_ =? ) e "); sb.append("ON d.COMPANY_ID_ = e.COMPANY_ID_ "); sb.append("AND d.CHECK_ID_ = e.CHECK_ID_ "); sb.append("LEFT JOIN "); sb.append("( SELECT * FROM d_check_item WHERE STANDARD_ID_ =? ) f "); sb.append("ON d.COMPANY_ID_ = f.COMPANY_ID_ "); sb.append("AND d.CHECK_ID_ = f.CHECK_ID_ "); sb.append("WHERE d.COMPANY_ID_ =? "); sb.append("AND d.TYPE_ =? "); sb.append("AND d.RECORD_STATUS_ <> ? "); sb.append("AND d.RECORD_STATUS_ <> ? "); sb.append("AND d.PROGRESS_ =? "); List arg = new ArrayList<>(); // TODO 待动态调整 arg.add("C27"); arg.add("C25"); arg.add(ContextUtil.getCompanyId()); arg.add(InoutConstant.TYPE_IN); arg.add(InoutConstant.RECORD_STATUS_DEL); arg.add(InoutConstant.PROGRESS_RECORD); if (null == param) param = new HashMap(); String obj = (String) param.get("foodVariety"); if (StringUtils.isNotEmpty(obj)) { sb.append(" and d.FOOD_VARIETY_ = ?"); arg.add(obj); } obj = (String) param.get("depotId"); if (StringUtils.isNotEmpty(obj)) { sb.append(" and d.DEPOT_ID_ = ?"); arg.add(obj); } obj = (String) param.get("deptId"); if (null == obj) { obj = ContextUtil.subDeptId(null); } if (StringUtils.isNotEmpty(obj)) { sb.append(" and d.DEPT_ID_ = ?"); arg.add(obj); } Date date = (Date) param.get("start"); if (null != date) { sb.append(" and d.COMPLETE_TIME_ >= ? "); arg.add(DateUtil.getCurZero(date)); } date = (Date) param.get("end"); if (null != date) { sb.append(" and d.COMPLETE_TIME_ <= ? "); arg.add(DateUtil.getNextZero(date)); } sb.append("GROUP BY id"); this.pagingQuery(page, sb.toString(), arg.toArray(), new ReportInoutCheckDataRowMapepr()); } }