You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1030 lines
36 KiB

​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
  1. package in.gov.chennaicorporation.gccoffice.school.Service;
  2. import java.sql.PreparedStatement;
  3. import java.sql.Statement;
  4. import java.util.ArrayList;
  5. import java.util.HashMap;
  6. import java.util.List;
  7. import java.util.Map;
  8. import javax.sql.DataSource;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.beans.factory.annotation.Qualifier;
  11. import org.springframework.dao.DataAccessException;
  12. import org.springframework.jdbc.core.JdbcTemplate;
  13. import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
  14. import org.springframework.jdbc.support.GeneratedKeyHolder;
  15. import org.springframework.jdbc.support.KeyHolder;
  16. import org.springframework.stereotype.Service;
  17. import org.springframework.transaction.annotation.Transactional;
  18. import org.springframework.web.bind.annotation.RequestParam;
  19. @Service
  20. public class BuildingAssetService {
  21. private JdbcTemplate jdbcTemplate;
  22. @Autowired
  23. private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
  24. @Autowired
  25. public void setDataSourcemysql(@Qualifier("mysqlSchoolDataSource") DataSource dataSource) {
  26. this.jdbcTemplate = new JdbcTemplate(dataSource);
  27. this.namedParameterJdbcTemplate= new NamedParameterJdbcTemplate(dataSource);
  28. }
  29. @Transactional
  30. public int saveBuildings(String building_name, int total_floor, int building_material, int roof_material,
  31. int school_id) {
  32. String sql = "INSERT INTO buildings (building_name, total_floor, building_material, roof_material, school_id) VALUES (?, ?, ?, ?, ?)";
  33. try {
  34. KeyHolder keyHolder = new GeneratedKeyHolder();
  35. jdbcTemplate.update(connection -> {
  36. PreparedStatement ps = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
  37. ps.setString(1, building_name);
  38. ps.setInt(2, total_floor);
  39. ps.setInt(3, building_material);
  40. ps.setInt(4, roof_material);
  41. ps.setInt(5, school_id);
  42. return ps;
  43. }, keyHolder);
  44. Number generatedDataId = keyHolder.getKey();
  45. int buildingID = generatedDataId.intValue();
  46. return buildingID;
  47. } catch (DataAccessException e) {
  48. e.printStackTrace();
  49. return 0;
  50. }
  51. }
  52. @Transactional
  53. public Map<String, Object> getFloor(int i) {
  54. String sql = "SELECT * FROM floor_master WHERE execution_order = ? ";
  55. return jdbcTemplate.queryForMap(sql, i);
  56. }
  57. @Transactional
  58. public void saveFloor(String floor_name, int building_id, int floor_master_id, int school_id) {
  59. String sql = "INSERT INTO floor_list (floor_name, building_id, floor_master_id, school_id) VALUES (?, ?, ?, ?)";
  60. try {
  61. jdbcTemplate.update(sql, floor_name, building_id, floor_master_id, school_id);
  62. } catch (DataAccessException e) {
  63. e.printStackTrace();
  64. }
  65. }
  66. // @Transactional
  67. // public List<Map<String, Object>> getFloorDetails(int building_id) {
  68. // String sql = "SELECT fl.*,rd.room_type\r\n"
  69. // + "FROM floor_list fl\r\n"
  70. // + "left JOIN room_details rd ON rd.floors_id=fl.floors_id\r\n"
  71. // + "WHERE fl.building_id = ? ORDER BY fl.floors_id";
  72. // System.out.println(sql);
  73. // return jdbcTemplate.queryForList(sql, building_id);
  74. //
  75. //
  76. // }
  77. @Transactional
  78. public List<Map<String, Object>> getFloorDetails(int building_id) {
  79. String sql = "SELECT fl.floors_id, fl.floor_name, fl.building_id, fl.is_active, fl.is_delete, \r\n"
  80. + " fl.floor_master_id, fl.status, \r\n"
  81. + " COALESCE(GROUP_CONCAT( DISTINCT rm.room_type ORDER BY rm.room_master_id SEPARATOR ', '), '') AS room_types \r\n"
  82. + " FROM floor_list fl \r\n"
  83. + " LEFT JOIN room_details rd ON rd.floors_id = fl.floors_id \r\n"
  84. + " LEFT JOIN room_master rm ON rm.room_master_id = rd.room_type \r\n"
  85. + " WHERE fl.building_id = ? \r\n"
  86. + " GROUP BY fl.floors_id, fl.floor_name, fl.building_id, fl.is_active, fl.is_delete, \r\n"
  87. + " fl.floor_master_id, fl.status \r\n" + " ORDER BY fl.floors_id";
  88. return jdbcTemplate.queryForList(sql, building_id);
  89. }
  90. public int getLastBuildingOrder(@RequestParam int schoolId) {
  91. String sql = "SELECT COALESCE(MAX(building_order), 0) FROM buildings WHERE school_id = ?";
  92. int lastBuildingOrder = jdbcTemplate.queryForObject(sql, Integer.class, schoolId);
  93. return lastBuildingOrder;
  94. }
  95. @Transactional
  96. public List<Map<String, Object>> getSavedBuildings(int school_id) {
  97. String sql = "SELECT b.*,bm.content as building_material_name,rm.content as roof_material_name\r\n"
  98. + "FROM buildings b\r\n" + "JOIN building_material_master bm ON bm.bm_id=b.building_material\r\n"
  99. + "JOIN roof_material_master rm ON rm.rm_id=b.roof_material\r\n"
  100. + "WHERE b.school_id = ? and b.is_delete=0 and b.is_active=1 ORDER BY b.buildng_id";
  101. return jdbcTemplate.queryForList(sql, school_id);
  102. }
  103. @Transactional
  104. public void saveRoomDetails(int room_type, String room_num, int building_id, int floors_id, int school_id) {
  105. String sql = "INSERT INTO room_details (room_type, room_num, building_id, floors_id, school_id) VALUES (?, ?, ?, ?, ?)";
  106. try {
  107. jdbcTemplate.update(sql, room_type, room_num, building_id, floors_id, school_id);
  108. } catch (DataAccessException e) {
  109. e.printStackTrace();
  110. }
  111. }
  112. public Map<String, Object> getSimpleBuildingById(int buildingId) {
  113. String sql = "SELECT b.*, rm.content as roofmaterial ,bm.content as buildingmaterial FROM buildings b join building_material_master bm on\r\n"
  114. + " bm.execution_order=b.building_material inner join roof_material_master rm on rm.execution_order=b.roof_material WHERE buildng_id = ?";
  115. try {
  116. return jdbcTemplate.queryForMap(sql, buildingId);
  117. } catch (Exception e) {
  118. e.printStackTrace();
  119. return null;
  120. }
  121. }
  122. public List<Map<String, Object>> getFloorsByBuildingId(int buildingId) {
  123. String sql = "SELECT fl.floors_id as floors_id,fl.floor_name as floor_name,fm.execution_order as execution_order FROM floor_list fl left join floor_master fm on fm.floor_master_id=fl.floor_master_id\r\n"
  124. + " WHERE fl.building_id = ? AND fl.is_active = 1 AND fl.is_delete = 0\r\n"
  125. + " ORDER BY 1 DESc";
  126. return jdbcTemplate.queryForList(sql, buildingId);
  127. }
  128. @Transactional
  129. public void updateBuilding(int building_id, String building_name, int total_floor, String building_material,
  130. String roof_material, int school_id) {
  131. String sql = "UPDATE buildings SET building_name = ?, total_floor = ?, building_material = ?, roof_material = ?, school_id = ? WHERE buildng_id = ? ";
  132. try {
  133. jdbcTemplate.update(sql, building_name, total_floor, building_material, roof_material, school_id,
  134. building_id);
  135. } catch (DataAccessException e) {
  136. e.printStackTrace();
  137. }
  138. }
  139. // add floor
  140. @Transactional
  141. public String addFloor(int building_id, int exe_order) {
  142. try {
  143. exe_order = exe_order + 1;
  144. Map<String, Object> data = getfloorName(exe_order);
  145. String name = (String) data.get("content");
  146. int id = (int) data.get("floor_master_id");
  147. addFloordetails(name, building_id, id);
  148. return "Sucess";
  149. } catch (Exception e) {
  150. e.printStackTrace();
  151. return "Error";
  152. }
  153. }
  154. private void addFloordetails(String name, int building_id, int id) {
  155. String sql = "INSERT INTO floor_list (floor_name, building_id, floor_master_id) VALUES (?, ?, ?)";
  156. try {
  157. jdbcTemplate.update(sql, name, building_id, id);
  158. } catch (DataAccessException e) {
  159. e.printStackTrace();
  160. }
  161. }
  162. private Map<String, Object> getfloorName(int exe_order) {
  163. String sql = "SELECT * FROM floor_master WHERE execution_order = ?";
  164. try {
  165. return jdbcTemplate.queryForMap(sql, exe_order);
  166. } catch (DataAccessException e) {
  167. e.printStackTrace();
  168. return null;
  169. }
  170. }
  171. // delete floor
  172. @Transactional
  173. public String editBuildings(int building_id, int floor_id) {
  174. try {
  175. List<Integer> data = getassetFloorID(floor_id);
  176. for(Integer it_details_id : data) {
  177. unmapItAssetMaster(it_details_id);
  178. }
  179. editItAsset(floor_id, building_id);
  180. List<Map<String, Object>> electrical_asset= getElectricalAssetMasterByFloorId(floor_id);
  181. List<Map<String, Object>> furniture_asset= getFurnitureAssetMasterByFloorId(floor_id);
  182. for(Map<String, Object> ele_data : electrical_asset) {
  183. int school_id = (Integer) ele_data.get("school_id");
  184. int sub_asset_id = (Integer) ele_data.get("sub_asset_id");
  185. int asset_qty = (Integer) ele_data.get("asset_qty");
  186. String assetType="electricalasset";
  187. Map<String, Object> assetMaster = getAssetMasterBySchlId(sub_asset_id, school_id, assetType);
  188. int mapped = assetMaster.get("mapped_qty") != null ? (Integer) assetMaster.get("mapped_qty") : 0;
  189. int unMapped = assetMaster.get("unmapped_qty") != null ? (Integer) assetMaster.get("unmapped_qty") : 0;
  190. int map = mapped - asset_qty;
  191. int unMap = unMapped+asset_qty;
  192. updateAssetmaster(map, unMap, school_id, sub_asset_id, assetType);
  193. }
  194. editElectricalAsset(floor_id, building_id);
  195. for(Map<String, Object> fur_data : furniture_asset) {
  196. int school_id = (Integer) fur_data.get("school_id");
  197. int sub_asset_id = (Integer) fur_data.get("sub_asset_id");
  198. int asset_qty = (Integer) fur_data.get("asset_qty");
  199. String assetType="furnitureasset";
  200. Map<String, Object> assetMaster = getAssetMasterBySchlId(sub_asset_id, school_id, assetType);
  201. int mapped = assetMaster.get("mapped_qty") != null ? (Integer) assetMaster.get("mapped_qty") : 0;
  202. int unMapped = assetMaster.get("unmapped_qty") != null ? (Integer) assetMaster.get("unmapped_qty") : 0;
  203. int map = mapped-asset_qty;
  204. int unMap = unMapped+asset_qty;
  205. updateAssetmaster(map, unMap, school_id, sub_asset_id, assetType);
  206. }
  207. editFurnitureAsset(floor_id, building_id);
  208. editRoom(floor_id, building_id);
  209. editFloor(floor_id, building_id);
  210. return "sucess";
  211. } catch (Exception e) {
  212. e.printStackTrace();
  213. return "error";
  214. }
  215. }
  216. public List<Integer> getassetFloorID(int floor_id) {
  217. List<Integer> assetIds = new ArrayList<>();
  218. try {
  219. String sql = "SELECT it_details_id FROM it_mapping WHERE floor_id = ?";
  220. assetIds = jdbcTemplate.queryForList(sql, Integer.class, floor_id);
  221. } catch (Exception e) {
  222. e.printStackTrace();
  223. }
  224. return assetIds;
  225. }
  226. private void editElectricalAsset(int floor_id, int building_id) {
  227. String sql = "UPDATE electrical_mapping SET is_active = false, is_delete = true WHERE floor_id = ? And building_id=?";
  228. try {
  229. jdbcTemplate.update(sql, floor_id, building_id);
  230. } catch (DataAccessException e) {
  231. e.printStackTrace();
  232. }
  233. }
  234. private void editFurnitureAsset(int floor_id, int building_id) {
  235. String sql = "UPDATE furniture_mapping SET is_active = false, is_delete = true WHERE floor_id = ? And building_id=?";
  236. try {
  237. jdbcTemplate.update(sql, floor_id, building_id);
  238. } catch (DataAccessException e) {
  239. e.printStackTrace();
  240. }
  241. }
  242. private void editItAsset(int floor_id, int building_id) {
  243. String sql = "UPDATE it_mapping SET is_active = false, is_delete = true WHERE floor_id = ? And building_id=?";
  244. try {
  245. jdbcTemplate.update(sql, floor_id, building_id);
  246. } catch (DataAccessException e) {
  247. e.printStackTrace();
  248. }
  249. }
  250. private void editRoom(int floor_id, int building_id) {
  251. String sql = "UPDATE room_details SET is_active = false, is_delete = true WHERE floors_id = ? And building_id=?";
  252. try {
  253. jdbcTemplate.update(sql, floor_id, building_id);
  254. } catch (DataAccessException e) {
  255. e.printStackTrace();
  256. }
  257. }
  258. private void editFloor(int floor_id, int building_id) {
  259. String sql = "UPDATE floor_list SET is_active = false, is_delete = true WHERE floors_id = ? And building_id=?";
  260. try {
  261. jdbcTemplate.update(sql, floor_id, building_id);
  262. } catch (DataAccessException e) {
  263. e.printStackTrace();
  264. }
  265. }
  266. @Transactional
  267. public void unmapAssets(int room_id, boolean is_delete) {
  268. String sql = "UPDATE it_mapping SET is_delete = ?,is_active=0 WHERE room_id = ?";
  269. String sql1 = "UPDATE furniture_mapping SET is_delete = ?,is_active=0 WHERE room_id = ?";
  270. String sql2 = "UPDATE electrical_mapping SET is_delete = ?,is_active=0 WHERE room_id = ?";
  271. try {
  272. jdbcTemplate.update(sql, is_delete, room_id);
  273. jdbcTemplate.update(sql1, is_delete, room_id);
  274. jdbcTemplate.update(sql2, is_delete, room_id);
  275. } catch (Exception e) {
  276. e.printStackTrace();
  277. }
  278. }
  279. @Transactional
  280. public void deleteRoom(int room_id, boolean is_delete) {
  281. String sql = "UPDATE room_details SET is_delete = ?,is_active=0 WHERE room_id = ? ";
  282. try {
  283. jdbcTemplate.update(sql, is_delete, room_id);
  284. } catch (DataAccessException e) {
  285. e.printStackTrace();
  286. }
  287. }
  288. @Transactional
  289. public String executeDelete(int building_id, boolean is_delete) {
  290. try {
  291. deleteItAsset(building_id, is_delete);
  292. List<Integer> data = getassetBuildingID(building_id);
  293. for(Integer it_details_id : data) {
  294. unmapItAssetMaster(it_details_id);
  295. }
  296. List<Map<String, Object>> electrical_asset= getElectricalAssetMasterByBuildingId(building_id);
  297. List<Map<String, Object>> furniture_asset= getFurnitureAssetMasterByBuildingId(building_id);
  298. for(Map<String, Object> ele_data : electrical_asset) {
  299. int school_id = (Integer) ele_data.get("school_id");
  300. int sub_asset_id = (Integer) ele_data.get("sub_asset_id");
  301. int asset_qty = (Integer) ele_data.get("asset_qty");
  302. String assetType="electricalasset";
  303. Map<String, Object> assetMaster = getAssetMasterBySchlId(sub_asset_id, school_id, assetType);
  304. int mapped = assetMaster.get("mapped_qty") != null ? (Integer) assetMaster.get("mapped_qty") : 0;
  305. int unMapped = assetMaster.get("unmapped_qty") != null ? (Integer) assetMaster.get("unmapped_qty") : 0;
  306. int map = mapped-asset_qty;
  307. int unMap = unMapped+asset_qty;
  308. updateAssetmaster(map, unMap, school_id, sub_asset_id, assetType);
  309. }
  310. deleteElectricalAsset(building_id, is_delete);
  311. for(Map<String, Object> fur_data : furniture_asset) {
  312. int school_id = (Integer) fur_data.get("school_id");
  313. int sub_asset_id = (Integer) fur_data.get("sub_asset_id");
  314. int asset_qty = (Integer) fur_data.get("asset_qty");
  315. String assetType="furnitureasset";
  316. Map<String, Object> assetMaster = getAssetMasterBySchlId(sub_asset_id, school_id, assetType);
  317. int mapped = assetMaster.get("mapped_qty") != null ? (Integer) assetMaster.get("mapped_qty") : 0;
  318. int unMapped = assetMaster.get("unmapped_qty") != null ? (Integer) assetMaster.get("unmapped_qty") : 0;
  319. int map = mapped-asset_qty;
  320. int unMap = unMapped+asset_qty;
  321. updateAssetmaster(map, unMap, school_id, sub_asset_id, assetType);
  322. }
  323. deleteFurnitureAsset(building_id, is_delete);
  324. deleteRoomById(building_id, is_delete);
  325. deleteFloor(building_id, is_delete);
  326. deleteBuilding(building_id, is_delete);
  327. return "Building Deleted Sucessfully";
  328. } catch (Exception e) {
  329. e.printStackTrace();
  330. return "error";
  331. }
  332. }
  333. public List<Integer> getassetBuildingID(int building_id) {
  334. List<Integer> assetIds = new ArrayList<>();
  335. try {
  336. String sql = "SELECT it_details_id FROM it_mapping WHERE building_id = ?";
  337. assetIds = jdbcTemplate.queryForList(sql, Integer.class, building_id);
  338. } catch (Exception e) {
  339. e.printStackTrace();
  340. }
  341. return assetIds;
  342. }
  343. private void deleteBuilding(int building_id, boolean is_delete) {
  344. String sql = "UPDATE buildings SET is_active=false,is_delete = ? WHERE buildng_id = ?;";
  345. try {
  346. jdbcTemplate.update(sql, is_delete, building_id);
  347. } catch (DataAccessException e) {
  348. e.printStackTrace();
  349. }
  350. }
  351. private void deleteFloor(int building_id, boolean is_delete) {
  352. String sql = "UPDATE floor_list SET is_active=false,is_delete = ? WHERE building_id = ?;";
  353. try {
  354. jdbcTemplate.update(sql, is_delete, building_id);
  355. } catch (DataAccessException e) {
  356. e.printStackTrace();
  357. }
  358. }
  359. private void deleteRoomById(int building_id, boolean is_delete) {
  360. String sql = "UPDATE room_details SET is_active=false,is_delete = ? WHERE building_id = ?;";
  361. try {
  362. jdbcTemplate.update(sql, is_delete, building_id);
  363. } catch (DataAccessException e) {
  364. e.printStackTrace();
  365. }
  366. }
  367. private void deleteElectricalAsset(int building_id, boolean is_delete) {
  368. String sql = "UPDATE electrical_mapping SET is_active=false,is_delete = ? WHERE building_id = ?;";
  369. try {
  370. jdbcTemplate.update(sql, is_delete, building_id);
  371. } catch (DataAccessException e) {
  372. e.printStackTrace();
  373. }
  374. }
  375. private void deleteFurnitureAsset(int building_id, boolean is_delete) {
  376. String sql = "UPDATE furniture_mapping SET is_active=false,is_delete = ? WHERE building_id = ? ;";
  377. try {
  378. jdbcTemplate.update(sql, is_delete, building_id);
  379. } catch (DataAccessException e) {
  380. e.printStackTrace();
  381. }
  382. }
  383. private void deleteItAsset(int building_id, boolean is_delete) {
  384. String sql = "UPDATE it_mapping SET is_active=false,is_delete = ? WHERE building_id = ?;";
  385. try {
  386. jdbcTemplate.update(sql, is_delete, building_id);
  387. } catch (DataAccessException e) {
  388. e.printStackTrace();
  389. }
  390. }
  391. public Map<String, List<Map<String, Object>>> getAllMaterials() {
  392. String buildingMaterialSql = "SELECT execution_order, content FROM building_material_master ORDER BY execution_order";
  393. String roofMaterialSql = "SELECT execution_order, content FROM roof_material_master ORDER BY execution_order";
  394. List<Map<String, Object>> buildingMaterials = jdbcTemplate.queryForList(buildingMaterialSql);
  395. List<Map<String, Object>> roofMaterials = jdbcTemplate.queryForList(roofMaterialSql);
  396. Map<String, List<Map<String, Object>>> result = new HashMap<>();
  397. result.put("buildingMaterials", buildingMaterials);
  398. result.put("roofMaterials", roofMaterials);
  399. return result;
  400. }
  401. @Transactional
  402. public List<Map<String, Object>> getRoomDetailsBySchoolId(int schoolId) {
  403. String sql = "SELECT rd.room_id, " + " rd.room_num AS room_name, " + " bd.building_name, "
  404. + " rd.building_id, " + " fl.floor_name AS floor, " + // ✅ FIXED HERE
  405. " rm.room_type, " + " rd.school_id, " + " rm.room_master_id, "
  406. + " fl.floors_id " + "FROM room_details rd "
  407. + "JOIN buildings bd ON bd.buildng_id = rd.building_id "
  408. + "JOIN floor_list fl ON fl.floors_id = rd.floors_id " + // ✅ REMOVED floor_master JOIN
  409. "JOIN room_master rm ON rd.room_type = rm.room_master_id "
  410. + "WHERE rd.school_id = ? AND rd.is_active = 1 AND rd.is_delete = 0";
  411. return jdbcTemplate.queryForList(sql, schoolId);
  412. }
  413. @Transactional
  414. public Map<String, Object> getRoomDetailsById(int roomId) {
  415. String sql = "SELECT rd.room_id, " + " rd.room_num AS room_name, " + " bd.building_name, "
  416. + " fl.floor_name AS floor, " + // ✅ FIXED HERE
  417. " rm.room_type, " + " rd.school_id, " + " rm.room_master_id, "
  418. + " fl.floors_id " + "FROM room_details rd "
  419. + "JOIN buildings bd ON bd.buildng_id = rd.building_id "
  420. + "JOIN floor_list fl ON fl.floors_id = rd.floors_id " + // ✅ REMOVED floor_master JOIN
  421. "JOIN room_master rm ON rd.room_type = rm.room_master_id "
  422. + "WHERE rd.room_id = ? AND rd.is_active = 1 AND rd.is_delete = 0";
  423. return jdbcTemplate.queryForMap(sql, roomId);
  424. }
  425. @Transactional
  426. public void editRoom(int room_type, String room_num, int building_id, int floors_id, int school_id, int room_id) {
  427. String sql = "UPDATE room_details SET room_type = ?, room_num = ?, building_id = ?, floors_id = ?, school_id = ? WHERE room_id = ? ";
  428. try {
  429. jdbcTemplate.update(sql, room_type, room_num, building_id, floors_id, school_id, room_id);
  430. } catch (DataAccessException e) {
  431. e.printStackTrace();
  432. }
  433. }
  434. /*
  435. * @Transactional public void deleteRoom(int room_id, boolean is_delete) {
  436. * String sql = "UPDATE room_details SET is_delete = ? WHERE room_id = ? "; try
  437. * { jdbcTemplate.update(sql, is_delete, room_id); }catch (DataAccessException
  438. * e) { e.printStackTrace(); }
  439. *
  440. * }
  441. */
  442. @Transactional
  443. public List<Map<String, Object>> getItAssetMapping(int roomId, String assetType) {
  444. String sql = "";
  445. if (assetType.equalsIgnoreCase("itasset")) {
  446. sql = "SELECT md.*,m.it_map_id \r\n" + "FROM it_mapping m\r\n"
  447. + "JOIN it_master_details md ON m.it_details_id = md.it_details_id\r\n"
  448. + "WHERE m.room_id = ? and m.is_active='1' and m.is_delete='0'\r\n";
  449. } else if (assetType.equalsIgnoreCase("furnitureasset")) {
  450. sql = " select sm.asset_name as assetname,fm.* from asset_sub_master sm inner join \r\n"
  451. + " furniture_mapping fm on sm.sub_asset_id = fm.sub_asset_id where fm.is_active='1' and fm.is_delete='0' and fm.room_id = ?";
  452. } else if (assetType.equalsIgnoreCase("electricalasset")) {
  453. sql = "select sm.asset_name as assetname,em.* from asset_sub_master sm inner join \r\n"
  454. + " electrical_mapping em on sm.sub_asset_id = em.sub_asset_id where em.is_active='1' and em.is_delete='0' and em.room_id = ?";
  455. }
  456. try {
  457. return jdbcTemplate.queryForList(sql, roomId);
  458. } catch (Exception e) {
  459. e.printStackTrace();
  460. return new ArrayList<>();
  461. }
  462. }
  463. @Transactional
  464. public String deleteAssetMapping(int it_map_id, boolean is_delete) {
  465. String sql = "UPDATE it_mapping SET is_delete = ? WHERE it_map_id = ? ";
  466. try {
  467. jdbcTemplate.update(sql, is_delete, it_map_id);
  468. return "Asset Deleted";
  469. } catch (Exception e) {
  470. e.printStackTrace();
  471. return "error";
  472. }
  473. }
  474. @Transactional
  475. public String updateFurturQty(int id, int qty, String assetType) {
  476. String sql = "";
  477. if (assetType.equalsIgnoreCase("furnitureasset")) {
  478. sql = "UPDATE furniture_mapping SET asset_qty = ? WHERE furniture_map_id = ?";
  479. } else if (assetType.equalsIgnoreCase("electricalasset")) {
  480. sql = "UPDATE electrical_mapping SET asset_qty = ? WHERE electrical_map_id = ?";
  481. }
  482. try {
  483. jdbcTemplate.update(sql, qty, id);
  484. return "sucess";
  485. } catch (Exception e) {
  486. e.printStackTrace();
  487. return "error";
  488. }
  489. }
  490. @Transactional
  491. public List<Map<String, Object>> getSchoolAssetForManagement(int school_id) {
  492. String sql = "SELECT md.* FROM school_list m INNER JOIN it_master_details md ON m.udise COLLATE utf8mb4_general_ci = md.udise\r\n"
  493. + "WHERE m.id = ?";
  494. try {
  495. return jdbcTemplate.queryForList(sql, school_id);
  496. } catch (Exception e) {
  497. e.printStackTrace();
  498. return new ArrayList<>();
  499. }
  500. }
  501. @Transactional
  502. public List<Map<String, Object>> getSchoolAsset(int school_id, String type) {
  503. String sql = "SELECT md.* FROM school_list m INNER JOIN it_master_details md ON m.udise COLLATE utf8mb4_general_ci = md.udise\r\n"
  504. + "WHERE m.id = ? and md.is_mapped = 0 and md.hardware_type LIKE '%" + type + "%'";
  505. try {
  506. return jdbcTemplate.queryForList(sql, school_id);
  507. } catch (Exception e) {
  508. e.printStackTrace();
  509. return new ArrayList<>();
  510. }
  511. }
  512. @Transactional
  513. public String addAsset(String assetCode, String name, String source, String serialNum, String vendorDetail,
  514. String invoice_num, String udise, boolean is_online) {
  515. String sql = "INSERT INTO it_master_details (asset_name, source_of_asset, serial_no, hardware_type, vendor_name, udise, is_online, invoice_num) VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
  516. try {
  517. jdbcTemplate.update(sql, assetCode, source, serialNum, name, vendorDetail, udise, is_online, invoice_num);
  518. return "Sucess";
  519. } catch (DataAccessException e) {
  520. e.printStackTrace();
  521. return "Error";
  522. }
  523. }
  524. @Transactional
  525. public Map<String, Object> getAssets(int it_details_id) {
  526. String sql = "SELECT * FROM it_master_details WHERE it_details_id = ? ";
  527. return jdbcTemplate.queryForMap(sql, it_details_id);
  528. }
  529. @Transactional
  530. public String editAsset(String assetCode, String name, String source, String serialNum, String vendorDetail,
  531. String invoice_num, int it_details_id) {
  532. String sql = "UPDATE it_master_details SET asset_name = ?, source_of_asset = ?, serial_no = ?, hardware_type = ?, vendor_name = ?, invoice_num = ? WHERE it_details_id = ? ";
  533. try {
  534. jdbcTemplate.update(sql, assetCode, source, serialNum, name, vendorDetail, invoice_num, it_details_id);
  535. return "Success";
  536. } catch (DataAccessException e) {
  537. e.printStackTrace();
  538. return "Error";
  539. }
  540. }
  541. @Transactional
  542. public void mapAssets(int room_id, int floor_id, int school_id, int it_details_id, int building_id) {
  543. saveAssetMapping(room_id, floor_id, school_id, it_details_id, building_id);
  544. updateMapping(it_details_id);
  545. }
  546. private void updateMapping(int it_details_id) {
  547. String sql = "UPDATE it_master_details SET is_mapped = true WHERE it_details_id = ?";
  548. try {
  549. jdbcTemplate.update(sql, it_details_id);
  550. } catch (DataAccessException e) {
  551. e.printStackTrace();
  552. }
  553. }
  554. private void saveAssetMapping(int room_id, int floor_id, int school_id, int it_details_id, int building_id) {
  555. String sql = "INSERT INTO it_mapping (room_id, floor_id, school_id, it_details_id, building_id) VALUES (?, ?, ?, ?, ?)";
  556. try {
  557. jdbcTemplate.update(sql, room_id, floor_id, school_id, it_details_id, building_id);
  558. } catch (DataAccessException e) {
  559. e.printStackTrace();
  560. }
  561. }
  562. @Transactional
  563. public void addFurAsset(int sub_asset_id, int asset_qty, int room_id, int building_id, int floor_id, int school_id,
  564. String assetType) {
  565. String sql = "";
  566. if (assetType.equalsIgnoreCase("furnitureasset")) {
  567. sql = "INSERT INTO furniture_mapping (sub_asset_id, asset_qty, room_id,building_id, floor_id, school_id) VALUES (?,?, ?, ?, ?, ?)";
  568. } else if (assetType.equalsIgnoreCase("electricalasset")) {
  569. sql = "INSERT INTO electrical_mapping (sub_asset_id, asset_qty, room_id,building_id, floor_id, school_id) VALUES (?,?, ?, ?, ?, ?)";
  570. }
  571. try {
  572. jdbcTemplate.update(sql, sub_asset_id, asset_qty, room_id, building_id, floor_id, school_id);
  573. } catch (DataAccessException e) {
  574. e.printStackTrace();
  575. }
  576. }
  577. // checking for view
  578. public List<Map<String, Object>> getStudentStrengthBySchoolId(@RequestParam int schoolId) {
  579. String sql = "SELECT total_boys, total_girls, others, total_students FROM student_strength WHERE school_id = ?";
  580. return jdbcTemplate.queryForList(sql, schoolId);
  581. }
  582. public List<Map<String, Object>> getotherdetailsBySchoolId(@RequestParam int schoolId) {
  583. String sql = "select*from school_buildup_area where school_id=?";
  584. return jdbcTemplate.queryForList(sql, schoolId);
  585. }
  586. public List<Map<String, Object>> getStaffStrengthBySchoolId(@RequestParam int schoolId) {
  587. String sql = "SELECT * FROM staff_strength_1 WHERE school_id = ?";
  588. return jdbcTemplate.queryForList(sql, schoolId);
  589. }
  590. @Transactional
  591. public Map<String, Object> getIt_Details(int it_map_id) {
  592. Map<String, Object> result = new HashMap<>();
  593. try {
  594. String sql = "SELECT * FROM it_mapping WHERE it_map_id = ? ";
  595. result = jdbcTemplate.queryForMap(sql, it_map_id);
  596. } catch (Exception e) {
  597. e.printStackTrace();
  598. }
  599. return result;
  600. }
  601. // @Transactional
  602. // public String unmapAsset(int it_details_id) {
  603. // String sql = "UPDATE it_master_details SET is_mapped = false WHERE it_details_id = ? ";
  604. //
  605. // try {
  606. // jdbcTemplate.update(sql, it_details_id);
  607. // return "Asset Unmapped";
  608. // } catch (Exception e) {
  609. // e.printStackTrace();
  610. // return "error";
  611. // }
  612. // }
  613. @Transactional
  614. public List<Integer> getassetRoomID(int room_id) {
  615. List<Integer> assetIds = new ArrayList<>();
  616. try {
  617. String sql = "SELECT it_details_id FROM it_mapping WHERE room_id = ?";
  618. assetIds = jdbcTemplate.queryForList(sql, Integer.class, room_id);
  619. } catch (Exception e) {
  620. e.printStackTrace();
  621. }
  622. return assetIds;
  623. }
  624. @Transactional
  625. public void unmapItAssetMaster(Integer it_details_id) {
  626. String sql = "UPDATE it_master_details SET is_mapped = false WHERE it_details_id = ? ";
  627. try {
  628. jdbcTemplate.update(sql, it_details_id);
  629. } catch (Exception e) {
  630. e.printStackTrace();
  631. }
  632. }
  633. @Transactional
  634. public int checkBuilding(String building_name, int school_id) {
  635. String sql = "SELECT CASE \r\n"
  636. + " WHEN COUNT(*) > 0 THEN 1 \r\n"
  637. + " ELSE 0 \r\n"
  638. + " END AS is_existing\r\n"
  639. + "FROM buildings\r\n"
  640. + "WHERE school_id = ? AND building_name = ?";
  641. try {
  642. return jdbcTemplate.queryForObject(sql, Integer.class, school_id, building_name);
  643. } catch (Exception e) {
  644. e.printStackTrace();
  645. return 5;
  646. }
  647. }
  648. @Transactional
  649. public int getAssetCount(String udise, boolean is_online) {
  650. String sql = "SELECT COUNT(*) FROM it_master_details WHERE is_online = ? and udise = ?;";
  651. try {
  652. return jdbcTemplate.queryForObject(sql, Integer.class, is_online, udise);
  653. } catch (Exception e) {
  654. e.printStackTrace();
  655. return -1;
  656. }
  657. }
  658. @Transactional
  659. public String assetUpdation(int asset_qty, String assetType, int sub_asset_id, int school_id, int room_id,
  660. int building_id, int floor_id) {
  661. int check = mapAssetMaster(asset_qty, assetType, sub_asset_id, school_id);
  662. if(check ==1) {
  663. Map<String, Object> data = ckeckAssetQty(room_id, sub_asset_id, assetType);
  664. int asset_Map_Id = (Integer) data.get("asset_Map_Id") !=null ? (Integer) data.get("asset_Map_Id") : 0;
  665. int qty = (Integer) data.get("asset_qty") !=null ? (Integer) data.get("asset_qty") : 0;
  666. int total = qty+asset_qty;
  667. if(asset_Map_Id!=0) {
  668. updateAssetQty(asset_Map_Id, assetType, total);
  669. }else {
  670. addFurAsset(sub_asset_id, asset_qty, room_id,building_id, floor_id, school_id, assetType );
  671. }
  672. return "Sucess";
  673. } else {
  674. return "Add Sufficient Quantity";
  675. }
  676. }
  677. private void updateAssetQty(int asset_Map_Id, String assetType, int total) {
  678. String sql="";
  679. if (assetType.equalsIgnoreCase("furnitureasset")) {
  680. sql = "UPDATE furniture_mapping SET asset_qty = ? WHERE furniture_map_id = ?";
  681. } else if (assetType.equalsIgnoreCase("electricalasset")) {
  682. sql = "UPDATE electrical_mapping SET asset_qty = ? WHERE electrical_map_id = ?";
  683. }
  684. jdbcTemplate.update(sql, total, asset_Map_Id);
  685. }
  686. public Map<String, Object> ckeckAssetQty(int room_id, int sub_asset_id, String assetType) {
  687. String sql = "";
  688. if ("furnitureasset".equalsIgnoreCase(assetType)) {
  689. sql = "SELECT furniture_map_id as asset_Map_Id, asset_qty FROM furniture_mapping WHERE room_id = ? AND sub_asset_id = ?";
  690. } else if ("electricalasset".equalsIgnoreCase(assetType)) {
  691. sql = "SELECT electrical_map_id as asset_Map_Id, asset_qty FROM electrical_mapping WHERE room_id = ? AND sub_asset_id = ?";
  692. }
  693. try {
  694. return jdbcTemplate.queryForMap(sql, room_id, sub_asset_id);
  695. } catch (Exception e) {
  696. e.printStackTrace();
  697. return Map.of();
  698. }
  699. }
  700. @Transactional
  701. public int mapAssetMaster(int asset_qty, String assetType, int sub_asset_id, int school_id) {
  702. Map<String, Object> assetMaster = getAssetMasterBySchlId(sub_asset_id, school_id, assetType);
  703. int mapped = assetMaster.get("mapped_qty") != null ? (Integer) assetMaster.get("mapped_qty") : 0;
  704. int unMapped = assetMaster.get("unmapped_qty") != null ? (Integer) assetMaster.get("unmapped_qty") : 0;
  705. if(unMapped>=asset_qty) {
  706. int map = mapped+asset_qty;
  707. int unMap = unMapped-asset_qty;
  708. return updateAssetmaster(map, unMap, school_id, sub_asset_id, assetType);
  709. }
  710. return 0;
  711. }
  712. @Transactional
  713. public int updateAssetmaster(int map, int unMap, int school_id, int sub_asset_id, String assetType) {
  714. String sql="";
  715. if (assetType.equalsIgnoreCase("furnitureasset")) {
  716. sql = "UPDATE furniture_master SET mapped_qty = ?, unmapped_qty = ? WHERE school_id = ? and sub_asset_id = ?";
  717. } else if (assetType.equalsIgnoreCase("electricalasset")) {
  718. sql = "UPDATE electrical_master SET mapped_qty = ?, unmapped_qty = ? WHERE school_id = ? and sub_asset_id = ?";
  719. }
  720. try {
  721. jdbcTemplate.update(sql, map, unMap, school_id, sub_asset_id);
  722. return 1;
  723. } catch (DataAccessException e) {
  724. e.printStackTrace();
  725. return 0;
  726. }
  727. }
  728. @Transactional
  729. public Map<String, Object> getAssetMasterBySchlId(int sub_asset_id, int school_id, String assetType) {
  730. String sql="";
  731. if (assetType.equalsIgnoreCase("furnitureasset")) {
  732. sql = "SELECT * from furniture_master where school_id = ? and sub_asset_id = ?";
  733. } else if (assetType.equalsIgnoreCase("electricalasset")) {
  734. sql = "SELECT * from electrical_master where school_id = ? and sub_asset_id = ?";
  735. }
  736. try {
  737. List<Map<String, Object>> data =jdbcTemplate.queryForList(sql, school_id, sub_asset_id);
  738. if(data!=null && !data.isEmpty()) {
  739. return data.get(0);
  740. }
  741. return Map.of();
  742. } catch (Exception e) {
  743. e.printStackTrace();
  744. return Map.of();
  745. }
  746. }
  747. @Transactional
  748. public List<Map<String, Object>> getElectricalAssetMasterByRoomId(int room_id) {
  749. try {
  750. String sql = "select sub_asset_id, school_id, asset_qty from electrical_mapping where room_id=? and is_active = 1 and is_delete = 0";
  751. return jdbcTemplate.queryForList(sql, room_id);
  752. } catch (Exception e) {
  753. e.printStackTrace();
  754. return List.of();
  755. }
  756. }
  757. @Transactional
  758. public List<Map<String, Object>> getFurnitureAssetMasterByRoomId(int room_id) {
  759. try {
  760. String sql = "select sub_asset_id, school_id, asset_qty from furniture_mapping where room_id=? and is_active = 1 and is_delete = 0";
  761. return jdbcTemplate.queryForList(sql, room_id);
  762. } catch (Exception e) {
  763. e.printStackTrace();
  764. return List.of();
  765. }
  766. }
  767. @Transactional
  768. private List<Map<String, Object>> getElectricalAssetMasterByFloorId(int floor_id) {
  769. try {
  770. String sql = "select sub_asset_id, school_id, asset_qty from electrical_mapping where floor_id=? and is_active = 1 and is_delete = 0";
  771. return jdbcTemplate.queryForList(sql, floor_id);
  772. } catch (Exception e) {
  773. e.printStackTrace();
  774. return List.of();
  775. }
  776. }
  777. @Transactional
  778. private List<Map<String, Object>> getFurnitureAssetMasterByFloorId(int floor_id) {
  779. try {
  780. String sql = "select sub_asset_id, school_id, asset_qty from furniture_mapping where floor_id=? and is_active = 1 and is_delete = 0";
  781. return jdbcTemplate.queryForList(sql, floor_id);
  782. } catch (Exception e) {
  783. e.printStackTrace();
  784. return List.of();
  785. }
  786. }
  787. @Transactional
  788. private List<Map<String, Object>> getElectricalAssetMasterByBuildingId(int building_id) {
  789. try {
  790. String sql = "select sub_asset_id, school_id, asset_qty from electrical_mapping where building_id=? and is_active = 1 and is_delete = 0";
  791. return jdbcTemplate.queryForList(sql, building_id);
  792. } catch (Exception e) {
  793. e.printStackTrace();
  794. return List.of();
  795. }
  796. }
  797. @Transactional
  798. private List<Map<String, Object>> getFurnitureAssetMasterByBuildingId(int building_id) {
  799. try {
  800. String sql = "select sub_asset_id, school_id, asset_qty from furniture_mapping where building_id=? and is_active = 1 and is_delete = 0";
  801. return jdbcTemplate.queryForList(sql, building_id);
  802. } catch (Exception e) {
  803. e.printStackTrace();
  804. return List.of();
  805. }
  806. }
  807. @Transactional
  808. public String updateAssetExecution(List<Map<String, Object>> assets) {
  809. try {
  810. for(Map<String, Object> asset : assets) {
  811. int id = Integer.parseInt(asset.get("id").toString());
  812. int qty = Integer.parseInt(asset.get("qty").toString());
  813. String assetType = (String) asset.get("assetType");
  814. int school_id = Integer.parseInt(asset.get("schid").toString());
  815. int sub_asset_id = Integer.parseInt(asset.get("subid").toString());
  816. int flag = Integer.parseInt(asset.get("flag").toString());
  817. int originalQty = Integer.parseInt(asset.get("originalQty").toString());
  818. Map<String, Object> assetMaster = getAssetMasterBySchlId(sub_asset_id, school_id, assetType);
  819. int mapped = assetMaster.get("mapped_qty") != null ? (Integer) assetMaster.get("mapped_qty") : 0;
  820. int unMapped = assetMaster.get("unmapped_qty") != null ? (Integer) assetMaster.get("unmapped_qty") : 0;
  821. int master = assetMaster.get("master_qty") != null ? (Integer) assetMaster.get("master_qty") : 0;
  822. int map = 0;
  823. int unmap = 0;
  824. if(flag == -1) {
  825. int diff = originalQty-qty;
  826. map=mapped-diff;
  827. unmap = unMapped+diff;
  828. if(unmap<=master) {
  829. int result = updateAssetmaster(map, unmap, school_id, sub_asset_id, assetType);
  830. } else {
  831. return "Add Sufficient Master Quantity";
  832. }
  833. } else if (flag == 0) {
  834. }else if(flag == 1) {
  835. int diff = qty-originalQty;
  836. map=mapped+diff;
  837. unmap = unMapped-diff;
  838. if(map<=master) {
  839. int result = updateAssetmaster(map, unmap, school_id, sub_asset_id, assetType);
  840. } else {
  841. return "Add Sufficient Master Quantity";
  842. }
  843. }
  844. String data = updateFurturQty(id, qty, assetType);
  845. }
  846. return "Sucess";
  847. } catch (Exception e) {
  848. e.printStackTrace();
  849. return "Error";
  850. }
  851. }
  852. }