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<ReportInoutCheckData> page,
|
Map<String, Object> 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<Object> 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, Object>();
|
|
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());
|
|
}
|
|
}
|