RepairTesterService.java 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. package com.fdkankan.sale.service.impl;
  2. import java.math.BigDecimal;
  3. import java.net.URL;
  4. import java.net.URLEncoder;
  5. import java.util.Date;
  6. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  7. import com.fdkankan.sale.common.PageInfo;
  8. import com.fdkankan.sale.common.RepairStatusEnum;
  9. import com.fdkankan.sale.common.ResultCode;
  10. import com.fdkankan.sale.entity.Repair;
  11. import com.fdkankan.sale.entity.RepairTest;
  12. import com.fdkankan.sale.entity.SysUser;
  13. import com.fdkankan.sale.exception.BusinessException;
  14. import com.fdkankan.sale.service.*;
  15. import com.fdkankan.sale.util.DateUtil;
  16. import com.fdkankan.sale.util.StatusUtil;
  17. import com.fdkankan.sale.vo.request.RepairParam;
  18. import com.fdkankan.sale.vo.request.TestParam;
  19. import com.fdkankan.sale.vo.response.RepairRegisterPartVo;
  20. import com.fdkankan.sale.vo.response.RepairerVo;
  21. import org.apache.commons.lang3.StringUtils;
  22. import org.springframework.beans.factory.annotation.Autowired;
  23. import org.springframework.stereotype.Service;
  24. import java.util.HashMap;
  25. import java.util.List;
  26. import java.util.Set;
  27. import java.util.stream.Collectors;
  28. @Service
  29. public class RepairTesterService {
  30. @Autowired
  31. IRepairService repairService;
  32. @Autowired
  33. IRepairTestService repairTestService;
  34. @Autowired
  35. IRepairLogService repairLogService;
  36. @Autowired
  37. ISysUserService sysUserService;
  38. @Autowired
  39. IRepairRegisterService repairRegisterService;
  40. @Autowired
  41. RepairSupplyService repairSupplyService;
  42. @Autowired
  43. IPriceListService priceListService;
  44. /**
  45. * 测试工程师
  46. * statusParam 0 待测试,1测试完成
  47. * * status 0待接单,10待检测,20待报价,30待确认,40已取消,50待备料,60维修中,70待测试,
  48. * * 80待支付(已完结),90待回收,100待发货,110已发货
  49. */
  50. public Object repairTesterList(RepairParam param) {
  51. List<Integer> repairStatus = StatusUtil.getTesterStatus(param.getStatusParam());
  52. param.setStatusList(repairStatus);
  53. Page<RepairerVo> voPage = repairService.testOrderList(param);
  54. sysUserService.setSaleNameAndRepairManName(voPage.getRecords());
  55. return PageInfo.PageInfo(voPage);
  56. }
  57. public void passOrFail(TestParam testParam, Long userId) {
  58. if(StringUtils.isBlank(testParam.getRepairId()) || testParam.getResultStatus() == null){
  59. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  60. }
  61. Repair repair = repairService.getById(testParam.getRepairId());
  62. if(repair == null){
  63. throw new BusinessException(ResultCode.REPAIR_NOT_EXITS);
  64. }
  65. if(!repair.getStatus().equals(RepairStatusEnum.TO_BE_TESTED.status())){
  66. throw new BusinessException(ResultCode.REPAIR_STATUS_NOT_EXITS);
  67. }
  68. RepairTest entity = new RepairTest();
  69. entity.setRepairId(testParam.getRepairId());
  70. entity.setSysUserId(userId);
  71. entity.setResultStatus(testParam.getResultStatus());
  72. entity.setResultInfo(testParam.getResultInfo());
  73. entity.setResultImg(testParam.getResultImg());
  74. if(testParam.getResultStatus() == 0){
  75. entity.setPassTime(DateUtil.getDate());
  76. repairTestService.save(entity);
  77. List<RepairRegisterPartVo> partVoList = repairSupplyService.partInfo(repair.getRepairId(), 1);
  78. BigDecimal payAmount = priceListService.getAmountByRepairId(repair.getRepairId());
  79. if(StatusUtil.getWarranty(repair.getWarrantyType()) || payAmount.compareTo(BigDecimal.ZERO) <=0){
  80. if(partVoList.size() >0){
  81. repairLogService.saveBySysUser(userId,testParam.getRepairId(), RepairStatusEnum.TO_BE_RECOVERED.status(),repair.getStatus(),"测试通过",entity.getTestId());
  82. }else {
  83. repairLogService.saveBySysUser(userId,testParam.getRepairId(), RepairStatusEnum.TO_BE_SHIPPED.status(),repair.getStatus(),"测试通过",entity.getTestId());
  84. }
  85. }else {
  86. repairLogService.saveBySysUser(userId,testParam.getRepairId(), RepairStatusEnum.TO_BE_PAID.status(),repair.getStatus(),"测试通过",entity.getTestId());
  87. }
  88. }else {
  89. repairTestService.save(entity);
  90. repairLogService.saveBySysUser(userId,testParam.getRepairId(),RepairStatusEnum.TO_BE_REPAIRED.status(),repair.getStatus(),"测试不通过",entity.getTestId());
  91. }
  92. }
  93. }