修饰一览表

This commit is contained in:
mashuai 2025-03-26 16:21:51 +08:00
parent 5afdd83eed
commit 93574630ed
10 changed files with 476 additions and 1 deletions

View File

@ -229,4 +229,7 @@ public class Type extends BaseEntity {
@JsonInclude(JsonInclude.Include.NON_EMPTY) @JsonInclude(JsonInclude.Include.NON_EMPTY)
private List<Type> children = new ArrayList<>(); private List<Type> children = new ArrayList<>();
@ApiModelProperty(value = "抽检比例")
private String samplingRatio;
} }

View File

@ -11,9 +11,12 @@ import com.bonus.common.biz.annotation.StoreLog;
import com.bonus.common.biz.config.ListPagingUtil; import com.bonus.common.biz.config.ListPagingUtil;
import com.bonus.common.core.utils.ServletUtils; import com.bonus.common.core.utils.ServletUtils;
import com.bonus.common.log.enums.OperaType; 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.common.annotation.PreventRepeatSubmit;
import com.bonus.material.repair.domain.RepairPart; import com.bonus.material.repair.domain.RepairPart;
import com.bonus.material.repair.domain.RepairRecord; 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.ScrapApplyDetailsVO;
import com.bonus.material.repair.domain.vo.ScrapAudit; import com.bonus.material.repair.domain.vo.ScrapAudit;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -244,4 +247,47 @@ public class RepairAuditDetailsController extends BaseController {
public AjaxResult remove(@PathVariable Long[] ids) { public AjaxResult remove(@PathVariable Long[] ids) {
return toAjax(repairAuditDetailsService.deleteRepairAuditDetailsByIds(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, "修饰一览表");
}
} }

View File

@ -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;
}

View File

@ -94,4 +94,11 @@ public interface RepairApplyDetailsMapper {
* @return * @return
*/ */
List<RepairTaskDetails> getRepairDetails(Long oldWxTaskId); List<RepairTaskDetails> getRepairDetails(Long oldWxTaskId);
/**
* 修改repair_apply_record维修任务详情状态
* @param dto
* @return
*/
int updateRepairApplyDetailsAfterAudit(RepairAuditDetails dto);
} }

View File

@ -8,6 +8,7 @@ import com.bonus.material.repair.domain.RepairRecord;
import com.bonus.material.repair.domain.RepairTaskDetails; import com.bonus.material.repair.domain.RepairTaskDetails;
import com.bonus.common.biz.domain.vo.KeyValueVO; import com.bonus.common.biz.domain.vo.KeyValueVO;
import com.bonus.material.repair.domain.vo.RepairAuditDetailsVO; 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.ScrapApplyDetailsVO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -145,4 +146,18 @@ public interface RepairAuditDetailsMapper {
* @return * @return
*/ */
List<RepairAuditDetails> getDetailsList(RepairAuditDetails repairAuditDetails); List<RepairAuditDetails> getDetailsList(RepairAuditDetails repairAuditDetails);
/**
* 查询总接收数量
* @param dto
* @return
*/
List<RepairHomeInfo> getRepairHomeList(RepairHomeInfo dto);
/**
* 查询修饰一览详情数据
* @param repairHomeInfo
* @return
*/
List<RepairHomeInfo> selectDetails(RepairHomeInfo repairHomeInfo);
} }

View File

@ -7,6 +7,7 @@ import com.bonus.material.repair.domain.RepairAuditDetails;
import com.bonus.material.repair.domain.RepairPart; import com.bonus.material.repair.domain.RepairPart;
import com.bonus.material.repair.domain.RepairRecord; import com.bonus.material.repair.domain.RepairRecord;
import com.bonus.material.repair.domain.vo.RepairAuditDetailsVO; 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.ScrapApplyDetailsVO;
import com.bonus.material.repair.domain.vo.ScrapAudit; import com.bonus.material.repair.domain.vo.ScrapAudit;
@ -119,4 +120,18 @@ public interface IRepairAuditDetailsService {
* @return * @return
*/ */
List<RepairAuditDetails> getDetailsList(RepairAuditDetails repairAuditDetails); List<RepairAuditDetails> getDetailsList(RepairAuditDetails repairAuditDetails);
/**
* 查询修饰一览表
* @param dto
* @return
*/
List<RepairHomeInfo> getRepairHomeList(RepairHomeInfo dto);
/**
* 查询修饰一览表总计
* @param dto
* @return
*/
List<RepairHomeInfo> getRepairHomeTotalList(RepairHomeInfo dto);
} }

View File

@ -9,8 +9,10 @@ import com.bonus.common.core.exception.ServiceException;
import com.bonus.common.core.utils.DateUtils; import com.bonus.common.core.utils.DateUtils;
import com.bonus.common.core.utils.StringUtils; import com.bonus.common.core.utils.StringUtils;
import com.bonus.common.security.utils.SecurityUtils; 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.*;
import com.bonus.material.repair.domain.vo.RepairAuditDetailsVO; 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.ScrapApplyDetailsVO;
import com.bonus.material.repair.domain.vo.ScrapAudit; import com.bonus.material.repair.domain.vo.ScrapAudit;
import com.bonus.material.repair.mapper.RepairApplyDetailsMapper; import com.bonus.material.repair.mapper.RepairApplyDetailsMapper;
@ -34,7 +36,10 @@ import org.springframework.util.CollectionUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -729,6 +734,8 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService
final List<RepairInputDetails> inputList = new ArrayList<>(); final List<RepairInputDetails> inputList = new ArrayList<>();
for (final RepairAuditDetails details : repairAuditDetailsByQuery) { for (final RepairAuditDetails details : repairAuditDetailsByQuery) {
RepairAuditDetails dto = repairApplyDetailsMapper.selectById(details.getRepairId()); RepairAuditDetails dto = repairApplyDetailsMapper.selectById(details.getRepairId());
// 根据taskId修改repair_apply_record的status状态为已审核1
repairApplyDetailsMapper.updateRepairApplyDetailsAfterAudit(dto);
List<ScrapApplyDetails> list = scrapApplyDetailsMapper.selectScrapByTaskId(dto); List<ScrapApplyDetails> list = scrapApplyDetailsMapper.selectScrapByTaskId(dto);
if (details.getRepairedNum().compareTo(BigDecimal.ZERO) > 0) { if (details.getRepairedNum().compareTo(BigDecimal.ZERO) > 0) {
//修改机具状态为修试后待入库 //修改机具状态为修试后待入库
@ -906,4 +913,219 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService
public List<RepairAuditDetails> getDetailsList(RepairAuditDetails repairAuditDetails) { public List<RepairAuditDetails> getDetailsList(RepairAuditDetails repairAuditDetails) {
return repairAuditDetailsMapper.getDetailsList(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;
}
} }

View File

@ -44,6 +44,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="intelligentCode" column="intelligent_code" /> <result property="intelligentCode" column="intelligent_code" />
<result property="isTest" column="is_test" /> <result property="isTest" column="is_test" />
<result property="companyId" column="company_id" /> <result property="companyId" column="company_id" />
<result property="samplingRatio" column="sampling_ratio" />
</resultMap> </resultMap>
<resultMap type="com.bonus.material.ma.domain.vo.MaTypeVo" id="MaTypeVoResult"> <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 su.user_id) as keeperId,
GROUP_CONCAT(distinct su2.user_name) as repair_nick_name, GROUP_CONCAT(distinct su2.user_name) as repair_nick_name,
GROUP_CONCAT(distinct su2.user_id) as repairerId, GROUP_CONCAT(distinct su2.user_id) as repairerId,
hi.house_name hi.house_name,
t.sampling_ratio
FROM ma_type AS t FROM ma_type AS t
left join ma_type mt2 on t.parent_id = mt2.type_id left join ma_type mt2 on t.parent_id = mt2.type_id
left join ma_type mt3 on mt2.parent_id = mt3.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="facModel != null">fac_model,</if>
<if test="intelligentCode != null">intelligent_code,</if> <if test="intelligentCode != null">intelligent_code,</if>
<if test="isTest != null">is_test,</if> <if test="isTest != null">is_test,</if>
<if test="samplingRatio != null">sampling_ratio,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="typeName != null and typeName != ''">#{typeName},</if> <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="facModel != null">#{facModel},</if>
<if test="intelligentCode != null">#{intelligentCode},</if> <if test="intelligentCode != null">#{intelligentCode},</if>
<if test="isTest != null">#{isTest},</if> <if test="isTest != null">#{isTest},</if>
<if test="samplingRatio != null">#{samplingRatio},</if>
</trim> </trim>
</insert> </insert>
@ -320,6 +324,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="facModel != null">fac_model = #{facModel},</if> <if test="facModel != null">fac_model = #{facModel},</if>
<if test="intelligentCode != null">intelligent_code = #{intelligentCode},</if> <if test="intelligentCode != null">intelligent_code = #{intelligentCode},</if>
<if test="isTest != null">is_test = #{isTest},</if> <if test="isTest != null">is_test = #{isTest},</if>
<if test="samplingRatio != null">sampling_ratio = #{samplingRatio},</if>
</trim> </trim>
where type_id = #{typeId} where type_id = #{typeId}
</update> </update>

View File

@ -125,6 +125,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
update_time = NOW() update_time = NOW()
where id = #{repairId} where id = #{repairId}
</update> </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 id="getRepairDetailsWhichNotSent" resultType="com.bonus.material.repair.domain.RepairTaskDetails">
select rad.id as id, select rad.id as id,

View File

@ -592,4 +592,66 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
WHERE rad.task_id = #{taskId} WHERE rad.task_id = #{taskId}
and rad.type_id = #{typeId} and rad.type_id = #{typeId}
</select> </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> </mapper>