| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591 |
- package com.goafanti.order.service.impl;
- import java.math.BigDecimal;
- import java.util.ArrayList;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.UUID;
- import com.goafanti.admin.service.DepartmentService;
- import com.goafanti.common.dao.*;
- import com.goafanti.common.model.*;
- import com.goafanti.order.bo.TOrderTaskBo;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import com.goafanti.admin.bo.AdminListBo;
- import com.goafanti.common.bo.EmailBo;
- import com.goafanti.common.bo.Error;
- import com.goafanti.common.constant.AFTConstants;
- import com.goafanti.common.enums.NoticeStatus;
- import com.goafanti.common.enums.OrderLogProcess;
- import com.goafanti.common.error.BusinessException;
- import com.goafanti.common.utils.AsyncUtils;
- import com.goafanti.common.utils.LoggerUtils;
- import com.goafanti.common.utils.StringUtils;
- import com.goafanti.core.mybatis.BaseMybatisDao;
- import com.goafanti.core.mybatis.page.Pagination;
- import com.goafanti.core.shiro.token.TokenManager;
- import com.goafanti.order.bo.OrderListBo;
- import com.goafanti.order.bo.TOrderNewBo;
- import com.goafanti.order.enums.ApprovalNewState;
- import com.goafanti.order.enums.BonusSubject;
- import com.goafanti.order.enums.OrderNewState;
- import com.goafanti.order.enums.ProcessStatus;
- import com.goafanti.order.enums.refundState;
- import com.goafanti.order.service.FundManageOrderService;
- import com.goafanti.order.service.OrderNewService;
- import com.goafanti.organization.bo.OrganizationListOut;
- @Service
- public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper> implements FundManageOrderService {
- @Autowired
- private TOrderNewMapper tOrderNewMapper;
- @Autowired
- private AdminMapper adminMapper;
- @Autowired
- private TOrderBillNewMapper billNewMapper;
- @Autowired
- private TOrderBackMapper backMapper;
- @Autowired
- private TOrderRefundMapper refundMapper;
- @Autowired
- private TOrderBonusMapper bonusMapper;
- @Autowired
- private TOrderMonthReportMapper monthReportMapper;
- @Autowired
- private TOrderTaskMapper taskMapper;
- @Autowired
- private TOrderLogMapper tOrderLogMapper;
- @Autowired
- private OrderNewService orderNewService;
- @Autowired
- private DepartmentMapper departmentMapper;
- @Autowired
- private DepartmentService departmentService;
- @Autowired
- private TOrderExamineMapper tOrderExamineMapper;
- @Autowired
- private AsyncUtils asyncUtils;
- Logger logger = LoggerFactory.getLogger(FundManagerOrderServiceImpl.class);
- @SuppressWarnings("unchecked")
- @Override
- public Pagination<OrderListBo> allUnassignedOrder(OrderListBo order, Integer pageNo,
- Integer pageSize) {
- Map<String, Object> params = new HashMap<String, Object>();
- //if (order.getOutsource()==null)order.setOutsource(0);//默认非外包
- params.put("o", order);
- Pagination<OrderListBo> data = (Pagination<OrderListBo>)findPage("getAllUnassignedListOrder", "getAllUnassignedCountOrder", params, pageNo, pageSize);
- return data;
- }
- @Override
- public Integer updateDistributionFinance(String orderNo, String financeId, Integer approval) {
- // 先判断订单id和财务专员是否存在或者能够使用
- //判断是不是特批的数据
- if(approval != ApprovalNewState.ZCTG.getCode() && approval != ApprovalNewState.FTP.getCode()){//特批未通过 2 0
- return -1;
- }
- TOrderNew torder=checkDeleteSign(orderNo);
- TOrderNew onew = new TOrderNew();
- onew.setOrderNo(orderNo);
- //onew.setDeleteSign(0);//锁定订单也能走流程
- onew.setApproval(approval);//特批状态
- // onew.setProcessStatus(ProcessStatus.YPCWGLY.getCode());//已派财务管理员 废除
- onew.setOrderStatus(OrderNewState.QDSHTG.getCode());//营销管理员审核通过
- int idCount = tOrderNewMapper.getCountByIdAndStatus(onew);
- int fidCount = adminMapper.getCountById(financeId);
- Integer r = null;
- if(idCount == 1 && fidCount == 1){
- //修改订单流程状态
- TOrderNew record = new TOrderNew();
- record.setOrderNo(orderNo);
- record.setFinanceId(financeId);
- if(torder.getProcessStatus()<ProcessStatus.YPZXSGLY.getCode()) {
- record.setProcessStatus(ProcessStatus.YPCWZY.getCode());
- }
- addOrderLog(orderNo, OrderLogProcess.CWSH.getCode(),null);
- r = tOrderNewMapper.updateByPrimaryKeySelective(record);
- }else{
- //返回错误标志 提示订单编号或者财务专员选择错误
- r = -2;
- }
- return r;
- }
- private TOrderNew checkDeleteSign(String orderNo) {
- TOrderNew t=tOrderNewMapper.selectByPrimaryKey(orderNo);
- //if(t.getDeleteSign()==2) throw new BusinessException(new Error(ErrorConstants.ORDER_ALREADY_REVOKE, t.getOrderNo(),""));
- return t;
- }
- public void addOrderLog(String orderNo, Integer code, String reason) {
- TOrderLog tl=new TOrderLog();
- tl.setOrderNo(orderNo);
- tl.setProcess(code);
- tl.setRemarks(reason);
- tl.setAid(TokenManager.getAdminId());
- tOrderLogMapper.insertSelective(tl);
- }
- @SuppressWarnings("unchecked")
- @Override
- public Map<String, Object> financeList(OrderListBo order, Integer pageNo, Integer pageSize) {
- Map<String, Object> result = new HashMap<String, Object>();
- Map<String, Object> params = new HashMap<String, Object>();
- List<String> fids=new ArrayList<>();
- if(TokenManager.hasRole(AFTConstants.CED)||TokenManager.hasRole(AFTConstants.APPROVAL_DECISION)||
- TokenManager.hasRole(AFTConstants.VICE_CEO)||TokenManager.hasRole(AFTConstants.FINANCE_ADMIN)||
- TokenManager.hasRole(AFTConstants.SUPERADMIN)) {
- //如果是这些角色则看全部
- }else if(TokenManager.hasRole(AFTConstants.FINANCE_MANAGER)) {
- fids =adminMapper.selectBySuperId(TokenManager.getAdminId());
- params.put("fids", fids);
- } else {
- fids.add(TokenManager.getAdminId());
- params.put("fids",fids);
- }
- if (order.getOutsource()==null)order.setOutsource(0);//默认非外包
- params.put("o", order);
- List<String> listDep=null;
- if (order.getDeps()!=null){
- params.put("deps", departmentService.parseArray(order.getDeps()));
- listDep=departmentService.parseArray(order.getDeps());
- params.put("deps", listDep);
- }
- Pagination<OrderListBo> data = (Pagination<OrderListBo>)findPage("financeList", "financeCount", params, pageNo, pageSize);
- result.put("pagination", data);
- //如果是财务看,则要看是否还需要审核
- if (TokenManager.hasRole(AFTConstants.FINANCE)){
- List<OrderListBo> list = (List<OrderListBo>) data.getList();
- for (OrderListBo o : list) {
- int i = tOrderExamineMapper.selectByOrderNoAndAid(o.getOrderNo(), TokenManager.getAdminId());
- if (i==0) o.setMyExamine(1);
- else o.setMyExamine(0);
- }
- }
- Map<String, Object> count = tOrderNewMapper.countTotalAndActually(order,fids,listDep);
- result.put("count", count);
- return result;
- }
- @Override
- public Integer updateReject(TOrderBack back) {
- // 是否已经收款
- TOrderNew t=checkDeleteSign(back.getOrderNo());
- BigDecimal bd = billNewMapper.getAmountByOid(back.getOrderNo());
- if(bd.compareTo(new BigDecimal(0.0)) == 1){
- return 0;//已经收款不能驳回
- }
- TOrderNewBo b = tOrderNewMapper.getSaleIdByOno(back.getOrderNo());//订单和订单负责人相关信息
- if(null == b || StringUtils.isBlank(b.getSalesmanId())){
- return -1;
- }
- //否 可以处理驳回
- //修改订单状态
- TOrderNew orderNew = new TOrderNew();
- orderNew.setOrderNo(back.getOrderNo());
- orderNew.setOrderStatus(OrderNewState.YBH.getCode());
- orderNew.setProcessStatus(ProcessStatus.YPYXY.getCode());
- //设置驳回人为财务、将财务负责人置空
- orderNew.setBackStatus(3);
- orderNew.setFinanceId("");
- int c = tOrderNewMapper.updateByPrimaryKeySelective(orderNew);
- //新增驳回数据
- if(c>0){
- back.setBackStatus(0);
- back.setInitiate(TokenManager.getAdminId());//发起人
- back.setAccept(b.getSalesmanId()); //查看该订单的负责人
- addOrderLog(back.getOrderNo(), OrderLogProcess.BH.getCode(),back.getReason());
- c = backMapper.insertSelective(back);
- List<String> aids = new ArrayList<>();
- aids.add(t.getSalesmanId());;
- if (aids.isEmpty()) {
- throw new BusinessException(new Error( "邮件发送失败,对方设置邮箱错误","邮件发送失败,对方设置邮箱错误"));
- }
- TOrderNewBo order = tOrderNewMapper.getSaleIdByOno(t.getOrderNo());
- pushGeneralSendNoticeAndEmail(aids, NoticeStatus.ORDER_NO.getCode(),order, TokenManager.getAdminId(),t.getApproval());
- }
- return c;
- }
- public void pushGeneralSendNoticeAndEmail(List<String> alist, Integer type,TOrderNewBo o,String adminId,Integer approval){
- orderNewService.pushGeneralSendNoticeAndEmail(alist, type,o, adminId,approval);
- }
- @Override
- public Integer addReceiptsFlow(TOrderBillNew billNew, String contractNo) {
- //判断有没有要加入的金额有没有超过总金额
- BigDecimal bill = billNewMapper.getAmountByOid(billNew.getOrderNo());
- //获得的单个订单金额数据(首付金额和总金额)
- TOrderNew o = checkDeleteSign(billNew.getOrderNo());
- if(null == o){
- return -2;
- }
- if(o.getDeleteSign()==3)return -3;
- BigDecimal bd = bill.add(billNew.getTransactionAmount().abs());
- //奖金信息
- TOrderBonus bonus = new TOrderBonus();
- bonus.setId(UUID.randomUUID().toString());
- bonus.setOrderNo(billNew.getOrderNo());
- bonus.setGrantBy(TokenManager.getAdminId());
- int lstaus = 0;//如果订单流水小于首付 lstaus 0
- // 0 相等
- // -1 小于
- // 1 大于
- if(bd.compareTo(o.getTotalAmount()) == 1){//如果订单流水总额大于总金额 return -1
- return -1;//超过不能添加
- }else if(bd.compareTo(o.getTotalAmount()) == 0){//付完款//如果订单流水等于于总金额 lstaus 2
- lstaus = 2;
- bonus.setBonusSubject(BonusSubject.WK.getCode());//12
- //发放给技术员如果付完款所有参与这个项目任务的人都会有结算奖
- //获得所有的任务负责人
- List<TOrderTaskBo> l = taskMapper.getReceiverByOid(billNew.getOrderNo());
- // 取消没有技术员不能支付全款
- // if(null == l || l.size() == 0){
- // return -3;//没有给将任务分给咨询师(技术员)
- // }
- for (TOrderTaskBo tOrderTask : l) {
- if(null != tOrderTask &&null != tOrderTask.getTaskReceiver()){
- bonus.setTaskId(tOrderTask.getId());//任务id
- bonus.setGrantTarget(tOrderTask.getTaskReceiver());
- bonus.setGrantType(1);
- int c = bonusMapper.checkByOnoAndSub(bonus);
- //不存在就设置
- if(c==0){
- bonus.setId(UUID.randomUUID().toString());
- bonusMapper.insertSelective(bonus);
- }
- }
- }
- addOrderLog(billNew.getOrderNo(), OrderLogProcess.CWQK.getCode(),billNew.getRemarks());
- }else if(bd.compareTo(o.getTotalAmount()) == -1){//如果订单流水小于总金额
- if(bd.compareTo(o.getFirstAmount()) == 0 || bd.compareTo(o.getFirstAmount()) == 1){//首付完成
- //查看首付奖是否存在
- TOrderBonus b = new TOrderBonus();
- b.setOrderNo(billNew.getOrderNo());
- b.setBonusSubject(11);
- b.setGrantType(0);
- b.setGrantTarget(o.getSalesmanId());
- int c = bonusMapper.checkByOnoAndSub(b);
- //不存在就设置
- if(c==0){
- bonus.setBonusSubject(BonusSubject.SF.getCode());//11
- }
- lstaus = 1;
- addOrderLog(billNew.getOrderNo(), OrderLogProcess.CWSF.getCode(),billNew.getRemarks());
- }
- }
- //否则新增流水信息
- billNew.setBillNo(UUID.randomUUID().toString().replaceAll("-", ""));
- billNew.setCreater(TokenManager.getAdminId());
- int result = billNewMapper.insertSelective(billNew);
- //修改订单结算金额和结算状态
- //如果已经首付并且流程状态是没有派给咨询师的修改流程状态为4
- TOrderNew orderNew = new TOrderNew();
- orderNew.setOrderNo(billNew.getOrderNo());
- if(contractNo!=null)orderNew.setContractNo(contractNo);
- //这里的已收金额是以前收的所有金额加上本次收的金额
- orderNew.setSettlementAmount(billNew.getTransactionAmount().add(o.getSettlementAmount()));
- orderNew.setLiquidationStatus(lstaus);
- if(result > 0){
- result = tOrderNewMapper.updateByPrimaryKeySelective(orderNew);
- //如果达到奖金发放要求新增奖金信息
- if(null != bonus.getBonusSubject()){
- bonus.setId(UUID.randomUUID().toString());
- bonus.setGrantTarget(o.getSalesmanId());
- //设置发放人类型
- bonus.setGrantType(0);
- bonusMapper.insertSelective(bonus);
- }
- }
- return result;
- }
- @Override
- public Integer updateChangeRefund(TOrderRefund refund) {
- //查看当前退单状态
- TOrderRefund d = refundMapper.selectByPrimaryKey(refund.getId());
- if(d.getRefundStatus() != refundState.DSH.getCode()){
- return -1;
- }
- //如果审核通过给咨询师和营销员发起退单通知
- if(refund.getRefundStatus() == refundState.SHTG.getCode()){
- //修改订单状态
- TOrderNewBo o = tOrderNewMapper.agreeEmailData(refund.getId());
- TOrderNew record = new TOrderNew();
- record.setOrderNo(o.getOrderNo());
- record.setOrderStatus(OrderNewState.YTD.getCode());//7
- record.setProofCount(0.0d);//订单单量为0
- tOrderNewMapper.updateByPrimaryKeySelective(record);
- //更新统计表
- updateCount(o.getOrderNo());
- //新增奖金信息表数据
- TOrderBonus bonus = new TOrderBonus();
- bonus.setId(UUID.randomUUID().toString());
- bonus.setOrderNo(o.getOrderNo());
- bonus.setGrantBy(TokenManager.getAdminId());
- bonus.setGrantTarget(o.getSalesmanId());
- bonus.setBonusSubject(BonusSubject.TK.getCode());//16
- bonusMapper.insertSelective(bonus);
- //退单邮件发送需要的数据
- AdminListBo a = adminMapper.getDeptNameByAid(TokenManager.getAdminId());
- String content = "<div>退单编号: "+ refund.getId() +"</div><div>客户名称: " + o.getUserName() + "</div>";
- content += "<div>订单编号: "+ o.getOrderNo() +"</div>";
- if(StringUtils.isNotBlank(o.getEmail())){
- EmailBo emailBo = new EmailBo("同意退单", o.getEmail(), o.getSalesmanName(), a.getDepartmentName(), a.getName(), content);
- asyncUtils.send(emailBo);
- }
- //发送站内消息
- //addNotic(o.getOrderNo(),NoticeStatus.ORDER_REFUND.getCode(),o.getSalesmanId());//给营销员
- //根据订单编号获得所有的技术员
- List<TOrderTaskBo> l = taskMapper.getReceiverByOid(o.getOrderNo());
- for (TOrderTaskBo tOrderTask : l) {
- if(null != tOrderTask && null != tOrderTask.getTaskReceiver()){
- //addNotic(o.getOrderNo(),NoticeStatus.ORDER_REFUND.getCode(),tOrderTask.getTaskReceiver());//给技术员
- //发邮件给技术员
- if(StringUtils.isNotBlank(tOrderTask.getEmail())){
- EmailBo emailBo = new EmailBo("同意退单", tOrderTask.getEmail(), tOrderTask.getName(), a.getDepartmentName(), a.getName(), content);
- asyncUtils.send(emailBo);
- }
- }
- }
- }else{//审核拒绝
- //给营销员发通知和邮件
- TOrderNewBo o = tOrderNewMapper.agreeEmailData(refund.getId());
- //addNotic(o.getOrderNo(),NoticeStatus.ORDER_REFUND_REFUSE.getCode(),o.getSalesmanId());//给营销员
- AdminListBo a = adminMapper.getDeptNameByAid(TokenManager.getAdminId());
- String content = "<div>退单编号: "+ refund.getId() +"</div><div>客户名称: " + o.getUserName() + "</div>";
- content += "<div>订单编号: "+ o.getOrderNo() +"</div>";
- String email = o.getEmail();
- if(StringUtils.isNotBlank(email)){
- email = email.substring(0, email.indexOf(","));
- String sale = o.getSalesmanName();
- sale = sale.substring(0,sale.indexOf(","));
- if(email.matches("[\\w\\.\\-]+@([\\w\\-]+\\.)+[\\w\\-]+")){//email格式校验
- EmailBo emailBo = new EmailBo("拒绝退单",email, sale, a.getDepartmentName(), a.getName(), content);
- asyncUtils.send(emailBo);
- }
- }
- }
- //修改退单审核状态
- return refundMapper.updateRefundById(refund);
- }
- @Override
- public Integer addRefundFlow(TOrderBillNew billNew) {
- // 查看收款总金额流水
- BigDecimal bd = billNewMapper.getAmountByOid(billNew.getOrderNo());
- billNew.setTransactionAmount(billNew.getTransactionAmount().abs());//绝对值
- int lstaus = 3;
- //如果小于要退的金额 return -1
- //如果等于要退的金额 lstatus 4
- //如果大于 要退的金额 lstatus 3
- if(bd.compareTo(billNew.getTransactionAmount()) == -1){
- return -1;
- }else if(bd.compareTo(billNew.getTransactionAmount()) == 0){
- lstaus = 4;
- }
- //新增退款流水
- billNew.setBillNo(UUID.randomUUID().toString().replaceAll("-", ""));
- billNew.setCreater(TokenManager.getAdminId());
- billNew.setTransactionAmount(billNew.getTransactionAmount().negate());// 取负数
- int result = billNewMapper.insertSelective(billNew);
- //修改订单数据结算状态和结算金额
- TOrderNew orderNew = new TOrderNew();
- orderNew.setOrderNo(billNew.getOrderNo());
- TOrderNew o = tOrderNewMapper.selectByPrimaryKey(billNew.getOrderNo());
- //这里修改退款金额数据之前退的金额加上本次退的金额
- orderNew.setRefundAmount(billNew.getTransactionAmount().add(o.getRefundAmount()));
- orderNew.setRefundAmount(o.getSettlementAmount().subtract(billNew.getTransactionAmount().abs()));
- orderNew.setLiquidationStatus(lstaus);
- if(lstaus == 4){//如果款项全部退完就更改订单状态,这里不一定待商榷
- addOrderLog(billNew.getOrderNo(), OrderLogProcess.WCTD.getCode(),billNew.getRemarks());
- //orderNew.setProcessStatus(6);
- }
- if(result > 0){
- result = tOrderNewMapper.updateByPrimaryKeySelective(orderNew);
- }
- return result;
- }
- @Override
- public TOrderBillNew selectOneRefundFlow(String BillNo) {
- return billNewMapper.getOneRefundFlow(BillNo);
- }
- @Override
- public List<TOrderBillNew> selectOneOrderAllRefundFlow(String orderNo) {
- return billNewMapper.getOneOrderAllRefundFlow(orderNo);
- }
- @Override
- public Integer updateProofreading(TOrderNew orderNew) {
- // 创建人
- orderNew.setProofAid(TokenManager.getAdminId());
- //校对状态
- orderNew.setProofStatus(1);
- //校对时间
- orderNew.setProofTime(new Date());
- tOrderNewMapper.updateByPrimaryKeySelective(orderNew);
- updateCount(orderNew.getOrderNo());
- return 0;
- }
- private void updateCount(String orderNo){
- //获得订单数据
- TOrderNew new1 = tOrderNewMapper.selectByPrimaryKey(orderNo);
- Calendar cal = Calendar.getInstance();
- cal.setTime(new1.getSignTime());
- int sy = cal.get(Calendar.YEAR);
- int sm = cal.get(Calendar.MONTH);
- Integer month = sy*100+(sm+1);
- //重新校对月统计
- int c = monthReportMapper.updateByMonth(month);
- LoggerUtils.debug(logger, "更新订单统计【%s】条。", c);
- }
- @Override
- public int updateContractNo(TOrderNew orderNew) {
- return tOrderNewMapper.updateByPrimaryKeySelective(orderNew);
- }
- @Override
- public int updateFinanceApproval(String orderNo,String remarks) {
- TOrderNew t=new TOrderNew();
- TOrderNew new1 =checkDeleteSign(orderNo);
- if (new1.getProcessStatus()!=3) {
- throw new BusinessException("订单流程不正确。");
- }
- t.setOrderNo(orderNo);
- t.setApproval(new1.getApproval());
- if (new1.getBackStatus()==3) {
- t.setBackStatus(0);
- }
- //判断是否走入下一个流程
- boolean flag=judgeOrderExamine(orderNo);
- TOrderLog tl=new TOrderLog();
- tl.setAid(TokenManager.getAdminId());
- tl.setOrderNo(t.getOrderNo());
- if (TokenManager.hasRole(AFTConstants.FINANCE)){
- tl.setProcess(OrderLogProcess.CWSH.getCode());
- }else if (TokenManager.hasRole(AFTConstants.TECH_ADMIN)){
- tl.setProcess(OrderLogProcess.XMZJSH.getCode());
- }
- tl.setRemarks(remarks);
- tOrderLogMapper.insertSelective(tl);
- orderNewService.pushExamineName(t);
- //如果全部派单完成才需要通知和走下个流程
- if (flag){
- pushNoticeAndEmail(t, new1);
- }else {
- List<TOrderExamine> tOrderExamines = tOrderExamineMapper.selectByOrderNo(orderNo);
- StringBuffer str=new StringBuffer();
- for (TOrderExamine e : tOrderExamines) {
- if (e.getStatus()==0){
- str=str.append(e.getAname()).append(",");
- }
- }
- t.setExamineName(str.substring(0,str.length()-1));
- }
- return tOrderNewMapper.updateByPrimaryKeySelective(t);
- }
- private void pushNoticeAndEmail(TOrderNew t, TOrderNew new1) {
- List<String> aids = new ArrayList<>();
- StringBuffer str= new StringBuffer();
- TOrderNewBo order = tOrderNewMapper.getSaleIdByOno(t.getOrderNo());
- if (new1.getApproval()==ApprovalNewState.ZCDSH.getCode()||
- new1.getApproval()==ApprovalNewState.ZCBH.getCode()) {
- t.setProcessStatus(ProcessStatus.YPTPSH.getCode());
- List<String> types=new ArrayList<>();
- //总裁加助理
- types.add(AFTConstants.CED);
- types.add(AFTConstants.CED_ASSISTANT);
- for (Admin admin : adminMapper.getAdminRoleTypesList(types)) {
- aids.add(admin.getId());
- str=str.append(admin.getName()).append(",");
- }
- }else if (new1.getApproval()==ApprovalNewState.DSZDSH.getCode()||
- new1.getApproval()==ApprovalNewState.DSZBH.getCode()) {
- t.setProcessStatus(ProcessStatus.YPTPSH.getCode());
- List<String> types=new ArrayList<>();
- //董事长加助理
- types.add(AFTConstants.APPROVAL_DECISION);
- types.add(AFTConstants.APPROVAL_DECISION_ASSISTANT);
- for (Admin admin : adminMapper.getAdminRoleTypesList(types)) {
- aids.add(admin.getId());
- str=str.append(admin.getName()).append(",");
- }
- }else {
- t.setProcessStatus(ProcessStatus.YPZXSGLY.getCode());
- //设置发送邮件标识
- order.setProcessStatus(ProcessStatus.YPZXSGLY.getCode());
- OrganizationListOut oo=departmentMapper.selectAllById(new1.getOrderDep());
- t.setFinanceId(oo.getFinanceId());
- for (Admin admin : adminMapper.getAdminRoleTypeList(AFTConstants.TECH_ADMIN)) {
- aids.add(admin.getId());
- str=str.append(admin.getName()).append(",");
- }
- }
- //用与外部修改名称
- t.setExamineName(str.substring(0,str.length()-1));
- pushGeneralSendNoticeAndEmail(aids, NoticeStatus.ORDER_YES.getCode(),order, TokenManager.getAdminId(), new1.getApproval());
- }
- private boolean judgeOrderExamine(String orderNo) {
- tOrderExamineMapper.updateStatusByOrderNo(orderNo,TokenManager.getAdminId(),1);
- List<TOrderExamine> tOrderExamines = tOrderExamineMapper.selectByOrderNo(orderNo);
- int max = tOrderExamines.size();
- int yes=0;
- for (TOrderExamine e : tOrderExamines) {
- if (e.getStatus()==1){
- yes++;
- }
- }
- if (yes==max){
- return true;
- }
- return false;
- }
- }
|