123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 |
- package com.fdkankan.sale.service.impl;
- import java.math.BigDecimal;
- import java.util.Date;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
- 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.*;
- 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.*;
- import com.fdkankan.sale.vo.response.CheckRegisterVo;
- import com.fdkankan.sale.vo.response.RepairRegisterPartVo;
- import com.fdkankan.sale.vo.response.RepairerVo;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.BeanUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import javax.swing.text.EditorKit;
- import javax.swing.text.html.parser.Entity;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.stream.Collectors;
- @Service
- public class RepairPersonnelService {
- @Autowired
- IRepairService repairService;
- @Autowired
- IRepairLogService repairLogService;
- @Autowired
- IOrderReceivingService orderReceivingService;
- @Autowired
- ICustomerService customerService;
- @Autowired
- ICustomerAddressService customerAddressService;
- @Autowired
- ICameraService cameraService;
- @Autowired
- ISysUserService sysUserService;
- @Autowired
- IRepairRegisterService repairRegisterService;
- @Autowired
- IRepairRegisterPartService repairRegisterPartService;
- @Autowired
- IRepairFaultService repairFaultService;
- @Autowired
- IPriceListService priceListService;
- @Autowired
- IPartService partService;
- @Autowired
- IRepairRegisterLogService repairRegisterLogService;
- /**
- * 维修工程师
- * statusParam 0 待检测,1待跟进,2维修完成
- * * status 0待接单,10待检测,20待报价,30待确认,40已取消,50待备料,60维修中,70待测试,
- * * 80待支付(已完结),90待回收,100待发货,110已发货
- */
- public Object repairerOrderList(RepairParam param) {
- List<Integer> repairStatus = StatusUtil.getRepairerStatus(param.getStatusParam());
- param.setStatusList(repairStatus);
- Page<RepairerVo> voPage = repairService.repairerOrderList(param);
- sysUserService.setSaleNameAndRepairManName(voPage.getRecords());
- return PageInfo.PageInfo(voPage);
- }
- public void checkRegister(CheckRegisterParam param, Long userId) {
- if(StringUtils.isBlank(param.getRepairId()) || StringUtils.isBlank(param.getCheckResult())
- || param.getFaultIds() ==null || param.getFaultIds().size() <=0 || param.getDefineDamage() == null){
- throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
- }
- Repair repair = repairService.getById(param.getRepairId());
- if(repair == null){
- throw new BusinessException(ResultCode.REPAIR_NOT_EXITS);
- }
- if(!repair.getStatus().equals(RepairStatusEnum.TO_BE_CHECK.status())){ //待检测
- throw new BusinessException(ResultCode.REPAIR_STATUS_NOT_EXITS);
- }
- RepairRegister repairRegister = repairRegisterService.getByRepairId(repair.getRepairId());
- if(repairRegister == null){
- repairRegister = new RepairRegister();
- }
- Integer repairRegisterId = repairRegister.getRepairRegisterId();
- BeanUtils.copyProperties(param,repairRegister);
- if(repairRegister.getDefineDamage() == 1 && repair.getWarrantyType() == 0){
- repairService.updateWarrantyType(repair.getRepairId(),1);
- }
- repairRegister.setRepairRegisterId(repairRegisterId);
- repairRegister.setSysUserId(userId);
- repairRegisterService.saveOrUpdate(repairRegister);
- Integer repairStatus = RepairStatusEnum.TO_BE_QUOTED.status();
- if(repairRegister.getDefineDamage() == 0 && repair.getWarrantyType() == 0){
- if(param.getPartList().size() >0){
- repairStatus = RepairStatusEnum.TO_BE_U8SEND.status();
- }else {
- repairStatus = RepairStatusEnum.TO_BE_REPAIRED.status();
- }
- }
- repairRegister.setStatus(0);
- RepairRegisterLog repairRegisterLog = repairRegisterLogService.saveLog(repairRegister);
- repairLogService.saveBySysUser(userId,repair.getRepairId(),repairStatus,repair.getStatus(),"维修检测",null,repairRegisterLog.getRegisterLogId());
- this.addRepairPart(param.getPartList(),repair,repairRegister,repairRegisterLog.getRegisterLogId());
- repairFaultService.delByRepairId(repair.getRepairId());
- for (Integer faultId : param.getFaultIds()) {
- RepairFault fault = new RepairFault();
- fault.setRepairId(repair.getRepairId());
- fault.setRepairRegisterId(repairRegister.getRepairRegisterId());
- fault.setFaultId(faultId);
- repairFaultService.save(fault);
- }
- }
- private void addRepairPart(List<RepairRegisterPartVo> partVoList,Repair repair,RepairRegister repairRegister,Integer registerLogId) {
- for (RepairRegisterPartVo partVo : partVoList) {
- Part part = partService.getById(partVo.getPartId());
- if(part == null){
- continue;
- }
- RepairRegisterPart repairRegisterPart = new RepairRegisterPart();
- repairRegisterPart.setRepairId(repair.getRepairId());
- repairRegisterPart.setRepairRegisterId(repairRegister.getRepairRegisterId());
- repairRegisterPart.setPartId(partVo.getPartId());
- repairRegisterPart.setPartCount(partVo.getPartCount());
- repairRegisterPart.setRegisterLogId(registerLogId);
- repairRegisterPartService.save(repairRegisterPart);
- PriceList priceList = new PriceList();
- priceList.setRepairId(repair.getRepairId());
- priceList.setName(part.getPartName());
- priceList.setPrice(part.getPartPrice());
- priceList.setCount(partVo.getPartCount());
- priceList.setPartId(part.getPartId());
- priceList.setPriceDiscount(part.getPartPriceDiscount());
- if(repairRegister.getDefineDamage() == 0 && repair.getWarrantyType() == 0){
- priceList.setStatus(1);
- }
- priceListService.save(priceList);
- }
- }
- public void repairAddPart(CheckRegisterParam param, Long userId) {
- Repair repair = repairService.getById(param.getRepairId());
- if(repair == null){
- throw new BusinessException(ResultCode.REPAIR_NOT_EXITS);
- }
- if(!repair.getStatus().equals(RepairStatusEnum.TO_BE_REPAIRED.status())){ //维修中
- throw new BusinessException(ResultCode.REPAIR_STATUS_NOT_EXITS);
- }
- RepairRegister repairRegister = repairRegisterService.getByRepairId(repair.getRepairId());
- if(repairRegister == null){
- throw new BusinessException(ResultCode.REPAIR_CHECK_EMPTY);
- }
- repairRegister.setStatus(1);
- repairRegister.setCheckResult(param.getCheckResult());
- repairRegister.setCheckImg(param.getCheckImg());
- RepairRegisterLog repairRegisterLog = repairRegisterLogService.saveLog(repairRegister);
- this.addRepairPart(param.getPartList(),repair,repairRegister,repairRegisterLog.getRegisterLogId());
- if(repair.getWarrantyType() == 0){
- repairLogService.saveBySysUser(userId,repair.getRepairId(),RepairStatusEnum.TO_BE_U8SEND.status(),repair.getStatus(),"维修中添加备件",null,repairRegisterLog.getRegisterLogId());
- }else {
- repairLogService.saveBySysUser(userId,repair.getRepairId(),RepairStatusEnum.TO_BE_QUOTED.status(),repair.getStatus(),"维修中添加备件",null,repairRegisterLog.getRegisterLogId());
- }
- }
- public void repairOver(CheckRegisterParam param, Long userId) {
- if(param.getRepairId() == null || StringUtils.isBlank(param.getRemark())){
- throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
- }
- Repair repair = repairService.getById(param.getRepairId());
- if(repair == null){
- throw new BusinessException(ResultCode.REPAIR_NOT_EXITS);
- }
- if(!repair.getStatus().equals(RepairStatusEnum.TO_BE_REPAIRED.status())){
- throw new BusinessException(ResultCode.REPAIR_STATUS_NOT_EXITS);
- }
- repairLogService.saveBySysUser(userId,repair.getRepairId(),RepairStatusEnum.TO_BE_TESTED.status(),repair.getStatus(),"维修完成");
- // List<PriceList> priceListList = priceListService.getByRepairId(repair.getRepairId());
- // List<PriceList> collect = priceListList.stream().filter(entity ->entity.getType()== 0 && entity.getRecoveryStatus() == 0).collect(Collectors.toList());
- // if(collect.size() >0){
- // repairLogService.saveBySysUser(userId,repair.getRepairId(),RepairStatusEnum.TO_BE_TESTED.status(),"维修完成");
- // }else {
- // repairLogService.saveBySysUser(userId,repair.getRepairId(), RepairStatusEnum.TO_BE_PAID.status(), "维修完成");
- // }
- repairRegisterService.repairOver(repair.getRepairId(),param.getRemark(),userId);
- }
- }
|