AuditPathsServiceImpl.java 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535
  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. // 审核通过时间
  259. Date auditItemtem = auditItems.getAuditItem();
  260. long fettle = 0L;
  261. int number = 0;
  262. AuditItems item = new AuditItems();
  263. item.setBillId(auditItems.getId());
  264. item.setActId(auditItems.getActId());
  265. List<AuditItems> auditItemsList = auditItemsMapper.selectAuditItemsList(item);
  266. if (auditItemsList.size() <= 0) {
  267. return AjaxResult.error("未找到审批信息,请确认");
  268. }
  269. for (AuditItems at : auditItemsList) {
  270. if (!"S".equals(at.getAuditStatus())) {
  271. continue;
  272. }
  273. AuditItemsUsers itemsUsers = new AuditItemsUsers();
  274. itemsUsers.setPid(at.getId());
  275. List<AuditItemsUsers> auditItemsUsers = auditItemsUsersMapper.selectAuditItemsUsersList(itemsUsers);
  276. for (AuditItemsUsers au : auditItemsUsers) {
  277. if (au.getUserId().equals(auditItems.getSendUserId()) && "S".equals(au.getAuditStatus())) {
  278. number++;
  279. if (StringUtils.isEmpty(auditItems.getAuditMsg())) {
  280. at.setAuditMsg("同意");
  281. } else {
  282. at.setAuditMsg(auditItems.getAuditMsg());
  283. }
  284. at.setAuditStatus("A");
  285. //at.setAuditItem(new Date());
  286. at.setAuditOpTime(new Date());
  287. at.setAuditUserId(au.getUserId());
  288. at.setAuditItem(auditItemtem);
  289. int updateAuditItems = auditItemsMapper.updateAuditItems(at);
  290. if (updateAuditItems <= 0) {
  291. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  292. return AjaxResult.error("审批通过失败: 更新审批状态失败");
  293. }
  294. au.setAuditStatus("A");
  295. int updateAuditItemsUsers = auditItemsUsersMapper.updateAuditItemsUsers(au);
  296. if (updateAuditItemsUsers <= 0) {
  297. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  298. return AjaxResult.error("审批通过失败: 更新审批状态失败");
  299. }
  300. if (auditItems.getActId() >= 110 && auditItems.getActId() <= 150) {
  301. if ("T".equals(at.getIffinalItem())) {
  302. fettle = 6L;
  303. } else if ("F".equals(at.getIffinalItem())) {
  304. fettle = 5L;
  305. }
  306. // 仓库模块
  307. tWarehouseBillsMapper.warehouseFollowUpdate(auditItems.getBillId(), fettle, at.getAuditItem());
  308. tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, at.getAuditItem());
  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. if ("F".equals(at.getIffinalItem())) {
  346. at.setLevelId(at.getLevelId() + 1);
  347. int updateNum = auditItemsMapper.updateAuditStatus(at);
  348. if (updateNum <= 0) {
  349. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  350. return AjaxResult.error("审批通过失败: 更新审批状态失败");
  351. }
  352. }
  353. break;
  354. }
  355. }
  356. }
  357. if (number <= 0) {
  358. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  359. return AjaxResult.error("该审批已被操作");
  360. }
  361. return AjaxResult.success();
  362. }
  363. /**
  364. * 审批驳回
  365. *
  366. * @param auditItems 审核人、单据信息
  367. * @return 结果
  368. */
  369. @Override
  370. @Transactional
  371. public AjaxResult approvalRejected(AuditItems auditItems) {
  372. long fettle = 0L;
  373. if (auditItems.getActId() >= 110 && auditItems.getActId() <= 150) {
  374. fettle = 3L;
  375. tWarehouseBillsMapper.warehouseFollowUpdate(auditItems.getBillId(), fettle , auditItems.getAuditItem());
  376. tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
  377. } else if (auditItems.getActId() >= 210 && auditItems.getActId() <= 230) {
  378. fettle = 3L;
  379. // 财务模块
  380. AjaxResult ajaxResult = tFeeServiceImpl.tfeeFollow(auditItems.getBillId(), fettle);
  381. String code = ajaxResult.get("code").toString();
  382. if ("500".equals(code)) {
  383. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  384. return ajaxResult;
  385. }
  386. } else if (auditItems.getActId() >= 310 && auditItems.getActId() <= 320) {
  387. fettle = 3L;
  388. // 协议模块
  389. AjaxResult ajaxResult = tWarehouseAgreementService.agreementFollow(auditItems.getBillId(), fettle);
  390. String code = ajaxResult.get("code").toString();
  391. if ("500".equals(code)) {
  392. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  393. return ajaxResult;
  394. }
  395. }
  396. AuditItems item = new AuditItems();
  397. item.setBillId(auditItems.getId());
  398. item.setActId(auditItems.getActId());
  399. List<AuditItems> auditItem = auditItemsMapper.selectAuditItemsList(item);
  400. int number = 0;
  401. for (AuditItems at : auditItem) {
  402. if (!"S".equals(at.getAuditStatus())) {
  403. continue;
  404. }
  405. AuditItemsUsers itemsUsers = new AuditItemsUsers();
  406. itemsUsers.setPid(at.getId());
  407. List<AuditItemsUsers> auditItemsUsersList = auditItemsUsersMapper.selectAuditItemsUsersList(itemsUsers);
  408. for (AuditItemsUsers au : auditItemsUsersList) {
  409. if (Objects.equals(au.getUserId(), auditItems.getSendUserId())) {
  410. number++;
  411. at.setAuditStatus("B");
  412. if (auditItems.getAuditMsg() == null || "".equals(auditItems.getAuditMsg())) {
  413. at.setAuditMsg("不同意");
  414. } else {
  415. at.setAuditMsg(auditItems.getAuditMsg());
  416. }
  417. //at.setAuditItem(new Date());
  418. at.setAuditOpTime(new Date());
  419. at.setAuditUserId(au.getUserId());
  420. int updateAuditItems = auditItemsMapper.updateAuditItems(at);
  421. if (updateAuditItems <= 0) {
  422. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  423. return AjaxResult.error("审批驳回失败: 更新审批状态失败");
  424. }
  425. au.setAuditStatus("B");
  426. int updateAuditItemUser = auditItemsUsersMapper.updateAuditItemsUsers(au);
  427. if (updateAuditItemUser <= 0) {
  428. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  429. return AjaxResult.error("审批驳回失败: 更新审批状态失败");
  430. }
  431. if ("F".equals(at.getIffinalItem())) {
  432. int deleteNum = auditItemsMapper.deleteUpLevelId(at);
  433. if (deleteNum <= 0) {
  434. return AjaxResult.error("未找到后续除审批信息");
  435. }
  436. }
  437. }
  438. }
  439. }
  440. if (number <= 0) {
  441. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  442. return AjaxResult.error("该审批已被操作");
  443. }
  444. return AjaxResult.success();
  445. }
  446. /**
  447. * 审批撤销(我提交的 没人审核)
  448. *
  449. * @param auditItems 审核人、单据信息
  450. * @return
  451. */
  452. @Override
  453. @Transactional
  454. public AjaxResult revoke(AuditItems auditItems) {
  455. long fettle = 0L;
  456. if (auditItems.getActId() >= 110 && auditItems.getActId() <= 150) {
  457. fettle = 2L;
  458. // 查询仓库状态
  459. TWarehouseBills tWarehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(auditItems.getBillId());
  460. if (!tWarehouseBills.getfBillstatus().equals(4L)) {
  461. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  462. return AjaxResult.error("审批撤销失败: 已经过审批");
  463. }
  464. tWarehouseBillsMapper.warehouseFollowUpdate(auditItems.getBillId(), fettle,auditItems.getAuditItem() );
  465. tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
  466. } else if (auditItems.getActId() >= 210 && auditItems.getActId() <= 230) {
  467. fettle = 2L;
  468. // 查询财务状态
  469. TFee tFee = tFeeMapper.selectTFeeById(auditItems.getBillId());
  470. if (!"4".equals(tFee.getfBillstatus())) {
  471. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  472. return AjaxResult.error("审批撤销失败: 已经过审批");
  473. }
  474. // 财务模块
  475. AjaxResult ajaxResult = tFeeServiceImpl.tfeeFollow(auditItems.getBillId(), fettle);
  476. String code = ajaxResult.get("code").toString();
  477. if ("500".equals(code)) {
  478. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  479. return AjaxResult.error("审批撤销失败: 更新审批状态失败");
  480. }
  481. } else if (auditItems.getActId() >= 310 && auditItems.getActId() <= 320) {
  482. fettle = 2L;
  483. // 查询协议状态
  484. TWarehouseAgreement tWarehouseAgreement = tWarehouseAgreementMapper.selectTWarehouseAgreementById(auditItems.getBillId());
  485. if (!"4".equals(tWarehouseAgreement.getfBillstatus())) {
  486. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  487. return AjaxResult.error("审批撤销失败: 已经过审批");
  488. }
  489. // 协议模块
  490. AjaxResult ajaxResult = tWarehouseAgreementService.agreementFollow(auditItems.getBillId(), fettle);
  491. String code = ajaxResult.get("code").toString();
  492. if ("500".equals(code)) {
  493. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  494. return AjaxResult.error("审批撤销失败: 更新审批状态失败");
  495. }
  496. }
  497. AuditItems item = new AuditItems();
  498. item.setBillId(auditItems.getId());
  499. item.setActId(auditItems.getActId());
  500. int deleteNum = auditItemsMapper.deletePurchaseApproval(item);
  501. if (deleteNum == 0) {
  502. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  503. return AjaxResult.error("审批撤销失败: 更新审批状态失败");
  504. }
  505. return AjaxResult.success();
  506. }
  507. }