工器具台账
This commit is contained in:
parent
f36d85dc1e
commit
cac137011a
|
|
@ -59,6 +59,17 @@ public class ComplexQueryController extends BaseController {
|
||||||
return AjaxResult.success(complexQueryService.getToolsLedgerList(bean));
|
return AjaxResult.success(complexQueryService.getToolsLedgerList(bean));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工器具台账详情--APP
|
||||||
|
* @param bean
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@ApiOperation(value = "工器具台账详情查询")
|
||||||
|
@GetMapping("/getToolsLedgerDetailsList")
|
||||||
|
public AjaxResult getToolsLedgerDetailsList(RetainedEquipmentInfo bean) {
|
||||||
|
return AjaxResult.success(complexQueryService.getToolsLedgerDetailsList(bean));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 保有设备总量查询不带分页
|
* 保有设备总量查询不带分页
|
||||||
* @param bean
|
* @param bean
|
||||||
|
|
|
||||||
|
|
@ -160,6 +160,21 @@ public class RetainedEquipmentInfo {
|
||||||
|
|
||||||
private List<RetainedEquipmentInfo> modelList;
|
private List<RetainedEquipmentInfo> modelList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否伸展(APP)
|
||||||
|
*/
|
||||||
private boolean expanded = false;
|
private boolean expanded = false;
|
||||||
|
/**
|
||||||
|
* 编码
|
||||||
|
*/
|
||||||
|
private String maCode;
|
||||||
|
/**
|
||||||
|
* 下次检验时间
|
||||||
|
*/
|
||||||
|
private String nextCheckTime;
|
||||||
|
/**
|
||||||
|
* 检验状态
|
||||||
|
*/
|
||||||
|
private String checkStatus;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -152,4 +152,11 @@ public interface ComplexQueryMapper {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<RetainedEquipmentInfo> getToolsLedgerList(RetainedEquipmentInfo bean);
|
List<RetainedEquipmentInfo> getToolsLedgerList(RetainedEquipmentInfo bean);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工器具台账详情查询
|
||||||
|
* @param bean
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<RetainedEquipmentInfo> getToolsLedgerDetailsList(RetainedEquipmentInfo bean);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -116,4 +116,11 @@ public interface ComplexQueryService {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<RetainedEquipmentInfo> getToolsLedgerList(RetainedEquipmentInfo bean);
|
List<RetainedEquipmentInfo> getToolsLedgerList(RetainedEquipmentInfo bean);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工器具台账详情查询
|
||||||
|
* @param bean
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<RetainedEquipmentInfo> getToolsLedgerDetailsList(RetainedEquipmentInfo bean);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,12 +9,18 @@ import com.bonus.material.basic.domain.vo.MaTypeSelectInfo;
|
||||||
import com.bonus.material.basic.mapper.ComplexQueryMapper;
|
import com.bonus.material.basic.mapper.ComplexQueryMapper;
|
||||||
import com.bonus.material.basic.service.ComplexQueryService;
|
import com.bonus.material.basic.service.ComplexQueryService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.hibernate.validator.internal.util.StringHelper;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.time.format.DateTimeParseException;
|
||||||
|
import java.time.temporal.ChronoUnit;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
|
@ -527,6 +533,31 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<RetainedEquipmentInfo> getToolsLedgerDetailsList(RetainedEquipmentInfo bean) {
|
||||||
|
List<RetainedEquipmentInfo> list =new ArrayList<>();
|
||||||
|
try {
|
||||||
|
list = complexQueryMapper.getToolsLedgerDetailsList(bean);
|
||||||
|
if (list.size() > 0) {
|
||||||
|
for (RetainedEquipmentInfo bean1 : list) {
|
||||||
|
if (!StringHelper.isNullOrEmptyString(bean1.getNextCheckTime())){
|
||||||
|
//时间数据处理
|
||||||
|
bean1.setCheckStatus(determineCheckStatus(bean1.getNextCheckTime()));;
|
||||||
|
} else {
|
||||||
|
bean1.setCheckStatus("");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
} catch (Exception e){
|
||||||
|
log.error("获取设备详情列表失败,参数:{}", bean, e);
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据格式处理
|
||||||
|
*/
|
||||||
public List<RetainedEquipmentInfo> groupByThirdTypeId(List<RetainedEquipmentInfo> dbList) {
|
public List<RetainedEquipmentInfo> groupByThirdTypeId(List<RetainedEquipmentInfo> dbList) {
|
||||||
// 按thirdTypeId分组,同时保留typeName
|
// 按thirdTypeId分组,同时保留typeName
|
||||||
Map<Integer, List<RetainedEquipmentInfo>> groupedMap = dbList.stream()
|
Map<Integer, List<RetainedEquipmentInfo>> groupedMap = dbList.stream()
|
||||||
|
|
@ -542,7 +573,8 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
|
||||||
if (!items.isEmpty()) {
|
if (!items.isEmpty()) {
|
||||||
RetainedEquipmentInfo category = new RetainedEquipmentInfo();
|
RetainedEquipmentInfo category = new RetainedEquipmentInfo();
|
||||||
category.setThirdTypeId(thirdTypeId);
|
category.setThirdTypeId(thirdTypeId);
|
||||||
category.setTypeName(items.get(0).getTypeName()); // 取第一个元素的typeName
|
// 取第一个元素的typeName
|
||||||
|
category.setTypeName(items.get(0).getTypeName());
|
||||||
|
|
||||||
List<RetainedEquipmentInfo> specs = items.stream()
|
List<RetainedEquipmentInfo> specs = items.stream()
|
||||||
.map(item -> {
|
.map(item -> {
|
||||||
|
|
@ -552,6 +584,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
|
||||||
spec.setBuyPrice(item.getBuyPrice());
|
spec.setBuyPrice(item.getBuyPrice());
|
||||||
spec.setStoreNum(item.getStoreNum());
|
spec.setStoreNum(item.getStoreNum());
|
||||||
spec.setManageType(item.getManageType());
|
spec.setManageType(item.getManageType());
|
||||||
|
spec.setTypeId(item.getTypeId());
|
||||||
return spec;
|
return spec;
|
||||||
})
|
})
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
@ -563,4 +596,35 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据 nextCheckTime 判断检测状态
|
||||||
|
*/
|
||||||
|
private String determineCheckStatus(String nextCheckTimeStr) {
|
||||||
|
try {
|
||||||
|
// 当前日期
|
||||||
|
LocalDate now = LocalDate.now();
|
||||||
|
// 解析 yyyy-MM-dd HH:mm:ss 格式的字符串,并提取日期部分(yyyy-MM-dd)
|
||||||
|
LocalDateTime nextCheckDateTime = LocalDateTime.parse(nextCheckTimeStr,
|
||||||
|
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||||
|
LocalDate nextCheckDate = nextCheckDateTime.toLocalDate();
|
||||||
|
// 计算日期差(now -> nextCheckDate)
|
||||||
|
long daysBetween = ChronoUnit.DAYS.between(now, nextCheckDate);
|
||||||
|
if (daysBetween > 90) {
|
||||||
|
return "正常";
|
||||||
|
} else if (daysBetween > 30) {
|
||||||
|
return "三月内检测到期";
|
||||||
|
} else if (daysBetween > 0) {
|
||||||
|
return "一月内检测到期";
|
||||||
|
} else {
|
||||||
|
return "已过期";
|
||||||
|
}
|
||||||
|
} catch (DateTimeParseException e) {
|
||||||
|
log.warn("日期格式错误:{}", nextCheckTimeStr, e);
|
||||||
|
return "";
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.warn("未知错误解析日期:{}", nextCheckTimeStr, e);
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1182,4 +1182,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
and mt2.type_id is not null
|
and mt2.type_id is not null
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="getToolsLedgerDetailsList" resultType="com.bonus.material.basic.domain.RetainedEquipmentInfo">
|
||||||
|
SELECT
|
||||||
|
mt1.type_id as typeId,
|
||||||
|
mt2.type_name as typeName,
|
||||||
|
mt1.type_name as typeModelName,
|
||||||
|
mm.ma_code as maCode,
|
||||||
|
mm.next_check_time as nextCheckTime
|
||||||
|
FROM
|
||||||
|
ma_machine mm
|
||||||
|
LEFT JOIN ma_type mt1 on mt1.type_id=mm.type_id and mt1.del_flag=0
|
||||||
|
LEFT JOIN ma_type mt2 on mt2.type_id=mt1.parent_id and mt2.del_flag=0
|
||||||
|
WHERE
|
||||||
|
mm.type_id=#{typeId}
|
||||||
|
and mm.ma_status='1'
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue