|
|
@@ -1,26 +1,36 @@
|
|
|
package com.goafanti.order.service.impl;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.UUID;
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import com.goafanti.common.bo.Error;
|
|
|
import com.goafanti.common.dao.NewOrderChangeMapper;
|
|
|
import com.goafanti.common.dao.OrderChangeLogMapper;
|
|
|
import com.goafanti.common.dao.TOrderDunMapper;
|
|
|
import com.goafanti.common.dao.TOrderNewMapper;
|
|
|
import com.goafanti.common.dao.TOrderTaskMapper;
|
|
|
+import com.goafanti.common.error.BusinessException;
|
|
|
+import com.goafanti.common.model.NewOrderChange;
|
|
|
import com.goafanti.common.model.OrderChangeLog;
|
|
|
import com.goafanti.common.model.TOrderDun;
|
|
|
import com.goafanti.common.model.TOrderNew;
|
|
|
+import com.goafanti.common.utils.StringUtils;
|
|
|
import com.goafanti.core.mybatis.BaseMybatisDao;
|
|
|
import com.goafanti.core.mybatis.JDBCIdGenerator;
|
|
|
+import com.goafanti.core.mybatis.page.Pagination;
|
|
|
import com.goafanti.core.shiro.token.TokenManager;
|
|
|
import com.goafanti.order.bo.NewOrderChangeBo;
|
|
|
+import com.goafanti.order.bo.OrderChangeBo;
|
|
|
import com.goafanti.order.bo.OrderChangeLogBo;
|
|
|
import com.goafanti.order.bo.TOrderTaskBo;
|
|
|
import com.goafanti.order.service.OrderChangeService;
|
|
|
+import com.goafanti.order.service.OrderService;
|
|
|
@Service
|
|
|
public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper> implements OrderChangeService {
|
|
|
@Autowired
|
|
|
@@ -34,6 +44,8 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
|
|
|
@Autowired
|
|
|
private TOrderTaskMapper tOrderTaskMapper;
|
|
|
@Autowired
|
|
|
+ private OrderService orderService;
|
|
|
+ @Autowired
|
|
|
private JDBCIdGenerator idGenerator;
|
|
|
|
|
|
|
|
|
@@ -43,7 +55,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
|
|
|
TOrderNew ton=new TOrderNew();
|
|
|
ton.setOrderNo(t.getOrderNo());
|
|
|
ton.setDeleteSign(2);//将订单置为锁定
|
|
|
- t.setProcessState(2);//设置营销管理员来审核
|
|
|
+ t.setProcessState(1);//设置营销管理员来审核
|
|
|
tOrderNewMapper.updateByPrimaryKeySelective(ton);
|
|
|
newOrderChangeMapper.insertSelective(t);
|
|
|
NewOrderChangeBo ncb=newOrderChangeMapper.selectByorderNo(t.getOrderNo());
|
|
|
@@ -62,27 +74,35 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
|
|
|
return nb;
|
|
|
}
|
|
|
@Override
|
|
|
- public int pushOrderChangeAudit(String orderNo, String remarks, Integer status) {
|
|
|
+ public int pushOrderChangeAudit(String orderNo, String remarks, Integer status,Integer processState) {
|
|
|
NewOrderChangeBo nb=newOrderChangeMapper.selectByorderNo(orderNo);
|
|
|
+ if (processState==null||(nb.getProcessState()!=9&&processState !=nb.getProcessState()) ) {
|
|
|
+ throw new BusinessException(new Error( "变更流程与您所操作流程不匹配","变更流程与您所操作流程不匹配"));
|
|
|
+ }
|
|
|
+ if (nb.getStatus()==4) {
|
|
|
+ throw new BusinessException(new Error( "变更流程已通过审核","变更流程已通过审核"));
|
|
|
+ }
|
|
|
//2通过 3驳回
|
|
|
if (status==2) {
|
|
|
//变更类型 0退单退款 1项目及金额变更 2仅项目变更 3仅金额变更 4重报 5赠送
|
|
|
if(nb.getType()==0){
|
|
|
if (nb.getChangeAmount().compareTo(new BigDecimal("0.2"))<0) {//小于则总裁通过,大于则董事长
|
|
|
- if(nb.getProcessState()==7) {changgeAdopt(nb);}//项目变更通过
|
|
|
+ if(nb.getProcessState()==7) {//项目变更通过
|
|
|
+ changgeAdopt(nb);}else {nb.setProcessState(nb.getProcessState()+1);}
|
|
|
}else {
|
|
|
- if(nb.getProcessState()==8) {changgeAdopt(nb);}//项目变更通过
|
|
|
+ if(nb.getProcessState()==8) {//项目变更通过
|
|
|
+ changgeAdopt(nb);}else {nb.setProcessState(nb.getProcessState()+1);}
|
|
|
}
|
|
|
|
|
|
- nb.setProcessState(nb.getProcessState()+1);
|
|
|
+
|
|
|
}else {
|
|
|
- if(nb.getProcessState()==5) {changgeAdopt(nb);}//项目变更通过
|
|
|
- //流程状态 1营销员 2营销管理员 3技术员 4技术经理 5技术总监 5财务专员 6财务总监 7总裁 8董事长
|
|
|
- if (nb.getProcessState()==2)nb.setProcessState(7);
|
|
|
- if (nb.getProcessState()==7)nb.setProcessState(5);
|
|
|
+ if(nb.getProcessState()==9) {changgeAdopt(nb);}//项目变更通过
|
|
|
+ //流程状态 0营销员 1营销管理员 2技术员 3技术经理 4技术总监 5财务专员(退单) 6财务总监 7总裁 8董事长 9 财务专员(非退单)
|
|
|
+ if (nb.getProcessState()==1) nb.setProcessState(7);
|
|
|
+ else if (nb.getProcessState()==7)nb.setProcessState(9);
|
|
|
}
|
|
|
}else {
|
|
|
- nb.setProcessState(1);
|
|
|
+ nb.setProcessState(0);
|
|
|
}
|
|
|
OrderChangeLog ocl=new OrderChangeLog();
|
|
|
ocl.setAuditor(TokenManager.getAdminId());
|
|
|
@@ -96,7 +116,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
|
|
|
}
|
|
|
private void changgeAdopt(NewOrderChangeBo nb) {
|
|
|
TOrderNew t1=tOrderNewMapper.selectByPrimaryKey(nb.getOrderNo());
|
|
|
- List<TOrderDun> td1=tOrderDunMapper.selectByOrderNoDunSubject(nb.getOrderNo());
|
|
|
+ List<TOrderDun> td1=tOrderDunMapper.selectByOrderNo(nb.getOrderNo());
|
|
|
List<TOrderTaskBo> tt1=tOrderTaskMapper.selectOrderTask(nb.getOrderNo());
|
|
|
String newOrderNo=idGenerator.generateId().toString();
|
|
|
t1.setOrderNo(newOrderNo);
|
|
|
@@ -107,10 +127,11 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
|
|
|
tOrderTaskMapper.insertSelective(tOrderTaskBo);
|
|
|
}
|
|
|
for (TOrderDun tOrderDun : td1) {
|
|
|
- tOrderDun.setId(null);
|
|
|
+ tOrderDun.setId(UUID.randomUUID().toString());
|
|
|
tOrderDun.setOrderNo(newOrderNo);
|
|
|
tOrderDunMapper.insertSelective(tOrderDun);
|
|
|
}
|
|
|
+ nb.setStatus(4);
|
|
|
//将订单恢复正常
|
|
|
TOrderNew orderNew =new TOrderNew();
|
|
|
orderNew.setOrderNo(nb.getOrderNo());
|
|
|
@@ -131,6 +152,27 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
|
|
|
public List<OrderChangeLogBo> selectOrderChangeLogList(String changeId) {
|
|
|
return orderChangeLogMapper.selectOrderChangeLogList(changeId);
|
|
|
}
|
|
|
+ @SuppressWarnings("unchecked")
|
|
|
+ @Override
|
|
|
+ public Pagination<NewOrderChangeBo> selectOrderChangeList(String userName,Integer processState,Integer timeType,String startTime,String endTime,
|
|
|
+ String depId,String salesmanName,Integer complete,Integer pageSize, Integer pageNo) {
|
|
|
+ Map<String, Object> parameter=new HashMap<String, Object>();
|
|
|
+ if(pageSize==null||pageSize<0)pageSize=10;
|
|
|
+ if(pageNo==null||pageNo<0)pageNo=1;
|
|
|
+ parameter.put("processState", processState==null?0:processState);
|
|
|
+ parameter.put("complete", complete==null?0:complete);
|
|
|
+ if (StringUtils.isNotBlank(userName)) parameter.put("userName", userName);
|
|
|
+ if (null!=processState) parameter.put("processState", processState);
|
|
|
+ if (null!=timeType) parameter.put("timeType", timeType);
|
|
|
+ if (StringUtils.isNotBlank(startTime)) parameter.put("startTime", startTime);
|
|
|
+ if (StringUtils.isNotBlank(endTime)) parameter.put("endTime", endTime+" 23:59:59");
|
|
|
+ if (StringUtils.isNotBlank(depId)) parameter.put("depid", depId);
|
|
|
+ if (StringUtils.isNotBlank(salesmanName)) parameter.put("salesmanName", salesmanName);
|
|
|
+ parameter.put("aid", TokenManager.getAdminId());
|
|
|
+ parameter.put("deps", orderService.selectMyDeps());
|
|
|
+ Pagination<NewOrderChangeBo> data = (Pagination<NewOrderChangeBo>)findPage("selectOrderChangeList", "selectOrderChangeCount", parameter, pageNo, pageSize);
|
|
|
+ return data;
|
|
|
+ }
|
|
|
|
|
|
|
|
|
}
|