|
@@ -1,20 +1,25 @@
|
|
package com.qmth.sop.business.service.impl;
|
|
package com.qmth.sop.business.service.impl;
|
|
|
|
|
|
|
|
+import com.alibaba.excel.EasyExcel;
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.qmth.sop.business.bean.dto.*;
|
|
import com.qmth.sop.business.bean.dto.*;
|
|
import com.qmth.sop.business.bean.result.CrmProjectResult;
|
|
import com.qmth.sop.business.bean.result.CrmProjectResult;
|
|
|
|
+import com.qmth.sop.business.bean.result.TBDeviceDeliveryResult;
|
|
import com.qmth.sop.business.bean.result.UserArchivesResult;
|
|
import com.qmth.sop.business.bean.result.UserArchivesResult;
|
|
import com.qmth.sop.business.entity.*;
|
|
import com.qmth.sop.business.entity.*;
|
|
import com.qmth.sop.business.mapper.TBDingStatisticMapper;
|
|
import com.qmth.sop.business.mapper.TBDingStatisticMapper;
|
|
import com.qmth.sop.business.service.*;
|
|
import com.qmth.sop.business.service.*;
|
|
import com.qmth.sop.common.contant.SystemConstant;
|
|
import com.qmth.sop.common.contant.SystemConstant;
|
|
import com.qmth.sop.common.enums.DingDateTypeEnum;
|
|
import com.qmth.sop.common.enums.DingDateTypeEnum;
|
|
|
|
+import com.qmth.sop.common.enums.DingStatisticTypeEnum;
|
|
import com.qmth.sop.common.enums.ExceptionResultEnum;
|
|
import com.qmth.sop.common.enums.ExceptionResultEnum;
|
|
import com.qmth.sop.common.enums.SopRoleTypeEnum;
|
|
import com.qmth.sop.common.enums.SopRoleTypeEnum;
|
|
import com.qmth.sop.common.util.DateDisposeUtils;
|
|
import com.qmth.sop.common.util.DateDisposeUtils;
|
|
|
|
+import com.qmth.sop.common.util.FileUtil;
|
|
|
|
+import com.qmth.sop.common.util.ServletUtil;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.BeanUtils;
|
|
@@ -22,6 +27,9 @@ import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
|
+import java.io.File;
|
|
|
|
+import java.io.IOException;
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
import java.math.RoundingMode;
|
|
import java.math.RoundingMode;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
@@ -69,6 +77,21 @@ public class TBDingStatisticServiceImpl extends ServiceImpl<TBDingStatisticMappe
|
|
@Resource
|
|
@Resource
|
|
private SysSupplierService sysSupplierService;
|
|
private SysSupplierService sysSupplierService;
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
+ private TBDingStatisticByPersonService tbdingStatisticByPersonService;
|
|
|
|
+
|
|
|
|
+ @Resource
|
|
|
|
+ private TBDingStatisticByCrmService tbdingStatisticByCrmService;
|
|
|
|
+
|
|
|
|
+ @Resource
|
|
|
|
+ private TBDingStatisticBySopService tbdingStatisticBySopService;
|
|
|
|
+
|
|
|
|
+ @Resource
|
|
|
|
+ private TBDingStatisticByCustomService tbdingStatisticByCustomService;
|
|
|
|
+
|
|
|
|
+ @Resource
|
|
|
|
+ private TBDingStatisticBySupplierService tbdingStatisticBySupplierService;
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public TBDingStatistic findBySopNoAndUserArchivesId(Long serviceId, String sopNo, Long userArchivesId) {
|
|
public TBDingStatistic findBySopNoAndUserArchivesId(Long serviceId, String sopNo, Long userArchivesId) {
|
|
QueryWrapper<TBDingStatistic> queryWrapper = new QueryWrapper<>();
|
|
QueryWrapper<TBDingStatistic> queryWrapper = new QueryWrapper<>();
|
|
@@ -457,229 +480,57 @@ public class TBDingStatisticServiceImpl extends ServiceImpl<TBDingStatisticMappe
|
|
this.saveOrUpdateBatch(tbDingStatisticList);
|
|
this.saveOrUpdateBatch(tbDingStatisticList);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Transactional
|
|
@Override
|
|
@Override
|
|
- public List<DingStatisticByPersonDto> findStatisticByPerson(Long serviceId) {
|
|
|
|
- List<DingStatisticByPersonDto> result = new ArrayList<>();
|
|
|
|
- QueryWrapper<TBDingStatistic> queryWrapper = new QueryWrapper<>();
|
|
|
|
- if (serviceId != null) {
|
|
|
|
- queryWrapper.lambda().eq(TBDingStatistic::getServiceId, serviceId);
|
|
|
|
- }
|
|
|
|
- List<TBDingStatistic> datasource = this.list(queryWrapper);
|
|
|
|
- for (TBDingStatistic tbDingStatistic : datasource) {
|
|
|
|
- DingStatisticByPersonDto dto = new DingStatisticByPersonDto();
|
|
|
|
- BeanUtils.copyProperties(tbDingStatistic, dto);
|
|
|
|
- dto.setUserInfo(tbDingStatistic.getUserArchivesName() + "(" + tbDingStatistic.getUserArchivesCode() + ")");
|
|
|
|
- result.add(dto);
|
|
|
|
- }
|
|
|
|
- return result;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @Override
|
|
|
|
- public List<DingStatisticBySopDto> findStatisticBySop(Long serviceId) {
|
|
|
|
- List<DingStatisticBySopDto> result = new ArrayList<>();
|
|
|
|
- QueryWrapper<TBDingStatistic> queryWrapper = new QueryWrapper<>();
|
|
|
|
- if (serviceId != null) {
|
|
|
|
- queryWrapper.lambda().eq(TBDingStatistic::getServiceId, serviceId);
|
|
|
|
- }
|
|
|
|
- queryWrapper.lambda().isNotNull(TBDingStatistic::getSopNo);
|
|
|
|
- List<TBDingStatistic> datasource = this.list(queryWrapper);
|
|
|
|
- List<String> sopNoList = datasource.stream().map(TBDingStatistic::getSopNo).distinct().collect(Collectors.toList());
|
|
|
|
-
|
|
|
|
- for (String sopNo : sopNoList) {
|
|
|
|
- TBCrmDetail tbCrmDetail = tbCrmDetailService.findBySopNo(sopNo);
|
|
|
|
- SopPeriodDto sopPeriodDto = this.findSopPeriod(tbCrmDetail);
|
|
|
|
-
|
|
|
|
- List<TBDingStatistic> tbDingStatisticList = datasource.stream().filter(e -> sopNo.equals(e.getSopNo())).collect(Collectors.toList());
|
|
|
|
- String serviceName = "";
|
|
|
|
- int actualDays = 0;
|
|
|
|
- int weekdays = 0;
|
|
|
|
- int weekends = 0;
|
|
|
|
- int legalHolidays = 0;
|
|
|
|
- BigDecimal workHours = new BigDecimal(0);
|
|
|
|
- int violationDays = 0;
|
|
|
|
-
|
|
|
|
- for (TBDingStatistic tbDingStatistic : tbDingStatisticList) {
|
|
|
|
- serviceName = tbDingStatistic.getServiceName();
|
|
|
|
- actualDays = actualDays + tbDingStatistic.getActualDays();
|
|
|
|
- weekdays = weekdays + tbDingStatistic.getWeekdays();
|
|
|
|
- weekends = weekends + tbDingStatistic.getWeekends();
|
|
|
|
- legalHolidays = legalHolidays + tbDingStatistic.getLegalHolidays();
|
|
|
|
- workHours = workHours.add(tbDingStatistic.getWorkHours());
|
|
|
|
- violationDays = violationDays + tbDingStatistic.getViolationDays();
|
|
|
|
- }
|
|
|
|
- DingStatisticBySopDto dto = new DingStatisticBySopDto();
|
|
|
|
- dto.setServiceName(serviceName);
|
|
|
|
- dto.setSopNo(sopNo);
|
|
|
|
- dto.setCourseName(tbCrmDetail.getCourseName());
|
|
|
|
- dto.setActualDays(actualDays);
|
|
|
|
- dto.setWeekdays(weekdays);
|
|
|
|
- dto.setWeekends(weekends);
|
|
|
|
- dto.setLegalHolidays(legalHolidays);
|
|
|
|
- dto.setWorkHours(workHours.doubleValue());
|
|
|
|
- dto.setViolationDays(violationDays);
|
|
|
|
- dto.setScanPeriod(sopPeriodDto.getScanPeriod());
|
|
|
|
- dto.setMarkPaperPeriod(sopPeriodDto.getMarkPaperPeriod());
|
|
|
|
- result.add(dto);
|
|
|
|
- }
|
|
|
|
- return result;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @Override
|
|
|
|
- public List<DingStatisticByCrmDto> findStatisticByCrm(Long serviceId) {
|
|
|
|
- List<DingStatisticByCrmDto> result = new ArrayList<>();
|
|
|
|
- QueryWrapper<TBDingStatistic> queryWrapper = new QueryWrapper<>();
|
|
|
|
- if (serviceId != null) {
|
|
|
|
- queryWrapper.lambda().eq(TBDingStatistic::getServiceId, serviceId).isNotNull(TBDingStatistic::getSopNo);
|
|
|
|
- }
|
|
|
|
- queryWrapper.lambda().isNotNull(TBDingStatistic::getCrmNo);
|
|
|
|
- List<TBDingStatistic> datasource = this.list(queryWrapper);
|
|
|
|
- List<String> crmNoList = datasource.stream().map(TBDingStatistic::getCrmNo).distinct().collect(Collectors.toList());
|
|
|
|
-
|
|
|
|
- for (String crmNo : crmNoList) {
|
|
|
|
- TBCrm tbCrm = tbCrmService.findByCrmNo(crmNo);
|
|
|
|
- List<TBCrmDetail> tbCrmDetailList = tbCrmDetailService.list(
|
|
|
|
- new QueryWrapper<TBCrmDetail>().lambda().eq(TBCrmDetail::getCrmNo, crmNo));
|
|
|
|
- int scanPeriod = 0;
|
|
|
|
- int markPaperPeriod = 0;
|
|
|
|
- for (TBCrmDetail tbCrmDetail : tbCrmDetailList) {
|
|
|
|
- SopPeriodDto sopPeriodDto = this.findSopPeriod(tbCrmDetail);
|
|
|
|
- scanPeriod = scanPeriod + sopPeriodDto.getScanPeriod();
|
|
|
|
- markPaperPeriod = markPaperPeriod + sopPeriodDto.getMarkPaperPeriod();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- List<TBDingStatistic> tbDingStatisticList = datasource.stream().filter(e -> crmNo.equals(e.getCrmNo())).collect(Collectors.toList());
|
|
|
|
- String serviceName = "";
|
|
|
|
- int actualDays = 0;
|
|
|
|
- int weekdays = 0;
|
|
|
|
- int weekends = 0;
|
|
|
|
- int legalHolidays = 0;
|
|
|
|
- BigDecimal workHours = new BigDecimal(0);
|
|
|
|
- int violationDays = 0;
|
|
|
|
-
|
|
|
|
- for (TBDingStatistic tbDingStatistic : tbDingStatisticList) {
|
|
|
|
- serviceName = tbDingStatistic.getServiceName();
|
|
|
|
- actualDays = actualDays + tbDingStatistic.getActualDays();
|
|
|
|
- weekdays = weekdays + tbDingStatistic.getWeekdays();
|
|
|
|
- weekends = weekends + tbDingStatistic.getWeekends();
|
|
|
|
- legalHolidays = legalHolidays + tbDingStatistic.getLegalHolidays();
|
|
|
|
- workHours = workHours.add(tbDingStatistic.getWorkHours());
|
|
|
|
- violationDays = violationDays + tbDingStatistic.getViolationDays();
|
|
|
|
- }
|
|
|
|
- DingStatisticByCrmDto dto = new DingStatisticByCrmDto();
|
|
|
|
- dto.setServiceName(serviceName);
|
|
|
|
- dto.setCrmNo(crmNo);
|
|
|
|
- dto.setCrmName(tbCrm.getName());
|
|
|
|
- dto.setActualDays(actualDays);
|
|
|
|
- dto.setWeekdays(weekdays);
|
|
|
|
- dto.setWeekends(weekends);
|
|
|
|
- dto.setLegalHolidays(legalHolidays);
|
|
|
|
- dto.setWorkHours(workHours.doubleValue());
|
|
|
|
- dto.setViolationDays(violationDays);
|
|
|
|
- dto.setScanPeriod(scanPeriod);
|
|
|
|
- dto.setMarkPaperPeriod(markPaperPeriod);
|
|
|
|
- result.add(dto);
|
|
|
|
- }
|
|
|
|
- return result;
|
|
|
|
|
|
+ public void buildStatisticData() {
|
|
|
|
+ List<TBDingStatistic> datasource = this.list();
|
|
|
|
+ tbdingStatisticByPersonService.buildStatisticByPerson(datasource);
|
|
|
|
+ tbdingStatisticBySopService.buildStatisticBySop(datasource);
|
|
|
|
+ tbdingStatisticByCrmService.buildStatisticByCrm(datasource);
|
|
|
|
+ tbdingStatisticByCustomService.buildStatisticByCustom(datasource);
|
|
|
|
+ tbdingStatisticBySupplierService.buildStatisticBySupplier(datasource);
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public List<DingStatisticByCustomDto> findStatisticByCustom(Long serviceId) {
|
|
|
|
- List<DingStatisticByCustomDto> result = new ArrayList<>();
|
|
|
|
- QueryWrapper<TBDingStatistic> queryWrapper = new QueryWrapper<>();
|
|
|
|
- if (serviceId != null) {
|
|
|
|
- queryWrapper.lambda().eq(TBDingStatistic::getServiceId, serviceId);
|
|
|
|
- }
|
|
|
|
- queryWrapper.lambda().isNotNull(TBDingStatistic::getSopNo);
|
|
|
|
- List<TBDingStatistic> datasource = this.list(queryWrapper);
|
|
|
|
- List<Long> customIdList = datasource.stream().map(TBDingStatistic::getCustomId).distinct().collect(Collectors.toList());
|
|
|
|
-
|
|
|
|
- for (Long customId : customIdList) {
|
|
|
|
- List<TBCrmDetail> tbCrmDetailList = tbCrmDetailService.findByServiceIdAndCustomId(serviceId, customId);
|
|
|
|
- int scanPeriod = 0;
|
|
|
|
- int markPaperPeriod = 0;
|
|
|
|
- for (TBCrmDetail tbCrmDetail : tbCrmDetailList) {
|
|
|
|
- SopPeriodDto sopPeriodDto = this.findSopPeriod(tbCrmDetail);
|
|
|
|
- scanPeriod = scanPeriod + sopPeriodDto.getScanPeriod();
|
|
|
|
- markPaperPeriod = markPaperPeriod + sopPeriodDto.getMarkPaperPeriod();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- List<TBDingStatistic> tbDingStatisticList = datasource.stream().filter(e -> customId.equals(e.getCustomId())).collect(Collectors.toList());
|
|
|
|
- String serviceName = "";
|
|
|
|
- String customName = sysCustomService.getById(customId).getName();
|
|
|
|
- int actualDays = 0;
|
|
|
|
- int weekdays = 0;
|
|
|
|
- int weekends = 0;
|
|
|
|
- int legalHolidays = 0;
|
|
|
|
- BigDecimal workHours = new BigDecimal(0);
|
|
|
|
- int violationDays = 0;
|
|
|
|
-
|
|
|
|
- for (TBDingStatistic tbDingStatistic : tbDingStatisticList) {
|
|
|
|
- serviceName = tbDingStatistic.getServiceName();
|
|
|
|
- actualDays = actualDays + tbDingStatistic.getActualDays();
|
|
|
|
- weekdays = weekdays + tbDingStatistic.getWeekdays();
|
|
|
|
- weekends = weekends + tbDingStatistic.getWeekends();
|
|
|
|
- legalHolidays = legalHolidays + tbDingStatistic.getLegalHolidays();
|
|
|
|
- workHours = workHours.add(tbDingStatistic.getWorkHours());
|
|
|
|
- violationDays = violationDays + tbDingStatistic.getViolationDays();
|
|
|
|
|
|
+ public void exportStatisticData(Long serviceId, DingStatisticTypeEnum type) throws IOException {
|
|
|
|
+ File fileTemp = null;
|
|
|
|
+ try {
|
|
|
|
+ fileTemp = SystemConstant.getFileTempVar(SystemConstant.XLSX_PREFIX);
|
|
|
|
+
|
|
|
|
+ switch (type) {
|
|
|
|
+ case BY_PERSON:
|
|
|
|
+ List<DingStatisticByPersonDto> byPersonData = tbdingStatisticByPersonService.findStatisticByPersonList(
|
|
|
|
+ serviceId);
|
|
|
|
+ EasyExcel.write(fileTemp, TBDeviceDeliveryResult.class).sheet("工时统计-按人员").doWrite(byPersonData);
|
|
|
|
+ break;
|
|
|
|
+ case BY_SOP:
|
|
|
|
+ List<DingStatisticBySopDto> bySopData = tbdingStatisticBySopService.findStatisticBySopList(serviceId);
|
|
|
|
+ EasyExcel.write(fileTemp, TBDeviceDeliveryResult.class).sheet("工时统计-按sop").doWrite(bySopData);
|
|
|
|
+ break;
|
|
|
|
+ case BY_CRM:
|
|
|
|
+ List<DingStatisticByCrmDto> byCrmData = tbdingStatisticByCrmService.findStatisticByCrmList(serviceId);
|
|
|
|
+ EasyExcel.write(fileTemp, TBDeviceDeliveryResult.class).sheet("工时统计-按crm").doWrite(byCrmData);
|
|
|
|
+ break;
|
|
|
|
+ case BY_CUSTOM:
|
|
|
|
+ List<DingStatisticByCustomDto> byCustomData = tbdingStatisticByCustomService.findStatisticByCustomList(
|
|
|
|
+ serviceId);
|
|
|
|
+ EasyExcel.write(fileTemp, TBDeviceDeliveryResult.class).sheet("工时统计-按客户").doWrite(byCustomData);
|
|
|
|
+ break;
|
|
|
|
+ case BY_SUPPLIER:
|
|
|
|
+ List<DingStatisticBySupplierDto> bySupplierData = tbdingStatisticBySupplierService.findStatisticBySupplierList(
|
|
|
|
+ serviceId);
|
|
|
|
+ EasyExcel.write(fileTemp, TBDeviceDeliveryResult.class).sheet("工时统计-按供应商").doWrite(bySupplierData);
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
|
|
+ break;
|
|
}
|
|
}
|
|
- DingStatisticByCustomDto dto = new DingStatisticByCustomDto();
|
|
|
|
- dto.setServiceName(serviceName);
|
|
|
|
- dto.setCustomName(customName);
|
|
|
|
- dto.setActualDays(actualDays);
|
|
|
|
- dto.setWeekdays(weekdays);
|
|
|
|
- dto.setWeekends(weekends);
|
|
|
|
- dto.setLegalHolidays(legalHolidays);
|
|
|
|
- dto.setWorkHours(workHours.doubleValue());
|
|
|
|
- dto.setViolationDays(violationDays);
|
|
|
|
- dto.setScanPeriod(scanPeriod);
|
|
|
|
- dto.setMarkPaperPeriod(markPaperPeriod);
|
|
|
|
- result.add(dto);
|
|
|
|
- }
|
|
|
|
- return result;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @Override
|
|
|
|
- public List<DingStatisticBySupplierDto> findStatisticBySupplier(Long serviceId) {
|
|
|
|
- List<DingStatisticBySupplierDto> result = new ArrayList<>();
|
|
|
|
- QueryWrapper<TBDingStatistic> queryWrapper = new QueryWrapper<>();
|
|
|
|
- if (serviceId != null) {
|
|
|
|
- queryWrapper.lambda().eq(TBDingStatistic::getServiceId, serviceId);
|
|
|
|
- }
|
|
|
|
- List<TBDingStatistic> datasource = this.list(queryWrapper);
|
|
|
|
- List<Long> supplierIdList = datasource.stream().map(TBDingStatistic::getSupplierId).distinct().collect(Collectors.toList());
|
|
|
|
-
|
|
|
|
- for (Long supplierId : supplierIdList) {
|
|
|
|
- List<TBDingStatistic> tbDingStatisticList = datasource.stream().filter(e -> supplierId.equals(e.getSupplierId())).collect(Collectors.toList());
|
|
|
|
- String serviceName = "";
|
|
|
|
- String supplierName = sysSupplierService.getById(supplierId).getName();
|
|
|
|
- int actualDays = 0;
|
|
|
|
- int weekdays = 0;
|
|
|
|
- int weekends = 0;
|
|
|
|
- int legalHolidays = 0;
|
|
|
|
- BigDecimal workHours = new BigDecimal(0);
|
|
|
|
- int violationDays = 0;
|
|
|
|
-
|
|
|
|
- for (TBDingStatistic tbDingStatistic : tbDingStatisticList) {
|
|
|
|
- serviceName = tbDingStatistic.getServiceName();
|
|
|
|
- actualDays = actualDays + tbDingStatistic.getActualDays();
|
|
|
|
- weekdays = weekdays + tbDingStatistic.getWeekdays();
|
|
|
|
- weekends = weekends + tbDingStatistic.getWeekends();
|
|
|
|
- legalHolidays = legalHolidays + tbDingStatistic.getLegalHolidays();
|
|
|
|
- workHours = workHours.add(tbDingStatistic.getWorkHours());
|
|
|
|
- violationDays = violationDays + tbDingStatistic.getViolationDays();
|
|
|
|
|
|
+ HttpServletResponse response = ServletUtil.getResponse();
|
|
|
|
+ FileUtil.outputFile(response, fileTemp, "工时统计结果.xlsx");
|
|
|
|
+ } finally {
|
|
|
|
+ if (Objects.nonNull(fileTemp)) {
|
|
|
|
+ fileTemp.delete();
|
|
}
|
|
}
|
|
- DingStatisticBySupplierDto dto = new DingStatisticBySupplierDto();
|
|
|
|
- dto.setServiceName(serviceName);
|
|
|
|
- dto.setSupplierName(supplierName);
|
|
|
|
- dto.setActualDays(actualDays);
|
|
|
|
- dto.setWeekdays(weekdays);
|
|
|
|
- dto.setWeekends(weekends);
|
|
|
|
- dto.setLegalHolidays(legalHolidays);
|
|
|
|
- dto.setWorkHours(workHours.doubleValue());
|
|
|
|
- dto.setViolationDays(violationDays);
|
|
|
|
- result.add(dto);
|
|
|
|
}
|
|
}
|
|
- return result;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -688,7 +539,8 @@ public class TBDingStatisticServiceImpl extends ServiceImpl<TBDingStatisticMappe
|
|
* @param tbCrmDetail 派单详情
|
|
* @param tbCrmDetail 派单详情
|
|
* @return 结果
|
|
* @return 结果
|
|
*/
|
|
*/
|
|
- private SopPeriodDto findSopPeriod(TBCrmDetail tbCrmDetail) {
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public SopPeriodDto findSopPeriod(TBCrmDetail tbCrmDetail) {
|
|
Long scanActualStartTime = tbCrmDetail.getScanActualStartTime();
|
|
Long scanActualStartTime = tbCrmDetail.getScanActualStartTime();
|
|
Long scanActualEndTime = tbCrmDetail.getScanActualEndTime();
|
|
Long scanActualEndTime = tbCrmDetail.getScanActualEndTime();
|
|
Long markPaperActualStartTime = tbCrmDetail.getMarkPaperActualStartTime();
|
|
Long markPaperActualStartTime = tbCrmDetail.getMarkPaperActualStartTime();
|