|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Slf4j | 
|---|
|  |  |  | @Component(JInoutReportService.BEAN_ID) | 
|---|
|  |  |  | public class JInoutReportService extends JdbcDao  { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static final String BEAN_ID = "jdbcInoutReportServiceImpl"; | 
|---|
|  |  |  | public class JInoutReportService extends JdbcDao { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private HDepotService depotService; | 
|---|
|  |  |  | public static final String BEAN_ID = "jdbcInoutReportServiceImpl"; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public List<ReportInoutDepotData> getInoutDepotData( | 
|---|
|  |  |  | Map<String, Object> parameter) { | 
|---|
|  |  |  | // 时间条件必须 | 
|---|
|  |  |  | Date start = (Date) parameter.get("start"); | 
|---|
|  |  |  | Date end = (Date) parameter.get("end"); | 
|---|
|  |  |  | String deptId = (String) parameter.get("deptId"); | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private HDepotService depotService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (start == null || end == null || StringUtils.isEmpty(deptId)) | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  | public List<ReportInoutDepotData> getInoutDepotData( | 
|---|
|  |  |  | Map<String, Object> parameter) { | 
|---|
|  |  |  | // 时间条件必须 | 
|---|
|  |  |  | Date start = (Date) parameter.get("start"); | 
|---|
|  |  |  | Date end = (Date) parameter.get("end"); | 
|---|
|  |  |  | String deptId = (String) parameter.get("deptId"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | StringBuffer sql = new StringBuffer(); | 
|---|
|  |  |  | sql.append("SELECT "); | 
|---|
|  |  |  | sql.append("d.ID_ AS depotId, "); | 
|---|
|  |  |  | sql.append("d.NAME_ AS depotName, "); | 
|---|
|  |  |  | sql.append("d.FOOD_TYPE_ AS foodType, "); | 
|---|
|  |  |  | sql.append("d.FOOD_VARIETY_ AS foodVariety, "); | 
|---|
|  |  |  | sql.append("0 as cqkc, "); | 
|---|
|  |  |  | sql.append("d.STORAGE_REAL_ as qmkc, "); | 
|---|
|  |  |  | sql.append("a.inNum, "); | 
|---|
|  |  |  | sql.append("a.outNum, "); | 
|---|
|  |  |  | sql.append("a.lossNum, "); | 
|---|
|  |  |  | sql.append("a.overNum, "); | 
|---|
|  |  |  | sql.append("( "); | 
|---|
|  |  |  | sql.append("IFNULL(a.inNum, 0) + IFNULL(a.overNum, 0) "); | 
|---|
|  |  |  | sql.append(") AS inSum, "); | 
|---|
|  |  |  | sql.append("( "); | 
|---|
|  |  |  | sql.append("IFNULL(a.outNum, 0) + IFNULL(a.lossNum, 0) "); | 
|---|
|  |  |  | sql.append(") AS outSum "); | 
|---|
|  |  |  | sql.append("FROM "); | 
|---|
|  |  |  | sql.append("d_depot d "); | 
|---|
|  |  |  | sql.append("LEFT JOIN ( "); | 
|---|
|  |  |  | sql.append("SELECT "); | 
|---|
|  |  |  | sql.append("a.DEPOT_ID_, "); | 
|---|
|  |  |  | sql.append("SUM( "); | 
|---|
|  |  |  | sql.append("IF ( "); | 
|---|
|  |  |  | sql.append("a.TYPE_ = :typeIn, "); | 
|---|
|  |  |  | sql.append("a.SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("0 "); | 
|---|
|  |  |  | sql.append(") "); | 
|---|
|  |  |  | sql.append(") AS inNum, "); | 
|---|
|  |  |  | sql.append("SUM( "); | 
|---|
|  |  |  | sql.append("IF ( "); | 
|---|
|  |  |  | sql.append("a.TYPE_ = :typeOut, "); | 
|---|
|  |  |  | sql.append("a.SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("0 "); | 
|---|
|  |  |  | sql.append(") "); | 
|---|
|  |  |  | sql.append(") AS outNum, "); | 
|---|
|  |  |  | sql.append("SUM( "); | 
|---|
|  |  |  | sql.append("IF ( "); | 
|---|
|  |  |  | sql.append("a.TYPE_ = :typeLoss, "); | 
|---|
|  |  |  | sql.append("a.SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("0 "); | 
|---|
|  |  |  | sql.append(") "); | 
|---|
|  |  |  | sql.append(") AS lossNum, "); | 
|---|
|  |  |  | sql.append("SUM( "); | 
|---|
|  |  |  | sql.append("IF ( "); | 
|---|
|  |  |  | sql.append("a.TYPE_ = :typeOver, "); | 
|---|
|  |  |  | sql.append("a.SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("0 "); | 
|---|
|  |  |  | sql.append(") "); | 
|---|
|  |  |  | sql.append(") AS overNum "); | 
|---|
|  |  |  | sql.append("FROM "); | 
|---|
|  |  |  | sql.append("( "); | 
|---|
|  |  |  | sql.append("SELECT "); | 
|---|
|  |  |  | sql.append("DEPOT_ID_, "); | 
|---|
|  |  |  | sql.append("SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("TYPE_, "); | 
|---|
|  |  |  | sql.append("CUR_STORAGE_ "); | 
|---|
|  |  |  | sql.append("FROM "); | 
|---|
|  |  |  | sql.append("d_inout_record "); | 
|---|
|  |  |  | sql.append("WHERE "); | 
|---|
|  |  |  | sql.append("COMPANY_ID_ = :companyId "); | 
|---|
|  |  |  | sql.append("AND PROGRESS_ = :progress "); | 
|---|
|  |  |  | sql.append("AND RECORD_STATUS_ <> :recordStatusDel  "); | 
|---|
|  |  |  | sql.append("AND RECORD_STATUS_ <> :recordStatusError "); | 
|---|
|  |  |  | sql.append("AND COMPLETE_TIME_ >= :start "); | 
|---|
|  |  |  | sql.append("AND COMPLETE_TIME_ <= :end "); | 
|---|
|  |  |  | sql.append("AND DEPT_ID_  = :deptId "); | 
|---|
|  |  |  | sql.append(") a "); | 
|---|
|  |  |  | sql.append("GROUP BY a.DEPOT_ID_ "); | 
|---|
|  |  |  | sql.append(") a ON d.ID_ = a.DEPOT_ID_ "); | 
|---|
|  |  |  | sql.append("WHERE d.COMPANY_ID_ = :companyId "); | 
|---|
|  |  |  | sql.append("AND d.DEPOT_TYPE_ <> :depotTypeOther "); | 
|---|
|  |  |  | sql.append("AND d.DEPT_ID_  = :deptId "); | 
|---|
|  |  |  | sql.append("ORDER BY d.ID_"); | 
|---|
|  |  |  | if (start == null || end == null || StringUtils.isEmpty(deptId)) | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Map<String, Object> args = new HashMap<>(); | 
|---|
|  |  |  | args.put("deptId", deptId); | 
|---|
|  |  |  | args.put("companyId", ContextUtil.getCompanyId()); | 
|---|
|  |  |  | args.put("typeIn", InoutConstant.TYPE_IN); | 
|---|
|  |  |  | args.put("typeOut", InoutConstant.TYPE_OUT); | 
|---|
|  |  |  | args.put("typeLoss", Constant.LOSS_OVER_LOSS); | 
|---|
|  |  |  | args.put("typeOver", Constant.LOSS_OVER_OVER); | 
|---|
|  |  |  | args.put("progress", InoutConstant.PROGRESS_RECORD); | 
|---|
|  |  |  | args.put("recordStatusDel", InoutConstant.RECORD_STATUS_DEL); | 
|---|
|  |  |  | StringBuffer sql = new StringBuffer(); | 
|---|
|  |  |  | sql.append("SELECT "); | 
|---|
|  |  |  | sql.append("d.ID_ AS depotId, "); | 
|---|
|  |  |  | sql.append("d.NAME_ AS depotName, "); | 
|---|
|  |  |  | sql.append("d.FOOD_TYPE_ AS foodType, "); | 
|---|
|  |  |  | sql.append("d.FOOD_VARIETY_ AS foodVariety, "); | 
|---|
|  |  |  | sql.append("0 as cqkc, "); | 
|---|
|  |  |  | sql.append("d.STORAGE_REAL_ as qmkc, "); | 
|---|
|  |  |  | sql.append("a.inNum, "); | 
|---|
|  |  |  | sql.append("a.outNum, "); | 
|---|
|  |  |  | sql.append("a.lossNum, "); | 
|---|
|  |  |  | sql.append("a.overNum, "); | 
|---|
|  |  |  | sql.append("( "); | 
|---|
|  |  |  | sql.append("IFNULL(a.inNum, 0) + IFNULL(a.overNum, 0) "); | 
|---|
|  |  |  | sql.append(") AS inSum, "); | 
|---|
|  |  |  | sql.append("( "); | 
|---|
|  |  |  | sql.append("IFNULL(a.outNum, 0) + IFNULL(a.lossNum, 0) "); | 
|---|
|  |  |  | sql.append(") AS outSum "); | 
|---|
|  |  |  | sql.append("FROM "); | 
|---|
|  |  |  | sql.append("d_depot d "); | 
|---|
|  |  |  | sql.append("LEFT JOIN ( "); | 
|---|
|  |  |  | sql.append("SELECT "); | 
|---|
|  |  |  | sql.append("a.DEPOT_ID_, "); | 
|---|
|  |  |  | sql.append("SUM( "); | 
|---|
|  |  |  | sql.append("IF ( "); | 
|---|
|  |  |  | sql.append("a.TYPE_ = :typeIn, "); | 
|---|
|  |  |  | sql.append("a.SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("0 "); | 
|---|
|  |  |  | sql.append(") "); | 
|---|
|  |  |  | sql.append(") AS inNum, "); | 
|---|
|  |  |  | sql.append("SUM( "); | 
|---|
|  |  |  | sql.append("IF ( "); | 
|---|
|  |  |  | sql.append("a.TYPE_ = :typeOut, "); | 
|---|
|  |  |  | sql.append("a.SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("0 "); | 
|---|
|  |  |  | sql.append(") "); | 
|---|
|  |  |  | sql.append(") AS outNum, "); | 
|---|
|  |  |  | sql.append("SUM( "); | 
|---|
|  |  |  | sql.append("IF ( "); | 
|---|
|  |  |  | sql.append("a.TYPE_ = :typeLoss, "); | 
|---|
|  |  |  | sql.append("a.SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("0 "); | 
|---|
|  |  |  | sql.append(") "); | 
|---|
|  |  |  | sql.append(") AS lossNum, "); | 
|---|
|  |  |  | sql.append("SUM( "); | 
|---|
|  |  |  | sql.append("IF ( "); | 
|---|
|  |  |  | sql.append("a.TYPE_ = :typeOver, "); | 
|---|
|  |  |  | sql.append("a.SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("0 "); | 
|---|
|  |  |  | sql.append(") "); | 
|---|
|  |  |  | sql.append(") AS overNum "); | 
|---|
|  |  |  | sql.append("FROM "); | 
|---|
|  |  |  | sql.append("( "); | 
|---|
|  |  |  | sql.append("SELECT "); | 
|---|
|  |  |  | sql.append("DEPOT_ID_, "); | 
|---|
|  |  |  | sql.append("SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("TYPE_, "); | 
|---|
|  |  |  | sql.append("CUR_STORAGE_ "); | 
|---|
|  |  |  | sql.append("FROM "); | 
|---|
|  |  |  | sql.append("d_inout_record "); | 
|---|
|  |  |  | sql.append("WHERE "); | 
|---|
|  |  |  | sql.append("COMPANY_ID_ = :companyId "); | 
|---|
|  |  |  | sql.append("AND PROGRESS_ = :progress "); | 
|---|
|  |  |  | sql.append("AND RECORD_STATUS_ <> :recordStatusDel  "); | 
|---|
|  |  |  | sql.append("AND COMPLETE_TIME_ >= :start "); | 
|---|
|  |  |  | sql.append("AND COMPLETE_TIME_ <= :end "); | 
|---|
|  |  |  | sql.append("AND DEPT_ID_  = :deptId "); | 
|---|
|  |  |  | sql.append(") a "); | 
|---|
|  |  |  | sql.append("GROUP BY a.DEPOT_ID_ "); | 
|---|
|  |  |  | sql.append(") a ON d.ID_ = a.DEPOT_ID_ "); | 
|---|
|  |  |  | sql.append("WHERE d.COMPANY_ID_ = :companyId "); | 
|---|
|  |  |  | sql.append("AND d.DEPOT_TYPE_ <> :depotTypeOther "); | 
|---|
|  |  |  | sql.append("AND d.DEPT_ID_  = :deptId "); | 
|---|
|  |  |  | sql.append("ORDER BY d.ID_"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | args.put("start", DateUtil.getCurZero(start)); | 
|---|
|  |  |  | args.put("end", DateUtil.getNextZero(end)); | 
|---|
|  |  |  | args.put("depotTypeOther", DepotType.TYPE_99.getCode()); | 
|---|
|  |  |  | Map<String, Object> args = new HashMap<>(); | 
|---|
|  |  |  | args.put("deptId", deptId); | 
|---|
|  |  |  | args.put("companyId", ContextUtil.getCompanyId()); | 
|---|
|  |  |  | args.put("typeIn", InoutConstant.TYPE_IN); | 
|---|
|  |  |  | args.put("typeOut", InoutConstant.TYPE_OUT); | 
|---|
|  |  |  | args.put("typeLoss", Constant.LOSS_OVER_LOSS); | 
|---|
|  |  |  | args.put("typeOver", Constant.LOSS_OVER_OVER); | 
|---|
|  |  |  | args.put("progress", InoutConstant.PROGRESS_RECORD); | 
|---|
|  |  |  | args.put("recordStatusDel", InoutConstant.RECORD_STATUS_DEL); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | log.debug("====执行SLQ1={}", sql.toString()); | 
|---|
|  |  |  | args.put("start", DateUtil.getCurZero(start)); | 
|---|
|  |  |  | args.put("end", DateUtil.getNextZero(end)); | 
|---|
|  |  |  | args.put("depotTypeOther", DepotType.TYPE_99.getCode()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<ReportInoutDepotData> data = this.getNamedParameterJdbcTemplate() | 
|---|
|  |  |  | .query(sql.toString(), args, new ReportInoutDepotRowMapper()); | 
|---|
|  |  |  | log.debug("====执行SLQ1={}", sql.toString()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (null == data || data.isEmpty()) | 
|---|
|  |  |  | return data; | 
|---|
|  |  |  | List<ReportInoutDepotData> data = this.getNamedParameterJdbcTemplate() | 
|---|
|  |  |  | .query(sql.toString(), args, new ReportInoutDepotRowMapper()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 根据开始时间获取距离最近的车辆信息,获取初期库存 | 
|---|
|  |  |  | sql = new StringBuffer(); | 
|---|
|  |  |  | args = new HashMap<>(); | 
|---|
|  |  |  | sql.append("SELECT "); | 
|---|
|  |  |  | sql.append("DEPOT_ID_, "); | 
|---|
|  |  |  | sql.append("SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("TYPE_, "); | 
|---|
|  |  |  | sql.append("CUR_STORAGE_, "); | 
|---|
|  |  |  | sql.append("FOOD_VARIETY_, "); | 
|---|
|  |  |  | sql.append("COMPLETE_TIME_ "); | 
|---|
|  |  |  | sql.append("FROM "); | 
|---|
|  |  |  | sql.append("( "); | 
|---|
|  |  |  | sql.append("SELECT "); | 
|---|
|  |  |  | sql.append("DEPOT_ID_, "); | 
|---|
|  |  |  | sql.append("SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("TYPE_, "); | 
|---|
|  |  |  | sql.append("CUR_STORAGE_, "); | 
|---|
|  |  |  | sql.append("COMPANY_ID_, "); | 
|---|
|  |  |  | sql.append("PROGRESS_, "); | 
|---|
|  |  |  | sql.append("RECORD_STATUS_, "); | 
|---|
|  |  |  | sql.append("DEPT_ID_, "); | 
|---|
|  |  |  | sql.append("FOOD_VARIETY_, "); | 
|---|
|  |  |  | sql.append("COMPLETE_TIME_ "); | 
|---|
|  |  |  | sql.append("FROM "); | 
|---|
|  |  |  | sql.append("d_inout_record "); | 
|---|
|  |  |  | sql.append("WHERE "); | 
|---|
|  |  |  | sql.append("COMPANY_ID_ =:companyId "); | 
|---|
|  |  |  | sql.append("AND PROGRESS_ =:progress "); | 
|---|
|  |  |  | sql.append("AND RECORD_STATUS_ <> :recordStatusDel "); | 
|---|
|  |  |  | sql.append("AND RECORD_STATUS_ <> :recordStatusError "); | 
|---|
|  |  |  | sql.append("AND DEPT_ID_ = :deptId "); | 
|---|
|  |  |  | sql.append("AND COMPLETE_TIME_ < :start "); | 
|---|
|  |  |  | sql.append("ORDER BY COMPLETE_TIME_ DESC "); | 
|---|
|  |  |  | sql.append("LIMIT 9999 "); | 
|---|
|  |  |  | sql.append(") AS a "); | 
|---|
|  |  |  | sql.append("GROUP BY "); | 
|---|
|  |  |  | sql.append("a.DEPOT_ID_ "); | 
|---|
|  |  |  | if (null == data || data.isEmpty()) | 
|---|
|  |  |  | return data; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | args.put("deptId", deptId); | 
|---|
|  |  |  | args.put("companyId", ContextUtil.getCompanyId()); | 
|---|
|  |  |  | args.put("progress", InoutConstant.PROGRESS_RECORD); | 
|---|
|  |  |  | args.put("recordStatusDel", InoutConstant.RECORD_STATUS_DEL); | 
|---|
|  |  |  | // 获取距离开始时间久最近的数据,当前天的第五分钟 | 
|---|
|  |  |  | Date date = DateUtil.getCurZero(start); | 
|---|
|  |  |  | args.put("start", DateUtils.addMinutes(date, 5)); | 
|---|
|  |  |  | // 根据开始时间获取距离最近的车辆信息,获取初期库存 | 
|---|
|  |  |  | sql = new StringBuffer(); | 
|---|
|  |  |  | args = new HashMap<>(); | 
|---|
|  |  |  | sql.append("SELECT "); | 
|---|
|  |  |  | sql.append("DEPOT_ID_, "); | 
|---|
|  |  |  | sql.append("SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("TYPE_, "); | 
|---|
|  |  |  | sql.append("CUR_STORAGE_, "); | 
|---|
|  |  |  | sql.append("FOOD_VARIETY_, "); | 
|---|
|  |  |  | sql.append("COMPLETE_TIME_ "); | 
|---|
|  |  |  | sql.append("FROM "); | 
|---|
|  |  |  | sql.append("( "); | 
|---|
|  |  |  | sql.append("SELECT "); | 
|---|
|  |  |  | sql.append("DEPOT_ID_, "); | 
|---|
|  |  |  | sql.append("SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("TYPE_, "); | 
|---|
|  |  |  | sql.append("CUR_STORAGE_, "); | 
|---|
|  |  |  | sql.append("COMPANY_ID_, "); | 
|---|
|  |  |  | sql.append("PROGRESS_, "); | 
|---|
|  |  |  | sql.append("RECORD_STATUS_, "); | 
|---|
|  |  |  | sql.append("DEPT_ID_, "); | 
|---|
|  |  |  | sql.append("FOOD_VARIETY_, "); | 
|---|
|  |  |  | sql.append("COMPLETE_TIME_ "); | 
|---|
|  |  |  | sql.append("FROM "); | 
|---|
|  |  |  | sql.append("d_inout_record "); | 
|---|
|  |  |  | sql.append("WHERE "); | 
|---|
|  |  |  | sql.append("COMPANY_ID_ =:companyId "); | 
|---|
|  |  |  | sql.append("AND PROGRESS_ =:progress "); | 
|---|
|  |  |  | sql.append("AND RECORD_STATUS_ <> :recordStatusDel "); | 
|---|
|  |  |  | sql.append("AND DEPT_ID_ = :deptId "); | 
|---|
|  |  |  | sql.append("AND COMPLETE_TIME_ < :start "); | 
|---|
|  |  |  | sql.append("ORDER BY COMPLETE_TIME_ DESC "); | 
|---|
|  |  |  | sql.append("LIMIT 9999 "); | 
|---|
|  |  |  | sql.append(") AS a "); | 
|---|
|  |  |  | sql.append("GROUP BY "); | 
|---|
|  |  |  | sql.append("a.DEPOT_ID_ "); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | log.debug("====执行SLQ2={}", sql.toString()); | 
|---|
|  |  |  | List<ReportInoutStorageData> list1 = this | 
|---|
|  |  |  | .getNamedParameterJdbcTemplate().query(sql.toString(), args, | 
|---|
|  |  |  | new ReportInoutStorageRowMapper()); | 
|---|
|  |  |  | args.put("deptId", deptId); | 
|---|
|  |  |  | args.put("companyId", ContextUtil.getCompanyId()); | 
|---|
|  |  |  | args.put("progress", InoutConstant.PROGRESS_RECORD); | 
|---|
|  |  |  | args.put("recordStatusDel", InoutConstant.RECORD_STATUS_DEL); | 
|---|
|  |  |  | // 获取距离开始时间久最近的数据,当前天的第五分钟 | 
|---|
|  |  |  | Date date = DateUtil.getCurZero(start); | 
|---|
|  |  |  | args.put("start", DateUtils.addMinutes(date, 5)); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 获取期末库存,获取距离结束时间最近的一条数据 | 
|---|
|  |  |  | sql = new StringBuffer(); | 
|---|
|  |  |  | args = new HashMap<>(); | 
|---|
|  |  |  | sql.append("SELECT "); | 
|---|
|  |  |  | sql.append("DEPOT_ID_, "); | 
|---|
|  |  |  | sql.append("SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("TYPE_, "); | 
|---|
|  |  |  | sql.append("CUR_STORAGE_, "); | 
|---|
|  |  |  | sql.append("FOOD_VARIETY_, "); | 
|---|
|  |  |  | sql.append("COMPLETE_TIME_ "); | 
|---|
|  |  |  | sql.append("FROM "); | 
|---|
|  |  |  | sql.append("( "); | 
|---|
|  |  |  | sql.append("SELECT "); | 
|---|
|  |  |  | sql.append("DEPOT_ID_, "); | 
|---|
|  |  |  | sql.append("SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("TYPE_, "); | 
|---|
|  |  |  | sql.append("CUR_STORAGE_, "); | 
|---|
|  |  |  | sql.append("COMPANY_ID_, "); | 
|---|
|  |  |  | sql.append("PROGRESS_, "); | 
|---|
|  |  |  | sql.append("RECORD_STATUS_, "); | 
|---|
|  |  |  | sql.append("DEPT_ID_, "); | 
|---|
|  |  |  | sql.append("FOOD_VARIETY_, "); | 
|---|
|  |  |  | sql.append("COMPLETE_TIME_ "); | 
|---|
|  |  |  | sql.append("FROM "); | 
|---|
|  |  |  | sql.append("d_inout_record "); | 
|---|
|  |  |  | sql.append("WHERE "); | 
|---|
|  |  |  | sql.append("COMPANY_ID_ =:companyId "); | 
|---|
|  |  |  | sql.append("AND PROGRESS_ =:progress "); | 
|---|
|  |  |  | sql.append("AND RECORD_STATUS_ <> :recordStatusDel "); | 
|---|
|  |  |  | sql.append("AND RECORD_STATUS_ <> :recordStatusError "); | 
|---|
|  |  |  | sql.append("AND DEPT_ID_ = :deptId "); | 
|---|
|  |  |  | sql.append("AND COMPLETE_TIME_ <:end "); | 
|---|
|  |  |  | sql.append("ORDER BY COMPLETE_TIME_ DESC "); | 
|---|
|  |  |  | sql.append("LIMIT 9999 "); | 
|---|
|  |  |  | sql.append(") AS a "); | 
|---|
|  |  |  | sql.append("GROUP BY "); | 
|---|
|  |  |  | sql.append("a.DEPOT_ID_ "); | 
|---|
|  |  |  | log.debug("====执行SLQ2={}", sql.toString()); | 
|---|
|  |  |  | List<ReportInoutStorageData> list1 = this | 
|---|
|  |  |  | .getNamedParameterJdbcTemplate().query(sql.toString(), args, | 
|---|
|  |  |  | new ReportInoutStorageRowMapper()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | args.put("deptId", deptId); | 
|---|
|  |  |  | args.put("companyId", ContextUtil.getCompanyId()); | 
|---|
|  |  |  | args.put("progress", InoutConstant.PROGRESS_RECORD); | 
|---|
|  |  |  | args.put("recordStatusDel", InoutConstant.RECORD_STATUS_DEL); | 
|---|
|  |  |  | args.put("end", DateUtil.getNextZero(end)); | 
|---|
|  |  |  | // 获取期末库存,获取距离结束时间最近的一条数据 | 
|---|
|  |  |  | sql = new StringBuffer(); | 
|---|
|  |  |  | args = new HashMap<>(); | 
|---|
|  |  |  | sql.append("SELECT "); | 
|---|
|  |  |  | sql.append("DEPOT_ID_, "); | 
|---|
|  |  |  | sql.append("SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("TYPE_, "); | 
|---|
|  |  |  | sql.append("CUR_STORAGE_, "); | 
|---|
|  |  |  | sql.append("FOOD_VARIETY_, "); | 
|---|
|  |  |  | sql.append("COMPLETE_TIME_ "); | 
|---|
|  |  |  | sql.append("FROM "); | 
|---|
|  |  |  | sql.append("( "); | 
|---|
|  |  |  | sql.append("SELECT "); | 
|---|
|  |  |  | sql.append("DEPOT_ID_, "); | 
|---|
|  |  |  | sql.append("SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("TYPE_, "); | 
|---|
|  |  |  | sql.append("CUR_STORAGE_, "); | 
|---|
|  |  |  | sql.append("COMPANY_ID_, "); | 
|---|
|  |  |  | sql.append("PROGRESS_, "); | 
|---|
|  |  |  | sql.append("RECORD_STATUS_, "); | 
|---|
|  |  |  | sql.append("DEPT_ID_, "); | 
|---|
|  |  |  | sql.append("FOOD_VARIETY_, "); | 
|---|
|  |  |  | sql.append("COMPLETE_TIME_ "); | 
|---|
|  |  |  | sql.append("FROM "); | 
|---|
|  |  |  | sql.append("d_inout_record "); | 
|---|
|  |  |  | sql.append("WHERE "); | 
|---|
|  |  |  | sql.append("COMPANY_ID_ =:companyId "); | 
|---|
|  |  |  | sql.append("AND PROGRESS_ =:progress "); | 
|---|
|  |  |  | sql.append("AND RECORD_STATUS_ <> :recordStatusDel "); | 
|---|
|  |  |  | sql.append("AND DEPT_ID_ = :deptId "); | 
|---|
|  |  |  | sql.append("AND COMPLETE_TIME_ <:end "); | 
|---|
|  |  |  | sql.append("ORDER BY COMPLETE_TIME_ DESC "); | 
|---|
|  |  |  | sql.append("LIMIT 9999 "); | 
|---|
|  |  |  | sql.append(") AS a "); | 
|---|
|  |  |  | sql.append("GROUP BY "); | 
|---|
|  |  |  | sql.append("a.DEPOT_ID_ "); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | log.debug("====执行SLQ3={}", sql.toString()); | 
|---|
|  |  |  | args.put("deptId", deptId); | 
|---|
|  |  |  | args.put("companyId", ContextUtil.getCompanyId()); | 
|---|
|  |  |  | args.put("progress", InoutConstant.PROGRESS_RECORD); | 
|---|
|  |  |  | args.put("recordStatusDel", InoutConstant.RECORD_STATUS_DEL); | 
|---|
|  |  |  | args.put("end", DateUtil.getNextZero(end)); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<ReportInoutStorageData> list2 = this | 
|---|
|  |  |  | .getNamedParameterJdbcTemplate().query(sql.toString(), args, | 
|---|
|  |  |  | new ReportInoutStorageRowMapper()); | 
|---|
|  |  |  | log.debug("====执行SLQ3={}", sql.toString()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 调整期末库存和初期库存以及合计信息 | 
|---|
|  |  |  | updateDepotReport(data, list1, list2); | 
|---|
|  |  |  | List<ReportInoutStorageData> list2 = this | 
|---|
|  |  |  | .getNamedParameterJdbcTemplate().query(sql.toString(), args, | 
|---|
|  |  |  | new ReportInoutStorageRowMapper()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return data; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 调整期末库存和初期库存以及合计信息 | 
|---|
|  |  |  | updateDepotReport(data, list1, list2); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void updateDepotReport(List<ReportInoutDepotData> data, | 
|---|
|  |  |  | List<ReportInoutStorageData> list1, | 
|---|
|  |  |  | List<ReportInoutStorageData> list2) { | 
|---|
|  |  |  | ReportInoutDepotData sum = new ReportInoutDepotData(); | 
|---|
|  |  |  | int index = 1; | 
|---|
|  |  |  | for (ReportInoutDepotData d : data) { | 
|---|
|  |  |  | // 设置序号 | 
|---|
|  |  |  | d.setRemarks(String.valueOf(index)); | 
|---|
|  |  |  | // 当前数据添加初期库存 | 
|---|
|  |  |  | d = this.updateDepotReportCqkc(d, list1); | 
|---|
|  |  |  | return data; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void updateDepotReport(List<ReportInoutDepotData> data, | 
|---|
|  |  |  | List<ReportInoutStorageData> list1, | 
|---|
|  |  |  | List<ReportInoutStorageData> list2) { | 
|---|
|  |  |  | ReportInoutDepotData sum = new ReportInoutDepotData(); | 
|---|
|  |  |  | int index = 1; | 
|---|
|  |  |  | for (ReportInoutDepotData d : data) { | 
|---|
|  |  |  | // 设置序号 | 
|---|
|  |  |  | d.setRemarks(String.valueOf(index)); | 
|---|
|  |  |  | // 当前数据添加初期库存 | 
|---|
|  |  |  | d = this.updateDepotReportCqkc(d, list1); | 
|---|
|  |  |  | //         d = this.updateDepotReportQmkc(d, list2); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 合计信息 | 
|---|
|  |  |  | sum.setCqkc(sum.getCqkc() + d.getCqkc()); | 
|---|
|  |  |  | sum.setInNum(sum.getInNum() + d.getInNum()); | 
|---|
|  |  |  | sum.setOverNum(sum.getOverNum() + d.getOverNum()); | 
|---|
|  |  |  | sum.setInSum(sum.getInSum() + d.getInSum()); | 
|---|
|  |  |  | sum.setOutNum(sum.getOutNum() + d.getOutNum()); | 
|---|
|  |  |  | sum.setLossNum(sum.getLossNum() + d.getLossNum()); | 
|---|
|  |  |  | sum.setOutSum(sum.getOutSum() + d.getOutSum()); | 
|---|
|  |  |  | sum.setQmkc(sum.getQmkc() + d.getQmkc()); | 
|---|
|  |  |  | index++; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | sum.setDepotName("合计"); | 
|---|
|  |  |  | data.add(sum); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 合计信息 | 
|---|
|  |  |  | sum.setCqkc(sum.getCqkc() + d.getCqkc()); | 
|---|
|  |  |  | sum.setInNum(sum.getInNum() + d.getInNum()); | 
|---|
|  |  |  | sum.setOverNum(sum.getOverNum() + d.getOverNum()); | 
|---|
|  |  |  | sum.setInSum(sum.getInSum() + d.getInSum()); | 
|---|
|  |  |  | sum.setOutNum(sum.getOutNum() + d.getOutNum()); | 
|---|
|  |  |  | sum.setLossNum(sum.getLossNum() + d.getLossNum()); | 
|---|
|  |  |  | sum.setOutSum(sum.getOutSum() + d.getOutSum()); | 
|---|
|  |  |  | sum.setQmkc(sum.getQmkc() + d.getQmkc()); | 
|---|
|  |  |  | index++; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | sum.setDepotName("合计"); | 
|---|
|  |  |  | data.add(sum); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 注意:如果期末库存没有临近数据,则表示获取最新的库存 | 
|---|
|  |  |  | private ReportInoutDepotData updateDepotReportQmkc(ReportInoutDepotData d, | 
|---|
|  |  |  | List<ReportInoutStorageData> list2) { | 
|---|
|  |  |  | ReportInoutStorageData inoutStorageData = null; | 
|---|
|  |  |  | for (ReportInoutStorageData storageData : list2) { | 
|---|
|  |  |  | if (storageData.getDepotId().equals(d.getDepotId())) { | 
|---|
|  |  |  | inoutStorageData = storageData; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (null == inoutStorageData) { | 
|---|
|  |  |  | Depot depot = depotService.getDepotById(ContextUtil.getCompanyId(), | 
|---|
|  |  |  | d.getDepotId()); | 
|---|
|  |  |  | d.setQmkc(null == depot.getStorageReal() ? 0.0 : depot | 
|---|
|  |  |  | .getStorageReal()); | 
|---|
|  |  |  | return d; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 注意:如果期末库存没有临近数据,则表示获取最新的库存 | 
|---|
|  |  |  | public ReportInoutDepotData updateDepotReportQmkc(ReportInoutDepotData d, | 
|---|
|  |  |  | List<ReportInoutStorageData> list2) { | 
|---|
|  |  |  | ReportInoutStorageData inoutStorageData = null; | 
|---|
|  |  |  | for (ReportInoutStorageData storageData : list2) { | 
|---|
|  |  |  | if (storageData.getDepotId().equals(d.getDepotId())) { | 
|---|
|  |  |  | inoutStorageData = storageData; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (null == inoutStorageData) { | 
|---|
|  |  |  | Depot depot = depotService.getDepotById(ContextUtil.getCompanyId(), | 
|---|
|  |  |  | d.getDepotId()); | 
|---|
|  |  |  | d.setQmkc(null == depot.getStorageReal() ? 0.0 : depot | 
|---|
|  |  |  | .getStorageReal()); | 
|---|
|  |  |  | return d; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | double cmkc = inoutStorageData.getCurStorage(); | 
|---|
|  |  |  | if (InoutConstant.TYPE_IN.equals(inoutStorageData.getType())) { | 
|---|
|  |  |  | cmkc = inoutStorageData.getCurStorage() | 
|---|
|  |  |  | + inoutStorageData.getSettleWeight(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (InoutConstant.TYPE_OUT.equals(inoutStorageData.getType())) { | 
|---|
|  |  |  | cmkc = inoutStorageData.getCurStorage() | 
|---|
|  |  |  | - inoutStorageData.getSettleWeight(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (Constant.LOSS_OVER_OVER.equals(inoutStorageData.getType())) { | 
|---|
|  |  |  | cmkc = inoutStorageData.getCurStorage() | 
|---|
|  |  |  | + inoutStorageData.getSettleWeight(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (Constant.LOSS_OVER_LOSS.equals(inoutStorageData.getType())) { | 
|---|
|  |  |  | cmkc = inoutStorageData.getCurStorage() | 
|---|
|  |  |  | - inoutStorageData.getSettleWeight(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | d.setQmkc(cmkc); | 
|---|
|  |  |  | double cmkc = inoutStorageData.getCurStorage(); | 
|---|
|  |  |  | if (InoutConstant.TYPE_IN.equals(inoutStorageData.getType())) { | 
|---|
|  |  |  | cmkc = inoutStorageData.getCurStorage() | 
|---|
|  |  |  | + inoutStorageData.getSettleWeight(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (InoutConstant.TYPE_OUT.equals(inoutStorageData.getType())) { | 
|---|
|  |  |  | cmkc = inoutStorageData.getCurStorage() | 
|---|
|  |  |  | - inoutStorageData.getSettleWeight(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (Constant.LOSS_OVER_OVER.equals(inoutStorageData.getType())) { | 
|---|
|  |  |  | cmkc = inoutStorageData.getCurStorage() | 
|---|
|  |  |  | + inoutStorageData.getSettleWeight(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (Constant.LOSS_OVER_LOSS.equals(inoutStorageData.getType())) { | 
|---|
|  |  |  | cmkc = inoutStorageData.getCurStorage() | 
|---|
|  |  |  | - inoutStorageData.getSettleWeight(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | d.setQmkc(cmkc); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return d; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return d; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private ReportInoutDepotData updateDepotReportCqkc(ReportInoutDepotData d, | 
|---|
|  |  |  | List<ReportInoutStorageData> list1) { | 
|---|
|  |  |  | ReportInoutStorageData inoutStorageData = null; | 
|---|
|  |  |  | for (ReportInoutStorageData storageData : list1) { | 
|---|
|  |  |  | if (storageData.getDepotId().equals(d.getDepotId())) { | 
|---|
|  |  |  | inoutStorageData = storageData; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (null == inoutStorageData) { | 
|---|
|  |  |  | d.setCqkc(0.0); | 
|---|
|  |  |  | return d; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | private ReportInoutDepotData updateDepotReportCqkc(ReportInoutDepotData d, | 
|---|
|  |  |  | List<ReportInoutStorageData> list1) { | 
|---|
|  |  |  | ReportInoutStorageData inoutStorageData = null; | 
|---|
|  |  |  | for (ReportInoutStorageData storageData : list1) { | 
|---|
|  |  |  | if (storageData.getDepotId().equals(d.getDepotId())) { | 
|---|
|  |  |  | inoutStorageData = storageData; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (null == inoutStorageData) { | 
|---|
|  |  |  | d.setCqkc(0.0); | 
|---|
|  |  |  | return d; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | double cqkc = inoutStorageData.getCurStorage(); | 
|---|
|  |  |  | if (InoutConstant.TYPE_IN.equals(inoutStorageData.getType())) { | 
|---|
|  |  |  | cqkc = inoutStorageData.getCurStorage() | 
|---|
|  |  |  | + inoutStorageData.getSettleWeight(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | double cqkc = inoutStorageData.getCurStorage(); | 
|---|
|  |  |  | if (InoutConstant.TYPE_IN.equals(inoutStorageData.getType())) { | 
|---|
|  |  |  | cqkc = inoutStorageData.getCurStorage() | 
|---|
|  |  |  | + inoutStorageData.getSettleWeight(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (InoutConstant.TYPE_OUT.equals(inoutStorageData.getType())) { | 
|---|
|  |  |  | cqkc = inoutStorageData.getCurStorage() | 
|---|
|  |  |  | - inoutStorageData.getSettleWeight(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (InoutConstant.TYPE_OUT.equals(inoutStorageData.getType())) { | 
|---|
|  |  |  | cqkc = inoutStorageData.getCurStorage() | 
|---|
|  |  |  | - inoutStorageData.getSettleWeight(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (Constant.LOSS_OVER_OVER.equals(inoutStorageData.getType())) { | 
|---|
|  |  |  | cqkc = inoutStorageData.getCurStorage() | 
|---|
|  |  |  | + inoutStorageData.getSettleWeight(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (Constant.LOSS_OVER_OVER.equals(inoutStorageData.getType())) { | 
|---|
|  |  |  | cqkc = inoutStorageData.getCurStorage() | 
|---|
|  |  |  | + inoutStorageData.getSettleWeight(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (Constant.LOSS_OVER_LOSS.equals(inoutStorageData.getType())) { | 
|---|
|  |  |  | cqkc = inoutStorageData.getCurStorage() | 
|---|
|  |  |  | - inoutStorageData.getSettleWeight(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | d.setCqkc(cqkc); | 
|---|
|  |  |  | if (StringUtils.isEmpty(d.getFoodVarietyName()) && d.getCqkc() > 0) { | 
|---|
|  |  |  | d.setFoodVarietyName(FoodVariety.getMsg(inoutStorageData | 
|---|
|  |  |  | .getFoodVariety())); | 
|---|
|  |  |  | d.setFoodVariety(inoutStorageData.getFoodVariety()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return d; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (Constant.LOSS_OVER_LOSS.equals(inoutStorageData.getType())) { | 
|---|
|  |  |  | cqkc = inoutStorageData.getCurStorage() | 
|---|
|  |  |  | - inoutStorageData.getSettleWeight(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | d.setCqkc(cqkc); | 
|---|
|  |  |  | if (StringUtils.isEmpty(d.getFoodVarietyName()) && d.getCqkc() > 0) { | 
|---|
|  |  |  | d.setFoodVarietyName(FoodVariety.getMsg(inoutStorageData | 
|---|
|  |  |  | .getFoodVariety())); | 
|---|
|  |  |  | d.setFoodVariety(inoutStorageData.getFoodVariety()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return d; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public List<ReportInoutDepotData> getFoodVarietyData( | 
|---|
|  |  |  | Map<String, Object> parameter) { | 
|---|
|  |  |  | public List<ReportInoutDepotData> getFoodVarietyData( | 
|---|
|  |  |  | Map<String, Object> parameter) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 时间条件必须 | 
|---|
|  |  |  | Date start = (Date) parameter.get("start"); | 
|---|
|  |  |  | Date end = (Date) parameter.get("end"); | 
|---|
|  |  |  | String deptId = (String) parameter.get("deptId"); | 
|---|
|  |  |  | // 时间条件必须 | 
|---|
|  |  |  | Date start = (Date) parameter.get("start"); | 
|---|
|  |  |  | Date end = (Date) parameter.get("end"); | 
|---|
|  |  |  | String deptId = (String) parameter.get("deptId"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (start == null || end == null) | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  | if (start == null || end == null) | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | StringBuffer sql = new StringBuffer(); | 
|---|
|  |  |  | sql.append("SELECT "); | 
|---|
|  |  |  | sql.append("'NONE' as foodType, "); | 
|---|
|  |  |  | sql.append("0 as cqkc, "); | 
|---|
|  |  |  | sql.append("0 as qmkc, "); | 
|---|
|  |  |  | sql.append("0 as inSum, "); | 
|---|
|  |  |  | sql.append("0 as outSum, "); | 
|---|
|  |  |  | sql.append("a.FOOD_VARIETY_ as foodVariety, "); | 
|---|
|  |  |  | sql.append("SUM( "); | 
|---|
|  |  |  | sql.append("IF ( "); | 
|---|
|  |  |  | sql.append("a.TYPE_ =:typeIn, "); | 
|---|
|  |  |  | sql.append("a.SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("0 "); | 
|---|
|  |  |  | sql.append(") "); | 
|---|
|  |  |  | sql.append(") AS inNum, "); | 
|---|
|  |  |  | sql.append("SUM( "); | 
|---|
|  |  |  | sql.append("IF ( "); | 
|---|
|  |  |  | sql.append("a.TYPE_ =:typeOut, "); | 
|---|
|  |  |  | sql.append("a.SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("0 "); | 
|---|
|  |  |  | sql.append(") "); | 
|---|
|  |  |  | sql.append(") AS outNum, "); | 
|---|
|  |  |  | sql.append("SUM( "); | 
|---|
|  |  |  | sql.append("IF ( "); | 
|---|
|  |  |  | sql.append("a.TYPE_ =:typeLoss, "); | 
|---|
|  |  |  | sql.append("a.SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("0 "); | 
|---|
|  |  |  | sql.append(") "); | 
|---|
|  |  |  | sql.append(") AS lossNum, "); | 
|---|
|  |  |  | sql.append("SUM( "); | 
|---|
|  |  |  | sql.append("IF ( "); | 
|---|
|  |  |  | sql.append("a.TYPE_ =:typeOver, "); | 
|---|
|  |  |  | sql.append("a.SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("0 "); | 
|---|
|  |  |  | sql.append(") "); | 
|---|
|  |  |  | sql.append(") AS overNum "); | 
|---|
|  |  |  | sql.append("FROM "); | 
|---|
|  |  |  | sql.append("( "); | 
|---|
|  |  |  | sql.append("SELECT "); | 
|---|
|  |  |  | sql.append("FOOD_VARIETY_, "); | 
|---|
|  |  |  | sql.append("SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("TYPE_, "); | 
|---|
|  |  |  | sql.append("CUR_STORAGE_ "); | 
|---|
|  |  |  | sql.append("FROM "); | 
|---|
|  |  |  | sql.append("d_inout_record "); | 
|---|
|  |  |  | sql.append("WHERE "); | 
|---|
|  |  |  | sql.append("COMPANY_ID_ =:companyId "); | 
|---|
|  |  |  | sql.append("AND PROGRESS_ =:progress "); | 
|---|
|  |  |  | sql.append("AND RECORD_STATUS_ <> :recordStatusDel "); | 
|---|
|  |  |  | sql.append("AND RECORD_STATUS_ <> :recordStatusError "); | 
|---|
|  |  |  | sql.append("AND COMPLETE_TIME_ >= :start "); | 
|---|
|  |  |  | sql.append("AND COMPLETE_TIME_ <= :end "); | 
|---|
|  |  |  | sql.append("AND DEPT_ID_  = :deptId "); | 
|---|
|  |  |  | sql.append("ORDER BY COMPLETE_TIME_ DESC "); | 
|---|
|  |  |  | sql.append(") a "); | 
|---|
|  |  |  | sql.append("GROUP BY a.FOOD_VARIETY_ "); | 
|---|
|  |  |  | StringBuffer sql = new StringBuffer(); | 
|---|
|  |  |  | sql.append("SELECT "); | 
|---|
|  |  |  | sql.append("'NONE' as foodType, "); | 
|---|
|  |  |  | sql.append("0 as cqkc, "); | 
|---|
|  |  |  | sql.append("0 as qmkc, "); | 
|---|
|  |  |  | sql.append("0 as inSum, "); | 
|---|
|  |  |  | sql.append("0 as outSum, "); | 
|---|
|  |  |  | sql.append("a.FOOD_VARIETY_ as foodVariety, "); | 
|---|
|  |  |  | sql.append("SUM( "); | 
|---|
|  |  |  | sql.append("IF ( "); | 
|---|
|  |  |  | sql.append("a.TYPE_ =:typeIn, "); | 
|---|
|  |  |  | sql.append("a.SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("0 "); | 
|---|
|  |  |  | sql.append(") "); | 
|---|
|  |  |  | sql.append(") AS inNum, "); | 
|---|
|  |  |  | sql.append("SUM( "); | 
|---|
|  |  |  | sql.append("IF ( "); | 
|---|
|  |  |  | sql.append("a.TYPE_ =:typeOut, "); | 
|---|
|  |  |  | sql.append("a.SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("0 "); | 
|---|
|  |  |  | sql.append(") "); | 
|---|
|  |  |  | sql.append(") AS outNum, "); | 
|---|
|  |  |  | sql.append("SUM( "); | 
|---|
|  |  |  | sql.append("IF ( "); | 
|---|
|  |  |  | sql.append("a.TYPE_ =:typeLoss, "); | 
|---|
|  |  |  | sql.append("a.SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("0 "); | 
|---|
|  |  |  | sql.append(") "); | 
|---|
|  |  |  | sql.append(") AS lossNum, "); | 
|---|
|  |  |  | sql.append("SUM( "); | 
|---|
|  |  |  | sql.append("IF ( "); | 
|---|
|  |  |  | sql.append("a.TYPE_ =:typeOver, "); | 
|---|
|  |  |  | sql.append("a.SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("0 "); | 
|---|
|  |  |  | sql.append(") "); | 
|---|
|  |  |  | sql.append(") AS overNum "); | 
|---|
|  |  |  | sql.append("FROM "); | 
|---|
|  |  |  | sql.append("( "); | 
|---|
|  |  |  | sql.append("SELECT "); | 
|---|
|  |  |  | sql.append("FOOD_VARIETY_, "); | 
|---|
|  |  |  | sql.append("SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("TYPE_, "); | 
|---|
|  |  |  | sql.append("CUR_STORAGE_ "); | 
|---|
|  |  |  | sql.append("FROM "); | 
|---|
|  |  |  | sql.append("d_inout_record "); | 
|---|
|  |  |  | sql.append("WHERE "); | 
|---|
|  |  |  | sql.append("COMPANY_ID_ =:companyId "); | 
|---|
|  |  |  | sql.append("AND PROGRESS_ =:progress "); | 
|---|
|  |  |  | sql.append("AND RECORD_STATUS_ <> :recordStatusDel "); | 
|---|
|  |  |  | sql.append("AND COMPLETE_TIME_ >= :start "); | 
|---|
|  |  |  | sql.append("AND COMPLETE_TIME_ <= :end "); | 
|---|
|  |  |  | sql.append("AND DEPT_ID_  = :deptId "); | 
|---|
|  |  |  | sql.append("ORDER BY COMPLETE_TIME_ DESC "); | 
|---|
|  |  |  | sql.append(") a "); | 
|---|
|  |  |  | sql.append("GROUP BY a.FOOD_VARIETY_ "); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Map<String, Object> args = new HashMap<>(); | 
|---|
|  |  |  | args.put("deptId", deptId); | 
|---|
|  |  |  | args.put("companyId", ContextUtil.getCompanyId()); | 
|---|
|  |  |  | args.put("typeIn", InoutConstant.TYPE_IN); | 
|---|
|  |  |  | args.put("typeOut", InoutConstant.TYPE_OUT); | 
|---|
|  |  |  | args.put("typeLoss", Constant.LOSS_OVER_LOSS); | 
|---|
|  |  |  | args.put("typeOver", Constant.LOSS_OVER_OVER); | 
|---|
|  |  |  | args.put("progress", InoutConstant.PROGRESS_RECORD); | 
|---|
|  |  |  | args.put("recordStatusDel", InoutConstant.RECORD_STATUS_DEL); | 
|---|
|  |  |  | args.put("start", DateUtil.getCurZero(start)); | 
|---|
|  |  |  | args.put("end", DateUtil.getNextZero(end)); | 
|---|
|  |  |  | Map<String, Object> args = new HashMap<>(); | 
|---|
|  |  |  | args.put("deptId", deptId); | 
|---|
|  |  |  | args.put("companyId", ContextUtil.getCompanyId()); | 
|---|
|  |  |  | args.put("typeIn", InoutConstant.TYPE_IN); | 
|---|
|  |  |  | args.put("typeOut", InoutConstant.TYPE_OUT); | 
|---|
|  |  |  | args.put("typeLoss", Constant.LOSS_OVER_LOSS); | 
|---|
|  |  |  | args.put("typeOver", Constant.LOSS_OVER_OVER); | 
|---|
|  |  |  | args.put("progress", InoutConstant.PROGRESS_RECORD); | 
|---|
|  |  |  | args.put("recordStatusDel", InoutConstant.RECORD_STATUS_DEL); | 
|---|
|  |  |  | args.put("start", DateUtil.getCurZero(start)); | 
|---|
|  |  |  | args.put("end", DateUtil.getNextZero(end)); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | log.debug("====执行SLQ1={},参数={}", sql.toString(),args); | 
|---|
|  |  |  | log.debug("====执行SLQ1={},参数={}", sql.toString(), args); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<ReportInoutDepotData> data = this.getNamedParameterJdbcTemplate() | 
|---|
|  |  |  | .query(sql.toString(), args, new ReportFoodVarietyRowMapper()); | 
|---|
|  |  |  | List<ReportInoutDepotData> data = this.getNamedParameterJdbcTemplate() | 
|---|
|  |  |  | .query(sql.toString(), args, new ReportFoodVarietyRowMapper()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 根据开始时间获取距离最近的车辆信息,获取初期库存 | 
|---|
|  |  |  | sql = new StringBuffer(); | 
|---|
|  |  |  | args = new HashMap<>(); | 
|---|
|  |  |  | sql.append("SELECT "); | 
|---|
|  |  |  | sql.append("DEPOT_ID_, "); | 
|---|
|  |  |  | sql.append("SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("TYPE_, "); | 
|---|
|  |  |  | sql.append("CUR_STORAGE_, "); | 
|---|
|  |  |  | sql.append("FOOD_VARIETY_, "); | 
|---|
|  |  |  | sql.append("COMPLETE_TIME_ "); | 
|---|
|  |  |  | sql.append("FROM "); | 
|---|
|  |  |  | sql.append("( "); | 
|---|
|  |  |  | sql.append("SELECT "); | 
|---|
|  |  |  | sql.append("DEPOT_ID_, "); | 
|---|
|  |  |  | sql.append("SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("TYPE_, "); | 
|---|
|  |  |  | sql.append("CUR_STORAGE_, "); | 
|---|
|  |  |  | sql.append("COMPANY_ID_, "); | 
|---|
|  |  |  | sql.append("PROGRESS_, "); | 
|---|
|  |  |  | sql.append("RECORD_STATUS_, "); | 
|---|
|  |  |  | sql.append("DEPT_ID_, "); | 
|---|
|  |  |  | sql.append("FOOD_VARIETY_, "); | 
|---|
|  |  |  | sql.append("COMPLETE_TIME_ "); | 
|---|
|  |  |  | sql.append("FROM "); | 
|---|
|  |  |  | sql.append("d_inout_record "); | 
|---|
|  |  |  | sql.append("WHERE "); | 
|---|
|  |  |  | sql.append("COMPANY_ID_ =:companyId "); | 
|---|
|  |  |  | sql.append("AND PROGRESS_ =:progress "); | 
|---|
|  |  |  | sql.append("AND RECORD_STATUS_ <> :recordStatusDel "); | 
|---|
|  |  |  | sql.append("AND RECORD_STATUS_ <> :recordStatusError "); | 
|---|
|  |  |  | sql.append("AND DEPT_ID_ = :deptId "); | 
|---|
|  |  |  | sql.append("AND COMPLETE_TIME_ < :start "); | 
|---|
|  |  |  | sql.append("ORDER BY COMPLETE_TIME_ DESC "); | 
|---|
|  |  |  | sql.append("LIMIT 9999 "); | 
|---|
|  |  |  | sql.append(") AS a "); | 
|---|
|  |  |  | sql.append("GROUP BY "); | 
|---|
|  |  |  | sql.append("a.DEPOT_ID_ "); | 
|---|
|  |  |  | // 根据开始时间获取距离最近的车辆信息,获取初期库存 | 
|---|
|  |  |  | sql = new StringBuffer(); | 
|---|
|  |  |  | args = new HashMap<>(); | 
|---|
|  |  |  | sql.append("SELECT "); | 
|---|
|  |  |  | sql.append("DEPOT_ID_, "); | 
|---|
|  |  |  | sql.append("SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("TYPE_, "); | 
|---|
|  |  |  | sql.append("CUR_STORAGE_, "); | 
|---|
|  |  |  | sql.append("FOOD_VARIETY_, "); | 
|---|
|  |  |  | sql.append("COMPLETE_TIME_ "); | 
|---|
|  |  |  | sql.append("FROM "); | 
|---|
|  |  |  | sql.append("( "); | 
|---|
|  |  |  | sql.append("SELECT "); | 
|---|
|  |  |  | sql.append("DEPOT_ID_, "); | 
|---|
|  |  |  | sql.append("SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("TYPE_, "); | 
|---|
|  |  |  | sql.append("CUR_STORAGE_, "); | 
|---|
|  |  |  | sql.append("COMPANY_ID_, "); | 
|---|
|  |  |  | sql.append("PROGRESS_, "); | 
|---|
|  |  |  | sql.append("RECORD_STATUS_, "); | 
|---|
|  |  |  | sql.append("DEPT_ID_, "); | 
|---|
|  |  |  | sql.append("FOOD_VARIETY_, "); | 
|---|
|  |  |  | sql.append("COMPLETE_TIME_ "); | 
|---|
|  |  |  | sql.append("FROM "); | 
|---|
|  |  |  | sql.append("d_inout_record "); | 
|---|
|  |  |  | sql.append("WHERE "); | 
|---|
|  |  |  | sql.append("COMPANY_ID_ =:companyId "); | 
|---|
|  |  |  | sql.append("AND PROGRESS_ =:progress "); | 
|---|
|  |  |  | sql.append("AND RECORD_STATUS_ <> :recordStatusDel "); | 
|---|
|  |  |  | sql.append("AND DEPT_ID_ = :deptId "); | 
|---|
|  |  |  | sql.append("AND COMPLETE_TIME_ < :start "); | 
|---|
|  |  |  | sql.append("ORDER BY COMPLETE_TIME_ DESC "); | 
|---|
|  |  |  | sql.append("LIMIT 9999 "); | 
|---|
|  |  |  | sql.append(") AS a "); | 
|---|
|  |  |  | sql.append("GROUP BY "); | 
|---|
|  |  |  | sql.append("a.DEPOT_ID_ "); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | args.put("deptId", deptId); | 
|---|
|  |  |  | args.put("companyId", ContextUtil.getCompanyId()); | 
|---|
|  |  |  | args.put("progress", InoutConstant.PROGRESS_RECORD); | 
|---|
|  |  |  | args.put("recordStatusDel", InoutConstant.RECORD_STATUS_DEL); | 
|---|
|  |  |  | // 获取距离开始时间久最近的数据,当前天的第五分钟 | 
|---|
|  |  |  | Date date = DateUtil.getCurZero(start); | 
|---|
|  |  |  | args.put("start", DateUtils.addMinutes(date, 5)); | 
|---|
|  |  |  | args.put("deptId", deptId); | 
|---|
|  |  |  | args.put("companyId", ContextUtil.getCompanyId()); | 
|---|
|  |  |  | args.put("progress", InoutConstant.PROGRESS_RECORD); | 
|---|
|  |  |  | args.put("recordStatusDel", InoutConstant.RECORD_STATUS_DEL); | 
|---|
|  |  |  | // 获取距离开始时间久最近的数据,当前天的第五分钟 | 
|---|
|  |  |  | Date date = DateUtil.getCurZero(start); | 
|---|
|  |  |  | args.put("start", DateUtils.addMinutes(date, 5)); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | log.debug("====执行SLQ2={}", sql.toString()); | 
|---|
|  |  |  | log.debug("====执行SLQ2={}", sql.toString()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<ReportInoutStorageData> list1 = this | 
|---|
|  |  |  | .getNamedParameterJdbcTemplate().query(sql.toString(), args, | 
|---|
|  |  |  | new ReportInoutStorageRowMapper()); | 
|---|
|  |  |  | List<ReportInoutStorageData> list1 = this | 
|---|
|  |  |  | .getNamedParameterJdbcTemplate().query(sql.toString(), args, | 
|---|
|  |  |  | new ReportInoutStorageRowMapper()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 获取期末库存,获取距离结束时间最近的一条数据 | 
|---|
|  |  |  | sql = new StringBuffer(); | 
|---|
|  |  |  | args = new HashMap<>(); | 
|---|
|  |  |  | sql.append("SELECT "); | 
|---|
|  |  |  | sql.append("DEPOT_ID_, "); | 
|---|
|  |  |  | sql.append("SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("TYPE_, "); | 
|---|
|  |  |  | sql.append("CUR_STORAGE_, "); | 
|---|
|  |  |  | sql.append("FOOD_VARIETY_, "); | 
|---|
|  |  |  | sql.append("COMPLETE_TIME_ "); | 
|---|
|  |  |  | sql.append("FROM "); | 
|---|
|  |  |  | sql.append("( "); | 
|---|
|  |  |  | sql.append("SELECT "); | 
|---|
|  |  |  | sql.append("DEPOT_ID_, "); | 
|---|
|  |  |  | sql.append("SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("TYPE_, "); | 
|---|
|  |  |  | sql.append("CUR_STORAGE_, "); | 
|---|
|  |  |  | sql.append("COMPANY_ID_, "); | 
|---|
|  |  |  | sql.append("PROGRESS_, "); | 
|---|
|  |  |  | sql.append("RECORD_STATUS_, "); | 
|---|
|  |  |  | sql.append("DEPT_ID_, "); | 
|---|
|  |  |  | sql.append("FOOD_VARIETY_, "); | 
|---|
|  |  |  | sql.append("COMPLETE_TIME_ "); | 
|---|
|  |  |  | sql.append("FROM "); | 
|---|
|  |  |  | sql.append("d_inout_record "); | 
|---|
|  |  |  | sql.append("WHERE "); | 
|---|
|  |  |  | sql.append("COMPANY_ID_ =:companyId "); | 
|---|
|  |  |  | sql.append("AND PROGRESS_ =:progress "); | 
|---|
|  |  |  | sql.append("AND RECORD_STATUS_ <> :recordStatusDel "); | 
|---|
|  |  |  | sql.append("AND RECORD_STATUS_ <> :recordStatusError "); | 
|---|
|  |  |  | sql.append("AND DEPT_ID_ = :deptId "); | 
|---|
|  |  |  | sql.append("AND COMPLETE_TIME_ < :end "); | 
|---|
|  |  |  | sql.append("ORDER BY COMPLETE_TIME_ DESC "); | 
|---|
|  |  |  | sql.append("LIMIT 9999 "); | 
|---|
|  |  |  | sql.append(") AS a "); | 
|---|
|  |  |  | sql.append("GROUP BY "); | 
|---|
|  |  |  | sql.append("a.DEPOT_ID_ "); | 
|---|
|  |  |  | // 获取期末库存,获取距离结束时间最近的一条数据 | 
|---|
|  |  |  | sql = new StringBuffer(); | 
|---|
|  |  |  | args = new HashMap<>(); | 
|---|
|  |  |  | sql.append("SELECT "); | 
|---|
|  |  |  | sql.append("DEPOT_ID_, "); | 
|---|
|  |  |  | sql.append("SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("TYPE_, "); | 
|---|
|  |  |  | sql.append("CUR_STORAGE_, "); | 
|---|
|  |  |  | sql.append("FOOD_VARIETY_, "); | 
|---|
|  |  |  | sql.append("COMPLETE_TIME_ "); | 
|---|
|  |  |  | sql.append("FROM "); | 
|---|
|  |  |  | sql.append("( "); | 
|---|
|  |  |  | sql.append("SELECT "); | 
|---|
|  |  |  | sql.append("DEPOT_ID_, "); | 
|---|
|  |  |  | sql.append("SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("TYPE_, "); | 
|---|
|  |  |  | sql.append("CUR_STORAGE_, "); | 
|---|
|  |  |  | sql.append("COMPANY_ID_, "); | 
|---|
|  |  |  | sql.append("PROGRESS_, "); | 
|---|
|  |  |  | sql.append("RECORD_STATUS_, "); | 
|---|
|  |  |  | sql.append("DEPT_ID_, "); | 
|---|
|  |  |  | sql.append("FOOD_VARIETY_, "); | 
|---|
|  |  |  | sql.append("COMPLETE_TIME_ "); | 
|---|
|  |  |  | sql.append("FROM "); | 
|---|
|  |  |  | sql.append("d_inout_record "); | 
|---|
|  |  |  | sql.append("WHERE "); | 
|---|
|  |  |  | sql.append("COMPANY_ID_ =:companyId "); | 
|---|
|  |  |  | sql.append("AND PROGRESS_ =:progress "); | 
|---|
|  |  |  | sql.append("AND RECORD_STATUS_ <> :recordStatusDel "); | 
|---|
|  |  |  | sql.append("AND DEPT_ID_ = :deptId "); | 
|---|
|  |  |  | sql.append("AND COMPLETE_TIME_ < :end "); | 
|---|
|  |  |  | sql.append("ORDER BY COMPLETE_TIME_ DESC "); | 
|---|
|  |  |  | sql.append("LIMIT 9999 "); | 
|---|
|  |  |  | sql.append(") AS a "); | 
|---|
|  |  |  | sql.append("GROUP BY "); | 
|---|
|  |  |  | sql.append("a.DEPOT_ID_ "); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | args.put("deptId", deptId); | 
|---|
|  |  |  | args.put("companyId", ContextUtil.getCompanyId()); | 
|---|
|  |  |  | args.put("progress", InoutConstant.PROGRESS_RECORD); | 
|---|
|  |  |  | args.put("recordStatusDel", InoutConstant.RECORD_STATUS_DEL); | 
|---|
|  |  |  | args.put("end", DateUtil.getNextZero(end)); | 
|---|
|  |  |  | args.put("deptId", deptId); | 
|---|
|  |  |  | args.put("companyId", ContextUtil.getCompanyId()); | 
|---|
|  |  |  | args.put("progress", InoutConstant.PROGRESS_RECORD); | 
|---|
|  |  |  | args.put("recordStatusDel", InoutConstant.RECORD_STATUS_DEL); | 
|---|
|  |  |  | args.put("end", DateUtil.getNextZero(end)); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | log.debug("====执行SLQ3={}", sql.toString()); | 
|---|
|  |  |  | log.debug("====执行SLQ3={}", sql.toString()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<ReportInoutStorageData> list2 = this | 
|---|
|  |  |  | .getNamedParameterJdbcTemplate().query(sql.toString(), args, | 
|---|
|  |  |  | new ReportInoutStorageRowMapper()); | 
|---|
|  |  |  | List<ReportInoutStorageData> list2 = this | 
|---|
|  |  |  | .getNamedParameterJdbcTemplate().query(sql.toString(), args, | 
|---|
|  |  |  | new ReportInoutStorageRowMapper()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return updateFoodVarietySum(data, list1, list2); | 
|---|
|  |  |  | return updateFoodVarietySum(data, list1, list2); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @SuppressWarnings("unused") | 
|---|
|  |  |  | private List<ReportInoutDepotData> updateFoodVarietySum( | 
|---|
|  |  |  | List<ReportInoutDepotData> datas, | 
|---|
|  |  |  | List<ReportInoutStorageData> list1, | 
|---|
|  |  |  | List<ReportInoutStorageData> list2) { | 
|---|
|  |  |  | @SuppressWarnings("unused") | 
|---|
|  |  |  | private List<ReportInoutDepotData> updateFoodVarietySum( | 
|---|
|  |  |  | List<ReportInoutDepotData> datas, | 
|---|
|  |  |  | List<ReportInoutStorageData> list1, | 
|---|
|  |  |  | List<ReportInoutStorageData> list2) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 调整初期库存 | 
|---|
|  |  |  | Map<String, Double> map1 = new HashMap<>(); | 
|---|
|  |  |  | if (null != list1) { | 
|---|
|  |  |  | for (ReportInoutStorageData data : list1) { | 
|---|
|  |  |  | if (null == map1.get(data.getFoodVariety())) { | 
|---|
|  |  |  | map1.put(data.getFoodVariety(), 0.0); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | double cqkc = data.getCurStorage(); | 
|---|
|  |  |  | if (InoutConstant.TYPE_IN.equals(data.getType())) { | 
|---|
|  |  |  | cqkc = data.getCurStorage() + data.getSettleWeight(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (InoutConstant.TYPE_OUT.equals(data.getType())) { | 
|---|
|  |  |  | cqkc = data.getCurStorage() - data.getSettleWeight(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (Constant.LOSS_OVER_OVER.equals(data.getType())) { | 
|---|
|  |  |  | cqkc = data.getCurStorage() + data.getSettleWeight(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (Constant.LOSS_OVER_LOSS.equals(data.getType())) { | 
|---|
|  |  |  | cqkc = data.getCurStorage() - data.getSettleWeight(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | map1.put(data.getFoodVariety(), map1.get(data.getFoodVariety()) | 
|---|
|  |  |  | + cqkc); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 调整初期库存 | 
|---|
|  |  |  | Map<String, Double> map1 = new HashMap<>(); | 
|---|
|  |  |  | if (null != list1) { | 
|---|
|  |  |  | for (ReportInoutStorageData data : list1) { | 
|---|
|  |  |  | if (null == map1.get(data.getFoodVariety())) { | 
|---|
|  |  |  | map1.put(data.getFoodVariety(), 0.0); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | double cqkc = data.getCurStorage(); | 
|---|
|  |  |  | if (InoutConstant.TYPE_IN.equals(data.getType())) { | 
|---|
|  |  |  | cqkc = data.getCurStorage() + data.getSettleWeight(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (InoutConstant.TYPE_OUT.equals(data.getType())) { | 
|---|
|  |  |  | cqkc = data.getCurStorage() - data.getSettleWeight(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (Constant.LOSS_OVER_OVER.equals(data.getType())) { | 
|---|
|  |  |  | cqkc = data.getCurStorage() + data.getSettleWeight(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (Constant.LOSS_OVER_LOSS.equals(data.getType())) { | 
|---|
|  |  |  | cqkc = data.getCurStorage() - data.getSettleWeight(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | map1.put(data.getFoodVariety(), map1.get(data.getFoodVariety()) | 
|---|
|  |  |  | + cqkc); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 调整期末库存 | 
|---|
|  |  |  | Map<String, Double> map2 = new HashMap<String, Double>(); | 
|---|
|  |  |  | if (null != list2) { | 
|---|
|  |  |  | Depot depot = null; | 
|---|
|  |  |  | for (ReportInoutStorageData data : list2) { | 
|---|
|  |  |  | if (null == map2.get(data.getFoodVariety())) { | 
|---|
|  |  |  | map2.put(data.getFoodVariety(), 0.0); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | double cmkc = data.getCurStorage(); | 
|---|
|  |  |  | if (InoutConstant.TYPE_IN.equals(data.getType())) { | 
|---|
|  |  |  | cmkc = data.getCurStorage() + data.getSettleWeight(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (InoutConstant.TYPE_OUT.equals(data.getType())) { | 
|---|
|  |  |  | cmkc = data.getCurStorage() - data.getSettleWeight(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (Constant.LOSS_OVER_OVER.equals(data.getType())) { | 
|---|
|  |  |  | cmkc = data.getCurStorage() + data.getSettleWeight(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (Constant.LOSS_OVER_LOSS.equals(data.getType())) { | 
|---|
|  |  |  | cmkc = data.getCurStorage() - data.getSettleWeight(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | map2.put(data.getFoodVariety(), map2.get(data.getFoodVariety()) | 
|---|
|  |  |  | + cmkc); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 调整期末库存 | 
|---|
|  |  |  | Map<String, Double> map2 = new HashMap<String, Double>(); | 
|---|
|  |  |  | if (null != list2) { | 
|---|
|  |  |  | Depot depot = null; | 
|---|
|  |  |  | for (ReportInoutStorageData data : list2) { | 
|---|
|  |  |  | if (null == map2.get(data.getFoodVariety())) { | 
|---|
|  |  |  | map2.put(data.getFoodVariety(), 0.0); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | double cmkc = data.getCurStorage(); | 
|---|
|  |  |  | if (InoutConstant.TYPE_IN.equals(data.getType())) { | 
|---|
|  |  |  | cmkc = data.getCurStorage() + data.getSettleWeight(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (InoutConstant.TYPE_OUT.equals(data.getType())) { | 
|---|
|  |  |  | cmkc = data.getCurStorage() - data.getSettleWeight(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (Constant.LOSS_OVER_OVER.equals(data.getType())) { | 
|---|
|  |  |  | cmkc = data.getCurStorage() + data.getSettleWeight(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (Constant.LOSS_OVER_LOSS.equals(data.getType())) { | 
|---|
|  |  |  | cmkc = data.getCurStorage() - data.getSettleWeight(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | map2.put(data.getFoodVariety(), map2.get(data.getFoodVariety()) | 
|---|
|  |  |  | + cmkc); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //判断初期库存粮食种类数是否跟出入库粮食种类数相等 | 
|---|
|  |  |  | if(datas.size() != map1.size()){ | 
|---|
|  |  |  | ReportInoutDepotData report; | 
|---|
|  |  |  | for (String s : map1.keySet()) { | 
|---|
|  |  |  | boolean flag = true; | 
|---|
|  |  |  | for (ReportInoutDepotData data : datas) { | 
|---|
|  |  |  | if(StringUtils.isNotEmpty(data.getFoodVariety()) && data.getFoodVariety().equals(s)){ | 
|---|
|  |  |  | flag = false; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (flag){ | 
|---|
|  |  |  | report = new ReportInoutDepotData(); | 
|---|
|  |  |  | report.setFoodType("NONE"); | 
|---|
|  |  |  | report.setFoodVariety(s); | 
|---|
|  |  |  | report.setFoodVarietyName(FoodVariety.getMsg(s)); | 
|---|
|  |  |  | datas.add(report); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //判断初期库存粮食种类数是否跟出入库粮食种类数相等 | 
|---|
|  |  |  | if (datas.size() != map1.size()) { | 
|---|
|  |  |  | ReportInoutDepotData report; | 
|---|
|  |  |  | for (String s : map1.keySet()) { | 
|---|
|  |  |  | boolean flag = true; | 
|---|
|  |  |  | for (ReportInoutDepotData data : datas) { | 
|---|
|  |  |  | if (StringUtils.isNotEmpty(data.getFoodVariety()) && data.getFoodVariety().equals(s)) { | 
|---|
|  |  |  | flag = false; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (flag) { | 
|---|
|  |  |  | report = new ReportInoutDepotData(); | 
|---|
|  |  |  | report.setFoodType("NONE"); | 
|---|
|  |  |  | report.setFoodVariety(s); | 
|---|
|  |  |  | report.setFoodVarietyName(FoodVariety.getMsg(s)); | 
|---|
|  |  |  | datas.add(report); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (null == datas || datas.isEmpty()){ | 
|---|
|  |  |  | return datas; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (null == datas || datas.isEmpty()) { | 
|---|
|  |  |  | return datas; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ReportInoutDepotData sum = new ReportInoutDepotData(); | 
|---|
|  |  |  | sum.setFoodVarietyName("合计"); | 
|---|
|  |  |  | int index = 1; | 
|---|
|  |  |  | for (ReportInoutDepotData data : datas) { | 
|---|
|  |  |  | if(StringUtils.isNotEmpty(data.getFoodVariety())){ | 
|---|
|  |  |  | // 设置序号 | 
|---|
|  |  |  | data.setRemarks(String.valueOf(index)); | 
|---|
|  |  |  | index++; | 
|---|
|  |  |  | data.setOutSum(data.getOutNum() + data.getLossNum()); | 
|---|
|  |  |  | data.setInSum(data.getInNum() + data.getOverNum()); | 
|---|
|  |  |  | ReportInoutDepotData sum = new ReportInoutDepotData(); | 
|---|
|  |  |  | sum.setFoodVarietyName("合计"); | 
|---|
|  |  |  | int index = 1; | 
|---|
|  |  |  | for (ReportInoutDepotData data : datas) { | 
|---|
|  |  |  | if (StringUtils.isNotEmpty(data.getFoodVariety())) { | 
|---|
|  |  |  | // 设置序号 | 
|---|
|  |  |  | data.setRemarks(String.valueOf(index)); | 
|---|
|  |  |  | index++; | 
|---|
|  |  |  | data.setOutSum(data.getOutNum() + data.getLossNum()); | 
|---|
|  |  |  | data.setInSum(data.getInNum() + data.getOverNum()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 调整期末库存和期初库存 | 
|---|
|  |  |  | data.setCqkc(map1.get(data.getFoodVariety()) == null ? 0.0:map1.get(data.getFoodVariety())); | 
|---|
|  |  |  | data.setQmkc(map2.get(data.getFoodVariety()) == null ? 0.0:map2.get(data.getFoodVariety())); | 
|---|
|  |  |  | // 调整期末库存和期初库存 | 
|---|
|  |  |  | data.setCqkc(map1.get(data.getFoodVariety()) == null ? 0.0 : map1.get(data.getFoodVariety())); | 
|---|
|  |  |  | data.setQmkc(map2.get(data.getFoodVariety()) == null ? 0.0 : map2.get(data.getFoodVariety())); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 初期库存 | 
|---|
|  |  |  | sum.setCqkc(sum.getCqkc() + data.getCqkc()); | 
|---|
|  |  |  | // 期末库存 | 
|---|
|  |  |  | sum.setQmkc(sum.getQmkc() + data.getQmkc()); | 
|---|
|  |  |  | sum.setInNum(sum.getInNum() + data.getInNum()); | 
|---|
|  |  |  | sum.setOutNum(sum.getOutNum() + data.getOutNum()); | 
|---|
|  |  |  | sum.setInSum(sum.getInSum() + data.getInSum()); | 
|---|
|  |  |  | sum.setOutSum(sum.getOutSum() + data.getOutSum()); | 
|---|
|  |  |  | sum.setLossNum(sum.getLossNum() + data.getLossNum()); | 
|---|
|  |  |  | sum.setOverNum(sum.getOverNum() + data.getOverNum()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | datas.add(sum); | 
|---|
|  |  |  | // 初期库存 | 
|---|
|  |  |  | sum.setCqkc(sum.getCqkc() + data.getCqkc()); | 
|---|
|  |  |  | // 期末库存 | 
|---|
|  |  |  | sum.setQmkc(sum.getQmkc() + data.getQmkc()); | 
|---|
|  |  |  | sum.setInNum(sum.getInNum() + data.getInNum()); | 
|---|
|  |  |  | sum.setOutNum(sum.getOutNum() + data.getOutNum()); | 
|---|
|  |  |  | sum.setInSum(sum.getInSum() + data.getInSum()); | 
|---|
|  |  |  | sum.setOutSum(sum.getOutSum() + data.getOutSum()); | 
|---|
|  |  |  | sum.setLossNum(sum.getLossNum() + data.getLossNum()); | 
|---|
|  |  |  | sum.setOverNum(sum.getOverNum() + data.getOverNum()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | datas.add(sum); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return datas; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return datas; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public List<ReportInoutShipData> listShipDetail(Map<String, Object> parameter) { | 
|---|
|  |  |  | public List<ReportInoutShipData> listShipDetail(Map<String, Object> parameter) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 时间条件必须 | 
|---|
|  |  |  | Date start = (Date) parameter.get("start"); | 
|---|
|  |  |  | Date end = (Date) parameter.get("end"); | 
|---|
|  |  |  | if (start == null || end == null){ | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 时间条件必须 | 
|---|
|  |  |  | Date start = (Date) parameter.get("start"); | 
|---|
|  |  |  | Date end = (Date) parameter.get("end"); | 
|---|
|  |  |  | if (start == null || end == null) { | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | StringBuffer sql = new StringBuffer(); | 
|---|
|  |  |  | sql.append("SELECT "); | 
|---|
|  |  |  | sql.append("ID_, "); | 
|---|
|  |  |  | sql.append("PLATE_NUM_, "); | 
|---|
|  |  |  | sql.append("CUSTOMER_ID_, "); | 
|---|
|  |  |  | sql.append("CUSTOMER_NAME_, "); | 
|---|
|  |  |  | sql.append("FOOD_VARIETY_, "); | 
|---|
|  |  |  | sql.append("DEPOT_ID_, "); | 
|---|
|  |  |  | sql.append("TYPE_, "); | 
|---|
|  |  |  | sql.append("PROGRESS_, "); | 
|---|
|  |  |  | sql.append("FULL_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("EMPTY_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("NET_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("DE_SUM_, "); | 
|---|
|  |  |  | sql.append("SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("COMPLETE_TIME_ "); | 
|---|
|  |  |  | sql.append("FROM "); | 
|---|
|  |  |  | sql.append("d_inout_record "); | 
|---|
|  |  |  | sql.append("WHERE "); | 
|---|
|  |  |  | sql.append("TRANS_TYPE_ =:transType "); | 
|---|
|  |  |  | sql.append("AND RECORD_STATUS_ <> :recordStatusDel "); | 
|---|
|  |  |  | sql.append("AND RECORD_STATUS_ <> :recordStatusError "); | 
|---|
|  |  |  | sql.append("AND TYPE_ <> :typeNone "); | 
|---|
|  |  |  | sql.append("AND TYPE_ <> :typeLoss "); | 
|---|
|  |  |  | sql.append("AND TYPE_ <> :typeOver "); | 
|---|
|  |  |  | sql.append("AND COMPANY_ID_ =:companyId "); | 
|---|
|  |  |  | sql.append("AND REGISTER_TIME_ >= :start "); | 
|---|
|  |  |  | sql.append("AND REGISTER_TIME_ <= :end "); | 
|---|
|  |  |  | StringBuffer sql = new StringBuffer(); | 
|---|
|  |  |  | sql.append("SELECT "); | 
|---|
|  |  |  | sql.append("ID_, "); | 
|---|
|  |  |  | sql.append("PLATE_NUM_, "); | 
|---|
|  |  |  | sql.append("CUSTOMER_ID_, "); | 
|---|
|  |  |  | sql.append("CUSTOMER_NAME_, "); | 
|---|
|  |  |  | sql.append("FOOD_VARIETY_, "); | 
|---|
|  |  |  | sql.append("DEPOT_ID_, "); | 
|---|
|  |  |  | sql.append("TYPE_, "); | 
|---|
|  |  |  | sql.append("PROGRESS_, "); | 
|---|
|  |  |  | sql.append("FULL_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("EMPTY_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("NET_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("DE_SUM_, "); | 
|---|
|  |  |  | sql.append("SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("COMPLETE_TIME_ "); | 
|---|
|  |  |  | sql.append("FROM "); | 
|---|
|  |  |  | sql.append("d_inout_record "); | 
|---|
|  |  |  | sql.append("WHERE "); | 
|---|
|  |  |  | sql.append("TRANS_TYPE_ =:transType "); | 
|---|
|  |  |  | sql.append("AND RECORD_STATUS_ <> :recordStatusDel "); | 
|---|
|  |  |  | sql.append("AND TYPE_ <> :typeNone "); | 
|---|
|  |  |  | sql.append("AND TYPE_ <> :typeLoss "); | 
|---|
|  |  |  | sql.append("AND TYPE_ <> :typeOver "); | 
|---|
|  |  |  | sql.append("AND COMPANY_ID_ =:companyId "); | 
|---|
|  |  |  | sql.append("AND REGISTER_TIME_ >= :start "); | 
|---|
|  |  |  | sql.append("AND REGISTER_TIME_ <= :end "); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Map<String, Object> args = new HashMap<>(); | 
|---|
|  |  |  | args.put("transType", TransType.TYPE_3.getCode()); | 
|---|
|  |  |  | args.put("recordStatusDel", InoutConstant.RECORD_STATUS_DEL); | 
|---|
|  |  |  | args.put("typeNone", InoutConstant.TYPE_NONE); | 
|---|
|  |  |  | args.put("typeLoss", Constant.LOSS_OVER_LOSS); | 
|---|
|  |  |  | args.put("typeOver", Constant.LOSS_OVER_OVER); | 
|---|
|  |  |  | args.put("companyId", ContextUtil.getCompanyId()); | 
|---|
|  |  |  | args.put("start", DateUtil.getCurZero(start)); | 
|---|
|  |  |  | args.put("end", DateUtil.getNextZero(end)); | 
|---|
|  |  |  | Map<String, Object> args = new HashMap<>(); | 
|---|
|  |  |  | args.put("transType", TransType.TYPE_3.getCode()); | 
|---|
|  |  |  | args.put("recordStatusDel", InoutConstant.RECORD_STATUS_DEL); | 
|---|
|  |  |  | args.put("typeNone", InoutConstant.TYPE_NONE); | 
|---|
|  |  |  | args.put("typeLoss", Constant.LOSS_OVER_LOSS); | 
|---|
|  |  |  | args.put("typeOver", Constant.LOSS_OVER_OVER); | 
|---|
|  |  |  | args.put("companyId", ContextUtil.getCompanyId()); | 
|---|
|  |  |  | args.put("start", DateUtil.getCurZero(start)); | 
|---|
|  |  |  | args.put("end", DateUtil.getNextZero(end)); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | String str = (String) parameter.get("deptId"); | 
|---|
|  |  |  | if(StringUtils.isNotEmpty(str)){ | 
|---|
|  |  |  | sql.append("AND DEPT_ID_ =:deptId "); | 
|---|
|  |  |  | args.put("deptId", str); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | str = (String) parameter.get("type"); | 
|---|
|  |  |  | if(StringUtils.isNotEmpty(str)){ | 
|---|
|  |  |  | sql.append("AND TYPE_ =:type "); | 
|---|
|  |  |  | args.put("type", str); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | str = (String) parameter.get("customerId"); | 
|---|
|  |  |  | if(StringUtils.isNotEmpty(str)){ | 
|---|
|  |  |  | sql.append("AND CUSTOMER_ID_ =:customerId "); | 
|---|
|  |  |  | args.put("customerId", str); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | str = (String) parameter.get("plateNum"); | 
|---|
|  |  |  | if(StringUtils.isNotEmpty(str)){ | 
|---|
|  |  |  | sql.append("AND PLATE_NUM_ like:plateNum "); | 
|---|
|  |  |  | args.put("plateNum", "%" + str + "%"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | sql.append("ORDER BY ID_ DESC "); | 
|---|
|  |  |  | String str = (String) parameter.get("deptId"); | 
|---|
|  |  |  | if (StringUtils.isNotEmpty(str)) { | 
|---|
|  |  |  | sql.append("AND DEPT_ID_ =:deptId "); | 
|---|
|  |  |  | args.put("deptId", str); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | str = (String) parameter.get("type"); | 
|---|
|  |  |  | if (StringUtils.isNotEmpty(str)) { | 
|---|
|  |  |  | sql.append("AND TYPE_ =:type "); | 
|---|
|  |  |  | args.put("type", str); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | str = (String) parameter.get("customerId"); | 
|---|
|  |  |  | if (StringUtils.isNotEmpty(str)) { | 
|---|
|  |  |  | sql.append("AND CUSTOMER_ID_ =:customerId "); | 
|---|
|  |  |  | args.put("customerId", str); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | str = (String) parameter.get("plateNum"); | 
|---|
|  |  |  | if (StringUtils.isNotEmpty(str)) { | 
|---|
|  |  |  | sql.append("AND PLATE_NUM_ like:plateNum "); | 
|---|
|  |  |  | args.put("plateNum", "%" + str + "%"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | sql.append("ORDER BY ID_ DESC "); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | log.debug("====执行SLQ,查询流水主表信息={},参数={}", sql.toString(),args); | 
|---|
|  |  |  | log.debug("====执行SLQ,查询流水主表信息={},参数={}", sql.toString(), args); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<ReportInoutShipData> list1 = this.getNamedParameterJdbcTemplate().query(sql.toString(), args, new ReportInoutShipRowMapper1()); | 
|---|
|  |  |  | List<ReportInoutShipData> list1 = this.getNamedParameterJdbcTemplate().query(sql.toString(), args, new ReportInoutShipRowMapper1()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (null == list1 || list1.isEmpty()){ | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String depotId = (String) parameter.get("depotId"); | 
|---|
|  |  |  | String carNum = (String) parameter.get("carNum"); | 
|---|
|  |  |  | List<ReportInoutShipData> list = new ArrayList<>(); | 
|---|
|  |  |  | List<ReportInoutShipData> list2; | 
|---|
|  |  |  | int index = 1; | 
|---|
|  |  |  | //合计信息 | 
|---|
|  |  |  | ReportInoutShipData hj = new ReportInoutShipData(); | 
|---|
|  |  |  | hj.setId("合计"); | 
|---|
|  |  |  | for (ReportInoutShipData shipData : list1) { | 
|---|
|  |  |  | list2 = this.listShipRecordItem(shipData.getId(), depotId, carNum); | 
|---|
|  |  |  | if(null == list2 || list2.isEmpty()){ | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(!InoutConstant.PROGRESS_RECORD.equals(shipData.getProgress())){ | 
|---|
|  |  |  | //流程未完成,统计重量信息 | 
|---|
|  |  |  | for (ReportInoutShipData shipItem : list2) { | 
|---|
|  |  |  | shipData.setFullWeight(shipData.getFullWeight() + shipItem.getFullWeight()); | 
|---|
|  |  |  | shipData.setEmptyWeight(shipData.getEmptyWeight() + shipItem.getEmptyWeight()); | 
|---|
|  |  |  | shipData.setNetWeight(shipData.getNetWeight() + shipItem.getNetWeight()); | 
|---|
|  |  |  | shipData.setDeSum(shipData.getDeSum() + shipItem.getDeSum()); | 
|---|
|  |  |  | shipData.setSettleWeight(shipData.getSettleWeight() + shipItem.getSettleWeight()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (null == list1 || list1.isEmpty()) { | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String depotId = (String) parameter.get("depotId"); | 
|---|
|  |  |  | String carNum = (String) parameter.get("carNum"); | 
|---|
|  |  |  | List<ReportInoutShipData> list = new ArrayList<>(); | 
|---|
|  |  |  | List<ReportInoutShipData> list2; | 
|---|
|  |  |  | int index = 1; | 
|---|
|  |  |  | //合计信息 | 
|---|
|  |  |  | ReportInoutShipData hj = new ReportInoutShipData(); | 
|---|
|  |  |  | hj.setId("合计"); | 
|---|
|  |  |  | for (ReportInoutShipData shipData : list1) { | 
|---|
|  |  |  | list2 = this.listShipRecordItem(shipData.getId(), depotId, carNum); | 
|---|
|  |  |  | if (null == list2 || list2.isEmpty()) { | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (!InoutConstant.PROGRESS_RECORD.equals(shipData.getProgress())) { | 
|---|
|  |  |  | //流程未完成,统计重量信息 | 
|---|
|  |  |  | for (ReportInoutShipData shipItem : list2) { | 
|---|
|  |  |  | shipData.setFullWeight(shipData.getFullWeight() + shipItem.getFullWeight()); | 
|---|
|  |  |  | shipData.setEmptyWeight(shipData.getEmptyWeight() + shipItem.getEmptyWeight()); | 
|---|
|  |  |  | shipData.setNetWeight(shipData.getNetWeight() + shipItem.getNetWeight()); | 
|---|
|  |  |  | shipData.setDeSum(shipData.getDeSum() + shipItem.getDeSum()); | 
|---|
|  |  |  | shipData.setSettleWeight(shipData.getSettleWeight() + shipItem.getSettleWeight()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | list.addAll(list2); | 
|---|
|  |  |  | shipData.setIndex(index + ""); | 
|---|
|  |  |  | list.add(shipData); | 
|---|
|  |  |  | index ++; | 
|---|
|  |  |  | list.addAll(list2); | 
|---|
|  |  |  | shipData.setIndex(index + ""); | 
|---|
|  |  |  | list.add(shipData); | 
|---|
|  |  |  | index++; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //统计合计信息 | 
|---|
|  |  |  | hj.setFullWeight(hj.getFullWeight() + shipData.getFullWeight()); | 
|---|
|  |  |  | hj.setEmptyWeight(hj.getEmptyWeight() + shipData.getEmptyWeight()); | 
|---|
|  |  |  | hj.setNetWeight(hj.getNetWeight() + shipData.getNetWeight()); | 
|---|
|  |  |  | hj.setDeSum(hj.getDeSum() + shipData.getDeSum()); | 
|---|
|  |  |  | hj.setSettleWeight(hj.getSettleWeight() + shipData.getSettleWeight()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | list.add(hj); | 
|---|
|  |  |  | return list; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //统计合计信息 | 
|---|
|  |  |  | hj.setFullWeight(hj.getFullWeight() + shipData.getFullWeight()); | 
|---|
|  |  |  | hj.setEmptyWeight(hj.getEmptyWeight() + shipData.getEmptyWeight()); | 
|---|
|  |  |  | hj.setNetWeight(hj.getNetWeight() + shipData.getNetWeight()); | 
|---|
|  |  |  | hj.setDeSum(hj.getDeSum() + shipData.getDeSum()); | 
|---|
|  |  |  | hj.setSettleWeight(hj.getSettleWeight() + shipData.getSettleWeight()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | list.add(hj); | 
|---|
|  |  |  | return list; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public List<ReportInoutShipData> listShipRecordItem(String recordId, String depotId, String carNum) { | 
|---|
|  |  |  | public List<ReportInoutShipData> listShipRecordItem(String recordId, String depotId, String carNum) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (StringUtils.isEmpty(recordId)){ | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (StringUtils.isEmpty(recordId)) { | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | StringBuffer sql = new StringBuffer(); | 
|---|
|  |  |  | sql.append("SELECT "); | 
|---|
|  |  |  | sql.append("DEPOT_ID_, "); | 
|---|
|  |  |  | sql.append("CAR_NUM_, "); | 
|---|
|  |  |  | sql.append("CAR_NAME_, "); | 
|---|
|  |  |  | sql.append("TYPE_, "); | 
|---|
|  |  |  | sql.append("PROGRESS_, "); | 
|---|
|  |  |  | sql.append("FULL_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("EMPTY_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("NET_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("DE_, "); | 
|---|
|  |  |  | sql.append("SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("CREATE_TIME_ AS COMPLETE_TIME_ "); | 
|---|
|  |  |  | sql.append("FROM "); | 
|---|
|  |  |  | sql.append("d_inout_record_item "); | 
|---|
|  |  |  | sql.append("WHERE RECORD_STATUS_ <> :recordStatusDel "); | 
|---|
|  |  |  | sql.append("AND PROGRESS_ =:progressRecord "); | 
|---|
|  |  |  | Map<String, Object> args = new HashMap<>(); | 
|---|
|  |  |  | args.put("recordStatusDel", InoutConstant.RECORD_STATUS_DEL); | 
|---|
|  |  |  | args.put("progressRecord", InoutConstant.PROGRESS_RECORD); | 
|---|
|  |  |  | if(StringUtils.isNotEmpty(recordId)){ | 
|---|
|  |  |  | sql.append("AND RECORD_ID_ =:recordId "); | 
|---|
|  |  |  | args.put("recordId", recordId); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(StringUtils.isNotEmpty(depotId)){ | 
|---|
|  |  |  | sql.append("AND DEPOT_ID_ =:depotId "); | 
|---|
|  |  |  | args.put("depotId", depotId); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(StringUtils.isNotEmpty(carNum)){ | 
|---|
|  |  |  | sql.append("AND CAR_NUM_ like:carNum "); | 
|---|
|  |  |  | args.put("carNum", "%" + carNum + "%"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | sql.append("ORDER BY CREATE_TIME_ ASC "); | 
|---|
|  |  |  | log.debug("====执行SLQ1={},参数={}", sql.toString(),args); | 
|---|
|  |  |  | StringBuffer sql = new StringBuffer(); | 
|---|
|  |  |  | sql.append("SELECT "); | 
|---|
|  |  |  | sql.append("DEPOT_ID_, "); | 
|---|
|  |  |  | sql.append("CAR_NUM_, "); | 
|---|
|  |  |  | sql.append("CAR_NAME_, "); | 
|---|
|  |  |  | sql.append("TYPE_, "); | 
|---|
|  |  |  | sql.append("PROGRESS_, "); | 
|---|
|  |  |  | sql.append("FULL_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("EMPTY_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("NET_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("DE_, "); | 
|---|
|  |  |  | sql.append("SETTLE_WEIGHT_, "); | 
|---|
|  |  |  | sql.append("CREATE_TIME_ AS COMPLETE_TIME_ "); | 
|---|
|  |  |  | sql.append("FROM "); | 
|---|
|  |  |  | sql.append("d_inout_record_item "); | 
|---|
|  |  |  | sql.append("WHERE RECORD_STATUS_ <> :recordStatusDel "); | 
|---|
|  |  |  | sql.append("AND PROGRESS_ =:progressRecord "); | 
|---|
|  |  |  | Map<String, Object> args = new HashMap<>(); | 
|---|
|  |  |  | args.put("recordStatusDel", InoutConstant.RECORD_STATUS_DEL); | 
|---|
|  |  |  | args.put("progressRecord", InoutConstant.PROGRESS_RECORD); | 
|---|
|  |  |  | if (StringUtils.isNotEmpty(recordId)) { | 
|---|
|  |  |  | sql.append("AND RECORD_ID_ =:recordId "); | 
|---|
|  |  |  | args.put("recordId", recordId); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (StringUtils.isNotEmpty(depotId)) { | 
|---|
|  |  |  | sql.append("AND DEPOT_ID_ =:depotId "); | 
|---|
|  |  |  | args.put("depotId", depotId); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (StringUtils.isNotEmpty(carNum)) { | 
|---|
|  |  |  | sql.append("AND CAR_NUM_ like:carNum "); | 
|---|
|  |  |  | args.put("carNum", "%" + carNum + "%"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | sql.append("ORDER BY CREATE_TIME_ ASC "); | 
|---|
|  |  |  | log.debug("====执行SLQ1={},参数={}", sql.toString(), args); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<ReportInoutShipData> data = this.getNamedParameterJdbcTemplate() | 
|---|
|  |  |  | .query(sql.toString(), args, new ReportInoutShipRowMapper2()); | 
|---|
|  |  |  | List<ReportInoutShipData> data = this.getNamedParameterJdbcTemplate() | 
|---|
|  |  |  | .query(sql.toString(), args, new ReportInoutShipRowMapper2()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return data; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return data; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|