CustomerServiceImpl.java 53 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106
  1. package com.iamberry.rst.service.cm;
  2. import com.github.pagehelper.PageHelper;
  3. import com.iamberry.rst.core.address.City;
  4. import com.iamberry.rst.core.address.District;
  5. import com.iamberry.rst.core.address.Province;
  6. import com.iamberry.rst.core.cm.*;
  7. import com.iamberry.rst.core.order.*;
  8. import com.iamberry.rst.core.page.PagedResult;
  9. import com.iamberry.rst.faces.cm.CustomerService;
  10. import com.iamberry.rst.faces.order.EfastOrderService;
  11. import com.iamberry.rst.service.address.mapper.AddressMapper;
  12. import com.iamberry.rst.service.cm.mapper.*;
  13. import com.iamberry.rst.service.order.EfastOrderServiceImpl;
  14. import com.iamberry.rst.service.product.mapper.ProductMapper;
  15. import com.iamberry.rst.util.PageUtil;
  16. import net.sf.json.JSONObject;
  17. import org.slf4j.Logger;
  18. import org.slf4j.LoggerFactory;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.stereotype.Service;
  21. import org.springframework.transaction.annotation.Transactional;
  22. import java.util.ArrayList;
  23. import java.util.HashMap;
  24. import java.util.List;
  25. import java.util.Map;
  26. @Service
  27. public class CustomerServiceImpl implements CustomerService {
  28. private static Logger logger = LoggerFactory.getLogger(CustomerServiceImpl.class);
  29. @Autowired
  30. private CustomerInfoMapper customerInfoMapper;
  31. @Autowired
  32. private RepairMapper repairMapper;
  33. @Autowired
  34. private BackGoodsMapper backGoodsMapper;
  35. @Autowired
  36. private NoreasonBackMapper noreasonBackMapper;
  37. @Autowired
  38. private ReissueMapper reissueMapper;
  39. @Autowired
  40. private RenewedMapper renewedMapper;
  41. @Autowired
  42. private ClosedFittingMapper closedFittingMapper;
  43. @Autowired
  44. private ClosedProdcueMapper closedProdcueMapper;
  45. @Autowired
  46. private SendProdcueMapper sendProdcueMapper;
  47. @Autowired
  48. private SendFittingMapper sendFittingMapper;
  49. @Autowired
  50. private SalesOrderMapper salesOrderMapper;
  51. @Autowired
  52. private CustomerService customerService;
  53. @Autowired
  54. private VisitMapper visitMapper; //回访
  55. @Autowired
  56. private ComplaintSignclosedInfoMapper complaintSignclosedInfoMapper; //仓储
  57. @Autowired
  58. private ComplaintDetectInfoMapper complaintDetectInfoMapper; //品检
  59. @Autowired
  60. private QuestionDescribeMapper questionDescribeMapper; //客诉问题
  61. @Autowired
  62. private AddressMapper addressMapper; //地址
  63. @Autowired
  64. private ProductMapper productMapper; //产品
  65. @Autowired
  66. private ComplaintSignclosedProductInfoMapper complaintSignclosedProductInfoMapper;
  67. @Autowired
  68. private FittingsInfoMapper fittingsInfoMapper;
  69. @Autowired
  70. private EfastOrderService efastOrderService;
  71. @Override
  72. public CustomerInfo getCustomerInfo(Integer customerId) {
  73. return customerInfoMapper.getCustomerInfo(customerId);
  74. }
  75. @Override
  76. @Transactional
  77. public Integer saveCustomerInfo(CustomerInfo customerInfo,SalesOrder salesOrder){
  78. //添加客诉基本信息
  79. Integer flag = 0;
  80. flag = customerInfoMapper.insert(customerInfo);
  81. if(flag < 1){
  82. throw new RuntimeException("添加客诉失败");
  83. }
  84. logger.info("-----------添加客诉-添加客诉基本信息---------------");
  85. QuestionDescribe questionDescribe = new QuestionDescribe();
  86. questionDescribe.setCustomerId(customerInfo.getCustomerId());
  87. questionDescribe.setDescribeTitle(customerInfo.getDescribeTitle()); //客诉问题标题
  88. questionDescribe.setDescribeContent(customerInfo.getDescribeContent()); //客诉问题描述
  89. questionDescribe.setDescribeHandleDesc(customerInfo.getDescribeHandleDesc()); //处理描述
  90. flag = questionDescribeMapper.insert(questionDescribe);
  91. if(flag < 1){
  92. throw new RuntimeException("添加客诉问题失败");
  93. }
  94. logger.info("-----------添加客诉-添加客诉问题---------------");
  95. if ("2".equals(customerInfo.getCustomerIsVisit())) {
  96. Visit visit = new Visit();
  97. visit.setCustomerId(customerInfo.getCustomerId());
  98. visit.setAdminId(customerInfo.getAdminId());
  99. visit.setDesignatedAdminId(customerInfo.getVisitAdminId());
  100. visit.setVisitName(customerInfo.getVisitName());
  101. visit.setVisitTel(customerInfo.getVisitTel());
  102. visit.setVisitDate(customerInfo.getVisitDate());
  103. visit.setVisitTimeSelect(customerInfo.getVisitTimeSelect());
  104. visit.setVisitStatus(1); //回访状态
  105. flag = visitMapper.addVisitInfo(visit);
  106. if(flag < 1){
  107. throw new RuntimeException("添加客诉回访失败");
  108. }
  109. logger.info("-----------添加客诉-添加客诉回访信息---------------");
  110. }
  111. if (2 == customerInfo.getCustomerCounselType() &&
  112. (customerInfo.getCustomerIsSolve() == 3 || customerInfo.getCustomerIsSolve() == 4 || customerInfo.getCustomerIsSolve() == 5 ||
  113. customerInfo.getCustomerIsSolve() == 6 || customerInfo.getCustomerIsSolve() == 7)
  114. ){
  115. salesOrder = salesOrderMapper.getSalesOrderById(salesOrder.getSalesId());
  116. logger.info("-----------添加客诉-查询订单--------------");
  117. CustomerCommon customerCommon = customerInfo.getCustomerCommon();
  118. customerCommon.setCustomerId(customerInfo.getCustomerId()); //设置客诉id
  119. customerCommon.setRelationBackStatus(1); //寄回状态 1:未寄回
  120. customerCommon.setRelationSendStatus(1); //寄送状态 1:未寄送
  121. customerCommon.setRelationState(1); //状态 默认使用中
  122. customerCommon.setOrderId(salesOrder.getSalesId()); //订单id
  123. customerCommon.setTransactionNumber(customerInfo.getTransactionNumber()); //外部交易号
  124. customerCommon.setRelationIsTransfer(0); //是否已转账邮费 0:不需要
  125. customerCommon.setRelationBackPostage(0); //邮费默认为0
  126. customerCommon.setRelationBackName(customerCommon.getRelationSendName()); //姓名
  127. customerCommon.setRelationBackTel(customerCommon.getRelationSendTel()); //电话号码
  128. /* 初始化产品类型,名称,配件名称 */
  129. customerService.setName(customerCommon);
  130. logger.info("-----------添加客诉-初始化产品,配件信息--------------");
  131. ComplaintDetectInfo complaintDetectInfo = new ComplaintDetectInfo(); //品质检测
  132. ComplaintSignclosedInfo complaintSignclosedInfo = new ComplaintSignclosedInfo(); //客诉-签收表
  133. Map<String,Object> map;
  134. boolean isReturn = false;
  135. switch (customerInfo.getCustomerIsSolve()) { //处理结果: 1:已解决 2:未解决 3:换新 4:维修 5:补发 6:退货 7:无理由退货
  136. case 3: //换新
  137. customerService.chargebackEfastOrder(customerCommon,salesOrder,2); //原订单生成退单
  138. map = customerService.sendEfastOrder(customerCommon,salesOrder); //换新需要向Efast推送一条换新发货的订单
  139. if(map.get("status") == 1){
  140. customerCommon.setRelationBackEfastOrderId(String.valueOf(map.get("EfastOrderId"))); //存放Efast订单编号
  141. complaintSignclosedInfo.setNewEfastId(String.valueOf(map.get("EfastOrderId"))); //仓储签收表添加 发货的Efast订单id
  142. }else{
  143. throw new RuntimeException("换新创建Efast订单失败");
  144. }
  145. complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId()); //原有订单的Efast的订单编号
  146. customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
  147. complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
  148. customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon); //创建品检
  149. break;
  150. case 4: //维修
  151. customerService.chargebackEfastOrder(customerCommon,salesOrder,2); //原订单生成退单
  152. map = customerService.sendEfastOrder(customerCommon,salesOrder); //维修需要向Efast推送一条维修发货的订单
  153. if(map.get("status") == 1){
  154. customerCommon.setRelationBackEfastOrderId(String.valueOf(map.get("EfastOrderId"))); //存放Efast订单编号
  155. complaintSignclosedInfo.setNewEfastId(String.valueOf(map.get("EfastOrderId"))); //仓储签收表添加 发货的Efast订单id
  156. }else{
  157. throw new RuntimeException("维修创建Efast订单失败");
  158. }
  159. complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId()); //原有订单的Efast的订单编号
  160. customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
  161. complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
  162. customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon); //创建品检
  163. break;
  164. case 5: //补发 不用创建仓储签收任务
  165. map = customerService.sendEfastOrder(customerCommon,salesOrder); //补发需要向Efast推送一条发货的订单
  166. if(map.get("status") == 1){
  167. customerCommon.setRelationBackEfastOrderId(String.valueOf(map.get("EfastOrderId"))); //存放Efast订单编号
  168. complaintSignclosedInfo.setNewEfastId(String.valueOf(map.get("EfastOrderId"))); //仓储签收表添加 发货的Efast订单id
  169. }else{
  170. throw new RuntimeException("补发创建Efast订单失败");
  171. }
  172. break;
  173. case 6: //退货
  174. customerService.chargebackEfastOrder(customerCommon,salesOrder,3); //原订单生成退单
  175. complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId()); //原有订单的Efast的订单编号
  176. customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
  177. complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
  178. customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon); //创建品检
  179. break;
  180. case 7: //无理由退货
  181. customerService.chargebackEfastOrder(customerCommon,salesOrder,3); //原订单生成退单
  182. complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId()); //原有订单的Efast的订单编号
  183. customerService.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
  184. complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
  185. customerService.saveComplaintDetectInfo(complaintDetectInfo,customerCommon); //创建品检
  186. break;
  187. }
  188. logger.info("-----------添加客诉-创建仓储/品检成功--------------");
  189. customerCommon.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储id
  190. Object object = CustomerCommon.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. CustomerCommon.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. /**
  242. * 产品配件初始化
  243. * @param cc
  244. */
  245. @Transactional
  246. public void setName(CustomerCommon cc){
  247. for (int i=0;i<cc.getSendProdcues().size();i++) {
  248. Product product = productMapper.getProduce(cc.getSendProdcues().get(i).getProductId());
  249. cc.getSendProdcues().get(i).setSendProduceName(product.getProductName());
  250. cc.getSendProdcues().get(i).setProductType(product.getProductType());
  251. cc.getSendProdcues().get(i).setProductNumber(product.getProductNumber());
  252. ProductColor productColor = productMapper.getProduceColor(cc.getSendProdcues().get(i).getColorId());
  253. cc.getSendProdcues().get(i).setProductColor(productColor);
  254. }
  255. for (int i=0;i<cc.getSendFittings().size();i++) {
  256. FittingsInfo fittingsInfo = fittingsInfoMapper.getFittingsById( cc.getSendFittings().get(i).getFittingsId());
  257. cc.getSendFittings().get(i).setFittingsId(fittingsInfo.getFittingsId());
  258. }
  259. for (int i=0;i<cc.getClosedProdcues().size();i++) {
  260. Product product = productMapper.getProduce(cc.getClosedProdcues().get(i).getProductId());
  261. cc.getClosedProdcues().get(i).setClosedProductName(product.getProductName());
  262. cc.getClosedProdcues().get(i).setProductType(product.getProductType());
  263. cc.getClosedProdcues().get(i).setProductNumber(product.getProductNumber());
  264. ProductColor productColor = productMapper.getProduceColor(cc.getClosedProdcues().get(i).getColorId());
  265. cc.getClosedProdcues().get(i).setProductColor(productColor);
  266. }
  267. for (int i=0;i<cc.getClosedFittings().size();i++) {
  268. FittingsInfo fittingsInfo = fittingsInfoMapper.getFittingsById(cc.getClosedFittings().get(i).getFittingsId());
  269. cc.getClosedFittings().get(i).setFittingsId(fittingsInfo.getFittingsId());
  270. }
  271. }
  272. /**
  273. * 添加品检
  274. * @param complaintDetectInfo
  275. * @param customerCommon
  276. * @return
  277. */
  278. @Transactional
  279. public void saveComplaintDetectInfo(ComplaintDetectInfo complaintDetectInfo,CustomerCommon customerCommon){
  280. Integer flag = 0;
  281. List<ComplaintDetectInfo> complaintDetectInfoList = new ArrayList<ComplaintDetectInfo>();
  282. complaintDetectInfo.setCustomerId(customerCommon.getCustomerId()); //添加客诉
  283. complaintDetectInfo.setDetectState(1); //状态 1待仓库转入
  284. complaintDetectInfo.setDetectRevolutionProduced(1); //是否转入生产部门 1待转入
  285. complaintDetectInfo.setDetectIsMaintenance(1); //是否需要维修,1 需要 2不需要
  286. for(int i=0 ;i< customerCommon.getClosedProdcues().size();i++){
  287. ClosedProdcue closedProdcue = customerCommon.getClosedProdcues().get(i);
  288. for(int j=0; j<closedProdcue.getClosedProdcueNumber();j++){
  289. complaintDetectInfo.setProductId(closedProdcue.getProductId());
  290. complaintDetectInfo.setDetectProductType(closedProdcue.getProductType());
  291. if(closedProdcue.getProductNumber() == null || "".equals(closedProdcue.getProductNumber())){
  292. complaintDetectInfo.setDetectProductNumber("0");
  293. }else{
  294. complaintDetectInfo.setDetectProductNumber(closedProdcue.getProductNumber());
  295. }
  296. }
  297. complaintDetectInfoList.add(complaintDetectInfo);
  298. }
  299. if(complaintDetectInfoList.size() > 0){
  300. flag = complaintDetectInfoMapper.insertList(complaintDetectInfoList);
  301. }
  302. if(flag < 1){
  303. throw new RuntimeException("添加品检失败");
  304. }
  305. }
  306. /**
  307. * 添加仓储
  308. * @param customerCommon
  309. * @return
  310. */
  311. @Transactional
  312. public void saveComplaintSignclosedInfo(ComplaintSignclosedInfo complaintSignclosedInfo,CustomerCommon customerCommon){
  313. Integer flag;
  314. complaintSignclosedInfo.setSignclosedType(1); //客诉寄回
  315. complaintSignclosedInfo.setSignclosedIsQuality(1); //是否平品检 1:需要品检
  316. complaintSignclosedInfo.setSignclosedIsInto(2); //是否已转入品检 2:未转入品检
  317. complaintSignclosedInfo.setSignclosedState(2); //处理状态 2:未签收
  318. complaintSignclosedInfo.setSignclosedObjectsState(3); //物件状态 3:暂未签收
  319. complaintSignclosedInfo.setSignclosedCustomerId(customerCommon.getCustomerId()); //客诉id
  320. complaintSignclosedInfo.setSignclosedIsFittings(2);
  321. flag = complaintSignclosedInfoMapper.insert(complaintSignclosedInfo);
  322. if(flag < 1){
  323. throw new RuntimeException("添加签收失败");
  324. }
  325. //添加代签收表
  326. List<AwaitingSignclosedProductInfo> awaitingSignclosedProductInfoArrayList = new ArrayList<>();
  327. AwaitingSignclosedProductInfo awaitingSignclosedProductInfo = new AwaitingSignclosedProductInfo();
  328. awaitingSignclosedProductInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //仓储id
  329. awaitingSignclosedProductInfo.setSignclosedProductType(1); //类型为产品
  330. for(int i=0 ;i< customerCommon.getClosedProdcues().size();i++){
  331. ClosedProdcue closedProdcue = customerCommon.getClosedProdcues().get(i);
  332. for(int k=0;k<closedProdcue.getClosedProdcueNumber();k++){
  333. awaitingSignclosedProductInfo.setProductNum(1);
  334. awaitingSignclosedProductInfo.setSignclosedProductId(closedProdcue.getProductId()); //产品id
  335. awaitingSignclosedProductInfo.setSignclosedProductColor(closedProdcue.getColorId()); //颜色id
  336. awaitingSignclosedProductInfo.setProductName(closedProdcue.getClosedProductName()); //产品名称
  337. awaitingSignclosedProductInfoArrayList.add(awaitingSignclosedProductInfo);
  338. }
  339. }
  340. awaitingSignclosedProductInfo = new AwaitingSignclosedProductInfo();
  341. awaitingSignclosedProductInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //仓储id
  342. awaitingSignclosedProductInfo.setSignclosedProductType(2); //类型为配件
  343. for(int i=0 ;i< customerCommon.getClosedFittings().size();i++){
  344. ClosedFitting closedFitting = customerCommon.getClosedFittings().get(i);
  345. for(int k=0;k<closedFitting.getClosedFittingNumber();k++){
  346. awaitingSignclosedProductInfo.setProductNum(1);
  347. awaitingSignclosedProductInfo.setSignclosedProductId(closedFitting.getFittingsId()); //配件id
  348. awaitingSignclosedProductInfo.setSignclosedProductColor(null);
  349. awaitingSignclosedProductInfo.setProductName(closedFitting.getFittingName()); //配件名称
  350. awaitingSignclosedProductInfoArrayList.add(awaitingSignclosedProductInfo);
  351. }
  352. }
  353. flag = complaintSignclosedProductInfoMapper.insertList(awaitingSignclosedProductInfoArrayList);
  354. if(flag < 1){
  355. throw new RuntimeException("添加签收产品失败");
  356. }
  357. }
  358. /**
  359. * 向Efast推送订单 仅换新,维修 ,补发
  360. * @return
  361. */
  362. @Transactional
  363. public Map<String,Object> sendEfastOrder(CustomerCommon customerCommon,SalesOrder salesOrder){
  364. Map<String,Object> map = new HashMap<String,Object>();
  365. List<EfastOrder> orderList = new ArrayList<EfastOrder>();
  366. List<OrderItem> itemList = new ArrayList<OrderItem>();
  367. Integer num = 0; //产品数量
  368. Integer amout = 0; //商品总价
  369. String orderProductBarCode = ""; //产品sku
  370. String productName = ""; //产品名称
  371. for(int i=0;i<customerCommon.getSendProdcues().size();i++){
  372. SendProdcue sendProdcue = customerCommon.getSendProdcues().get(i);
  373. OrderItem orderItem = new OrderItem();
  374. orderItem.setItemProductName(sendProdcue.getSendProduceName());
  375. orderItem.setItemProductNum(sendProdcue.getSendProdcueNumber());
  376. orderItem.setItemProductPrice(sendProdcue.getProductColor().getColorPrice());
  377. orderItem.setItemColorBar(sendProdcue.getProductColor().getColorBar());
  378. itemList.add(orderItem);
  379. orderProductBarCode = sendProdcue.getProductColor().getColorBar();
  380. productName = sendProdcue.getSendProduceName();
  381. num += sendProdcue.getSendProdcueNumber();
  382. amout += sendProdcue.getProductColor().getColorPrice();
  383. }
  384. EfastOrder efastOrder = new EfastOrder();
  385. efastOrder.setOrderAddressName(customerCommon.getRelationSendName());//收货人姓名
  386. efastOrder.setOrderAddressTel(customerCommon.getRelationSendTel());//收货人电话
  387. efastOrder.setOrderOpenId("1");//身份证
  388. String[] address = customerCommon.getRelationSendMergeAddress().split("-");
  389. efastOrder.setOrderProvince(address[0]);
  390. efastOrder.setOrderCity(address[1]);
  391. efastOrder.setOrderArea(address[2]);
  392. efastOrder.setOrderAddress(customerCommon.getRelationSendAddress());
  393. efastOrder.setOrderStatus(2);
  394. efastOrder.setOrderNum(num); //产品数量
  395. efastOrder.setOrderAmount(amout); //商品总价
  396. efastOrder.setOrderPayMoney(amout); //已付款
  397. //支付方式
  398. switch (salesOrder.getSalesPayType()){
  399. case 1: //微信支付
  400. efastOrder.setOrderPayType(1);
  401. break;
  402. case 2: //现金支付
  403. efastOrder.setOrderPayType(2);
  404. break;
  405. case 3:
  406. break;
  407. case 4: //刷卡支付
  408. efastOrder.setOrderPayType(4);
  409. break;
  410. case 5: //支付宝支付
  411. efastOrder.setOrderPayType(5);
  412. break;
  413. default:
  414. efastOrder.setOrderPayType(2); //默认现金
  415. break;
  416. }
  417. efastOrder.setOrderProductBarCode(orderProductBarCode); //产品sku
  418. efastOrder.setOrderProductName(productName); //产品名称
  419. efastOrder.setOrderId(customerCommon.getTransactionNumber()); //外部交易号
  420. efastOrder.setOid(1);
  421. orderList.add(efastOrder);
  422. Integer status = 1;
  423. Map<String,Object> orderMap = new HashMap<String,Object>();
  424. try {
  425. orderMap = efastOrderService.sendOrder(orderList,itemList);
  426. } catch (Exception e) {
  427. status = 0;
  428. }
  429. List<EfastOrder> oList = (List<EfastOrder>) orderMap.get("efastOrderList");
  430. if(oList == null || oList.size() < 1){
  431. status = 0;
  432. }
  433. map.put("status",status);
  434. if(oList != null && oList.size() > 0){
  435. map.put("EfastOrderId",oList.get(0).getOrderId());
  436. logger.info("换新,维修 ,补发向Efast 推送订单成功,订单号为:" + oList.get(0).getOrderId());
  437. }else{
  438. logger.info("换新,维修 ,补发向Efast 推送订单,推送失败,交易号为:" + customerCommon.getTransactionNumber());
  439. }
  440. return map;
  441. }
  442. /**
  443. * 向Efast推送订单--添加订单
  444. * @return
  445. */
  446. @Transactional
  447. public Map<String,Object> sendEfastOrder(SalesOrder salesOrder){
  448. //添加订单数据
  449. int orderNum = salesOrderMapper.addSalesOrder(salesOrder);
  450. if (orderNum <= 0) {
  451. throw new RuntimeException("系统添加订单失败");
  452. }
  453. for (SalesOrderItem item : salesOrder.getSalesOrderItemList()) {
  454. item.setItemOrderId(salesOrder.getSalesId());
  455. }
  456. //批量添加订单项数据
  457. int itemNum = salesOrderMapper.addOrderItemList(salesOrder.getSalesOrderItemList());
  458. if (itemNum <= 0) {
  459. throw new RuntimeException("系统添加订单项失败");
  460. }
  461. Map<String,Object> map = new HashMap<String,Object>();
  462. List<EfastOrder> orderList = new ArrayList<EfastOrder>();
  463. List<OrderItem> itemList = new ArrayList<OrderItem>();
  464. Integer num = 0; //产品数量
  465. Integer amout = 0; //商品总价
  466. String orderProductBarCode = ""; //产品sku
  467. String productName = ""; //产品名称
  468. for(int i=0;i<salesOrder.getSalesOrderItemList().size();i++){
  469. SalesOrderItem salesOrderItem = salesOrder.getSalesOrderItemList().get(i);
  470. OrderItem orderItem = new OrderItem();
  471. orderItem.setItemProductName(salesOrderItem.getItemProductName());
  472. orderItem.setItemProductNum(salesOrderItem.getItemNum());
  473. orderItem.setItemProductPrice(salesOrderItem.getItemProductPrice());
  474. orderItem.setItemColorBar(salesOrderItem.getItemColorBar());
  475. itemList.add(orderItem);
  476. orderProductBarCode = salesOrderItem.getItemColorBar();
  477. productName = salesOrderItem.getItemProductName();
  478. num += salesOrderItem.getItemNum();
  479. amout += salesOrderItem.getItemProductPrice();
  480. }
  481. EfastOrder efastOrder = new EfastOrder();
  482. efastOrder.setOrderAddressName(salesOrder.getSalesAddressName());//收货人姓名
  483. efastOrder.setOrderAddressTel(salesOrder.getSalesAddressTel());//收货人电话
  484. efastOrder.setOrderOpenId("1");//身份证
  485. String[] address = salesOrder.getSalesAddressInfo().split("-");
  486. efastOrder.setOrderProvince(address[0]);
  487. efastOrder.setOrderCity(address[1]);
  488. efastOrder.setOrderArea(address[2]);
  489. String myAddress = "";
  490. if(address.length > 4){
  491. myAddress = address[3] + address[4];
  492. }else{
  493. myAddress = address[3];
  494. }
  495. efastOrder.setOrderAddress(myAddress);
  496. efastOrder.setOrderStatus(2);
  497. efastOrder.setOrderNum(num); //产品数量
  498. efastOrder.setOrderAmount(amout); //商品总价
  499. efastOrder.setOrderPayMoney(amout); //已付款
  500. //支付方式
  501. switch (salesOrder.getSalesPayType()){
  502. case 1: //微信支付
  503. efastOrder.setOrderPayType(1);
  504. break;
  505. case 2: //现金支付
  506. efastOrder.setOrderPayType(2);
  507. break;
  508. case 3:
  509. break;
  510. case 4: //刷卡支付
  511. efastOrder.setOrderPayType(4);
  512. break;
  513. case 5: //支付宝支付
  514. efastOrder.setOrderPayType(5);
  515. break;
  516. default:
  517. efastOrder.setOrderPayType(2); //默认现金
  518. break;
  519. }
  520. efastOrder.setOrderProductBarCode(orderProductBarCode); //产品sku
  521. efastOrder.setOrderProductName(productName); //产品名称
  522. efastOrder.setOrderId(salesOrder.getSalesDealCode()); //外部交易号
  523. efastOrder.setOid(1);
  524. orderList.add(efastOrder);
  525. Integer status = 1;
  526. Map<String,Object> orderMap = new HashMap<String,Object>();
  527. try {
  528. orderMap = efastOrderService.sendOrder(orderList,itemList);
  529. } catch (Exception e) {
  530. status = 0;
  531. }
  532. List<EfastOrder> oList = (List<EfastOrder>) orderMap.get("efastOrderList");
  533. if(oList == null || oList.size() < 1){
  534. status = 0;
  535. }
  536. if(oList != null && oList.size() > 0){
  537. map.put("EfastOrderId",oList.get(0).getOrderId());
  538. SalesOrder sa = new SalesOrder();
  539. sa.setSalesId(salesOrder.getSalesId());
  540. sa.setSalesOrderId(oList.get(0).getOrderId());
  541. orderNum = salesOrderMapper.updateSalesOrder(sa);
  542. if (orderNum <= 0) {
  543. throw new RuntimeException("系统修改订单失败,订单回滚,Efast交易号:"+salesOrder.getSalesDealCode());
  544. }
  545. }else{
  546. throw new RuntimeException("添加Efast订单失败");
  547. }
  548. map.put("status",status);
  549. return map;
  550. }
  551. /**
  552. * 将原订单生成退货单
  553. * @param customerCommon
  554. * @param salesOrder
  555. * @return
  556. * @throws RuntimeException
  557. */
  558. @Transactional
  559. public void chargebackEfastOrder(CustomerCommon customerCommon, SalesOrder salesOrder,Integer status){
  560. SalesOrder order = new SalesOrder();
  561. order.setSalesId(salesOrder.getSalesId());
  562. order.setSalesOrderStatus(status); //换货状态
  563. Integer flag = salesOrderMapper.updateSalesOrder(order);
  564. if(flag < 0){
  565. throw new RuntimeException("系统生成退单失败");
  566. }
  567. EfastOrder efastOrder = new EfastOrder();
  568. List<EfastOrderItem> itemList = new ArrayList<>();
  569. for(int i=0;i<customerCommon.getSendProdcues().size();i++){
  570. SendProdcue sendProdcue = customerCommon.getSendProdcues().get(i);
  571. EfastOrderItem efastOrderItem = new EfastOrderItem();
  572. efastOrderItem.setItemColorBar(sendProdcue.getProductColor().getColorBar());
  573. efastOrderItem.setItemNum(sendProdcue.getSendProdcueNumber());
  574. efastOrderItem.setItemDiscount(sendProdcue.getProductColor().getColorPrice());
  575. itemList.add(efastOrderItem);
  576. }
  577. efastOrder.setOrderDealCode(salesOrder.getSalesDealCode()); //交易号
  578. efastOrder.setOrderPostFirm(salesOrder.getSalesPostFirm()); //物流代码
  579. efastOrder.setOrderDealCode(salesOrder.getSalesDealCode()); //物流单号
  580. efastOrder.setOrderId(salesOrder.getSalesOrderId()); //订单编号
  581. efastOrder.setItemList(itemList);
  582. JSONObject jsonObject = new JSONObject();
  583. try{
  584. jsonObject = efastOrderService.returnOrderFormEfast(efastOrder);
  585. logger.info("------将原订单生成退货订单返回数据:" + jsonObject + "------");
  586. /*if(jsonObject != null){
  587. Object obj;
  588. obj = jsonObject.get("return_sn");
  589. if(obj != null && !"".equals(obj)){
  590. fg = true;
  591. }else{
  592. obj = jsonObject.get("msg");
  593. if("系统订单 已作废".equals(obj)){
  594. fg = true;
  595. }
  596. }
  597. }*/
  598. }catch (Exception e){
  599. logger.info("------将原订单生成退货订单报错------");
  600. }
  601. }
  602. @Override
  603. public Integer updateCustomerInfo(CustomerInfo record) {
  604. return customerInfoMapper.updateCustomerInfo(record);
  605. }
  606. @Override
  607. public PagedResult<CustomerInfo> listCustomer(int pageNO, int pageSize, CustomerInfo customerInfo, boolean isTotalNum) {
  608. PageHelper.startPage(pageNO, pageSize, isTotalNum);
  609. //查询客诉列表
  610. List<CustomerInfo> customerList = customerInfoMapper.listCustomer(customerInfo);
  611. //查询售后维修集合
  612. Repair repairInfo = new Repair();
  613. repairInfo.setRepairState(1);
  614. List<Repair> repairList = repairMapper.listRepair(repairInfo);
  615. //查询售后退货集合
  616. BackGoods backGoodsInfo = new BackGoods();
  617. backGoodsInfo.setBackGoodsState(1);
  618. List<BackGoods> backGoodsList = backGoodsMapper.listBackGoods(backGoodsInfo);
  619. //查询售后无理由退货集合
  620. NoreasonBack noreasonBackInfo = new NoreasonBack();
  621. noreasonBackInfo.setNoreasonBackState(1);
  622. List<NoreasonBack> noreasonBackList = noreasonBackMapper.listNoreasonBack(noreasonBackInfo);
  623. //查询售后补发集合
  624. Reissue reissueInfo = new Reissue();
  625. reissueInfo.setReissueState(1);
  626. List<Reissue> reissueList = reissueMapper.listReissue(reissueInfo);
  627. //查询售后换新集合
  628. Renewed renewedInfo = new Renewed();
  629. renewedInfo.setRenewedState(1);
  630. List<Renewed> renewedList = renewedMapper.listRenewed(renewedInfo);
  631. if (customerList != null && customerList.size() > 0) {
  632. for (CustomerInfo customer : customerList) {
  633. switch (customer.getCustomerIsSolve().intValue()) {
  634. case 3: //换新
  635. for (Renewed renewed : renewedList) {
  636. if (renewed.getCustomerId().intValue() == customer.getCustomerId()) {
  637. customer.setBackStatus(renewed.getRenewedBackStatus());
  638. customer.setSendStatus(renewed.getRenewedSendStatus());
  639. customer.setSalesTime(renewed.getSalesPayTime());
  640. break;
  641. }
  642. }
  643. break;
  644. case 4: //维修
  645. for (Repair repair : repairList) {
  646. if (repair.getCustomerId().intValue() == customer.getCustomerId()) {
  647. customer.setBackStatus(repair.getRepairBackStatus());
  648. customer.setSendStatus(repair.getRepairSendStatus());
  649. customer.setSalesTime(repair.getSalesPayTime());
  650. break;
  651. }
  652. }
  653. break;
  654. case 5: //补发
  655. for (Reissue reissue : reissueList) {
  656. if (reissue.getCustomerId().intValue() == customer.getCustomerId()) {
  657. customer.setSendStatus(reissue.getReissueSendStatus());
  658. customer.setSalesTime(reissue.getSalesPayTime());
  659. break;
  660. }
  661. }
  662. break;
  663. case 6: //退货
  664. for (BackGoods backGoods : backGoodsList) {
  665. if (backGoods.getCustomerId().intValue() == customer.getCustomerId()) {
  666. customer.setBackStatus(backGoods.getBackGoodsBackStatus());
  667. customer.setSalesTime(backGoods.getSalesPayTime());
  668. break;
  669. }
  670. }
  671. break;
  672. case 7: //无理由退货
  673. for (NoreasonBack noreasonBack : noreasonBackList) {
  674. if (noreasonBack.getCustomerId().intValue() == customer.getCustomerId()) {
  675. customer.setBackStatus(noreasonBack.getNoreasonBackBackStatus());
  676. customer.setSalesTime(noreasonBack.getSalesPayTime());
  677. break;
  678. }
  679. }
  680. break;
  681. }
  682. }
  683. }
  684. return PageUtil.getPage(customerList);
  685. }
  686. @Override
  687. public Map<String,Object> getCustomerInfo(CustomerInfo customerInfo) {
  688. Map<String,Object> map = new HashMap<String,Object>();
  689. CustomerCommon customerCommon = new CustomerCommon();
  690. //查询客诉列表
  691. List<CustomerInfo> customerList = customerInfoMapper.listCustomer(customerInfo);
  692. if (customerList == null || customerList.size() == 0) {
  693. return null;
  694. }
  695. CustomerInfo customer = customerList.get(0);
  696. map.put("customer",customer);
  697. int orderId = 0;
  698. switch (customer.getCustomerIsSolve().intValue()) {
  699. case 3://换新
  700. Renewed renewedInfo = new Renewed();
  701. renewedInfo.setRenewedState(1);
  702. renewedInfo.setCustomerId(customerInfo.getCustomerId());
  703. //查询售后换新详情
  704. renewedInfo = renewedMapper.getRenewedInfo(renewedInfo);
  705. orderId = renewedInfo.getOrderId();
  706. customerCommon = CustomerCommon.getCustomerCommon(3,renewedInfo);
  707. customerCommon = customerService.selectProdcueAndFitting(customerCommon,3);
  708. break;
  709. case 4://维修
  710. Repair repairInfo = new Repair();
  711. repairInfo.setRepairState(1);
  712. repairInfo.setCustomerId(customerInfo.getCustomerId());
  713. //查询售后维修集合
  714. repairInfo = repairMapper.getRepairInfo(repairInfo);
  715. orderId = repairInfo.getOrderId();
  716. customerCommon = CustomerCommon.getCustomerCommon(4,repairInfo);
  717. customerCommon = customerService.selectProdcueAndFitting(customerCommon,4);
  718. break;
  719. case 5://补发
  720. Reissue reissueInfo = new Reissue();
  721. reissueInfo.setReissueState(1);
  722. reissueInfo.setCustomerId(customerInfo.getCustomerId());
  723. //查询售后补发集合
  724. List<Reissue> reissueList = reissueMapper.listReissue(reissueInfo);
  725. if (reissueList == null || reissueList.size() == 0) {
  726. return null;
  727. }
  728. reissueInfo = reissueList.get(0);
  729. orderId = reissueInfo.getOrderId();
  730. customerCommon = CustomerCommon.getCustomerCommon(5,reissueInfo);
  731. customerCommon = customerService.selectProdcueAndFitting(customerCommon,5);
  732. break;
  733. case 6://退货
  734. //查询售后退货集合
  735. BackGoods backGoodsInfo = new BackGoods();
  736. backGoodsInfo.setBackGoodsState(1);
  737. backGoodsInfo.setCustomerId(customerInfo.getCustomerId());
  738. List<BackGoods> backGoodsList = backGoodsMapper.listBackGoods(backGoodsInfo);
  739. if (backGoodsList == null || backGoodsList.size() == 0) {
  740. return null;
  741. }
  742. backGoodsInfo = backGoodsList.get(0);
  743. orderId = backGoodsInfo.getOrderId();
  744. customerCommon = CustomerCommon.getCustomerCommon(6,backGoodsInfo);
  745. customerCommon = customerService.selectProdcueAndFitting(customerCommon,6);
  746. break;
  747. case 7://无理由退货
  748. //查询售后无理由退货集合
  749. NoreasonBack noreasonBackInfo = new NoreasonBack();
  750. noreasonBackInfo.setNoreasonBackState(1);
  751. noreasonBackInfo.setCustomerId(customerInfo.getCustomerId());
  752. List<NoreasonBack> noreasonBackList = noreasonBackMapper.listNoreasonBack(noreasonBackInfo);
  753. if (noreasonBackList == null || noreasonBackList.size() == 0) {
  754. return null;
  755. }
  756. noreasonBackInfo = noreasonBackList.get(0);
  757. orderId = noreasonBackInfo.getOrderId();
  758. customerCommon = CustomerCommon.getCustomerCommon(7,noreasonBackInfo);
  759. customerCommon = customerService.selectProdcueAndFitting(customerCommon,7);
  760. break;
  761. }
  762. SalesOrder salesOrder = new SalesOrder();
  763. salesOrder.setSalesId(orderId);
  764. //查询订单信息
  765. List<SalesOrder> orderList = salesOrderMapper.listSalesOrder(salesOrder);
  766. if (orderList != null && orderList.size() > 0) {
  767. SalesOrder order = orderList.get(0);
  768. SalesOrderItem salesOrderItem = new SalesOrderItem();
  769. salesOrderItem.setItemOrderId(order.getSalesId());
  770. order.setSalesOrderItemList(salesOrderMapper.listSalesOrderItem(salesOrderItem));
  771. map.put("salesOrder",order);
  772. } else {
  773. map.put("salesOrder",null);
  774. }
  775. map.put("customerCommon",customerCommon);
  776. return map;
  777. }
  778. @Override
  779. public CustomerCommon selectProdcueAndFitting(CustomerCommon customerCommon, int isSolve) {
  780. if (customerCommon == null || customerCommon.getRelationId() == null) {
  781. return customerCommon;
  782. }
  783. List<SendProdcue> sendProdcues = null;
  784. List<SendFitting> sendFittings = null;
  785. List<ClosedFitting> closedfittings = null;
  786. List<ClosedProdcue> closedProdcues = null;
  787. SendProdcue sendProdcue = new SendProdcue();
  788. SendFitting sendFitting = new SendFitting();
  789. ClosedFitting fitting = new ClosedFitting();
  790. ClosedProdcue closedProdcue = new ClosedProdcue();
  791. switch (isSolve) {
  792. case 3://换新
  793. sendProdcue.setRelationId(customerCommon.getRelationId());
  794. sendProdcue.setSendProduceType(3);
  795. //查询寄出产品集合
  796. sendProdcues = sendProdcueMapper.listSendProdcue(sendProdcue);
  797. sendFitting.setRelationId(customerCommon.getRelationId());
  798. sendFitting.setSendFittingType(3);
  799. //查询寄出配件集合
  800. sendFittings = sendFittingMapper.listSendFitting(sendFitting);
  801. fitting.setRelationId(customerCommon.getRelationId());
  802. fitting.setClosedFittingType(3);
  803. //查询寄回配件集合
  804. closedfittings = closedFittingMapper.listClosedFitting(fitting);
  805. closedProdcue.setRelationId(customerCommon.getRelationId());
  806. closedProdcue.setClosedProdcueType(3);
  807. //查询寄回产品集合
  808. closedProdcues = closedProdcueMapper.listclosedProdcue(closedProdcue);
  809. break;
  810. case 4://维修
  811. sendProdcue.setRelationId(customerCommon.getRelationId());
  812. sendProdcue.setSendProduceType(4);
  813. //查询寄出产品集合
  814. sendProdcues = sendProdcueMapper.listSendProdcue(sendProdcue);
  815. sendFitting.setRelationId(customerCommon.getRelationId());
  816. sendFitting.setSendFittingType(4);
  817. //查询寄出配件集合
  818. sendFittings = sendFittingMapper.listSendFitting(sendFitting);
  819. fitting.setRelationId(customerCommon.getRelationId());
  820. fitting.setClosedFittingType(4);
  821. //查询寄回配件集合
  822. closedfittings = closedFittingMapper.listClosedFitting(fitting);
  823. closedProdcue.setRelationId(customerCommon.getRelationId());
  824. closedProdcue.setClosedProdcueType(4);
  825. //查询寄回产品集合
  826. closedProdcues = closedProdcueMapper.listclosedProdcue(closedProdcue);
  827. break;
  828. case 5://补发
  829. sendProdcue.setRelationId(customerCommon.getRelationId());
  830. sendProdcue.setSendProduceType(5);
  831. //查询寄出产品集合
  832. sendProdcues = sendProdcueMapper.listSendProdcue(sendProdcue);
  833. sendFitting.setRelationId(customerCommon.getRelationId());
  834. sendFitting.setSendFittingType(5);
  835. //查询寄出配件集合
  836. sendFittings = sendFittingMapper.listSendFitting(sendFitting);
  837. break;
  838. case 6://退货
  839. fitting.setRelationId(customerCommon.getRelationId());
  840. fitting.setClosedFittingType(6);
  841. //查询寄回配件集合
  842. closedfittings = closedFittingMapper.listClosedFitting(fitting);
  843. closedProdcue.setRelationId(customerCommon.getRelationId());
  844. closedProdcue.setClosedProdcueType(6);
  845. //查询寄回产品集合
  846. closedProdcues = closedProdcueMapper.listclosedProdcue(closedProdcue);
  847. break;
  848. case 7://无理由退货
  849. fitting.setRelationId(customerCommon.getRelationId());
  850. fitting.setClosedFittingType(7);
  851. //查询寄回配件集合
  852. closedfittings = closedFittingMapper.listClosedFitting(fitting);
  853. closedProdcue.setRelationId(customerCommon.getRelationId());
  854. closedProdcue.setClosedProdcueType(7);
  855. //查询寄回产品集合
  856. closedProdcues = closedProdcueMapper.listclosedProdcue(closedProdcue);
  857. break;
  858. }
  859. customerCommon.setClosedFittings(closedfittings);
  860. customerCommon.setClosedProdcues(closedProdcues);
  861. customerCommon.setSendProdcues(sendProdcues);
  862. customerCommon.setSendFittings(sendFittings);
  863. return customerCommon;
  864. }
  865. @Override
  866. public ProductType getcompanyAffiliation(Integer customerId) {
  867. return customerInfoMapper.getcompanyAffiliation(customerId);
  868. }
  869. @Override
  870. public BackGoods getBackGoods(BackGoods backGoods) {
  871. //获取退货集合
  872. List<BackGoods> backList = backGoodsMapper.listBackGoods(backGoods);
  873. if (backList == null || backList.size() == 0) {
  874. return null;
  875. }
  876. BackGoods goods = backList.get(0);
  877. ClosedProdcue closedProdcue = new ClosedProdcue();
  878. closedProdcue.setRelationId(goods.getBackGoodsId());
  879. closedProdcue.setClosedProdcueType(6);
  880. //查询寄回产品集合
  881. List<ClosedProdcue> prodcueList = closedProdcueMapper.listclosedProdcue(closedProdcue);
  882. ClosedFitting fitting = new ClosedFitting();
  883. fitting.setRelationId(goods.getBackGoodsId());
  884. fitting.setClosedFittingType(6);
  885. //查询寄回配件集合
  886. List<ClosedFitting> fittingList = closedFittingMapper.listClosedFitting(fitting);
  887. if (prodcueList != null && prodcueList.size() > 0) {
  888. goods.setClosedProdcues(prodcueList);
  889. }
  890. if (fittingList != null && fittingList.size() > 0) {
  891. goods.setClosedFittings(fittingList);
  892. }
  893. return goods;
  894. }
  895. @Override
  896. public NoreasonBack getNoreasonBack(NoreasonBack noreasonBack) {
  897. //获取无理由退货
  898. List<NoreasonBack> backList = noreasonBackMapper.listNoreasonBack(noreasonBack);
  899. if (backList == null || backList.size() == 0) {
  900. return null;
  901. }
  902. NoreasonBack noreasonBackInfo = backList.get(0);
  903. ClosedProdcue closedProdcue = new ClosedProdcue();
  904. closedProdcue.setRelationId(noreasonBackInfo.getNoreasonBackId());
  905. closedProdcue.setClosedProdcueType(7);
  906. //查询寄回产品集合
  907. List<ClosedProdcue> prodcueList = closedProdcueMapper.listclosedProdcue(closedProdcue);
  908. ClosedFitting fitting = new ClosedFitting();
  909. fitting.setRelationId(noreasonBackInfo.getNoreasonBackId());
  910. fitting.setClosedFittingType(7);
  911. //查询寄回配件集合
  912. List<ClosedFitting> fittingList = closedFittingMapper.listClosedFitting(fitting);
  913. if (prodcueList != null && prodcueList.size() > 0) {
  914. noreasonBackInfo.setClosedProdcues(prodcueList);
  915. }
  916. if (fittingList != null && fittingList.size() > 0) {
  917. noreasonBackInfo.setClosedFittings(fittingList);
  918. }
  919. return noreasonBackInfo;
  920. }
  921. @Override
  922. public Reissue getReissue(Reissue reissue) {
  923. //查询售后补发信息
  924. List<Reissue> reissueList = reissueMapper.listReissue(reissue);
  925. if (reissueList == null || reissueList.size() == 0) {
  926. return null;
  927. }
  928. Reissue reissueInfo = reissueList.get(0);
  929. SendProdcue sendProdcue = new SendProdcue();
  930. sendProdcue.setRelationId(reissueInfo.getReissueId());
  931. sendProdcue.setSendProduceType(5);
  932. //查询寄送产品集合
  933. List<SendProdcue> sendProdcueList = sendProdcueMapper.listSendProdcue(sendProdcue);
  934. SendFitting sendFitting = new SendFitting();
  935. sendFitting.setRelationId(reissueInfo.getReissueId());
  936. sendFitting.setSendFittingType(5);
  937. //查询寄送配件集合
  938. List<SendFitting> sendFittingList = sendFittingMapper.listSendFitting(sendFitting);
  939. if (sendProdcueList != null && sendProdcueList.size() > 0) {
  940. reissueInfo.setSendProdcues(sendProdcueList);
  941. }
  942. if (sendFittingList != null && sendFittingList.size() > 0) {
  943. reissueInfo.setSendFittings(sendFittingList);
  944. }
  945. return reissueInfo;
  946. }
  947. @Override
  948. public Renewed getRenewedInfo(Renewed renewed) {
  949. renewed = renewedMapper.getRenewedInfo(renewed);
  950. if (renewed == null){
  951. return null;
  952. }
  953. ClosedProdcue closedProdcue = new ClosedProdcue();
  954. closedProdcue.setRelationId(renewed.getRenewedId());
  955. closedProdcue.setClosedProdcueType(3);
  956. //查询寄回产品集合
  957. List<ClosedProdcue> prodcueList = closedProdcueMapper.listclosedProdcue(closedProdcue);
  958. ClosedFitting fitting = new ClosedFitting();
  959. fitting.setRelationId(renewed.getRenewedId());
  960. fitting.setClosedFittingType(3);
  961. //查询寄回配件集合
  962. List<ClosedFitting> fittingList = closedFittingMapper.listClosedFitting(fitting);
  963. SendProdcue sendProdcue = new SendProdcue();
  964. sendProdcue.setRelationId(renewed.getRenewedId());
  965. sendProdcue.setSendProduceType(3);
  966. //查询寄送产品集合
  967. List<SendProdcue> sendProdcueList = sendProdcueMapper.listSendProdcue(sendProdcue);
  968. SendFitting sendFitting = new SendFitting();
  969. sendFitting.setRelationId(renewed.getRenewedId());
  970. sendFitting.setSendFittingType(3);
  971. //查询寄送配件集合
  972. List<SendFitting> sendFittingList = sendFittingMapper.listSendFitting(sendFitting);
  973. if (prodcueList != null && prodcueList.size() > 0) {
  974. renewed.setClosedProdcues(prodcueList);
  975. }
  976. if (fittingList != null && fittingList.size() > 0) {
  977. renewed.setClosedFittings(fittingList);
  978. }
  979. if (sendProdcueList != null && sendProdcueList.size() > 0) {
  980. renewed.setSendProdcues(sendProdcueList);
  981. }
  982. if (sendFittingList != null && sendFittingList.size() > 0) {
  983. renewed.setSendFittings(sendFittingList);
  984. }
  985. return renewed;
  986. }
  987. @Override
  988. public Repair getRepairInfo(Repair repair) {
  989. repair = repairMapper.getRepairInfo(repair);
  990. if (repair == null) {
  991. return null;
  992. }
  993. ClosedProdcue closedProdcue = new ClosedProdcue();
  994. closedProdcue.setRelationId(repair.getRepairId());
  995. closedProdcue.setClosedProdcueType(4);
  996. //查询寄回产品集合
  997. List<ClosedProdcue> prodcueList = closedProdcueMapper.listclosedProdcue(closedProdcue);
  998. ClosedFitting fitting = new ClosedFitting();
  999. fitting.setRelationId(repair.getRepairId());
  1000. fitting.setClosedFittingType(4);
  1001. //查询寄回配件集合
  1002. List<ClosedFitting> fittingList = closedFittingMapper.listClosedFitting(fitting);
  1003. SendProdcue sendProdcue = new SendProdcue();
  1004. sendProdcue.setRelationId(repair.getRepairId());
  1005. sendProdcue.setSendProduceType(4);
  1006. //查询寄送产品集合
  1007. List<SendProdcue> sendProdcueList = sendProdcueMapper.listSendProdcue(sendProdcue);
  1008. SendFitting sendFitting = new SendFitting();
  1009. sendFitting.setRelationId(repair.getRepairId());
  1010. sendFitting.setSendFittingType(4);
  1011. //查询寄送配件集合
  1012. List<SendFitting> sendFittingList = sendFittingMapper.listSendFitting(sendFitting);
  1013. if (prodcueList != null && prodcueList.size() > 0) {
  1014. repair.setClosedProdcues(prodcueList);
  1015. }
  1016. if (fittingList != null && fittingList.size() > 0) {
  1017. repair.setClosedFittings(fittingList);
  1018. }
  1019. if (sendProdcueList != null && sendProdcueList.size() > 0) {
  1020. repair.setSendProdcues(sendProdcueList);
  1021. }
  1022. if (sendFittingList != null && sendFittingList.size() > 0) {
  1023. repair.setSendFittings(sendFittingList);
  1024. }
  1025. return repair;
  1026. }
  1027. }