Commit f2bfe341 authored by suhuiguang's avatar suhuiguang

feat(重要提醒):业务新增提醒开发

1.使用登记 2.车用气瓶登记 3.编辑
parent 855dc7c6
......@@ -194,6 +194,6 @@ public class ESEquipmentCategoryDto {
/**
* 数据质量等级
*/
@Field(type = FieldType.Integer)
@Field(type = FieldType.Integer, name = "DATA_QUALITY_SCORE")
private Integer dataQualityScore;
}
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.jg.api.dto.CompanyEquipCountDto;
import com.yeejoin.amos.boot.module.jg.api.dto.JgVehicleInformationDto;
import com.yeejoin.amos.boot.module.jg.api.dto.ReminderItemDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgVehicleInformation;
import com.yeejoin.amos.boot.module.jg.api.vo.SortVo;
import com.yeejoin.amos.boot.module.jg.api.vo.tableDataExportVo.VehicleInformationVo;
......@@ -52,4 +53,6 @@ public interface JgVehicleInformationMapper extends BaseMapper<JgVehicleInformat
List<JgVehicleInformation> getListOfPass();
List<Map<String, Object>> getVehicleInfoOfPassWithEquId();
Page<ReminderItemDto> queryForUnitVehiclePageForReminder(Page<ReminderItemDto> page, List<String> records);
}
......@@ -351,4 +351,18 @@
AND u.estate_unit_credit_code is not null
ORDER BY u.audit_pass_date
</select>
<select id="queryForUnitVehiclePageForReminder" resultType="com.yeejoin.amos.boot.module.jg.api.dto.ReminderItemDto">
SELECT
ri."PRODUCT_NAME" AS equipName,
fi."FACTORY_NUM" AS equipNo,
ri."RECORD" AS equipId
FROM idx_biz_jg_register_info ri
LEFT JOIN idx_biz_jg_factory_info fi on fi."RECORD" = ri."RECORD"
WHERE
ri.record in
<foreach collection="records" item="record" open="(" close=")" separator=",">
#{record}
</foreach>
ORDER BY ri.REC_DATE DESC
</select>
</mapper>
package com.yeejoin.amos.boot.module.jg.biz.reminder.biz.editEquip;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.amos.boot.biz.common.entity.TzsBaseEntity;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.equip.CommonEquipDataProcessService;
import com.yeejoin.amos.boot.module.jg.biz.reminder.dto.MatchItemDto;
import com.yeejoin.amos.boot.module.jg.biz.reminder.service.CommonReminderService;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.IdxBizJgRegisterInfoServiceImpl;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.IdxBizJgUseInfoServiceImpl;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgRegisterInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgUseInfo;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import static com.yeejoin.amos.boot.module.jg.biz.service.impl.IdxBizJgRegisterInfoServiceImpl.*;
@Component
@RequiredArgsConstructor
@Getter
public class EditEquipParseService {
private final IdxBizJgUseInfoServiceImpl idxBizJgUseInfoService;
private final IdxBizJgRegisterInfoServiceImpl idxBizJgRegisterInfoService;
private final CommonEquipDataProcessService equipDataProcessService;
private final CommonReminderService reminderService;
public String getRegTypeForEdit(String record) {
IdxBizJgUseInfo useInfo = idxBizJgUseInfoService.getOneData(record);
String dataSource = useInfo.getDataSource();
if (dataSource.contains("jg_his_black")) {
return "2";
} else if (dataSource.contains("jg_his")) {
return "1";
} else {
return "0";
}
}
public Map<String, Object> getEquipDetailByRecord(String record) {
return equipDataProcessService.getEquipDetailByRecord(record);
}
public Boolean getIsRegister(String bizId) {
IdxBizJgUseInfo useInfo = idxBizJgUseInfoService.getOne(new LambdaQueryWrapper<IdxBizJgUseInfo>().eq(IdxBizJgUseInfo::getRecord, bizId).select(IdxBizJgUseInfo::getRecord, IdxBizJgUseInfo::getIsIntoManagement));
IdxBizJgRegisterInfo registerInfo = idxBizJgRegisterInfoService.getOne(new LambdaQueryWrapper<IdxBizJgRegisterInfo>().eq(IdxBizJgRegisterInfo::getRecord, bizId).select(IdxBizJgRegisterInfo::getRecord, IdxBizJgRegisterInfo::getUseOrgCode));
return useInfo.getIsIntoManagement() && StringUtils.isNotEmpty(registerInfo.getUseOrgCode());
}
}
package com.yeejoin.amos.boot.module.jg.biz.reminder.biz.editEquip;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.jg.api.dto.ReminderItemDto;
import com.yeejoin.amos.boot.module.jg.biz.reminder.core.DefaultReminder;
import com.yeejoin.amos.boot.module.jg.biz.reminder.dto.MatchItemDto;
import com.yeejoin.amos.boot.module.jg.api.dto.ReminderItemDto;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgRegisterInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgUseInfo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;
......@@ -13,41 +18,78 @@ import java.util.List;
import java.util.Map;
/**
* 设备气瓶编辑-提醒处理器
* 设备编辑-提醒处理器
*/
@Component
public class EditEquipReminderAdapter extends DefaultReminder {
public EditEquipReminderAdapter(ApplicationContext applicationContext) {
private final EditEquipParseService editEquipParseService;
public EditEquipReminderAdapter(ApplicationContext applicationContext, EditEquipParseService editEquipParseService) {
super(applicationContext);
this.editEquipParseService = editEquipParseService;
}
@Override
protected IPage<ReminderItemDto> realtimeParse(String bizId, Page<ReminderItemDto> page) {
return null;
public IPage<ReminderItemDto> realtimeParse(String bizId, Page<ReminderItemDto> page) {
ReminderItemDto reminderItemDto = setRealTimeReminderItem(bizId);
page.setRecords(Collections.singletonList(reminderItemDto));
page.setTotal(1L);
return page;
}
private ReminderItemDto setRealTimeReminderItem(String bizId) {
IdxBizJgRegisterInfo registerInfo = editEquipParseService.getIdxBizJgRegisterInfoService().getOne(new LambdaQueryWrapper<IdxBizJgRegisterInfo>().eq(IdxBizJgRegisterInfo::getRecord, bizId).select(IdxBizJgRegisterInfo::getRecord, IdxBizJgRegisterInfo::getProductName));
ReminderItemDto reminderItemDto = new ReminderItemDto();
reminderItemDto.setEquipId(bizId);
reminderItemDto.setEquipName(registerInfo.getProductName());
reminderItemDto.setDetailData(editEquipParseService.getEquipDetailByRecord(bizId));
return reminderItemDto;
}
@Override
protected List<ReminderItemDto> realtimeParse(String bizId) {
return Collections.emptyList();
return Collections.singletonList(setRealTimeReminderItem(bizId));
}
@Override
protected IPage<ReminderItemDto> jsonParse(String bizId, Map<String, Object> formData, Page<ReminderItemDto> page) {
return null;
public IPage<ReminderItemDto> jsonParse(String bizId, Map<String, Object> formData, Page<ReminderItemDto> page) {
IdxBizJgRegisterInfo registerInfo = JSON.parseObject(JSON.toJSONString(formData), IdxBizJgRegisterInfo.class);
IdxBizJgUseInfo bizJgUseInfo = JSON.parseObject(JSON.toJSONString(formData), IdxBizJgUseInfo.class);
ReminderItemDto reminderItemDto = new ReminderItemDto();
reminderItemDto.setEquipId(bizId);
reminderItemDto.setEquipNo(bizJgUseInfo.getUseInnerCode());
reminderItemDto.setEquipName(registerInfo.getProductName());
reminderItemDto.setDetailData(formData);
page.setRecords(Collections.singletonList(reminderItemDto));
page.setTotal(1L);
return page;
}
@Override
protected MatchItemDto setMatchItem(String bizId, Map<String, Object> formData) {
return null;
public MatchItemDto setMatchItem(String bizId, Map<String, Object> formData) {
MatchItemDto matchItemDto = MatchItemDto.builder().build();
IdxBizJgRegisterInfo registerInfo = JSON.parseObject(JSON.toJSONString(formData), IdxBizJgRegisterInfo.class);
matchItemDto.setEquList(registerInfo.getEquList());
matchItemDto.setEquCategory(registerInfo.getEquCategory());
matchItemDto.setEquDefine(registerInfo.getEquDefine());
matchItemDto.setWhetherVehicleCylinder(StringUtils.isNotEmpty(registerInfo.getWhetherVehicleCylinder()) ? registerInfo.getWhetherVehicleCylinder() : "0");
matchItemDto.setIsRegister(editEquipParseService.getIsRegister(bizId));
matchItemDto.setRegType(editEquipParseService.getRegTypeForEdit(bizId));
return matchItemDto;
}
@Override
protected MatchItemDto setMatchItem(String bizId) {
return null;
public MatchItemDto setMatchItem(String bizId) {
MatchItemDto matchItemDto = MatchItemDto.builder().build();
editEquipParseService.getReminderService().setEquCateInfoForEdit(bizId, matchItemDto);
matchItemDto.setIsRegister(editEquipParseService.getIsRegister(bizId));
matchItemDto.setRegType(editEquipParseService.getRegTypeForEdit(bizId));
return matchItemDto;
}
@Override
public String supportBizType() {
return "JG_EQUIP_EDIT";
return "JG_EDIT_EQUIP";
}
}
package com.yeejoin.amos.boot.module.jg.biz.reminder.biz.editProject;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.IdxBizJgProjectContraptionServiceImpl;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.IdxBizJgTechParamsPipelineServiceImpl;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgUseRegistrationServiceImpl;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
@Component
@RequiredArgsConstructor
@Getter
public class EditProjectParseService {
private final IdxBizJgProjectContraptionServiceImpl idxBizJgProjectContraptionServiceImpl;
private final IdxBizJgTechParamsPipelineServiceImpl idxBizJgTechParamsPipelineService;
private final JgUseRegistrationServiceImpl jgUseRegistrationService;
}
package com.yeejoin.amos.boot.module.jg.biz.reminder.biz.editProject;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.jg.api.dto.ReminderItemDto;
import com.yeejoin.amos.boot.module.jg.biz.reminder.core.DefaultReminder;
import com.yeejoin.amos.boot.module.jg.biz.reminder.dto.MatchItemDto;
import com.yeejoin.amos.boot.module.jg.api.dto.ReminderItemDto;
import com.yeejoin.amos.boot.module.jg.biz.reminder.service.CommonReminderService;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgProjectContraption;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;
......@@ -17,35 +21,56 @@ import java.util.Map;
*/
@Component
public class EditProjectReminderAdapter extends DefaultReminder {
public EditProjectReminderAdapter(ApplicationContext applicationContext) {
private final EditProjectParseService editProjectParseService;
public EditProjectReminderAdapter(ApplicationContext applicationContext, EditProjectParseService editProjectParseService) {
super(applicationContext);
this.editProjectParseService = editProjectParseService;
}
@Override
protected IPage<ReminderItemDto> realtimeParse(String bizId, Page<ReminderItemDto> page) {
return null;
// 创建后,详情使用
return CommonReminderService.setProjectReminderItemPage(bizId, page, editProjectParseService.getIdxBizJgProjectContraptionServiceImpl());
}
@Override
protected List<ReminderItemDto> realtimeParse(String bizId) {
return Collections.emptyList();
// 创建后,评分使用
return CommonReminderService.setProjectReminderItemRealTime(bizId, editProjectParseService.getIdxBizJgProjectContraptionServiceImpl());
}
@Override
protected IPage<ReminderItemDto> jsonParse(String bizId, Map<String, Object> formData, Page<ReminderItemDto> page) {
return null;
// 新增 + 编辑的保存使用
IdxBizJgProjectContraption projectContraption = JSON.parseObject(JSON.toJSONString(formData), IdxBizJgProjectContraption.class);
return CommonReminderService.setProjectReminderItemPageJson(bizId, page, projectContraption);
}
@Override
protected MatchItemDto setMatchItem(String bizId, Map<String, Object> formData) {
return null;
// 新增 + 编辑的保存使用
MatchItemDto matchItemDto = MatchItemDto.builder().build();
IdxBizJgProjectContraption projectContraption = JSON.parseObject(JSON.toJSONString(formData), IdxBizJgProjectContraption.class);
return CommonReminderService.setMatchItemForProject(matchItemDto, projectContraption);
}
@Override
protected MatchItemDto setMatchItem(String bizId) {
return null;
IdxBizJgProjectContraption projectContraption = editProjectParseService.getIdxBizJgProjectContraptionServiceImpl().getById(bizId);
// 等级 + 详情使用
MatchItemDto matchItemDto = MatchItemDto.builder().build();
return CommonReminderService.setMatchItemForProject(matchItemDto, projectContraption);
}
@Override
public String supportBizType() {
return "JG_EDIT_PROJECT";
......
......@@ -3,10 +3,10 @@ package com.yeejoin.amos.boot.module.jg.biz.reminder.biz.newProject;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.jg.api.dto.ReminderItemDto;
import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum;
import com.yeejoin.amos.boot.module.jg.biz.reminder.core.DefaultReminder;
import com.yeejoin.amos.boot.module.jg.biz.reminder.dto.MatchItemDto;
import com.yeejoin.amos.boot.module.jg.api.dto.ReminderItemDto;
import com.yeejoin.amos.boot.module.jg.biz.reminder.service.CommonReminderService;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgProjectContraption;
import org.apache.commons.lang3.StringUtils;
......@@ -33,27 +33,14 @@ public class NewProjectReminderAdapter extends DefaultReminder {
@Override
protected IPage<ReminderItemDto> realtimeParse(String bizId, Page<ReminderItemDto> page) {
// 创建后,详情使用
IdxBizJgProjectContraption projectContraption = newProjectParseService.getIdxBizJgProjectContraptionServiceImpl().getById(bizId);
ReminderItemDto reminderItemDto = new ReminderItemDto();
reminderItemDto.setEquipId(bizId);
reminderItemDto.setEquipNo(projectContraption.getProjectContraptionNo());
reminderItemDto.setEquipName(projectContraption.getProjectContraption());
reminderItemDto.setDetailData(BeanUtil.beanToMap(projectContraption));
page.setRecords(Collections.singletonList(reminderItemDto));
page.setTotal(1L);
return page;
return CommonReminderService.setProjectReminderItemPage(bizId, page, newProjectParseService.getIdxBizJgProjectContraptionServiceImpl());
}
@Override
protected List<ReminderItemDto> realtimeParse(String bizId) {
// 创建后,评分使用
IdxBizJgProjectContraption projectContraption = newProjectParseService.getIdxBizJgProjectContraptionServiceImpl().getById(bizId);
ReminderItemDto reminderItemDto = new ReminderItemDto();
reminderItemDto.setEquipId(bizId);
reminderItemDto.setEquipNo(projectContraption.getProjectContraptionNo());
reminderItemDto.setEquipName(projectContraption.getProjectContraption());
reminderItemDto.setDetailData(BeanUtil.beanToMap(projectContraption));
return Collections.singletonList(reminderItemDto);
return CommonReminderService.setProjectReminderItemRealTime(bizId, newProjectParseService.getIdxBizJgProjectContraptionServiceImpl());
}
@Override
......@@ -61,7 +48,7 @@ public class NewProjectReminderAdapter extends DefaultReminder {
// 新增 + 编辑的保存使用
IdxBizJgProjectContraption projectContraption = CommonReminderService.geEquipInfoFromJson(formData, IdxBizJgProjectContraption.class);
ReminderItemDto reminderItemDto = new ReminderItemDto();
reminderItemDto.setEquipId(StringUtils.isEmpty(bizId) ? "1" : projectContraption.getProjectContraptionParentId());
reminderItemDto.setEquipId(StringUtils.isEmpty(bizId) ? "1" : bizId);
reminderItemDto.setEquipNo(projectContraption.getProjectContraptionNo());
reminderItemDto.setEquipName(projectContraption.getProjectContraption());
reminderItemDto.setDetailData(BeanUtil.beanToMap(projectContraption));
......@@ -88,12 +75,7 @@ public class NewProjectReminderAdapter extends DefaultReminder {
IdxBizJgProjectContraption projectContraption = newProjectParseService.getIdxBizJgProjectContraptionServiceImpl().getById(bizId);
// 等级 + 详情使用
MatchItemDto matchItemDto = MatchItemDto.builder().build();
matchItemDto.setEquList(projectContraption.getEquList());
matchItemDto.setEquCategory(projectContraption.getEquCategory());
matchItemDto.setEquDefine(projectContraption.getEquDefine());
matchItemDto.setIsRegister(projectContraption.getIsIntoManagement() && StringUtils.isNotEmpty(projectContraption.getUseRegistrationCode()));
matchItemDto.setRegType(CommonReminderService.getRegTypeByDataSource(projectContraption.getDataSource()));
return matchItemDto;
return CommonReminderService.setMatchItemForProject(matchItemDto, projectContraption);
}
......
......@@ -21,7 +21,7 @@ public class MaxGradeCalStrategy implements GradeCalculationStrategy {
public Integer calculateGrade(List<ReminderItemDto> equips, MatchItemDto matchItem) {
List<ReminderItemDto> reminderItemList = reminderFieldDiff.getReminderItemList(equips, matchItem);
List<ReminderField> items = reminderItemList.stream().flatMap(s -> s.getItems().stream()).collect(Collectors.toList());
return items.stream().max(Comparator.comparingInt(ReminderField::getSId)).map(ReminderField::getSId).orElse(-1);
return items.stream().max(Comparator.comparingInt(ReminderField::getSId)).map(ReminderField::getSId).orElse(1);
}
@Override
......
......@@ -11,8 +11,10 @@ import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistration;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistrationEq;
import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.CylinderTypeEnum;
import com.yeejoin.amos.boot.module.jg.biz.reminder.biz.vehicleInformation.VehicleInformationReminderAdapter;
import com.yeejoin.amos.boot.module.jg.biz.reminder.core.DefaultReminder;
import com.yeejoin.amos.boot.module.jg.biz.reminder.dto.MatchItemDto;
import com.yeejoin.amos.boot.module.jg.biz.reminder.service.CommonReminderService;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgProjectContraption;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgRegisterInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgUseInfo;
......@@ -23,6 +25,7 @@ import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
......@@ -54,7 +57,7 @@ public class UseRegisterReminderAdapter extends DefaultReminder {
reminderItemDto.setEquipId(projectContraptionId);
reminderItemDto.setEquipNo(projectContraption.getProjectContraptionNo());
reminderItemDto.setEquipName(projectContraption.getProjectContraption());
reminderItemDto.setDetailData(BeanUtil.beanToMap(useRegistration));
reminderItemDto.setDetailData(this.buildProjectContraptionByStatus(useRegistration, useRegistration.getProjectContraptionId()));
page.setRecords(Collections.singletonList(reminderItemDto));
page.setTotal(1L);
}
......@@ -65,11 +68,11 @@ public class UseRegisterReminderAdapter extends DefaultReminder {
lambda.select(JgUseRegistrationEq::getEquId);
List<String> records = useRegisterReminderParse.getJgRelationEquipMapper().selectList(lambda).stream().map(JgUseRegistrationEq::getEquId).collect(Collectors.toList());
Page<ReminderItemDto> mapPage = useRegisterReminderParse.getJgUseRegistrationMapper().queryForUnitVehiclePageForReminder(page, records);
mapPage.getRecords().forEach(item -> item.setDetailData(BeanUtil.beanToMap(useRegistration)));
mapPage.getRecords().forEach(item -> item.setDetailData(this.buildSetUseDataByStatus(useRegistration, item.getEquipId())));
}
// 台套设备
if (StringUtils.isEmpty(useRegistration.getManageType()) || "set".equals(useRegistration.getManageType())) {
LambdaQueryWrapper<JgUseRegistrationEq> lambda = new QueryWrapper<JgUseRegistrationEq>().lambda();
LambdaQueryWrapper<JgUseRegistrationEq> lambda = new LambdaQueryWrapper<>();
lambda.eq(JgUseRegistrationEq::getEquipTransferId, useRegistration.getSequenceNbr());
lambda.select(JgUseRegistrationEq::getEquId);
List<JgUseRegistrationEq> eqList = useRegisterReminderParse.getJgRelationEquipMapper().selectList(lambda);
......@@ -82,7 +85,7 @@ public class UseRegisterReminderAdapter extends DefaultReminder {
reminderItemDto.setEquipId(record);
reminderItemDto.setEquipNo(idxBizJgUseInfo.getUseInnerCode());
reminderItemDto.setEquipName(registerInfo.getProductName());
reminderItemDto.setDetailData(BeanUtil.beanToMap(useRegistration));
reminderItemDto.setDetailData(this.buildSetUseDataByStatus(useRegistration, record));
page.setRecords(Collections.singletonList(reminderItemDto));
page.setTotal(1L);
}
......@@ -129,22 +132,31 @@ public class UseRegisterReminderAdapter extends DefaultReminder {
}
private Map<String, Object> buildSetUseDataByStatus(JgUseRegistration useRegistration, String record) {
if (!useRegistration.getStatus().equals(FlowStatusEnum.TO_BE_FINISHED.getName())) {
return BeanUtil.beanToMap(useRegistration);
}
Map<String, Object> re = getValuesFromHistory(useRegistration);
if (re != null) return re;
return useRegisterReminderParse.getEquipDetailByRecord(record);
}
private Map<String, Object> buildProjectContraptionByStatus(JgUseRegistration useRegistration, String projectContraptionId) {
if (!useRegistration.getStatus().equals(FlowStatusEnum.TO_BE_FINISHED.getName())) {
return BeanUtil.beanToMap(useRegistration);
}
Map<String, Object> re1 = getValuesFromHistory(useRegistration);
if (re1 != null) return re1;
Map<String, Object> re = BeanUtil.beanToMap(useRegistration);
IdxBizJgProjectContraption projectContraption = useRegisterReminderParse.getIdxBizJgProjectContraptionServiceImpl().getById(projectContraptionId);
re.putAll(BeanUtil.beanToMap(projectContraption));
return re;
}
private Map<String, Object> getValuesFromHistory(JgUseRegistration useRegistration) {
if (!useRegistration.getStatus().equals(FlowStatusEnum.TO_BE_FINISHED.getName())) {
JSONObject his = useRegisterReminderParse.getJgCommonService().queryHistoryData(useRegistration.getSequenceNbr());
Map<String, Object> re = new HashMap<>();
re.putAll(his);
re.putAll(BeanUtil.beanToMap(useRegistration));
return re;
}
return null;
}
@Override
public IPage<ReminderItemDto> jsonParse(String bizId, Map<String, Object> formData, Page<ReminderItemDto> page) {
JSONObject data = getSummitDataFromJson(formData);
......@@ -205,16 +217,13 @@ public class UseRegisterReminderAdapter extends DefaultReminder {
public MatchItemDto setMatchItem(String bizId, Map<String, Object> formData) {
// 新增 + 编辑的保存并提交使用
MatchItemDto matchItemDto = MatchItemDto.builder().build();
matchItemDto.setIsRegister(true);
JSONObject data = getSummitDataFromJson(formData);
String manageType = data.getString("manageType");
if (StringUtils.isNotEmpty(manageType) && "unit".equals(manageType)) { // 单位办理方式
String equListCode = data.getString("EQU_LIST_CODE");
// 气瓶--气瓶分页
if (CylinderTypeEnum.CYLINDER.getCode().equals(formData.get("EQU_CATEGORY_CODE"))) {
List<Map<String, Object>> equipmentLists = (List<Map<String, Object>>) data.get("equipmentLists");
List<String> records = equipmentLists.stream().map(item -> item.get("record").toString()).collect(Collectors.toList());
String record = records.iterator().next();
String record = CommonReminderService.getOneRecord(data);
setMatchItemEquCategoryByRecord(matchItemDto, record);
matchItemDto.setRegType(data.getString("regType"));
}
......@@ -249,7 +258,6 @@ public class UseRegisterReminderAdapter extends DefaultReminder {
JgUseRegistration useRegistration = useRegisterReminderParse.getJgUseRegistrationMapper().selectById(bizId);
MatchItemDto matchItemDto = MatchItemDto.builder().build();
matchItemDto.setRegType(StringUtils.isEmpty(useRegistration.getRegType()) ? "0" : useRegistration.getRegType());
matchItemDto.setIsRegister(true);
// 压力管道
if (StringUtils.isNotEmpty(useRegistration.getProjectContraptionId())) {
IdxBizJgProjectContraption projectContraption = useRegisterReminderParse.getIdxBizJgProjectContraptionServiceImpl().getById(useRegistration.getProjectContraptionId());
......
......@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.jg.biz.reminder.biz.useRegister;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgUseRegistrationEqMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgUseRegistrationMapper;
import com.yeejoin.amos.boot.module.jg.biz.reminder.service.CommonReminderService;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.CommonServiceImpl;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.IdxBizJgProjectContraptionServiceImpl;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgRegisterInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgUseInfoMapper;
......@@ -29,6 +30,8 @@ public class UseRegisterReminderParse {
private final CommonReminderService commonReminderService;
private final CommonServiceImpl jgCommonService;
public Map<String, Object> getEquipDetailByRecord(String record) {
return commonReminderService.getEquipDetailByRecord(record);
}
......
package com.yeejoin.amos.boot.module.jg.biz.reminder.biz.vehicleInformation;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.jg.api.dto.ReminderItemDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgVehicleInformation;
import com.yeejoin.amos.boot.module.jg.api.entity.JgVehicleInformationEq;
import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum;
import com.yeejoin.amos.boot.module.jg.biz.reminder.core.DefaultReminder;
import com.yeejoin.amos.boot.module.jg.biz.reminder.dto.MatchItemDto;
import com.yeejoin.amos.boot.module.jg.api.dto.ReminderItemDto;
import com.yeejoin.amos.boot.module.jg.biz.reminder.service.CommonReminderService;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgRegisterInfo;
import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum;
import org.apache.commons.lang3.StringUtils;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import static com.yeejoin.amos.boot.module.jg.biz.service.impl.CommonServiceImpl.SECOND;
import static com.yeejoin.amos.boot.module.jg.biz.service.impl.CommonServiceImpl.notice;
/**
* 使用登记-提醒处理器
*/
@Component
public class VehicleInformationReminderAdapter extends DefaultReminder {
public VehicleInformationReminderAdapter(ApplicationContext applicationContext) {
private final VehicleInformationReminderParse vehicleInformationReminderParse;
public VehicleInformationReminderAdapter(ApplicationContext applicationContext, VehicleInformationReminderParse vehicleInformationReminderParse) {
super(applicationContext);
this.vehicleInformationReminderParse = vehicleInformationReminderParse;
}
@Override
protected IPage<ReminderItemDto> realtimeParse(String bizId, Page<ReminderItemDto> page) {
return null;
public IPage<ReminderItemDto> realtimeParse(String bizId, Page<ReminderItemDto> page) {
// 创建后, 监管通过时使用
JgVehicleInformation vehicleInformation = vehicleInformationReminderParse.getVehicleInformationMapper().selectById(bizId);
LambdaQueryWrapper<JgVehicleInformationEq> lambda = new QueryWrapper<JgVehicleInformationEq>().lambda();
lambda.eq(JgVehicleInformationEq::getVehicleId, vehicleInformation.getSequenceNbr());
lambda.select(JgVehicleInformationEq::getEquId);
List<String> records = vehicleInformationReminderParse.getVehicleInformationEqMapper().selectList(lambda).stream().map(JgVehicleInformationEq::getEquId).collect(Collectors.toList());
Page<ReminderItemDto> mapPage = vehicleInformationReminderParse.getVehicleInformationMapper().queryForUnitVehiclePageForReminder(page, records);
mapPage.getRecords().forEach(item -> item.setDetailData(this.buildSetUseDataByStatus(vehicleInformation, item.getEquipId())));
return page;
}
@Override
protected List<ReminderItemDto> realtimeParse(String bizId) {
// 创建后,评分使用
// todo 气瓶时不显示评分,在列表上显示
return Collections.emptyList();
}
@Override
protected IPage<ReminderItemDto> jsonParse(String bizId, Map<String, Object> formData, Page<ReminderItemDto> page) {
private Map<String, Object> buildSetUseDataByStatus(JgVehicleInformation vehicleInformation, String record) {
Map<String, Object> re = getValuesFromHistory(vehicleInformation);
if (re != null) return re;
return vehicleInformationReminderParse.getEquipDetailByRecord(record);
}
private Map<String, Object> getValuesFromHistory(JgVehicleInformation vehicleInformation) {
if (!vehicleInformation.getStatus().equals(FlowStatusEnum.TO_BE_FINISHED.getName())) {
JSONObject his = vehicleInformationReminderParse.getJgCommonService().queryHistoryData(vehicleInformation.getSequenceNbr());
Map<String, Object> re = new HashMap<>();
re.putAll(his);
re.putAll(BeanUtil.beanToMap(vehicleInformation));
return re;
}
return null;
}
@Override
protected MatchItemDto setMatchItem(String bizId, Map<String, Object> formData) {
return null;
public IPage<ReminderItemDto> jsonParse(String bizId, Map<String, Object> formData, Page<ReminderItemDto> page) {
// 气瓶--气瓶分页
JSONObject data = getSummitDataFromJson(formData);
List<Map<String, Object>> equipmentLists = (List<Map<String, Object>>) data.get("equipmentLists");
List<String> records = equipmentLists.stream().map(item -> item.get("record").toString()).collect(Collectors.toList());
Page<ReminderItemDto> mapPage = vehicleInformationReminderParse.getVehicleInformationMapper().queryForUnitVehiclePageForReminder(page, records);
mapPage.getRecords().forEach(item -> item.setDetailData(data));
return page;
}
private static JSONObject getSummitDataFromJson(Map<String, Object> formData) {
JSONObject data;
// 新增 + 编辑的保存使用
if (formData.containsKey(notice)) { // 新增登记工作台发起
data = JSONObject.parseObject(JSONObject.toJSONString(formData.get(notice)));
data.put("regType", "0");
} else if (formData.containsKey(SECOND)) { // 历史有证、无证登记
data = JSONObject.parseObject(JSONObject.toJSONString(formData.get(SECOND)));
data.put("regType", "1");
} else { // 编辑
data = new JSONObject(formData);
}
return data;
}
@Override
protected MatchItemDto setMatchItem(String bizId) {
return null;
public MatchItemDto setMatchItem(String bizId, Map<String, Object> formData) {
// 新增 + 编辑的保存并提交使用
MatchItemDto matchItemDto = MatchItemDto.builder().build();
JSONObject data = getSummitDataFromJson(formData);
String record = CommonReminderService.getOneRecord(data);
vehicleInformationReminderParse.getCommonReminderService().setMatchItemEquCategoryByRecord(matchItemDto, record);
matchItemDto.setRegType(data.getString("regType"));
return matchItemDto;
}
@Override
public MatchItemDto setMatchItem(String bizId) {
// 评分 + 详情(通过按钮)使用
JgVehicleInformation vehicleInformation = vehicleInformationReminderParse.getVehicleInformationMapper().selectById(bizId);
MatchItemDto matchItemDto = MatchItemDto.builder().build();
matchItemDto.setRegType(StringUtils.isEmpty(vehicleInformation.getRegType()) ? "0" : vehicleInformation.getRegType());
// 气瓶
setEquCategoryByOneRecord(vehicleInformation, matchItemDto);
return matchItemDto;
}
private void setEquCategoryByOneRecord(JgVehicleInformation vehicleInformation, MatchItemDto matchItemDto) {
LambdaQueryWrapper<JgVehicleInformationEq> lambda = new QueryWrapper<JgVehicleInformationEq>().lambda();
lambda.eq(JgVehicleInformationEq::getVehicleId, vehicleInformation.getSequenceNbr());
lambda.select(JgVehicleInformationEq::getEquId);
List<JgVehicleInformationEq> eqList = vehicleInformationReminderParse.getVehicleInformationEqMapper().selectList(lambda);
String record = eqList.iterator().next().getEquId();
vehicleInformationReminderParse.getCommonReminderService().setMatchItemEquCategoryByRecord(matchItemDto, record);
}
@Override
public String supportBizType() {
return BusinessTypeEnum.JG_USAGE_REGISTRATION.name();
return BusinessTypeEnum.JG_VEHICLE_GAS_CYLINDER_CHANGE.name();
}
}
package com.yeejoin.amos.boot.module.jg.biz.reminder.biz.vehicleInformation;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgVehicleInformationEqMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgVehicleInformationMapper;
import com.yeejoin.amos.boot.module.jg.biz.reminder.service.CommonReminderService;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.CommonServiceImpl;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgRegisterInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgUseInfoMapper;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import java.util.Map;
@Component
@RequiredArgsConstructor
@Getter
public class VehicleInformationReminderParse {
private final JgVehicleInformationMapper vehicleInformationMapper;
private final JgVehicleInformationEqMapper vehicleInformationEqMapper;
private final IdxBizJgRegisterInfoMapper idxBizJgRegisterInfoMapper;
private final IdxBizJgUseInfoMapper idxBizJgUseInfoMapper;
private final CommonReminderService commonReminderService;
private final CommonServiceImpl jgCommonService;
public Map<String, Object> getEquipDetailByRecord(String record) {
return commonReminderService.getEquipDetailByRecord(record);
}
}
......@@ -32,6 +32,7 @@ public class MatchItemDto {
/**
* 是否车用气瓶:0-否;1-是,默认0
*/
@Builder.Default
private String whetherVehicleCylinder = "0";
/**
......@@ -42,6 +43,7 @@ public class MatchItemDto {
/**
* 是否已经登记
*/
@Builder.Default
private Boolean isRegister = false;
/**
......
......@@ -2,15 +2,23 @@ package com.yeejoin.amos.boot.module.jg.biz.reminder.service;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.entity.TzsBaseEntity;
import com.yeejoin.amos.boot.module.jg.api.dto.ReminderItemDto;
import com.yeejoin.amos.boot.module.jg.biz.reminder.dto.MatchItemDto;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.IdxBizJgProjectContraptionServiceImpl;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.IdxBizJgRegisterInfoServiceImpl;
import com.yeejoin.amos.boot.module.ymt.api.entity.*;
import com.yeejoin.amos.boot.module.ymt.api.mapper.*;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
import static com.yeejoin.amos.boot.module.jg.biz.service.impl.IdxBizJgRegisterInfoServiceImpl.EQUIP_INFO_FORM_ID;
......@@ -59,6 +67,46 @@ public class CommonReminderService {
}
}
public static String getOneRecord(JSONObject data) {
List<Map<String, Object>> equipmentLists = (List<Map<String, Object>>) data.get("equipmentLists");
List<String> records = equipmentLists.stream().map(item -> item.get("record").toString()).collect(Collectors.toList());
return records.iterator().next();
}
public void setMatchItemEquCategoryByRecord(MatchItemDto matchItemDto, String record) {
IdxBizJgRegisterInfo registerInfo = idxBizJgRegisterInfoMapper
.selectOne(new LambdaQueryWrapper<IdxBizJgRegisterInfo>()
.eq(IdxBizJgRegisterInfo::getRecord, record)
.select(IdxBizJgRegisterInfo::getRecord, IdxBizJgRegisterInfo::getEquList, IdxBizJgRegisterInfo::getEquCategory, IdxBizJgRegisterInfo::getEquDefine));
matchItemDto.setEquList(registerInfo.getEquList());
matchItemDto.setEquCategory(registerInfo.getEquCategory());
matchItemDto.setEquDefine(registerInfo.getEquDefine());
}
public static IPage<ReminderItemDto> setProjectReminderItemPage(String bizId, Page<ReminderItemDto> page, IdxBizJgProjectContraptionServiceImpl idxBizJgProjectContraptionServiceImpl) {
IdxBizJgProjectContraption projectContraption = idxBizJgProjectContraptionServiceImpl.getById(bizId);
return setProjectReminderItemPageJson(bizId, page, projectContraption);
}
public static List<ReminderItemDto> setProjectReminderItemRealTime(String bizId, IdxBizJgProjectContraptionServiceImpl idxBizJgProjectContraptionServiceImpl) {
IdxBizJgProjectContraption projectContraption = idxBizJgProjectContraptionServiceImpl.getById(bizId);
ReminderItemDto reminderItemDto = new ReminderItemDto();
reminderItemDto.setEquipId(bizId);
reminderItemDto.setEquipNo(projectContraption.getProjectContraptionNo());
reminderItemDto.setEquipName(projectContraption.getProjectContraption());
reminderItemDto.setDetailData(BeanUtil.beanToMap(projectContraption));
return Collections.singletonList(reminderItemDto);
}
public static MatchItemDto setMatchItemForProject(MatchItemDto matchItemDto, IdxBizJgProjectContraption projectContraption) {
matchItemDto.setEquList(projectContraption.getEquList());
matchItemDto.setEquCategory(projectContraption.getEquCategory());
matchItemDto.setEquDefine(projectContraption.getEquDefine());
matchItemDto.setIsRegister(projectContraption.getIsIntoManagement() && StringUtils.isNotEmpty(projectContraption.getUseRegistrationCode()));
matchItemDto.setRegType(CommonReminderService.getRegTypeByDataSource(projectContraption.getDataSource()));
return matchItemDto;
}
public Map<String, Object> getEquipDetailByRecord(String record) {
Map<String, Object> re = new HashMap<>();
IdxBizJgRegisterInfo registerInfo = idxBizJgRegisterInfoMapper.selectOne(new LambdaQueryWrapper<IdxBizJgRegisterInfo>().eq(IdxBizJgRegisterInfo::getRecord, record));
......@@ -75,4 +123,30 @@ public class CommonReminderService {
re.putAll(BeanUtil.beanToMap(idxBizJgSupervisionInfo));
return re;
}
public static IPage<ReminderItemDto> setProjectReminderItemPageJson(String bizId, Page<ReminderItemDto> page, IdxBizJgProjectContraption projectContraption) {
ReminderItemDto reminderItemDto = new ReminderItemDto();
reminderItemDto.setEquipId(bizId);
reminderItemDto.setEquipNo(projectContraption.getProjectContraptionNo());
reminderItemDto.setEquipName(projectContraption.getProjectContraption());
reminderItemDto.setDetailData(BeanUtil.beanToMap(projectContraption));
page.setRecords(Collections.singletonList(reminderItemDto));
page.setTotal(1L);
return page;
}
public void setEquCateInfoForEdit(String record, MatchItemDto matchItemDto) {
IdxBizJgRegisterInfo registerInfo = idxBizJgRegisterInfoMapper.selectOne(new LambdaQueryWrapper<IdxBizJgRegisterInfo>()
.eq(IdxBizJgRegisterInfo::getRecord, record)
.select(TzsBaseEntity::getSequenceNbr,
IdxBizJgRegisterInfo::getRecord,
IdxBizJgRegisterInfo::getEquCategory,
IdxBizJgRegisterInfo::getEquDefine,
IdxBizJgRegisterInfo::getEquList,
IdxBizJgRegisterInfo::getWhetherVehicleCylinder));
matchItemDto.setEquList(registerInfo.getEquList());
matchItemDto.setEquCategory(registerInfo.getEquCategory());
matchItemDto.setEquDefine(registerInfo.getEquDefine());
matchItemDto.setWhetherVehicleCylinder(StringUtils.isNotEmpty(registerInfo.getWhetherVehicleCylinder()) ? registerInfo.getWhetherVehicleCylinder() : "0");
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment