SportMovemodeBusiness.java 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393
  1. package com.medex.mdap.re.sportmovemode.business;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import org.springframework.beans.BeanUtils;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.stereotype.Component;
  7. import org.springframework.transaction.annotation.Propagation;
  8. import org.springframework.transaction.annotation.Transactional;
  9. import com.medex.mdap.base.security.UserInfo;
  10. import com.medex.mdap.pub.exception.BusinessException;
  11. import com.medex.mdap.pub.exception.ExceptionCode;
  12. import com.medex.mdap.re.sportaction.pojo.SportActionVO;
  13. import com.medex.mdap.re.sportaction.service.SportActionService;
  14. import com.medex.mdap.re.sportactionrecord.pojo.SportActionrecordVO;
  15. import com.medex.mdap.re.sportactionrecord.service.SportActionrecordService;
  16. import com.medex.mdap.re.sportactionrecord.view.SportActionrecordView;
  17. import com.medex.mdap.re.sportactionrecorddetail.pojo.SportActionrecordDetailVO;
  18. import com.medex.mdap.re.sportactionrecorddetail.service.SportActionrecordDetailService;
  19. import com.medex.mdap.re.sportactionrecorddetail.view.SportActionrecordDetailView;
  20. import com.medex.mdap.re.sporteachgroup.pojo.SportEachgroupVO;
  21. import com.medex.mdap.re.sporteachgroup.service.SportEachgroupService;
  22. import com.medex.mdap.re.sporteachgroup.view.SportEachgroupView;
  23. import com.medex.mdap.re.sportmovemode.pojo.SportMovemodeVO;
  24. import com.medex.mdap.re.sportmovemode.service.SportMovemodeService;
  25. import com.medex.mdap.re.sportmovemode.view.RetrunMoveMode;
  26. import com.medex.mdap.re.sportmovemode.view.SportMovemodeView;
  27. import com.medex.mdap.re.sportscheme.service.SportSchemeService;
  28. import com.medex.mdap.util.JSONProcessUtil;
  29. import com.medex.mdap.util.PrimaryKeyUtil;
  30. @Component
  31. public class SportMovemodeBusiness {
  32. @Autowired
  33. SportSchemeService sportSchemeService;
  34. @Autowired
  35. SportMovemodeService sportMovemodeService;
  36. @Autowired
  37. SportActionrecordService sportActionrecordService;
  38. @Autowired
  39. SportActionService sportActionService;
  40. @Autowired
  41. SportEachgroupService sportEachgroupService;
  42. @Autowired
  43. private PrimaryKeyUtil primaryKeyUtil;
  44. @Autowired
  45. SportActionrecordDetailService sportActionrecordDetailService;
  46. //查询列表 支持模糊
  47. @Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
  48. public List<SportMovemodeView> selectSportMovemodeAll(String json, UserInfo userInfo) {
  49. // TODO Auto-generated method stub
  50. //定义返回值
  51. List<SportMovemodeView> listSportMovemodeView = new ArrayList<SportMovemodeView>();
  52. List<SportMovemodeView> movemodes = new ArrayList<SportMovemodeView>();
  53. //获取前端传值
  54. SportMovemodeView sportMovemodeView = JSONProcessUtil.parseJsonObject(json, SportMovemodeView.class);
  55. //将登陆人的基本信息赋值给对象
  56. sportMovemodeView.setPk_group(userInfo.pkGroup);
  57. sportMovemodeView.setPk_org(userInfo.pkOrg);
  58. sportMovemodeView.setPk_dept(userInfo.pkDept);
  59. List<SportMovemodeView> listView = sportMovemodeService.selectSportMovemodeAll(sportMovemodeView);
  60. //查询动作方式
  61. for(SportMovemodeView movemodeView : listView){
  62. listSportMovemodeView.clear();
  63. movemodes.clear();
  64. //根据动作方式查询动作记录表中动作N的动作详情 获得所有组数的主键
  65. List<SportActionrecordView> listSportActionrecord = sportActionrecordService.selectCordPkActionByModePk(movemodeView);
  66. for(SportActionrecordView sportActionrecordView : listSportActionrecord){
  67. //去动作明细表 根据动作N的主键找到所有动作的主键
  68. List<SportActionrecordDetailView> listPkAction = sportActionrecordDetailService.selectPkActionByActionrecordPk(sportActionrecordView);
  69. //根据所有动作的主键找到动作的名称
  70. for(SportActionrecordDetailView sportActionrecordDetailView : listPkAction){
  71. //根据主键查询动作
  72. SportActionVO sportActionVO = sportActionService.selectById(sportActionrecordDetailView.getRe_sport_action());
  73. sportActionrecordDetailView.setActionName(sportActionVO.getName());
  74. }
  75. sportActionrecordView.setDetailList(listPkAction);
  76. }
  77. movemodeView.setListSportActionrecord(listSportActionrecord);
  78. }
  79. return listView;
  80. }
  81. @Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
  82. public List<RetrunMoveMode> insertSportMovemodeAll(String json, UserInfo userInfo) {
  83. // TODO Auto-generated method stub
  84. //定义返回值
  85. List<RetrunMoveMode> list = new ArrayList<RetrunMoveMode>();
  86. RetrunMoveMode retrun = new RetrunMoveMode();
  87. List<SportActionrecordView> cordListRe = new ArrayList<SportActionrecordView>();
  88. List<SportEachgroupView> eachListRe = new ArrayList<SportEachgroupView>();
  89. List<SportActionrecordDetailView> detailListRe = new ArrayList<SportActionrecordDetailView>();
  90. //获得前端传值
  91. RetrunMoveMode retrunMoveMode = JSONProcessUtil.parseJsonObject(json, RetrunMoveMode.class);
  92. //新增动作方式主表
  93. SportMovemodeVO sportMovemodeVo = new SportMovemodeVO();
  94. SportMovemodeView sportMovemodeView = retrunMoveMode.getSportMovemodeView();
  95. BeanUtils.copyProperties(sportMovemodeView, sportMovemodeVo);
  96. sportMovemodeVo.setPk_dept(userInfo.getPkDept());
  97. if(null != sportMovemodeView.getPk_group() || !"".equals(sportMovemodeView.getPk_group())){
  98. sportMovemodeVo.setPk_group(userInfo.getPkGroup());
  99. }
  100. sportMovemodeVo.setPk_org(userInfo.getPkOrg());
  101. sportMovemodeVo.setCreator(userInfo.getPkPsndocName());
  102. sportMovemodeVo.setCreatetime(primaryKeyUtil.createTs());
  103. sportMovemodeVo.setDr(0);
  104. sportMovemodeService.insert(sportMovemodeVo);
  105. //返回值
  106. BeanUtils.copyProperties(sportMovemodeVo,sportMovemodeView);
  107. retrun.setSportMovemodeView(sportMovemodeView);
  108. //新增动作记录
  109. List<SportActionrecordView> cordList = retrunMoveMode.getCordList();
  110. //每次根据新增的值覆盖之前的值
  111. SportActionrecordVO sportActionrecordVO = new SportActionrecordVO();
  112. for(SportActionrecordView sportActionrecordView : cordList){
  113. eachListRe.clear();
  114. detailListRe.clear();
  115. BeanUtils.copyProperties(sportActionrecordView, sportActionrecordVO);
  116. sportActionrecordVO.setPk_sport_movemode(sportMovemodeVo.getPk_sport_movemode());
  117. sportActionrecordVO.setDr(0);
  118. sportActionrecordService.insert(sportActionrecordVO);
  119. //返回值
  120. BeanUtils.copyProperties(sportActionrecordVO,sportActionrecordView);
  121. //新增动作明细
  122. List<SportActionrecordDetailView> detailList = sportActionrecordView.getDetailList();
  123. //每次根据新增的值覆盖之前的值
  124. SportActionrecordDetailVO SportActionrecordDetailVO = new SportActionrecordDetailVO();
  125. for(SportActionrecordDetailView sportActionrecordDetailView : detailList){
  126. BeanUtils.copyProperties(sportActionrecordDetailView, SportActionrecordDetailVO);
  127. SportActionrecordDetailVO.setRe_sport_actionrecord(sportActionrecordView.getPk_sport_actionrecord());
  128. sportActionrecordDetailService.insert(SportActionrecordDetailVO);
  129. //返回值
  130. BeanUtils.copyProperties( SportActionrecordDetailVO,sportActionrecordDetailView);
  131. detailListRe.add(sportActionrecordDetailView);
  132. }
  133. //新增每组记录
  134. List<SportEachgroupView> eachList = sportActionrecordView.getEachList();
  135. //每次根据新增的值覆盖之前的值
  136. SportEachgroupVO sportEachgroupVO = new SportEachgroupVO();
  137. for(SportEachgroupView SportEachgroupView : eachList){
  138. BeanUtils.copyProperties(SportEachgroupView, sportEachgroupVO);
  139. sportEachgroupVO.setPk_sport_actionrecord(sportActionrecordView.getPk_sport_actionrecord());
  140. sportEachgroupService.insert(sportEachgroupVO);
  141. //返回值
  142. BeanUtils.copyProperties( sportEachgroupVO,SportEachgroupView);
  143. eachListRe.add(SportEachgroupView);
  144. }
  145. sportActionrecordView.setDetailList(detailListRe);
  146. sportActionrecordView.setEachList(eachListRe);
  147. cordListRe.add(sportActionrecordView);
  148. }
  149. retrun.setCordList(cordListRe);
  150. list.add(retrun);
  151. return list;
  152. }
  153. //修改
  154. @Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
  155. public List<RetrunMoveMode> updateSportMovemodeAll(String json, UserInfo userInfo) {
  156. // TODO Auto-generated method stub
  157. //定义返回值
  158. List<RetrunMoveMode> list = new ArrayList<RetrunMoveMode>();
  159. RetrunMoveMode retrun = new RetrunMoveMode();
  160. List<SportActionrecordView> cordListRe = new ArrayList<SportActionrecordView>();
  161. List<SportEachgroupView> eachListRe = new ArrayList<SportEachgroupView>();
  162. List<SportActionrecordDetailView> detailListRe = new ArrayList<SportActionrecordDetailView>();
  163. //接收前端传参
  164. RetrunMoveMode retrunMoveMode = JSONProcessUtil.parseJsonObject(json, RetrunMoveMode.class);
  165. //根据运动方式主表查询动作方式记录表 动作明细表 组数表并且删除
  166. SportMovemodeView sportMovemodeView = retrunMoveMode.getSportMovemodeView();
  167. //查询运动方式主表
  168. SportMovemodeVO sportMovemodeVo = new SportMovemodeVO();
  169. BeanUtils.copyProperties(sportMovemodeView,sportMovemodeVo);
  170. SportMovemodeVO sportMovemodeVO = sportMovemodeService.selectById(sportMovemodeVo);
  171. //查询动作记录表中的数据
  172. List<SportActionrecordView> cordListRe1 = sportActionrecordService.selectActionCordByModePK(sportMovemodeVO);
  173. for(SportActionrecordView sportActionrecordView : cordListRe1){
  174. //根据动作记录的主键查询动作明细表
  175. detailListRe = sportActionrecordDetailService.selectPkActionByActionrecordPk(sportActionrecordView);
  176. //执行删除动作明细表
  177. for(SportActionrecordDetailView sportActionrecordDetailView : detailListRe){
  178. sportActionrecordDetailService.deleteById(sportActionrecordDetailView.getPk_sport_actionrecord_detail());
  179. }
  180. //根据动作记录的主键查询每组记录表
  181. eachListRe = sportEachgroupService.selectEachGroupBypkCord(sportActionrecordView);
  182. //执行删除询每组记录表
  183. for(SportEachgroupView SportEachgroupView : eachListRe){
  184. sportEachgroupService.deleteById(SportEachgroupView.getPk_sport_eachgroup());
  185. }
  186. //执行删除动作记录
  187. sportActionrecordService.deleteById(sportActionrecordView.getPk_sport_actionrecord());
  188. }
  189. //修改主表
  190. BeanUtils.copyProperties(sportMovemodeView, sportMovemodeVo);
  191. sportMovemodeVo.setPk_dept(userInfo.getPkDept());
  192. if(null != sportMovemodeView.getPk_group() || !"".equals(sportMovemodeView.getPk_group())){
  193. sportMovemodeVo.setPk_group(userInfo.getPkGroup());
  194. }
  195. sportMovemodeVo.setPk_org(userInfo.getPkOrg());
  196. sportMovemodeVo.setModifier(userInfo.getPkPsndocName());
  197. sportMovemodeVo.setModifiedtime(primaryKeyUtil.createTs());
  198. /*if(sportMovemodeVO.getEntablestate() != sportMovemodeView.getEntablestate()){
  199. //是否被引用
  200. int count = sportSchemeService.selectCountByPkMove(sportMovemodeVO);
  201. if(count != 0){
  202. throw new BusinessException(ExceptionCode.UPDATEDRUGDIC);
  203. }
  204. }*/
  205. sportMovemodeService.updateSelectiveById(sportMovemodeVo);
  206. //返回值
  207. BeanUtils.copyProperties(sportMovemodeVo,sportMovemodeView);
  208. retrun.setSportMovemodeView(sportMovemodeView);
  209. //新增动作记录
  210. List<SportActionrecordView> cordList = retrunMoveMode.getCordList();
  211. //每次根据新增的值覆盖之前的值
  212. SportActionrecordVO sportActionrecordVO = new SportActionrecordVO();
  213. for(SportActionrecordView sportActionrecordView : cordList){
  214. eachListRe.clear();
  215. detailListRe.clear();
  216. BeanUtils.copyProperties(sportActionrecordView, sportActionrecordVO);
  217. sportActionrecordVO.setPk_sport_movemode(sportMovemodeVo.getPk_sport_movemode());
  218. sportActionrecordService.insert(sportActionrecordVO);
  219. //返回值
  220. BeanUtils.copyProperties(sportActionrecordVO,sportActionrecordView);
  221. //新增动作明细
  222. List<SportActionrecordDetailView> detailList = sportActionrecordView.getDetailList();
  223. //每次根据新增的值覆盖之前的值
  224. SportActionrecordDetailVO SportActionrecordDetailVO = new SportActionrecordDetailVO();
  225. for(SportActionrecordDetailView sportActionrecordDetailView : detailList){
  226. BeanUtils.copyProperties(sportActionrecordDetailView, SportActionrecordDetailVO);
  227. SportActionrecordDetailVO.setRe_sport_actionrecord(sportActionrecordView.getPk_sport_actionrecord());
  228. sportActionrecordDetailService.insert(SportActionrecordDetailVO);
  229. //返回值
  230. BeanUtils.copyProperties( SportActionrecordDetailVO,sportActionrecordDetailView);
  231. detailListRe.add(sportActionrecordDetailView);
  232. }
  233. //新增每组记录
  234. List<SportEachgroupView> eachList = sportActionrecordView.getEachList();
  235. //每次根据新增的值覆盖之前的值
  236. SportEachgroupVO sportEachgroupVO = new SportEachgroupVO();
  237. for(SportEachgroupView SportEachgroupView : eachList){
  238. BeanUtils.copyProperties(SportEachgroupView, sportEachgroupVO);
  239. sportEachgroupVO.setPk_sport_actionrecord(sportActionrecordView.getPk_sport_actionrecord());
  240. sportEachgroupService.insert(sportEachgroupVO);
  241. //返回值
  242. BeanUtils.copyProperties( sportEachgroupVO,SportEachgroupView);
  243. eachListRe.add(SportEachgroupView);
  244. }
  245. sportActionrecordView.setDetailList(detailListRe);
  246. sportActionrecordView.setEachList(eachListRe);
  247. cordListRe.add(sportActionrecordView);
  248. }
  249. retrun.setCordList(cordListRe);
  250. list.add(retrun);
  251. return list;
  252. }
  253. //删除
  254. @Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
  255. public List<RetrunMoveMode> deleteSportMovemodeAll(String json) {
  256. //定义返回值
  257. List<RetrunMoveMode> list = new ArrayList<RetrunMoveMode>();
  258. //全局变量
  259. List<SportActionrecordView> cordListRe = new ArrayList<SportActionrecordView>();
  260. List<SportEachgroupView> eachListRe = new ArrayList<SportEachgroupView>();
  261. List<SportActionrecordDetailView> detailListRe = new ArrayList<SportActionrecordDetailView>();
  262. //查询要修改的这条对象的详情
  263. //获得前端传值
  264. RetrunMoveMode retrunMoveMode = JSONProcessUtil.parseJsonObject(json, RetrunMoveMode.class);
  265. //查询运动方式主表
  266. SportMovemodeView sportMovemodeView = retrunMoveMode.getSportMovemodeView();
  267. SportMovemodeVO sportMovemodeVo = new SportMovemodeVO();
  268. BeanUtils.copyProperties(sportMovemodeView,sportMovemodeVo);
  269. /*//是否被引用
  270. int count = sportSchemeService.selectCountByPkMove(sportMovemodeVo);
  271. if(count != 0){
  272. throw new BusinessException(ExceptionCode.DELETEDRUGDIC);
  273. }*/
  274. SportMovemodeVO sportMovemodeVO = sportMovemodeService.selectById(sportMovemodeVo);
  275. //查询动作记录表中的数据
  276. cordListRe = sportActionrecordService.selectActionCordByModePK(sportMovemodeVO);
  277. for(SportActionrecordView sportActionrecordView : cordListRe){
  278. //根据动作记录的主键查询动作明细表
  279. detailListRe = sportActionrecordDetailService.selectPkActionByActionrecordPk(sportActionrecordView);
  280. //执行删除动作明细表
  281. for(SportActionrecordDetailView sportActionrecordDetailView : detailListRe){
  282. sportActionrecordDetailService.deleteById(sportActionrecordDetailView.getPk_sport_actionrecord_detail());
  283. }
  284. //根据动作记录的主键查询每组记录表
  285. eachListRe = sportEachgroupService.selectEachGroupBypkCord(sportActionrecordView);
  286. //执行删除询每组记录表
  287. for(SportEachgroupView SportEachgroupView : eachListRe){
  288. sportEachgroupService.deleteById(SportEachgroupView.getPk_sport_eachgroup());
  289. }
  290. //执行删除动作记录
  291. sportActionrecordService.deleteById(sportActionrecordView.getPk_sport_actionrecord());
  292. }
  293. sportMovemodeService.deleteById(sportMovemodeVO.getPk_sport_movemode());
  294. list.add(retrunMoveMode);
  295. return list;
  296. }
  297. //单个查询
  298. public List<RetrunMoveMode> selectSportMovemodeByPKMode(String json) {
  299. // TODO Auto-generated method stub
  300. //定义返回值
  301. List<RetrunMoveMode> list = new ArrayList<RetrunMoveMode>();
  302. RetrunMoveMode retrun = new RetrunMoveMode();
  303. List<SportActionrecordView> cordListRe = new ArrayList<SportActionrecordView>();
  304. //获得前端传值
  305. SportMovemodeView sportMovemodeView = JSONProcessUtil.parseJsonObject(json, SportMovemodeView.class);
  306. //查询运动方式主表
  307. SportMovemodeVO sportMovemodeVo = new SportMovemodeVO();
  308. BeanUtils.copyProperties(sportMovemodeView,sportMovemodeVo);
  309. SportMovemodeVO sportMovemodeVO = sportMovemodeService.selectById(sportMovemodeVo);
  310. //查询动作记录表中的数据
  311. cordListRe = sportActionrecordService.selectActionCordByModePK(sportMovemodeVO);
  312. for(SportActionrecordView sportActionrecordView : cordListRe){
  313. //根据动作记录的主键查询动作明细表
  314. List<SportActionrecordDetailView> detailListRe = sportActionrecordDetailService.selectPkActionByActionrecordPk(sportActionrecordView);
  315. for(SportActionrecordDetailView sportActionrecordDetailView : detailListRe){
  316. //根据主键查询动作
  317. SportActionVO sportActionVO = sportActionService.selectById(sportActionrecordDetailView.getRe_sport_action());
  318. sportActionrecordDetailView.setActionName(sportActionVO.getName());
  319. }
  320. //根据动作记录的主键查询每组记录表
  321. List<SportEachgroupView> eachListRe = sportEachgroupService.selectEachGroupBypkCord(sportActionrecordView);
  322. sportActionrecordView.setEachList(eachListRe);
  323. sportActionrecordView.setDetailList(detailListRe);
  324. }
  325. BeanUtils.copyProperties(sportMovemodeVO,sportMovemodeView);
  326. retrun.setSportMovemodeView(sportMovemodeView);
  327. retrun.setCordList(cordListRe);
  328. list.add(retrun);
  329. return list;
  330. }
  331. public List<SportMovemodeView> selectSportMovemode(String json, UserInfo userInfo) {
  332. //定义返回值
  333. List<SportMovemodeView> listSportMovemodeView = new ArrayList<SportMovemodeView>();
  334. List<SportMovemodeView> movemodes = new ArrayList<SportMovemodeView>();
  335. //获取前端传值
  336. SportMovemodeView sportMovemodeView = JSONProcessUtil.parseJsonObject(json, SportMovemodeView.class);
  337. //将登陆人的基本信息赋值给对象
  338. sportMovemodeView.setPk_group(userInfo.pkGroup);
  339. sportMovemodeView.setPk_org(userInfo.pkOrg);
  340. sportMovemodeView.setPk_dept(userInfo.pkDept);
  341. List<SportMovemodeView> listView = sportMovemodeService.selectSportMovemode(sportMovemodeView);
  342. //查询动作方式
  343. for(SportMovemodeView movemodeView : listView){
  344. listSportMovemodeView.clear();
  345. movemodes.clear();
  346. //根据动作方式查询动作记录表中动作N的动作详情 获得所有组数的主键
  347. List<SportActionrecordView> listSportActionrecord = sportActionrecordService.selectCordPkActionByModePk(movemodeView);
  348. for(SportActionrecordView sportActionrecordView : listSportActionrecord){
  349. //去动作明细表 根据动作N的主键找到所有动作的主键
  350. List<SportActionrecordDetailView> listPkAction = sportActionrecordDetailService.selectPkActionByActionrecordPk(sportActionrecordView);
  351. //根据所有动作的主键找到动作的名称
  352. for(SportActionrecordDetailView sportActionrecordDetailView : listPkAction){
  353. //根据主键查询动作
  354. SportActionVO sportActionVO = sportActionService.selectById(sportActionrecordDetailView.getRe_sport_action());
  355. sportActionrecordDetailView.setActionName(sportActionVO.getName());
  356. }
  357. sportActionrecordView.setDetailList(listPkAction);
  358. }
  359. movemodeView.setListSportActionrecord(listSportActionrecord);
  360. }
  361. return listView;
  362. }
  363. }