1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753 |
- package com.iamberry.rst.service.cm;
- import com.github.pagehelper.PageHelper;
- import com.iamberry.rst.core.cm.*;
- import com.iamberry.rst.core.order.*;
- import com.iamberry.rst.core.page.PagedResult;
- import com.iamberry.rst.faces.cm.CustomerCommonService;
- import com.iamberry.rst.faces.cm.CustomerService;
- import com.iamberry.rst.faces.cm.RelationOrderService;
- import com.iamberry.rst.faces.order.EfastOrderService;
- import com.iamberry.rst.service.address.mapper.AddressMapper;
- import com.iamberry.rst.service.cm.mapper.*;
- import com.iamberry.rst.service.product.mapper.ProductMapper;
- import com.iamberry.rst.util.CustomerCommonUtil;
- import com.iamberry.rst.util.PageUtil;
- import net.sf.json.JSONObject;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.concurrent.atomic.AtomicInteger;
- @Service
- public class CustomerServiceImpl implements CustomerService {
- private static Logger logger = LoggerFactory.getLogger(CustomerServiceImpl.class);
- @Autowired
- private CustomerInfoMapper customerInfoMapper;
- @Autowired
- private RepairMapper repairMapper;
- @Autowired
- private BackGoodsMapper backGoodsMapper;
- @Autowired
- private NoreasonBackMapper noreasonBackMapper;
- @Autowired
- private ReissueMapper reissueMapper;
- @Autowired
- private RenewedMapper renewedMapper;
- @Autowired
- private ClosedFittingMapper closedFittingMapper;
- @Autowired
- private ClosedProdcueMapper closedProdcueMapper;
- @Autowired
- private SendProdcueMapper sendProdcueMapper;
- @Autowired
- private SendFittingMapper sendFittingMapper;
- @Autowired
- private SalesOrderMapper salesOrderMapper;
- @Autowired
- private CustomerService customerService;
- @Autowired
- private VisitMapper visitMapper; //回访
- @Autowired
- private ComplaintSignclosedInfoMapper complaintSignclosedInfoMapper; //仓储
- @Autowired
- private ComplaintDetectInfoMapper complaintDetectInfoMapper; //品检
- @Autowired
- private QuestionDescribeMapper questionDescribeMapper; //客诉问题
- @Autowired
- private AddressMapper addressMapper; //地址
- @Autowired
- private ProductMapper productMapper; //产品
- @Autowired
- private ComplaintSignclosedProductInfoMapper complaintSignclosedProductInfoMapper;
- @Autowired
- private FittingsInfoMapper fittingsInfoMapper;
- @Autowired
- private EfastOrderService efastOrderService;
- @Autowired
- private StoreInfoMapper storeInfoMapper;
- @Autowired
- private CustomerCommonService customerCommonService;
- @Autowired
- private RelationOrderService relationOrderService;
- @Override
- public CustomerInfo getCustomerInfo(Integer customerId) {
- return customerInfoMapper.getCustomerInfo(customerId);
- }
- @Override
- @Transactional
- public Integer saveCustomerInfo(CustomerInfo customerInfo,SalesOrder salesOrder){
- Integer isNeedSelectOrder = customerInfo.getIsNeedSelectOrder();
- List<SalesOrder> orderList = new ArrayList<>();
- //添加客诉基本信息
- Integer flag = 0;
- flag = customerInfoMapper.insert(customerInfo);
- if(flag < 1){
- throw new RuntimeException("添加客诉失败");
- }
- logger.info("-----------添加客诉-添加客诉基本信息---------------");
- QuestionDescribe questionDescribe = new QuestionDescribe();
- questionDescribe.setCustomerId(customerInfo.getCustomerId());
- questionDescribe.setDescribeTitle(customerInfo.getDescribeTitle()); //客诉问题标题
- questionDescribe.setDescribeContent(customerInfo.getDescribeContent()); //客诉问题描述
- questionDescribe.setDescribeHandleDesc(customerInfo.getDescribeHandleDesc()); //处理描述
- flag = questionDescribeMapper.insert(questionDescribe);
- if(flag < 1){
- throw new RuntimeException("添加客诉问题失败");
- }
- 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)
- ){
- if(isNeedSelectOrder == 1){
- SalesOrder so = new SalesOrder();
- if(salesOrder.getIds()!= null && salesOrder.getIds().indexOf("_") > -1){
- String[] salesIds = salesOrder.getIds().split("_");
- so.setSalesIds(salesIds);
- orderList = salesOrderMapper.listSalesOrder(so);
- logger.info("-----------添加客诉-查询订单--------------");
- }
- }
- CustomerCommon customerCommon = customerInfo.getCustomerCommon();
- customerCommon.setCustomerId(customerInfo.getCustomerId()); //设置客诉id
- customerCommon.setRelationBackStatus(1); //寄回状态 1:未寄回
- customerCommon.setRelationSendStatus(1); //寄送状态 1:未寄送
- customerCommon.setRelationState(1); //状态 默认使用中
- customerCommon.setTransactionNumber(customerInfo.getTransactionNumber()); //外部交易号
- // TODO: 2018/3/27 是否转账邮费,默认为不需要转账 : 0
- customerCommon.setRelationIsTransfer(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 = CustomerCommonUtil.getRelation(customerInfo.getCustomerIsSolve(), customerCommon);
- Integer relationId = 0;
- Integer orderStatus = 1;
- switch (customerInfo.getCustomerIsSolve()) { //处理结果: 1:已解决 2:未解决 3:换新 4:维修 5:补发 6:退货 7:无理由退货
- case 3: //换新
- Renewed renewed = (Renewed) object;
- flag = renewedMapper.insert(renewed);
- relationId = renewed.getRenewedId();
- orderStatus = 2;
- break;
- case 4: //维修
- Repair repair = (Repair) object;
- flag = repairMapper.insert(repair);
- relationId = repair.getRepairId();
- orderStatus = 4;
- break;
- case 5: //补发
- Reissue reissue = (Reissue) object;
- flag = reissueMapper.insert(reissue);
- relationId = reissue.getReissueId();
- orderStatus = 5;
- break;
- case 6: //退货
- BackGoods backGoods = (BackGoods) object;
- flag = backGoodsMapper.insert(backGoods);
- relationId = backGoods.getBackGoodsId();
- orderStatus = 3;
- break;
- case 7: //无理由退货
- NoreasonBack noreasonBack = (NoreasonBack) object;
- flag = noreasonBackMapper.insert(noreasonBack);
- relationId = noreasonBack.getNoreasonBackId();
- orderStatus = 3;
- break;
- }
- if (flag < 1) {
- throw new RuntimeException("添加客诉处理结果失败");
- }
- logger.info("-----------添加客诉-添加换新/维修/补发/退货/无理由退货信息成功--------------");
- /*添加客诉-添加处理与订单关联表*/
- List<RelationOrder> relationOrderList = new ArrayList<>();
- for (SalesOrder sor : orderList) {
- RelationOrder ro = new RelationOrder();
- ro.setRelationType(customerInfo.getCustomerIsSolve());
- ro.setRelationId(relationId);
- ro.setSalesId(sor.getSalesId());
- relationOrderList.add(ro);
- }
- flag = relationOrderService.saveList(relationOrderList);
- if(flag < 1){
- throw new RuntimeException("添加客诉,关联订单失败");
- }
- for (SalesOrder sor : orderList) {
- SalesOrder newOrder = new SalesOrder(); //salesOrderStatus
- newOrder.setSalesId(sor.getSalesId());
- newOrder.setSalesOrderStatus(orderStatus);
- flag = salesOrderMapper.updateSalesOrder(newOrder);
- if(flag < 1){
- throw new RuntimeException("添加客诉,修改订单失败");
- }
- }
- logger.info("-----------添加客诉-添加处理与订单关联表--------------");
- customerCommon.setRelationId(relationId);
- CustomerCommonUtil.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;
- }
- @Override
- @Transactional
- public Integer updateCustomerInfo(CustomerInfo customerInfo,SalesOrder salesOrder){
- Integer isNeedSelectOrder = customerInfo.getIsNeedSelectOrder();
- //查询旧的客诉类型信息
- CustomerCommon cc = customerInfo.getCustomerCommon();
- cc.setCustomerId(customerInfo.getCustomerId());
- List<CustomerCommon> ccList = customerCommonService.listCustomerCommon(cc);
- /*if(ccList.size() > 0){
- cc = ccList.get(0);
- }*/
- //删除旧的售后数据
- customerService.deleteCustomerAfterSales(customerInfo);
- List<SalesOrder> orderList = new ArrayList<>();
- //修改客诉基本信息
- 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)
- ){
- if(isNeedSelectOrder == 1){
- SalesOrder so = new SalesOrder();
- if(salesOrder.getIds()!= null && salesOrder.getIds().indexOf("_") > -1){
- String[] salesIds = salesOrder.getIds().split("_");
- so.setSalesIds(salesIds);
- orderList = salesOrderMapper.listSalesOrder(so);
- logger.info("-----------添加客诉-查询订单--------------");
- }
- }
- CustomerCommon customerCommon = customerInfo.getCustomerCommon();
- if(ccList.size() > 0){
- cc = ccList.get(0);
- customerCommon.setRelationBackStatus(cc.getRelationBackStatus() == null ? 1:cc.getRelationBackStatus()); //寄回状态 1:未寄回
- customerCommon.setRelationSendStatus(cc.getRelationSendStatus() == null ? 1:cc.getRelationSendStatus()); //寄送状态 1:未寄送
- customerCommon.setRelationIsTransfer(cc.getRelationIsTransfer() == null ? 0:cc.getRelationIsTransfer()); //是否已转账邮费
- customerCommon.setRelationBackPostage(cc.getRelationBackPostage() == null ? 0:cc.getRelationBackPostage()); //邮费
- //旧的物流公司物流单号支付宝信息 邮费状态 efast订单号
- customerCommon.setRelationBackLogisticsCompany(cc.getRelationBackLogisticsCompany());//寄回物流公司
- customerCommon.setRelationBackLogisticsNo(cc.getRelationBackLogisticsNo());//寄回物流单号
- customerCommon.setRelationAlipay(cc.getRelationAlipay());//转账账户
- customerCommon.setRelationAlipayName(cc.getRelationAlipayName());//转账账户 (账户姓名)
- customerCommon.setRelationDesc(cc.getRelationDesc());//备注
- customerCommon.setRelationSendLogisticsCompany(cc.getRelationSendLogisticsCompany());//寄送物流公司
- customerCommon.setRelationSendLogisticsNo(cc.getRelationSendLogisticsNo());//寄送物流单号
- customerCommon.setSalesOrderId(cc.getSalesOrderId());//efast订单号
- }else{
- customerCommon.setRelationBackStatus(1); //寄回状态 1:未寄回
- customerCommon.setRelationSendStatus(1); //寄送状态 1:未寄送
- customerCommon.setRelationIsTransfer(0); //是否已转账邮费 0:不需要
- customerCommon.setRelationBackPostage(0); //邮费默认为0
- }
- customerCommon.setCustomerId(customerInfo.getCustomerId()); //设置客诉id
- customerCommon.setRelationState(1); //状态 默认使用中 //新
- if(isNeedSelectOrder == 1){
- customerCommon.setOrderId(salesOrder.getSalesId()); //订单id //新
- }
- customerCommon.setTransactionNumber(customerInfo.getTransactionNumber()); //外部交易号
- customerCommon.setIsNeedSelectOrder(isNeedSelectOrder); //是否需要添加订单
- 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 = CustomerCommonUtil.getRelation(customerInfo.getCustomerIsSolve(), customerCommon);
- Integer relationId = 0;
- Integer orderStatus = 1;
- switch (customerInfo.getCustomerIsSolve()) { //处理结果: 1:已解决 2:未解决 3:换新 4:维修 5:补发 6:退货 7:无理由退货
- case 3: //换新
- Renewed renewed = (Renewed) object;
- flag = renewedMapper.insert(renewed);
- relationId = renewed.getRenewedId();
- orderStatus = 2;
- break;
- case 4: //维修
- Repair repair = (Repair) object;
- flag = repairMapper.insert(repair);
- relationId = repair.getRepairId();
- orderStatus = 4;
- break;
- case 5: //补发
- Reissue reissue = (Reissue) object;
- flag = reissueMapper.insert(reissue);
- relationId = reissue.getReissueId();
- orderStatus = 5;
- break;
- case 6: //退货
- BackGoods backGoods = (BackGoods) object;
- flag = backGoodsMapper.insert(backGoods);
- relationId = backGoods.getBackGoodsId();
- orderStatus = 3;
- break;
- case 7: //无理由退货
- NoreasonBack noreasonBack = (NoreasonBack) object;
- flag = noreasonBackMapper.insert(noreasonBack);
- relationId = noreasonBack.getNoreasonBackId();
- orderStatus = 3;
- break;
- }
- if (flag < 1) {
- throw new RuntimeException("添加客诉处理结果失败");
- }
- logger.info("-----------修改客诉-添加换新/维修/补发/退货/无理由退货信息成功--------------");
- /*添加客诉-添加处理与订单关联表*/
- List<RelationOrder> relationOrderList = new ArrayList<>();
- for (SalesOrder sor : orderList) {
- RelationOrder ro = new RelationOrder();
- ro.setRelationType(customerInfo.getCustomerIsSolve());
- ro.setRelationId(relationId);
- ro.setSalesId(sor.getSalesId());
- relationOrderList.add(ro);
- }
- flag = relationOrderService.saveList(relationOrderList);
- if(flag < 1){
- throw new RuntimeException("添加客诉,关联订单失败");
- }
- for (SalesOrder sor : orderList) {
- SalesOrder newOrder = new SalesOrder(); //salesOrderStatus
- newOrder.setSalesId(sor.getSalesId());
- newOrder.setSalesOrderStatus(orderStatus);
- flag = salesOrderMapper.updateSalesOrder(newOrder);
- if(flag < 1){
- throw new RuntimeException("添加客诉,修改订单状态失败");
- }
- }
- logger.info("-----------添加客诉-添加处理与订单关联表--------------");
- customerCommon.setRelationId(relationId);
- if(customerCommon.getIsNeedSelectOrder() == 1){
- CustomerCommonUtil.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
- */
- @Override
- @Transactional
- 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);*/
- }
- Integer relationId = 0;
- switch (oldIsSolve){
- case 3:
- //删除换新数据
- Renewed renewed = new Renewed();
- renewed.setCustomerId(customer.getCustomerId());
- //查询换新数据id
- renewed = renewedMapper.getRenewedInfo(renewed);
- relationId = renewed.getRenewedId();
- if(customer.getCustomerIsSolve() < 3){ //从维修换货补发修改为已解决或未解决时,原订单生成退单
- //salesOrder = salesOrderMapper.getSalesOrderById(renewed.getOrderId()); //salesOrder.getSalesId() 全场最佳,就你戏多
- //customerCommon.setOrderId(renewed.getOrderId()); //订单id
- SendProdcue record = new SendProdcue();
- record.setRelationId(renewed.getRenewedId());
- customerCommon.setSendProdcues(sendProdcueMapper.listSendProdcue(record));
- customerService.setName(customerCommon);
- //customerService.chargebackEfastOrder(customerCommon,salesOrder,8,2);
- }
- //删除寄出寄回产品
- 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);
- relationId = repair.getRepairId();
- if(customer.getCustomerIsSolve() < 3) { //从维修换货补发修改为已解决或未解决时,原订单生成退单
- //salesOrder = salesOrderMapper.getSalesOrderById(repair.getOrderId());
- //customerCommon.setOrderId(repair.getOrderId()); //订单id
- SendProdcue record = new SendProdcue();
- record.setRelationId(repair.getRepairId());
- customerCommon.setSendProdcues(sendProdcueMapper.listSendProdcue(record));
- customerService.setName(customerCommon);
- //customerService.chargebackEfastOrder(customerCommon, salesOrder, 8,2); //从维修换货补发修改为已解决或未解决时,原订单生成退单
- }
- //删除寄出寄回产品
- 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);
- relationId = reissue.getReissueId();
- if(customer.getCustomerIsSolve() < 3) { //从维修换货补发修改为已解决或未解决时,原订单生成退单
- //salesOrder = salesOrderMapper.getSalesOrderById(reissue.getOrderId());
- //customerCommon.setOrderId(reissue.getOrderId()); //订单id
- SendProdcue record = new SendProdcue();
- record.setRelationId(reissue.getReissueId());
- customerCommon.setSendProdcues(sendProdcueMapper.listSendProdcue(record));
- customerService.setName(customerCommon);
- //customerService.chargebackEfastOrder(customerCommon, salesOrder, 8,2); //从维修换货补发修改为已解决或未解决时,原订单生成退单
- }
- //删除寄出产品
- 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);
- relationId = backGoods.getBackGoodsId();
- //删除寄出寄回产品
- 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);
- relationId = noreasonBack.getNoreasonBackId();
- //删除寄出寄回产品
- closedRecord.setRelationId(noreasonBack.getNoreasonBackId());
- closedFittingMapper.deleteByPrimaryKey(closedRecord);
- closedrecord.setRelationId(noreasonBack.getNoreasonBackId());
- closedProdcueMapper.deleteByPrimaryKey(closedrecord);
- noreasonBackMapper.deleteByPrimaryKey(noreasonBack);
- break;
- }
- /*恢复订单状态*/
- RelationOrder relationOrder = new RelationOrder();
- relationOrder.setRelationType(oldIsSolve);
- relationOrder.setRelationId(relationId);
- List<RelationOrder> relationOrderList = relationOrderService.getRelationOrderList(relationOrder);
- for (int k=0; k<relationOrderList.size();k++){
- SalesOrder newOrder = new SalesOrder(); //salesOrderStatus
- newOrder.setSalesId(relationOrderList.get(k).getSalesId());
- newOrder.setSalesOrderStatus(1); //恢复订单到之前的状态
- Integer flag = salesOrderMapper.updateSalesOrder(newOrder);
- }
- /* 删除掉订单与处理的关联表 */
- relationOrderService.deleteByRelationId(relationId);
- }
- @Override
- public Integer selectNotSolvedCustomer(CustomerInfo customerInfo) {
- List<CustomerInfo> listCustomer = customerInfoMapper.listCustomer(customerInfo);
- return listCustomer.size();
- }
- @Override
- public List<CustomerInfo> listOnCustomer(CustomerInfo customerInfo) {
- List<CustomerInfo> customerList = customerInfoMapper.listOnCustomer(customerInfo);
- //查询售后维修集合
- Repair repairInfo = new Repair();
- repairInfo.setRepairState(1);
- List<Repair> repairList = repairMapper.listRepair(repairInfo);
- //查询售后退货集合
- BackGoods backGoodsInfo = new BackGoods();
- backGoodsInfo.setBackGoodsState(1);
- List<BackGoods> backGoodsList = backGoodsMapper.listBackGoods(backGoodsInfo);
- //查询售后无理由退货集合
- NoreasonBack noreasonBackInfo = new NoreasonBack();
- noreasonBackInfo.setNoreasonBackState(1);
- List<NoreasonBack> noreasonBackList = noreasonBackMapper.listNoreasonBack(noreasonBackInfo);
- //查询售后补发集合
- Reissue reissueInfo = new Reissue();
- reissueInfo.setReissueState(1);
- List<Reissue> reissueList = reissueMapper.listReissue(reissueInfo);
- //查询售后换新集合
- Renewed renewedInfo = new Renewed();
- renewedInfo.setRenewedState(1);
- List<Renewed> renewedList = renewedMapper.listRenewed(renewedInfo);
- if (customerList != null && customerList.size() > 0) {
- for (CustomerInfo customer : customerList) {
- switch (customer.getCustomerIsSolve().intValue()) {
- case 3: //换新
- for (Renewed renewed : renewedList) {
- if (renewed.getCustomerId().intValue() == customer.getCustomerId()) {
- customer.setBackStatus(renewed.getRenewedBackStatus());
- customer.setSendStatus(renewed.getRenewedSendStatus());
- customer.setSalesTime(renewed.getSalesPayTime());
- customer.setSendLogisticsNo(renewed.getRenewedSendLogisticsNo());
- customer.setSendLogisticsCompany(renewed.getRenewedSendLogisticsCompany());
- customer.setBackLogisticsNo(renewed.getRenewedBackLogisticsNo());
- customer.setBackLogisticsCompany(renewed.getRenewedBackLogisticsCompany());
- break;
- }
- }
- break;
- case 4: //维修
- for (Repair repair : repairList) {
- if (repair.getCustomerId().intValue() == customer.getCustomerId()) {
- customer.setBackStatus(repair.getRepairBackStatus());
- customer.setSendStatus(repair.getRepairSendStatus());
- customer.setSalesTime(repair.getSalesPayTime());
- customer.setSendLogisticsNo(repair.getRepairSendLogisticsNo());
- customer.setSendLogisticsCompany(repair.getRepairSendLogisticsCompany());
- customer.setBackLogisticsNo(repair.getRepairBackLogisticsNo());
- customer.setBackLogisticsCompany(repair.getRepairBackLogisticsCompany());
- break;
- }
- }
- break;
- case 5: //补发
- for (Reissue reissue : reissueList) {
- if (reissue.getCustomerId().intValue() == customer.getCustomerId()) {
- customer.setSendStatus(reissue.getReissueSendStatus());
- customer.setSalesTime(reissue.getSalesPayTime());
- customer.setBackLogisticsNo(reissue.getReissueSendLogisticsNo());
- customer.setBackLogisticsCompany(reissue.getReissueSendLogisticsCompany());
- break;
- }
- }
- break;
- case 6: //退货
- for (BackGoods backGoods : backGoodsList) {
- if (backGoods.getCustomerId().intValue() == customer.getCustomerId()) {
- customer.setBackStatus(backGoods.getBackGoodsBackStatus());
- customer.setSalesTime(backGoods.getSalesPayTime());
- customer.setSendLogisticsNo(backGoods.getBackGoodsBackLogisticsNo());
- break;
- }
- }
- break;
- case 7: //无理由退货
- for (NoreasonBack noreasonBack : noreasonBackList) {
- if (noreasonBack.getCustomerId().intValue() == customer.getCustomerId()) {
- customer.setBackStatus(noreasonBack.getNoreasonBackBackStatus());
- customer.setSalesTime(noreasonBack.getSalesPayTime());
- customer.setSendLogisticsNo(noreasonBack.getNoreasonBackBackLogisticsNo());
- customer.setSendLogisticsCompany(noreasonBack.getNoreasonBackBackLogisticsCompany());
- break;
- }
- }
- break;
- }
- }
- }
- return customerList;
- }
- /**
- * 产品配件初始化
- * @param cc
- */
- @Transactional
- public 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());
- cc.getSendFittings().get(i).setSendFittingsName(fittingsInfo.getFittingsName());
- cc.getSendFittings().get(i).setSendFittingsBar(fittingsInfo.getFittingsName());
- }
- for (int i=0;i<cc.getClosedProdcues().size();i++) {
- Product product = productMapper.getProduce(cc.getClosedProdcues().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.getClosedProdcues().get(i).getColorId());
- cc.getClosedProdcues().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());
- cc.getClosedFittings().get(i).setClosedFittingsName(fittingsInfo.getFittingsName());
- cc.getClosedFittings().get(i).setClosedFittingsBar(fittingsInfo.getFittingsName());
- }
- }
- /**
- * 添加品检
- * @param complaintDetectInfo
- * @param customerCommon
- * @return
- */
- @Transactional
- public void saveComplaintDetectInfo(ComplaintDetectInfo complaintDetectInfo,CustomerCommon customerCommon){
- if(customerCommon.getIsNeedSelectOrder() == 2){
- return;
- }
- Integer flag = 0;
- List<ComplaintDetectInfo> complaintDetectInfoList = new ArrayList<ComplaintDetectInfo>();
- for(int i=0 ;i< customerCommon.getClosedProdcues().size();i++){
- ClosedProdcue closedProdcue = customerCommon.getClosedProdcues().get(i);
- for(int j=0; j<closedProdcue.getClosedProdcueNumber();j++){
- ComplaintDetectInfo cd = new ComplaintDetectInfo();
- cd.setSignclosedId(complaintDetectInfo.getSignclosedId());
- cd.setCustomerId(customerCommon.getCustomerId()); //添加客诉
- cd.setDetectState(1); //状态 1待仓库转入
- cd.setDetectRevolutionProduced(1); //是否转入生产部门 1待转入
- cd.setDetectIsMaintenance(1); //是否需要维修,1 需要 2不需要
- cd.setProductId(closedProdcue.getProductId());
- cd.setDetectProductType(closedProdcue.getProductType());
- if(closedProdcue.getProductNumber() == null || "".equals(closedProdcue.getProductNumber())){
- cd.setDetectProductNumber("0");
- }else{
- cd.setDetectProductNumber(closedProdcue.getProductNumber());
- }
- complaintDetectInfoList.add(cd);
- }
- }
- if(complaintDetectInfoList.size() > 0){
- flag = complaintDetectInfoMapper.insertList(complaintDetectInfoList);
- }
- if(flag < 1){
- throw new RuntimeException("添加品检失败");
- }
- }
- /**
- * 添加仓储
- * @param customerCommon
- * @return
- */
- @Transactional
- public void saveComplaintSignclosedInfo(ComplaintSignclosedInfo complaintSignclosedInfo,CustomerCommon customerCommon){
- if(customerCommon.getIsNeedSelectOrder() == 2){
- return;
- }
- Integer flag;
- complaintSignclosedInfo.setSignclosedType(1); //客诉寄回
- complaintSignclosedInfo.setSignclosedIsQuality(1); //是否平品检 1:需要品检
- complaintSignclosedInfo.setSignclosedIsInto(2); //是否已转入品检 2:未转入品检
- complaintSignclosedInfo.setSignclosedState(2); //处理状态 2:未签收
- complaintSignclosedInfo.setSignclosedObjectsState(3); //物件状态 3:暂未签收
- complaintSignclosedInfo.setSignclosedCustomerId(customerCommon.getCustomerId()); //客诉id
- complaintSignclosedInfo.setSignclosedIsFittings(2);
- complaintSignclosedInfo.setSignclosedSendName(customerCommon.getRelationBackName()); //签收姓名
- complaintSignclosedInfo.setSignclosedSendTel(customerCommon.getRelationBackTel()); //签收手机
- complaintSignclosedInfo.setSignclosedAddrProvinces(customerCommon.getProvinceNumber()); //省
- complaintSignclosedInfo.setSignclosedAddrCity(customerCommon.getCityNumber()); //市
- flag = complaintSignclosedInfoMapper.insert(complaintSignclosedInfo);
- if(flag < 1){
- throw new RuntimeException("添加签收失败");
- }
- //添加代签收表
- List<AwaitingSignclosedProductInfo> awaitingSignclosedProductInfoArrayList = new ArrayList<>();
- for(int i=0 ;i< customerCommon.getClosedProdcues().size();i++){
- ClosedProdcue closedProdcue = customerCommon.getClosedProdcues().get(i);
- for(int k=0;k<closedProdcue.getClosedProdcueNumber();k++){
- AwaitingSignclosedProductInfo awaitingSignclosedProductInfo = new AwaitingSignclosedProductInfo();
- awaitingSignclosedProductInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //仓储id
- awaitingSignclosedProductInfo.setSignclosedProductType(1); //类型为产品
- awaitingSignclosedProductInfo.setProductNum(1);
- awaitingSignclosedProductInfo.setSignclosedProductId(closedProdcue.getProductId()); //产品id
- awaitingSignclosedProductInfo.setSignclosedProductColor(closedProdcue.getColorId()); //颜色id
- awaitingSignclosedProductInfo.setProductName(closedProdcue.getClosedProductName()); //产品名称
- awaitingSignclosedProductInfoArrayList.add(awaitingSignclosedProductInfo);
- }
- }
- for(int i=0 ;i< customerCommon.getClosedFittings().size();i++){
- ClosedFitting closedFitting = customerCommon.getClosedFittings().get(i);
- for(int k=0;k<closedFitting.getClosedFittingNumber();k++){
- AwaitingSignclosedProductInfo awaitingSignclosedProductInfo = new AwaitingSignclosedProductInfo();
- awaitingSignclosedProductInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //仓储id
- awaitingSignclosedProductInfo.setSignclosedProductType(2); //类型为配件
- awaitingSignclosedProductInfo.setProductNum(1);
- awaitingSignclosedProductInfo.setSignclosedProductId(closedFitting.getFittingsId()); //配件id
- awaitingSignclosedProductInfo.setSignclosedProductColor(null);
- awaitingSignclosedProductInfo.setProductName(closedFitting.getClosedFittingsName()); //配件名称
- awaitingSignclosedProductInfoArrayList.add(awaitingSignclosedProductInfo);
- }
- }
- flag = complaintSignclosedProductInfoMapper.insertList(awaitingSignclosedProductInfoArrayList);
- if(flag < 1){
- throw new RuntimeException("添加签收产品失败");
- }
- }
- /**
- * 向Efast推送订单 仅换新,维修 ,补发
- * @return
- */
- @Transactional
- public Map<String,Object> sendEfastOrder(CustomerCommon customerCommon,SalesOrder salesOrder){
- Map<String,Object> map = new HashMap<String,Object>();
- List<EfastOrder> orderList = new ArrayList<EfastOrder>();
- List<OrderItem> itemList = new ArrayList<OrderItem>();
- Integer num = 0; //产品数量
- Integer amout = 0; //商品总价
- String orderProductBarCode = ""; //产品sku
- String productName = ""; //产品名称
- 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);
- orderProductBarCode = sendProdcue.getProductColor().getColorBar();
- productName = sendProdcue.getSendProduceName();
- num += sendProdcue.getSendProdcueNumber();
- amout += sendProdcue.getProductColor().getColorPrice();
- }
- EfastOrder efastOrder = new EfastOrder();
- efastOrder.setOrderAddressName(customerCommon.getRelationSendName());//收货人姓名
- efastOrder.setOrderAddressTel(customerCommon.getRelationSendTel());//收货人电话
- efastOrder.setOrderOpenId("1");//身份证
- 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.setOrderStoreId(salesOrder.getStoreEfast()); //设置efast店铺id
- efastOrder.setOrderNum(num); //产品数量
- efastOrder.setOrderAmount(amout); //商品总价
- efastOrder.setOrderPayMoney(amout); //已付款
- //支付方式
- switch (salesOrder.getSalesPayType()){
- case 1: //微信支付
- efastOrder.setOrderPayType(1);
- break;
- case 2: //现金支付
- efastOrder.setOrderPayType(2);
- break;
- case 3:
- break;
- case 4: //刷卡支付
- efastOrder.setOrderPayType(4);
- break;
- case 5: //支付宝支付
- efastOrder.setOrderPayType(5);
- break;
- default:
- efastOrder.setOrderPayType(2); //默认现金
- break;
- }
- efastOrder.setOrderProductBarCode(orderProductBarCode); //产品sku
- efastOrder.setOrderProductName(productName); //产品名称
- efastOrder.setOrderId(customerCommon.getTransactionNumber()); //外部交易号
- efastOrder.setOid(1);
- orderList.add(efastOrder);
- Integer status = 1;
- Map<String,Object> orderMap = new HashMap<String,Object>();
- try {
- orderMap = efastOrderService.sendOrder(orderList,itemList);
- } catch (Exception e) {
- status = 0;
- }
- List<EfastOrder> oList = (List<EfastOrder>) orderMap.get("efastOrderList");
- if(oList == null || oList.size() < 1){
- status = 0;
- }
- map.put("status",status);
- if(oList != null && oList.size() > 0){
- map.put("EfastOrderId",oList.get(0).getOrderId());
- logger.info("换新,维修 ,补发向Efast 推送订单成功,订单号为:" + oList.get(0).getOrderId());
- }else{
- logger.info("换新,维修 ,补发向Efast 推送订单,推送失败,交易号为:" + customerCommon.getTransactionNumber());
- }
- return map;
- }
- @Override
- public Integer getQuestionNumber(CustomerInfo customerInfo) {
- return customerInfoMapper.getQuestionNumber(customerInfo);
- }
- /**
- * 添加订单
- * @return
- */
- @Transactional
- public Integer addOrder(SalesOrder salesOrder) {
- //添加订单数据
- int orderNum = salesOrderMapper.addSalesOrder(salesOrder);
- if (orderNum <= 0) {
- throw new RuntimeException("系统添加订单失败");
- }
- for (SalesOrderItem item : salesOrder.getSalesOrderItemList()) {
- item.setItemOrderId(salesOrder.getSalesId());
- }
- //批量添加订单项数据
- int itemNum = salesOrderMapper.addOrderItemList(salesOrder.getSalesOrderItemList());
- if (itemNum <= 0) {
- throw new RuntimeException("系统添加订单项失败");
- }
- return orderNum;
- }
- /**
- * 向Efast推送订单--添加订单
- * @return
- */
- @Transactional
- public Map<String,Object> sendEfastOrder(SalesOrder salesOrder){
- //添加订单数据
- int orderNum = salesOrderMapper.addSalesOrder(salesOrder);
- if (orderNum <= 0) {
- throw new RuntimeException("系统添加订单失败");
- }
- for (SalesOrderItem item : salesOrder.getSalesOrderItemList()) {
- item.setItemOrderId(salesOrder.getSalesId());
- }
- //批量添加订单项数据
- int itemNum = salesOrderMapper.addOrderItemList(salesOrder.getSalesOrderItemList());
- if (itemNum <= 0) {
- throw new RuntimeException("系统添加订单项失败");
- }
- Map<String,Object> map = new HashMap<String,Object>();
- List<EfastOrder> orderList = new ArrayList<EfastOrder>();
- List<OrderItem> itemList = new ArrayList<OrderItem>();
- Integer num = 0; //产品数量
- Integer amout = 0; //商品总价
- String orderProductBarCode = ""; //产品sku
- String productName = ""; //产品名称
- for(int i=0;i<salesOrder.getSalesOrderItemList().size();i++){
- SalesOrderItem salesOrderItem = salesOrder.getSalesOrderItemList().get(i);
- OrderItem orderItem = new OrderItem();
- orderItem.setItemProductName(salesOrderItem.getItemProductName());
- orderItem.setItemProductNum(salesOrderItem.getItemNum());
- orderItem.setItemProductPrice(salesOrderItem.getItemProductPrice());
- orderItem.setItemColorBar(salesOrderItem.getItemColorBar());
- itemList.add(orderItem);
- orderProductBarCode = salesOrderItem.getItemColorBar();
- productName = salesOrderItem.getItemProductName();
- num += salesOrderItem.getItemNum();
- amout += salesOrderItem.getItemProductPrice();
- }
- EfastOrder efastOrder = new EfastOrder();
- efastOrder.setOrderAddressName(salesOrder.getSalesAddressName());//收货人姓名
- efastOrder.setOrderAddressTel(salesOrder.getSalesAddressTel());//收货人电话
- efastOrder.setOrderOpenId("1");//身份证
- efastOrder.setOrderRemark(salesOrder.getOrderNoteRemark()); //订单备注
- efastOrder.setOrderBuyerRemark(salesOrder.getSalesUserRemark()); //买家备注
- efastOrder.setOrderSellerRemark(salesOrder.getSalesAdminRemark()); //卖家备注
- String[] address = salesOrder.getSalesAddressInfo().split("-");
- efastOrder.setOrderProvince(address[0]);
- efastOrder.setOrderCity(address[1]);
- efastOrder.setOrderArea(address[2]);
- String myAddress = "";
- if(address.length > 4){
- myAddress = address[3] + address[4];
- }else{
- myAddress = address[3];
- }
- efastOrder.setOrderAddress(myAddress);
- efastOrder.setOrderStatus(1);
- efastOrder.setOrderNum(num); //产品数量
- efastOrder.setOrderAmount(amout); //商品总价
- efastOrder.setOrderPayMoney(amout); //已付款
- //支付方式
- switch (salesOrder.getSalesPayType()){
- case 1: //微信支付
- efastOrder.setOrderPayType(1);
- break;
- case 2: //现金支付
- efastOrder.setOrderPayType(2);
- break;
- case 3:
- break;
- case 4: //刷卡支付
- efastOrder.setOrderPayType(4);
- break;
- case 5: //支付宝支付
- efastOrder.setOrderPayType(5);
- break;
- default:
- efastOrder.setOrderPayType(2); //默认现金
- break;
- }
- efastOrder.setOrderProductBarCode(orderProductBarCode); //产品sku
- efastOrder.setOrderProductName(productName); //产品名称
- efastOrder.setOrderId(salesOrder.getSalesDealCode()); //外部交易号
- StoreInfo storeInfo = new StoreInfo();
- storeInfo = storeInfoMapper.getStoreInfoById(salesOrder.getSalesStoreId());
- efastOrder.setOrderStoreId(storeInfo.getStoreEfast());
- efastOrder.setOid(1);
- orderList.add(efastOrder);
- Integer status = 1;
- Map<String,Object> orderMap = new HashMap<String,Object>();
- try {
- orderMap = efastOrderService.sendOrder(orderList,itemList);
- } catch (Exception e) {
- status = 0;
- }
- List<EfastOrder> oList = (List<EfastOrder>) orderMap.get("efastOrderList");
- if(oList == null || oList.size() < 1){
- status = 0;
- }
- if(oList != null && oList.size() > 0){
- map.put("EfastOrderId",oList.get(0).getOrderId());
- SalesOrder sa = new SalesOrder();
- sa.setSalesId(salesOrder.getSalesId());
- sa.setSalesOrderId(oList.get(0).getOrderId());
- orderNum = salesOrderMapper.updateSalesOrder(sa);
- if (orderNum <= 0) {
- throw new RuntimeException("系统修改订单失败,订单回滚,Efast交易号:"+salesOrder.getSalesDealCode());
- }
- }else{
- throw new RuntimeException("添加Efast订单失败");
- }
- map.put("status",status);
- return map;
- }
- /**
- * 将原订单生成退货单
- * @param customerCommon
- * @param salesOrder
- * @return
- * @throws RuntimeException
- */
- @Transactional
- public void chargebackEfastOrder(CustomerCommon customerCommon, SalesOrder salesOrder,Integer status,Integer returnType){
- SalesOrder order = new SalesOrder();
- order.setSalesId(salesOrder.getSalesId());
- order.setSalesOrderStatus(status); //换货状态
- Integer flag = salesOrderMapper.updateSalesOrder(order);
- if(flag < 0){
- throw new RuntimeException("系统生成退单失败");
- }
- EfastOrder efastOrder = new EfastOrder();
- List<EfastOrderItem> itemList = new ArrayList<>();
- /*for(int i=0;i<customerCommon.getSendProdcues().size();i++){
- SendProdcue sendProdcue = customerCommon.getSendProdcues().get(i);
- EfastOrderItem efastOrderItem = new EfastOrderItem();
- efastOrderItem.setItemColorBar(sendProdcue.getProductColor().getColorBar());
- efastOrderItem.setItemNum(sendProdcue.getSendProdcueNumber());
- efastOrderItem.setItemDiscount(sendProdcue.getProductColor().getColorPrice());
- itemList.add(efastOrderItem);
- }*/
- SalesOrderItem salesOrderItem = new SalesOrderItem();
- salesOrderItem.setItemOrderId(salesOrder.getSalesId());
- List<SalesOrderItem> salesOrderItemList = salesOrderMapper.listSalesOrderItem(salesOrderItem);
- for(SalesOrderItem item : salesOrderItemList){
- EfastOrderItem efastOrderItem = new EfastOrderItem();
- efastOrderItem.setItemColorBar(item.getItemColorBar());
- efastOrderItem.setItemNum(item.getItemNum());
- efastOrderItem.setItemDiscount(item.getItemProductPrice());
- itemList.add(efastOrderItem);
- }
- efastOrder.setOrderDealCode(salesOrder.getSalesDealCode()); //交易号
- efastOrder.setOrderPostFirm(salesOrder.getSalesPostFirm()); //物流代码
- efastOrder.setOrderPostNum(salesOrder.getSalesPostNum()); //物流单号
- efastOrder.setOrderId(salesOrder.getSalesOrderId()); //订单编号
- efastOrder.setItemList(itemList);
- efastOrder.setReturnOrderType(returnType);//退单类型
- JSONObject jsonObject = new JSONObject();
- try{
- jsonObject = efastOrderService.returnOrderFormEfast(efastOrder);
- logger.info("------将原订单生成退货订单返回数据:" + jsonObject + "------");
- /*if(jsonObject != null){
- Object obj;
- obj = jsonObject.get("return_sn");
- if(obj != null && !"".equals(obj)){
- fg = true;
- }else{
- obj = jsonObject.get("msg");
- if("系统订单 已作废".equals(obj)){
- fg = true;
- }
- }
- }*/
- }catch (Exception e){
- logger.info("------将原订单生成退货订单报错------");
- }
- }
- @Override
- public Integer updateCustomerInfo(CustomerInfo record) {
- return customerInfoMapper.updateCustomerInfo(record);
- }
- @Override
- public PagedResult<CustomerInfo> listCustomer(int pageNO, int pageSize, CustomerInfo customerInfo, boolean isTotalNum) {
- PageHelper.startPage(pageNO, pageSize, isTotalNum);
- //查询客诉列表
- List<CustomerInfo> customerList = customerInfoMapper.listCustomer(customerInfo);
- //查询售后维修集合
- Repair repairInfo = new Repair();
- repairInfo.setRepairState(1);
- List<Repair> repairList = repairMapper.listRepair(repairInfo);
- //查询售后退货集合
- BackGoods backGoodsInfo = new BackGoods();
- backGoodsInfo.setBackGoodsState(1);
- List<BackGoods> backGoodsList = backGoodsMapper.listBackGoods(backGoodsInfo);
- //查询售后无理由退货集合
- NoreasonBack noreasonBackInfo = new NoreasonBack();
- noreasonBackInfo.setNoreasonBackState(1);
- List<NoreasonBack> noreasonBackList = noreasonBackMapper.listNoreasonBack(noreasonBackInfo);
- //查询售后补发集合
- Reissue reissueInfo = new Reissue();
- reissueInfo.setReissueState(1);
- List<Reissue> reissueList = reissueMapper.listReissue(reissueInfo);
- //查询售后换新集合
- Renewed renewedInfo = new Renewed();
- renewedInfo.setRenewedState(1);
- List<Renewed> renewedList = renewedMapper.listRenewed(renewedInfo);
- if (customerList != null && customerList.size() > 0) {
- for (CustomerInfo customer : customerList) {
- switch (customer.getCustomerIsSolve().intValue()) {
- case 3: //换新
- for (Renewed renewed : renewedList) {
- if (renewed.getCustomerId().intValue() == customer.getCustomerId()) {
- customer.setBackStatus(renewed.getRenewedBackStatus());
- customer.setSendStatus(renewed.getRenewedSendStatus());
- customer.setSalesTime(renewed.getSalesPayTime());
- customer.setSendLogisticsNo(renewed.getRenewedSendLogisticsNo());
- customer.setSendLogisticsCompany(renewed.getRenewedSendLogisticsCompany());
- customer.setBackLogisticsNo(renewed.getRenewedBackLogisticsNo());
- customer.setBackLogisticsCompany(renewed.getRenewedBackLogisticsCompany());
- break;
- }
- }
- break;
- case 4: //维修
- for (Repair repair : repairList) {
- if (repair.getCustomerId().intValue() == customer.getCustomerId()) {
- customer.setBackStatus(repair.getRepairBackStatus());
- customer.setSendStatus(repair.getRepairSendStatus());
- customer.setSalesTime(repair.getSalesPayTime());
- customer.setSendLogisticsNo(repair.getRepairSendLogisticsNo());
- customer.setSendLogisticsCompany(repair.getRepairSendLogisticsCompany());
- customer.setBackLogisticsNo(repair.getRepairBackLogisticsNo());
- customer.setBackLogisticsCompany(repair.getRepairBackLogisticsCompany());
- break;
- }
- }
- break;
- case 5: //补发
- for (Reissue reissue : reissueList) {
- if (reissue.getCustomerId().intValue() == customer.getCustomerId()) {
- customer.setSendStatus(reissue.getReissueSendStatus());
- customer.setSalesTime(reissue.getSalesPayTime());
- customer.setSendLogisticsNo(reissue.getReissueSendLogisticsNo());
- customer.setSendLogisticsCompany(reissue.getReissueSendLogisticsCompany());
- break;
- }
- }
- break;
- case 6: //退货
- for (BackGoods backGoods : backGoodsList) {
- if (backGoods.getCustomerId().intValue() == customer.getCustomerId()) {
- customer.setBackStatus(backGoods.getBackGoodsBackStatus());
- customer.setSalesTime(backGoods.getSalesPayTime());
- customer.setBackLogisticsNo(backGoods.getBackGoodsBackLogisticsNo());
- customer.setBackLogisticsCompany(backGoods.getBackGoodsBackLogisticsCompany());
- break;
- }
- }
- break;
- case 7: //无理由退货
- for (NoreasonBack noreasonBack : noreasonBackList) {
- if (noreasonBack.getCustomerId().intValue() == customer.getCustomerId()) {
- customer.setBackStatus(noreasonBack.getNoreasonBackBackStatus());
- customer.setSalesTime(noreasonBack.getSalesPayTime());
- customer.setBackLogisticsNo(noreasonBack.getNoreasonBackBackLogisticsNo());
- customer.setBackLogisticsCompany(noreasonBack.getNoreasonBackBackLogisticsCompany());
- break;
- }
- }
- break;
- }
- }
- }
- return PageUtil.getPage(customerList);
- }
- @Override
- public Map<String,Object> getCustomerInfo(CustomerInfo customerInfo) {
- Map<String,Object> map = new HashMap<String,Object>();
- CustomerCommon customerCommon = new CustomerCommon();
- //查询客诉列表
- List<CustomerInfo> customerList = customerInfoMapper.listCustomer(customerInfo);
- if (customerList == null || customerList.size() == 0) {
- return null;
- }
- CustomerInfo customer = customerList.get(0);
- map.put("customer",customer);
- int orderId = 0;
- switch (customer.getCustomerIsSolve().intValue()) {
- case 3://换新
- Renewed renewedInfo = new Renewed();
- renewedInfo.setRenewedState(1);
- renewedInfo.setCustomerId(customerInfo.getCustomerId());
- //查询售后换新详情
- renewedInfo = renewedMapper.getRenewedInfo(renewedInfo);
- //orderId = renewedInfo.getOrderId();
- customerCommon = CustomerCommonUtil.getCustomerCommon(3,renewedInfo);
- customerCommon = customerService.selectProdcueAndFitting(customerCommon,3);
- break;
- case 4://维修
- Repair repairInfo = new Repair();
- repairInfo.setRepairState(1);
- repairInfo.setCustomerId(customerInfo.getCustomerId());
- //查询售后维修集合
- repairInfo = repairMapper.getRepairInfo(repairInfo);
- if (repairInfo.getComplaintDetectList() != null && repairInfo.getComplaintDetectList().size() > 0) {
- repairInfo.setDetectState(repairInfo.getComplaintDetectList().get(0).getDetectState());
- }
- //orderId = repairInfo.getOrderId();
- customerCommon = CustomerCommonUtil.getCustomerCommon(4,repairInfo);
- customerCommon = customerService.selectProdcueAndFitting(customerCommon,4);
- break;
- case 5://补发
- Reissue reissueInfo = new Reissue();
- reissueInfo.setReissueState(1);
- reissueInfo.setCustomerId(customerInfo.getCustomerId());
- //查询售后补发集合
- List<Reissue> reissueList = reissueMapper.listReissue(reissueInfo);
- if (reissueList == null || reissueList.size() == 0) {
- return null;
- }
- reissueInfo = reissueList.get(0);
- //orderId = reissueInfo.getOrderId();
- customerCommon = CustomerCommonUtil.getCustomerCommon(5,reissueInfo);
- customerCommon = customerService.selectProdcueAndFitting(customerCommon,5);
- break;
- case 6://退货
- //查询售后退货集合
- BackGoods backGoodsInfo = new BackGoods();
- backGoodsInfo.setBackGoodsState(1);
- backGoodsInfo.setCustomerId(customerInfo.getCustomerId());
- List<BackGoods> backGoodsList = backGoodsMapper.listBackGoods(backGoodsInfo);
- if (backGoodsList == null || backGoodsList.size() == 0) {
- return null;
- }
- backGoodsInfo = backGoodsList.get(0);
- if (backGoodsInfo.getComplaintDetectList() != null && backGoodsInfo.getComplaintDetectList().size() > 0) {
- backGoodsInfo.setDetectState(backGoodsInfo.getComplaintDetectList().get(0).getDetectState());
- }
- //orderId = backGoodsInfo.getOrderId();
- customerCommon = CustomerCommonUtil.getCustomerCommon(6,backGoodsInfo);
- customerCommon = customerService.selectProdcueAndFitting(customerCommon,6);
- break;
- case 7://无理由退货
- //查询售后无理由退货集合
- NoreasonBack noreasonBackInfo = new NoreasonBack();
- noreasonBackInfo.setNoreasonBackState(1);
- noreasonBackInfo.setCustomerId(customerInfo.getCustomerId());
- List<NoreasonBack> noreasonBackList = noreasonBackMapper.listNoreasonBack(noreasonBackInfo);
- if (noreasonBackList == null || noreasonBackList.size() == 0) {
- return null;
- }
- noreasonBackInfo = noreasonBackList.get(0);
- if (noreasonBackInfo.getComplaintDetectList() != null && noreasonBackInfo.getComplaintDetectList().size() > 0) {
- noreasonBackInfo.setDetectState(noreasonBackInfo.getComplaintDetectList().get(0).getDetectState());
- }
- //orderId = noreasonBackInfo.getOrderId();
- customerCommon = CustomerCommonUtil.getCustomerCommon(7,noreasonBackInfo);
- customerCommon = customerService.selectProdcueAndFitting(customerCommon,7);
- break;
- }
- RelationOrder relationOrder = new RelationOrder();
- relationOrder.setRelationType(customerCommon.getCustomerIsSolve());
- relationOrder.setRelationId(customerCommon.getRelationId());
- List<RelationOrder> relationOrderList = relationOrderService.getRelationOrderList(relationOrder);
- String[] salesIds = new String[relationOrderList.size()];
- for (int k=0; k<relationOrderList.size();k++){
- salesIds[k] = String.valueOf(relationOrderList.get(k).getSalesId());
- }
- SalesOrder so = new SalesOrder();
- so.setSalesIds(salesIds);
- List<SalesOrder> orderList = salesOrderMapper.listSalesOrder(so);
- if (orderList != null && orderList.size() > 0) {
- SalesOrder order = orderList.get(0);
- SalesOrderItem salesOrderItem = new SalesOrderItem();
- salesOrderItem.setItemOrderId(order.getSalesId());
- order.setSalesOrderItemList(salesOrderMapper.listSalesOrderItem(salesOrderItem));
- } else {
- map.put("orderList",null);
- }
- map.put("orderList",orderList);
- map.put("customerCommon",customerCommon);
- return map;
- }
- @Override
- public CustomerCommon selectProdcueAndFitting(CustomerCommon customerCommon, int isSolve) {
- if (customerCommon == null || customerCommon.getRelationId() == null) {
- return customerCommon;
- }
- List<SendProdcue> sendProdcues = null;
- List<SendFitting> sendFittings = null;
- List<ClosedFitting> closedfittings = null;
- List<ClosedProdcue> closedProdcues = null;
- SendProdcue sendProdcue = new SendProdcue();
- SendFitting sendFitting = new SendFitting();
- ClosedFitting fitting = new ClosedFitting();
- ClosedProdcue closedProdcue = new ClosedProdcue();
- switch (isSolve) {
- case 3://换新
- sendProdcue.setRelationId(customerCommon.getRelationId());
- sendProdcue.setSendProduceType(3);
- //查询寄出产品集合
- sendProdcues = sendProdcueMapper.listSendProdcue(sendProdcue);
- sendFitting.setRelationId(customerCommon.getRelationId());
- sendFitting.setSendFittingType(3);
- //查询寄出配件集合
- sendFittings = sendFittingMapper.listSendFitting(sendFitting);
- fitting.setRelationId(customerCommon.getRelationId());
- fitting.setClosedFittingType(3);
- //查询寄回配件集合
- closedfittings = closedFittingMapper.listClosedFitting(fitting);
- closedProdcue.setRelationId(customerCommon.getRelationId());
- closedProdcue.setClosedProdcueType(3);
- //查询寄回产品集合
- closedProdcues = closedProdcueMapper.listclosedProdcue(closedProdcue);
- break;
- case 4://维修
- sendProdcue.setRelationId(customerCommon.getRelationId());
- sendProdcue.setSendProduceType(4);
- //查询寄出产品集合
- sendProdcues = sendProdcueMapper.listSendProdcue(sendProdcue);
- sendFitting.setRelationId(customerCommon.getRelationId());
- sendFitting.setSendFittingType(4);
- //查询寄出配件集合
- sendFittings = sendFittingMapper.listSendFitting(sendFitting);
- fitting.setRelationId(customerCommon.getRelationId());
- fitting.setClosedFittingType(4);
- //查询寄回配件集合
- closedfittings = closedFittingMapper.listClosedFitting(fitting);
- closedProdcue.setRelationId(customerCommon.getRelationId());
- closedProdcue.setClosedProdcueType(4);
- //查询寄回产品集合
- closedProdcues = closedProdcueMapper.listclosedProdcue(closedProdcue);
- break;
- case 5://补发
- sendProdcue.setRelationId(customerCommon.getRelationId());
- sendProdcue.setSendProduceType(5);
- //查询寄出产品集合
- sendProdcues = sendProdcueMapper.listSendProdcue(sendProdcue);
- sendFitting.setRelationId(customerCommon.getRelationId());
- sendFitting.setSendFittingType(5);
- //查询寄出配件集合
- sendFittings = sendFittingMapper.listSendFitting(sendFitting);
- break;
- case 6://退货
- fitting.setRelationId(customerCommon.getRelationId());
- fitting.setClosedFittingType(6);
- //查询寄回配件集合
- closedfittings = closedFittingMapper.listClosedFitting(fitting);
- closedProdcue.setRelationId(customerCommon.getRelationId());
- closedProdcue.setClosedProdcueType(6);
- //查询寄回产品集合
- closedProdcues = closedProdcueMapper.listclosedProdcue(closedProdcue);
- break;
- case 7://无理由退货
- fitting.setRelationId(customerCommon.getRelationId());
- fitting.setClosedFittingType(7);
- //查询寄回配件集合
- closedfittings = closedFittingMapper.listClosedFitting(fitting);
- closedProdcue.setRelationId(customerCommon.getRelationId());
- closedProdcue.setClosedProdcueType(7);
- //查询寄回产品集合
- closedProdcues = closedProdcueMapper.listclosedProdcue(closedProdcue);
- break;
- }
- customerCommon.setClosedFittings(closedfittings);
- customerCommon.setClosedProdcues(closedProdcues);
- customerCommon.setSendProdcues(sendProdcues);
- customerCommon.setSendFittings(sendFittings);
- return customerCommon;
- }
- @Override
- public ProductType getcompanyAffiliation(Integer customerId) {
- return customerInfoMapper.getcompanyAffiliation(customerId);
- }
- @Override
- public BackGoods getBackGoods(BackGoods backGoods) {
- //获取退货集合
- List<BackGoods> backList = backGoodsMapper.listBackGoods(backGoods);
- if (backList == null || backList.size() == 0) {
- return null;
- }
- BackGoods goods = backList.get(0);
- ClosedProdcue closedProdcue = new ClosedProdcue();
- closedProdcue.setRelationId(goods.getBackGoodsId());
- closedProdcue.setClosedProdcueType(6);
- //查询寄回产品集合
- List<ClosedProdcue> prodcueList = closedProdcueMapper.listclosedProdcue(closedProdcue);
- ClosedFitting fitting = new ClosedFitting();
- fitting.setRelationId(goods.getBackGoodsId());
- fitting.setClosedFittingType(6);
- //查询寄回配件集合
- List<ClosedFitting> fittingList = closedFittingMapper.listClosedFitting(fitting);
- if (prodcueList != null && prodcueList.size() > 0) {
- goods.setClosedProdcues(prodcueList);
- }
- if (fittingList != null && fittingList.size() > 0) {
- goods.setClosedFittings(fittingList);
- }
- return goods;
- }
- @Override
- public NoreasonBack getNoreasonBack(NoreasonBack noreasonBack) {
- //获取无理由退货
- List<NoreasonBack> backList = noreasonBackMapper.listNoreasonBack(noreasonBack);
- if (backList == null || backList.size() == 0) {
- return null;
- }
- NoreasonBack noreasonBackInfo = backList.get(0);
- ClosedProdcue closedProdcue = new ClosedProdcue();
- closedProdcue.setRelationId(noreasonBackInfo.getNoreasonBackId());
- closedProdcue.setClosedProdcueType(7);
- //查询寄回产品集合
- List<ClosedProdcue> prodcueList = closedProdcueMapper.listclosedProdcue(closedProdcue);
- ClosedFitting fitting = new ClosedFitting();
- fitting.setRelationId(noreasonBackInfo.getNoreasonBackId());
- fitting.setClosedFittingType(7);
- //查询寄回配件集合
- List<ClosedFitting> fittingList = closedFittingMapper.listClosedFitting(fitting);
- if (prodcueList != null && prodcueList.size() > 0) {
- noreasonBackInfo.setClosedProdcues(prodcueList);
- }
- if (fittingList != null && fittingList.size() > 0) {
- noreasonBackInfo.setClosedFittings(fittingList);
- }
- return noreasonBackInfo;
- }
- @Override
- public Reissue getReissue(Reissue reissue) {
- //查询售后补发信息
- List<Reissue> reissueList = reissueMapper.listReissue(reissue);
- if (reissueList == null || reissueList.size() == 0) {
- return null;
- }
- Reissue reissueInfo = reissueList.get(0);
- SendProdcue sendProdcue = new SendProdcue();
- sendProdcue.setRelationId(reissueInfo.getReissueId());
- sendProdcue.setSendProduceType(5);
- //查询寄送产品集合
- List<SendProdcue> sendProdcueList = sendProdcueMapper.listSendProdcue(sendProdcue);
- SendFitting sendFitting = new SendFitting();
- sendFitting.setRelationId(reissueInfo.getReissueId());
- sendFitting.setSendFittingType(5);
- //查询寄送配件集合
- List<SendFitting> sendFittingList = sendFittingMapper.listSendFitting(sendFitting);
- if (sendProdcueList != null && sendProdcueList.size() > 0) {
- reissueInfo.setSendProdcues(sendProdcueList);
- }
- if (sendFittingList != null && sendFittingList.size() > 0) {
- reissueInfo.setSendFittings(sendFittingList);
- }
- return reissueInfo;
- }
- @Override
- public Renewed getRenewedInfo(Renewed renewed) {
- renewed = renewedMapper.getRenewedInfo(renewed);
- if (renewed == null){
- return null;
- }
- ClosedProdcue closedProdcue = new ClosedProdcue();
- closedProdcue.setRelationId(renewed.getRenewedId());
- closedProdcue.setClosedProdcueType(3);
- //查询寄回产品集合
- List<ClosedProdcue> prodcueList = closedProdcueMapper.listclosedProdcue(closedProdcue);
- ClosedFitting fitting = new ClosedFitting();
- fitting.setRelationId(renewed.getRenewedId());
- fitting.setClosedFittingType(3);
- //查询寄回配件集合
- List<ClosedFitting> fittingList = closedFittingMapper.listClosedFitting(fitting);
- SendProdcue sendProdcue = new SendProdcue();
- sendProdcue.setRelationId(renewed.getRenewedId());
- sendProdcue.setSendProduceType(3);
- //查询寄送产品集合
- List<SendProdcue> sendProdcueList = sendProdcueMapper.listSendProdcue(sendProdcue);
- SendFitting sendFitting = new SendFitting();
- sendFitting.setRelationId(renewed.getRenewedId());
- sendFitting.setSendFittingType(3);
- //查询寄送配件集合
- List<SendFitting> sendFittingList = sendFittingMapper.listSendFitting(sendFitting);
- if (prodcueList != null && prodcueList.size() > 0) {
- renewed.setClosedProdcues(prodcueList);
- }
- if (fittingList != null && fittingList.size() > 0) {
- renewed.setClosedFittings(fittingList);
- }
- if (sendProdcueList != null && sendProdcueList.size() > 0) {
- renewed.setSendProdcues(sendProdcueList);
- }
- if (sendFittingList != null && sendFittingList.size() > 0) {
- renewed.setSendFittings(sendFittingList);
- }
- return renewed;
- }
- @Override
- public Repair getRepairInfo(Repair repair) {
- repair = repairMapper.getRepairInfo(repair);
- if (repair == null) {
- return null;
- }
- ClosedProdcue closedProdcue = new ClosedProdcue();
- closedProdcue.setRelationId(repair.getRepairId());
- closedProdcue.setClosedProdcueType(4);
- //查询寄回产品集合
- List<ClosedProdcue> prodcueList = closedProdcueMapper.listclosedProdcue(closedProdcue);
- ClosedFitting fitting = new ClosedFitting();
- fitting.setRelationId(repair.getRepairId());
- fitting.setClosedFittingType(4);
- //查询寄回配件集合
- List<ClosedFitting> fittingList = closedFittingMapper.listClosedFitting(fitting);
- SendProdcue sendProdcue = new SendProdcue();
- sendProdcue.setRelationId(repair.getRepairId());
- sendProdcue.setSendProduceType(4);
- //查询寄送产品集合
- List<SendProdcue> sendProdcueList = sendProdcueMapper.listSendProdcue(sendProdcue);
- SendFitting sendFitting = new SendFitting();
- sendFitting.setRelationId(repair.getRepairId());
- sendFitting.setSendFittingType(4);
- //查询寄送配件集合
- List<SendFitting> sendFittingList = sendFittingMapper.listSendFitting(sendFitting);
- if (prodcueList != null && prodcueList.size() > 0) {
- repair.setClosedProdcues(prodcueList);
- }
- if (fittingList != null && fittingList.size() > 0) {
- repair.setClosedFittings(fittingList);
- }
- if (sendProdcueList != null && sendProdcueList.size() > 0) {
- repair.setSendProdcues(sendProdcueList);
- }
- if (sendFittingList != null && sendFittingList.size() > 0) {
- repair.setSendFittings(sendFittingList);
- }
- return repair;
- }
- }
|