FleetDriverMsgServiceImpl.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318
  1. package com.ruoyi.basicData.service.impl;
  2. import com.ruoyi.basicData.domain.FleetCarManage;
  3. import com.ruoyi.basicData.domain.FleetDriverMsg;
  4. import com.ruoyi.basicData.domain.TCorps;
  5. import com.ruoyi.basicData.mapper.FleetCarManageMapper;
  6. import com.ruoyi.basicData.mapper.FleetDriverMsgMapper;
  7. import com.ruoyi.basicData.mapper.TCorpsMapper;
  8. import com.ruoyi.basicData.service.IFleetDriverMsgService;
  9. import com.ruoyi.common.core.domain.AjaxResult;
  10. import com.ruoyi.common.core.domain.entity.SysRole;
  11. import com.ruoyi.common.core.domain.entity.SysUser;
  12. import com.ruoyi.common.utils.DateUtils;
  13. import com.ruoyi.common.utils.SecurityUtils;
  14. import com.ruoyi.common.utils.StringUtils;
  15. import com.ruoyi.orderPlan.domain.Ftmsorderbillscars;
  16. import com.ruoyi.orderPlan.mapper.FtmsorderbillscarsMapper;
  17. import com.ruoyi.system.domain.SysUserRole;
  18. import com.ruoyi.system.mapper.SysRoleMapper;
  19. import com.ruoyi.system.mapper.SysUserMapper;
  20. import com.ruoyi.system.mapper.SysUserPostMapper;
  21. import com.ruoyi.system.mapper.SysUserRoleMapper;
  22. import org.springframework.beans.factory.annotation.Autowired;
  23. import org.springframework.stereotype.Service;
  24. import org.springframework.transaction.annotation.Transactional;
  25. import org.springframework.transaction.interceptor.TransactionAspectSupport;
  26. import java.util.ArrayList;
  27. import java.util.Date;
  28. import java.util.List;
  29. import java.util.Map;
  30. /**
  31. * 【司机】Service业务层处理
  32. *
  33. * @author ruoyi
  34. * @date 2021-03-04
  35. */
  36. @Service
  37. public class FleetDriverMsgServiceImpl implements IFleetDriverMsgService {
  38. @Autowired
  39. private TCorpsMapper corpsMapper;
  40. @Autowired
  41. private SysRoleMapper roleMapper;
  42. @Autowired
  43. private SysUserMapper userMapper;
  44. @Autowired
  45. private SysUserPostMapper userPostMapper;
  46. @Autowired
  47. private SysUserRoleMapper userRoleMapper;
  48. @Autowired
  49. private FleetDriverMsgMapper fleetDriverMsgMapper;
  50. @Autowired
  51. private FleetCarManageMapper fleetCarManageMapper;
  52. @Autowired
  53. private FtmsorderbillscarsMapper ftmsorderbillscarsMapper;
  54. /**
  55. * 查询【司机】
  56. *
  57. * @param id 【司机】ID
  58. * @return 【司机】
  59. */
  60. @Override
  61. public TCorps selectFleetDriverMsgById(Long id) {
  62. return corpsMapper.selectTCorpsById(id);
  63. }
  64. /**
  65. * 查询【司机】列表
  66. *
  67. * @param fleetDriverMsg 【司机】
  68. * @return 【司机】
  69. */
  70. @Override
  71. public List<FleetDriverMsg> selectFleetDriverMsgList(FleetDriverMsg fleetDriverMsg) {
  72. return fleetDriverMsgMapper.selectFleetDriverMsgList(fleetDriverMsg);
  73. }
  74. @Override
  75. public List<Map<String, Object>> selectFleetDriverMsgListMap(FleetDriverMsg fleetDriverMsg) {
  76. return fleetDriverMsgMapper.selectFleetDriverMsgListMap(fleetDriverMsg);
  77. }
  78. /**
  79. * 新增【司机】
  80. *
  81. * @param tCorps 【司机】
  82. * @return 结果
  83. */
  84. @Override
  85. @Transactional
  86. public AjaxResult insertFleetDriverMsg(TCorps tCorps) {
  87. // 检验必填
  88. if (StringUtils.isNull(tCorps.getfPid()) ||
  89. StringUtils.isNull(tCorps.getfName())) {
  90. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  91. return AjaxResult.error("请填写必输项");
  92. }
  93. String typeValue = "[\"102\"]";
  94. tCorps.setfTypeid(typeValue);
  95. tCorps.setfTypename("司机");
  96. tCorps.setfStatus("0");
  97. if (null != tCorps.getfId()) {
  98. // updateDriverPhone(tCorps);
  99. AjaxResult result = this.updateFleetCarManagePhone(tCorps);
  100. String ajaxCode = result.get("code").toString();
  101. if ("500".equals(ajaxCode)) {
  102. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  103. return result;
  104. }
  105. tCorps.setUpdateTime(new Date());
  106. tCorps.setUpdateBy(SecurityUtils.getUsername());
  107. corpsMapper.updateTCorps(tCorps);
  108. return AjaxResult.success();
  109. } else {
  110. SysUser sysUser = new SysUser();
  111. sysUser.setUserName(tCorps.getfTel());
  112. sysUser.setPhonenumber(tCorps.getfTel());
  113. SysUser userPhone = userMapper.checkPhoneUnique(sysUser.getPhonenumber());
  114. if (StringUtils.isNotNull(userPhone) && "T".equals(userPhone.getRelatedNo())) {
  115. return AjaxResult.error("新增用户'" + sysUser.getUserName() + "'失败,手机号码已存在");
  116. } else if (userMapper.checkUserNameUnique(sysUser.getUserName()) > 1) {
  117. return AjaxResult.error("新增用户'" + sysUser.getUserName() + "'失败,登录账号已存在");
  118. }
  119. long userId = 0L;
  120. // 查询是否有用户提前关注小程序
  121. SysUser user = userMapper.selectUserByTel(tCorps.getfTel());
  122. if (StringUtils.isNotNull(user)) {
  123. // 该用户提前关注小程序了
  124. user.setRelatedNo("T");
  125. user.setUserSystem("2");
  126. user.setUpdateTime(new Date());
  127. user.setNickName(tCorps.getfName());
  128. user.setUpdateBy(SecurityUtils.getUsername());
  129. user.setPassword(SecurityUtils.encryptPassword(tCorps.getfTel()));
  130. userMapper.updateUser(user);
  131. userId = user.getUserId();
  132. } else {
  133. // 添加用户表
  134. SysUser use = new SysUser();
  135. use.setUserSystem("2");
  136. use.setUserName(tCorps.getfTel());
  137. use.setNickName(tCorps.getfTel());
  138. use.setPhonenumber(tCorps.getfTel());
  139. //sysUser.setEmail(fleetDriverMsg.get);
  140. use.setUserType("11");
  141. use.setPassword(SecurityUtils.encryptPassword(tCorps.getfTel()));
  142. // 新增用户信息
  143. userMapper.insertUser(use);
  144. userId = use.getUserId();
  145. }
  146. // 新增用户与角色管理
  147. // 查询是否存在车队 角色
  148. SysRole role = roleMapper.selectRoleByName("司机");
  149. if (StringUtils.isNull(role)) {
  150. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  151. return AjaxResult.error("未找到司机角色,请创建司机角色后提交");
  152. }
  153. // 创建用户与角色关联
  154. List<SysUserRole> list = new ArrayList<SysUserRole>();
  155. SysUserRole sysUserRole = new SysUserRole();
  156. sysUserRole.setRoleId(role.getRoleId());
  157. sysUserRole.setUserId(userId);
  158. list.add(sysUserRole);
  159. userRoleMapper.batchUserRole(list);
  160. tCorps.setCreateTime(new Date());
  161. tCorps.setCreateBy(SecurityUtils.getUsername());
  162. corpsMapper.insertTCorps(tCorps);
  163. return AjaxResult.success();
  164. }
  165. }
  166. @Transactional
  167. public void updateDriverPhone(TCorps tCorps) {
  168. TCorps corps = corpsMapper.selectTCorpsById(tCorps.getfId());
  169. SysUser sysUser = userMapper.selectUserByTel(corps.getfTel());
  170. if (StringUtils.isNotNull(sysUser)) {
  171. boolean updateStatus = false;
  172. // 跟新用户手机号以及姓名
  173. if (!sysUser.getPhonenumber().equals(tCorps.getfTel())) {
  174. updateStatus = true;
  175. sysUser.setPhonenumber(tCorps.getfTel());
  176. }
  177. if (!sysUser.getNickName().equals(tCorps.getfTel())) {
  178. updateStatus = true;
  179. sysUser.setNickName(tCorps.getfTel());
  180. }
  181. if (updateStatus) {
  182. sysUser.setUpdateTime(new Date());
  183. sysUser.setUpdateBy(SecurityUtils.getUsername());
  184. userMapper.updateUser(sysUser);
  185. }
  186. }
  187. // 更新司机表手机号以及姓名
  188. ftmsorderbillscarsMapper.updateftmsorderbillscarsDriverNamePhone();
  189. }
  190. @Transactional
  191. public AjaxResult updateFleetCarManagePhone(TCorps tCorps) {
  192. TCorps corps = corpsMapper.selectTCorpsById(tCorps.getfId());
  193. SysUser sysUser = userMapper.selectUserByTel(corps.getfTel());
  194. if (StringUtils.isNotNull(sysUser)) {
  195. SysUser user = new SysUser();
  196. // 跟新用户手机号以及姓名
  197. sysUser.setNickName(tCorps.getfName());
  198. if (!sysUser.getPhonenumber().equals(tCorps.getfTel())) {
  199. user.setUserSystem("2");
  200. user.setUserType("11");
  201. user.setUserName(tCorps.getfTel());
  202. user.setNickName(tCorps.getfName());
  203. user.setPhonenumber(tCorps.getfTel());
  204. user.setPassword(SecurityUtils.encryptPassword(tCorps.getfTel()));
  205. user.setCreateTime(new Date());
  206. user.setCreateBy(SecurityUtils.getUsername());
  207. userMapper.insertUser(user);
  208. // 查询是否存在车队 角色
  209. SysRole role = roleMapper.selectRoleByName("司机");
  210. if (StringUtils.isNull(role)) {
  211. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  212. return AjaxResult.error("未找到司机角色,请创建司机角色后提交");
  213. }
  214. // 创建用户与角色关联
  215. List<SysUserRole> list = new ArrayList<SysUserRole>();
  216. SysUserRole sysUserRole = new SysUserRole();
  217. sysUserRole.setRoleId(role.getRoleId());
  218. sysUserRole.setUserId(user.getUserId());
  219. list.add(sysUserRole);
  220. userRoleMapper.batchUserRole(list);
  221. }
  222. sysUser.setUpdateTime(new Date());
  223. sysUser.setUpdateBy(SecurityUtils.getUsername());
  224. userMapper.updateUser(sysUser);
  225. }
  226. FleetCarManage fleetCarManage = new FleetCarManage();
  227. fleetCarManage.setDriverId(tCorps.getfId());
  228. fleetCarManage.setDriverTel(tCorps.getfTel());
  229. fleetCarManage.setDriverName(tCorps.getfName());
  230. fleetCarManageMapper.updateFleetCarManageByDriverId(fleetCarManage);
  231. return AjaxResult.success();
  232. }
  233. /**
  234. * 修改【司机】
  235. *
  236. * @param fleetDriverMsg 【司机】
  237. * @return 结果
  238. */
  239. @Override
  240. public int updateFleetDriverMsg(FleetDriverMsg fleetDriverMsg) {
  241. fleetDriverMsg.setUpdateTime(DateUtils.getNowDate());
  242. return fleetDriverMsgMapper.updateFleetDriverMsg(fleetDriverMsg);
  243. }
  244. /**
  245. * 批量删除【司机】
  246. *
  247. * @param ids 需要删除的【司机】ID
  248. * @return 结果
  249. */
  250. @Override
  251. @Transactional
  252. public AjaxResult deleteFleetDriverMsgByIds(Long[] ids) {
  253. int line = 0;
  254. for (Long id : ids) {
  255. line++;
  256. TCorps corps = corpsMapper.selectTCorpsById(id);
  257. Ftmsorderbillscars ftmsorderbillscars = new Ftmsorderbillscars();
  258. ftmsorderbillscars.setDriverTel(corps.getfTel());
  259. ftmsorderbillscars.setDriverName(corps.getfName());
  260. if (ftmsorderbillscarsMapper.selectftmsorderbillscarsCount(ftmsorderbillscars) > 0) {
  261. return AjaxResult.error("第" + line + "行数据已被使用无法删除");
  262. }
  263. corpsMapper.deleteTCorpsById(id);
  264. SysUser sysUser = userMapper.selectUserByUserName(corps.getfTel());
  265. userMapper.deleteUserById(sysUser.getUserId());
  266. userRoleMapper.deleteUserRoleByUserId(sysUser.getUserId());
  267. }
  268. return AjaxResult.success();
  269. }
  270. /**
  271. * 删除【司机】信息
  272. *
  273. * @param id 【司机】ID
  274. * @return 结果
  275. */
  276. @Override
  277. @Transactional
  278. public int deleteFleetDriverMsgById(Long id) {
  279. TCorps corps = corpsMapper.selectTCorpsById(id);
  280. SysUser sysUser = userMapper.selectUserByUserName(corps.getfTel());
  281. userMapper.deleteUserById(sysUser.getUserId());
  282. userRoleMapper.deleteUserRoleByUserId(sysUser.getUserId());
  283. return corpsMapper.deleteTCorpsById(id);
  284. }
  285. /**
  286. * 下拉框查询【司机】id、name列表
  287. *
  288. * @param tCorps 条件
  289. * @return 结果
  290. */
  291. @Override
  292. public List<TCorps> selectFleetDriverMsgIdNameList(TCorps tCorps) {
  293. return corpsMapper.selectTCorpsList(tCorps);
  294. }
  295. }