FundManagerOrderServiceImpl.java 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531
  1. package com.goafanti.order.service.impl;
  2. import java.math.BigDecimal;
  3. import java.util.ArrayList;
  4. import java.util.Calendar;
  5. import java.util.Date;
  6. import java.util.HashMap;
  7. import java.util.List;
  8. import java.util.Map;
  9. import java.util.UUID;
  10. import com.goafanti.admin.service.DepartmentService;
  11. import com.goafanti.common.dao.*;
  12. import com.goafanti.common.model.*;
  13. import com.goafanti.order.bo.TOrderTaskBo;
  14. import org.slf4j.Logger;
  15. import org.slf4j.LoggerFactory;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.stereotype.Service;
  18. import com.goafanti.admin.bo.AdminListBo;
  19. import com.goafanti.common.bo.EmailBo;
  20. import com.goafanti.common.bo.Error;
  21. import com.goafanti.common.constant.AFTConstants;
  22. import com.goafanti.common.enums.NoticeStatus;
  23. import com.goafanti.common.enums.OrderLogProcess;
  24. import com.goafanti.common.error.BusinessException;
  25. import com.goafanti.common.utils.AsyncUtils;
  26. import com.goafanti.common.utils.LoggerUtils;
  27. import com.goafanti.common.utils.StringUtils;
  28. import com.goafanti.core.mybatis.BaseMybatisDao;
  29. import com.goafanti.core.mybatis.page.Pagination;
  30. import com.goafanti.core.shiro.token.TokenManager;
  31. import com.goafanti.order.bo.OrderListBo;
  32. import com.goafanti.order.bo.TOrderNewBo;
  33. import com.goafanti.order.enums.ApprovalNewState;
  34. import com.goafanti.order.enums.BonusSubject;
  35. import com.goafanti.order.enums.OrderNewState;
  36. import com.goafanti.order.enums.ProcessStatus;
  37. import com.goafanti.order.enums.refundState;
  38. import com.goafanti.order.service.FundManageOrderService;
  39. import com.goafanti.order.service.OrderNewService;
  40. import com.goafanti.organization.bo.OrganizationListOut;
  41. @Service
  42. public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper> implements FundManageOrderService {
  43. @Autowired
  44. private TOrderNewMapper tOrderNewMapper;
  45. @Autowired
  46. private AdminMapper adminMapper;
  47. @Autowired
  48. private TOrderBillNewMapper billNewMapper;
  49. @Autowired
  50. private TOrderBackMapper backMapper;
  51. @Autowired
  52. private TOrderRefundMapper refundMapper;
  53. @Autowired
  54. private TOrderBonusMapper bonusMapper;
  55. @Autowired
  56. private TOrderMonthReportMapper monthReportMapper;
  57. @Autowired
  58. private TOrderTaskMapper taskMapper;
  59. @Autowired
  60. private TOrderLogMapper tOrderLogMapper;
  61. @Autowired
  62. private OrderNewService orderNewService;
  63. @Autowired
  64. private DepartmentMapper departmentMapper;
  65. @Autowired
  66. private DepartmentService departmentService;
  67. @Autowired
  68. private AsyncUtils asyncUtils;
  69. Logger logger = LoggerFactory.getLogger(FundManagerOrderServiceImpl.class);
  70. @SuppressWarnings("unchecked")
  71. @Override
  72. public Pagination<OrderListBo> allUnassignedOrder(OrderListBo order, Integer pageNo,
  73. Integer pageSize) {
  74. Map<String, Object> params = new HashMap<String, Object>();
  75. //if (order.getOutsource()==null)order.setOutsource(0);//默认非外包
  76. params.put("o", order);
  77. Pagination<OrderListBo> data = (Pagination<OrderListBo>)findPage("getAllUnassignedListOrder", "getAllUnassignedCountOrder", params, pageNo, pageSize);
  78. return data;
  79. }
  80. @Override
  81. public Integer updateDistributionFinance(String orderNo, String financeId, Integer approval) {
  82. // 先判断订单id和财务专员是否存在或者能够使用
  83. //判断是不是特批的数据
  84. if(approval != ApprovalNewState.ZCTG.getCode() && approval != ApprovalNewState.FTP.getCode()){//特批未通过 2 0
  85. return -1;
  86. }
  87. TOrderNew torder=checkDeleteSign(orderNo);
  88. TOrderNew onew = new TOrderNew();
  89. onew.setOrderNo(orderNo);
  90. //onew.setDeleteSign(0);//锁定订单也能走流程
  91. onew.setApproval(approval);//特批状态
  92. // onew.setProcessStatus(ProcessStatus.YPCWGLY.getCode());//已派财务管理员 废除
  93. onew.setOrderStatus(OrderNewState.QDSHTG.getCode());//营销管理员审核通过
  94. int idCount = tOrderNewMapper.getCountByIdAndStatus(onew);
  95. int fidCount = adminMapper.getCountById(financeId);
  96. Integer r = null;
  97. if(idCount == 1 && fidCount == 1){
  98. //修改订单流程状态
  99. TOrderNew record = new TOrderNew();
  100. record.setOrderNo(orderNo);
  101. record.setFinanceId(financeId);
  102. if(torder.getProcessStatus()<ProcessStatus.YPZXSGLY.getCode()) {
  103. record.setProcessStatus(ProcessStatus.YPCWZY.getCode());
  104. }
  105. addOrderLog(orderNo, OrderLogProcess.CWPD.getCode(),null);
  106. r = tOrderNewMapper.updateByPrimaryKeySelective(record);
  107. }else{
  108. //返回错误标志 提示订单编号或者财务专员选择错误
  109. r = -2;
  110. }
  111. return r;
  112. }
  113. private TOrderNew checkDeleteSign(String orderNo) {
  114. TOrderNew t=tOrderNewMapper.selectByPrimaryKey(orderNo);
  115. //if(t.getDeleteSign()==2) throw new BusinessException(new Error(ErrorConstants.ORDER_ALREADY_REVOKE, t.getOrderNo(),""));
  116. return t;
  117. }
  118. public void addOrderLog(String orderNo, Integer code, String reason) {
  119. TOrderLog tl=new TOrderLog();
  120. tl.setOrderNo(orderNo);
  121. tl.setProcess(code);
  122. tl.setRemarks(reason);
  123. tl.setAid(TokenManager.getAdminId());
  124. tOrderLogMapper.insertSelective(tl);
  125. }
  126. @SuppressWarnings("unchecked")
  127. @Override
  128. public Map<String, Object> financeList(OrderListBo order, Integer pageNo, Integer pageSize) {
  129. Map<String, Object> result = new HashMap<String, Object>();
  130. Map<String, Object> params = new HashMap<String, Object>();
  131. List<String> fids=new ArrayList<>();
  132. if(TokenManager.hasRole(AFTConstants.CED)||TokenManager.hasRole(AFTConstants.APPROVAL_DECISION)||
  133. TokenManager.hasRole(AFTConstants.VICE_CEO)||TokenManager.hasRole(AFTConstants.FINANCE_ADMIN)||
  134. TokenManager.hasRole(AFTConstants.SUPERADMIN)) {
  135. //如果是这些角色则看全部
  136. }else if(TokenManager.hasRole(AFTConstants.FINANCE_MANAGER)) {
  137. fids =adminMapper.selectBySuperId(TokenManager.getAdminId());
  138. params.put("fids", fids);
  139. } else {
  140. fids.add(TokenManager.getAdminId());
  141. params.put("fids",fids);
  142. }
  143. if (order.getOutsource()==null)order.setOutsource(0);//默认非外包
  144. params.put("o", order);
  145. List<String> listDep=null;
  146. if (order.getDeps()!=null){
  147. params.put("deps", departmentService.parseArray(order.getDeps()));
  148. listDep=departmentService.parseArray(order.getDeps());
  149. params.put("deps", listDep);
  150. }
  151. Pagination<OrderListBo> data = (Pagination<OrderListBo>)findPage("financeList", "financeCount", params, pageNo, pageSize);
  152. result.put("pagination", data);
  153. Map<String, Object> count = tOrderNewMapper.countTotalAndActually(order,fids,listDep);
  154. result.put("count", count);
  155. return result;
  156. }
  157. @Override
  158. public Integer updateReject(TOrderBack back) {
  159. // 是否已经收款
  160. TOrderNew t=checkDeleteSign(back.getOrderNo());
  161. BigDecimal bd = billNewMapper.getAmountByOid(back.getOrderNo());
  162. if(bd.compareTo(new BigDecimal(0.0)) == 1){
  163. return 0;//已经收款不能驳回
  164. }
  165. TOrderNewBo b = tOrderNewMapper.getSaleIdByOno(back.getOrderNo());//订单和订单负责人相关信息
  166. if(null == b || StringUtils.isBlank(b.getSalesmanId())){
  167. return -1;
  168. }
  169. //否 可以处理驳回
  170. //修改订单状态
  171. TOrderNew orderNew = new TOrderNew();
  172. orderNew.setOrderNo(back.getOrderNo());
  173. orderNew.setOrderStatus(OrderNewState.YBH.getCode());
  174. orderNew.setProcessStatus(ProcessStatus.YPYXY.getCode());
  175. //设置驳回人为财务、将财务负责人置空
  176. orderNew.setBackStatus(3);
  177. orderNew.setFinanceId("");
  178. int c = tOrderNewMapper.updateByPrimaryKeySelective(orderNew);
  179. //新增驳回数据
  180. if(c>0){
  181. back.setBackStatus(0);
  182. back.setInitiate(TokenManager.getAdminId());//发起人
  183. back.setAccept(b.getSalesmanId()); //查看该订单的负责人
  184. addOrderLog(back.getOrderNo(), OrderLogProcess.BH.getCode(),back.getReason());
  185. c = backMapper.insertSelective(back);
  186. List<String> aids = new ArrayList<>();
  187. aids.add(t.getSalesmanId());;
  188. if (aids.isEmpty()) {
  189. throw new BusinessException(new Error( "邮件发送失败,对方设置邮箱错误","邮件发送失败,对方设置邮箱错误"));
  190. }
  191. TOrderNewBo order = tOrderNewMapper.getSaleIdByOno(t.getOrderNo());
  192. orderNewService.pushGeneralSendNoticeAndEmail(aids, NoticeStatus.ORDER_NO.getCode(),order, TokenManager.getAdminId(),t.getApproval());
  193. }
  194. return c;
  195. }
  196. @Override
  197. public Integer addReceiptsFlow(TOrderBillNew billNew, String contractNo) {
  198. //判断有没有要加入的金额有没有超过总金额
  199. BigDecimal bill = billNewMapper.getAmountByOid(billNew.getOrderNo());
  200. //获得的单个订单金额数据(首付金额和总金额)
  201. TOrderNew o = checkDeleteSign(billNew.getOrderNo());
  202. if(null == o){
  203. return -2;
  204. }
  205. if(o.getDeleteSign()==3)return -3;
  206. BigDecimal bd = bill.add(billNew.getTransactionAmount().abs());
  207. //奖金信息
  208. TOrderBonus bonus = new TOrderBonus();
  209. bonus.setId(UUID.randomUUID().toString());
  210. bonus.setOrderNo(billNew.getOrderNo());
  211. bonus.setGrantBy(TokenManager.getAdminId());
  212. int lstaus = 0;//如果订单流水小于首付 lstaus 0
  213. // 0 相等
  214. // -1 小于
  215. // 1 大于
  216. if(bd.compareTo(o.getTotalAmount()) == 1){//如果订单流水总额大于总金额 return -1
  217. return -1;//超过不能添加
  218. }else if(bd.compareTo(o.getTotalAmount()) == 0){//付完款//如果订单流水等于于总金额 lstaus 2
  219. lstaus = 2;
  220. bonus.setBonusSubject(BonusSubject.WK.getCode());//12
  221. //发放给技术员如果付完款所有参与这个项目任务的人都会有结算奖
  222. //获得所有的任务负责人
  223. List<TOrderTaskBo> l = taskMapper.getReceiverByOid(billNew.getOrderNo());
  224. // 取消没有技术员不能支付全款
  225. // if(null == l || l.size() == 0){
  226. // return -3;//没有给将任务分给咨询师(技术员)
  227. // }
  228. for (TOrderTaskBo tOrderTask : l) {
  229. if(null != tOrderTask &&null != tOrderTask.getTaskReceiver()){
  230. bonus.setTaskId(tOrderTask.getId());//任务id
  231. bonus.setGrantTarget(tOrderTask.getTaskReceiver());
  232. bonus.setGrantType(1);
  233. int c = bonusMapper.checkByOnoAndSub(bonus);
  234. //不存在就设置
  235. if(c==0){
  236. bonus.setId(UUID.randomUUID().toString());
  237. bonusMapper.insertSelective(bonus);
  238. }
  239. }
  240. }
  241. addOrderLog(billNew.getOrderNo(), OrderLogProcess.CWQK.getCode(),billNew.getRemarks());
  242. }else if(bd.compareTo(o.getTotalAmount()) == -1){//如果订单流水小于总金额
  243. if(bd.compareTo(o.getFirstAmount()) == 0 || bd.compareTo(o.getFirstAmount()) == 1){//首付完成
  244. //查看首付奖是否存在
  245. TOrderBonus b = new TOrderBonus();
  246. b.setOrderNo(billNew.getOrderNo());
  247. b.setBonusSubject(11);
  248. b.setGrantType(0);
  249. b.setGrantTarget(o.getSalesmanId());
  250. int c = bonusMapper.checkByOnoAndSub(b);
  251. //不存在就设置
  252. if(c==0){
  253. bonus.setBonusSubject(BonusSubject.SF.getCode());//11
  254. }
  255. lstaus = 1;
  256. addOrderLog(billNew.getOrderNo(), OrderLogProcess.CWSF.getCode(),billNew.getRemarks());
  257. }
  258. }
  259. //否则新增流水信息
  260. billNew.setBillNo(UUID.randomUUID().toString().replaceAll("-", ""));
  261. billNew.setCreater(TokenManager.getAdminId());
  262. int result = billNewMapper.insertSelective(billNew);
  263. //修改订单结算金额和结算状态
  264. //如果已经首付并且流程状态是没有派给咨询师的修改流程状态为4
  265. TOrderNew orderNew = new TOrderNew();
  266. orderNew.setOrderNo(billNew.getOrderNo());
  267. if(contractNo!=null)orderNew.setContractNo(contractNo);
  268. //这里的已收金额是以前收的所有金额加上本次收的金额
  269. orderNew.setSettlementAmount(billNew.getTransactionAmount().add(o.getSettlementAmount()));
  270. orderNew.setLiquidationStatus(lstaus);
  271. if(result > 0){
  272. result = tOrderNewMapper.updateByPrimaryKeySelective(orderNew);
  273. //如果达到奖金发放要求新增奖金信息
  274. if(null != bonus.getBonusSubject()){
  275. bonus.setId(UUID.randomUUID().toString());
  276. bonus.setGrantTarget(o.getSalesmanId());
  277. //设置发放人类型
  278. bonus.setGrantType(0);
  279. bonusMapper.insertSelective(bonus);
  280. }
  281. }
  282. return result;
  283. }
  284. @Override
  285. public Integer updateChangeRefund(TOrderRefund refund) {
  286. //查看当前退单状态
  287. TOrderRefund d = refundMapper.selectByPrimaryKey(refund.getId());
  288. if(d.getRefundStatus() != refundState.DSH.getCode()){
  289. return -1;
  290. }
  291. //如果审核通过给咨询师和营销员发起退单通知
  292. if(refund.getRefundStatus() == refundState.SHTG.getCode()){
  293. //修改订单状态
  294. TOrderNewBo o = tOrderNewMapper.agreeEmailData(refund.getId());
  295. TOrderNew record = new TOrderNew();
  296. record.setOrderNo(o.getOrderNo());
  297. record.setOrderStatus(OrderNewState.YTD.getCode());//7
  298. record.setProofCount(0.0d);//订单单量为0
  299. tOrderNewMapper.updateByPrimaryKeySelective(record);
  300. //更新统计表
  301. updateCount(o.getOrderNo());
  302. //新增奖金信息表数据
  303. TOrderBonus bonus = new TOrderBonus();
  304. bonus.setId(UUID.randomUUID().toString());
  305. bonus.setOrderNo(o.getOrderNo());
  306. bonus.setGrantBy(TokenManager.getAdminId());
  307. bonus.setGrantTarget(o.getSalesmanId());
  308. bonus.setBonusSubject(BonusSubject.TK.getCode());//16
  309. bonusMapper.insertSelective(bonus);
  310. //退单邮件发送需要的数据
  311. AdminListBo a = adminMapper.getDeptNameByAid(TokenManager.getAdminId());
  312. String content = "<div>退单编号: "+ refund.getId() +"</div><div>客户名称: " + o.getUserName() + "</div>";
  313. content += "<div>订单编号: "+ o.getOrderNo() +"</div>";
  314. if(StringUtils.isNotBlank(o.getEmail())){
  315. EmailBo emailBo = new EmailBo("同意退单", o.getEmail(), o.getSalesmanName(), a.getDepartmentName(), a.getName(), content);
  316. asyncUtils.send(emailBo);
  317. }
  318. //发送站内消息
  319. //addNotic(o.getOrderNo(),NoticeStatus.ORDER_REFUND.getCode(),o.getSalesmanId());//给营销员
  320. //根据订单编号获得所有的技术员
  321. List<TOrderTaskBo> l = taskMapper.getReceiverByOid(o.getOrderNo());
  322. for (TOrderTaskBo tOrderTask : l) {
  323. if(null != tOrderTask && null != tOrderTask.getTaskReceiver()){
  324. //addNotic(o.getOrderNo(),NoticeStatus.ORDER_REFUND.getCode(),tOrderTask.getTaskReceiver());//给技术员
  325. //发邮件给技术员
  326. if(StringUtils.isNotBlank(tOrderTask.getEmail())){
  327. EmailBo emailBo = new EmailBo("同意退单", tOrderTask.getEmail(), tOrderTask.getName(), a.getDepartmentName(), a.getName(), content);
  328. asyncUtils.send(emailBo);
  329. }
  330. }
  331. }
  332. }else{//审核拒绝
  333. //给营销员发通知和邮件
  334. TOrderNewBo o = tOrderNewMapper.agreeEmailData(refund.getId());
  335. //addNotic(o.getOrderNo(),NoticeStatus.ORDER_REFUND_REFUSE.getCode(),o.getSalesmanId());//给营销员
  336. AdminListBo a = adminMapper.getDeptNameByAid(TokenManager.getAdminId());
  337. String content = "<div>退单编号: "+ refund.getId() +"</div><div>客户名称: " + o.getUserName() + "</div>";
  338. content += "<div>订单编号: "+ o.getOrderNo() +"</div>";
  339. String email = o.getEmail();
  340. if(StringUtils.isNotBlank(email)){
  341. email = email.substring(0, email.indexOf(","));
  342. String sale = o.getSalesmanName();
  343. sale = sale.substring(0,sale.indexOf(","));
  344. if(email.matches("[\\w\\.\\-]+@([\\w\\-]+\\.)+[\\w\\-]+")){//email格式校验
  345. EmailBo emailBo = new EmailBo("拒绝退单",email, sale, a.getDepartmentName(), a.getName(), content);
  346. asyncUtils.send(emailBo);
  347. }
  348. }
  349. }
  350. //修改退单审核状态
  351. return refundMapper.updateRefundById(refund);
  352. }
  353. @Override
  354. public Integer addRefundFlow(TOrderBillNew billNew) {
  355. // 查看收款总金额流水
  356. BigDecimal bd = billNewMapper.getAmountByOid(billNew.getOrderNo());
  357. billNew.setTransactionAmount(billNew.getTransactionAmount().abs());//绝对值
  358. int lstaus = 3;
  359. //如果小于要退的金额 return -1
  360. //如果等于要退的金额 lstatus 4
  361. //如果大于 要退的金额 lstatus 3
  362. if(bd.compareTo(billNew.getTransactionAmount()) == -1){
  363. return -1;
  364. }else if(bd.compareTo(billNew.getTransactionAmount()) == 0){
  365. lstaus = 4;
  366. }
  367. //新增退款流水
  368. billNew.setBillNo(UUID.randomUUID().toString().replaceAll("-", ""));
  369. billNew.setCreater(TokenManager.getAdminId());
  370. billNew.setTransactionAmount(billNew.getTransactionAmount().negate());// 取负数
  371. int result = billNewMapper.insertSelective(billNew);
  372. //修改订单数据结算状态和结算金额
  373. TOrderNew orderNew = new TOrderNew();
  374. orderNew.setOrderNo(billNew.getOrderNo());
  375. TOrderNew o = tOrderNewMapper.selectByPrimaryKey(billNew.getOrderNo());
  376. //这里修改退款金额数据之前退的金额加上本次退的金额
  377. orderNew.setRefundAmount(billNew.getTransactionAmount().add(o.getRefundAmount()));
  378. orderNew.setRefundAmount(o.getSettlementAmount().subtract(billNew.getTransactionAmount().abs()));
  379. orderNew.setLiquidationStatus(lstaus);
  380. if(lstaus == 4){//如果款项全部退完就更改订单状态,这里不一定待商榷
  381. addOrderLog(billNew.getOrderNo(), OrderLogProcess.WCTD.getCode(),billNew.getRemarks());
  382. //orderNew.setProcessStatus(6);
  383. }
  384. if(result > 0){
  385. result = tOrderNewMapper.updateByPrimaryKeySelective(orderNew);
  386. }
  387. return result;
  388. }
  389. @Override
  390. public TOrderBillNew selectOneRefundFlow(String BillNo) {
  391. return billNewMapper.getOneRefundFlow(BillNo);
  392. }
  393. @Override
  394. public List<TOrderBillNew> selectOneOrderAllRefundFlow(String orderNo) {
  395. return billNewMapper.getOneOrderAllRefundFlow(orderNo);
  396. }
  397. @Override
  398. public Integer updateProofreading(TOrderNew orderNew) {
  399. // 创建人
  400. orderNew.setProofAid(TokenManager.getAdminId());
  401. //校对状态
  402. orderNew.setProofStatus(1);
  403. //校对时间
  404. orderNew.setProofTime(new Date());
  405. tOrderNewMapper.updateByPrimaryKeySelective(orderNew);
  406. updateCount(orderNew.getOrderNo());
  407. return 0;
  408. }
  409. private void updateCount(String orderNo){
  410. //获得订单数据
  411. TOrderNew new1 = tOrderNewMapper.selectByPrimaryKey(orderNo);
  412. Calendar cal = Calendar.getInstance();
  413. cal.setTime(new1.getSignTime());
  414. int sy = cal.get(Calendar.YEAR);
  415. int sm = cal.get(Calendar.MONTH);
  416. Integer month = sy*100+(sm+1);
  417. //重新校对月统计
  418. int c = monthReportMapper.updateByMonth(month);
  419. LoggerUtils.debug(logger, "更新订单统计【%s】条。", c);
  420. }
  421. @Override
  422. public int updateContractNo(TOrderNew orderNew) {
  423. return tOrderNewMapper.updateByPrimaryKeySelective(orderNew);
  424. }
  425. @Override
  426. public int updateFinanceApproval(String orderNo,String remarks) {
  427. TOrderNew t=new TOrderNew();
  428. TOrderNew new1 =checkDeleteSign(orderNo);
  429. if (new1.getProcessStatus()!=3) {
  430. throw new BusinessException("订单流程不正确。");
  431. }
  432. t.setOrderNo(orderNo);
  433. t.setApproval(new1.getApproval());
  434. if (new1.getBackStatus()==3) {
  435. t.setBackStatus(0);
  436. }
  437. List<String> aids = new ArrayList<>();
  438. if (new1.getApproval()==ApprovalNewState.ZCDSH.getCode()||
  439. new1.getApproval()==ApprovalNewState.ZCBH.getCode()) {
  440. t.setProcessStatus(ProcessStatus.YPTPSH.getCode());
  441. List<String> types=new ArrayList<>();
  442. //总裁加助理
  443. types.add(AFTConstants.CED);
  444. types.add(AFTConstants.CED_ASSISTANT);
  445. for (Admin admin : adminMapper.getAdminRoleTypesList(types)) {
  446. aids.add(admin.getId());
  447. }
  448. }else if (new1.getApproval()==ApprovalNewState.DSZDSH.getCode()||
  449. new1.getApproval()==ApprovalNewState.DSZBH.getCode()) {
  450. t.setProcessStatus(ProcessStatus.YPTPSH.getCode());
  451. List<String> types=new ArrayList<>();
  452. //董事长加助理
  453. types.add(AFTConstants.APPROVAL_DECISION);
  454. types.add(AFTConstants.APPROVAL_DECISION_ASSISTANT);
  455. for (Admin admin : adminMapper.getAdminRoleTypesList(types)) {
  456. aids.add(admin.getId());
  457. }
  458. }else {
  459. t.setProcessStatus(ProcessStatus.YPZXSGLY.getCode());
  460. OrganizationListOut oo=departmentMapper.selectAllById(new1.getOrderDep());
  461. t.setFinanceId(oo.getFinanceId());
  462. for (Admin admin : adminMapper.getAdminRoleTypeList(AFTConstants.TECH_ADMIN)) {
  463. aids.add(admin.getId());
  464. }
  465. }
  466. orderNewService.pushExamineName(t);
  467. TOrderLog tl=new TOrderLog();
  468. tl.setAid(TokenManager.getAdminId());
  469. tl.setOrderNo(t.getOrderNo());
  470. tl.setProcess(OrderLogProcess.CWPD.getCode());
  471. tl.setRemarks(remarks);
  472. tOrderLogMapper.insertSelective(tl);
  473. TOrderNewBo order = tOrderNewMapper.getSaleIdByOno(t.getOrderNo());
  474. orderNewService.pushGeneralSendNoticeAndEmail(aids, NoticeStatus.ORDER_YES.getCode(),order, TokenManager.getAdminId(),new1.getApproval());
  475. return tOrderNewMapper.updateByPrimaryKeySelective(t);
  476. }
  477. }