CustomerServiceImpl.java 77 KB

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