This commit is contained in:
cwchen 2023-12-16 14:30:02 +08:00
parent 9edf649b72
commit 52cebd38f3
4 changed files with 205 additions and 23 deletions

View File

@ -31,4 +31,7 @@ public class ScrapAnalysisVo {
/** 机具类型名称*/
private String typeName;
/** 类型*/
private String type;
}

View File

@ -80,25 +80,10 @@ public class LargeScreenServiceImpl implements ILargeScreenService {
ParamsDto dto = new ParamsDto();
try {
// 施工机具
// 施工机具-在库
dto.setMaTypeName(CommonConstants.SGJJ);
dto.setType("1");
List<ScrapAnalysisVo> zkValueList = mapper.getTotalOwnership(dto);
TotalOwnershipVo vo = countNum("1", CommonConstants.SGJJ);
// 安全工器具
TotalOwnershipVo vo2 = new TotalOwnershipVo();
// 工器具-在库
dto.setMaTypeName(CommonConstants.AQGQJ);
dto.setType("1");
List<ScrapAnalysisVo> zkValueList2 = mapper.getTotalOwnership(dto);
vo2.setTotalOwnershipNum(2000);
vo2.setStockNum(220);
vo2.setStoredNum(280);
vo2.setUseNum(600);
vo2.setRepairNum(450);
vo2.setScrapNum(450);
TotalOwnershipVo vo2 = countNum("2", CommonConstants.AQGQJ);
list.add(vo);
list.add(vo2);
} catch (Exception e) {
list.removeAll(list);
@ -131,6 +116,25 @@ public class LargeScreenServiceImpl implements ILargeScreenService {
// 待入库数量
dto.setType("2");
List<ScrapAnalysisVo> drkValueList = mapper.getTotalOwnership(dto);
Integer drkValue = commonUtil.setDRKData(drkValueList);
vo.setStoredNum(drkValue);
// 在用数量
dto.setType("3");
List<ScrapAnalysisVo> useValueList = mapper.getTotalOwnership(dto);
Integer useValue = commonUtil.setUSEData(useValueList);
vo.setUseNum(useValue);
// 在修数量
dto.setType("4");
List<ScrapAnalysisVo> zxValueList = mapper.getTotalOwnership(dto);
Integer zxValue = commonUtil.setZXData(zxValueList);
vo.setRepairNum(zxValue);
// 报废数量
dto.setType("5");
List<ScrapAnalysisVo> bfValueList = mapper.getTotalOwnership(dto);
Integer bfValue = commonUtil.setBFData(bfValueList);
vo.setScrapNum(bfValue);
// 总保有量
vo.setTotalOwnershipNum(zkValue + drkValue + useValue + zxValue);
return vo;
}

View File

@ -238,7 +238,7 @@ public class CommonUtil {
/**
* @param list
* @return Integer
* @description 保有量-在库
* @description 保有量-在库数量
* @author cwchen
* @date 2023/12/15 19:21
*/
@ -253,4 +253,102 @@ public class CommonUtil {
double doubleTotalValue = totalValue.doubleValue();
return (int) Math.round(doubleTotalValue);
}
/**
* @param list
* @return Integer
* @description 保有量-待入库数量
* @author cwchen
* @date 2023/12/16 13:20
*/
public Integer setDRKData(List<ScrapAnalysisVo> list) {
if (CollectionUtils.isEmpty(list)) return 0;
BigDecimal finalValue = new BigDecimal(new Double(0).toString());
BigDecimal totalValue = new BigDecimal(new Double(0).toString());
BigDecimal totalValue2 = new BigDecimal(new Double(0).toString());
for (int i = 0; i < list.size(); i++) {
ScrapAnalysisVo vo = list.get(i);
BigDecimal value = new BigDecimal(new Double(String.valueOf(vo.getNum())));
totalValue = totalValue.add(value);
BigDecimal value2 = new BigDecimal(new Double(String.valueOf(vo.getNum2())));
totalValue2 = totalValue2.add(value2);
}
finalValue = totalValue.subtract(totalValue2);
double finalDoubleValue = finalValue.doubleValue() >= 0 ? finalValue.doubleValue() : 0;
return (int) Math.round(finalDoubleValue);
}
/**
* @param list
* @return Integer
* @description 保有量-在用数量
* @author cwchen
* @date 2023/12/16 14:01
*/
public Integer setUSEData(List<ScrapAnalysisVo> list) {
if (CollectionUtils.isEmpty(list)) return 0;
BigDecimal finalValue = new BigDecimal(new Double(0).toString());
BigDecimal totalValue = new BigDecimal(new Double(0).toString());
BigDecimal totalValue2 = new BigDecimal(new Double(0).toString());
for (int i = 0; i < list.size(); i++) {
ScrapAnalysisVo vo = list.get(i);
if (Objects.equals("1", vo.getType())) {
BigDecimal value = new BigDecimal(new Double(String.valueOf(vo.getNum())));
totalValue = totalValue.add(value);
} else if (Objects.equals("2", vo.getType())) {
BigDecimal value2 = new BigDecimal(new Double(String.valueOf(vo.getNum())));
totalValue2 = totalValue2.add(value2);
}
}
finalValue = totalValue.subtract(totalValue2);
double finalDoubleValue = finalValue.doubleValue() >= 0 ? finalValue.doubleValue() : 0;
return (int) Math.round(finalDoubleValue);
}
/**
* @param list
* @return Integer
* @description 保有量-在修数量
* @author cwchen
* @date 2023/12/16 14:07
*/
public Integer setZXData(List<ScrapAnalysisVo> list) {
if (CollectionUtils.isEmpty(list)) return 0;
/*维修总量/维修合格数量/维修报废数量/待维修数量*/
BigDecimal repairValue = new BigDecimal(new Double(0).toString());
BigDecimal repairedValue = new BigDecimal(new Double(0).toString());
BigDecimal scrapValue = new BigDecimal(new Double(0).toString());
BigDecimal waitRepairedValue = new BigDecimal(new Double(0).toString());
for (int i = 0; i < list.size(); i++) {
ScrapAnalysisVo vo = list.get(i);
BigDecimal value = new BigDecimal(new Double(String.valueOf(vo.getRepairNum())));
BigDecimal value2 = new BigDecimal(new Double(String.valueOf(vo.getRepairedNum())));
BigDecimal value3 = new BigDecimal(new Double(String.valueOf(vo.getScrapNum())));
repairValue = repairValue.add(value);
repairedValue = repairedValue.add(value2);
scrapValue = scrapValue.add(value3);
}
waitRepairedValue = repairValue.subtract(repairedValue).subtract(scrapValue);
double finalDoubleValue = waitRepairedValue.doubleValue() >= 0 ? waitRepairedValue.doubleValue() : 0;
return (int) Math.round(finalDoubleValue);
}
/**
* @param list
* @return Integer
* @description 保有量-报废
* @author cwchen
* @date 2023/12/16 14:22
*/
public Integer setBFData(List<ScrapAnalysisVo> list) {
if (CollectionUtils.isEmpty(list)) return 0;
BigDecimal totalValue = new BigDecimal(new Double(0).toString());
for (int i = 0; i < list.size(); i++) {
ScrapAnalysisVo vo = list.get(i);
BigDecimal value = new BigDecimal(new Double(String.valueOf(vo.getNum())));
totalValue = totalValue.add(value);
}
double doubleTotalValue = totalValue.doubleValue();
return (int) Math.round(doubleTotalValue);
}
}

View File

@ -259,15 +259,92 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</if>
/*在用*/
<if test="type == 3">
SELECT lod.out_num AS num,
'1' AS type,
a.typeName AS typeName
FROM lease_out_details lod
LEFT JOIN (
SELECT mt.type_id,mt4.type_name AS typeName
FROM ma_type mt
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id AND mt2.`level` = '3'
LEFT JOIN ma_type mt3 ON mt2.parent_id = mt3.type_id AND mt3.`level` = '2'
LEFT JOIN ma_type mt4 ON mt3.parent_id = mt4.type_id AND mt4.`level` = '1'
WHERE mt.`level` = '4'
)a ON lod.type_id = a.type_id
<where>
<if test="maType!=null and maType == 1">
a.typeName = #{maTypeName}
</if>
<if test="maType!=null and maType == 2">
AND a.typeName = #{maTypeName}
</if>
</where>
UNION ALL
SELECT bad.audit_num AS num,
'2' AS type,
a.typeName AS typeName
FROM back_apply_details bad
LEFT JOIN (
SELECT mt.type_id,mt4.type_name AS typeName
FROM ma_type mt
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id AND mt2.`level` = '3'
LEFT JOIN ma_type mt3 ON mt2.parent_id = mt3.type_id AND mt3.`level` = '2'
LEFT JOIN ma_type mt4 ON mt3.parent_id = mt4.type_id AND mt4.`level` = '1'
WHERE mt.`level` = '4'
)a ON bad.type_id = a.type_id
<where>
<if test="maType!=null and maType == 1">
a.typeName = #{maTypeName}
</if>
<if test="maType!=null and maType == 2">
AND a.typeName = #{maTypeName}
</if>
</where>
</if>
/*在修*/
<if test="type == 4">
SELECT rad.repair_num AS repairNum,
rad.repaired_num AS repairedNum,
rad.scrap_num AS scrapNum,
a.typeName AS typeName
FROM repair_apply_details rad
LEFT JOIN (
SELECT mt.type_id,mt4.type_name AS typeName
FROM ma_type mt
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id AND mt2.`level` = '3'
LEFT JOIN ma_type mt3 ON mt2.parent_id = mt3.type_id AND mt3.`level` = '2'
LEFT JOIN ma_type mt4 ON mt3.parent_id = mt4.type_id AND mt4.`level` = '1'
WHERE mt.`level` = '4'
)a ON rad.type_id = a.type_id
<where>
<if test="maType!=null and maType == 1">
a.typeName = #{maTypeName}
</if>
<if test="maType!=null and maType == 2">
AND a.typeName = #{maTypeName}
</if>
</where>
</if>
/*报废*/
<if test="type == 5">
SELECT sad.scrap_num AS num,
a.typeName AS typeName
FROM scrap_apply_details sad
LEFT JOIN (
SELECT mt.type_id,mt4.type_name AS typeName
FROM ma_type mt
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id AND mt2.`level` = '3'
LEFT JOIN ma_type mt3 ON mt2.parent_id = mt3.type_id AND mt3.`level` = '2'
LEFT JOIN ma_type mt4 ON mt3.parent_id = mt4.type_id AND mt4.`level` = '1'
WHERE mt.`level` = '4'
)a ON sad.type_id = a.type_id
WHERE sad.status = '1'
<if test="maType!=null and maType == 1">
AND a.typeName = #{maTypeName}
</if>
<if test="maType!=null and maType == 2">
AND a.typeName = #{maTypeName}
</if>
</if>
</select>
</mapper>