|
|
@@ -12,6 +12,7 @@ import com.goafanti.admin.service.DepartmentService;
|
|
|
import com.goafanti.common.dao.*;
|
|
|
import com.goafanti.common.model.*;
|
|
|
import com.goafanti.common.utils.OrderUtils;
|
|
|
+import com.goafanti.order.bo.*;
|
|
|
import com.goafanti.order.enums.*;
|
|
|
import com.goafanti.order.service.*;
|
|
|
import com.goafanti.organization.bo.OrganizationListOut;
|
|
|
@@ -37,21 +38,8 @@ 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.BillBo;
|
|
|
-import com.goafanti.order.bo.InputNewOrderRefund;
|
|
|
-import com.goafanti.order.bo.InputTChangeTask;
|
|
|
-import com.goafanti.order.bo.InvoiceBo;
|
|
|
-import com.goafanti.order.bo.NewOderCahngeListBo;
|
|
|
-import com.goafanti.order.bo.NewOrderChangeBo;
|
|
|
-import com.goafanti.order.bo.OrderChangeLogBo;
|
|
|
-import com.goafanti.order.bo.OutNewOrderDunBo;
|
|
|
-import com.goafanti.order.bo.OutNewOrderRefund;
|
|
|
-import com.goafanti.order.bo.TChangeDunOut;
|
|
|
-import com.goafanti.order.bo.TChangeTaskOut;
|
|
|
-import com.goafanti.order.bo.TOrderLogBo;
|
|
|
-import com.goafanti.order.bo.TOrderNewBo;
|
|
|
-import com.goafanti.order.bo.TOrderTaskBo;
|
|
|
import com.goafanti.techproject.enums.TaskState;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
@Service
|
|
|
public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper> implements OrderChangeService {
|
|
|
@@ -186,55 +174,70 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
|
|
|
/*
|
|
|
* 新增审核流程中的
|
|
|
*/
|
|
|
- private void insertOrderExamine(String orderNo) {
|
|
|
+ private void pushOrderExamine(String orderNo,Integer type) {
|
|
|
+ orderExamineMapper.deleteByAidAndStatus(orderNo,null,null);
|
|
|
List<TOrderTaskBo> list=tOrderTaskMapper.selectOrderTaskAll(orderNo,null);
|
|
|
for (TOrderTaskBo t : list) {
|
|
|
- if (t.getConsultantId()!=null) {
|
|
|
- OrderExamine o=new OrderExamine();
|
|
|
- o.setAid(t.getConsultantId());
|
|
|
- o.setOrderNo(orderNo);
|
|
|
- o.setCreateTime(new Date());
|
|
|
- o.setType(0);//咨询师
|
|
|
- o.setStatus(0);//正常
|
|
|
- orderExamineMapper.insertSelective(o);
|
|
|
- }
|
|
|
- if (t.getManagerId()!=null) {
|
|
|
- OrderExamine o=new OrderExamine();
|
|
|
- o.setAid(t.getManagerId());
|
|
|
- o.setOrderNo(orderNo);
|
|
|
- o.setCreateTime(new Date());
|
|
|
- o.setType(1);//咨询师经理
|
|
|
- o.setStatus(0);//正常
|
|
|
- orderExamineMapper.insertSelective(o);
|
|
|
+ if (type==OrderChangeType.CB.getCode()||type==OrderChangeType.JXMBG.getCode()){
|
|
|
+ Integer receiverType=null;
|
|
|
+ if (t.getTaskReceiver()!=null){
|
|
|
+ if (t.getTaskReceiver().equals(t.getConsultantId())) {
|
|
|
+ receiverType=0;
|
|
|
+ }else if (t.getTaskReceiver().equals(t.getManagerId())){
|
|
|
+ receiverType=1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (receiverType!=null){
|
|
|
+ OrderExamine o=new OrderExamine();
|
|
|
+ o.setAid(t.getTaskReceiver());
|
|
|
+ o.setOrderNo(orderNo);
|
|
|
+ o.setCreateTime(new Date());
|
|
|
+ o.setType(receiverType);//咨询师
|
|
|
+ o.setStatus(0);//正常
|
|
|
+ orderExamineMapper.insertSelective(o);
|
|
|
+ }
|
|
|
+ }else if (type==OrderChangeType.XMJJEBG.getCode()||type==OrderChangeType.TDBTK.getCode() ||
|
|
|
+ type==OrderChangeType.TDTK.getCode()){
|
|
|
+ if (t.getConsultantId()!=null) {
|
|
|
+ OrderExamine o=new OrderExamine();
|
|
|
+ o.setAid(t.getConsultantId());
|
|
|
+ o.setOrderNo(orderNo);
|
|
|
+ o.setCreateTime(new Date());
|
|
|
+ o.setType(0);//咨询师
|
|
|
+ o.setStatus(0);//正常
|
|
|
+ orderExamineMapper.insertSelective(o);
|
|
|
+ }
|
|
|
+ if (t.getManagerId()!=null) {
|
|
|
+ OrderExamine o=new OrderExamine();
|
|
|
+ o.setAid(t.getManagerId());
|
|
|
+ o.setOrderNo(orderNo);
|
|
|
+ o.setCreateTime(new Date());
|
|
|
+ o.setType(1);//咨询师经理
|
|
|
+ o.setStatus(0);//正常
|
|
|
+ orderExamineMapper.insertSelective(o);
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public List<NewOrderChangeBo> orderChangeDetails(String orderNo) {
|
|
|
List<NewOrderChangeBo> list=newOrderChangeMapper.selectByorderNo(orderNo);
|
|
|
- for (NewOrderChangeBo noc : list) {
|
|
|
-// List<OrderExamineBo> consultantExamine =orderExamineMapper.selectByOrderNo(noc.getOrderNo(),0);
|
|
|
-// List<OrderExamineBo> managerExamine=orderExamineMapper.selectByOrderNo(noc.getOrderNo(),1);
|
|
|
- int isExamine=orderExamineMapper.selectByOrderNoAndAid(noc.getOrderNo(),TokenManager.getAdminId());
|
|
|
-// noc.setConsultantExamine(consultantExamine);
|
|
|
-// noc.setManagerExamine(managerExamine);
|
|
|
- if (noc.getVoucherUrl()!=null) {
|
|
|
- TOrderNew t=tOrderNewMapper.selectByPrimaryKey(noc.getOrderNo());
|
|
|
- noc.setVoucherUrl(pushOrderService.changeProcessStatusConstant(noc.getVoucherUrl(),t.getSalesmanId(),noc.getProcessState(),noc.getStatus()));
|
|
|
- }
|
|
|
- noc.setIsExamine(isExamine);
|
|
|
- }
|
|
|
+// for (NewOrderChangeBo noc : list) {
|
|
|
+// int isExamine=orderExamineMapper.selectByOrderNoAndAid(noc.getOrderNo(),TokenManager.getAdminId());
|
|
|
+// if (noc.getVoucherUrl()!=null) {
|
|
|
+// TOrderNew t=tOrderNewMapper.selectByPrimaryKey(noc.getOrderNo());
|
|
|
+// noc.setVoucherUrl(pushOrderService.changeProcessStatusConstant(noc.getVoucherUrl(),t.getSalesmanId(),noc.getProcessState(),noc.getStatus()));
|
|
|
+// }
|
|
|
+// noc.setIsExamine(isExamine);
|
|
|
+// }
|
|
|
return list;
|
|
|
}
|
|
|
@Override
|
|
|
public NewOrderChangeBo orderChangeDetailsById(Integer id) {
|
|
|
NewOrderChangeBo nb=newOrderChangeMapper.selectById(id);
|
|
|
-// List<OrderExamineBo> consultantExamine =orderExamineMapper.selectByOrderNo(nb.getOrderNo(),0);
|
|
|
-// List<OrderExamineBo> managerExamine=orderExamineMapper.selectByOrderNo(nb.getOrderNo(),1);
|
|
|
int isExamine=orderExamineMapper.selectByOrderNoAndAid(nb.getOrderNo(),TokenManager.getAdminId());
|
|
|
-// nb.setConsultantExamine(consultantExamine);
|
|
|
-// nb.setManagerExamine(managerExamine);
|
|
|
nb.setIsExamine(isExamine);
|
|
|
if(nb.getProcessState()!=null){
|
|
|
TOrderNew t=tOrderNewMapper.selectByPrimaryKey(nb.getOrderNo());
|
|
|
@@ -243,6 +246,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
|
|
|
return nb;
|
|
|
}
|
|
|
@Override
|
|
|
+ @Transactional
|
|
|
public int pushOrderChangeAudit(String changeId, String remarks, Integer status,Integer processState,Integer rejectState) {
|
|
|
NewOrderChangeBo nb=newOrderChangeMapper.selectByChangeId(changeId);
|
|
|
String orderNo=nb.getOrderNo();
|
|
|
@@ -252,67 +256,94 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
|
|
|
if (nb.getStatus()==4) {
|
|
|
throw new BusinessException(new Error( "变更流程已通过审核","变更流程已通过审核"));
|
|
|
}
|
|
|
+ boolean zxsFlag=false;
|
|
|
+ boolean zxsjlFlag=false;
|
|
|
//2通过 3驳回
|
|
|
if (status==2) {
|
|
|
//变更类型 0退单退款 1项目及金额变更 2仅项目变更 3仅金额变更 4重报 5赠送 6退单不退款 7仅变更合同
|
|
|
if(nb.getType() !=null){
|
|
|
- //仅合同变更只需要 营销管理员与财务专员审核
|
|
|
if(nb.getType()==OrderChangeType.JBGGT.getCode()){
|
|
|
- if(nb.getProcessState()==1){
|
|
|
- nb.setProcessState(5);
|
|
|
- }else if(nb.getProcessState()==5){
|
|
|
+ //仅合同图片修改:营销-营销总经理
|
|
|
+ if(nb.getProcessState()==OrderChangeProcess.YXGLY.getCode()){
|
|
|
nb.setStatus(4);
|
|
|
+ addOrderChangeLog(remarks, 2, orderNo, nb.getId());
|
|
|
pushCompleteOrderChange(nb);
|
|
|
return 1;
|
|
|
}
|
|
|
- }else {
|
|
|
- if(nb.getProcessState()==8) {//董事长项目变更通过
|
|
|
- nb.setStatus(2);
|
|
|
- }
|
|
|
- if (nb.getChangeAmount().compareTo(new BigDecimal("0.2"))<0) {//小于则总裁通过,大于则董事长
|
|
|
- if(nb.getProcessState()==7) {//总裁项目变更通过
|
|
|
- nb.setStatus(2);
|
|
|
+ } else {
|
|
|
+/* 赠送:营销-经理-总经理审核-财务(已收款情况)-总裁
|
|
|
+ 重报:营销-经理-总经理审核-技术员-财务-财务总监-总裁
|
|
|
+ 仅项目:营销-经理-总经理审核-技术员-技术总监-财务-财务总监-总裁
|
|
|
+ 项目&金额:营销-经理-总经理审核-技术员-经理经理-技术总监-财务-财务总监-总裁
|
|
|
+ 退单退款:营销-经理-总经理审核-技术员-经理经理-技术总监-财务-财务总监-总裁-董事长(大于2K,需董事长审核)-财务退票
|
|
|
+ 退单不退款:营销-经理-总经理审核-技术员-经理经理-技术总监-财务-财务总监-总裁-财务退票
|
|
|
+ 仅金额:营销-经理-总经理审核-技术总监-财务-财务总监-总裁
|
|
|
+ */
|
|
|
+ if (nb.getProcessState()==OrderChangeProcess.YXJL.getCode()){
|
|
|
+ nb.setProcessState(OrderChangeProcess.YXGLY.getCode());
|
|
|
+ }else if (nb.getProcessState()==OrderChangeProcess.YXGLY.getCode()){
|
|
|
+ if (nb.getType()==OrderChangeType.CB.getCode()||
|
|
|
+ nb.getType()==OrderChangeType.JXMBG.getCode()||
|
|
|
+ nb.getType()==OrderChangeType.XMJJEBG.getCode()||
|
|
|
+ nb.getType()==OrderChangeType.TDTK.getCode()||
|
|
|
+ nb.getType()==OrderChangeType.TDBTK.getCode()){
|
|
|
+ int zxs=orderExamineMapper.checkCountStatus(orderNo,0,null);
|
|
|
+ if (zxs>0){
|
|
|
+ nb.setProcessState(OrderChangeProcess.JSY.getCode());
|
|
|
+ }else {
|
|
|
+ zxsFlag=true;
|
|
|
+ zxsjlFlag=pushZXSJLprocess(nb);
|
|
|
+ }
|
|
|
+ }else if (nb.getType()==OrderChangeType.JJEBG.getCode()){
|
|
|
+ nb.setProcessState(OrderChangeProcess.JSZJ.getCode());
|
|
|
+ }else if (nb.getType()==OrderChangeType.ZS.getCode()){
|
|
|
+ nb.setProcessState(OrderChangeProcess.CWZY.getCode());
|
|
|
}
|
|
|
- }else {
|
|
|
- if(nb.getProcessState()==7) {
|
|
|
- nb.setProcessState(nb.getProcessState()+1);
|
|
|
+ }else if (nb.getProcessState()==OrderChangeProcess.JSY.getCode()){
|
|
|
+ zxsFlag=pushZXSprocess(nb);
|
|
|
+ //咨询师审核,将自己审核的全部标记已审核
|
|
|
+ }else if (nb.getProcessState()==OrderChangeProcess.JSJL.getCode()){
|
|
|
+ //咨询师经理审核,将自己审核的全部标记已审核
|
|
|
+ orderExamineMapper.updateByOrderNoAndAid(orderNo,TokenManager.getAdminId(),1);
|
|
|
+ int wsh=orderExamineMapper.checkCountStatus(orderNo,1,0);
|
|
|
+ if (wsh==0){
|
|
|
+ pushZXSJLprocess(nb);
|
|
|
}
|
|
|
- }
|
|
|
- //营销管理通过则设置技术管理员通过表
|
|
|
- if(nb.getProcessState()==1){
|
|
|
- if (orderExamineMapper.checkCountStatus(orderNo,null,null)<1) {
|
|
|
- insertOrderExamine(orderNo);
|
|
|
- } else {
|
|
|
- orderExamineMapper.updateByOrderNo(orderNo,null);
|
|
|
+ }else if (nb.getProcessState()==OrderChangeProcess.JSZJ.getCode()){
|
|
|
+ nb.setProcessState(OrderChangeProcess.CWZY.getCode());
|
|
|
+ }else if (nb.getProcessState()==OrderChangeProcess.CWZY.getCode()){
|
|
|
+ if (nb.getType()==OrderChangeType.ZS.getCode()){
|
|
|
+ nb.setProcessState(OrderChangeProcess.ZC.getCode());
|
|
|
+ }else {
|
|
|
+ nb.setProcessState(OrderChangeProcess.CWZJ.getCode());
|
|
|
}
|
|
|
- nb.setProcessState(nb.getProcessState()+1);
|
|
|
- }
|
|
|
- //必须放置在咨询师与咨询师经理前,否则会直接通过不走咨询师管理员
|
|
|
- if(nb.getProcessState()==4||nb.getProcessState()==5) {
|
|
|
- nb.setProcessState(nb.getProcessState()+1);
|
|
|
- }else if (nb.getProcessState()==6){
|
|
|
+ }else if (nb.getProcessState()==OrderChangeProcess.CWZJ.getCode()){
|
|
|
+ //财务总监审核,曹津不走总裁走董事长
|
|
|
TOrderNew tOrderNew = tOrderNewMapper.selectByPrimaryKey(nb.getOrderNo());
|
|
|
- if (tOrderNew.getSalesmanId().equals(AFTConstants.CAOJIN_AID)){
|
|
|
- nb.setProcessState(8);
|
|
|
- } else{
|
|
|
- nb.setProcessState(7);
|
|
|
- }
|
|
|
- }
|
|
|
- if(nb.getProcessState()==2){//咨询师
|
|
|
- //找出当时人的审核改为通过
|
|
|
- orderExamineMapper.updateByOrderNoAndAid(orderNo,TokenManager.getAdminId(),0);
|
|
|
- //全部通过了则跳下个流程
|
|
|
- if (orderExamineMapper.checkCountStatus(orderNo,0,0)<1) {
|
|
|
- nb.setProcessState(nb.getProcessState()+1);
|
|
|
+ if (tOrderNew.getSalesmanId().equals(AFTConstants.CAOJIN_AID)) {
|
|
|
+ nb.setProcessState(OrderChangeProcess.DSZ.getCode());
|
|
|
+ }else {
|
|
|
+ nb.setProcessState(OrderChangeProcess.ZC.getCode());
|
|
|
}
|
|
|
- }
|
|
|
- if(nb.getProcessState()==3){//咨询师经理
|
|
|
- //找出当时人的审核改为通过
|
|
|
- orderExamineMapper.updateByOrderNoAndAid(orderNo,TokenManager.getAdminId(),1);
|
|
|
- //全部通过了则跳下个流程
|
|
|
- if (orderExamineMapper.checkCountStatus(orderNo,1,0)<1) {
|
|
|
- nb.setProcessState(nb.getProcessState()+1);
|
|
|
+ }else if (nb.getProcessState()==OrderChangeProcess.ZC.getCode()){
|
|
|
+ if (nb.getType()==OrderChangeType.TDTK.getCode()) {
|
|
|
+ if (nb.getChangeAmount().compareTo(new BigDecimal("0.2")) < 0) {
|
|
|
+ //小于则总裁通过,大于则董事长
|
|
|
+ nb.setStatus(2);
|
|
|
+ }else {
|
|
|
+ nb.setProcessState(OrderChangeProcess.DSZ.getCode());
|
|
|
+ }
|
|
|
+ }else if (nb.getType()==OrderChangeType.TDBTK.getCode()){
|
|
|
+ nb.setStatus(2);
|
|
|
+ }else {
|
|
|
+ nb.setStatus(4);
|
|
|
+ addOrderChangeLog(remarks, 2, orderNo, nb.getId());
|
|
|
+ pushCompleteOrderChange(nb);
|
|
|
+ return 1;
|
|
|
}
|
|
|
+
|
|
|
+ }else if (nb.getProcessState()==OrderChangeProcess.DSZ.getCode()){
|
|
|
+ nb.setStatus(2);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -330,32 +361,93 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
|
|
|
if (processState>nb.getBackStatus()) {
|
|
|
nb.setBackStatus(processState);
|
|
|
}
|
|
|
- //驳回位置查看有无审核人,没有则直接跳下一个
|
|
|
- if (rejectState==2) {
|
|
|
- if (orderExamineMapper.checkCountStatus(orderNo,0,null)<1) nb.setProcessState(nb.getProcessState()+1);
|
|
|
+ //驳回重置审核人
|
|
|
+ if (rejectState<=3) {
|
|
|
+ orderExamineMapper.updateByOrderNo(orderNo,1,null);
|
|
|
+ }else if (rejectState==4){
|
|
|
+ orderExamineMapper.updateByOrderNo(orderNo,1,1);
|
|
|
}
|
|
|
if (rejectState==3) {
|
|
|
- if (orderExamineMapper.checkCountStatus(orderNo,1,null)<1) nb.setProcessState(nb.getProcessState()+1);
|
|
|
+ zxsFlag=pushZXSprocess(nb);
|
|
|
+ }else if(rejectState==4){
|
|
|
+ zxsjlFlag=pushZXSJLprocess(nb);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ addOrderChangeLog(remarks, status, orderNo, nb.getId());
|
|
|
+ if (zxsFlag||zxsjlFlag){
|
|
|
+ Date date =new Date();
|
|
|
+ date.setTime(date.getTime()+1000);
|
|
|
+ if (zxsFlag){
|
|
|
+ addOrderChangeLog("无咨询师自动通过", status, orderNo, nb.getId(),date);
|
|
|
+ }
|
|
|
+ if (zxsjlFlag){
|
|
|
+ addOrderChangeLog("无咨询师经理自动通过", 2, nb.getOrderNo(), nb.getId(),date);
|
|
|
}
|
|
|
+ }
|
|
|
+
|
|
|
+ sendNotice(status,nb);
|
|
|
+ pushOrderCangeProcess(nb);
|
|
|
+ newOrderChangeMapper.updateByPrimaryKeySelective(nb);
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 判断zxs是否全审核,全审核就去判断咨询师经理,跳过就返回x=1,在后续添加日志放到先审核,后添加日志
|
|
|
+ * @param nb
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private boolean pushZXSprocess(NewOrderChangeBo nb) {
|
|
|
+ orderExamineMapper.updateByOrderNoAndAid(nb.getOrderNo(),TokenManager.getAdminId(),0);
|
|
|
+ int wsh=orderExamineMapper.checkCountStatus(nb.getOrderNo(),0,0);
|
|
|
+ if (wsh==0){
|
|
|
+ return pushZXSJLprocess( nb);
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
|
|
|
- //如果驳回到技术经理之前则将审核表中状态跳回
|
|
|
- if(nb.getProcessState()==3) {
|
|
|
- orderExamineMapper.updateByOrderNo(orderNo,1);
|
|
|
- }else if (nb.getProcessState()<3) {
|
|
|
- orderExamineMapper.updateByOrderNo(orderNo,null);
|
|
|
+ /**
|
|
|
+ * 咨询师经理,跳过就返回x=1,在后续添加日志放到先审核,后添加日志
|
|
|
+ * @param nb
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private boolean pushZXSJLprocess(NewOrderChangeBo nb) {
|
|
|
+ int zxsjl=orderExamineMapper.checkCountStatus(nb.getOrderNo(),1,0);
|
|
|
+ boolean zxsjlFlag=false;
|
|
|
+ if (nb.getType()==OrderChangeType.XMJJEBG.getCode()||
|
|
|
+ nb.getType()==OrderChangeType.TDTK.getCode()||
|
|
|
+ nb.getType()==OrderChangeType.TDBTK.getCode()||
|
|
|
+ nb.getType()==OrderChangeType.CB.getCode()||
|
|
|
+ nb.getType()==OrderChangeType.JXMBG.getCode()){
|
|
|
+ if (zxsjl>0){
|
|
|
+ nb.setProcessState(OrderChangeProcess.JSJL.getCode());
|
|
|
+ }else {
|
|
|
+ zxsjlFlag=true;
|
|
|
+ //重报 没有技术员跳入财务
|
|
|
+ if (nb.getType()==OrderChangeType.CB.getCode()){
|
|
|
+ nb.setProcessState(OrderChangeProcess.CWZY.getCode());
|
|
|
+ //项目变更没有跳入技术总监
|
|
|
+ }else{
|
|
|
+ nb.setProcessState(OrderChangeProcess.JSZJ.getCode());
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- OrderChangeLog ocl=new OrderChangeLog();
|
|
|
+ return zxsjlFlag;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void addOrderChangeLog(String remarks, Integer status, String orderNo, Integer id) {
|
|
|
+ addOrderChangeLog(remarks,status,orderNo,id,null);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void addOrderChangeLog(String remarks, Integer status, String orderNo, Integer id,Date date) {
|
|
|
+ if (date ==null)date=new Date();
|
|
|
+ OrderChangeLog ocl = new OrderChangeLog();
|
|
|
ocl.setAuditor(TokenManager.getAdminId());
|
|
|
ocl.setOrderNo(orderNo);
|
|
|
ocl.setRemarks(remarks);
|
|
|
- ocl.setChangeId(nb.getId());
|
|
|
+ ocl.setChangeId(id);
|
|
|
ocl.setStatus(status);
|
|
|
+ ocl.setCreateTime(date);
|
|
|
orderChangeLogMapper.insertSelective(ocl);
|
|
|
- sendNotice(status,nb);
|
|
|
- pushOrderCangeProcess(nb);
|
|
|
- newOrderChangeMapper.updateByPrimaryKeySelective(nb);
|
|
|
- return 1;
|
|
|
}
|
|
|
|
|
|
private void sendNotice(Integer status,NewOrderChangeBo nb) {
|
|
|
@@ -369,7 +461,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
|
|
|
//获取客户信息
|
|
|
TOrderNewBo o=tOrderNewMapper.getSaleIdByOno(nb.getOrderNo());
|
|
|
//获取接收者
|
|
|
- //流程状态 0营销员 1营销管理员 2技术员 3技术经理 4技术总监 5财务专员(退单) 6财务总监 7总裁 8董事长
|
|
|
+ //流程状态 0=营销员,1=营销经理,2=营销管理员,3=技术员,4=技术经理,5=技术总监,6=财务专员,7=财务总监,8=总裁,9=董事长
|
|
|
List<String> alist = new ArrayList<>();
|
|
|
//获取部门负责财务人员
|
|
|
switch (nb.getProcessState()) {
|
|
|
@@ -377,41 +469,46 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
|
|
|
alist.add(o.getSalesmanId());
|
|
|
break;
|
|
|
case 1:
|
|
|
- alist.addAll(adminMapper.listNameByDepAndName(a.getDepartmentId(), AFTConstants.SALESMAN_ADMIN));
|
|
|
+ Admin saleaman = adminMapper.selectByPrimaryKey(o.getSalesmanId());
|
|
|
+ alist.add(saleaman.getManagerId());
|
|
|
break;
|
|
|
case 2:
|
|
|
- alist.addAll(tOrderTaskMapper.listNameByDepAndName(o.getOrderNo(),0));
|
|
|
+ alist.addAll(adminMapper.listNameByDepAndName(o.getOrderDep(), AFTConstants.SALESMAN_ADMIN));
|
|
|
break;
|
|
|
case 3:
|
|
|
- alist.addAll(tOrderTaskMapper.listNameByDepAndName(o.getOrderNo(),1));
|
|
|
+
|
|
|
+ alist.addAll(addOrderExamine(o.getOrderNo(),0));
|
|
|
break;
|
|
|
case 4:
|
|
|
+ alist.addAll(addOrderExamine(o.getOrderNo(),1));
|
|
|
+ break;
|
|
|
+ case 5:
|
|
|
for (Admin admin : adminMapper.getAdminRoleTypeList(AFTConstants.TECH_ADMIN)) {
|
|
|
alist.add(admin.getId());
|
|
|
}
|
|
|
break;
|
|
|
- case 5:
|
|
|
+ case 6:
|
|
|
alist.add(o.getFinanceId());
|
|
|
break;
|
|
|
- case 6:
|
|
|
+ case 7:
|
|
|
for (Admin admin : adminMapper.getAdminRoleTypeList(AFTConstants.FINANCE_ADMIN)) {
|
|
|
alist.add(admin.getId());
|
|
|
}
|
|
|
break;
|
|
|
- case 7:
|
|
|
+ case 8:
|
|
|
if(nb.getStatus()==2) {
|
|
|
alist.add(o.getFinanceId());
|
|
|
}else {
|
|
|
- for (Admin admin : adminMapper.getAdminRoleTypeList(AFTConstants.CED)) {
|
|
|
+ for (Admin admin : adminMapper.selectAdminByRoleType(AFTConstants.CED)) {
|
|
|
alist.add(admin.getId());
|
|
|
}
|
|
|
}
|
|
|
break;
|
|
|
- case 8:
|
|
|
+ case 9:
|
|
|
if(nb.getStatus()==2) {
|
|
|
alist.add(o.getFinanceId());
|
|
|
}else {
|
|
|
- for (Admin admin : adminMapper.getAdminRoleTypeList(AFTConstants.APPROVAL_DECISION)) {
|
|
|
+ for (Admin admin : adminMapper.selectAdminByRoleType(AFTConstants.APPROVAL_DECISION)) {
|
|
|
alist.add(admin.getId());
|
|
|
}
|
|
|
}
|
|
|
@@ -422,6 +519,23 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ *
|
|
|
+ * @param orderNo 订单编号
|
|
|
+ * @param i 0咨询师 1咨询师经理
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private List<String> addOrderExamine(String orderNo, Integer i) {
|
|
|
+ List<String> list=new ArrayList<>();
|
|
|
+ List<OrderExamineBo> orderExamineBos = orderExamineMapper.selectByOrderNo(orderNo, i);
|
|
|
+ for (OrderExamineBo bo : orderExamineBos) {
|
|
|
+ if (bo.getStatus()==0){
|
|
|
+ list.add(bo.getAid());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 变更完成复制出原订单镜像
|
|
|
*/
|
|
|
private void changeAdopt(NewOrderChangeBo nb) {
|
|
|
@@ -517,14 +631,13 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
|
|
|
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 (StringUtils.isNotBlank(orderNo)) parameter.put("orderNo", orderNo);
|
|
|
if (StringUtils.isNotBlank(contractNo)) parameter.put("contractNo", contractNo);
|
|
|
if (null!=type) parameter.put("type", type);
|
|
|
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 (processState==1){
|
|
|
+ if (processState==2){
|
|
|
List<String > myDep;
|
|
|
if (deps!=null) {
|
|
|
myDep=departmentService.selectSubDeps(deps);
|
|
|
@@ -567,26 +680,79 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
|
|
|
noc.setChangeAmount(t.getChangeAmount());
|
|
|
noc.setApplicant(t.getApplicant());
|
|
|
noc.setStatus(1);//订单置为正常
|
|
|
- noc.setProcessState(1);//流程置为营销管理员
|
|
|
noc.setDepName(t.getDepName());
|
|
|
- OrderChangeLog ocl=new OrderChangeLog();
|
|
|
- ocl.setAuditor(TokenManager.getAdminId());
|
|
|
- ocl.setOrderNo(t.getOrderNo());
|
|
|
- ocl.setRemarks(startRemarks==null?"":startRemarks);
|
|
|
- ocl.setChangeId(noc.getId());
|
|
|
- ocl.setStatus(0);
|
|
|
+ addOrderChangeLog(startRemarks==null?"":startRemarks, 0, t.getOrderNo(), noc.getId());
|
|
|
if(t.getType()!=0)chekeAmout(t);
|
|
|
- orderChangeLogMapper.insertSelective(ocl);
|
|
|
TOrderNew ton=new TOrderNew();
|
|
|
ton.setOrderNo(noc.getOrderNo());
|
|
|
ton.setDeleteSign(2);
|
|
|
tOrderNewMapper.updateByPrimaryKeySelective(ton);
|
|
|
+ TOrderNewBo tOrderNew = tOrderNewMapper.getSaleIdByOno(t.getOrderNo());
|
|
|
+ if (t.getType()!=OrderChangeType.JBGGT.getCode()){
|
|
|
+ Date date =new Date();
|
|
|
+ if (tOrderNew.getManagerName()!=null){
|
|
|
+ noc.setProcessState(OrderChangeProcess.YXJL.getCode());
|
|
|
+ }else {
|
|
|
+ date.setTime(date.getTime()+500);
|
|
|
+ addOrderChangeLog("未设置营销经理自动通过", 2, t.getOrderNo(), noc.getId(),date);
|
|
|
+ List<Admin> admins = adminMapper.listAdminBydepIdAndRoleType(tOrderNew.getOrderDep(), AFTConstants.SALESMAN_ADMIN);
|
|
|
+ boolean flag=false;
|
|
|
+ for (Admin admin : admins) {
|
|
|
+ if (tOrderNew.getSalesmanId().equals(admin.getId())){
|
|
|
+ flag=true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //如果自己是审核人员则跳过
|
|
|
+ if (flag){
|
|
|
+ boolean zxsFlag=false;
|
|
|
+ boolean zxsjlFlag=false;
|
|
|
+ if (t.getType()==OrderChangeType.CB.getCode()||
|
|
|
+ t.getType()==OrderChangeType.JXMBG.getCode()||
|
|
|
+ t.getType()==OrderChangeType.XMJJEBG.getCode()||
|
|
|
+ t.getType()==OrderChangeType.TDTK.getCode()||
|
|
|
+ t.getType()==OrderChangeType.TDBTK.getCode()){
|
|
|
+ orderExamineMapper.updateByOrderNoAndAid(t.getOrderNo(),TokenManager.getAdminId(),0);
|
|
|
+ int wsh=orderExamineMapper.checkCountStatus(t.getOrderNo(),0,0);
|
|
|
+ if (wsh==0){
|
|
|
+ zxsFlag=true;
|
|
|
+ zxsjlFlag= pushZXSJLprocess( t);
|
|
|
+ }
|
|
|
+ if (zxsFlag||zxsjlFlag){
|
|
|
+ date.setTime(date.getTime()+1000);
|
|
|
+ if (zxsFlag){
|
|
|
+ addOrderChangeLog("无咨询师自动通过", 2, t.getOrderNo(), t.getId(),date);
|
|
|
+ noc.setProcessState(OrderChangeProcess.JSJL.getCode());
|
|
|
+ }
|
|
|
+ if (zxsjlFlag){
|
|
|
+ addOrderChangeLog("无咨询师经理自动通过", 2, t.getOrderNo(), t.getId(),date);
|
|
|
+ if (t.getType()==OrderChangeType.CB.getCode()){
|
|
|
+ noc.setProcessState(OrderChangeProcess.CWZY.getCode());
|
|
|
+ }else {
|
|
|
+ noc.setProcessState(OrderChangeProcess.JSZJ.getCode());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else if(t.getType()==OrderChangeType.ZS.getCode()){
|
|
|
+ noc.setProcessState(OrderChangeProcess.CWZY.getCode());
|
|
|
+ }else if(t.getType()==OrderChangeType.JJEBG.getCode()){
|
|
|
+ noc.setProcessState(OrderChangeProcess.JSZJ.getCode());
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ noc.setProcessState(OrderChangeProcess.YXGLY.getCode());
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ noc.setProcessState(OrderChangeProcess.YXGLY.getCode());
|
|
|
+ t.setProcessState(OrderChangeProcess.YXGLY.getCode());
|
|
|
+ }
|
|
|
sendNotice(0, t);
|
|
|
+ pushOrderCangeProcess(noc);
|
|
|
+ pushOrderExamine(noc.getOrderNo(),noc.getType());
|
|
|
}else if (changeType==2) {
|
|
|
noc.setCwCost(t.getCwCost());
|
|
|
noc.setRefundableAmount(t.getRefundableAmount());
|
|
|
}
|
|
|
- if(changeType!=2)pushOrderCangeProcess(noc);
|
|
|
if(changeType!=1)newOrderChangeMapper.updateByPrimaryKeySelective(noc);
|
|
|
return 1;
|
|
|
}
|
|
|
@@ -595,6 +761,11 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
|
|
|
if (noc.getProcessState()== OrderChangeProcess.YXY.getCode()){
|
|
|
TOrderNewBo ton = tOrderNewMapper.getSaleIdByOno(noc.getOrderNo());
|
|
|
noc.setExamineName(ton.getSalesmanName());
|
|
|
+ }else if (noc.getProcessState()== OrderChangeProcess.YXJL.getCode()){
|
|
|
+ TOrderNewBo ton = tOrderNewMapper.getSaleIdByOno(noc.getOrderNo());
|
|
|
+ Admin saleman = adminMapper.selectByPrimaryKey(ton.getSalesmanId());
|
|
|
+ Admin manager = adminMapper.selectByPrimaryKey(saleman.getManagerId());
|
|
|
+ noc.setExamineName(manager.getName());
|
|
|
}else if (noc.getProcessState()== OrderChangeProcess.YXGLY.getCode()){
|
|
|
TOrderNewBo ton = tOrderNewMapper.getSaleIdByOno(noc.getOrderNo());
|
|
|
StringBuffer str=new StringBuffer();
|
|
|
@@ -709,13 +880,9 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
|
|
|
newOrderChangeMapper.updateByPrimaryKeySelective(nb);
|
|
|
TOrderNewBo order=tOrderNewMapper.getSaleIdByOno(nb.getOrderNo());
|
|
|
List<String> alist = getAllAid(nb.getId());
|
|
|
- OrderChangeLog ocl=new OrderChangeLog();
|
|
|
- ocl.setAuditor(TokenManager.getAdminId());
|
|
|
- ocl.setOrderNo(nb.getOrderNo());
|
|
|
- ocl.setRemarks("变更完成。");
|
|
|
- ocl.setChangeId(nb.getId());
|
|
|
- ocl.setStatus(4);
|
|
|
- orderChangeLogMapper.insertSelective(ocl);
|
|
|
+ Date date=new Date();
|
|
|
+ date.setTime(date.getTime()+500);
|
|
|
+ addOrderChangeLog("变更完成。", 4, nb.getOrderNo(), nb.getId(),date);
|
|
|
orderNewService.pushGeneralSendNoticeAndEmail(alist,NoticeStatus.ORDER_CHANGE_END.getCode(), order, TokenManager.getAdminId(),0);
|
|
|
return 1;
|
|
|
}
|
|
|
@@ -743,21 +910,18 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
|
|
|
|
|
|
@Override
|
|
|
public int pushCompleteRefund(NewOrderChangeBo nb) {
|
|
|
- nb.setStatus(6);
|
|
|
NewOrderChangeBo nob=newOrderChangeMapper.selectById(nb.getId());
|
|
|
TOrderNewBo o=tOrderNewMapper.getSaleIdByOno(nob.getOrderNo());
|
|
|
List<String> alist = new ArrayList<>();
|
|
|
alist.add(o.getSalesmanId());
|
|
|
+ nb.setOrderNo(nob.getOrderNo());
|
|
|
nb.setExamineName("");
|
|
|
+ nb.setType(nob.getType());
|
|
|
newOrderChangeMapper.updateByPrimaryKeySelective(nb);
|
|
|
- OrderChangeLog ocl=new OrderChangeLog();
|
|
|
- ocl.setAuditor(TokenManager.getAdminId());
|
|
|
- ocl.setOrderNo(nob.getOrderNo());
|
|
|
- ocl.setRemarks("变更财务退票。");
|
|
|
- ocl.setChangeId(nb.getId());
|
|
|
- ocl.setStatus(2);
|
|
|
- orderChangeLogMapper.insertSelective(ocl);
|
|
|
+ addOrderChangeLog("变更财务退票。", 2, nob.getOrderNo(), nb.getId());
|
|
|
orderNewService.pushGeneralSendNoticeAndEmail(alist,NoticeStatus.ORDER_CHANGE_YES.getCode(), o, TokenManager.getAdminId(),0);
|
|
|
+ nb.setStatus(4);
|
|
|
+ pushCompleteOrderChange(nb);
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
@@ -783,26 +947,18 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
|
|
|
if(nob.getType()==OrderChangeType.TDTK.getCode()) {
|
|
|
o.setTotalAmount(nob.getTotalAmount());
|
|
|
if (nob.getFirstAmount()!=null)o.setFirstAmount(nob.getFirstAmount());
|
|
|
- pushTaskAndDun(nob.getId(),o);
|
|
|
}else if (nob.getType()==OrderChangeType.XMJJEBG.getCode()) {
|
|
|
o.setTotalAmount(nob.getTotalAmount());
|
|
|
if (nob.getFirstAmount()!=null)o.setFirstAmount(nob.getFirstAmount());
|
|
|
- //处理项目及催款
|
|
|
- pushTaskAndDun(nob.getId(),o);
|
|
|
- }else if (nob.getType()==OrderChangeType.JXMBG.getCode()) {
|
|
|
- pushTaskAndDun(nob.getId(),o);
|
|
|
}else if (nob.getType()==OrderChangeType.JJEBG.getCode()) {
|
|
|
o.setTotalAmount(nob.getTotalAmount());
|
|
|
if (nob.getFirstAmount()!=null)o.setFirstAmount(nob.getFirstAmount());
|
|
|
- pushTaskAndDun(nob.getId(),o);
|
|
|
}else if (nob.getType()==OrderChangeType.CB.getCode()){
|
|
|
o.setTotalAmount(nob.getTotalAmount());
|
|
|
if (nob.getFirstAmount()!=null)o.setFirstAmount(nob.getFirstAmount());
|
|
|
- pushTaskAndDun(nob.getId(),o);
|
|
|
- }else if (nob.getType()==OrderChangeType.ZS.getCode()) {
|
|
|
- pushTaskAndDun(nob.getId(),o);
|
|
|
}
|
|
|
- //
|
|
|
+ //处理变更项目与催款新增在订单中
|
|
|
+ pushTaskAndDun(nob.getId(),o);
|
|
|
o.setProcessStatus(orderProjectService.getOrderProcessStatus(nb.getOrderNo()));
|
|
|
o.setDeleteSign(0);
|
|
|
//处理客户中间表退单标识
|
|
|
@@ -903,6 +1059,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
|
|
|
if (cd.getDeclarationBatch()!=null)ot.setDeclarationBatch(cd.getDeclarationBatch());
|
|
|
if (cd.getPatentType()!=null)ot.setPatentType(cd.getPatentType());
|
|
|
tOrderTaskMapper.insertSelective(ot);
|
|
|
+ orderNewService.addTaskMid(ot.getId(),ot.getCommodityId(),ot.getOrderNo(),1);
|
|
|
if (cd.getSplitStatus()==1){
|
|
|
map.put(cd.getId(),ot.getId());
|
|
|
}
|
|
|
@@ -1326,13 +1483,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
|
|
|
TOrderNew t=new TOrderNew();
|
|
|
t.setOrderNo(nb.getOrderNo());
|
|
|
t.setDeleteSign(0);
|
|
|
- OrderChangeLog ocl=new OrderChangeLog();
|
|
|
- ocl.setAuditor(TokenManager.getAdminId());
|
|
|
- ocl.setOrderNo(nb.getOrderNo());
|
|
|
- ocl.setRemarks("变更撤销成功");
|
|
|
- ocl.setChangeId(nb.getId());
|
|
|
- ocl.setStatus(5);
|
|
|
- orderChangeLogMapper.insertSelective(ocl);
|
|
|
+ addOrderChangeLog("变更撤销成功", 5, nb.getOrderNo(), nb.getId());
|
|
|
tOrderNewMapper.updateByPrimaryKeySelective(t);
|
|
|
return 1;
|
|
|
}
|
|
|
@@ -1343,7 +1494,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
|
|
|
TChangeTask tChangeTask = tChangeTaskMapper.selectByPrimaryKey(id);
|
|
|
Integer tid=tChangeTask.getTid();
|
|
|
tChangeTask.setSplitStatus(1);
|
|
|
- tChangeTask.setType(2);
|
|
|
+ if (tChangeTask.getType()!=1)tChangeTask.setType(2);
|
|
|
tChangeTaskMapper.updateByPrimaryKey(tChangeTask);
|
|
|
//在判断是否有删除的年份没有就新增
|
|
|
tChangeTask.setId(null);
|
|
|
@@ -1406,6 +1557,8 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
|
|
|
return tChangeTask;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
/**
|
|
|
* 如果是有splitSuper 是父有项目的tid,变更父项目有订单项目,则需要看订单项目变更后的子集,反正则不需要
|
|
|
* changeSplitSuper 是当前变更项目的子集
|
|
|
@@ -1420,4 +1573,10 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
|
|
|
}
|
|
|
|
|
|
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Object gerProcessName(Integer id) {
|
|
|
+ NewOrderChange newOrderChange=newOrderChangeMapper.selectByPrimaryKey(id);
|
|
|
+ return newOrderChangeMapper.gerProcessName(id,newOrderChange.getOrderNo());
|
|
|
+ }
|
|
|
}
|