FundManagerOrderServiceImpl.java 26 KB

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