diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureModifyRecordController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureModifyRecordController.java
index 5ea14f5..0f1aa70 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureModifyRecordController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureModifyRecordController.java
@@ -1,8 +1,20 @@
package com.casic.missiles.controller.business;
+import com.casic.missiles.dto.IdDTO;
+import com.casic.missiles.dto.ReturnDTO;
+import com.casic.missiles.dto.ReturnUtil;
+import com.casic.missiles.model.business.BizBusinessDeviceMeasureModifyRecord;
+import com.casic.missiles.service.business.IBizBusinessDeviceMeasureModifyRecordService;
import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import javax.validation.Valid;
+import java.util.HashMap;
+import java.util.List;
/**
*
@@ -16,5 +28,14 @@
@RestController
@RequestMapping("/business/device/measureModifyRecord")
public class BizBusinessDeviceMeasureModifyRecordController {
+ @Autowired
+ private IBizBusinessDeviceMeasureModifyRecordService measureModifyRecordService;
+ @ApiOperation("列表(根据检定数据基本信息表id查询)")
+ @PostMapping("/list")
+ public ReturnDTO> itemCategoryListPage(@RequestBody @Valid IdDTO idDTO) {
+ HashMap map = new HashMap<>();
+ map.put("data_id", idDTO.getId());
+ return ReturnUtil.success(measureModifyRecordService.listByMap(map));
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureModifyRecordController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureModifyRecordController.java
index 5ea14f5..0f1aa70 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureModifyRecordController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureModifyRecordController.java
@@ -1,8 +1,20 @@
package com.casic.missiles.controller.business;
+import com.casic.missiles.dto.IdDTO;
+import com.casic.missiles.dto.ReturnDTO;
+import com.casic.missiles.dto.ReturnUtil;
+import com.casic.missiles.model.business.BizBusinessDeviceMeasureModifyRecord;
+import com.casic.missiles.service.business.IBizBusinessDeviceMeasureModifyRecordService;
import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import javax.validation.Valid;
+import java.util.HashMap;
+import java.util.List;
/**
*
@@ -16,5 +28,14 @@
@RestController
@RequestMapping("/business/device/measureModifyRecord")
public class BizBusinessDeviceMeasureModifyRecordController {
+ @Autowired
+ private IBizBusinessDeviceMeasureModifyRecordService measureModifyRecordService;
+ @ApiOperation("列表(根据检定数据基本信息表id查询)")
+ @PostMapping("/list")
+ public ReturnDTO> itemCategoryListPage(@RequestBody @Valid IdDTO idDTO) {
+ HashMap map = new HashMap<>();
+ map.put("data_id", idDTO.getId());
+ return ReturnUtil.success(measureModifyRecordService.listByMap(map));
+ }
}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/CasicBeanUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/CasicBeanUtil.java
new file mode 100644
index 0000000..3e6654f
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/CasicBeanUtil.java
@@ -0,0 +1,105 @@
+package com.casic.missiles.utils;
+
+import cn.hutool.core.util.ObjectUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.BeansException;
+import org.springframework.beans.FatalBeanException;
+import org.springframework.util.Assert;
+import org.springframework.util.ClassUtils;
+
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+@Slf4j
+public class CasicBeanUtil {
+
+ /**
+ * 对象属性比较
+ * @param dataDesc 该条数据描述,如:DCV 量程 500
+ * @param beforeObj
+ * @param afterObj
+ * @return 全部相同返回空字符串,有不相同的返回原属性值和更新后的属性值字符串拼接
+ */
+ public static List fieldCompare(String dataDesc, Object beforeObj, Object afterObj, List fields) {
+ List beforeFieldList = Arrays.asList(beforeObj.getClass().getDeclaredFields());
+ List superBeforeFileList = Arrays.asList(beforeObj.getClass().getSuperclass().getDeclaredFields());
+ beforeFieldList.addAll(new ArrayList<>(superBeforeFileList));
+ Field[] beforeFields = beforeFieldList.toArray(new Field[beforeFieldList.size()]);
+
+ List afterFieldList = new ArrayList<>(Arrays.asList(afterObj.getClass().getDeclaredFields()));
+ List superAfterFieldList = new ArrayList<>(Arrays.asList(afterObj.getClass().getSuperclass().getDeclaredFields()));
+ afterFieldList.addAll(superAfterFieldList);
+ Field[] afterFields = afterFieldList.toArray(new Field[beforeFieldList.size()]);
+
+ Field.setAccessible(beforeFields, true); //设置私有属性可以访问到
+ Field.setAccessible(afterFields, true);
+ List changeList = new ArrayList<>();
+ //循环遍历比较属性
+ if (beforeFields.length > 0) {
+ for (int i = 0; i < beforeFields.length; i++) {
+ if (ObjectUtil.isNotEmpty(fields) && fields.contains(beforeFields[i].getName())) {
+ try {
+ Object beforeValue = beforeFields[i].get(beforeObj); //取出对应的属性值
+ Object afterValue = null;
+ for (int j = 0; j < afterFields.length; j++) {
+ if(afterFields[j].getName().equals(beforeFields[i].getName())){
+ afterValue = afterFields[j].get(afterObj); //取出对应的属性值
+ break;
+ }
+ }
+ if ((beforeValue != null && !"".equals(beforeValue) && !beforeValue.equals(afterValue)) || ((beforeValue == null || "".equals(beforeValue)) && afterValue != null && !"".equals(afterValue))) {
+ //属性 从 原始值 修改为 更新值
+ // TODO: 2023/10/2 beforeFields[i].getName()需要获取对应的中文名
+ changeList.add(dataDesc + beforeFields[i].getName() + "从 " + beforeValue + "修改为 " + afterValue);
+ }
+ } catch (IllegalAccessException e) {
+ log.error(e.getMessage());
+ }
+ }
+ }
+ }
+ return changeList;
+ }
+
+ public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException {
+ Assert.notNull(source, "Source must not be null");
+ Assert.notNull(target, "Target must not be null");
+
+ Class> actualEditable = target.getClass();
+
+ PropertyDescriptor[] targetPds = BeanUtils.getPropertyDescriptors(actualEditable);
+ List ignoreList = (copyProperties != null ? Arrays.asList(copyProperties) : null);
+
+ for (PropertyDescriptor targetPd : targetPds) {
+ Method writeMethod = targetPd.getWriteMethod();
+ if (writeMethod != null && ignoreList != null && ignoreList.contains(targetPd.getName())) {
+ PropertyDescriptor sourcePd = BeanUtils.getPropertyDescriptor(source.getClass(), targetPd.getName());
+ if (sourcePd != null) {
+ Method readMethod = sourcePd.getReadMethod();
+ if (readMethod != null &&
+ ClassUtils.isAssignable(writeMethod.getParameterTypes()[0], readMethod.getReturnType())) {
+ try {
+ if (!Modifier.isPublic(readMethod.getDeclaringClass().getModifiers())) {
+ readMethod.setAccessible(true);
+ }
+ Object value = readMethod.invoke(source);
+ if (!Modifier.isPublic(writeMethod.getDeclaringClass().getModifiers())) {
+ writeMethod.setAccessible(true);
+ }
+ writeMethod.invoke(target, value);
+ } catch (Throwable ex) {
+ throw new FatalBeanException(
+ "Could not copy property '" + targetPd.getName() + "' from source to target", ex);
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureModifyRecordController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureModifyRecordController.java
index 5ea14f5..0f1aa70 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureModifyRecordController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureModifyRecordController.java
@@ -1,8 +1,20 @@
package com.casic.missiles.controller.business;
+import com.casic.missiles.dto.IdDTO;
+import com.casic.missiles.dto.ReturnDTO;
+import com.casic.missiles.dto.ReturnUtil;
+import com.casic.missiles.model.business.BizBusinessDeviceMeasureModifyRecord;
+import com.casic.missiles.service.business.IBizBusinessDeviceMeasureModifyRecordService;
import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import javax.validation.Valid;
+import java.util.HashMap;
+import java.util.List;
/**
*
@@ -16,5 +28,14 @@
@RestController
@RequestMapping("/business/device/measureModifyRecord")
public class BizBusinessDeviceMeasureModifyRecordController {
+ @Autowired
+ private IBizBusinessDeviceMeasureModifyRecordService measureModifyRecordService;
+ @ApiOperation("列表(根据检定数据基本信息表id查询)")
+ @PostMapping("/list")
+ public ReturnDTO> itemCategoryListPage(@RequestBody @Valid IdDTO idDTO) {
+ HashMap map = new HashMap<>();
+ map.put("data_id", idDTO.getId());
+ return ReturnUtil.success(measureModifyRecordService.listByMap(map));
+ }
}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/CasicBeanUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/CasicBeanUtil.java
new file mode 100644
index 0000000..3e6654f
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/CasicBeanUtil.java
@@ -0,0 +1,105 @@
+package com.casic.missiles.utils;
+
+import cn.hutool.core.util.ObjectUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.BeansException;
+import org.springframework.beans.FatalBeanException;
+import org.springframework.util.Assert;
+import org.springframework.util.ClassUtils;
+
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+@Slf4j
+public class CasicBeanUtil {
+
+ /**
+ * 对象属性比较
+ * @param dataDesc 该条数据描述,如:DCV 量程 500
+ * @param beforeObj
+ * @param afterObj
+ * @return 全部相同返回空字符串,有不相同的返回原属性值和更新后的属性值字符串拼接
+ */
+ public static List fieldCompare(String dataDesc, Object beforeObj, Object afterObj, List fields) {
+ List beforeFieldList = Arrays.asList(beforeObj.getClass().getDeclaredFields());
+ List superBeforeFileList = Arrays.asList(beforeObj.getClass().getSuperclass().getDeclaredFields());
+ beforeFieldList.addAll(new ArrayList<>(superBeforeFileList));
+ Field[] beforeFields = beforeFieldList.toArray(new Field[beforeFieldList.size()]);
+
+ List afterFieldList = new ArrayList<>(Arrays.asList(afterObj.getClass().getDeclaredFields()));
+ List superAfterFieldList = new ArrayList<>(Arrays.asList(afterObj.getClass().getSuperclass().getDeclaredFields()));
+ afterFieldList.addAll(superAfterFieldList);
+ Field[] afterFields = afterFieldList.toArray(new Field[beforeFieldList.size()]);
+
+ Field.setAccessible(beforeFields, true); //设置私有属性可以访问到
+ Field.setAccessible(afterFields, true);
+ List changeList = new ArrayList<>();
+ //循环遍历比较属性
+ if (beforeFields.length > 0) {
+ for (int i = 0; i < beforeFields.length; i++) {
+ if (ObjectUtil.isNotEmpty(fields) && fields.contains(beforeFields[i].getName())) {
+ try {
+ Object beforeValue = beforeFields[i].get(beforeObj); //取出对应的属性值
+ Object afterValue = null;
+ for (int j = 0; j < afterFields.length; j++) {
+ if(afterFields[j].getName().equals(beforeFields[i].getName())){
+ afterValue = afterFields[j].get(afterObj); //取出对应的属性值
+ break;
+ }
+ }
+ if ((beforeValue != null && !"".equals(beforeValue) && !beforeValue.equals(afterValue)) || ((beforeValue == null || "".equals(beforeValue)) && afterValue != null && !"".equals(afterValue))) {
+ //属性 从 原始值 修改为 更新值
+ // TODO: 2023/10/2 beforeFields[i].getName()需要获取对应的中文名
+ changeList.add(dataDesc + beforeFields[i].getName() + "从 " + beforeValue + "修改为 " + afterValue);
+ }
+ } catch (IllegalAccessException e) {
+ log.error(e.getMessage());
+ }
+ }
+ }
+ }
+ return changeList;
+ }
+
+ public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException {
+ Assert.notNull(source, "Source must not be null");
+ Assert.notNull(target, "Target must not be null");
+
+ Class> actualEditable = target.getClass();
+
+ PropertyDescriptor[] targetPds = BeanUtils.getPropertyDescriptors(actualEditable);
+ List ignoreList = (copyProperties != null ? Arrays.asList(copyProperties) : null);
+
+ for (PropertyDescriptor targetPd : targetPds) {
+ Method writeMethod = targetPd.getWriteMethod();
+ if (writeMethod != null && ignoreList != null && ignoreList.contains(targetPd.getName())) {
+ PropertyDescriptor sourcePd = BeanUtils.getPropertyDescriptor(source.getClass(), targetPd.getName());
+ if (sourcePd != null) {
+ Method readMethod = sourcePd.getReadMethod();
+ if (readMethod != null &&
+ ClassUtils.isAssignable(writeMethod.getParameterTypes()[0], readMethod.getReturnType())) {
+ try {
+ if (!Modifier.isPublic(readMethod.getDeclaringClass().getModifiers())) {
+ readMethod.setAccessible(true);
+ }
+ Object value = readMethod.invoke(source);
+ if (!Modifier.isPublic(writeMethod.getDeclaringClass().getModifiers())) {
+ writeMethod.setAccessible(true);
+ }
+ writeMethod.invoke(target, value);
+ } catch (Throwable ex) {
+ throw new FatalBeanException(
+ "Could not copy property '" + targetPd.getName() + "' from source to target", ex);
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCalibrator.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCalibrator.java
index 22351ac..e04e087 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCalibrator.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCalibrator.java
@@ -6,6 +6,7 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
@@ -23,6 +24,7 @@
private static final long serialVersionUID = 1L;
+ @NotNull(message = "id不能为空")
@ApiModelProperty(value = "id,更新/删除使用参数", dataType = "Long")
@TableId("id")
private Long id;
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureModifyRecordController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureModifyRecordController.java
index 5ea14f5..0f1aa70 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureModifyRecordController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureModifyRecordController.java
@@ -1,8 +1,20 @@
package com.casic.missiles.controller.business;
+import com.casic.missiles.dto.IdDTO;
+import com.casic.missiles.dto.ReturnDTO;
+import com.casic.missiles.dto.ReturnUtil;
+import com.casic.missiles.model.business.BizBusinessDeviceMeasureModifyRecord;
+import com.casic.missiles.service.business.IBizBusinessDeviceMeasureModifyRecordService;
import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import javax.validation.Valid;
+import java.util.HashMap;
+import java.util.List;
/**
*
@@ -16,5 +28,14 @@
@RestController
@RequestMapping("/business/device/measureModifyRecord")
public class BizBusinessDeviceMeasureModifyRecordController {
+ @Autowired
+ private IBizBusinessDeviceMeasureModifyRecordService measureModifyRecordService;
+ @ApiOperation("列表(根据检定数据基本信息表id查询)")
+ @PostMapping("/list")
+ public ReturnDTO> itemCategoryListPage(@RequestBody @Valid IdDTO idDTO) {
+ HashMap map = new HashMap<>();
+ map.put("data_id", idDTO.getId());
+ return ReturnUtil.success(measureModifyRecordService.listByMap(map));
+ }
}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/CasicBeanUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/CasicBeanUtil.java
new file mode 100644
index 0000000..3e6654f
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/CasicBeanUtil.java
@@ -0,0 +1,105 @@
+package com.casic.missiles.utils;
+
+import cn.hutool.core.util.ObjectUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.BeansException;
+import org.springframework.beans.FatalBeanException;
+import org.springframework.util.Assert;
+import org.springframework.util.ClassUtils;
+
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+@Slf4j
+public class CasicBeanUtil {
+
+ /**
+ * 对象属性比较
+ * @param dataDesc 该条数据描述,如:DCV 量程 500
+ * @param beforeObj
+ * @param afterObj
+ * @return 全部相同返回空字符串,有不相同的返回原属性值和更新后的属性值字符串拼接
+ */
+ public static List fieldCompare(String dataDesc, Object beforeObj, Object afterObj, List fields) {
+ List beforeFieldList = Arrays.asList(beforeObj.getClass().getDeclaredFields());
+ List superBeforeFileList = Arrays.asList(beforeObj.getClass().getSuperclass().getDeclaredFields());
+ beforeFieldList.addAll(new ArrayList<>(superBeforeFileList));
+ Field[] beforeFields = beforeFieldList.toArray(new Field[beforeFieldList.size()]);
+
+ List afterFieldList = new ArrayList<>(Arrays.asList(afterObj.getClass().getDeclaredFields()));
+ List superAfterFieldList = new ArrayList<>(Arrays.asList(afterObj.getClass().getSuperclass().getDeclaredFields()));
+ afterFieldList.addAll(superAfterFieldList);
+ Field[] afterFields = afterFieldList.toArray(new Field[beforeFieldList.size()]);
+
+ Field.setAccessible(beforeFields, true); //设置私有属性可以访问到
+ Field.setAccessible(afterFields, true);
+ List changeList = new ArrayList<>();
+ //循环遍历比较属性
+ if (beforeFields.length > 0) {
+ for (int i = 0; i < beforeFields.length; i++) {
+ if (ObjectUtil.isNotEmpty(fields) && fields.contains(beforeFields[i].getName())) {
+ try {
+ Object beforeValue = beforeFields[i].get(beforeObj); //取出对应的属性值
+ Object afterValue = null;
+ for (int j = 0; j < afterFields.length; j++) {
+ if(afterFields[j].getName().equals(beforeFields[i].getName())){
+ afterValue = afterFields[j].get(afterObj); //取出对应的属性值
+ break;
+ }
+ }
+ if ((beforeValue != null && !"".equals(beforeValue) && !beforeValue.equals(afterValue)) || ((beforeValue == null || "".equals(beforeValue)) && afterValue != null && !"".equals(afterValue))) {
+ //属性 从 原始值 修改为 更新值
+ // TODO: 2023/10/2 beforeFields[i].getName()需要获取对应的中文名
+ changeList.add(dataDesc + beforeFields[i].getName() + "从 " + beforeValue + "修改为 " + afterValue);
+ }
+ } catch (IllegalAccessException e) {
+ log.error(e.getMessage());
+ }
+ }
+ }
+ }
+ return changeList;
+ }
+
+ public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException {
+ Assert.notNull(source, "Source must not be null");
+ Assert.notNull(target, "Target must not be null");
+
+ Class> actualEditable = target.getClass();
+
+ PropertyDescriptor[] targetPds = BeanUtils.getPropertyDescriptors(actualEditable);
+ List ignoreList = (copyProperties != null ? Arrays.asList(copyProperties) : null);
+
+ for (PropertyDescriptor targetPd : targetPds) {
+ Method writeMethod = targetPd.getWriteMethod();
+ if (writeMethod != null && ignoreList != null && ignoreList.contains(targetPd.getName())) {
+ PropertyDescriptor sourcePd = BeanUtils.getPropertyDescriptor(source.getClass(), targetPd.getName());
+ if (sourcePd != null) {
+ Method readMethod = sourcePd.getReadMethod();
+ if (readMethod != null &&
+ ClassUtils.isAssignable(writeMethod.getParameterTypes()[0], readMethod.getReturnType())) {
+ try {
+ if (!Modifier.isPublic(readMethod.getDeclaringClass().getModifiers())) {
+ readMethod.setAccessible(true);
+ }
+ Object value = readMethod.invoke(source);
+ if (!Modifier.isPublic(writeMethod.getDeclaringClass().getModifiers())) {
+ writeMethod.setAccessible(true);
+ }
+ writeMethod.invoke(target, value);
+ } catch (Throwable ex) {
+ throw new FatalBeanException(
+ "Could not copy property '" + targetPd.getName() + "' from source to target", ex);
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCalibrator.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCalibrator.java
index 22351ac..e04e087 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCalibrator.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCalibrator.java
@@ -6,6 +6,7 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
@@ -23,6 +24,7 @@
private static final long serialVersionUID = 1L;
+ @NotNull(message = "id不能为空")
@ApiModelProperty(value = "id,更新/删除使用参数", dataType = "Long")
@TableId("id")
private Long id;
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureInfo.java
index 7fbe4af..eef81f9 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureInfo.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureInfo.java
@@ -261,7 +261,7 @@
private List equipmentIds;
@NotEmpty(message = "检定数据不能为空")
- @ApiModelProperty(value = "检定数据(新增/更新参数)", dataType = "List")
+ @ApiModelProperty(value = "检定数据(新增/更新/详情参数)", dataType = "List")
@TableField(exist = false)
private List measureDataCalibratorList;
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureModifyRecordController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureModifyRecordController.java
index 5ea14f5..0f1aa70 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureModifyRecordController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureModifyRecordController.java
@@ -1,8 +1,20 @@
package com.casic.missiles.controller.business;
+import com.casic.missiles.dto.IdDTO;
+import com.casic.missiles.dto.ReturnDTO;
+import com.casic.missiles.dto.ReturnUtil;
+import com.casic.missiles.model.business.BizBusinessDeviceMeasureModifyRecord;
+import com.casic.missiles.service.business.IBizBusinessDeviceMeasureModifyRecordService;
import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import javax.validation.Valid;
+import java.util.HashMap;
+import java.util.List;
/**
*
@@ -16,5 +28,14 @@
@RestController
@RequestMapping("/business/device/measureModifyRecord")
public class BizBusinessDeviceMeasureModifyRecordController {
+ @Autowired
+ private IBizBusinessDeviceMeasureModifyRecordService measureModifyRecordService;
+ @ApiOperation("列表(根据检定数据基本信息表id查询)")
+ @PostMapping("/list")
+ public ReturnDTO> itemCategoryListPage(@RequestBody @Valid IdDTO idDTO) {
+ HashMap map = new HashMap<>();
+ map.put("data_id", idDTO.getId());
+ return ReturnUtil.success(measureModifyRecordService.listByMap(map));
+ }
}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/CasicBeanUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/CasicBeanUtil.java
new file mode 100644
index 0000000..3e6654f
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/CasicBeanUtil.java
@@ -0,0 +1,105 @@
+package com.casic.missiles.utils;
+
+import cn.hutool.core.util.ObjectUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.BeansException;
+import org.springframework.beans.FatalBeanException;
+import org.springframework.util.Assert;
+import org.springframework.util.ClassUtils;
+
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+@Slf4j
+public class CasicBeanUtil {
+
+ /**
+ * 对象属性比较
+ * @param dataDesc 该条数据描述,如:DCV 量程 500
+ * @param beforeObj
+ * @param afterObj
+ * @return 全部相同返回空字符串,有不相同的返回原属性值和更新后的属性值字符串拼接
+ */
+ public static List fieldCompare(String dataDesc, Object beforeObj, Object afterObj, List fields) {
+ List beforeFieldList = Arrays.asList(beforeObj.getClass().getDeclaredFields());
+ List superBeforeFileList = Arrays.asList(beforeObj.getClass().getSuperclass().getDeclaredFields());
+ beforeFieldList.addAll(new ArrayList<>(superBeforeFileList));
+ Field[] beforeFields = beforeFieldList.toArray(new Field[beforeFieldList.size()]);
+
+ List afterFieldList = new ArrayList<>(Arrays.asList(afterObj.getClass().getDeclaredFields()));
+ List superAfterFieldList = new ArrayList<>(Arrays.asList(afterObj.getClass().getSuperclass().getDeclaredFields()));
+ afterFieldList.addAll(superAfterFieldList);
+ Field[] afterFields = afterFieldList.toArray(new Field[beforeFieldList.size()]);
+
+ Field.setAccessible(beforeFields, true); //设置私有属性可以访问到
+ Field.setAccessible(afterFields, true);
+ List changeList = new ArrayList<>();
+ //循环遍历比较属性
+ if (beforeFields.length > 0) {
+ for (int i = 0; i < beforeFields.length; i++) {
+ if (ObjectUtil.isNotEmpty(fields) && fields.contains(beforeFields[i].getName())) {
+ try {
+ Object beforeValue = beforeFields[i].get(beforeObj); //取出对应的属性值
+ Object afterValue = null;
+ for (int j = 0; j < afterFields.length; j++) {
+ if(afterFields[j].getName().equals(beforeFields[i].getName())){
+ afterValue = afterFields[j].get(afterObj); //取出对应的属性值
+ break;
+ }
+ }
+ if ((beforeValue != null && !"".equals(beforeValue) && !beforeValue.equals(afterValue)) || ((beforeValue == null || "".equals(beforeValue)) && afterValue != null && !"".equals(afterValue))) {
+ //属性 从 原始值 修改为 更新值
+ // TODO: 2023/10/2 beforeFields[i].getName()需要获取对应的中文名
+ changeList.add(dataDesc + beforeFields[i].getName() + "从 " + beforeValue + "修改为 " + afterValue);
+ }
+ } catch (IllegalAccessException e) {
+ log.error(e.getMessage());
+ }
+ }
+ }
+ }
+ return changeList;
+ }
+
+ public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException {
+ Assert.notNull(source, "Source must not be null");
+ Assert.notNull(target, "Target must not be null");
+
+ Class> actualEditable = target.getClass();
+
+ PropertyDescriptor[] targetPds = BeanUtils.getPropertyDescriptors(actualEditable);
+ List ignoreList = (copyProperties != null ? Arrays.asList(copyProperties) : null);
+
+ for (PropertyDescriptor targetPd : targetPds) {
+ Method writeMethod = targetPd.getWriteMethod();
+ if (writeMethod != null && ignoreList != null && ignoreList.contains(targetPd.getName())) {
+ PropertyDescriptor sourcePd = BeanUtils.getPropertyDescriptor(source.getClass(), targetPd.getName());
+ if (sourcePd != null) {
+ Method readMethod = sourcePd.getReadMethod();
+ if (readMethod != null &&
+ ClassUtils.isAssignable(writeMethod.getParameterTypes()[0], readMethod.getReturnType())) {
+ try {
+ if (!Modifier.isPublic(readMethod.getDeclaringClass().getModifiers())) {
+ readMethod.setAccessible(true);
+ }
+ Object value = readMethod.invoke(source);
+ if (!Modifier.isPublic(writeMethod.getDeclaringClass().getModifiers())) {
+ writeMethod.setAccessible(true);
+ }
+ writeMethod.invoke(target, value);
+ } catch (Throwable ex) {
+ throw new FatalBeanException(
+ "Could not copy property '" + targetPd.getName() + "' from source to target", ex);
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCalibrator.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCalibrator.java
index 22351ac..e04e087 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCalibrator.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCalibrator.java
@@ -6,6 +6,7 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
@@ -23,6 +24,7 @@
private static final long serialVersionUID = 1L;
+ @NotNull(message = "id不能为空")
@ApiModelProperty(value = "id,更新/删除使用参数", dataType = "Long")
@TableId("id")
private Long id;
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureInfo.java
index 7fbe4af..eef81f9 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureInfo.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureInfo.java
@@ -261,7 +261,7 @@
private List equipmentIds;
@NotEmpty(message = "检定数据不能为空")
- @ApiModelProperty(value = "检定数据(新增/更新参数)", dataType = "List")
+ @ApiModelProperty(value = "检定数据(新增/更新/详情参数)", dataType = "List")
@TableField(exist = false)
private List measureDataCalibratorList;
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureModifyRecord.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureModifyRecord.java
index 3fd086c..bcc90ee 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureModifyRecord.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureModifyRecord.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@@ -27,42 +28,49 @@
/**
* 检定数据管理基础信息表id
*/
+ @ApiModelProperty(value = "检定数据管理基础信息表id", dataType = "String")
@TableField("data_id")
private Long dataId;
/**
* 计量业务管理系统/自动检定系统
*/
+ @ApiModelProperty(value = "计量业务管理系统/自动检定系统", dataType = "String")
@TableField("source_system")
private String sourceSystem;
/**
* 修改内容
*/
+ @ApiModelProperty(value = "修改内容", dataType = "String")
@TableField("modify_content")
private String modifyContent;
/**
* 创建用户id
*/
+ @ApiModelProperty(value = "创建用户id", dataType = "String")
@TableField("create_user_id")
private Long createUserId;
/**
* 创建用户名
*/
+ @ApiModelProperty(value = "创建用户名", dataType = "String")
@TableField("create_user_name")
private String createUserName;
/**
* 创建时间
*/
+ @ApiModelProperty(value = "创建时间", dataType = "String")
@TableField("create_time")
private String createTime;
/**
* 更新时间
*/
+ @ApiModelProperty(value = "更新时间", dataType = "String")
@TableField("update_time")
private String updateTime;
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureModifyRecordController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureModifyRecordController.java
index 5ea14f5..0f1aa70 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureModifyRecordController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureModifyRecordController.java
@@ -1,8 +1,20 @@
package com.casic.missiles.controller.business;
+import com.casic.missiles.dto.IdDTO;
+import com.casic.missiles.dto.ReturnDTO;
+import com.casic.missiles.dto.ReturnUtil;
+import com.casic.missiles.model.business.BizBusinessDeviceMeasureModifyRecord;
+import com.casic.missiles.service.business.IBizBusinessDeviceMeasureModifyRecordService;
import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import javax.validation.Valid;
+import java.util.HashMap;
+import java.util.List;
/**
*
@@ -16,5 +28,14 @@
@RestController
@RequestMapping("/business/device/measureModifyRecord")
public class BizBusinessDeviceMeasureModifyRecordController {
+ @Autowired
+ private IBizBusinessDeviceMeasureModifyRecordService measureModifyRecordService;
+ @ApiOperation("列表(根据检定数据基本信息表id查询)")
+ @PostMapping("/list")
+ public ReturnDTO> itemCategoryListPage(@RequestBody @Valid IdDTO idDTO) {
+ HashMap map = new HashMap<>();
+ map.put("data_id", idDTO.getId());
+ return ReturnUtil.success(measureModifyRecordService.listByMap(map));
+ }
}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/CasicBeanUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/CasicBeanUtil.java
new file mode 100644
index 0000000..3e6654f
--- /dev/null
+++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/CasicBeanUtil.java
@@ -0,0 +1,105 @@
+package com.casic.missiles.utils;
+
+import cn.hutool.core.util.ObjectUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.BeansException;
+import org.springframework.beans.FatalBeanException;
+import org.springframework.util.Assert;
+import org.springframework.util.ClassUtils;
+
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+@Slf4j
+public class CasicBeanUtil {
+
+ /**
+ * 对象属性比较
+ * @param dataDesc 该条数据描述,如:DCV 量程 500
+ * @param beforeObj
+ * @param afterObj
+ * @return 全部相同返回空字符串,有不相同的返回原属性值和更新后的属性值字符串拼接
+ */
+ public static List fieldCompare(String dataDesc, Object beforeObj, Object afterObj, List fields) {
+ List beforeFieldList = Arrays.asList(beforeObj.getClass().getDeclaredFields());
+ List superBeforeFileList = Arrays.asList(beforeObj.getClass().getSuperclass().getDeclaredFields());
+ beforeFieldList.addAll(new ArrayList<>(superBeforeFileList));
+ Field[] beforeFields = beforeFieldList.toArray(new Field[beforeFieldList.size()]);
+
+ List afterFieldList = new ArrayList<>(Arrays.asList(afterObj.getClass().getDeclaredFields()));
+ List superAfterFieldList = new ArrayList<>(Arrays.asList(afterObj.getClass().getSuperclass().getDeclaredFields()));
+ afterFieldList.addAll(superAfterFieldList);
+ Field[] afterFields = afterFieldList.toArray(new Field[beforeFieldList.size()]);
+
+ Field.setAccessible(beforeFields, true); //设置私有属性可以访问到
+ Field.setAccessible(afterFields, true);
+ List changeList = new ArrayList<>();
+ //循环遍历比较属性
+ if (beforeFields.length > 0) {
+ for (int i = 0; i < beforeFields.length; i++) {
+ if (ObjectUtil.isNotEmpty(fields) && fields.contains(beforeFields[i].getName())) {
+ try {
+ Object beforeValue = beforeFields[i].get(beforeObj); //取出对应的属性值
+ Object afterValue = null;
+ for (int j = 0; j < afterFields.length; j++) {
+ if(afterFields[j].getName().equals(beforeFields[i].getName())){
+ afterValue = afterFields[j].get(afterObj); //取出对应的属性值
+ break;
+ }
+ }
+ if ((beforeValue != null && !"".equals(beforeValue) && !beforeValue.equals(afterValue)) || ((beforeValue == null || "".equals(beforeValue)) && afterValue != null && !"".equals(afterValue))) {
+ //属性 从 原始值 修改为 更新值
+ // TODO: 2023/10/2 beforeFields[i].getName()需要获取对应的中文名
+ changeList.add(dataDesc + beforeFields[i].getName() + "从 " + beforeValue + "修改为 " + afterValue);
+ }
+ } catch (IllegalAccessException e) {
+ log.error(e.getMessage());
+ }
+ }
+ }
+ }
+ return changeList;
+ }
+
+ public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException {
+ Assert.notNull(source, "Source must not be null");
+ Assert.notNull(target, "Target must not be null");
+
+ Class> actualEditable = target.getClass();
+
+ PropertyDescriptor[] targetPds = BeanUtils.getPropertyDescriptors(actualEditable);
+ List ignoreList = (copyProperties != null ? Arrays.asList(copyProperties) : null);
+
+ for (PropertyDescriptor targetPd : targetPds) {
+ Method writeMethod = targetPd.getWriteMethod();
+ if (writeMethod != null && ignoreList != null && ignoreList.contains(targetPd.getName())) {
+ PropertyDescriptor sourcePd = BeanUtils.getPropertyDescriptor(source.getClass(), targetPd.getName());
+ if (sourcePd != null) {
+ Method readMethod = sourcePd.getReadMethod();
+ if (readMethod != null &&
+ ClassUtils.isAssignable(writeMethod.getParameterTypes()[0], readMethod.getReturnType())) {
+ try {
+ if (!Modifier.isPublic(readMethod.getDeclaringClass().getModifiers())) {
+ readMethod.setAccessible(true);
+ }
+ Object value = readMethod.invoke(source);
+ if (!Modifier.isPublic(writeMethod.getDeclaringClass().getModifiers())) {
+ writeMethod.setAccessible(true);
+ }
+ writeMethod.invoke(target, value);
+ } catch (Throwable ex) {
+ throw new FatalBeanException(
+ "Could not copy property '" + targetPd.getName() + "' from source to target", ex);
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCalibrator.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCalibrator.java
index 22351ac..e04e087 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCalibrator.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCalibrator.java
@@ -6,6 +6,7 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
@@ -23,6 +24,7 @@
private static final long serialVersionUID = 1L;
+ @NotNull(message = "id不能为空")
@ApiModelProperty(value = "id,更新/删除使用参数", dataType = "Long")
@TableId("id")
private Long id;
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureInfo.java
index 7fbe4af..eef81f9 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureInfo.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureInfo.java
@@ -261,7 +261,7 @@
private List equipmentIds;
@NotEmpty(message = "检定数据不能为空")
- @ApiModelProperty(value = "检定数据(新增/更新参数)", dataType = "List")
+ @ApiModelProperty(value = "检定数据(新增/更新/详情参数)", dataType = "List")
@TableField(exist = false)
private List measureDataCalibratorList;
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureModifyRecord.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureModifyRecord.java
index 3fd086c..bcc90ee 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureModifyRecord.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureModifyRecord.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@@ -27,42 +28,49 @@
/**
* 检定数据管理基础信息表id
*/
+ @ApiModelProperty(value = "检定数据管理基础信息表id", dataType = "String")
@TableField("data_id")
private Long dataId;
/**
* 计量业务管理系统/自动检定系统
*/
+ @ApiModelProperty(value = "计量业务管理系统/自动检定系统", dataType = "String")
@TableField("source_system")
private String sourceSystem;
/**
* 修改内容
*/
+ @ApiModelProperty(value = "修改内容", dataType = "String")
@TableField("modify_content")
private String modifyContent;
/**
* 创建用户id
*/
+ @ApiModelProperty(value = "创建用户id", dataType = "String")
@TableField("create_user_id")
private Long createUserId;
/**
* 创建用户名
*/
+ @ApiModelProperty(value = "创建用户名", dataType = "String")
@TableField("create_user_name")
private String createUserName;
/**
* 创建时间
*/
+ @ApiModelProperty(value = "创建时间", dataType = "String")
@TableField("create_time")
private String createTime;
/**
* 更新时间
*/
+ @ApiModelProperty(value = "更新时间", dataType = "String")
@TableField("update_time")
private String updateTime;
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BizBusinessDeviceMeasureInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BizBusinessDeviceMeasureInfoServiceImpl.java
index eaab206..176b815 100644
--- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BizBusinessDeviceMeasureInfoServiceImpl.java
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BizBusinessDeviceMeasureInfoServiceImpl.java
@@ -11,18 +11,17 @@
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.enums.PrefixCodeEnum;
import com.casic.missiles.exception.BusinessException;
-import com.casic.missiles.mapper.business.BizBusinessDeviceMeasureDataCalibratorMapper;
-import com.casic.missiles.mapper.business.BizBusinessDeviceMeasureEquipmentMapper;
-import com.casic.missiles.mapper.business.BizBusinessDeviceMeasureInfoMapper;
-import com.casic.missiles.mapper.business.BizBusinessDeviceMeasureItemInfoMapper;
+import com.casic.missiles.mapper.business.*;
import com.casic.missiles.mapper.equipment.BizEquipmentTechnicalTargetMapper;
import com.casic.missiles.model.business.BizBusinessDeviceMeasureDataCalibrator;
import com.casic.missiles.model.business.BizBusinessDeviceMeasureEquipment;
import com.casic.missiles.model.business.BizBusinessDeviceMeasureInfo;
+import com.casic.missiles.model.business.BizBusinessDeviceMeasureModifyRecord;
import com.casic.missiles.model.equipment.BizEquipmentTechnicalTarget;
import com.casic.missiles.service.business.IBizBusinessDeviceMeasureDataCalibratorService;
import com.casic.missiles.service.business.IBizBusinessDeviceMeasureEquipmentService;
import com.casic.missiles.service.business.IBizBusinessDeviceMeasureInfoService;
+import com.casic.missiles.utils.CasicBeanUtil;
import com.casic.missiles.utils.DictCodeUtils;
import com.casic.missiles.utils.NumberGeneratorUtil;
import com.google.common.base.Joiner;
@@ -32,6 +31,7 @@
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@@ -59,6 +59,8 @@
private BizBusinessDeviceMeasureItemInfoMapper measureItemInfoMapper;
@Autowired
private BizEquipmentTechnicalTargetMapper technicalTargetMapper;
+ @Autowired
+ private BizBusinessDeviceMeasureModifyRecordMapper measureModifyRecordMapper;
@Override
public Page listPage(Page page, MeasureInfoListRequest request) throws Exception {
@@ -99,10 +101,13 @@
if(!addStandardEquipmentTypeHandle(measureInfo, belongStandardEquipment)) {
throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
}
+ //保存修改记录
+ saveMeasureModifyRecord(measureInfo, "新建");
return ReturnUtil.success();
}
@Override
+ @Transactional
public ReturnDTO updateMeasureInfo(BizBusinessDeviceMeasureInfo measureInfo) {
if(this.baseMapper.updateById(measureInfo) <= 0){
throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
@@ -114,6 +119,20 @@
throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
}
saveMeasureEquipment(measureInfo);
+
+ // TODO: 2023/10/2 若19套标准装置修改记录不同,则将保存修改记录放置各case处理
+ //保存检定数据修改记录,在删除前保证可以查到原数据
+ List measureDataList = measureInfo.getMeasureDataCalibratorList();
+ List modifyList = new ArrayList<>();
+ measureDataList.forEach(measureData -> {
+ BizBusinessDeviceMeasureDataCalibrator dataCalibrator = measureDataCalibratorMapper.selectById(measureData.getId());
+ String dataDesc = measureData.getParams()+" "+"量程"+measureData.getRangeRange();
+ modifyList.addAll(CasicBeanUtil.fieldCompare(dataDesc, dataCalibrator, measureData, Arrays.asList("indicatingValue")));
+ });
+ if(!CollectionUtils.isEmpty(modifyList)){
+ saveMeasureModifyRecord(measureInfo, Joiner.on("\n").join(modifyList));
+ }
+
//关联表-检定数据删除、新增
String belongStandardEquipment = measureItemInfoMapper.selectBelongStandardEquipmentByItemId(measureInfo.getItemId());
if(!deleteStandardEquipmentTypeHandle(measureInfo, belongStandardEquipment)) {
@@ -129,6 +148,10 @@
public ReturnDTO detail(Long id) throws Exception {
BizBusinessDeviceMeasureInfo measureItemInfo = this.baseMapper.selectDetailById(id);
DictCodeUtils.convertDictCodeToName(measureItemInfo);
+ //检定数据
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("data_id", measureItemInfo.getId());
+ measureItemInfo.setMeasureDataCalibratorList(measureDataCalibratorMapper.selectList(queryWrapper));
Long dataId = measureItemInfo.getId();
List equipmentList = measureEquipmentMapper.selectEquipmentListByDataId(dataId);
//不确定度
@@ -182,6 +205,16 @@
}
}
+ private void saveMeasureModifyRecord(BizBusinessDeviceMeasureInfo measureInfo, String modifyContent) {
+ BizBusinessDeviceMeasureModifyRecord measureModifyRecord = new BizBusinessDeviceMeasureModifyRecord();
+ measureModifyRecord.setDataId(measureInfo.getId());
+ measureModifyRecord.setCreateUserId(measureInfo.getUserId());
+ measureModifyRecord.setCreateUserName(measureInfo.getUserName());
+ measureModifyRecord.setSourceSystem("计量业务系统");
+ measureModifyRecord.setModifyContent(modifyContent);
+ measureModifyRecordMapper.insert(measureModifyRecord);
+ }
+
private boolean addStandardEquipmentTypeHandle(BizBusinessDeviceMeasureInfo measureInfo, String belongStandardEquipment) {
//19套标准装置判断,获取对应检定数据列表
switch (belongStandardEquipment) {