AuditPathsServiceImpl.java 58 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147
  1. package com.ruoyi.approvalFlow.service.impl;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
  5. import com.ruoyi.approvalFlow.domain.*;
  6. import com.ruoyi.approvalFlow.domain.dto.AppAuditItemDTO;
  7. import com.ruoyi.approvalFlow.domain.enums.AuditStateEnum;
  8. import com.ruoyi.approvalFlow.domain.vo.AppAuditItemVO;
  9. import com.ruoyi.approvalFlow.mapper.*;
  10. import com.ruoyi.approvalFlow.service.IAuditPathsService;
  11. import com.ruoyi.basicData.domain.TFees;
  12. import com.ruoyi.basicData.mapper.TFeesMapper;
  13. import com.ruoyi.common.core.domain.AjaxResult;
  14. import com.ruoyi.common.core.domain.model.LoginUser;
  15. import com.ruoyi.common.exception.WarehouseException;
  16. import com.ruoyi.common.utils.DateUtils;
  17. import com.ruoyi.common.utils.DictUtils;
  18. import com.ruoyi.common.utils.StringUtils;
  19. import com.ruoyi.finance.domain.TFee;
  20. import com.ruoyi.finance.mapper.TFeeMapper;
  21. import com.ruoyi.finance.service.impl.TFeeServiceImpl;
  22. import com.ruoyi.reportManagement.domain.TWhgenleg;
  23. import com.ruoyi.reportManagement.mapper.TWhgenlegMapper;
  24. import com.ruoyi.warehouseBusiness.domain.TWarehouseAgreement;
  25. import com.ruoyi.warehouseBusiness.domain.TWarehouseBills;
  26. import com.ruoyi.warehouseBusiness.domain.TWarehousebillsfees;
  27. import com.ruoyi.warehouseBusiness.domain.TWarehousebillsitems;
  28. import com.ruoyi.warehouseBusiness.domain.enums.WarehouseActIdEnum;
  29. import com.ruoyi.warehouseBusiness.domain.enums.WarehouseTypeEnum;
  30. import com.ruoyi.warehouseBusiness.mapper.TWarehouseAgreementMapper;
  31. import com.ruoyi.warehouseBusiness.mapper.TWarehouseBillsMapper;
  32. import com.ruoyi.warehouseBusiness.mapper.TWarehousebillsfeesMapper;
  33. import com.ruoyi.warehouseBusiness.mapper.TWarehousebillsitemsMapper;
  34. import com.ruoyi.warehouseBusiness.service.impl.TWarehouseAgreementServiceImpl;
  35. import com.ruoyi.warehouseBusiness.service.impl.TWarehouseBillsServiceImpl;
  36. import com.ruoyi.warehouseBusiness.service.impl.TWarehousebillsModifyServiceImpl;
  37. import org.apache.commons.compress.utils.Lists;
  38. import org.springframework.beans.factory.annotation.Autowired;
  39. import org.springframework.stereotype.Service;
  40. import org.springframework.transaction.annotation.Transactional;
  41. import org.springframework.transaction.interceptor.TransactionAspectSupport;
  42. import java.util.*;
  43. import static java.util.stream.Collectors.toList;
  44. /**
  45. * 审批流配置主Service业务层处理
  46. *
  47. * @author ruoyi
  48. * @date 2021-01-21
  49. */
  50. @Service
  51. public class AuditPathsServiceImpl implements IAuditPathsService {
  52. @Autowired
  53. private AuditPathsMapper auditPathsMapper;
  54. @Autowired
  55. private AuditItemsMapper auditItemsMapper;
  56. @Autowired
  57. private TWhgenlegMapper tWhgenlegMapper;
  58. @Autowired
  59. private AuditItemsUsersMapper auditItemsUsersMapper;
  60. @Autowired
  61. private AuditPathsActsMapper auditPathsActsMapper;
  62. @Autowired
  63. private AuditPathsLevelsMapper auditPathsLevelsMapper;
  64. @Autowired
  65. private TWarehouseBillsMapper tWarehouseBillsMapper;
  66. @Autowired
  67. private TWarehouseBillsServiceImpl tWarehouseBillsService;
  68. @Autowired
  69. private TWarehousebillsfeesMapper tWarehousebillsfeesMapper;
  70. @Autowired
  71. private TWarehousebillsitemsMapper tWarehousebillsitemsMapper;
  72. @Autowired
  73. private TFeeServiceImpl tFeeServiceImpl;
  74. @Autowired
  75. private TWarehouseAgreementServiceImpl tWarehouseAgreementService;
  76. @Autowired
  77. private TWarehousebillsModifyServiceImpl warehousebillsModifyService;
  78. @Autowired
  79. private TFeeMapper tFeeMapper;
  80. @Autowired
  81. private TFeesMapper feesMapper;
  82. @Autowired
  83. private TWarehouseAgreementMapper tWarehouseAgreementMapper;
  84. /**
  85. * 查询审批流配置主
  86. *
  87. * @param id 审批流配置主ID
  88. * @return 审批流配置主
  89. */
  90. @Override
  91. public AjaxResult selectAuditPathsById(Long id) {
  92. Map<String, Object> map = new HashMap<>();
  93. AuditPaths auditPaths = auditPathsMapper.selectAuditPathsById(id);
  94. if (StringUtils.isNull(auditPaths)) {
  95. return AjaxResult.error("该审批流不存在,请确认");
  96. }
  97. map.put("auditPaths", auditPaths);
  98. AuditPathsLevels auditPathsLevels = new AuditPathsLevels();
  99. auditPathsLevels.setPathId(id);
  100. List<AuditPathsLevels> pathsLevelsList = auditPathsLevelsMapper.selectAuditPathsLevelsList(auditPathsLevels);
  101. if (StringUtils.isNotNull(pathsLevelsList)) {
  102. List<List<Long>> longs = new ArrayList<>();
  103. for (AuditPathsLevels ap : pathsLevelsList) {
  104. List<Long> longList = new ArrayList<>();
  105. if (ap.getAuditUserId() != null) {
  106. JSONArray jsonArray = JSONArray.parseArray(ap.getAuditUserId());
  107. longList = JSONObject.parseArray(jsonArray.toJSONString(), Long.class);
  108. }
  109. longs.add(longList);
  110. }
  111. map.put("auditUserIds", longs);
  112. map.put("auditPathsLevels", pathsLevelsList);
  113. }
  114. return AjaxResult.success(map);
  115. }
  116. /**
  117. * 查询审批流配置主列表
  118. *
  119. * @param auditPaths 审批流配置主
  120. * @return 审批流配置主
  121. */
  122. @Override
  123. public List<AuditPaths> selectAuditPathsList(AuditPaths auditPaths) {
  124. return auditPathsMapper.selectAuditPathsList(auditPaths);
  125. }
  126. /**
  127. * 新增审批流配置主
  128. *
  129. * @param auditPaths 审批流配置主
  130. * @return 结果
  131. */
  132. @Override
  133. @Transactional
  134. public AjaxResult insertAuditPaths(String auditPaths, String auditPathsLevels, LoginUser loginUser) {
  135. AuditPaths apath = JSONArray.parseObject(auditPaths, AuditPaths.class);
  136. if ("A".equals(apath.getStatus()) && (StringUtils.isNull(auditPathsLevels) || "[]".equals(auditPathsLevels))) {
  137. return AjaxResult.error("未找到级次信息无法提交,请确认");
  138. }
  139. long fPid = 0L;
  140. if (StringUtils.isNotNull(apath.getId())) {
  141. if ("S".equals(apath.getStatus())) {
  142. AuditPathsActs auditPathsActs = new AuditPathsActs();
  143. auditPathsActs.setPathId(apath.getId());
  144. int sum = auditPathsActsMapper.selectCountAuditPathsActs(auditPathsActs);
  145. if (sum > 0) {
  146. return AjaxResult.error("该审批配置已被使用,请取消使用后提交");
  147. }
  148. }
  149. auditPathsLevelsMapper.deleteAuditPathsLevelsBypathId(apath.getId());
  150. auditPathsMapper.updateAuditPaths(apath);
  151. fPid = apath.getId();
  152. } else {
  153. AuditPaths paths = new AuditPaths();
  154. paths.setPathName(apath.getPathName());
  155. List<AuditPaths> audiList = auditPathsMapper.selectAuditPathsList(paths);
  156. if (audiList.size() > 0) {
  157. return AjaxResult.error("审核路径名已存在,请确认");
  158. }
  159. apath.setOpUserId(loginUser.getUser().getUserId());
  160. apath.setOpDate(new Date());
  161. apath.setOpUserName(loginUser.getUsername());
  162. auditPathsMapper.insertAuditPaths(apath);
  163. fPid = apath.getId();
  164. }
  165. if (StringUtils.isNotNull(auditPathsLevels) && !"[]".equals(auditPathsLevels)) {
  166. JSONArray warehouseJSON = JSONArray.parseArray(auditPathsLevels);
  167. List<AuditPathsLevels> auditPathsLevelsList = JSONObject.parseArray(warehouseJSON.toJSONString(), AuditPathsLevels.class);
  168. if ("F".equals(auditPathsLevelsList.get(auditPathsLevelsList.size() - 1).getIffinalItem())) {
  169. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  170. return AjaxResult.error("操作失败:最后一级状态有误,请确认");
  171. }
  172. Long level = 0L;
  173. boolean last = false;
  174. for (AuditPathsLevels lev : auditPathsLevelsList) {
  175. if (StringUtils.isNull(lev.getAuditUserId())) {
  176. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  177. return AjaxResult.error("操作失败:请维护审核人");
  178. }
  179. if ("T".equals(lev.getIffinalItem()) && !last) {
  180. last = true;
  181. } else if ("T".equals(lev.getIffinalItem()) && last) {
  182. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  183. return AjaxResult.error("操作失败:最后一级只能存在一个");
  184. }
  185. level++;
  186. lev.setPathId(fPid);
  187. lev.setLevelId(level);
  188. auditPathsLevelsMapper.insertAuditPathsLevels(lev);
  189. }
  190. }
  191. return AjaxResult.success();
  192. }
  193. /**
  194. * 修改审批流配置主
  195. *
  196. * @param auditPaths 审批流配置主
  197. * @return 结果
  198. */
  199. @Override
  200. public int updateAuditPaths(AuditPaths auditPaths) {
  201. return auditPathsMapper.updateAuditPaths(auditPaths);
  202. }
  203. /**
  204. * 批量删除审批流配置主
  205. *
  206. * @param ids 需要删除的审批流配置主ID
  207. * @return 结果
  208. */
  209. @Override
  210. @Transactional
  211. public AjaxResult deleteAuditPathsByIds(Long[] ids) {
  212. int line = 0;
  213. for (Long lo : ids) {
  214. line++;
  215. AuditPathsActs auditPathsActs = new AuditPathsActs();
  216. auditPathsActs.setPathId(lo);
  217. int sum = auditPathsActsMapper.selectCountAuditPathsActs(auditPathsActs);
  218. if (sum > 0) {
  219. return AjaxResult.error("第" + line + "行,审批已被使用无法删除");
  220. }
  221. }
  222. auditPathsMapper.deleteAuditPathsByIds(ids);
  223. return AjaxResult.success();
  224. }
  225. /**
  226. * 删除审批流配置主信息
  227. *
  228. * @param id 审批流配置主ID
  229. * @return 结果
  230. */
  231. @Override
  232. public int deleteAuditPathsById(Long id) {
  233. return auditPathsMapper.deleteAuditPathsById(id);
  234. }
  235. /**
  236. * 单据点击查看审批流
  237. *
  238. * @param auditItems 条件
  239. * @return 结果
  240. */
  241. @Override
  242. public AjaxResult projectEndQueryPendingVal(AuditItems auditItems) {
  243. List<Map<String, Object>> mapList = auditItemsMapper.selectWarehouseApprover(auditItems);
  244. return AjaxResult.success(mapList);
  245. }
  246. /**
  247. * 首页点击查看审批流 获取对应数据
  248. *
  249. * @param auditItems 查询条件
  250. * @return 结果
  251. */
  252. @Override
  253. public List<Map<String, Object>> selectAllAuditItems(AuditItems auditItems) {
  254. return auditItemsMapper.selectAuditItems(auditItems);
  255. }
  256. /**
  257. * 查询审批流配置主信息条数
  258. *
  259. * @return 结果
  260. */
  261. @Override
  262. public int selectCountAuditItems() {
  263. return auditItemsMapper.selectCountAuditItems();
  264. }
  265. /**
  266. * 审批通过
  267. *
  268. * @param auditItems 审核人、单据信息
  269. * @return 结果
  270. */
  271. @Override
  272. @Transactional
  273. public AjaxResult approved(AuditItems auditItems) {
  274. // 审核通过时间
  275. Date auditItemtem = auditItems.getAuditItem();
  276. long fettle = 0L;
  277. int number = 0;
  278. AuditItems item = new AuditItems();
  279. item.setBillId(auditItems.getId());
  280. item.setActId(auditItems.getActId());
  281. item.setFidStatus(auditItems.getFidStatus());
  282. List<AuditItems> auditItemsList = auditItemsMapper.selectAuditItemsList(item);
  283. if (CollectionUtils.isEmpty(auditItemsList)) {
  284. return AjaxResult.error("未找到审批信息,请确认");
  285. }
  286. for (AuditItems at : auditItemsList) {
  287. if (!"S".equals(at.getAuditStatus())) {
  288. continue;
  289. }
  290. AuditItemsUsers itemsUsers = new AuditItemsUsers();
  291. itemsUsers.setPid(at.getId());
  292. List<AuditItemsUsers> auditItemsUsers = auditItemsUsersMapper.selectAuditItemsUsersList(itemsUsers);
  293. for (AuditItemsUsers au : auditItemsUsers) {
  294. if (au.getUserId().equals(auditItems.getSendUserId()) && "S".equals(au.getAuditStatus())) {
  295. number++;
  296. if (StringUtils.isEmpty(auditItems.getAuditMsg())) {
  297. at.setAuditMsg("同意");
  298. } else {
  299. at.setAuditMsg(auditItems.getAuditMsg());
  300. }
  301. at.setAuditStatus("A");
  302. //at.setAuditItem(new Date());
  303. at.setAuditOpTime(new Date());
  304. at.setAuditUserId(au.getUserId());
  305. at.setAuditItem(auditItemtem);
  306. int updateAuditItems = auditItemsMapper.updateAuditItems(at);
  307. if (updateAuditItems <= 0) {
  308. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  309. return AjaxResult.error("审批通过失败: 更新审批状态失败");
  310. }
  311. au.setAuditStatus("A");
  312. int updateAuditItemsUsers = auditItemsUsersMapper.updateAuditItemsUsers(au);
  313. if (updateAuditItemsUsers <= 0) {
  314. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  315. return AjaxResult.error("审批通过失败: 更新审批状态失败");
  316. }
  317. if (auditItems.getActId() >= 110 && auditItems.getActId() <= 160) {
  318. if ("T".equals(at.getIffinalItem())) {
  319. fettle = 6L;
  320. } else if ("F".equals(at.getIffinalItem())) {
  321. fettle = 5L;
  322. }
  323. // 仓库模块
  324. if ("warehouse_status".equals(auditItems.getFidStatus())) {
  325. tWarehouseBillsMapper.warehouseApprovalUpdate(auditItems, fettle);
  326. } else {
  327. tWarehouseBillsMapper.warehouseFollowUpdate(auditItems.getBillId(), fettle, at.getAuditItem());
  328. }
  329. tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, at.getAuditItem());
  330. if (Objects.equals(fettle, 6L)) {
  331. if (Objects.equals(auditItems.getActId(), 120L)) {
  332. List<TWarehousebillsfees> feesList = tWarehousebillsfeesMapper.selectWarehousebillsfeesByPId(auditItems.getBillId());
  333. // 过滤出明细信息查询是否存在已计算仓储费
  334. List<Long> ids = feesList.stream().filter(li -> !li.getfBilltype().equals(WarehouseTypeEnum.KCZZ.getType()))
  335. .map(TWarehousebillsfees::getSrcId).distinct().collect(toList());
  336. if (CollectionUtils.isNotEmpty(ids) && tWarehousebillsitemsMapper.selectIsCalculateStorageFeesByIds(ids) > 0) {
  337. throw new WarehouseException("计算费用中存在已计算仓储费信息");
  338. }
  339. // 获取仓储费,并判断费用中是否存在仓储费
  340. TFees ccf = feesMapper.seletFeesByCCF();
  341. if (Objects.isNull(ccf)) {
  342. throw new WarehouseException("未找到仓储费费用信息");
  343. }
  344. // 过滤出费用类型等于仓储费并且有商机id,并取出来进行更新仓储费计费日期
  345. long count = feesList.stream().filter(li -> Objects.equals(li.getfFeeid(), ccf.getfId()) && Objects.nonNull(li.getSrcId()))
  346. .count();
  347. if (count > 0) {
  348. TWarehousebillsfees warehousebillsfees = feesList.stream().findFirst().orElseThrow(() -> new WarehouseException("未找到费用明细"));
  349. // 更新子表仓储费截止日期
  350. tWarehousebillsitemsMapper.updateItemStorageFeeDeadlineByPId(warehousebillsfees.getfPid(), warehousebillsfees.getfBillingDeadline());
  351. }
  352. } else if (Objects.equals(auditItems.getActId(), 150L)) {
  353. tWarehouseBillsService.approvedStorageFee(auditItems.getBillId(), fettle, at.getAuditItem());
  354. }
  355. }
  356. } else if (auditItems.getActId() >= 210 && auditItems.getActId() <= 230) {
  357. // 财务模块
  358. if ("T".equals(at.getIffinalItem())) {
  359. fettle = 6L;
  360. // 更新费用明细
  361. AjaxResult ajaxResult = tFeeServiceImpl.billsfeesFollow(auditItems.getBillId());
  362. String code = ajaxResult.get("code").toString();
  363. if ("500".equals(code)) {
  364. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  365. return ajaxResult;
  366. }
  367. } else if ("F".equals(at.getIffinalItem())) {
  368. fettle = 5L;
  369. }
  370. // 变更财务状态
  371. AjaxResult ajaxResult = tFeeServiceImpl.tfeeFollow(auditItems.getBillId(), fettle);
  372. String code = ajaxResult.get("code").toString();
  373. if ("500".equals(code)) {
  374. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  375. return ajaxResult;
  376. }
  377. } else if (auditItems.getActId() >= 310 && auditItems.getActId() <= 320) {
  378. // 协议模块
  379. if ("T".equals(at.getIffinalItem())) {
  380. fettle = 6L;
  381. } else if ("F".equals(at.getIffinalItem())) {
  382. fettle = 5L;
  383. }
  384. // 变更财务状态
  385. AjaxResult ajaxResult = tWarehouseAgreementService.agreementFollow(auditItems.getBillId(), fettle);
  386. String code = ajaxResult.get("code").toString();
  387. if ("500".equals(code)) {
  388. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  389. return ajaxResult;
  390. }
  391. } else if (auditItems.getActId() == 410) {
  392. if (StringUtils.isEmpty(auditItems.getRefno3())) {
  393. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  394. return AjaxResult.error("提单号不能为空");
  395. }
  396. if ("T".equals(at.getIffinalItem())) {
  397. fettle = 6L;
  398. } else if ("F".equals(at.getIffinalItem())) {
  399. fettle = 5L;
  400. }
  401. //变更凯和订单状态
  402. AjaxResult ajaxResult = tWarehouseBillsService.updateKaHeOrder(auditItems.getBillId(), fettle, at.getAuditItem());
  403. String code = ajaxResult.get("code").toString();
  404. if ("500".equals(code)) {
  405. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  406. return ajaxResult;
  407. }
  408. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  409. tWarehouseBills.setfId(auditItems.getBillId());
  410. tWarehouseBills.setfMblno(auditItems.getRefno3());
  411. AjaxResult orderMessage = tWarehouseBillsService.updateOrderMessage(tWarehouseBills);
  412. String orderMessageCode = orderMessage.get("code").toString();
  413. if ("500".equals(orderMessageCode)) {
  414. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  415. return orderMessage;
  416. }
  417. } else if (auditItems.getActId() == 420) {
  418. if ("T".equals(at.getIffinalItem())) {
  419. fettle = 11L;
  420. } else if ("F".equals(at.getIffinalItem())) {
  421. fettle = 10L;
  422. }
  423. //变更凯和订单状态
  424. AjaxResult ajaxResult = tWarehouseBillsService.updateKaHeOrder(auditItems.getBillId(), fettle, at.getAuditItem());
  425. String code = ajaxResult.get("code").toString();
  426. if ("500".equals(code)) {
  427. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  428. return ajaxResult;
  429. }
  430. } else if (auditItems.getActId() >= 430 && auditItems.getActId() <= 450) {
  431. // 财务模块
  432. if ("T".equals(at.getIffinalItem())) {
  433. fettle = 6L;
  434. // 更新费用明细
  435. AjaxResult ajaxResult = tFeeServiceImpl.billsfeesFollow(auditItems.getBillId());
  436. String code = ajaxResult.get("code").toString();
  437. if ("500".equals(code)) {
  438. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  439. return ajaxResult;
  440. }
  441. } else if ("F".equals(at.getIffinalItem())) {
  442. fettle = 5L;
  443. }
  444. // 变更财务状态
  445. AjaxResult ajaxResult = tFeeServiceImpl.tfeeFollow(auditItems.getBillId(), fettle);
  446. String code = ajaxResult.get("code").toString();
  447. if ("500".equals(code)) {
  448. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  449. return ajaxResult;
  450. }
  451. } else if (auditItems.getActId() == 470) {
  452. // 财务模块
  453. if ("T".equals(at.getIffinalItem())) {
  454. fettle = 6L;
  455. // 更新费用明细
  456. AjaxResult ajaxResult = tFeeServiceImpl.billsfeesFollow(auditItems.getBillId());
  457. String code = ajaxResult.get("code").toString();
  458. if ("500".equals(code)) {
  459. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  460. return ajaxResult;
  461. }
  462. } else if ("F".equals(at.getIffinalItem())) {
  463. fettle = 5L;
  464. }
  465. // 变更财务状态
  466. AjaxResult ajaxResult = tFeeServiceImpl.tfeeFollow(auditItems.getBillId(), fettle);
  467. String code = ajaxResult.get("code").toString();
  468. if ("500".equals(code)) {
  469. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  470. return ajaxResult;
  471. }
  472. //生成销项发票
  473. AjaxResult invoiceFp = tFeeServiceImpl.copyInvoiceFp(auditItems.getBillId(), "INV");
  474. String string = invoiceFp.get("code").toString();
  475. if ("500".equals(string)) {
  476. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  477. return invoiceFp;
  478. }
  479. } else if (auditItems.getActId() == 460) {
  480. if ("T".equals(at.getIffinalItem())) {
  481. fettle = 6L;
  482. } else if ("F".equals(at.getIffinalItem())) {
  483. fettle = 5L;
  484. }
  485. //变更凯和订单状态
  486. Integer i = tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, at.getAuditItem());
  487. if (i != null && i > 0) {
  488. } else {
  489. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  490. return AjaxResult.error("审核失败,更新费用状态失败");
  491. }
  492. } else if (auditItems.getActId() == 170) {
  493. //入库明细审核
  494. if ("T".equals(at.getIffinalItem())) {
  495. fettle = 6L;
  496. } else if ("F".equals(at.getIffinalItem())) {
  497. fettle = 5L;
  498. }
  499. //变更仓库入库明细审核状态
  500. Integer i = null;
  501. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  502. tWarehouseBills.setfId(auditItems.getBillId());
  503. tWarehouseBills.setfItemstatus(fettle);
  504. i = tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
  505. i = tWarehousebillsitemsMapper.warehouseItemfItemstatus(auditItems.getBillId(), fettle);
  506. if (i != null && i > 0) {
  507. } else {
  508. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  509. return AjaxResult.error("审核失败,更新费用状态失败");
  510. }
  511. } else if (auditItems.getActId() == 180) {
  512. //入库明细审核
  513. if ("T".equals(at.getIffinalItem())) {
  514. fettle = 6L;
  515. } else if ("F".equals(at.getIffinalItem())) {
  516. fettle = 5L;
  517. }
  518. //变更仓库入库明细审核状态
  519. Integer i = null;
  520. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  521. tWarehouseBills.setfId(auditItems.getBillId());
  522. tWarehouseBills.setfItemstatus(fettle);
  523. i = tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
  524. i = tWarehousebillsitemsMapper.warehouseItemfItemstatus(auditItems.getBillId(), fettle);
  525. if (i != null && i > 0) {
  526. } else {
  527. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  528. return AjaxResult.error("审核失败,更新费用状态失败");
  529. }
  530. } else if (auditItems.getActId() == 471) {
  531. if ("T".equals(at.getIffinalItem())) {
  532. fettle = 6L;
  533. AjaxResult orderMessage = tWarehouseBillsService.copyKhOrderMessage(auditItems.getBillId());
  534. String string = orderMessage.get("code").toString();
  535. if ("500".equals(string)) {
  536. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  537. return orderMessage;
  538. }
  539. } else if ("F".equals(at.getIffinalItem())) {
  540. fettle = 5L;
  541. }
  542. // 变更凯和申请修改订单状态
  543. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  544. tWarehouseBills.setfId(auditItems.getBillId());
  545. tWarehouseBills.setfUpdeteStatus(fettle);
  546. tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
  547. } else if (auditItems.getActId() == 472) {
  548. if ("T".equals(at.getIffinalItem())) {
  549. fettle = 6L;
  550. } else if ("F".equals(at.getIffinalItem())) {
  551. fettle = 5L;
  552. }
  553. // 变更凯和申请修改订单状态
  554. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  555. tWarehouseBills.setfId(auditItems.getBillId());
  556. tWarehouseBills.setfSubmitUpdate(fettle);
  557. if (fettle == 6L) {
  558. tWarehouseBills.setfUpdeteStatus(2L);
  559. tWarehouseBills.setfSubmitUpdate(2L);
  560. }
  561. tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
  562. } else if (auditItems.getActId() == 473) {
  563. if ("T".equals(at.getIffinalItem())) {
  564. fettle = 6L;
  565. // 删除申请审核通过修改订单的状态
  566. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  567. tWarehouseBills.setfId(auditItems.getBillId());
  568. tWarehouseBills.setDelFlag("1");
  569. tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
  570. } else if ("F".equals(at.getIffinalItem())) {
  571. fettle = 5L;
  572. }
  573. // 变更凯和申请修改订单状态
  574. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  575. tWarehouseBills.setfId(auditItems.getBillId());
  576. tWarehouseBills.setfDeleteStatus(fettle);
  577. tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
  578. } else if (auditItems.getActId() == 474) {
  579. if ("F".equals(at.getIffinalItem())) {
  580. fettle = 5L;
  581. } else if ("T".equals(at.getIffinalItem())) {
  582. fettle = 6L;
  583. //修改原订单信息
  584. AjaxResult ajaxResult = tWarehouseBillsService.approveDismount(auditItems.getBillId());
  585. String string = ajaxResult.get("code").toString();
  586. if ("500".equals(string)) {
  587. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  588. return ajaxResult;
  589. }
  590. }
  591. //变更凯和订单状态
  592. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  593. tWarehouseBills.setfId(auditItems.getBillId());
  594. tWarehouseBills.setfDismountStatus(fettle);
  595. tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
  596. } else if (auditItems.getActId() == 181) {
  597. if ("T".equals(at.getIffinalItem())) {
  598. fettle = 6L;
  599. } else if ("F".equals(at.getIffinalItem())) {
  600. fettle = 5L;
  601. }
  602. //业务处理
  603. } else if (auditItems.getActId() == 190) {
  604. if ("T".equals(at.getIffinalItem())) {
  605. fettle = 6L;
  606. } else if ("F".equals(at.getIffinalItem())) {
  607. fettle = 5L;
  608. }
  609. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  610. tWarehouseBills.setfId(auditItems.getBillId());
  611. tWarehouseBills.setfBillstatus(fettle);
  612. tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
  613. tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
  614. } else if (Objects.equals(auditItems.getActId(), WarehouseActIdEnum.FEE_CHANGES.getActId().longValue())) {
  615. // 费用变更审核通过处理
  616. if ("T".equals(at.getIffinalItem())) {
  617. fettle = 6L;
  618. warehousebillsModifyService.additionalFeeInformation(auditItems.getBillId(), WarehouseTypeEnum.APPROVE);
  619. } else if ("F".equals(at.getIffinalItem())) {
  620. fettle = 5L;
  621. warehousebillsModifyService.additionalFeeInformation(auditItems.getBillId(), WarehouseTypeEnum.UNDER_REVIEW);
  622. }
  623. }
  624. if ("F".equals(at.getIffinalItem())) {
  625. at.setLevelId(at.getLevelId() + 1);
  626. int updateNum = auditItemsMapper.updateAuditStatus(at);
  627. if (updateNum <= 0) {
  628. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  629. return AjaxResult.error("审批通过失败: 更新审批状态失败");
  630. }
  631. }
  632. break;
  633. }
  634. }
  635. }
  636. if (number <= 0) {
  637. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  638. return AjaxResult.error("该审批已被操作");
  639. }
  640. return AjaxResult.success();
  641. }
  642. /**
  643. * 审批驳回
  644. *
  645. * @param auditItems 审核人、单据信息
  646. * @return 结果
  647. */
  648. @Override
  649. @Transactional
  650. public AjaxResult approvalRejected(AuditItems auditItems) {
  651. long fettle = 0L;
  652. if (auditItems.getActId() >= 110 && auditItems.getActId() <= 160) {
  653. fettle = 3L;
  654. if ("f_billstatus".equals(auditItems.getFidStatus())) {
  655. tWarehouseBillsMapper.warehouseFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
  656. } else {
  657. tWarehouseBillsMapper.warehouseApprovalUpdate(auditItems, fettle);
  658. }
  659. tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
  660. if (Objects.equals(auditItems.getActId(), 150L)) {
  661. List<TWarehousebillsfees> feesList = tWarehousebillsfeesMapper.selectWarehousebillsfeesByPId(auditItems.getBillId());
  662. for (TWarehousebillsfees wareItem : feesList) {
  663. if (StringUtils.isNull(wareItem.getSrcId())) {
  664. continue;
  665. }
  666. if ("KCZZ".equals(wareItem.getfBilltype())) {
  667. TWhgenleg whgenleg = new TWhgenleg();
  668. whgenleg.setfId(wareItem.getSrcId());
  669. whgenleg.setfChargedate(wareItem.getfChargedate());
  670. tWhgenlegMapper.updateTWhgenleg(whgenleg);
  671. } else {
  672. TWarehousebillsitems billsItem = new TWarehousebillsitems();
  673. billsItem.setfId(wareItem.getSrcId());
  674. billsItem.setfBilltype(wareItem.getfBilltype());
  675. if (!"SJCK".equals(wareItem.getfBilltype())) {
  676. billsItem.setfChargedate(wareItem.getfBillingDeadline());
  677. tWarehousebillsitemsMapper.updateTWarehousebillsitems(billsItem);
  678. } else {
  679. billsItem.setIsCalculateStorageFees(WarehouseTypeEnum.NOT_CALCULATE.getType());
  680. billsItem.setfChargedate(wareItem.getfChargedate());
  681. }
  682. tWarehousebillsitemsMapper.agreementApprovalRejected(billsItem);
  683. }
  684. }
  685. }
  686. } else if (auditItems.getActId() >= 210 && auditItems.getActId() <= 230) {
  687. fettle = 3L;
  688. // 财务模块
  689. AjaxResult ajaxResult = tFeeServiceImpl.tfeeFollow(auditItems.getBillId(), fettle);
  690. String code = ajaxResult.get("code").toString();
  691. if ("500".equals(code)) {
  692. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  693. return ajaxResult;
  694. }
  695. } else if (auditItems.getActId() >= 310 && auditItems.getActId() <= 320) {
  696. fettle = 3L;
  697. // 协议模块
  698. AjaxResult ajaxResult = tWarehouseAgreementService.agreementFollow(auditItems.getBillId(), fettle);
  699. String code = ajaxResult.get("code").toString();
  700. if ("500".equals(code)) {
  701. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  702. return ajaxResult;
  703. }
  704. } else if (auditItems.getActId() == 410) {
  705. fettle = 3L;
  706. AjaxResult ajaxResult = tWarehouseBillsService.updateKaHeOrder(auditItems.getBillId(), fettle, auditItems.getAuditItem());
  707. String code = ajaxResult.get("code").toString();
  708. if ("500".equals(code)) {
  709. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  710. return ajaxResult;
  711. }
  712. } else if (auditItems.getActId() == 420) {
  713. fettle = 8L;
  714. AjaxResult ajaxResult = tWarehouseBillsService.updateKaHeOrder(auditItems.getBillId(), fettle, auditItems.getAuditItem());
  715. String code = ajaxResult.get("code").toString();
  716. if ("500".equals(code)) {
  717. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  718. return ajaxResult;
  719. }
  720. } else if (auditItems.getActId() >= 430 && auditItems.getActId() <= 450) {
  721. fettle = 3L;
  722. // 财务模块
  723. AjaxResult ajaxResult = tFeeServiceImpl.tfeeFollow(auditItems.getBillId(), fettle);
  724. String code = ajaxResult.get("code").toString();
  725. if ("500".equals(code)) {
  726. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  727. return ajaxResult;
  728. }
  729. } else if (auditItems.getActId() == 460) {
  730. fettle = 3L;
  731. Integer i = tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
  732. if (i != null && i > 0) {
  733. } else {
  734. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  735. return AjaxResult.error("审批驳回失败,更新费用状态失败");
  736. }
  737. } else if (auditItems.getActId() == 470) {
  738. fettle = 3L;
  739. // 财务模块
  740. AjaxResult ajaxResult = tFeeServiceImpl.tfeeFollow(auditItems.getBillId(), fettle);
  741. String code = ajaxResult.get("code").toString();
  742. if ("500".equals(code)) {
  743. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  744. return ajaxResult;
  745. }
  746. } else if (auditItems.getActId() == 170) {
  747. //入库明细审核
  748. fettle = 3L;
  749. //变更仓库入库明细审核状态
  750. Integer i = null;
  751. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  752. tWarehouseBills.setfId(auditItems.getBillId());
  753. tWarehouseBills.setfItemstatus(fettle);
  754. i = tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
  755. i = tWarehousebillsitemsMapper.warehouseItemfItemstatus(auditItems.getBillId(), fettle);
  756. if (i != null && i > 0) {
  757. } else {
  758. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  759. return AjaxResult.error("审核失败,更新费用状态失败");
  760. }
  761. } else if (auditItems.getActId() == 180) {
  762. //入库明细审核
  763. fettle = 3L;
  764. //变更仓库入库明细审核状态
  765. Integer i = null;
  766. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  767. tWarehouseBills.setfId(auditItems.getBillId());
  768. tWarehouseBills.setfItemstatus(fettle);
  769. i = tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
  770. i = tWarehousebillsitemsMapper.warehouseItemfItemstatus(auditItems.getBillId(), fettle);
  771. if (i != null && i > 0) {
  772. } else {
  773. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  774. return AjaxResult.error("审核失败,更新费用状态失败");
  775. }
  776. } else if (auditItems.getActId() == 471) {
  777. fettle = 3L;
  778. // 变更凯和申请修改订单状态
  779. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  780. tWarehouseBills.setfId(auditItems.getBillId());
  781. tWarehouseBills.setfUpdeteStatus(fettle);
  782. tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
  783. } else if (auditItems.getActId() == 472) {
  784. fettle = 3L;
  785. // 变更凯和申请修改订单状态
  786. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  787. tWarehouseBills.setfId(auditItems.getBillId());
  788. tWarehouseBills.setfSubmitUpdate(fettle);
  789. tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
  790. } else if (auditItems.getActId() == 473) {
  791. fettle = 3L;
  792. // 变更凯和申请修改订单状态
  793. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  794. tWarehouseBills.setfId(auditItems.getBillId());
  795. tWarehouseBills.setfDeleteStatus(fettle);
  796. tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
  797. } else if (auditItems.getActId() == 474) {
  798. fettle = 3L;
  799. //变更凯和拆单单状态
  800. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  801. tWarehouseBills.setfId(auditItems.getBillId());
  802. tWarehouseBills.setfDismountStatus(fettle);
  803. tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
  804. } else if (auditItems.getActId() == 181) {
  805. fettle = 3L;
  806. //业务处理
  807. } else if (auditItems.getActId() == 190) {
  808. fettle = 3L;
  809. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  810. tWarehouseBills.setfId(auditItems.getBillId());
  811. tWarehouseBills.setfBillstatus(fettle);
  812. tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
  813. tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
  814. } else if (Objects.equals(auditItems.getActId(), WarehouseActIdEnum.FEE_CHANGES.getActId().longValue())) {
  815. warehousebillsModifyService.additionalFeeInformation(auditItems.getBillId(), WarehouseTypeEnum.DISMISS);
  816. }
  817. AuditItems item = new AuditItems();
  818. item.setBillId(auditItems.getId());
  819. item.setActId(auditItems.getActId());
  820. item.setFidStatus(auditItems.getFidStatus());
  821. List<AuditItems> auditItem = auditItemsMapper.selectAuditItemsList(item);
  822. int number = 0;
  823. for (AuditItems at : auditItem) {
  824. if (!"S".equals(at.getAuditStatus())) {
  825. continue;
  826. }
  827. AuditItemsUsers itemsUsers = new AuditItemsUsers();
  828. itemsUsers.setPid(at.getId());
  829. List<AuditItemsUsers> auditItemsUsersList = auditItemsUsersMapper.selectAuditItemsUsersList(itemsUsers);
  830. for (AuditItemsUsers au : auditItemsUsersList) {
  831. if (Objects.equals(au.getUserId(), auditItems.getSendUserId())) {
  832. number++;
  833. at.setAuditStatus("B");
  834. if (auditItems.getAuditMsg() == null || "".equals(auditItems.getAuditMsg())) {
  835. at.setAuditMsg("不同意");
  836. } else {
  837. at.setAuditMsg(auditItems.getAuditMsg());
  838. }
  839. //at.setAuditItem(new Date());
  840. at.setAuditOpTime(new Date());
  841. at.setAuditUserId(au.getUserId());
  842. int updateAuditItems = auditItemsMapper.updateAuditItems(at);
  843. if (updateAuditItems <= 0) {
  844. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  845. return AjaxResult.error("审批驳回失败: 更新审批状态失败");
  846. }
  847. au.setAuditStatus("B");
  848. int updateAuditItemUser = auditItemsUsersMapper.updateAuditItemsUsers(au);
  849. if (updateAuditItemUser <= 0) {
  850. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  851. return AjaxResult.error("审批驳回失败: 更新审批状态失败");
  852. }
  853. if ("F".equals(at.getIffinalItem())) {
  854. int deleteNum = auditItemsMapper.deleteUpLevelId(at);
  855. if (deleteNum <= 0) {
  856. return AjaxResult.error("未找到后续除审批信息");
  857. }
  858. }
  859. }
  860. }
  861. }
  862. if (number <= 0) {
  863. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  864. return AjaxResult.error("该审批已被操作");
  865. }
  866. return AjaxResult.success();
  867. }
  868. /**
  869. * 审批撤销(我提交的 没人审核)
  870. *
  871. * @param auditItems 审核人、单据信息
  872. * @return
  873. */
  874. @Override
  875. @Transactional
  876. public AjaxResult revoke(AuditItems auditItems) {
  877. long fettle = 0L;
  878. if (auditItems.getActId() >= 110 && auditItems.getActId() <= 160) {
  879. fettle = 2L;
  880. // 查询仓库状态
  881. TWarehouseBills tWarehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(auditItems.getBillId());
  882. if ("f_billstatus".equals(auditItems.getFidStatus())) {
  883. if (!tWarehouseBills.getfBillstatus().equals(4L)) {
  884. return AjaxResult.error("审批撤销失败: 已经过审批");
  885. }
  886. } else {
  887. if (!tWarehouseBills.getWarehouseStatus().equals(4L)) {
  888. return AjaxResult.error("审批撤销失败: 已经过审批");
  889. }
  890. }
  891. tWarehouseBillsMapper.warehouseApprovalUpdate(auditItems, fettle);
  892. tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
  893. } else if (auditItems.getActId() >= 210 && auditItems.getActId() <= 230) {
  894. fettle = 2L;
  895. // 查询财务状态
  896. TFee tFee = tFeeMapper.selectTFeeById(auditItems.getBillId());
  897. if (!"4".equals(tFee.getfBillstatus())) {
  898. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  899. return AjaxResult.error("审批撤销失败: 已经过审批");
  900. }
  901. // 财务模块
  902. AjaxResult ajaxResult = tFeeServiceImpl.tfeeFollow(auditItems.getBillId(), fettle);
  903. String code = ajaxResult.get("code").toString();
  904. if ("500".equals(code)) {
  905. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  906. return AjaxResult.error("审批撤销失败: 更新审批状态失败");
  907. }
  908. } else if (auditItems.getActId() >= 310 && auditItems.getActId() <= 320) {
  909. fettle = 2L;
  910. // 查询协议状态
  911. TWarehouseAgreement tWarehouseAgreement = tWarehouseAgreementMapper.selectTWarehouseAgreementById(auditItems.getBillId());
  912. if (!"4".equals(tWarehouseAgreement.getfBillstatus())) {
  913. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  914. return AjaxResult.error("审批撤销失败: 已经过审批");
  915. }
  916. // 协议模块
  917. AjaxResult ajaxResult = tWarehouseAgreementService.agreementFollow(auditItems.getBillId(), fettle);
  918. String code = ajaxResult.get("code").toString();
  919. if ("500".equals(code)) {
  920. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  921. return AjaxResult.error("审批撤销失败: 更新审批状态失败");
  922. }
  923. } else if (auditItems.getActId() == 410) {
  924. fettle = 2L;
  925. TWarehouseBills tWarehouseBills = tWarehouseBillsService.selectKaHeById(auditItems.getBillId());
  926. if (tWarehouseBills.getfBillstatus() != 4L) {
  927. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  928. return AjaxResult.error("审批撤销失败: 已经过审批");
  929. }
  930. AjaxResult ajaxResult = tWarehouseBillsService.updateKaHeOrder(auditItems.getBillId(), fettle, auditItems.getAuditItem());
  931. String code = ajaxResult.get("code").toString();
  932. if ("500".equals(code)) {
  933. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  934. return ajaxResult;
  935. }
  936. } else if (auditItems.getActId() == 420) {
  937. fettle = 7L;
  938. TWarehouseBills tWarehouseBills = tWarehouseBillsService.selectKaHeById(auditItems.getBillId());
  939. if (tWarehouseBills.getfBillstatus() != 9L) {
  940. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  941. return AjaxResult.error("审批撤销失败: 已经过审批");
  942. }
  943. AjaxResult ajaxResult = tWarehouseBillsService.updateKaHeOrder(auditItems.getBillId(), fettle, auditItems.getAuditItem());
  944. String code = ajaxResult.get("code").toString();
  945. if ("500".equals(code)) {
  946. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  947. return ajaxResult;
  948. }
  949. } else if (auditItems.getActId() >= 430 && auditItems.getActId() <= 450) {
  950. fettle = 2L;
  951. // 查询财务状态
  952. TFee tFee = tFeeMapper.selectTFeeById(auditItems.getBillId());
  953. if (!"4".equals(tFee.getfBillstatus())) {
  954. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  955. return AjaxResult.error("审批撤销失败: 已经过审批");
  956. }
  957. // 财务模块
  958. AjaxResult ajaxResult = tFeeServiceImpl.tfeeFollow(auditItems.getBillId(), fettle);
  959. String code = ajaxResult.get("code").toString();
  960. if ("500".equals(code)) {
  961. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  962. return AjaxResult.error("审批撤销失败: 更新审批状态失败");
  963. }
  964. } else if (auditItems.getActId() == 460) {
  965. fettle = 2L;
  966. TWarehousebillsfees warehousebillsfees = new TWarehousebillsfees();
  967. warehousebillsfees.setfPid(auditItems.getBillId());
  968. List<TWarehousebillsfees> tWarehousebillsfees = tWarehousebillsfeesMapper.selectTWarehousebillsfeesList(warehousebillsfees);
  969. if (CollectionUtils.isNotEmpty(tWarehousebillsfees) && tWarehousebillsfees.get(0).getfBillstatus() != 4L) {
  970. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  971. return AjaxResult.error("审批撤销失败: 已经过审批");
  972. }
  973. Integer i = tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
  974. if (i != null && i > 0) {
  975. } else {
  976. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  977. return AjaxResult.error("审核失败,更新费用状态失败");
  978. }
  979. } else if (auditItems.getActId() == 470) {
  980. fettle = 2L;
  981. // 查询财务状态
  982. TFee tFee = tFeeMapper.selectTFeeById(auditItems.getBillId());
  983. if (!"4".equals(tFee.getfBillstatus())) {
  984. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  985. return AjaxResult.error("审批撤销失败: 已经过审批");
  986. }
  987. // 财务模块
  988. AjaxResult ajaxResult = tFeeServiceImpl.tfeeFollow(auditItems.getBillId(), fettle);
  989. String code = ajaxResult.get("code").toString();
  990. if ("500".equals(code)) {
  991. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  992. return AjaxResult.error("审批撤销失败: 更新审批状态失败");
  993. }
  994. } else if (auditItems.getActId() == 170) {
  995. //入库明细审核
  996. fettle = 2L;
  997. //变更仓库入库明细审核状态
  998. Integer i = null;
  999. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  1000. tWarehouseBills.setfId(auditItems.getBillId());
  1001. tWarehouseBills.setfItemstatus(fettle);
  1002. i = tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
  1003. i = tWarehousebillsitemsMapper.warehouseItemfItemstatus(auditItems.getBillId(), fettle);
  1004. if (i != null && i > 0) {
  1005. } else {
  1006. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  1007. return AjaxResult.error("审核失败,更新费用状态失败");
  1008. }
  1009. } else if (auditItems.getActId() == 180) {
  1010. //入库明细审核
  1011. fettle = 2L;
  1012. //变更仓库入库明细审核状态
  1013. Integer i = null;
  1014. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  1015. tWarehouseBills.setfId(auditItems.getBillId());
  1016. tWarehouseBills.setfItemstatus(fettle);
  1017. i = tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
  1018. i = tWarehousebillsitemsMapper.warehouseItemfItemstatus(auditItems.getBillId(), fettle);
  1019. if (i != null && i > 0) {
  1020. } else {
  1021. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  1022. return AjaxResult.error("审核失败,更新费用状态失败");
  1023. }
  1024. } else if (auditItems.getActId() == 471) {
  1025. fettle = 2L;
  1026. // 变更凯和申请修改订单状态
  1027. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  1028. tWarehouseBills.setfId(auditItems.getBillId());
  1029. tWarehouseBills.setfUpdeteStatus(fettle);
  1030. tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
  1031. } else if (auditItems.getActId() == 472) {
  1032. fettle = 2L;
  1033. // 变更凯和申请修改订单状态
  1034. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  1035. tWarehouseBills.setfId(auditItems.getBillId());
  1036. tWarehouseBills.setfSubmitUpdate(fettle);
  1037. tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
  1038. } else if (auditItems.getActId() == 473) {
  1039. fettle = 2L;
  1040. // 变更凯和申请修改订单状态
  1041. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  1042. tWarehouseBills.setfId(auditItems.getBillId());
  1043. tWarehouseBills.setfDeleteStatus(fettle);
  1044. tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
  1045. } else if (auditItems.getActId() == 474) {
  1046. fettle = 2L;
  1047. //变更凯和拆单单状态
  1048. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  1049. tWarehouseBills.setfId(auditItems.getBillId());
  1050. tWarehouseBills.setfDismountStatus(fettle);
  1051. tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
  1052. } else if (auditItems.getActId() == 181) {
  1053. fettle = 2L;
  1054. //业务处理
  1055. } else if (auditItems.getActId() == 190) {
  1056. fettle = 2L;
  1057. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  1058. tWarehouseBills.setfId(auditItems.getBillId());
  1059. tWarehouseBills.setfBillstatus(fettle);
  1060. tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
  1061. tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
  1062. } else if (Objects.equals(auditItems.getActId(), WarehouseActIdEnum.FEE_CHANGES.getActId().longValue())) {
  1063. warehousebillsModifyService.withdrawalApprovalById(auditItems.getBillId());
  1064. }
  1065. auditItemsMapper.deletePurchaseApproval(auditItems);
  1066. return AjaxResult.success();
  1067. }
  1068. /**
  1069. * 仓库APP查看订单审批流
  1070. *
  1071. * @param auditItems 条件
  1072. * @return 结果
  1073. */
  1074. @Override
  1075. public List<AppAuditItemVO> selectOrderAuditItems(AppAuditItemDTO auditItems) {
  1076. // 如果没有指定类型信息,则默认 赋值仓库类型
  1077. if (StringUtils.isEmpty(auditItems.getBillType())) {
  1078. auditItems.setBillTypeList(WarehouseTypeEnum.getWarehousingType());
  1079. } else {
  1080. List<String> strings = new ArrayList<>();
  1081. strings.add(auditItems.getBillType());
  1082. auditItems.setBillTypeList(strings);
  1083. }
  1084. if (StringUtils.isNotEmpty(auditItems.getSendTimeInterval())) {
  1085. String[] split = auditItems.getSendTimeInterval().split(",");
  1086. List<String> list = Lists.newArrayList();
  1087. list.add(split[0] + " 00:00:00");
  1088. list.add(split[1] + " 23:59:59");
  1089. auditItems.setSendList(list);
  1090. }
  1091. auditItems.setActIdList(WarehouseActIdEnum.isWarehousingActList());
  1092. // 查询
  1093. List<AppAuditItemVO> appAuditItemVOList = auditItemsMapper.selectOrderAuditItems(auditItems);
  1094. // 贸易方式
  1095. String type = "data_trademodes";
  1096. if (CollectionUtils.isNotEmpty(appAuditItemVOList)) {
  1097. appAuditItemVOList.forEach(vo -> {
  1098. if (StringUtils.isNotNull(vo.getFTrademodeid())) {
  1099. // 转换贸易方式
  1100. String dictLabel = DictUtils.getDictLabel(type, vo.getFTrademodeid().toString());
  1101. if (StringUtils.isNotEmpty(dictLabel)) {
  1102. vo.setFTrademodeName(dictLabel);
  1103. }
  1104. }
  1105. // 转换状态
  1106. vo.setAudit(AuditStateEnum.fromType(vo.getAuditState()).getName());
  1107. // 转换活动号
  1108. vo.setActName(WarehouseActIdEnum.fromActId(vo.getActId().intValue()).getName());
  1109. });
  1110. }
  1111. return appAuditItemVOList;
  1112. }
  1113. }