|
@@ -268,6 +268,330 @@ public class CustomerServiceImpl implements CustomerService {
|
|
|
}
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public Integer updateCustomerInfo(CustomerInfo customerInfo,SalesOrder salesOrder){
|
|
|
+
|
|
|
+
|
|
|
+ deleteCustomerAfterSales(customerInfo);
|
|
|
+
|
|
|
+ Integer flag = 0;
|
|
|
+ flag = customerInfoMapper.updateCustomerInfo(customerInfo);
|
|
|
+ if(flag < 1){
|
|
|
+ throw new RuntimeException("修改客诉失败");
|
|
|
+ }
|
|
|
+ logger.info("-----------修改客诉-修改客诉基本信息---------------");
|
|
|
+
|
|
|
+ QuestionDescribe questionDescribe = new QuestionDescribe();
|
|
|
+ questionDescribe.setCustomerId(customerInfo.getCustomerId());
|
|
|
+ questionDescribe.setDescribeId(customerInfo.getDescribeId());
|
|
|
+ questionDescribe.setDescribeTitle(customerInfo.getDescribeTitle());
|
|
|
+ questionDescribe.setDescribeContent(customerInfo.getDescribeContent());
|
|
|
+ questionDescribe.setDescribeHandleDesc(customerInfo.getDescribeHandleDesc());
|
|
|
+ questionDescribeMapper.updateByPrimaryKeySelective(questionDescribe);
|
|
|
+
|
|
|
+ logger.info("-----------修改客诉-修改客诉问题---------------");
|
|
|
+
|
|
|
+ if ("2".equals(customerInfo.getCustomerIsVisit())) {
|
|
|
+ Visit visit = new Visit();
|
|
|
+ visit.setCustomerId(customerInfo.getCustomerId());
|
|
|
+ visit.setAdminId(customerInfo.getAdminId());
|
|
|
+ visit.setDesignatedAdminId(customerInfo.getVisitAdminId());
|
|
|
+ visit.setVisitName(customerInfo.getVisitName());
|
|
|
+ visit.setVisitTel(customerInfo.getVisitTel());
|
|
|
+ visit.setVisitDate(customerInfo.getVisitDate());
|
|
|
+ visit.setVisitTimeSelect(customerInfo.getVisitTimeSelect());
|
|
|
+ visit.setVisitStatus(1);
|
|
|
+ flag = visitMapper.addVisitInfo(visit);
|
|
|
+ if(flag < 1){
|
|
|
+ throw new RuntimeException("修改客诉回访失败");
|
|
|
+ }
|
|
|
+ logger.info("-----------修改客诉-修改客诉回访信息---------------");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (2 == customerInfo.getCustomerCounselType() &&
|
|
|
+ (customerInfo.getCustomerIsSolve() == 3 || customerInfo.getCustomerIsSolve() == 4 || customerInfo.getCustomerIsSolve() == 5 ||
|
|
|
+ customerInfo.getCustomerIsSolve() == 6 || customerInfo.getCustomerIsSolve() == 7)
|
|
|
+ ){
|
|
|
+
|
|
|
+ salesOrder = salesOrderMapper.getSalesOrderById(salesOrder.getSalesId());
|
|
|
+ logger.info("-----------修改客诉-查询订单--------------");
|
|
|
+
|
|
|
+ CustomerCommon customerCommon = customerInfo.getCustomerCommon();
|
|
|
+ customerCommon.setCustomerId(customerInfo.getCustomerId());
|
|
|
+ customerCommon.setRelationBackStatus(1);
|
|
|
+ customerCommon.setRelationSendStatus(1);
|
|
|
+ customerCommon.setRelationState(1);
|
|
|
+ customerCommon.setOrderId(salesOrder.getSalesId());
|
|
|
+ customerCommon.setTransactionNumber(customerInfo.getTransactionNumber());
|
|
|
+
|
|
|
+ customerCommon.setRelationIsTransfer(0);
|
|
|
+ customerCommon.setRelationBackPostage(0);
|
|
|
+
|
|
|
+ customerCommon.setRelationBackName(customerCommon.getRelationSendName());
|
|
|
+ customerCommon.setRelationBackTel(customerCommon.getRelationSendTel());
|
|
|
+
|
|
|
+
|
|
|
+ customerService.setName(customerCommon);
|
|
|
+ logger.info("-----------修改客诉-初始化产品,配件信息--------------");
|
|
|
+
|
|
|
+ ComplaintDetectInfo complaintDetectInfo = new ComplaintDetectInfo();
|
|
|
+ ComplaintSignclosedInfo complaintSignclosedInfo = new ComplaintSignclosedInfo();
|
|
|
+ Map<String,Object> map;
|
|
|
+ boolean isReturn = false;
|
|
|
+ switch (customerInfo.getCustomerIsSolve()) {
|
|
|
+ case 3:
|
|
|
+ customerService.chargebackEfastOrder(customerCommon,salesOrder,2);
|
|
|
+
|
|
|
+ map = customerService.sendEfastOrder(customerCommon,salesOrder);
|
|
|
+ if(map.get("status") == 1){
|
|
|
+ customerCommon.setRelationBackEfastOrderId(String.valueOf(map.get("EfastOrderId")));
|
|
|
+ complaintSignclosedInfo.setNewEfastId(String.valueOf(map.get("EfastOrderId")));
|
|
|
+ }else{
|
|
|
+ throw new RuntimeException("换新创建Efast订单失败");
|
|
|
+ }
|
|
|
+ complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId());
|
|
|
+ customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);
|
|
|
+ complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId());
|
|
|
+ customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon);
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+
|
|
|
+ customerService.chargebackEfastOrder(customerCommon,salesOrder,2);
|
|
|
+
|
|
|
+ map = customerService.sendEfastOrder(customerCommon,salesOrder);
|
|
|
+ if(map.get("status") == 1){
|
|
|
+ customerCommon.setRelationBackEfastOrderId(String.valueOf(map.get("EfastOrderId")));
|
|
|
+ complaintSignclosedInfo.setNewEfastId(String.valueOf(map.get("EfastOrderId")));
|
|
|
+ }else{
|
|
|
+ throw new RuntimeException("维修创建Efast订单失败");
|
|
|
+ }
|
|
|
+ complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId());
|
|
|
+ customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);
|
|
|
+ complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId());
|
|
|
+ customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon);
|
|
|
+ break;
|
|
|
+ case 5:
|
|
|
+ map = customerService.sendEfastOrder(customerCommon,salesOrder);
|
|
|
+ if(map.get("status") == 1){
|
|
|
+ customerCommon.setRelationBackEfastOrderId(String.valueOf(map.get("EfastOrderId")));
|
|
|
+ complaintSignclosedInfo.setNewEfastId(String.valueOf(map.get("EfastOrderId")));
|
|
|
+ }else{
|
|
|
+ throw new RuntimeException("补发创建Efast订单失败");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 6:
|
|
|
+
|
|
|
+ customerService.chargebackEfastOrder(customerCommon,salesOrder,3);
|
|
|
+
|
|
|
+ complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId());
|
|
|
+ customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);
|
|
|
+ complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId());
|
|
|
+ customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon);
|
|
|
+ break;
|
|
|
+ case 7:
|
|
|
+
|
|
|
+ customerService.chargebackEfastOrder(customerCommon,salesOrder,3);
|
|
|
+
|
|
|
+ complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId());
|
|
|
+ customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);
|
|
|
+ complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId());
|
|
|
+ customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ logger.info("-----------修改客诉-创建仓储/品检成功--------------");
|
|
|
+ customerCommon.setSignclosedId(complaintSignclosedInfo.getSignclosedId());
|
|
|
+
|
|
|
+ Object object = CustomerCommon.getRelation(customerInfo.getCustomerIsSolve(), customerCommon);
|
|
|
+ Integer relationId = 0;
|
|
|
+ switch (customerInfo.getCustomerIsSolve()) {
|
|
|
+ case 3:
|
|
|
+ Renewed renewed = (Renewed) object;
|
|
|
+ flag = renewedMapper.insert(renewed);
|
|
|
+ relationId = renewed.getRenewedId();
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ Repair repair = (Repair) object;
|
|
|
+ flag = repairMapper.insert(repair);
|
|
|
+ relationId = repair.getRepairId();
|
|
|
+ break;
|
|
|
+ case 5:
|
|
|
+ Reissue reissue = (Reissue) object;
|
|
|
+ flag = reissueMapper.insert(reissue);
|
|
|
+ relationId = reissue.getReissueId();
|
|
|
+ break;
|
|
|
+ case 6:
|
|
|
+ BackGoods backGoods = (BackGoods) object;
|
|
|
+ flag = backGoodsMapper.insert(backGoods);
|
|
|
+ relationId = backGoods.getBackGoodsId();
|
|
|
+ break;
|
|
|
+ case 7:
|
|
|
+ NoreasonBack noreasonBack = (NoreasonBack) object;
|
|
|
+ flag = noreasonBackMapper.insert(noreasonBack);
|
|
|
+ relationId = noreasonBack.getNoreasonBackId();
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ if (flag < 1) {
|
|
|
+ throw new RuntimeException("添加客诉处理结果失败");
|
|
|
+ }
|
|
|
+ logger.info("-----------修改客诉-添加换新/维修/补发/退货/无理由退货信息成功--------------");
|
|
|
+ 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());
|
|
|
+ }
|
|
|
+ logger.info("-----------添加客诉-寄回寄出产品配件成功--------------");
|
|
|
+ }
|
|
|
+ return flag;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * 删除旧的售后数据
|
|
|
+ * @param customer
|
|
|
+ */
|
|
|
+ public void deleteCustomerAfterSales(CustomerInfo customer){
|
|
|
+ CustomerInfo customerInfo = customerInfoMapper.getCustomerInfo(customer.getCustomerId());
|
|
|
+
|
|
|
+ if ("2".equals(customerInfo.getCustomerIsVisit())){
|
|
|
+ visitMapper.deleteByPrimaryKey(customer.getCustomerId());
|
|
|
+ }
|
|
|
+
|
|
|
+ Integer oldIsSolve = customerInfo.getCustomerIsSolve();
|
|
|
+ ClosedProdcue closedrecord = new ClosedProdcue();
|
|
|
+ ClosedFitting closedRecord = new ClosedFitting();
|
|
|
+ SendProdcue sendProdcue = new SendProdcue();
|
|
|
+ SendFitting sendFitting = new SendFitting();
|
|
|
+ CustomerCommon customerCommon = customerInfo.getCustomerCommon();
|
|
|
+ SalesOrder salesOrder = new SalesOrder();
|
|
|
+ if(oldIsSolve > 2){
|
|
|
+ customerCommon = customerInfo.getCustomerCommon();
|
|
|
+ customerCommon.setCustomerId(customerInfo.getCustomerId());
|
|
|
+ customerCommon.setRelationBackStatus(1);
|
|
|
+ customerCommon.setRelationSendStatus(1);
|
|
|
+ customerCommon.setRelationState(1);
|
|
|
+ customerCommon.setTransactionNumber(customerInfo.getTransactionNumber());
|
|
|
+ customerCommon.setRelationIsTransfer(0);
|
|
|
+ customerCommon.setRelationBackPostage(0);
|
|
|
+ customerCommon.setRelationBackName(customerCommon.getRelationSendName());
|
|
|
+ customerCommon.setRelationBackTel(customerCommon.getRelationSendTel());
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ switch (oldIsSolve){
|
|
|
+ case 3:
|
|
|
+
|
|
|
+ Renewed renewed = new Renewed();
|
|
|
+ renewed.setCustomerId(customer.getCustomerId());
|
|
|
+
|
|
|
+ renewed = renewedMapper.getRenewedInfo(renewed);
|
|
|
+ if(customer.getCustomerIsSolve() < 3){
|
|
|
+ salesOrder = salesOrderMapper.getSalesOrderById(renewed.getOrderId());
|
|
|
+ customerCommon.setOrderId(salesOrder.getSalesId());
|
|
|
+ SendProdcue record = new SendProdcue();
|
|
|
+ record.setRelationId(renewed.getRenewedId());
|
|
|
+ customerCommon.setSendProdcues(sendProdcueMapper.listSendProdcue(record));
|
|
|
+ customerService.setName(customerCommon);
|
|
|
+ customerService.chargebackEfastOrder(customerCommon,salesOrder,8);
|
|
|
+ }
|
|
|
+
|
|
|
+ closedRecord.setRelationId(renewed.getRenewedId());
|
|
|
+ closedFittingMapper.deleteByPrimaryKey(closedRecord);
|
|
|
+ closedrecord.setRelationId(renewed.getRenewedId());
|
|
|
+ closedProdcueMapper.deleteByPrimaryKey(closedrecord);
|
|
|
+ sendProdcue.setRelationId(renewed.getRenewedId());
|
|
|
+ sendProdcueMapper.deleteByPrimaryKey(sendProdcue);
|
|
|
+ sendFitting.setRelationId(renewed.getRenewedId());
|
|
|
+ sendFittingMapper.deleteByPrimaryKey(sendFitting);
|
|
|
+ renewedMapper.deleteByPrimaryKey(renewed);
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+
|
|
|
+ Repair repair = new Repair();
|
|
|
+ repair.setCustomerId(customer.getCustomerId());
|
|
|
+
|
|
|
+ repair = repairMapper.getRepairInfo(repair);
|
|
|
+ if(customer.getCustomerIsSolve() < 3) {
|
|
|
+ salesOrder = salesOrderMapper.getSalesOrderById(repair.getOrderId());
|
|
|
+ customerCommon.setOrderId(salesOrder.getSalesId());
|
|
|
+ SendProdcue record = new SendProdcue();
|
|
|
+ record.setRelationId(repair.getRepairId());
|
|
|
+ customerCommon.setSendProdcues(sendProdcueMapper.listSendProdcue(record));
|
|
|
+ customerService.setName(customerCommon);
|
|
|
+ customerService.chargebackEfastOrder(customerCommon, salesOrder, 8);
|
|
|
+ }
|
|
|
+
|
|
|
+ closedRecord.setRelationId(repair.getRepairId());
|
|
|
+ closedFittingMapper.deleteByPrimaryKey(closedRecord);
|
|
|
+ closedrecord.setRelationId(repair.getRepairId());
|
|
|
+ closedProdcueMapper.deleteByPrimaryKey(closedrecord);
|
|
|
+ sendProdcue.setRelationId(repair.getRepairId());
|
|
|
+ sendProdcueMapper.deleteByPrimaryKey(sendProdcue);
|
|
|
+ sendFitting.setRelationId(repair.getRepairId());
|
|
|
+ sendFittingMapper.deleteByPrimaryKey(sendFitting);
|
|
|
+ repairMapper.deleteByPrimaryKey(repair);
|
|
|
+ break;
|
|
|
+ case 5:
|
|
|
+
|
|
|
+ Reissue reissue = new Reissue();
|
|
|
+ reissue.setCustomerId(customer.getCustomerId());
|
|
|
+
|
|
|
+ reissue = reissueMapper.getReissue(reissue);
|
|
|
+ if(customer.getCustomerIsSolve() < 3) {
|
|
|
+ salesOrder = salesOrderMapper.getSalesOrderById(reissue.getOrderId());
|
|
|
+ customerCommon.setOrderId(salesOrder.getSalesId());
|
|
|
+ SendProdcue record = new SendProdcue();
|
|
|
+ record.setRelationId(reissue.getReissueId());
|
|
|
+ customerCommon.setSendProdcues(sendProdcueMapper.listSendProdcue(record));
|
|
|
+ customerService.setName(customerCommon);
|
|
|
+ customerService.chargebackEfastOrder(customerCommon, salesOrder, 8);
|
|
|
+ }
|
|
|
+
|
|
|
+ sendProdcue.setRelationId(reissue.getReissueId());
|
|
|
+ sendProdcueMapper.deleteByPrimaryKey(sendProdcue);
|
|
|
+ sendFitting.setRelationId(reissue.getReissueId());
|
|
|
+ sendFittingMapper.deleteByPrimaryKey(sendFitting);
|
|
|
+ reissueMapper.deleteByPrimaryKey(reissue);
|
|
|
+ break;
|
|
|
+ case 6:
|
|
|
+
|
|
|
+ BackGoods backGoods = new BackGoods();
|
|
|
+ backGoods.setCustomerId(customer.getCustomerId());
|
|
|
+
|
|
|
+ backGoods = backGoodsMapper.getBackGoods(backGoods);
|
|
|
+
|
|
|
+ closedRecord.setRelationId(backGoods.getBackGoodsId());
|
|
|
+ closedFittingMapper.deleteByPrimaryKey(closedRecord);
|
|
|
+ closedrecord.setRelationId(backGoods.getBackGoodsId());
|
|
|
+ closedProdcueMapper.deleteByPrimaryKey(closedrecord);
|
|
|
+ backGoodsMapper.deleteByPrimaryKey(backGoods);
|
|
|
+ break;
|
|
|
+ case 7:
|
|
|
+
|
|
|
+ NoreasonBack noreasonBack = new NoreasonBack();
|
|
|
+ noreasonBack.setCustomerId(customer.getCustomerId());
|
|
|
+
|
|
|
+ noreasonBack = noreasonBackMapper.getNoreasonBack(noreasonBack);
|
|
|
+
|
|
|
+ closedRecord.setRelationId(noreasonBack.getNoreasonBackId());
|
|
|
+ closedFittingMapper.deleteByPrimaryKey(closedRecord);
|
|
|
+ closedrecord.setRelationId(noreasonBack.getNoreasonBackId());
|
|
|
+ closedProdcueMapper.deleteByPrimaryKey(closedrecord);
|
|
|
+ noreasonBackMapper.deleteByPrimaryKey(noreasonBack);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
* 产品配件初始化
|
|
|
* @param cc
|
|
@@ -655,7 +979,7 @@ public class CustomerServiceImpl implements CustomerService {
|
|
|
}
|
|
|
efastOrder.setOrderDealCode(salesOrder.getSalesDealCode());
|
|
|
efastOrder.setOrderPostFirm(salesOrder.getSalesPostFirm());
|
|
|
- efastOrder.setOrderDealCode(salesOrder.getSalesDealCode());
|
|
|
+ efastOrder.setOrderPostNum(salesOrder.getSalesPostNum());
|
|
|
efastOrder.setOrderId(salesOrder.getSalesOrderId());
|
|
|
efastOrder.setItemList(itemList);
|
|
|
|