Commit 0636fa70 authored by suhuiguang's avatar suhuiguang

1.使用登记单据变更功能

parent b2b4b1fd
......@@ -6,4 +6,6 @@ import java.io.Serializable;
@Data
public class BaseChangeDataDto implements Serializable {
private String changeId;
}
package com.yeejoin.amos.boot.module.jg.api.dto;
import java.io.Serializable;
public class BaseTechParamsFieldDto implements Serializable {
}
......@@ -14,6 +14,9 @@ public class EquipRegisterChangeDataDto extends BaseChangeDataDto {
@FieldDisplayDefine(value = "设备种类" ,isExist = false)
private String equList;
@FieldDisplayDefine(value = "设备类别" ,isExist = false)
private String equCategory;
@FieldDisplayDefine(value = "设备代码")
private String equCode;
......
package com.yeejoin.amos.boot.module.jg.api.dto;
import lombok.Data;
import java.util.Map;
@Data
public class MultiChangeItemData {
String record;
Map<String, Object> data;
}
package com.yeejoin.amos.boot.module.jg.api.dto;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.jg.api.service.IBizDataChangeHandleStrategy;
import java.util.HashMap;
public class RequestChangeData extends JSONObject {
public static final String multiDataKey = "tableData";
public IBizDataChangeHandleStrategy.ModelType getModelType() {
if (!this.containsKey(multiDataKey)) {
return IBizDataChangeHandleStrategy.ModelType.single;
}
return IBizDataChangeHandleStrategy.ModelType.batch;
}
}
......@@ -7,6 +7,8 @@ import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* 安全追溯-锅炉
*
......@@ -16,7 +18,7 @@ import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
@Group(value = "tech_params_boiler")
public class TechParamsBoilerChangeFieldDto {
public class TechParamsBoilerChangeFieldDto extends BaseTechParamsFieldDto {
@FieldDisplayDefine(value = "设备级别")
private String deviceLevel;
......
......@@ -14,7 +14,7 @@ import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
@Group(value = "tech_params_elevator")
public class TechParamsElevatorChangeFieldDto {
public class TechParamsElevatorChangeFieldDto extends BaseTechParamsFieldDto{
@FieldDisplayDefine(value = "设备级别")
private String ratedSpeedUp;
......
......@@ -16,7 +16,7 @@ import java.util.Date;
@Data
@Accessors(chain = true)
@Group(value = "tech_params_lifting")
public class TechParamsLiftingChangeFieldDto {
public class TechParamsLiftingChangeFieldDto extends BaseTechParamsFieldDto{
private String jurisdictionalAgency;
......
......@@ -15,7 +15,7 @@ import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
@Group(value = "tech_params_pipeline")
public class TechParamsPipelineChangeFieldDto {
public class TechParamsPipelineChangeFieldDto extends BaseTechParamsFieldDto{
/**
......
......@@ -15,7 +15,7 @@ import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
@Group(value = "tech_params_rides")
public class TechParamsRidesChangeFieldDto {
public class TechParamsRidesChangeFieldDto extends BaseTechParamsFieldDto{
/**
*
......
......@@ -15,7 +15,7 @@ import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
@Group(value = "tech_params_ropeway")
public class TechParamsRopewayChangeFieldDto {
public class TechParamsRopewayChangeFieldDto extends BaseTechParamsFieldDto{
/**
......
......@@ -15,7 +15,7 @@ import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
@Group(value = "tech_params_vehicle")
public class TechParamsVehicleChangeFieldDto {
public class TechParamsVehicleChangeFieldDto extends BaseTechParamsFieldDto{
/**
......
......@@ -18,7 +18,7 @@ import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
@Group(value = "tech_params_vessel")
public class TechParamsVesselChangeFieldDto {
public class TechParamsVesselChangeFieldDto extends BaseTechParamsFieldDto {
@TableField("\"INSTANCE_ID\"")
......
package com.yeejoin.amos.boot.module.jg.biz.service;
package com.yeejoin.amos.boot.module.jg.api.service;
import java.util.List;
import java.util.Map;
......@@ -17,10 +17,10 @@ public interface IBizDataChangeHandleStrategy {
*
* @param applyNo 单据编号
* @param model single, batch
* @param bizId
* @param bizId 设备record
* @return 变更信息详情
*/
Map<String, List<Map<String, Object>>> getChangeDetail(String applyNo, ModelType model, String bizId);
Map<String, ?> getChangeDetail(String applyNo, ModelType model, String bizId);
/**
* 保存
......@@ -29,7 +29,7 @@ public interface IBizDataChangeHandleStrategy {
* @param model single, batch
* @param changeData 变更数据
*/
void doSave(String applyNo, ModelType model, Map<String, List<Map<String, Object>>> changeData);
void doSave(String applyNo, ModelType model, Map<String, Object> changeData);
/**
......
package com.yeejoin.amos.boot.module.jg.biz.context;
import com.yeejoin.amos.boot.module.jg.biz.service.IBizDataChangeHandleStrategy;
import com.yeejoin.amos.boot.module.jg.api.service.IBizDataChangeHandleStrategy;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
......
package com.yeejoin.amos.boot.module.jg.biz.context;
import com.yeejoin.amos.boot.module.jg.biz.service.IChangeDataProcessStrategy;
import com.yeejoin.amos.boot.module.jg.biz.service.IBizDataChangeHandleStrategy;
import com.yeejoin.amos.boot.module.jg.api.service.IBizDataChangeHandleStrategy;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
......
package com.yeejoin.amos.boot.module.jg.biz.controller;
import com.yeejoin.amos.boot.module.jg.biz.service.IBizDataChangeHandleStrategy;
import com.yeejoin.amos.boot.module.jg.api.dto.RequestChangeData;
import com.yeejoin.amos.boot.module.jg.api.service.IBizDataChangeHandleStrategy;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.BizDataChangeServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -10,7 +11,6 @@ import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.List;
import java.util.Map;
@RestController
......@@ -19,7 +19,7 @@ import java.util.Map;
public class BizDataChangeController {
private BizDataChangeServiceImpl bizDataChangeService;
private final BizDataChangeServiceImpl bizDataChangeService;
public BizDataChangeController(BizDataChangeServiceImpl bizDataChangeService) {
this.bizDataChangeService = bizDataChangeService;
......@@ -30,9 +30,8 @@ public class BizDataChangeController {
@ApiOperation(value = "业务数据变更保存", httpMethod = "POST")
public ResponseModel<String> save(String applyNo,
@PathVariable String bizType,
IBizDataChangeHandleStrategy.ModelType model,
Map<String, List<Map<String, Object>>> changeData) {
bizDataChangeService.save(applyNo, bizType, model, changeData);
@RequestBody RequestChangeData changeData) {
bizDataChangeService.save(applyNo, bizType, changeData);
return ResponseHelper.buildResponse("success");
}
......@@ -40,12 +39,11 @@ public class BizDataChangeController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/{bizType}/detail")
@ApiOperation(value = "查询可业务变更的字段及默认值", httpMethod = "GET")
public ResponseModel<Map<String, List<Map<String, Object>>>> getDetail(@RequestParam(required = false) String applyNo,
@PathVariable String bizType,
IBizDataChangeHandleStrategy.ModelType model,
@RequestParam(required = false) String bizId) {
Map<String, List<Map<String, Object>>> re = bizDataChangeService.queryDetail(applyNo, bizType, model, bizId);
return ResponseHelper.buildResponse(re);
public ResponseModel<Map<String, ?>> getDetail(@RequestParam(required = false) String applyNo,
@PathVariable String bizType,
IBizDataChangeHandleStrategy.ModelType model,
@RequestParam(required = false) String bizId) {
return ResponseHelper.buildResponse(bizDataChangeService.queryDetail(applyNo, bizType, model, bizId));
}
......
package com.yeejoin.amos.boot.module.jg.biz.service;
import com.yeejoin.amos.boot.module.jg.api.dto.ChangeDataDto;
import com.yeejoin.amos.boot.module.jg.api.service.IBizDataChangeHandleStrategy;
import java.util.List;
import java.util.Map;
......@@ -13,10 +14,10 @@ public interface IChangeDataProcessStrategy {
/**
* 事件处理
*/
Map<String, List<ChangeDataDto>> handle(List<Map<String, Object>> changeData, String defaultChangeId);
List<ChangeDataDto> handle(Map<String, Object> changeData, String defaultChangeId);
Map<String, List<Map<String, Object>>> getDetail(String applyNo, String bizId);
Map<String, ?> getDetail(String applyNo, String bizId);
/**
* 可处理类型
......
package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.module.jg.api.dto.ChangeDataDto;
import com.yeejoin.amos.boot.module.jg.api.dto.MultiChangeItemData;
import com.yeejoin.amos.boot.module.jg.api.dto.RequestChangeData;
import com.yeejoin.amos.boot.module.jg.api.entity.JgRegistrationHistory;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistration;
import com.yeejoin.amos.boot.module.jg.api.enums.CylinderTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgUseRegistrationMapper;
import com.yeejoin.amos.boot.module.jg.biz.service.IBizDataChangeHandleStrategy;
import com.yeejoin.amos.boot.module.jg.api.service.IBizDataChangeHandleStrategy;
import com.yeejoin.amos.boot.module.jg.biz.service.IChangeDataProcessStrategy;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
......@@ -36,17 +38,28 @@ public class BatchDataChangeProcessStrategy implements IChangeDataProcessStrateg
private final JgUseRegistrationMapper jgUseRegistrationMapper;
public BatchDataChangeProcessStrategy(JgUseRegistrationServiceImpl useRegistrationService, JgRegistrationHistoryServiceImpl jgRegistrationHistoryService, JgUseRegistrationMapper jgUseRegistrationMapper) {
private final SingleDataChangeProcessStrategy singleDataChangeProcessStrategy;
public BatchDataChangeProcessStrategy(JgUseRegistrationServiceImpl useRegistrationService, JgRegistrationHistoryServiceImpl jgRegistrationHistoryService, JgUseRegistrationMapper jgUseRegistrationMapper, SingleDataChangeProcessStrategy singleDataChangeProcessStrategy) {
this.useRegistrationService = useRegistrationService;
this.jgRegistrationHistoryService = jgRegistrationHistoryService;
this.jgUseRegistrationMapper = jgUseRegistrationMapper;
this.singleDataChangeProcessStrategy = singleDataChangeProcessStrategy;
}
@Override
public Map<String, List<ChangeDataDto>> handle(List<Map<String, Object>> changeData, String defaultChangeId) {
List<ChangeDataDto> changeDataDtos = BeanUtil.copyToList(changeData, ChangeDataDto.class);
changeDataDtos = changeDataDtos.stream().filter(c -> !StringUtils.equals(c.getColumnNewValue(), c.getColumnOldValue())).collect(Collectors.toList());
return changeDataDtos.stream().collect(Collectors.groupingBy(ChangeDataDto::getChangeId));
public List<ChangeDataDto> handle(Map<String, Object> changeData, String defaultChangeId) {
JSONObject data = (JSONObject) changeData.get("data");
JSONArray equips = data.getJSONArray(RequestChangeData.multiDataKey);
List<MultiChangeItemData> items = equips.toJavaList(MultiChangeItemData.class);
List<ChangeDataDto> allChangeColumns = new ArrayList<>();
items.forEach(item -> {
String record = item.getRecord();
Map<String, Object> itemData = item.getData();
List<ChangeDataDto> oneEquipChangeColumns = singleDataChangeProcessStrategy.handle(itemData, record);
allChangeColumns.addAll(oneEquipChangeColumns);
});
return allChangeColumns;
}
@Override
......
package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import com.yeejoin.amos.boot.module.jg.api.dto.RequestChangeData;
import com.yeejoin.amos.boot.module.jg.biz.context.BizDataHandleStrategyContext;
import com.yeejoin.amos.boot.module.jg.biz.service.IBizDataChangeHandleStrategy;
import com.yeejoin.amos.boot.module.jg.api.service.IBizDataChangeHandleStrategy;
import org.springframework.stereotype.Service;
import java.util.List;
......@@ -15,18 +16,17 @@ public class BizDataChangeServiceImpl {
*
* @param applyNo 单据编号
* @param bizType 业务类型
* @param model 单个维护、批量维护
* @param changeData 变化后的数据
*/
public void save(String applyNo,
String bizType,
IBizDataChangeHandleStrategy.ModelType model,
Map<String, List<Map<String, Object>>> changeData) {
RequestChangeData changeData) {
IBizDataChangeHandleStrategy.ModelType model = changeData.getModelType();
IBizDataChangeHandleStrategy handleStrategy = BizDataHandleStrategyContext.getStrategy(bizType);
handleStrategy.doSave(applyNo, model, changeData);
}
public Map<String, List<Map<String, Object>>> queryDetail(String applyNo, String bizType, IBizDataChangeHandleStrategy.ModelType model, String bizId) {
public Map<String, ?> queryDetail(String applyNo, String bizType, IBizDataChangeHandleStrategy.ModelType model, String bizId) {
IBizDataChangeHandleStrategy handleStrategy = BizDataHandleStrategyContext.getStrategy(bizType);
return handleStrategy.getChangeDetail(applyNo, model, bizId);
}
......
package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.druid.support.jconsole.util.TableDataProcessor;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.yeejoin.amos.boot.module.common.api.dao.ESEquipmentCategory;
import com.yeejoin.amos.boot.module.common.api.dto.ESEquipmentCategoryDto;
import com.yeejoin.amos.boot.module.jg.api.dto.*;
import com.yeejoin.amos.boot.module.jg.api.mapper.CommonMapper;
import com.yeejoin.amos.boot.module.jg.biz.service.IBizDataChangeHandleStrategy;
import com.yeejoin.amos.boot.module.jg.api.service.IBizDataChangeHandleStrategy;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgDesignInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgFactoryInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgRegisterInfo;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgDesignInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgFactoryInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgRegisterInfoMapper;
import net.sf.jsqlparser.schema.Column;
import org.springframework.stereotype.Service;
import java.util.List;
......
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