|
@@ -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()); //设置客诉id
|
|
|
+ customerCommon.setRelationBackStatus(1); //寄回状态 1:未寄回
|
|
|
+ customerCommon.setRelationSendStatus(1); //寄送状态 1:未寄送
|
|
|
+ customerCommon.setRelationState(1); //状态 默认使用中
|
|
|
+ customerCommon.setOrderId(salesOrder.getSalesId()); //订单id
|
|
|
+ customerCommon.setTransactionNumber(customerInfo.getTransactionNumber()); //外部交易号
|
|
|
+
|
|
|
+ customerCommon.setRelationIsTransfer(0); //是否已转账邮费 0:不需要
|
|
|
+ customerCommon.setRelationBackPostage(0); //邮费默认为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()) { //处理结果: 1:已解决 2:未解决 3:换新 4:维修 5:补发 6:退货 7:无理由退货
|
|
|
+ case 3: //换新
|
|
|
+ customerService.chargebackEfastOrder(customerCommon,salesOrder,2); //原订单生成退单
|
|
|
+
|
|
|
+ map = customerService.sendEfastOrder(customerCommon,salesOrder); //换新需要向Efast推送一条换新发货的订单
|
|
|
+ if(map.get("status") == 1){
|
|
|
+ customerCommon.setRelationBackEfastOrderId(String.valueOf(map.get("EfastOrderId"))); //存放Efast订单编号
|
|
|
+ complaintSignclosedInfo.setNewEfastId(String.valueOf(map.get("EfastOrderId"))); //仓储签收表添加 发货的Efast订单id
|
|
|
+ }else{
|
|
|
+ throw new RuntimeException("换新创建Efast订单失败");
|
|
|
+ }
|
|
|
+ complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId()); //原有订单的Efast的订单编号
|
|
|
+ customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
|
|
|
+ complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
|
|
|
+ customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon); //创建品检
|
|
|
+ break;
|
|
|
+ case 4: //维修
|
|
|
+
|
|
|
+ customerService.chargebackEfastOrder(customerCommon,salesOrder,2); //原订单生成退单
|
|
|
+
|
|
|
+ map = customerService.sendEfastOrder(customerCommon,salesOrder); //维修需要向Efast推送一条维修发货的订单
|
|
|
+ if(map.get("status") == 1){
|
|
|
+ customerCommon.setRelationBackEfastOrderId(String.valueOf(map.get("EfastOrderId"))); //存放Efast订单编号
|
|
|
+ complaintSignclosedInfo.setNewEfastId(String.valueOf(map.get("EfastOrderId"))); //仓储签收表添加 发货的Efast订单id
|
|
|
+ }else{
|
|
|
+ throw new RuntimeException("维修创建Efast订单失败");
|
|
|
+ }
|
|
|
+ complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId()); //原有订单的Efast的订单编号
|
|
|
+ customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
|
|
|
+ complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
|
|
|
+ customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon); //创建品检
|
|
|
+ break;
|
|
|
+ case 5: //补发 不用创建仓储签收任务
|
|
|
+ map = customerService.sendEfastOrder(customerCommon,salesOrder); //补发需要向Efast推送一条发货的订单
|
|
|
+ if(map.get("status") == 1){
|
|
|
+ customerCommon.setRelationBackEfastOrderId(String.valueOf(map.get("EfastOrderId"))); //存放Efast订单编号
|
|
|
+ complaintSignclosedInfo.setNewEfastId(String.valueOf(map.get("EfastOrderId"))); //仓储签收表添加 发货的Efast订单id
|
|
|
+ }else{
|
|
|
+ throw new RuntimeException("补发创建Efast订单失败");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 6: //退货
|
|
|
+
|
|
|
+ customerService.chargebackEfastOrder(customerCommon,salesOrder,3); //原订单生成退单
|
|
|
+
|
|
|
+ complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId()); //原有订单的Efast的订单编号
|
|
|
+ customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
|
|
|
+ complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
|
|
|
+ customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon); //创建品检
|
|
|
+ break;
|
|
|
+ case 7: //无理由退货
|
|
|
+
|
|
|
+ customerService.chargebackEfastOrder(customerCommon,salesOrder,3); //原订单生成退单
|
|
|
+
|
|
|
+ complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId()); //原有订单的Efast的订单编号
|
|
|
+ customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
|
|
|
+ complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
|
|
|
+ customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon); //创建品检
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ logger.info("-----------修改客诉-创建仓储/品检成功--------------");
|
|
|
+ customerCommon.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储id
|
|
|
+
|
|
|
+ Object object = CustomerCommon.getRelation(customerInfo.getCustomerIsSolve(), customerCommon);
|
|
|
+ Integer relationId = 0;
|
|
|
+ switch (customerInfo.getCustomerIsSolve()) { //处理结果: 1:已解决 2:未解决 3:换新 4:维修 5:补发 6:退货 7:无理由退货
|
|
|
+ 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();// //处理结果: 1:已解决 2:未解决 3:换新 4:维修 5:补发 6:退货 7:无理由退货
|
|
|
+ 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()); //设置客诉id
|
|
|
+ customerCommon.setRelationBackStatus(1); //寄回状态 1:未寄回
|
|
|
+ customerCommon.setRelationSendStatus(1); //寄送状态 1:未寄送
|
|
|
+ customerCommon.setRelationState(1); //状态 默认使用中
|
|
|
+ customerCommon.setTransactionNumber(customerInfo.getTransactionNumber()); //外部交易号
|
|
|
+ customerCommon.setRelationIsTransfer(0); //是否已转账邮费 0:不需要
|
|
|
+ customerCommon.setRelationBackPostage(0); //邮费默认为0
|
|
|
+ customerCommon.setRelationBackName(customerCommon.getRelationSendName()); //姓名
|
|
|
+ customerCommon.setRelationBackTel(customerCommon.getRelationSendTel()); //电话号码
|
|
|
+ /* 初始化产品类型,名称,配件名称 */
|
|
|
+ /*customerService.setName(customerCommon);*/
|
|
|
+ }
|
|
|
+ switch (oldIsSolve){
|
|
|
+ case 3:
|
|
|
+ //删除换新数据
|
|
|
+ Renewed renewed = new Renewed();
|
|
|
+ renewed.setCustomerId(customer.getCustomerId());
|
|
|
+ //查询换新数据id
|
|
|
+ renewed = renewedMapper.getRenewedInfo(renewed);
|
|
|
+ if(customer.getCustomerIsSolve() < 3){ //从维修换货补发修改为已解决或未解决时,原订单生成退单
|
|
|
+ salesOrder = salesOrderMapper.getSalesOrderById(renewed.getOrderId());
|
|
|
+ customerCommon.setOrderId(salesOrder.getSalesId()); //订单id
|
|
|
+ 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());
|
|
|
+ //查询维修数据id
|
|
|
+ repair = repairMapper.getRepairInfo(repair);
|
|
|
+ if(customer.getCustomerIsSolve() < 3) { //从维修换货补发修改为已解决或未解决时,原订单生成退单
|
|
|
+ salesOrder = salesOrderMapper.getSalesOrderById(repair.getOrderId());
|
|
|
+ customerCommon.setOrderId(salesOrder.getSalesId()); //订单id
|
|
|
+ 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());
|
|
|
+ //查询补发数据id
|
|
|
+ reissue = reissueMapper.getReissue(reissue);
|
|
|
+ if(customer.getCustomerIsSolve() < 3) { //从维修换货补发修改为已解决或未解决时,原订单生成退单
|
|
|
+ salesOrder = salesOrderMapper.getSalesOrderById(reissue.getOrderId());
|
|
|
+ customerCommon.setOrderId(salesOrder.getSalesId()); //订单id
|
|
|
+ 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());
|
|
|
+ //查询维修数据id
|
|
|
+ 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());
|
|
|
+ //查询维修数据id
|
|
|
+ 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);
|
|
|
|