package com.fdkankan.sale.controller; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import com.alibaba.fastjson.JSONArray; import com.fdkankan.sale.entity.PriceList; import com.fdkankan.sale.util.StatusUtil; import com.fdkankan.sale.vo.response.PriceListExcelVo; import com.google.common.collect.Lists; import com.fdkankan.sale.common.ResultCode; import com.fdkankan.sale.common.ResultData; import com.fdkankan.sale.exception.BusinessException; import com.fdkankan.sale.service.IRepairService; import com.fdkankan.sale.service.impl.RepairInfoService; import com.fdkankan.sale.util.MyExcelUtil; import com.fdkankan.sale.util.OrderListVo; import com.fdkankan.sale.vo.request.RepairInfoListParam; import com.fdkankan.sale.vo.response.RepairDetailVo; import lombok.Data; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/sale/repairInfo") public class RepairInfoController extends BaseController{ @Autowired RepairInfoService repairInfoService; @Autowired MyExcelUtil excelUtil; @GetMapping("/details") public ResultData details(@RequestParam(required = false) String repairId){ if(StringUtils.isBlank(repairId)){ throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS); } return ResultData.ok(repairInfoService.getDetailsByRepairId(repairId)); } @GetMapping("/process") public ResultData process(@RequestParam(required = false) String repairId){ if(StringUtils.isBlank(repairId)){ throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS); } return ResultData.ok(repairInfoService.getProcessByRepairId(repairId)); } @PostMapping("/list") public ResultData list(@RequestBody RepairInfoListParam param){ return ResultData.ok(repairInfoService.pageList(param)); } /** * 0 四维时代服务清单(模板) * 1 维修服务工作单(模板) */ @GetMapping("/exportExcel") public void exportExcel(@RequestParam(required = false) String repairId, @RequestParam(required = false) Integer type){ RepairDetailVo repairDetailVo = repairInfoService.getDetailsByRepairId(repairId); OrderListVo vo = new OrderListVo(); vo.setCompanyName(repairDetailVo.getCustomer().getCompanyName()); vo.setCustomerName(repairDetailVo.getCustomer().getCustomerName()); vo.setCustomerPhone(repairDetailVo.getCustomer().getPhone()); vo.setCustomerAddress(repairDetailVo.getCustomerAddress().getGetAddress()); vo.setCameraName(StatusUtil.getCameraName(repairDetailVo.getRepairerVo().getCameraType())); vo.setCameraSnCode(repairDetailVo.getRepairerVo().getCameraSnCode()); vo.setSendDate(repairDetailVo.getRepairerVo().getCreateTime()); vo.setWarrantyType(StatusUtil.getWarrantyType(repairDetailVo.getOrderReceivingVo().getWarrantyType())); vo.setFaultMsg(repairDetailVo.getRepairerVo().getFaultMsg()); vo.setCheckDate(repairDetailVo.getRepairRegisterVo().getCreateTime()); vo.setOrderFaultMsg(repairDetailVo.getOrderReceivingVo().getOrderFaultMsg()); vo.setCheckResult(repairDetailVo.getRepairRegisterVo().getCheckResult()); vo.setCheckImg(JSONArray.toJSONString(repairDetailVo.getRepairRegisterVo().getCheckImg())); vo.setSaleName(repairDetailVo.getOrderReceivingVo().getSysUserName()); vo.setSaleDate(repairDetailVo.getOrderReceivingVo().getCreateTime()); vo.setRepairMan(repairDetailVo.getRepairRegisterVo().getSysUserName()); vo.setRepairOverTime(repairDetailVo.getRepairRegisterVo().getOverTime()); List priceList = repairDetailVo.getPriceList(); BigDecimal totalAmount = BigDecimal.ZERO; List excelVos = new ArrayList<>(); for (PriceList list : priceList) { PriceListExcelVo excelVo = new PriceListExcelVo(); BeanUtils.copyProperties(list,excelVo); excelVo.setAmount(list.getPrice().multiply(new BigDecimal(list.getCount()))); excelVos.add(excelVo); totalAmount = totalAmount.add(excelVo.getAmount()); } vo.setTotalCount(totalAmount); excelUtil.listFill(response,"四维时代服务清单",vo,excelVos,type); } }