package com.fdkankan.sale.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.fdkankan.sale.entity.Part;
import com.fdkankan.sale.entity.RepairRegister;
import com.fdkankan.sale.entity.RepairRegisterPart;
import com.fdkankan.sale.mapper.IRepairRegisterMapper;
import com.fdkankan.sale.service.IPartService;
import com.fdkankan.sale.service.IRepairRegisterPartService;
import com.fdkankan.sale.service.IRepairRegisterService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fdkankan.sale.util.DateUtil;
import com.fdkankan.sale.vo.response.CheckRegisterVo;
import com.fdkankan.sale.vo.response.RepairRegisterPartVo;
import com.fdkankan.sale.vo.response.RepairRegisterVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
*
* 服务实现类
*
*
* @author
* @since 2023-02-16
*/
@Service
public class RepairRegisterServiceImpl extends ServiceImpl implements IRepairRegisterService {
@Autowired
IRepairRegisterPartService repairRegisterPartService;
@Autowired
IPartService partService;
@Override
public void repairOver(String repairId, String remark,Long userId) {
LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(RepairRegister::getRepairId,repairId);
wrapper.eq(RepairRegister::getStatus,1);
wrapper.set(RepairRegister::getRemark,remark);
wrapper.set(RepairRegister::getOverTime, DateUtil.getDate());
this.update(wrapper);
}
@Override
public RepairRegister getByRepairId(String repairId) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(RepairRegister::getRepairId,repairId);
return this.getOne(wrapper);
}
@Override
public RepairRegisterVo getVoByRepairId(String repairId) {
RepairRegisterVo vo = this.getBaseMapper().getVoByRepairId(repairId);
if(vo == null){
return null;
}
List partList = repairRegisterPartService.getByRepairId(vo.getRepairRegisterId());
StringBuilder partNamesList = new StringBuilder();
for (RepairRegisterPart repairRegisterPart : partList) {
Integer partId = repairRegisterPart.getPartId();
Part part = partService.getById(partId);
if(part == null){
continue;
}
partNamesList.append(part.getPartName()).append("x").append(repairRegisterPart.getPartCount()).append(",");
}
if(StringUtils.isNotBlank(partNamesList.toString()) && partNamesList.toString().contains(",")){
partNamesList.deleteCharAt(partNamesList.lastIndexOf(","));
}
vo.setPartNamesStr(partNamesList.toString());
return vo;
}
@Override
public List getVoListByRepairId(String repairId) {
List voList = this.getBaseMapper().getVoListByRepairId(repairId);
for (RepairRegisterVo vo : voList) {
List partList = repairRegisterPartService.getByRegisterId(vo.getRegisterLogId());
StringBuilder partNamesList = new StringBuilder();
for (RepairRegisterPart repairRegisterPart : partList) {
Integer partId = repairRegisterPart.getPartId();
Part part = partService.getById(partId);
if(part == null){
continue;
}
partNamesList.append(part.getPartName()).append("x").append(repairRegisterPart.getPartCount()).append(",");
}
if(StringUtils.isNotBlank(partNamesList.toString()) && partNamesList.toString().contains(",")){
partNamesList.deleteCharAt(partNamesList.lastIndexOf(","));
}
vo.setPartNamesStr(partNamesList.toString());
}
return voList;
}
}