BusOrgServiceImpl.java 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640
  1. package com.bus.service.impl;
  2. import java.io.UnsupportedEncodingException;
  3. import java.sql.ResultSet;
  4. import java.sql.SQLException;
  5. import java.util.Date;
  6. import java.util.List;
  7. import com.base.model.BaseOrgType;
  8. import com.base.model.BaseWaterProperties;
  9. import com.base.service.IBaseOrgTypeService;
  10. import com.base.service.IBaseWaterPropertiesService;
  11. import com.bus.model.*;
  12. import com.bus.model.temp.*;
  13. import com.bus.service.*;
  14. import org.apache.commons.lang.StringUtils;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.jdbc.core.RowMapper;
  17. import com.bus.dao.IBusOrgDao;
  18. import com.core.dao.IGenericDao;
  19. import com.core.service.impl.GenericServiceImpl;
  20. import com.core.util.Page;
  21. /**
  22. * 导入数据文件业务层实现类
  23. *
  24. * @author lha
  25. */
  26. public class BusOrgServiceImpl extends GenericServiceImpl<BusOrg, Long> implements IBusOrgService {
  27. @Autowired
  28. private IBusOrgDao busOrgDao;
  29. @Autowired
  30. private IBaseOrgTypeService baseOrgTypeService;
  31. @Autowired
  32. private IBusCustomerMeterService busCustomerMeterService;
  33. @Autowired
  34. private IBusAnnualPlanForWaterService busAnnualPlanForWaterService;
  35. @Autowired
  36. private IBusQuarterlyAssessmentService busQuarterlyAssessmentService;
  37. @Autowired
  38. private IBusMonthAssessmentService busMonthAssessmentService;
  39. @Autowired
  40. private IBaseWaterPropertiesService baseWaterPropertiesService;
  41. @Autowired
  42. private org.springframework.jdbc.core.JdbcTemplate jdbcTemplate;
  43. @Override
  44. protected IGenericDao<BusOrg, Long> getGenericDao() {
  45. return this.busOrgDao;
  46. }
  47. @Override
  48. public String getMatYearFromBusOrg() {
  49. // TODO Auto-generated method stub
  50. return this.busOrgDao.getMatYearFromBusOrg();
  51. }
  52. /* @Override
  53. public List<BusOrgTemp> getCountInitDate(String year) {
  54. // TODO Auto-generated method stub
  55. return this.busOrgDao.getCountInitDate(year);
  56. }*/
  57. @Override
  58. public Page getOrgListPage(int pageNo, int pageSize, String orgNumber,
  59. String orgName, String year, String busOrgCustomerNumber,
  60. String address, String busOrgMeterNumber, String isPlanUser,
  61. String userType, String orgTypeId) {
  62. String hql = "select b from BusOrg b where b.importStatus='normal'";
  63. if (null != orgNumber && !orgNumber.equals("")) {
  64. hql += " and b.orgNumber = '" + orgNumber + "'";
  65. }
  66. if (null != orgName && !orgName.equals("")) {
  67. hql += " and b.orgName like '%" + orgName + "%'";
  68. }
  69. if (null != year && !year.equals("")) {
  70. hql += " and b.year like '%" + year + "%'";
  71. }
  72. if (null != busOrgCustomerNumber && !busOrgCustomerNumber.equals("")) {
  73. hql += " and b.orgId in(select bcm.org.orgId from BusCustomerMeter bcm where bcm.customerNumber='" + busOrgCustomerNumber + "')";
  74. }
  75. if (null != address && !address.equals("")) {
  76. hql += " and b.address like '%" + address + "%'";
  77. }
  78. if (null != busOrgMeterNumber && !busOrgMeterNumber.equals("")) {
  79. hql += " and b.orgId in(select bc.org.orgId from BusCustomerMeter bc where bc.meterNumber='" + busOrgMeterNumber + "')";
  80. }
  81. if (null != userType && !userType.equals("")) {
  82. hql += " and b.newMeter = '1'";
  83. }
  84. if (null != isPlanUser && !isPlanUser.equals("")) {
  85. hql += " and b.isPlanUser ='" + isPlanUser + "'";
  86. }
  87. if (null != orgTypeId && !orgTypeId.equals("")) {
  88. hql += " and b.orgTypeId = " + orgTypeId + "";
  89. }
  90. return busOrgDao.getPageByHql(hql, pageNo, pageSize);
  91. }
  92. @Override
  93. public void updateYearneedInitDate(String initYear,
  94. Date initStartTime, Date initEndTime, Date bMonthStartTime,
  95. Date bMonthEndTime, Date eMonthStartTime, Date eMonthEndTime) {
  96. // TODO Auto-generated method stub
  97. this.busOrgDao.updateYearneedInitDate(initYear, initStartTime, initEndTime, bMonthStartTime, bMonthEndTime, eMonthStartTime, eMonthEndTime);
  98. }
  99. @Override
  100. public void updateCountYearInitDate(Long userId, Date updateTime, String userName, String year, Date initStartTime,
  101. Date initEndTime, Date bMonthStartTime, Date bMonthEndTime,
  102. Date eMonthStartTime, Date eMonthEndTime) {
  103. // TODO Auto-generated method stub
  104. this.busOrgDao.updateCountYearInitDate(userId, updateTime, userName, year, initStartTime, initEndTime, bMonthStartTime, bMonthEndTime, eMonthStartTime, eMonthEndTime);
  105. }
  106. @Override
  107. public void importExceInitData(String year, List<String[]> dataList) {
  108. //查询到居民用水与非居民用水信息
  109. BaseOrgType jmOrgType = baseOrgTypeService.findUniqueBy("orgName", "居民用水");
  110. BaseOrgType fjmOrgType = baseOrgTypeService.findUniqueBy("orgName", "非居民用水");
  111. //使用导入的功能都认为是计划户
  112. String _isPlanUser = "yes";
  113. //邮政编码
  114. String _code = "530000";
  115. //说明
  116. String _remark = year + "导入年计划";
  117. //导入状态
  118. String _importStatus = "normal";
  119. //日期
  120. Date now = new Date();
  121. //用户类型全部为自来水户
  122. String _baseUserTypeId = "1";
  123. //插入用户信息表
  124. for (int i = 1; i < dataList.size(); i++) {
  125. String[] item = dataList.get(i);
  126. String _no = item[0];
  127. String _orgName = item[1];
  128. String _address = item[2];
  129. String _properties = item[3];
  130. //判断单位是否已经存在
  131. String _waterPriceStr = item[4];
  132. if (StringUtils.isBlank(_waterPriceStr)) {
  133. _waterPriceStr = "0";
  134. }
  135. _waterPriceStr = _waterPriceStr.trim().replaceAll(",", "");
  136. Float _waterPrice = Float.parseFloat(_waterPriceStr);
  137. String _customerMeter = item[5];
  138. //实际用水
  139. String _actualStr = item[6];
  140. if (StringUtils.isBlank(_actualStr)) {
  141. _actualStr = "0";
  142. }
  143. _actualStr = _actualStr.trim().replaceAll(",", "");
  144. Float _actual = Float.parseFloat(_actualStr);
  145. //计划用水
  146. String _planStr = item[7];
  147. if (StringUtils.isBlank(_planStr)) {
  148. _planStr = "0";
  149. }
  150. _planStr = _planStr.trim().replaceAll(",", "");
  151. Float _plan = Float.parseFloat(_planStr);
  152. BusOrg busOrg = new BusOrg();
  153. busOrg.setOrgName(_orgName);
  154. busOrg.setOrgNumber(Integer.parseInt(_no));
  155. busOrg.setYear(year);
  156. busOrg.setBaseUserType(_baseUserTypeId);
  157. busOrg.setAddress(_address);
  158. busOrg.setIsPlanUser(_isPlanUser);
  159. busOrg.setCode(_code);
  160. busOrg.setRemark(_remark);
  161. if (_properties != null && _properties.indexOf("居民") >= 0) {
  162. busOrg.setOrgType(jmOrgType);
  163. } else {
  164. busOrg.setOrgType(fjmOrgType);
  165. }
  166. busOrg.setImportId(0L);
  167. busOrg.setImportStatus(_importStatus);
  168. busOrg.setPostalAddress(_address);
  169. //保存到数据
  170. busOrg = busOrgDao.save(busOrg);
  171. if (_properties != null && !_properties.equalsIgnoreCase("")) {
  172. //当前用水性质是否存在
  173. BaseWaterProperties baseWaterProperties = null;
  174. try {
  175. baseWaterProperties = baseWaterPropertiesService.findUniqueBy("propertiesName", _properties);
  176. } catch (Exception ex) {
  177. ex.printStackTrace();
  178. }
  179. if (baseWaterProperties == null) {
  180. baseWaterProperties = new BaseWaterProperties(_properties, _waterPrice);
  181. baseWaterPropertiesService.save(baseWaterProperties);
  182. }
  183. }
  184. //插入水表信息
  185. if (StringUtils.isNotBlank(_customerMeter)) {
  186. _customerMeter = _customerMeter.replaceAll(",", ",");
  187. //拿到水表号
  188. String[] _customerMeterList = _customerMeter.split(",");
  189. //循环添加水表信息
  190. for (int j = 0; j < _customerMeterList.length; j++) {
  191. BusCustomerMeter busCustomerMeter = new BusCustomerMeter();
  192. busCustomerMeter.setYear(year);
  193. busCustomerMeter.setMeterNumber(Integer.parseInt(_customerMeterList[j]));
  194. busCustomerMeter.setRemark(_remark);
  195. busCustomerMeter.setCustomerNumber(Integer.parseInt(_no));
  196. busCustomerMeter.setAddress(_address);
  197. busCustomerMeter.setOrg(busOrg);
  198. busCustomerMeterService.save(busCustomerMeter);
  199. }
  200. }
  201. //算出季度用水
  202. Float quarterlyPlan = _plan / 4;
  203. //算出月份用水
  204. Float monthPlan = _plan / 12;
  205. //生成年计划
  206. BusAnnualPlanForWater busAnnualPlanForWater = new BusAnnualPlanForWater();
  207. busAnnualPlanForWater.setFillTime(now);
  208. busAnnualPlanForWater.setOrg(busOrg);
  209. busAnnualPlanForWater.setIsCancel("yes");
  210. //上年用水量
  211. busAnnualPlanForWater.setPriYearUseWater(_actual);
  212. //计划用水量
  213. busAnnualPlanForWater.setPlanOfWater(_plan);
  214. busAnnualPlanForWater.setReplyOfWater(_plan);
  215. //计划季度用水量
  216. busAnnualPlanForWater.setFirstQuarterPlan(quarterlyPlan);
  217. busAnnualPlanForWater.setSecondQuarterPlan(quarterlyPlan);
  218. busAnnualPlanForWater.setThirdQuarterPlan(quarterlyPlan);
  219. busAnnualPlanForWater.setFourthQuarterPlan(quarterlyPlan);
  220. busAnnualPlanForWater.setFirstQuarterReply(quarterlyPlan);
  221. busAnnualPlanForWater.setSecondQuarterReply(quarterlyPlan);
  222. busAnnualPlanForWater.setThirdQuarterReply(quarterlyPlan);
  223. busAnnualPlanForWater.setFourthQuarterReply(quarterlyPlan);
  224. busAnnualPlanForWater.setJanPlan(monthPlan);
  225. busAnnualPlanForWater.setFebPlan(monthPlan);
  226. busAnnualPlanForWater.setMarPlan(monthPlan);
  227. busAnnualPlanForWater.setAprPlan(monthPlan);
  228. busAnnualPlanForWater.setMayPlan(monthPlan);
  229. busAnnualPlanForWater.setJunPlan(monthPlan);
  230. busAnnualPlanForWater.setJulPlan(monthPlan);
  231. busAnnualPlanForWater.setAugPlan(monthPlan);
  232. busAnnualPlanForWater.setSeptPlan(monthPlan);
  233. busAnnualPlanForWater.setOctPlan(monthPlan);
  234. busAnnualPlanForWater.setNovPlan(monthPlan);
  235. busAnnualPlanForWater.setDecPlan(monthPlan);
  236. busAnnualPlanForWater.setJanReply(monthPlan);
  237. busAnnualPlanForWater.setFebReply(monthPlan);
  238. busAnnualPlanForWater.setMarReply(monthPlan);
  239. busAnnualPlanForWater.setAprReply(monthPlan);
  240. busAnnualPlanForWater.setMayReply(monthPlan);
  241. busAnnualPlanForWater.setJunReply(monthPlan);
  242. busAnnualPlanForWater.setJulReply(monthPlan);
  243. busAnnualPlanForWater.setAugReply(monthPlan);
  244. busAnnualPlanForWater.setSeptReply(monthPlan);
  245. busAnnualPlanForWater.setOctReply(monthPlan);
  246. busAnnualPlanForWater.setNovReply(monthPlan);
  247. busAnnualPlanForWater.setDecReply(monthPlan);
  248. busAnnualPlanForWaterService.save(busAnnualPlanForWater);
  249. //生成季考核
  250. for (int j = 1; j <= 4; j++) {
  251. BusQuarterlyAssessment busQuarterlyAssessment = new BusQuarterlyAssessment();
  252. busQuarterlyAssessment.setAssessmentQuarter(j);
  253. busQuarterlyAssessment.setWaterPlanningIndex(quarterlyPlan);
  254. busQuarterlyAssessment.setReplyOfWater(quarterlyPlan);
  255. busQuarterlyAssessment.setOrg(busOrg);
  256. busQuarterlyAssessment.setIsWriteOff("no");
  257. busQuarterlyAssessment.setWaterPrice(_waterPrice);
  258. busQuarterlyAssessmentService.save(busQuarterlyAssessment);
  259. }
  260. //生成月份考核
  261. for (int j = 1; j <= 12; j++) {
  262. BusMonthAssessment busMonthAssessment = new BusMonthAssessment();
  263. busMonthAssessment.setAssessmentMonth(j);
  264. busMonthAssessment.setWaterPlanningIndex(monthPlan);
  265. busMonthAssessment.setReplyOfWater(monthPlan);
  266. busMonthAssessment.setOrg(busOrg);
  267. busMonthAssessment.setIsWriteOff("no");
  268. busMonthAssessmentService.save(busMonthAssessment);
  269. }
  270. }
  271. }
  272. @Override
  273. public void updateInitbusQuarterlyAssessment(int assessmentQuarter,
  274. String year, Date initStartTime, Date initEndTime,
  275. Date bMonthStartTime, Date bMonthEndTime, Date eMonthStartTime,
  276. Date eMonthEndTime) {
  277. this.busOrgDao.updateInitbusQuarterlyAssessment(assessmentQuarter, year, initStartTime, initEndTime, bMonthStartTime, bMonthEndTime, eMonthStartTime, eMonthEndTime);
  278. }
  279. @Override
  280. public void updateInitbusMonthAssessment(int assessmentMonth,
  281. String year, Date initStartTime, Date initEndTime,
  282. Date bMonthStartTime, Date bMonthEndTime, Date eMonthStartTime,
  283. Date eMonthEndTime) {
  284. this.busOrgDao.updateInitbusMonthAssessment(assessmentMonth, year, initStartTime, initEndTime, bMonthStartTime, bMonthEndTime, eMonthStartTime, eMonthEndTime);
  285. }
  286. @Override
  287. public void updateInitbusHalfYearAssessment(int assessmentQuarter,
  288. String year, Date initStartTime, Date initEndTime,
  289. Date bMonthStartTime, Date bMonthEndTime, Date eMonthStartTime,
  290. Date eMonthEndTime, Float GR) {
  291. this.busOrgDao.updateInitbusHalfYearAssessment(assessmentQuarter, year, initStartTime, initEndTime, bMonthStartTime, bMonthEndTime, eMonthStartTime, eMonthEndTime, GR);
  292. }
  293. @Override
  294. public List<BusOrgTemp> getPlanYearCountData(String orgNumber,
  295. String orgName, String year, String busOrgCustomerNumber,
  296. String address, String userType, String orgTypeId) throws UnsupportedEncodingException {
  297. // TODO Auto-generated method stub
  298. return this.busOrgDao.getPlanYearCountData(orgNumber, orgName, year, busOrgCustomerNumber, address, userType, orgTypeId);
  299. }
  300. @Override
  301. public String getMaxUserPlanYear() {
  302. // TODO Auto-generated method stub
  303. return this.busOrgDao.getMaxUserPlanYear();
  304. }
  305. @Override
  306. public void initOneData(Long orgId, int nextYear, String type) {
  307. this.busOrgDao.initOneData(orgId, nextYear, type);
  308. }
  309. @Override
  310. public List<ReplyPrintTemp> unitYearReplyPrin(String orgNumber, String orgName,
  311. String year, String busOrgCustomerNumber, String address,
  312. String busOrgMeterNumber, String priYearUseWater, String userType, String orgTypeId) {
  313. String sql = " SELECT b.`org_name`,w.`first_quarter_reply` AS numOne,w.`second_quarter_reply` AS numTwo,w.`third_quarter_reply` AS numThird,w.`fourth_quarter_reply` AS numFourth,GROUP_CONCAT(bm.`meter_Number`) AS meterNum,w.reply_of_water "
  314. + " FROM `bus_org` b "
  315. + " JOIN `bus_annual_plan_for_water` w ON b.`org_id` = w.`org_id` JOIN `bus_customer_meter` bm ON b.`org_id`=bm.`org_id` "
  316. + " WHERE b.`is_plan_user`='yes' AND w.`is_cancel`='yes' ";
  317. if (!orgNumber.equals("")) {
  318. sql += " and b.org_number=" + orgNumber;
  319. }
  320. if (!orgName.equals("")) {
  321. try {
  322. orgName = new String(orgName.getBytes("iso8859-1"), "UTF-8");
  323. } catch (UnsupportedEncodingException e) {
  324. e.printStackTrace();
  325. }
  326. sql += " and b.org_name like '%" + orgName + "%'";
  327. }
  328. if (orgTypeId != null && !orgTypeId.equals("")) {
  329. try {
  330. orgTypeId = new String(orgTypeId.getBytes("iso8859-1"), "UTF-8");
  331. } catch (UnsupportedEncodingException e) {
  332. e.printStackTrace();
  333. }
  334. sql += " and b.org_type_id = " + orgTypeId + "";
  335. }
  336. sql += " and b.year=" + year;
  337. if (!address.equals("")) {
  338. try {
  339. address = new String(address.getBytes("iso8859-1"), "UTF-8");
  340. } catch (UnsupportedEncodingException e) {
  341. e.printStackTrace();
  342. }
  343. sql += " and b.address like '%" + address + "%'";
  344. }
  345. if (!priYearUseWater.equals("")) {
  346. Float f = Float.parseFloat(priYearUseWater);
  347. sql += " and w.pri_year_usewater >=" + f;
  348. }
  349. if (!userType.equals("")) {
  350. sql += " and b.user_type=" + userType;
  351. }
  352. sql += " GROUP BY b.`org_id`";
  353. if (!busOrgCustomerNumber.equals("")) {
  354. sql += " having GROUP_CONCAT(bm.`meter_Number`) like '%" + busOrgCustomerNumber + "%'";
  355. }
  356. if (!busOrgMeterNumber.equals("")) {
  357. sql += " and GROUP_CONCAT(bm.`customer_Number`) like '%" + busOrgMeterNumber + "%'";
  358. }
  359. RowMapper<ReplyPrintTemp> rowMapper = new RowMapper<ReplyPrintTemp>() {
  360. @Override
  361. public ReplyPrintTemp mapRow(ResultSet rs, int arg1) throws SQLException {
  362. ReplyPrintTemp busOrgTem = new ReplyPrintTemp(rs.getString("org_name"), rs.getFloat("numOne"), rs.getFloat("numTwo"),
  363. rs.getFloat("numThird"), rs.getFloat("numFourth"), rs.getString("meterNum"), rs.getFloat("reply_of_water"));
  364. return busOrgTem;
  365. }
  366. };
  367. List<ReplyPrintTemp> list = jdbcTemplate.query(sql, rowMapper);
  368. return list;
  369. }
  370. public List<ReplyMonPrintTemp> unitYearReplyPrin2(String orgNumber, String orgName,
  371. String year, String busOrgCustomerNumber, String address,
  372. String busOrgMeterNumber, String priYearUseWater, String userType, String orgTypeId) {
  373. String sql = " SELECT b.`org_name`,w.jan_reply,w.feb_reply,w.mar_reply,w.apr_reply,w.may_reply,w.jun_reply,w.jul_reply,w.aug_reply,w.sept_reply,w.oct_reply,w.nov_reply,w.dec_reply,GROUP_CONCAT(bm.`meter_Number`) AS meterNum,w.reply_of_water "
  374. + " FROM `bus_org` b "
  375. + " JOIN `bus_annual_plan_for_water` w ON b.`org_id` = w.`org_id` JOIN `bus_customer_meter` bm ON b.`org_id`=bm.`org_id` "
  376. + " WHERE b.`is_plan_user`='yes' AND w.`is_cancel`='yes' ";
  377. if (!orgNumber.equals("")) {
  378. sql += " and b.org_number=" + orgNumber;
  379. }
  380. if (!orgName.equals("")) {
  381. try {
  382. orgName = new String(orgName.getBytes("iso8859-1"), "UTF-8");
  383. } catch (UnsupportedEncodingException e) {
  384. e.printStackTrace();
  385. }
  386. sql += " and b.org_name like '%" + orgName + "%'";
  387. }
  388. if (orgTypeId != null && !orgTypeId.equals("")) {
  389. try {
  390. orgTypeId = new String(orgTypeId.getBytes("iso8859-1"), "UTF-8");
  391. } catch (UnsupportedEncodingException e) {
  392. e.printStackTrace();
  393. }
  394. sql += " and b.org_type_id = " + orgTypeId + "";
  395. }
  396. sql += " and b.year=" + year;
  397. if (!address.equals("")) {
  398. try {
  399. address = new String(address.getBytes("iso8859-1"), "UTF-8");
  400. } catch (UnsupportedEncodingException e) {
  401. e.printStackTrace();
  402. }
  403. sql += " and b.address like '%" + address + "%'";
  404. }
  405. if (!priYearUseWater.equals("")) {
  406. Float f = Float.parseFloat(priYearUseWater);
  407. sql += " and w.pri_year_usewater >=" + f;
  408. }
  409. if (!userType.equals("")) {
  410. sql += " and b.user_type=" + userType;
  411. }
  412. sql += " GROUP BY b.`org_id`";
  413. if (!busOrgCustomerNumber.equals("")) {
  414. sql += " having GROUP_CONCAT(bm.`meter_Number`) like '%" + busOrgCustomerNumber + "%'";
  415. }
  416. if (!busOrgMeterNumber.equals("")) {
  417. sql += " and GROUP_CONCAT(bm.`customer_Number`) like '%" + busOrgMeterNumber + "%'";
  418. }
  419. RowMapper<ReplyMonPrintTemp> rowMapper = new RowMapper<ReplyMonPrintTemp>() {
  420. @Override
  421. public ReplyMonPrintTemp mapRow(ResultSet rs, int arg1) throws SQLException {
  422. ReplyMonPrintTemp busOrgTem = new ReplyMonPrintTemp(rs.getString("org_name"),
  423. rs.getFloat("jan_reply"),
  424. rs.getFloat("feb_reply"),
  425. rs.getFloat("mar_reply"),
  426. rs.getFloat("apr_reply"),
  427. rs.getFloat("may_reply"),
  428. rs.getFloat("jun_reply"),
  429. rs.getFloat("jul_reply"),
  430. rs.getFloat("aug_reply"),
  431. rs.getFloat("sept_reply"),
  432. rs.getFloat("oct_reply"),
  433. rs.getFloat("nov_reply"),
  434. rs.getFloat("dec_reply"),
  435. rs.getString("meterNum"), rs.getFloat("reply_of_water"));
  436. return busOrgTem;
  437. }
  438. };
  439. List<ReplyMonPrintTemp> list = jdbcTemplate.query(sql, rowMapper);
  440. return list;
  441. }
  442. @Override
  443. public List<OrgTemp> emailPrintView(String orgNumber, String orgName,
  444. String year, String busOrgCustomerNumber, String address,
  445. String busOrgMeterNumber, String priYearUseWater, String userType, String orgTypeId) throws UnsupportedEncodingException {
  446. String sql = " SELECT b.`code`,b.`org_name`,b.postal_address FROM `bus_org` b " +
  447. " LEFT JOIN `bus_annual_plan_for_water` w ON b.`org_id` = w.`org_id` WHERE b.`year`='" + year + "' AND b.`is_plan_user`='yes' AND w.`is_cancel`='yes'";
  448. if (!orgNumber.equals("")) {
  449. sql += " and b.org_number=" + orgNumber;
  450. }
  451. if (!orgName.equals("")) {
  452. orgName = new String(orgName.getBytes("iso8859-1"), "UTF-8");
  453. sql += " and b.org_name like '%" + orgName + "%'";
  454. }
  455. if (!orgTypeId.equals("")) {
  456. orgTypeId = new String(orgTypeId.getBytes("iso8859-1"), "UTF-8");
  457. sql += " and b.org_type_id = " + orgTypeId + "";
  458. }
  459. if (!address.equals("")) {
  460. address = new String(address.getBytes("iso8859-1"), "UTF-8");
  461. sql += " and b.address like '%" + address + "%'";
  462. }
  463. if (!priYearUseWater.equals("")) {
  464. Float f = Float.parseFloat(priYearUseWater);
  465. sql += " and w.pri_year_usewater>=" + f;
  466. }
  467. if (!userType.equals("")) {
  468. sql += " and b.user_type=" + userType;
  469. }
  470. if (!busOrgCustomerNumber.equals("")) {
  471. sql += " and b.org_id in (select bm.org_id from `bus_customer_meter` bm where bm.year='" + year + "' and bm.customer_Number=" + busOrgCustomerNumber + ")";
  472. }
  473. if (!busOrgMeterNumber.equals("")) {
  474. sql += " and b.org_id in (select bcm.org_id from `bus_customer_meter` bcm where bcm.year='" + year + "' and bcm.meter_Number=" + busOrgMeterNumber + ")";
  475. }
  476. RowMapper<OrgTemp> rowMapper = new RowMapper<OrgTemp>() {
  477. @Override
  478. public OrgTemp mapRow(ResultSet rs, int arg1) throws SQLException {
  479. OrgTemp org = new OrgTemp(rs.getString("code"), rs.getString("org_name"), rs.getString("postal_address"));
  480. return org;
  481. }
  482. };
  483. List<OrgTemp> list = jdbcTemplate.query(sql, rowMapper);
  484. return list;
  485. }
  486. @Override
  487. public int checkPendingIsNull() {
  488. return jdbcTemplate.queryForInt("SELECT COUNT(*) FROM `bus_org` WHERE `import_status`='pending'");
  489. }
  490. @Override
  491. public List<Object[]> listCountWaterData(String year) {
  492. String sql = " SELECT bwp.`properties_name`, "
  493. + " IFNULL(( "
  494. + " SELECT SUM(w.`reply_of_water`) FROM `bus_annual_plan_for_water` w "
  495. + " JOIN `bus_meter_read_info` info ON w.`org_id`=info.`org_id` WHERE "
  496. + " bwp.`properties_id`=info.properties_id AND info.year='" + year + "'),0) "
  497. + " AS reply, "
  498. + " IFNULL(( "
  499. + " SELECT SUM(i.`water`) FROM `bus_meter_read_info` i "
  500. + " JOIN `bus_annual_plan_for_water` fw ON i.`org_id` = fw.`org_id` "
  501. + " WHERE i.`year`='" + year + "' AND i.`properties_id`=bwp.`properties_id`),0) "
  502. + " AS userWater "
  503. + " FROM `base_water_properties` bwp "
  504. + " UNION ALL "
  505. + " ("
  506. + " SELECT '总计',IFNULL(SUM(bap.`reply_of_water`),0),IFNULL(SUM(bm.`water`),0) "
  507. + " FROM `base_water_properties` p JOIN `bus_meter_read_info` bm ON p.`properties_id`=bm.`properties_id` "
  508. + " JOIN `bus_annual_plan_for_water` bap ON bm.`org_id`=bap.`org_id` WHERE bm.`year`='" + year + "' "
  509. + " )";
  510. RowMapper<Object[]> rowMapper = new RowMapper<Object[]>() {
  511. @Override
  512. public Object[] mapRow(ResultSet rs, int arg1)
  513. throws SQLException {
  514. Object[] obj = new Object[3];
  515. obj[0] = rs.getString("properties_name");
  516. obj[1] = rs.getFloat("reply");
  517. obj[2] = rs.getFloat("userWater");
  518. return obj;
  519. }
  520. };
  521. List<Object[]> list = jdbcTemplate.query(sql, rowMapper);
  522. return list;
  523. }
  524. @Override
  525. public void updateIsplanYear(String year) {
  526. this.busOrgDao.updateIsplanYear(year);
  527. }
  528. @Override
  529. public void updateSetplanYear(String initYear, Date initStartTime,
  530. Date initEndTime, Date bMonthStartTime, Date bMonthEndTime,
  531. Date eMonthStartTime, Date eMonthEndTime, Float checkWater) {
  532. this.busOrgDao.updateSetplanYear(initYear, initStartTime, initEndTime, bMonthStartTime, bMonthEndTime, eMonthStartTime, eMonthEndTime, checkWater);
  533. }
  534. @Override
  535. public void updateCosMeter(String year) {
  536. this.busOrgDao.updateCosMeter(year);
  537. }
  538. @Override
  539. public void delteInfoForSplitOrg(Long orgId) {
  540. //先删除用水信息
  541. jdbcTemplate.update("DELETE FROM `bus_meter_read_info` WHERE `org_id`=?", orgId);
  542. //删除对应水表
  543. jdbcTemplate.update("DELETE FROM `bus_customer_meter` WHERE `org_id`=?", orgId);
  544. //删除年度供水计划
  545. jdbcTemplate.update("DELETE FROM `bus_annual_plan_for_water` WHERE `org_id`=?", orgId);
  546. //删除季度考核
  547. jdbcTemplate.update("DELETE FROM `bus_quarterly_assessment` WHERE `org_id`=?", orgId);
  548. //删除单位
  549. jdbcTemplate.update("DELETE FROM `bus_org` WHERE `org_id`=?", orgId);
  550. }
  551. @Override
  552. public Long findOrgNumberByYear(Integer orgNumber) {
  553. String sql = "SELECT o.`org_id` FROM `bus_org` o WHERE o.`org_number` = " + orgNumber + " AND o.`year` = DATE_FORMAT( CURRENT_TIMESTAMP(),'%Y' ) AND o.`import_status` = 'normal'";
  554. Long orgId = jdbcTemplate.queryForLong(sql);
  555. return orgId;
  556. }
  557. @Override
  558. public void updateAddress(String orgId, String postalAddress) {
  559. jdbcTemplate.update("UPDATE `bus_org` SET `postal_address`=? WHERE `org_id`=?", postalAddress, orgId);//
  560. }
  561. }