package com.fdkankan.sale.service.impl; import java.math.BigDecimal; import java.net.URL; import java.net.URLEncoder; import java.util.Date; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fdkankan.sale.common.PageInfo; import com.fdkankan.sale.common.RepairStatusEnum; import com.fdkankan.sale.common.ResultCode; import com.fdkankan.sale.entity.Repair; import com.fdkankan.sale.entity.RepairTest; import com.fdkankan.sale.entity.SysUser; import com.fdkankan.sale.exception.BusinessException; import com.fdkankan.sale.service.*; import com.fdkankan.sale.util.DateUtil; import com.fdkankan.sale.util.StatusUtil; import com.fdkankan.sale.vo.request.RepairParam; import com.fdkankan.sale.vo.request.TestParam; import com.fdkankan.sale.vo.response.RepairRegisterPartVo; import com.fdkankan.sale.vo.response.RepairerVo; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.List; import java.util.Set; import java.util.stream.Collectors; @Service public class RepairTesterService { @Autowired IRepairService repairService; @Autowired IRepairTestService repairTestService; @Autowired IRepairLogService repairLogService; @Autowired ISysUserService sysUserService; @Autowired IRepairRegisterService repairRegisterService; @Autowired RepairSupplyService repairSupplyService; @Autowired IPriceListService priceListService; /** * 测试工程师 * statusParam 0 待测试,1测试完成 * * status 0待接单,10待检测,20待报价,30待确认,40已取消,50待备料,60维修中,70待测试, * * 80待支付(已完结),90待回收,100待发货,110已发货 */ public Object repairTesterList(RepairParam param) { List repairStatus = StatusUtil.getTesterStatus(param.getStatusParam()); param.setStatusList(repairStatus); Page voPage = repairService.testOrderList(param); sysUserService.setSaleNameAndRepairManName(voPage.getRecords()); return PageInfo.PageInfo(voPage); } public void passOrFail(TestParam testParam, Long userId) { if(StringUtils.isBlank(testParam.getRepairId()) || testParam.getResultStatus() == null){ throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS); } Repair repair = repairService.getById(testParam.getRepairId()); if(repair == null){ throw new BusinessException(ResultCode.REPAIR_NOT_EXITS); } if(!repair.getStatus().equals(RepairStatusEnum.TO_BE_TESTED.status())){ throw new BusinessException(ResultCode.REPAIR_STATUS_NOT_EXITS); } RepairTest entity = new RepairTest(); entity.setRepairId(testParam.getRepairId()); entity.setSysUserId(userId); entity.setResultStatus(testParam.getResultStatus()); entity.setResultInfo(testParam.getResultInfo()); entity.setResultImg(testParam.getResultImg()); if(testParam.getResultStatus() == 0){ entity.setPassTime(DateUtil.getDate()); repairTestService.save(entity); List partVoList = repairSupplyService.partInfo(repair.getRepairId(), 1); BigDecimal payAmount = priceListService.getAmountByRepairId(repair.getRepairId()); if(StatusUtil.getWarranty(repair.getWarrantyType()) || payAmount.compareTo(BigDecimal.ZERO) <=0){ if(partVoList.size() >0){ repairLogService.saveBySysUser(userId,testParam.getRepairId(), RepairStatusEnum.TO_BE_RECOVERED.status(),repair.getStatus(),"测试通过",entity.getTestId()); }else { repairLogService.saveBySysUser(userId,testParam.getRepairId(), RepairStatusEnum.TO_BE_SHIPPED.status(),repair.getStatus(),"测试通过",entity.getTestId()); } }else { repairLogService.saveBySysUser(userId,testParam.getRepairId(), RepairStatusEnum.TO_BE_PAID.status(),repair.getStatus(),"测试通过",entity.getTestId()); } }else { repairTestService.save(entity); repairLogService.saveBySysUser(userId,testParam.getRepairId(),RepairStatusEnum.TO_BE_REPAIRED.status(),repair.getStatus(),"测试不通过",entity.getTestId()); } } }