CustomerServiceImpl.java 78 KB

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