CustomerServiceImpl.java 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679
  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.EfastOrder;
  8. import com.iamberry.rst.core.order.OrderItem;
  9. import com.iamberry.rst.core.order.Product;
  10. import com.iamberry.rst.core.page.PagedResult;
  11. import com.iamberry.rst.faces.cm.CustomerService;
  12. import com.iamberry.rst.service.address.mapper.AddressMapper;
  13. import com.iamberry.rst.service.cm.mapper.*;
  14. import com.iamberry.rst.service.order.EfastOrderServiceImpl;
  15. import com.iamberry.rst.service.product.mapper.ProductMapper;
  16. import com.iamberry.rst.util.PageUtil;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.stereotype.Service;
  19. import org.springframework.transaction.annotation.Transactional;
  20. import java.util.ArrayList;
  21. import java.util.HashMap;
  22. import java.util.List;
  23. import java.util.Map;
  24. @Service
  25. public class CustomerServiceImpl implements CustomerService {
  26. @Autowired
  27. private CustomerInfoMapper customerInfoMapper;
  28. @Autowired
  29. private RepairMapper repairMapper;
  30. @Autowired
  31. private BackGoodsMapper backGoodsMapper;
  32. @Autowired
  33. private NoreasonBackMapper noreasonBackMapper;
  34. @Autowired
  35. private ReissueMapper reissueMapper;
  36. @Autowired
  37. private RenewedMapper renewedMapper;
  38. @Autowired
  39. private ClosedFittingMapper closedFittingMapper;
  40. @Autowired
  41. private ClosedProdcueMapper closedProdcueMapper;
  42. @Autowired
  43. private SendProdcueMapper sendProdcueMapper;
  44. @Autowired
  45. private SendFittingMapper sendFittingMapper;
  46. @Autowired
  47. private SalesOrderMapper salesOrderMapper;
  48. @Autowired
  49. private CustomerService customerService;
  50. @Autowired
  51. private VisitMapper visitMapper; //回访
  52. @Autowired
  53. private ComplaintSignclosedInfoMapper complaintSignclosedInfoMapper; //仓储
  54. @Autowired
  55. private ComplaintDetectInfoMapper complaintDetectInfoMapper; //品检
  56. @Autowired
  57. private QuestionDescribeMapper questionDescribeMapper; //客诉问题
  58. @Autowired
  59. private AddressMapper addressMapper; //地址
  60. @Autowired
  61. private ProductMapper productMapper; //产品
  62. @Override
  63. public CustomerInfo getCustomerInfo(Integer customerId) {
  64. return customerInfoMapper.getCustomerInfo(customerId);
  65. }
  66. @Override
  67. @Transactional
  68. public Integer saveCustomerInfo(CustomerInfo customerInfo,SalesOrder salesOrder) throws Exception{
  69. //添加客诉基本信息
  70. Integer flag = 0;
  71. flag = customerInfoMapper.insert(customerInfo);
  72. if(flag < 1){
  73. throw new Exception("添加客诉失败");
  74. }
  75. QuestionDescribe questionDescribe = new QuestionDescribe();
  76. questionDescribe.setCustomerId(customerInfo.getCustomerId());
  77. questionDescribe.setDescribeTitle(customerInfo.getDescribeTitle()); //客诉问题标题
  78. questionDescribe.setDescribeContent(customerInfo.getDescribeContent()); //客诉问题描述
  79. questionDescribe.setDescribeHandleDesc(customerInfo.getDescribeHandleDesc()); //处理描述
  80. flag = questionDescribeMapper.insert(questionDescribe);
  81. if(flag < 1){
  82. throw new Exception("添加客诉失败");
  83. }
  84. if ("2".equals(customerInfo.getCustomerIsVisit())) {
  85. Visit visit = new Visit();
  86. visit.setCustomerId(customerInfo.getCustomerId());
  87. visit.setAdminId(customerInfo.getVisitAdminId());
  88. visit.setVisitName(customerInfo.getVisitName());
  89. visit.setVisitTel(customerInfo.getVisitTel());
  90. visit.setVisitDate(customerInfo.getVisitDate());
  91. visit.setVisitTimeSelect(customerInfo.getVisitTimeSelect());
  92. visit.setVisitStatus(1); //回访状态
  93. flag = visitMapper.addVisitInfo(visit);
  94. if(flag < 1){
  95. throw new Exception("添加客诉失败");
  96. }
  97. }
  98. if (2 == customerInfo.getCustomerCounselType()) {
  99. salesOrder = salesOrderMapper.getSalesOrderById(salesOrder.getSalesId());
  100. CustomerCommon customerCommon = customerInfo.getCustomerCommon();
  101. customerCommon.setCustomerId(customerInfo.getCustomerId()); //设置客诉id
  102. customerCommon.setRelationBackStatus(1); //寄回状态 1:未寄回
  103. customerCommon.setRelationSendStatus(1); //寄送状态 1:未寄送
  104. customerCommon.setRelationState(1); //状态 默认使用中
  105. customerCommon.setOrderId(salesOrder.getSalesId()); //订单id
  106. ComplaintDetectInfo complaintDetectInfo = new ComplaintDetectInfo(); //品质检测
  107. ComplaintSignclosedInfo complaintSignclosedInfo = new ComplaintSignclosedInfo(); //客诉-签收表
  108. Map<String,Object> map;
  109. switch (customerInfo.getCustomerIsSolve()) { //处理结果: 1:已解决 2:未解决 3:换新 4:维修 5:补发 6:退货 7:无理由退货
  110. case 3: //换新
  111. map = this.sendEfastOrder(); //换新需要向Efast推送一条换新发货的订单
  112. if(map.get("status") == 1){
  113. customerCommon.setRelationBackEfastOrderId(String.valueOf(map.get("EfastOrderId"))); //存放Efast订单编号
  114. complaintSignclosedInfo.setNewEfastId(String.valueOf(map.get("EfastOrderId"))); //仓储签收表添加 发货的Efast订单id
  115. }else{
  116. throw new Exception("换新创建Efast订单失败");
  117. }
  118. complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId()); //原有订单的Efast的订单编号
  119. this.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
  120. complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
  121. this.saveComplaintDetectInfo(complaintDetectInfo,customerCommon); //创建品检
  122. break;
  123. case 4: //维修
  124. map = this.sendEfastOrder(); //维修需要向Efast推送一条维修发货的订单
  125. if(map.get("status") == 1){
  126. customerCommon.setRelationBackEfastOrderId(String.valueOf(map.get("EfastOrderId"))); //存放Efast订单编号
  127. complaintSignclosedInfo.setNewEfastId(String.valueOf(map.get("EfastOrderId"))); //仓储签收表添加 发货的Efast订单id
  128. }else{
  129. throw new Exception("维修创建Efast订单失败");
  130. }
  131. complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId()); //原有订单的Efast的订单编号
  132. this.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
  133. complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
  134. this.saveComplaintDetectInfo(complaintDetectInfo,customerCommon); //创建品检
  135. break;
  136. case 5: //补发 不用创建仓储签收任务
  137. map = this.sendEfastOrder(); //补发需要向Efast推送一条发货的订单
  138. if(map.get("status") == 1){
  139. customerCommon.setRelationBackEfastOrderId(String.valueOf(map.get("EfastOrderId"))); //存放Efast订单编号
  140. complaintSignclosedInfo.setNewEfastId(String.valueOf(map.get("EfastOrderId"))); //仓储签收表添加 发货的Efast订单id
  141. }else{
  142. throw new Exception("补发创建Efast订单失败");
  143. }
  144. break;
  145. case 6: //退货
  146. complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId()); //原有订单的Efast的订单编号
  147. this.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
  148. complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
  149. this.saveComplaintDetectInfo(complaintDetectInfo,customerCommon); //创建品检
  150. break;
  151. case 7: //无理由退货
  152. complaintSignclosedInfo.setOldEfastId(salesOrder.getSalesOrderId()); //原有订单的Efast的订单编号
  153. this.saveComplaintSignclosedInfo(complaintSignclosedInfo,customerCommon);//创建仓储任务
  154. complaintDetectInfo.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储签收id
  155. this.saveComplaintDetectInfo(complaintDetectInfo,customerCommon); //创建品检
  156. break;
  157. }
  158. customerCommon.setSignclosedId(complaintSignclosedInfo.getSignclosedId()); //设置仓储id
  159. Object object = CustomerCommon.getRelation(customerInfo.getCustomerIsSolve(), customerCommon);
  160. Integer relationId;
  161. switch (customerInfo.getCustomerIsSolve()) { //处理结果: 1:已解决 2:未解决 3:换新 4:维修 5:补发 6:退货 7:无理由退货
  162. case 3: //换新
  163. Renewed renewed = (Renewed) object;
  164. flag = renewedMapper.insert(renewed);
  165. relationId = renewed.getRenewedId();
  166. break;
  167. case 4: //维修
  168. Repair repair = (Repair) object;
  169. flag = repairMapper.insert(repair);
  170. relationId = repair.getRepairId();
  171. break;
  172. case 5: //补发
  173. Reissue reissue = (Reissue) object;
  174. flag = reissueMapper.insert(reissue);
  175. relationId = reissue.getReissueId();
  176. break;
  177. case 6: //退货
  178. BackGoods backGoods = (BackGoods) object;
  179. flag = backGoodsMapper.insert(backGoods);
  180. relationId = backGoods.getBackGoodsId();
  181. break;
  182. case 7: //无理由退货
  183. NoreasonBack noreasonBack = (NoreasonBack) object;
  184. flag = noreasonBackMapper.insert(noreasonBack);
  185. relationId = noreasonBack.getNoreasonBackId();
  186. break;
  187. }
  188. if (flag < 1) {
  189. throw new Exception("添加客诉失败");
  190. }
  191. }
  192. return flag;
  193. }
  194. /**
  195. * 添加品检
  196. * @param complaintDetectInfo
  197. * @param customerCommon
  198. * @return
  199. */
  200. @Transactional
  201. public void saveComplaintDetectInfo(ComplaintDetectInfo complaintDetectInfo,CustomerCommon customerCommon) throws Exception{
  202. Integer flag = 0;
  203. List<ComplaintDetectInfo> complaintDetectInfoList = new ArrayList<ComplaintDetectInfo>();
  204. complaintDetectInfo.setCustomerId(customerCommon.getCustomerId()); //添加客诉
  205. complaintDetectInfo.setDetectState(1); //状态 1待仓库转入
  206. complaintDetectInfo.setDetectRevolutionProduced(1); //是否转入生产部门 1待转入
  207. for(int i=0 ;i< customerCommon.getClosedProdcues().size();i++){
  208. ClosedProdcue closedProdcue = customerCommon.getClosedProdcues().get(i);
  209. for(int j=0; j<closedProdcue.getClosedProdcueNumber();j++){
  210. complaintDetectInfo.setProductId(closedProdcue.getProductId());
  211. Product product = productMapper.getProductById(closedProdcue.getProductId());
  212. complaintDetectInfo.setDetectProductType(product.getProductType());
  213. complaintDetectInfo.setDetectProductNumber(product.getProductNumber());
  214. }
  215. complaintDetectInfoList.add(complaintDetectInfo);
  216. }
  217. if(complaintDetectInfoList.size() > 0){
  218. flag = complaintDetectInfoMapper.insertList(complaintDetectInfoList);
  219. }
  220. if(flag < 1){
  221. throw new Exception("添加品检失败");
  222. }
  223. }
  224. /**
  225. * 添加仓储
  226. * @param customerCommon
  227. * @return
  228. */
  229. @Transactional
  230. public void saveComplaintSignclosedInfo(ComplaintSignclosedInfo complaintSignclosedInfo,CustomerCommon customerCommon)throws Exception{
  231. Integer flag;
  232. complaintSignclosedInfo.setSignclosedType(1); //客诉寄回
  233. complaintSignclosedInfo.setSignclosedIsQuality(1); //是否平品检 1:需要品检
  234. complaintSignclosedInfo.setSignclosedIsInto(2); //是否已转入品检 2:未转入品检
  235. complaintSignclosedInfo.setSignclosedState(2); //处理状态 2:未签收
  236. complaintSignclosedInfo.setSignclosedObjectsState(3); //物件状态 3:暂未签收
  237. complaintSignclosedInfo.setSignclosedCustomerId(customerCommon.getCustomerId()); //客诉id
  238. flag = complaintSignclosedInfoMapper.insert(complaintSignclosedInfo);
  239. if(flag < 1){
  240. throw new Exception("添加仓储任务失败");
  241. }
  242. //添加代签收表
  243. }
  244. /**
  245. * 像Efast推送订单 仅换新,维修 ,补发
  246. * @return
  247. */
  248. public Map<String,Object> sendEfastOrder(){
  249. Map<String,Object> map = new HashMap<String,Object>();
  250. EfastOrderServiceImpl efastOrderService = new EfastOrderServiceImpl();
  251. List<EfastOrder> orderList = new ArrayList<EfastOrder>();
  252. List<OrderItem> itemList = new ArrayList<OrderItem>();
  253. // try {
  254. // efastOrderService.sendOrderInfoToEfast(orderList,itemList);
  255. // } catch (Exception e) {
  256. // flag = 0;
  257. // }
  258. map.put("status",1);
  259. map.put("EfastOrderId","xxxxxxxxxxxxxxxxx");
  260. return map;
  261. }
  262. @Override
  263. public Integer updateCustomerInfo(CustomerInfo record) {
  264. return customerInfoMapper.updateCustomerInfo(record);
  265. }
  266. @Override
  267. public PagedResult<CustomerInfo> listCustomer(int pageNO, int pageSize, CustomerInfo customerInfo, boolean isTotalNum) {
  268. PageHelper.startPage(pageNO, pageSize, isTotalNum);
  269. //查询客诉列表
  270. List<CustomerInfo> customerList = customerInfoMapper.listCustomer(customerInfo);
  271. //查询售后维修集合
  272. Repair repairInfo = new Repair();
  273. repairInfo.setRepairState(1);
  274. List<Repair> repairList = repairMapper.listRepair(repairInfo);
  275. //查询售后退货集合
  276. BackGoods backGoodsInfo = new BackGoods();
  277. backGoodsInfo.setBackGoodsState(1);
  278. List<BackGoods> backGoodsList = backGoodsMapper.listBackGoods(backGoodsInfo);
  279. //查询售后无理由退货集合
  280. NoreasonBack noreasonBackInfo = new NoreasonBack();
  281. noreasonBackInfo.setNoreasonBackState(1);
  282. List<NoreasonBack> noreasonBackList = noreasonBackMapper.listNoreasonBack(noreasonBackInfo);
  283. //查询售后补发集合
  284. Reissue reissueInfo = new Reissue();
  285. reissueInfo.setReissueState(1);
  286. List<Reissue> reissueList = reissueMapper.listReissue(reissueInfo);
  287. //查询售后换新集合
  288. Renewed renewedInfo = new Renewed();
  289. renewedInfo.setRenewedState(1);
  290. List<Renewed> renewedList = renewedMapper.listRenewed(renewedInfo);
  291. if (customerList != null && customerList.size() > 0) {
  292. for (CustomerInfo customer : customerList) {
  293. switch (customer.getCustomerIsSolve().intValue()) {
  294. case 3: //换新
  295. for (Renewed renewed : renewedList) {
  296. if (renewed.getCustomerId().intValue() == customer.getCustomerId()) {
  297. customer.setBackStatus(renewed.getRenewedBackStatus());
  298. customer.setSendStatus(renewed.getRenewedSendStatus());
  299. customer.setSalesTime(renewed.getSalesPayTime());
  300. break;
  301. }
  302. }
  303. break;
  304. case 4: //维修
  305. for (Repair repair : repairList) {
  306. if (repair.getCustomerId().intValue() == customer.getCustomerId()) {
  307. customer.setBackStatus(repair.getRepairBackStatus());
  308. customer.setSendStatus(repair.getRepairSendStatus());
  309. customer.setSalesTime(repair.getSalesPayTime());
  310. break;
  311. }
  312. }
  313. break;
  314. case 5: //补发
  315. for (Reissue reissue : reissueList) {
  316. if (reissue.getCustomerId().intValue() == customer.getCustomerId()) {
  317. customer.setSendStatus(reissue.getReissueSendStatus());
  318. customer.setSalesTime(reissue.getSalesPayTime());
  319. break;
  320. }
  321. }
  322. break;
  323. case 6: //退货
  324. for (BackGoods backGoods : backGoodsList) {
  325. if (backGoods.getCustomerId().intValue() == customer.getCustomerId()) {
  326. customer.setBackStatus(backGoods.getBackGoodsBackStatus());
  327. customer.setSalesTime(backGoods.getSalesPayTime());
  328. break;
  329. }
  330. }
  331. break;
  332. case 7: //无理由退货
  333. for (NoreasonBack noreasonBack : noreasonBackList) {
  334. if (noreasonBack.getCustomerId().intValue() == customer.getCustomerId()) {
  335. customer.setBackStatus(noreasonBack.getNoreasonBackBackStatus());
  336. customer.setSalesTime(noreasonBack.getSalesPayTime());
  337. break;
  338. }
  339. }
  340. break;
  341. }
  342. }
  343. }
  344. return PageUtil.getPage(customerList);
  345. }
  346. @Override
  347. public Map<String,Object> getCustomerInfo(CustomerInfo customerInfo) {
  348. Map<String,Object> map = new HashMap<String,Object>();
  349. CustomerCommon customerCommon = new CustomerCommon();
  350. //查询客诉列表
  351. List<CustomerInfo> customerList = customerInfoMapper.listCustomer(customerInfo);
  352. if (customerList == null || customerList.size() == 0) {
  353. return null;
  354. }
  355. CustomerInfo customer = customerList.get(0);
  356. map.put("customer",customer);
  357. int orderId = 0;
  358. switch (customer.getCustomerIsSolve().intValue()) {
  359. case 3://换新
  360. Renewed renewedInfo = new Renewed();
  361. renewedInfo.setRenewedState(1);
  362. renewedInfo.setCustomerId(customerInfo.getCustomerId());
  363. //查询售后换新详情
  364. renewedInfo = renewedMapper.getRenewedInfo(renewedInfo);
  365. orderId = renewedInfo.getOrderId();
  366. customerCommon = CustomerCommon.getCustomerCommon(3,renewedInfo);
  367. customerCommon = customerService.selectProdcueAndFitting(customerCommon,3);
  368. break;
  369. case 4://维修
  370. Repair repairInfo = new Repair();
  371. repairInfo.setRepairState(1);
  372. repairInfo.setCustomerId(customerInfo.getCustomerId());
  373. //查询售后维修集合
  374. repairInfo = repairMapper.getRepairInfo(repairInfo);
  375. orderId = repairInfo.getOrderId();
  376. customerCommon = CustomerCommon.getCustomerCommon(4,repairInfo);
  377. customerCommon = customerService.selectProdcueAndFitting(customerCommon,4);
  378. break;
  379. case 5://补发
  380. Reissue reissueInfo = new Reissue();
  381. reissueInfo.setReissueState(1);
  382. reissueInfo.setCustomerId(customerInfo.getCustomerId());
  383. //查询售后补发集合
  384. List<Reissue> reissueList = reissueMapper.listReissue(reissueInfo);
  385. if (reissueList == null || reissueList.size() == 0) {
  386. return null;
  387. }
  388. reissueInfo = reissueList.get(0);
  389. orderId = reissueInfo.getOrderId();
  390. customerCommon = CustomerCommon.getCustomerCommon(5,reissueInfo);
  391. customerCommon = customerService.selectProdcueAndFitting(customerCommon,5);
  392. break;
  393. case 6://退货
  394. //查询售后退货集合
  395. BackGoods backGoodsInfo = new BackGoods();
  396. backGoodsInfo.setBackGoodsState(1);
  397. backGoodsInfo.setCustomerId(customerInfo.getCustomerId());
  398. List<BackGoods> backGoodsList = backGoodsMapper.listBackGoods(backGoodsInfo);
  399. if (backGoodsList == null || backGoodsList.size() == 0) {
  400. return null;
  401. }
  402. backGoodsInfo = backGoodsList.get(0);
  403. orderId = backGoodsInfo.getOrderId();
  404. customerCommon = CustomerCommon.getCustomerCommon(6,backGoodsInfo);
  405. customerCommon = customerService.selectProdcueAndFitting(customerCommon,6);
  406. break;
  407. case 7://无理由退货
  408. //查询售后无理由退货集合
  409. NoreasonBack noreasonBackInfo = new NoreasonBack();
  410. noreasonBackInfo.setNoreasonBackState(1);
  411. noreasonBackInfo.setCustomerId(customerInfo.getCustomerId());
  412. List<NoreasonBack> noreasonBackList = noreasonBackMapper.listNoreasonBack(noreasonBackInfo);
  413. if (noreasonBackList == null || noreasonBackList.size() == 0) {
  414. return null;
  415. }
  416. noreasonBackInfo = noreasonBackList.get(0);
  417. orderId = noreasonBackInfo.getOrderId();
  418. customerCommon = CustomerCommon.getCustomerCommon(7,noreasonBackInfo);
  419. customerCommon = customerService.selectProdcueAndFitting(customerCommon,7);
  420. break;
  421. }
  422. SalesOrder salesOrder = new SalesOrder();
  423. salesOrder.setSalesId(orderId);
  424. //查询订单信息
  425. List<SalesOrder> orderList = salesOrderMapper.listSalesOrder(salesOrder);
  426. if (orderList != null && orderList.size() > 0) {
  427. SalesOrder order = orderList.get(0);
  428. SalesOrderItem salesOrderItem = new SalesOrderItem();
  429. salesOrderItem.setItemOrderId(order.getSalesId());
  430. order.setSalesOrderItemList(salesOrderMapper.listSalesOrderItem(salesOrderItem));
  431. map.put("salesOrder",order);
  432. } else {
  433. map.put("salesOrder",null);
  434. }
  435. map.put("customerCommon",customerCommon);
  436. return map;
  437. }
  438. @Override
  439. public CustomerCommon selectProdcueAndFitting(CustomerCommon customerCommon, int isSolve) {
  440. if (customerCommon == null || customerCommon.getRelationId() == null) {
  441. return customerCommon;
  442. }
  443. List<SendProdcue> sendProdcues = null;
  444. List<SendFitting> sendFittings = null;
  445. List<ClosedFitting> closedfittings = null;
  446. List<ClosedProdcue> closedProdcues = null;
  447. SendProdcue sendProdcue = new SendProdcue();
  448. SendFitting sendFitting = new SendFitting();
  449. ClosedFitting fitting = new ClosedFitting();
  450. ClosedProdcue closedProdcue = new ClosedProdcue();
  451. switch (isSolve) {
  452. case 3://换新
  453. sendProdcue.setRelationId(customerCommon.getRelationId());
  454. sendProdcue.setSendProduceType(3);
  455. //查询寄出产品集合
  456. sendProdcues = sendProdcueMapper.listSendProdcue(sendProdcue);
  457. sendFitting.setRelationId(customerCommon.getRelationId());
  458. sendFitting.setSendFittingType(3);
  459. //查询寄出配件集合
  460. sendFittings = sendFittingMapper.listSendFitting(sendFitting);
  461. fitting.setRelationId(customerCommon.getRelationId());
  462. fitting.setClosedFittingType(3);
  463. //查询寄回配件集合
  464. closedfittings = closedFittingMapper.listClosedFitting(fitting);
  465. closedProdcue.setRelationId(customerCommon.getRelationId());
  466. closedProdcue.setClosedProdcueType(3);
  467. //查询寄回产品集合
  468. closedProdcues = closedProdcueMapper.listclosedProdcue(closedProdcue);
  469. break;
  470. case 4://维修
  471. sendProdcue.setRelationId(customerCommon.getRelationId());
  472. sendProdcue.setSendProduceType(4);
  473. //查询寄出产品集合
  474. sendProdcues = sendProdcueMapper.listSendProdcue(sendProdcue);
  475. sendFitting.setRelationId(customerCommon.getRelationId());
  476. sendFitting.setSendFittingType(4);
  477. //查询寄出配件集合
  478. sendFittings = sendFittingMapper.listSendFitting(sendFitting);
  479. fitting.setRelationId(customerCommon.getRelationId());
  480. fitting.setClosedFittingType(4);
  481. //查询寄回配件集合
  482. closedfittings = closedFittingMapper.listClosedFitting(fitting);
  483. closedProdcue.setRelationId(customerCommon.getRelationId());
  484. closedProdcue.setClosedProdcueType(4);
  485. //查询寄回产品集合
  486. closedProdcues = closedProdcueMapper.listclosedProdcue(closedProdcue);
  487. break;
  488. case 5://补发
  489. sendProdcue.setRelationId(customerCommon.getRelationId());
  490. sendProdcue.setSendProduceType(5);
  491. //查询寄出产品集合
  492. sendProdcues = sendProdcueMapper.listSendProdcue(sendProdcue);
  493. sendFitting.setRelationId(customerCommon.getRelationId());
  494. sendFitting.setSendFittingType(5);
  495. //查询寄出配件集合
  496. sendFittings = sendFittingMapper.listSendFitting(sendFitting);
  497. break;
  498. case 6://退货
  499. fitting.setRelationId(customerCommon.getRelationId());
  500. fitting.setClosedFittingType(6);
  501. //查询寄回配件集合
  502. closedfittings = closedFittingMapper.listClosedFitting(fitting);
  503. closedProdcue.setRelationId(customerCommon.getRelationId());
  504. closedProdcue.setClosedProdcueType(6);
  505. //查询寄回产品集合
  506. closedProdcues = closedProdcueMapper.listclosedProdcue(closedProdcue);
  507. break;
  508. case 7://无理由退货
  509. fitting.setRelationId(customerCommon.getRelationId());
  510. fitting.setClosedFittingType(7);
  511. //查询寄回配件集合
  512. closedfittings = closedFittingMapper.listClosedFitting(fitting);
  513. closedProdcue.setRelationId(customerCommon.getRelationId());
  514. closedProdcue.setClosedProdcueType(7);
  515. //查询寄回产品集合
  516. closedProdcues = closedProdcueMapper.listclosedProdcue(closedProdcue);
  517. break;
  518. }
  519. customerCommon.setClosedFittings(closedfittings);
  520. customerCommon.setClosedProdcues(closedProdcues);
  521. customerCommon.setSendProdcues(sendProdcues);
  522. customerCommon.setSendFittings(sendFittings);
  523. return customerCommon;
  524. }
  525. @Override
  526. public BackGoods getBackGoods(BackGoods backGoods) {
  527. //获取退货集合
  528. List<BackGoods> backList = backGoodsMapper.listBackGoods(backGoods);
  529. if (backList == null || backList.size() == 0) {
  530. return null;
  531. }
  532. BackGoods goods = backList.get(0);
  533. ClosedProdcue closedProdcue = new ClosedProdcue();
  534. closedProdcue.setRelationId(goods.getBackGoodsId());
  535. closedProdcue.setClosedProdcueType(6);
  536. //查询寄回产品集合
  537. List<ClosedProdcue> prodcueList = closedProdcueMapper.listclosedProdcue(closedProdcue);
  538. ClosedFitting fitting = new ClosedFitting();
  539. fitting.setRelationId(goods.getBackGoodsId());
  540. fitting.setClosedFittingType(6);
  541. //查询寄回配件集合
  542. List<ClosedFitting> fittingList = closedFittingMapper.listClosedFitting(fitting);
  543. if (prodcueList != null && prodcueList.size() > 0) {
  544. goods.setClosedProdcues(prodcueList);
  545. }
  546. if (fittingList != null && fittingList.size() > 0) {
  547. goods.setClosedFittings(fittingList);
  548. }
  549. return goods;
  550. }
  551. @Override
  552. public NoreasonBack getNoreasonBack(NoreasonBack noreasonBack) {
  553. //获取无理由退货
  554. List<NoreasonBack> backList = noreasonBackMapper.listNoreasonBack(noreasonBack);
  555. if (backList == null || backList.size() == 0) {
  556. return null;
  557. }
  558. NoreasonBack noreasonBackInfo = backList.get(0);
  559. ClosedProdcue closedProdcue = new ClosedProdcue();
  560. closedProdcue.setRelationId(noreasonBackInfo.getNoreasonBackId());
  561. closedProdcue.setClosedProdcueType(7);
  562. //查询寄回产品集合
  563. List<ClosedProdcue> prodcueList = closedProdcueMapper.listclosedProdcue(closedProdcue);
  564. ClosedFitting fitting = new ClosedFitting();
  565. fitting.setRelationId(noreasonBackInfo.getNoreasonBackId());
  566. fitting.setClosedFittingType(7);
  567. //查询寄回配件集合
  568. List<ClosedFitting> fittingList = closedFittingMapper.listClosedFitting(fitting);
  569. if (prodcueList != null && prodcueList.size() > 0) {
  570. noreasonBackInfo.setClosedProdcues(prodcueList);
  571. }
  572. if (fittingList != null && fittingList.size() > 0) {
  573. noreasonBackInfo.setClosedFittings(fittingList);
  574. }
  575. return noreasonBackInfo;
  576. }
  577. @Override
  578. public Reissue getReissue(Reissue reissue) {
  579. //查询售后补发信息
  580. List<Reissue> reissueList = reissueMapper.listReissue(reissue);
  581. if (reissueList == null || reissueList.size() == 0) {
  582. return null;
  583. }
  584. Reissue reissueInfo = reissueList.get(0);
  585. ClosedProdcue closedProdcue = new ClosedProdcue();
  586. closedProdcue.setRelationId(reissueInfo.getReissueId());
  587. closedProdcue.setClosedProdcueType(6);
  588. //查询寄回产品集合
  589. List<ClosedProdcue> prodcueList = closedProdcueMapper.listclosedProdcue(closedProdcue);
  590. ClosedFitting fitting = new ClosedFitting();
  591. fitting.setRelationId(reissueInfo.getReissueId());
  592. fitting.setClosedFittingType(6);
  593. //查询寄回配件集合
  594. List<ClosedFitting> fittingList = closedFittingMapper.listClosedFitting(fitting);
  595. if (prodcueList != null && prodcueList.size() > 0) {
  596. reissueInfo.setClosedProdcues(prodcueList);
  597. }
  598. if (fittingList != null && fittingList.size() > 0) {
  599. reissueInfo.setClosedFittings(fittingList);
  600. }
  601. return reissueInfo;
  602. }
  603. @Override
  604. public Renewed getRenewedInfo(Renewed renewed) {
  605. renewed = renewedMapper.getRenewedInfo(renewed);
  606. if (renewed == null){
  607. return null;
  608. }
  609. ClosedProdcue closedProdcue = new ClosedProdcue();
  610. closedProdcue.setRelationId(renewed.getRenewedId());
  611. closedProdcue.setClosedProdcueType(3);
  612. //查询寄回产品集合
  613. List<ClosedProdcue> prodcueList = closedProdcueMapper.listclosedProdcue(closedProdcue);
  614. ClosedFitting fitting = new ClosedFitting();
  615. fitting.setRelationId(renewed.getRenewedId());
  616. fitting.setClosedFittingType(3);
  617. //查询寄回配件集合
  618. List<ClosedFitting> fittingList = closedFittingMapper.listClosedFitting(fitting);
  619. if (prodcueList != null && prodcueList.size() > 0) {
  620. renewed.setClosedProdcues(prodcueList);
  621. }
  622. if (fittingList != null && fittingList.size() > 0) {
  623. renewed.setClosedFittings(fittingList);
  624. }
  625. return renewed;
  626. }
  627. @Override
  628. public Repair getRepairInfo(Repair repair) {
  629. repair = repairMapper.getRepairInfo(repair);
  630. if (repair == null) {
  631. return null;
  632. }
  633. ClosedProdcue closedProdcue = new ClosedProdcue();
  634. closedProdcue.setRelationId(repair.getRepairId());
  635. closedProdcue.setClosedProdcueType(4);
  636. //查询寄回产品集合
  637. List<ClosedProdcue> prodcueList = closedProdcueMapper.listclosedProdcue(closedProdcue);
  638. ClosedFitting fitting = new ClosedFitting();
  639. fitting.setRelationId(repair.getRepairId());
  640. fitting.setClosedFittingType(4);
  641. //查询寄回配件集合
  642. List<ClosedFitting> fittingList = closedFittingMapper.listClosedFitting(fitting);
  643. if (prodcueList != null && prodcueList.size() > 0) {
  644. repair.setClosedProdcues(prodcueList);
  645. }
  646. if (fittingList != null && fittingList.size() > 0) {
  647. repair.setClosedFittings(fittingList);
  648. }
  649. return repair;
  650. }
  651. }