AuditPathsServiceImpl.java 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541
  1. package com.ruoyi.approvalFlow.service.impl;
  2. import java.util.*;
  3. import cn.hutool.core.util.StrUtil;
  4. import com.alibaba.fastjson.JSONArray;
  5. import com.alibaba.fastjson.JSONObject;
  6. import com.baomidou.mybatisplus.mapper.EntityWrapper;
  7. import com.ruoyi.approvalFlow.domain.*;
  8. import com.ruoyi.approvalFlow.mapper.*;
  9. import com.ruoyi.approvalFlow.service.IAuditPathsService;
  10. import com.ruoyi.common.core.domain.AjaxResult;
  11. import com.ruoyi.common.core.domain.entity.SysUser;
  12. import com.ruoyi.common.core.domain.model.LoginUser;
  13. import com.ruoyi.common.utils.StringUtils;
  14. import com.ruoyi.finance.domain.TFee;
  15. import com.ruoyi.finance.mapper.TFeeMapper;
  16. import com.ruoyi.finance.service.impl.TFeeServiceImpl;
  17. import com.ruoyi.system.mapper.SysUserMapper;
  18. import com.ruoyi.warehouseBusiness.domain.TWarehouseAgreement;
  19. import com.ruoyi.warehouseBusiness.domain.TWarehouseBills;
  20. import com.ruoyi.warehouseBusiness.mapper.TWarehouseAgreementMapper;
  21. import com.ruoyi.warehouseBusiness.mapper.TWarehouseBillsMapper;
  22. import com.ruoyi.warehouseBusiness.mapper.TWarehousebillsfeesMapper;
  23. import com.ruoyi.warehouseBusiness.mapper.TWarehousebillsitemsMapper;
  24. import com.ruoyi.warehouseBusiness.service.impl.TWarehouseAgreementServiceImpl;
  25. import com.ruoyi.warehouseBusiness.service.impl.TWarehouseBillsServiceImpl;
  26. import org.springframework.beans.factory.annotation.Autowired;
  27. import org.springframework.stereotype.Service;
  28. import org.springframework.transaction.annotation.Transactional;
  29. import org.springframework.transaction.interceptor.TransactionAspectSupport;
  30. /**
  31. * 审批流配置主Service业务层处理
  32. *
  33. * @author ruoyi
  34. * @date 2021-01-21
  35. */
  36. @Service
  37. public class AuditPathsServiceImpl implements IAuditPathsService {
  38. @Autowired
  39. private SysUserMapper sysUserMapper;
  40. @Autowired
  41. private AuditPathsMapper auditPathsMapper;
  42. @Autowired
  43. private AuditItemsMapper auditItemsMapper;
  44. @Autowired
  45. private AuditItemsUsersMapper auditItemsUsersMapper;
  46. @Autowired
  47. private AuditPathsActsMapper auditPathsActsMapper;
  48. @Autowired
  49. private AuditPathsLevelsMapper auditPathsLevelsMapper;
  50. @Autowired
  51. private TWarehouseBillsMapper tWarehouseBillsMapper;
  52. @Autowired
  53. private TWarehouseBillsServiceImpl tWarehouseBillsService;
  54. @Autowired
  55. private TWarehousebillsfeesMapper tWarehousebillsfeesMapper;
  56. @Autowired
  57. private TWarehousebillsitemsMapper tWarehousebillsitemsMapper;
  58. @Autowired
  59. private TFeeServiceImpl tFeeServiceImpl;
  60. @Autowired
  61. private TWarehouseAgreementServiceImpl tWarehouseAgreementService;
  62. @Autowired
  63. private TFeeMapper tFeeMapper;
  64. @Autowired
  65. private TWarehouseAgreementMapper tWarehouseAgreementMapper;
  66. /**
  67. * 查询审批流配置主
  68. *
  69. * @param id 审批流配置主ID
  70. * @return 审批流配置主
  71. */
  72. @Override
  73. public AjaxResult selectAuditPathsById(Long id) {
  74. Map<String, Object> map = new HashMap<>();
  75. AuditPaths auditPaths = auditPathsMapper.selectAuditPathsById(id);
  76. if (StringUtils.isNull(auditPaths)) {
  77. return AjaxResult.error("该审批流不存在,请确认");
  78. }
  79. map.put("auditPaths", auditPaths);
  80. AuditPathsLevels auditPathsLevels = new AuditPathsLevels();
  81. auditPathsLevels.setPathId(id);
  82. List<AuditPathsLevels> pathsLevelsList = auditPathsLevelsMapper.selectAuditPathsLevelsList(auditPathsLevels);
  83. if (StringUtils.isNotNull(pathsLevelsList)) {
  84. List<List<Long>> longs = new ArrayList<>();
  85. for (AuditPathsLevels ap : pathsLevelsList) {
  86. List<Long> longList = new ArrayList<>();
  87. if (ap.getAuditUserId() != null) {
  88. JSONArray jsonArray = JSONArray.parseArray(ap.getAuditUserId());
  89. longList = JSONObject.parseArray(jsonArray.toJSONString(), Long.class);
  90. }
  91. longs.add(longList);
  92. }
  93. map.put("auditUserIds", longs);
  94. map.put("auditPathsLevels", pathsLevelsList);
  95. }
  96. return AjaxResult.success(map);
  97. }
  98. /**
  99. * 查询审批流配置主列表
  100. *
  101. * @param auditPaths 审批流配置主
  102. * @return 审批流配置主
  103. */
  104. @Override
  105. public List<AuditPaths> selectAuditPathsList(AuditPaths auditPaths) {
  106. return auditPathsMapper.selectAuditPathsList(auditPaths);
  107. }
  108. /**
  109. * 新增审批流配置主
  110. *
  111. * @param auditPaths 审批流配置主
  112. * @return 结果
  113. */
  114. @Override
  115. @Transactional
  116. public AjaxResult insertAuditPaths(String auditPaths, String auditPathsLevels, LoginUser loginUser) {
  117. AuditPaths apath = JSONArray.parseObject(auditPaths, AuditPaths.class);
  118. if ("A".equals(apath.getStatus()) && (StringUtils.isNull(auditPathsLevels) || "[]".equals(auditPathsLevels))) {
  119. return AjaxResult.error("未找到级次信息无法提交,请确认");
  120. }
  121. long fPid = 0L;
  122. if (StringUtils.isNotNull(apath.getId())) {
  123. if ("S".equals(apath.getStatus())) {
  124. AuditPathsActs auditPathsActs = new AuditPathsActs();
  125. auditPathsActs.setPathId(apath.getId());
  126. int sum = auditPathsActsMapper.selectCountAuditPathsActs(auditPathsActs);
  127. if (sum > 0) {
  128. return AjaxResult.error("该审批配置已被使用,请取消使用后提交");
  129. }
  130. }
  131. auditPathsLevelsMapper.deleteAuditPathsLevelsBypathId(apath.getId());
  132. auditPathsMapper.updateAuditPaths(apath);
  133. fPid = apath.getId();
  134. } else {
  135. AuditPaths paths = new AuditPaths();
  136. paths.setPathName(apath.getPathName());
  137. List<AuditPaths> audiList = auditPathsMapper.selectAuditPathsList(paths);
  138. if (audiList.size() > 0) {
  139. return AjaxResult.error("审核路径名已存在,请确认");
  140. }
  141. apath.setOpUserId(loginUser.getUser().getUserId());
  142. apath.setOpDate(new Date());
  143. apath.setOpUserName(loginUser.getUsername());
  144. auditPathsMapper.insertAuditPaths(apath);
  145. fPid = apath.getId();
  146. }
  147. if (StringUtils.isNotNull(auditPathsLevels) && !"[]".equals(auditPathsLevels)) {
  148. JSONArray warehouseJSON = JSONArray.parseArray(auditPathsLevels);
  149. List<AuditPathsLevels> auditPathsLevelsList = JSONObject.parseArray(warehouseJSON.toJSONString(), AuditPathsLevels.class);
  150. if ("F".equals(auditPathsLevelsList.get(auditPathsLevelsList.size() - 1).getIffinalItem())) {
  151. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  152. return AjaxResult.error("操作失败:最后一级状态有误,请确认");
  153. }
  154. Long level = 0L;
  155. boolean last = false;
  156. for (AuditPathsLevels lev : auditPathsLevelsList) {
  157. if (StringUtils.isNull(lev.getAuditUserId())) {
  158. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  159. return AjaxResult.error("操作失败:请维护审核人");
  160. }
  161. if ("T".equals(lev.getIffinalItem()) && !last) {
  162. last = true;
  163. } else if ("T".equals(lev.getIffinalItem()) && last) {
  164. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  165. return AjaxResult.error("操作失败:最后一级只能存在一个");
  166. }
  167. level++;
  168. lev.setPathId(fPid);
  169. lev.setLevelId(level);
  170. auditPathsLevelsMapper.insertAuditPathsLevels(lev);
  171. }
  172. }
  173. return AjaxResult.success();
  174. }
  175. /**
  176. * 修改审批流配置主
  177. *
  178. * @param auditPaths 审批流配置主
  179. * @return 结果
  180. */
  181. @Override
  182. public int updateAuditPaths(AuditPaths auditPaths) {
  183. return auditPathsMapper.updateAuditPaths(auditPaths);
  184. }
  185. /**
  186. * 批量删除审批流配置主
  187. *
  188. * @param ids 需要删除的审批流配置主ID
  189. * @return 结果
  190. */
  191. @Override
  192. @Transactional
  193. public AjaxResult deleteAuditPathsByIds(Long[] ids) {
  194. int line = 0;
  195. for (Long lo : ids) {
  196. line ++;
  197. AuditPathsActs auditPathsActs = new AuditPathsActs();
  198. auditPathsActs.setPathId(lo);
  199. int sum = auditPathsActsMapper.selectCountAuditPathsActs(auditPathsActs);
  200. if (sum > 0) {
  201. return AjaxResult.error("第" + line + "行,审批已被使用无法删除");
  202. }
  203. }
  204. auditPathsMapper.deleteAuditPathsByIds(ids);
  205. return AjaxResult.success();
  206. }
  207. /**
  208. * 删除审批流配置主信息
  209. *
  210. * @param id 审批流配置主ID
  211. * @return 结果
  212. */
  213. @Override
  214. public int deleteAuditPathsById(Long id) {
  215. return auditPathsMapper.deleteAuditPathsById(id);
  216. }
  217. /**
  218. * 单据点击查看审批流
  219. *
  220. * @param auditItems 条件
  221. * @return 结果
  222. */
  223. @Override
  224. public AjaxResult projectEndQueryPendingVal(AuditItems auditItems) {
  225. if (auditItems.getActId() >= 110 && auditItems.getActId() <= 150) {
  226. List<Map<String, Object>> mapList = auditItemsMapper.selectWarehouseApprover(auditItems);
  227. return AjaxResult.success(mapList);
  228. } else if (auditItems.getActId() >= 210 && auditItems.getActId() <= 230) {
  229. // 财务审批
  230. List<Map<String, Object>> mapList = auditItemsMapper.selectWarehouseApprover(auditItems);
  231. return AjaxResult.success(mapList);
  232. } else if (auditItems.getActId() >= 310 && auditItems.getActId() <= 320) {
  233. // 协议审批
  234. List<Map<String, Object>> mapList = auditItemsMapper.selectWarehouseApprover(auditItems);
  235. return AjaxResult.success(mapList);
  236. }
  237. return AjaxResult.success();
  238. }
  239. /**
  240. * 首页点击查看审批流 获取对应数据
  241. *
  242. * @param auditItems 查询条件
  243. * @return 结果
  244. */
  245. @Override
  246. public AjaxResult selectAllAuditItems(AuditItems auditItems) {
  247. return AjaxResult.success(auditItemsMapper.selectAuditItems(auditItems));
  248. }
  249. /**
  250. * 审批通过
  251. *
  252. * @param auditItems 审核人、单据信息
  253. * @return 结果
  254. */
  255. @Override
  256. @Transactional
  257. public AjaxResult approved(AuditItems auditItems) {
  258. long fettle = 0L;
  259. int number = 0;
  260. AuditItems item = new AuditItems();
  261. item.setBillId(auditItems.getId());
  262. item.setActId(auditItems.getActId());
  263. List<AuditItems> auditItemsList = auditItemsMapper.selectAuditItemsList(item);
  264. if (auditItemsList.size() <= 0) {
  265. return AjaxResult.error("未找到审批信息,请确认");
  266. }
  267. for (AuditItems at : auditItemsList) {
  268. if (!"S".equals(at.getAuditStatus())) {
  269. continue;
  270. }
  271. AuditItemsUsers itemsUsers = new AuditItemsUsers();
  272. itemsUsers.setPid(at.getId());
  273. List<AuditItemsUsers> auditItemsUsers = auditItemsUsersMapper.selectAuditItemsUsersList(itemsUsers);
  274. for (AuditItemsUsers au : auditItemsUsers) {
  275. if (au.getUserId().equals(auditItems.getSendUserId()) && "S".equals(au.getAuditStatus())) {
  276. number++;
  277. if (StringUtils.isEmpty(auditItems.getAuditMsg())) {
  278. at.setAuditMsg("同意");
  279. } else {
  280. at.setAuditMsg(auditItems.getAuditMsg());
  281. }
  282. at.setAuditStatus("A");
  283. at.setAuditItem(new Date());
  284. at.setAuditUserId(au.getUserId());
  285. int updateAuditItems = auditItemsMapper.updateAuditItems(at);
  286. if (updateAuditItems <= 0) {
  287. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  288. return AjaxResult.error("审批通过失败: 更新审批状态失败");
  289. }
  290. au.setAuditStatus("A");
  291. int updateAuditItemsUsers = auditItemsUsersMapper.updateAuditItemsUsers(au);
  292. if (updateAuditItemsUsers <= 0) {
  293. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  294. return AjaxResult.error("审批通过失败: 更新审批状态失败");
  295. }
  296. if (auditItems.getActId() >= 110 && auditItems.getActId() <= 150) {
  297. if ("T".equals(at.getIffinalItem())) {
  298. fettle = 6L;
  299. } else if ("F".equals(at.getIffinalItem())) {
  300. fettle = 5L;
  301. }
  302. // 仓库模块
  303. AjaxResult ajaxResult = tWarehouseBillsService.warehouseFollow(auditItems.getBillId(), fettle);
  304. String code = ajaxResult.get("code").toString();
  305. if ("500".equals(code)) {
  306. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  307. return ajaxResult;
  308. }
  309. } else if (auditItems.getActId() >= 210 && auditItems.getActId() <= 230) {
  310. // 财务模块
  311. if ("T".equals(at.getIffinalItem())) {
  312. fettle = 6L;
  313. // 更新费用明细
  314. AjaxResult ajaxResult = tFeeServiceImpl.billsfeesFollow(auditItems.getBillId());
  315. String code = ajaxResult.get("code").toString();
  316. if ("500".equals(code)) {
  317. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  318. return ajaxResult;
  319. }
  320. } else if ("F".equals(at.getIffinalItem())) {
  321. fettle = 5L;
  322. }
  323. // 变更财务状态
  324. AjaxResult ajaxResult = tFeeServiceImpl.tfeeFollow(auditItems.getBillId(), fettle);
  325. String code = ajaxResult.get("code").toString();
  326. if ("500".equals(code)) {
  327. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  328. return ajaxResult;
  329. }
  330. } else if (auditItems.getActId() >= 310 && auditItems.getActId() <= 320) {
  331. // 协议模块
  332. if ("T".equals(at.getIffinalItem())) {
  333. fettle = 6L;
  334. } else if ("F".equals(at.getIffinalItem())) {
  335. fettle = 5L;
  336. }
  337. // 变更财务状态
  338. AjaxResult ajaxResult = tWarehouseAgreementService.agreementFollow(auditItems.getBillId(), fettle);
  339. String code = ajaxResult.get("code").toString();
  340. if ("500".equals(code)) {
  341. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  342. return ajaxResult;
  343. }
  344. }
  345. break;
  346. }
  347. }
  348. }
  349. if (number <= 0) {
  350. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  351. return AjaxResult.error("该审批已被操作");
  352. }
  353. return AjaxResult.success();
  354. }
  355. /**
  356. * 审批驳回
  357. *
  358. * @param auditItems 审核人、单据信息
  359. * @return 结果
  360. */
  361. @Override
  362. @Transactional
  363. public AjaxResult approvalRejected(AuditItems auditItems) {
  364. long fettle = 0L;
  365. if (auditItems.getActId() >= 110 && auditItems.getActId() <= 140) {
  366. fettle = 3L;
  367. // 仓库模块
  368. AjaxResult ajaxResult = tWarehouseBillsService.warehouseFollow(auditItems.getBillId(), fettle);
  369. String code = ajaxResult.get("code").toString();
  370. if ("500".equals(code)) {
  371. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  372. return ajaxResult;
  373. }
  374. } else if (auditItems.getActId() >= 210 && auditItems.getActId() <= 230) {
  375. fettle = 3L;
  376. // 财务模块
  377. AjaxResult ajaxResult = tFeeServiceImpl.tfeeFollow(auditItems.getBillId(), fettle);
  378. String code = ajaxResult.get("code").toString();
  379. if ("500".equals(code)) {
  380. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  381. return ajaxResult;
  382. }
  383. } else if (auditItems.getActId() >= 310 && auditItems.getActId() <= 320) {
  384. fettle = 3L;
  385. // 协议模块
  386. AjaxResult ajaxResult = tWarehouseAgreementService.agreementFollow(auditItems.getBillId(), fettle);
  387. String code = ajaxResult.get("code").toString();
  388. if ("500".equals(code)) {
  389. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  390. return ajaxResult;
  391. }
  392. }
  393. AuditItems item = new AuditItems();
  394. item.setBillId(auditItems.getId());
  395. item.setActId(auditItems.getActId());
  396. List<AuditItems> auditItem = auditItemsMapper.selectAuditItemsList(item);
  397. int number = 0;
  398. for (AuditItems at : auditItem) {
  399. if (!"S".equals(at.getAuditStatus())) {
  400. continue;
  401. }
  402. AuditItemsUsers itemsUsers = new AuditItemsUsers();
  403. itemsUsers.setPid(at.getId());
  404. List<AuditItemsUsers> auditItemsUsersList = auditItemsUsersMapper.selectAuditItemsUsersList(itemsUsers);
  405. for (AuditItemsUsers au : auditItemsUsersList) {
  406. if (Objects.equals(au.getUserId(), auditItems.getSendUserId())) {
  407. number++;
  408. at.setAuditStatus("B");
  409. if (auditItems.getAuditMsg() == null || "".equals(auditItems.getAuditMsg())) {
  410. at.setAuditMsg("不同意");
  411. } else {
  412. at.setAuditMsg(auditItems.getAuditMsg());
  413. }
  414. at.setAuditItem(new Date());
  415. at.setAuditUserId(au.getUserId());
  416. int updateAuditItems = auditItemsMapper.updateAuditItems(at);
  417. if (updateAuditItems <= 0) {
  418. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  419. return AjaxResult.error("审批驳回失败: 更新审批状态失败");
  420. }
  421. au.setAuditStatus("B");
  422. int updateAuditItemUser = auditItemsUsersMapper.updateAuditItemsUsers(au);
  423. if (updateAuditItemUser <= 0) {
  424. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  425. return AjaxResult.error("审批驳回失败: 更新审批状态失败");
  426. }
  427. if ("F".equals(at.getIffinalItem())) {
  428. int deleteNum = auditItemsMapper.deleteUpLevelId(at);
  429. if (deleteNum <= 0) {
  430. return AjaxResult.error("未找到后续除审批信息");
  431. }
  432. }
  433. }
  434. }
  435. }
  436. if (number <= 0) {
  437. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  438. return AjaxResult.error("该审批已被操作");
  439. }
  440. return AjaxResult.success();
  441. }
  442. /**
  443. * 审批撤销(我提交的 没人审核)
  444. *
  445. * @param auditItems 审核人、单据信息
  446. * @return
  447. */
  448. @Override
  449. @Transactional
  450. public AjaxResult revoke(AuditItems auditItems) {
  451. long fettle = 0L;
  452. if (auditItems.getActId() >= 110 && auditItems.getActId() <= 150) {
  453. fettle = 2L;
  454. // 查询仓库状态
  455. TWarehouseBills tWarehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(auditItems.getBillId());
  456. if (!tWarehouseBills.getfBillstatus().equals(4L)) {
  457. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  458. return AjaxResult.error("审批撤销失败: 已经过审批");
  459. }
  460. // 仓库模块
  461. AjaxResult ajaxResult = tWarehouseBillsService.warehouseFollow(auditItems.getBillId(), fettle);
  462. String code = ajaxResult.get("code").toString();
  463. if ("500".equals(code)) {
  464. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  465. return AjaxResult.error("审批撤销失败: 更新审批状态失败");
  466. }
  467. tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle);
  468. if (auditItems.getActId() <= 120) {
  469. fettle = 10L;
  470. }
  471. tWarehousebillsitemsMapper.warehouseItemFollowUpdate(auditItems.getBillId(), fettle);
  472. } else if (auditItems.getActId() >= 210 && auditItems.getActId() <= 230) {
  473. fettle = 2L;
  474. // 查询财务状态
  475. TFee tFee = tFeeMapper.selectTFeeById(auditItems.getBillId());
  476. if (!"4".equals(tFee.getfBillstatus())) {
  477. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  478. return AjaxResult.error("审批撤销失败: 已经过审批");
  479. }
  480. // 财务模块
  481. AjaxResult ajaxResult = tFeeServiceImpl.tfeeFollow(auditItems.getBillId(), fettle);
  482. String code = ajaxResult.get("code").toString();
  483. if ("500".equals(code)) {
  484. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  485. return AjaxResult.error("审批撤销失败: 更新审批状态失败");
  486. }
  487. } else if (auditItems.getActId() >= 310 && auditItems.getActId() <= 320) {
  488. fettle = 2L;
  489. // 查询协议状态
  490. TWarehouseAgreement tWarehouseAgreement = tWarehouseAgreementMapper.selectTWarehouseAgreementById(auditItems.getBillId());
  491. if (!"4".equals(tWarehouseAgreement.getfBillstatus())) {
  492. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  493. return AjaxResult.error("审批撤销失败: 已经过审批");
  494. }
  495. // 协议模块
  496. AjaxResult ajaxResult = tWarehouseAgreementService.agreementFollow(auditItems.getBillId(), fettle);
  497. String code = ajaxResult.get("code").toString();
  498. if ("500".equals(code)) {
  499. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  500. return AjaxResult.error("审批撤销失败: 更新审批状态失败");
  501. }
  502. }
  503. AuditItems item = new AuditItems();
  504. item.setBillId(auditItems.getId());
  505. item.setActId(auditItems.getActId());
  506. int deleteNum = auditItemsMapper.deletePurchaseApproval(item);
  507. if (deleteNum == 0) {
  508. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  509. return AjaxResult.error("审批撤销失败: 更新审批状态失败");
  510. }
  511. return AjaxResult.success();
  512. }
  513. }