CustomerServiceImpl.java 92 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753
  1. package com.iamberry.rst.service.cm;
  2. import com.github.pagehelper.PageHelper;
  3. import com.iamberry.rst.core.cm.*;
  4. import com.iamberry.rst.core.order.*;
  5. import com.iamberry.rst.core.page.PagedResult;
  6. import com.iamberry.rst.faces.cm.CustomerCommonService;
  7. import com.iamberry.rst.faces.cm.CustomerService;
  8. import com.iamberry.rst.faces.cm.RelationOrderService;
  9. import com.iamberry.rst.faces.order.EfastOrderService;
  10. import com.iamberry.rst.service.address.mapper.AddressMapper;
  11. import com.iamberry.rst.service.cm.mapper.*;
  12. import com.iamberry.rst.service.product.mapper.ProductMapper;
  13. import com.iamberry.rst.util.CustomerCommonUtil;
  14. import com.iamberry.rst.util.PageUtil;
  15. import net.sf.json.JSONObject;
  16. import org.slf4j.Logger;
  17. import org.slf4j.LoggerFactory;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.stereotype.Service;
  20. import org.springframework.transaction.annotation.Transactional;
  21. import java.util.ArrayList;
  22. import java.util.HashMap;
  23. import java.util.List;
  24. import java.util.Map;
  25. import java.util.concurrent.atomic.AtomicInteger;
  26. @Service
  27. public class CustomerServiceImpl implements CustomerService {
  28. private static Logger logger = LoggerFactory.getLogger(CustomerServiceImpl.class);
  29. @Autowired
  30. private CustomerInfoMapper customerInfoMapper;
  31. @Autowired
  32. private RepairMapper repairMapper;
  33. @Autowired
  34. private BackGoodsMapper backGoodsMapper;
  35. @Autowired
  36. private NoreasonBackMapper noreasonBackMapper;
  37. @Autowired
  38. private ReissueMapper reissueMapper;
  39. @Autowired
  40. private RenewedMapper renewedMapper;
  41. @Autowired
  42. private ClosedFittingMapper closedFittingMapper;
  43. @Autowired
  44. private ClosedProdcueMapper closedProdcueMapper;
  45. @Autowired
  46. private SendProdcueMapper sendProdcueMapper;
  47. @Autowired
  48. private SendFittingMapper sendFittingMapper;
  49. @Autowired
  50. private SalesOrderMapper salesOrderMapper;
  51. @Autowired
  52. private CustomerService customerService;
  53. @Autowired
  54. private VisitMapper visitMapper; //回访
  55. @Autowired
  56. private ComplaintSignclosedInfoMapper complaintSignclosedInfoMapper; //仓储
  57. @Autowired
  58. private ComplaintDetectInfoMapper complaintDetectInfoMapper; //品检
  59. @Autowired
  60. private QuestionDescribeMapper questionDescribeMapper; //客诉问题
  61. @Autowired
  62. private AddressMapper addressMapper; //地址
  63. @Autowired
  64. private ProductMapper productMapper; //产品
  65. @Autowired
  66. private ComplaintSignclosedProductInfoMapper complaintSignclosedProductInfoMapper;
  67. @Autowired
  68. private FittingsInfoMapper fittingsInfoMapper;
  69. @Autowired
  70. private EfastOrderService efastOrderService;
  71. @Autowired
  72. private StoreInfoMapper storeInfoMapper;
  73. @Autowired
  74. private CustomerCommonService customerCommonService;
  75. @Autowired
  76. private RelationOrderService relationOrderService;
  77. @Override
  78. public CustomerInfo getCustomerInfo(Integer customerId) {
  79. return customerInfoMapper.getCustomerInfo(customerId);
  80. }
  81. @Override
  82. @Transactional
  83. public Integer saveCustomerInfo(CustomerInfo customerInfo,SalesOrder salesOrder){
  84. Integer isNeedSelectOrder = customerInfo.getIsNeedSelectOrder();
  85. List<SalesOrder> orderList = new ArrayList<>();
  86. //添加客诉基本信息
  87. Integer flag = 0;
  88. flag = customerInfoMapper.insert(customerInfo);
  89. if(flag < 1){
  90. throw new RuntimeException("添加客诉失败");
  91. }
  92. logger.info("-----------添加客诉-添加客诉基本信息---------------");
  93. QuestionDescribe questionDescribe = new QuestionDescribe();
  94. questionDescribe.setCustomerId(customerInfo.getCustomerId());
  95. questionDescribe.setDescribeTitle(customerInfo.getDescribeTitle()); //客诉问题标题
  96. questionDescribe.setDescribeContent(customerInfo.getDescribeContent()); //客诉问题描述
  97. questionDescribe.setDescribeHandleDesc(customerInfo.getDescribeHandleDesc()); //处理描述
  98. flag = questionDescribeMapper.insert(questionDescribe);
  99. if(flag < 1){
  100. throw new RuntimeException("添加客诉问题失败");
  101. }
  102. logger.info("-----------添加客诉-添加客诉问题---------------");
  103. if ("2".equals(customerInfo.getCustomerIsVisit())) {
  104. Visit visit = new Visit();
  105. visit.setCustomerId(customerInfo.getCustomerId());
  106. visit.setAdminId(customerInfo.getAdminId());
  107. visit.setDesignatedAdminId(customerInfo.getVisitAdminId());
  108. visit.setVisitName(customerInfo.getVisitName());
  109. visit.setVisitTel(customerInfo.getVisitTel());
  110. visit.setVisitDate(customerInfo.getVisitDate());
  111. visit.setVisitTimeSelect(customerInfo.getVisitTimeSelect());
  112. visit.setVisitStatus(1); //回访状态
  113. flag = visitMapper.addVisitInfo(visit);
  114. if(flag < 1){
  115. throw new RuntimeException("添加客诉回访信息失败");
  116. }
  117. logger.info("-----------添加客诉-添加客诉回访信息---------------");
  118. }
  119. if (2 == customerInfo.getCustomerCounselType() &&
  120. (customerInfo.getCustomerIsSolve() == 3 || customerInfo.getCustomerIsSolve() == 4 || customerInfo.getCustomerIsSolve() == 5 ||
  121. customerInfo.getCustomerIsSolve() == 6 || customerInfo.getCustomerIsSolve() == 7)
  122. ){
  123. if(isNeedSelectOrder == 1){
  124. SalesOrder so = new SalesOrder();
  125. if(salesOrder.getIds()!= null && salesOrder.getIds().indexOf("_") > -1){
  126. String[] salesIds = salesOrder.getIds().split("_");
  127. so.setSalesIds(salesIds);
  128. orderList = salesOrderMapper.listSalesOrder(so);
  129. logger.info("-----------添加客诉-查询订单--------------");
  130. }
  131. }
  132. CustomerCommon customerCommon = customerInfo.getCustomerCommon();
  133. customerCommon.setCustomerId(customerInfo.getCustomerId()); //设置客诉id
  134. customerCommon.setRelationBackStatus(1); //寄回状态 1:未寄回
  135. customerCommon.setRelationSendStatus(1); //寄送状态 1:未寄送
  136. customerCommon.setRelationState(1); //状态 默认使用中
  137. customerCommon.setTransactionNumber(customerInfo.getTransactionNumber()); //外部交易号
  138. // TODO: 2018/3/27 是否转账邮费,默认为不需要转账 : 0
  139. customerCommon.setRelationIsTransfer(0); //是否已转账邮费
  140. customerCommon.setRelationBackPostage(0); //邮费默认为0
  141. customerCommon.setRelationBackName(customerCommon.getRelationSendName()); //姓名
  142. customerCommon.setRelationBackTel(customerCommon.getRelationSendTel()); //电话号码
  143. /* 初始化产品类型,名称,配件名称 */
  144. customerService.setName(customerCommon);
  145. logger.info("-----------添加客诉-初始化产品,配件信息--------------");
  146. ComplaintDetectInfo complaintDetectInfo = new ComplaintDetectInfo(); //品质检测
  147. ComplaintSignclosedInfo complaintSignclosedInfo = new ComplaintSignclosedInfo(); //客诉-签收表
  148. Map<String,Object> map;
  149. boolean isReturn = false;
  150. switch (customerInfo.getCustomerIsSolve()) { //处理结果: 1:已解决 2:未解决 3:换新 4:维修 5:补发 6:退货 7:无理由退货
  151. case 3: //换新
  152. // customerService.chargebackEfastOrder(customerCommon,salesOrder,2); //原订单生成退单
  153. // map = customerService.sendEfastOrder(customerCommon,salesOrder); //换新需要向Efast推送一条换新发货的订单
  154. // if(map.get("status") == 1){
  155. // customerCommon.setRelationBackEfastOrderId(String.valueOf(map.get("EfastOrderId"))); //存放Efast订单编号
  156. // complaintSignclosedInfo.setNewEfastId(String.valueOf(map.get("EfastOrderId"))); //仓储签收表添加 发货的Efast订单id
  157. // }else{
  158. // throw new RuntimeException("换新创建Efast订单失败");
  159. // }
  160. //complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId()); //原有订单的Efast的订单编号
  161. //customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
  162. //complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
  163. //customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon); //创建品检
  164. break;
  165. case 4: //维修
  166. // customerService.chargebackEfastOrder(customerCommon,salesOrder,2); //原订单生成退单
  167. // map = customerService.sendEfastOrder(customerCommon,salesOrder); //维修需要向Efast推送一条维修发货的订单
  168. // if(map.get("status") == 1){
  169. // customerCommon.setRelationBackEfastOrderId(String.valueOf(map.get("EfastOrderId"))); //存放Efast订单编号
  170. // complaintSignclosedInfo.setNewEfastId(String.valueOf(map.get("EfastOrderId"))); //仓储签收表添加 发货的Efast订单id
  171. // }else{
  172. // throw new RuntimeException("维修创建Efast订单失败");
  173. // }
  174. //complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId()); //原有订单的Efast的订单编号
  175. //customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
  176. //complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
  177. //customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon); //创建品检
  178. break;
  179. case 5: //补发 不用创建仓储签收任务
  180. // map = customerService.sendEfastOrder(customerCommon,salesOrder); //补发需要向Efast推送一条发货的订单
  181. // if(map.get("status") == 1){
  182. // customerCommon.setRelationBackEfastOrderId(String.valueOf(map.get("EfastOrderId"))); //存放Efast订单编号
  183. // complaintSignclosedInfo.setNewEfastId(String.valueOf(map.get("EfastOrderId"))); //仓储签收表添加 发货的Efast订单id
  184. // }else{
  185. // throw new RuntimeException("补发创建Efast订单失败");
  186. // }
  187. break;
  188. case 6: //退货
  189. // customerService.chargebackEfastOrder(customerCommon,salesOrder,3); //原订单生成退单
  190. //complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId()); //原有订单的Efast的订单编号
  191. //customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
  192. //complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
  193. //customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon); //创建品检
  194. break;
  195. case 7: //无理由退货
  196. // customerService.chargebackEfastOrder(customerCommon,salesOrder,3); //原订单生成退单
  197. //complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId()); //原有订单的Efast的订单编号
  198. //customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
  199. //complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
  200. //customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon); //创建品检
  201. break;
  202. }
  203. logger.info("-----------添加客诉-创建仓储/品检成功--------------");
  204. customerCommon.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储id
  205. /*将公共的对象 转换换新/维修/退款等*/
  206. Object object = CustomerCommonUtil.getRelation(customerInfo.getCustomerIsSolve(), customerCommon);
  207. Integer relationId = 0;
  208. Integer orderStatus = 1;
  209. switch (customerInfo.getCustomerIsSolve()) { //处理结果: 1:已解决 2:未解决 3:换新 4:维修 5:补发 6:退货 7:无理由退货
  210. case 3: //换新
  211. Renewed renewed = (Renewed) object;
  212. flag = renewedMapper.insert(renewed);
  213. relationId = renewed.getRenewedId();
  214. orderStatus = 2;
  215. break;
  216. case 4: //维修
  217. Repair repair = (Repair) object;
  218. flag = repairMapper.insert(repair);
  219. relationId = repair.getRepairId();
  220. orderStatus = 4;
  221. break;
  222. case 5: //补发
  223. Reissue reissue = (Reissue) object;
  224. flag = reissueMapper.insert(reissue);
  225. relationId = reissue.getReissueId();
  226. orderStatus = 5;
  227. break;
  228. case 6: //退货
  229. BackGoods backGoods = (BackGoods) object;
  230. flag = backGoodsMapper.insert(backGoods);
  231. relationId = backGoods.getBackGoodsId();
  232. orderStatus = 3;
  233. break;
  234. case 7: //无理由退货
  235. NoreasonBack noreasonBack = (NoreasonBack) object;
  236. flag = noreasonBackMapper.insert(noreasonBack);
  237. relationId = noreasonBack.getNoreasonBackId();
  238. orderStatus = 3;
  239. break;
  240. }
  241. if (flag < 1) {
  242. throw new RuntimeException("添加客诉处理结果失败");
  243. }
  244. logger.info("-----------添加客诉-添加换新/维修/补发/退货/无理由退货信息成功--------------");
  245. /*添加客诉-添加处理与订单关联表*/
  246. List<RelationOrder> relationOrderList = new ArrayList<>();
  247. for (SalesOrder sor : orderList) {
  248. RelationOrder ro = new RelationOrder();
  249. ro.setRelationType(customerInfo.getCustomerIsSolve());
  250. ro.setRelationId(relationId);
  251. ro.setSalesId(sor.getSalesId());
  252. relationOrderList.add(ro);
  253. }
  254. flag = relationOrderService.saveList(relationOrderList);
  255. if(flag < 1){
  256. throw new RuntimeException("添加客诉,关联订单失败");
  257. }
  258. for (SalesOrder sor : orderList) {
  259. SalesOrder newOrder = new SalesOrder(); //salesOrderStatus
  260. newOrder.setSalesId(sor.getSalesId());
  261. newOrder.setSalesOrderStatus(orderStatus);
  262. flag = salesOrderMapper.updateSalesOrder(newOrder);
  263. if(flag < 1){
  264. throw new RuntimeException("添加客诉,修改订单失败");
  265. }
  266. }
  267. logger.info("-----------添加客诉-添加处理与订单关联表--------------");
  268. customerCommon.setRelationId(relationId);
  269. CustomerCommonUtil.setProduceOrFitting(customerInfo.getCustomerIsSolve(),customerCommon);
  270. if(customerCommon.getClosedFittings()!=null && customerCommon.getClosedFittings().size() > 0){
  271. closedFittingMapper.insert(customerCommon.getClosedFittings());
  272. }
  273. if(customerCommon.getClosedProdcues() != null && customerCommon.getClosedProdcues().size()>0){
  274. closedProdcueMapper.insert(customerCommon.getClosedProdcues());
  275. }
  276. if(customerCommon.getSendProdcues() != null && customerCommon.getSendProdcues().size() > 0){
  277. sendProdcueMapper.insert(customerCommon.getSendProdcues());
  278. }
  279. if(customerCommon.getSendFittings() != null && customerCommon.getSendFittings().size() > 0){
  280. sendFittingMapper.insert(customerCommon.getSendFittings());
  281. }
  282. logger.info("-----------添加客诉-寄回寄出产品配件成功--------------");
  283. }
  284. return flag;
  285. }
  286. @Override
  287. @Transactional
  288. public Integer updateCustomerInfo(CustomerInfo customerInfo,SalesOrder salesOrder){
  289. Integer isNeedSelectOrder = customerInfo.getIsNeedSelectOrder();
  290. //查询旧的客诉类型信息
  291. CustomerCommon cc = customerInfo.getCustomerCommon();
  292. cc.setCustomerId(customerInfo.getCustomerId());
  293. List<CustomerCommon> ccList = customerCommonService.listCustomerCommon(cc);
  294. /*if(ccList.size() > 0){
  295. cc = ccList.get(0);
  296. }*/
  297. //删除旧的售后数据
  298. customerService.deleteCustomerAfterSales(customerInfo);
  299. List<SalesOrder> orderList = new ArrayList<>();
  300. //修改客诉基本信息
  301. Integer flag = 0;
  302. flag = customerInfoMapper.updateCustomerInfo(customerInfo);
  303. if(flag < 1){
  304. throw new RuntimeException("修改客诉失败");
  305. }
  306. logger.info("-----------修改客诉-修改客诉基本信息---------------");
  307. QuestionDescribe questionDescribe = new QuestionDescribe();
  308. // questionDescribe.setCustomerId(customerInfo.getCustomerId());
  309. questionDescribe.setDescribeId(customerInfo.getDescribeId());//客诉问题主键
  310. questionDescribe.setDescribeTitle(customerInfo.getDescribeTitle()); //客诉问题标题
  311. questionDescribe.setDescribeContent(customerInfo.getDescribeContent()); //客诉问题描述
  312. questionDescribe.setDescribeHandleDesc(customerInfo.getDescribeHandleDesc()); //处理描述
  313. questionDescribeMapper.updateByPrimaryKeySelective(questionDescribe);
  314. logger.info("-----------修改客诉-修改客诉问题---------------");
  315. if ("2".equals(customerInfo.getCustomerIsVisit())) {
  316. Visit visit = new Visit();
  317. visit.setCustomerId(customerInfo.getCustomerId());
  318. visit.setAdminId(customerInfo.getAdminId());
  319. visit.setDesignatedAdminId(customerInfo.getVisitAdminId());
  320. visit.setVisitName(customerInfo.getVisitName());
  321. visit.setVisitTel(customerInfo.getVisitTel());
  322. visit.setVisitDate(customerInfo.getVisitDate());
  323. visit.setVisitTimeSelect(customerInfo.getVisitTimeSelect());
  324. visit.setVisitStatus(1); //回访状态
  325. flag = visitMapper.addVisitInfo(visit);
  326. if(flag < 1){
  327. throw new RuntimeException("修改客诉回访失败");
  328. }
  329. logger.info("-----------修改客诉-修改客诉回访信息---------------");
  330. }
  331. if (2 == customerInfo.getCustomerCounselType() &&
  332. (customerInfo.getCustomerIsSolve() == 3 || customerInfo.getCustomerIsSolve() == 4 || customerInfo.getCustomerIsSolve() == 5 ||
  333. customerInfo.getCustomerIsSolve() == 6 || customerInfo.getCustomerIsSolve() == 7)
  334. ){
  335. if(isNeedSelectOrder == 1){
  336. SalesOrder so = new SalesOrder();
  337. if(salesOrder.getIds()!= null && salesOrder.getIds().indexOf("_") > -1){
  338. String[] salesIds = salesOrder.getIds().split("_");
  339. so.setSalesIds(salesIds);
  340. orderList = salesOrderMapper.listSalesOrder(so);
  341. logger.info("-----------添加客诉-查询订单--------------");
  342. }
  343. }
  344. CustomerCommon customerCommon = customerInfo.getCustomerCommon();
  345. if(ccList.size() > 0){
  346. cc = ccList.get(0);
  347. customerCommon.setRelationBackStatus(cc.getRelationBackStatus() == null ? 1:cc.getRelationBackStatus()); //寄回状态 1:未寄回
  348. customerCommon.setRelationSendStatus(cc.getRelationSendStatus() == null ? 1:cc.getRelationSendStatus()); //寄送状态 1:未寄送
  349. customerCommon.setRelationIsTransfer(cc.getRelationIsTransfer() == null ? 0:cc.getRelationIsTransfer()); //是否已转账邮费
  350. customerCommon.setRelationBackPostage(cc.getRelationBackPostage() == null ? 0:cc.getRelationBackPostage()); //邮费
  351. //旧的物流公司物流单号支付宝信息 邮费状态 efast订单号
  352. customerCommon.setRelationBackLogisticsCompany(cc.getRelationBackLogisticsCompany());//寄回物流公司
  353. customerCommon.setRelationBackLogisticsNo(cc.getRelationBackLogisticsNo());//寄回物流单号
  354. customerCommon.setRelationAlipay(cc.getRelationAlipay());//转账账户
  355. customerCommon.setRelationAlipayName(cc.getRelationAlipayName());//转账账户 (账户姓名)
  356. customerCommon.setRelationDesc(cc.getRelationDesc());//备注
  357. customerCommon.setRelationSendLogisticsCompany(cc.getRelationSendLogisticsCompany());//寄送物流公司
  358. customerCommon.setRelationSendLogisticsNo(cc.getRelationSendLogisticsNo());//寄送物流单号
  359. customerCommon.setSalesOrderId(cc.getSalesOrderId());//efast订单号
  360. }else{
  361. customerCommon.setRelationBackStatus(1); //寄回状态 1:未寄回
  362. customerCommon.setRelationSendStatus(1); //寄送状态 1:未寄送
  363. customerCommon.setRelationIsTransfer(0); //是否已转账邮费 0:不需要
  364. customerCommon.setRelationBackPostage(0); //邮费默认为0
  365. }
  366. customerCommon.setCustomerId(customerInfo.getCustomerId()); //设置客诉id
  367. customerCommon.setRelationState(1); //状态 默认使用中 //新
  368. if(isNeedSelectOrder == 1){
  369. customerCommon.setOrderId(salesOrder.getSalesId()); //订单id //新
  370. }
  371. customerCommon.setTransactionNumber(customerInfo.getTransactionNumber()); //外部交易号
  372. customerCommon.setIsNeedSelectOrder(isNeedSelectOrder); //是否需要添加订单
  373. customerCommon.setRelationBackName(customerCommon.getRelationSendName()); //姓名//新
  374. customerCommon.setRelationBackTel(customerCommon.getRelationSendTel()); //电话号码//新
  375. /* 初始化产品类型,名称,配件名称 */
  376. customerService.setName(customerCommon);
  377. logger.info("-----------修改客诉-初始化产品,配件信息--------------");
  378. ComplaintDetectInfo complaintDetectInfo = new ComplaintDetectInfo(); //品质检测
  379. ComplaintSignclosedInfo complaintSignclosedInfo = new ComplaintSignclosedInfo(); //客诉-签收表
  380. Map<String,Object> map;
  381. boolean isReturn = false;
  382. switch (customerInfo.getCustomerIsSolve()) { //处理结果: 1:已解决 2:未解决 3:换新 4:维修 5:补发 6:退货 7:无理由退货
  383. case 3: //换新
  384. // customerService.chargebackEfastOrder(customerCommon,salesOrder,2); //原订单生成退单
  385. // map = customerService.sendEfastOrder(customerCommon,salesOrder); //换新需要向Efast推送一条换新发货的订单
  386. // if(map.get("status") == 1){
  387. // customerCommon.setRelationBackEfastOrderId(String.valueOf(map.get("EfastOrderId"))); //存放Efast订单编号
  388. // complaintSignclosedInfo.setNewEfastId(String.valueOf(map.get("EfastOrderId"))); //仓储签收表添加 发货的Efast订单id
  389. // }else{
  390. // throw new RuntimeException("换新创建Efast订单失败");
  391. // }
  392. // complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId()); //原有订单的Efast的订单编号
  393. // customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
  394. // complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
  395. // customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon); //创建品检
  396. break;
  397. case 4: //维修
  398. // customerService.chargebackEfastOrder(customerCommon,salesOrder,2); //原订单生成退单
  399. // map = customerService.sendEfastOrder(customerCommon,salesOrder); //维修需要向Efast推送一条维修发货的订单
  400. // if(map.get("status") == 1){
  401. // customerCommon.setRelationBackEfastOrderId(String.valueOf(map.get("EfastOrderId"))); //存放Efast订单编号
  402. // complaintSignclosedInfo.setNewEfastId(String.valueOf(map.get("EfastOrderId"))); //仓储签收表添加 发货的Efast订单id
  403. // }else{
  404. // throw new RuntimeException("维修创建Efast订单失败");
  405. // }
  406. // complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId()); //原有订单的Efast的订单编号
  407. // customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
  408. // complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
  409. // customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon); //创建品检
  410. break;
  411. case 5: //补发 不用创建仓储签收任务
  412. // map = customerService.sendEfastOrder(customerCommon,salesOrder); //补发需要向Efast推送一条发货的订单
  413. // if(map.get("status") == 1){
  414. // customerCommon.setRelationBackEfastOrderId(String.valueOf(map.get("EfastOrderId"))); //存放Efast订单编号
  415. // complaintSignclosedInfo.setNewEfastId(String.valueOf(map.get("EfastOrderId"))); //仓储签收表添加 发货的Efast订单id
  416. // }else{
  417. // throw new RuntimeException("补发创建Efast订单失败");
  418. // }
  419. break;
  420. case 6: //退货
  421. // customerService.chargebackEfastOrder(customerCommon,salesOrder,3); //原订单生成退单
  422. // complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId()); //原有订单的Efast的订单编号
  423. // customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
  424. // complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
  425. // customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon); //创建品检
  426. break;
  427. case 7: //无理由退货
  428. // customerService.chargebackEfastOrder(customerCommon,salesOrder,3); //原订单生成退单
  429. // complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId()); //原有订单的Efast的订单编号
  430. // customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
  431. // complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
  432. // customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon); //创建品检
  433. break;
  434. }
  435. logger.info("-----------修改客诉-创建仓储/品检成功--------------");
  436. customerCommon.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储id
  437. Object object = CustomerCommonUtil.getRelation(customerInfo.getCustomerIsSolve(), customerCommon);
  438. Integer relationId = 0;
  439. Integer orderStatus = 1;
  440. switch (customerInfo.getCustomerIsSolve()) { //处理结果: 1:已解决 2:未解决 3:换新 4:维修 5:补发 6:退货 7:无理由退货
  441. case 3: //换新
  442. Renewed renewed = (Renewed) object;
  443. flag = renewedMapper.insert(renewed);
  444. relationId = renewed.getRenewedId();
  445. orderStatus = 2;
  446. break;
  447. case 4: //维修
  448. Repair repair = (Repair) object;
  449. flag = repairMapper.insert(repair);
  450. relationId = repair.getRepairId();
  451. orderStatus = 4;
  452. break;
  453. case 5: //补发
  454. Reissue reissue = (Reissue) object;
  455. flag = reissueMapper.insert(reissue);
  456. relationId = reissue.getReissueId();
  457. orderStatus = 5;
  458. break;
  459. case 6: //退货
  460. BackGoods backGoods = (BackGoods) object;
  461. flag = backGoodsMapper.insert(backGoods);
  462. relationId = backGoods.getBackGoodsId();
  463. orderStatus = 3;
  464. break;
  465. case 7: //无理由退货
  466. NoreasonBack noreasonBack = (NoreasonBack) object;
  467. flag = noreasonBackMapper.insert(noreasonBack);
  468. relationId = noreasonBack.getNoreasonBackId();
  469. orderStatus = 3;
  470. break;
  471. }
  472. if (flag < 1) {
  473. throw new RuntimeException("添加客诉处理结果失败");
  474. }
  475. logger.info("-----------修改客诉-添加换新/维修/补发/退货/无理由退货信息成功--------------");
  476. /*添加客诉-添加处理与订单关联表*/
  477. List<RelationOrder> relationOrderList = new ArrayList<>();
  478. for (SalesOrder sor : orderList) {
  479. RelationOrder ro = new RelationOrder();
  480. ro.setRelationType(customerInfo.getCustomerIsSolve());
  481. ro.setRelationId(relationId);
  482. ro.setSalesId(sor.getSalesId());
  483. relationOrderList.add(ro);
  484. }
  485. flag = relationOrderService.saveList(relationOrderList);
  486. if(flag < 1){
  487. throw new RuntimeException("添加客诉,关联订单失败");
  488. }
  489. for (SalesOrder sor : orderList) {
  490. SalesOrder newOrder = new SalesOrder(); //salesOrderStatus
  491. newOrder.setSalesId(sor.getSalesId());
  492. newOrder.setSalesOrderStatus(orderStatus);
  493. flag = salesOrderMapper.updateSalesOrder(newOrder);
  494. if(flag < 1){
  495. throw new RuntimeException("添加客诉,修改订单状态失败");
  496. }
  497. }
  498. logger.info("-----------添加客诉-添加处理与订单关联表--------------");
  499. customerCommon.setRelationId(relationId);
  500. if(customerCommon.getIsNeedSelectOrder() == 1){
  501. CustomerCommonUtil.setProduceOrFitting(customerInfo.getCustomerIsSolve(),customerCommon);
  502. if(customerCommon.getClosedFittings()!=null && customerCommon.getClosedFittings().size() > 0){
  503. closedFittingMapper.insert(customerCommon.getClosedFittings());
  504. }
  505. if(customerCommon.getClosedProdcues() != null && customerCommon.getClosedProdcues().size() > 0){
  506. closedProdcueMapper.insert(customerCommon.getClosedProdcues());
  507. }
  508. if(customerCommon.getSendProdcues() != null && customerCommon.getSendProdcues().size() > 0){
  509. sendProdcueMapper.insert(customerCommon.getSendProdcues());
  510. }
  511. if(customerCommon.getSendFittings() != null && customerCommon.getSendFittings().size() > 0){
  512. sendFittingMapper.insert(customerCommon.getSendFittings());
  513. }
  514. logger.info("-----------添加客诉-寄回寄出产品配件成功--------------");
  515. }
  516. }
  517. return flag;
  518. }
  519. /**
  520. * 删除旧的售后数据
  521. * @param customer
  522. */
  523. @Override
  524. @Transactional
  525. public void deleteCustomerAfterSales(CustomerInfo customer){
  526. CustomerInfo customerInfo = customerInfoMapper.getCustomerInfo(customer.getCustomerId());
  527. //删除回访信息
  528. if ("2".equals(customerInfo.getCustomerIsVisit())){
  529. visitMapper.deleteByPrimaryKey(customer.getCustomerId());
  530. }
  531. //查询旧客诉类型,判断是否修改了客诉类型
  532. Integer oldIsSolve = customerInfo.getCustomerIsSolve();// //处理结果: 1:已解决 2:未解决 3:换新 4:维修 5:补发 6:退货 7:无理由退货
  533. ClosedProdcue closedrecord = new ClosedProdcue();
  534. ClosedFitting closedRecord = new ClosedFitting();
  535. SendProdcue sendProdcue = new SendProdcue();
  536. SendFitting sendFitting = new SendFitting();
  537. CustomerCommon customerCommon = customerInfo.getCustomerCommon();
  538. SalesOrder salesOrder = new SalesOrder();
  539. if(oldIsSolve > 2){
  540. customerCommon = customerInfo.getCustomerCommon();
  541. customerCommon.setCustomerId(customerInfo.getCustomerId()); //设置客诉id
  542. customerCommon.setRelationBackStatus(1); //寄回状态 1:未寄回
  543. customerCommon.setRelationSendStatus(1); //寄送状态 1:未寄送
  544. customerCommon.setRelationState(1); //状态 默认使用中
  545. customerCommon.setTransactionNumber(customerInfo.getTransactionNumber()); //外部交易号
  546. customerCommon.setRelationIsTransfer(0); //是否已转账邮费 0:不需要
  547. customerCommon.setRelationBackPostage(0); //邮费默认为0
  548. customerCommon.setRelationBackName(customerCommon.getRelationSendName()); //姓名
  549. customerCommon.setRelationBackTel(customerCommon.getRelationSendTel()); //电话号码
  550. /* 初始化产品类型,名称,配件名称 */
  551. /*customerService.setName(customerCommon);*/
  552. }
  553. Integer relationId = 0;
  554. switch (oldIsSolve){
  555. case 3:
  556. //删除换新数据
  557. Renewed renewed = new Renewed();
  558. renewed.setCustomerId(customer.getCustomerId());
  559. //查询换新数据id
  560. renewed = renewedMapper.getRenewedInfo(renewed);
  561. relationId = renewed.getRenewedId();
  562. if(customer.getCustomerIsSolve() < 3){ //从维修换货补发修改为已解决或未解决时,原订单生成退单
  563. //salesOrder = salesOrderMapper.getSalesOrderById(renewed.getOrderId()); //salesOrder.getSalesId() 全场最佳,就你戏多
  564. //customerCommon.setOrderId(renewed.getOrderId()); //订单id
  565. SendProdcue record = new SendProdcue();
  566. record.setRelationId(renewed.getRenewedId());
  567. customerCommon.setSendProdcues(sendProdcueMapper.listSendProdcue(record));
  568. customerService.setName(customerCommon);
  569. //customerService.chargebackEfastOrder(customerCommon,salesOrder,8,2);
  570. }
  571. //删除寄出寄回产品
  572. closedRecord.setRelationId(renewed.getRenewedId());
  573. closedFittingMapper.deleteByPrimaryKey(closedRecord);
  574. closedrecord.setRelationId(renewed.getRenewedId());
  575. closedProdcueMapper.deleteByPrimaryKey(closedrecord);
  576. sendProdcue.setRelationId(renewed.getRenewedId());
  577. sendProdcueMapper.deleteByPrimaryKey(sendProdcue);
  578. sendFitting.setRelationId(renewed.getRenewedId());
  579. sendFittingMapper.deleteByPrimaryKey(sendFitting);
  580. renewedMapper.deleteByPrimaryKey(renewed);
  581. break;
  582. case 4:
  583. //删除维修数据
  584. Repair repair = new Repair();
  585. repair.setCustomerId(customer.getCustomerId());
  586. //查询维修数据id
  587. repair = repairMapper.getRepairInfo(repair);
  588. relationId = repair.getRepairId();
  589. if(customer.getCustomerIsSolve() < 3) { //从维修换货补发修改为已解决或未解决时,原订单生成退单
  590. //salesOrder = salesOrderMapper.getSalesOrderById(repair.getOrderId());
  591. //customerCommon.setOrderId(repair.getOrderId()); //订单id
  592. SendProdcue record = new SendProdcue();
  593. record.setRelationId(repair.getRepairId());
  594. customerCommon.setSendProdcues(sendProdcueMapper.listSendProdcue(record));
  595. customerService.setName(customerCommon);
  596. //customerService.chargebackEfastOrder(customerCommon, salesOrder, 8,2); //从维修换货补发修改为已解决或未解决时,原订单生成退单
  597. }
  598. //删除寄出寄回产品
  599. closedRecord.setRelationId(repair.getRepairId());
  600. closedFittingMapper.deleteByPrimaryKey(closedRecord);
  601. closedrecord.setRelationId(repair.getRepairId());
  602. closedProdcueMapper.deleteByPrimaryKey(closedrecord);
  603. sendProdcue.setRelationId(repair.getRepairId());
  604. sendProdcueMapper.deleteByPrimaryKey(sendProdcue);
  605. sendFitting.setRelationId(repair.getRepairId());
  606. sendFittingMapper.deleteByPrimaryKey(sendFitting);
  607. repairMapper.deleteByPrimaryKey(repair);
  608. break;
  609. case 5:
  610. //删除补发数据
  611. Reissue reissue = new Reissue();
  612. reissue.setCustomerId(customer.getCustomerId());
  613. //查询补发数据id
  614. reissue = reissueMapper.getReissue(reissue);
  615. relationId = reissue.getReissueId();
  616. if(customer.getCustomerIsSolve() < 3) { //从维修换货补发修改为已解决或未解决时,原订单生成退单
  617. //salesOrder = salesOrderMapper.getSalesOrderById(reissue.getOrderId());
  618. //customerCommon.setOrderId(reissue.getOrderId()); //订单id
  619. SendProdcue record = new SendProdcue();
  620. record.setRelationId(reissue.getReissueId());
  621. customerCommon.setSendProdcues(sendProdcueMapper.listSendProdcue(record));
  622. customerService.setName(customerCommon);
  623. //customerService.chargebackEfastOrder(customerCommon, salesOrder, 8,2); //从维修换货补发修改为已解决或未解决时,原订单生成退单
  624. }
  625. //删除寄出产品
  626. sendProdcue.setRelationId(reissue.getReissueId());
  627. sendProdcueMapper.deleteByPrimaryKey(sendProdcue);
  628. sendFitting.setRelationId(reissue.getReissueId());
  629. sendFittingMapper.deleteByPrimaryKey(sendFitting);
  630. reissueMapper.deleteByPrimaryKey(reissue);
  631. break;
  632. case 6:
  633. //删除退货数据
  634. BackGoods backGoods = new BackGoods();
  635. backGoods.setCustomerId(customer.getCustomerId());
  636. //查询维修数据id
  637. backGoods = backGoodsMapper.getBackGoods(backGoods);
  638. relationId = backGoods.getBackGoodsId();
  639. //删除寄出寄回产品
  640. closedRecord.setRelationId(backGoods.getBackGoodsId());
  641. closedFittingMapper.deleteByPrimaryKey(closedRecord);
  642. closedrecord.setRelationId(backGoods.getBackGoodsId());
  643. closedProdcueMapper.deleteByPrimaryKey(closedrecord);
  644. backGoodsMapper.deleteByPrimaryKey(backGoods);
  645. break;
  646. case 7:
  647. //删除无理由退货数据
  648. NoreasonBack noreasonBack = new NoreasonBack();
  649. noreasonBack.setCustomerId(customer.getCustomerId());
  650. //查询维修数据id
  651. noreasonBack = noreasonBackMapper.getNoreasonBack(noreasonBack);
  652. relationId = noreasonBack.getNoreasonBackId();
  653. //删除寄出寄回产品
  654. closedRecord.setRelationId(noreasonBack.getNoreasonBackId());
  655. closedFittingMapper.deleteByPrimaryKey(closedRecord);
  656. closedrecord.setRelationId(noreasonBack.getNoreasonBackId());
  657. closedProdcueMapper.deleteByPrimaryKey(closedrecord);
  658. noreasonBackMapper.deleteByPrimaryKey(noreasonBack);
  659. break;
  660. }
  661. /*恢复订单状态*/
  662. RelationOrder relationOrder = new RelationOrder();
  663. relationOrder.setRelationType(oldIsSolve);
  664. relationOrder.setRelationId(relationId);
  665. List<RelationOrder> relationOrderList = relationOrderService.getRelationOrderList(relationOrder);
  666. for (int k=0; k<relationOrderList.size();k++){
  667. SalesOrder newOrder = new SalesOrder(); //salesOrderStatus
  668. newOrder.setSalesId(relationOrderList.get(k).getSalesId());
  669. newOrder.setSalesOrderStatus(1); //恢复订单到之前的状态
  670. Integer flag = salesOrderMapper.updateSalesOrder(newOrder);
  671. }
  672. /* 删除掉订单与处理的关联表 */
  673. relationOrderService.deleteByRelationId(relationId);
  674. }
  675. @Override
  676. public Integer selectNotSolvedCustomer(CustomerInfo customerInfo) {
  677. List<CustomerInfo> listCustomer = customerInfoMapper.listCustomer(customerInfo);
  678. return listCustomer.size();
  679. }
  680. @Override
  681. public List<CustomerInfo> listOnCustomer(CustomerInfo customerInfo) {
  682. List<CustomerInfo> customerList = customerInfoMapper.listOnCustomer(customerInfo);
  683. //查询售后维修集合
  684. Repair repairInfo = new Repair();
  685. repairInfo.setRepairState(1);
  686. List<Repair> repairList = repairMapper.listRepair(repairInfo);
  687. //查询售后退货集合
  688. BackGoods backGoodsInfo = new BackGoods();
  689. backGoodsInfo.setBackGoodsState(1);
  690. List<BackGoods> backGoodsList = backGoodsMapper.listBackGoods(backGoodsInfo);
  691. //查询售后无理由退货集合
  692. NoreasonBack noreasonBackInfo = new NoreasonBack();
  693. noreasonBackInfo.setNoreasonBackState(1);
  694. List<NoreasonBack> noreasonBackList = noreasonBackMapper.listNoreasonBack(noreasonBackInfo);
  695. //查询售后补发集合
  696. Reissue reissueInfo = new Reissue();
  697. reissueInfo.setReissueState(1);
  698. List<Reissue> reissueList = reissueMapper.listReissue(reissueInfo);
  699. //查询售后换新集合
  700. Renewed renewedInfo = new Renewed();
  701. renewedInfo.setRenewedState(1);
  702. List<Renewed> renewedList = renewedMapper.listRenewed(renewedInfo);
  703. if (customerList != null && customerList.size() > 0) {
  704. for (CustomerInfo customer : customerList) {
  705. switch (customer.getCustomerIsSolve().intValue()) {
  706. case 3: //换新
  707. for (Renewed renewed : renewedList) {
  708. if (renewed.getCustomerId().intValue() == customer.getCustomerId()) {
  709. customer.setBackStatus(renewed.getRenewedBackStatus());
  710. customer.setSendStatus(renewed.getRenewedSendStatus());
  711. customer.setSalesTime(renewed.getSalesPayTime());
  712. customer.setSendLogisticsNo(renewed.getRenewedSendLogisticsNo());
  713. customer.setSendLogisticsCompany(renewed.getRenewedSendLogisticsCompany());
  714. customer.setBackLogisticsNo(renewed.getRenewedBackLogisticsNo());
  715. customer.setBackLogisticsCompany(renewed.getRenewedBackLogisticsCompany());
  716. break;
  717. }
  718. }
  719. break;
  720. case 4: //维修
  721. for (Repair repair : repairList) {
  722. if (repair.getCustomerId().intValue() == customer.getCustomerId()) {
  723. customer.setBackStatus(repair.getRepairBackStatus());
  724. customer.setSendStatus(repair.getRepairSendStatus());
  725. customer.setSalesTime(repair.getSalesPayTime());
  726. customer.setSendLogisticsNo(repair.getRepairSendLogisticsNo());
  727. customer.setSendLogisticsCompany(repair.getRepairSendLogisticsCompany());
  728. customer.setBackLogisticsNo(repair.getRepairBackLogisticsNo());
  729. customer.setBackLogisticsCompany(repair.getRepairBackLogisticsCompany());
  730. break;
  731. }
  732. }
  733. break;
  734. case 5: //补发
  735. for (Reissue reissue : reissueList) {
  736. if (reissue.getCustomerId().intValue() == customer.getCustomerId()) {
  737. customer.setSendStatus(reissue.getReissueSendStatus());
  738. customer.setSalesTime(reissue.getSalesPayTime());
  739. customer.setBackLogisticsNo(reissue.getReissueSendLogisticsNo());
  740. customer.setBackLogisticsCompany(reissue.getReissueSendLogisticsCompany());
  741. break;
  742. }
  743. }
  744. break;
  745. case 6: //退货
  746. for (BackGoods backGoods : backGoodsList) {
  747. if (backGoods.getCustomerId().intValue() == customer.getCustomerId()) {
  748. customer.setBackStatus(backGoods.getBackGoodsBackStatus());
  749. customer.setSalesTime(backGoods.getSalesPayTime());
  750. customer.setSendLogisticsNo(backGoods.getBackGoodsBackLogisticsNo());
  751. break;
  752. }
  753. }
  754. break;
  755. case 7: //无理由退货
  756. for (NoreasonBack noreasonBack : noreasonBackList) {
  757. if (noreasonBack.getCustomerId().intValue() == customer.getCustomerId()) {
  758. customer.setBackStatus(noreasonBack.getNoreasonBackBackStatus());
  759. customer.setSalesTime(noreasonBack.getSalesPayTime());
  760. customer.setSendLogisticsNo(noreasonBack.getNoreasonBackBackLogisticsNo());
  761. customer.setSendLogisticsCompany(noreasonBack.getNoreasonBackBackLogisticsCompany());
  762. break;
  763. }
  764. }
  765. break;
  766. }
  767. }
  768. }
  769. return customerList;
  770. }
  771. /**
  772. * 产品配件初始化
  773. * @param cc
  774. */
  775. @Transactional
  776. public void setName(CustomerCommon cc){
  777. for (int i=0;i<cc.getSendProdcues().size();i++) {
  778. Product product = productMapper.getProduce(cc.getSendProdcues().get(i).getProductId());
  779. cc.getSendProdcues().get(i).setSendProduceName(product.getProductName());
  780. cc.getSendProdcues().get(i).setProductType(product.getProductType());
  781. cc.getSendProdcues().get(i).setProductNumber(product.getProductNumber());
  782. ProductColor productColor = productMapper.getProduceColor(cc.getSendProdcues().get(i).getColorId());
  783. cc.getSendProdcues().get(i).setProductColor(productColor);
  784. }
  785. for (int i=0;i<cc.getSendFittings().size();i++) {
  786. FittingsInfo fittingsInfo = fittingsInfoMapper.getFittingsById( cc.getSendFittings().get(i).getFittingsId());
  787. cc.getSendFittings().get(i).setFittingsId(fittingsInfo.getFittingsId());
  788. cc.getSendFittings().get(i).setSendFittingsName(fittingsInfo.getFittingsName());
  789. cc.getSendFittings().get(i).setSendFittingsBar(fittingsInfo.getFittingsName());
  790. }
  791. for (int i=0;i<cc.getClosedProdcues().size();i++) {
  792. Product product = productMapper.getProduce(cc.getClosedProdcues().get(i).getProductId());
  793. cc.getClosedProdcues().get(i).setClosedProductName(product.getProductName());
  794. cc.getClosedProdcues().get(i).setProductType(product.getProductType());
  795. cc.getClosedProdcues().get(i).setProductNumber(product.getProductNumber());
  796. ProductColor productColor = productMapper.getProduceColor(cc.getClosedProdcues().get(i).getColorId());
  797. cc.getClosedProdcues().get(i).setProductColor(productColor);
  798. }
  799. for (int i=0;i<cc.getClosedFittings().size();i++) {
  800. FittingsInfo fittingsInfo = fittingsInfoMapper.getFittingsById(cc.getClosedFittings().get(i).getFittingsId());
  801. cc.getClosedFittings().get(i).setFittingsId(fittingsInfo.getFittingsId());
  802. cc.getClosedFittings().get(i).setClosedFittingsName(fittingsInfo.getFittingsName());
  803. cc.getClosedFittings().get(i).setClosedFittingsBar(fittingsInfo.getFittingsName());
  804. }
  805. }
  806. /**
  807. * 添加品检
  808. * @param complaintDetectInfo
  809. * @param customerCommon
  810. * @return
  811. */
  812. @Transactional
  813. public void saveComplaintDetectInfo(ComplaintDetectInfo complaintDetectInfo,CustomerCommon customerCommon){
  814. if(customerCommon.getIsNeedSelectOrder() == 2){
  815. return;
  816. }
  817. Integer flag = 0;
  818. List<ComplaintDetectInfo> complaintDetectInfoList = new ArrayList<ComplaintDetectInfo>();
  819. for(int i=0 ;i< customerCommon.getClosedProdcues().size();i++){
  820. ClosedProdcue closedProdcue = customerCommon.getClosedProdcues().get(i);
  821. for(int j=0; j<closedProdcue.getClosedProdcueNumber();j++){
  822. ComplaintDetectInfo cd = new ComplaintDetectInfo();
  823. cd.setSignclosedId(complaintDetectInfo.getSignclosedId());
  824. cd.setCustomerId(customerCommon.getCustomerId()); //添加客诉
  825. cd.setDetectState(1); //状态 1待仓库转入
  826. cd.setDetectRevolutionProduced(1); //是否转入生产部门 1待转入
  827. cd.setDetectIsMaintenance(1); //是否需要维修,1 需要 2不需要
  828. cd.setProductId(closedProdcue.getProductId());
  829. cd.setDetectProductType(closedProdcue.getProductType());
  830. if(closedProdcue.getProductNumber() == null || "".equals(closedProdcue.getProductNumber())){
  831. cd.setDetectProductNumber("0");
  832. }else{
  833. cd.setDetectProductNumber(closedProdcue.getProductNumber());
  834. }
  835. complaintDetectInfoList.add(cd);
  836. }
  837. }
  838. if(complaintDetectInfoList.size() > 0){
  839. flag = complaintDetectInfoMapper.insertList(complaintDetectInfoList);
  840. }
  841. if(flag < 1){
  842. throw new RuntimeException("添加品检失败");
  843. }
  844. }
  845. /**
  846. * 添加仓储
  847. * @param customerCommon
  848. * @return
  849. */
  850. @Transactional
  851. public void saveComplaintSignclosedInfo(ComplaintSignclosedInfo complaintSignclosedInfo,CustomerCommon customerCommon){
  852. if(customerCommon.getIsNeedSelectOrder() == 2){
  853. return;
  854. }
  855. Integer flag;
  856. complaintSignclosedInfo.setSignclosedType(1); //客诉寄回
  857. complaintSignclosedInfo.setSignclosedIsQuality(1); //是否平品检 1:需要品检
  858. complaintSignclosedInfo.setSignclosedIsInto(2); //是否已转入品检 2:未转入品检
  859. complaintSignclosedInfo.setSignclosedState(2); //处理状态 2:未签收
  860. complaintSignclosedInfo.setSignclosedObjectsState(3); //物件状态 3:暂未签收
  861. complaintSignclosedInfo.setSignclosedCustomerId(customerCommon.getCustomerId()); //客诉id
  862. complaintSignclosedInfo.setSignclosedIsFittings(2);
  863. complaintSignclosedInfo.setSignclosedSendName(customerCommon.getRelationBackName()); //签收姓名
  864. complaintSignclosedInfo.setSignclosedSendTel(customerCommon.getRelationBackTel()); //签收手机
  865. complaintSignclosedInfo.setSignclosedAddrProvinces(customerCommon.getProvinceNumber()); //省
  866. complaintSignclosedInfo.setSignclosedAddrCity(customerCommon.getCityNumber()); //市
  867. flag = complaintSignclosedInfoMapper.insert(complaintSignclosedInfo);
  868. if(flag < 1){
  869. throw new RuntimeException("添加签收失败");
  870. }
  871. //添加代签收表
  872. List<AwaitingSignclosedProductInfo> awaitingSignclosedProductInfoArrayList = new ArrayList<>();
  873. for(int i=0 ;i< customerCommon.getClosedProdcues().size();i++){
  874. ClosedProdcue closedProdcue = customerCommon.getClosedProdcues().get(i);
  875. for(int k=0;k<closedProdcue.getClosedProdcueNumber();k++){
  876. AwaitingSignclosedProductInfo awaitingSignclosedProductInfo = new AwaitingSignclosedProductInfo();
  877. awaitingSignclosedProductInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //仓储id
  878. awaitingSignclosedProductInfo.setSignclosedProductType(1); //类型为产品
  879. awaitingSignclosedProductInfo.setProductNum(1);
  880. awaitingSignclosedProductInfo.setSignclosedProductId(closedProdcue.getProductId()); //产品id
  881. awaitingSignclosedProductInfo.setSignclosedProductColor(closedProdcue.getColorId()); //颜色id
  882. awaitingSignclosedProductInfo.setProductName(closedProdcue.getClosedProductName()); //产品名称
  883. awaitingSignclosedProductInfoArrayList.add(awaitingSignclosedProductInfo);
  884. }
  885. }
  886. for(int i=0 ;i< customerCommon.getClosedFittings().size();i++){
  887. ClosedFitting closedFitting = customerCommon.getClosedFittings().get(i);
  888. for(int k=0;k<closedFitting.getClosedFittingNumber();k++){
  889. AwaitingSignclosedProductInfo awaitingSignclosedProductInfo = new AwaitingSignclosedProductInfo();
  890. awaitingSignclosedProductInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //仓储id
  891. awaitingSignclosedProductInfo.setSignclosedProductType(2); //类型为配件
  892. awaitingSignclosedProductInfo.setProductNum(1);
  893. awaitingSignclosedProductInfo.setSignclosedProductId(closedFitting.getFittingsId()); //配件id
  894. awaitingSignclosedProductInfo.setSignclosedProductColor(null);
  895. awaitingSignclosedProductInfo.setProductName(closedFitting.getClosedFittingsName()); //配件名称
  896. awaitingSignclosedProductInfoArrayList.add(awaitingSignclosedProductInfo);
  897. }
  898. }
  899. flag = complaintSignclosedProductInfoMapper.insertList(awaitingSignclosedProductInfoArrayList);
  900. if(flag < 1){
  901. throw new RuntimeException("添加签收产品失败");
  902. }
  903. }
  904. /**
  905. * 向Efast推送订单 仅换新,维修 ,补发
  906. * @return
  907. */
  908. @Transactional
  909. public Map<String,Object> sendEfastOrder(CustomerCommon customerCommon,SalesOrder salesOrder){
  910. Map<String,Object> map = new HashMap<String,Object>();
  911. List<EfastOrder> orderList = new ArrayList<EfastOrder>();
  912. List<OrderItem> itemList = new ArrayList<OrderItem>();
  913. Integer num = 0; //产品数量
  914. Integer amout = 0; //商品总价
  915. String orderProductBarCode = ""; //产品sku
  916. String productName = ""; //产品名称
  917. for(int i=0;i<customerCommon.getSendProdcues().size();i++){
  918. SendProdcue sendProdcue = customerCommon.getSendProdcues().get(i);
  919. OrderItem orderItem = new OrderItem();
  920. orderItem.setItemProductName(sendProdcue.getSendProduceName());
  921. orderItem.setItemProductNum(sendProdcue.getSendProdcueNumber());
  922. orderItem.setItemProductPrice(sendProdcue.getProductColor().getColorPrice());
  923. orderItem.setItemColorBar(sendProdcue.getProductColor().getColorBar());
  924. itemList.add(orderItem);
  925. orderProductBarCode = sendProdcue.getProductColor().getColorBar();
  926. productName = sendProdcue.getSendProduceName();
  927. num += sendProdcue.getSendProdcueNumber();
  928. amout += sendProdcue.getProductColor().getColorPrice();
  929. }
  930. EfastOrder efastOrder = new EfastOrder();
  931. efastOrder.setOrderAddressName(customerCommon.getRelationSendName());//收货人姓名
  932. efastOrder.setOrderAddressTel(customerCommon.getRelationSendTel());//收货人电话
  933. efastOrder.setOrderOpenId("1");//身份证
  934. String[] address = customerCommon.getRelationSendMergeAddress().split("-");
  935. efastOrder.setOrderProvince(address[0]);
  936. efastOrder.setOrderCity(address[1]);
  937. efastOrder.setOrderArea(address[2]);
  938. efastOrder.setOrderAddress(customerCommon.getRelationSendAddress());
  939. efastOrder.setOrderStatus(2);
  940. efastOrder.setOrderStoreId(salesOrder.getStoreEfast()); //设置efast店铺id
  941. efastOrder.setOrderNum(num); //产品数量
  942. efastOrder.setOrderAmount(amout); //商品总价
  943. efastOrder.setOrderPayMoney(amout); //已付款
  944. //支付方式
  945. switch (salesOrder.getSalesPayType()){
  946. case 1: //微信支付
  947. efastOrder.setOrderPayType(1);
  948. break;
  949. case 2: //现金支付
  950. efastOrder.setOrderPayType(2);
  951. break;
  952. case 3:
  953. break;
  954. case 4: //刷卡支付
  955. efastOrder.setOrderPayType(4);
  956. break;
  957. case 5: //支付宝支付
  958. efastOrder.setOrderPayType(5);
  959. break;
  960. default:
  961. efastOrder.setOrderPayType(2); //默认现金
  962. break;
  963. }
  964. efastOrder.setOrderProductBarCode(orderProductBarCode); //产品sku
  965. efastOrder.setOrderProductName(productName); //产品名称
  966. efastOrder.setOrderId(customerCommon.getTransactionNumber()); //外部交易号
  967. efastOrder.setOid(1);
  968. orderList.add(efastOrder);
  969. Integer status = 1;
  970. Map<String,Object> orderMap = new HashMap<String,Object>();
  971. try {
  972. orderMap = efastOrderService.sendOrder(orderList,itemList);
  973. } catch (Exception e) {
  974. status = 0;
  975. }
  976. List<EfastOrder> oList = (List<EfastOrder>) orderMap.get("efastOrderList");
  977. if(oList == null || oList.size() < 1){
  978. status = 0;
  979. }
  980. map.put("status",status);
  981. if(oList != null && oList.size() > 0){
  982. map.put("EfastOrderId",oList.get(0).getOrderId());
  983. logger.info("换新,维修 ,补发向Efast 推送订单成功,订单号为:" + oList.get(0).getOrderId());
  984. }else{
  985. logger.info("换新,维修 ,补发向Efast 推送订单,推送失败,交易号为:" + customerCommon.getTransactionNumber());
  986. }
  987. return map;
  988. }
  989. @Override
  990. public Integer getQuestionNumber(CustomerInfo customerInfo) {
  991. return customerInfoMapper.getQuestionNumber(customerInfo);
  992. }
  993. /**
  994. * 添加订单
  995. * @return
  996. */
  997. @Transactional
  998. public Integer addOrder(SalesOrder salesOrder) {
  999. //添加订单数据
  1000. int orderNum = salesOrderMapper.addSalesOrder(salesOrder);
  1001. if (orderNum <= 0) {
  1002. throw new RuntimeException("系统添加订单失败");
  1003. }
  1004. for (SalesOrderItem item : salesOrder.getSalesOrderItemList()) {
  1005. item.setItemOrderId(salesOrder.getSalesId());
  1006. }
  1007. //批量添加订单项数据
  1008. int itemNum = salesOrderMapper.addOrderItemList(salesOrder.getSalesOrderItemList());
  1009. if (itemNum <= 0) {
  1010. throw new RuntimeException("系统添加订单项失败");
  1011. }
  1012. return orderNum;
  1013. }
  1014. /**
  1015. * 向Efast推送订单--添加订单
  1016. * @return
  1017. */
  1018. @Transactional
  1019. public Map<String,Object> sendEfastOrder(SalesOrder salesOrder){
  1020. //添加订单数据
  1021. int orderNum = salesOrderMapper.addSalesOrder(salesOrder);
  1022. if (orderNum <= 0) {
  1023. throw new RuntimeException("系统添加订单失败");
  1024. }
  1025. for (SalesOrderItem item : salesOrder.getSalesOrderItemList()) {
  1026. item.setItemOrderId(salesOrder.getSalesId());
  1027. }
  1028. //批量添加订单项数据
  1029. int itemNum = salesOrderMapper.addOrderItemList(salesOrder.getSalesOrderItemList());
  1030. if (itemNum <= 0) {
  1031. throw new RuntimeException("系统添加订单项失败");
  1032. }
  1033. Map<String,Object> map = new HashMap<String,Object>();
  1034. List<EfastOrder> orderList = new ArrayList<EfastOrder>();
  1035. List<OrderItem> itemList = new ArrayList<OrderItem>();
  1036. Integer num = 0; //产品数量
  1037. Integer amout = 0; //商品总价
  1038. String orderProductBarCode = ""; //产品sku
  1039. String productName = ""; //产品名称
  1040. for(int i=0;i<salesOrder.getSalesOrderItemList().size();i++){
  1041. SalesOrderItem salesOrderItem = salesOrder.getSalesOrderItemList().get(i);
  1042. OrderItem orderItem = new OrderItem();
  1043. orderItem.setItemProductName(salesOrderItem.getItemProductName());
  1044. orderItem.setItemProductNum(salesOrderItem.getItemNum());
  1045. orderItem.setItemProductPrice(salesOrderItem.getItemProductPrice());
  1046. orderItem.setItemColorBar(salesOrderItem.getItemColorBar());
  1047. itemList.add(orderItem);
  1048. orderProductBarCode = salesOrderItem.getItemColorBar();
  1049. productName = salesOrderItem.getItemProductName();
  1050. num += salesOrderItem.getItemNum();
  1051. amout += salesOrderItem.getItemProductPrice();
  1052. }
  1053. EfastOrder efastOrder = new EfastOrder();
  1054. efastOrder.setOrderAddressName(salesOrder.getSalesAddressName());//收货人姓名
  1055. efastOrder.setOrderAddressTel(salesOrder.getSalesAddressTel());//收货人电话
  1056. efastOrder.setOrderOpenId("1");//身份证
  1057. efastOrder.setOrderRemark(salesOrder.getOrderNoteRemark()); //订单备注
  1058. efastOrder.setOrderBuyerRemark(salesOrder.getSalesUserRemark()); //买家备注
  1059. efastOrder.setOrderSellerRemark(salesOrder.getSalesAdminRemark()); //卖家备注
  1060. String[] address = salesOrder.getSalesAddressInfo().split("-");
  1061. efastOrder.setOrderProvince(address[0]);
  1062. efastOrder.setOrderCity(address[1]);
  1063. efastOrder.setOrderArea(address[2]);
  1064. String myAddress = "";
  1065. if(address.length > 4){
  1066. myAddress = address[3] + address[4];
  1067. }else{
  1068. myAddress = address[3];
  1069. }
  1070. efastOrder.setOrderAddress(myAddress);
  1071. efastOrder.setOrderStatus(1);
  1072. efastOrder.setOrderNum(num); //产品数量
  1073. efastOrder.setOrderAmount(amout); //商品总价
  1074. efastOrder.setOrderPayMoney(amout); //已付款
  1075. //支付方式
  1076. switch (salesOrder.getSalesPayType()){
  1077. case 1: //微信支付
  1078. efastOrder.setOrderPayType(1);
  1079. break;
  1080. case 2: //现金支付
  1081. efastOrder.setOrderPayType(2);
  1082. break;
  1083. case 3:
  1084. break;
  1085. case 4: //刷卡支付
  1086. efastOrder.setOrderPayType(4);
  1087. break;
  1088. case 5: //支付宝支付
  1089. efastOrder.setOrderPayType(5);
  1090. break;
  1091. default:
  1092. efastOrder.setOrderPayType(2); //默认现金
  1093. break;
  1094. }
  1095. efastOrder.setOrderProductBarCode(orderProductBarCode); //产品sku
  1096. efastOrder.setOrderProductName(productName); //产品名称
  1097. efastOrder.setOrderId(salesOrder.getSalesDealCode()); //外部交易号
  1098. StoreInfo storeInfo = new StoreInfo();
  1099. storeInfo = storeInfoMapper.getStoreInfoById(salesOrder.getSalesStoreId());
  1100. efastOrder.setOrderStoreId(storeInfo.getStoreEfast());
  1101. efastOrder.setOid(1);
  1102. orderList.add(efastOrder);
  1103. Integer status = 1;
  1104. Map<String,Object> orderMap = new HashMap<String,Object>();
  1105. try {
  1106. orderMap = efastOrderService.sendOrder(orderList,itemList);
  1107. } catch (Exception e) {
  1108. status = 0;
  1109. }
  1110. List<EfastOrder> oList = (List<EfastOrder>) orderMap.get("efastOrderList");
  1111. if(oList == null || oList.size() < 1){
  1112. status = 0;
  1113. }
  1114. if(oList != null && oList.size() > 0){
  1115. map.put("EfastOrderId",oList.get(0).getOrderId());
  1116. SalesOrder sa = new SalesOrder();
  1117. sa.setSalesId(salesOrder.getSalesId());
  1118. sa.setSalesOrderId(oList.get(0).getOrderId());
  1119. orderNum = salesOrderMapper.updateSalesOrder(sa);
  1120. if (orderNum <= 0) {
  1121. throw new RuntimeException("系统修改订单失败,订单回滚,Efast交易号:"+salesOrder.getSalesDealCode());
  1122. }
  1123. }else{
  1124. throw new RuntimeException("添加Efast订单失败");
  1125. }
  1126. map.put("status",status);
  1127. return map;
  1128. }
  1129. /**
  1130. * 将原订单生成退货单
  1131. * @param customerCommon
  1132. * @param salesOrder
  1133. * @return
  1134. * @throws RuntimeException
  1135. */
  1136. @Transactional
  1137. public void chargebackEfastOrder(CustomerCommon customerCommon, SalesOrder salesOrder,Integer status,Integer returnType){
  1138. SalesOrder order = new SalesOrder();
  1139. order.setSalesId(salesOrder.getSalesId());
  1140. order.setSalesOrderStatus(status); //换货状态
  1141. Integer flag = salesOrderMapper.updateSalesOrder(order);
  1142. if(flag < 0){
  1143. throw new RuntimeException("系统生成退单失败");
  1144. }
  1145. EfastOrder efastOrder = new EfastOrder();
  1146. List<EfastOrderItem> itemList = new ArrayList<>();
  1147. /*for(int i=0;i<customerCommon.getSendProdcues().size();i++){
  1148. SendProdcue sendProdcue = customerCommon.getSendProdcues().get(i);
  1149. EfastOrderItem efastOrderItem = new EfastOrderItem();
  1150. efastOrderItem.setItemColorBar(sendProdcue.getProductColor().getColorBar());
  1151. efastOrderItem.setItemNum(sendProdcue.getSendProdcueNumber());
  1152. efastOrderItem.setItemDiscount(sendProdcue.getProductColor().getColorPrice());
  1153. itemList.add(efastOrderItem);
  1154. }*/
  1155. SalesOrderItem salesOrderItem = new SalesOrderItem();
  1156. salesOrderItem.setItemOrderId(salesOrder.getSalesId());
  1157. List<SalesOrderItem> salesOrderItemList = salesOrderMapper.listSalesOrderItem(salesOrderItem);
  1158. for(SalesOrderItem item : salesOrderItemList){
  1159. EfastOrderItem efastOrderItem = new EfastOrderItem();
  1160. efastOrderItem.setItemColorBar(item.getItemColorBar());
  1161. efastOrderItem.setItemNum(item.getItemNum());
  1162. efastOrderItem.setItemDiscount(item.getItemProductPrice());
  1163. itemList.add(efastOrderItem);
  1164. }
  1165. efastOrder.setOrderDealCode(salesOrder.getSalesDealCode()); //交易号
  1166. efastOrder.setOrderPostFirm(salesOrder.getSalesPostFirm()); //物流代码
  1167. efastOrder.setOrderPostNum(salesOrder.getSalesPostNum()); //物流单号
  1168. efastOrder.setOrderId(salesOrder.getSalesOrderId()); //订单编号
  1169. efastOrder.setItemList(itemList);
  1170. efastOrder.setReturnOrderType(returnType);//退单类型
  1171. JSONObject jsonObject = new JSONObject();
  1172. try{
  1173. jsonObject = efastOrderService.returnOrderFormEfast(efastOrder);
  1174. logger.info("------将原订单生成退货订单返回数据:" + jsonObject + "------");
  1175. /*if(jsonObject != null){
  1176. Object obj;
  1177. obj = jsonObject.get("return_sn");
  1178. if(obj != null && !"".equals(obj)){
  1179. fg = true;
  1180. }else{
  1181. obj = jsonObject.get("msg");
  1182. if("系统订单 已作废".equals(obj)){
  1183. fg = true;
  1184. }
  1185. }
  1186. }*/
  1187. }catch (Exception e){
  1188. logger.info("------将原订单生成退货订单报错------");
  1189. }
  1190. }
  1191. @Override
  1192. public Integer updateCustomerInfo(CustomerInfo record) {
  1193. return customerInfoMapper.updateCustomerInfo(record);
  1194. }
  1195. @Override
  1196. public PagedResult<CustomerInfo> listCustomer(int pageNO, int pageSize, CustomerInfo customerInfo, boolean isTotalNum) {
  1197. PageHelper.startPage(pageNO, pageSize, isTotalNum);
  1198. //查询客诉列表
  1199. List<CustomerInfo> customerList = customerInfoMapper.listCustomer(customerInfo);
  1200. //查询售后维修集合
  1201. Repair repairInfo = new Repair();
  1202. repairInfo.setRepairState(1);
  1203. List<Repair> repairList = repairMapper.listRepair(repairInfo);
  1204. //查询售后退货集合
  1205. BackGoods backGoodsInfo = new BackGoods();
  1206. backGoodsInfo.setBackGoodsState(1);
  1207. List<BackGoods> backGoodsList = backGoodsMapper.listBackGoods(backGoodsInfo);
  1208. //查询售后无理由退货集合
  1209. NoreasonBack noreasonBackInfo = new NoreasonBack();
  1210. noreasonBackInfo.setNoreasonBackState(1);
  1211. List<NoreasonBack> noreasonBackList = noreasonBackMapper.listNoreasonBack(noreasonBackInfo);
  1212. //查询售后补发集合
  1213. Reissue reissueInfo = new Reissue();
  1214. reissueInfo.setReissueState(1);
  1215. List<Reissue> reissueList = reissueMapper.listReissue(reissueInfo);
  1216. //查询售后换新集合
  1217. Renewed renewedInfo = new Renewed();
  1218. renewedInfo.setRenewedState(1);
  1219. List<Renewed> renewedList = renewedMapper.listRenewed(renewedInfo);
  1220. if (customerList != null && customerList.size() > 0) {
  1221. for (CustomerInfo customer : customerList) {
  1222. switch (customer.getCustomerIsSolve().intValue()) {
  1223. case 3: //换新
  1224. for (Renewed renewed : renewedList) {
  1225. if (renewed.getCustomerId().intValue() == customer.getCustomerId()) {
  1226. customer.setBackStatus(renewed.getRenewedBackStatus());
  1227. customer.setSendStatus(renewed.getRenewedSendStatus());
  1228. customer.setSalesTime(renewed.getSalesPayTime());
  1229. customer.setSendLogisticsNo(renewed.getRenewedSendLogisticsNo());
  1230. customer.setSendLogisticsCompany(renewed.getRenewedSendLogisticsCompany());
  1231. customer.setBackLogisticsNo(renewed.getRenewedBackLogisticsNo());
  1232. customer.setBackLogisticsCompany(renewed.getRenewedBackLogisticsCompany());
  1233. break;
  1234. }
  1235. }
  1236. break;
  1237. case 4: //维修
  1238. for (Repair repair : repairList) {
  1239. if (repair.getCustomerId().intValue() == customer.getCustomerId()) {
  1240. customer.setBackStatus(repair.getRepairBackStatus());
  1241. customer.setSendStatus(repair.getRepairSendStatus());
  1242. customer.setSalesTime(repair.getSalesPayTime());
  1243. customer.setSendLogisticsNo(repair.getRepairSendLogisticsNo());
  1244. customer.setSendLogisticsCompany(repair.getRepairSendLogisticsCompany());
  1245. customer.setBackLogisticsNo(repair.getRepairBackLogisticsNo());
  1246. customer.setBackLogisticsCompany(repair.getRepairBackLogisticsCompany());
  1247. break;
  1248. }
  1249. }
  1250. break;
  1251. case 5: //补发
  1252. for (Reissue reissue : reissueList) {
  1253. if (reissue.getCustomerId().intValue() == customer.getCustomerId()) {
  1254. customer.setSendStatus(reissue.getReissueSendStatus());
  1255. customer.setSalesTime(reissue.getSalesPayTime());
  1256. customer.setSendLogisticsNo(reissue.getReissueSendLogisticsNo());
  1257. customer.setSendLogisticsCompany(reissue.getReissueSendLogisticsCompany());
  1258. break;
  1259. }
  1260. }
  1261. break;
  1262. case 6: //退货
  1263. for (BackGoods backGoods : backGoodsList) {
  1264. if (backGoods.getCustomerId().intValue() == customer.getCustomerId()) {
  1265. customer.setBackStatus(backGoods.getBackGoodsBackStatus());
  1266. customer.setSalesTime(backGoods.getSalesPayTime());
  1267. customer.setBackLogisticsNo(backGoods.getBackGoodsBackLogisticsNo());
  1268. customer.setBackLogisticsCompany(backGoods.getBackGoodsBackLogisticsCompany());
  1269. break;
  1270. }
  1271. }
  1272. break;
  1273. case 7: //无理由退货
  1274. for (NoreasonBack noreasonBack : noreasonBackList) {
  1275. if (noreasonBack.getCustomerId().intValue() == customer.getCustomerId()) {
  1276. customer.setBackStatus(noreasonBack.getNoreasonBackBackStatus());
  1277. customer.setSalesTime(noreasonBack.getSalesPayTime());
  1278. customer.setBackLogisticsNo(noreasonBack.getNoreasonBackBackLogisticsNo());
  1279. customer.setBackLogisticsCompany(noreasonBack.getNoreasonBackBackLogisticsCompany());
  1280. break;
  1281. }
  1282. }
  1283. break;
  1284. }
  1285. }
  1286. }
  1287. return PageUtil.getPage(customerList);
  1288. }
  1289. @Override
  1290. public Map<String,Object> getCustomerInfo(CustomerInfo customerInfo) {
  1291. Map<String,Object> map = new HashMap<String,Object>();
  1292. CustomerCommon customerCommon = new CustomerCommon();
  1293. //查询客诉列表
  1294. List<CustomerInfo> customerList = customerInfoMapper.listCustomer(customerInfo);
  1295. if (customerList == null || customerList.size() == 0) {
  1296. return null;
  1297. }
  1298. CustomerInfo customer = customerList.get(0);
  1299. map.put("customer",customer);
  1300. int orderId = 0;
  1301. switch (customer.getCustomerIsSolve().intValue()) {
  1302. case 3://换新
  1303. Renewed renewedInfo = new Renewed();
  1304. renewedInfo.setRenewedState(1);
  1305. renewedInfo.setCustomerId(customerInfo.getCustomerId());
  1306. //查询售后换新详情
  1307. renewedInfo = renewedMapper.getRenewedInfo(renewedInfo);
  1308. //orderId = renewedInfo.getOrderId();
  1309. customerCommon = CustomerCommonUtil.getCustomerCommon(3,renewedInfo);
  1310. customerCommon = customerService.selectProdcueAndFitting(customerCommon,3);
  1311. break;
  1312. case 4://维修
  1313. Repair repairInfo = new Repair();
  1314. repairInfo.setRepairState(1);
  1315. repairInfo.setCustomerId(customerInfo.getCustomerId());
  1316. //查询售后维修集合
  1317. repairInfo = repairMapper.getRepairInfo(repairInfo);
  1318. if (repairInfo.getComplaintDetectList() != null && repairInfo.getComplaintDetectList().size() > 0) {
  1319. repairInfo.setDetectState(repairInfo.getComplaintDetectList().get(0).getDetectState());
  1320. }
  1321. //orderId = repairInfo.getOrderId();
  1322. customerCommon = CustomerCommonUtil.getCustomerCommon(4,repairInfo);
  1323. customerCommon = customerService.selectProdcueAndFitting(customerCommon,4);
  1324. break;
  1325. case 5://补发
  1326. Reissue reissueInfo = new Reissue();
  1327. reissueInfo.setReissueState(1);
  1328. reissueInfo.setCustomerId(customerInfo.getCustomerId());
  1329. //查询售后补发集合
  1330. List<Reissue> reissueList = reissueMapper.listReissue(reissueInfo);
  1331. if (reissueList == null || reissueList.size() == 0) {
  1332. return null;
  1333. }
  1334. reissueInfo = reissueList.get(0);
  1335. //orderId = reissueInfo.getOrderId();
  1336. customerCommon = CustomerCommonUtil.getCustomerCommon(5,reissueInfo);
  1337. customerCommon = customerService.selectProdcueAndFitting(customerCommon,5);
  1338. break;
  1339. case 6://退货
  1340. //查询售后退货集合
  1341. BackGoods backGoodsInfo = new BackGoods();
  1342. backGoodsInfo.setBackGoodsState(1);
  1343. backGoodsInfo.setCustomerId(customerInfo.getCustomerId());
  1344. List<BackGoods> backGoodsList = backGoodsMapper.listBackGoods(backGoodsInfo);
  1345. if (backGoodsList == null || backGoodsList.size() == 0) {
  1346. return null;
  1347. }
  1348. backGoodsInfo = backGoodsList.get(0);
  1349. if (backGoodsInfo.getComplaintDetectList() != null && backGoodsInfo.getComplaintDetectList().size() > 0) {
  1350. backGoodsInfo.setDetectState(backGoodsInfo.getComplaintDetectList().get(0).getDetectState());
  1351. }
  1352. //orderId = backGoodsInfo.getOrderId();
  1353. customerCommon = CustomerCommonUtil.getCustomerCommon(6,backGoodsInfo);
  1354. customerCommon = customerService.selectProdcueAndFitting(customerCommon,6);
  1355. break;
  1356. case 7://无理由退货
  1357. //查询售后无理由退货集合
  1358. NoreasonBack noreasonBackInfo = new NoreasonBack();
  1359. noreasonBackInfo.setNoreasonBackState(1);
  1360. noreasonBackInfo.setCustomerId(customerInfo.getCustomerId());
  1361. List<NoreasonBack> noreasonBackList = noreasonBackMapper.listNoreasonBack(noreasonBackInfo);
  1362. if (noreasonBackList == null || noreasonBackList.size() == 0) {
  1363. return null;
  1364. }
  1365. noreasonBackInfo = noreasonBackList.get(0);
  1366. if (noreasonBackInfo.getComplaintDetectList() != null && noreasonBackInfo.getComplaintDetectList().size() > 0) {
  1367. noreasonBackInfo.setDetectState(noreasonBackInfo.getComplaintDetectList().get(0).getDetectState());
  1368. }
  1369. //orderId = noreasonBackInfo.getOrderId();
  1370. customerCommon = CustomerCommonUtil.getCustomerCommon(7,noreasonBackInfo);
  1371. customerCommon = customerService.selectProdcueAndFitting(customerCommon,7);
  1372. break;
  1373. }
  1374. RelationOrder relationOrder = new RelationOrder();
  1375. relationOrder.setRelationType(customerCommon.getCustomerIsSolve());
  1376. relationOrder.setRelationId(customerCommon.getRelationId());
  1377. List<RelationOrder> relationOrderList = relationOrderService.getRelationOrderList(relationOrder);
  1378. String[] salesIds = new String[relationOrderList.size()];
  1379. for (int k=0; k<relationOrderList.size();k++){
  1380. salesIds[k] = String.valueOf(relationOrderList.get(k).getSalesId());
  1381. }
  1382. SalesOrder so = new SalesOrder();
  1383. so.setSalesIds(salesIds);
  1384. List<SalesOrder> orderList = salesOrderMapper.listSalesOrder(so);
  1385. if (orderList != null && orderList.size() > 0) {
  1386. SalesOrder order = orderList.get(0);
  1387. SalesOrderItem salesOrderItem = new SalesOrderItem();
  1388. salesOrderItem.setItemOrderId(order.getSalesId());
  1389. order.setSalesOrderItemList(salesOrderMapper.listSalesOrderItem(salesOrderItem));
  1390. } else {
  1391. map.put("orderList",null);
  1392. }
  1393. map.put("orderList",orderList);
  1394. map.put("customerCommon",customerCommon);
  1395. return map;
  1396. }
  1397. @Override
  1398. public CustomerCommon selectProdcueAndFitting(CustomerCommon customerCommon, int isSolve) {
  1399. if (customerCommon == null || customerCommon.getRelationId() == null) {
  1400. return customerCommon;
  1401. }
  1402. List<SendProdcue> sendProdcues = null;
  1403. List<SendFitting> sendFittings = null;
  1404. List<ClosedFitting> closedfittings = null;
  1405. List<ClosedProdcue> closedProdcues = null;
  1406. SendProdcue sendProdcue = new SendProdcue();
  1407. SendFitting sendFitting = new SendFitting();
  1408. ClosedFitting fitting = new ClosedFitting();
  1409. ClosedProdcue closedProdcue = new ClosedProdcue();
  1410. switch (isSolve) {
  1411. case 3://换新
  1412. sendProdcue.setRelationId(customerCommon.getRelationId());
  1413. sendProdcue.setSendProduceType(3);
  1414. //查询寄出产品集合
  1415. sendProdcues = sendProdcueMapper.listSendProdcue(sendProdcue);
  1416. sendFitting.setRelationId(customerCommon.getRelationId());
  1417. sendFitting.setSendFittingType(3);
  1418. //查询寄出配件集合
  1419. sendFittings = sendFittingMapper.listSendFitting(sendFitting);
  1420. fitting.setRelationId(customerCommon.getRelationId());
  1421. fitting.setClosedFittingType(3);
  1422. //查询寄回配件集合
  1423. closedfittings = closedFittingMapper.listClosedFitting(fitting);
  1424. closedProdcue.setRelationId(customerCommon.getRelationId());
  1425. closedProdcue.setClosedProdcueType(3);
  1426. //查询寄回产品集合
  1427. closedProdcues = closedProdcueMapper.listclosedProdcue(closedProdcue);
  1428. break;
  1429. case 4://维修
  1430. sendProdcue.setRelationId(customerCommon.getRelationId());
  1431. sendProdcue.setSendProduceType(4);
  1432. //查询寄出产品集合
  1433. sendProdcues = sendProdcueMapper.listSendProdcue(sendProdcue);
  1434. sendFitting.setRelationId(customerCommon.getRelationId());
  1435. sendFitting.setSendFittingType(4);
  1436. //查询寄出配件集合
  1437. sendFittings = sendFittingMapper.listSendFitting(sendFitting);
  1438. fitting.setRelationId(customerCommon.getRelationId());
  1439. fitting.setClosedFittingType(4);
  1440. //查询寄回配件集合
  1441. closedfittings = closedFittingMapper.listClosedFitting(fitting);
  1442. closedProdcue.setRelationId(customerCommon.getRelationId());
  1443. closedProdcue.setClosedProdcueType(4);
  1444. //查询寄回产品集合
  1445. closedProdcues = closedProdcueMapper.listclosedProdcue(closedProdcue);
  1446. break;
  1447. case 5://补发
  1448. sendProdcue.setRelationId(customerCommon.getRelationId());
  1449. sendProdcue.setSendProduceType(5);
  1450. //查询寄出产品集合
  1451. sendProdcues = sendProdcueMapper.listSendProdcue(sendProdcue);
  1452. sendFitting.setRelationId(customerCommon.getRelationId());
  1453. sendFitting.setSendFittingType(5);
  1454. //查询寄出配件集合
  1455. sendFittings = sendFittingMapper.listSendFitting(sendFitting);
  1456. break;
  1457. case 6://退货
  1458. fitting.setRelationId(customerCommon.getRelationId());
  1459. fitting.setClosedFittingType(6);
  1460. //查询寄回配件集合
  1461. closedfittings = closedFittingMapper.listClosedFitting(fitting);
  1462. closedProdcue.setRelationId(customerCommon.getRelationId());
  1463. closedProdcue.setClosedProdcueType(6);
  1464. //查询寄回产品集合
  1465. closedProdcues = closedProdcueMapper.listclosedProdcue(closedProdcue);
  1466. break;
  1467. case 7://无理由退货
  1468. fitting.setRelationId(customerCommon.getRelationId());
  1469. fitting.setClosedFittingType(7);
  1470. //查询寄回配件集合
  1471. closedfittings = closedFittingMapper.listClosedFitting(fitting);
  1472. closedProdcue.setRelationId(customerCommon.getRelationId());
  1473. closedProdcue.setClosedProdcueType(7);
  1474. //查询寄回产品集合
  1475. closedProdcues = closedProdcueMapper.listclosedProdcue(closedProdcue);
  1476. break;
  1477. }
  1478. customerCommon.setClosedFittings(closedfittings);
  1479. customerCommon.setClosedProdcues(closedProdcues);
  1480. customerCommon.setSendProdcues(sendProdcues);
  1481. customerCommon.setSendFittings(sendFittings);
  1482. return customerCommon;
  1483. }
  1484. @Override
  1485. public ProductType getcompanyAffiliation(Integer customerId) {
  1486. return customerInfoMapper.getcompanyAffiliation(customerId);
  1487. }
  1488. @Override
  1489. public BackGoods getBackGoods(BackGoods backGoods) {
  1490. //获取退货集合
  1491. List<BackGoods> backList = backGoodsMapper.listBackGoods(backGoods);
  1492. if (backList == null || backList.size() == 0) {
  1493. return null;
  1494. }
  1495. BackGoods goods = backList.get(0);
  1496. ClosedProdcue closedProdcue = new ClosedProdcue();
  1497. closedProdcue.setRelationId(goods.getBackGoodsId());
  1498. closedProdcue.setClosedProdcueType(6);
  1499. //查询寄回产品集合
  1500. List<ClosedProdcue> prodcueList = closedProdcueMapper.listclosedProdcue(closedProdcue);
  1501. ClosedFitting fitting = new ClosedFitting();
  1502. fitting.setRelationId(goods.getBackGoodsId());
  1503. fitting.setClosedFittingType(6);
  1504. //查询寄回配件集合
  1505. List<ClosedFitting> fittingList = closedFittingMapper.listClosedFitting(fitting);
  1506. if (prodcueList != null && prodcueList.size() > 0) {
  1507. goods.setClosedProdcues(prodcueList);
  1508. }
  1509. if (fittingList != null && fittingList.size() > 0) {
  1510. goods.setClosedFittings(fittingList);
  1511. }
  1512. return goods;
  1513. }
  1514. @Override
  1515. public NoreasonBack getNoreasonBack(NoreasonBack noreasonBack) {
  1516. //获取无理由退货
  1517. List<NoreasonBack> backList = noreasonBackMapper.listNoreasonBack(noreasonBack);
  1518. if (backList == null || backList.size() == 0) {
  1519. return null;
  1520. }
  1521. NoreasonBack noreasonBackInfo = backList.get(0);
  1522. ClosedProdcue closedProdcue = new ClosedProdcue();
  1523. closedProdcue.setRelationId(noreasonBackInfo.getNoreasonBackId());
  1524. closedProdcue.setClosedProdcueType(7);
  1525. //查询寄回产品集合
  1526. List<ClosedProdcue> prodcueList = closedProdcueMapper.listclosedProdcue(closedProdcue);
  1527. ClosedFitting fitting = new ClosedFitting();
  1528. fitting.setRelationId(noreasonBackInfo.getNoreasonBackId());
  1529. fitting.setClosedFittingType(7);
  1530. //查询寄回配件集合
  1531. List<ClosedFitting> fittingList = closedFittingMapper.listClosedFitting(fitting);
  1532. if (prodcueList != null && prodcueList.size() > 0) {
  1533. noreasonBackInfo.setClosedProdcues(prodcueList);
  1534. }
  1535. if (fittingList != null && fittingList.size() > 0) {
  1536. noreasonBackInfo.setClosedFittings(fittingList);
  1537. }
  1538. return noreasonBackInfo;
  1539. }
  1540. @Override
  1541. public Reissue getReissue(Reissue reissue) {
  1542. //查询售后补发信息
  1543. List<Reissue> reissueList = reissueMapper.listReissue(reissue);
  1544. if (reissueList == null || reissueList.size() == 0) {
  1545. return null;
  1546. }
  1547. Reissue reissueInfo = reissueList.get(0);
  1548. SendProdcue sendProdcue = new SendProdcue();
  1549. sendProdcue.setRelationId(reissueInfo.getReissueId());
  1550. sendProdcue.setSendProduceType(5);
  1551. //查询寄送产品集合
  1552. List<SendProdcue> sendProdcueList = sendProdcueMapper.listSendProdcue(sendProdcue);
  1553. SendFitting sendFitting = new SendFitting();
  1554. sendFitting.setRelationId(reissueInfo.getReissueId());
  1555. sendFitting.setSendFittingType(5);
  1556. //查询寄送配件集合
  1557. List<SendFitting> sendFittingList = sendFittingMapper.listSendFitting(sendFitting);
  1558. if (sendProdcueList != null && sendProdcueList.size() > 0) {
  1559. reissueInfo.setSendProdcues(sendProdcueList);
  1560. }
  1561. if (sendFittingList != null && sendFittingList.size() > 0) {
  1562. reissueInfo.setSendFittings(sendFittingList);
  1563. }
  1564. return reissueInfo;
  1565. }
  1566. @Override
  1567. public Renewed getRenewedInfo(Renewed renewed) {
  1568. renewed = renewedMapper.getRenewedInfo(renewed);
  1569. if (renewed == null){
  1570. return null;
  1571. }
  1572. ClosedProdcue closedProdcue = new ClosedProdcue();
  1573. closedProdcue.setRelationId(renewed.getRenewedId());
  1574. closedProdcue.setClosedProdcueType(3);
  1575. //查询寄回产品集合
  1576. List<ClosedProdcue> prodcueList = closedProdcueMapper.listclosedProdcue(closedProdcue);
  1577. ClosedFitting fitting = new ClosedFitting();
  1578. fitting.setRelationId(renewed.getRenewedId());
  1579. fitting.setClosedFittingType(3);
  1580. //查询寄回配件集合
  1581. List<ClosedFitting> fittingList = closedFittingMapper.listClosedFitting(fitting);
  1582. SendProdcue sendProdcue = new SendProdcue();
  1583. sendProdcue.setRelationId(renewed.getRenewedId());
  1584. sendProdcue.setSendProduceType(3);
  1585. //查询寄送产品集合
  1586. List<SendProdcue> sendProdcueList = sendProdcueMapper.listSendProdcue(sendProdcue);
  1587. SendFitting sendFitting = new SendFitting();
  1588. sendFitting.setRelationId(renewed.getRenewedId());
  1589. sendFitting.setSendFittingType(3);
  1590. //查询寄送配件集合
  1591. List<SendFitting> sendFittingList = sendFittingMapper.listSendFitting(sendFitting);
  1592. if (prodcueList != null && prodcueList.size() > 0) {
  1593. renewed.setClosedProdcues(prodcueList);
  1594. }
  1595. if (fittingList != null && fittingList.size() > 0) {
  1596. renewed.setClosedFittings(fittingList);
  1597. }
  1598. if (sendProdcueList != null && sendProdcueList.size() > 0) {
  1599. renewed.setSendProdcues(sendProdcueList);
  1600. }
  1601. if (sendFittingList != null && sendFittingList.size() > 0) {
  1602. renewed.setSendFittings(sendFittingList);
  1603. }
  1604. return renewed;
  1605. }
  1606. @Override
  1607. public Repair getRepairInfo(Repair repair) {
  1608. repair = repairMapper.getRepairInfo(repair);
  1609. if (repair == null) {
  1610. return null;
  1611. }
  1612. ClosedProdcue closedProdcue = new ClosedProdcue();
  1613. closedProdcue.setRelationId(repair.getRepairId());
  1614. closedProdcue.setClosedProdcueType(4);
  1615. //查询寄回产品集合
  1616. List<ClosedProdcue> prodcueList = closedProdcueMapper.listclosedProdcue(closedProdcue);
  1617. ClosedFitting fitting = new ClosedFitting();
  1618. fitting.setRelationId(repair.getRepairId());
  1619. fitting.setClosedFittingType(4);
  1620. //查询寄回配件集合
  1621. List<ClosedFitting> fittingList = closedFittingMapper.listClosedFitting(fitting);
  1622. SendProdcue sendProdcue = new SendProdcue();
  1623. sendProdcue.setRelationId(repair.getRepairId());
  1624. sendProdcue.setSendProduceType(4);
  1625. //查询寄送产品集合
  1626. List<SendProdcue> sendProdcueList = sendProdcueMapper.listSendProdcue(sendProdcue);
  1627. SendFitting sendFitting = new SendFitting();
  1628. sendFitting.setRelationId(repair.getRepairId());
  1629. sendFitting.setSendFittingType(4);
  1630. //查询寄送配件集合
  1631. List<SendFitting> sendFittingList = sendFittingMapper.listSendFitting(sendFitting);
  1632. if (prodcueList != null && prodcueList.size() > 0) {
  1633. repair.setClosedProdcues(prodcueList);
  1634. }
  1635. if (fittingList != null && fittingList.size() > 0) {
  1636. repair.setClosedFittings(fittingList);
  1637. }
  1638. if (sendProdcueList != null && sendProdcueList.size() > 0) {
  1639. repair.setSendProdcues(sendProdcueList);
  1640. }
  1641. if (sendFittingList != null && sendFittingList.size() > 0) {
  1642. repair.setSendFittings(sendFittingList);
  1643. }
  1644. return repair;
  1645. }
  1646. }