|
|
@@ -1,5 +1,6 @@
|
|
|
package com.goafanti.order.service.impl;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.Map;
|
|
|
|
|
|
@@ -7,10 +8,16 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import com.goafanti.common.dao.AdminMapper;
|
|
|
+import com.goafanti.common.dao.TOrderBackMapper;
|
|
|
+import com.goafanti.common.dao.TOrderBillNewMapper;
|
|
|
import com.goafanti.common.dao.TOrderNewMapper;
|
|
|
+import com.goafanti.common.model.TOrderBack;
|
|
|
+import com.goafanti.common.model.TOrderBillNew;
|
|
|
import com.goafanti.common.model.TOrderNew;
|
|
|
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.OrderListBo;
|
|
|
import com.goafanti.order.service.FundManageOrderService;
|
|
|
|
|
|
@@ -21,6 +28,12 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
|
|
|
private TOrderNewMapper tOrderNewMapper;
|
|
|
@Autowired
|
|
|
private AdminMapper adminMapper;
|
|
|
+ @Autowired
|
|
|
+ private TOrderBillNewMapper billNewMapper;
|
|
|
+ @Autowired
|
|
|
+ private TOrderBackMapper backMapper;
|
|
|
+ @Autowired
|
|
|
+ JDBCIdGenerator idGenerator;
|
|
|
|
|
|
@SuppressWarnings("unchecked")
|
|
|
@Override
|
|
|
@@ -34,7 +47,7 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public Integer distributionFinance(String orderid, String financeId, Integer approval) {
|
|
|
+ public Integer distributionFinance(String orderNo, String financeId, Integer approval) {
|
|
|
// 先判断订单id和财务专员是否存在或者能够使用
|
|
|
TOrderNew onew = new TOrderNew();
|
|
|
//判断是不是特批的数据
|
|
|
@@ -43,7 +56,7 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
|
|
|
}else if(approval != 2){//特批未通过
|
|
|
return -1;
|
|
|
}
|
|
|
- onew.setOrderNo(orderid);
|
|
|
+ onew.setOrderNo(orderNo);
|
|
|
onew.setDeleteSign(0);//正常
|
|
|
onew.setProcessStatus(2);//已派财务管理员
|
|
|
onew.setApproval(approval);//特批状态
|
|
|
@@ -55,7 +68,7 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
|
|
|
if(idCount == 1 && fidCount == 1){
|
|
|
//修改订单流程状态
|
|
|
TOrderNew record = new TOrderNew();
|
|
|
- record.setOrderNo(orderid);
|
|
|
+ record.setOrderNo(orderNo);
|
|
|
record.setFinanceId(financeId);
|
|
|
record.setProjectStatus(3);
|
|
|
r = tOrderNewMapper.updateByPrimaryKeySelective(record);
|
|
|
@@ -65,6 +78,85 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
|
|
|
}
|
|
|
return r;
|
|
|
}
|
|
|
+
|
|
|
+ @SuppressWarnings("unchecked")
|
|
|
+ @Override
|
|
|
+ public Pagination<OrderListBo> financeList(OrderListBo order,
|
|
|
+ Integer pageNo, Integer pageSize) {
|
|
|
+ Map<String, Object> params = new HashMap<String, Object>();
|
|
|
+ params.put("o", order);
|
|
|
+ Pagination<OrderListBo> data = (Pagination<OrderListBo>)findPage("financeList", "financeCount", params, pageNo, pageSize);
|
|
|
+ return data;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Integer reject(TOrderBack back) {
|
|
|
+ // 是否已经收款
|
|
|
+ BigDecimal bd = billNewMapper.getAmountByOid(back.getOrderNo());
|
|
|
+ if(bd.compareTo(new BigDecimal(0.0)) == 1){
|
|
|
+ return 0;//已经收款不能驳回
|
|
|
+ }
|
|
|
+ //否 可以处理驳回
|
|
|
+
|
|
|
+ //修改订单状态
|
|
|
+ TOrderNew orderNew = new TOrderNew();
|
|
|
+ orderNew.setOrderNo(back.getOrderNo());
|
|
|
+ orderNew.setOrderStatus(5);
|
|
|
+ int c = tOrderNewMapper.updateByPrimaryKeySelective(orderNew);
|
|
|
+
|
|
|
+ //新增驳回数据
|
|
|
+ if(c>0){
|
|
|
+ back.setBackStatus(0);
|
|
|
+ System.out.println(TokenManager.getUserId());
|
|
|
+ System.out.println(TokenManager.getAdminId());
|
|
|
+ back.setInitiate(TokenManager.getUserId());//发起人
|
|
|
+ back.setAccept(tOrderNewMapper.getSaleIdByOno(back.getOrderNo())); //查看该订单的负责人
|
|
|
+ c = backMapper.insertSelective(back);
|
|
|
+ }
|
|
|
+ return c;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Integer addReceiptsFlow(TOrderBillNew billNew) {
|
|
|
+ //判断有没有要加入的金额有没有超过总金额
|
|
|
+ BigDecimal bd = billNewMapper.getAmountByOid(billNew.getOrderNo());
|
|
|
+ //获得的单个订单金额数据(首付金额和总金额)
|
|
|
+ TOrderNew o = tOrderNewMapper.selectByPrimaryKey(billNew.getOrderNo());
|
|
|
+
|
|
|
+ bd.add(billNew.getTransactionAmount());
|
|
|
+ int lstaus = 0;
|
|
|
+
|
|
|
+ //如果订单流水总额大于总金额 return -1
|
|
|
+ //如果订单流水等于于总金额 lstaus 2
|
|
|
+ //如果订单流水小于总金额大于首付 lstaus 1
|
|
|
+ //如果订单流水小于首付 lstaus 0
|
|
|
+ if(bd.compareTo(o.getTotalAmount()) == 1){
|
|
|
+ return -1;//超过不能添加
|
|
|
+ }else if(bd.compareTo(o.getTotalAmount()) == 0){
|
|
|
+ lstaus = 2;
|
|
|
+ }else if(bd.compareTo(o.getTotalAmount()) == -1 && bd.compareTo(o.getFirstAmount()) == 1){
|
|
|
+ lstaus = 1;
|
|
|
+ }
|
|
|
+ //否则新增流水信息
|
|
|
+ billNew.setBillNo(idGenerator.generateId().toString());
|
|
|
+ billNew.setCreater(TokenManager.getUserId());
|
|
|
+ int result = billNewMapper.insertSelective(billNew);
|
|
|
+
|
|
|
+ //修改订单结算金额和结算状态
|
|
|
+ //如果已经首付并且流程状态是没有派给咨询师的修改流程状态为4
|
|
|
+ TOrderNew orderNew = new TOrderNew();
|
|
|
+ orderNew.setOrderNo(billNew.getOrderNo());
|
|
|
+ orderNew.setSettlementAmount(bd);
|
|
|
+ orderNew.setLiquidationStatus(lstaus);
|
|
|
+ if(lstaus == 1 && o.getProcessStatus() == 3){
|
|
|
+ orderNew.setProcessStatus(4);
|
|
|
+ }
|
|
|
+ if(result > 0){
|
|
|
+ result = tOrderNewMapper.updateByPrimaryKeySelective(orderNew);
|
|
|
+ }
|
|
|
+
|
|
|
+ return result;
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|