修饰一览表
This commit is contained in:
parent
5afdd83eed
commit
93574630ed
|
|
@ -229,4 +229,7 @@ public class Type extends BaseEntity {
|
|||
@JsonInclude(JsonInclude.Include.NON_EMPTY)
|
||||
private List<Type> children = new ArrayList<>();
|
||||
|
||||
@ApiModelProperty(value = "抽检比例")
|
||||
private String samplingRatio;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,9 +11,12 @@ import com.bonus.common.biz.annotation.StoreLog;
|
|||
import com.bonus.common.biz.config.ListPagingUtil;
|
||||
import com.bonus.common.core.utils.ServletUtils;
|
||||
import com.bonus.common.log.enums.OperaType;
|
||||
import com.bonus.material.basic.domain.report.LeaseOutInfo;
|
||||
import com.bonus.material.basic.domain.report.PurChaseReportInfo;
|
||||
import com.bonus.material.common.annotation.PreventRepeatSubmit;
|
||||
import com.bonus.material.repair.domain.RepairPart;
|
||||
import com.bonus.material.repair.domain.RepairRecord;
|
||||
import com.bonus.material.repair.domain.vo.RepairHomeInfo;
|
||||
import com.bonus.material.repair.domain.vo.ScrapApplyDetailsVO;
|
||||
import com.bonus.material.repair.domain.vo.ScrapAudit;
|
||||
import io.swagger.annotations.Api;
|
||||
|
|
@ -244,4 +247,47 @@ public class RepairAuditDetailsController extends BaseController {
|
|||
public AjaxResult remove(@PathVariable Long[] ids) {
|
||||
return toAjax(repairAuditDetailsService.deleteRepairAuditDetailsByIds(ids));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询修饰一览表
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "查询修饰一览表")
|
||||
@GetMapping("/getRepairHomeList")
|
||||
public AjaxResult getRepairHomeList(RepairHomeInfo dto) {
|
||||
dto.setIsExport(1);
|
||||
Integer pageIndex = Convert.toInt(ServletUtils.getParameter("pageNum"), 1);
|
||||
Integer pageSize = Convert.toInt(ServletUtils.getParameter("pageSize"), 10);
|
||||
List<RepairHomeInfo> pageList = repairAuditDetailsService.getRepairHomeList(dto);
|
||||
return AjaxResult.success(ListPagingUtil.paging(pageIndex, pageSize, pageList));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询修饰一览表总计
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "查询修饰一览表总计")
|
||||
@GetMapping("/getRepairHomeTotalList")
|
||||
public AjaxResult getRepairHomeTotalList(RepairHomeInfo dto) {
|
||||
dto.setIsExport(0);
|
||||
List<RepairHomeInfo> pageList = repairAuditDetailsService.getRepairHomeTotalList(dto);
|
||||
return AjaxResult.success(pageList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出修饰一览表
|
||||
* @param response
|
||||
* @param dto
|
||||
*/
|
||||
@ApiOperation(value = "查询修饰一览表")
|
||||
@PostMapping("/exportRepairHomeList")
|
||||
public void exportRepairHomeList(HttpServletResponse response, RepairHomeInfo dto)
|
||||
{
|
||||
dto.setIsExport(0);
|
||||
List<RepairHomeInfo> list = repairAuditDetailsService.getRepairHomeList(dto);
|
||||
ExcelUtil<RepairHomeInfo> util = new ExcelUtil<>(RepairHomeInfo.class);
|
||||
util.exportExcel(response, list, "修饰一览表");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,94 @@
|
|||
package com.bonus.material.repair.domain.vo;
|
||||
|
||||
import com.bonus.common.core.annotation.Excel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 修饰一览表
|
||||
* @Author ma_sh
|
||||
* @create 2025/3/26 11:12
|
||||
*/
|
||||
@Data
|
||||
public class RepairHomeInfo {
|
||||
|
||||
/**
|
||||
* 增长还是下降 true为增长,false为下降
|
||||
*/
|
||||
private Boolean isIncrease = false;
|
||||
|
||||
/**
|
||||
* 同比
|
||||
*/
|
||||
private BigDecimal increase;
|
||||
|
||||
private Integer isExport;
|
||||
|
||||
private Long id;
|
||||
|
||||
private Long taskId;
|
||||
|
||||
private Long typeId;
|
||||
|
||||
@Excel(name = "类型名称")
|
||||
private String typeName;
|
||||
|
||||
@Excel(name = "规格型号")
|
||||
private String typeModelName;
|
||||
|
||||
@Excel(name = "维修单号")
|
||||
private String repairCode;
|
||||
|
||||
@Excel(name = "单位")
|
||||
private String unitName;
|
||||
|
||||
@Excel(name = "总接收数量")
|
||||
private BigDecimal backNum;
|
||||
|
||||
@Excel(name = "已修数量")
|
||||
private BigDecimal repairedNum = BigDecimal.ZERO;
|
||||
|
||||
/**
|
||||
* 在修数量
|
||||
*/
|
||||
@Excel(name = "在修数量")
|
||||
private BigDecimal repairingNum = BigDecimal.ZERO;
|
||||
|
||||
@Excel(name = "报废数量")
|
||||
private BigDecimal scrapNum = BigDecimal.ZERO;
|
||||
|
||||
/**
|
||||
* 试验数量
|
||||
*/
|
||||
@Excel(name = "试验数量")
|
||||
private BigDecimal testNum = BigDecimal.ZERO;
|
||||
|
||||
/**
|
||||
* 更换配件数量
|
||||
*/
|
||||
@Excel(name = "更换配件量")
|
||||
private BigDecimal changePartNum = BigDecimal.ZERO;
|
||||
|
||||
/**
|
||||
* 收费配件金额
|
||||
*/
|
||||
@Excel(name = "收费配件金额(元)")
|
||||
private BigDecimal amountPartPrice = BigDecimal.ZERO;
|
||||
|
||||
/**
|
||||
* 不收费配件金额
|
||||
*/
|
||||
@Excel(name = "不收费配件金额(元)")
|
||||
private BigDecimal noAmountPartPrice = BigDecimal.ZERO;
|
||||
|
||||
@ApiModelProperty(value = "开始时间")
|
||||
private String startTime;
|
||||
|
||||
@ApiModelProperty(value = "结束时间")
|
||||
private String endTime;
|
||||
|
||||
@ApiModelProperty(value = "关键字")
|
||||
private String keyWord;
|
||||
}
|
||||
|
|
@ -94,4 +94,11 @@ public interface RepairApplyDetailsMapper {
|
|||
* @return
|
||||
*/
|
||||
List<RepairTaskDetails> getRepairDetails(Long oldWxTaskId);
|
||||
|
||||
/**
|
||||
* 修改repair_apply_record维修任务详情状态
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
int updateRepairApplyDetailsAfterAudit(RepairAuditDetails dto);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import com.bonus.material.repair.domain.RepairRecord;
|
|||
import com.bonus.material.repair.domain.RepairTaskDetails;
|
||||
import com.bonus.common.biz.domain.vo.KeyValueVO;
|
||||
import com.bonus.material.repair.domain.vo.RepairAuditDetailsVO;
|
||||
import com.bonus.material.repair.domain.vo.RepairHomeInfo;
|
||||
import com.bonus.material.repair.domain.vo.ScrapApplyDetailsVO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
|
|
@ -145,4 +146,18 @@ public interface RepairAuditDetailsMapper {
|
|||
* @return
|
||||
*/
|
||||
List<RepairAuditDetails> getDetailsList(RepairAuditDetails repairAuditDetails);
|
||||
|
||||
/**
|
||||
* 查询总接收数量
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
List<RepairHomeInfo> getRepairHomeList(RepairHomeInfo dto);
|
||||
|
||||
/**
|
||||
* 查询修饰一览详情数据
|
||||
* @param repairHomeInfo
|
||||
* @return
|
||||
*/
|
||||
List<RepairHomeInfo> selectDetails(RepairHomeInfo repairHomeInfo);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import com.bonus.material.repair.domain.RepairAuditDetails;
|
|||
import com.bonus.material.repair.domain.RepairPart;
|
||||
import com.bonus.material.repair.domain.RepairRecord;
|
||||
import com.bonus.material.repair.domain.vo.RepairAuditDetailsVO;
|
||||
import com.bonus.material.repair.domain.vo.RepairHomeInfo;
|
||||
import com.bonus.material.repair.domain.vo.ScrapApplyDetailsVO;
|
||||
import com.bonus.material.repair.domain.vo.ScrapAudit;
|
||||
|
||||
|
|
@ -119,4 +120,18 @@ public interface IRepairAuditDetailsService {
|
|||
* @return
|
||||
*/
|
||||
List<RepairAuditDetails> getDetailsList(RepairAuditDetails repairAuditDetails);
|
||||
|
||||
/**
|
||||
* 查询修饰一览表
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
List<RepairHomeInfo> getRepairHomeList(RepairHomeInfo dto);
|
||||
|
||||
/**
|
||||
* 查询修饰一览表总计
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
List<RepairHomeInfo> getRepairHomeTotalList(RepairHomeInfo dto);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,8 +9,10 @@ import com.bonus.common.core.exception.ServiceException;
|
|||
import com.bonus.common.core.utils.DateUtils;
|
||||
import com.bonus.common.core.utils.StringUtils;
|
||||
import com.bonus.common.security.utils.SecurityUtils;
|
||||
import com.bonus.material.basic.domain.report.PurChaseReportInfo;
|
||||
import com.bonus.material.repair.domain.*;
|
||||
import com.bonus.material.repair.domain.vo.RepairAuditDetailsVO;
|
||||
import com.bonus.material.repair.domain.vo.RepairHomeInfo;
|
||||
import com.bonus.material.repair.domain.vo.ScrapApplyDetailsVO;
|
||||
import com.bonus.material.repair.domain.vo.ScrapAudit;
|
||||
import com.bonus.material.repair.mapper.RepairApplyDetailsMapper;
|
||||
|
|
@ -34,7 +36,10 @@ import org.springframework.util.CollectionUtils;
|
|||
import javax.annotation.Resource;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
|
@ -729,6 +734,8 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService
|
|||
final List<RepairInputDetails> inputList = new ArrayList<>();
|
||||
for (final RepairAuditDetails details : repairAuditDetailsByQuery) {
|
||||
RepairAuditDetails dto = repairApplyDetailsMapper.selectById(details.getRepairId());
|
||||
// 根据taskId修改repair_apply_record的status状态为已审核1
|
||||
repairApplyDetailsMapper.updateRepairApplyDetailsAfterAudit(dto);
|
||||
List<ScrapApplyDetails> list = scrapApplyDetailsMapper.selectScrapByTaskId(dto);
|
||||
if (details.getRepairedNum().compareTo(BigDecimal.ZERO) > 0) {
|
||||
//修改机具状态为修试后待入库
|
||||
|
|
@ -906,4 +913,219 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService
|
|||
public List<RepairAuditDetails> getDetailsList(RepairAuditDetails repairAuditDetails) {
|
||||
return repairAuditDetailsMapper.getDetailsList(repairAuditDetails);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询修饰一览表
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<RepairHomeInfo> getRepairHomeList(RepairHomeInfo dto) {
|
||||
BigDecimal totalBackNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
|
||||
BigDecimal totalRepairedNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
|
||||
BigDecimal totalRepairingNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
|
||||
BigDecimal totalScrapNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
|
||||
BigDecimal totalTestNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
|
||||
BigDecimal totalChangePartNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
|
||||
BigDecimal totalAmountPartPrice = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP);
|
||||
BigDecimal totalNoAmountPartPrice = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP);
|
||||
// 查询总接收数量
|
||||
List<RepairHomeInfo> repairHomeList = repairAuditDetailsMapper.getRepairHomeList(dto);
|
||||
if (!CollectionUtils.isEmpty(repairHomeList)) {
|
||||
String keyWord = dto.getKeyWord();
|
||||
// 如果关键字不为空,进行过滤
|
||||
if (!StringUtils.isBlank(keyWord)) {
|
||||
repairHomeList = repairHomeList.stream()
|
||||
.filter(item -> containsRepairKeyword(item, keyWord))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
for (RepairHomeInfo repairHomeInfo : repairHomeList) {
|
||||
// 根据taskId和typeId查询详情数据
|
||||
List<RepairHomeInfo> detailsList = repairAuditDetailsMapper.selectDetails(repairHomeInfo);
|
||||
if (!CollectionUtils.isEmpty(detailsList)) {
|
||||
BigDecimal repairedNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
|
||||
BigDecimal repairingNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
|
||||
BigDecimal scrapNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
|
||||
BigDecimal testNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
|
||||
BigDecimal changePartNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
|
||||
BigDecimal amountPartPrice = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP);
|
||||
BigDecimal noAmountPartPrice = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP);
|
||||
for (RepairHomeInfo homeInfo : detailsList) {
|
||||
repairedNum = repairedNum.add(homeInfo.getRepairedNum());
|
||||
//repairingNum = repairingNum.add(homeInfo.getRepairingNum());
|
||||
scrapNum = scrapNum.add(homeInfo.getScrapNum());
|
||||
testNum = testNum.add(homeInfo.getTestNum());
|
||||
changePartNum = changePartNum.add(homeInfo.getChangePartNum());
|
||||
noAmountPartPrice = noAmountPartPrice.add(homeInfo.getNoAmountPartPrice());
|
||||
amountPartPrice = amountPartPrice.add(homeInfo.getAmountPartPrice());
|
||||
totalChangePartNum = totalChangePartNum.add(homeInfo.getChangePartNum());
|
||||
totalAmountPartPrice = totalAmountPartPrice.add(homeInfo.getAmountPartPrice());
|
||||
totalNoAmountPartPrice = totalNoAmountPartPrice.add(homeInfo.getNoAmountPartPrice());
|
||||
totalRepairedNum = totalRepairedNum.add(homeInfo.getRepairedNum());
|
||||
totalScrapNum = totalScrapNum.add(homeInfo.getScrapNum());
|
||||
totalTestNum = totalTestNum.add(homeInfo.getTestNum());
|
||||
}
|
||||
repairHomeInfo.setRepairedNum(repairedNum);
|
||||
repairHomeInfo.setScrapNum(scrapNum);
|
||||
repairHomeInfo.setRepairingNum(repairHomeInfo.getBackNum().subtract(repairedNum));
|
||||
repairHomeInfo.setTestNum(testNum);
|
||||
repairHomeInfo.setChangePartNum(changePartNum);
|
||||
repairHomeInfo.setAmountPartPrice(amountPartPrice);
|
||||
repairHomeInfo.setNoAmountPartPrice(noAmountPartPrice);
|
||||
totalRepairingNum = totalRepairingNum.add(repairHomeInfo.getRepairingNum());
|
||||
}
|
||||
totalBackNum = totalBackNum.add(repairHomeInfo.getBackNum());
|
||||
}
|
||||
if (dto.getIsExport() == 0) {
|
||||
RepairHomeInfo info = new RepairHomeInfo();
|
||||
info.setBackNum(totalBackNum);
|
||||
info.setRepairedNum(totalRepairedNum);
|
||||
info.setRepairingNum(totalRepairingNum);
|
||||
info.setScrapNum(totalScrapNum);
|
||||
info.setTestNum(totalTestNum);
|
||||
info.setUnitName("合计");
|
||||
repairHomeList.add(0, info);
|
||||
}
|
||||
}
|
||||
return repairHomeList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断是否包含关键字
|
||||
* @param item
|
||||
* @param keyWord
|
||||
* @return
|
||||
*/
|
||||
private boolean containsRepairKeyword(RepairHomeInfo item, String keyWord) {
|
||||
return (item.getTypeName() != null && item.getTypeName().contains(keyWord)) ||
|
||||
(item.getTypeModelName() != null && item.getTypeModelName().contains(keyWord)) ||
|
||||
(item.getRepairCode() != null && item.getRepairCode().contains(keyWord));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询修饰一览表总计
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<RepairHomeInfo> getRepairHomeTotalList(RepairHomeInfo dto) {
|
||||
List<RepairHomeInfo> infos = new ArrayList<>();
|
||||
// 本月固定时间段查询
|
||||
List<RepairHomeInfo> repairHomeList = getRepairHomeList(dto);
|
||||
// 根据前端传入的startTime和endTime进行上月同比时间查询
|
||||
if (!StringUtils.isEmpty(dto.getStartTime()) && !StringUtils.isEmpty(dto.getEndTime())) {
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
LocalDate startDate = LocalDate.parse(dto.getStartTime(), formatter);
|
||||
LocalDate endDate = LocalDate.parse(dto.getEndTime(), formatter);
|
||||
// 获取上月同期开始时间
|
||||
LocalDate lastMonthStart = startDate.minusMonths(1);
|
||||
// 获取上月同期结束时间
|
||||
LocalDate lastMonthEnd = endDate.minusMonths(1);
|
||||
dto.setStartTime(lastMonthStart.format(formatter));
|
||||
dto.setEndTime(lastMonthEnd.format(formatter));
|
||||
List<RepairHomeInfo> lastMonthList = getRepairHomeList(dto);
|
||||
if (!CollectionUtils.isEmpty(lastMonthList) && !CollectionUtils.isEmpty(repairHomeList)) {
|
||||
RepairHomeInfo thisMonthInfo = repairHomeList.get(0);
|
||||
RepairHomeInfo lastMonthInfo = lastMonthList.get(0);
|
||||
// 计算各项指标的同比
|
||||
calculateAndAddInfo(infos, thisMonthInfo::getBackNum, lastMonthInfo::getBackNum, RepairHomeInfo::setBackNum);
|
||||
calculateAndAddInfo(infos, thisMonthInfo::getRepairedNum, lastMonthInfo::getRepairedNum, RepairHomeInfo::setRepairedNum);
|
||||
calculateAndAddInfo(infos, thisMonthInfo::getRepairingNum, lastMonthInfo::getRepairingNum, RepairHomeInfo::setRepairingNum);
|
||||
calculateAndAddInfo(infos, thisMonthInfo::getScrapNum, lastMonthInfo::getScrapNum, RepairHomeInfo::setScrapNum);
|
||||
calculateAndAddInfo(infos, thisMonthInfo::getTestNum, lastMonthInfo::getTestNum, RepairHomeInfo::setTestNum);
|
||||
} else if (CollectionUtils.isEmpty(lastMonthList) && !CollectionUtils.isEmpty(repairHomeList)) {
|
||||
RepairHomeInfo thisMonthInfo = repairHomeList.get(0);
|
||||
RepairHomeInfo info = new RepairHomeInfo();
|
||||
info.setBackNum(thisMonthInfo.getBackNum());
|
||||
info.setIncrease(BigDecimal.valueOf(100));
|
||||
info.setIsIncrease(true);
|
||||
infos.add(info);
|
||||
info = new RepairHomeInfo();
|
||||
info.setRepairedNum(thisMonthInfo.getRepairedNum());
|
||||
info.setIncrease(BigDecimal.valueOf(100));
|
||||
info.setIsIncrease(true);
|
||||
infos.add(info);
|
||||
info = new RepairHomeInfo();
|
||||
info.setRepairingNum(thisMonthInfo.getRepairingNum());
|
||||
info.setIncrease(BigDecimal.valueOf(100));
|
||||
info.setIsIncrease(true);
|
||||
infos.add(info);
|
||||
info = new RepairHomeInfo();
|
||||
info.setScrapNum(thisMonthInfo.getScrapNum());
|
||||
info.setIncrease(BigDecimal.valueOf(100));
|
||||
info.setIsIncrease(true);
|
||||
infos.add(info);
|
||||
info = new RepairHomeInfo();
|
||||
info.setTestNum(thisMonthInfo.getTestNum());
|
||||
info.setIncrease(BigDecimal.valueOf(100));
|
||||
info.setIsIncrease(true);
|
||||
infos.add(info);
|
||||
} else if (!CollectionUtils.isEmpty(lastMonthList) && CollectionUtils.isEmpty(repairHomeList)) {
|
||||
RepairHomeInfo lastMonthInfo = lastMonthList.get(0);
|
||||
RepairHomeInfo info = new RepairHomeInfo();
|
||||
info.setBackNum(lastMonthInfo.getBackNum());
|
||||
info.setIncrease(BigDecimal.valueOf(100));
|
||||
info.setIsIncrease(false);
|
||||
infos.add(info);
|
||||
info = new RepairHomeInfo();
|
||||
info.setRepairedNum(lastMonthInfo.getRepairedNum());
|
||||
info.setIncrease(BigDecimal.valueOf(100));
|
||||
info.setIsIncrease(false);
|
||||
infos.add(info);
|
||||
info = new RepairHomeInfo();
|
||||
info.setRepairingNum(lastMonthInfo.getRepairingNum());
|
||||
info.setIncrease(BigDecimal.valueOf(100));
|
||||
info.setIsIncrease(false);
|
||||
infos.add(info);
|
||||
info = new RepairHomeInfo();
|
||||
info.setScrapNum(lastMonthInfo.getScrapNum());
|
||||
info.setIncrease(BigDecimal.valueOf(100));
|
||||
info.setIsIncrease(false);
|
||||
infos.add(info);
|
||||
info = new RepairHomeInfo();
|
||||
info.setTestNum(lastMonthInfo.getTestNum());
|
||||
info.setIncrease(BigDecimal.valueOf(100));
|
||||
info.setIsIncrease(false);
|
||||
infos.add(info);
|
||||
}
|
||||
}
|
||||
return infos;
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算指标的同比
|
||||
* @param infos
|
||||
* @param thisMonthSupplier
|
||||
* @param lastMonthSupplier
|
||||
* @param setter
|
||||
*/
|
||||
private void calculateAndAddInfo(List<RepairHomeInfo> infos,
|
||||
java.util.function.Supplier<BigDecimal> thisMonthSupplier,
|
||||
java.util.function.Supplier<BigDecimal> lastMonthSupplier,
|
||||
java.util.function.BiConsumer<RepairHomeInfo, BigDecimal> setter) {
|
||||
BigDecimal thisMonthValue = thisMonthSupplier.get();
|
||||
BigDecimal lastMonthValue = lastMonthSupplier.get();
|
||||
|
||||
BigDecimal increase = calculateIncrease(thisMonthValue, lastMonthValue);
|
||||
|
||||
RepairHomeInfo vo = new RepairHomeInfo();
|
||||
setter.accept(vo, thisMonthValue);
|
||||
vo.setIncrease(increase);
|
||||
vo.setIsIncrease(increase.compareTo(BigDecimal.ZERO) > 0);
|
||||
infos.add(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算指标的同比
|
||||
* @param thisMonthValue
|
||||
* @param lastMonthValue
|
||||
* @return
|
||||
*/
|
||||
private BigDecimal calculateIncrease(BigDecimal thisMonthValue, BigDecimal lastMonthValue) {
|
||||
if (lastMonthValue.compareTo(BigDecimal.ZERO) != 0) {
|
||||
return thisMonthValue.subtract(lastMonthValue).divide(lastMonthValue, 2, RoundingMode.HALF_UP);
|
||||
}
|
||||
return BigDecimal.ZERO;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<result property="intelligentCode" column="intelligent_code" />
|
||||
<result property="isTest" column="is_test" />
|
||||
<result property="companyId" column="company_id" />
|
||||
<result property="samplingRatio" column="sampling_ratio" />
|
||||
</resultMap>
|
||||
|
||||
<resultMap type="com.bonus.material.ma.domain.vo.MaTypeVo" id="MaTypeVoResult">
|
||||
|
|
@ -170,7 +171,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
GROUP_CONCAT(distinct su.user_id) as keeperId,
|
||||
GROUP_CONCAT(distinct su2.user_name) as repair_nick_name,
|
||||
GROUP_CONCAT(distinct su2.user_id) as repairerId,
|
||||
hi.house_name
|
||||
hi.house_name,
|
||||
t.sampling_ratio
|
||||
FROM ma_type AS t
|
||||
left join ma_type mt2 on t.parent_id = mt2.type_id
|
||||
left join ma_type mt3 on mt2.parent_id = mt3.type_id
|
||||
|
|
@ -249,6 +251,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="facModel != null">fac_model,</if>
|
||||
<if test="intelligentCode != null">intelligent_code,</if>
|
||||
<if test="isTest != null">is_test,</if>
|
||||
<if test="samplingRatio != null">sampling_ratio,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="typeName != null and typeName != ''">#{typeName},</if>
|
||||
|
|
@ -283,6 +286,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="facModel != null">#{facModel},</if>
|
||||
<if test="intelligentCode != null">#{intelligentCode},</if>
|
||||
<if test="isTest != null">#{isTest},</if>
|
||||
<if test="samplingRatio != null">#{samplingRatio},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
|
|
@ -320,6 +324,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="facModel != null">fac_model = #{facModel},</if>
|
||||
<if test="intelligentCode != null">intelligent_code = #{intelligentCode},</if>
|
||||
<if test="isTest != null">is_test = #{isTest},</if>
|
||||
<if test="samplingRatio != null">sampling_ratio = #{samplingRatio},</if>
|
||||
</trim>
|
||||
where type_id = #{typeId}
|
||||
</update>
|
||||
|
|
|
|||
|
|
@ -125,6 +125,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
update_time = NOW()
|
||||
where id = #{repairId}
|
||||
</update>
|
||||
<update id="updateRepairApplyDetailsAfterAudit">
|
||||
update repair_apply_record
|
||||
set status = 1,
|
||||
update_time = NOW()
|
||||
where task_id = #{taskId}
|
||||
</update>
|
||||
|
||||
<select id="getRepairDetailsWhichNotSent" resultType="com.bonus.material.repair.domain.RepairTaskDetails">
|
||||
select rad.id as id,
|
||||
|
|
|
|||
|
|
@ -592,4 +592,66 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
WHERE rad.task_id = #{taskId}
|
||||
and rad.type_id = #{typeId}
|
||||
</select>
|
||||
|
||||
<select id="getRepairHomeList" resultType="com.bonus.material.repair.domain.vo.RepairHomeInfo">
|
||||
SELECT
|
||||
mt1.type_name AS typeName,
|
||||
mt.type_name AS typeModelName,
|
||||
mt.unit_name AS unitName,
|
||||
ROUND( SUM( rad.repair_num ), 3 ) AS backNum,
|
||||
mt.type_id AS typeId,
|
||||
tt.`code` AS repairCode,
|
||||
rad.task_id AS taskId,
|
||||
rad.id AS id
|
||||
FROM
|
||||
repair_apply_details rad
|
||||
LEFT JOIN ma_type mt ON rad.type_id = mt.type_id
|
||||
AND mt.del_flag = '0'
|
||||
LEFT JOIN ma_type mt1 ON mt.parent_id = mt1.type_id
|
||||
AND mt1.del_flag = '0'
|
||||
LEFT JOIN tm_task tt ON rad.task_id = tt.task_id
|
||||
WHERE 1 = 1
|
||||
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
|
||||
<![CDATA[and DATE_FORMAT( rad.create_time, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime} ]]>
|
||||
</if>
|
||||
GROUP BY
|
||||
rad.type_id,
|
||||
rad.task_id
|
||||
</select>
|
||||
|
||||
<select id="selectDetails" resultType="com.bonus.material.repair.domain.vo.RepairHomeInfo">
|
||||
SELECT
|
||||
IFNULL(SUM(rar.part_num),0) AS changePartNum,
|
||||
SUM(
|
||||
CASE
|
||||
WHEN rar.part_type = 1 AND rar.part_id IS NOT NULL THEN rar.part_num * rar.part_price
|
||||
WHEN rar.part_type = 1 AND rar.part_id IS NULL THEN rar.part_price
|
||||
ELSE 0
|
||||
END
|
||||
) AS amountPartPrice,
|
||||
SUM(
|
||||
CASE
|
||||
WHEN rar.part_type = 0 AND rar.part_id IS NOT NULL THEN rar.part_num * rar.part_price
|
||||
WHEN rar.part_type = 0 AND rar.part_id IS NULL THEN rar.part_price
|
||||
ELSE 0
|
||||
END
|
||||
) AS noAmountPartPrice,
|
||||
ROUND(IFNULL(rar.repair_num, 0) + IFNULL(rar.scrap_num , 0)) AS repairedNum,
|
||||
ROUND(IFNULL(sum(rar.scrap_num ), 0), 0) AS scrapNum,
|
||||
ROUND((IFNULL(rar.repair_num, 0) + IFNULL(rar.scrap_num , 0)) * IFNULL(mt.sampling_ratio * 0.01, 1), 3)
|
||||
AS testNum
|
||||
FROM
|
||||
repair_apply_record rar
|
||||
LEFT JOIN ma_type mt ON rar.type_id = mt.type_id
|
||||
AND mt.del_flag = '0'
|
||||
LEFT JOIN ma_type mt1 ON mt.parent_id = mt1.type_id
|
||||
AND mt1.del_flag = '0'
|
||||
WHERE rar.`status` = '1' and
|
||||
rar.task_id = #{taskId} and rar.type_id = #{typeId}
|
||||
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
|
||||
<![CDATA[and DATE_FORMAT( rar.create_time, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime} ]]>
|
||||
</if>
|
||||
GROUP BY
|
||||
rar.repair_type
|
||||
</select>
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue