SysDeptDaoImpl.java 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501
  1. package com.ydtech.modules.admin.dao.impl;
  2. import com.github.drinkjava2.jdialects.Dialect;
  3. import com.ydtech.core.page.PageResult;
  4. import com.ydtech.modules.admin.dao.SysDeptDao;
  5. import com.ydtech.modules.admin.model.SysDept;
  6. import com.ydtech.modules.admin.vo.TreeSysDeptVO;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.jdbc.core.BatchPreparedStatementSetter;
  9. import org.springframework.jdbc.core.JdbcTemplate;
  10. import org.springframework.jdbc.core.PreparedStatementCreator;
  11. import org.springframework.jdbc.core.RowMapper;
  12. import org.springframework.jdbc.support.GeneratedKeyHolder;
  13. import org.springframework.jdbc.support.KeyHolder;
  14. import org.springframework.stereotype.Repository;
  15. import javax.sql.DataSource;
  16. import java.sql.Connection;
  17. import java.sql.PreparedStatement;
  18. import java.sql.ResultSet;
  19. import java.sql.SQLException;
  20. import java.util.ArrayList;
  21. import java.util.List;
  22. @Repository
  23. public class SysDeptDaoImpl implements SysDeptDao {
  24. @Autowired
  25. public DataSource dataSource;
  26. public static class SysDeptRowMapper implements RowMapper {
  27. public SysDept mapRow(ResultSet resultSet, int rowNum) throws SQLException {
  28. SysDept model = new SysDept();
  29. model.setId(resultSet.getString("id"));
  30. model.setName(resultSet.getString("name"));
  31. model.setParentId(resultSet.getString("parent_id"));
  32. model.setOrderNum(resultSet.getInt("order_num"));
  33. model.setCreateBy(resultSet.getString("create_by"));
  34. model.setCreateTime(resultSet.getDate("create_time"));
  35. model.setLastUpdateBy(resultSet.getString("last_update_by"));
  36. model.setLastUpdateTime(resultSet.getDate("last_update_time"));
  37. model.setDelFlag(resultSet.getInt("del_flag"));
  38. model.setComtype(resultSet.getString("comtype"));
  39. model.setComlevel(resultSet.getString("comlevel"));
  40. model.setAddress(resultSet.getString("address"));
  41. model.setLeadername(resultSet.getString("leadername"));
  42. model.setLeaderphone(resultSet.getString("leaderphone"));
  43. model.setComattribute(resultSet.getString("comattribute"));
  44. model.setIsstop(resultSet.getString("isstop"));
  45. model.setDeptCode(resultSet.getString("dept_code"));
  46. model.setProvince(resultSet.getString("province"));
  47. model.setCity(resultSet.getString("city"));
  48. model.setArea(resultSet.getString("area"));
  49. model.setHouse(resultSet.getString("house"));
  50. model.setDeptType(resultSet.getString("dept_type"));
  51. return model;
  52. }
  53. }
  54. @Override
  55. public SysDept selectByPk(String id) {
  56. String sql = "select t.id, t.name, t.parent_id, t.order_num, t.create_by, t.create_time, t.last_update_by, t.last_update_time, t.del_flag, t.comtype, t.comlevel, t.address, t.leadername, t.leaderphone, t.comattribute, t.isstop, t.dept_code, t.province, t.city, t.area, t.house, t.dept_type from sys_dept t where id=?";
  57. JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
  58. return (SysDept) jdbcTemplate.queryForObject(sql,
  59. new Object[]{id}, new SysDeptRowMapper());
  60. }
  61. @Override
  62. public List<SysDept> selectAll() {
  63. String sql = "select t.id, t.name, t.parent_id, t.order_num, t.create_by, t.create_time, t.last_update_by, t.last_update_time, t.del_flag, t.comtype, t.comlevel, t.address, t.leadername, t.leaderphone, t.comattribute, t.isstop, t.dept_code, t.province, t.city, t.area, t.house, t.dept_type from sys_dept t ";
  64. JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
  65. return jdbcTemplate.query(sql, new SysDeptRowMapper());
  66. }
  67. public List<SysDept> selectList(String whereCase, Object[] paramValues) {
  68. String sql = "select t.id, t.name, t.parent_id, t.order_num, t.create_by, t.create_time, t.last_update_by, t.last_update_time, t.del_flag, t.comtype, t.comlevel, t.address, t.leadername, t.leaderphone, t.comattribute, t.isstop, t.dept_code, t.province, t.city, t.area, t.house, t.dept_type from sys_dept t " + whereCase;
  69. JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
  70. return jdbcTemplate.query(sql, paramValues, new SysDeptRowMapper());
  71. }
  72. public Integer count(String whereCase, Object[] paramValues) {
  73. String sql = "select count(1) from sys_dept t " + whereCase;
  74. JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
  75. return jdbcTemplate.queryForObject(sql, paramValues, Integer.class);
  76. }
  77. public PageResult selectPaging(int pageNumber, int pageSize, String whereCase, Object[] paramValues) {
  78. Dialect dialect = Dialect.guessDialect(dataSource);
  79. String sql = dialect.pagin(pageNumber, pageSize, "select t.id, t.name, t.parent_id, t.order_num, t.create_by, t.create_time, t.last_update_by, t.last_update_time, t.del_flag, t.comtype, t.comlevel, t.address, t.leadername, t.leaderphone, t.comattribute, t.isstop, t.dept_code, t.province, t.city, t.area, t.house, t.dept_type from sys_dept t " + whereCase);
  80. JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
  81. List<SysDept> recordList = jdbcTemplate.query(sql, paramValues, new SysDeptRowMapper());
  82. int totalCount = count(whereCase, paramValues);
  83. PageResult PageResult = new PageResult(pageNumber, pageSize, totalCount, recordList);
  84. return PageResult;
  85. }
  86. @Override
  87. public Integer insert(SysDept model) {
  88. String sql = "insert into sys_dept ( id, name, parent_id, order_num, create_by, create_time, last_update_by, last_update_time, del_flag, comtype, comlevel, address, leadername, leaderphone, comattribute, isstop, dept_code, province, city, area, house, dept_type) values ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ";
  89. JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
  90. Object[] params = new Object[]{model.getId(), model.getName(), model.getParentId(), model.getOrderNum(), model.getCreateBy(), model.getCreateTime(), model.getLastUpdateBy(), model.getLastUpdateTime(), model.getDelFlag(), model.getComtype(), model.getComlevel(), model.getAddress(), model.getLeadername(), model.getLeaderphone(), model.getComattribute(), model.getIsstop(), model.getDeptCode(), model.getProvince(), model.getCity(), model.getArea(), model.getHouse(), model.getDeptType()};
  91. int out = jdbcTemplate.update(sql, params);
  92. return out;
  93. }
  94. @Override
  95. public Integer insertReturnPk(SysDept model) {
  96. String sql = "insert into sys_dept ( id, name, parent_id, order_num, create_by, create_time, last_update_by, last_update_time, del_flag, comtype, comlevel, address, leadername, leaderphone, comattribute, isstop, dept_code, province, city, area, house, dept_type) values ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ";
  97. JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
  98. KeyHolder keyHolder = new GeneratedKeyHolder();
  99. jdbcTemplate.update(new PreparedStatementCreator() {
  100. @Override
  101. public PreparedStatement createPreparedStatement(Connection conn) throws SQLException {
  102. PreparedStatement ps = conn.prepareStatement(sql, PreparedStatement.RETURN_GENERATED_KEYS);
  103. ps.setObject(1, model.getId());
  104. ps.setObject(2, model.getName());
  105. ps.setObject(3, model.getParentId());
  106. ps.setObject(4, model.getOrderNum());
  107. ps.setObject(5, model.getCreateBy());
  108. ps.setObject(6, model.getCreateTime());
  109. ps.setObject(7, model.getLastUpdateBy());
  110. ps.setObject(8, model.getLastUpdateTime());
  111. ps.setObject(9, model.getDelFlag());
  112. ps.setObject(10, model.getComtype());
  113. ps.setObject(11, model.getComlevel());
  114. ps.setObject(12, model.getAddress());
  115. ps.setObject(13, model.getLeadername());
  116. ps.setObject(14, model.getLeaderphone());
  117. ps.setObject(15, model.getComattribute());
  118. ps.setObject(16, model.getIsstop());
  119. ps.setObject(17, model.getDeptCode());
  120. ps.setObject(18, model.getProvince());
  121. ps.setObject(19, model.getCity());
  122. ps.setObject(20, model.getArea());
  123. ps.setObject(21, model.getHouse());
  124. ps.setObject(22, model.getDeptType());
  125. return ps;
  126. }
  127. }, keyHolder);
  128. return keyHolder.getKey().intValue();
  129. }
  130. @Override
  131. public Integer insertSelective(SysDept model) {
  132. StringBuffer sbSql = new StringBuffer();
  133. StringBuffer sbParams = new StringBuffer();
  134. ArrayList<Object> alParamsValues = new ArrayList<Object>();
  135. String pre = "";
  136. if (model.getId() != null) {
  137. sbSql.append(pre + "id");
  138. sbParams.append(pre + "?");
  139. alParamsValues.add(model.getId());
  140. pre = ",";
  141. }
  142. if (model.getName() != null) {
  143. sbSql.append(pre + "name");
  144. sbParams.append(pre + "?");
  145. alParamsValues.add(model.getName());
  146. pre = ",";
  147. }
  148. if (model.getParentId() != null) {
  149. sbSql.append(pre + "parent_id");
  150. sbParams.append(pre + "?");
  151. alParamsValues.add(model.getParentId());
  152. pre = ",";
  153. }
  154. if (model.getOrderNum() != null) {
  155. sbSql.append(pre + "order_num");
  156. sbParams.append(pre + "?");
  157. alParamsValues.add(model.getOrderNum());
  158. pre = ",";
  159. }
  160. if (model.getCreateBy() != null) {
  161. sbSql.append(pre + "create_by");
  162. sbParams.append(pre + "?");
  163. alParamsValues.add(model.getCreateBy());
  164. pre = ",";
  165. }
  166. if (model.getCreateTime() != null) {
  167. sbSql.append(pre + "create_time");
  168. sbParams.append(pre + "?");
  169. alParamsValues.add(model.getCreateTime());
  170. pre = ",";
  171. }
  172. if (model.getLastUpdateBy() != null) {
  173. sbSql.append(pre + "last_update_by");
  174. sbParams.append(pre + "?");
  175. alParamsValues.add(model.getLastUpdateBy());
  176. pre = ",";
  177. }
  178. if (model.getLastUpdateTime() != null) {
  179. sbSql.append(pre + "last_update_time");
  180. sbParams.append(pre + "?");
  181. alParamsValues.add(model.getLastUpdateTime());
  182. pre = ",";
  183. }
  184. if (model.getDelFlag() != null) {
  185. sbSql.append(pre + "del_flag");
  186. sbParams.append(pre + "?");
  187. alParamsValues.add(model.getDelFlag());
  188. pre = ",";
  189. }
  190. if (model.getComtype() != null) {
  191. sbSql.append(pre + "comtype");
  192. sbParams.append(pre + "?");
  193. alParamsValues.add(model.getComtype());
  194. pre = ",";
  195. }
  196. if (model.getComlevel() != null) {
  197. sbSql.append(pre + "comlevel");
  198. sbParams.append(pre + "?");
  199. alParamsValues.add(model.getComlevel());
  200. pre = ",";
  201. }
  202. if (model.getAddress() != null) {
  203. sbSql.append(pre + "address");
  204. sbParams.append(pre + "?");
  205. alParamsValues.add(model.getAddress());
  206. pre = ",";
  207. }
  208. if (model.getLeadername() != null) {
  209. sbSql.append(pre + "leadername");
  210. sbParams.append(pre + "?");
  211. alParamsValues.add(model.getLeadername());
  212. pre = ",";
  213. }
  214. if (model.getLeaderphone() != null) {
  215. sbSql.append(pre + "leaderphone");
  216. sbParams.append(pre + "?");
  217. alParamsValues.add(model.getLeaderphone());
  218. pre = ",";
  219. }
  220. if (model.getComattribute() != null) {
  221. sbSql.append(pre + "comattribute");
  222. sbParams.append(pre + "?");
  223. alParamsValues.add(model.getComattribute());
  224. pre = ",";
  225. }
  226. if (model.getIsstop() != null) {
  227. sbSql.append(pre + "isstop");
  228. sbParams.append(pre + "?");
  229. alParamsValues.add(model.getIsstop());
  230. pre = ",";
  231. }
  232. if (model.getDeptCode() != null) {
  233. sbSql.append(pre + "dept_code");
  234. sbParams.append(pre + "?");
  235. alParamsValues.add(model.getDeptCode());
  236. pre = ",";
  237. }
  238. if (model.getProvince() != null) {
  239. sbSql.append(pre + "province");
  240. sbParams.append(pre + "?");
  241. alParamsValues.add(model.getProvince());
  242. pre = ",";
  243. }
  244. if (model.getCity() != null) {
  245. sbSql.append(pre + "city");
  246. sbParams.append(pre + "?");
  247. alParamsValues.add(model.getCity());
  248. pre = ",";
  249. }
  250. if (model.getArea() != null) {
  251. sbSql.append(pre + "area");
  252. sbParams.append(pre + "?");
  253. alParamsValues.add(model.getArea());
  254. pre = ",";
  255. }
  256. if (model.getHouse() != null) {
  257. sbSql.append(pre + "house");
  258. sbParams.append(pre + "?");
  259. alParamsValues.add(model.getHouse());
  260. pre = ",";
  261. }
  262. if (model.getDeptType() != null) {
  263. sbSql.append(pre + "dept_type");
  264. sbParams.append(pre + "?");
  265. alParamsValues.add(model.getDeptType());
  266. pre = ",";
  267. }
  268. String sql = "INSERT INTO sys_dept (" + sbSql.toString() + ") VALUES (" + sbParams.toString() + ")";
  269. JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
  270. Object[] params = alParamsValues.toArray();
  271. int out = jdbcTemplate.update(sql, params);
  272. return out;
  273. }
  274. @Override
  275. public Integer update(SysDept model) {
  276. String sql = "update sys_dept set name=?, parent_id=?, order_num=?, create_by=?, create_time=?, last_update_by=?, last_update_time=?, del_flag=?, comtype=?, comlevel=?, address=?, leadername=?, leaderphone=?, comattribute=?, isstop=?, dept_code=?, province=?, city=?, area=?, house=?, dept_type=? where id=?";
  277. JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
  278. Object[] params = new Object[]{model.getName(), model.getParentId(), model.getOrderNum(), model.getCreateBy(), model.getCreateTime(), model.getLastUpdateBy(), model.getLastUpdateTime(), model.getDelFlag(), model.getComtype(), model.getComlevel(), model.getAddress(), model.getLeadername(), model.getLeaderphone(), model.getComattribute(), model.getIsstop(), model.getDeptCode(), model.getProvince(), model.getCity(), model.getArea(), model.getHouse(), model.getDeptType(), model.getId()};
  279. return jdbcTemplate.update(sql, params);
  280. }
  281. @Override
  282. public Integer updateSelective(SysDept model) {
  283. StringBuffer sbSql = new StringBuffer();
  284. StringBuffer sbParams = new StringBuffer();
  285. ArrayList<Object> alParamsValues = new ArrayList<Object>();
  286. String pre = "";
  287. String preWhere = "";
  288. if (model.getName() != null) {
  289. sbSql.append(pre + "name=?");
  290. alParamsValues.add(model.getName());
  291. pre = ",";
  292. }
  293. if (model.getParentId() != null) {
  294. sbSql.append(pre + "parent_id=?");
  295. alParamsValues.add(model.getParentId());
  296. pre = ",";
  297. }
  298. if (model.getOrderNum() != null) {
  299. sbSql.append(pre + "order_num=?");
  300. alParamsValues.add(model.getOrderNum());
  301. pre = ",";
  302. }
  303. if (model.getCreateBy() != null) {
  304. sbSql.append(pre + "create_by=?");
  305. alParamsValues.add(model.getCreateBy());
  306. pre = ",";
  307. }
  308. if (model.getCreateTime() != null) {
  309. sbSql.append(pre + "create_time=?");
  310. alParamsValues.add(model.getCreateTime());
  311. pre = ",";
  312. }
  313. if (model.getLastUpdateBy() != null) {
  314. sbSql.append(pre + "last_update_by=?");
  315. alParamsValues.add(model.getLastUpdateBy());
  316. pre = ",";
  317. }
  318. if (model.getLastUpdateTime() != null) {
  319. sbSql.append(pre + "last_update_time=?");
  320. alParamsValues.add(model.getLastUpdateTime());
  321. pre = ",";
  322. }
  323. if (model.getDelFlag() != null) {
  324. sbSql.append(pre + "del_flag=?");
  325. alParamsValues.add(model.getDelFlag());
  326. pre = ",";
  327. }
  328. if (model.getComtype() != null) {
  329. sbSql.append(pre + "comtype=?");
  330. alParamsValues.add(model.getComtype());
  331. pre = ",";
  332. }
  333. if (model.getComlevel() != null) {
  334. sbSql.append(pre + "comlevel=?");
  335. alParamsValues.add(model.getComlevel());
  336. pre = ",";
  337. }
  338. if (model.getAddress() != null) {
  339. sbSql.append(pre + "address=?");
  340. alParamsValues.add(model.getAddress());
  341. pre = ",";
  342. }
  343. if (model.getLeadername() != null) {
  344. sbSql.append(pre + "leadername=?");
  345. alParamsValues.add(model.getLeadername());
  346. pre = ",";
  347. }
  348. if (model.getLeaderphone() != null) {
  349. sbSql.append(pre + "leaderphone=?");
  350. alParamsValues.add(model.getLeaderphone());
  351. pre = ",";
  352. }
  353. if (model.getComattribute() != null) {
  354. sbSql.append(pre + "comattribute=?");
  355. alParamsValues.add(model.getComattribute());
  356. pre = ",";
  357. }
  358. if (model.getIsstop() != null) {
  359. sbSql.append(pre + "isstop=?");
  360. alParamsValues.add(model.getIsstop());
  361. pre = ",";
  362. }
  363. if (model.getDeptCode() != null) {
  364. sbSql.append(pre + "dept_code=?");
  365. alParamsValues.add(model.getDeptCode());
  366. pre = ",";
  367. }
  368. if (model.getProvince() != null) {
  369. sbSql.append(pre + "province=?");
  370. alParamsValues.add(model.getProvince());
  371. pre = ",";
  372. }
  373. if (model.getCity() != null) {
  374. sbSql.append(pre + "city=?");
  375. alParamsValues.add(model.getCity());
  376. pre = ",";
  377. }
  378. if (model.getArea() != null) {
  379. sbSql.append(pre + "area=?");
  380. alParamsValues.add(model.getArea());
  381. pre = ",";
  382. }
  383. if (model.getHouse() != null) {
  384. sbSql.append(pre + "house=?");
  385. alParamsValues.add(model.getHouse());
  386. pre = ",";
  387. }
  388. if (model.getDeptType() != null) {
  389. sbSql.append(pre + "dept_type=?");
  390. alParamsValues.add(model.getDeptType());
  391. pre = ",";
  392. }
  393. if (model.getId() != null) {
  394. sbParams.append(preWhere + "id=?");
  395. alParamsValues.add(model.getId());
  396. preWhere = ",";
  397. }
  398. if (!sbSql.toString().equalsIgnoreCase("")) {
  399. String sql = "update sys_dept set " + sbSql.toString() + " where " + sbParams.toString();
  400. JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
  401. Object[] params = alParamsValues.toArray();
  402. return jdbcTemplate.update(sql, params);
  403. }
  404. return 0;
  405. }
  406. @Override
  407. public Integer delete(String id) {
  408. String sql = "delete from sys_dept where id=?";
  409. JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
  410. return jdbcTemplate.update(sql, id);
  411. }
  412. @Override
  413. public Integer delete(List<SysDept> lsSysDept) {
  414. String sql = "delete from sys_dept where id=?";
  415. JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
  416. return jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() {
  417. @Override
  418. public void setValues(PreparedStatement preparedStatement, int i) throws SQLException {
  419. preparedStatement.setString(1, lsSysDept.get(i).getId());
  420. }
  421. @Override
  422. public int getBatchSize() {
  423. return lsSysDept.size();
  424. }
  425. }).length;
  426. }
  427. }