AuditPathsServiceImpl.java 57 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123
  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(auditItems.getActId(), 120L)) {
  331. List<TWarehousebillsfees> feesList = tWarehousebillsfeesMapper.selectWarehousebillsfeesByPId(auditItems.getBillId());
  332. // 过滤出明细信息查询是否存在已计算仓储费
  333. List<Long> ids = feesList.stream().map(TWarehousebillsfees::getSrcId).distinct().collect(toList());
  334. if (CollectionUtils.isNotEmpty(ids) && tWarehousebillsitemsMapper.selectIsCalculateStorageFeesByIds(ids) > 0) {
  335. throw new WarehouseException("计算费用中存在已计算仓储费信息");
  336. }
  337. // 获取仓储费,并判断费用中是否存在仓储费
  338. TFees ccf = feesMapper.seletFeesByCCF();
  339. if (Objects.isNull(ccf)) {
  340. throw new WarehouseException("未找到仓储费费用信息");
  341. }
  342. // 过滤出费用类型等于仓储费并且有商机id,并取出来进行更新仓储费计费日期
  343. long count = feesList.stream().filter(li -> Objects.equals(li.getfFeeid(), ccf.getfId()) && Objects.nonNull(li.getSrcId()))
  344. .count();
  345. if (count > 0) {
  346. TWarehousebillsfees warehousebillsfees = feesList.stream().findFirst().orElseThrow(() -> new WarehouseException("未找到费用明细"));
  347. // 更新子表仓储费截止日期
  348. tWarehousebillsitemsMapper.updateItemStorageFeeDeadlineByPId(warehousebillsfees.getfPid(), warehousebillsfees.getfBillingDeadline());
  349. }
  350. } else if (Objects.equals(auditItems.getActId(), 150L)) {
  351. tWarehouseBillsService.approvedStorageFee(auditItems.getBillId(), fettle, at.getAuditItem());
  352. }
  353. } else if (auditItems.getActId() >= 210 && auditItems.getActId() <= 230) {
  354. // 财务模块
  355. if ("T".equals(at.getIffinalItem())) {
  356. fettle = 6L;
  357. // 更新费用明细
  358. AjaxResult ajaxResult = tFeeServiceImpl.billsfeesFollow(auditItems.getBillId());
  359. String code = ajaxResult.get("code").toString();
  360. if ("500".equals(code)) {
  361. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  362. return ajaxResult;
  363. }
  364. } else if ("F".equals(at.getIffinalItem())) {
  365. fettle = 5L;
  366. }
  367. // 变更财务状态
  368. AjaxResult ajaxResult = tFeeServiceImpl.tfeeFollow(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() >= 310 && auditItems.getActId() <= 320) {
  375. // 协议模块
  376. if ("T".equals(at.getIffinalItem())) {
  377. fettle = 6L;
  378. } else if ("F".equals(at.getIffinalItem())) {
  379. fettle = 5L;
  380. }
  381. // 变更财务状态
  382. AjaxResult ajaxResult = tWarehouseAgreementService.agreementFollow(auditItems.getBillId(), fettle);
  383. String code = ajaxResult.get("code").toString();
  384. if ("500".equals(code)) {
  385. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  386. return ajaxResult;
  387. }
  388. } else if (auditItems.getActId() == 410) {
  389. if (StringUtils.isEmpty(auditItems.getRefno3())) {
  390. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  391. return AjaxResult.error("提单号不能为空");
  392. }
  393. if ("T".equals(at.getIffinalItem())) {
  394. fettle = 6L;
  395. } else if ("F".equals(at.getIffinalItem())) {
  396. fettle = 5L;
  397. }
  398. //变更凯和订单状态
  399. AjaxResult ajaxResult = tWarehouseBillsService.updateKaHeOrder(auditItems.getBillId(), fettle, at.getAuditItem());
  400. String code = ajaxResult.get("code").toString();
  401. if ("500".equals(code)) {
  402. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  403. return ajaxResult;
  404. }
  405. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  406. tWarehouseBills.setfId(auditItems.getBillId());
  407. tWarehouseBills.setfMblno(auditItems.getRefno3());
  408. AjaxResult orderMessage = tWarehouseBillsService.updateOrderMessage(tWarehouseBills);
  409. String orderMessageCode = orderMessage.get("code").toString();
  410. if ("500".equals(orderMessageCode)) {
  411. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  412. return orderMessage;
  413. }
  414. } else if (auditItems.getActId() == 420) {
  415. if ("T".equals(at.getIffinalItem())) {
  416. fettle = 11L;
  417. } else if ("F".equals(at.getIffinalItem())) {
  418. fettle = 10L;
  419. }
  420. //变更凯和订单状态
  421. AjaxResult ajaxResult = tWarehouseBillsService.updateKaHeOrder(auditItems.getBillId(), fettle, at.getAuditItem());
  422. String code = ajaxResult.get("code").toString();
  423. if ("500".equals(code)) {
  424. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  425. return ajaxResult;
  426. }
  427. } else if (auditItems.getActId() >= 430 && auditItems.getActId() <= 450) {
  428. // 财务模块
  429. if ("T".equals(at.getIffinalItem())) {
  430. fettle = 6L;
  431. // 更新费用明细
  432. AjaxResult ajaxResult = tFeeServiceImpl.billsfeesFollow(auditItems.getBillId());
  433. String code = ajaxResult.get("code").toString();
  434. if ("500".equals(code)) {
  435. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  436. return ajaxResult;
  437. }
  438. } else if ("F".equals(at.getIffinalItem())) {
  439. fettle = 5L;
  440. }
  441. // 变更财务状态
  442. AjaxResult ajaxResult = tFeeServiceImpl.tfeeFollow(auditItems.getBillId(), fettle);
  443. String code = ajaxResult.get("code").toString();
  444. if ("500".equals(code)) {
  445. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  446. return ajaxResult;
  447. }
  448. } else if (auditItems.getActId() == 470) {
  449. // 财务模块
  450. if ("T".equals(at.getIffinalItem())) {
  451. fettle = 6L;
  452. // 更新费用明细
  453. AjaxResult ajaxResult = tFeeServiceImpl.billsfeesFollow(auditItems.getBillId());
  454. String code = ajaxResult.get("code").toString();
  455. if ("500".equals(code)) {
  456. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  457. return ajaxResult;
  458. }
  459. } else if ("F".equals(at.getIffinalItem())) {
  460. fettle = 5L;
  461. }
  462. // 变更财务状态
  463. AjaxResult ajaxResult = tFeeServiceImpl.tfeeFollow(auditItems.getBillId(), fettle);
  464. String code = ajaxResult.get("code").toString();
  465. if ("500".equals(code)) {
  466. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  467. return ajaxResult;
  468. }
  469. //生成销项发票
  470. AjaxResult invoiceFp = tFeeServiceImpl.copyInvoiceFp(auditItems.getBillId(), "INV");
  471. String string = invoiceFp.get("code").toString();
  472. if ("500".equals(string)) {
  473. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  474. return invoiceFp;
  475. }
  476. } else if (auditItems.getActId() == 460) {
  477. if ("T".equals(at.getIffinalItem())) {
  478. fettle = 6L;
  479. } else if ("F".equals(at.getIffinalItem())) {
  480. fettle = 5L;
  481. }
  482. //变更凯和订单状态
  483. Integer i = tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, at.getAuditItem());
  484. if (i != null && i > 0) {
  485. } else {
  486. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  487. return AjaxResult.error("审核失败,更新费用状态失败");
  488. }
  489. } else if (auditItems.getActId() == 170) {
  490. //入库明细审核
  491. if ("T".equals(at.getIffinalItem())) {
  492. fettle = 6L;
  493. } else if ("F".equals(at.getIffinalItem())) {
  494. fettle = 5L;
  495. }
  496. //变更仓库入库明细审核状态
  497. Integer i = null;
  498. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  499. tWarehouseBills.setfId(auditItems.getBillId());
  500. tWarehouseBills.setfItemstatus(fettle);
  501. i = tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
  502. i = tWarehousebillsitemsMapper.warehouseItemfItemstatus(auditItems.getBillId(), fettle);
  503. if (i != null && i > 0) {
  504. } else {
  505. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  506. return AjaxResult.error("审核失败,更新费用状态失败");
  507. }
  508. } else if (auditItems.getActId() == 180) {
  509. //入库明细审核
  510. if ("T".equals(at.getIffinalItem())) {
  511. fettle = 6L;
  512. } else if ("F".equals(at.getIffinalItem())) {
  513. fettle = 5L;
  514. }
  515. //变更仓库入库明细审核状态
  516. Integer i = null;
  517. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  518. tWarehouseBills.setfId(auditItems.getBillId());
  519. tWarehouseBills.setfItemstatus(fettle);
  520. i = tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
  521. i = tWarehousebillsitemsMapper.warehouseItemfItemstatus(auditItems.getBillId(), fettle);
  522. if (i != null && i > 0) {
  523. } else {
  524. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  525. return AjaxResult.error("审核失败,更新费用状态失败");
  526. }
  527. } else if (auditItems.getActId() == 471) {
  528. if ("T".equals(at.getIffinalItem())) {
  529. fettle = 6L;
  530. AjaxResult orderMessage = tWarehouseBillsService.copyKhOrderMessage(auditItems.getBillId());
  531. String string = orderMessage.get("code").toString();
  532. if ("500".equals(string)) {
  533. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  534. return orderMessage;
  535. }
  536. } else if ("F".equals(at.getIffinalItem())) {
  537. fettle = 5L;
  538. }
  539. // 变更凯和申请修改订单状态
  540. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  541. tWarehouseBills.setfId(auditItems.getBillId());
  542. tWarehouseBills.setfUpdeteStatus(fettle);
  543. tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
  544. } else if (auditItems.getActId() == 472) {
  545. if ("T".equals(at.getIffinalItem())) {
  546. fettle = 6L;
  547. } else if ("F".equals(at.getIffinalItem())) {
  548. fettle = 5L;
  549. }
  550. // 变更凯和申请修改订单状态
  551. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  552. tWarehouseBills.setfId(auditItems.getBillId());
  553. tWarehouseBills.setfSubmitUpdate(fettle);
  554. if (fettle == 6L) {
  555. tWarehouseBills.setfUpdeteStatus(2L);
  556. tWarehouseBills.setfSubmitUpdate(2L);
  557. }
  558. tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
  559. } else if (auditItems.getActId() == 473) {
  560. if ("T".equals(at.getIffinalItem())) {
  561. fettle = 6L;
  562. // 删除申请审核通过修改订单的状态
  563. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  564. tWarehouseBills.setfId(auditItems.getBillId());
  565. tWarehouseBills.setDelFlag("1");
  566. tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
  567. } else if ("F".equals(at.getIffinalItem())) {
  568. fettle = 5L;
  569. }
  570. // 变更凯和申请修改订单状态
  571. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  572. tWarehouseBills.setfId(auditItems.getBillId());
  573. tWarehouseBills.setfDeleteStatus(fettle);
  574. tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
  575. } else if (auditItems.getActId() == 474) {
  576. if ("F".equals(at.getIffinalItem())) {
  577. fettle = 5L;
  578. } else if ("T".equals(at.getIffinalItem())) {
  579. fettle = 6L;
  580. //修改原订单信息
  581. AjaxResult ajaxResult = tWarehouseBillsService.approveDismount(auditItems.getBillId());
  582. String string = ajaxResult.get("code").toString();
  583. if ("500".equals(string)) {
  584. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  585. return ajaxResult;
  586. }
  587. }
  588. //变更凯和订单状态
  589. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  590. tWarehouseBills.setfId(auditItems.getBillId());
  591. tWarehouseBills.setfDismountStatus(fettle);
  592. tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
  593. } else if (auditItems.getActId() == 181) {
  594. if ("T".equals(at.getIffinalItem())) {
  595. fettle = 6L;
  596. } else if ("F".equals(at.getIffinalItem())) {
  597. fettle = 5L;
  598. }
  599. //业务处理
  600. } else if (Objects.equals(auditItems.getActId(), WarehouseActIdEnum.FEE_CHANGES.getActId().longValue())) {
  601. // 费用变更审核通过处理
  602. if ("T".equals(at.getIffinalItem())) {
  603. fettle = 6L;
  604. warehousebillsModifyService.additionalFeeInformation(auditItems.getBillId(), WarehouseTypeEnum.APPROVE);
  605. } else if ("F".equals(at.getIffinalItem())) {
  606. fettle = 5L;
  607. warehousebillsModifyService.additionalFeeInformation(auditItems.getBillId(), WarehouseTypeEnum.APPROVE);
  608. }
  609. }
  610. if ("F".equals(at.getIffinalItem())) {
  611. at.setLevelId(at.getLevelId() + 1);
  612. int updateNum = auditItemsMapper.updateAuditStatus(at);
  613. if (updateNum <= 0) {
  614. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  615. return AjaxResult.error("审批通过失败: 更新审批状态失败");
  616. }
  617. }
  618. break;
  619. }
  620. }
  621. }
  622. if (number <= 0) {
  623. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  624. return AjaxResult.error("该审批已被操作");
  625. }
  626. return AjaxResult.success();
  627. }
  628. /**
  629. * 审批驳回
  630. *
  631. * @param auditItems 审核人、单据信息
  632. * @return 结果
  633. */
  634. @Override
  635. @Transactional
  636. public AjaxResult approvalRejected(AuditItems auditItems) {
  637. long fettle = 0L;
  638. if (auditItems.getActId() >= 110 && auditItems.getActId() <= 160) {
  639. fettle = 3L;
  640. if ("f_billstatus".equals(auditItems.getFidStatus())) {
  641. tWarehouseBillsMapper.warehouseFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
  642. } else {
  643. tWarehouseBillsMapper.warehouseApprovalUpdate(auditItems, fettle);
  644. }
  645. tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
  646. if (Objects.equals(auditItems.getActId(), 150L)) {
  647. List<TWarehousebillsfees> feesList = tWarehousebillsfeesMapper.selectWarehousebillsfeesByPId(auditItems.getBillId());
  648. for (TWarehousebillsfees wareItem : feesList) {
  649. if (StringUtils.isNull(wareItem.getSrcId())) {
  650. continue;
  651. }
  652. if ("KCZZ".equals(wareItem.getfBilltype())) {
  653. TWhgenleg whgenleg = new TWhgenleg();
  654. whgenleg.setfId(wareItem.getSrcId());
  655. whgenleg.setfChargedate(wareItem.getfChargedate());
  656. tWhgenlegMapper.updateTWhgenleg(whgenleg);
  657. } else {
  658. TWarehousebillsitems billsItem = new TWarehousebillsitems();
  659. billsItem.setfId(wareItem.getSrcId());
  660. billsItem.setfBilltype(wareItem.getfBilltype());
  661. if (!"SJCK".equals(wareItem.getfBilltype())) {
  662. billsItem.setfChargedate(wareItem.getfBillingDeadline());
  663. tWarehousebillsitemsMapper.updateTWarehousebillsitems(billsItem);
  664. } else {
  665. billsItem.setIsCalculateStorageFees(WarehouseTypeEnum.NOT_CALCULATE.getType());
  666. billsItem.setfChargedate(wareItem.getfChargedate());
  667. }
  668. tWarehousebillsitemsMapper.agreementApprovalRejected(billsItem);
  669. }
  670. }
  671. }
  672. } else if (auditItems.getActId() >= 210 && auditItems.getActId() <= 230) {
  673. fettle = 3L;
  674. // 财务模块
  675. AjaxResult ajaxResult = tFeeServiceImpl.tfeeFollow(auditItems.getBillId(), fettle);
  676. String code = ajaxResult.get("code").toString();
  677. if ("500".equals(code)) {
  678. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  679. return ajaxResult;
  680. }
  681. } else if (auditItems.getActId() >= 310 && auditItems.getActId() <= 320) {
  682. fettle = 3L;
  683. // 协议模块
  684. AjaxResult ajaxResult = tWarehouseAgreementService.agreementFollow(auditItems.getBillId(), fettle);
  685. String code = ajaxResult.get("code").toString();
  686. if ("500".equals(code)) {
  687. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  688. return ajaxResult;
  689. }
  690. } else if (auditItems.getActId() == 410) {
  691. fettle = 3L;
  692. AjaxResult ajaxResult = tWarehouseBillsService.updateKaHeOrder(auditItems.getBillId(), fettle, auditItems.getAuditItem());
  693. String code = ajaxResult.get("code").toString();
  694. if ("500".equals(code)) {
  695. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  696. return ajaxResult;
  697. }
  698. } else if (auditItems.getActId() == 420) {
  699. fettle = 8L;
  700. AjaxResult ajaxResult = tWarehouseBillsService.updateKaHeOrder(auditItems.getBillId(), fettle, auditItems.getAuditItem());
  701. String code = ajaxResult.get("code").toString();
  702. if ("500".equals(code)) {
  703. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  704. return ajaxResult;
  705. }
  706. } else if (auditItems.getActId() >= 430 && auditItems.getActId() <= 450) {
  707. fettle = 3L;
  708. // 财务模块
  709. AjaxResult ajaxResult = tFeeServiceImpl.tfeeFollow(auditItems.getBillId(), fettle);
  710. String code = ajaxResult.get("code").toString();
  711. if ("500".equals(code)) {
  712. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  713. return ajaxResult;
  714. }
  715. } else if (auditItems.getActId() == 460) {
  716. fettle = 3L;
  717. Integer i = tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
  718. if (i != null && i > 0) {
  719. } else {
  720. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  721. return AjaxResult.error("审批驳回失败,更新费用状态失败");
  722. }
  723. } else if (auditItems.getActId() == 470) {
  724. fettle = 3L;
  725. // 财务模块
  726. AjaxResult ajaxResult = tFeeServiceImpl.tfeeFollow(auditItems.getBillId(), fettle);
  727. String code = ajaxResult.get("code").toString();
  728. if ("500".equals(code)) {
  729. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  730. return ajaxResult;
  731. }
  732. } else if (auditItems.getActId() == 170) {
  733. //入库明细审核
  734. fettle = 3L;
  735. //变更仓库入库明细审核状态
  736. Integer i = null;
  737. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  738. tWarehouseBills.setfId(auditItems.getBillId());
  739. tWarehouseBills.setfItemstatus(fettle);
  740. i = tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
  741. i = tWarehousebillsitemsMapper.warehouseItemfItemstatus(auditItems.getBillId(), fettle);
  742. if (i != null && i > 0) {
  743. } else {
  744. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  745. return AjaxResult.error("审核失败,更新费用状态失败");
  746. }
  747. } else if (auditItems.getActId() == 180) {
  748. //入库明细审核
  749. fettle = 3L;
  750. //变更仓库入库明细审核状态
  751. Integer i = null;
  752. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  753. tWarehouseBills.setfId(auditItems.getBillId());
  754. tWarehouseBills.setfItemstatus(fettle);
  755. i = tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
  756. i = tWarehousebillsitemsMapper.warehouseItemfItemstatus(auditItems.getBillId(), fettle);
  757. if (i != null && i > 0) {
  758. } else {
  759. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  760. return AjaxResult.error("审核失败,更新费用状态失败");
  761. }
  762. } else if (auditItems.getActId() == 471) {
  763. fettle = 3L;
  764. // 变更凯和申请修改订单状态
  765. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  766. tWarehouseBills.setfId(auditItems.getBillId());
  767. tWarehouseBills.setfUpdeteStatus(fettle);
  768. tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
  769. } else if (auditItems.getActId() == 472) {
  770. fettle = 3L;
  771. // 变更凯和申请修改订单状态
  772. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  773. tWarehouseBills.setfId(auditItems.getBillId());
  774. tWarehouseBills.setfSubmitUpdate(fettle);
  775. tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
  776. } else if (auditItems.getActId() == 473) {
  777. fettle = 3L;
  778. // 变更凯和申请修改订单状态
  779. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  780. tWarehouseBills.setfId(auditItems.getBillId());
  781. tWarehouseBills.setfDeleteStatus(fettle);
  782. tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
  783. } else if (auditItems.getActId() == 474) {
  784. fettle = 3L;
  785. //变更凯和拆单单状态
  786. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  787. tWarehouseBills.setfId(auditItems.getBillId());
  788. tWarehouseBills.setfDismountStatus(fettle);
  789. tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
  790. } else if (auditItems.getActId() == 181) {
  791. fettle = 3L;
  792. //业务处理
  793. } else if (Objects.equals(auditItems.getActId(), WarehouseActIdEnum.FEE_CHANGES.getActId().longValue())) {
  794. warehousebillsModifyService.additionalFeeInformation(auditItems.getBillId(), WarehouseTypeEnum.DISMISS);
  795. }
  796. AuditItems item = new AuditItems();
  797. item.setBillId(auditItems.getId());
  798. item.setActId(auditItems.getActId());
  799. item.setFidStatus(auditItems.getFidStatus());
  800. List<AuditItems> auditItem = auditItemsMapper.selectAuditItemsList(item);
  801. int number = 0;
  802. for (AuditItems at : auditItem) {
  803. if (!"S".equals(at.getAuditStatus())) {
  804. continue;
  805. }
  806. AuditItemsUsers itemsUsers = new AuditItemsUsers();
  807. itemsUsers.setPid(at.getId());
  808. List<AuditItemsUsers> auditItemsUsersList = auditItemsUsersMapper.selectAuditItemsUsersList(itemsUsers);
  809. for (AuditItemsUsers au : auditItemsUsersList) {
  810. if (Objects.equals(au.getUserId(), auditItems.getSendUserId())) {
  811. number++;
  812. at.setAuditStatus("B");
  813. if (auditItems.getAuditMsg() == null || "".equals(auditItems.getAuditMsg())) {
  814. at.setAuditMsg("不同意");
  815. } else {
  816. at.setAuditMsg(auditItems.getAuditMsg());
  817. }
  818. //at.setAuditItem(new Date());
  819. at.setAuditOpTime(new Date());
  820. at.setAuditUserId(au.getUserId());
  821. int updateAuditItems = auditItemsMapper.updateAuditItems(at);
  822. if (updateAuditItems <= 0) {
  823. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  824. return AjaxResult.error("审批驳回失败: 更新审批状态失败");
  825. }
  826. au.setAuditStatus("B");
  827. int updateAuditItemUser = auditItemsUsersMapper.updateAuditItemsUsers(au);
  828. if (updateAuditItemUser <= 0) {
  829. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  830. return AjaxResult.error("审批驳回失败: 更新审批状态失败");
  831. }
  832. if ("F".equals(at.getIffinalItem())) {
  833. int deleteNum = auditItemsMapper.deleteUpLevelId(at);
  834. if (deleteNum <= 0) {
  835. return AjaxResult.error("未找到后续除审批信息");
  836. }
  837. }
  838. }
  839. }
  840. }
  841. if (number <= 0) {
  842. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  843. return AjaxResult.error("该审批已被操作");
  844. }
  845. return AjaxResult.success();
  846. }
  847. /**
  848. * 审批撤销(我提交的 没人审核)
  849. *
  850. * @param auditItems 审核人、单据信息
  851. * @return
  852. */
  853. @Override
  854. @Transactional
  855. public AjaxResult revoke(AuditItems auditItems) {
  856. long fettle = 0L;
  857. if (auditItems.getActId() >= 110 && auditItems.getActId() <= 160) {
  858. fettle = 2L;
  859. // 查询仓库状态
  860. TWarehouseBills tWarehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(auditItems.getBillId());
  861. if ("f_billstatus".equals(auditItems.getFidStatus())) {
  862. if (!tWarehouseBills.getfBillstatus().equals(4L)) {
  863. return AjaxResult.error("审批撤销失败: 已经过审批");
  864. }
  865. } else {
  866. if (!tWarehouseBills.getWarehouseStatus().equals(4L)) {
  867. return AjaxResult.error("审批撤销失败: 已经过审批");
  868. }
  869. }
  870. tWarehouseBillsMapper.warehouseApprovalUpdate(auditItems, fettle);
  871. tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
  872. } else if (auditItems.getActId() >= 210 && auditItems.getActId() <= 230) {
  873. fettle = 2L;
  874. // 查询财务状态
  875. TFee tFee = tFeeMapper.selectTFeeById(auditItems.getBillId());
  876. if (!"4".equals(tFee.getfBillstatus())) {
  877. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  878. return AjaxResult.error("审批撤销失败: 已经过审批");
  879. }
  880. // 财务模块
  881. AjaxResult ajaxResult = tFeeServiceImpl.tfeeFollow(auditItems.getBillId(), fettle);
  882. String code = ajaxResult.get("code").toString();
  883. if ("500".equals(code)) {
  884. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  885. return AjaxResult.error("审批撤销失败: 更新审批状态失败");
  886. }
  887. } else if (auditItems.getActId() >= 310 && auditItems.getActId() <= 320) {
  888. fettle = 2L;
  889. // 查询协议状态
  890. TWarehouseAgreement tWarehouseAgreement = tWarehouseAgreementMapper.selectTWarehouseAgreementById(auditItems.getBillId());
  891. if (!"4".equals(tWarehouseAgreement.getfBillstatus())) {
  892. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  893. return AjaxResult.error("审批撤销失败: 已经过审批");
  894. }
  895. // 协议模块
  896. AjaxResult ajaxResult = tWarehouseAgreementService.agreementFollow(auditItems.getBillId(), fettle);
  897. String code = ajaxResult.get("code").toString();
  898. if ("500".equals(code)) {
  899. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  900. return AjaxResult.error("审批撤销失败: 更新审批状态失败");
  901. }
  902. } else if (auditItems.getActId() == 410) {
  903. fettle = 2L;
  904. TWarehouseBills tWarehouseBills = tWarehouseBillsService.selectKaHeById(auditItems.getBillId());
  905. if (tWarehouseBills.getfBillstatus() != 4L) {
  906. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  907. return AjaxResult.error("审批撤销失败: 已经过审批");
  908. }
  909. AjaxResult ajaxResult = tWarehouseBillsService.updateKaHeOrder(auditItems.getBillId(), fettle, auditItems.getAuditItem());
  910. String code = ajaxResult.get("code").toString();
  911. if ("500".equals(code)) {
  912. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  913. return ajaxResult;
  914. }
  915. } else if (auditItems.getActId() == 420) {
  916. fettle = 7L;
  917. TWarehouseBills tWarehouseBills = tWarehouseBillsService.selectKaHeById(auditItems.getBillId());
  918. if (tWarehouseBills.getfBillstatus() != 9L) {
  919. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  920. return AjaxResult.error("审批撤销失败: 已经过审批");
  921. }
  922. AjaxResult ajaxResult = tWarehouseBillsService.updateKaHeOrder(auditItems.getBillId(), fettle, auditItems.getAuditItem());
  923. String code = ajaxResult.get("code").toString();
  924. if ("500".equals(code)) {
  925. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  926. return ajaxResult;
  927. }
  928. } else if (auditItems.getActId() >= 430 && auditItems.getActId() <= 450) {
  929. fettle = 2L;
  930. // 查询财务状态
  931. TFee tFee = tFeeMapper.selectTFeeById(auditItems.getBillId());
  932. if (!"4".equals(tFee.getfBillstatus())) {
  933. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  934. return AjaxResult.error("审批撤销失败: 已经过审批");
  935. }
  936. // 财务模块
  937. AjaxResult ajaxResult = tFeeServiceImpl.tfeeFollow(auditItems.getBillId(), fettle);
  938. String code = ajaxResult.get("code").toString();
  939. if ("500".equals(code)) {
  940. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  941. return AjaxResult.error("审批撤销失败: 更新审批状态失败");
  942. }
  943. } else if (auditItems.getActId() == 460) {
  944. fettle = 2L;
  945. TWarehousebillsfees warehousebillsfees = new TWarehousebillsfees();
  946. warehousebillsfees.setfPid(auditItems.getBillId());
  947. List<TWarehousebillsfees> tWarehousebillsfees = tWarehousebillsfeesMapper.selectTWarehousebillsfeesList(warehousebillsfees);
  948. if (CollectionUtils.isNotEmpty(tWarehousebillsfees) && tWarehousebillsfees.get(0).getfBillstatus() != 4L) {
  949. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  950. return AjaxResult.error("审批撤销失败: 已经过审批");
  951. }
  952. Integer i = tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
  953. if (i != null && i > 0) {
  954. } else {
  955. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  956. return AjaxResult.error("审核失败,更新费用状态失败");
  957. }
  958. } else if (auditItems.getActId() == 470) {
  959. fettle = 2L;
  960. // 查询财务状态
  961. TFee tFee = tFeeMapper.selectTFeeById(auditItems.getBillId());
  962. if (!"4".equals(tFee.getfBillstatus())) {
  963. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  964. return AjaxResult.error("审批撤销失败: 已经过审批");
  965. }
  966. // 财务模块
  967. AjaxResult ajaxResult = tFeeServiceImpl.tfeeFollow(auditItems.getBillId(), fettle);
  968. String code = ajaxResult.get("code").toString();
  969. if ("500".equals(code)) {
  970. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  971. return AjaxResult.error("审批撤销失败: 更新审批状态失败");
  972. }
  973. } else if (auditItems.getActId() == 170) {
  974. //入库明细审核
  975. fettle = 2L;
  976. //变更仓库入库明细审核状态
  977. Integer i = null;
  978. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  979. tWarehouseBills.setfId(auditItems.getBillId());
  980. tWarehouseBills.setfItemstatus(fettle);
  981. i = tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
  982. i = tWarehousebillsitemsMapper.warehouseItemfItemstatus(auditItems.getBillId(), fettle);
  983. if (i != null && i > 0) {
  984. } else {
  985. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  986. return AjaxResult.error("审核失败,更新费用状态失败");
  987. }
  988. } else if (auditItems.getActId() == 180) {
  989. //入库明细审核
  990. fettle = 2L;
  991. //变更仓库入库明细审核状态
  992. Integer i = null;
  993. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  994. tWarehouseBills.setfId(auditItems.getBillId());
  995. tWarehouseBills.setfItemstatus(fettle);
  996. i = tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
  997. i = tWarehousebillsitemsMapper.warehouseItemfItemstatus(auditItems.getBillId(), fettle);
  998. if (i != null && i > 0) {
  999. } else {
  1000. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  1001. return AjaxResult.error("审核失败,更新费用状态失败");
  1002. }
  1003. } else if (auditItems.getActId() == 471) {
  1004. fettle = 2L;
  1005. // 变更凯和申请修改订单状态
  1006. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  1007. tWarehouseBills.setfId(auditItems.getBillId());
  1008. tWarehouseBills.setfUpdeteStatus(fettle);
  1009. tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
  1010. } else if (auditItems.getActId() == 472) {
  1011. fettle = 2L;
  1012. // 变更凯和申请修改订单状态
  1013. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  1014. tWarehouseBills.setfId(auditItems.getBillId());
  1015. tWarehouseBills.setfSubmitUpdate(fettle);
  1016. tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
  1017. } else if (auditItems.getActId() == 473) {
  1018. fettle = 2L;
  1019. // 变更凯和申请修改订单状态
  1020. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  1021. tWarehouseBills.setfId(auditItems.getBillId());
  1022. tWarehouseBills.setfDeleteStatus(fettle);
  1023. tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
  1024. } else if (auditItems.getActId() == 474) {
  1025. fettle = 2L;
  1026. //变更凯和拆单单状态
  1027. TWarehouseBills tWarehouseBills = new TWarehouseBills();
  1028. tWarehouseBills.setfId(auditItems.getBillId());
  1029. tWarehouseBills.setfDismountStatus(fettle);
  1030. tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
  1031. } else if (auditItems.getActId() == 181) {
  1032. fettle = 2L;
  1033. //业务处理
  1034. } else if (Objects.equals(auditItems.getActId(), WarehouseActIdEnum.FEE_CHANGES.getActId().longValue())) {
  1035. warehousebillsModifyService.withdrawalApprovalById(auditItems.getBillId());
  1036. }
  1037. int deleteNum = auditItemsMapper.deletePurchaseApproval(auditItems);
  1038. if (deleteNum == 0) {
  1039. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  1040. return AjaxResult.error("审批撤销失败: 更新审批状态失败");
  1041. }
  1042. return AjaxResult.success();
  1043. }
  1044. /**
  1045. * 仓库APP查看订单审批流
  1046. *
  1047. * @param auditItems 条件
  1048. * @return 结果
  1049. */
  1050. @Override
  1051. public List<AppAuditItemVO> selectOrderAuditItems(AppAuditItemDTO auditItems) {
  1052. // 如果没有指定类型信息,则默认 赋值仓库类型
  1053. if (StringUtils.isEmpty(auditItems.getBillType())) {
  1054. auditItems.setBillTypeList(WarehouseTypeEnum.getWarehousingType());
  1055. } else {
  1056. List<String> strings = new ArrayList<>();
  1057. strings.add(auditItems.getBillType());
  1058. auditItems.setBillTypeList(strings);
  1059. }
  1060. if (StringUtils.isNotEmpty(auditItems.getSendTimeInterval())) {
  1061. String[] split = auditItems.getSendTimeInterval().split(",");
  1062. List<String> list = Lists.newArrayList();
  1063. list.add(split[0] + " 00:00:00");
  1064. list.add(split[1] + " 23:59:59");
  1065. auditItems.setSendList(list);
  1066. }
  1067. auditItems.setActIdList(WarehouseActIdEnum.isWarehousingActList());
  1068. // 查询
  1069. List<AppAuditItemVO> appAuditItemVOList = auditItemsMapper.selectOrderAuditItems(auditItems);
  1070. // 贸易方式
  1071. String type = "data_trademodes";
  1072. if (CollectionUtils.isNotEmpty(appAuditItemVOList)) {
  1073. appAuditItemVOList.forEach(vo -> {
  1074. if (StringUtils.isNotNull(vo.getFTrademodeid())) {
  1075. // 转换贸易方式
  1076. String dictLabel = DictUtils.getDictLabel(type, vo.getFTrademodeid().toString());
  1077. if (StringUtils.isNotEmpty(dictLabel)) {
  1078. vo.setFTrademodeName(dictLabel);
  1079. }
  1080. }
  1081. // 转换状态
  1082. vo.setAudit(AuditStateEnum.fromType(vo.getAuditState()).getName());
  1083. // 转换活动号
  1084. vo.setActName(WarehouseActIdEnum.fromActId(vo.getActId().intValue()).getName());
  1085. });
  1086. }
  1087. return appAuditItemVOList;
  1088. }
  1089. }