FleetDriverMsgServiceImpl.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328
  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.setStatus("1");
  125. user.setRelatedNo("T");
  126. user.setUserSystem("2");
  127. user.setUpdateTime(new Date());
  128. user.setNickName(tCorps.getfName());
  129. user.setUpdateBy(SecurityUtils.getUsername());
  130. user.setPassword(SecurityUtils.encryptPassword(tCorps.getfTel()));
  131. userMapper.updateUser(user);
  132. userId = user.getUserId();
  133. } else {
  134. // 添加用户表
  135. SysUser use = new SysUser();
  136. use.setStatus("1");
  137. use.setUserSystem("2");
  138. use.setUserName(tCorps.getfTel());
  139. use.setNickName(tCorps.getfTel());
  140. use.setPhonenumber(tCorps.getfTel());
  141. //sysUser.setEmail(fleetDriverMsg.get);
  142. use.setUserType("11");
  143. use.setPassword(SecurityUtils.encryptPassword(tCorps.getfTel()));
  144. // 新增用户信息
  145. userMapper.insertUser(use);
  146. userId = use.getUserId();
  147. }
  148. // 新增用户与角色管理
  149. // 查询是否存在车队 角色
  150. SysRole role = roleMapper.selectRoleByName("司机");
  151. if (StringUtils.isNull(role)) {
  152. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  153. return AjaxResult.error("未找到司机角色,请创建司机角色后提交");
  154. }
  155. // 创建用户与角色关联
  156. List<SysUserRole> list = new ArrayList<SysUserRole>();
  157. SysUserRole sysUserRole = new SysUserRole();
  158. sysUserRole.setRoleId(role.getRoleId());
  159. sysUserRole.setUserId(userId);
  160. list.add(sysUserRole);
  161. userRoleMapper.batchUserRole(list);
  162. tCorps.setCreateTime(new Date());
  163. tCorps.setCreateBy(SecurityUtils.getUsername());
  164. corpsMapper.insertTCorps(tCorps);
  165. return AjaxResult.success();
  166. }
  167. }
  168. @Transactional
  169. public void updateDriverPhone(TCorps tCorps) {
  170. TCorps corps = corpsMapper.selectTCorpsById(tCorps.getfId());
  171. SysUser sysUser = userMapper.selectUserByTel(corps.getfTel());
  172. if (StringUtils.isNotNull(sysUser)) {
  173. boolean updateStatus = false;
  174. // 跟新用户手机号以及姓名
  175. if (!sysUser.getPhonenumber().equals(tCorps.getfTel())) {
  176. updateStatus = true;
  177. sysUser.setPhonenumber(tCorps.getfTel());
  178. }
  179. if (!sysUser.getNickName().equals(tCorps.getfTel())) {
  180. updateStatus = true;
  181. sysUser.setNickName(tCorps.getfTel());
  182. }
  183. if (updateStatus) {
  184. sysUser.setUpdateTime(new Date());
  185. sysUser.setUpdateBy(SecurityUtils.getUsername());
  186. userMapper.updateUser(sysUser);
  187. }
  188. }
  189. // 更新司机表手机号以及姓名
  190. ftmsorderbillscarsMapper.updateftmsorderbillscarsDriverNamePhone();
  191. }
  192. @Transactional
  193. public AjaxResult updateFleetCarManagePhone(TCorps tCorps) {
  194. TCorps corps = corpsMapper.selectTCorpsById(tCorps.getfId());
  195. SysUser sysUser = userMapper.selectUserByTel(corps.getfTel());
  196. if (StringUtils.isNotNull(sysUser)) {
  197. SysUser user = new SysUser();
  198. // 跟新用户手机号以及姓名
  199. sysUser.setNickName(tCorps.getfName());
  200. if (!sysUser.getPhonenumber().equals(tCorps.getfTel())) {
  201. user.setUserSystem("2");
  202. user.setStatus("1");
  203. user.setUserType("11");
  204. user.setUserName(tCorps.getfTel());
  205. user.setNickName(tCorps.getfName());
  206. user.setPhonenumber(tCorps.getfTel());
  207. user.setPassword(SecurityUtils.encryptPassword(tCorps.getfTel()));
  208. user.setCreateTime(new Date());
  209. user.setCreateBy(SecurityUtils.getUsername());
  210. userMapper.insertUser(user);
  211. // 查询是否存在车队 角色
  212. SysRole role = roleMapper.selectRoleByName("司机");
  213. if (StringUtils.isNull(role)) {
  214. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  215. return AjaxResult.error("未找到司机角色,请创建司机角色后提交");
  216. }
  217. // 创建用户与角色关联
  218. List<SysUserRole> list = new ArrayList<SysUserRole>();
  219. SysUserRole sysUserRole = new SysUserRole();
  220. sysUserRole.setRoleId(role.getRoleId());
  221. sysUserRole.setUserId(user.getUserId());
  222. list.add(sysUserRole);
  223. userRoleMapper.batchUserRole(list);
  224. }
  225. sysUser.setUpdateTime(new Date());
  226. sysUser.setUpdateBy(SecurityUtils.getUsername());
  227. userMapper.updateUser(sysUser);
  228. }
  229. // 变更还柜状态
  230. Ftmsorderbillscars ftmsorderbillscars = new Ftmsorderbillscars();
  231. ftmsorderbillscars.setDriverTel(tCorps.getfTel());
  232. ftmsorderbillscars.setDriverUserId(tCorps.getfId());
  233. ftmsorderbillscars.setDriverName(tCorps.getfName());
  234. ftmsorderbillscarsMapper.updateftmsorderbillscarTel(ftmsorderbillscars);
  235. // 变更车辆数据
  236. FleetCarManage fleetCarManage = new FleetCarManage();
  237. fleetCarManage.setDriverId(tCorps.getfId());
  238. fleetCarManage.setDriverTel(tCorps.getfTel());
  239. fleetCarManage.setDriverName(tCorps.getfName());
  240. fleetCarManageMapper.updateFleetCarManageByDriverId(fleetCarManage);
  241. return AjaxResult.success();
  242. }
  243. /**
  244. * 修改【司机】
  245. *
  246. * @param fleetDriverMsg 【司机】
  247. * @return 结果
  248. */
  249. @Override
  250. public int updateFleetDriverMsg(FleetDriverMsg fleetDriverMsg) {
  251. fleetDriverMsg.setUpdateTime(DateUtils.getNowDate());
  252. return fleetDriverMsgMapper.updateFleetDriverMsg(fleetDriverMsg);
  253. }
  254. /**
  255. * 批量删除【司机】
  256. *
  257. * @param ids 需要删除的【司机】ID
  258. * @return 结果
  259. */
  260. @Override
  261. @Transactional
  262. public AjaxResult deleteFleetDriverMsgByIds(Long[] ids) {
  263. int line = 0;
  264. for (Long id : ids) {
  265. line++;
  266. TCorps corps = corpsMapper.selectTCorpsById(id);
  267. Ftmsorderbillscars ftmsorderbillscars = new Ftmsorderbillscars();
  268. ftmsorderbillscars.setDriverTel(corps.getfTel());
  269. ftmsorderbillscars.setDriverName(corps.getfName());
  270. if (ftmsorderbillscarsMapper.selectftmsorderbillscarsCount(ftmsorderbillscars) > 0) {
  271. return AjaxResult.error("第" + line + "行数据已被使用无法删除");
  272. }
  273. corpsMapper.deleteTCorpsById(id);
  274. SysUser sysUser = userMapper.selectUserByUserName(corps.getfTel());
  275. userMapper.deleteUserById(sysUser.getUserId());
  276. userRoleMapper.deleteUserRoleByUserId(sysUser.getUserId());
  277. }
  278. return AjaxResult.success();
  279. }
  280. /**
  281. * 删除【司机】信息
  282. *
  283. * @param id 【司机】ID
  284. * @return 结果
  285. */
  286. @Override
  287. @Transactional
  288. public int deleteFleetDriverMsgById(Long id) {
  289. TCorps corps = corpsMapper.selectTCorpsById(id);
  290. SysUser sysUser = userMapper.selectUserByUserName(corps.getfTel());
  291. userMapper.deleteUserById(sysUser.getUserId());
  292. userRoleMapper.deleteUserRoleByUserId(sysUser.getUserId());
  293. return corpsMapper.deleteTCorpsById(id);
  294. }
  295. /**
  296. * 下拉框查询【司机】id、name列表
  297. *
  298. * @param tCorps 条件
  299. * @return 结果
  300. */
  301. @Override
  302. public List<TCorps> selectFleetDriverMsgIdNameList(TCorps tCorps) {
  303. return corpsMapper.selectTCorpsList(tCorps);
  304. }
  305. }