|
@@ -2,13 +2,13 @@ package com.platform.service.repair.impl;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
-import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
import com.platform.common.bean.DictVO;
|
|
|
import com.platform.common.cache.ConfigCache;
|
|
|
import com.platform.common.cache.DictCache;
|
|
|
+import com.platform.common.constant.CommonConstants;
|
|
|
import com.platform.common.constant.RedisKeyConstants;
|
|
|
import com.platform.common.enums.DataFilterTypeEnum;
|
|
|
import com.platform.common.exception.BusinessException;
|
|
@@ -16,20 +16,11 @@ import com.platform.common.model.UserInfo;
|
|
|
import com.platform.common.util.*;
|
|
|
import com.platform.dao.bean.MyVOPage;
|
|
|
import com.platform.dao.dto.repair.RepairApplicationFormDTO;
|
|
|
-import com.platform.dao.dto.repair.RepairCheckDTO;
|
|
|
-import com.platform.dao.dto.repair.RepairFormDTO;
|
|
|
import com.platform.dao.dto.sb.SbInfoDTO;
|
|
|
-import com.platform.dao.dto.store.InStoreDetailDTO;
|
|
|
import com.platform.dao.dto.upms.SysUserDTO;
|
|
|
-import com.platform.dao.entity.check.CheckJob;
|
|
|
import com.platform.dao.entity.repair.RepairApplicationForm;
|
|
|
-import com.platform.dao.entity.repair.RepairCheck;
|
|
|
-import com.platform.dao.entity.repair.RepairForm;
|
|
|
import com.platform.dao.entity.repair.RepairReason;
|
|
|
import com.platform.dao.entity.sb.SbInfo;
|
|
|
-import com.platform.dao.entity.sb.SbInspectionFill;
|
|
|
-import com.platform.dao.entity.store.InStoreDetail;
|
|
|
-import com.platform.dao.entity.upms.SysConfig;
|
|
|
import com.platform.dao.entity.upms.SysFile;
|
|
|
import com.platform.dao.entity.upms.SysUser;
|
|
|
import com.platform.dao.enums.*;
|
|
@@ -40,17 +31,13 @@ import com.platform.dao.mapper.repair.RepairReasonMapper;
|
|
|
import com.platform.dao.mapper.upms.SysFileMapper;
|
|
|
import com.platform.dao.mapper.upms.SysUserMapper;
|
|
|
import com.platform.dao.util.MessageTemplateUtil;
|
|
|
-import com.platform.dao.util.UserUtil;
|
|
|
import com.platform.dao.vo.SysUserVO;
|
|
|
-import com.platform.dao.vo.query.upms.SysDeptVO;
|
|
|
+import com.platform.dao.vo.query.workplace.WorkplaceRepairVO;
|
|
|
import com.platform.dao.vo.repair.RepairApplicationFormVO;
|
|
|
-import com.platform.dao.vo.repair.RepairCheckVO;
|
|
|
-import com.platform.dao.vo.repair.RepairFormVO;
|
|
|
import com.platform.dao.vo.report.RepairReport24VO;
|
|
|
import com.platform.dao.vo.report.RepairReportMttr;
|
|
|
import com.platform.dao.vo.report.RepairSbInfoReport;
|
|
|
import com.platform.dao.vo.sb.SbInfoVO;
|
|
|
-import com.platform.office.annotation.Excel;
|
|
|
import com.platform.service.base.impl.BaseServiceImpl;
|
|
|
import com.platform.service.event.WorkplaceBacklogEvent;
|
|
|
import com.platform.service.repair.RepairApplicationFormService;
|
|
@@ -60,23 +47,16 @@ import com.platform.service.upms.SysUserDeptService;
|
|
|
import com.platform.service.upms.SysUserService;
|
|
|
import com.platform.service.util.SysFileUtils;
|
|
|
import com.platform.service.wechat.util.WeChatMessageUtil;
|
|
|
-import freemarker.template.Configuration;
|
|
|
-import freemarker.template.Template;
|
|
|
-import freemarker.template.TemplateException;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
-import org.springframework.core.io.ClassPathResource;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import tk.mybatis.mapper.weekend.Weekend;
|
|
|
import tk.mybatis.mapper.weekend.WeekendCriteria;
|
|
|
|
|
|
-import javax.annotation.Resource;
|
|
|
-import java.io.IOException;
|
|
|
-import java.io.InputStream;
|
|
|
-import java.io.StringWriter;
|
|
|
-import java.lang.reflect.Array;
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
+import java.time.format.TextStyle;
|
|
|
import java.time.temporal.ChronoUnit;
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
@@ -870,6 +850,113 @@ public class RepairApplicationFormServiceImpl extends BaseServiceImpl<RepairAppl
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public WorkplaceRepairVO getWorkplaceRepairData(String userId,String searchTime) {
|
|
|
+ WorkplaceRepairVO vo = new WorkplaceRepairVO();
|
|
|
+ // 获取内部维修数据
|
|
|
+ RepairApplicationFormDTO queryDTO = new RepairApplicationFormDTO();
|
|
|
+ queryDTO.setType(RepairApplicationFormTypeEnum.IN.getValue());
|
|
|
+ queryDTO.setSearchTime(searchTime);
|
|
|
+ queryDTO.setRepairUserId(userId);
|
|
|
+ List<RepairApplicationFormVO> list = mapper.getWorkplaceRepairData(queryDTO);
|
|
|
+ if(list != null && list.size() > 0){
|
|
|
+ for(RepairApplicationFormVO result : list){
|
|
|
+ packageInfo(RepairApplicationFormTypeEnum.IN.getValue(),result,vo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ queryDTO.setType(RepairApplicationFormTypeEnum.OUT.getValue());
|
|
|
+ list = mapper.getWorkplaceRepairData(queryDTO);
|
|
|
+ if(list != null && list.size() > 0){
|
|
|
+ for(RepairApplicationFormVO result : list){
|
|
|
+ packageInfo(RepairApplicationFormTypeEnum.OUT.getValue(),result,vo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 统计总和数据
|
|
|
+ vo.setTotalFee(vo.getRepairFee().add(vo.getOutRepairFee()));
|
|
|
+ vo.setTotalNum(vo.getRepairTotalNum().add(vo.getOutRepairTotalNum()));
|
|
|
+ return vo;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<RepairApplicationFormVO> getCurrentlyList(String userId) {
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
+ List<LocalDateTime> currentWeekStartAndEndList = DateUtils.currentWeek();
|
|
|
+ LocalDateTime searchStartTime = now.plusDays(-6).withHour(0).withMinute(0).withSecond(0);
|
|
|
+ LocalDateTime searchEndTime = now.withHour(23).withMinute(59).withSecond(59);
|
|
|
+ // 总数
|
|
|
+ RepairApplicationFormDTO queryDTO = new RepairApplicationFormDTO();
|
|
|
+ queryDTO.setSearchStartTime(searchStartTime);
|
|
|
+ queryDTO.setSearchEndTime(searchEndTime);
|
|
|
+ queryDTO.setRepairUserId(userId);
|
|
|
+ List<RepairApplicationFormVO> list = mapper.getCurrentlyList(queryDTO) == null ? new ArrayList<>() : mapper.getCurrentlyList(queryDTO);
|
|
|
+
|
|
|
+ List<RepairApplicationFormVO> result = new ArrayList<>();
|
|
|
+ for(LocalDateTime tempDate: currentWeekStartAndEndList){
|
|
|
+ RepairApplicationFormVO vo = new RepairApplicationFormVO();
|
|
|
+ int tempTotalNum = 0;
|
|
|
+ vo.setWeekDayName(tempDate.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.CHINA));
|
|
|
+ for(RepairApplicationFormVO useVO: list){
|
|
|
+ if(useVO.getRepairStartTime().toLocalDate().isEqual(tempDate.toLocalDate())){
|
|
|
+ tempTotalNum+=1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ vo.setTempTotalNum(new BigDecimal(tempTotalNum));
|
|
|
+ result.add(vo);
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 数据封装
|
|
|
+ * @param type 工单维修类型 内部还是外部
|
|
|
+ * @param result 结果数据
|
|
|
+ * @param vo 返回数据
|
|
|
+ */
|
|
|
+ private void packageInfo(Integer type,RepairApplicationFormVO result,WorkplaceRepairVO vo){
|
|
|
+ BigDecimal tempNum = result.getTempTotalNum();
|
|
|
+ if(RepairApplicationFormTypeEnum.IN.getValue() == type){
|
|
|
+ vo.setRepairFee(vo.getRepairFee().add(result.getTempTotalFee()));
|
|
|
+ vo.setRepairTotalNum(vo.getRepairTotalNum().add(tempNum));
|
|
|
+ // 内部维修
|
|
|
+ switch (result.getStatus().intValue()){
|
|
|
+ case CommonConstants.NOT_ALLOCATED:
|
|
|
+ case CommonConstants.PROCESSING:
|
|
|
+ vo.setWaitForRepairNum(vo.getWaitForRepairNum().add(tempNum));
|
|
|
+ break;
|
|
|
+ case CommonConstants.WAIT_SUBMIT:
|
|
|
+ case CommonConstants.NOT_ACCEPTANCE:
|
|
|
+ vo.setVerifyRepairNum(vo.getVerifyRepairNum().add(tempNum));
|
|
|
+ break;
|
|
|
+ case CommonConstants.REBACK:
|
|
|
+ vo.setRefusedRepairNum(vo.getRefusedRepairNum().add(tempNum));
|
|
|
+ break;
|
|
|
+ case CommonConstants.FINISHED:
|
|
|
+ vo.setCompletedRepairNum(vo.getCompletedRepairNum().add(tempNum));
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }else if(RepairApplicationFormTypeEnum.OUT.getValue() == type) {
|
|
|
+ vo.setOutRepairFee(vo.getOutRepairFee().add(result.getTempTotalFee()));
|
|
|
+ vo.setOutRepairTotalNum(vo.getOutRepairTotalNum().add(tempNum));
|
|
|
+ // 委外
|
|
|
+ switch (result.getStatus()){
|
|
|
+ case CommonConstants.NOT_ALLOCATED:
|
|
|
+ case CommonConstants.PROCESSING:
|
|
|
+ vo.setOutWaitForRepairNum(vo.getOutWaitForRepairNum().add(tempNum));
|
|
|
+ break;
|
|
|
+ case CommonConstants.WAIT_SUBMIT:
|
|
|
+ case CommonConstants.NOT_ACCEPTANCE:
|
|
|
+ vo.setOutVerifyRepairNum(vo.getOutVerifyRepairNum().add(tempNum));
|
|
|
+ break;
|
|
|
+ case CommonConstants.REBACK:
|
|
|
+ vo.setOutRefusedRepairNum(vo.getOutRefusedRepairNum().add(tempNum));
|
|
|
+ break;
|
|
|
+ case CommonConstants.FINISHED:
|
|
|
+ vo.setOutCompletedRepairNum(vo.getOutCompletedRepairNum().add(tempNum));
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 1: 如果年份是当前年份,则统计到当前月份
|
|
|
* 2:如果不是当前年份,则统计全年的
|