|
@@ -8,6 +8,7 @@ import com.iamberry.rst.core.cm.*;
|
|
|
import com.iamberry.rst.core.order.EfastOrder;
|
|
|
import com.iamberry.rst.core.order.OrderItem;
|
|
|
import com.iamberry.rst.core.order.Product;
|
|
|
+import com.iamberry.rst.core.order.ProductColor;
|
|
|
import com.iamberry.rst.core.page.PagedResult;
|
|
|
import com.iamberry.rst.faces.cm.CustomerService;
|
|
|
import com.iamberry.rst.service.address.mapper.AddressMapper;
|
|
@@ -63,6 +64,11 @@ public class CustomerServiceImpl implements CustomerService {
|
|
|
private AddressMapper addressMapper; //地址
|
|
|
@Autowired
|
|
|
private ProductMapper productMapper; //产品
|
|
|
+ @Autowired
|
|
|
+ private ComplaintSignclosedProductInfoMapper complaintSignclosedProductInfoMapper;
|
|
|
+ @Autowired
|
|
|
+ private FittingsInfoMapper fittingsInfoMapper;
|
|
|
+
|
|
|
|
|
|
@Override
|
|
|
public CustomerInfo getCustomerInfo(Integer customerId) {
|
|
@@ -105,7 +111,10 @@ public class CustomerServiceImpl implements CustomerService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if (2 == customerInfo.getCustomerCounselType()) {
|
|
|
+ if (2 == customerInfo.getCustomerCounselType() &&
|
|
|
+ (customerInfo.getCustomerIsSolve() == 3 || customerInfo.getCustomerIsSolve() == 4 || customerInfo.getCustomerIsSolve() == 5 ||
|
|
|
+ customerInfo.getCustomerIsSolve() == 6 || customerInfo.getCustomerIsSolve() == 7)
|
|
|
+ ){
|
|
|
salesOrder = salesOrderMapper.getSalesOrderById(salesOrder.getSalesId());
|
|
|
|
|
|
CustomerCommon customerCommon = customerInfo.getCustomerCommon();
|
|
@@ -114,13 +123,17 @@ public class CustomerServiceImpl implements CustomerService {
|
|
|
customerCommon.setRelationSendStatus(1); //寄送状态 1:未寄送
|
|
|
customerCommon.setRelationState(1); //状态 默认使用中
|
|
|
customerCommon.setOrderId(salesOrder.getSalesId()); //订单id
|
|
|
+ customerCommon.setTransactionNumber(customerInfo.getTransactionNumber()); //外部交易号
|
|
|
+
|
|
|
+ /* 初始化产品类型,名称,配件名称 */
|
|
|
+ this.setName(customerCommon);
|
|
|
|
|
|
ComplaintDetectInfo complaintDetectInfo = new ComplaintDetectInfo(); //品质检测
|
|
|
ComplaintSignclosedInfo complaintSignclosedInfo = new ComplaintSignclosedInfo(); //客诉-签收表
|
|
|
Map<String,Object> map;
|
|
|
switch (customerInfo.getCustomerIsSolve()) { //处理结果: 1:已解决 2:未解决 3:换新 4:维修 5:补发 6:退货 7:无理由退货
|
|
|
case 3: //换新
|
|
|
- map = this.sendEfastOrder(); //换新需要向Efast推送一条换新发货的订单
|
|
|
+ map = this.sendEfastOrder(customerCommon); //换新需要向Efast推送一条换新发货的订单
|
|
|
if(map.get("status") == 1){
|
|
|
customerCommon.setRelationBackEfastOrderId(String.valueOf(map.get("EfastOrderId"))); //存放Efast订单编号
|
|
|
complaintSignclosedInfo.setNewEfastId(String.valueOf(map.get("EfastOrderId"))); //仓储签收表添加 发货的Efast订单id
|
|
@@ -133,7 +146,7 @@ public class CustomerServiceImpl implements CustomerService {
|
|
|
this.saveComplaintDetectInfo(complaintDetectInfo,customerCommon); //创建品检
|
|
|
break;
|
|
|
case 4: //维修
|
|
|
- map = this.sendEfastOrder(); //维修需要向Efast推送一条维修发货的订单
|
|
|
+ map = this.sendEfastOrder(customerCommon); //维修需要向Efast推送一条维修发货的订单
|
|
|
if(map.get("status") == 1){
|
|
|
customerCommon.setRelationBackEfastOrderId(String.valueOf(map.get("EfastOrderId"))); //存放Efast订单编号
|
|
|
complaintSignclosedInfo.setNewEfastId(String.valueOf(map.get("EfastOrderId"))); //仓储签收表添加 发货的Efast订单id
|
|
@@ -146,7 +159,7 @@ public class CustomerServiceImpl implements CustomerService {
|
|
|
this.saveComplaintDetectInfo(complaintDetectInfo,customerCommon); //创建品检
|
|
|
break;
|
|
|
case 5: //补发 不用创建仓储签收任务
|
|
|
- map = this.sendEfastOrder(); //补发需要向Efast推送一条发货的订单
|
|
|
+ map = this.sendEfastOrder(customerCommon); //补发需要向Efast推送一条发货的订单
|
|
|
if(map.get("status") == 1){
|
|
|
customerCommon.setRelationBackEfastOrderId(String.valueOf(map.get("EfastOrderId"))); //存放Efast订单编号
|
|
|
complaintSignclosedInfo.setNewEfastId(String.valueOf(map.get("EfastOrderId"))); //仓储签收表添加 发货的Efast订单id
|
|
@@ -170,7 +183,7 @@ public class CustomerServiceImpl implements CustomerService {
|
|
|
customerCommon.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储id
|
|
|
|
|
|
Object object = CustomerCommon.getRelation(customerInfo.getCustomerIsSolve(), customerCommon);
|
|
|
- Integer relationId;
|
|
|
+ Integer relationId = 0;
|
|
|
switch (customerInfo.getCustomerIsSolve()) { //处理结果: 1:已解决 2:未解决 3:换新 4:维修 5:补发 6:退货 7:无理由退货
|
|
|
case 3: //换新
|
|
|
Renewed renewed = (Renewed) object;
|
|
@@ -199,12 +212,63 @@ public class CustomerServiceImpl implements CustomerService {
|
|
|
break;
|
|
|
}
|
|
|
if (flag < 1) {
|
|
|
- throw new Exception("添加客诉失败");
|
|
|
+ throw new Exception("添加客诉处理结果失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ customerCommon.setRelationId(relationId);
|
|
|
+
|
|
|
+ CustomerCommon.setProduceOrFitting(customerInfo.getCustomerIsSolve(),customerCommon);
|
|
|
+
|
|
|
+ if(customerCommon.getClosedFittings()!=null && customerCommon.getClosedFittings().size() > 0){
|
|
|
+ closedFittingMapper.insert(customerCommon.getClosedFittings());
|
|
|
+ }
|
|
|
+ if(customerCommon.getClosedProdcues() != null && customerCommon.getClosedProdcues().size()>0){
|
|
|
+ closedProdcueMapper.insert(customerCommon.getClosedProdcues());
|
|
|
+ }
|
|
|
+ if(customerCommon.getSendProdcues() != null && customerCommon.getSendProdcues().size() > 0){
|
|
|
+ sendProdcueMapper.insert(customerCommon.getSendProdcues());
|
|
|
+ }
|
|
|
+ if(customerCommon.getSendFittings() != null && customerCommon.getSendFittings().size() > 0){
|
|
|
+ sendFittingMapper.insert(customerCommon.getSendFittings());
|
|
|
}
|
|
|
}
|
|
|
return flag;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 初始化
|
|
|
+ * @param cc
|
|
|
+ */
|
|
|
+ private void setName(CustomerCommon cc){
|
|
|
+ for (int i=0;i<cc.getSendProdcues().size();i++) {
|
|
|
+ Product product = productMapper.getProduce(cc.getSendProdcues().get(i).getProductId());
|
|
|
+ cc.getSendProdcues().get(i).setSendProduceName(product.getProductName());
|
|
|
+ cc.getSendProdcues().get(i).setProductType(product.getProductType());
|
|
|
+ cc.getSendProdcues().get(i).setProductNumber(product.getProductNumber());
|
|
|
+
|
|
|
+ ProductColor productColor = productMapper.getProduceColor(cc.getSendProdcues().get(i).getColorId());
|
|
|
+ cc.getSendProdcues().get(i).setProductColor(productColor);
|
|
|
+ }
|
|
|
+ for (int i=0;i<cc.getSendFittings().size();i++) {
|
|
|
+ FittingsInfo fittingsInfo = fittingsInfoMapper.getFittingsById( cc.getSendFittings().get(i).getFittingsId());
|
|
|
+ cc.getSendFittings().get(i).setFittingsId(fittingsInfo.getFittingsId());
|
|
|
+ }
|
|
|
+ for (int i=0;i<cc.getClosedProdcues().size();i++) {
|
|
|
+ Product product = productMapper.getProductById(cc.getSendProdcues().get(i).getProductId());
|
|
|
+ cc.getClosedProdcues().get(i).setClosedProductName(product.getProductName());
|
|
|
+ cc.getClosedProdcues().get(i).setProductType(product.getProductType());
|
|
|
+ cc.getClosedProdcues().get(i).setProductNumber(product.getProductNumber());
|
|
|
+
|
|
|
+ ProductColor productColor = productMapper.getProduceColor(cc.getSendProdcues().get(i).getColorId());
|
|
|
+ cc.getSendProdcues().get(i).setProductColor(productColor);
|
|
|
+ }
|
|
|
+ for (int i=0;i<cc.getClosedFittings().size();i++) {
|
|
|
+ FittingsInfo fittingsInfo = fittingsInfoMapper.getFittingsById(cc.getClosedFittings().get(i).getFittingsId());
|
|
|
+ cc.getClosedFittings().get(i).setFittingsId(fittingsInfo.getFittingsId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 添加品检
|
|
|
* @param complaintDetectInfo
|
|
@@ -222,9 +286,8 @@ public class CustomerServiceImpl implements CustomerService {
|
|
|
ClosedProdcue closedProdcue = customerCommon.getClosedProdcues().get(i);
|
|
|
for(int j=0; j<closedProdcue.getClosedProdcueNumber();j++){
|
|
|
complaintDetectInfo.setProductId(closedProdcue.getProductId());
|
|
|
- Product product = productMapper.getProductById(closedProdcue.getProductId());
|
|
|
- complaintDetectInfo.setDetectProductType(product.getProductType());
|
|
|
- complaintDetectInfo.setDetectProductNumber(product.getProductNumber());
|
|
|
+ complaintDetectInfo.setDetectProductType(closedProdcue.getProductType());
|
|
|
+ complaintDetectInfo.setDetectProductNumber(closedProdcue.getProductNumber());
|
|
|
}
|
|
|
complaintDetectInfoList.add(complaintDetectInfo);
|
|
|
}
|
|
@@ -252,27 +315,104 @@ public class CustomerServiceImpl implements CustomerService {
|
|
|
complaintSignclosedInfo.setSignclosedCustomerId(customerCommon.getCustomerId()); //客诉id
|
|
|
flag = complaintSignclosedInfoMapper.insert(complaintSignclosedInfo);
|
|
|
if(flag < 1){
|
|
|
- throw new Exception("添加仓储任务失败");
|
|
|
+ throw new Exception("添加签收失败");
|
|
|
}
|
|
|
+
|
|
|
//添加代签收表
|
|
|
+ List<AwaitingSignclosedProductInfo> awaitingSignclosedProductInfoArrayList = new ArrayList<>();
|
|
|
+ AwaitingSignclosedProductInfo awaitingSignclosedProductInfo = new AwaitingSignclosedProductInfo();
|
|
|
+ awaitingSignclosedProductInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //仓储id
|
|
|
+ awaitingSignclosedProductInfo.setSignclosedProductType(1); //类型为产品
|
|
|
+ for(int i=0 ;i< customerCommon.getClosedProdcues().size();i++){
|
|
|
+ ClosedProdcue closedProdcue = customerCommon.getClosedProdcues().get(i);
|
|
|
+ awaitingSignclosedProductInfo.setProductNum(closedProdcue.getClosedProdcueNumber());
|
|
|
+ awaitingSignclosedProductInfo.setSignclosedProductId(closedProdcue.getProductId()); //产品id
|
|
|
+ awaitingSignclosedProductInfo.setSignclosedProductColor(closedProdcue.getColorId()); //颜色id
|
|
|
+ awaitingSignclosedProductInfo.setProductName(closedProdcue.getClosedProductName()); //产品名称
|
|
|
+ awaitingSignclosedProductInfoArrayList.add(awaitingSignclosedProductInfo);
|
|
|
+ }
|
|
|
+
|
|
|
+ awaitingSignclosedProductInfo.setSignclosedProductType(2); //类型为配件
|
|
|
+ for(int i=0 ;i< customerCommon.getClosedFittings().size();i++){
|
|
|
+ ClosedFitting closedFitting = customerCommon.getClosedFittings().get(i);
|
|
|
+ awaitingSignclosedProductInfo.setProductNum(closedFitting.getClosedFittingNumber());
|
|
|
+ awaitingSignclosedProductInfo.setSignclosedProductId(closedFitting.getFittingsId()); //配件id
|
|
|
+ awaitingSignclosedProductInfo.setSignclosedProductColor(null);
|
|
|
+ awaitingSignclosedProductInfo.setProductName(closedFitting.getFittingName()); //配件名称
|
|
|
+ awaitingSignclosedProductInfoArrayList.add(awaitingSignclosedProductInfo);
|
|
|
+ }
|
|
|
+
|
|
|
+ flag = complaintSignclosedProductInfoMapper.insertList(awaitingSignclosedProductInfoArrayList);
|
|
|
+ if(flag < 1){
|
|
|
+ throw new Exception("添加签收产品失败");
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 像Efast推送订单 仅换新,维修 ,补发
|
|
|
+ * 向Efast推送订单 仅换新,维修 ,补发
|
|
|
* @return
|
|
|
*/
|
|
|
- public Map<String,Object> sendEfastOrder(){
|
|
|
+ public Map<String,Object> sendEfastOrder(CustomerCommon customerCommon){
|
|
|
Map<String,Object> map = new HashMap<String,Object>();
|
|
|
EfastOrderServiceImpl efastOrderService = new EfastOrderServiceImpl();
|
|
|
List<EfastOrder> orderList = new ArrayList<EfastOrder>();
|
|
|
List<OrderItem> itemList = new ArrayList<OrderItem>();
|
|
|
-// try {
|
|
|
-// efastOrderService.sendOrderInfoToEfast(orderList,itemList);
|
|
|
-// } catch (Exception e) {
|
|
|
-// flag = 0;
|
|
|
-// }
|
|
|
- map.put("status",1);
|
|
|
- map.put("EfastOrderId","xxxxxxxxxxxxxxxxx");
|
|
|
+
|
|
|
+ Integer num = 0; //产品数量
|
|
|
+ Integer amout = 0; //商品总价
|
|
|
+ for(int i=0;i<customerCommon.getSendProdcues().size();i++){
|
|
|
+ SendProdcue sendProdcue = customerCommon.getSendProdcues().get(i);
|
|
|
+ OrderItem orderItem = new OrderItem();
|
|
|
+ orderItem.setItemProductName(sendProdcue.getSendProduceName());
|
|
|
+ orderItem.setItemProductNum(sendProdcue.getSendProdcueNumber());
|
|
|
+ orderItem.setItemProductPrice(sendProdcue.getProductColor().getColorPrice());
|
|
|
+ orderItem.setItemColorBar(sendProdcue.getProductColor().getColorBar());
|
|
|
+ itemList.add(orderItem);
|
|
|
+ num += sendProdcue.getSendProdcueNumber();
|
|
|
+ amout += sendProdcue.getProductColor().getColorPrice();
|
|
|
+ }
|
|
|
+
|
|
|
+ EfastOrder efastOrder = new EfastOrder();
|
|
|
+ efastOrder.setOrderAddressName(customerCommon.getRelationSendName());//收货人姓名
|
|
|
+ efastOrder.setOrderAddressTel(customerCommon.getRelationSendTel());//收货人电话
|
|
|
+ efastOrder.setOrderOpenId("");//身份证
|
|
|
+
|
|
|
+ String[] address = customerCommon.getRelationSendMergeAddress().split("-");
|
|
|
+ efastOrder.setOrderProvince(address[0]);
|
|
|
+ efastOrder.setOrderCity(address[1]);
|
|
|
+ efastOrder.setOrderArea(address[2]);
|
|
|
+ efastOrder.setOrderAddress(customerCommon.getRelationSendAddress());
|
|
|
+ efastOrder.setOrderStatus(2);
|
|
|
+
|
|
|
+ efastOrder.setOrderNum(num); //产品数量
|
|
|
+ efastOrder.setOrderAmount(amout); //商品总价
|
|
|
+ efastOrder.setOrderPayMoney(amout); //已付款
|
|
|
+
|
|
|
+ efastOrder.setOrderId(customerCommon.getTransactionNumber()); //外部交易号
|
|
|
+
|
|
|
+ efastOrder.setOrderPayType(0); //支付方式
|
|
|
+
|
|
|
+ orderList.add(efastOrder);
|
|
|
+
|
|
|
+ Integer status = 1;
|
|
|
+ try {
|
|
|
+ efastOrderService.sendOrderInfoToEfast(orderList,itemList);
|
|
|
+ } catch (Exception e) {
|
|
|
+ status = 0;
|
|
|
+ }
|
|
|
+ if(status == 0){
|
|
|
+ map.put("status",status);
|
|
|
+ map.put("EfastOrderId","");
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+ EfastOrder efOrder = new EfastOrder();
|
|
|
+ try {
|
|
|
+ efOrder = efastOrderService.getOrderInfoFromEfast(customerCommon.getTransactionNumber());
|
|
|
+ } catch (Exception e) {
|
|
|
+ status = 0;
|
|
|
+ }
|
|
|
+ map.put("status",status);
|
|
|
+ map.put("EfastOrderId",efOrder.getOid());
|
|
|
return map;
|
|
|
}
|
|
|
|