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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml index a9033f9..c49776d 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml @@ -4,71 +4,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - id, approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + id + , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction + + + + + + + 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml index a9033f9..c49776d 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml @@ -4,71 +4,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - id, approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + id + , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction + + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml index 62449ec..f4d9936 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml @@ -42,6 +42,12 @@ + + + + + + @@ -50,12 +56,20 @@ product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid as certificateValid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time, - is_del,model_id,help_instruction + is_del,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction select - from eqpt_equipment_info + from eqpt_equipment_info_view ${ew.sqlSegment} @@ -110,7 +124,7 @@ eqpt_remind_all as ( select e.id as equipment_id, - IFNULL(m.remind_time,0) as remind_time + IFNULL(m.remind_time,90) as remind_time from eqpt_equipment_info e left join eqpt_remind m on e.id = m.equipment_id ), @@ -118,20 +132,32 @@ select id,task_name,CONCAT(DATE_FORMAT(start_time,'%Y-%m-%d'),"~",DATE_FORMAT(end_time,'%Y-%m-%d')) as time_ext,start_time,end_time from eqpt_equipment_task_info ), + latest_sample_relation AS ( + SELECT * + FROM biz_business_order_sample_relation a + WHERE id = ( + SELECT max( id ) + FROM biz_business_order_sample_relation b + WHERE a.sample_id = b.sample_id ) + ), eqpt_ext as ( select e.* , - DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, - GROUP_CONCAT(t.task_name) as taskNames, - GROUP_CONCAT(t.time_ext) as taskTimes, - GROUP_CONCAT(t.id) as taskIds, - min(t.start_time) as task_start_time, - max(t.end_time) as task_end_time - from eqpt_equipment_info e + DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, + GROUP_CONCAT(t.task_name) as taskNames, + GROUP_CONCAT(t.time_ext) as taskTimes, + GROUP_CONCAT(t.id) as taskIds, + min(t.start_time) as task_start_time, + max(t.end_time) as task_end_time, + (case when lsr.sample_status in + #{item} + then 1 else 0 end) as check_status + from eqpt_equipment_info_view e left join eqpt_remind_all a on e.id = a.equipment_id left join eqpt_equipment_task_relation r on e.id = r.equipment_id left join task_ext t on r.task_id = t.id + left join latest_sample_relation lsr on lsr.sample_id = e.id where e.certificate_valid is not null - group by e.id,e.certificate_valid,a.remind_time + group by e.id,e.certificate_valid,a.remind_time,lsr.sample_status ) select * from eqpt_ext @@ -163,6 +189,9 @@ e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, + e.model as model, + e.company_id as companyId, + e.manufacture_no as manufactureNo, c.certificate_report_no as certificateNo, c.certificate_report_name as certificateName, '西昌卫星发射中心计量测试站' as checkOrganization, @@ -173,7 +202,7 @@ c.update_time as updateTime, '1' as certificateType, c.remark as remark - from biz_business_certificate_report c ,eqpt_equipment_info e + from biz_business_certificate_report c ,eqpt_equipment_info_view e where c.sample_id = e.id 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml index a9033f9..c49776d 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml @@ -4,71 +4,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - id, approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + id + , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction + + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml index 62449ec..f4d9936 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml @@ -42,6 +42,12 @@ + + + + + + @@ -50,12 +56,20 @@ product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid as certificateValid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time, - is_del,model_id,help_instruction + is_del,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction select - from eqpt_equipment_info + from eqpt_equipment_info_view ${ew.sqlSegment} @@ -110,7 +124,7 @@ eqpt_remind_all as ( select e.id as equipment_id, - IFNULL(m.remind_time,0) as remind_time + IFNULL(m.remind_time,90) as remind_time from eqpt_equipment_info e left join eqpt_remind m on e.id = m.equipment_id ), @@ -118,20 +132,32 @@ select id,task_name,CONCAT(DATE_FORMAT(start_time,'%Y-%m-%d'),"~",DATE_FORMAT(end_time,'%Y-%m-%d')) as time_ext,start_time,end_time from eqpt_equipment_task_info ), + latest_sample_relation AS ( + SELECT * + FROM biz_business_order_sample_relation a + WHERE id = ( + SELECT max( id ) + FROM biz_business_order_sample_relation b + WHERE a.sample_id = b.sample_id ) + ), eqpt_ext as ( select e.* , - DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, - GROUP_CONCAT(t.task_name) as taskNames, - GROUP_CONCAT(t.time_ext) as taskTimes, - GROUP_CONCAT(t.id) as taskIds, - min(t.start_time) as task_start_time, - max(t.end_time) as task_end_time - from eqpt_equipment_info e + DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, + GROUP_CONCAT(t.task_name) as taskNames, + GROUP_CONCAT(t.time_ext) as taskTimes, + GROUP_CONCAT(t.id) as taskIds, + min(t.start_time) as task_start_time, + max(t.end_time) as task_end_time, + (case when lsr.sample_status in + #{item} + then 1 else 0 end) as check_status + from eqpt_equipment_info_view e left join eqpt_remind_all a on e.id = a.equipment_id left join eqpt_equipment_task_relation r on e.id = r.equipment_id left join task_ext t on r.task_id = t.id + left join latest_sample_relation lsr on lsr.sample_id = e.id where e.certificate_valid is not null - group by e.id,e.certificate_valid,a.remind_time + group by e.id,e.certificate_valid,a.remind_time,lsr.sample_status ) select * from eqpt_ext @@ -163,6 +189,9 @@ e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, + e.model as model, + e.company_id as companyId, + e.manufacture_no as manufactureNo, c.certificate_report_no as certificateNo, c.certificate_report_name as certificateName, '西昌卫星发射中心计量测试站' as checkOrganization, @@ -173,7 +202,7 @@ c.update_time as updateTime, '1' as certificateType, c.remark as remark - from biz_business_certificate_report c ,eqpt_equipment_info e + from biz_business_certificate_report c ,eqpt_equipment_info_view e where c.sample_id = e.id diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml index 097c405..2ddebe6 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,6 +13,7 @@ + @@ -21,7 +22,7 @@ - id, model_no, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, create_user_id, create_dept_id, create_time, update_time + id, equipment_type, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, inspectable, create_user_id, create_dept_id, create_time, update_time + + 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml index a9033f9..c49776d 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml @@ -4,71 +4,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - id, approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + id + , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction + + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml index 62449ec..f4d9936 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml @@ -42,6 +42,12 @@ + + + + + + @@ -50,12 +56,20 @@ product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid as certificateValid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time, - is_del,model_id,help_instruction + is_del,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction select - from eqpt_equipment_info + from eqpt_equipment_info_view ${ew.sqlSegment} @@ -110,7 +124,7 @@ eqpt_remind_all as ( select e.id as equipment_id, - IFNULL(m.remind_time,0) as remind_time + IFNULL(m.remind_time,90) as remind_time from eqpt_equipment_info e left join eqpt_remind m on e.id = m.equipment_id ), @@ -118,20 +132,32 @@ select id,task_name,CONCAT(DATE_FORMAT(start_time,'%Y-%m-%d'),"~",DATE_FORMAT(end_time,'%Y-%m-%d')) as time_ext,start_time,end_time from eqpt_equipment_task_info ), + latest_sample_relation AS ( + SELECT * + FROM biz_business_order_sample_relation a + WHERE id = ( + SELECT max( id ) + FROM biz_business_order_sample_relation b + WHERE a.sample_id = b.sample_id ) + ), eqpt_ext as ( select e.* , - DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, - GROUP_CONCAT(t.task_name) as taskNames, - GROUP_CONCAT(t.time_ext) as taskTimes, - GROUP_CONCAT(t.id) as taskIds, - min(t.start_time) as task_start_time, - max(t.end_time) as task_end_time - from eqpt_equipment_info e + DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, + GROUP_CONCAT(t.task_name) as taskNames, + GROUP_CONCAT(t.time_ext) as taskTimes, + GROUP_CONCAT(t.id) as taskIds, + min(t.start_time) as task_start_time, + max(t.end_time) as task_end_time, + (case when lsr.sample_status in + #{item} + then 1 else 0 end) as check_status + from eqpt_equipment_info_view e left join eqpt_remind_all a on e.id = a.equipment_id left join eqpt_equipment_task_relation r on e.id = r.equipment_id left join task_ext t on r.task_id = t.id + left join latest_sample_relation lsr on lsr.sample_id = e.id where e.certificate_valid is not null - group by e.id,e.certificate_valid,a.remind_time + group by e.id,e.certificate_valid,a.remind_time,lsr.sample_status ) select * from eqpt_ext @@ -163,6 +189,9 @@ e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, + e.model as model, + e.company_id as companyId, + e.manufacture_no as manufactureNo, c.certificate_report_no as certificateNo, c.certificate_report_name as certificateName, '西昌卫星发射中心计量测试站' as checkOrganization, @@ -173,7 +202,7 @@ c.update_time as updateTime, '1' as certificateType, c.remark as remark - from biz_business_certificate_report c ,eqpt_equipment_info e + from biz_business_certificate_report c ,eqpt_equipment_info_view e where c.sample_id = e.id diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml index 097c405..2ddebe6 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,6 +13,7 @@ + @@ -21,7 +22,7 @@ - id, model_no, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, create_user_id, create_dept_id, create_time, update_time + id, equipment_type, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, inspectable, create_user_id, create_dept_id, create_time, update_time + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java index c69cc82..d1a2bd1 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.service.equipment.IEquipmentGroupInfoService; import io.swagger.annotations.Api; @@ -60,14 +61,11 @@ return ReturnUtil.success(); } - @ApiImplicitParams({ - @ApiImplicitParam(name = "groupName",value = "分组名称",dataType = "String",paramType = "query") - }) @ApiOperation("分组分页列表") - @GetMapping("listPage") - public ReturnDTO> listPage(String groupName){ + @PostMapping("listPage") + public ReturnDTO> listPage(@RequestBody EquipmentGroupQueryForm queryForm){ Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,groupName))); + return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,queryForm))); } @ApiImplicitParams({ 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml index a9033f9..c49776d 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml @@ -4,71 +4,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - id, approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + id + , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction + + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml index 62449ec..f4d9936 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml @@ -42,6 +42,12 @@ + + + + + + @@ -50,12 +56,20 @@ product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid as certificateValid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time, - is_del,model_id,help_instruction + is_del,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction select - from eqpt_equipment_info + from eqpt_equipment_info_view ${ew.sqlSegment} @@ -110,7 +124,7 @@ eqpt_remind_all as ( select e.id as equipment_id, - IFNULL(m.remind_time,0) as remind_time + IFNULL(m.remind_time,90) as remind_time from eqpt_equipment_info e left join eqpt_remind m on e.id = m.equipment_id ), @@ -118,20 +132,32 @@ select id,task_name,CONCAT(DATE_FORMAT(start_time,'%Y-%m-%d'),"~",DATE_FORMAT(end_time,'%Y-%m-%d')) as time_ext,start_time,end_time from eqpt_equipment_task_info ), + latest_sample_relation AS ( + SELECT * + FROM biz_business_order_sample_relation a + WHERE id = ( + SELECT max( id ) + FROM biz_business_order_sample_relation b + WHERE a.sample_id = b.sample_id ) + ), eqpt_ext as ( select e.* , - DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, - GROUP_CONCAT(t.task_name) as taskNames, - GROUP_CONCAT(t.time_ext) as taskTimes, - GROUP_CONCAT(t.id) as taskIds, - min(t.start_time) as task_start_time, - max(t.end_time) as task_end_time - from eqpt_equipment_info e + DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, + GROUP_CONCAT(t.task_name) as taskNames, + GROUP_CONCAT(t.time_ext) as taskTimes, + GROUP_CONCAT(t.id) as taskIds, + min(t.start_time) as task_start_time, + max(t.end_time) as task_end_time, + (case when lsr.sample_status in + #{item} + then 1 else 0 end) as check_status + from eqpt_equipment_info_view e left join eqpt_remind_all a on e.id = a.equipment_id left join eqpt_equipment_task_relation r on e.id = r.equipment_id left join task_ext t on r.task_id = t.id + left join latest_sample_relation lsr on lsr.sample_id = e.id where e.certificate_valid is not null - group by e.id,e.certificate_valid,a.remind_time + group by e.id,e.certificate_valid,a.remind_time,lsr.sample_status ) select * from eqpt_ext @@ -163,6 +189,9 @@ e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, + e.model as model, + e.company_id as companyId, + e.manufacture_no as manufactureNo, c.certificate_report_no as certificateNo, c.certificate_report_name as certificateName, '西昌卫星发射中心计量测试站' as checkOrganization, @@ -173,7 +202,7 @@ c.update_time as updateTime, '1' as certificateType, c.remark as remark - from biz_business_certificate_report c ,eqpt_equipment_info e + from biz_business_certificate_report c ,eqpt_equipment_info_view e where c.sample_id = e.id diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml index 097c405..2ddebe6 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,6 +13,7 @@ + @@ -21,7 +22,7 @@ - id, model_no, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, create_user_id, create_dept_id, create_time, update_time + id, equipment_type, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, inspectable, create_user_id, create_dept_id, create_time, update_time + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java index c69cc82..d1a2bd1 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.service.equipment.IEquipmentGroupInfoService; import io.swagger.annotations.Api; @@ -60,14 +61,11 @@ return ReturnUtil.success(); } - @ApiImplicitParams({ - @ApiImplicitParam(name = "groupName",value = "分组名称",dataType = "String",paramType = "query") - }) @ApiOperation("分组分页列表") - @GetMapping("listPage") - public ReturnDTO> listPage(String groupName){ + @PostMapping("listPage") + public ReturnDTO> listPage(@RequestBody EquipmentGroupQueryForm queryForm){ Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,groupName))); + return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,queryForm))); } @ApiImplicitParams({ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 56b6814..3130c5c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.business.LabelBindDTO; import com.casic.missiles.dto.equipment.*; import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; import com.casic.missiles.service.equipment.IEquipmentInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -36,6 +37,14 @@ public class EquipmentInfoController extends ExportController { private final IEquipmentInfoService equipmentInfoService; + private final IEquipmentInfoApprovalService approvalService; + + @ApiOperation("直接编辑设备") + @PostMapping("/info/update") + public ReturnDTO update(@RequestBody EquipmentApprovalForm approvalForm){ + approvalService.updateEquipmentInfo(approvalForm); + return ReturnUtil.success(); + } @ApiOperation("设备分页列表") @PostMapping("/info/listPage") @@ -152,5 +161,14 @@ return ReturnUtil.success(); } + @ApiOperation("到期提醒分页列表") + @PostMapping("/orderSelect/listPage") + @ResponseBody + public ReturnDTO> EquipmentOrderSelectQueryForm(@RequestBody EquipmentRemindQueryForm queryForm) { + Page page = PageFactory.defaultPage(); + page = equipmentInfoService.orderSelectListPage(page, queryForm); + return ReturnUtil.success(super.packForBT(page)); + } + } 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml index a9033f9..c49776d 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml @@ -4,71 +4,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - id, approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + id + , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction + + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml index 62449ec..f4d9936 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml @@ -42,6 +42,12 @@ + + + + + + @@ -50,12 +56,20 @@ product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid as certificateValid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time, - is_del,model_id,help_instruction + is_del,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction select - from eqpt_equipment_info + from eqpt_equipment_info_view ${ew.sqlSegment} @@ -110,7 +124,7 @@ eqpt_remind_all as ( select e.id as equipment_id, - IFNULL(m.remind_time,0) as remind_time + IFNULL(m.remind_time,90) as remind_time from eqpt_equipment_info e left join eqpt_remind m on e.id = m.equipment_id ), @@ -118,20 +132,32 @@ select id,task_name,CONCAT(DATE_FORMAT(start_time,'%Y-%m-%d'),"~",DATE_FORMAT(end_time,'%Y-%m-%d')) as time_ext,start_time,end_time from eqpt_equipment_task_info ), + latest_sample_relation AS ( + SELECT * + FROM biz_business_order_sample_relation a + WHERE id = ( + SELECT max( id ) + FROM biz_business_order_sample_relation b + WHERE a.sample_id = b.sample_id ) + ), eqpt_ext as ( select e.* , - DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, - GROUP_CONCAT(t.task_name) as taskNames, - GROUP_CONCAT(t.time_ext) as taskTimes, - GROUP_CONCAT(t.id) as taskIds, - min(t.start_time) as task_start_time, - max(t.end_time) as task_end_time - from eqpt_equipment_info e + DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, + GROUP_CONCAT(t.task_name) as taskNames, + GROUP_CONCAT(t.time_ext) as taskTimes, + GROUP_CONCAT(t.id) as taskIds, + min(t.start_time) as task_start_time, + max(t.end_time) as task_end_time, + (case when lsr.sample_status in + #{item} + then 1 else 0 end) as check_status + from eqpt_equipment_info_view e left join eqpt_remind_all a on e.id = a.equipment_id left join eqpt_equipment_task_relation r on e.id = r.equipment_id left join task_ext t on r.task_id = t.id + left join latest_sample_relation lsr on lsr.sample_id = e.id where e.certificate_valid is not null - group by e.id,e.certificate_valid,a.remind_time + group by e.id,e.certificate_valid,a.remind_time,lsr.sample_status ) select * from eqpt_ext @@ -163,6 +189,9 @@ e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, + e.model as model, + e.company_id as companyId, + e.manufacture_no as manufactureNo, c.certificate_report_no as certificateNo, c.certificate_report_name as certificateName, '西昌卫星发射中心计量测试站' as checkOrganization, @@ -173,7 +202,7 @@ c.update_time as updateTime, '1' as certificateType, c.remark as remark - from biz_business_certificate_report c ,eqpt_equipment_info e + from biz_business_certificate_report c ,eqpt_equipment_info_view e where c.sample_id = e.id diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml index 097c405..2ddebe6 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,6 +13,7 @@ + @@ -21,7 +22,7 @@ - id, model_no, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, create_user_id, create_dept_id, create_time, update_time + id, equipment_type, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, inspectable, create_user_id, create_dept_id, create_time, update_time + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java index c69cc82..d1a2bd1 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.service.equipment.IEquipmentGroupInfoService; import io.swagger.annotations.Api; @@ -60,14 +61,11 @@ return ReturnUtil.success(); } - @ApiImplicitParams({ - @ApiImplicitParam(name = "groupName",value = "分组名称",dataType = "String",paramType = "query") - }) @ApiOperation("分组分页列表") - @GetMapping("listPage") - public ReturnDTO> listPage(String groupName){ + @PostMapping("listPage") + public ReturnDTO> listPage(@RequestBody EquipmentGroupQueryForm queryForm){ Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,groupName))); + return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,queryForm))); } @ApiImplicitParams({ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 56b6814..3130c5c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.business.LabelBindDTO; import com.casic.missiles.dto.equipment.*; import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; import com.casic.missiles.service.equipment.IEquipmentInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -36,6 +37,14 @@ public class EquipmentInfoController extends ExportController { private final IEquipmentInfoService equipmentInfoService; + private final IEquipmentInfoApprovalService approvalService; + + @ApiOperation("直接编辑设备") + @PostMapping("/info/update") + public ReturnDTO update(@RequestBody EquipmentApprovalForm approvalForm){ + approvalService.updateEquipmentInfo(approvalForm); + return ReturnUtil.success(); + } @ApiOperation("设备分页列表") @PostMapping("/info/listPage") @@ -152,5 +161,14 @@ return ReturnUtil.success(); } + @ApiOperation("到期提醒分页列表") + @PostMapping("/orderSelect/listPage") + @ResponseBody + public ReturnDTO> EquipmentOrderSelectQueryForm(@RequestBody EquipmentRemindQueryForm queryForm) { + Page page = PageFactory.defaultPage(); + page = equipmentInfoService.orderSelectListPage(page, queryForm); + return ReturnUtil.success(super.packForBT(page)); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index 044d245..ccbd668 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -103,14 +103,20 @@ @ApiOperation("设备名称列表") @GetMapping("listEquipmentName") - public ReturnDTO> listEquipmentName(){ - return ReturnUtil.success(modelInfoService.listEquipmentName()); + public ReturnDTO> listEquipmentName(String equipmentType){ + return ReturnUtil.success(modelInfoService.listEquipmentName(equipmentType)); } @ApiOperation("规格型号列表") @GetMapping("listModel") - public ReturnDTO> listModel(String equipmentName){ - return ReturnUtil.success(modelInfoService.listModel(equipmentName)); + public ReturnDTO> listModel(String equipmentType, String equipmentName){ + return ReturnUtil.success(modelInfoService.listModel(equipmentType,equipmentName)); + } + + @ApiOperation("获取默认检定去向") + @GetMapping("defaultCheckDestination") + public ReturnDTO defaultCheckDestination(Long modelId, Long companyId){ + return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml index a9033f9..c49776d 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml @@ -4,71 +4,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - id, approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + id + , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction + + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml index 62449ec..f4d9936 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml @@ -42,6 +42,12 @@ + + + + + + @@ -50,12 +56,20 @@ product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid as certificateValid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time, - is_del,model_id,help_instruction + is_del,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction select - from eqpt_equipment_info + from eqpt_equipment_info_view ${ew.sqlSegment} @@ -110,7 +124,7 @@ eqpt_remind_all as ( select e.id as equipment_id, - IFNULL(m.remind_time,0) as remind_time + IFNULL(m.remind_time,90) as remind_time from eqpt_equipment_info e left join eqpt_remind m on e.id = m.equipment_id ), @@ -118,20 +132,32 @@ select id,task_name,CONCAT(DATE_FORMAT(start_time,'%Y-%m-%d'),"~",DATE_FORMAT(end_time,'%Y-%m-%d')) as time_ext,start_time,end_time from eqpt_equipment_task_info ), + latest_sample_relation AS ( + SELECT * + FROM biz_business_order_sample_relation a + WHERE id = ( + SELECT max( id ) + FROM biz_business_order_sample_relation b + WHERE a.sample_id = b.sample_id ) + ), eqpt_ext as ( select e.* , - DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, - GROUP_CONCAT(t.task_name) as taskNames, - GROUP_CONCAT(t.time_ext) as taskTimes, - GROUP_CONCAT(t.id) as taskIds, - min(t.start_time) as task_start_time, - max(t.end_time) as task_end_time - from eqpt_equipment_info e + DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, + GROUP_CONCAT(t.task_name) as taskNames, + GROUP_CONCAT(t.time_ext) as taskTimes, + GROUP_CONCAT(t.id) as taskIds, + min(t.start_time) as task_start_time, + max(t.end_time) as task_end_time, + (case when lsr.sample_status in + #{item} + then 1 else 0 end) as check_status + from eqpt_equipment_info_view e left join eqpt_remind_all a on e.id = a.equipment_id left join eqpt_equipment_task_relation r on e.id = r.equipment_id left join task_ext t on r.task_id = t.id + left join latest_sample_relation lsr on lsr.sample_id = e.id where e.certificate_valid is not null - group by e.id,e.certificate_valid,a.remind_time + group by e.id,e.certificate_valid,a.remind_time,lsr.sample_status ) select * from eqpt_ext @@ -163,6 +189,9 @@ e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, + e.model as model, + e.company_id as companyId, + e.manufacture_no as manufactureNo, c.certificate_report_no as certificateNo, c.certificate_report_name as certificateName, '西昌卫星发射中心计量测试站' as checkOrganization, @@ -173,7 +202,7 @@ c.update_time as updateTime, '1' as certificateType, c.remark as remark - from biz_business_certificate_report c ,eqpt_equipment_info e + from biz_business_certificate_report c ,eqpt_equipment_info_view e where c.sample_id = e.id diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml index 097c405..2ddebe6 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,6 +13,7 @@ + @@ -21,7 +22,7 @@ - id, model_no, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, create_user_id, create_dept_id, create_time, update_time + id, equipment_type, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, inspectable, create_user_id, create_dept_id, create_time, update_time + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java index c69cc82..d1a2bd1 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.service.equipment.IEquipmentGroupInfoService; import io.swagger.annotations.Api; @@ -60,14 +61,11 @@ return ReturnUtil.success(); } - @ApiImplicitParams({ - @ApiImplicitParam(name = "groupName",value = "分组名称",dataType = "String",paramType = "query") - }) @ApiOperation("分组分页列表") - @GetMapping("listPage") - public ReturnDTO> listPage(String groupName){ + @PostMapping("listPage") + public ReturnDTO> listPage(@RequestBody EquipmentGroupQueryForm queryForm){ Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,groupName))); + return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,queryForm))); } @ApiImplicitParams({ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 56b6814..3130c5c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.business.LabelBindDTO; import com.casic.missiles.dto.equipment.*; import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; import com.casic.missiles.service.equipment.IEquipmentInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -36,6 +37,14 @@ public class EquipmentInfoController extends ExportController { private final IEquipmentInfoService equipmentInfoService; + private final IEquipmentInfoApprovalService approvalService; + + @ApiOperation("直接编辑设备") + @PostMapping("/info/update") + public ReturnDTO update(@RequestBody EquipmentApprovalForm approvalForm){ + approvalService.updateEquipmentInfo(approvalForm); + return ReturnUtil.success(); + } @ApiOperation("设备分页列表") @PostMapping("/info/listPage") @@ -152,5 +161,14 @@ return ReturnUtil.success(); } + @ApiOperation("到期提醒分页列表") + @PostMapping("/orderSelect/listPage") + @ResponseBody + public ReturnDTO> EquipmentOrderSelectQueryForm(@RequestBody EquipmentRemindQueryForm queryForm) { + Page page = PageFactory.defaultPage(); + page = equipmentInfoService.orderSelectListPage(page, queryForm); + return ReturnUtil.success(super.packForBT(page)); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index 044d245..ccbd668 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -103,14 +103,20 @@ @ApiOperation("设备名称列表") @GetMapping("listEquipmentName") - public ReturnDTO> listEquipmentName(){ - return ReturnUtil.success(modelInfoService.listEquipmentName()); + public ReturnDTO> listEquipmentName(String equipmentType){ + return ReturnUtil.success(modelInfoService.listEquipmentName(equipmentType)); } @ApiOperation("规格型号列表") @GetMapping("listModel") - public ReturnDTO> listModel(String equipmentName){ - return ReturnUtil.success(modelInfoService.listModel(equipmentName)); + public ReturnDTO> listModel(String equipmentType, String equipmentName){ + return ReturnUtil.success(modelInfoService.listModel(equipmentType,equipmentName)); + } + + @ApiOperation("获取默认检定去向") + @GetMapping("defaultCheckDestination") + public ReturnDTO defaultCheckDestination(Long modelId, Long companyId){ + return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java index 7e79008..1fc1f9c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.CertificateUpdate; +import com.casic.missiles.dto.equipment.LimitInstructionUpdate; import com.casic.missiles.model.plan.OrderReceive; import com.casic.missiles.model.plan.SampleStatueUpdate; import com.casic.missiles.service.equipment.IEquipmentInfoService; @@ -55,4 +56,11 @@ return ReturnUtil.success(); } + @ApiOperation("更新限用说明") + @PostMapping("/limitInstructionUpdate") + public ReturnDTO updateLimitInstruction(@RequestBody LimitInstructionUpdate updateForm) { + equipmentInfoService.updateLimitInstruction(updateForm.getEquipmentId(), updateForm.getLimitInstruction()); + return ReturnUtil.success(); + } + } 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml index a9033f9..c49776d 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml @@ -4,71 +4,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - id, approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + id + , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction + + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml index 62449ec..f4d9936 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml @@ -42,6 +42,12 @@ + + + + + + @@ -50,12 +56,20 @@ product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid as certificateValid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time, - is_del,model_id,help_instruction + is_del,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction select - from eqpt_equipment_info + from eqpt_equipment_info_view ${ew.sqlSegment} @@ -110,7 +124,7 @@ eqpt_remind_all as ( select e.id as equipment_id, - IFNULL(m.remind_time,0) as remind_time + IFNULL(m.remind_time,90) as remind_time from eqpt_equipment_info e left join eqpt_remind m on e.id = m.equipment_id ), @@ -118,20 +132,32 @@ select id,task_name,CONCAT(DATE_FORMAT(start_time,'%Y-%m-%d'),"~",DATE_FORMAT(end_time,'%Y-%m-%d')) as time_ext,start_time,end_time from eqpt_equipment_task_info ), + latest_sample_relation AS ( + SELECT * + FROM biz_business_order_sample_relation a + WHERE id = ( + SELECT max( id ) + FROM biz_business_order_sample_relation b + WHERE a.sample_id = b.sample_id ) + ), eqpt_ext as ( select e.* , - DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, - GROUP_CONCAT(t.task_name) as taskNames, - GROUP_CONCAT(t.time_ext) as taskTimes, - GROUP_CONCAT(t.id) as taskIds, - min(t.start_time) as task_start_time, - max(t.end_time) as task_end_time - from eqpt_equipment_info e + DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, + GROUP_CONCAT(t.task_name) as taskNames, + GROUP_CONCAT(t.time_ext) as taskTimes, + GROUP_CONCAT(t.id) as taskIds, + min(t.start_time) as task_start_time, + max(t.end_time) as task_end_time, + (case when lsr.sample_status in + #{item} + then 1 else 0 end) as check_status + from eqpt_equipment_info_view e left join eqpt_remind_all a on e.id = a.equipment_id left join eqpt_equipment_task_relation r on e.id = r.equipment_id left join task_ext t on r.task_id = t.id + left join latest_sample_relation lsr on lsr.sample_id = e.id where e.certificate_valid is not null - group by e.id,e.certificate_valid,a.remind_time + group by e.id,e.certificate_valid,a.remind_time,lsr.sample_status ) select * from eqpt_ext @@ -163,6 +189,9 @@ e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, + e.model as model, + e.company_id as companyId, + e.manufacture_no as manufactureNo, c.certificate_report_no as certificateNo, c.certificate_report_name as certificateName, '西昌卫星发射中心计量测试站' as checkOrganization, @@ -173,7 +202,7 @@ c.update_time as updateTime, '1' as certificateType, c.remark as remark - from biz_business_certificate_report c ,eqpt_equipment_info e + from biz_business_certificate_report c ,eqpt_equipment_info_view e where c.sample_id = e.id diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml index 097c405..2ddebe6 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,6 +13,7 @@ + @@ -21,7 +22,7 @@ - id, model_no, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, create_user_id, create_dept_id, create_time, update_time + id, equipment_type, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, inspectable, create_user_id, create_dept_id, create_time, update_time + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java index c69cc82..d1a2bd1 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.service.equipment.IEquipmentGroupInfoService; import io.swagger.annotations.Api; @@ -60,14 +61,11 @@ return ReturnUtil.success(); } - @ApiImplicitParams({ - @ApiImplicitParam(name = "groupName",value = "分组名称",dataType = "String",paramType = "query") - }) @ApiOperation("分组分页列表") - @GetMapping("listPage") - public ReturnDTO> listPage(String groupName){ + @PostMapping("listPage") + public ReturnDTO> listPage(@RequestBody EquipmentGroupQueryForm queryForm){ Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,groupName))); + return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,queryForm))); } @ApiImplicitParams({ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 56b6814..3130c5c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.business.LabelBindDTO; import com.casic.missiles.dto.equipment.*; import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; import com.casic.missiles.service.equipment.IEquipmentInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -36,6 +37,14 @@ public class EquipmentInfoController extends ExportController { private final IEquipmentInfoService equipmentInfoService; + private final IEquipmentInfoApprovalService approvalService; + + @ApiOperation("直接编辑设备") + @PostMapping("/info/update") + public ReturnDTO update(@RequestBody EquipmentApprovalForm approvalForm){ + approvalService.updateEquipmentInfo(approvalForm); + return ReturnUtil.success(); + } @ApiOperation("设备分页列表") @PostMapping("/info/listPage") @@ -152,5 +161,14 @@ return ReturnUtil.success(); } + @ApiOperation("到期提醒分页列表") + @PostMapping("/orderSelect/listPage") + @ResponseBody + public ReturnDTO> EquipmentOrderSelectQueryForm(@RequestBody EquipmentRemindQueryForm queryForm) { + Page page = PageFactory.defaultPage(); + page = equipmentInfoService.orderSelectListPage(page, queryForm); + return ReturnUtil.success(super.packForBT(page)); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index 044d245..ccbd668 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -103,14 +103,20 @@ @ApiOperation("设备名称列表") @GetMapping("listEquipmentName") - public ReturnDTO> listEquipmentName(){ - return ReturnUtil.success(modelInfoService.listEquipmentName()); + public ReturnDTO> listEquipmentName(String equipmentType){ + return ReturnUtil.success(modelInfoService.listEquipmentName(equipmentType)); } @ApiOperation("规格型号列表") @GetMapping("listModel") - public ReturnDTO> listModel(String equipmentName){ - return ReturnUtil.success(modelInfoService.listModel(equipmentName)); + public ReturnDTO> listModel(String equipmentType, String equipmentName){ + return ReturnUtil.success(modelInfoService.listModel(equipmentType,equipmentName)); + } + + @ApiOperation("获取默认检定去向") + @GetMapping("defaultCheckDestination") + public ReturnDTO defaultCheckDestination(Long modelId, Long companyId){ + return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java index 7e79008..1fc1f9c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.CertificateUpdate; +import com.casic.missiles.dto.equipment.LimitInstructionUpdate; import com.casic.missiles.model.plan.OrderReceive; import com.casic.missiles.model.plan.SampleStatueUpdate; import com.casic.missiles.service.equipment.IEquipmentInfoService; @@ -55,4 +56,11 @@ return ReturnUtil.success(); } + @ApiOperation("更新限用说明") + @PostMapping("/limitInstructionUpdate") + public ReturnDTO updateLimitInstruction(@RequestBody LimitInstructionUpdate updateForm) { + equipmentInfoService.updateLimitInstruction(updateForm.getEquipmentId(), updateForm.getLimitInstruction()); + return ReturnUtil.success(); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java index e314003..73d02ec 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java @@ -1,7 +1,18 @@ package com.casic.missiles.controller.system; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.system.SystemLocation; +import com.casic.missiles.service.system.ISystemLocationService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** *

@@ -11,8 +22,45 @@ * @author zhangyingjie * @since 2023-11-15 */ +@Api(tags = "安装位置管理") @RestController -@RequestMapping("/system-location") -public class SystemLocationController { +@RequestMapping("/system/location") +@RequiredArgsConstructor +public class SystemLocationController extends BaseController { + + private final ISystemLocationService locationService; + + @PostMapping("add") + public ReturnDTO add(@RequestBody SystemLocation systemLocation){ + locationService.add(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("update") + public ReturnDTO update(@RequestBody SystemLocation systemLocation){ + locationService.update(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("delete") + public ReturnDTO delete(@RequestBody SystemLocation systemLocation){ + locationService.delete(systemLocation); + return ReturnUtil.success(); + } + + @GetMapping("listPage") + public ReturnDTO> listPage(Long searchId,Long positionId, String installLocation){ + Page page = PageFactory.defaultPage(); + page = locationService.listPage(page,searchId,positionId, installLocation); + return ReturnUtil.success(super.packForBT(page)); + } + + @GetMapping("list") + public ReturnDTO> list(Long searchId,Long positionId, String installLocation){ + List list = locationService.list(searchId,positionId, installLocation); + return ReturnUtil.success(list); + } + + } 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml index a9033f9..c49776d 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml @@ -4,71 +4,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - id, approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + id + , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction + + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml index 62449ec..f4d9936 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml @@ -42,6 +42,12 @@ + + + + + + @@ -50,12 +56,20 @@ product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid as certificateValid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time, - is_del,model_id,help_instruction + is_del,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction select - from eqpt_equipment_info + from eqpt_equipment_info_view ${ew.sqlSegment} @@ -110,7 +124,7 @@ eqpt_remind_all as ( select e.id as equipment_id, - IFNULL(m.remind_time,0) as remind_time + IFNULL(m.remind_time,90) as remind_time from eqpt_equipment_info e left join eqpt_remind m on e.id = m.equipment_id ), @@ -118,20 +132,32 @@ select id,task_name,CONCAT(DATE_FORMAT(start_time,'%Y-%m-%d'),"~",DATE_FORMAT(end_time,'%Y-%m-%d')) as time_ext,start_time,end_time from eqpt_equipment_task_info ), + latest_sample_relation AS ( + SELECT * + FROM biz_business_order_sample_relation a + WHERE id = ( + SELECT max( id ) + FROM biz_business_order_sample_relation b + WHERE a.sample_id = b.sample_id ) + ), eqpt_ext as ( select e.* , - DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, - GROUP_CONCAT(t.task_name) as taskNames, - GROUP_CONCAT(t.time_ext) as taskTimes, - GROUP_CONCAT(t.id) as taskIds, - min(t.start_time) as task_start_time, - max(t.end_time) as task_end_time - from eqpt_equipment_info e + DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, + GROUP_CONCAT(t.task_name) as taskNames, + GROUP_CONCAT(t.time_ext) as taskTimes, + GROUP_CONCAT(t.id) as taskIds, + min(t.start_time) as task_start_time, + max(t.end_time) as task_end_time, + (case when lsr.sample_status in + #{item} + then 1 else 0 end) as check_status + from eqpt_equipment_info_view e left join eqpt_remind_all a on e.id = a.equipment_id left join eqpt_equipment_task_relation r on e.id = r.equipment_id left join task_ext t on r.task_id = t.id + left join latest_sample_relation lsr on lsr.sample_id = e.id where e.certificate_valid is not null - group by e.id,e.certificate_valid,a.remind_time + group by e.id,e.certificate_valid,a.remind_time,lsr.sample_status ) select * from eqpt_ext @@ -163,6 +189,9 @@ e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, + e.model as model, + e.company_id as companyId, + e.manufacture_no as manufactureNo, c.certificate_report_no as certificateNo, c.certificate_report_name as certificateName, '西昌卫星发射中心计量测试站' as checkOrganization, @@ -173,7 +202,7 @@ c.update_time as updateTime, '1' as certificateType, c.remark as remark - from biz_business_certificate_report c ,eqpt_equipment_info e + from biz_business_certificate_report c ,eqpt_equipment_info_view e where c.sample_id = e.id diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml index 097c405..2ddebe6 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,6 +13,7 @@ + @@ -21,7 +22,7 @@ - id, model_no, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, create_user_id, create_dept_id, create_time, update_time + id, equipment_type, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, inspectable, create_user_id, create_dept_id, create_time, update_time + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java index c69cc82..d1a2bd1 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.service.equipment.IEquipmentGroupInfoService; import io.swagger.annotations.Api; @@ -60,14 +61,11 @@ return ReturnUtil.success(); } - @ApiImplicitParams({ - @ApiImplicitParam(name = "groupName",value = "分组名称",dataType = "String",paramType = "query") - }) @ApiOperation("分组分页列表") - @GetMapping("listPage") - public ReturnDTO> listPage(String groupName){ + @PostMapping("listPage") + public ReturnDTO> listPage(@RequestBody EquipmentGroupQueryForm queryForm){ Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,groupName))); + return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,queryForm))); } @ApiImplicitParams({ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 56b6814..3130c5c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.business.LabelBindDTO; import com.casic.missiles.dto.equipment.*; import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; import com.casic.missiles.service.equipment.IEquipmentInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -36,6 +37,14 @@ public class EquipmentInfoController extends ExportController { private final IEquipmentInfoService equipmentInfoService; + private final IEquipmentInfoApprovalService approvalService; + + @ApiOperation("直接编辑设备") + @PostMapping("/info/update") + public ReturnDTO update(@RequestBody EquipmentApprovalForm approvalForm){ + approvalService.updateEquipmentInfo(approvalForm); + return ReturnUtil.success(); + } @ApiOperation("设备分页列表") @PostMapping("/info/listPage") @@ -152,5 +161,14 @@ return ReturnUtil.success(); } + @ApiOperation("到期提醒分页列表") + @PostMapping("/orderSelect/listPage") + @ResponseBody + public ReturnDTO> EquipmentOrderSelectQueryForm(@RequestBody EquipmentRemindQueryForm queryForm) { + Page page = PageFactory.defaultPage(); + page = equipmentInfoService.orderSelectListPage(page, queryForm); + return ReturnUtil.success(super.packForBT(page)); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index 044d245..ccbd668 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -103,14 +103,20 @@ @ApiOperation("设备名称列表") @GetMapping("listEquipmentName") - public ReturnDTO> listEquipmentName(){ - return ReturnUtil.success(modelInfoService.listEquipmentName()); + public ReturnDTO> listEquipmentName(String equipmentType){ + return ReturnUtil.success(modelInfoService.listEquipmentName(equipmentType)); } @ApiOperation("规格型号列表") @GetMapping("listModel") - public ReturnDTO> listModel(String equipmentName){ - return ReturnUtil.success(modelInfoService.listModel(equipmentName)); + public ReturnDTO> listModel(String equipmentType, String equipmentName){ + return ReturnUtil.success(modelInfoService.listModel(equipmentType,equipmentName)); + } + + @ApiOperation("获取默认检定去向") + @GetMapping("defaultCheckDestination") + public ReturnDTO defaultCheckDestination(Long modelId, Long companyId){ + return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java index 7e79008..1fc1f9c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.CertificateUpdate; +import com.casic.missiles.dto.equipment.LimitInstructionUpdate; import com.casic.missiles.model.plan.OrderReceive; import com.casic.missiles.model.plan.SampleStatueUpdate; import com.casic.missiles.service.equipment.IEquipmentInfoService; @@ -55,4 +56,11 @@ return ReturnUtil.success(); } + @ApiOperation("更新限用说明") + @PostMapping("/limitInstructionUpdate") + public ReturnDTO updateLimitInstruction(@RequestBody LimitInstructionUpdate updateForm) { + equipmentInfoService.updateLimitInstruction(updateForm.getEquipmentId(), updateForm.getLimitInstruction()); + return ReturnUtil.success(); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java index e314003..73d02ec 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java @@ -1,7 +1,18 @@ package com.casic.missiles.controller.system; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.system.SystemLocation; +import com.casic.missiles.service.system.ISystemLocationService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** *

@@ -11,8 +22,45 @@ * @author zhangyingjie * @since 2023-11-15 */ +@Api(tags = "安装位置管理") @RestController -@RequestMapping("/system-location") -public class SystemLocationController { +@RequestMapping("/system/location") +@RequiredArgsConstructor +public class SystemLocationController extends BaseController { + + private final ISystemLocationService locationService; + + @PostMapping("add") + public ReturnDTO add(@RequestBody SystemLocation systemLocation){ + locationService.add(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("update") + public ReturnDTO update(@RequestBody SystemLocation systemLocation){ + locationService.update(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("delete") + public ReturnDTO delete(@RequestBody SystemLocation systemLocation){ + locationService.delete(systemLocation); + return ReturnUtil.success(); + } + + @GetMapping("listPage") + public ReturnDTO> listPage(Long searchId,Long positionId, String installLocation){ + Page page = PageFactory.defaultPage(); + page = locationService.listPage(page,searchId,positionId, installLocation); + return ReturnUtil.success(super.packForBT(page)); + } + + @GetMapping("list") + public ReturnDTO> list(Long searchId,Long positionId, String installLocation){ + List list = locationService.list(searchId,positionId, installLocation); + return ReturnUtil.success(list); + } + + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java index f9e2f91..d64634a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java @@ -1,6 +1,8 @@ package com.casic.missiles.controller.system; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; @@ -10,6 +12,8 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** *

* 受检系统-系统管理-岗位管理 前端控制器 @@ -22,7 +26,7 @@ @RestController @RequestMapping("/system/position") @RequiredArgsConstructor -public class SystemPositionController { +public class SystemPositionController extends BaseController { private final ISystemPositionService positionService; @@ -45,16 +49,16 @@ } @GetMapping("listPage") - public ReturnDTO listPage(Long searchId,String positionName){ + public ReturnDTO> listPage(Long searchId, String positionName){ Page page = PageFactory.defaultPage(); - positionService.listPage(page,searchId,positionName); - return ReturnUtil.success(); + page = positionService.listPage(page,searchId,positionName); + return ReturnUtil.success(super.packForBT(page)); } @GetMapping("list") - public ReturnDTO list(Long searchId,String positionName){ - positionService.list(searchId,positionName); - return ReturnUtil.success(); + public ReturnDTO> list(Long searchId,String positionName){ + List list = positionService.list(searchId,positionName); + return ReturnUtil.success(list); } 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml index a9033f9..c49776d 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml @@ -4,71 +4,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - id, approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + id + , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction + + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml index 62449ec..f4d9936 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml @@ -42,6 +42,12 @@ + + + + + + @@ -50,12 +56,20 @@ product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid as certificateValid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time, - is_del,model_id,help_instruction + is_del,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction select - from eqpt_equipment_info + from eqpt_equipment_info_view ${ew.sqlSegment} @@ -110,7 +124,7 @@ eqpt_remind_all as ( select e.id as equipment_id, - IFNULL(m.remind_time,0) as remind_time + IFNULL(m.remind_time,90) as remind_time from eqpt_equipment_info e left join eqpt_remind m on e.id = m.equipment_id ), @@ -118,20 +132,32 @@ select id,task_name,CONCAT(DATE_FORMAT(start_time,'%Y-%m-%d'),"~",DATE_FORMAT(end_time,'%Y-%m-%d')) as time_ext,start_time,end_time from eqpt_equipment_task_info ), + latest_sample_relation AS ( + SELECT * + FROM biz_business_order_sample_relation a + WHERE id = ( + SELECT max( id ) + FROM biz_business_order_sample_relation b + WHERE a.sample_id = b.sample_id ) + ), eqpt_ext as ( select e.* , - DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, - GROUP_CONCAT(t.task_name) as taskNames, - GROUP_CONCAT(t.time_ext) as taskTimes, - GROUP_CONCAT(t.id) as taskIds, - min(t.start_time) as task_start_time, - max(t.end_time) as task_end_time - from eqpt_equipment_info e + DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, + GROUP_CONCAT(t.task_name) as taskNames, + GROUP_CONCAT(t.time_ext) as taskTimes, + GROUP_CONCAT(t.id) as taskIds, + min(t.start_time) as task_start_time, + max(t.end_time) as task_end_time, + (case when lsr.sample_status in + #{item} + then 1 else 0 end) as check_status + from eqpt_equipment_info_view e left join eqpt_remind_all a on e.id = a.equipment_id left join eqpt_equipment_task_relation r on e.id = r.equipment_id left join task_ext t on r.task_id = t.id + left join latest_sample_relation lsr on lsr.sample_id = e.id where e.certificate_valid is not null - group by e.id,e.certificate_valid,a.remind_time + group by e.id,e.certificate_valid,a.remind_time,lsr.sample_status ) select * from eqpt_ext @@ -163,6 +189,9 @@ e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, + e.model as model, + e.company_id as companyId, + e.manufacture_no as manufactureNo, c.certificate_report_no as certificateNo, c.certificate_report_name as certificateName, '西昌卫星发射中心计量测试站' as checkOrganization, @@ -173,7 +202,7 @@ c.update_time as updateTime, '1' as certificateType, c.remark as remark - from biz_business_certificate_report c ,eqpt_equipment_info e + from biz_business_certificate_report c ,eqpt_equipment_info_view e where c.sample_id = e.id diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml index 097c405..2ddebe6 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,6 +13,7 @@ + @@ -21,7 +22,7 @@ - id, model_no, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, create_user_id, create_dept_id, create_time, update_time + id, equipment_type, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, inspectable, create_user_id, create_dept_id, create_time, update_time + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java index c69cc82..d1a2bd1 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.service.equipment.IEquipmentGroupInfoService; import io.swagger.annotations.Api; @@ -60,14 +61,11 @@ return ReturnUtil.success(); } - @ApiImplicitParams({ - @ApiImplicitParam(name = "groupName",value = "分组名称",dataType = "String",paramType = "query") - }) @ApiOperation("分组分页列表") - @GetMapping("listPage") - public ReturnDTO> listPage(String groupName){ + @PostMapping("listPage") + public ReturnDTO> listPage(@RequestBody EquipmentGroupQueryForm queryForm){ Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,groupName))); + return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,queryForm))); } @ApiImplicitParams({ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 56b6814..3130c5c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.business.LabelBindDTO; import com.casic.missiles.dto.equipment.*; import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; import com.casic.missiles.service.equipment.IEquipmentInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -36,6 +37,14 @@ public class EquipmentInfoController extends ExportController { private final IEquipmentInfoService equipmentInfoService; + private final IEquipmentInfoApprovalService approvalService; + + @ApiOperation("直接编辑设备") + @PostMapping("/info/update") + public ReturnDTO update(@RequestBody EquipmentApprovalForm approvalForm){ + approvalService.updateEquipmentInfo(approvalForm); + return ReturnUtil.success(); + } @ApiOperation("设备分页列表") @PostMapping("/info/listPage") @@ -152,5 +161,14 @@ return ReturnUtil.success(); } + @ApiOperation("到期提醒分页列表") + @PostMapping("/orderSelect/listPage") + @ResponseBody + public ReturnDTO> EquipmentOrderSelectQueryForm(@RequestBody EquipmentRemindQueryForm queryForm) { + Page page = PageFactory.defaultPage(); + page = equipmentInfoService.orderSelectListPage(page, queryForm); + return ReturnUtil.success(super.packForBT(page)); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index 044d245..ccbd668 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -103,14 +103,20 @@ @ApiOperation("设备名称列表") @GetMapping("listEquipmentName") - public ReturnDTO> listEquipmentName(){ - return ReturnUtil.success(modelInfoService.listEquipmentName()); + public ReturnDTO> listEquipmentName(String equipmentType){ + return ReturnUtil.success(modelInfoService.listEquipmentName(equipmentType)); } @ApiOperation("规格型号列表") @GetMapping("listModel") - public ReturnDTO> listModel(String equipmentName){ - return ReturnUtil.success(modelInfoService.listModel(equipmentName)); + public ReturnDTO> listModel(String equipmentType, String equipmentName){ + return ReturnUtil.success(modelInfoService.listModel(equipmentType,equipmentName)); + } + + @ApiOperation("获取默认检定去向") + @GetMapping("defaultCheckDestination") + public ReturnDTO defaultCheckDestination(Long modelId, Long companyId){ + return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java index 7e79008..1fc1f9c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.CertificateUpdate; +import com.casic.missiles.dto.equipment.LimitInstructionUpdate; import com.casic.missiles.model.plan.OrderReceive; import com.casic.missiles.model.plan.SampleStatueUpdate; import com.casic.missiles.service.equipment.IEquipmentInfoService; @@ -55,4 +56,11 @@ return ReturnUtil.success(); } + @ApiOperation("更新限用说明") + @PostMapping("/limitInstructionUpdate") + public ReturnDTO updateLimitInstruction(@RequestBody LimitInstructionUpdate updateForm) { + equipmentInfoService.updateLimitInstruction(updateForm.getEquipmentId(), updateForm.getLimitInstruction()); + return ReturnUtil.success(); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java index e314003..73d02ec 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java @@ -1,7 +1,18 @@ package com.casic.missiles.controller.system; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.system.SystemLocation; +import com.casic.missiles.service.system.ISystemLocationService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** *

@@ -11,8 +22,45 @@ * @author zhangyingjie * @since 2023-11-15 */ +@Api(tags = "安装位置管理") @RestController -@RequestMapping("/system-location") -public class SystemLocationController { +@RequestMapping("/system/location") +@RequiredArgsConstructor +public class SystemLocationController extends BaseController { + + private final ISystemLocationService locationService; + + @PostMapping("add") + public ReturnDTO add(@RequestBody SystemLocation systemLocation){ + locationService.add(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("update") + public ReturnDTO update(@RequestBody SystemLocation systemLocation){ + locationService.update(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("delete") + public ReturnDTO delete(@RequestBody SystemLocation systemLocation){ + locationService.delete(systemLocation); + return ReturnUtil.success(); + } + + @GetMapping("listPage") + public ReturnDTO> listPage(Long searchId,Long positionId, String installLocation){ + Page page = PageFactory.defaultPage(); + page = locationService.listPage(page,searchId,positionId, installLocation); + return ReturnUtil.success(super.packForBT(page)); + } + + @GetMapping("list") + public ReturnDTO> list(Long searchId,Long positionId, String installLocation){ + List list = locationService.list(searchId,positionId, installLocation); + return ReturnUtil.success(list); + } + + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java index f9e2f91..d64634a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java @@ -1,6 +1,8 @@ package com.casic.missiles.controller.system; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; @@ -10,6 +12,8 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** *

* 受检系统-系统管理-岗位管理 前端控制器 @@ -22,7 +26,7 @@ @RestController @RequestMapping("/system/position") @RequiredArgsConstructor -public class SystemPositionController { +public class SystemPositionController extends BaseController { private final ISystemPositionService positionService; @@ -45,16 +49,16 @@ } @GetMapping("listPage") - public ReturnDTO listPage(Long searchId,String positionName){ + public ReturnDTO> listPage(Long searchId, String positionName){ Page page = PageFactory.defaultPage(); - positionService.listPage(page,searchId,positionName); - return ReturnUtil.success(); + page = positionService.listPage(page,searchId,positionName); + return ReturnUtil.success(super.packForBT(page)); } @GetMapping("list") - public ReturnDTO list(Long searchId,String positionName){ - positionService.list(searchId,positionName); - return ReturnUtil.success(); + public ReturnDTO> list(Long searchId,String positionName){ + List list = positionService.list(searchId,positionName); + return ReturnUtil.success(list); } diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index 6f0359b..88cce74 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -72,9 +72,9 @@ addresses: http://111.198.10.15:21605/xxl-job-admin executor: # 此执行器的名称 - appname: casic-metering-job + appname: casic-metering-xc-eqpt-job # 此执行器的ip、端口,每个节点对应自己的ip,端口用于任务执行的通信 - ip: 127.0.0.1 + ip: 192.168.20.33 port: 9999 # 此执行器的日志存放路径 logpath: logs/xxl-job/casic-metering-job @@ -122,7 +122,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_remind_relation + table-name: eqpt_equipment_modify_log prefix: eqpt_ 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml index a9033f9..c49776d 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml @@ -4,71 +4,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - id, approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + id + , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction + + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml index 62449ec..f4d9936 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml @@ -42,6 +42,12 @@ + + + + + + @@ -50,12 +56,20 @@ product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid as certificateValid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time, - is_del,model_id,help_instruction + is_del,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction select - from eqpt_equipment_info + from eqpt_equipment_info_view ${ew.sqlSegment} @@ -110,7 +124,7 @@ eqpt_remind_all as ( select e.id as equipment_id, - IFNULL(m.remind_time,0) as remind_time + IFNULL(m.remind_time,90) as remind_time from eqpt_equipment_info e left join eqpt_remind m on e.id = m.equipment_id ), @@ -118,20 +132,32 @@ select id,task_name,CONCAT(DATE_FORMAT(start_time,'%Y-%m-%d'),"~",DATE_FORMAT(end_time,'%Y-%m-%d')) as time_ext,start_time,end_time from eqpt_equipment_task_info ), + latest_sample_relation AS ( + SELECT * + FROM biz_business_order_sample_relation a + WHERE id = ( + SELECT max( id ) + FROM biz_business_order_sample_relation b + WHERE a.sample_id = b.sample_id ) + ), eqpt_ext as ( select e.* , - DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, - GROUP_CONCAT(t.task_name) as taskNames, - GROUP_CONCAT(t.time_ext) as taskTimes, - GROUP_CONCAT(t.id) as taskIds, - min(t.start_time) as task_start_time, - max(t.end_time) as task_end_time - from eqpt_equipment_info e + DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, + GROUP_CONCAT(t.task_name) as taskNames, + GROUP_CONCAT(t.time_ext) as taskTimes, + GROUP_CONCAT(t.id) as taskIds, + min(t.start_time) as task_start_time, + max(t.end_time) as task_end_time, + (case when lsr.sample_status in + #{item} + then 1 else 0 end) as check_status + from eqpt_equipment_info_view e left join eqpt_remind_all a on e.id = a.equipment_id left join eqpt_equipment_task_relation r on e.id = r.equipment_id left join task_ext t on r.task_id = t.id + left join latest_sample_relation lsr on lsr.sample_id = e.id where e.certificate_valid is not null - group by e.id,e.certificate_valid,a.remind_time + group by e.id,e.certificate_valid,a.remind_time,lsr.sample_status ) select * from eqpt_ext @@ -163,6 +189,9 @@ e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, + e.model as model, + e.company_id as companyId, + e.manufacture_no as manufactureNo, c.certificate_report_no as certificateNo, c.certificate_report_name as certificateName, '西昌卫星发射中心计量测试站' as checkOrganization, @@ -173,7 +202,7 @@ c.update_time as updateTime, '1' as certificateType, c.remark as remark - from biz_business_certificate_report c ,eqpt_equipment_info e + from biz_business_certificate_report c ,eqpt_equipment_info_view e where c.sample_id = e.id diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml index 097c405..2ddebe6 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,6 +13,7 @@ + @@ -21,7 +22,7 @@ - id, model_no, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, create_user_id, create_dept_id, create_time, update_time + id, equipment_type, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, inspectable, create_user_id, create_dept_id, create_time, update_time + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java index c69cc82..d1a2bd1 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.service.equipment.IEquipmentGroupInfoService; import io.swagger.annotations.Api; @@ -60,14 +61,11 @@ return ReturnUtil.success(); } - @ApiImplicitParams({ - @ApiImplicitParam(name = "groupName",value = "分组名称",dataType = "String",paramType = "query") - }) @ApiOperation("分组分页列表") - @GetMapping("listPage") - public ReturnDTO> listPage(String groupName){ + @PostMapping("listPage") + public ReturnDTO> listPage(@RequestBody EquipmentGroupQueryForm queryForm){ Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,groupName))); + return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,queryForm))); } @ApiImplicitParams({ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 56b6814..3130c5c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.business.LabelBindDTO; import com.casic.missiles.dto.equipment.*; import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; import com.casic.missiles.service.equipment.IEquipmentInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -36,6 +37,14 @@ public class EquipmentInfoController extends ExportController { private final IEquipmentInfoService equipmentInfoService; + private final IEquipmentInfoApprovalService approvalService; + + @ApiOperation("直接编辑设备") + @PostMapping("/info/update") + public ReturnDTO update(@RequestBody EquipmentApprovalForm approvalForm){ + approvalService.updateEquipmentInfo(approvalForm); + return ReturnUtil.success(); + } @ApiOperation("设备分页列表") @PostMapping("/info/listPage") @@ -152,5 +161,14 @@ return ReturnUtil.success(); } + @ApiOperation("到期提醒分页列表") + @PostMapping("/orderSelect/listPage") + @ResponseBody + public ReturnDTO> EquipmentOrderSelectQueryForm(@RequestBody EquipmentRemindQueryForm queryForm) { + Page page = PageFactory.defaultPage(); + page = equipmentInfoService.orderSelectListPage(page, queryForm); + return ReturnUtil.success(super.packForBT(page)); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index 044d245..ccbd668 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -103,14 +103,20 @@ @ApiOperation("设备名称列表") @GetMapping("listEquipmentName") - public ReturnDTO> listEquipmentName(){ - return ReturnUtil.success(modelInfoService.listEquipmentName()); + public ReturnDTO> listEquipmentName(String equipmentType){ + return ReturnUtil.success(modelInfoService.listEquipmentName(equipmentType)); } @ApiOperation("规格型号列表") @GetMapping("listModel") - public ReturnDTO> listModel(String equipmentName){ - return ReturnUtil.success(modelInfoService.listModel(equipmentName)); + public ReturnDTO> listModel(String equipmentType, String equipmentName){ + return ReturnUtil.success(modelInfoService.listModel(equipmentType,equipmentName)); + } + + @ApiOperation("获取默认检定去向") + @GetMapping("defaultCheckDestination") + public ReturnDTO defaultCheckDestination(Long modelId, Long companyId){ + return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java index 7e79008..1fc1f9c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.CertificateUpdate; +import com.casic.missiles.dto.equipment.LimitInstructionUpdate; import com.casic.missiles.model.plan.OrderReceive; import com.casic.missiles.model.plan.SampleStatueUpdate; import com.casic.missiles.service.equipment.IEquipmentInfoService; @@ -55,4 +56,11 @@ return ReturnUtil.success(); } + @ApiOperation("更新限用说明") + @PostMapping("/limitInstructionUpdate") + public ReturnDTO updateLimitInstruction(@RequestBody LimitInstructionUpdate updateForm) { + equipmentInfoService.updateLimitInstruction(updateForm.getEquipmentId(), updateForm.getLimitInstruction()); + return ReturnUtil.success(); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java index e314003..73d02ec 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java @@ -1,7 +1,18 @@ package com.casic.missiles.controller.system; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.system.SystemLocation; +import com.casic.missiles.service.system.ISystemLocationService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** *

@@ -11,8 +22,45 @@ * @author zhangyingjie * @since 2023-11-15 */ +@Api(tags = "安装位置管理") @RestController -@RequestMapping("/system-location") -public class SystemLocationController { +@RequestMapping("/system/location") +@RequiredArgsConstructor +public class SystemLocationController extends BaseController { + + private final ISystemLocationService locationService; + + @PostMapping("add") + public ReturnDTO add(@RequestBody SystemLocation systemLocation){ + locationService.add(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("update") + public ReturnDTO update(@RequestBody SystemLocation systemLocation){ + locationService.update(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("delete") + public ReturnDTO delete(@RequestBody SystemLocation systemLocation){ + locationService.delete(systemLocation); + return ReturnUtil.success(); + } + + @GetMapping("listPage") + public ReturnDTO> listPage(Long searchId,Long positionId, String installLocation){ + Page page = PageFactory.defaultPage(); + page = locationService.listPage(page,searchId,positionId, installLocation); + return ReturnUtil.success(super.packForBT(page)); + } + + @GetMapping("list") + public ReturnDTO> list(Long searchId,Long positionId, String installLocation){ + List list = locationService.list(searchId,positionId, installLocation); + return ReturnUtil.success(list); + } + + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java index f9e2f91..d64634a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java @@ -1,6 +1,8 @@ package com.casic.missiles.controller.system; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; @@ -10,6 +12,8 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** *

* 受检系统-系统管理-岗位管理 前端控制器 @@ -22,7 +26,7 @@ @RestController @RequestMapping("/system/position") @RequiredArgsConstructor -public class SystemPositionController { +public class SystemPositionController extends BaseController { private final ISystemPositionService positionService; @@ -45,16 +49,16 @@ } @GetMapping("listPage") - public ReturnDTO listPage(Long searchId,String positionName){ + public ReturnDTO> listPage(Long searchId, String positionName){ Page page = PageFactory.defaultPage(); - positionService.listPage(page,searchId,positionName); - return ReturnUtil.success(); + page = positionService.listPage(page,searchId,positionName); + return ReturnUtil.success(super.packForBT(page)); } @GetMapping("list") - public ReturnDTO list(Long searchId,String positionName){ - positionService.list(searchId,positionName); - return ReturnUtil.success(); + public ReturnDTO> list(Long searchId,String positionName){ + List list = positionService.list(searchId,positionName); + return ReturnUtil.success(list); } diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index 6f0359b..88cce74 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -72,9 +72,9 @@ addresses: http://111.198.10.15:21605/xxl-job-admin executor: # 此执行器的名称 - appname: casic-metering-job + appname: casic-metering-xc-eqpt-job # 此执行器的ip、端口,每个节点对应自己的ip,端口用于任务执行的通信 - ip: 127.0.0.1 + ip: 192.168.20.33 port: 9999 # 此执行器的日志存放路径 logpath: logs/xxl-job/casic-metering-job @@ -122,7 +122,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_remind_relation + table-name: eqpt_equipment_modify_log prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index 7b3c7a2..29a820a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -18,11 +18,15 @@ */ // 系统前缀 String DICT_PREFIX = "eqpt"; + + String EQUIPMENT_TYPE = DICT_PREFIX + "DeviceCategory"; //受检设备使用状态 String EQUIPMENT_USAGE_STATUS = DICT_PREFIX + "DeviceUseStatus"; //受检设备重要等级 String EQUIPMENT_LEVEL = DICT_PREFIX + "DeviceLevel"; + String EQUIPMENT_QUALITY = DICT_PREFIX + "DeviceQuality"; + String EQUIPMENT_CATEGORY = DICT_PREFIX + "DeviceType"; // 设备申请类型 String EQUIPMENT_APPROVAL_TYPE = DICT_PREFIX + "EquipmentApprovalType"; @@ -30,6 +34,8 @@ String EQUIPMENT_STATUS_APPROVAL_TYPE = DICT_PREFIX + "EquipmentStatusApprovalType"; // 设备计量标识 String EQUIPMENT_METER_IDENTITY = DICT_PREFIX + "MeterIdentify"; + + String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; // 计量计划计划分类 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml index a9033f9..c49776d 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml @@ -4,71 +4,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - id, approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + id + , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction + + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml index 62449ec..f4d9936 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml @@ -42,6 +42,12 @@ + + + + + + @@ -50,12 +56,20 @@ product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid as certificateValid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time, - is_del,model_id,help_instruction + is_del,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction select - from eqpt_equipment_info + from eqpt_equipment_info_view ${ew.sqlSegment} @@ -110,7 +124,7 @@ eqpt_remind_all as ( select e.id as equipment_id, - IFNULL(m.remind_time,0) as remind_time + IFNULL(m.remind_time,90) as remind_time from eqpt_equipment_info e left join eqpt_remind m on e.id = m.equipment_id ), @@ -118,20 +132,32 @@ select id,task_name,CONCAT(DATE_FORMAT(start_time,'%Y-%m-%d'),"~",DATE_FORMAT(end_time,'%Y-%m-%d')) as time_ext,start_time,end_time from eqpt_equipment_task_info ), + latest_sample_relation AS ( + SELECT * + FROM biz_business_order_sample_relation a + WHERE id = ( + SELECT max( id ) + FROM biz_business_order_sample_relation b + WHERE a.sample_id = b.sample_id ) + ), eqpt_ext as ( select e.* , - DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, - GROUP_CONCAT(t.task_name) as taskNames, - GROUP_CONCAT(t.time_ext) as taskTimes, - GROUP_CONCAT(t.id) as taskIds, - min(t.start_time) as task_start_time, - max(t.end_time) as task_end_time - from eqpt_equipment_info e + DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, + GROUP_CONCAT(t.task_name) as taskNames, + GROUP_CONCAT(t.time_ext) as taskTimes, + GROUP_CONCAT(t.id) as taskIds, + min(t.start_time) as task_start_time, + max(t.end_time) as task_end_time, + (case when lsr.sample_status in + #{item} + then 1 else 0 end) as check_status + from eqpt_equipment_info_view e left join eqpt_remind_all a on e.id = a.equipment_id left join eqpt_equipment_task_relation r on e.id = r.equipment_id left join task_ext t on r.task_id = t.id + left join latest_sample_relation lsr on lsr.sample_id = e.id where e.certificate_valid is not null - group by e.id,e.certificate_valid,a.remind_time + group by e.id,e.certificate_valid,a.remind_time,lsr.sample_status ) select * from eqpt_ext @@ -163,6 +189,9 @@ e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, + e.model as model, + e.company_id as companyId, + e.manufacture_no as manufactureNo, c.certificate_report_no as certificateNo, c.certificate_report_name as certificateName, '西昌卫星发射中心计量测试站' as checkOrganization, @@ -173,7 +202,7 @@ c.update_time as updateTime, '1' as certificateType, c.remark as remark - from biz_business_certificate_report c ,eqpt_equipment_info e + from biz_business_certificate_report c ,eqpt_equipment_info_view e where c.sample_id = e.id diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml index 097c405..2ddebe6 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,6 +13,7 @@ + @@ -21,7 +22,7 @@ - id, model_no, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, create_user_id, create_dept_id, create_time, update_time + id, equipment_type, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, inspectable, create_user_id, create_dept_id, create_time, update_time + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java index c69cc82..d1a2bd1 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.service.equipment.IEquipmentGroupInfoService; import io.swagger.annotations.Api; @@ -60,14 +61,11 @@ return ReturnUtil.success(); } - @ApiImplicitParams({ - @ApiImplicitParam(name = "groupName",value = "分组名称",dataType = "String",paramType = "query") - }) @ApiOperation("分组分页列表") - @GetMapping("listPage") - public ReturnDTO> listPage(String groupName){ + @PostMapping("listPage") + public ReturnDTO> listPage(@RequestBody EquipmentGroupQueryForm queryForm){ Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,groupName))); + return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,queryForm))); } @ApiImplicitParams({ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 56b6814..3130c5c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.business.LabelBindDTO; import com.casic.missiles.dto.equipment.*; import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; import com.casic.missiles.service.equipment.IEquipmentInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -36,6 +37,14 @@ public class EquipmentInfoController extends ExportController { private final IEquipmentInfoService equipmentInfoService; + private final IEquipmentInfoApprovalService approvalService; + + @ApiOperation("直接编辑设备") + @PostMapping("/info/update") + public ReturnDTO update(@RequestBody EquipmentApprovalForm approvalForm){ + approvalService.updateEquipmentInfo(approvalForm); + return ReturnUtil.success(); + } @ApiOperation("设备分页列表") @PostMapping("/info/listPage") @@ -152,5 +161,14 @@ return ReturnUtil.success(); } + @ApiOperation("到期提醒分页列表") + @PostMapping("/orderSelect/listPage") + @ResponseBody + public ReturnDTO> EquipmentOrderSelectQueryForm(@RequestBody EquipmentRemindQueryForm queryForm) { + Page page = PageFactory.defaultPage(); + page = equipmentInfoService.orderSelectListPage(page, queryForm); + return ReturnUtil.success(super.packForBT(page)); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index 044d245..ccbd668 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -103,14 +103,20 @@ @ApiOperation("设备名称列表") @GetMapping("listEquipmentName") - public ReturnDTO> listEquipmentName(){ - return ReturnUtil.success(modelInfoService.listEquipmentName()); + public ReturnDTO> listEquipmentName(String equipmentType){ + return ReturnUtil.success(modelInfoService.listEquipmentName(equipmentType)); } @ApiOperation("规格型号列表") @GetMapping("listModel") - public ReturnDTO> listModel(String equipmentName){ - return ReturnUtil.success(modelInfoService.listModel(equipmentName)); + public ReturnDTO> listModel(String equipmentType, String equipmentName){ + return ReturnUtil.success(modelInfoService.listModel(equipmentType,equipmentName)); + } + + @ApiOperation("获取默认检定去向") + @GetMapping("defaultCheckDestination") + public ReturnDTO defaultCheckDestination(Long modelId, Long companyId){ + return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java index 7e79008..1fc1f9c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.CertificateUpdate; +import com.casic.missiles.dto.equipment.LimitInstructionUpdate; import com.casic.missiles.model.plan.OrderReceive; import com.casic.missiles.model.plan.SampleStatueUpdate; import com.casic.missiles.service.equipment.IEquipmentInfoService; @@ -55,4 +56,11 @@ return ReturnUtil.success(); } + @ApiOperation("更新限用说明") + @PostMapping("/limitInstructionUpdate") + public ReturnDTO updateLimitInstruction(@RequestBody LimitInstructionUpdate updateForm) { + equipmentInfoService.updateLimitInstruction(updateForm.getEquipmentId(), updateForm.getLimitInstruction()); + return ReturnUtil.success(); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java index e314003..73d02ec 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java @@ -1,7 +1,18 @@ package com.casic.missiles.controller.system; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.system.SystemLocation; +import com.casic.missiles.service.system.ISystemLocationService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** *

@@ -11,8 +22,45 @@ * @author zhangyingjie * @since 2023-11-15 */ +@Api(tags = "安装位置管理") @RestController -@RequestMapping("/system-location") -public class SystemLocationController { +@RequestMapping("/system/location") +@RequiredArgsConstructor +public class SystemLocationController extends BaseController { + + private final ISystemLocationService locationService; + + @PostMapping("add") + public ReturnDTO add(@RequestBody SystemLocation systemLocation){ + locationService.add(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("update") + public ReturnDTO update(@RequestBody SystemLocation systemLocation){ + locationService.update(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("delete") + public ReturnDTO delete(@RequestBody SystemLocation systemLocation){ + locationService.delete(systemLocation); + return ReturnUtil.success(); + } + + @GetMapping("listPage") + public ReturnDTO> listPage(Long searchId,Long positionId, String installLocation){ + Page page = PageFactory.defaultPage(); + page = locationService.listPage(page,searchId,positionId, installLocation); + return ReturnUtil.success(super.packForBT(page)); + } + + @GetMapping("list") + public ReturnDTO> list(Long searchId,Long positionId, String installLocation){ + List list = locationService.list(searchId,positionId, installLocation); + return ReturnUtil.success(list); + } + + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java index f9e2f91..d64634a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java @@ -1,6 +1,8 @@ package com.casic.missiles.controller.system; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; @@ -10,6 +12,8 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** *

* 受检系统-系统管理-岗位管理 前端控制器 @@ -22,7 +26,7 @@ @RestController @RequestMapping("/system/position") @RequiredArgsConstructor -public class SystemPositionController { +public class SystemPositionController extends BaseController { private final ISystemPositionService positionService; @@ -45,16 +49,16 @@ } @GetMapping("listPage") - public ReturnDTO listPage(Long searchId,String positionName){ + public ReturnDTO> listPage(Long searchId, String positionName){ Page page = PageFactory.defaultPage(); - positionService.listPage(page,searchId,positionName); - return ReturnUtil.success(); + page = positionService.listPage(page,searchId,positionName); + return ReturnUtil.success(super.packForBT(page)); } @GetMapping("list") - public ReturnDTO list(Long searchId,String positionName){ - positionService.list(searchId,positionName); - return ReturnUtil.success(); + public ReturnDTO> list(Long searchId,String positionName){ + List list = positionService.list(searchId,positionName); + return ReturnUtil.success(list); } diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index 6f0359b..88cce74 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -72,9 +72,9 @@ addresses: http://111.198.10.15:21605/xxl-job-admin executor: # 此执行器的名称 - appname: casic-metering-job + appname: casic-metering-xc-eqpt-job # 此执行器的ip、端口,每个节点对应自己的ip,端口用于任务执行的通信 - ip: 127.0.0.1 + ip: 192.168.20.33 port: 9999 # 此执行器的日志存放路径 logpath: logs/xxl-job/casic-metering-job @@ -122,7 +122,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_remind_relation + table-name: eqpt_equipment_modify_log prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index 7b3c7a2..29a820a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -18,11 +18,15 @@ */ // 系统前缀 String DICT_PREFIX = "eqpt"; + + String EQUIPMENT_TYPE = DICT_PREFIX + "DeviceCategory"; //受检设备使用状态 String EQUIPMENT_USAGE_STATUS = DICT_PREFIX + "DeviceUseStatus"; //受检设备重要等级 String EQUIPMENT_LEVEL = DICT_PREFIX + "DeviceLevel"; + String EQUIPMENT_QUALITY = DICT_PREFIX + "DeviceQuality"; + String EQUIPMENT_CATEGORY = DICT_PREFIX + "DeviceType"; // 设备申请类型 String EQUIPMENT_APPROVAL_TYPE = DICT_PREFIX + "EquipmentApprovalType"; @@ -30,6 +34,8 @@ String EQUIPMENT_STATUS_APPROVAL_TYPE = DICT_PREFIX + "EquipmentStatusApprovalType"; // 设备计量标识 String EQUIPMENT_METER_IDENTITY = DICT_PREFIX + "MeterIdentify"; + + String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; // 计量计划计划分类 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java index 694e48b..aefff4a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.equipment; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.model.equipment.EquipmentAttachment; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentTechnicalTarget; @@ -13,6 +14,8 @@ @Data public class EquipmentApprovalForm extends EquipmentInfoApproval { + @ApiModelProperty("规格型号说明书") + private String instructionsFile; @ApiModelProperty("技术指标列表") private List technicalTargetList; 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml index a9033f9..c49776d 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml @@ -4,71 +4,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - id, approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + id + , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction + + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml index 62449ec..f4d9936 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml @@ -42,6 +42,12 @@ + + + + + + @@ -50,12 +56,20 @@ product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid as certificateValid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time, - is_del,model_id,help_instruction + is_del,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction select - from eqpt_equipment_info + from eqpt_equipment_info_view ${ew.sqlSegment} @@ -110,7 +124,7 @@ eqpt_remind_all as ( select e.id as equipment_id, - IFNULL(m.remind_time,0) as remind_time + IFNULL(m.remind_time,90) as remind_time from eqpt_equipment_info e left join eqpt_remind m on e.id = m.equipment_id ), @@ -118,20 +132,32 @@ select id,task_name,CONCAT(DATE_FORMAT(start_time,'%Y-%m-%d'),"~",DATE_FORMAT(end_time,'%Y-%m-%d')) as time_ext,start_time,end_time from eqpt_equipment_task_info ), + latest_sample_relation AS ( + SELECT * + FROM biz_business_order_sample_relation a + WHERE id = ( + SELECT max( id ) + FROM biz_business_order_sample_relation b + WHERE a.sample_id = b.sample_id ) + ), eqpt_ext as ( select e.* , - DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, - GROUP_CONCAT(t.task_name) as taskNames, - GROUP_CONCAT(t.time_ext) as taskTimes, - GROUP_CONCAT(t.id) as taskIds, - min(t.start_time) as task_start_time, - max(t.end_time) as task_end_time - from eqpt_equipment_info e + DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, + GROUP_CONCAT(t.task_name) as taskNames, + GROUP_CONCAT(t.time_ext) as taskTimes, + GROUP_CONCAT(t.id) as taskIds, + min(t.start_time) as task_start_time, + max(t.end_time) as task_end_time, + (case when lsr.sample_status in + #{item} + then 1 else 0 end) as check_status + from eqpt_equipment_info_view e left join eqpt_remind_all a on e.id = a.equipment_id left join eqpt_equipment_task_relation r on e.id = r.equipment_id left join task_ext t on r.task_id = t.id + left join latest_sample_relation lsr on lsr.sample_id = e.id where e.certificate_valid is not null - group by e.id,e.certificate_valid,a.remind_time + group by e.id,e.certificate_valid,a.remind_time,lsr.sample_status ) select * from eqpt_ext @@ -163,6 +189,9 @@ e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, + e.model as model, + e.company_id as companyId, + e.manufacture_no as manufactureNo, c.certificate_report_no as certificateNo, c.certificate_report_name as certificateName, '西昌卫星发射中心计量测试站' as checkOrganization, @@ -173,7 +202,7 @@ c.update_time as updateTime, '1' as certificateType, c.remark as remark - from biz_business_certificate_report c ,eqpt_equipment_info e + from biz_business_certificate_report c ,eqpt_equipment_info_view e where c.sample_id = e.id diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml index 097c405..2ddebe6 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,6 +13,7 @@ + @@ -21,7 +22,7 @@ - id, model_no, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, create_user_id, create_dept_id, create_time, update_time + id, equipment_type, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, inspectable, create_user_id, create_dept_id, create_time, update_time + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java index c69cc82..d1a2bd1 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.service.equipment.IEquipmentGroupInfoService; import io.swagger.annotations.Api; @@ -60,14 +61,11 @@ return ReturnUtil.success(); } - @ApiImplicitParams({ - @ApiImplicitParam(name = "groupName",value = "分组名称",dataType = "String",paramType = "query") - }) @ApiOperation("分组分页列表") - @GetMapping("listPage") - public ReturnDTO> listPage(String groupName){ + @PostMapping("listPage") + public ReturnDTO> listPage(@RequestBody EquipmentGroupQueryForm queryForm){ Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,groupName))); + return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,queryForm))); } @ApiImplicitParams({ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 56b6814..3130c5c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.business.LabelBindDTO; import com.casic.missiles.dto.equipment.*; import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; import com.casic.missiles.service.equipment.IEquipmentInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -36,6 +37,14 @@ public class EquipmentInfoController extends ExportController { private final IEquipmentInfoService equipmentInfoService; + private final IEquipmentInfoApprovalService approvalService; + + @ApiOperation("直接编辑设备") + @PostMapping("/info/update") + public ReturnDTO update(@RequestBody EquipmentApprovalForm approvalForm){ + approvalService.updateEquipmentInfo(approvalForm); + return ReturnUtil.success(); + } @ApiOperation("设备分页列表") @PostMapping("/info/listPage") @@ -152,5 +161,14 @@ return ReturnUtil.success(); } + @ApiOperation("到期提醒分页列表") + @PostMapping("/orderSelect/listPage") + @ResponseBody + public ReturnDTO> EquipmentOrderSelectQueryForm(@RequestBody EquipmentRemindQueryForm queryForm) { + Page page = PageFactory.defaultPage(); + page = equipmentInfoService.orderSelectListPage(page, queryForm); + return ReturnUtil.success(super.packForBT(page)); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index 044d245..ccbd668 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -103,14 +103,20 @@ @ApiOperation("设备名称列表") @GetMapping("listEquipmentName") - public ReturnDTO> listEquipmentName(){ - return ReturnUtil.success(modelInfoService.listEquipmentName()); + public ReturnDTO> listEquipmentName(String equipmentType){ + return ReturnUtil.success(modelInfoService.listEquipmentName(equipmentType)); } @ApiOperation("规格型号列表") @GetMapping("listModel") - public ReturnDTO> listModel(String equipmentName){ - return ReturnUtil.success(modelInfoService.listModel(equipmentName)); + public ReturnDTO> listModel(String equipmentType, String equipmentName){ + return ReturnUtil.success(modelInfoService.listModel(equipmentType,equipmentName)); + } + + @ApiOperation("获取默认检定去向") + @GetMapping("defaultCheckDestination") + public ReturnDTO defaultCheckDestination(Long modelId, Long companyId){ + return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java index 7e79008..1fc1f9c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.CertificateUpdate; +import com.casic.missiles.dto.equipment.LimitInstructionUpdate; import com.casic.missiles.model.plan.OrderReceive; import com.casic.missiles.model.plan.SampleStatueUpdate; import com.casic.missiles.service.equipment.IEquipmentInfoService; @@ -55,4 +56,11 @@ return ReturnUtil.success(); } + @ApiOperation("更新限用说明") + @PostMapping("/limitInstructionUpdate") + public ReturnDTO updateLimitInstruction(@RequestBody LimitInstructionUpdate updateForm) { + equipmentInfoService.updateLimitInstruction(updateForm.getEquipmentId(), updateForm.getLimitInstruction()); + return ReturnUtil.success(); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java index e314003..73d02ec 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java @@ -1,7 +1,18 @@ package com.casic.missiles.controller.system; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.system.SystemLocation; +import com.casic.missiles.service.system.ISystemLocationService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** *

@@ -11,8 +22,45 @@ * @author zhangyingjie * @since 2023-11-15 */ +@Api(tags = "安装位置管理") @RestController -@RequestMapping("/system-location") -public class SystemLocationController { +@RequestMapping("/system/location") +@RequiredArgsConstructor +public class SystemLocationController extends BaseController { + + private final ISystemLocationService locationService; + + @PostMapping("add") + public ReturnDTO add(@RequestBody SystemLocation systemLocation){ + locationService.add(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("update") + public ReturnDTO update(@RequestBody SystemLocation systemLocation){ + locationService.update(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("delete") + public ReturnDTO delete(@RequestBody SystemLocation systemLocation){ + locationService.delete(systemLocation); + return ReturnUtil.success(); + } + + @GetMapping("listPage") + public ReturnDTO> listPage(Long searchId,Long positionId, String installLocation){ + Page page = PageFactory.defaultPage(); + page = locationService.listPage(page,searchId,positionId, installLocation); + return ReturnUtil.success(super.packForBT(page)); + } + + @GetMapping("list") + public ReturnDTO> list(Long searchId,Long positionId, String installLocation){ + List list = locationService.list(searchId,positionId, installLocation); + return ReturnUtil.success(list); + } + + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java index f9e2f91..d64634a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java @@ -1,6 +1,8 @@ package com.casic.missiles.controller.system; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; @@ -10,6 +12,8 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** *

* 受检系统-系统管理-岗位管理 前端控制器 @@ -22,7 +26,7 @@ @RestController @RequestMapping("/system/position") @RequiredArgsConstructor -public class SystemPositionController { +public class SystemPositionController extends BaseController { private final ISystemPositionService positionService; @@ -45,16 +49,16 @@ } @GetMapping("listPage") - public ReturnDTO listPage(Long searchId,String positionName){ + public ReturnDTO> listPage(Long searchId, String positionName){ Page page = PageFactory.defaultPage(); - positionService.listPage(page,searchId,positionName); - return ReturnUtil.success(); + page = positionService.listPage(page,searchId,positionName); + return ReturnUtil.success(super.packForBT(page)); } @GetMapping("list") - public ReturnDTO list(Long searchId,String positionName){ - positionService.list(searchId,positionName); - return ReturnUtil.success(); + public ReturnDTO> list(Long searchId,String positionName){ + List list = positionService.list(searchId,positionName); + return ReturnUtil.success(list); } diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index 6f0359b..88cce74 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -72,9 +72,9 @@ addresses: http://111.198.10.15:21605/xxl-job-admin executor: # 此执行器的名称 - appname: casic-metering-job + appname: casic-metering-xc-eqpt-job # 此执行器的ip、端口,每个节点对应自己的ip,端口用于任务执行的通信 - ip: 127.0.0.1 + ip: 192.168.20.33 port: 9999 # 此执行器的日志存放路径 logpath: logs/xxl-job/casic-metering-job @@ -122,7 +122,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_remind_relation + table-name: eqpt_equipment_modify_log prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index 7b3c7a2..29a820a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -18,11 +18,15 @@ */ // 系统前缀 String DICT_PREFIX = "eqpt"; + + String EQUIPMENT_TYPE = DICT_PREFIX + "DeviceCategory"; //受检设备使用状态 String EQUIPMENT_USAGE_STATUS = DICT_PREFIX + "DeviceUseStatus"; //受检设备重要等级 String EQUIPMENT_LEVEL = DICT_PREFIX + "DeviceLevel"; + String EQUIPMENT_QUALITY = DICT_PREFIX + "DeviceQuality"; + String EQUIPMENT_CATEGORY = DICT_PREFIX + "DeviceType"; // 设备申请类型 String EQUIPMENT_APPROVAL_TYPE = DICT_PREFIX + "EquipmentApprovalType"; @@ -30,6 +34,8 @@ String EQUIPMENT_STATUS_APPROVAL_TYPE = DICT_PREFIX + "EquipmentStatusApprovalType"; // 设备计量标识 String EQUIPMENT_METER_IDENTITY = DICT_PREFIX + "MeterIdentify"; + + String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; // 计量计划计划分类 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java index 694e48b..aefff4a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.equipment; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.model.equipment.EquipmentAttachment; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentTechnicalTarget; @@ -13,6 +14,8 @@ @Data public class EquipmentApprovalForm extends EquipmentInfoApproval { + @ApiModelProperty("规格型号说明书") + private String instructionsFile; @ApiModelProperty("技术指标列表") private List technicalTargetList; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java index f6448c6..c814444 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java @@ -12,6 +12,9 @@ @Setter public class EquipmentInfoForm extends EquipmentInfo{ + @ApiModelProperty("规格型号说明书") + private String instructionsFile; + @ApiModelProperty("组别信息") @TableField(exist = false) private List groupInfos; 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml index a9033f9..c49776d 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml @@ -4,71 +4,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - id, approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + id + , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction + + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml index 62449ec..f4d9936 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml @@ -42,6 +42,12 @@ + + + + + + @@ -50,12 +56,20 @@ product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid as certificateValid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time, - is_del,model_id,help_instruction + is_del,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction select - from eqpt_equipment_info + from eqpt_equipment_info_view ${ew.sqlSegment} @@ -110,7 +124,7 @@ eqpt_remind_all as ( select e.id as equipment_id, - IFNULL(m.remind_time,0) as remind_time + IFNULL(m.remind_time,90) as remind_time from eqpt_equipment_info e left join eqpt_remind m on e.id = m.equipment_id ), @@ -118,20 +132,32 @@ select id,task_name,CONCAT(DATE_FORMAT(start_time,'%Y-%m-%d'),"~",DATE_FORMAT(end_time,'%Y-%m-%d')) as time_ext,start_time,end_time from eqpt_equipment_task_info ), + latest_sample_relation AS ( + SELECT * + FROM biz_business_order_sample_relation a + WHERE id = ( + SELECT max( id ) + FROM biz_business_order_sample_relation b + WHERE a.sample_id = b.sample_id ) + ), eqpt_ext as ( select e.* , - DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, - GROUP_CONCAT(t.task_name) as taskNames, - GROUP_CONCAT(t.time_ext) as taskTimes, - GROUP_CONCAT(t.id) as taskIds, - min(t.start_time) as task_start_time, - max(t.end_time) as task_end_time - from eqpt_equipment_info e + DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, + GROUP_CONCAT(t.task_name) as taskNames, + GROUP_CONCAT(t.time_ext) as taskTimes, + GROUP_CONCAT(t.id) as taskIds, + min(t.start_time) as task_start_time, + max(t.end_time) as task_end_time, + (case when lsr.sample_status in + #{item} + then 1 else 0 end) as check_status + from eqpt_equipment_info_view e left join eqpt_remind_all a on e.id = a.equipment_id left join eqpt_equipment_task_relation r on e.id = r.equipment_id left join task_ext t on r.task_id = t.id + left join latest_sample_relation lsr on lsr.sample_id = e.id where e.certificate_valid is not null - group by e.id,e.certificate_valid,a.remind_time + group by e.id,e.certificate_valid,a.remind_time,lsr.sample_status ) select * from eqpt_ext @@ -163,6 +189,9 @@ e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, + e.model as model, + e.company_id as companyId, + e.manufacture_no as manufactureNo, c.certificate_report_no as certificateNo, c.certificate_report_name as certificateName, '西昌卫星发射中心计量测试站' as checkOrganization, @@ -173,7 +202,7 @@ c.update_time as updateTime, '1' as certificateType, c.remark as remark - from biz_business_certificate_report c ,eqpt_equipment_info e + from biz_business_certificate_report c ,eqpt_equipment_info_view e where c.sample_id = e.id diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml index 097c405..2ddebe6 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,6 +13,7 @@ + @@ -21,7 +22,7 @@ - id, model_no, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, create_user_id, create_dept_id, create_time, update_time + id, equipment_type, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, inspectable, create_user_id, create_dept_id, create_time, update_time + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java index c69cc82..d1a2bd1 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.service.equipment.IEquipmentGroupInfoService; import io.swagger.annotations.Api; @@ -60,14 +61,11 @@ return ReturnUtil.success(); } - @ApiImplicitParams({ - @ApiImplicitParam(name = "groupName",value = "分组名称",dataType = "String",paramType = "query") - }) @ApiOperation("分组分页列表") - @GetMapping("listPage") - public ReturnDTO> listPage(String groupName){ + @PostMapping("listPage") + public ReturnDTO> listPage(@RequestBody EquipmentGroupQueryForm queryForm){ Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,groupName))); + return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,queryForm))); } @ApiImplicitParams({ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 56b6814..3130c5c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.business.LabelBindDTO; import com.casic.missiles.dto.equipment.*; import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; import com.casic.missiles.service.equipment.IEquipmentInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -36,6 +37,14 @@ public class EquipmentInfoController extends ExportController { private final IEquipmentInfoService equipmentInfoService; + private final IEquipmentInfoApprovalService approvalService; + + @ApiOperation("直接编辑设备") + @PostMapping("/info/update") + public ReturnDTO update(@RequestBody EquipmentApprovalForm approvalForm){ + approvalService.updateEquipmentInfo(approvalForm); + return ReturnUtil.success(); + } @ApiOperation("设备分页列表") @PostMapping("/info/listPage") @@ -152,5 +161,14 @@ return ReturnUtil.success(); } + @ApiOperation("到期提醒分页列表") + @PostMapping("/orderSelect/listPage") + @ResponseBody + public ReturnDTO> EquipmentOrderSelectQueryForm(@RequestBody EquipmentRemindQueryForm queryForm) { + Page page = PageFactory.defaultPage(); + page = equipmentInfoService.orderSelectListPage(page, queryForm); + return ReturnUtil.success(super.packForBT(page)); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index 044d245..ccbd668 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -103,14 +103,20 @@ @ApiOperation("设备名称列表") @GetMapping("listEquipmentName") - public ReturnDTO> listEquipmentName(){ - return ReturnUtil.success(modelInfoService.listEquipmentName()); + public ReturnDTO> listEquipmentName(String equipmentType){ + return ReturnUtil.success(modelInfoService.listEquipmentName(equipmentType)); } @ApiOperation("规格型号列表") @GetMapping("listModel") - public ReturnDTO> listModel(String equipmentName){ - return ReturnUtil.success(modelInfoService.listModel(equipmentName)); + public ReturnDTO> listModel(String equipmentType, String equipmentName){ + return ReturnUtil.success(modelInfoService.listModel(equipmentType,equipmentName)); + } + + @ApiOperation("获取默认检定去向") + @GetMapping("defaultCheckDestination") + public ReturnDTO defaultCheckDestination(Long modelId, Long companyId){ + return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java index 7e79008..1fc1f9c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.CertificateUpdate; +import com.casic.missiles.dto.equipment.LimitInstructionUpdate; import com.casic.missiles.model.plan.OrderReceive; import com.casic.missiles.model.plan.SampleStatueUpdate; import com.casic.missiles.service.equipment.IEquipmentInfoService; @@ -55,4 +56,11 @@ return ReturnUtil.success(); } + @ApiOperation("更新限用说明") + @PostMapping("/limitInstructionUpdate") + public ReturnDTO updateLimitInstruction(@RequestBody LimitInstructionUpdate updateForm) { + equipmentInfoService.updateLimitInstruction(updateForm.getEquipmentId(), updateForm.getLimitInstruction()); + return ReturnUtil.success(); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java index e314003..73d02ec 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java @@ -1,7 +1,18 @@ package com.casic.missiles.controller.system; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.system.SystemLocation; +import com.casic.missiles.service.system.ISystemLocationService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** *

@@ -11,8 +22,45 @@ * @author zhangyingjie * @since 2023-11-15 */ +@Api(tags = "安装位置管理") @RestController -@RequestMapping("/system-location") -public class SystemLocationController { +@RequestMapping("/system/location") +@RequiredArgsConstructor +public class SystemLocationController extends BaseController { + + private final ISystemLocationService locationService; + + @PostMapping("add") + public ReturnDTO add(@RequestBody SystemLocation systemLocation){ + locationService.add(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("update") + public ReturnDTO update(@RequestBody SystemLocation systemLocation){ + locationService.update(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("delete") + public ReturnDTO delete(@RequestBody SystemLocation systemLocation){ + locationService.delete(systemLocation); + return ReturnUtil.success(); + } + + @GetMapping("listPage") + public ReturnDTO> listPage(Long searchId,Long positionId, String installLocation){ + Page page = PageFactory.defaultPage(); + page = locationService.listPage(page,searchId,positionId, installLocation); + return ReturnUtil.success(super.packForBT(page)); + } + + @GetMapping("list") + public ReturnDTO> list(Long searchId,Long positionId, String installLocation){ + List list = locationService.list(searchId,positionId, installLocation); + return ReturnUtil.success(list); + } + + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java index f9e2f91..d64634a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java @@ -1,6 +1,8 @@ package com.casic.missiles.controller.system; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; @@ -10,6 +12,8 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** *

* 受检系统-系统管理-岗位管理 前端控制器 @@ -22,7 +26,7 @@ @RestController @RequestMapping("/system/position") @RequiredArgsConstructor -public class SystemPositionController { +public class SystemPositionController extends BaseController { private final ISystemPositionService positionService; @@ -45,16 +49,16 @@ } @GetMapping("listPage") - public ReturnDTO listPage(Long searchId,String positionName){ + public ReturnDTO> listPage(Long searchId, String positionName){ Page page = PageFactory.defaultPage(); - positionService.listPage(page,searchId,positionName); - return ReturnUtil.success(); + page = positionService.listPage(page,searchId,positionName); + return ReturnUtil.success(super.packForBT(page)); } @GetMapping("list") - public ReturnDTO list(Long searchId,String positionName){ - positionService.list(searchId,positionName); - return ReturnUtil.success(); + public ReturnDTO> list(Long searchId,String positionName){ + List list = positionService.list(searchId,positionName); + return ReturnUtil.success(list); } diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index 6f0359b..88cce74 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -72,9 +72,9 @@ addresses: http://111.198.10.15:21605/xxl-job-admin executor: # 此执行器的名称 - appname: casic-metering-job + appname: casic-metering-xc-eqpt-job # 此执行器的ip、端口,每个节点对应自己的ip,端口用于任务执行的通信 - ip: 127.0.0.1 + ip: 192.168.20.33 port: 9999 # 此执行器的日志存放路径 logpath: logs/xxl-job/casic-metering-job @@ -122,7 +122,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_remind_relation + table-name: eqpt_equipment_modify_log prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index 7b3c7a2..29a820a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -18,11 +18,15 @@ */ // 系统前缀 String DICT_PREFIX = "eqpt"; + + String EQUIPMENT_TYPE = DICT_PREFIX + "DeviceCategory"; //受检设备使用状态 String EQUIPMENT_USAGE_STATUS = DICT_PREFIX + "DeviceUseStatus"; //受检设备重要等级 String EQUIPMENT_LEVEL = DICT_PREFIX + "DeviceLevel"; + String EQUIPMENT_QUALITY = DICT_PREFIX + "DeviceQuality"; + String EQUIPMENT_CATEGORY = DICT_PREFIX + "DeviceType"; // 设备申请类型 String EQUIPMENT_APPROVAL_TYPE = DICT_PREFIX + "EquipmentApprovalType"; @@ -30,6 +34,8 @@ String EQUIPMENT_STATUS_APPROVAL_TYPE = DICT_PREFIX + "EquipmentStatusApprovalType"; // 设备计量标识 String EQUIPMENT_METER_IDENTITY = DICT_PREFIX + "MeterIdentify"; + + String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; // 计量计划计划分类 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java index 694e48b..aefff4a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.equipment; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.model.equipment.EquipmentAttachment; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentTechnicalTarget; @@ -13,6 +14,8 @@ @Data public class EquipmentApprovalForm extends EquipmentInfoApproval { + @ApiModelProperty("规格型号说明书") + private String instructionsFile; @ApiModelProperty("技术指标列表") private List technicalTargetList; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java index f6448c6..c814444 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java @@ -12,6 +12,9 @@ @Setter public class EquipmentInfoForm extends EquipmentInfo{ + @ApiModelProperty("规格型号说明书") + private String instructionsFile; + @ApiModelProperty("组别信息") @TableField(exist = false) private List groupInfos; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java index bcec504..7803273 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java @@ -10,6 +10,9 @@ @Setter public class EquipmentModelQueryForm { + @ApiModelProperty("设备类型") + private String equipmentType; + @ApiModelProperty("设备名称") private String equipmentName; 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml index a9033f9..c49776d 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml @@ -4,71 +4,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - id, approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + id + , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction + + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml index 62449ec..f4d9936 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml @@ -42,6 +42,12 @@ + + + + + + @@ -50,12 +56,20 @@ product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid as certificateValid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time, - is_del,model_id,help_instruction + is_del,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction select - from eqpt_equipment_info + from eqpt_equipment_info_view ${ew.sqlSegment} @@ -110,7 +124,7 @@ eqpt_remind_all as ( select e.id as equipment_id, - IFNULL(m.remind_time,0) as remind_time + IFNULL(m.remind_time,90) as remind_time from eqpt_equipment_info e left join eqpt_remind m on e.id = m.equipment_id ), @@ -118,20 +132,32 @@ select id,task_name,CONCAT(DATE_FORMAT(start_time,'%Y-%m-%d'),"~",DATE_FORMAT(end_time,'%Y-%m-%d')) as time_ext,start_time,end_time from eqpt_equipment_task_info ), + latest_sample_relation AS ( + SELECT * + FROM biz_business_order_sample_relation a + WHERE id = ( + SELECT max( id ) + FROM biz_business_order_sample_relation b + WHERE a.sample_id = b.sample_id ) + ), eqpt_ext as ( select e.* , - DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, - GROUP_CONCAT(t.task_name) as taskNames, - GROUP_CONCAT(t.time_ext) as taskTimes, - GROUP_CONCAT(t.id) as taskIds, - min(t.start_time) as task_start_time, - max(t.end_time) as task_end_time - from eqpt_equipment_info e + DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, + GROUP_CONCAT(t.task_name) as taskNames, + GROUP_CONCAT(t.time_ext) as taskTimes, + GROUP_CONCAT(t.id) as taskIds, + min(t.start_time) as task_start_time, + max(t.end_time) as task_end_time, + (case when lsr.sample_status in + #{item} + then 1 else 0 end) as check_status + from eqpt_equipment_info_view e left join eqpt_remind_all a on e.id = a.equipment_id left join eqpt_equipment_task_relation r on e.id = r.equipment_id left join task_ext t on r.task_id = t.id + left join latest_sample_relation lsr on lsr.sample_id = e.id where e.certificate_valid is not null - group by e.id,e.certificate_valid,a.remind_time + group by e.id,e.certificate_valid,a.remind_time,lsr.sample_status ) select * from eqpt_ext @@ -163,6 +189,9 @@ e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, + e.model as model, + e.company_id as companyId, + e.manufacture_no as manufactureNo, c.certificate_report_no as certificateNo, c.certificate_report_name as certificateName, '西昌卫星发射中心计量测试站' as checkOrganization, @@ -173,7 +202,7 @@ c.update_time as updateTime, '1' as certificateType, c.remark as remark - from biz_business_certificate_report c ,eqpt_equipment_info e + from biz_business_certificate_report c ,eqpt_equipment_info_view e where c.sample_id = e.id diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml index 097c405..2ddebe6 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,6 +13,7 @@ + @@ -21,7 +22,7 @@ - id, model_no, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, create_user_id, create_dept_id, create_time, update_time + id, equipment_type, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, inspectable, create_user_id, create_dept_id, create_time, update_time + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java index c69cc82..d1a2bd1 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.service.equipment.IEquipmentGroupInfoService; import io.swagger.annotations.Api; @@ -60,14 +61,11 @@ return ReturnUtil.success(); } - @ApiImplicitParams({ - @ApiImplicitParam(name = "groupName",value = "分组名称",dataType = "String",paramType = "query") - }) @ApiOperation("分组分页列表") - @GetMapping("listPage") - public ReturnDTO> listPage(String groupName){ + @PostMapping("listPage") + public ReturnDTO> listPage(@RequestBody EquipmentGroupQueryForm queryForm){ Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,groupName))); + return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,queryForm))); } @ApiImplicitParams({ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 56b6814..3130c5c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.business.LabelBindDTO; import com.casic.missiles.dto.equipment.*; import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; import com.casic.missiles.service.equipment.IEquipmentInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -36,6 +37,14 @@ public class EquipmentInfoController extends ExportController { private final IEquipmentInfoService equipmentInfoService; + private final IEquipmentInfoApprovalService approvalService; + + @ApiOperation("直接编辑设备") + @PostMapping("/info/update") + public ReturnDTO update(@RequestBody EquipmentApprovalForm approvalForm){ + approvalService.updateEquipmentInfo(approvalForm); + return ReturnUtil.success(); + } @ApiOperation("设备分页列表") @PostMapping("/info/listPage") @@ -152,5 +161,14 @@ return ReturnUtil.success(); } + @ApiOperation("到期提醒分页列表") + @PostMapping("/orderSelect/listPage") + @ResponseBody + public ReturnDTO> EquipmentOrderSelectQueryForm(@RequestBody EquipmentRemindQueryForm queryForm) { + Page page = PageFactory.defaultPage(); + page = equipmentInfoService.orderSelectListPage(page, queryForm); + return ReturnUtil.success(super.packForBT(page)); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index 044d245..ccbd668 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -103,14 +103,20 @@ @ApiOperation("设备名称列表") @GetMapping("listEquipmentName") - public ReturnDTO> listEquipmentName(){ - return ReturnUtil.success(modelInfoService.listEquipmentName()); + public ReturnDTO> listEquipmentName(String equipmentType){ + return ReturnUtil.success(modelInfoService.listEquipmentName(equipmentType)); } @ApiOperation("规格型号列表") @GetMapping("listModel") - public ReturnDTO> listModel(String equipmentName){ - return ReturnUtil.success(modelInfoService.listModel(equipmentName)); + public ReturnDTO> listModel(String equipmentType, String equipmentName){ + return ReturnUtil.success(modelInfoService.listModel(equipmentType,equipmentName)); + } + + @ApiOperation("获取默认检定去向") + @GetMapping("defaultCheckDestination") + public ReturnDTO defaultCheckDestination(Long modelId, Long companyId){ + return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java index 7e79008..1fc1f9c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.CertificateUpdate; +import com.casic.missiles.dto.equipment.LimitInstructionUpdate; import com.casic.missiles.model.plan.OrderReceive; import com.casic.missiles.model.plan.SampleStatueUpdate; import com.casic.missiles.service.equipment.IEquipmentInfoService; @@ -55,4 +56,11 @@ return ReturnUtil.success(); } + @ApiOperation("更新限用说明") + @PostMapping("/limitInstructionUpdate") + public ReturnDTO updateLimitInstruction(@RequestBody LimitInstructionUpdate updateForm) { + equipmentInfoService.updateLimitInstruction(updateForm.getEquipmentId(), updateForm.getLimitInstruction()); + return ReturnUtil.success(); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java index e314003..73d02ec 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java @@ -1,7 +1,18 @@ package com.casic.missiles.controller.system; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.system.SystemLocation; +import com.casic.missiles.service.system.ISystemLocationService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** *

@@ -11,8 +22,45 @@ * @author zhangyingjie * @since 2023-11-15 */ +@Api(tags = "安装位置管理") @RestController -@RequestMapping("/system-location") -public class SystemLocationController { +@RequestMapping("/system/location") +@RequiredArgsConstructor +public class SystemLocationController extends BaseController { + + private final ISystemLocationService locationService; + + @PostMapping("add") + public ReturnDTO add(@RequestBody SystemLocation systemLocation){ + locationService.add(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("update") + public ReturnDTO update(@RequestBody SystemLocation systemLocation){ + locationService.update(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("delete") + public ReturnDTO delete(@RequestBody SystemLocation systemLocation){ + locationService.delete(systemLocation); + return ReturnUtil.success(); + } + + @GetMapping("listPage") + public ReturnDTO> listPage(Long searchId,Long positionId, String installLocation){ + Page page = PageFactory.defaultPage(); + page = locationService.listPage(page,searchId,positionId, installLocation); + return ReturnUtil.success(super.packForBT(page)); + } + + @GetMapping("list") + public ReturnDTO> list(Long searchId,Long positionId, String installLocation){ + List list = locationService.list(searchId,positionId, installLocation); + return ReturnUtil.success(list); + } + + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java index f9e2f91..d64634a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java @@ -1,6 +1,8 @@ package com.casic.missiles.controller.system; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; @@ -10,6 +12,8 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** *

* 受检系统-系统管理-岗位管理 前端控制器 @@ -22,7 +26,7 @@ @RestController @RequestMapping("/system/position") @RequiredArgsConstructor -public class SystemPositionController { +public class SystemPositionController extends BaseController { private final ISystemPositionService positionService; @@ -45,16 +49,16 @@ } @GetMapping("listPage") - public ReturnDTO listPage(Long searchId,String positionName){ + public ReturnDTO> listPage(Long searchId, String positionName){ Page page = PageFactory.defaultPage(); - positionService.listPage(page,searchId,positionName); - return ReturnUtil.success(); + page = positionService.listPage(page,searchId,positionName); + return ReturnUtil.success(super.packForBT(page)); } @GetMapping("list") - public ReturnDTO list(Long searchId,String positionName){ - positionService.list(searchId,positionName); - return ReturnUtil.success(); + public ReturnDTO> list(Long searchId,String positionName){ + List list = positionService.list(searchId,positionName); + return ReturnUtil.success(list); } diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index 6f0359b..88cce74 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -72,9 +72,9 @@ addresses: http://111.198.10.15:21605/xxl-job-admin executor: # 此执行器的名称 - appname: casic-metering-job + appname: casic-metering-xc-eqpt-job # 此执行器的ip、端口,每个节点对应自己的ip,端口用于任务执行的通信 - ip: 127.0.0.1 + ip: 192.168.20.33 port: 9999 # 此执行器的日志存放路径 logpath: logs/xxl-job/casic-metering-job @@ -122,7 +122,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_remind_relation + table-name: eqpt_equipment_modify_log prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index 7b3c7a2..29a820a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -18,11 +18,15 @@ */ // 系统前缀 String DICT_PREFIX = "eqpt"; + + String EQUIPMENT_TYPE = DICT_PREFIX + "DeviceCategory"; //受检设备使用状态 String EQUIPMENT_USAGE_STATUS = DICT_PREFIX + "DeviceUseStatus"; //受检设备重要等级 String EQUIPMENT_LEVEL = DICT_PREFIX + "DeviceLevel"; + String EQUIPMENT_QUALITY = DICT_PREFIX + "DeviceQuality"; + String EQUIPMENT_CATEGORY = DICT_PREFIX + "DeviceType"; // 设备申请类型 String EQUIPMENT_APPROVAL_TYPE = DICT_PREFIX + "EquipmentApprovalType"; @@ -30,6 +34,8 @@ String EQUIPMENT_STATUS_APPROVAL_TYPE = DICT_PREFIX + "EquipmentStatusApprovalType"; // 设备计量标识 String EQUIPMENT_METER_IDENTITY = DICT_PREFIX + "MeterIdentify"; + + String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; // 计量计划计划分类 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java index 694e48b..aefff4a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.equipment; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.model.equipment.EquipmentAttachment; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentTechnicalTarget; @@ -13,6 +14,8 @@ @Data public class EquipmentApprovalForm extends EquipmentInfoApproval { + @ApiModelProperty("规格型号说明书") + private String instructionsFile; @ApiModelProperty("技术指标列表") private List technicalTargetList; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java index f6448c6..c814444 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java @@ -12,6 +12,9 @@ @Setter public class EquipmentInfoForm extends EquipmentInfo{ + @ApiModelProperty("规格型号说明书") + private String instructionsFile; + @ApiModelProperty("组别信息") @TableField(exist = false) private List groupInfos; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java index bcec504..7803273 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java @@ -10,6 +10,9 @@ @Setter public class EquipmentModelQueryForm { + @ApiModelProperty("设备类型") + private String equipmentType; + @ApiModelProperty("设备名称") private String equipmentName; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java index 03fc0f1..fc2acc8 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java @@ -32,12 +32,21 @@ @ApiModelProperty("所在单位") private Long companyId; - @ApiModelProperty("使用部门") + + @ApiModelProperty("使用部门(单个)") + private Long deptId; + @ApiModelProperty("使用部门(列表)") private List deptIds; + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty("使用岗位") private String usePosition; + @ApiModelProperty("负责人ID") + private Long directorId; + @ApiModelProperty("负责人") private String directorName; @@ -50,6 +59,9 @@ @ApiModelProperty("安装位置") private String installLocation; + @ApiModelProperty("分组id") + private Long groupId; + @ApiModelProperty("参试任务id") private Long taskId; @@ -75,4 +87,5 @@ @ApiModelProperty("使用状态列表[状态维护选择设备时用]") private List usageStatusList; + } 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml index a9033f9..c49776d 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml @@ -4,71 +4,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - id, approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + id + , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction + + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml index 62449ec..f4d9936 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml @@ -42,6 +42,12 @@ + + + + + + @@ -50,12 +56,20 @@ product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid as certificateValid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time, - is_del,model_id,help_instruction + is_del,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction select - from eqpt_equipment_info + from eqpt_equipment_info_view ${ew.sqlSegment} @@ -110,7 +124,7 @@ eqpt_remind_all as ( select e.id as equipment_id, - IFNULL(m.remind_time,0) as remind_time + IFNULL(m.remind_time,90) as remind_time from eqpt_equipment_info e left join eqpt_remind m on e.id = m.equipment_id ), @@ -118,20 +132,32 @@ select id,task_name,CONCAT(DATE_FORMAT(start_time,'%Y-%m-%d'),"~",DATE_FORMAT(end_time,'%Y-%m-%d')) as time_ext,start_time,end_time from eqpt_equipment_task_info ), + latest_sample_relation AS ( + SELECT * + FROM biz_business_order_sample_relation a + WHERE id = ( + SELECT max( id ) + FROM biz_business_order_sample_relation b + WHERE a.sample_id = b.sample_id ) + ), eqpt_ext as ( select e.* , - DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, - GROUP_CONCAT(t.task_name) as taskNames, - GROUP_CONCAT(t.time_ext) as taskTimes, - GROUP_CONCAT(t.id) as taskIds, - min(t.start_time) as task_start_time, - max(t.end_time) as task_end_time - from eqpt_equipment_info e + DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, + GROUP_CONCAT(t.task_name) as taskNames, + GROUP_CONCAT(t.time_ext) as taskTimes, + GROUP_CONCAT(t.id) as taskIds, + min(t.start_time) as task_start_time, + max(t.end_time) as task_end_time, + (case when lsr.sample_status in + #{item} + then 1 else 0 end) as check_status + from eqpt_equipment_info_view e left join eqpt_remind_all a on e.id = a.equipment_id left join eqpt_equipment_task_relation r on e.id = r.equipment_id left join task_ext t on r.task_id = t.id + left join latest_sample_relation lsr on lsr.sample_id = e.id where e.certificate_valid is not null - group by e.id,e.certificate_valid,a.remind_time + group by e.id,e.certificate_valid,a.remind_time,lsr.sample_status ) select * from eqpt_ext @@ -163,6 +189,9 @@ e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, + e.model as model, + e.company_id as companyId, + e.manufacture_no as manufactureNo, c.certificate_report_no as certificateNo, c.certificate_report_name as certificateName, '西昌卫星发射中心计量测试站' as checkOrganization, @@ -173,7 +202,7 @@ c.update_time as updateTime, '1' as certificateType, c.remark as remark - from biz_business_certificate_report c ,eqpt_equipment_info e + from biz_business_certificate_report c ,eqpt_equipment_info_view e where c.sample_id = e.id diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml index 097c405..2ddebe6 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,6 +13,7 @@ + @@ -21,7 +22,7 @@ - id, model_no, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, create_user_id, create_dept_id, create_time, update_time + id, equipment_type, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, inspectable, create_user_id, create_dept_id, create_time, update_time + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java index c69cc82..d1a2bd1 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.service.equipment.IEquipmentGroupInfoService; import io.swagger.annotations.Api; @@ -60,14 +61,11 @@ return ReturnUtil.success(); } - @ApiImplicitParams({ - @ApiImplicitParam(name = "groupName",value = "分组名称",dataType = "String",paramType = "query") - }) @ApiOperation("分组分页列表") - @GetMapping("listPage") - public ReturnDTO> listPage(String groupName){ + @PostMapping("listPage") + public ReturnDTO> listPage(@RequestBody EquipmentGroupQueryForm queryForm){ Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,groupName))); + return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,queryForm))); } @ApiImplicitParams({ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 56b6814..3130c5c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.business.LabelBindDTO; import com.casic.missiles.dto.equipment.*; import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; import com.casic.missiles.service.equipment.IEquipmentInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -36,6 +37,14 @@ public class EquipmentInfoController extends ExportController { private final IEquipmentInfoService equipmentInfoService; + private final IEquipmentInfoApprovalService approvalService; + + @ApiOperation("直接编辑设备") + @PostMapping("/info/update") + public ReturnDTO update(@RequestBody EquipmentApprovalForm approvalForm){ + approvalService.updateEquipmentInfo(approvalForm); + return ReturnUtil.success(); + } @ApiOperation("设备分页列表") @PostMapping("/info/listPage") @@ -152,5 +161,14 @@ return ReturnUtil.success(); } + @ApiOperation("到期提醒分页列表") + @PostMapping("/orderSelect/listPage") + @ResponseBody + public ReturnDTO> EquipmentOrderSelectQueryForm(@RequestBody EquipmentRemindQueryForm queryForm) { + Page page = PageFactory.defaultPage(); + page = equipmentInfoService.orderSelectListPage(page, queryForm); + return ReturnUtil.success(super.packForBT(page)); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index 044d245..ccbd668 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -103,14 +103,20 @@ @ApiOperation("设备名称列表") @GetMapping("listEquipmentName") - public ReturnDTO> listEquipmentName(){ - return ReturnUtil.success(modelInfoService.listEquipmentName()); + public ReturnDTO> listEquipmentName(String equipmentType){ + return ReturnUtil.success(modelInfoService.listEquipmentName(equipmentType)); } @ApiOperation("规格型号列表") @GetMapping("listModel") - public ReturnDTO> listModel(String equipmentName){ - return ReturnUtil.success(modelInfoService.listModel(equipmentName)); + public ReturnDTO> listModel(String equipmentType, String equipmentName){ + return ReturnUtil.success(modelInfoService.listModel(equipmentType,equipmentName)); + } + + @ApiOperation("获取默认检定去向") + @GetMapping("defaultCheckDestination") + public ReturnDTO defaultCheckDestination(Long modelId, Long companyId){ + return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java index 7e79008..1fc1f9c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.CertificateUpdate; +import com.casic.missiles.dto.equipment.LimitInstructionUpdate; import com.casic.missiles.model.plan.OrderReceive; import com.casic.missiles.model.plan.SampleStatueUpdate; import com.casic.missiles.service.equipment.IEquipmentInfoService; @@ -55,4 +56,11 @@ return ReturnUtil.success(); } + @ApiOperation("更新限用说明") + @PostMapping("/limitInstructionUpdate") + public ReturnDTO updateLimitInstruction(@RequestBody LimitInstructionUpdate updateForm) { + equipmentInfoService.updateLimitInstruction(updateForm.getEquipmentId(), updateForm.getLimitInstruction()); + return ReturnUtil.success(); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java index e314003..73d02ec 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java @@ -1,7 +1,18 @@ package com.casic.missiles.controller.system; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.system.SystemLocation; +import com.casic.missiles.service.system.ISystemLocationService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** *

@@ -11,8 +22,45 @@ * @author zhangyingjie * @since 2023-11-15 */ +@Api(tags = "安装位置管理") @RestController -@RequestMapping("/system-location") -public class SystemLocationController { +@RequestMapping("/system/location") +@RequiredArgsConstructor +public class SystemLocationController extends BaseController { + + private final ISystemLocationService locationService; + + @PostMapping("add") + public ReturnDTO add(@RequestBody SystemLocation systemLocation){ + locationService.add(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("update") + public ReturnDTO update(@RequestBody SystemLocation systemLocation){ + locationService.update(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("delete") + public ReturnDTO delete(@RequestBody SystemLocation systemLocation){ + locationService.delete(systemLocation); + return ReturnUtil.success(); + } + + @GetMapping("listPage") + public ReturnDTO> listPage(Long searchId,Long positionId, String installLocation){ + Page page = PageFactory.defaultPage(); + page = locationService.listPage(page,searchId,positionId, installLocation); + return ReturnUtil.success(super.packForBT(page)); + } + + @GetMapping("list") + public ReturnDTO> list(Long searchId,Long positionId, String installLocation){ + List list = locationService.list(searchId,positionId, installLocation); + return ReturnUtil.success(list); + } + + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java index f9e2f91..d64634a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java @@ -1,6 +1,8 @@ package com.casic.missiles.controller.system; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; @@ -10,6 +12,8 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** *

* 受检系统-系统管理-岗位管理 前端控制器 @@ -22,7 +26,7 @@ @RestController @RequestMapping("/system/position") @RequiredArgsConstructor -public class SystemPositionController { +public class SystemPositionController extends BaseController { private final ISystemPositionService positionService; @@ -45,16 +49,16 @@ } @GetMapping("listPage") - public ReturnDTO listPage(Long searchId,String positionName){ + public ReturnDTO> listPage(Long searchId, String positionName){ Page page = PageFactory.defaultPage(); - positionService.listPage(page,searchId,positionName); - return ReturnUtil.success(); + page = positionService.listPage(page,searchId,positionName); + return ReturnUtil.success(super.packForBT(page)); } @GetMapping("list") - public ReturnDTO list(Long searchId,String positionName){ - positionService.list(searchId,positionName); - return ReturnUtil.success(); + public ReturnDTO> list(Long searchId,String positionName){ + List list = positionService.list(searchId,positionName); + return ReturnUtil.success(list); } diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index 6f0359b..88cce74 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -72,9 +72,9 @@ addresses: http://111.198.10.15:21605/xxl-job-admin executor: # 此执行器的名称 - appname: casic-metering-job + appname: casic-metering-xc-eqpt-job # 此执行器的ip、端口,每个节点对应自己的ip,端口用于任务执行的通信 - ip: 127.0.0.1 + ip: 192.168.20.33 port: 9999 # 此执行器的日志存放路径 logpath: logs/xxl-job/casic-metering-job @@ -122,7 +122,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_remind_relation + table-name: eqpt_equipment_modify_log prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index 7b3c7a2..29a820a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -18,11 +18,15 @@ */ // 系统前缀 String DICT_PREFIX = "eqpt"; + + String EQUIPMENT_TYPE = DICT_PREFIX + "DeviceCategory"; //受检设备使用状态 String EQUIPMENT_USAGE_STATUS = DICT_PREFIX + "DeviceUseStatus"; //受检设备重要等级 String EQUIPMENT_LEVEL = DICT_PREFIX + "DeviceLevel"; + String EQUIPMENT_QUALITY = DICT_PREFIX + "DeviceQuality"; + String EQUIPMENT_CATEGORY = DICT_PREFIX + "DeviceType"; // 设备申请类型 String EQUIPMENT_APPROVAL_TYPE = DICT_PREFIX + "EquipmentApprovalType"; @@ -30,6 +34,8 @@ String EQUIPMENT_STATUS_APPROVAL_TYPE = DICT_PREFIX + "EquipmentStatusApprovalType"; // 设备计量标识 String EQUIPMENT_METER_IDENTITY = DICT_PREFIX + "MeterIdentify"; + + String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; // 计量计划计划分类 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java index 694e48b..aefff4a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.equipment; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.model.equipment.EquipmentAttachment; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentTechnicalTarget; @@ -13,6 +14,8 @@ @Data public class EquipmentApprovalForm extends EquipmentInfoApproval { + @ApiModelProperty("规格型号说明书") + private String instructionsFile; @ApiModelProperty("技术指标列表") private List technicalTargetList; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java index f6448c6..c814444 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java @@ -12,6 +12,9 @@ @Setter public class EquipmentInfoForm extends EquipmentInfo{ + @ApiModelProperty("规格型号说明书") + private String instructionsFile; + @ApiModelProperty("组别信息") @TableField(exist = false) private List groupInfos; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java index bcec504..7803273 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java @@ -10,6 +10,9 @@ @Setter public class EquipmentModelQueryForm { + @ApiModelProperty("设备类型") + private String equipmentType; + @ApiModelProperty("设备名称") private String equipmentName; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java index 03fc0f1..fc2acc8 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java @@ -32,12 +32,21 @@ @ApiModelProperty("所在单位") private Long companyId; - @ApiModelProperty("使用部门") + + @ApiModelProperty("使用部门(单个)") + private Long deptId; + @ApiModelProperty("使用部门(列表)") private List deptIds; + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty("使用岗位") private String usePosition; + @ApiModelProperty("负责人ID") + private Long directorId; + @ApiModelProperty("负责人") private String directorName; @@ -50,6 +59,9 @@ @ApiModelProperty("安装位置") private String installLocation; + @ApiModelProperty("分组id") + private Long groupId; + @ApiModelProperty("参试任务id") private Long taskId; @@ -75,4 +87,5 @@ @ApiModelProperty("使用状态列表[状态维护选择设备时用]") private List usageStatusList; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java index 30b5af3..b6afd18 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java @@ -73,5 +73,52 @@ @TableField("remark") private String remark; + /** + * 所在单位id + */ + @ApiModelProperty("所在单位id") + @TableField(exist = false) + private Long companyId; + + @ApiModelProperty("所在单位名称") + @TableField(exist = false) + private String companyName; + + /** + * 使用部门id + */ + @ApiModelProperty("使用部门id") + @TableField(exist = false) + private Long deptId; + + @ApiModelProperty("使用部门名称") + @TableField(exist = false) + private String deptName; + + /** + * 分系统id + */ + @ApiModelProperty(value = "分系统id") + @TableField(exist = false) + private Long subSystemId; + + @ApiModelProperty("分系统名称") + @TableField(exist = false) + private String subSystemName; + + /** + * 使用岗位id + */ + @ApiModelProperty("岗位ID") + @TableField("position_id") + private Long positionId; + + /** + * 使用岗位名称 + */ + @ApiModelProperty("岗位名称") + @TableField(exist = false) + private String positionName; + } 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml index a9033f9..c49776d 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml @@ -4,71 +4,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - id, approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + id + , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction + + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml index 62449ec..f4d9936 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml @@ -42,6 +42,12 @@ + + + + + + @@ -50,12 +56,20 @@ product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid as certificateValid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time, - is_del,model_id,help_instruction + is_del,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction select - from eqpt_equipment_info + from eqpt_equipment_info_view ${ew.sqlSegment} @@ -110,7 +124,7 @@ eqpt_remind_all as ( select e.id as equipment_id, - IFNULL(m.remind_time,0) as remind_time + IFNULL(m.remind_time,90) as remind_time from eqpt_equipment_info e left join eqpt_remind m on e.id = m.equipment_id ), @@ -118,20 +132,32 @@ select id,task_name,CONCAT(DATE_FORMAT(start_time,'%Y-%m-%d'),"~",DATE_FORMAT(end_time,'%Y-%m-%d')) as time_ext,start_time,end_time from eqpt_equipment_task_info ), + latest_sample_relation AS ( + SELECT * + FROM biz_business_order_sample_relation a + WHERE id = ( + SELECT max( id ) + FROM biz_business_order_sample_relation b + WHERE a.sample_id = b.sample_id ) + ), eqpt_ext as ( select e.* , - DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, - GROUP_CONCAT(t.task_name) as taskNames, - GROUP_CONCAT(t.time_ext) as taskTimes, - GROUP_CONCAT(t.id) as taskIds, - min(t.start_time) as task_start_time, - max(t.end_time) as task_end_time - from eqpt_equipment_info e + DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, + GROUP_CONCAT(t.task_name) as taskNames, + GROUP_CONCAT(t.time_ext) as taskTimes, + GROUP_CONCAT(t.id) as taskIds, + min(t.start_time) as task_start_time, + max(t.end_time) as task_end_time, + (case when lsr.sample_status in + #{item} + then 1 else 0 end) as check_status + from eqpt_equipment_info_view e left join eqpt_remind_all a on e.id = a.equipment_id left join eqpt_equipment_task_relation r on e.id = r.equipment_id left join task_ext t on r.task_id = t.id + left join latest_sample_relation lsr on lsr.sample_id = e.id where e.certificate_valid is not null - group by e.id,e.certificate_valid,a.remind_time + group by e.id,e.certificate_valid,a.remind_time,lsr.sample_status ) select * from eqpt_ext @@ -163,6 +189,9 @@ e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, + e.model as model, + e.company_id as companyId, + e.manufacture_no as manufactureNo, c.certificate_report_no as certificateNo, c.certificate_report_name as certificateName, '西昌卫星发射中心计量测试站' as checkOrganization, @@ -173,7 +202,7 @@ c.update_time as updateTime, '1' as certificateType, c.remark as remark - from biz_business_certificate_report c ,eqpt_equipment_info e + from biz_business_certificate_report c ,eqpt_equipment_info_view e where c.sample_id = e.id diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml index 097c405..2ddebe6 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,6 +13,7 @@ + @@ -21,7 +22,7 @@ - id, model_no, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, create_user_id, create_dept_id, create_time, update_time + id, equipment_type, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, inspectable, create_user_id, create_dept_id, create_time, update_time + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java index c69cc82..d1a2bd1 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.service.equipment.IEquipmentGroupInfoService; import io.swagger.annotations.Api; @@ -60,14 +61,11 @@ return ReturnUtil.success(); } - @ApiImplicitParams({ - @ApiImplicitParam(name = "groupName",value = "分组名称",dataType = "String",paramType = "query") - }) @ApiOperation("分组分页列表") - @GetMapping("listPage") - public ReturnDTO> listPage(String groupName){ + @PostMapping("listPage") + public ReturnDTO> listPage(@RequestBody EquipmentGroupQueryForm queryForm){ Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,groupName))); + return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,queryForm))); } @ApiImplicitParams({ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 56b6814..3130c5c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.business.LabelBindDTO; import com.casic.missiles.dto.equipment.*; import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; import com.casic.missiles.service.equipment.IEquipmentInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -36,6 +37,14 @@ public class EquipmentInfoController extends ExportController { private final IEquipmentInfoService equipmentInfoService; + private final IEquipmentInfoApprovalService approvalService; + + @ApiOperation("直接编辑设备") + @PostMapping("/info/update") + public ReturnDTO update(@RequestBody EquipmentApprovalForm approvalForm){ + approvalService.updateEquipmentInfo(approvalForm); + return ReturnUtil.success(); + } @ApiOperation("设备分页列表") @PostMapping("/info/listPage") @@ -152,5 +161,14 @@ return ReturnUtil.success(); } + @ApiOperation("到期提醒分页列表") + @PostMapping("/orderSelect/listPage") + @ResponseBody + public ReturnDTO> EquipmentOrderSelectQueryForm(@RequestBody EquipmentRemindQueryForm queryForm) { + Page page = PageFactory.defaultPage(); + page = equipmentInfoService.orderSelectListPage(page, queryForm); + return ReturnUtil.success(super.packForBT(page)); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index 044d245..ccbd668 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -103,14 +103,20 @@ @ApiOperation("设备名称列表") @GetMapping("listEquipmentName") - public ReturnDTO> listEquipmentName(){ - return ReturnUtil.success(modelInfoService.listEquipmentName()); + public ReturnDTO> listEquipmentName(String equipmentType){ + return ReturnUtil.success(modelInfoService.listEquipmentName(equipmentType)); } @ApiOperation("规格型号列表") @GetMapping("listModel") - public ReturnDTO> listModel(String equipmentName){ - return ReturnUtil.success(modelInfoService.listModel(equipmentName)); + public ReturnDTO> listModel(String equipmentType, String equipmentName){ + return ReturnUtil.success(modelInfoService.listModel(equipmentType,equipmentName)); + } + + @ApiOperation("获取默认检定去向") + @GetMapping("defaultCheckDestination") + public ReturnDTO defaultCheckDestination(Long modelId, Long companyId){ + return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java index 7e79008..1fc1f9c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.CertificateUpdate; +import com.casic.missiles.dto.equipment.LimitInstructionUpdate; import com.casic.missiles.model.plan.OrderReceive; import com.casic.missiles.model.plan.SampleStatueUpdate; import com.casic.missiles.service.equipment.IEquipmentInfoService; @@ -55,4 +56,11 @@ return ReturnUtil.success(); } + @ApiOperation("更新限用说明") + @PostMapping("/limitInstructionUpdate") + public ReturnDTO updateLimitInstruction(@RequestBody LimitInstructionUpdate updateForm) { + equipmentInfoService.updateLimitInstruction(updateForm.getEquipmentId(), updateForm.getLimitInstruction()); + return ReturnUtil.success(); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java index e314003..73d02ec 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java @@ -1,7 +1,18 @@ package com.casic.missiles.controller.system; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.system.SystemLocation; +import com.casic.missiles.service.system.ISystemLocationService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** *

@@ -11,8 +22,45 @@ * @author zhangyingjie * @since 2023-11-15 */ +@Api(tags = "安装位置管理") @RestController -@RequestMapping("/system-location") -public class SystemLocationController { +@RequestMapping("/system/location") +@RequiredArgsConstructor +public class SystemLocationController extends BaseController { + + private final ISystemLocationService locationService; + + @PostMapping("add") + public ReturnDTO add(@RequestBody SystemLocation systemLocation){ + locationService.add(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("update") + public ReturnDTO update(@RequestBody SystemLocation systemLocation){ + locationService.update(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("delete") + public ReturnDTO delete(@RequestBody SystemLocation systemLocation){ + locationService.delete(systemLocation); + return ReturnUtil.success(); + } + + @GetMapping("listPage") + public ReturnDTO> listPage(Long searchId,Long positionId, String installLocation){ + Page page = PageFactory.defaultPage(); + page = locationService.listPage(page,searchId,positionId, installLocation); + return ReturnUtil.success(super.packForBT(page)); + } + + @GetMapping("list") + public ReturnDTO> list(Long searchId,Long positionId, String installLocation){ + List list = locationService.list(searchId,positionId, installLocation); + return ReturnUtil.success(list); + } + + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java index f9e2f91..d64634a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java @@ -1,6 +1,8 @@ package com.casic.missiles.controller.system; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; @@ -10,6 +12,8 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** *

* 受检系统-系统管理-岗位管理 前端控制器 @@ -22,7 +26,7 @@ @RestController @RequestMapping("/system/position") @RequiredArgsConstructor -public class SystemPositionController { +public class SystemPositionController extends BaseController { private final ISystemPositionService positionService; @@ -45,16 +49,16 @@ } @GetMapping("listPage") - public ReturnDTO listPage(Long searchId,String positionName){ + public ReturnDTO> listPage(Long searchId, String positionName){ Page page = PageFactory.defaultPage(); - positionService.listPage(page,searchId,positionName); - return ReturnUtil.success(); + page = positionService.listPage(page,searchId,positionName); + return ReturnUtil.success(super.packForBT(page)); } @GetMapping("list") - public ReturnDTO list(Long searchId,String positionName){ - positionService.list(searchId,positionName); - return ReturnUtil.success(); + public ReturnDTO> list(Long searchId,String positionName){ + List list = positionService.list(searchId,positionName); + return ReturnUtil.success(list); } diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index 6f0359b..88cce74 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -72,9 +72,9 @@ addresses: http://111.198.10.15:21605/xxl-job-admin executor: # 此执行器的名称 - appname: casic-metering-job + appname: casic-metering-xc-eqpt-job # 此执行器的ip、端口,每个节点对应自己的ip,端口用于任务执行的通信 - ip: 127.0.0.1 + ip: 192.168.20.33 port: 9999 # 此执行器的日志存放路径 logpath: logs/xxl-job/casic-metering-job @@ -122,7 +122,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_remind_relation + table-name: eqpt_equipment_modify_log prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index 7b3c7a2..29a820a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -18,11 +18,15 @@ */ // 系统前缀 String DICT_PREFIX = "eqpt"; + + String EQUIPMENT_TYPE = DICT_PREFIX + "DeviceCategory"; //受检设备使用状态 String EQUIPMENT_USAGE_STATUS = DICT_PREFIX + "DeviceUseStatus"; //受检设备重要等级 String EQUIPMENT_LEVEL = DICT_PREFIX + "DeviceLevel"; + String EQUIPMENT_QUALITY = DICT_PREFIX + "DeviceQuality"; + String EQUIPMENT_CATEGORY = DICT_PREFIX + "DeviceType"; // 设备申请类型 String EQUIPMENT_APPROVAL_TYPE = DICT_PREFIX + "EquipmentApprovalType"; @@ -30,6 +34,8 @@ String EQUIPMENT_STATUS_APPROVAL_TYPE = DICT_PREFIX + "EquipmentStatusApprovalType"; // 设备计量标识 String EQUIPMENT_METER_IDENTITY = DICT_PREFIX + "MeterIdentify"; + + String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; // 计量计划计划分类 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java index 694e48b..aefff4a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.equipment; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.model.equipment.EquipmentAttachment; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentTechnicalTarget; @@ -13,6 +14,8 @@ @Data public class EquipmentApprovalForm extends EquipmentInfoApproval { + @ApiModelProperty("规格型号说明书") + private String instructionsFile; @ApiModelProperty("技术指标列表") private List technicalTargetList; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java index f6448c6..c814444 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java @@ -12,6 +12,9 @@ @Setter public class EquipmentInfoForm extends EquipmentInfo{ + @ApiModelProperty("规格型号说明书") + private String instructionsFile; + @ApiModelProperty("组别信息") @TableField(exist = false) private List groupInfos; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java index bcec504..7803273 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java @@ -10,6 +10,9 @@ @Setter public class EquipmentModelQueryForm { + @ApiModelProperty("设备类型") + private String equipmentType; + @ApiModelProperty("设备名称") private String equipmentName; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java index 03fc0f1..fc2acc8 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java @@ -32,12 +32,21 @@ @ApiModelProperty("所在单位") private Long companyId; - @ApiModelProperty("使用部门") + + @ApiModelProperty("使用部门(单个)") + private Long deptId; + @ApiModelProperty("使用部门(列表)") private List deptIds; + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty("使用岗位") private String usePosition; + @ApiModelProperty("负责人ID") + private Long directorId; + @ApiModelProperty("负责人") private String directorName; @@ -50,6 +59,9 @@ @ApiModelProperty("安装位置") private String installLocation; + @ApiModelProperty("分组id") + private Long groupId; + @ApiModelProperty("参试任务id") private Long taskId; @@ -75,4 +87,5 @@ @ApiModelProperty("使用状态列表[状态维护选择设备时用]") private List usageStatusList; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java index 30b5af3..b6afd18 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java @@ -73,5 +73,52 @@ @TableField("remark") private String remark; + /** + * 所在单位id + */ + @ApiModelProperty("所在单位id") + @TableField(exist = false) + private Long companyId; + + @ApiModelProperty("所在单位名称") + @TableField(exist = false) + private String companyName; + + /** + * 使用部门id + */ + @ApiModelProperty("使用部门id") + @TableField(exist = false) + private Long deptId; + + @ApiModelProperty("使用部门名称") + @TableField(exist = false) + private String deptName; + + /** + * 分系统id + */ + @ApiModelProperty(value = "分系统id") + @TableField(exist = false) + private Long subSystemId; + + @ApiModelProperty("分系统名称") + @TableField(exist = false) + private String subSystemName; + + /** + * 使用岗位id + */ + @ApiModelProperty("岗位ID") + @TableField("position_id") + private Long positionId; + + /** + * 使用岗位名称 + */ + @ApiModelProperty("岗位名称") + @TableField(exist = false) + private String positionName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java index 36575f6..b4f78b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.equipment; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -7,6 +8,8 @@ import java.io.Serializable; import java.util.Date; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.Getter; @@ -55,12 +58,35 @@ @ApiModelProperty("型号规格") @TableField(exist = false) private String model; + + @ApiModelProperty("出厂编号") + @TableField(exist = false) + private String manufactureNo; + @ApiModelProperty("生产厂家") + @TableField(exist = false) + private String manufacturer; + + /** + * 出厂编号 + */ + @ApiModelProperty("负责人") @TableField(exist = false) private String directorName; @ApiModelProperty("计量标识") @TableField(exist = false) private String meterIdentify; + + @ApiModelProperty("计量标识名称") + @TableField(exist = false) + private String meterIdentifyName; + + @ApiModelProperty("使用状态(字典code)") + @TableField(exist = false) + private String usageStatus; + @ApiModelProperty("使用状态名称") + @TableField(exist = false) + private String usageStatusName; @ApiModelProperty("证书有效期") @TableField(exist = false) private Date certificateValid; 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml index a9033f9..c49776d 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml @@ -4,71 +4,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - id, approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + id + , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction + + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml index 62449ec..f4d9936 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml @@ -42,6 +42,12 @@ + + + + + + @@ -50,12 +56,20 @@ product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid as certificateValid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time, - is_del,model_id,help_instruction + is_del,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction select - from eqpt_equipment_info + from eqpt_equipment_info_view ${ew.sqlSegment} @@ -110,7 +124,7 @@ eqpt_remind_all as ( select e.id as equipment_id, - IFNULL(m.remind_time,0) as remind_time + IFNULL(m.remind_time,90) as remind_time from eqpt_equipment_info e left join eqpt_remind m on e.id = m.equipment_id ), @@ -118,20 +132,32 @@ select id,task_name,CONCAT(DATE_FORMAT(start_time,'%Y-%m-%d'),"~",DATE_FORMAT(end_time,'%Y-%m-%d')) as time_ext,start_time,end_time from eqpt_equipment_task_info ), + latest_sample_relation AS ( + SELECT * + FROM biz_business_order_sample_relation a + WHERE id = ( + SELECT max( id ) + FROM biz_business_order_sample_relation b + WHERE a.sample_id = b.sample_id ) + ), eqpt_ext as ( select e.* , - DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, - GROUP_CONCAT(t.task_name) as taskNames, - GROUP_CONCAT(t.time_ext) as taskTimes, - GROUP_CONCAT(t.id) as taskIds, - min(t.start_time) as task_start_time, - max(t.end_time) as task_end_time - from eqpt_equipment_info e + DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, + GROUP_CONCAT(t.task_name) as taskNames, + GROUP_CONCAT(t.time_ext) as taskTimes, + GROUP_CONCAT(t.id) as taskIds, + min(t.start_time) as task_start_time, + max(t.end_time) as task_end_time, + (case when lsr.sample_status in + #{item} + then 1 else 0 end) as check_status + from eqpt_equipment_info_view e left join eqpt_remind_all a on e.id = a.equipment_id left join eqpt_equipment_task_relation r on e.id = r.equipment_id left join task_ext t on r.task_id = t.id + left join latest_sample_relation lsr on lsr.sample_id = e.id where e.certificate_valid is not null - group by e.id,e.certificate_valid,a.remind_time + group by e.id,e.certificate_valid,a.remind_time,lsr.sample_status ) select * from eqpt_ext @@ -163,6 +189,9 @@ e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, + e.model as model, + e.company_id as companyId, + e.manufacture_no as manufactureNo, c.certificate_report_no as certificateNo, c.certificate_report_name as certificateName, '西昌卫星发射中心计量测试站' as checkOrganization, @@ -173,7 +202,7 @@ c.update_time as updateTime, '1' as certificateType, c.remark as remark - from biz_business_certificate_report c ,eqpt_equipment_info e + from biz_business_certificate_report c ,eqpt_equipment_info_view e where c.sample_id = e.id diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml index 097c405..2ddebe6 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,6 +13,7 @@ + @@ -21,7 +22,7 @@ - id, model_no, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, create_user_id, create_dept_id, create_time, update_time + id, equipment_type, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, inspectable, create_user_id, create_dept_id, create_time, update_time + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java index c69cc82..d1a2bd1 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.service.equipment.IEquipmentGroupInfoService; import io.swagger.annotations.Api; @@ -60,14 +61,11 @@ return ReturnUtil.success(); } - @ApiImplicitParams({ - @ApiImplicitParam(name = "groupName",value = "分组名称",dataType = "String",paramType = "query") - }) @ApiOperation("分组分页列表") - @GetMapping("listPage") - public ReturnDTO> listPage(String groupName){ + @PostMapping("listPage") + public ReturnDTO> listPage(@RequestBody EquipmentGroupQueryForm queryForm){ Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,groupName))); + return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,queryForm))); } @ApiImplicitParams({ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 56b6814..3130c5c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.business.LabelBindDTO; import com.casic.missiles.dto.equipment.*; import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; import com.casic.missiles.service.equipment.IEquipmentInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -36,6 +37,14 @@ public class EquipmentInfoController extends ExportController { private final IEquipmentInfoService equipmentInfoService; + private final IEquipmentInfoApprovalService approvalService; + + @ApiOperation("直接编辑设备") + @PostMapping("/info/update") + public ReturnDTO update(@RequestBody EquipmentApprovalForm approvalForm){ + approvalService.updateEquipmentInfo(approvalForm); + return ReturnUtil.success(); + } @ApiOperation("设备分页列表") @PostMapping("/info/listPage") @@ -152,5 +161,14 @@ return ReturnUtil.success(); } + @ApiOperation("到期提醒分页列表") + @PostMapping("/orderSelect/listPage") + @ResponseBody + public ReturnDTO> EquipmentOrderSelectQueryForm(@RequestBody EquipmentRemindQueryForm queryForm) { + Page page = PageFactory.defaultPage(); + page = equipmentInfoService.orderSelectListPage(page, queryForm); + return ReturnUtil.success(super.packForBT(page)); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index 044d245..ccbd668 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -103,14 +103,20 @@ @ApiOperation("设备名称列表") @GetMapping("listEquipmentName") - public ReturnDTO> listEquipmentName(){ - return ReturnUtil.success(modelInfoService.listEquipmentName()); + public ReturnDTO> listEquipmentName(String equipmentType){ + return ReturnUtil.success(modelInfoService.listEquipmentName(equipmentType)); } @ApiOperation("规格型号列表") @GetMapping("listModel") - public ReturnDTO> listModel(String equipmentName){ - return ReturnUtil.success(modelInfoService.listModel(equipmentName)); + public ReturnDTO> listModel(String equipmentType, String equipmentName){ + return ReturnUtil.success(modelInfoService.listModel(equipmentType,equipmentName)); + } + + @ApiOperation("获取默认检定去向") + @GetMapping("defaultCheckDestination") + public ReturnDTO defaultCheckDestination(Long modelId, Long companyId){ + return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java index 7e79008..1fc1f9c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.CertificateUpdate; +import com.casic.missiles.dto.equipment.LimitInstructionUpdate; import com.casic.missiles.model.plan.OrderReceive; import com.casic.missiles.model.plan.SampleStatueUpdate; import com.casic.missiles.service.equipment.IEquipmentInfoService; @@ -55,4 +56,11 @@ return ReturnUtil.success(); } + @ApiOperation("更新限用说明") + @PostMapping("/limitInstructionUpdate") + public ReturnDTO updateLimitInstruction(@RequestBody LimitInstructionUpdate updateForm) { + equipmentInfoService.updateLimitInstruction(updateForm.getEquipmentId(), updateForm.getLimitInstruction()); + return ReturnUtil.success(); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java index e314003..73d02ec 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java @@ -1,7 +1,18 @@ package com.casic.missiles.controller.system; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.system.SystemLocation; +import com.casic.missiles.service.system.ISystemLocationService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** *

@@ -11,8 +22,45 @@ * @author zhangyingjie * @since 2023-11-15 */ +@Api(tags = "安装位置管理") @RestController -@RequestMapping("/system-location") -public class SystemLocationController { +@RequestMapping("/system/location") +@RequiredArgsConstructor +public class SystemLocationController extends BaseController { + + private final ISystemLocationService locationService; + + @PostMapping("add") + public ReturnDTO add(@RequestBody SystemLocation systemLocation){ + locationService.add(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("update") + public ReturnDTO update(@RequestBody SystemLocation systemLocation){ + locationService.update(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("delete") + public ReturnDTO delete(@RequestBody SystemLocation systemLocation){ + locationService.delete(systemLocation); + return ReturnUtil.success(); + } + + @GetMapping("listPage") + public ReturnDTO> listPage(Long searchId,Long positionId, String installLocation){ + Page page = PageFactory.defaultPage(); + page = locationService.listPage(page,searchId,positionId, installLocation); + return ReturnUtil.success(super.packForBT(page)); + } + + @GetMapping("list") + public ReturnDTO> list(Long searchId,Long positionId, String installLocation){ + List list = locationService.list(searchId,positionId, installLocation); + return ReturnUtil.success(list); + } + + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java index f9e2f91..d64634a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java @@ -1,6 +1,8 @@ package com.casic.missiles.controller.system; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; @@ -10,6 +12,8 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** *

* 受检系统-系统管理-岗位管理 前端控制器 @@ -22,7 +26,7 @@ @RestController @RequestMapping("/system/position") @RequiredArgsConstructor -public class SystemPositionController { +public class SystemPositionController extends BaseController { private final ISystemPositionService positionService; @@ -45,16 +49,16 @@ } @GetMapping("listPage") - public ReturnDTO listPage(Long searchId,String positionName){ + public ReturnDTO> listPage(Long searchId, String positionName){ Page page = PageFactory.defaultPage(); - positionService.listPage(page,searchId,positionName); - return ReturnUtil.success(); + page = positionService.listPage(page,searchId,positionName); + return ReturnUtil.success(super.packForBT(page)); } @GetMapping("list") - public ReturnDTO list(Long searchId,String positionName){ - positionService.list(searchId,positionName); - return ReturnUtil.success(); + public ReturnDTO> list(Long searchId,String positionName){ + List list = positionService.list(searchId,positionName); + return ReturnUtil.success(list); } diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index 6f0359b..88cce74 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -72,9 +72,9 @@ addresses: http://111.198.10.15:21605/xxl-job-admin executor: # 此执行器的名称 - appname: casic-metering-job + appname: casic-metering-xc-eqpt-job # 此执行器的ip、端口,每个节点对应自己的ip,端口用于任务执行的通信 - ip: 127.0.0.1 + ip: 192.168.20.33 port: 9999 # 此执行器的日志存放路径 logpath: logs/xxl-job/casic-metering-job @@ -122,7 +122,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_remind_relation + table-name: eqpt_equipment_modify_log prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index 7b3c7a2..29a820a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -18,11 +18,15 @@ */ // 系统前缀 String DICT_PREFIX = "eqpt"; + + String EQUIPMENT_TYPE = DICT_PREFIX + "DeviceCategory"; //受检设备使用状态 String EQUIPMENT_USAGE_STATUS = DICT_PREFIX + "DeviceUseStatus"; //受检设备重要等级 String EQUIPMENT_LEVEL = DICT_PREFIX + "DeviceLevel"; + String EQUIPMENT_QUALITY = DICT_PREFIX + "DeviceQuality"; + String EQUIPMENT_CATEGORY = DICT_PREFIX + "DeviceType"; // 设备申请类型 String EQUIPMENT_APPROVAL_TYPE = DICT_PREFIX + "EquipmentApprovalType"; @@ -30,6 +34,8 @@ String EQUIPMENT_STATUS_APPROVAL_TYPE = DICT_PREFIX + "EquipmentStatusApprovalType"; // 设备计量标识 String EQUIPMENT_METER_IDENTITY = DICT_PREFIX + "MeterIdentify"; + + String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; // 计量计划计划分类 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java index 694e48b..aefff4a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.equipment; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.model.equipment.EquipmentAttachment; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentTechnicalTarget; @@ -13,6 +14,8 @@ @Data public class EquipmentApprovalForm extends EquipmentInfoApproval { + @ApiModelProperty("规格型号说明书") + private String instructionsFile; @ApiModelProperty("技术指标列表") private List technicalTargetList; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java index f6448c6..c814444 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java @@ -12,6 +12,9 @@ @Setter public class EquipmentInfoForm extends EquipmentInfo{ + @ApiModelProperty("规格型号说明书") + private String instructionsFile; + @ApiModelProperty("组别信息") @TableField(exist = false) private List groupInfos; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java index bcec504..7803273 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java @@ -10,6 +10,9 @@ @Setter public class EquipmentModelQueryForm { + @ApiModelProperty("设备类型") + private String equipmentType; + @ApiModelProperty("设备名称") private String equipmentName; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java index 03fc0f1..fc2acc8 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java @@ -32,12 +32,21 @@ @ApiModelProperty("所在单位") private Long companyId; - @ApiModelProperty("使用部门") + + @ApiModelProperty("使用部门(单个)") + private Long deptId; + @ApiModelProperty("使用部门(列表)") private List deptIds; + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty("使用岗位") private String usePosition; + @ApiModelProperty("负责人ID") + private Long directorId; + @ApiModelProperty("负责人") private String directorName; @@ -50,6 +59,9 @@ @ApiModelProperty("安装位置") private String installLocation; + @ApiModelProperty("分组id") + private Long groupId; + @ApiModelProperty("参试任务id") private Long taskId; @@ -75,4 +87,5 @@ @ApiModelProperty("使用状态列表[状态维护选择设备时用]") private List usageStatusList; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java index 30b5af3..b6afd18 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java @@ -73,5 +73,52 @@ @TableField("remark") private String remark; + /** + * 所在单位id + */ + @ApiModelProperty("所在单位id") + @TableField(exist = false) + private Long companyId; + + @ApiModelProperty("所在单位名称") + @TableField(exist = false) + private String companyName; + + /** + * 使用部门id + */ + @ApiModelProperty("使用部门id") + @TableField(exist = false) + private Long deptId; + + @ApiModelProperty("使用部门名称") + @TableField(exist = false) + private String deptName; + + /** + * 分系统id + */ + @ApiModelProperty(value = "分系统id") + @TableField(exist = false) + private Long subSystemId; + + @ApiModelProperty("分系统名称") + @TableField(exist = false) + private String subSystemName; + + /** + * 使用岗位id + */ + @ApiModelProperty("岗位ID") + @TableField("position_id") + private Long positionId; + + /** + * 使用岗位名称 + */ + @ApiModelProperty("岗位名称") + @TableField(exist = false) + private String positionName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java index 36575f6..b4f78b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.equipment; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -7,6 +8,8 @@ import java.io.Serializable; import java.util.Date; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.Getter; @@ -55,12 +58,35 @@ @ApiModelProperty("型号规格") @TableField(exist = false) private String model; + + @ApiModelProperty("出厂编号") + @TableField(exist = false) + private String manufactureNo; + @ApiModelProperty("生产厂家") + @TableField(exist = false) + private String manufacturer; + + /** + * 出厂编号 + */ + @ApiModelProperty("负责人") @TableField(exist = false) private String directorName; @ApiModelProperty("计量标识") @TableField(exist = false) private String meterIdentify; + + @ApiModelProperty("计量标识名称") + @TableField(exist = false) + private String meterIdentifyName; + + @ApiModelProperty("使用状态(字典code)") + @TableField(exist = false) + private String usageStatus; + @ApiModelProperty("使用状态名称") + @TableField(exist = false) + private String usageStatusName; @ApiModelProperty("证书有效期") @TableField(exist = false) private Date certificateValid; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java index 21294cf..a8392ff 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java @@ -44,14 +44,14 @@ private static final long serialVersionUID = 1L; - @ApiModelProperty("主键") + @ApiModelProperty(value = "主键") @TableId("id") private Long id; /** * 设备编号 */ - @ApiModelProperty("设备编号") + @ApiModelProperty(value = "设备编号",notes = "统一编号") @TableField("equipment_no") @ExcelProperty(value = "统一编号",index = 0) private String equipmentNo; @@ -59,7 +59,7 @@ /** * 设备名称 */ - @ApiModelProperty("设备名称") + @ApiModelProperty(value = "设备名称",notes = "设备名称") @TableField("equipment_name") @ExcelProperty(value = "设备名称",index = 1) private String equipmentName; @@ -67,14 +67,18 @@ /** * 设备类型(1受检设备;2特种设备) */ - @ApiModelProperty("设备类型(1受检设备;2特种设备)") + @ApiModelProperty(value = "设备类型(1受检设备;2特种设备)",notes = "设备类型code") @TableField("equipment_type") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE) private String equipmentType; + @TableField(exist = false) + private String equipmentTypeName; + /** * 使用状态(字典code) */ - @ApiModelProperty("使用状态(字典code)") + @ApiModelProperty(value = "使用状态(字典code)",notes = "使用状态code") @TableField("usage_status") @DictCodeField(message = "使用状态", cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS) private String usageStatus; @@ -87,28 +91,32 @@ /** * 等级(字典code) */ - @ApiModelProperty("等级(字典code)") + @ApiModelProperty(value = "等级(字典code)",notes = "重要等级code") @TableField("level") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_LEVEL) private String level; + @TableField(exist = false) + private String levelName; + /** * 生产国家 */ - @ApiModelProperty("生产国家") + @ApiModelProperty(value = "生产国家",notes = "生产国家") @TableField("product_country") private String productCountry; /** * 生产厂家 */ - @ApiModelProperty("生产厂家") + @ApiModelProperty(value = "生产厂家",notes = "生产厂家") @TableField("manufacturer") private String manufacturer; /** * 出厂编号 */ - @ApiModelProperty("出厂编号") + @ApiModelProperty(value = "出厂编号",notes = "出厂编号") @TableField("manufacture_no") @ExcelProperty(value = "出厂编号",index = 3) private String manufactureNo; @@ -116,28 +124,28 @@ /** * 生产日期 */ - @ApiModelProperty("生产日期") + @ApiModelProperty(value = "生产日期",notes = "生产日期") @TableField("product_date") private Date productDate; /** * 单价(万元) */ - @ApiModelProperty("单价(万元)") + @ApiModelProperty(value = "单价(万元)",notes = "设备单价(万元)") @TableField("unit_price") private BigDecimal unitPrice; /** * 购进日期 */ - @ApiModelProperty("购进日期") + @ApiModelProperty(value = "购进日期",notes = "购进日期") @TableField("purchase_date") private Date purchaseDate; /** * 型号规格 */ - @ApiModelProperty("型号规格") + @ApiModelProperty(value = "型号规格",notes = "型号规格") @TableField("model") @ExcelProperty(value = "型号规格",index = 2) private String model; @@ -145,14 +153,18 @@ /** * 质量状况 */ - @ApiModelProperty("质量状况") + @ApiModelProperty(value = "质量状况",notes = "质量状况code") @TableField("quality_condition") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_QUALITY) private String qualityCondition; + @TableField(exist = false) + private String qualityConditionName; + /** * 所在单位id */ - @ApiModelProperty("所在单位id") + @ApiModelProperty(value = "所在单位id",notes = "所在单位id") @TableField("company_id") private Long companyId; @@ -163,7 +175,7 @@ /** * 使用部门id */ - @ApiModelProperty("使用部门id") + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") @TableField("dept_id") private Long deptId; @@ -174,14 +186,17 @@ /** * 设备分类(字典code) */ - @ApiModelProperty("设备分类(字典code)") + @ApiModelProperty(value = "设备分类(字典code)",notes = "设备分类code") @TableField("category") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CATEGORY) private String category; + @TableField(exist = false) + private String categoryName; /** * 检定周期(月) */ - @ApiModelProperty("检定周期(月)") + @ApiModelProperty(value = "检定周期(月)",notes = "检定周期(月)") @TableField("check_cycle") @ExcelProperty(value = "检定周期(月)",index = 6) @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, horizontalAlignment = HorizontalAlignmentEnum.LEFT) @@ -190,7 +205,7 @@ /** * 备注 */ - @ApiModelProperty("备注") + @ApiModelProperty(value = "备注",notes = "备注") @TableField("remark") @ExcelProperty(value = "备注",index = 9) private String remark; @@ -198,28 +213,28 @@ /** * 说明书(minio存储文件名)(多个用,拼接) */ - @ApiModelProperty("说明书(minio存储文件名)(多个用,拼接)") + @ApiModelProperty(value = "说明书(minio存储文件名)(多个用,拼接)") @TableField("instructions_file") private String instructionsFile; /** * 检定机构 */ - @ApiModelProperty("检定机构") + @ApiModelProperty(value = "检定机构",notes = "检定(校准)机构") @TableField("check_organization") private String checkOrganization; /** * 检定日期 */ - @ApiModelProperty("检定日期") + @ApiModelProperty(value = "检定日期",notes = "检定(校准)日期") @TableField("check_date") private Date checkDate; /** * 证书有效期 */ - @ApiModelProperty("证书有效期") + @ApiModelProperty(value = "证书有效期",notes = "证书有效期") @TableField("certificate_valid") @ExcelProperty(value = "证书有效期",index = 7, converter = DateExcelConverter.class) private Date certificateValid; @@ -227,7 +242,7 @@ /** * 计量标识 */ - @ApiModelProperty("计量标识") + @ApiModelProperty(value = "计量标识",notes = "计量标识code") @TableField("meter_identify") @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY) private String meterIdentify; @@ -237,17 +252,28 @@ @ExcelProperty(value = "计量标识",index = 5) private String meterIdentifyName; + @ApiModelProperty(value = "使用岗位id",notes = "使用岗位id") + @TableField("use_position_id") + private String usePositionId; + /** * 使用岗位 */ @ApiModelProperty("使用岗位") - @TableField("use_position") + @TableField(exist = false) @ExcelProperty(value = "使用岗位",index = 4) private String usePosition; /** * 负责人 */ + @ApiModelProperty(value = "负责人id",notes = "负责人id") + @TableField("director_id") + private String directorId; + + /** + * 负责人 + */ @ApiModelProperty("负责人") @TableField("director_name") private String directorName; @@ -255,17 +281,25 @@ /** * RFID标签绑定 */ - @ApiModelProperty("RFID标签绑定") + @ApiModelProperty(value = "RFID标签绑定",notes = "RFID标签绑定") @TableField("RFID") private String rfid; /** * 在用信息(字典code) */ - @ApiModelProperty("在用信息(字典code)") + @ApiModelProperty(value = "在用信息(字典code)",notes = "在用信息code") @TableField("use_sign") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE) private String useSign; + @TableField(exist = false) + private String useSignName; + + @ApiModelProperty(value = "安装位置id",notes = "安装位置id") + @TableField("install_location_id") + private Long installLocationId; + /** * 安装位置(选择) */ @@ -276,7 +310,7 @@ /** * 安装位置(自定义编写) */ - @ApiModelProperty("安装位置(自定义编写)") + @ApiModelProperty(value = "安装位置(自定义编写)",notes = "详细位置") @TableField("install_location_ext") private String installLocationExt; @@ -290,7 +324,7 @@ /** * 备注(扩展) */ - @ApiModelProperty("备注(扩展)") + @ApiModelProperty(value = "备注(扩展)",notes = "备注") @TableField("remark_ext") private String remarkExt; @@ -327,14 +361,25 @@ @TableLogic(value = "0",delval = "1") private Integer isDel; - @ApiModelProperty("规格型号id") + @ApiModelProperty(value = "规格型号id",notes = "规格型号id") @TableField("model_id") private Long modelId; - @ApiModelProperty("辅助字段") + @ApiModelProperty(value = "辅助字段",notes = "辅助字段") @TableField("help_instruction") private String helpInstruction; + @ApiModelProperty(value = "检定去向",notes = "检定去向") + @TableField("check_destination") + private String checkDestination; + + @ApiModelProperty(value = "限用说明",notes = "限用说明") + @TableField("limit_instruction") + private String limitInstruction; + + @ApiModelProperty("分组名称") + @TableField(exist = false) + private String groupNames; 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml index a9033f9..c49776d 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml @@ -4,71 +4,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - id, approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + id + , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction + + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml index 62449ec..f4d9936 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml @@ -42,6 +42,12 @@ + + + + + + @@ -50,12 +56,20 @@ product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid as certificateValid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time, - is_del,model_id,help_instruction + is_del,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction select - from eqpt_equipment_info + from eqpt_equipment_info_view ${ew.sqlSegment} @@ -110,7 +124,7 @@ eqpt_remind_all as ( select e.id as equipment_id, - IFNULL(m.remind_time,0) as remind_time + IFNULL(m.remind_time,90) as remind_time from eqpt_equipment_info e left join eqpt_remind m on e.id = m.equipment_id ), @@ -118,20 +132,32 @@ select id,task_name,CONCAT(DATE_FORMAT(start_time,'%Y-%m-%d'),"~",DATE_FORMAT(end_time,'%Y-%m-%d')) as time_ext,start_time,end_time from eqpt_equipment_task_info ), + latest_sample_relation AS ( + SELECT * + FROM biz_business_order_sample_relation a + WHERE id = ( + SELECT max( id ) + FROM biz_business_order_sample_relation b + WHERE a.sample_id = b.sample_id ) + ), eqpt_ext as ( select e.* , - DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, - GROUP_CONCAT(t.task_name) as taskNames, - GROUP_CONCAT(t.time_ext) as taskTimes, - GROUP_CONCAT(t.id) as taskIds, - min(t.start_time) as task_start_time, - max(t.end_time) as task_end_time - from eqpt_equipment_info e + DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, + GROUP_CONCAT(t.task_name) as taskNames, + GROUP_CONCAT(t.time_ext) as taskTimes, + GROUP_CONCAT(t.id) as taskIds, + min(t.start_time) as task_start_time, + max(t.end_time) as task_end_time, + (case when lsr.sample_status in + #{item} + then 1 else 0 end) as check_status + from eqpt_equipment_info_view e left join eqpt_remind_all a on e.id = a.equipment_id left join eqpt_equipment_task_relation r on e.id = r.equipment_id left join task_ext t on r.task_id = t.id + left join latest_sample_relation lsr on lsr.sample_id = e.id where e.certificate_valid is not null - group by e.id,e.certificate_valid,a.remind_time + group by e.id,e.certificate_valid,a.remind_time,lsr.sample_status ) select * from eqpt_ext @@ -163,6 +189,9 @@ e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, + e.model as model, + e.company_id as companyId, + e.manufacture_no as manufactureNo, c.certificate_report_no as certificateNo, c.certificate_report_name as certificateName, '西昌卫星发射中心计量测试站' as checkOrganization, @@ -173,7 +202,7 @@ c.update_time as updateTime, '1' as certificateType, c.remark as remark - from biz_business_certificate_report c ,eqpt_equipment_info e + from biz_business_certificate_report c ,eqpt_equipment_info_view e where c.sample_id = e.id diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml index 097c405..2ddebe6 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,6 +13,7 @@ + @@ -21,7 +22,7 @@ - id, model_no, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, create_user_id, create_dept_id, create_time, update_time + id, equipment_type, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, inspectable, create_user_id, create_dept_id, create_time, update_time + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java index c69cc82..d1a2bd1 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.service.equipment.IEquipmentGroupInfoService; import io.swagger.annotations.Api; @@ -60,14 +61,11 @@ return ReturnUtil.success(); } - @ApiImplicitParams({ - @ApiImplicitParam(name = "groupName",value = "分组名称",dataType = "String",paramType = "query") - }) @ApiOperation("分组分页列表") - @GetMapping("listPage") - public ReturnDTO> listPage(String groupName){ + @PostMapping("listPage") + public ReturnDTO> listPage(@RequestBody EquipmentGroupQueryForm queryForm){ Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,groupName))); + return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,queryForm))); } @ApiImplicitParams({ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 56b6814..3130c5c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.business.LabelBindDTO; import com.casic.missiles.dto.equipment.*; import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; import com.casic.missiles.service.equipment.IEquipmentInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -36,6 +37,14 @@ public class EquipmentInfoController extends ExportController { private final IEquipmentInfoService equipmentInfoService; + private final IEquipmentInfoApprovalService approvalService; + + @ApiOperation("直接编辑设备") + @PostMapping("/info/update") + public ReturnDTO update(@RequestBody EquipmentApprovalForm approvalForm){ + approvalService.updateEquipmentInfo(approvalForm); + return ReturnUtil.success(); + } @ApiOperation("设备分页列表") @PostMapping("/info/listPage") @@ -152,5 +161,14 @@ return ReturnUtil.success(); } + @ApiOperation("到期提醒分页列表") + @PostMapping("/orderSelect/listPage") + @ResponseBody + public ReturnDTO> EquipmentOrderSelectQueryForm(@RequestBody EquipmentRemindQueryForm queryForm) { + Page page = PageFactory.defaultPage(); + page = equipmentInfoService.orderSelectListPage(page, queryForm); + return ReturnUtil.success(super.packForBT(page)); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index 044d245..ccbd668 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -103,14 +103,20 @@ @ApiOperation("设备名称列表") @GetMapping("listEquipmentName") - public ReturnDTO> listEquipmentName(){ - return ReturnUtil.success(modelInfoService.listEquipmentName()); + public ReturnDTO> listEquipmentName(String equipmentType){ + return ReturnUtil.success(modelInfoService.listEquipmentName(equipmentType)); } @ApiOperation("规格型号列表") @GetMapping("listModel") - public ReturnDTO> listModel(String equipmentName){ - return ReturnUtil.success(modelInfoService.listModel(equipmentName)); + public ReturnDTO> listModel(String equipmentType, String equipmentName){ + return ReturnUtil.success(modelInfoService.listModel(equipmentType,equipmentName)); + } + + @ApiOperation("获取默认检定去向") + @GetMapping("defaultCheckDestination") + public ReturnDTO defaultCheckDestination(Long modelId, Long companyId){ + return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java index 7e79008..1fc1f9c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.CertificateUpdate; +import com.casic.missiles.dto.equipment.LimitInstructionUpdate; import com.casic.missiles.model.plan.OrderReceive; import com.casic.missiles.model.plan.SampleStatueUpdate; import com.casic.missiles.service.equipment.IEquipmentInfoService; @@ -55,4 +56,11 @@ return ReturnUtil.success(); } + @ApiOperation("更新限用说明") + @PostMapping("/limitInstructionUpdate") + public ReturnDTO updateLimitInstruction(@RequestBody LimitInstructionUpdate updateForm) { + equipmentInfoService.updateLimitInstruction(updateForm.getEquipmentId(), updateForm.getLimitInstruction()); + return ReturnUtil.success(); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java index e314003..73d02ec 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java @@ -1,7 +1,18 @@ package com.casic.missiles.controller.system; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.system.SystemLocation; +import com.casic.missiles.service.system.ISystemLocationService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** *

@@ -11,8 +22,45 @@ * @author zhangyingjie * @since 2023-11-15 */ +@Api(tags = "安装位置管理") @RestController -@RequestMapping("/system-location") -public class SystemLocationController { +@RequestMapping("/system/location") +@RequiredArgsConstructor +public class SystemLocationController extends BaseController { + + private final ISystemLocationService locationService; + + @PostMapping("add") + public ReturnDTO add(@RequestBody SystemLocation systemLocation){ + locationService.add(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("update") + public ReturnDTO update(@RequestBody SystemLocation systemLocation){ + locationService.update(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("delete") + public ReturnDTO delete(@RequestBody SystemLocation systemLocation){ + locationService.delete(systemLocation); + return ReturnUtil.success(); + } + + @GetMapping("listPage") + public ReturnDTO> listPage(Long searchId,Long positionId, String installLocation){ + Page page = PageFactory.defaultPage(); + page = locationService.listPage(page,searchId,positionId, installLocation); + return ReturnUtil.success(super.packForBT(page)); + } + + @GetMapping("list") + public ReturnDTO> list(Long searchId,Long positionId, String installLocation){ + List list = locationService.list(searchId,positionId, installLocation); + return ReturnUtil.success(list); + } + + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java index f9e2f91..d64634a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java @@ -1,6 +1,8 @@ package com.casic.missiles.controller.system; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; @@ -10,6 +12,8 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** *

* 受检系统-系统管理-岗位管理 前端控制器 @@ -22,7 +26,7 @@ @RestController @RequestMapping("/system/position") @RequiredArgsConstructor -public class SystemPositionController { +public class SystemPositionController extends BaseController { private final ISystemPositionService positionService; @@ -45,16 +49,16 @@ } @GetMapping("listPage") - public ReturnDTO listPage(Long searchId,String positionName){ + public ReturnDTO> listPage(Long searchId, String positionName){ Page page = PageFactory.defaultPage(); - positionService.listPage(page,searchId,positionName); - return ReturnUtil.success(); + page = positionService.listPage(page,searchId,positionName); + return ReturnUtil.success(super.packForBT(page)); } @GetMapping("list") - public ReturnDTO list(Long searchId,String positionName){ - positionService.list(searchId,positionName); - return ReturnUtil.success(); + public ReturnDTO> list(Long searchId,String positionName){ + List list = positionService.list(searchId,positionName); + return ReturnUtil.success(list); } diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index 6f0359b..88cce74 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -72,9 +72,9 @@ addresses: http://111.198.10.15:21605/xxl-job-admin executor: # 此执行器的名称 - appname: casic-metering-job + appname: casic-metering-xc-eqpt-job # 此执行器的ip、端口,每个节点对应自己的ip,端口用于任务执行的通信 - ip: 127.0.0.1 + ip: 192.168.20.33 port: 9999 # 此执行器的日志存放路径 logpath: logs/xxl-job/casic-metering-job @@ -122,7 +122,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_remind_relation + table-name: eqpt_equipment_modify_log prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index 7b3c7a2..29a820a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -18,11 +18,15 @@ */ // 系统前缀 String DICT_PREFIX = "eqpt"; + + String EQUIPMENT_TYPE = DICT_PREFIX + "DeviceCategory"; //受检设备使用状态 String EQUIPMENT_USAGE_STATUS = DICT_PREFIX + "DeviceUseStatus"; //受检设备重要等级 String EQUIPMENT_LEVEL = DICT_PREFIX + "DeviceLevel"; + String EQUIPMENT_QUALITY = DICT_PREFIX + "DeviceQuality"; + String EQUIPMENT_CATEGORY = DICT_PREFIX + "DeviceType"; // 设备申请类型 String EQUIPMENT_APPROVAL_TYPE = DICT_PREFIX + "EquipmentApprovalType"; @@ -30,6 +34,8 @@ String EQUIPMENT_STATUS_APPROVAL_TYPE = DICT_PREFIX + "EquipmentStatusApprovalType"; // 设备计量标识 String EQUIPMENT_METER_IDENTITY = DICT_PREFIX + "MeterIdentify"; + + String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; // 计量计划计划分类 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java index 694e48b..aefff4a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.equipment; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.model.equipment.EquipmentAttachment; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentTechnicalTarget; @@ -13,6 +14,8 @@ @Data public class EquipmentApprovalForm extends EquipmentInfoApproval { + @ApiModelProperty("规格型号说明书") + private String instructionsFile; @ApiModelProperty("技术指标列表") private List technicalTargetList; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java index f6448c6..c814444 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java @@ -12,6 +12,9 @@ @Setter public class EquipmentInfoForm extends EquipmentInfo{ + @ApiModelProperty("规格型号说明书") + private String instructionsFile; + @ApiModelProperty("组别信息") @TableField(exist = false) private List groupInfos; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java index bcec504..7803273 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java @@ -10,6 +10,9 @@ @Setter public class EquipmentModelQueryForm { + @ApiModelProperty("设备类型") + private String equipmentType; + @ApiModelProperty("设备名称") private String equipmentName; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java index 03fc0f1..fc2acc8 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java @@ -32,12 +32,21 @@ @ApiModelProperty("所在单位") private Long companyId; - @ApiModelProperty("使用部门") + + @ApiModelProperty("使用部门(单个)") + private Long deptId; + @ApiModelProperty("使用部门(列表)") private List deptIds; + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty("使用岗位") private String usePosition; + @ApiModelProperty("负责人ID") + private Long directorId; + @ApiModelProperty("负责人") private String directorName; @@ -50,6 +59,9 @@ @ApiModelProperty("安装位置") private String installLocation; + @ApiModelProperty("分组id") + private Long groupId; + @ApiModelProperty("参试任务id") private Long taskId; @@ -75,4 +87,5 @@ @ApiModelProperty("使用状态列表[状态维护选择设备时用]") private List usageStatusList; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java index 30b5af3..b6afd18 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java @@ -73,5 +73,52 @@ @TableField("remark") private String remark; + /** + * 所在单位id + */ + @ApiModelProperty("所在单位id") + @TableField(exist = false) + private Long companyId; + + @ApiModelProperty("所在单位名称") + @TableField(exist = false) + private String companyName; + + /** + * 使用部门id + */ + @ApiModelProperty("使用部门id") + @TableField(exist = false) + private Long deptId; + + @ApiModelProperty("使用部门名称") + @TableField(exist = false) + private String deptName; + + /** + * 分系统id + */ + @ApiModelProperty(value = "分系统id") + @TableField(exist = false) + private Long subSystemId; + + @ApiModelProperty("分系统名称") + @TableField(exist = false) + private String subSystemName; + + /** + * 使用岗位id + */ + @ApiModelProperty("岗位ID") + @TableField("position_id") + private Long positionId; + + /** + * 使用岗位名称 + */ + @ApiModelProperty("岗位名称") + @TableField(exist = false) + private String positionName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java index 36575f6..b4f78b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.equipment; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -7,6 +8,8 @@ import java.io.Serializable; import java.util.Date; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.Getter; @@ -55,12 +58,35 @@ @ApiModelProperty("型号规格") @TableField(exist = false) private String model; + + @ApiModelProperty("出厂编号") + @TableField(exist = false) + private String manufactureNo; + @ApiModelProperty("生产厂家") + @TableField(exist = false) + private String manufacturer; + + /** + * 出厂编号 + */ + @ApiModelProperty("负责人") @TableField(exist = false) private String directorName; @ApiModelProperty("计量标识") @TableField(exist = false) private String meterIdentify; + + @ApiModelProperty("计量标识名称") + @TableField(exist = false) + private String meterIdentifyName; + + @ApiModelProperty("使用状态(字典code)") + @TableField(exist = false) + private String usageStatus; + @ApiModelProperty("使用状态名称") + @TableField(exist = false) + private String usageStatusName; @ApiModelProperty("证书有效期") @TableField(exist = false) private Date certificateValid; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java index 21294cf..a8392ff 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java @@ -44,14 +44,14 @@ private static final long serialVersionUID = 1L; - @ApiModelProperty("主键") + @ApiModelProperty(value = "主键") @TableId("id") private Long id; /** * 设备编号 */ - @ApiModelProperty("设备编号") + @ApiModelProperty(value = "设备编号",notes = "统一编号") @TableField("equipment_no") @ExcelProperty(value = "统一编号",index = 0) private String equipmentNo; @@ -59,7 +59,7 @@ /** * 设备名称 */ - @ApiModelProperty("设备名称") + @ApiModelProperty(value = "设备名称",notes = "设备名称") @TableField("equipment_name") @ExcelProperty(value = "设备名称",index = 1) private String equipmentName; @@ -67,14 +67,18 @@ /** * 设备类型(1受检设备;2特种设备) */ - @ApiModelProperty("设备类型(1受检设备;2特种设备)") + @ApiModelProperty(value = "设备类型(1受检设备;2特种设备)",notes = "设备类型code") @TableField("equipment_type") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE) private String equipmentType; + @TableField(exist = false) + private String equipmentTypeName; + /** * 使用状态(字典code) */ - @ApiModelProperty("使用状态(字典code)") + @ApiModelProperty(value = "使用状态(字典code)",notes = "使用状态code") @TableField("usage_status") @DictCodeField(message = "使用状态", cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS) private String usageStatus; @@ -87,28 +91,32 @@ /** * 等级(字典code) */ - @ApiModelProperty("等级(字典code)") + @ApiModelProperty(value = "等级(字典code)",notes = "重要等级code") @TableField("level") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_LEVEL) private String level; + @TableField(exist = false) + private String levelName; + /** * 生产国家 */ - @ApiModelProperty("生产国家") + @ApiModelProperty(value = "生产国家",notes = "生产国家") @TableField("product_country") private String productCountry; /** * 生产厂家 */ - @ApiModelProperty("生产厂家") + @ApiModelProperty(value = "生产厂家",notes = "生产厂家") @TableField("manufacturer") private String manufacturer; /** * 出厂编号 */ - @ApiModelProperty("出厂编号") + @ApiModelProperty(value = "出厂编号",notes = "出厂编号") @TableField("manufacture_no") @ExcelProperty(value = "出厂编号",index = 3) private String manufactureNo; @@ -116,28 +124,28 @@ /** * 生产日期 */ - @ApiModelProperty("生产日期") + @ApiModelProperty(value = "生产日期",notes = "生产日期") @TableField("product_date") private Date productDate; /** * 单价(万元) */ - @ApiModelProperty("单价(万元)") + @ApiModelProperty(value = "单价(万元)",notes = "设备单价(万元)") @TableField("unit_price") private BigDecimal unitPrice; /** * 购进日期 */ - @ApiModelProperty("购进日期") + @ApiModelProperty(value = "购进日期",notes = "购进日期") @TableField("purchase_date") private Date purchaseDate; /** * 型号规格 */ - @ApiModelProperty("型号规格") + @ApiModelProperty(value = "型号规格",notes = "型号规格") @TableField("model") @ExcelProperty(value = "型号规格",index = 2) private String model; @@ -145,14 +153,18 @@ /** * 质量状况 */ - @ApiModelProperty("质量状况") + @ApiModelProperty(value = "质量状况",notes = "质量状况code") @TableField("quality_condition") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_QUALITY) private String qualityCondition; + @TableField(exist = false) + private String qualityConditionName; + /** * 所在单位id */ - @ApiModelProperty("所在单位id") + @ApiModelProperty(value = "所在单位id",notes = "所在单位id") @TableField("company_id") private Long companyId; @@ -163,7 +175,7 @@ /** * 使用部门id */ - @ApiModelProperty("使用部门id") + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") @TableField("dept_id") private Long deptId; @@ -174,14 +186,17 @@ /** * 设备分类(字典code) */ - @ApiModelProperty("设备分类(字典code)") + @ApiModelProperty(value = "设备分类(字典code)",notes = "设备分类code") @TableField("category") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CATEGORY) private String category; + @TableField(exist = false) + private String categoryName; /** * 检定周期(月) */ - @ApiModelProperty("检定周期(月)") + @ApiModelProperty(value = "检定周期(月)",notes = "检定周期(月)") @TableField("check_cycle") @ExcelProperty(value = "检定周期(月)",index = 6) @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, horizontalAlignment = HorizontalAlignmentEnum.LEFT) @@ -190,7 +205,7 @@ /** * 备注 */ - @ApiModelProperty("备注") + @ApiModelProperty(value = "备注",notes = "备注") @TableField("remark") @ExcelProperty(value = "备注",index = 9) private String remark; @@ -198,28 +213,28 @@ /** * 说明书(minio存储文件名)(多个用,拼接) */ - @ApiModelProperty("说明书(minio存储文件名)(多个用,拼接)") + @ApiModelProperty(value = "说明书(minio存储文件名)(多个用,拼接)") @TableField("instructions_file") private String instructionsFile; /** * 检定机构 */ - @ApiModelProperty("检定机构") + @ApiModelProperty(value = "检定机构",notes = "检定(校准)机构") @TableField("check_organization") private String checkOrganization; /** * 检定日期 */ - @ApiModelProperty("检定日期") + @ApiModelProperty(value = "检定日期",notes = "检定(校准)日期") @TableField("check_date") private Date checkDate; /** * 证书有效期 */ - @ApiModelProperty("证书有效期") + @ApiModelProperty(value = "证书有效期",notes = "证书有效期") @TableField("certificate_valid") @ExcelProperty(value = "证书有效期",index = 7, converter = DateExcelConverter.class) private Date certificateValid; @@ -227,7 +242,7 @@ /** * 计量标识 */ - @ApiModelProperty("计量标识") + @ApiModelProperty(value = "计量标识",notes = "计量标识code") @TableField("meter_identify") @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY) private String meterIdentify; @@ -237,17 +252,28 @@ @ExcelProperty(value = "计量标识",index = 5) private String meterIdentifyName; + @ApiModelProperty(value = "使用岗位id",notes = "使用岗位id") + @TableField("use_position_id") + private String usePositionId; + /** * 使用岗位 */ @ApiModelProperty("使用岗位") - @TableField("use_position") + @TableField(exist = false) @ExcelProperty(value = "使用岗位",index = 4) private String usePosition; /** * 负责人 */ + @ApiModelProperty(value = "负责人id",notes = "负责人id") + @TableField("director_id") + private String directorId; + + /** + * 负责人 + */ @ApiModelProperty("负责人") @TableField("director_name") private String directorName; @@ -255,17 +281,25 @@ /** * RFID标签绑定 */ - @ApiModelProperty("RFID标签绑定") + @ApiModelProperty(value = "RFID标签绑定",notes = "RFID标签绑定") @TableField("RFID") private String rfid; /** * 在用信息(字典code) */ - @ApiModelProperty("在用信息(字典code)") + @ApiModelProperty(value = "在用信息(字典code)",notes = "在用信息code") @TableField("use_sign") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE) private String useSign; + @TableField(exist = false) + private String useSignName; + + @ApiModelProperty(value = "安装位置id",notes = "安装位置id") + @TableField("install_location_id") + private Long installLocationId; + /** * 安装位置(选择) */ @@ -276,7 +310,7 @@ /** * 安装位置(自定义编写) */ - @ApiModelProperty("安装位置(自定义编写)") + @ApiModelProperty(value = "安装位置(自定义编写)",notes = "详细位置") @TableField("install_location_ext") private String installLocationExt; @@ -290,7 +324,7 @@ /** * 备注(扩展) */ - @ApiModelProperty("备注(扩展)") + @ApiModelProperty(value = "备注(扩展)",notes = "备注") @TableField("remark_ext") private String remarkExt; @@ -327,14 +361,25 @@ @TableLogic(value = "0",delval = "1") private Integer isDel; - @ApiModelProperty("规格型号id") + @ApiModelProperty(value = "规格型号id",notes = "规格型号id") @TableField("model_id") private Long modelId; - @ApiModelProperty("辅助字段") + @ApiModelProperty(value = "辅助字段",notes = "辅助字段") @TableField("help_instruction") private String helpInstruction; + @ApiModelProperty(value = "检定去向",notes = "检定去向") + @TableField("check_destination") + private String checkDestination; + + @ApiModelProperty(value = "限用说明",notes = "限用说明") + @TableField("limit_instruction") + private String limitInstruction; + + @ApiModelProperty("分组名称") + @TableField(exist = false) + private String groupNames; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java index 13eeef8..060aa33 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java @@ -101,8 +101,13 @@ */ @ApiModelProperty("使用状态(字典code)") @TableField("usage_status") + @DictCodeField(message = "使用状态", cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS) private String usageStatus; + @ApiModelProperty("使用状态名称") + @TableField(exist = false) + private String usageStatusName; + /** * 等级(字典code) */ @@ -253,6 +258,10 @@ @TableField(exist = false) private String meterIdentifyName; + @ApiModelProperty("使用岗位id") + @TableField("use_position_id") + private String usePositionId; + /** * 使用岗位 */ @@ -263,6 +272,12 @@ /** * 负责人 */ + @ApiModelProperty("负责人id") + @TableField("director_id") + private String directorId; + /** + * 负责人 + */ @ApiModelProperty("负责人") @TableField("director_name") private String directorName; @@ -281,6 +296,10 @@ @TableField("use_sign") private String useSign; + @ApiModelProperty("安装位置id") + @TableField("install_location_id") + private Long installLocationId; + /** * 安装位置(选择) */ @@ -347,6 +366,14 @@ @TableField("help_instruction") private String helpInstruction; + @ApiModelProperty("检定去向") + @TableField("check_destination") + private String checkDestination; + + @ApiModelProperty("限用说明") + @TableField("limit_instruction") + private String limitInstruction; + @ApiModelProperty("任务id") @TableField(exist = false) private String taskId; @@ -363,4 +390,7 @@ @TableField(exist = false) private List taskInfos; + @ApiModelProperty("分组名称") + @TableField(exist = false) + private String groupNames; } 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml index a9033f9..c49776d 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml @@ -4,71 +4,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - id, approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + id + , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction + + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml index 62449ec..f4d9936 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml @@ -42,6 +42,12 @@ + + + + + + @@ -50,12 +56,20 @@ product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid as certificateValid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time, - is_del,model_id,help_instruction + is_del,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction select - from eqpt_equipment_info + from eqpt_equipment_info_view ${ew.sqlSegment} @@ -110,7 +124,7 @@ eqpt_remind_all as ( select e.id as equipment_id, - IFNULL(m.remind_time,0) as remind_time + IFNULL(m.remind_time,90) as remind_time from eqpt_equipment_info e left join eqpt_remind m on e.id = m.equipment_id ), @@ -118,20 +132,32 @@ select id,task_name,CONCAT(DATE_FORMAT(start_time,'%Y-%m-%d'),"~",DATE_FORMAT(end_time,'%Y-%m-%d')) as time_ext,start_time,end_time from eqpt_equipment_task_info ), + latest_sample_relation AS ( + SELECT * + FROM biz_business_order_sample_relation a + WHERE id = ( + SELECT max( id ) + FROM biz_business_order_sample_relation b + WHERE a.sample_id = b.sample_id ) + ), eqpt_ext as ( select e.* , - DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, - GROUP_CONCAT(t.task_name) as taskNames, - GROUP_CONCAT(t.time_ext) as taskTimes, - GROUP_CONCAT(t.id) as taskIds, - min(t.start_time) as task_start_time, - max(t.end_time) as task_end_time - from eqpt_equipment_info e + DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, + GROUP_CONCAT(t.task_name) as taskNames, + GROUP_CONCAT(t.time_ext) as taskTimes, + GROUP_CONCAT(t.id) as taskIds, + min(t.start_time) as task_start_time, + max(t.end_time) as task_end_time, + (case when lsr.sample_status in + #{item} + then 1 else 0 end) as check_status + from eqpt_equipment_info_view e left join eqpt_remind_all a on e.id = a.equipment_id left join eqpt_equipment_task_relation r on e.id = r.equipment_id left join task_ext t on r.task_id = t.id + left join latest_sample_relation lsr on lsr.sample_id = e.id where e.certificate_valid is not null - group by e.id,e.certificate_valid,a.remind_time + group by e.id,e.certificate_valid,a.remind_time,lsr.sample_status ) select * from eqpt_ext @@ -163,6 +189,9 @@ e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, + e.model as model, + e.company_id as companyId, + e.manufacture_no as manufactureNo, c.certificate_report_no as certificateNo, c.certificate_report_name as certificateName, '西昌卫星发射中心计量测试站' as checkOrganization, @@ -173,7 +202,7 @@ c.update_time as updateTime, '1' as certificateType, c.remark as remark - from biz_business_certificate_report c ,eqpt_equipment_info e + from biz_business_certificate_report c ,eqpt_equipment_info_view e where c.sample_id = e.id diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml index 097c405..2ddebe6 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,6 +13,7 @@ + @@ -21,7 +22,7 @@ - id, model_no, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, create_user_id, create_dept_id, create_time, update_time + id, equipment_type, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, inspectable, create_user_id, create_dept_id, create_time, update_time + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java index c69cc82..d1a2bd1 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.service.equipment.IEquipmentGroupInfoService; import io.swagger.annotations.Api; @@ -60,14 +61,11 @@ return ReturnUtil.success(); } - @ApiImplicitParams({ - @ApiImplicitParam(name = "groupName",value = "分组名称",dataType = "String",paramType = "query") - }) @ApiOperation("分组分页列表") - @GetMapping("listPage") - public ReturnDTO> listPage(String groupName){ + @PostMapping("listPage") + public ReturnDTO> listPage(@RequestBody EquipmentGroupQueryForm queryForm){ Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,groupName))); + return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,queryForm))); } @ApiImplicitParams({ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 56b6814..3130c5c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.business.LabelBindDTO; import com.casic.missiles.dto.equipment.*; import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; import com.casic.missiles.service.equipment.IEquipmentInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -36,6 +37,14 @@ public class EquipmentInfoController extends ExportController { private final IEquipmentInfoService equipmentInfoService; + private final IEquipmentInfoApprovalService approvalService; + + @ApiOperation("直接编辑设备") + @PostMapping("/info/update") + public ReturnDTO update(@RequestBody EquipmentApprovalForm approvalForm){ + approvalService.updateEquipmentInfo(approvalForm); + return ReturnUtil.success(); + } @ApiOperation("设备分页列表") @PostMapping("/info/listPage") @@ -152,5 +161,14 @@ return ReturnUtil.success(); } + @ApiOperation("到期提醒分页列表") + @PostMapping("/orderSelect/listPage") + @ResponseBody + public ReturnDTO> EquipmentOrderSelectQueryForm(@RequestBody EquipmentRemindQueryForm queryForm) { + Page page = PageFactory.defaultPage(); + page = equipmentInfoService.orderSelectListPage(page, queryForm); + return ReturnUtil.success(super.packForBT(page)); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index 044d245..ccbd668 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -103,14 +103,20 @@ @ApiOperation("设备名称列表") @GetMapping("listEquipmentName") - public ReturnDTO> listEquipmentName(){ - return ReturnUtil.success(modelInfoService.listEquipmentName()); + public ReturnDTO> listEquipmentName(String equipmentType){ + return ReturnUtil.success(modelInfoService.listEquipmentName(equipmentType)); } @ApiOperation("规格型号列表") @GetMapping("listModel") - public ReturnDTO> listModel(String equipmentName){ - return ReturnUtil.success(modelInfoService.listModel(equipmentName)); + public ReturnDTO> listModel(String equipmentType, String equipmentName){ + return ReturnUtil.success(modelInfoService.listModel(equipmentType,equipmentName)); + } + + @ApiOperation("获取默认检定去向") + @GetMapping("defaultCheckDestination") + public ReturnDTO defaultCheckDestination(Long modelId, Long companyId){ + return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java index 7e79008..1fc1f9c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.CertificateUpdate; +import com.casic.missiles.dto.equipment.LimitInstructionUpdate; import com.casic.missiles.model.plan.OrderReceive; import com.casic.missiles.model.plan.SampleStatueUpdate; import com.casic.missiles.service.equipment.IEquipmentInfoService; @@ -55,4 +56,11 @@ return ReturnUtil.success(); } + @ApiOperation("更新限用说明") + @PostMapping("/limitInstructionUpdate") + public ReturnDTO updateLimitInstruction(@RequestBody LimitInstructionUpdate updateForm) { + equipmentInfoService.updateLimitInstruction(updateForm.getEquipmentId(), updateForm.getLimitInstruction()); + return ReturnUtil.success(); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java index e314003..73d02ec 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java @@ -1,7 +1,18 @@ package com.casic.missiles.controller.system; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.system.SystemLocation; +import com.casic.missiles.service.system.ISystemLocationService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** *

@@ -11,8 +22,45 @@ * @author zhangyingjie * @since 2023-11-15 */ +@Api(tags = "安装位置管理") @RestController -@RequestMapping("/system-location") -public class SystemLocationController { +@RequestMapping("/system/location") +@RequiredArgsConstructor +public class SystemLocationController extends BaseController { + + private final ISystemLocationService locationService; + + @PostMapping("add") + public ReturnDTO add(@RequestBody SystemLocation systemLocation){ + locationService.add(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("update") + public ReturnDTO update(@RequestBody SystemLocation systemLocation){ + locationService.update(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("delete") + public ReturnDTO delete(@RequestBody SystemLocation systemLocation){ + locationService.delete(systemLocation); + return ReturnUtil.success(); + } + + @GetMapping("listPage") + public ReturnDTO> listPage(Long searchId,Long positionId, String installLocation){ + Page page = PageFactory.defaultPage(); + page = locationService.listPage(page,searchId,positionId, installLocation); + return ReturnUtil.success(super.packForBT(page)); + } + + @GetMapping("list") + public ReturnDTO> list(Long searchId,Long positionId, String installLocation){ + List list = locationService.list(searchId,positionId, installLocation); + return ReturnUtil.success(list); + } + + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java index f9e2f91..d64634a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java @@ -1,6 +1,8 @@ package com.casic.missiles.controller.system; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; @@ -10,6 +12,8 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** *

* 受检系统-系统管理-岗位管理 前端控制器 @@ -22,7 +26,7 @@ @RestController @RequestMapping("/system/position") @RequiredArgsConstructor -public class SystemPositionController { +public class SystemPositionController extends BaseController { private final ISystemPositionService positionService; @@ -45,16 +49,16 @@ } @GetMapping("listPage") - public ReturnDTO listPage(Long searchId,String positionName){ + public ReturnDTO> listPage(Long searchId, String positionName){ Page page = PageFactory.defaultPage(); - positionService.listPage(page,searchId,positionName); - return ReturnUtil.success(); + page = positionService.listPage(page,searchId,positionName); + return ReturnUtil.success(super.packForBT(page)); } @GetMapping("list") - public ReturnDTO list(Long searchId,String positionName){ - positionService.list(searchId,positionName); - return ReturnUtil.success(); + public ReturnDTO> list(Long searchId,String positionName){ + List list = positionService.list(searchId,positionName); + return ReturnUtil.success(list); } diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index 6f0359b..88cce74 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -72,9 +72,9 @@ addresses: http://111.198.10.15:21605/xxl-job-admin executor: # 此执行器的名称 - appname: casic-metering-job + appname: casic-metering-xc-eqpt-job # 此执行器的ip、端口,每个节点对应自己的ip,端口用于任务执行的通信 - ip: 127.0.0.1 + ip: 192.168.20.33 port: 9999 # 此执行器的日志存放路径 logpath: logs/xxl-job/casic-metering-job @@ -122,7 +122,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_remind_relation + table-name: eqpt_equipment_modify_log prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index 7b3c7a2..29a820a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -18,11 +18,15 @@ */ // 系统前缀 String DICT_PREFIX = "eqpt"; + + String EQUIPMENT_TYPE = DICT_PREFIX + "DeviceCategory"; //受检设备使用状态 String EQUIPMENT_USAGE_STATUS = DICT_PREFIX + "DeviceUseStatus"; //受检设备重要等级 String EQUIPMENT_LEVEL = DICT_PREFIX + "DeviceLevel"; + String EQUIPMENT_QUALITY = DICT_PREFIX + "DeviceQuality"; + String EQUIPMENT_CATEGORY = DICT_PREFIX + "DeviceType"; // 设备申请类型 String EQUIPMENT_APPROVAL_TYPE = DICT_PREFIX + "EquipmentApprovalType"; @@ -30,6 +34,8 @@ String EQUIPMENT_STATUS_APPROVAL_TYPE = DICT_PREFIX + "EquipmentStatusApprovalType"; // 设备计量标识 String EQUIPMENT_METER_IDENTITY = DICT_PREFIX + "MeterIdentify"; + + String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; // 计量计划计划分类 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java index 694e48b..aefff4a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.equipment; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.model.equipment.EquipmentAttachment; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentTechnicalTarget; @@ -13,6 +14,8 @@ @Data public class EquipmentApprovalForm extends EquipmentInfoApproval { + @ApiModelProperty("规格型号说明书") + private String instructionsFile; @ApiModelProperty("技术指标列表") private List technicalTargetList; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java index f6448c6..c814444 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java @@ -12,6 +12,9 @@ @Setter public class EquipmentInfoForm extends EquipmentInfo{ + @ApiModelProperty("规格型号说明书") + private String instructionsFile; + @ApiModelProperty("组别信息") @TableField(exist = false) private List groupInfos; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java index bcec504..7803273 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java @@ -10,6 +10,9 @@ @Setter public class EquipmentModelQueryForm { + @ApiModelProperty("设备类型") + private String equipmentType; + @ApiModelProperty("设备名称") private String equipmentName; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java index 03fc0f1..fc2acc8 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java @@ -32,12 +32,21 @@ @ApiModelProperty("所在单位") private Long companyId; - @ApiModelProperty("使用部门") + + @ApiModelProperty("使用部门(单个)") + private Long deptId; + @ApiModelProperty("使用部门(列表)") private List deptIds; + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty("使用岗位") private String usePosition; + @ApiModelProperty("负责人ID") + private Long directorId; + @ApiModelProperty("负责人") private String directorName; @@ -50,6 +59,9 @@ @ApiModelProperty("安装位置") private String installLocation; + @ApiModelProperty("分组id") + private Long groupId; + @ApiModelProperty("参试任务id") private Long taskId; @@ -75,4 +87,5 @@ @ApiModelProperty("使用状态列表[状态维护选择设备时用]") private List usageStatusList; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java index 30b5af3..b6afd18 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java @@ -73,5 +73,52 @@ @TableField("remark") private String remark; + /** + * 所在单位id + */ + @ApiModelProperty("所在单位id") + @TableField(exist = false) + private Long companyId; + + @ApiModelProperty("所在单位名称") + @TableField(exist = false) + private String companyName; + + /** + * 使用部门id + */ + @ApiModelProperty("使用部门id") + @TableField(exist = false) + private Long deptId; + + @ApiModelProperty("使用部门名称") + @TableField(exist = false) + private String deptName; + + /** + * 分系统id + */ + @ApiModelProperty(value = "分系统id") + @TableField(exist = false) + private Long subSystemId; + + @ApiModelProperty("分系统名称") + @TableField(exist = false) + private String subSystemName; + + /** + * 使用岗位id + */ + @ApiModelProperty("岗位ID") + @TableField("position_id") + private Long positionId; + + /** + * 使用岗位名称 + */ + @ApiModelProperty("岗位名称") + @TableField(exist = false) + private String positionName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java index 36575f6..b4f78b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.equipment; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -7,6 +8,8 @@ import java.io.Serializable; import java.util.Date; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.Getter; @@ -55,12 +58,35 @@ @ApiModelProperty("型号规格") @TableField(exist = false) private String model; + + @ApiModelProperty("出厂编号") + @TableField(exist = false) + private String manufactureNo; + @ApiModelProperty("生产厂家") + @TableField(exist = false) + private String manufacturer; + + /** + * 出厂编号 + */ + @ApiModelProperty("负责人") @TableField(exist = false) private String directorName; @ApiModelProperty("计量标识") @TableField(exist = false) private String meterIdentify; + + @ApiModelProperty("计量标识名称") + @TableField(exist = false) + private String meterIdentifyName; + + @ApiModelProperty("使用状态(字典code)") + @TableField(exist = false) + private String usageStatus; + @ApiModelProperty("使用状态名称") + @TableField(exist = false) + private String usageStatusName; @ApiModelProperty("证书有效期") @TableField(exist = false) private Date certificateValid; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java index 21294cf..a8392ff 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java @@ -44,14 +44,14 @@ private static final long serialVersionUID = 1L; - @ApiModelProperty("主键") + @ApiModelProperty(value = "主键") @TableId("id") private Long id; /** * 设备编号 */ - @ApiModelProperty("设备编号") + @ApiModelProperty(value = "设备编号",notes = "统一编号") @TableField("equipment_no") @ExcelProperty(value = "统一编号",index = 0) private String equipmentNo; @@ -59,7 +59,7 @@ /** * 设备名称 */ - @ApiModelProperty("设备名称") + @ApiModelProperty(value = "设备名称",notes = "设备名称") @TableField("equipment_name") @ExcelProperty(value = "设备名称",index = 1) private String equipmentName; @@ -67,14 +67,18 @@ /** * 设备类型(1受检设备;2特种设备) */ - @ApiModelProperty("设备类型(1受检设备;2特种设备)") + @ApiModelProperty(value = "设备类型(1受检设备;2特种设备)",notes = "设备类型code") @TableField("equipment_type") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE) private String equipmentType; + @TableField(exist = false) + private String equipmentTypeName; + /** * 使用状态(字典code) */ - @ApiModelProperty("使用状态(字典code)") + @ApiModelProperty(value = "使用状态(字典code)",notes = "使用状态code") @TableField("usage_status") @DictCodeField(message = "使用状态", cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS) private String usageStatus; @@ -87,28 +91,32 @@ /** * 等级(字典code) */ - @ApiModelProperty("等级(字典code)") + @ApiModelProperty(value = "等级(字典code)",notes = "重要等级code") @TableField("level") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_LEVEL) private String level; + @TableField(exist = false) + private String levelName; + /** * 生产国家 */ - @ApiModelProperty("生产国家") + @ApiModelProperty(value = "生产国家",notes = "生产国家") @TableField("product_country") private String productCountry; /** * 生产厂家 */ - @ApiModelProperty("生产厂家") + @ApiModelProperty(value = "生产厂家",notes = "生产厂家") @TableField("manufacturer") private String manufacturer; /** * 出厂编号 */ - @ApiModelProperty("出厂编号") + @ApiModelProperty(value = "出厂编号",notes = "出厂编号") @TableField("manufacture_no") @ExcelProperty(value = "出厂编号",index = 3) private String manufactureNo; @@ -116,28 +124,28 @@ /** * 生产日期 */ - @ApiModelProperty("生产日期") + @ApiModelProperty(value = "生产日期",notes = "生产日期") @TableField("product_date") private Date productDate; /** * 单价(万元) */ - @ApiModelProperty("单价(万元)") + @ApiModelProperty(value = "单价(万元)",notes = "设备单价(万元)") @TableField("unit_price") private BigDecimal unitPrice; /** * 购进日期 */ - @ApiModelProperty("购进日期") + @ApiModelProperty(value = "购进日期",notes = "购进日期") @TableField("purchase_date") private Date purchaseDate; /** * 型号规格 */ - @ApiModelProperty("型号规格") + @ApiModelProperty(value = "型号规格",notes = "型号规格") @TableField("model") @ExcelProperty(value = "型号规格",index = 2) private String model; @@ -145,14 +153,18 @@ /** * 质量状况 */ - @ApiModelProperty("质量状况") + @ApiModelProperty(value = "质量状况",notes = "质量状况code") @TableField("quality_condition") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_QUALITY) private String qualityCondition; + @TableField(exist = false) + private String qualityConditionName; + /** * 所在单位id */ - @ApiModelProperty("所在单位id") + @ApiModelProperty(value = "所在单位id",notes = "所在单位id") @TableField("company_id") private Long companyId; @@ -163,7 +175,7 @@ /** * 使用部门id */ - @ApiModelProperty("使用部门id") + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") @TableField("dept_id") private Long deptId; @@ -174,14 +186,17 @@ /** * 设备分类(字典code) */ - @ApiModelProperty("设备分类(字典code)") + @ApiModelProperty(value = "设备分类(字典code)",notes = "设备分类code") @TableField("category") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CATEGORY) private String category; + @TableField(exist = false) + private String categoryName; /** * 检定周期(月) */ - @ApiModelProperty("检定周期(月)") + @ApiModelProperty(value = "检定周期(月)",notes = "检定周期(月)") @TableField("check_cycle") @ExcelProperty(value = "检定周期(月)",index = 6) @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, horizontalAlignment = HorizontalAlignmentEnum.LEFT) @@ -190,7 +205,7 @@ /** * 备注 */ - @ApiModelProperty("备注") + @ApiModelProperty(value = "备注",notes = "备注") @TableField("remark") @ExcelProperty(value = "备注",index = 9) private String remark; @@ -198,28 +213,28 @@ /** * 说明书(minio存储文件名)(多个用,拼接) */ - @ApiModelProperty("说明书(minio存储文件名)(多个用,拼接)") + @ApiModelProperty(value = "说明书(minio存储文件名)(多个用,拼接)") @TableField("instructions_file") private String instructionsFile; /** * 检定机构 */ - @ApiModelProperty("检定机构") + @ApiModelProperty(value = "检定机构",notes = "检定(校准)机构") @TableField("check_organization") private String checkOrganization; /** * 检定日期 */ - @ApiModelProperty("检定日期") + @ApiModelProperty(value = "检定日期",notes = "检定(校准)日期") @TableField("check_date") private Date checkDate; /** * 证书有效期 */ - @ApiModelProperty("证书有效期") + @ApiModelProperty(value = "证书有效期",notes = "证书有效期") @TableField("certificate_valid") @ExcelProperty(value = "证书有效期",index = 7, converter = DateExcelConverter.class) private Date certificateValid; @@ -227,7 +242,7 @@ /** * 计量标识 */ - @ApiModelProperty("计量标识") + @ApiModelProperty(value = "计量标识",notes = "计量标识code") @TableField("meter_identify") @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY) private String meterIdentify; @@ -237,17 +252,28 @@ @ExcelProperty(value = "计量标识",index = 5) private String meterIdentifyName; + @ApiModelProperty(value = "使用岗位id",notes = "使用岗位id") + @TableField("use_position_id") + private String usePositionId; + /** * 使用岗位 */ @ApiModelProperty("使用岗位") - @TableField("use_position") + @TableField(exist = false) @ExcelProperty(value = "使用岗位",index = 4) private String usePosition; /** * 负责人 */ + @ApiModelProperty(value = "负责人id",notes = "负责人id") + @TableField("director_id") + private String directorId; + + /** + * 负责人 + */ @ApiModelProperty("负责人") @TableField("director_name") private String directorName; @@ -255,17 +281,25 @@ /** * RFID标签绑定 */ - @ApiModelProperty("RFID标签绑定") + @ApiModelProperty(value = "RFID标签绑定",notes = "RFID标签绑定") @TableField("RFID") private String rfid; /** * 在用信息(字典code) */ - @ApiModelProperty("在用信息(字典code)") + @ApiModelProperty(value = "在用信息(字典code)",notes = "在用信息code") @TableField("use_sign") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE) private String useSign; + @TableField(exist = false) + private String useSignName; + + @ApiModelProperty(value = "安装位置id",notes = "安装位置id") + @TableField("install_location_id") + private Long installLocationId; + /** * 安装位置(选择) */ @@ -276,7 +310,7 @@ /** * 安装位置(自定义编写) */ - @ApiModelProperty("安装位置(自定义编写)") + @ApiModelProperty(value = "安装位置(自定义编写)",notes = "详细位置") @TableField("install_location_ext") private String installLocationExt; @@ -290,7 +324,7 @@ /** * 备注(扩展) */ - @ApiModelProperty("备注(扩展)") + @ApiModelProperty(value = "备注(扩展)",notes = "备注") @TableField("remark_ext") private String remarkExt; @@ -327,14 +361,25 @@ @TableLogic(value = "0",delval = "1") private Integer isDel; - @ApiModelProperty("规格型号id") + @ApiModelProperty(value = "规格型号id",notes = "规格型号id") @TableField("model_id") private Long modelId; - @ApiModelProperty("辅助字段") + @ApiModelProperty(value = "辅助字段",notes = "辅助字段") @TableField("help_instruction") private String helpInstruction; + @ApiModelProperty(value = "检定去向",notes = "检定去向") + @TableField("check_destination") + private String checkDestination; + + @ApiModelProperty(value = "限用说明",notes = "限用说明") + @TableField("limit_instruction") + private String limitInstruction; + + @ApiModelProperty("分组名称") + @TableField(exist = false) + private String groupNames; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java index 13eeef8..060aa33 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java @@ -101,8 +101,13 @@ */ @ApiModelProperty("使用状态(字典code)") @TableField("usage_status") + @DictCodeField(message = "使用状态", cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS) private String usageStatus; + @ApiModelProperty("使用状态名称") + @TableField(exist = false) + private String usageStatusName; + /** * 等级(字典code) */ @@ -253,6 +258,10 @@ @TableField(exist = false) private String meterIdentifyName; + @ApiModelProperty("使用岗位id") + @TableField("use_position_id") + private String usePositionId; + /** * 使用岗位 */ @@ -263,6 +272,12 @@ /** * 负责人 */ + @ApiModelProperty("负责人id") + @TableField("director_id") + private String directorId; + /** + * 负责人 + */ @ApiModelProperty("负责人") @TableField("director_name") private String directorName; @@ -281,6 +296,10 @@ @TableField("use_sign") private String useSign; + @ApiModelProperty("安装位置id") + @TableField("install_location_id") + private Long installLocationId; + /** * 安装位置(选择) */ @@ -347,6 +366,14 @@ @TableField("help_instruction") private String helpInstruction; + @ApiModelProperty("检定去向") + @TableField("check_destination") + private String checkDestination; + + @ApiModelProperty("限用说明") + @TableField("limit_instruction") + private String limitInstruction; + @ApiModelProperty("任务id") @TableField(exist = false) private String taskId; @@ -363,4 +390,7 @@ @TableField(exist = false) private List taskInfos; + @ApiModelProperty("分组名称") + @TableField(exist = false) + private String groupNames; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java index 471e8c8..d4b20e9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java @@ -48,10 +48,15 @@ /** * 型号规格编号 */ - @ApiModelProperty("型号规格编号") - @TableField("model_no") - @ExcelProperty("型号规格编号") - private String modelNo; + @ApiModelProperty("设备类型") + @TableField("equipment_type") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE) + private String equipmentType; + + @ApiModelProperty("设备类型名称") + @TableField(exist = false) + @ExcelProperty("设备类型") + private String equipmentTypeName; /** * 设备名称 @@ -113,6 +118,10 @@ @ExcelProperty("备注") private String remark; + @ApiModelProperty("计量站是否可检(1西昌可检;2海口可检,多个用,拼接)") + @TableField("inspectable") + private String inspectable; + /** * 创建人id */ 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml index a9033f9..c49776d 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml @@ -4,71 +4,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - id, approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + id + , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction + + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml index 62449ec..f4d9936 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml @@ -42,6 +42,12 @@ + + + + + + @@ -50,12 +56,20 @@ product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid as certificateValid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time, - is_del,model_id,help_instruction + is_del,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction select - from eqpt_equipment_info + from eqpt_equipment_info_view ${ew.sqlSegment} @@ -110,7 +124,7 @@ eqpt_remind_all as ( select e.id as equipment_id, - IFNULL(m.remind_time,0) as remind_time + IFNULL(m.remind_time,90) as remind_time from eqpt_equipment_info e left join eqpt_remind m on e.id = m.equipment_id ), @@ -118,20 +132,32 @@ select id,task_name,CONCAT(DATE_FORMAT(start_time,'%Y-%m-%d'),"~",DATE_FORMAT(end_time,'%Y-%m-%d')) as time_ext,start_time,end_time from eqpt_equipment_task_info ), + latest_sample_relation AS ( + SELECT * + FROM biz_business_order_sample_relation a + WHERE id = ( + SELECT max( id ) + FROM biz_business_order_sample_relation b + WHERE a.sample_id = b.sample_id ) + ), eqpt_ext as ( select e.* , - DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, - GROUP_CONCAT(t.task_name) as taskNames, - GROUP_CONCAT(t.time_ext) as taskTimes, - GROUP_CONCAT(t.id) as taskIds, - min(t.start_time) as task_start_time, - max(t.end_time) as task_end_time - from eqpt_equipment_info e + DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, + GROUP_CONCAT(t.task_name) as taskNames, + GROUP_CONCAT(t.time_ext) as taskTimes, + GROUP_CONCAT(t.id) as taskIds, + min(t.start_time) as task_start_time, + max(t.end_time) as task_end_time, + (case when lsr.sample_status in + #{item} + then 1 else 0 end) as check_status + from eqpt_equipment_info_view e left join eqpt_remind_all a on e.id = a.equipment_id left join eqpt_equipment_task_relation r on e.id = r.equipment_id left join task_ext t on r.task_id = t.id + left join latest_sample_relation lsr on lsr.sample_id = e.id where e.certificate_valid is not null - group by e.id,e.certificate_valid,a.remind_time + group by e.id,e.certificate_valid,a.remind_time,lsr.sample_status ) select * from eqpt_ext @@ -163,6 +189,9 @@ e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, + e.model as model, + e.company_id as companyId, + e.manufacture_no as manufactureNo, c.certificate_report_no as certificateNo, c.certificate_report_name as certificateName, '西昌卫星发射中心计量测试站' as checkOrganization, @@ -173,7 +202,7 @@ c.update_time as updateTime, '1' as certificateType, c.remark as remark - from biz_business_certificate_report c ,eqpt_equipment_info e + from biz_business_certificate_report c ,eqpt_equipment_info_view e where c.sample_id = e.id diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml index 097c405..2ddebe6 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,6 +13,7 @@ + @@ -21,7 +22,7 @@ - id, model_no, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, create_user_id, create_dept_id, create_time, update_time + id, equipment_type, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, inspectable, create_user_id, create_dept_id, create_time, update_time + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java index c69cc82..d1a2bd1 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.service.equipment.IEquipmentGroupInfoService; import io.swagger.annotations.Api; @@ -60,14 +61,11 @@ return ReturnUtil.success(); } - @ApiImplicitParams({ - @ApiImplicitParam(name = "groupName",value = "分组名称",dataType = "String",paramType = "query") - }) @ApiOperation("分组分页列表") - @GetMapping("listPage") - public ReturnDTO> listPage(String groupName){ + @PostMapping("listPage") + public ReturnDTO> listPage(@RequestBody EquipmentGroupQueryForm queryForm){ Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,groupName))); + return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,queryForm))); } @ApiImplicitParams({ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 56b6814..3130c5c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.business.LabelBindDTO; import com.casic.missiles.dto.equipment.*; import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; import com.casic.missiles.service.equipment.IEquipmentInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -36,6 +37,14 @@ public class EquipmentInfoController extends ExportController { private final IEquipmentInfoService equipmentInfoService; + private final IEquipmentInfoApprovalService approvalService; + + @ApiOperation("直接编辑设备") + @PostMapping("/info/update") + public ReturnDTO update(@RequestBody EquipmentApprovalForm approvalForm){ + approvalService.updateEquipmentInfo(approvalForm); + return ReturnUtil.success(); + } @ApiOperation("设备分页列表") @PostMapping("/info/listPage") @@ -152,5 +161,14 @@ return ReturnUtil.success(); } + @ApiOperation("到期提醒分页列表") + @PostMapping("/orderSelect/listPage") + @ResponseBody + public ReturnDTO> EquipmentOrderSelectQueryForm(@RequestBody EquipmentRemindQueryForm queryForm) { + Page page = PageFactory.defaultPage(); + page = equipmentInfoService.orderSelectListPage(page, queryForm); + return ReturnUtil.success(super.packForBT(page)); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index 044d245..ccbd668 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -103,14 +103,20 @@ @ApiOperation("设备名称列表") @GetMapping("listEquipmentName") - public ReturnDTO> listEquipmentName(){ - return ReturnUtil.success(modelInfoService.listEquipmentName()); + public ReturnDTO> listEquipmentName(String equipmentType){ + return ReturnUtil.success(modelInfoService.listEquipmentName(equipmentType)); } @ApiOperation("规格型号列表") @GetMapping("listModel") - public ReturnDTO> listModel(String equipmentName){ - return ReturnUtil.success(modelInfoService.listModel(equipmentName)); + public ReturnDTO> listModel(String equipmentType, String equipmentName){ + return ReturnUtil.success(modelInfoService.listModel(equipmentType,equipmentName)); + } + + @ApiOperation("获取默认检定去向") + @GetMapping("defaultCheckDestination") + public ReturnDTO defaultCheckDestination(Long modelId, Long companyId){ + return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java index 7e79008..1fc1f9c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.CertificateUpdate; +import com.casic.missiles.dto.equipment.LimitInstructionUpdate; import com.casic.missiles.model.plan.OrderReceive; import com.casic.missiles.model.plan.SampleStatueUpdate; import com.casic.missiles.service.equipment.IEquipmentInfoService; @@ -55,4 +56,11 @@ return ReturnUtil.success(); } + @ApiOperation("更新限用说明") + @PostMapping("/limitInstructionUpdate") + public ReturnDTO updateLimitInstruction(@RequestBody LimitInstructionUpdate updateForm) { + equipmentInfoService.updateLimitInstruction(updateForm.getEquipmentId(), updateForm.getLimitInstruction()); + return ReturnUtil.success(); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java index e314003..73d02ec 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java @@ -1,7 +1,18 @@ package com.casic.missiles.controller.system; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.system.SystemLocation; +import com.casic.missiles.service.system.ISystemLocationService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** *

@@ -11,8 +22,45 @@ * @author zhangyingjie * @since 2023-11-15 */ +@Api(tags = "安装位置管理") @RestController -@RequestMapping("/system-location") -public class SystemLocationController { +@RequestMapping("/system/location") +@RequiredArgsConstructor +public class SystemLocationController extends BaseController { + + private final ISystemLocationService locationService; + + @PostMapping("add") + public ReturnDTO add(@RequestBody SystemLocation systemLocation){ + locationService.add(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("update") + public ReturnDTO update(@RequestBody SystemLocation systemLocation){ + locationService.update(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("delete") + public ReturnDTO delete(@RequestBody SystemLocation systemLocation){ + locationService.delete(systemLocation); + return ReturnUtil.success(); + } + + @GetMapping("listPage") + public ReturnDTO> listPage(Long searchId,Long positionId, String installLocation){ + Page page = PageFactory.defaultPage(); + page = locationService.listPage(page,searchId,positionId, installLocation); + return ReturnUtil.success(super.packForBT(page)); + } + + @GetMapping("list") + public ReturnDTO> list(Long searchId,Long positionId, String installLocation){ + List list = locationService.list(searchId,positionId, installLocation); + return ReturnUtil.success(list); + } + + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java index f9e2f91..d64634a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java @@ -1,6 +1,8 @@ package com.casic.missiles.controller.system; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; @@ -10,6 +12,8 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** *

* 受检系统-系统管理-岗位管理 前端控制器 @@ -22,7 +26,7 @@ @RestController @RequestMapping("/system/position") @RequiredArgsConstructor -public class SystemPositionController { +public class SystemPositionController extends BaseController { private final ISystemPositionService positionService; @@ -45,16 +49,16 @@ } @GetMapping("listPage") - public ReturnDTO listPage(Long searchId,String positionName){ + public ReturnDTO> listPage(Long searchId, String positionName){ Page page = PageFactory.defaultPage(); - positionService.listPage(page,searchId,positionName); - return ReturnUtil.success(); + page = positionService.listPage(page,searchId,positionName); + return ReturnUtil.success(super.packForBT(page)); } @GetMapping("list") - public ReturnDTO list(Long searchId,String positionName){ - positionService.list(searchId,positionName); - return ReturnUtil.success(); + public ReturnDTO> list(Long searchId,String positionName){ + List list = positionService.list(searchId,positionName); + return ReturnUtil.success(list); } diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index 6f0359b..88cce74 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -72,9 +72,9 @@ addresses: http://111.198.10.15:21605/xxl-job-admin executor: # 此执行器的名称 - appname: casic-metering-job + appname: casic-metering-xc-eqpt-job # 此执行器的ip、端口,每个节点对应自己的ip,端口用于任务执行的通信 - ip: 127.0.0.1 + ip: 192.168.20.33 port: 9999 # 此执行器的日志存放路径 logpath: logs/xxl-job/casic-metering-job @@ -122,7 +122,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_remind_relation + table-name: eqpt_equipment_modify_log prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index 7b3c7a2..29a820a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -18,11 +18,15 @@ */ // 系统前缀 String DICT_PREFIX = "eqpt"; + + String EQUIPMENT_TYPE = DICT_PREFIX + "DeviceCategory"; //受检设备使用状态 String EQUIPMENT_USAGE_STATUS = DICT_PREFIX + "DeviceUseStatus"; //受检设备重要等级 String EQUIPMENT_LEVEL = DICT_PREFIX + "DeviceLevel"; + String EQUIPMENT_QUALITY = DICT_PREFIX + "DeviceQuality"; + String EQUIPMENT_CATEGORY = DICT_PREFIX + "DeviceType"; // 设备申请类型 String EQUIPMENT_APPROVAL_TYPE = DICT_PREFIX + "EquipmentApprovalType"; @@ -30,6 +34,8 @@ String EQUIPMENT_STATUS_APPROVAL_TYPE = DICT_PREFIX + "EquipmentStatusApprovalType"; // 设备计量标识 String EQUIPMENT_METER_IDENTITY = DICT_PREFIX + "MeterIdentify"; + + String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; // 计量计划计划分类 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java index 694e48b..aefff4a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.equipment; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.model.equipment.EquipmentAttachment; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentTechnicalTarget; @@ -13,6 +14,8 @@ @Data public class EquipmentApprovalForm extends EquipmentInfoApproval { + @ApiModelProperty("规格型号说明书") + private String instructionsFile; @ApiModelProperty("技术指标列表") private List technicalTargetList; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java index f6448c6..c814444 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java @@ -12,6 +12,9 @@ @Setter public class EquipmentInfoForm extends EquipmentInfo{ + @ApiModelProperty("规格型号说明书") + private String instructionsFile; + @ApiModelProperty("组别信息") @TableField(exist = false) private List groupInfos; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java index bcec504..7803273 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java @@ -10,6 +10,9 @@ @Setter public class EquipmentModelQueryForm { + @ApiModelProperty("设备类型") + private String equipmentType; + @ApiModelProperty("设备名称") private String equipmentName; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java index 03fc0f1..fc2acc8 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java @@ -32,12 +32,21 @@ @ApiModelProperty("所在单位") private Long companyId; - @ApiModelProperty("使用部门") + + @ApiModelProperty("使用部门(单个)") + private Long deptId; + @ApiModelProperty("使用部门(列表)") private List deptIds; + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty("使用岗位") private String usePosition; + @ApiModelProperty("负责人ID") + private Long directorId; + @ApiModelProperty("负责人") private String directorName; @@ -50,6 +59,9 @@ @ApiModelProperty("安装位置") private String installLocation; + @ApiModelProperty("分组id") + private Long groupId; + @ApiModelProperty("参试任务id") private Long taskId; @@ -75,4 +87,5 @@ @ApiModelProperty("使用状态列表[状态维护选择设备时用]") private List usageStatusList; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java index 30b5af3..b6afd18 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java @@ -73,5 +73,52 @@ @TableField("remark") private String remark; + /** + * 所在单位id + */ + @ApiModelProperty("所在单位id") + @TableField(exist = false) + private Long companyId; + + @ApiModelProperty("所在单位名称") + @TableField(exist = false) + private String companyName; + + /** + * 使用部门id + */ + @ApiModelProperty("使用部门id") + @TableField(exist = false) + private Long deptId; + + @ApiModelProperty("使用部门名称") + @TableField(exist = false) + private String deptName; + + /** + * 分系统id + */ + @ApiModelProperty(value = "分系统id") + @TableField(exist = false) + private Long subSystemId; + + @ApiModelProperty("分系统名称") + @TableField(exist = false) + private String subSystemName; + + /** + * 使用岗位id + */ + @ApiModelProperty("岗位ID") + @TableField("position_id") + private Long positionId; + + /** + * 使用岗位名称 + */ + @ApiModelProperty("岗位名称") + @TableField(exist = false) + private String positionName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java index 36575f6..b4f78b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.equipment; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -7,6 +8,8 @@ import java.io.Serializable; import java.util.Date; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.Getter; @@ -55,12 +58,35 @@ @ApiModelProperty("型号规格") @TableField(exist = false) private String model; + + @ApiModelProperty("出厂编号") + @TableField(exist = false) + private String manufactureNo; + @ApiModelProperty("生产厂家") + @TableField(exist = false) + private String manufacturer; + + /** + * 出厂编号 + */ + @ApiModelProperty("负责人") @TableField(exist = false) private String directorName; @ApiModelProperty("计量标识") @TableField(exist = false) private String meterIdentify; + + @ApiModelProperty("计量标识名称") + @TableField(exist = false) + private String meterIdentifyName; + + @ApiModelProperty("使用状态(字典code)") + @TableField(exist = false) + private String usageStatus; + @ApiModelProperty("使用状态名称") + @TableField(exist = false) + private String usageStatusName; @ApiModelProperty("证书有效期") @TableField(exist = false) private Date certificateValid; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java index 21294cf..a8392ff 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java @@ -44,14 +44,14 @@ private static final long serialVersionUID = 1L; - @ApiModelProperty("主键") + @ApiModelProperty(value = "主键") @TableId("id") private Long id; /** * 设备编号 */ - @ApiModelProperty("设备编号") + @ApiModelProperty(value = "设备编号",notes = "统一编号") @TableField("equipment_no") @ExcelProperty(value = "统一编号",index = 0) private String equipmentNo; @@ -59,7 +59,7 @@ /** * 设备名称 */ - @ApiModelProperty("设备名称") + @ApiModelProperty(value = "设备名称",notes = "设备名称") @TableField("equipment_name") @ExcelProperty(value = "设备名称",index = 1) private String equipmentName; @@ -67,14 +67,18 @@ /** * 设备类型(1受检设备;2特种设备) */ - @ApiModelProperty("设备类型(1受检设备;2特种设备)") + @ApiModelProperty(value = "设备类型(1受检设备;2特种设备)",notes = "设备类型code") @TableField("equipment_type") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE) private String equipmentType; + @TableField(exist = false) + private String equipmentTypeName; + /** * 使用状态(字典code) */ - @ApiModelProperty("使用状态(字典code)") + @ApiModelProperty(value = "使用状态(字典code)",notes = "使用状态code") @TableField("usage_status") @DictCodeField(message = "使用状态", cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS) private String usageStatus; @@ -87,28 +91,32 @@ /** * 等级(字典code) */ - @ApiModelProperty("等级(字典code)") + @ApiModelProperty(value = "等级(字典code)",notes = "重要等级code") @TableField("level") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_LEVEL) private String level; + @TableField(exist = false) + private String levelName; + /** * 生产国家 */ - @ApiModelProperty("生产国家") + @ApiModelProperty(value = "生产国家",notes = "生产国家") @TableField("product_country") private String productCountry; /** * 生产厂家 */ - @ApiModelProperty("生产厂家") + @ApiModelProperty(value = "生产厂家",notes = "生产厂家") @TableField("manufacturer") private String manufacturer; /** * 出厂编号 */ - @ApiModelProperty("出厂编号") + @ApiModelProperty(value = "出厂编号",notes = "出厂编号") @TableField("manufacture_no") @ExcelProperty(value = "出厂编号",index = 3) private String manufactureNo; @@ -116,28 +124,28 @@ /** * 生产日期 */ - @ApiModelProperty("生产日期") + @ApiModelProperty(value = "生产日期",notes = "生产日期") @TableField("product_date") private Date productDate; /** * 单价(万元) */ - @ApiModelProperty("单价(万元)") + @ApiModelProperty(value = "单价(万元)",notes = "设备单价(万元)") @TableField("unit_price") private BigDecimal unitPrice; /** * 购进日期 */ - @ApiModelProperty("购进日期") + @ApiModelProperty(value = "购进日期",notes = "购进日期") @TableField("purchase_date") private Date purchaseDate; /** * 型号规格 */ - @ApiModelProperty("型号规格") + @ApiModelProperty(value = "型号规格",notes = "型号规格") @TableField("model") @ExcelProperty(value = "型号规格",index = 2) private String model; @@ -145,14 +153,18 @@ /** * 质量状况 */ - @ApiModelProperty("质量状况") + @ApiModelProperty(value = "质量状况",notes = "质量状况code") @TableField("quality_condition") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_QUALITY) private String qualityCondition; + @TableField(exist = false) + private String qualityConditionName; + /** * 所在单位id */ - @ApiModelProperty("所在单位id") + @ApiModelProperty(value = "所在单位id",notes = "所在单位id") @TableField("company_id") private Long companyId; @@ -163,7 +175,7 @@ /** * 使用部门id */ - @ApiModelProperty("使用部门id") + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") @TableField("dept_id") private Long deptId; @@ -174,14 +186,17 @@ /** * 设备分类(字典code) */ - @ApiModelProperty("设备分类(字典code)") + @ApiModelProperty(value = "设备分类(字典code)",notes = "设备分类code") @TableField("category") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CATEGORY) private String category; + @TableField(exist = false) + private String categoryName; /** * 检定周期(月) */ - @ApiModelProperty("检定周期(月)") + @ApiModelProperty(value = "检定周期(月)",notes = "检定周期(月)") @TableField("check_cycle") @ExcelProperty(value = "检定周期(月)",index = 6) @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, horizontalAlignment = HorizontalAlignmentEnum.LEFT) @@ -190,7 +205,7 @@ /** * 备注 */ - @ApiModelProperty("备注") + @ApiModelProperty(value = "备注",notes = "备注") @TableField("remark") @ExcelProperty(value = "备注",index = 9) private String remark; @@ -198,28 +213,28 @@ /** * 说明书(minio存储文件名)(多个用,拼接) */ - @ApiModelProperty("说明书(minio存储文件名)(多个用,拼接)") + @ApiModelProperty(value = "说明书(minio存储文件名)(多个用,拼接)") @TableField("instructions_file") private String instructionsFile; /** * 检定机构 */ - @ApiModelProperty("检定机构") + @ApiModelProperty(value = "检定机构",notes = "检定(校准)机构") @TableField("check_organization") private String checkOrganization; /** * 检定日期 */ - @ApiModelProperty("检定日期") + @ApiModelProperty(value = "检定日期",notes = "检定(校准)日期") @TableField("check_date") private Date checkDate; /** * 证书有效期 */ - @ApiModelProperty("证书有效期") + @ApiModelProperty(value = "证书有效期",notes = "证书有效期") @TableField("certificate_valid") @ExcelProperty(value = "证书有效期",index = 7, converter = DateExcelConverter.class) private Date certificateValid; @@ -227,7 +242,7 @@ /** * 计量标识 */ - @ApiModelProperty("计量标识") + @ApiModelProperty(value = "计量标识",notes = "计量标识code") @TableField("meter_identify") @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY) private String meterIdentify; @@ -237,17 +252,28 @@ @ExcelProperty(value = "计量标识",index = 5) private String meterIdentifyName; + @ApiModelProperty(value = "使用岗位id",notes = "使用岗位id") + @TableField("use_position_id") + private String usePositionId; + /** * 使用岗位 */ @ApiModelProperty("使用岗位") - @TableField("use_position") + @TableField(exist = false) @ExcelProperty(value = "使用岗位",index = 4) private String usePosition; /** * 负责人 */ + @ApiModelProperty(value = "负责人id",notes = "负责人id") + @TableField("director_id") + private String directorId; + + /** + * 负责人 + */ @ApiModelProperty("负责人") @TableField("director_name") private String directorName; @@ -255,17 +281,25 @@ /** * RFID标签绑定 */ - @ApiModelProperty("RFID标签绑定") + @ApiModelProperty(value = "RFID标签绑定",notes = "RFID标签绑定") @TableField("RFID") private String rfid; /** * 在用信息(字典code) */ - @ApiModelProperty("在用信息(字典code)") + @ApiModelProperty(value = "在用信息(字典code)",notes = "在用信息code") @TableField("use_sign") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE) private String useSign; + @TableField(exist = false) + private String useSignName; + + @ApiModelProperty(value = "安装位置id",notes = "安装位置id") + @TableField("install_location_id") + private Long installLocationId; + /** * 安装位置(选择) */ @@ -276,7 +310,7 @@ /** * 安装位置(自定义编写) */ - @ApiModelProperty("安装位置(自定义编写)") + @ApiModelProperty(value = "安装位置(自定义编写)",notes = "详细位置") @TableField("install_location_ext") private String installLocationExt; @@ -290,7 +324,7 @@ /** * 备注(扩展) */ - @ApiModelProperty("备注(扩展)") + @ApiModelProperty(value = "备注(扩展)",notes = "备注") @TableField("remark_ext") private String remarkExt; @@ -327,14 +361,25 @@ @TableLogic(value = "0",delval = "1") private Integer isDel; - @ApiModelProperty("规格型号id") + @ApiModelProperty(value = "规格型号id",notes = "规格型号id") @TableField("model_id") private Long modelId; - @ApiModelProperty("辅助字段") + @ApiModelProperty(value = "辅助字段",notes = "辅助字段") @TableField("help_instruction") private String helpInstruction; + @ApiModelProperty(value = "检定去向",notes = "检定去向") + @TableField("check_destination") + private String checkDestination; + + @ApiModelProperty(value = "限用说明",notes = "限用说明") + @TableField("limit_instruction") + private String limitInstruction; + + @ApiModelProperty("分组名称") + @TableField(exist = false) + private String groupNames; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java index 13eeef8..060aa33 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java @@ -101,8 +101,13 @@ */ @ApiModelProperty("使用状态(字典code)") @TableField("usage_status") + @DictCodeField(message = "使用状态", cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS) private String usageStatus; + @ApiModelProperty("使用状态名称") + @TableField(exist = false) + private String usageStatusName; + /** * 等级(字典code) */ @@ -253,6 +258,10 @@ @TableField(exist = false) private String meterIdentifyName; + @ApiModelProperty("使用岗位id") + @TableField("use_position_id") + private String usePositionId; + /** * 使用岗位 */ @@ -263,6 +272,12 @@ /** * 负责人 */ + @ApiModelProperty("负责人id") + @TableField("director_id") + private String directorId; + /** + * 负责人 + */ @ApiModelProperty("负责人") @TableField("director_name") private String directorName; @@ -281,6 +296,10 @@ @TableField("use_sign") private String useSign; + @ApiModelProperty("安装位置id") + @TableField("install_location_id") + private Long installLocationId; + /** * 安装位置(选择) */ @@ -347,6 +366,14 @@ @TableField("help_instruction") private String helpInstruction; + @ApiModelProperty("检定去向") + @TableField("check_destination") + private String checkDestination; + + @ApiModelProperty("限用说明") + @TableField("limit_instruction") + private String limitInstruction; + @ApiModelProperty("任务id") @TableField(exist = false) private String taskId; @@ -363,4 +390,7 @@ @TableField(exist = false) private List taskInfos; + @ApiModelProperty("分组名称") + @TableField(exist = false) + private String groupNames; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java index 471e8c8..d4b20e9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java @@ -48,10 +48,15 @@ /** * 型号规格编号 */ - @ApiModelProperty("型号规格编号") - @TableField("model_no") - @ExcelProperty("型号规格编号") - private String modelNo; + @ApiModelProperty("设备类型") + @TableField("equipment_type") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE) + private String equipmentType; + + @ApiModelProperty("设备类型名称") + @TableField(exist = false) + @ExcelProperty("设备类型") + private String equipmentTypeName; /** * 设备名称 @@ -113,6 +118,10 @@ @ExcelProperty("备注") private String remark; + @ApiModelProperty("计量站是否可检(1西昌可检;2海口可检,多个用,拼接)") + @TableField("inspectable") + private String inspectable; + /** * 创建人id */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java index d495e2e..a78c41a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java @@ -83,6 +83,7 @@ /** * 安装位置 */ + @ApiModelProperty("安装位置") @TableField("install_location") private String installLocation; 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml index a9033f9..c49776d 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml @@ -4,71 +4,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - id, approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + id + , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction + + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml index 62449ec..f4d9936 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml @@ -42,6 +42,12 @@ + + + + + + @@ -50,12 +56,20 @@ product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid as certificateValid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time, - is_del,model_id,help_instruction + is_del,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction select - from eqpt_equipment_info + from eqpt_equipment_info_view ${ew.sqlSegment} @@ -110,7 +124,7 @@ eqpt_remind_all as ( select e.id as equipment_id, - IFNULL(m.remind_time,0) as remind_time + IFNULL(m.remind_time,90) as remind_time from eqpt_equipment_info e left join eqpt_remind m on e.id = m.equipment_id ), @@ -118,20 +132,32 @@ select id,task_name,CONCAT(DATE_FORMAT(start_time,'%Y-%m-%d'),"~",DATE_FORMAT(end_time,'%Y-%m-%d')) as time_ext,start_time,end_time from eqpt_equipment_task_info ), + latest_sample_relation AS ( + SELECT * + FROM biz_business_order_sample_relation a + WHERE id = ( + SELECT max( id ) + FROM biz_business_order_sample_relation b + WHERE a.sample_id = b.sample_id ) + ), eqpt_ext as ( select e.* , - DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, - GROUP_CONCAT(t.task_name) as taskNames, - GROUP_CONCAT(t.time_ext) as taskTimes, - GROUP_CONCAT(t.id) as taskIds, - min(t.start_time) as task_start_time, - max(t.end_time) as task_end_time - from eqpt_equipment_info e + DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, + GROUP_CONCAT(t.task_name) as taskNames, + GROUP_CONCAT(t.time_ext) as taskTimes, + GROUP_CONCAT(t.id) as taskIds, + min(t.start_time) as task_start_time, + max(t.end_time) as task_end_time, + (case when lsr.sample_status in + #{item} + then 1 else 0 end) as check_status + from eqpt_equipment_info_view e left join eqpt_remind_all a on e.id = a.equipment_id left join eqpt_equipment_task_relation r on e.id = r.equipment_id left join task_ext t on r.task_id = t.id + left join latest_sample_relation lsr on lsr.sample_id = e.id where e.certificate_valid is not null - group by e.id,e.certificate_valid,a.remind_time + group by e.id,e.certificate_valid,a.remind_time,lsr.sample_status ) select * from eqpt_ext @@ -163,6 +189,9 @@ e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, + e.model as model, + e.company_id as companyId, + e.manufacture_no as manufactureNo, c.certificate_report_no as certificateNo, c.certificate_report_name as certificateName, '西昌卫星发射中心计量测试站' as checkOrganization, @@ -173,7 +202,7 @@ c.update_time as updateTime, '1' as certificateType, c.remark as remark - from biz_business_certificate_report c ,eqpt_equipment_info e + from biz_business_certificate_report c ,eqpt_equipment_info_view e where c.sample_id = e.id diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml index 097c405..2ddebe6 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,6 +13,7 @@ + @@ -21,7 +22,7 @@ - id, model_no, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, create_user_id, create_dept_id, create_time, update_time + id, equipment_type, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, inspectable, create_user_id, create_dept_id, create_time, update_time + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java index c69cc82..d1a2bd1 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.service.equipment.IEquipmentGroupInfoService; import io.swagger.annotations.Api; @@ -60,14 +61,11 @@ return ReturnUtil.success(); } - @ApiImplicitParams({ - @ApiImplicitParam(name = "groupName",value = "分组名称",dataType = "String",paramType = "query") - }) @ApiOperation("分组分页列表") - @GetMapping("listPage") - public ReturnDTO> listPage(String groupName){ + @PostMapping("listPage") + public ReturnDTO> listPage(@RequestBody EquipmentGroupQueryForm queryForm){ Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,groupName))); + return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,queryForm))); } @ApiImplicitParams({ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 56b6814..3130c5c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.business.LabelBindDTO; import com.casic.missiles.dto.equipment.*; import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; import com.casic.missiles.service.equipment.IEquipmentInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -36,6 +37,14 @@ public class EquipmentInfoController extends ExportController { private final IEquipmentInfoService equipmentInfoService; + private final IEquipmentInfoApprovalService approvalService; + + @ApiOperation("直接编辑设备") + @PostMapping("/info/update") + public ReturnDTO update(@RequestBody EquipmentApprovalForm approvalForm){ + approvalService.updateEquipmentInfo(approvalForm); + return ReturnUtil.success(); + } @ApiOperation("设备分页列表") @PostMapping("/info/listPage") @@ -152,5 +161,14 @@ return ReturnUtil.success(); } + @ApiOperation("到期提醒分页列表") + @PostMapping("/orderSelect/listPage") + @ResponseBody + public ReturnDTO> EquipmentOrderSelectQueryForm(@RequestBody EquipmentRemindQueryForm queryForm) { + Page page = PageFactory.defaultPage(); + page = equipmentInfoService.orderSelectListPage(page, queryForm); + return ReturnUtil.success(super.packForBT(page)); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index 044d245..ccbd668 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -103,14 +103,20 @@ @ApiOperation("设备名称列表") @GetMapping("listEquipmentName") - public ReturnDTO> listEquipmentName(){ - return ReturnUtil.success(modelInfoService.listEquipmentName()); + public ReturnDTO> listEquipmentName(String equipmentType){ + return ReturnUtil.success(modelInfoService.listEquipmentName(equipmentType)); } @ApiOperation("规格型号列表") @GetMapping("listModel") - public ReturnDTO> listModel(String equipmentName){ - return ReturnUtil.success(modelInfoService.listModel(equipmentName)); + public ReturnDTO> listModel(String equipmentType, String equipmentName){ + return ReturnUtil.success(modelInfoService.listModel(equipmentType,equipmentName)); + } + + @ApiOperation("获取默认检定去向") + @GetMapping("defaultCheckDestination") + public ReturnDTO defaultCheckDestination(Long modelId, Long companyId){ + return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java index 7e79008..1fc1f9c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.CertificateUpdate; +import com.casic.missiles.dto.equipment.LimitInstructionUpdate; import com.casic.missiles.model.plan.OrderReceive; import com.casic.missiles.model.plan.SampleStatueUpdate; import com.casic.missiles.service.equipment.IEquipmentInfoService; @@ -55,4 +56,11 @@ return ReturnUtil.success(); } + @ApiOperation("更新限用说明") + @PostMapping("/limitInstructionUpdate") + public ReturnDTO updateLimitInstruction(@RequestBody LimitInstructionUpdate updateForm) { + equipmentInfoService.updateLimitInstruction(updateForm.getEquipmentId(), updateForm.getLimitInstruction()); + return ReturnUtil.success(); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java index e314003..73d02ec 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java @@ -1,7 +1,18 @@ package com.casic.missiles.controller.system; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.system.SystemLocation; +import com.casic.missiles.service.system.ISystemLocationService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** *

@@ -11,8 +22,45 @@ * @author zhangyingjie * @since 2023-11-15 */ +@Api(tags = "安装位置管理") @RestController -@RequestMapping("/system-location") -public class SystemLocationController { +@RequestMapping("/system/location") +@RequiredArgsConstructor +public class SystemLocationController extends BaseController { + + private final ISystemLocationService locationService; + + @PostMapping("add") + public ReturnDTO add(@RequestBody SystemLocation systemLocation){ + locationService.add(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("update") + public ReturnDTO update(@RequestBody SystemLocation systemLocation){ + locationService.update(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("delete") + public ReturnDTO delete(@RequestBody SystemLocation systemLocation){ + locationService.delete(systemLocation); + return ReturnUtil.success(); + } + + @GetMapping("listPage") + public ReturnDTO> listPage(Long searchId,Long positionId, String installLocation){ + Page page = PageFactory.defaultPage(); + page = locationService.listPage(page,searchId,positionId, installLocation); + return ReturnUtil.success(super.packForBT(page)); + } + + @GetMapping("list") + public ReturnDTO> list(Long searchId,Long positionId, String installLocation){ + List list = locationService.list(searchId,positionId, installLocation); + return ReturnUtil.success(list); + } + + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java index f9e2f91..d64634a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java @@ -1,6 +1,8 @@ package com.casic.missiles.controller.system; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; @@ -10,6 +12,8 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** *

* 受检系统-系统管理-岗位管理 前端控制器 @@ -22,7 +26,7 @@ @RestController @RequestMapping("/system/position") @RequiredArgsConstructor -public class SystemPositionController { +public class SystemPositionController extends BaseController { private final ISystemPositionService positionService; @@ -45,16 +49,16 @@ } @GetMapping("listPage") - public ReturnDTO listPage(Long searchId,String positionName){ + public ReturnDTO> listPage(Long searchId, String positionName){ Page page = PageFactory.defaultPage(); - positionService.listPage(page,searchId,positionName); - return ReturnUtil.success(); + page = positionService.listPage(page,searchId,positionName); + return ReturnUtil.success(super.packForBT(page)); } @GetMapping("list") - public ReturnDTO list(Long searchId,String positionName){ - positionService.list(searchId,positionName); - return ReturnUtil.success(); + public ReturnDTO> list(Long searchId,String positionName){ + List list = positionService.list(searchId,positionName); + return ReturnUtil.success(list); } diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index 6f0359b..88cce74 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -72,9 +72,9 @@ addresses: http://111.198.10.15:21605/xxl-job-admin executor: # 此执行器的名称 - appname: casic-metering-job + appname: casic-metering-xc-eqpt-job # 此执行器的ip、端口,每个节点对应自己的ip,端口用于任务执行的通信 - ip: 127.0.0.1 + ip: 192.168.20.33 port: 9999 # 此执行器的日志存放路径 logpath: logs/xxl-job/casic-metering-job @@ -122,7 +122,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_remind_relation + table-name: eqpt_equipment_modify_log prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index 7b3c7a2..29a820a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -18,11 +18,15 @@ */ // 系统前缀 String DICT_PREFIX = "eqpt"; + + String EQUIPMENT_TYPE = DICT_PREFIX + "DeviceCategory"; //受检设备使用状态 String EQUIPMENT_USAGE_STATUS = DICT_PREFIX + "DeviceUseStatus"; //受检设备重要等级 String EQUIPMENT_LEVEL = DICT_PREFIX + "DeviceLevel"; + String EQUIPMENT_QUALITY = DICT_PREFIX + "DeviceQuality"; + String EQUIPMENT_CATEGORY = DICT_PREFIX + "DeviceType"; // 设备申请类型 String EQUIPMENT_APPROVAL_TYPE = DICT_PREFIX + "EquipmentApprovalType"; @@ -30,6 +34,8 @@ String EQUIPMENT_STATUS_APPROVAL_TYPE = DICT_PREFIX + "EquipmentStatusApprovalType"; // 设备计量标识 String EQUIPMENT_METER_IDENTITY = DICT_PREFIX + "MeterIdentify"; + + String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; // 计量计划计划分类 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java index 694e48b..aefff4a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.equipment; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.model.equipment.EquipmentAttachment; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentTechnicalTarget; @@ -13,6 +14,8 @@ @Data public class EquipmentApprovalForm extends EquipmentInfoApproval { + @ApiModelProperty("规格型号说明书") + private String instructionsFile; @ApiModelProperty("技术指标列表") private List technicalTargetList; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java index f6448c6..c814444 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java @@ -12,6 +12,9 @@ @Setter public class EquipmentInfoForm extends EquipmentInfo{ + @ApiModelProperty("规格型号说明书") + private String instructionsFile; + @ApiModelProperty("组别信息") @TableField(exist = false) private List groupInfos; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java index bcec504..7803273 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java @@ -10,6 +10,9 @@ @Setter public class EquipmentModelQueryForm { + @ApiModelProperty("设备类型") + private String equipmentType; + @ApiModelProperty("设备名称") private String equipmentName; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java index 03fc0f1..fc2acc8 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java @@ -32,12 +32,21 @@ @ApiModelProperty("所在单位") private Long companyId; - @ApiModelProperty("使用部门") + + @ApiModelProperty("使用部门(单个)") + private Long deptId; + @ApiModelProperty("使用部门(列表)") private List deptIds; + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty("使用岗位") private String usePosition; + @ApiModelProperty("负责人ID") + private Long directorId; + @ApiModelProperty("负责人") private String directorName; @@ -50,6 +59,9 @@ @ApiModelProperty("安装位置") private String installLocation; + @ApiModelProperty("分组id") + private Long groupId; + @ApiModelProperty("参试任务id") private Long taskId; @@ -75,4 +87,5 @@ @ApiModelProperty("使用状态列表[状态维护选择设备时用]") private List usageStatusList; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java index 30b5af3..b6afd18 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java @@ -73,5 +73,52 @@ @TableField("remark") private String remark; + /** + * 所在单位id + */ + @ApiModelProperty("所在单位id") + @TableField(exist = false) + private Long companyId; + + @ApiModelProperty("所在单位名称") + @TableField(exist = false) + private String companyName; + + /** + * 使用部门id + */ + @ApiModelProperty("使用部门id") + @TableField(exist = false) + private Long deptId; + + @ApiModelProperty("使用部门名称") + @TableField(exist = false) + private String deptName; + + /** + * 分系统id + */ + @ApiModelProperty(value = "分系统id") + @TableField(exist = false) + private Long subSystemId; + + @ApiModelProperty("分系统名称") + @TableField(exist = false) + private String subSystemName; + + /** + * 使用岗位id + */ + @ApiModelProperty("岗位ID") + @TableField("position_id") + private Long positionId; + + /** + * 使用岗位名称 + */ + @ApiModelProperty("岗位名称") + @TableField(exist = false) + private String positionName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java index 36575f6..b4f78b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.equipment; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -7,6 +8,8 @@ import java.io.Serializable; import java.util.Date; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.Getter; @@ -55,12 +58,35 @@ @ApiModelProperty("型号规格") @TableField(exist = false) private String model; + + @ApiModelProperty("出厂编号") + @TableField(exist = false) + private String manufactureNo; + @ApiModelProperty("生产厂家") + @TableField(exist = false) + private String manufacturer; + + /** + * 出厂编号 + */ + @ApiModelProperty("负责人") @TableField(exist = false) private String directorName; @ApiModelProperty("计量标识") @TableField(exist = false) private String meterIdentify; + + @ApiModelProperty("计量标识名称") + @TableField(exist = false) + private String meterIdentifyName; + + @ApiModelProperty("使用状态(字典code)") + @TableField(exist = false) + private String usageStatus; + @ApiModelProperty("使用状态名称") + @TableField(exist = false) + private String usageStatusName; @ApiModelProperty("证书有效期") @TableField(exist = false) private Date certificateValid; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java index 21294cf..a8392ff 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java @@ -44,14 +44,14 @@ private static final long serialVersionUID = 1L; - @ApiModelProperty("主键") + @ApiModelProperty(value = "主键") @TableId("id") private Long id; /** * 设备编号 */ - @ApiModelProperty("设备编号") + @ApiModelProperty(value = "设备编号",notes = "统一编号") @TableField("equipment_no") @ExcelProperty(value = "统一编号",index = 0) private String equipmentNo; @@ -59,7 +59,7 @@ /** * 设备名称 */ - @ApiModelProperty("设备名称") + @ApiModelProperty(value = "设备名称",notes = "设备名称") @TableField("equipment_name") @ExcelProperty(value = "设备名称",index = 1) private String equipmentName; @@ -67,14 +67,18 @@ /** * 设备类型(1受检设备;2特种设备) */ - @ApiModelProperty("设备类型(1受检设备;2特种设备)") + @ApiModelProperty(value = "设备类型(1受检设备;2特种设备)",notes = "设备类型code") @TableField("equipment_type") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE) private String equipmentType; + @TableField(exist = false) + private String equipmentTypeName; + /** * 使用状态(字典code) */ - @ApiModelProperty("使用状态(字典code)") + @ApiModelProperty(value = "使用状态(字典code)",notes = "使用状态code") @TableField("usage_status") @DictCodeField(message = "使用状态", cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS) private String usageStatus; @@ -87,28 +91,32 @@ /** * 等级(字典code) */ - @ApiModelProperty("等级(字典code)") + @ApiModelProperty(value = "等级(字典code)",notes = "重要等级code") @TableField("level") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_LEVEL) private String level; + @TableField(exist = false) + private String levelName; + /** * 生产国家 */ - @ApiModelProperty("生产国家") + @ApiModelProperty(value = "生产国家",notes = "生产国家") @TableField("product_country") private String productCountry; /** * 生产厂家 */ - @ApiModelProperty("生产厂家") + @ApiModelProperty(value = "生产厂家",notes = "生产厂家") @TableField("manufacturer") private String manufacturer; /** * 出厂编号 */ - @ApiModelProperty("出厂编号") + @ApiModelProperty(value = "出厂编号",notes = "出厂编号") @TableField("manufacture_no") @ExcelProperty(value = "出厂编号",index = 3) private String manufactureNo; @@ -116,28 +124,28 @@ /** * 生产日期 */ - @ApiModelProperty("生产日期") + @ApiModelProperty(value = "生产日期",notes = "生产日期") @TableField("product_date") private Date productDate; /** * 单价(万元) */ - @ApiModelProperty("单价(万元)") + @ApiModelProperty(value = "单价(万元)",notes = "设备单价(万元)") @TableField("unit_price") private BigDecimal unitPrice; /** * 购进日期 */ - @ApiModelProperty("购进日期") + @ApiModelProperty(value = "购进日期",notes = "购进日期") @TableField("purchase_date") private Date purchaseDate; /** * 型号规格 */ - @ApiModelProperty("型号规格") + @ApiModelProperty(value = "型号规格",notes = "型号规格") @TableField("model") @ExcelProperty(value = "型号规格",index = 2) private String model; @@ -145,14 +153,18 @@ /** * 质量状况 */ - @ApiModelProperty("质量状况") + @ApiModelProperty(value = "质量状况",notes = "质量状况code") @TableField("quality_condition") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_QUALITY) private String qualityCondition; + @TableField(exist = false) + private String qualityConditionName; + /** * 所在单位id */ - @ApiModelProperty("所在单位id") + @ApiModelProperty(value = "所在单位id",notes = "所在单位id") @TableField("company_id") private Long companyId; @@ -163,7 +175,7 @@ /** * 使用部门id */ - @ApiModelProperty("使用部门id") + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") @TableField("dept_id") private Long deptId; @@ -174,14 +186,17 @@ /** * 设备分类(字典code) */ - @ApiModelProperty("设备分类(字典code)") + @ApiModelProperty(value = "设备分类(字典code)",notes = "设备分类code") @TableField("category") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CATEGORY) private String category; + @TableField(exist = false) + private String categoryName; /** * 检定周期(月) */ - @ApiModelProperty("检定周期(月)") + @ApiModelProperty(value = "检定周期(月)",notes = "检定周期(月)") @TableField("check_cycle") @ExcelProperty(value = "检定周期(月)",index = 6) @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, horizontalAlignment = HorizontalAlignmentEnum.LEFT) @@ -190,7 +205,7 @@ /** * 备注 */ - @ApiModelProperty("备注") + @ApiModelProperty(value = "备注",notes = "备注") @TableField("remark") @ExcelProperty(value = "备注",index = 9) private String remark; @@ -198,28 +213,28 @@ /** * 说明书(minio存储文件名)(多个用,拼接) */ - @ApiModelProperty("说明书(minio存储文件名)(多个用,拼接)") + @ApiModelProperty(value = "说明书(minio存储文件名)(多个用,拼接)") @TableField("instructions_file") private String instructionsFile; /** * 检定机构 */ - @ApiModelProperty("检定机构") + @ApiModelProperty(value = "检定机构",notes = "检定(校准)机构") @TableField("check_organization") private String checkOrganization; /** * 检定日期 */ - @ApiModelProperty("检定日期") + @ApiModelProperty(value = "检定日期",notes = "检定(校准)日期") @TableField("check_date") private Date checkDate; /** * 证书有效期 */ - @ApiModelProperty("证书有效期") + @ApiModelProperty(value = "证书有效期",notes = "证书有效期") @TableField("certificate_valid") @ExcelProperty(value = "证书有效期",index = 7, converter = DateExcelConverter.class) private Date certificateValid; @@ -227,7 +242,7 @@ /** * 计量标识 */ - @ApiModelProperty("计量标识") + @ApiModelProperty(value = "计量标识",notes = "计量标识code") @TableField("meter_identify") @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY) private String meterIdentify; @@ -237,17 +252,28 @@ @ExcelProperty(value = "计量标识",index = 5) private String meterIdentifyName; + @ApiModelProperty(value = "使用岗位id",notes = "使用岗位id") + @TableField("use_position_id") + private String usePositionId; + /** * 使用岗位 */ @ApiModelProperty("使用岗位") - @TableField("use_position") + @TableField(exist = false) @ExcelProperty(value = "使用岗位",index = 4) private String usePosition; /** * 负责人 */ + @ApiModelProperty(value = "负责人id",notes = "负责人id") + @TableField("director_id") + private String directorId; + + /** + * 负责人 + */ @ApiModelProperty("负责人") @TableField("director_name") private String directorName; @@ -255,17 +281,25 @@ /** * RFID标签绑定 */ - @ApiModelProperty("RFID标签绑定") + @ApiModelProperty(value = "RFID标签绑定",notes = "RFID标签绑定") @TableField("RFID") private String rfid; /** * 在用信息(字典code) */ - @ApiModelProperty("在用信息(字典code)") + @ApiModelProperty(value = "在用信息(字典code)",notes = "在用信息code") @TableField("use_sign") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE) private String useSign; + @TableField(exist = false) + private String useSignName; + + @ApiModelProperty(value = "安装位置id",notes = "安装位置id") + @TableField("install_location_id") + private Long installLocationId; + /** * 安装位置(选择) */ @@ -276,7 +310,7 @@ /** * 安装位置(自定义编写) */ - @ApiModelProperty("安装位置(自定义编写)") + @ApiModelProperty(value = "安装位置(自定义编写)",notes = "详细位置") @TableField("install_location_ext") private String installLocationExt; @@ -290,7 +324,7 @@ /** * 备注(扩展) */ - @ApiModelProperty("备注(扩展)") + @ApiModelProperty(value = "备注(扩展)",notes = "备注") @TableField("remark_ext") private String remarkExt; @@ -327,14 +361,25 @@ @TableLogic(value = "0",delval = "1") private Integer isDel; - @ApiModelProperty("规格型号id") + @ApiModelProperty(value = "规格型号id",notes = "规格型号id") @TableField("model_id") private Long modelId; - @ApiModelProperty("辅助字段") + @ApiModelProperty(value = "辅助字段",notes = "辅助字段") @TableField("help_instruction") private String helpInstruction; + @ApiModelProperty(value = "检定去向",notes = "检定去向") + @TableField("check_destination") + private String checkDestination; + + @ApiModelProperty(value = "限用说明",notes = "限用说明") + @TableField("limit_instruction") + private String limitInstruction; + + @ApiModelProperty("分组名称") + @TableField(exist = false) + private String groupNames; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java index 13eeef8..060aa33 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java @@ -101,8 +101,13 @@ */ @ApiModelProperty("使用状态(字典code)") @TableField("usage_status") + @DictCodeField(message = "使用状态", cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS) private String usageStatus; + @ApiModelProperty("使用状态名称") + @TableField(exist = false) + private String usageStatusName; + /** * 等级(字典code) */ @@ -253,6 +258,10 @@ @TableField(exist = false) private String meterIdentifyName; + @ApiModelProperty("使用岗位id") + @TableField("use_position_id") + private String usePositionId; + /** * 使用岗位 */ @@ -263,6 +272,12 @@ /** * 负责人 */ + @ApiModelProperty("负责人id") + @TableField("director_id") + private String directorId; + /** + * 负责人 + */ @ApiModelProperty("负责人") @TableField("director_name") private String directorName; @@ -281,6 +296,10 @@ @TableField("use_sign") private String useSign; + @ApiModelProperty("安装位置id") + @TableField("install_location_id") + private Long installLocationId; + /** * 安装位置(选择) */ @@ -347,6 +366,14 @@ @TableField("help_instruction") private String helpInstruction; + @ApiModelProperty("检定去向") + @TableField("check_destination") + private String checkDestination; + + @ApiModelProperty("限用说明") + @TableField("limit_instruction") + private String limitInstruction; + @ApiModelProperty("任务id") @TableField(exist = false) private String taskId; @@ -363,4 +390,7 @@ @TableField(exist = false) private List taskInfos; + @ApiModelProperty("分组名称") + @TableField(exist = false) + private String groupNames; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java index 471e8c8..d4b20e9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java @@ -48,10 +48,15 @@ /** * 型号规格编号 */ - @ApiModelProperty("型号规格编号") - @TableField("model_no") - @ExcelProperty("型号规格编号") - private String modelNo; + @ApiModelProperty("设备类型") + @TableField("equipment_type") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE) + private String equipmentType; + + @ApiModelProperty("设备类型名称") + @TableField(exist = false) + @ExcelProperty("设备类型") + private String equipmentTypeName; /** * 设备名称 @@ -113,6 +118,10 @@ @ExcelProperty("备注") private String remark; + @ApiModelProperty("计量站是否可检(1西昌可检;2海口可检,多个用,拼接)") + @TableField("inspectable") + private String inspectable; + /** * 创建人id */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java index d495e2e..a78c41a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java @@ -83,6 +83,7 @@ /** * 安装位置 */ + @ApiModelProperty("安装位置") @TableField("install_location") private String installLocation; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java index d5417d4..633af3f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import java.util.List; @@ -23,7 +24,7 @@ void deleteGroup(Long groupId); - Page listPage(Page page, String groupName); + Page listPage(Page page, EquipmentGroupQueryForm queryForm); EquipmentGroupForm detail(Long groupId); 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml index a9033f9..c49776d 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml @@ -4,71 +4,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - id, approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + id + , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction + + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml index 62449ec..f4d9936 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml @@ -42,6 +42,12 @@ + + + + + + @@ -50,12 +56,20 @@ product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid as certificateValid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time, - is_del,model_id,help_instruction + is_del,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction select - from eqpt_equipment_info + from eqpt_equipment_info_view ${ew.sqlSegment} @@ -110,7 +124,7 @@ eqpt_remind_all as ( select e.id as equipment_id, - IFNULL(m.remind_time,0) as remind_time + IFNULL(m.remind_time,90) as remind_time from eqpt_equipment_info e left join eqpt_remind m on e.id = m.equipment_id ), @@ -118,20 +132,32 @@ select id,task_name,CONCAT(DATE_FORMAT(start_time,'%Y-%m-%d'),"~",DATE_FORMAT(end_time,'%Y-%m-%d')) as time_ext,start_time,end_time from eqpt_equipment_task_info ), + latest_sample_relation AS ( + SELECT * + FROM biz_business_order_sample_relation a + WHERE id = ( + SELECT max( id ) + FROM biz_business_order_sample_relation b + WHERE a.sample_id = b.sample_id ) + ), eqpt_ext as ( select e.* , - DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, - GROUP_CONCAT(t.task_name) as taskNames, - GROUP_CONCAT(t.time_ext) as taskTimes, - GROUP_CONCAT(t.id) as taskIds, - min(t.start_time) as task_start_time, - max(t.end_time) as task_end_time - from eqpt_equipment_info e + DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, + GROUP_CONCAT(t.task_name) as taskNames, + GROUP_CONCAT(t.time_ext) as taskTimes, + GROUP_CONCAT(t.id) as taskIds, + min(t.start_time) as task_start_time, + max(t.end_time) as task_end_time, + (case when lsr.sample_status in + #{item} + then 1 else 0 end) as check_status + from eqpt_equipment_info_view e left join eqpt_remind_all a on e.id = a.equipment_id left join eqpt_equipment_task_relation r on e.id = r.equipment_id left join task_ext t on r.task_id = t.id + left join latest_sample_relation lsr on lsr.sample_id = e.id where e.certificate_valid is not null - group by e.id,e.certificate_valid,a.remind_time + group by e.id,e.certificate_valid,a.remind_time,lsr.sample_status ) select * from eqpt_ext @@ -163,6 +189,9 @@ e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, + e.model as model, + e.company_id as companyId, + e.manufacture_no as manufactureNo, c.certificate_report_no as certificateNo, c.certificate_report_name as certificateName, '西昌卫星发射中心计量测试站' as checkOrganization, @@ -173,7 +202,7 @@ c.update_time as updateTime, '1' as certificateType, c.remark as remark - from biz_business_certificate_report c ,eqpt_equipment_info e + from biz_business_certificate_report c ,eqpt_equipment_info_view e where c.sample_id = e.id diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml index 097c405..2ddebe6 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,6 +13,7 @@ + @@ -21,7 +22,7 @@ - id, model_no, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, create_user_id, create_dept_id, create_time, update_time + id, equipment_type, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, inspectable, create_user_id, create_dept_id, create_time, update_time + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java index c69cc82..d1a2bd1 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.service.equipment.IEquipmentGroupInfoService; import io.swagger.annotations.Api; @@ -60,14 +61,11 @@ return ReturnUtil.success(); } - @ApiImplicitParams({ - @ApiImplicitParam(name = "groupName",value = "分组名称",dataType = "String",paramType = "query") - }) @ApiOperation("分组分页列表") - @GetMapping("listPage") - public ReturnDTO> listPage(String groupName){ + @PostMapping("listPage") + public ReturnDTO> listPage(@RequestBody EquipmentGroupQueryForm queryForm){ Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,groupName))); + return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,queryForm))); } @ApiImplicitParams({ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 56b6814..3130c5c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.business.LabelBindDTO; import com.casic.missiles.dto.equipment.*; import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; import com.casic.missiles.service.equipment.IEquipmentInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -36,6 +37,14 @@ public class EquipmentInfoController extends ExportController { private final IEquipmentInfoService equipmentInfoService; + private final IEquipmentInfoApprovalService approvalService; + + @ApiOperation("直接编辑设备") + @PostMapping("/info/update") + public ReturnDTO update(@RequestBody EquipmentApprovalForm approvalForm){ + approvalService.updateEquipmentInfo(approvalForm); + return ReturnUtil.success(); + } @ApiOperation("设备分页列表") @PostMapping("/info/listPage") @@ -152,5 +161,14 @@ return ReturnUtil.success(); } + @ApiOperation("到期提醒分页列表") + @PostMapping("/orderSelect/listPage") + @ResponseBody + public ReturnDTO> EquipmentOrderSelectQueryForm(@RequestBody EquipmentRemindQueryForm queryForm) { + Page page = PageFactory.defaultPage(); + page = equipmentInfoService.orderSelectListPage(page, queryForm); + return ReturnUtil.success(super.packForBT(page)); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index 044d245..ccbd668 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -103,14 +103,20 @@ @ApiOperation("设备名称列表") @GetMapping("listEquipmentName") - public ReturnDTO> listEquipmentName(){ - return ReturnUtil.success(modelInfoService.listEquipmentName()); + public ReturnDTO> listEquipmentName(String equipmentType){ + return ReturnUtil.success(modelInfoService.listEquipmentName(equipmentType)); } @ApiOperation("规格型号列表") @GetMapping("listModel") - public ReturnDTO> listModel(String equipmentName){ - return ReturnUtil.success(modelInfoService.listModel(equipmentName)); + public ReturnDTO> listModel(String equipmentType, String equipmentName){ + return ReturnUtil.success(modelInfoService.listModel(equipmentType,equipmentName)); + } + + @ApiOperation("获取默认检定去向") + @GetMapping("defaultCheckDestination") + public ReturnDTO defaultCheckDestination(Long modelId, Long companyId){ + return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java index 7e79008..1fc1f9c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.CertificateUpdate; +import com.casic.missiles.dto.equipment.LimitInstructionUpdate; import com.casic.missiles.model.plan.OrderReceive; import com.casic.missiles.model.plan.SampleStatueUpdate; import com.casic.missiles.service.equipment.IEquipmentInfoService; @@ -55,4 +56,11 @@ return ReturnUtil.success(); } + @ApiOperation("更新限用说明") + @PostMapping("/limitInstructionUpdate") + public ReturnDTO updateLimitInstruction(@RequestBody LimitInstructionUpdate updateForm) { + equipmentInfoService.updateLimitInstruction(updateForm.getEquipmentId(), updateForm.getLimitInstruction()); + return ReturnUtil.success(); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java index e314003..73d02ec 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java @@ -1,7 +1,18 @@ package com.casic.missiles.controller.system; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.system.SystemLocation; +import com.casic.missiles.service.system.ISystemLocationService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** *

@@ -11,8 +22,45 @@ * @author zhangyingjie * @since 2023-11-15 */ +@Api(tags = "安装位置管理") @RestController -@RequestMapping("/system-location") -public class SystemLocationController { +@RequestMapping("/system/location") +@RequiredArgsConstructor +public class SystemLocationController extends BaseController { + + private final ISystemLocationService locationService; + + @PostMapping("add") + public ReturnDTO add(@RequestBody SystemLocation systemLocation){ + locationService.add(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("update") + public ReturnDTO update(@RequestBody SystemLocation systemLocation){ + locationService.update(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("delete") + public ReturnDTO delete(@RequestBody SystemLocation systemLocation){ + locationService.delete(systemLocation); + return ReturnUtil.success(); + } + + @GetMapping("listPage") + public ReturnDTO> listPage(Long searchId,Long positionId, String installLocation){ + Page page = PageFactory.defaultPage(); + page = locationService.listPage(page,searchId,positionId, installLocation); + return ReturnUtil.success(super.packForBT(page)); + } + + @GetMapping("list") + public ReturnDTO> list(Long searchId,Long positionId, String installLocation){ + List list = locationService.list(searchId,positionId, installLocation); + return ReturnUtil.success(list); + } + + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java index f9e2f91..d64634a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java @@ -1,6 +1,8 @@ package com.casic.missiles.controller.system; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; @@ -10,6 +12,8 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** *

* 受检系统-系统管理-岗位管理 前端控制器 @@ -22,7 +26,7 @@ @RestController @RequestMapping("/system/position") @RequiredArgsConstructor -public class SystemPositionController { +public class SystemPositionController extends BaseController { private final ISystemPositionService positionService; @@ -45,16 +49,16 @@ } @GetMapping("listPage") - public ReturnDTO listPage(Long searchId,String positionName){ + public ReturnDTO> listPage(Long searchId, String positionName){ Page page = PageFactory.defaultPage(); - positionService.listPage(page,searchId,positionName); - return ReturnUtil.success(); + page = positionService.listPage(page,searchId,positionName); + return ReturnUtil.success(super.packForBT(page)); } @GetMapping("list") - public ReturnDTO list(Long searchId,String positionName){ - positionService.list(searchId,positionName); - return ReturnUtil.success(); + public ReturnDTO> list(Long searchId,String positionName){ + List list = positionService.list(searchId,positionName); + return ReturnUtil.success(list); } diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index 6f0359b..88cce74 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -72,9 +72,9 @@ addresses: http://111.198.10.15:21605/xxl-job-admin executor: # 此执行器的名称 - appname: casic-metering-job + appname: casic-metering-xc-eqpt-job # 此执行器的ip、端口,每个节点对应自己的ip,端口用于任务执行的通信 - ip: 127.0.0.1 + ip: 192.168.20.33 port: 9999 # 此执行器的日志存放路径 logpath: logs/xxl-job/casic-metering-job @@ -122,7 +122,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_remind_relation + table-name: eqpt_equipment_modify_log prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index 7b3c7a2..29a820a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -18,11 +18,15 @@ */ // 系统前缀 String DICT_PREFIX = "eqpt"; + + String EQUIPMENT_TYPE = DICT_PREFIX + "DeviceCategory"; //受检设备使用状态 String EQUIPMENT_USAGE_STATUS = DICT_PREFIX + "DeviceUseStatus"; //受检设备重要等级 String EQUIPMENT_LEVEL = DICT_PREFIX + "DeviceLevel"; + String EQUIPMENT_QUALITY = DICT_PREFIX + "DeviceQuality"; + String EQUIPMENT_CATEGORY = DICT_PREFIX + "DeviceType"; // 设备申请类型 String EQUIPMENT_APPROVAL_TYPE = DICT_PREFIX + "EquipmentApprovalType"; @@ -30,6 +34,8 @@ String EQUIPMENT_STATUS_APPROVAL_TYPE = DICT_PREFIX + "EquipmentStatusApprovalType"; // 设备计量标识 String EQUIPMENT_METER_IDENTITY = DICT_PREFIX + "MeterIdentify"; + + String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; // 计量计划计划分类 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java index 694e48b..aefff4a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.equipment; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.model.equipment.EquipmentAttachment; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentTechnicalTarget; @@ -13,6 +14,8 @@ @Data public class EquipmentApprovalForm extends EquipmentInfoApproval { + @ApiModelProperty("规格型号说明书") + private String instructionsFile; @ApiModelProperty("技术指标列表") private List technicalTargetList; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java index f6448c6..c814444 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java @@ -12,6 +12,9 @@ @Setter public class EquipmentInfoForm extends EquipmentInfo{ + @ApiModelProperty("规格型号说明书") + private String instructionsFile; + @ApiModelProperty("组别信息") @TableField(exist = false) private List groupInfos; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java index bcec504..7803273 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java @@ -10,6 +10,9 @@ @Setter public class EquipmentModelQueryForm { + @ApiModelProperty("设备类型") + private String equipmentType; + @ApiModelProperty("设备名称") private String equipmentName; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java index 03fc0f1..fc2acc8 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java @@ -32,12 +32,21 @@ @ApiModelProperty("所在单位") private Long companyId; - @ApiModelProperty("使用部门") + + @ApiModelProperty("使用部门(单个)") + private Long deptId; + @ApiModelProperty("使用部门(列表)") private List deptIds; + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty("使用岗位") private String usePosition; + @ApiModelProperty("负责人ID") + private Long directorId; + @ApiModelProperty("负责人") private String directorName; @@ -50,6 +59,9 @@ @ApiModelProperty("安装位置") private String installLocation; + @ApiModelProperty("分组id") + private Long groupId; + @ApiModelProperty("参试任务id") private Long taskId; @@ -75,4 +87,5 @@ @ApiModelProperty("使用状态列表[状态维护选择设备时用]") private List usageStatusList; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java index 30b5af3..b6afd18 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java @@ -73,5 +73,52 @@ @TableField("remark") private String remark; + /** + * 所在单位id + */ + @ApiModelProperty("所在单位id") + @TableField(exist = false) + private Long companyId; + + @ApiModelProperty("所在单位名称") + @TableField(exist = false) + private String companyName; + + /** + * 使用部门id + */ + @ApiModelProperty("使用部门id") + @TableField(exist = false) + private Long deptId; + + @ApiModelProperty("使用部门名称") + @TableField(exist = false) + private String deptName; + + /** + * 分系统id + */ + @ApiModelProperty(value = "分系统id") + @TableField(exist = false) + private Long subSystemId; + + @ApiModelProperty("分系统名称") + @TableField(exist = false) + private String subSystemName; + + /** + * 使用岗位id + */ + @ApiModelProperty("岗位ID") + @TableField("position_id") + private Long positionId; + + /** + * 使用岗位名称 + */ + @ApiModelProperty("岗位名称") + @TableField(exist = false) + private String positionName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java index 36575f6..b4f78b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.equipment; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -7,6 +8,8 @@ import java.io.Serializable; import java.util.Date; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.Getter; @@ -55,12 +58,35 @@ @ApiModelProperty("型号规格") @TableField(exist = false) private String model; + + @ApiModelProperty("出厂编号") + @TableField(exist = false) + private String manufactureNo; + @ApiModelProperty("生产厂家") + @TableField(exist = false) + private String manufacturer; + + /** + * 出厂编号 + */ + @ApiModelProperty("负责人") @TableField(exist = false) private String directorName; @ApiModelProperty("计量标识") @TableField(exist = false) private String meterIdentify; + + @ApiModelProperty("计量标识名称") + @TableField(exist = false) + private String meterIdentifyName; + + @ApiModelProperty("使用状态(字典code)") + @TableField(exist = false) + private String usageStatus; + @ApiModelProperty("使用状态名称") + @TableField(exist = false) + private String usageStatusName; @ApiModelProperty("证书有效期") @TableField(exist = false) private Date certificateValid; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java index 21294cf..a8392ff 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java @@ -44,14 +44,14 @@ private static final long serialVersionUID = 1L; - @ApiModelProperty("主键") + @ApiModelProperty(value = "主键") @TableId("id") private Long id; /** * 设备编号 */ - @ApiModelProperty("设备编号") + @ApiModelProperty(value = "设备编号",notes = "统一编号") @TableField("equipment_no") @ExcelProperty(value = "统一编号",index = 0) private String equipmentNo; @@ -59,7 +59,7 @@ /** * 设备名称 */ - @ApiModelProperty("设备名称") + @ApiModelProperty(value = "设备名称",notes = "设备名称") @TableField("equipment_name") @ExcelProperty(value = "设备名称",index = 1) private String equipmentName; @@ -67,14 +67,18 @@ /** * 设备类型(1受检设备;2特种设备) */ - @ApiModelProperty("设备类型(1受检设备;2特种设备)") + @ApiModelProperty(value = "设备类型(1受检设备;2特种设备)",notes = "设备类型code") @TableField("equipment_type") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE) private String equipmentType; + @TableField(exist = false) + private String equipmentTypeName; + /** * 使用状态(字典code) */ - @ApiModelProperty("使用状态(字典code)") + @ApiModelProperty(value = "使用状态(字典code)",notes = "使用状态code") @TableField("usage_status") @DictCodeField(message = "使用状态", cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS) private String usageStatus; @@ -87,28 +91,32 @@ /** * 等级(字典code) */ - @ApiModelProperty("等级(字典code)") + @ApiModelProperty(value = "等级(字典code)",notes = "重要等级code") @TableField("level") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_LEVEL) private String level; + @TableField(exist = false) + private String levelName; + /** * 生产国家 */ - @ApiModelProperty("生产国家") + @ApiModelProperty(value = "生产国家",notes = "生产国家") @TableField("product_country") private String productCountry; /** * 生产厂家 */ - @ApiModelProperty("生产厂家") + @ApiModelProperty(value = "生产厂家",notes = "生产厂家") @TableField("manufacturer") private String manufacturer; /** * 出厂编号 */ - @ApiModelProperty("出厂编号") + @ApiModelProperty(value = "出厂编号",notes = "出厂编号") @TableField("manufacture_no") @ExcelProperty(value = "出厂编号",index = 3) private String manufactureNo; @@ -116,28 +124,28 @@ /** * 生产日期 */ - @ApiModelProperty("生产日期") + @ApiModelProperty(value = "生产日期",notes = "生产日期") @TableField("product_date") private Date productDate; /** * 单价(万元) */ - @ApiModelProperty("单价(万元)") + @ApiModelProperty(value = "单价(万元)",notes = "设备单价(万元)") @TableField("unit_price") private BigDecimal unitPrice; /** * 购进日期 */ - @ApiModelProperty("购进日期") + @ApiModelProperty(value = "购进日期",notes = "购进日期") @TableField("purchase_date") private Date purchaseDate; /** * 型号规格 */ - @ApiModelProperty("型号规格") + @ApiModelProperty(value = "型号规格",notes = "型号规格") @TableField("model") @ExcelProperty(value = "型号规格",index = 2) private String model; @@ -145,14 +153,18 @@ /** * 质量状况 */ - @ApiModelProperty("质量状况") + @ApiModelProperty(value = "质量状况",notes = "质量状况code") @TableField("quality_condition") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_QUALITY) private String qualityCondition; + @TableField(exist = false) + private String qualityConditionName; + /** * 所在单位id */ - @ApiModelProperty("所在单位id") + @ApiModelProperty(value = "所在单位id",notes = "所在单位id") @TableField("company_id") private Long companyId; @@ -163,7 +175,7 @@ /** * 使用部门id */ - @ApiModelProperty("使用部门id") + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") @TableField("dept_id") private Long deptId; @@ -174,14 +186,17 @@ /** * 设备分类(字典code) */ - @ApiModelProperty("设备分类(字典code)") + @ApiModelProperty(value = "设备分类(字典code)",notes = "设备分类code") @TableField("category") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CATEGORY) private String category; + @TableField(exist = false) + private String categoryName; /** * 检定周期(月) */ - @ApiModelProperty("检定周期(月)") + @ApiModelProperty(value = "检定周期(月)",notes = "检定周期(月)") @TableField("check_cycle") @ExcelProperty(value = "检定周期(月)",index = 6) @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, horizontalAlignment = HorizontalAlignmentEnum.LEFT) @@ -190,7 +205,7 @@ /** * 备注 */ - @ApiModelProperty("备注") + @ApiModelProperty(value = "备注",notes = "备注") @TableField("remark") @ExcelProperty(value = "备注",index = 9) private String remark; @@ -198,28 +213,28 @@ /** * 说明书(minio存储文件名)(多个用,拼接) */ - @ApiModelProperty("说明书(minio存储文件名)(多个用,拼接)") + @ApiModelProperty(value = "说明书(minio存储文件名)(多个用,拼接)") @TableField("instructions_file") private String instructionsFile; /** * 检定机构 */ - @ApiModelProperty("检定机构") + @ApiModelProperty(value = "检定机构",notes = "检定(校准)机构") @TableField("check_organization") private String checkOrganization; /** * 检定日期 */ - @ApiModelProperty("检定日期") + @ApiModelProperty(value = "检定日期",notes = "检定(校准)日期") @TableField("check_date") private Date checkDate; /** * 证书有效期 */ - @ApiModelProperty("证书有效期") + @ApiModelProperty(value = "证书有效期",notes = "证书有效期") @TableField("certificate_valid") @ExcelProperty(value = "证书有效期",index = 7, converter = DateExcelConverter.class) private Date certificateValid; @@ -227,7 +242,7 @@ /** * 计量标识 */ - @ApiModelProperty("计量标识") + @ApiModelProperty(value = "计量标识",notes = "计量标识code") @TableField("meter_identify") @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY) private String meterIdentify; @@ -237,17 +252,28 @@ @ExcelProperty(value = "计量标识",index = 5) private String meterIdentifyName; + @ApiModelProperty(value = "使用岗位id",notes = "使用岗位id") + @TableField("use_position_id") + private String usePositionId; + /** * 使用岗位 */ @ApiModelProperty("使用岗位") - @TableField("use_position") + @TableField(exist = false) @ExcelProperty(value = "使用岗位",index = 4) private String usePosition; /** * 负责人 */ + @ApiModelProperty(value = "负责人id",notes = "负责人id") + @TableField("director_id") + private String directorId; + + /** + * 负责人 + */ @ApiModelProperty("负责人") @TableField("director_name") private String directorName; @@ -255,17 +281,25 @@ /** * RFID标签绑定 */ - @ApiModelProperty("RFID标签绑定") + @ApiModelProperty(value = "RFID标签绑定",notes = "RFID标签绑定") @TableField("RFID") private String rfid; /** * 在用信息(字典code) */ - @ApiModelProperty("在用信息(字典code)") + @ApiModelProperty(value = "在用信息(字典code)",notes = "在用信息code") @TableField("use_sign") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE) private String useSign; + @TableField(exist = false) + private String useSignName; + + @ApiModelProperty(value = "安装位置id",notes = "安装位置id") + @TableField("install_location_id") + private Long installLocationId; + /** * 安装位置(选择) */ @@ -276,7 +310,7 @@ /** * 安装位置(自定义编写) */ - @ApiModelProperty("安装位置(自定义编写)") + @ApiModelProperty(value = "安装位置(自定义编写)",notes = "详细位置") @TableField("install_location_ext") private String installLocationExt; @@ -290,7 +324,7 @@ /** * 备注(扩展) */ - @ApiModelProperty("备注(扩展)") + @ApiModelProperty(value = "备注(扩展)",notes = "备注") @TableField("remark_ext") private String remarkExt; @@ -327,14 +361,25 @@ @TableLogic(value = "0",delval = "1") private Integer isDel; - @ApiModelProperty("规格型号id") + @ApiModelProperty(value = "规格型号id",notes = "规格型号id") @TableField("model_id") private Long modelId; - @ApiModelProperty("辅助字段") + @ApiModelProperty(value = "辅助字段",notes = "辅助字段") @TableField("help_instruction") private String helpInstruction; + @ApiModelProperty(value = "检定去向",notes = "检定去向") + @TableField("check_destination") + private String checkDestination; + + @ApiModelProperty(value = "限用说明",notes = "限用说明") + @TableField("limit_instruction") + private String limitInstruction; + + @ApiModelProperty("分组名称") + @TableField(exist = false) + private String groupNames; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java index 13eeef8..060aa33 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java @@ -101,8 +101,13 @@ */ @ApiModelProperty("使用状态(字典code)") @TableField("usage_status") + @DictCodeField(message = "使用状态", cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS) private String usageStatus; + @ApiModelProperty("使用状态名称") + @TableField(exist = false) + private String usageStatusName; + /** * 等级(字典code) */ @@ -253,6 +258,10 @@ @TableField(exist = false) private String meterIdentifyName; + @ApiModelProperty("使用岗位id") + @TableField("use_position_id") + private String usePositionId; + /** * 使用岗位 */ @@ -263,6 +272,12 @@ /** * 负责人 */ + @ApiModelProperty("负责人id") + @TableField("director_id") + private String directorId; + /** + * 负责人 + */ @ApiModelProperty("负责人") @TableField("director_name") private String directorName; @@ -281,6 +296,10 @@ @TableField("use_sign") private String useSign; + @ApiModelProperty("安装位置id") + @TableField("install_location_id") + private Long installLocationId; + /** * 安装位置(选择) */ @@ -347,6 +366,14 @@ @TableField("help_instruction") private String helpInstruction; + @ApiModelProperty("检定去向") + @TableField("check_destination") + private String checkDestination; + + @ApiModelProperty("限用说明") + @TableField("limit_instruction") + private String limitInstruction; + @ApiModelProperty("任务id") @TableField(exist = false) private String taskId; @@ -363,4 +390,7 @@ @TableField(exist = false) private List taskInfos; + @ApiModelProperty("分组名称") + @TableField(exist = false) + private String groupNames; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java index 471e8c8..d4b20e9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java @@ -48,10 +48,15 @@ /** * 型号规格编号 */ - @ApiModelProperty("型号规格编号") - @TableField("model_no") - @ExcelProperty("型号规格编号") - private String modelNo; + @ApiModelProperty("设备类型") + @TableField("equipment_type") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE) + private String equipmentType; + + @ApiModelProperty("设备类型名称") + @TableField(exist = false) + @ExcelProperty("设备类型") + private String equipmentTypeName; /** * 设备名称 @@ -113,6 +118,10 @@ @ExcelProperty("备注") private String remark; + @ApiModelProperty("计量站是否可检(1西昌可检;2海口可检,多个用,拼接)") + @TableField("inspectable") + private String inspectable; + /** * 创建人id */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java index d495e2e..a78c41a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java @@ -83,6 +83,7 @@ /** * 安装位置 */ + @ApiModelProperty("安装位置") @TableField("install_location") private String installLocation; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java index d5417d4..633af3f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import java.util.List; @@ -23,7 +24,7 @@ void deleteGroup(Long groupId); - Page listPage(Page page, String groupName); + Page listPage(Page page, EquipmentGroupQueryForm queryForm); EquipmentGroupForm detail(Long groupId); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java index 06d0cbd..222ebdd 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java @@ -3,6 +3,7 @@ import com.casic.missiles.dto.equipment.EquipmentApprovalLog; import com.casic.missiles.dto.equipment.EquipmentQueryForm; import com.casic.missiles.dto.equipment.EquipmentApprovalForm; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentModelInfo; import com.casic.missiles.service.ICommonApprovalService; @@ -19,6 +20,14 @@ */ public interface IEquipmentInfoApprovalService extends ICommonApprovalService { + boolean updateEquipmentInfo(EquipmentApprovalForm approvalForm); + + boolean checkRfidRepeat(String rfid, Long equipmentId); + + String checkLocation(Long installLocationId, String usageStatus, Long equipmentId); + + void saveTurnoverLog(EquipmentInfo newObj, EquipmentInfo oldObj, Long createUserId); + Long saveOrUpdateApproval(EquipmentApprovalForm approvalForm); EquipmentApprovalForm approvalInfoDetail(Long approvalId); 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml index a9033f9..c49776d 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml @@ -4,71 +4,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - id, approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + id + , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction + + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml index 62449ec..f4d9936 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml @@ -42,6 +42,12 @@ + + + + + + @@ -50,12 +56,20 @@ product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid as certificateValid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time, - is_del,model_id,help_instruction + is_del,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction select - from eqpt_equipment_info + from eqpt_equipment_info_view ${ew.sqlSegment} @@ -110,7 +124,7 @@ eqpt_remind_all as ( select e.id as equipment_id, - IFNULL(m.remind_time,0) as remind_time + IFNULL(m.remind_time,90) as remind_time from eqpt_equipment_info e left join eqpt_remind m on e.id = m.equipment_id ), @@ -118,20 +132,32 @@ select id,task_name,CONCAT(DATE_FORMAT(start_time,'%Y-%m-%d'),"~",DATE_FORMAT(end_time,'%Y-%m-%d')) as time_ext,start_time,end_time from eqpt_equipment_task_info ), + latest_sample_relation AS ( + SELECT * + FROM biz_business_order_sample_relation a + WHERE id = ( + SELECT max( id ) + FROM biz_business_order_sample_relation b + WHERE a.sample_id = b.sample_id ) + ), eqpt_ext as ( select e.* , - DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, - GROUP_CONCAT(t.task_name) as taskNames, - GROUP_CONCAT(t.time_ext) as taskTimes, - GROUP_CONCAT(t.id) as taskIds, - min(t.start_time) as task_start_time, - max(t.end_time) as task_end_time - from eqpt_equipment_info e + DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, + GROUP_CONCAT(t.task_name) as taskNames, + GROUP_CONCAT(t.time_ext) as taskTimes, + GROUP_CONCAT(t.id) as taskIds, + min(t.start_time) as task_start_time, + max(t.end_time) as task_end_time, + (case when lsr.sample_status in + #{item} + then 1 else 0 end) as check_status + from eqpt_equipment_info_view e left join eqpt_remind_all a on e.id = a.equipment_id left join eqpt_equipment_task_relation r on e.id = r.equipment_id left join task_ext t on r.task_id = t.id + left join latest_sample_relation lsr on lsr.sample_id = e.id where e.certificate_valid is not null - group by e.id,e.certificate_valid,a.remind_time + group by e.id,e.certificate_valid,a.remind_time,lsr.sample_status ) select * from eqpt_ext @@ -163,6 +189,9 @@ e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, + e.model as model, + e.company_id as companyId, + e.manufacture_no as manufactureNo, c.certificate_report_no as certificateNo, c.certificate_report_name as certificateName, '西昌卫星发射中心计量测试站' as checkOrganization, @@ -173,7 +202,7 @@ c.update_time as updateTime, '1' as certificateType, c.remark as remark - from biz_business_certificate_report c ,eqpt_equipment_info e + from biz_business_certificate_report c ,eqpt_equipment_info_view e where c.sample_id = e.id diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml index 097c405..2ddebe6 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,6 +13,7 @@ + @@ -21,7 +22,7 @@ - id, model_no, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, create_user_id, create_dept_id, create_time, update_time + id, equipment_type, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, inspectable, create_user_id, create_dept_id, create_time, update_time + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java index c69cc82..d1a2bd1 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.service.equipment.IEquipmentGroupInfoService; import io.swagger.annotations.Api; @@ -60,14 +61,11 @@ return ReturnUtil.success(); } - @ApiImplicitParams({ - @ApiImplicitParam(name = "groupName",value = "分组名称",dataType = "String",paramType = "query") - }) @ApiOperation("分组分页列表") - @GetMapping("listPage") - public ReturnDTO> listPage(String groupName){ + @PostMapping("listPage") + public ReturnDTO> listPage(@RequestBody EquipmentGroupQueryForm queryForm){ Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,groupName))); + return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,queryForm))); } @ApiImplicitParams({ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 56b6814..3130c5c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.business.LabelBindDTO; import com.casic.missiles.dto.equipment.*; import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; import com.casic.missiles.service.equipment.IEquipmentInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -36,6 +37,14 @@ public class EquipmentInfoController extends ExportController { private final IEquipmentInfoService equipmentInfoService; + private final IEquipmentInfoApprovalService approvalService; + + @ApiOperation("直接编辑设备") + @PostMapping("/info/update") + public ReturnDTO update(@RequestBody EquipmentApprovalForm approvalForm){ + approvalService.updateEquipmentInfo(approvalForm); + return ReturnUtil.success(); + } @ApiOperation("设备分页列表") @PostMapping("/info/listPage") @@ -152,5 +161,14 @@ return ReturnUtil.success(); } + @ApiOperation("到期提醒分页列表") + @PostMapping("/orderSelect/listPage") + @ResponseBody + public ReturnDTO> EquipmentOrderSelectQueryForm(@RequestBody EquipmentRemindQueryForm queryForm) { + Page page = PageFactory.defaultPage(); + page = equipmentInfoService.orderSelectListPage(page, queryForm); + return ReturnUtil.success(super.packForBT(page)); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index 044d245..ccbd668 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -103,14 +103,20 @@ @ApiOperation("设备名称列表") @GetMapping("listEquipmentName") - public ReturnDTO> listEquipmentName(){ - return ReturnUtil.success(modelInfoService.listEquipmentName()); + public ReturnDTO> listEquipmentName(String equipmentType){ + return ReturnUtil.success(modelInfoService.listEquipmentName(equipmentType)); } @ApiOperation("规格型号列表") @GetMapping("listModel") - public ReturnDTO> listModel(String equipmentName){ - return ReturnUtil.success(modelInfoService.listModel(equipmentName)); + public ReturnDTO> listModel(String equipmentType, String equipmentName){ + return ReturnUtil.success(modelInfoService.listModel(equipmentType,equipmentName)); + } + + @ApiOperation("获取默认检定去向") + @GetMapping("defaultCheckDestination") + public ReturnDTO defaultCheckDestination(Long modelId, Long companyId){ + return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java index 7e79008..1fc1f9c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.CertificateUpdate; +import com.casic.missiles.dto.equipment.LimitInstructionUpdate; import com.casic.missiles.model.plan.OrderReceive; import com.casic.missiles.model.plan.SampleStatueUpdate; import com.casic.missiles.service.equipment.IEquipmentInfoService; @@ -55,4 +56,11 @@ return ReturnUtil.success(); } + @ApiOperation("更新限用说明") + @PostMapping("/limitInstructionUpdate") + public ReturnDTO updateLimitInstruction(@RequestBody LimitInstructionUpdate updateForm) { + equipmentInfoService.updateLimitInstruction(updateForm.getEquipmentId(), updateForm.getLimitInstruction()); + return ReturnUtil.success(); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java index e314003..73d02ec 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java @@ -1,7 +1,18 @@ package com.casic.missiles.controller.system; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.system.SystemLocation; +import com.casic.missiles.service.system.ISystemLocationService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** *

@@ -11,8 +22,45 @@ * @author zhangyingjie * @since 2023-11-15 */ +@Api(tags = "安装位置管理") @RestController -@RequestMapping("/system-location") -public class SystemLocationController { +@RequestMapping("/system/location") +@RequiredArgsConstructor +public class SystemLocationController extends BaseController { + + private final ISystemLocationService locationService; + + @PostMapping("add") + public ReturnDTO add(@RequestBody SystemLocation systemLocation){ + locationService.add(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("update") + public ReturnDTO update(@RequestBody SystemLocation systemLocation){ + locationService.update(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("delete") + public ReturnDTO delete(@RequestBody SystemLocation systemLocation){ + locationService.delete(systemLocation); + return ReturnUtil.success(); + } + + @GetMapping("listPage") + public ReturnDTO> listPage(Long searchId,Long positionId, String installLocation){ + Page page = PageFactory.defaultPage(); + page = locationService.listPage(page,searchId,positionId, installLocation); + return ReturnUtil.success(super.packForBT(page)); + } + + @GetMapping("list") + public ReturnDTO> list(Long searchId,Long positionId, String installLocation){ + List list = locationService.list(searchId,positionId, installLocation); + return ReturnUtil.success(list); + } + + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java index f9e2f91..d64634a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java @@ -1,6 +1,8 @@ package com.casic.missiles.controller.system; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; @@ -10,6 +12,8 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** *

* 受检系统-系统管理-岗位管理 前端控制器 @@ -22,7 +26,7 @@ @RestController @RequestMapping("/system/position") @RequiredArgsConstructor -public class SystemPositionController { +public class SystemPositionController extends BaseController { private final ISystemPositionService positionService; @@ -45,16 +49,16 @@ } @GetMapping("listPage") - public ReturnDTO listPage(Long searchId,String positionName){ + public ReturnDTO> listPage(Long searchId, String positionName){ Page page = PageFactory.defaultPage(); - positionService.listPage(page,searchId,positionName); - return ReturnUtil.success(); + page = positionService.listPage(page,searchId,positionName); + return ReturnUtil.success(super.packForBT(page)); } @GetMapping("list") - public ReturnDTO list(Long searchId,String positionName){ - positionService.list(searchId,positionName); - return ReturnUtil.success(); + public ReturnDTO> list(Long searchId,String positionName){ + List list = positionService.list(searchId,positionName); + return ReturnUtil.success(list); } diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index 6f0359b..88cce74 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -72,9 +72,9 @@ addresses: http://111.198.10.15:21605/xxl-job-admin executor: # 此执行器的名称 - appname: casic-metering-job + appname: casic-metering-xc-eqpt-job # 此执行器的ip、端口,每个节点对应自己的ip,端口用于任务执行的通信 - ip: 127.0.0.1 + ip: 192.168.20.33 port: 9999 # 此执行器的日志存放路径 logpath: logs/xxl-job/casic-metering-job @@ -122,7 +122,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_remind_relation + table-name: eqpt_equipment_modify_log prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index 7b3c7a2..29a820a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -18,11 +18,15 @@ */ // 系统前缀 String DICT_PREFIX = "eqpt"; + + String EQUIPMENT_TYPE = DICT_PREFIX + "DeviceCategory"; //受检设备使用状态 String EQUIPMENT_USAGE_STATUS = DICT_PREFIX + "DeviceUseStatus"; //受检设备重要等级 String EQUIPMENT_LEVEL = DICT_PREFIX + "DeviceLevel"; + String EQUIPMENT_QUALITY = DICT_PREFIX + "DeviceQuality"; + String EQUIPMENT_CATEGORY = DICT_PREFIX + "DeviceType"; // 设备申请类型 String EQUIPMENT_APPROVAL_TYPE = DICT_PREFIX + "EquipmentApprovalType"; @@ -30,6 +34,8 @@ String EQUIPMENT_STATUS_APPROVAL_TYPE = DICT_PREFIX + "EquipmentStatusApprovalType"; // 设备计量标识 String EQUIPMENT_METER_IDENTITY = DICT_PREFIX + "MeterIdentify"; + + String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; // 计量计划计划分类 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java index 694e48b..aefff4a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.equipment; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.model.equipment.EquipmentAttachment; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentTechnicalTarget; @@ -13,6 +14,8 @@ @Data public class EquipmentApprovalForm extends EquipmentInfoApproval { + @ApiModelProperty("规格型号说明书") + private String instructionsFile; @ApiModelProperty("技术指标列表") private List technicalTargetList; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java index f6448c6..c814444 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java @@ -12,6 +12,9 @@ @Setter public class EquipmentInfoForm extends EquipmentInfo{ + @ApiModelProperty("规格型号说明书") + private String instructionsFile; + @ApiModelProperty("组别信息") @TableField(exist = false) private List groupInfos; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java index bcec504..7803273 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java @@ -10,6 +10,9 @@ @Setter public class EquipmentModelQueryForm { + @ApiModelProperty("设备类型") + private String equipmentType; + @ApiModelProperty("设备名称") private String equipmentName; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java index 03fc0f1..fc2acc8 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java @@ -32,12 +32,21 @@ @ApiModelProperty("所在单位") private Long companyId; - @ApiModelProperty("使用部门") + + @ApiModelProperty("使用部门(单个)") + private Long deptId; + @ApiModelProperty("使用部门(列表)") private List deptIds; + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty("使用岗位") private String usePosition; + @ApiModelProperty("负责人ID") + private Long directorId; + @ApiModelProperty("负责人") private String directorName; @@ -50,6 +59,9 @@ @ApiModelProperty("安装位置") private String installLocation; + @ApiModelProperty("分组id") + private Long groupId; + @ApiModelProperty("参试任务id") private Long taskId; @@ -75,4 +87,5 @@ @ApiModelProperty("使用状态列表[状态维护选择设备时用]") private List usageStatusList; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java index 30b5af3..b6afd18 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java @@ -73,5 +73,52 @@ @TableField("remark") private String remark; + /** + * 所在单位id + */ + @ApiModelProperty("所在单位id") + @TableField(exist = false) + private Long companyId; + + @ApiModelProperty("所在单位名称") + @TableField(exist = false) + private String companyName; + + /** + * 使用部门id + */ + @ApiModelProperty("使用部门id") + @TableField(exist = false) + private Long deptId; + + @ApiModelProperty("使用部门名称") + @TableField(exist = false) + private String deptName; + + /** + * 分系统id + */ + @ApiModelProperty(value = "分系统id") + @TableField(exist = false) + private Long subSystemId; + + @ApiModelProperty("分系统名称") + @TableField(exist = false) + private String subSystemName; + + /** + * 使用岗位id + */ + @ApiModelProperty("岗位ID") + @TableField("position_id") + private Long positionId; + + /** + * 使用岗位名称 + */ + @ApiModelProperty("岗位名称") + @TableField(exist = false) + private String positionName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java index 36575f6..b4f78b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.equipment; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -7,6 +8,8 @@ import java.io.Serializable; import java.util.Date; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.Getter; @@ -55,12 +58,35 @@ @ApiModelProperty("型号规格") @TableField(exist = false) private String model; + + @ApiModelProperty("出厂编号") + @TableField(exist = false) + private String manufactureNo; + @ApiModelProperty("生产厂家") + @TableField(exist = false) + private String manufacturer; + + /** + * 出厂编号 + */ + @ApiModelProperty("负责人") @TableField(exist = false) private String directorName; @ApiModelProperty("计量标识") @TableField(exist = false) private String meterIdentify; + + @ApiModelProperty("计量标识名称") + @TableField(exist = false) + private String meterIdentifyName; + + @ApiModelProperty("使用状态(字典code)") + @TableField(exist = false) + private String usageStatus; + @ApiModelProperty("使用状态名称") + @TableField(exist = false) + private String usageStatusName; @ApiModelProperty("证书有效期") @TableField(exist = false) private Date certificateValid; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java index 21294cf..a8392ff 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java @@ -44,14 +44,14 @@ private static final long serialVersionUID = 1L; - @ApiModelProperty("主键") + @ApiModelProperty(value = "主键") @TableId("id") private Long id; /** * 设备编号 */ - @ApiModelProperty("设备编号") + @ApiModelProperty(value = "设备编号",notes = "统一编号") @TableField("equipment_no") @ExcelProperty(value = "统一编号",index = 0) private String equipmentNo; @@ -59,7 +59,7 @@ /** * 设备名称 */ - @ApiModelProperty("设备名称") + @ApiModelProperty(value = "设备名称",notes = "设备名称") @TableField("equipment_name") @ExcelProperty(value = "设备名称",index = 1) private String equipmentName; @@ -67,14 +67,18 @@ /** * 设备类型(1受检设备;2特种设备) */ - @ApiModelProperty("设备类型(1受检设备;2特种设备)") + @ApiModelProperty(value = "设备类型(1受检设备;2特种设备)",notes = "设备类型code") @TableField("equipment_type") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE) private String equipmentType; + @TableField(exist = false) + private String equipmentTypeName; + /** * 使用状态(字典code) */ - @ApiModelProperty("使用状态(字典code)") + @ApiModelProperty(value = "使用状态(字典code)",notes = "使用状态code") @TableField("usage_status") @DictCodeField(message = "使用状态", cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS) private String usageStatus; @@ -87,28 +91,32 @@ /** * 等级(字典code) */ - @ApiModelProperty("等级(字典code)") + @ApiModelProperty(value = "等级(字典code)",notes = "重要等级code") @TableField("level") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_LEVEL) private String level; + @TableField(exist = false) + private String levelName; + /** * 生产国家 */ - @ApiModelProperty("生产国家") + @ApiModelProperty(value = "生产国家",notes = "生产国家") @TableField("product_country") private String productCountry; /** * 生产厂家 */ - @ApiModelProperty("生产厂家") + @ApiModelProperty(value = "生产厂家",notes = "生产厂家") @TableField("manufacturer") private String manufacturer; /** * 出厂编号 */ - @ApiModelProperty("出厂编号") + @ApiModelProperty(value = "出厂编号",notes = "出厂编号") @TableField("manufacture_no") @ExcelProperty(value = "出厂编号",index = 3) private String manufactureNo; @@ -116,28 +124,28 @@ /** * 生产日期 */ - @ApiModelProperty("生产日期") + @ApiModelProperty(value = "生产日期",notes = "生产日期") @TableField("product_date") private Date productDate; /** * 单价(万元) */ - @ApiModelProperty("单价(万元)") + @ApiModelProperty(value = "单价(万元)",notes = "设备单价(万元)") @TableField("unit_price") private BigDecimal unitPrice; /** * 购进日期 */ - @ApiModelProperty("购进日期") + @ApiModelProperty(value = "购进日期",notes = "购进日期") @TableField("purchase_date") private Date purchaseDate; /** * 型号规格 */ - @ApiModelProperty("型号规格") + @ApiModelProperty(value = "型号规格",notes = "型号规格") @TableField("model") @ExcelProperty(value = "型号规格",index = 2) private String model; @@ -145,14 +153,18 @@ /** * 质量状况 */ - @ApiModelProperty("质量状况") + @ApiModelProperty(value = "质量状况",notes = "质量状况code") @TableField("quality_condition") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_QUALITY) private String qualityCondition; + @TableField(exist = false) + private String qualityConditionName; + /** * 所在单位id */ - @ApiModelProperty("所在单位id") + @ApiModelProperty(value = "所在单位id",notes = "所在单位id") @TableField("company_id") private Long companyId; @@ -163,7 +175,7 @@ /** * 使用部门id */ - @ApiModelProperty("使用部门id") + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") @TableField("dept_id") private Long deptId; @@ -174,14 +186,17 @@ /** * 设备分类(字典code) */ - @ApiModelProperty("设备分类(字典code)") + @ApiModelProperty(value = "设备分类(字典code)",notes = "设备分类code") @TableField("category") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CATEGORY) private String category; + @TableField(exist = false) + private String categoryName; /** * 检定周期(月) */ - @ApiModelProperty("检定周期(月)") + @ApiModelProperty(value = "检定周期(月)",notes = "检定周期(月)") @TableField("check_cycle") @ExcelProperty(value = "检定周期(月)",index = 6) @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, horizontalAlignment = HorizontalAlignmentEnum.LEFT) @@ -190,7 +205,7 @@ /** * 备注 */ - @ApiModelProperty("备注") + @ApiModelProperty(value = "备注",notes = "备注") @TableField("remark") @ExcelProperty(value = "备注",index = 9) private String remark; @@ -198,28 +213,28 @@ /** * 说明书(minio存储文件名)(多个用,拼接) */ - @ApiModelProperty("说明书(minio存储文件名)(多个用,拼接)") + @ApiModelProperty(value = "说明书(minio存储文件名)(多个用,拼接)") @TableField("instructions_file") private String instructionsFile; /** * 检定机构 */ - @ApiModelProperty("检定机构") + @ApiModelProperty(value = "检定机构",notes = "检定(校准)机构") @TableField("check_organization") private String checkOrganization; /** * 检定日期 */ - @ApiModelProperty("检定日期") + @ApiModelProperty(value = "检定日期",notes = "检定(校准)日期") @TableField("check_date") private Date checkDate; /** * 证书有效期 */ - @ApiModelProperty("证书有效期") + @ApiModelProperty(value = "证书有效期",notes = "证书有效期") @TableField("certificate_valid") @ExcelProperty(value = "证书有效期",index = 7, converter = DateExcelConverter.class) private Date certificateValid; @@ -227,7 +242,7 @@ /** * 计量标识 */ - @ApiModelProperty("计量标识") + @ApiModelProperty(value = "计量标识",notes = "计量标识code") @TableField("meter_identify") @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY) private String meterIdentify; @@ -237,17 +252,28 @@ @ExcelProperty(value = "计量标识",index = 5) private String meterIdentifyName; + @ApiModelProperty(value = "使用岗位id",notes = "使用岗位id") + @TableField("use_position_id") + private String usePositionId; + /** * 使用岗位 */ @ApiModelProperty("使用岗位") - @TableField("use_position") + @TableField(exist = false) @ExcelProperty(value = "使用岗位",index = 4) private String usePosition; /** * 负责人 */ + @ApiModelProperty(value = "负责人id",notes = "负责人id") + @TableField("director_id") + private String directorId; + + /** + * 负责人 + */ @ApiModelProperty("负责人") @TableField("director_name") private String directorName; @@ -255,17 +281,25 @@ /** * RFID标签绑定 */ - @ApiModelProperty("RFID标签绑定") + @ApiModelProperty(value = "RFID标签绑定",notes = "RFID标签绑定") @TableField("RFID") private String rfid; /** * 在用信息(字典code) */ - @ApiModelProperty("在用信息(字典code)") + @ApiModelProperty(value = "在用信息(字典code)",notes = "在用信息code") @TableField("use_sign") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE) private String useSign; + @TableField(exist = false) + private String useSignName; + + @ApiModelProperty(value = "安装位置id",notes = "安装位置id") + @TableField("install_location_id") + private Long installLocationId; + /** * 安装位置(选择) */ @@ -276,7 +310,7 @@ /** * 安装位置(自定义编写) */ - @ApiModelProperty("安装位置(自定义编写)") + @ApiModelProperty(value = "安装位置(自定义编写)",notes = "详细位置") @TableField("install_location_ext") private String installLocationExt; @@ -290,7 +324,7 @@ /** * 备注(扩展) */ - @ApiModelProperty("备注(扩展)") + @ApiModelProperty(value = "备注(扩展)",notes = "备注") @TableField("remark_ext") private String remarkExt; @@ -327,14 +361,25 @@ @TableLogic(value = "0",delval = "1") private Integer isDel; - @ApiModelProperty("规格型号id") + @ApiModelProperty(value = "规格型号id",notes = "规格型号id") @TableField("model_id") private Long modelId; - @ApiModelProperty("辅助字段") + @ApiModelProperty(value = "辅助字段",notes = "辅助字段") @TableField("help_instruction") private String helpInstruction; + @ApiModelProperty(value = "检定去向",notes = "检定去向") + @TableField("check_destination") + private String checkDestination; + + @ApiModelProperty(value = "限用说明",notes = "限用说明") + @TableField("limit_instruction") + private String limitInstruction; + + @ApiModelProperty("分组名称") + @TableField(exist = false) + private String groupNames; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java index 13eeef8..060aa33 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java @@ -101,8 +101,13 @@ */ @ApiModelProperty("使用状态(字典code)") @TableField("usage_status") + @DictCodeField(message = "使用状态", cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS) private String usageStatus; + @ApiModelProperty("使用状态名称") + @TableField(exist = false) + private String usageStatusName; + /** * 等级(字典code) */ @@ -253,6 +258,10 @@ @TableField(exist = false) private String meterIdentifyName; + @ApiModelProperty("使用岗位id") + @TableField("use_position_id") + private String usePositionId; + /** * 使用岗位 */ @@ -263,6 +272,12 @@ /** * 负责人 */ + @ApiModelProperty("负责人id") + @TableField("director_id") + private String directorId; + /** + * 负责人 + */ @ApiModelProperty("负责人") @TableField("director_name") private String directorName; @@ -281,6 +296,10 @@ @TableField("use_sign") private String useSign; + @ApiModelProperty("安装位置id") + @TableField("install_location_id") + private Long installLocationId; + /** * 安装位置(选择) */ @@ -347,6 +366,14 @@ @TableField("help_instruction") private String helpInstruction; + @ApiModelProperty("检定去向") + @TableField("check_destination") + private String checkDestination; + + @ApiModelProperty("限用说明") + @TableField("limit_instruction") + private String limitInstruction; + @ApiModelProperty("任务id") @TableField(exist = false) private String taskId; @@ -363,4 +390,7 @@ @TableField(exist = false) private List taskInfos; + @ApiModelProperty("分组名称") + @TableField(exist = false) + private String groupNames; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java index 471e8c8..d4b20e9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java @@ -48,10 +48,15 @@ /** * 型号规格编号 */ - @ApiModelProperty("型号规格编号") - @TableField("model_no") - @ExcelProperty("型号规格编号") - private String modelNo; + @ApiModelProperty("设备类型") + @TableField("equipment_type") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE) + private String equipmentType; + + @ApiModelProperty("设备类型名称") + @TableField(exist = false) + @ExcelProperty("设备类型") + private String equipmentTypeName; /** * 设备名称 @@ -113,6 +118,10 @@ @ExcelProperty("备注") private String remark; + @ApiModelProperty("计量站是否可检(1西昌可检;2海口可检,多个用,拼接)") + @TableField("inspectable") + private String inspectable; + /** * 创建人id */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java index d495e2e..a78c41a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java @@ -83,6 +83,7 @@ /** * 安装位置 */ + @ApiModelProperty("安装位置") @TableField("install_location") private String installLocation; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java index d5417d4..633af3f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import java.util.List; @@ -23,7 +24,7 @@ void deleteGroup(Long groupId); - Page listPage(Page page, String groupName); + Page listPage(Page page, EquipmentGroupQueryForm queryForm); EquipmentGroupForm detail(Long groupId); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java index 06d0cbd..222ebdd 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java @@ -3,6 +3,7 @@ import com.casic.missiles.dto.equipment.EquipmentApprovalLog; import com.casic.missiles.dto.equipment.EquipmentQueryForm; import com.casic.missiles.dto.equipment.EquipmentApprovalForm; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentModelInfo; import com.casic.missiles.service.ICommonApprovalService; @@ -19,6 +20,14 @@ */ public interface IEquipmentInfoApprovalService extends ICommonApprovalService { + boolean updateEquipmentInfo(EquipmentApprovalForm approvalForm); + + boolean checkRfidRepeat(String rfid, Long equipmentId); + + String checkLocation(Long installLocationId, String usageStatus, Long equipmentId); + + void saveTurnoverLog(EquipmentInfo newObj, EquipmentInfo oldObj, Long createUserId); + Long saveOrUpdateApproval(EquipmentApprovalForm approvalForm); EquipmentApprovalForm approvalInfoDetail(Long approvalId); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index acec159..dde436d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -29,6 +29,8 @@ */ public interface IEquipmentInfoService extends IService { + + Page listPage(Page page, EquipmentQueryForm queryForm); List list(EquipmentQueryForm queryForm); @@ -52,6 +54,9 @@ void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date certificateValid, String meterIdentify); + void updateLimitInstruction(Long equipmentId, String limitInstruction); + + void removeCertificateInfo(Long equipmentId, Long certificateId); Page remindListPage(Page page, EquipmentRemindQueryForm queryForm) @@ -67,4 +72,10 @@ (Page page, EquipmentCertificateQueryForm queryForm); void bindTask(EquipmentTaskBindForm bindForm); + + String getFieldName(String field); + String getFieldValue(String field, String fieldValue); + + Page orderSelectListPage(Page page, EquipmentRemindQueryForm queryForm); + } 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml index a9033f9..c49776d 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml @@ -4,71 +4,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - id, approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + id + , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction + + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml index 62449ec..f4d9936 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml @@ -42,6 +42,12 @@ + + + + + + @@ -50,12 +56,20 @@ product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid as certificateValid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time, - is_del,model_id,help_instruction + is_del,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction select - from eqpt_equipment_info + from eqpt_equipment_info_view ${ew.sqlSegment} @@ -110,7 +124,7 @@ eqpt_remind_all as ( select e.id as equipment_id, - IFNULL(m.remind_time,0) as remind_time + IFNULL(m.remind_time,90) as remind_time from eqpt_equipment_info e left join eqpt_remind m on e.id = m.equipment_id ), @@ -118,20 +132,32 @@ select id,task_name,CONCAT(DATE_FORMAT(start_time,'%Y-%m-%d'),"~",DATE_FORMAT(end_time,'%Y-%m-%d')) as time_ext,start_time,end_time from eqpt_equipment_task_info ), + latest_sample_relation AS ( + SELECT * + FROM biz_business_order_sample_relation a + WHERE id = ( + SELECT max( id ) + FROM biz_business_order_sample_relation b + WHERE a.sample_id = b.sample_id ) + ), eqpt_ext as ( select e.* , - DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, - GROUP_CONCAT(t.task_name) as taskNames, - GROUP_CONCAT(t.time_ext) as taskTimes, - GROUP_CONCAT(t.id) as taskIds, - min(t.start_time) as task_start_time, - max(t.end_time) as task_end_time - from eqpt_equipment_info e + DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, + GROUP_CONCAT(t.task_name) as taskNames, + GROUP_CONCAT(t.time_ext) as taskTimes, + GROUP_CONCAT(t.id) as taskIds, + min(t.start_time) as task_start_time, + max(t.end_time) as task_end_time, + (case when lsr.sample_status in + #{item} + then 1 else 0 end) as check_status + from eqpt_equipment_info_view e left join eqpt_remind_all a on e.id = a.equipment_id left join eqpt_equipment_task_relation r on e.id = r.equipment_id left join task_ext t on r.task_id = t.id + left join latest_sample_relation lsr on lsr.sample_id = e.id where e.certificate_valid is not null - group by e.id,e.certificate_valid,a.remind_time + group by e.id,e.certificate_valid,a.remind_time,lsr.sample_status ) select * from eqpt_ext @@ -163,6 +189,9 @@ e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, + e.model as model, + e.company_id as companyId, + e.manufacture_no as manufactureNo, c.certificate_report_no as certificateNo, c.certificate_report_name as certificateName, '西昌卫星发射中心计量测试站' as checkOrganization, @@ -173,7 +202,7 @@ c.update_time as updateTime, '1' as certificateType, c.remark as remark - from biz_business_certificate_report c ,eqpt_equipment_info e + from biz_business_certificate_report c ,eqpt_equipment_info_view e where c.sample_id = e.id diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml index 097c405..2ddebe6 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,6 +13,7 @@ + @@ -21,7 +22,7 @@ - id, model_no, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, create_user_id, create_dept_id, create_time, update_time + id, equipment_type, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, inspectable, create_user_id, create_dept_id, create_time, update_time + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java index c69cc82..d1a2bd1 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.service.equipment.IEquipmentGroupInfoService; import io.swagger.annotations.Api; @@ -60,14 +61,11 @@ return ReturnUtil.success(); } - @ApiImplicitParams({ - @ApiImplicitParam(name = "groupName",value = "分组名称",dataType = "String",paramType = "query") - }) @ApiOperation("分组分页列表") - @GetMapping("listPage") - public ReturnDTO> listPage(String groupName){ + @PostMapping("listPage") + public ReturnDTO> listPage(@RequestBody EquipmentGroupQueryForm queryForm){ Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,groupName))); + return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,queryForm))); } @ApiImplicitParams({ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 56b6814..3130c5c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.business.LabelBindDTO; import com.casic.missiles.dto.equipment.*; import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; import com.casic.missiles.service.equipment.IEquipmentInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -36,6 +37,14 @@ public class EquipmentInfoController extends ExportController { private final IEquipmentInfoService equipmentInfoService; + private final IEquipmentInfoApprovalService approvalService; + + @ApiOperation("直接编辑设备") + @PostMapping("/info/update") + public ReturnDTO update(@RequestBody EquipmentApprovalForm approvalForm){ + approvalService.updateEquipmentInfo(approvalForm); + return ReturnUtil.success(); + } @ApiOperation("设备分页列表") @PostMapping("/info/listPage") @@ -152,5 +161,14 @@ return ReturnUtil.success(); } + @ApiOperation("到期提醒分页列表") + @PostMapping("/orderSelect/listPage") + @ResponseBody + public ReturnDTO> EquipmentOrderSelectQueryForm(@RequestBody EquipmentRemindQueryForm queryForm) { + Page page = PageFactory.defaultPage(); + page = equipmentInfoService.orderSelectListPage(page, queryForm); + return ReturnUtil.success(super.packForBT(page)); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index 044d245..ccbd668 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -103,14 +103,20 @@ @ApiOperation("设备名称列表") @GetMapping("listEquipmentName") - public ReturnDTO> listEquipmentName(){ - return ReturnUtil.success(modelInfoService.listEquipmentName()); + public ReturnDTO> listEquipmentName(String equipmentType){ + return ReturnUtil.success(modelInfoService.listEquipmentName(equipmentType)); } @ApiOperation("规格型号列表") @GetMapping("listModel") - public ReturnDTO> listModel(String equipmentName){ - return ReturnUtil.success(modelInfoService.listModel(equipmentName)); + public ReturnDTO> listModel(String equipmentType, String equipmentName){ + return ReturnUtil.success(modelInfoService.listModel(equipmentType,equipmentName)); + } + + @ApiOperation("获取默认检定去向") + @GetMapping("defaultCheckDestination") + public ReturnDTO defaultCheckDestination(Long modelId, Long companyId){ + return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java index 7e79008..1fc1f9c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.CertificateUpdate; +import com.casic.missiles.dto.equipment.LimitInstructionUpdate; import com.casic.missiles.model.plan.OrderReceive; import com.casic.missiles.model.plan.SampleStatueUpdate; import com.casic.missiles.service.equipment.IEquipmentInfoService; @@ -55,4 +56,11 @@ return ReturnUtil.success(); } + @ApiOperation("更新限用说明") + @PostMapping("/limitInstructionUpdate") + public ReturnDTO updateLimitInstruction(@RequestBody LimitInstructionUpdate updateForm) { + equipmentInfoService.updateLimitInstruction(updateForm.getEquipmentId(), updateForm.getLimitInstruction()); + return ReturnUtil.success(); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java index e314003..73d02ec 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java @@ -1,7 +1,18 @@ package com.casic.missiles.controller.system; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.system.SystemLocation; +import com.casic.missiles.service.system.ISystemLocationService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** *

@@ -11,8 +22,45 @@ * @author zhangyingjie * @since 2023-11-15 */ +@Api(tags = "安装位置管理") @RestController -@RequestMapping("/system-location") -public class SystemLocationController { +@RequestMapping("/system/location") +@RequiredArgsConstructor +public class SystemLocationController extends BaseController { + + private final ISystemLocationService locationService; + + @PostMapping("add") + public ReturnDTO add(@RequestBody SystemLocation systemLocation){ + locationService.add(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("update") + public ReturnDTO update(@RequestBody SystemLocation systemLocation){ + locationService.update(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("delete") + public ReturnDTO delete(@RequestBody SystemLocation systemLocation){ + locationService.delete(systemLocation); + return ReturnUtil.success(); + } + + @GetMapping("listPage") + public ReturnDTO> listPage(Long searchId,Long positionId, String installLocation){ + Page page = PageFactory.defaultPage(); + page = locationService.listPage(page,searchId,positionId, installLocation); + return ReturnUtil.success(super.packForBT(page)); + } + + @GetMapping("list") + public ReturnDTO> list(Long searchId,Long positionId, String installLocation){ + List list = locationService.list(searchId,positionId, installLocation); + return ReturnUtil.success(list); + } + + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java index f9e2f91..d64634a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java @@ -1,6 +1,8 @@ package com.casic.missiles.controller.system; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; @@ -10,6 +12,8 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** *

* 受检系统-系统管理-岗位管理 前端控制器 @@ -22,7 +26,7 @@ @RestController @RequestMapping("/system/position") @RequiredArgsConstructor -public class SystemPositionController { +public class SystemPositionController extends BaseController { private final ISystemPositionService positionService; @@ -45,16 +49,16 @@ } @GetMapping("listPage") - public ReturnDTO listPage(Long searchId,String positionName){ + public ReturnDTO> listPage(Long searchId, String positionName){ Page page = PageFactory.defaultPage(); - positionService.listPage(page,searchId,positionName); - return ReturnUtil.success(); + page = positionService.listPage(page,searchId,positionName); + return ReturnUtil.success(super.packForBT(page)); } @GetMapping("list") - public ReturnDTO list(Long searchId,String positionName){ - positionService.list(searchId,positionName); - return ReturnUtil.success(); + public ReturnDTO> list(Long searchId,String positionName){ + List list = positionService.list(searchId,positionName); + return ReturnUtil.success(list); } diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index 6f0359b..88cce74 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -72,9 +72,9 @@ addresses: http://111.198.10.15:21605/xxl-job-admin executor: # 此执行器的名称 - appname: casic-metering-job + appname: casic-metering-xc-eqpt-job # 此执行器的ip、端口,每个节点对应自己的ip,端口用于任务执行的通信 - ip: 127.0.0.1 + ip: 192.168.20.33 port: 9999 # 此执行器的日志存放路径 logpath: logs/xxl-job/casic-metering-job @@ -122,7 +122,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_remind_relation + table-name: eqpt_equipment_modify_log prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index 7b3c7a2..29a820a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -18,11 +18,15 @@ */ // 系统前缀 String DICT_PREFIX = "eqpt"; + + String EQUIPMENT_TYPE = DICT_PREFIX + "DeviceCategory"; //受检设备使用状态 String EQUIPMENT_USAGE_STATUS = DICT_PREFIX + "DeviceUseStatus"; //受检设备重要等级 String EQUIPMENT_LEVEL = DICT_PREFIX + "DeviceLevel"; + String EQUIPMENT_QUALITY = DICT_PREFIX + "DeviceQuality"; + String EQUIPMENT_CATEGORY = DICT_PREFIX + "DeviceType"; // 设备申请类型 String EQUIPMENT_APPROVAL_TYPE = DICT_PREFIX + "EquipmentApprovalType"; @@ -30,6 +34,8 @@ String EQUIPMENT_STATUS_APPROVAL_TYPE = DICT_PREFIX + "EquipmentStatusApprovalType"; // 设备计量标识 String EQUIPMENT_METER_IDENTITY = DICT_PREFIX + "MeterIdentify"; + + String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; // 计量计划计划分类 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java index 694e48b..aefff4a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.equipment; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.model.equipment.EquipmentAttachment; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentTechnicalTarget; @@ -13,6 +14,8 @@ @Data public class EquipmentApprovalForm extends EquipmentInfoApproval { + @ApiModelProperty("规格型号说明书") + private String instructionsFile; @ApiModelProperty("技术指标列表") private List technicalTargetList; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java index f6448c6..c814444 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java @@ -12,6 +12,9 @@ @Setter public class EquipmentInfoForm extends EquipmentInfo{ + @ApiModelProperty("规格型号说明书") + private String instructionsFile; + @ApiModelProperty("组别信息") @TableField(exist = false) private List groupInfos; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java index bcec504..7803273 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java @@ -10,6 +10,9 @@ @Setter public class EquipmentModelQueryForm { + @ApiModelProperty("设备类型") + private String equipmentType; + @ApiModelProperty("设备名称") private String equipmentName; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java index 03fc0f1..fc2acc8 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java @@ -32,12 +32,21 @@ @ApiModelProperty("所在单位") private Long companyId; - @ApiModelProperty("使用部门") + + @ApiModelProperty("使用部门(单个)") + private Long deptId; + @ApiModelProperty("使用部门(列表)") private List deptIds; + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty("使用岗位") private String usePosition; + @ApiModelProperty("负责人ID") + private Long directorId; + @ApiModelProperty("负责人") private String directorName; @@ -50,6 +59,9 @@ @ApiModelProperty("安装位置") private String installLocation; + @ApiModelProperty("分组id") + private Long groupId; + @ApiModelProperty("参试任务id") private Long taskId; @@ -75,4 +87,5 @@ @ApiModelProperty("使用状态列表[状态维护选择设备时用]") private List usageStatusList; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java index 30b5af3..b6afd18 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java @@ -73,5 +73,52 @@ @TableField("remark") private String remark; + /** + * 所在单位id + */ + @ApiModelProperty("所在单位id") + @TableField(exist = false) + private Long companyId; + + @ApiModelProperty("所在单位名称") + @TableField(exist = false) + private String companyName; + + /** + * 使用部门id + */ + @ApiModelProperty("使用部门id") + @TableField(exist = false) + private Long deptId; + + @ApiModelProperty("使用部门名称") + @TableField(exist = false) + private String deptName; + + /** + * 分系统id + */ + @ApiModelProperty(value = "分系统id") + @TableField(exist = false) + private Long subSystemId; + + @ApiModelProperty("分系统名称") + @TableField(exist = false) + private String subSystemName; + + /** + * 使用岗位id + */ + @ApiModelProperty("岗位ID") + @TableField("position_id") + private Long positionId; + + /** + * 使用岗位名称 + */ + @ApiModelProperty("岗位名称") + @TableField(exist = false) + private String positionName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java index 36575f6..b4f78b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.equipment; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -7,6 +8,8 @@ import java.io.Serializable; import java.util.Date; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.Getter; @@ -55,12 +58,35 @@ @ApiModelProperty("型号规格") @TableField(exist = false) private String model; + + @ApiModelProperty("出厂编号") + @TableField(exist = false) + private String manufactureNo; + @ApiModelProperty("生产厂家") + @TableField(exist = false) + private String manufacturer; + + /** + * 出厂编号 + */ + @ApiModelProperty("负责人") @TableField(exist = false) private String directorName; @ApiModelProperty("计量标识") @TableField(exist = false) private String meterIdentify; + + @ApiModelProperty("计量标识名称") + @TableField(exist = false) + private String meterIdentifyName; + + @ApiModelProperty("使用状态(字典code)") + @TableField(exist = false) + private String usageStatus; + @ApiModelProperty("使用状态名称") + @TableField(exist = false) + private String usageStatusName; @ApiModelProperty("证书有效期") @TableField(exist = false) private Date certificateValid; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java index 21294cf..a8392ff 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java @@ -44,14 +44,14 @@ private static final long serialVersionUID = 1L; - @ApiModelProperty("主键") + @ApiModelProperty(value = "主键") @TableId("id") private Long id; /** * 设备编号 */ - @ApiModelProperty("设备编号") + @ApiModelProperty(value = "设备编号",notes = "统一编号") @TableField("equipment_no") @ExcelProperty(value = "统一编号",index = 0) private String equipmentNo; @@ -59,7 +59,7 @@ /** * 设备名称 */ - @ApiModelProperty("设备名称") + @ApiModelProperty(value = "设备名称",notes = "设备名称") @TableField("equipment_name") @ExcelProperty(value = "设备名称",index = 1) private String equipmentName; @@ -67,14 +67,18 @@ /** * 设备类型(1受检设备;2特种设备) */ - @ApiModelProperty("设备类型(1受检设备;2特种设备)") + @ApiModelProperty(value = "设备类型(1受检设备;2特种设备)",notes = "设备类型code") @TableField("equipment_type") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE) private String equipmentType; + @TableField(exist = false) + private String equipmentTypeName; + /** * 使用状态(字典code) */ - @ApiModelProperty("使用状态(字典code)") + @ApiModelProperty(value = "使用状态(字典code)",notes = "使用状态code") @TableField("usage_status") @DictCodeField(message = "使用状态", cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS) private String usageStatus; @@ -87,28 +91,32 @@ /** * 等级(字典code) */ - @ApiModelProperty("等级(字典code)") + @ApiModelProperty(value = "等级(字典code)",notes = "重要等级code") @TableField("level") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_LEVEL) private String level; + @TableField(exist = false) + private String levelName; + /** * 生产国家 */ - @ApiModelProperty("生产国家") + @ApiModelProperty(value = "生产国家",notes = "生产国家") @TableField("product_country") private String productCountry; /** * 生产厂家 */ - @ApiModelProperty("生产厂家") + @ApiModelProperty(value = "生产厂家",notes = "生产厂家") @TableField("manufacturer") private String manufacturer; /** * 出厂编号 */ - @ApiModelProperty("出厂编号") + @ApiModelProperty(value = "出厂编号",notes = "出厂编号") @TableField("manufacture_no") @ExcelProperty(value = "出厂编号",index = 3) private String manufactureNo; @@ -116,28 +124,28 @@ /** * 生产日期 */ - @ApiModelProperty("生产日期") + @ApiModelProperty(value = "生产日期",notes = "生产日期") @TableField("product_date") private Date productDate; /** * 单价(万元) */ - @ApiModelProperty("单价(万元)") + @ApiModelProperty(value = "单价(万元)",notes = "设备单价(万元)") @TableField("unit_price") private BigDecimal unitPrice; /** * 购进日期 */ - @ApiModelProperty("购进日期") + @ApiModelProperty(value = "购进日期",notes = "购进日期") @TableField("purchase_date") private Date purchaseDate; /** * 型号规格 */ - @ApiModelProperty("型号规格") + @ApiModelProperty(value = "型号规格",notes = "型号规格") @TableField("model") @ExcelProperty(value = "型号规格",index = 2) private String model; @@ -145,14 +153,18 @@ /** * 质量状况 */ - @ApiModelProperty("质量状况") + @ApiModelProperty(value = "质量状况",notes = "质量状况code") @TableField("quality_condition") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_QUALITY) private String qualityCondition; + @TableField(exist = false) + private String qualityConditionName; + /** * 所在单位id */ - @ApiModelProperty("所在单位id") + @ApiModelProperty(value = "所在单位id",notes = "所在单位id") @TableField("company_id") private Long companyId; @@ -163,7 +175,7 @@ /** * 使用部门id */ - @ApiModelProperty("使用部门id") + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") @TableField("dept_id") private Long deptId; @@ -174,14 +186,17 @@ /** * 设备分类(字典code) */ - @ApiModelProperty("设备分类(字典code)") + @ApiModelProperty(value = "设备分类(字典code)",notes = "设备分类code") @TableField("category") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CATEGORY) private String category; + @TableField(exist = false) + private String categoryName; /** * 检定周期(月) */ - @ApiModelProperty("检定周期(月)") + @ApiModelProperty(value = "检定周期(月)",notes = "检定周期(月)") @TableField("check_cycle") @ExcelProperty(value = "检定周期(月)",index = 6) @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, horizontalAlignment = HorizontalAlignmentEnum.LEFT) @@ -190,7 +205,7 @@ /** * 备注 */ - @ApiModelProperty("备注") + @ApiModelProperty(value = "备注",notes = "备注") @TableField("remark") @ExcelProperty(value = "备注",index = 9) private String remark; @@ -198,28 +213,28 @@ /** * 说明书(minio存储文件名)(多个用,拼接) */ - @ApiModelProperty("说明书(minio存储文件名)(多个用,拼接)") + @ApiModelProperty(value = "说明书(minio存储文件名)(多个用,拼接)") @TableField("instructions_file") private String instructionsFile; /** * 检定机构 */ - @ApiModelProperty("检定机构") + @ApiModelProperty(value = "检定机构",notes = "检定(校准)机构") @TableField("check_organization") private String checkOrganization; /** * 检定日期 */ - @ApiModelProperty("检定日期") + @ApiModelProperty(value = "检定日期",notes = "检定(校准)日期") @TableField("check_date") private Date checkDate; /** * 证书有效期 */ - @ApiModelProperty("证书有效期") + @ApiModelProperty(value = "证书有效期",notes = "证书有效期") @TableField("certificate_valid") @ExcelProperty(value = "证书有效期",index = 7, converter = DateExcelConverter.class) private Date certificateValid; @@ -227,7 +242,7 @@ /** * 计量标识 */ - @ApiModelProperty("计量标识") + @ApiModelProperty(value = "计量标识",notes = "计量标识code") @TableField("meter_identify") @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY) private String meterIdentify; @@ -237,17 +252,28 @@ @ExcelProperty(value = "计量标识",index = 5) private String meterIdentifyName; + @ApiModelProperty(value = "使用岗位id",notes = "使用岗位id") + @TableField("use_position_id") + private String usePositionId; + /** * 使用岗位 */ @ApiModelProperty("使用岗位") - @TableField("use_position") + @TableField(exist = false) @ExcelProperty(value = "使用岗位",index = 4) private String usePosition; /** * 负责人 */ + @ApiModelProperty(value = "负责人id",notes = "负责人id") + @TableField("director_id") + private String directorId; + + /** + * 负责人 + */ @ApiModelProperty("负责人") @TableField("director_name") private String directorName; @@ -255,17 +281,25 @@ /** * RFID标签绑定 */ - @ApiModelProperty("RFID标签绑定") + @ApiModelProperty(value = "RFID标签绑定",notes = "RFID标签绑定") @TableField("RFID") private String rfid; /** * 在用信息(字典code) */ - @ApiModelProperty("在用信息(字典code)") + @ApiModelProperty(value = "在用信息(字典code)",notes = "在用信息code") @TableField("use_sign") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE) private String useSign; + @TableField(exist = false) + private String useSignName; + + @ApiModelProperty(value = "安装位置id",notes = "安装位置id") + @TableField("install_location_id") + private Long installLocationId; + /** * 安装位置(选择) */ @@ -276,7 +310,7 @@ /** * 安装位置(自定义编写) */ - @ApiModelProperty("安装位置(自定义编写)") + @ApiModelProperty(value = "安装位置(自定义编写)",notes = "详细位置") @TableField("install_location_ext") private String installLocationExt; @@ -290,7 +324,7 @@ /** * 备注(扩展) */ - @ApiModelProperty("备注(扩展)") + @ApiModelProperty(value = "备注(扩展)",notes = "备注") @TableField("remark_ext") private String remarkExt; @@ -327,14 +361,25 @@ @TableLogic(value = "0",delval = "1") private Integer isDel; - @ApiModelProperty("规格型号id") + @ApiModelProperty(value = "规格型号id",notes = "规格型号id") @TableField("model_id") private Long modelId; - @ApiModelProperty("辅助字段") + @ApiModelProperty(value = "辅助字段",notes = "辅助字段") @TableField("help_instruction") private String helpInstruction; + @ApiModelProperty(value = "检定去向",notes = "检定去向") + @TableField("check_destination") + private String checkDestination; + + @ApiModelProperty(value = "限用说明",notes = "限用说明") + @TableField("limit_instruction") + private String limitInstruction; + + @ApiModelProperty("分组名称") + @TableField(exist = false) + private String groupNames; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java index 13eeef8..060aa33 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java @@ -101,8 +101,13 @@ */ @ApiModelProperty("使用状态(字典code)") @TableField("usage_status") + @DictCodeField(message = "使用状态", cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS) private String usageStatus; + @ApiModelProperty("使用状态名称") + @TableField(exist = false) + private String usageStatusName; + /** * 等级(字典code) */ @@ -253,6 +258,10 @@ @TableField(exist = false) private String meterIdentifyName; + @ApiModelProperty("使用岗位id") + @TableField("use_position_id") + private String usePositionId; + /** * 使用岗位 */ @@ -263,6 +272,12 @@ /** * 负责人 */ + @ApiModelProperty("负责人id") + @TableField("director_id") + private String directorId; + /** + * 负责人 + */ @ApiModelProperty("负责人") @TableField("director_name") private String directorName; @@ -281,6 +296,10 @@ @TableField("use_sign") private String useSign; + @ApiModelProperty("安装位置id") + @TableField("install_location_id") + private Long installLocationId; + /** * 安装位置(选择) */ @@ -347,6 +366,14 @@ @TableField("help_instruction") private String helpInstruction; + @ApiModelProperty("检定去向") + @TableField("check_destination") + private String checkDestination; + + @ApiModelProperty("限用说明") + @TableField("limit_instruction") + private String limitInstruction; + @ApiModelProperty("任务id") @TableField(exist = false) private String taskId; @@ -363,4 +390,7 @@ @TableField(exist = false) private List taskInfos; + @ApiModelProperty("分组名称") + @TableField(exist = false) + private String groupNames; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java index 471e8c8..d4b20e9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java @@ -48,10 +48,15 @@ /** * 型号规格编号 */ - @ApiModelProperty("型号规格编号") - @TableField("model_no") - @ExcelProperty("型号规格编号") - private String modelNo; + @ApiModelProperty("设备类型") + @TableField("equipment_type") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE) + private String equipmentType; + + @ApiModelProperty("设备类型名称") + @TableField(exist = false) + @ExcelProperty("设备类型") + private String equipmentTypeName; /** * 设备名称 @@ -113,6 +118,10 @@ @ExcelProperty("备注") private String remark; + @ApiModelProperty("计量站是否可检(1西昌可检;2海口可检,多个用,拼接)") + @TableField("inspectable") + private String inspectable; + /** * 创建人id */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java index d495e2e..a78c41a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java @@ -83,6 +83,7 @@ /** * 安装位置 */ + @ApiModelProperty("安装位置") @TableField("install_location") private String installLocation; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java index d5417d4..633af3f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import java.util.List; @@ -23,7 +24,7 @@ void deleteGroup(Long groupId); - Page listPage(Page page, String groupName); + Page listPage(Page page, EquipmentGroupQueryForm queryForm); EquipmentGroupForm detail(Long groupId); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java index 06d0cbd..222ebdd 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java @@ -3,6 +3,7 @@ import com.casic.missiles.dto.equipment.EquipmentApprovalLog; import com.casic.missiles.dto.equipment.EquipmentQueryForm; import com.casic.missiles.dto.equipment.EquipmentApprovalForm; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentModelInfo; import com.casic.missiles.service.ICommonApprovalService; @@ -19,6 +20,14 @@ */ public interface IEquipmentInfoApprovalService extends ICommonApprovalService { + boolean updateEquipmentInfo(EquipmentApprovalForm approvalForm); + + boolean checkRfidRepeat(String rfid, Long equipmentId); + + String checkLocation(Long installLocationId, String usageStatus, Long equipmentId); + + void saveTurnoverLog(EquipmentInfo newObj, EquipmentInfo oldObj, Long createUserId); + Long saveOrUpdateApproval(EquipmentApprovalForm approvalForm); EquipmentApprovalForm approvalInfoDetail(Long approvalId); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index acec159..dde436d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -29,6 +29,8 @@ */ public interface IEquipmentInfoService extends IService { + + Page listPage(Page page, EquipmentQueryForm queryForm); List list(EquipmentQueryForm queryForm); @@ -52,6 +54,9 @@ void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date certificateValid, String meterIdentify); + void updateLimitInstruction(Long equipmentId, String limitInstruction); + + void removeCertificateInfo(Long equipmentId, Long certificateId); Page remindListPage(Page page, EquipmentRemindQueryForm queryForm) @@ -67,4 +72,10 @@ (Page page, EquipmentCertificateQueryForm queryForm); void bindTask(EquipmentTaskBindForm bindForm); + + String getFieldName(String field); + String getFieldValue(String field, String fieldValue); + + Page orderSelectListPage(Page page, EquipmentRemindQueryForm queryForm); + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java index 19afa01..4e532a7 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java @@ -28,8 +28,10 @@ List listScope(EquipmentModelQueryForm queryForm); - List listEquipmentName(); + List listEquipmentName(String equipmentType); - List listModel(String equipmentName); + List listModel(String equipmentType, String equipmentName); + + String defaultCheckDestination(Long modelId,Long companyId); } 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml index a9033f9..c49776d 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml @@ -4,71 +4,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - id, approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + id + , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction + + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml index 62449ec..f4d9936 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml @@ -42,6 +42,12 @@ + + + + + + @@ -50,12 +56,20 @@ product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid as certificateValid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time, - is_del,model_id,help_instruction + is_del,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction select - from eqpt_equipment_info + from eqpt_equipment_info_view ${ew.sqlSegment} @@ -110,7 +124,7 @@ eqpt_remind_all as ( select e.id as equipment_id, - IFNULL(m.remind_time,0) as remind_time + IFNULL(m.remind_time,90) as remind_time from eqpt_equipment_info e left join eqpt_remind m on e.id = m.equipment_id ), @@ -118,20 +132,32 @@ select id,task_name,CONCAT(DATE_FORMAT(start_time,'%Y-%m-%d'),"~",DATE_FORMAT(end_time,'%Y-%m-%d')) as time_ext,start_time,end_time from eqpt_equipment_task_info ), + latest_sample_relation AS ( + SELECT * + FROM biz_business_order_sample_relation a + WHERE id = ( + SELECT max( id ) + FROM biz_business_order_sample_relation b + WHERE a.sample_id = b.sample_id ) + ), eqpt_ext as ( select e.* , - DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, - GROUP_CONCAT(t.task_name) as taskNames, - GROUP_CONCAT(t.time_ext) as taskTimes, - GROUP_CONCAT(t.id) as taskIds, - min(t.start_time) as task_start_time, - max(t.end_time) as task_end_time - from eqpt_equipment_info e + DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, + GROUP_CONCAT(t.task_name) as taskNames, + GROUP_CONCAT(t.time_ext) as taskTimes, + GROUP_CONCAT(t.id) as taskIds, + min(t.start_time) as task_start_time, + max(t.end_time) as task_end_time, + (case when lsr.sample_status in + #{item} + then 1 else 0 end) as check_status + from eqpt_equipment_info_view e left join eqpt_remind_all a on e.id = a.equipment_id left join eqpt_equipment_task_relation r on e.id = r.equipment_id left join task_ext t on r.task_id = t.id + left join latest_sample_relation lsr on lsr.sample_id = e.id where e.certificate_valid is not null - group by e.id,e.certificate_valid,a.remind_time + group by e.id,e.certificate_valid,a.remind_time,lsr.sample_status ) select * from eqpt_ext @@ -163,6 +189,9 @@ e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, + e.model as model, + e.company_id as companyId, + e.manufacture_no as manufactureNo, c.certificate_report_no as certificateNo, c.certificate_report_name as certificateName, '西昌卫星发射中心计量测试站' as checkOrganization, @@ -173,7 +202,7 @@ c.update_time as updateTime, '1' as certificateType, c.remark as remark - from biz_business_certificate_report c ,eqpt_equipment_info e + from biz_business_certificate_report c ,eqpt_equipment_info_view e where c.sample_id = e.id diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml index 097c405..2ddebe6 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,6 +13,7 @@ + @@ -21,7 +22,7 @@ - id, model_no, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, create_user_id, create_dept_id, create_time, update_time + id, equipment_type, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, inspectable, create_user_id, create_dept_id, create_time, update_time + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java index c69cc82..d1a2bd1 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.service.equipment.IEquipmentGroupInfoService; import io.swagger.annotations.Api; @@ -60,14 +61,11 @@ return ReturnUtil.success(); } - @ApiImplicitParams({ - @ApiImplicitParam(name = "groupName",value = "分组名称",dataType = "String",paramType = "query") - }) @ApiOperation("分组分页列表") - @GetMapping("listPage") - public ReturnDTO> listPage(String groupName){ + @PostMapping("listPage") + public ReturnDTO> listPage(@RequestBody EquipmentGroupQueryForm queryForm){ Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,groupName))); + return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,queryForm))); } @ApiImplicitParams({ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 56b6814..3130c5c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.business.LabelBindDTO; import com.casic.missiles.dto.equipment.*; import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; import com.casic.missiles.service.equipment.IEquipmentInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -36,6 +37,14 @@ public class EquipmentInfoController extends ExportController { private final IEquipmentInfoService equipmentInfoService; + private final IEquipmentInfoApprovalService approvalService; + + @ApiOperation("直接编辑设备") + @PostMapping("/info/update") + public ReturnDTO update(@RequestBody EquipmentApprovalForm approvalForm){ + approvalService.updateEquipmentInfo(approvalForm); + return ReturnUtil.success(); + } @ApiOperation("设备分页列表") @PostMapping("/info/listPage") @@ -152,5 +161,14 @@ return ReturnUtil.success(); } + @ApiOperation("到期提醒分页列表") + @PostMapping("/orderSelect/listPage") + @ResponseBody + public ReturnDTO> EquipmentOrderSelectQueryForm(@RequestBody EquipmentRemindQueryForm queryForm) { + Page page = PageFactory.defaultPage(); + page = equipmentInfoService.orderSelectListPage(page, queryForm); + return ReturnUtil.success(super.packForBT(page)); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index 044d245..ccbd668 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -103,14 +103,20 @@ @ApiOperation("设备名称列表") @GetMapping("listEquipmentName") - public ReturnDTO> listEquipmentName(){ - return ReturnUtil.success(modelInfoService.listEquipmentName()); + public ReturnDTO> listEquipmentName(String equipmentType){ + return ReturnUtil.success(modelInfoService.listEquipmentName(equipmentType)); } @ApiOperation("规格型号列表") @GetMapping("listModel") - public ReturnDTO> listModel(String equipmentName){ - return ReturnUtil.success(modelInfoService.listModel(equipmentName)); + public ReturnDTO> listModel(String equipmentType, String equipmentName){ + return ReturnUtil.success(modelInfoService.listModel(equipmentType,equipmentName)); + } + + @ApiOperation("获取默认检定去向") + @GetMapping("defaultCheckDestination") + public ReturnDTO defaultCheckDestination(Long modelId, Long companyId){ + return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java index 7e79008..1fc1f9c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.CertificateUpdate; +import com.casic.missiles.dto.equipment.LimitInstructionUpdate; import com.casic.missiles.model.plan.OrderReceive; import com.casic.missiles.model.plan.SampleStatueUpdate; import com.casic.missiles.service.equipment.IEquipmentInfoService; @@ -55,4 +56,11 @@ return ReturnUtil.success(); } + @ApiOperation("更新限用说明") + @PostMapping("/limitInstructionUpdate") + public ReturnDTO updateLimitInstruction(@RequestBody LimitInstructionUpdate updateForm) { + equipmentInfoService.updateLimitInstruction(updateForm.getEquipmentId(), updateForm.getLimitInstruction()); + return ReturnUtil.success(); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java index e314003..73d02ec 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java @@ -1,7 +1,18 @@ package com.casic.missiles.controller.system; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.system.SystemLocation; +import com.casic.missiles.service.system.ISystemLocationService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** *

@@ -11,8 +22,45 @@ * @author zhangyingjie * @since 2023-11-15 */ +@Api(tags = "安装位置管理") @RestController -@RequestMapping("/system-location") -public class SystemLocationController { +@RequestMapping("/system/location") +@RequiredArgsConstructor +public class SystemLocationController extends BaseController { + + private final ISystemLocationService locationService; + + @PostMapping("add") + public ReturnDTO add(@RequestBody SystemLocation systemLocation){ + locationService.add(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("update") + public ReturnDTO update(@RequestBody SystemLocation systemLocation){ + locationService.update(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("delete") + public ReturnDTO delete(@RequestBody SystemLocation systemLocation){ + locationService.delete(systemLocation); + return ReturnUtil.success(); + } + + @GetMapping("listPage") + public ReturnDTO> listPage(Long searchId,Long positionId, String installLocation){ + Page page = PageFactory.defaultPage(); + page = locationService.listPage(page,searchId,positionId, installLocation); + return ReturnUtil.success(super.packForBT(page)); + } + + @GetMapping("list") + public ReturnDTO> list(Long searchId,Long positionId, String installLocation){ + List list = locationService.list(searchId,positionId, installLocation); + return ReturnUtil.success(list); + } + + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java index f9e2f91..d64634a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java @@ -1,6 +1,8 @@ package com.casic.missiles.controller.system; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; @@ -10,6 +12,8 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** *

* 受检系统-系统管理-岗位管理 前端控制器 @@ -22,7 +26,7 @@ @RestController @RequestMapping("/system/position") @RequiredArgsConstructor -public class SystemPositionController { +public class SystemPositionController extends BaseController { private final ISystemPositionService positionService; @@ -45,16 +49,16 @@ } @GetMapping("listPage") - public ReturnDTO listPage(Long searchId,String positionName){ + public ReturnDTO> listPage(Long searchId, String positionName){ Page page = PageFactory.defaultPage(); - positionService.listPage(page,searchId,positionName); - return ReturnUtil.success(); + page = positionService.listPage(page,searchId,positionName); + return ReturnUtil.success(super.packForBT(page)); } @GetMapping("list") - public ReturnDTO list(Long searchId,String positionName){ - positionService.list(searchId,positionName); - return ReturnUtil.success(); + public ReturnDTO> list(Long searchId,String positionName){ + List list = positionService.list(searchId,positionName); + return ReturnUtil.success(list); } diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index 6f0359b..88cce74 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -72,9 +72,9 @@ addresses: http://111.198.10.15:21605/xxl-job-admin executor: # 此执行器的名称 - appname: casic-metering-job + appname: casic-metering-xc-eqpt-job # 此执行器的ip、端口,每个节点对应自己的ip,端口用于任务执行的通信 - ip: 127.0.0.1 + ip: 192.168.20.33 port: 9999 # 此执行器的日志存放路径 logpath: logs/xxl-job/casic-metering-job @@ -122,7 +122,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_remind_relation + table-name: eqpt_equipment_modify_log prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index 7b3c7a2..29a820a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -18,11 +18,15 @@ */ // 系统前缀 String DICT_PREFIX = "eqpt"; + + String EQUIPMENT_TYPE = DICT_PREFIX + "DeviceCategory"; //受检设备使用状态 String EQUIPMENT_USAGE_STATUS = DICT_PREFIX + "DeviceUseStatus"; //受检设备重要等级 String EQUIPMENT_LEVEL = DICT_PREFIX + "DeviceLevel"; + String EQUIPMENT_QUALITY = DICT_PREFIX + "DeviceQuality"; + String EQUIPMENT_CATEGORY = DICT_PREFIX + "DeviceType"; // 设备申请类型 String EQUIPMENT_APPROVAL_TYPE = DICT_PREFIX + "EquipmentApprovalType"; @@ -30,6 +34,8 @@ String EQUIPMENT_STATUS_APPROVAL_TYPE = DICT_PREFIX + "EquipmentStatusApprovalType"; // 设备计量标识 String EQUIPMENT_METER_IDENTITY = DICT_PREFIX + "MeterIdentify"; + + String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; // 计量计划计划分类 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java index 694e48b..aefff4a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.equipment; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.model.equipment.EquipmentAttachment; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentTechnicalTarget; @@ -13,6 +14,8 @@ @Data public class EquipmentApprovalForm extends EquipmentInfoApproval { + @ApiModelProperty("规格型号说明书") + private String instructionsFile; @ApiModelProperty("技术指标列表") private List technicalTargetList; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java index f6448c6..c814444 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java @@ -12,6 +12,9 @@ @Setter public class EquipmentInfoForm extends EquipmentInfo{ + @ApiModelProperty("规格型号说明书") + private String instructionsFile; + @ApiModelProperty("组别信息") @TableField(exist = false) private List groupInfos; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java index bcec504..7803273 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java @@ -10,6 +10,9 @@ @Setter public class EquipmentModelQueryForm { + @ApiModelProperty("设备类型") + private String equipmentType; + @ApiModelProperty("设备名称") private String equipmentName; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java index 03fc0f1..fc2acc8 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java @@ -32,12 +32,21 @@ @ApiModelProperty("所在单位") private Long companyId; - @ApiModelProperty("使用部门") + + @ApiModelProperty("使用部门(单个)") + private Long deptId; + @ApiModelProperty("使用部门(列表)") private List deptIds; + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty("使用岗位") private String usePosition; + @ApiModelProperty("负责人ID") + private Long directorId; + @ApiModelProperty("负责人") private String directorName; @@ -50,6 +59,9 @@ @ApiModelProperty("安装位置") private String installLocation; + @ApiModelProperty("分组id") + private Long groupId; + @ApiModelProperty("参试任务id") private Long taskId; @@ -75,4 +87,5 @@ @ApiModelProperty("使用状态列表[状态维护选择设备时用]") private List usageStatusList; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java index 30b5af3..b6afd18 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java @@ -73,5 +73,52 @@ @TableField("remark") private String remark; + /** + * 所在单位id + */ + @ApiModelProperty("所在单位id") + @TableField(exist = false) + private Long companyId; + + @ApiModelProperty("所在单位名称") + @TableField(exist = false) + private String companyName; + + /** + * 使用部门id + */ + @ApiModelProperty("使用部门id") + @TableField(exist = false) + private Long deptId; + + @ApiModelProperty("使用部门名称") + @TableField(exist = false) + private String deptName; + + /** + * 分系统id + */ + @ApiModelProperty(value = "分系统id") + @TableField(exist = false) + private Long subSystemId; + + @ApiModelProperty("分系统名称") + @TableField(exist = false) + private String subSystemName; + + /** + * 使用岗位id + */ + @ApiModelProperty("岗位ID") + @TableField("position_id") + private Long positionId; + + /** + * 使用岗位名称 + */ + @ApiModelProperty("岗位名称") + @TableField(exist = false) + private String positionName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java index 36575f6..b4f78b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.equipment; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -7,6 +8,8 @@ import java.io.Serializable; import java.util.Date; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.Getter; @@ -55,12 +58,35 @@ @ApiModelProperty("型号规格") @TableField(exist = false) private String model; + + @ApiModelProperty("出厂编号") + @TableField(exist = false) + private String manufactureNo; + @ApiModelProperty("生产厂家") + @TableField(exist = false) + private String manufacturer; + + /** + * 出厂编号 + */ + @ApiModelProperty("负责人") @TableField(exist = false) private String directorName; @ApiModelProperty("计量标识") @TableField(exist = false) private String meterIdentify; + + @ApiModelProperty("计量标识名称") + @TableField(exist = false) + private String meterIdentifyName; + + @ApiModelProperty("使用状态(字典code)") + @TableField(exist = false) + private String usageStatus; + @ApiModelProperty("使用状态名称") + @TableField(exist = false) + private String usageStatusName; @ApiModelProperty("证书有效期") @TableField(exist = false) private Date certificateValid; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java index 21294cf..a8392ff 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java @@ -44,14 +44,14 @@ private static final long serialVersionUID = 1L; - @ApiModelProperty("主键") + @ApiModelProperty(value = "主键") @TableId("id") private Long id; /** * 设备编号 */ - @ApiModelProperty("设备编号") + @ApiModelProperty(value = "设备编号",notes = "统一编号") @TableField("equipment_no") @ExcelProperty(value = "统一编号",index = 0) private String equipmentNo; @@ -59,7 +59,7 @@ /** * 设备名称 */ - @ApiModelProperty("设备名称") + @ApiModelProperty(value = "设备名称",notes = "设备名称") @TableField("equipment_name") @ExcelProperty(value = "设备名称",index = 1) private String equipmentName; @@ -67,14 +67,18 @@ /** * 设备类型(1受检设备;2特种设备) */ - @ApiModelProperty("设备类型(1受检设备;2特种设备)") + @ApiModelProperty(value = "设备类型(1受检设备;2特种设备)",notes = "设备类型code") @TableField("equipment_type") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE) private String equipmentType; + @TableField(exist = false) + private String equipmentTypeName; + /** * 使用状态(字典code) */ - @ApiModelProperty("使用状态(字典code)") + @ApiModelProperty(value = "使用状态(字典code)",notes = "使用状态code") @TableField("usage_status") @DictCodeField(message = "使用状态", cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS) private String usageStatus; @@ -87,28 +91,32 @@ /** * 等级(字典code) */ - @ApiModelProperty("等级(字典code)") + @ApiModelProperty(value = "等级(字典code)",notes = "重要等级code") @TableField("level") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_LEVEL) private String level; + @TableField(exist = false) + private String levelName; + /** * 生产国家 */ - @ApiModelProperty("生产国家") + @ApiModelProperty(value = "生产国家",notes = "生产国家") @TableField("product_country") private String productCountry; /** * 生产厂家 */ - @ApiModelProperty("生产厂家") + @ApiModelProperty(value = "生产厂家",notes = "生产厂家") @TableField("manufacturer") private String manufacturer; /** * 出厂编号 */ - @ApiModelProperty("出厂编号") + @ApiModelProperty(value = "出厂编号",notes = "出厂编号") @TableField("manufacture_no") @ExcelProperty(value = "出厂编号",index = 3) private String manufactureNo; @@ -116,28 +124,28 @@ /** * 生产日期 */ - @ApiModelProperty("生产日期") + @ApiModelProperty(value = "生产日期",notes = "生产日期") @TableField("product_date") private Date productDate; /** * 单价(万元) */ - @ApiModelProperty("单价(万元)") + @ApiModelProperty(value = "单价(万元)",notes = "设备单价(万元)") @TableField("unit_price") private BigDecimal unitPrice; /** * 购进日期 */ - @ApiModelProperty("购进日期") + @ApiModelProperty(value = "购进日期",notes = "购进日期") @TableField("purchase_date") private Date purchaseDate; /** * 型号规格 */ - @ApiModelProperty("型号规格") + @ApiModelProperty(value = "型号规格",notes = "型号规格") @TableField("model") @ExcelProperty(value = "型号规格",index = 2) private String model; @@ -145,14 +153,18 @@ /** * 质量状况 */ - @ApiModelProperty("质量状况") + @ApiModelProperty(value = "质量状况",notes = "质量状况code") @TableField("quality_condition") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_QUALITY) private String qualityCondition; + @TableField(exist = false) + private String qualityConditionName; + /** * 所在单位id */ - @ApiModelProperty("所在单位id") + @ApiModelProperty(value = "所在单位id",notes = "所在单位id") @TableField("company_id") private Long companyId; @@ -163,7 +175,7 @@ /** * 使用部门id */ - @ApiModelProperty("使用部门id") + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") @TableField("dept_id") private Long deptId; @@ -174,14 +186,17 @@ /** * 设备分类(字典code) */ - @ApiModelProperty("设备分类(字典code)") + @ApiModelProperty(value = "设备分类(字典code)",notes = "设备分类code") @TableField("category") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CATEGORY) private String category; + @TableField(exist = false) + private String categoryName; /** * 检定周期(月) */ - @ApiModelProperty("检定周期(月)") + @ApiModelProperty(value = "检定周期(月)",notes = "检定周期(月)") @TableField("check_cycle") @ExcelProperty(value = "检定周期(月)",index = 6) @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, horizontalAlignment = HorizontalAlignmentEnum.LEFT) @@ -190,7 +205,7 @@ /** * 备注 */ - @ApiModelProperty("备注") + @ApiModelProperty(value = "备注",notes = "备注") @TableField("remark") @ExcelProperty(value = "备注",index = 9) private String remark; @@ -198,28 +213,28 @@ /** * 说明书(minio存储文件名)(多个用,拼接) */ - @ApiModelProperty("说明书(minio存储文件名)(多个用,拼接)") + @ApiModelProperty(value = "说明书(minio存储文件名)(多个用,拼接)") @TableField("instructions_file") private String instructionsFile; /** * 检定机构 */ - @ApiModelProperty("检定机构") + @ApiModelProperty(value = "检定机构",notes = "检定(校准)机构") @TableField("check_organization") private String checkOrganization; /** * 检定日期 */ - @ApiModelProperty("检定日期") + @ApiModelProperty(value = "检定日期",notes = "检定(校准)日期") @TableField("check_date") private Date checkDate; /** * 证书有效期 */ - @ApiModelProperty("证书有效期") + @ApiModelProperty(value = "证书有效期",notes = "证书有效期") @TableField("certificate_valid") @ExcelProperty(value = "证书有效期",index = 7, converter = DateExcelConverter.class) private Date certificateValid; @@ -227,7 +242,7 @@ /** * 计量标识 */ - @ApiModelProperty("计量标识") + @ApiModelProperty(value = "计量标识",notes = "计量标识code") @TableField("meter_identify") @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY) private String meterIdentify; @@ -237,17 +252,28 @@ @ExcelProperty(value = "计量标识",index = 5) private String meterIdentifyName; + @ApiModelProperty(value = "使用岗位id",notes = "使用岗位id") + @TableField("use_position_id") + private String usePositionId; + /** * 使用岗位 */ @ApiModelProperty("使用岗位") - @TableField("use_position") + @TableField(exist = false) @ExcelProperty(value = "使用岗位",index = 4) private String usePosition; /** * 负责人 */ + @ApiModelProperty(value = "负责人id",notes = "负责人id") + @TableField("director_id") + private String directorId; + + /** + * 负责人 + */ @ApiModelProperty("负责人") @TableField("director_name") private String directorName; @@ -255,17 +281,25 @@ /** * RFID标签绑定 */ - @ApiModelProperty("RFID标签绑定") + @ApiModelProperty(value = "RFID标签绑定",notes = "RFID标签绑定") @TableField("RFID") private String rfid; /** * 在用信息(字典code) */ - @ApiModelProperty("在用信息(字典code)") + @ApiModelProperty(value = "在用信息(字典code)",notes = "在用信息code") @TableField("use_sign") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE) private String useSign; + @TableField(exist = false) + private String useSignName; + + @ApiModelProperty(value = "安装位置id",notes = "安装位置id") + @TableField("install_location_id") + private Long installLocationId; + /** * 安装位置(选择) */ @@ -276,7 +310,7 @@ /** * 安装位置(自定义编写) */ - @ApiModelProperty("安装位置(自定义编写)") + @ApiModelProperty(value = "安装位置(自定义编写)",notes = "详细位置") @TableField("install_location_ext") private String installLocationExt; @@ -290,7 +324,7 @@ /** * 备注(扩展) */ - @ApiModelProperty("备注(扩展)") + @ApiModelProperty(value = "备注(扩展)",notes = "备注") @TableField("remark_ext") private String remarkExt; @@ -327,14 +361,25 @@ @TableLogic(value = "0",delval = "1") private Integer isDel; - @ApiModelProperty("规格型号id") + @ApiModelProperty(value = "规格型号id",notes = "规格型号id") @TableField("model_id") private Long modelId; - @ApiModelProperty("辅助字段") + @ApiModelProperty(value = "辅助字段",notes = "辅助字段") @TableField("help_instruction") private String helpInstruction; + @ApiModelProperty(value = "检定去向",notes = "检定去向") + @TableField("check_destination") + private String checkDestination; + + @ApiModelProperty(value = "限用说明",notes = "限用说明") + @TableField("limit_instruction") + private String limitInstruction; + + @ApiModelProperty("分组名称") + @TableField(exist = false) + private String groupNames; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java index 13eeef8..060aa33 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java @@ -101,8 +101,13 @@ */ @ApiModelProperty("使用状态(字典code)") @TableField("usage_status") + @DictCodeField(message = "使用状态", cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS) private String usageStatus; + @ApiModelProperty("使用状态名称") + @TableField(exist = false) + private String usageStatusName; + /** * 等级(字典code) */ @@ -253,6 +258,10 @@ @TableField(exist = false) private String meterIdentifyName; + @ApiModelProperty("使用岗位id") + @TableField("use_position_id") + private String usePositionId; + /** * 使用岗位 */ @@ -263,6 +272,12 @@ /** * 负责人 */ + @ApiModelProperty("负责人id") + @TableField("director_id") + private String directorId; + /** + * 负责人 + */ @ApiModelProperty("负责人") @TableField("director_name") private String directorName; @@ -281,6 +296,10 @@ @TableField("use_sign") private String useSign; + @ApiModelProperty("安装位置id") + @TableField("install_location_id") + private Long installLocationId; + /** * 安装位置(选择) */ @@ -347,6 +366,14 @@ @TableField("help_instruction") private String helpInstruction; + @ApiModelProperty("检定去向") + @TableField("check_destination") + private String checkDestination; + + @ApiModelProperty("限用说明") + @TableField("limit_instruction") + private String limitInstruction; + @ApiModelProperty("任务id") @TableField(exist = false) private String taskId; @@ -363,4 +390,7 @@ @TableField(exist = false) private List taskInfos; + @ApiModelProperty("分组名称") + @TableField(exist = false) + private String groupNames; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java index 471e8c8..d4b20e9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java @@ -48,10 +48,15 @@ /** * 型号规格编号 */ - @ApiModelProperty("型号规格编号") - @TableField("model_no") - @ExcelProperty("型号规格编号") - private String modelNo; + @ApiModelProperty("设备类型") + @TableField("equipment_type") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE) + private String equipmentType; + + @ApiModelProperty("设备类型名称") + @TableField(exist = false) + @ExcelProperty("设备类型") + private String equipmentTypeName; /** * 设备名称 @@ -113,6 +118,10 @@ @ExcelProperty("备注") private String remark; + @ApiModelProperty("计量站是否可检(1西昌可检;2海口可检,多个用,拼接)") + @TableField("inspectable") + private String inspectable; + /** * 创建人id */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java index d495e2e..a78c41a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java @@ -83,6 +83,7 @@ /** * 安装位置 */ + @ApiModelProperty("安装位置") @TableField("install_location") private String installLocation; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java index d5417d4..633af3f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import java.util.List; @@ -23,7 +24,7 @@ void deleteGroup(Long groupId); - Page listPage(Page page, String groupName); + Page listPage(Page page, EquipmentGroupQueryForm queryForm); EquipmentGroupForm detail(Long groupId); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java index 06d0cbd..222ebdd 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java @@ -3,6 +3,7 @@ import com.casic.missiles.dto.equipment.EquipmentApprovalLog; import com.casic.missiles.dto.equipment.EquipmentQueryForm; import com.casic.missiles.dto.equipment.EquipmentApprovalForm; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentModelInfo; import com.casic.missiles.service.ICommonApprovalService; @@ -19,6 +20,14 @@ */ public interface IEquipmentInfoApprovalService extends ICommonApprovalService { + boolean updateEquipmentInfo(EquipmentApprovalForm approvalForm); + + boolean checkRfidRepeat(String rfid, Long equipmentId); + + String checkLocation(Long installLocationId, String usageStatus, Long equipmentId); + + void saveTurnoverLog(EquipmentInfo newObj, EquipmentInfo oldObj, Long createUserId); + Long saveOrUpdateApproval(EquipmentApprovalForm approvalForm); EquipmentApprovalForm approvalInfoDetail(Long approvalId); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index acec159..dde436d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -29,6 +29,8 @@ */ public interface IEquipmentInfoService extends IService { + + Page listPage(Page page, EquipmentQueryForm queryForm); List list(EquipmentQueryForm queryForm); @@ -52,6 +54,9 @@ void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date certificateValid, String meterIdentify); + void updateLimitInstruction(Long equipmentId, String limitInstruction); + + void removeCertificateInfo(Long equipmentId, Long certificateId); Page remindListPage(Page page, EquipmentRemindQueryForm queryForm) @@ -67,4 +72,10 @@ (Page page, EquipmentCertificateQueryForm queryForm); void bindTask(EquipmentTaskBindForm bindForm); + + String getFieldName(String field); + String getFieldValue(String field, String fieldValue); + + Page orderSelectListPage(Page page, EquipmentRemindQueryForm queryForm); + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java index 19afa01..4e532a7 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java @@ -28,8 +28,10 @@ List listScope(EquipmentModelQueryForm queryForm); - List listEquipmentName(); + List listEquipmentName(String equipmentType); - List listModel(String equipmentName); + List listModel(String equipmentType, String equipmentName); + + String defaultCheckDestination(Long modelId,Long companyId); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java index 4a89b12..5608317 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java @@ -2,11 +2,16 @@ import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.constants.MeterDictCode; +import com.casic.missiles.core.application.service.AbstractDeptService; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.mapper.equipment.EquipmentGroupInfoMapper; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.model.equipment.EquipmentGroupRelation; @@ -31,6 +36,8 @@ public class EquipmentGroupInfoServiceImpl extends ServiceImpl implements IEquipmentGroupInfoService { private final IEquipmentGroupRelationService groupRelationService; + private final AbstractDeptService deptService; + private final AbstractDictService dictService; @Override @Transactional @@ -62,14 +69,25 @@ groupRelationService.deleteByGroupId(groupId); } - // todo datascope @Override - public Page listPage(Page page, String groupName) { + public Page listPage(Page page, EquipmentGroupQueryForm queryForm) { QueryWrapper queryWrapper = new QueryWrapper<>(); - if (StrUtil.isNotEmpty(groupName)) { - queryWrapper.like("binary group_name", groupName); - } - return this.page(page, queryWrapper); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"p.company_id",queryForm.getCompanyId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()),"p.dept_id",queryForm.getDeptId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getSubSystemId()),"p.sub_system_id",queryForm.getSubSystemId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getPositionId()),"g.position_id",queryForm.getPositionId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getGroupName()), "binary g.group_name", queryForm.getGroupName()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCreateUserId()),"g.create_user_id",queryForm.getCreateUserId()); + List list = this.baseMapper.listPage(page, queryWrapper); + list.forEach(this::wrapper); + page.setRecords(list); + return page; + } + + private void wrapper(EquipmentGroupInfo info) { + info.setCompanyName(deptService.getDeptName(info.getCompanyId())); + info.setDeptName(deptService.getDeptName(info.getDeptId())); + info.setSubSystemName(deptService.getDeptName(info.getSubSystemId())); } @Override @@ -80,6 +98,11 @@ groupForm.setGroupInfo(groupInfo); List relations = groupRelationService.listByGroup(groupId); + relations.forEach(i->{ + i.setMeterIdentifyName(dictService.getDictNameByCode(MeterDictCode.EQUIPMENT_METER_IDENTITY,i.getMeterIdentify())); + i.setUsageStatusName(dictService.getDictNameByCode(MeterDictCode.EQUIPMENT_USAGE_STATUS,i.getUsageStatus())); + + }); groupForm.setEquipmentList(relations); return groupForm; 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml index a9033f9..c49776d 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml @@ -4,71 +4,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - id, approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + id + , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction + + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml index 62449ec..f4d9936 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml @@ -42,6 +42,12 @@ + + + + + + @@ -50,12 +56,20 @@ product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid as certificateValid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time, - is_del,model_id,help_instruction + is_del,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction select - from eqpt_equipment_info + from eqpt_equipment_info_view ${ew.sqlSegment} @@ -110,7 +124,7 @@ eqpt_remind_all as ( select e.id as equipment_id, - IFNULL(m.remind_time,0) as remind_time + IFNULL(m.remind_time,90) as remind_time from eqpt_equipment_info e left join eqpt_remind m on e.id = m.equipment_id ), @@ -118,20 +132,32 @@ select id,task_name,CONCAT(DATE_FORMAT(start_time,'%Y-%m-%d'),"~",DATE_FORMAT(end_time,'%Y-%m-%d')) as time_ext,start_time,end_time from eqpt_equipment_task_info ), + latest_sample_relation AS ( + SELECT * + FROM biz_business_order_sample_relation a + WHERE id = ( + SELECT max( id ) + FROM biz_business_order_sample_relation b + WHERE a.sample_id = b.sample_id ) + ), eqpt_ext as ( select e.* , - DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, - GROUP_CONCAT(t.task_name) as taskNames, - GROUP_CONCAT(t.time_ext) as taskTimes, - GROUP_CONCAT(t.id) as taskIds, - min(t.start_time) as task_start_time, - max(t.end_time) as task_end_time - from eqpt_equipment_info e + DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, + GROUP_CONCAT(t.task_name) as taskNames, + GROUP_CONCAT(t.time_ext) as taskTimes, + GROUP_CONCAT(t.id) as taskIds, + min(t.start_time) as task_start_time, + max(t.end_time) as task_end_time, + (case when lsr.sample_status in + #{item} + then 1 else 0 end) as check_status + from eqpt_equipment_info_view e left join eqpt_remind_all a on e.id = a.equipment_id left join eqpt_equipment_task_relation r on e.id = r.equipment_id left join task_ext t on r.task_id = t.id + left join latest_sample_relation lsr on lsr.sample_id = e.id where e.certificate_valid is not null - group by e.id,e.certificate_valid,a.remind_time + group by e.id,e.certificate_valid,a.remind_time,lsr.sample_status ) select * from eqpt_ext @@ -163,6 +189,9 @@ e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, + e.model as model, + e.company_id as companyId, + e.manufacture_no as manufactureNo, c.certificate_report_no as certificateNo, c.certificate_report_name as certificateName, '西昌卫星发射中心计量测试站' as checkOrganization, @@ -173,7 +202,7 @@ c.update_time as updateTime, '1' as certificateType, c.remark as remark - from biz_business_certificate_report c ,eqpt_equipment_info e + from biz_business_certificate_report c ,eqpt_equipment_info_view e where c.sample_id = e.id diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml index 097c405..2ddebe6 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,6 +13,7 @@ + @@ -21,7 +22,7 @@ - id, model_no, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, create_user_id, create_dept_id, create_time, update_time + id, equipment_type, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, inspectable, create_user_id, create_dept_id, create_time, update_time + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java index c69cc82..d1a2bd1 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.service.equipment.IEquipmentGroupInfoService; import io.swagger.annotations.Api; @@ -60,14 +61,11 @@ return ReturnUtil.success(); } - @ApiImplicitParams({ - @ApiImplicitParam(name = "groupName",value = "分组名称",dataType = "String",paramType = "query") - }) @ApiOperation("分组分页列表") - @GetMapping("listPage") - public ReturnDTO> listPage(String groupName){ + @PostMapping("listPage") + public ReturnDTO> listPage(@RequestBody EquipmentGroupQueryForm queryForm){ Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,groupName))); + return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,queryForm))); } @ApiImplicitParams({ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 56b6814..3130c5c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.business.LabelBindDTO; import com.casic.missiles.dto.equipment.*; import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; import com.casic.missiles.service.equipment.IEquipmentInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -36,6 +37,14 @@ public class EquipmentInfoController extends ExportController { private final IEquipmentInfoService equipmentInfoService; + private final IEquipmentInfoApprovalService approvalService; + + @ApiOperation("直接编辑设备") + @PostMapping("/info/update") + public ReturnDTO update(@RequestBody EquipmentApprovalForm approvalForm){ + approvalService.updateEquipmentInfo(approvalForm); + return ReturnUtil.success(); + } @ApiOperation("设备分页列表") @PostMapping("/info/listPage") @@ -152,5 +161,14 @@ return ReturnUtil.success(); } + @ApiOperation("到期提醒分页列表") + @PostMapping("/orderSelect/listPage") + @ResponseBody + public ReturnDTO> EquipmentOrderSelectQueryForm(@RequestBody EquipmentRemindQueryForm queryForm) { + Page page = PageFactory.defaultPage(); + page = equipmentInfoService.orderSelectListPage(page, queryForm); + return ReturnUtil.success(super.packForBT(page)); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index 044d245..ccbd668 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -103,14 +103,20 @@ @ApiOperation("设备名称列表") @GetMapping("listEquipmentName") - public ReturnDTO> listEquipmentName(){ - return ReturnUtil.success(modelInfoService.listEquipmentName()); + public ReturnDTO> listEquipmentName(String equipmentType){ + return ReturnUtil.success(modelInfoService.listEquipmentName(equipmentType)); } @ApiOperation("规格型号列表") @GetMapping("listModel") - public ReturnDTO> listModel(String equipmentName){ - return ReturnUtil.success(modelInfoService.listModel(equipmentName)); + public ReturnDTO> listModel(String equipmentType, String equipmentName){ + return ReturnUtil.success(modelInfoService.listModel(equipmentType,equipmentName)); + } + + @ApiOperation("获取默认检定去向") + @GetMapping("defaultCheckDestination") + public ReturnDTO defaultCheckDestination(Long modelId, Long companyId){ + return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java index 7e79008..1fc1f9c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.CertificateUpdate; +import com.casic.missiles.dto.equipment.LimitInstructionUpdate; import com.casic.missiles.model.plan.OrderReceive; import com.casic.missiles.model.plan.SampleStatueUpdate; import com.casic.missiles.service.equipment.IEquipmentInfoService; @@ -55,4 +56,11 @@ return ReturnUtil.success(); } + @ApiOperation("更新限用说明") + @PostMapping("/limitInstructionUpdate") + public ReturnDTO updateLimitInstruction(@RequestBody LimitInstructionUpdate updateForm) { + equipmentInfoService.updateLimitInstruction(updateForm.getEquipmentId(), updateForm.getLimitInstruction()); + return ReturnUtil.success(); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java index e314003..73d02ec 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java @@ -1,7 +1,18 @@ package com.casic.missiles.controller.system; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.system.SystemLocation; +import com.casic.missiles.service.system.ISystemLocationService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** *

@@ -11,8 +22,45 @@ * @author zhangyingjie * @since 2023-11-15 */ +@Api(tags = "安装位置管理") @RestController -@RequestMapping("/system-location") -public class SystemLocationController { +@RequestMapping("/system/location") +@RequiredArgsConstructor +public class SystemLocationController extends BaseController { + + private final ISystemLocationService locationService; + + @PostMapping("add") + public ReturnDTO add(@RequestBody SystemLocation systemLocation){ + locationService.add(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("update") + public ReturnDTO update(@RequestBody SystemLocation systemLocation){ + locationService.update(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("delete") + public ReturnDTO delete(@RequestBody SystemLocation systemLocation){ + locationService.delete(systemLocation); + return ReturnUtil.success(); + } + + @GetMapping("listPage") + public ReturnDTO> listPage(Long searchId,Long positionId, String installLocation){ + Page page = PageFactory.defaultPage(); + page = locationService.listPage(page,searchId,positionId, installLocation); + return ReturnUtil.success(super.packForBT(page)); + } + + @GetMapping("list") + public ReturnDTO> list(Long searchId,Long positionId, String installLocation){ + List list = locationService.list(searchId,positionId, installLocation); + return ReturnUtil.success(list); + } + + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java index f9e2f91..d64634a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java @@ -1,6 +1,8 @@ package com.casic.missiles.controller.system; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; @@ -10,6 +12,8 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** *

* 受检系统-系统管理-岗位管理 前端控制器 @@ -22,7 +26,7 @@ @RestController @RequestMapping("/system/position") @RequiredArgsConstructor -public class SystemPositionController { +public class SystemPositionController extends BaseController { private final ISystemPositionService positionService; @@ -45,16 +49,16 @@ } @GetMapping("listPage") - public ReturnDTO listPage(Long searchId,String positionName){ + public ReturnDTO> listPage(Long searchId, String positionName){ Page page = PageFactory.defaultPage(); - positionService.listPage(page,searchId,positionName); - return ReturnUtil.success(); + page = positionService.listPage(page,searchId,positionName); + return ReturnUtil.success(super.packForBT(page)); } @GetMapping("list") - public ReturnDTO list(Long searchId,String positionName){ - positionService.list(searchId,positionName); - return ReturnUtil.success(); + public ReturnDTO> list(Long searchId,String positionName){ + List list = positionService.list(searchId,positionName); + return ReturnUtil.success(list); } diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index 6f0359b..88cce74 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -72,9 +72,9 @@ addresses: http://111.198.10.15:21605/xxl-job-admin executor: # 此执行器的名称 - appname: casic-metering-job + appname: casic-metering-xc-eqpt-job # 此执行器的ip、端口,每个节点对应自己的ip,端口用于任务执行的通信 - ip: 127.0.0.1 + ip: 192.168.20.33 port: 9999 # 此执行器的日志存放路径 logpath: logs/xxl-job/casic-metering-job @@ -122,7 +122,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_remind_relation + table-name: eqpt_equipment_modify_log prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index 7b3c7a2..29a820a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -18,11 +18,15 @@ */ // 系统前缀 String DICT_PREFIX = "eqpt"; + + String EQUIPMENT_TYPE = DICT_PREFIX + "DeviceCategory"; //受检设备使用状态 String EQUIPMENT_USAGE_STATUS = DICT_PREFIX + "DeviceUseStatus"; //受检设备重要等级 String EQUIPMENT_LEVEL = DICT_PREFIX + "DeviceLevel"; + String EQUIPMENT_QUALITY = DICT_PREFIX + "DeviceQuality"; + String EQUIPMENT_CATEGORY = DICT_PREFIX + "DeviceType"; // 设备申请类型 String EQUIPMENT_APPROVAL_TYPE = DICT_PREFIX + "EquipmentApprovalType"; @@ -30,6 +34,8 @@ String EQUIPMENT_STATUS_APPROVAL_TYPE = DICT_PREFIX + "EquipmentStatusApprovalType"; // 设备计量标识 String EQUIPMENT_METER_IDENTITY = DICT_PREFIX + "MeterIdentify"; + + String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; // 计量计划计划分类 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java index 694e48b..aefff4a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.equipment; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.model.equipment.EquipmentAttachment; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentTechnicalTarget; @@ -13,6 +14,8 @@ @Data public class EquipmentApprovalForm extends EquipmentInfoApproval { + @ApiModelProperty("规格型号说明书") + private String instructionsFile; @ApiModelProperty("技术指标列表") private List technicalTargetList; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java index f6448c6..c814444 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java @@ -12,6 +12,9 @@ @Setter public class EquipmentInfoForm extends EquipmentInfo{ + @ApiModelProperty("规格型号说明书") + private String instructionsFile; + @ApiModelProperty("组别信息") @TableField(exist = false) private List groupInfos; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java index bcec504..7803273 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java @@ -10,6 +10,9 @@ @Setter public class EquipmentModelQueryForm { + @ApiModelProperty("设备类型") + private String equipmentType; + @ApiModelProperty("设备名称") private String equipmentName; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java index 03fc0f1..fc2acc8 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java @@ -32,12 +32,21 @@ @ApiModelProperty("所在单位") private Long companyId; - @ApiModelProperty("使用部门") + + @ApiModelProperty("使用部门(单个)") + private Long deptId; + @ApiModelProperty("使用部门(列表)") private List deptIds; + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty("使用岗位") private String usePosition; + @ApiModelProperty("负责人ID") + private Long directorId; + @ApiModelProperty("负责人") private String directorName; @@ -50,6 +59,9 @@ @ApiModelProperty("安装位置") private String installLocation; + @ApiModelProperty("分组id") + private Long groupId; + @ApiModelProperty("参试任务id") private Long taskId; @@ -75,4 +87,5 @@ @ApiModelProperty("使用状态列表[状态维护选择设备时用]") private List usageStatusList; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java index 30b5af3..b6afd18 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java @@ -73,5 +73,52 @@ @TableField("remark") private String remark; + /** + * 所在单位id + */ + @ApiModelProperty("所在单位id") + @TableField(exist = false) + private Long companyId; + + @ApiModelProperty("所在单位名称") + @TableField(exist = false) + private String companyName; + + /** + * 使用部门id + */ + @ApiModelProperty("使用部门id") + @TableField(exist = false) + private Long deptId; + + @ApiModelProperty("使用部门名称") + @TableField(exist = false) + private String deptName; + + /** + * 分系统id + */ + @ApiModelProperty(value = "分系统id") + @TableField(exist = false) + private Long subSystemId; + + @ApiModelProperty("分系统名称") + @TableField(exist = false) + private String subSystemName; + + /** + * 使用岗位id + */ + @ApiModelProperty("岗位ID") + @TableField("position_id") + private Long positionId; + + /** + * 使用岗位名称 + */ + @ApiModelProperty("岗位名称") + @TableField(exist = false) + private String positionName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java index 36575f6..b4f78b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.equipment; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -7,6 +8,8 @@ import java.io.Serializable; import java.util.Date; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.Getter; @@ -55,12 +58,35 @@ @ApiModelProperty("型号规格") @TableField(exist = false) private String model; + + @ApiModelProperty("出厂编号") + @TableField(exist = false) + private String manufactureNo; + @ApiModelProperty("生产厂家") + @TableField(exist = false) + private String manufacturer; + + /** + * 出厂编号 + */ + @ApiModelProperty("负责人") @TableField(exist = false) private String directorName; @ApiModelProperty("计量标识") @TableField(exist = false) private String meterIdentify; + + @ApiModelProperty("计量标识名称") + @TableField(exist = false) + private String meterIdentifyName; + + @ApiModelProperty("使用状态(字典code)") + @TableField(exist = false) + private String usageStatus; + @ApiModelProperty("使用状态名称") + @TableField(exist = false) + private String usageStatusName; @ApiModelProperty("证书有效期") @TableField(exist = false) private Date certificateValid; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java index 21294cf..a8392ff 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java @@ -44,14 +44,14 @@ private static final long serialVersionUID = 1L; - @ApiModelProperty("主键") + @ApiModelProperty(value = "主键") @TableId("id") private Long id; /** * 设备编号 */ - @ApiModelProperty("设备编号") + @ApiModelProperty(value = "设备编号",notes = "统一编号") @TableField("equipment_no") @ExcelProperty(value = "统一编号",index = 0) private String equipmentNo; @@ -59,7 +59,7 @@ /** * 设备名称 */ - @ApiModelProperty("设备名称") + @ApiModelProperty(value = "设备名称",notes = "设备名称") @TableField("equipment_name") @ExcelProperty(value = "设备名称",index = 1) private String equipmentName; @@ -67,14 +67,18 @@ /** * 设备类型(1受检设备;2特种设备) */ - @ApiModelProperty("设备类型(1受检设备;2特种设备)") + @ApiModelProperty(value = "设备类型(1受检设备;2特种设备)",notes = "设备类型code") @TableField("equipment_type") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE) private String equipmentType; + @TableField(exist = false) + private String equipmentTypeName; + /** * 使用状态(字典code) */ - @ApiModelProperty("使用状态(字典code)") + @ApiModelProperty(value = "使用状态(字典code)",notes = "使用状态code") @TableField("usage_status") @DictCodeField(message = "使用状态", cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS) private String usageStatus; @@ -87,28 +91,32 @@ /** * 等级(字典code) */ - @ApiModelProperty("等级(字典code)") + @ApiModelProperty(value = "等级(字典code)",notes = "重要等级code") @TableField("level") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_LEVEL) private String level; + @TableField(exist = false) + private String levelName; + /** * 生产国家 */ - @ApiModelProperty("生产国家") + @ApiModelProperty(value = "生产国家",notes = "生产国家") @TableField("product_country") private String productCountry; /** * 生产厂家 */ - @ApiModelProperty("生产厂家") + @ApiModelProperty(value = "生产厂家",notes = "生产厂家") @TableField("manufacturer") private String manufacturer; /** * 出厂编号 */ - @ApiModelProperty("出厂编号") + @ApiModelProperty(value = "出厂编号",notes = "出厂编号") @TableField("manufacture_no") @ExcelProperty(value = "出厂编号",index = 3) private String manufactureNo; @@ -116,28 +124,28 @@ /** * 生产日期 */ - @ApiModelProperty("生产日期") + @ApiModelProperty(value = "生产日期",notes = "生产日期") @TableField("product_date") private Date productDate; /** * 单价(万元) */ - @ApiModelProperty("单价(万元)") + @ApiModelProperty(value = "单价(万元)",notes = "设备单价(万元)") @TableField("unit_price") private BigDecimal unitPrice; /** * 购进日期 */ - @ApiModelProperty("购进日期") + @ApiModelProperty(value = "购进日期",notes = "购进日期") @TableField("purchase_date") private Date purchaseDate; /** * 型号规格 */ - @ApiModelProperty("型号规格") + @ApiModelProperty(value = "型号规格",notes = "型号规格") @TableField("model") @ExcelProperty(value = "型号规格",index = 2) private String model; @@ -145,14 +153,18 @@ /** * 质量状况 */ - @ApiModelProperty("质量状况") + @ApiModelProperty(value = "质量状况",notes = "质量状况code") @TableField("quality_condition") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_QUALITY) private String qualityCondition; + @TableField(exist = false) + private String qualityConditionName; + /** * 所在单位id */ - @ApiModelProperty("所在单位id") + @ApiModelProperty(value = "所在单位id",notes = "所在单位id") @TableField("company_id") private Long companyId; @@ -163,7 +175,7 @@ /** * 使用部门id */ - @ApiModelProperty("使用部门id") + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") @TableField("dept_id") private Long deptId; @@ -174,14 +186,17 @@ /** * 设备分类(字典code) */ - @ApiModelProperty("设备分类(字典code)") + @ApiModelProperty(value = "设备分类(字典code)",notes = "设备分类code") @TableField("category") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CATEGORY) private String category; + @TableField(exist = false) + private String categoryName; /** * 检定周期(月) */ - @ApiModelProperty("检定周期(月)") + @ApiModelProperty(value = "检定周期(月)",notes = "检定周期(月)") @TableField("check_cycle") @ExcelProperty(value = "检定周期(月)",index = 6) @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, horizontalAlignment = HorizontalAlignmentEnum.LEFT) @@ -190,7 +205,7 @@ /** * 备注 */ - @ApiModelProperty("备注") + @ApiModelProperty(value = "备注",notes = "备注") @TableField("remark") @ExcelProperty(value = "备注",index = 9) private String remark; @@ -198,28 +213,28 @@ /** * 说明书(minio存储文件名)(多个用,拼接) */ - @ApiModelProperty("说明书(minio存储文件名)(多个用,拼接)") + @ApiModelProperty(value = "说明书(minio存储文件名)(多个用,拼接)") @TableField("instructions_file") private String instructionsFile; /** * 检定机构 */ - @ApiModelProperty("检定机构") + @ApiModelProperty(value = "检定机构",notes = "检定(校准)机构") @TableField("check_organization") private String checkOrganization; /** * 检定日期 */ - @ApiModelProperty("检定日期") + @ApiModelProperty(value = "检定日期",notes = "检定(校准)日期") @TableField("check_date") private Date checkDate; /** * 证书有效期 */ - @ApiModelProperty("证书有效期") + @ApiModelProperty(value = "证书有效期",notes = "证书有效期") @TableField("certificate_valid") @ExcelProperty(value = "证书有效期",index = 7, converter = DateExcelConverter.class) private Date certificateValid; @@ -227,7 +242,7 @@ /** * 计量标识 */ - @ApiModelProperty("计量标识") + @ApiModelProperty(value = "计量标识",notes = "计量标识code") @TableField("meter_identify") @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY) private String meterIdentify; @@ -237,17 +252,28 @@ @ExcelProperty(value = "计量标识",index = 5) private String meterIdentifyName; + @ApiModelProperty(value = "使用岗位id",notes = "使用岗位id") + @TableField("use_position_id") + private String usePositionId; + /** * 使用岗位 */ @ApiModelProperty("使用岗位") - @TableField("use_position") + @TableField(exist = false) @ExcelProperty(value = "使用岗位",index = 4) private String usePosition; /** * 负责人 */ + @ApiModelProperty(value = "负责人id",notes = "负责人id") + @TableField("director_id") + private String directorId; + + /** + * 负责人 + */ @ApiModelProperty("负责人") @TableField("director_name") private String directorName; @@ -255,17 +281,25 @@ /** * RFID标签绑定 */ - @ApiModelProperty("RFID标签绑定") + @ApiModelProperty(value = "RFID标签绑定",notes = "RFID标签绑定") @TableField("RFID") private String rfid; /** * 在用信息(字典code) */ - @ApiModelProperty("在用信息(字典code)") + @ApiModelProperty(value = "在用信息(字典code)",notes = "在用信息code") @TableField("use_sign") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE) private String useSign; + @TableField(exist = false) + private String useSignName; + + @ApiModelProperty(value = "安装位置id",notes = "安装位置id") + @TableField("install_location_id") + private Long installLocationId; + /** * 安装位置(选择) */ @@ -276,7 +310,7 @@ /** * 安装位置(自定义编写) */ - @ApiModelProperty("安装位置(自定义编写)") + @ApiModelProperty(value = "安装位置(自定义编写)",notes = "详细位置") @TableField("install_location_ext") private String installLocationExt; @@ -290,7 +324,7 @@ /** * 备注(扩展) */ - @ApiModelProperty("备注(扩展)") + @ApiModelProperty(value = "备注(扩展)",notes = "备注") @TableField("remark_ext") private String remarkExt; @@ -327,14 +361,25 @@ @TableLogic(value = "0",delval = "1") private Integer isDel; - @ApiModelProperty("规格型号id") + @ApiModelProperty(value = "规格型号id",notes = "规格型号id") @TableField("model_id") private Long modelId; - @ApiModelProperty("辅助字段") + @ApiModelProperty(value = "辅助字段",notes = "辅助字段") @TableField("help_instruction") private String helpInstruction; + @ApiModelProperty(value = "检定去向",notes = "检定去向") + @TableField("check_destination") + private String checkDestination; + + @ApiModelProperty(value = "限用说明",notes = "限用说明") + @TableField("limit_instruction") + private String limitInstruction; + + @ApiModelProperty("分组名称") + @TableField(exist = false) + private String groupNames; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java index 13eeef8..060aa33 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java @@ -101,8 +101,13 @@ */ @ApiModelProperty("使用状态(字典code)") @TableField("usage_status") + @DictCodeField(message = "使用状态", cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS) private String usageStatus; + @ApiModelProperty("使用状态名称") + @TableField(exist = false) + private String usageStatusName; + /** * 等级(字典code) */ @@ -253,6 +258,10 @@ @TableField(exist = false) private String meterIdentifyName; + @ApiModelProperty("使用岗位id") + @TableField("use_position_id") + private String usePositionId; + /** * 使用岗位 */ @@ -263,6 +272,12 @@ /** * 负责人 */ + @ApiModelProperty("负责人id") + @TableField("director_id") + private String directorId; + /** + * 负责人 + */ @ApiModelProperty("负责人") @TableField("director_name") private String directorName; @@ -281,6 +296,10 @@ @TableField("use_sign") private String useSign; + @ApiModelProperty("安装位置id") + @TableField("install_location_id") + private Long installLocationId; + /** * 安装位置(选择) */ @@ -347,6 +366,14 @@ @TableField("help_instruction") private String helpInstruction; + @ApiModelProperty("检定去向") + @TableField("check_destination") + private String checkDestination; + + @ApiModelProperty("限用说明") + @TableField("limit_instruction") + private String limitInstruction; + @ApiModelProperty("任务id") @TableField(exist = false) private String taskId; @@ -363,4 +390,7 @@ @TableField(exist = false) private List taskInfos; + @ApiModelProperty("分组名称") + @TableField(exist = false) + private String groupNames; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java index 471e8c8..d4b20e9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java @@ -48,10 +48,15 @@ /** * 型号规格编号 */ - @ApiModelProperty("型号规格编号") - @TableField("model_no") - @ExcelProperty("型号规格编号") - private String modelNo; + @ApiModelProperty("设备类型") + @TableField("equipment_type") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE) + private String equipmentType; + + @ApiModelProperty("设备类型名称") + @TableField(exist = false) + @ExcelProperty("设备类型") + private String equipmentTypeName; /** * 设备名称 @@ -113,6 +118,10 @@ @ExcelProperty("备注") private String remark; + @ApiModelProperty("计量站是否可检(1西昌可检;2海口可检,多个用,拼接)") + @TableField("inspectable") + private String inspectable; + /** * 创建人id */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java index d495e2e..a78c41a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java @@ -83,6 +83,7 @@ /** * 安装位置 */ + @ApiModelProperty("安装位置") @TableField("install_location") private String installLocation; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java index d5417d4..633af3f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import java.util.List; @@ -23,7 +24,7 @@ void deleteGroup(Long groupId); - Page listPage(Page page, String groupName); + Page listPage(Page page, EquipmentGroupQueryForm queryForm); EquipmentGroupForm detail(Long groupId); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java index 06d0cbd..222ebdd 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java @@ -3,6 +3,7 @@ import com.casic.missiles.dto.equipment.EquipmentApprovalLog; import com.casic.missiles.dto.equipment.EquipmentQueryForm; import com.casic.missiles.dto.equipment.EquipmentApprovalForm; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentModelInfo; import com.casic.missiles.service.ICommonApprovalService; @@ -19,6 +20,14 @@ */ public interface IEquipmentInfoApprovalService extends ICommonApprovalService { + boolean updateEquipmentInfo(EquipmentApprovalForm approvalForm); + + boolean checkRfidRepeat(String rfid, Long equipmentId); + + String checkLocation(Long installLocationId, String usageStatus, Long equipmentId); + + void saveTurnoverLog(EquipmentInfo newObj, EquipmentInfo oldObj, Long createUserId); + Long saveOrUpdateApproval(EquipmentApprovalForm approvalForm); EquipmentApprovalForm approvalInfoDetail(Long approvalId); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index acec159..dde436d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -29,6 +29,8 @@ */ public interface IEquipmentInfoService extends IService { + + Page listPage(Page page, EquipmentQueryForm queryForm); List list(EquipmentQueryForm queryForm); @@ -52,6 +54,9 @@ void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date certificateValid, String meterIdentify); + void updateLimitInstruction(Long equipmentId, String limitInstruction); + + void removeCertificateInfo(Long equipmentId, Long certificateId); Page remindListPage(Page page, EquipmentRemindQueryForm queryForm) @@ -67,4 +72,10 @@ (Page page, EquipmentCertificateQueryForm queryForm); void bindTask(EquipmentTaskBindForm bindForm); + + String getFieldName(String field); + String getFieldValue(String field, String fieldValue); + + Page orderSelectListPage(Page page, EquipmentRemindQueryForm queryForm); + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java index 19afa01..4e532a7 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java @@ -28,8 +28,10 @@ List listScope(EquipmentModelQueryForm queryForm); - List listEquipmentName(); + List listEquipmentName(String equipmentType); - List listModel(String equipmentName); + List listModel(String equipmentType, String equipmentName); + + String defaultCheckDestination(Long modelId,Long companyId); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java index 4a89b12..5608317 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java @@ -2,11 +2,16 @@ import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.constants.MeterDictCode; +import com.casic.missiles.core.application.service.AbstractDeptService; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.mapper.equipment.EquipmentGroupInfoMapper; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.model.equipment.EquipmentGroupRelation; @@ -31,6 +36,8 @@ public class EquipmentGroupInfoServiceImpl extends ServiceImpl implements IEquipmentGroupInfoService { private final IEquipmentGroupRelationService groupRelationService; + private final AbstractDeptService deptService; + private final AbstractDictService dictService; @Override @Transactional @@ -62,14 +69,25 @@ groupRelationService.deleteByGroupId(groupId); } - // todo datascope @Override - public Page listPage(Page page, String groupName) { + public Page listPage(Page page, EquipmentGroupQueryForm queryForm) { QueryWrapper queryWrapper = new QueryWrapper<>(); - if (StrUtil.isNotEmpty(groupName)) { - queryWrapper.like("binary group_name", groupName); - } - return this.page(page, queryWrapper); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"p.company_id",queryForm.getCompanyId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()),"p.dept_id",queryForm.getDeptId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getSubSystemId()),"p.sub_system_id",queryForm.getSubSystemId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getPositionId()),"g.position_id",queryForm.getPositionId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getGroupName()), "binary g.group_name", queryForm.getGroupName()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCreateUserId()),"g.create_user_id",queryForm.getCreateUserId()); + List list = this.baseMapper.listPage(page, queryWrapper); + list.forEach(this::wrapper); + page.setRecords(list); + return page; + } + + private void wrapper(EquipmentGroupInfo info) { + info.setCompanyName(deptService.getDeptName(info.getCompanyId())); + info.setDeptName(deptService.getDeptName(info.getDeptId())); + info.setSubSystemName(deptService.getDeptName(info.getSubSystemId())); } @Override @@ -80,6 +98,11 @@ groupForm.setGroupInfo(groupInfo); List relations = groupRelationService.listByGroup(groupId); + relations.forEach(i->{ + i.setMeterIdentifyName(dictService.getDictNameByCode(MeterDictCode.EQUIPMENT_METER_IDENTITY,i.getMeterIdentify())); + i.setUsageStatusName(dictService.getDictNameByCode(MeterDictCode.EQUIPMENT_USAGE_STATUS,i.getUsageStatus())); + + }); groupForm.setEquipmentList(relations); return groupForm; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java index 0a5a5fe..5456965 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java @@ -5,9 +5,12 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.equipment.EquipmentApprovalLog; @@ -16,6 +19,7 @@ import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.PrefixCodeEnum; +import com.casic.missiles.enums.equipment.EquipmentStatusTypeEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; @@ -81,6 +85,30 @@ @Autowired private IEquipmentTaskRelationService taskRelationService; + @Autowired + private IEquipmentModelInfoService modelInfoService; + + @Override + public boolean updateEquipmentInfo(EquipmentApprovalForm approvalForm) { + if(checkRfidRepeat(approvalForm.getRfid(),approvalForm.getEquipmentId())){ + throw new BusinessException(500,"RFID标签已使用"); + } + String checkLoc = checkLocation(approvalForm.getInstallLocationId(),approvalForm.getUsageStatus(),approvalForm.getEquipmentId()); + if(StrUtil.isNotEmpty(checkLoc)){ + throw new BusinessException(500,String.format("当前安装位置已存在一台在用设备,编号为%s",checkLoc)); + } + + attachmentService.saveByEquipment(approvalForm.getEquipmentId(), approvalForm.getAttachments()); + taskRelationService.saveByEquipment(approvalForm.getEquipmentId(),approvalForm.getTaskInfos()); + if (EQUIPMENT_TYPE_SPECIAL.equals(approvalForm.getEquipmentType())) { + specialCertificateService.saveCertificateList(approvalForm.getEquipmentId(), approvalForm.getCertificateList()); + } + EquipmentInfo info = new EquipmentInfo(); + BeanUtil.copyProperties(approvalForm, info); + info.setId(approvalForm.getEquipmentId()); + saveTurnoverLog(info, null, approvalForm.getCreateUserId()); + return equipmentInfoService.updateById(info); + } @Override @Transactional @@ -91,6 +119,12 @@ if(checkRfidRepeat(approvalForm.getRfid(),approvalForm.getEquipmentId())){ throw new BusinessException(500,"RFID标签已使用"); } + String checkLoc = this.checkLocation(approvalForm.getInstallLocationId(),approvalForm.getUsageStatus(),approvalForm.getEquipmentId()); + if(StrUtil.isNotEmpty(checkLoc)){ + throw new BusinessException(500,String.format("当前安装位置已存在一台在用设备,编号为%s",checkLoc)); + } + + if(ObjectUtil.isEmpty(approvalForm.getCreateUserId())){ AuthUser authUser = permissionContext.getAuthService().getLoginUser(); approvalForm.setCreateUserId(authUser.getId()); @@ -170,10 +204,19 @@ return updateApprovalStatus(submitRequest.getId(), ApprovalStatusEnum.IN_APPROVED); } - private boolean checkRfidRepeat(String rfid, Long equipmentId){ + @Override + public boolean checkRfidRepeat(String rfid, Long equipmentId){ return StrUtil.isNotEmpty(rfid) && this.baseMapper.checkRfid(rfid, equipmentId) > 0; } + @Override + public String checkLocation(Long installLocationId, String usageStatus, Long equipmentId){ + if(ObjectUtil.isNotEmpty(installLocationId) && EquipmentStatusTypeEnum.UNSEAL.equals(usageStatus)){ + return this.baseMapper.checkLocation(installLocationId,EquipmentStatusTypeEnum.UNSEAL,equipmentId); + } + return null; + } + private boolean haveUnfinishedApproval(EquipmentApprovalForm approvalForm){ if(ObjectUtil.isNotEmpty(approvalForm.getEquipmentId())){ QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -188,14 +231,16 @@ public void simpleUpdate(EquipmentApprovalForm approvalForm, EquipmentInfo info) { EquipmentInfo oldObj = SerializationUtils.clone(info); CasicBeanUtil.copySpecifyProperties(approvalForm, info, "checkOrganization", "checkDate", - "certificateValid", "meterIdentify", "usePosition", "directorName", "rfid", - "useSign", "installLocation", "installLocationExt", "testTask", "remarkExt"); + "certificateValid", "meterIdentify", "usePositionId","usePosition","directorId", "directorName", "rfid", + "useSign","installLocationId", "installLocation", "installLocationExt", "testTask", "remarkExt", + "checkDestination","limitInstruction"); saveTurnoverLog(info, oldObj, approvalForm.getCreateUserId()); equipmentInfoService.updateById(info); } - private void saveTurnoverLog(EquipmentInfo newObj, EquipmentInfo oldObj, Long createUserId) { + @Override + public void saveTurnoverLog(EquipmentInfo newObj, EquipmentInfo oldObj, Long createUserId) { if(ObjectUtil.isEmpty(oldObj)){ oldObj = equipmentInfoService.getById(newObj.getId()); } @@ -268,6 +313,8 @@ info.setGroupInfos(groupInfoService.selectByEquipment(info.getEquipmentId())); info.setCertificateList(equipmentInfoService.allCertificate(info.getEquipmentId(),info.getEquipmentType())); info.setTaskInfos(taskInfoService.listByEquipment(info.getEquipmentId())); + info.setInstructionsFile(modelInfoService.getById(info.getModelId()).getInstructionsFile()); + } return info; } @@ -278,7 +325,7 @@ super.warpper(approval); approval.setCompanyName(permissionContext.getDeptService().getDeptName(approval.getCompanyId())); approval.setDeptName(permissionContext.getDeptService().getDeptName(approval.getDeptId())); - //DictCodeUtils.convertDictCodeToName(approval); + DictCodeUtils.convertDictCodeToName(approval); } catch (Exception e) { throw new RuntimeException(e); @@ -287,6 +334,18 @@ } @Override + public List list(Wrapper queryWrapper) { + return this.baseMapper.selectList(queryWrapper); + } + + @Override + public > E page(E page, Wrapper queryWrapper) { + List list = this.baseMapper.selectListPage((Page) page, (QueryWrapper) queryWrapper); + page.setRecords(list); + return page; + } + + @Override public QueryWrapper commonQuery(EquipmentQueryForm queryForm) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); @@ -294,6 +353,7 @@ queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"use_position_id",queryForm.getUsePositionId()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUsageStatus()), "usage_status", queryForm.getUsageStatus()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "certificate_valid", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "certificate_valid", queryForm.getCertificateValidEnd()); @@ -301,12 +361,18 @@ queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getModel()),"model",queryForm.getModel()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"manufacture_no",queryForm.getManufactureNo()); queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"company_id",queryForm.getCompanyId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()),"director_id",queryForm.getDirectorId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"director_name",queryForm.getDirectorName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()),"use_sign",queryForm.getUseSign()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); + if(ObjectUtil.isNotEmpty(queryForm.getGroupId())){ + String existSql = String.format("(select id from eqpt_equipment_group_relation where group_id = %d and equipment_id = eqpt_equipment_info_approval_view.id)",queryForm.getGroupId()); + queryWrapper.exists(existSql); + } + if(ObjectUtil.isNotEmpty(queryForm.getTaskId())){ - String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info.id)",queryForm.getTaskId()); + String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info_approval_view.id)",queryForm.getTaskId()); queryWrapper.exists(existSql); } queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()),"check_organization",queryForm.getCheckOrganization()); 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml index a9033f9..c49776d 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml @@ -4,71 +4,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - id, approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + id + , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction + + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml index 62449ec..f4d9936 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml @@ -42,6 +42,12 @@ + + + + + + @@ -50,12 +56,20 @@ product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid as certificateValid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time, - is_del,model_id,help_instruction + is_del,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction select - from eqpt_equipment_info + from eqpt_equipment_info_view ${ew.sqlSegment} @@ -110,7 +124,7 @@ eqpt_remind_all as ( select e.id as equipment_id, - IFNULL(m.remind_time,0) as remind_time + IFNULL(m.remind_time,90) as remind_time from eqpt_equipment_info e left join eqpt_remind m on e.id = m.equipment_id ), @@ -118,20 +132,32 @@ select id,task_name,CONCAT(DATE_FORMAT(start_time,'%Y-%m-%d'),"~",DATE_FORMAT(end_time,'%Y-%m-%d')) as time_ext,start_time,end_time from eqpt_equipment_task_info ), + latest_sample_relation AS ( + SELECT * + FROM biz_business_order_sample_relation a + WHERE id = ( + SELECT max( id ) + FROM biz_business_order_sample_relation b + WHERE a.sample_id = b.sample_id ) + ), eqpt_ext as ( select e.* , - DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, - GROUP_CONCAT(t.task_name) as taskNames, - GROUP_CONCAT(t.time_ext) as taskTimes, - GROUP_CONCAT(t.id) as taskIds, - min(t.start_time) as task_start_time, - max(t.end_time) as task_end_time - from eqpt_equipment_info e + DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, + GROUP_CONCAT(t.task_name) as taskNames, + GROUP_CONCAT(t.time_ext) as taskTimes, + GROUP_CONCAT(t.id) as taskIds, + min(t.start_time) as task_start_time, + max(t.end_time) as task_end_time, + (case when lsr.sample_status in + #{item} + then 1 else 0 end) as check_status + from eqpt_equipment_info_view e left join eqpt_remind_all a on e.id = a.equipment_id left join eqpt_equipment_task_relation r on e.id = r.equipment_id left join task_ext t on r.task_id = t.id + left join latest_sample_relation lsr on lsr.sample_id = e.id where e.certificate_valid is not null - group by e.id,e.certificate_valid,a.remind_time + group by e.id,e.certificate_valid,a.remind_time,lsr.sample_status ) select * from eqpt_ext @@ -163,6 +189,9 @@ e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, + e.model as model, + e.company_id as companyId, + e.manufacture_no as manufactureNo, c.certificate_report_no as certificateNo, c.certificate_report_name as certificateName, '西昌卫星发射中心计量测试站' as checkOrganization, @@ -173,7 +202,7 @@ c.update_time as updateTime, '1' as certificateType, c.remark as remark - from biz_business_certificate_report c ,eqpt_equipment_info e + from biz_business_certificate_report c ,eqpt_equipment_info_view e where c.sample_id = e.id diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml index 097c405..2ddebe6 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,6 +13,7 @@ + @@ -21,7 +22,7 @@ - id, model_no, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, create_user_id, create_dept_id, create_time, update_time + id, equipment_type, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, inspectable, create_user_id, create_dept_id, create_time, update_time + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java index c69cc82..d1a2bd1 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.service.equipment.IEquipmentGroupInfoService; import io.swagger.annotations.Api; @@ -60,14 +61,11 @@ return ReturnUtil.success(); } - @ApiImplicitParams({ - @ApiImplicitParam(name = "groupName",value = "分组名称",dataType = "String",paramType = "query") - }) @ApiOperation("分组分页列表") - @GetMapping("listPage") - public ReturnDTO> listPage(String groupName){ + @PostMapping("listPage") + public ReturnDTO> listPage(@RequestBody EquipmentGroupQueryForm queryForm){ Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,groupName))); + return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,queryForm))); } @ApiImplicitParams({ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 56b6814..3130c5c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.business.LabelBindDTO; import com.casic.missiles.dto.equipment.*; import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; import com.casic.missiles.service.equipment.IEquipmentInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -36,6 +37,14 @@ public class EquipmentInfoController extends ExportController { private final IEquipmentInfoService equipmentInfoService; + private final IEquipmentInfoApprovalService approvalService; + + @ApiOperation("直接编辑设备") + @PostMapping("/info/update") + public ReturnDTO update(@RequestBody EquipmentApprovalForm approvalForm){ + approvalService.updateEquipmentInfo(approvalForm); + return ReturnUtil.success(); + } @ApiOperation("设备分页列表") @PostMapping("/info/listPage") @@ -152,5 +161,14 @@ return ReturnUtil.success(); } + @ApiOperation("到期提醒分页列表") + @PostMapping("/orderSelect/listPage") + @ResponseBody + public ReturnDTO> EquipmentOrderSelectQueryForm(@RequestBody EquipmentRemindQueryForm queryForm) { + Page page = PageFactory.defaultPage(); + page = equipmentInfoService.orderSelectListPage(page, queryForm); + return ReturnUtil.success(super.packForBT(page)); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index 044d245..ccbd668 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -103,14 +103,20 @@ @ApiOperation("设备名称列表") @GetMapping("listEquipmentName") - public ReturnDTO> listEquipmentName(){ - return ReturnUtil.success(modelInfoService.listEquipmentName()); + public ReturnDTO> listEquipmentName(String equipmentType){ + return ReturnUtil.success(modelInfoService.listEquipmentName(equipmentType)); } @ApiOperation("规格型号列表") @GetMapping("listModel") - public ReturnDTO> listModel(String equipmentName){ - return ReturnUtil.success(modelInfoService.listModel(equipmentName)); + public ReturnDTO> listModel(String equipmentType, String equipmentName){ + return ReturnUtil.success(modelInfoService.listModel(equipmentType,equipmentName)); + } + + @ApiOperation("获取默认检定去向") + @GetMapping("defaultCheckDestination") + public ReturnDTO defaultCheckDestination(Long modelId, Long companyId){ + return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java index 7e79008..1fc1f9c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.CertificateUpdate; +import com.casic.missiles.dto.equipment.LimitInstructionUpdate; import com.casic.missiles.model.plan.OrderReceive; import com.casic.missiles.model.plan.SampleStatueUpdate; import com.casic.missiles.service.equipment.IEquipmentInfoService; @@ -55,4 +56,11 @@ return ReturnUtil.success(); } + @ApiOperation("更新限用说明") + @PostMapping("/limitInstructionUpdate") + public ReturnDTO updateLimitInstruction(@RequestBody LimitInstructionUpdate updateForm) { + equipmentInfoService.updateLimitInstruction(updateForm.getEquipmentId(), updateForm.getLimitInstruction()); + return ReturnUtil.success(); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java index e314003..73d02ec 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java @@ -1,7 +1,18 @@ package com.casic.missiles.controller.system; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.system.SystemLocation; +import com.casic.missiles.service.system.ISystemLocationService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** *

@@ -11,8 +22,45 @@ * @author zhangyingjie * @since 2023-11-15 */ +@Api(tags = "安装位置管理") @RestController -@RequestMapping("/system-location") -public class SystemLocationController { +@RequestMapping("/system/location") +@RequiredArgsConstructor +public class SystemLocationController extends BaseController { + + private final ISystemLocationService locationService; + + @PostMapping("add") + public ReturnDTO add(@RequestBody SystemLocation systemLocation){ + locationService.add(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("update") + public ReturnDTO update(@RequestBody SystemLocation systemLocation){ + locationService.update(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("delete") + public ReturnDTO delete(@RequestBody SystemLocation systemLocation){ + locationService.delete(systemLocation); + return ReturnUtil.success(); + } + + @GetMapping("listPage") + public ReturnDTO> listPage(Long searchId,Long positionId, String installLocation){ + Page page = PageFactory.defaultPage(); + page = locationService.listPage(page,searchId,positionId, installLocation); + return ReturnUtil.success(super.packForBT(page)); + } + + @GetMapping("list") + public ReturnDTO> list(Long searchId,Long positionId, String installLocation){ + List list = locationService.list(searchId,positionId, installLocation); + return ReturnUtil.success(list); + } + + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java index f9e2f91..d64634a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java @@ -1,6 +1,8 @@ package com.casic.missiles.controller.system; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; @@ -10,6 +12,8 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** *

* 受检系统-系统管理-岗位管理 前端控制器 @@ -22,7 +26,7 @@ @RestController @RequestMapping("/system/position") @RequiredArgsConstructor -public class SystemPositionController { +public class SystemPositionController extends BaseController { private final ISystemPositionService positionService; @@ -45,16 +49,16 @@ } @GetMapping("listPage") - public ReturnDTO listPage(Long searchId,String positionName){ + public ReturnDTO> listPage(Long searchId, String positionName){ Page page = PageFactory.defaultPage(); - positionService.listPage(page,searchId,positionName); - return ReturnUtil.success(); + page = positionService.listPage(page,searchId,positionName); + return ReturnUtil.success(super.packForBT(page)); } @GetMapping("list") - public ReturnDTO list(Long searchId,String positionName){ - positionService.list(searchId,positionName); - return ReturnUtil.success(); + public ReturnDTO> list(Long searchId,String positionName){ + List list = positionService.list(searchId,positionName); + return ReturnUtil.success(list); } diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index 6f0359b..88cce74 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -72,9 +72,9 @@ addresses: http://111.198.10.15:21605/xxl-job-admin executor: # 此执行器的名称 - appname: casic-metering-job + appname: casic-metering-xc-eqpt-job # 此执行器的ip、端口,每个节点对应自己的ip,端口用于任务执行的通信 - ip: 127.0.0.1 + ip: 192.168.20.33 port: 9999 # 此执行器的日志存放路径 logpath: logs/xxl-job/casic-metering-job @@ -122,7 +122,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_remind_relation + table-name: eqpt_equipment_modify_log prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index 7b3c7a2..29a820a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -18,11 +18,15 @@ */ // 系统前缀 String DICT_PREFIX = "eqpt"; + + String EQUIPMENT_TYPE = DICT_PREFIX + "DeviceCategory"; //受检设备使用状态 String EQUIPMENT_USAGE_STATUS = DICT_PREFIX + "DeviceUseStatus"; //受检设备重要等级 String EQUIPMENT_LEVEL = DICT_PREFIX + "DeviceLevel"; + String EQUIPMENT_QUALITY = DICT_PREFIX + "DeviceQuality"; + String EQUIPMENT_CATEGORY = DICT_PREFIX + "DeviceType"; // 设备申请类型 String EQUIPMENT_APPROVAL_TYPE = DICT_PREFIX + "EquipmentApprovalType"; @@ -30,6 +34,8 @@ String EQUIPMENT_STATUS_APPROVAL_TYPE = DICT_PREFIX + "EquipmentStatusApprovalType"; // 设备计量标识 String EQUIPMENT_METER_IDENTITY = DICT_PREFIX + "MeterIdentify"; + + String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; // 计量计划计划分类 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java index 694e48b..aefff4a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.equipment; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.model.equipment.EquipmentAttachment; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentTechnicalTarget; @@ -13,6 +14,8 @@ @Data public class EquipmentApprovalForm extends EquipmentInfoApproval { + @ApiModelProperty("规格型号说明书") + private String instructionsFile; @ApiModelProperty("技术指标列表") private List technicalTargetList; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java index f6448c6..c814444 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java @@ -12,6 +12,9 @@ @Setter public class EquipmentInfoForm extends EquipmentInfo{ + @ApiModelProperty("规格型号说明书") + private String instructionsFile; + @ApiModelProperty("组别信息") @TableField(exist = false) private List groupInfos; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java index bcec504..7803273 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java @@ -10,6 +10,9 @@ @Setter public class EquipmentModelQueryForm { + @ApiModelProperty("设备类型") + private String equipmentType; + @ApiModelProperty("设备名称") private String equipmentName; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java index 03fc0f1..fc2acc8 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java @@ -32,12 +32,21 @@ @ApiModelProperty("所在单位") private Long companyId; - @ApiModelProperty("使用部门") + + @ApiModelProperty("使用部门(单个)") + private Long deptId; + @ApiModelProperty("使用部门(列表)") private List deptIds; + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty("使用岗位") private String usePosition; + @ApiModelProperty("负责人ID") + private Long directorId; + @ApiModelProperty("负责人") private String directorName; @@ -50,6 +59,9 @@ @ApiModelProperty("安装位置") private String installLocation; + @ApiModelProperty("分组id") + private Long groupId; + @ApiModelProperty("参试任务id") private Long taskId; @@ -75,4 +87,5 @@ @ApiModelProperty("使用状态列表[状态维护选择设备时用]") private List usageStatusList; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java index 30b5af3..b6afd18 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java @@ -73,5 +73,52 @@ @TableField("remark") private String remark; + /** + * 所在单位id + */ + @ApiModelProperty("所在单位id") + @TableField(exist = false) + private Long companyId; + + @ApiModelProperty("所在单位名称") + @TableField(exist = false) + private String companyName; + + /** + * 使用部门id + */ + @ApiModelProperty("使用部门id") + @TableField(exist = false) + private Long deptId; + + @ApiModelProperty("使用部门名称") + @TableField(exist = false) + private String deptName; + + /** + * 分系统id + */ + @ApiModelProperty(value = "分系统id") + @TableField(exist = false) + private Long subSystemId; + + @ApiModelProperty("分系统名称") + @TableField(exist = false) + private String subSystemName; + + /** + * 使用岗位id + */ + @ApiModelProperty("岗位ID") + @TableField("position_id") + private Long positionId; + + /** + * 使用岗位名称 + */ + @ApiModelProperty("岗位名称") + @TableField(exist = false) + private String positionName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java index 36575f6..b4f78b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.equipment; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -7,6 +8,8 @@ import java.io.Serializable; import java.util.Date; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.Getter; @@ -55,12 +58,35 @@ @ApiModelProperty("型号规格") @TableField(exist = false) private String model; + + @ApiModelProperty("出厂编号") + @TableField(exist = false) + private String manufactureNo; + @ApiModelProperty("生产厂家") + @TableField(exist = false) + private String manufacturer; + + /** + * 出厂编号 + */ + @ApiModelProperty("负责人") @TableField(exist = false) private String directorName; @ApiModelProperty("计量标识") @TableField(exist = false) private String meterIdentify; + + @ApiModelProperty("计量标识名称") + @TableField(exist = false) + private String meterIdentifyName; + + @ApiModelProperty("使用状态(字典code)") + @TableField(exist = false) + private String usageStatus; + @ApiModelProperty("使用状态名称") + @TableField(exist = false) + private String usageStatusName; @ApiModelProperty("证书有效期") @TableField(exist = false) private Date certificateValid; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java index 21294cf..a8392ff 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java @@ -44,14 +44,14 @@ private static final long serialVersionUID = 1L; - @ApiModelProperty("主键") + @ApiModelProperty(value = "主键") @TableId("id") private Long id; /** * 设备编号 */ - @ApiModelProperty("设备编号") + @ApiModelProperty(value = "设备编号",notes = "统一编号") @TableField("equipment_no") @ExcelProperty(value = "统一编号",index = 0) private String equipmentNo; @@ -59,7 +59,7 @@ /** * 设备名称 */ - @ApiModelProperty("设备名称") + @ApiModelProperty(value = "设备名称",notes = "设备名称") @TableField("equipment_name") @ExcelProperty(value = "设备名称",index = 1) private String equipmentName; @@ -67,14 +67,18 @@ /** * 设备类型(1受检设备;2特种设备) */ - @ApiModelProperty("设备类型(1受检设备;2特种设备)") + @ApiModelProperty(value = "设备类型(1受检设备;2特种设备)",notes = "设备类型code") @TableField("equipment_type") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE) private String equipmentType; + @TableField(exist = false) + private String equipmentTypeName; + /** * 使用状态(字典code) */ - @ApiModelProperty("使用状态(字典code)") + @ApiModelProperty(value = "使用状态(字典code)",notes = "使用状态code") @TableField("usage_status") @DictCodeField(message = "使用状态", cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS) private String usageStatus; @@ -87,28 +91,32 @@ /** * 等级(字典code) */ - @ApiModelProperty("等级(字典code)") + @ApiModelProperty(value = "等级(字典code)",notes = "重要等级code") @TableField("level") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_LEVEL) private String level; + @TableField(exist = false) + private String levelName; + /** * 生产国家 */ - @ApiModelProperty("生产国家") + @ApiModelProperty(value = "生产国家",notes = "生产国家") @TableField("product_country") private String productCountry; /** * 生产厂家 */ - @ApiModelProperty("生产厂家") + @ApiModelProperty(value = "生产厂家",notes = "生产厂家") @TableField("manufacturer") private String manufacturer; /** * 出厂编号 */ - @ApiModelProperty("出厂编号") + @ApiModelProperty(value = "出厂编号",notes = "出厂编号") @TableField("manufacture_no") @ExcelProperty(value = "出厂编号",index = 3) private String manufactureNo; @@ -116,28 +124,28 @@ /** * 生产日期 */ - @ApiModelProperty("生产日期") + @ApiModelProperty(value = "生产日期",notes = "生产日期") @TableField("product_date") private Date productDate; /** * 单价(万元) */ - @ApiModelProperty("单价(万元)") + @ApiModelProperty(value = "单价(万元)",notes = "设备单价(万元)") @TableField("unit_price") private BigDecimal unitPrice; /** * 购进日期 */ - @ApiModelProperty("购进日期") + @ApiModelProperty(value = "购进日期",notes = "购进日期") @TableField("purchase_date") private Date purchaseDate; /** * 型号规格 */ - @ApiModelProperty("型号规格") + @ApiModelProperty(value = "型号规格",notes = "型号规格") @TableField("model") @ExcelProperty(value = "型号规格",index = 2) private String model; @@ -145,14 +153,18 @@ /** * 质量状况 */ - @ApiModelProperty("质量状况") + @ApiModelProperty(value = "质量状况",notes = "质量状况code") @TableField("quality_condition") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_QUALITY) private String qualityCondition; + @TableField(exist = false) + private String qualityConditionName; + /** * 所在单位id */ - @ApiModelProperty("所在单位id") + @ApiModelProperty(value = "所在单位id",notes = "所在单位id") @TableField("company_id") private Long companyId; @@ -163,7 +175,7 @@ /** * 使用部门id */ - @ApiModelProperty("使用部门id") + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") @TableField("dept_id") private Long deptId; @@ -174,14 +186,17 @@ /** * 设备分类(字典code) */ - @ApiModelProperty("设备分类(字典code)") + @ApiModelProperty(value = "设备分类(字典code)",notes = "设备分类code") @TableField("category") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CATEGORY) private String category; + @TableField(exist = false) + private String categoryName; /** * 检定周期(月) */ - @ApiModelProperty("检定周期(月)") + @ApiModelProperty(value = "检定周期(月)",notes = "检定周期(月)") @TableField("check_cycle") @ExcelProperty(value = "检定周期(月)",index = 6) @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, horizontalAlignment = HorizontalAlignmentEnum.LEFT) @@ -190,7 +205,7 @@ /** * 备注 */ - @ApiModelProperty("备注") + @ApiModelProperty(value = "备注",notes = "备注") @TableField("remark") @ExcelProperty(value = "备注",index = 9) private String remark; @@ -198,28 +213,28 @@ /** * 说明书(minio存储文件名)(多个用,拼接) */ - @ApiModelProperty("说明书(minio存储文件名)(多个用,拼接)") + @ApiModelProperty(value = "说明书(minio存储文件名)(多个用,拼接)") @TableField("instructions_file") private String instructionsFile; /** * 检定机构 */ - @ApiModelProperty("检定机构") + @ApiModelProperty(value = "检定机构",notes = "检定(校准)机构") @TableField("check_organization") private String checkOrganization; /** * 检定日期 */ - @ApiModelProperty("检定日期") + @ApiModelProperty(value = "检定日期",notes = "检定(校准)日期") @TableField("check_date") private Date checkDate; /** * 证书有效期 */ - @ApiModelProperty("证书有效期") + @ApiModelProperty(value = "证书有效期",notes = "证书有效期") @TableField("certificate_valid") @ExcelProperty(value = "证书有效期",index = 7, converter = DateExcelConverter.class) private Date certificateValid; @@ -227,7 +242,7 @@ /** * 计量标识 */ - @ApiModelProperty("计量标识") + @ApiModelProperty(value = "计量标识",notes = "计量标识code") @TableField("meter_identify") @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY) private String meterIdentify; @@ -237,17 +252,28 @@ @ExcelProperty(value = "计量标识",index = 5) private String meterIdentifyName; + @ApiModelProperty(value = "使用岗位id",notes = "使用岗位id") + @TableField("use_position_id") + private String usePositionId; + /** * 使用岗位 */ @ApiModelProperty("使用岗位") - @TableField("use_position") + @TableField(exist = false) @ExcelProperty(value = "使用岗位",index = 4) private String usePosition; /** * 负责人 */ + @ApiModelProperty(value = "负责人id",notes = "负责人id") + @TableField("director_id") + private String directorId; + + /** + * 负责人 + */ @ApiModelProperty("负责人") @TableField("director_name") private String directorName; @@ -255,17 +281,25 @@ /** * RFID标签绑定 */ - @ApiModelProperty("RFID标签绑定") + @ApiModelProperty(value = "RFID标签绑定",notes = "RFID标签绑定") @TableField("RFID") private String rfid; /** * 在用信息(字典code) */ - @ApiModelProperty("在用信息(字典code)") + @ApiModelProperty(value = "在用信息(字典code)",notes = "在用信息code") @TableField("use_sign") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE) private String useSign; + @TableField(exist = false) + private String useSignName; + + @ApiModelProperty(value = "安装位置id",notes = "安装位置id") + @TableField("install_location_id") + private Long installLocationId; + /** * 安装位置(选择) */ @@ -276,7 +310,7 @@ /** * 安装位置(自定义编写) */ - @ApiModelProperty("安装位置(自定义编写)") + @ApiModelProperty(value = "安装位置(自定义编写)",notes = "详细位置") @TableField("install_location_ext") private String installLocationExt; @@ -290,7 +324,7 @@ /** * 备注(扩展) */ - @ApiModelProperty("备注(扩展)") + @ApiModelProperty(value = "备注(扩展)",notes = "备注") @TableField("remark_ext") private String remarkExt; @@ -327,14 +361,25 @@ @TableLogic(value = "0",delval = "1") private Integer isDel; - @ApiModelProperty("规格型号id") + @ApiModelProperty(value = "规格型号id",notes = "规格型号id") @TableField("model_id") private Long modelId; - @ApiModelProperty("辅助字段") + @ApiModelProperty(value = "辅助字段",notes = "辅助字段") @TableField("help_instruction") private String helpInstruction; + @ApiModelProperty(value = "检定去向",notes = "检定去向") + @TableField("check_destination") + private String checkDestination; + + @ApiModelProperty(value = "限用说明",notes = "限用说明") + @TableField("limit_instruction") + private String limitInstruction; + + @ApiModelProperty("分组名称") + @TableField(exist = false) + private String groupNames; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java index 13eeef8..060aa33 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java @@ -101,8 +101,13 @@ */ @ApiModelProperty("使用状态(字典code)") @TableField("usage_status") + @DictCodeField(message = "使用状态", cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS) private String usageStatus; + @ApiModelProperty("使用状态名称") + @TableField(exist = false) + private String usageStatusName; + /** * 等级(字典code) */ @@ -253,6 +258,10 @@ @TableField(exist = false) private String meterIdentifyName; + @ApiModelProperty("使用岗位id") + @TableField("use_position_id") + private String usePositionId; + /** * 使用岗位 */ @@ -263,6 +272,12 @@ /** * 负责人 */ + @ApiModelProperty("负责人id") + @TableField("director_id") + private String directorId; + /** + * 负责人 + */ @ApiModelProperty("负责人") @TableField("director_name") private String directorName; @@ -281,6 +296,10 @@ @TableField("use_sign") private String useSign; + @ApiModelProperty("安装位置id") + @TableField("install_location_id") + private Long installLocationId; + /** * 安装位置(选择) */ @@ -347,6 +366,14 @@ @TableField("help_instruction") private String helpInstruction; + @ApiModelProperty("检定去向") + @TableField("check_destination") + private String checkDestination; + + @ApiModelProperty("限用说明") + @TableField("limit_instruction") + private String limitInstruction; + @ApiModelProperty("任务id") @TableField(exist = false) private String taskId; @@ -363,4 +390,7 @@ @TableField(exist = false) private List taskInfos; + @ApiModelProperty("分组名称") + @TableField(exist = false) + private String groupNames; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java index 471e8c8..d4b20e9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java @@ -48,10 +48,15 @@ /** * 型号规格编号 */ - @ApiModelProperty("型号规格编号") - @TableField("model_no") - @ExcelProperty("型号规格编号") - private String modelNo; + @ApiModelProperty("设备类型") + @TableField("equipment_type") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE) + private String equipmentType; + + @ApiModelProperty("设备类型名称") + @TableField(exist = false) + @ExcelProperty("设备类型") + private String equipmentTypeName; /** * 设备名称 @@ -113,6 +118,10 @@ @ExcelProperty("备注") private String remark; + @ApiModelProperty("计量站是否可检(1西昌可检;2海口可检,多个用,拼接)") + @TableField("inspectable") + private String inspectable; + /** * 创建人id */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java index d495e2e..a78c41a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java @@ -83,6 +83,7 @@ /** * 安装位置 */ + @ApiModelProperty("安装位置") @TableField("install_location") private String installLocation; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java index d5417d4..633af3f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import java.util.List; @@ -23,7 +24,7 @@ void deleteGroup(Long groupId); - Page listPage(Page page, String groupName); + Page listPage(Page page, EquipmentGroupQueryForm queryForm); EquipmentGroupForm detail(Long groupId); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java index 06d0cbd..222ebdd 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java @@ -3,6 +3,7 @@ import com.casic.missiles.dto.equipment.EquipmentApprovalLog; import com.casic.missiles.dto.equipment.EquipmentQueryForm; import com.casic.missiles.dto.equipment.EquipmentApprovalForm; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentModelInfo; import com.casic.missiles.service.ICommonApprovalService; @@ -19,6 +20,14 @@ */ public interface IEquipmentInfoApprovalService extends ICommonApprovalService { + boolean updateEquipmentInfo(EquipmentApprovalForm approvalForm); + + boolean checkRfidRepeat(String rfid, Long equipmentId); + + String checkLocation(Long installLocationId, String usageStatus, Long equipmentId); + + void saveTurnoverLog(EquipmentInfo newObj, EquipmentInfo oldObj, Long createUserId); + Long saveOrUpdateApproval(EquipmentApprovalForm approvalForm); EquipmentApprovalForm approvalInfoDetail(Long approvalId); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index acec159..dde436d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -29,6 +29,8 @@ */ public interface IEquipmentInfoService extends IService { + + Page listPage(Page page, EquipmentQueryForm queryForm); List list(EquipmentQueryForm queryForm); @@ -52,6 +54,9 @@ void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date certificateValid, String meterIdentify); + void updateLimitInstruction(Long equipmentId, String limitInstruction); + + void removeCertificateInfo(Long equipmentId, Long certificateId); Page remindListPage(Page page, EquipmentRemindQueryForm queryForm) @@ -67,4 +72,10 @@ (Page page, EquipmentCertificateQueryForm queryForm); void bindTask(EquipmentTaskBindForm bindForm); + + String getFieldName(String field); + String getFieldValue(String field, String fieldValue); + + Page orderSelectListPage(Page page, EquipmentRemindQueryForm queryForm); + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java index 19afa01..4e532a7 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java @@ -28,8 +28,10 @@ List listScope(EquipmentModelQueryForm queryForm); - List listEquipmentName(); + List listEquipmentName(String equipmentType); - List listModel(String equipmentName); + List listModel(String equipmentType, String equipmentName); + + String defaultCheckDestination(Long modelId,Long companyId); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java index 4a89b12..5608317 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java @@ -2,11 +2,16 @@ import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.constants.MeterDictCode; +import com.casic.missiles.core.application.service.AbstractDeptService; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.mapper.equipment.EquipmentGroupInfoMapper; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.model.equipment.EquipmentGroupRelation; @@ -31,6 +36,8 @@ public class EquipmentGroupInfoServiceImpl extends ServiceImpl implements IEquipmentGroupInfoService { private final IEquipmentGroupRelationService groupRelationService; + private final AbstractDeptService deptService; + private final AbstractDictService dictService; @Override @Transactional @@ -62,14 +69,25 @@ groupRelationService.deleteByGroupId(groupId); } - // todo datascope @Override - public Page listPage(Page page, String groupName) { + public Page listPage(Page page, EquipmentGroupQueryForm queryForm) { QueryWrapper queryWrapper = new QueryWrapper<>(); - if (StrUtil.isNotEmpty(groupName)) { - queryWrapper.like("binary group_name", groupName); - } - return this.page(page, queryWrapper); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"p.company_id",queryForm.getCompanyId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()),"p.dept_id",queryForm.getDeptId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getSubSystemId()),"p.sub_system_id",queryForm.getSubSystemId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getPositionId()),"g.position_id",queryForm.getPositionId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getGroupName()), "binary g.group_name", queryForm.getGroupName()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCreateUserId()),"g.create_user_id",queryForm.getCreateUserId()); + List list = this.baseMapper.listPage(page, queryWrapper); + list.forEach(this::wrapper); + page.setRecords(list); + return page; + } + + private void wrapper(EquipmentGroupInfo info) { + info.setCompanyName(deptService.getDeptName(info.getCompanyId())); + info.setDeptName(deptService.getDeptName(info.getDeptId())); + info.setSubSystemName(deptService.getDeptName(info.getSubSystemId())); } @Override @@ -80,6 +98,11 @@ groupForm.setGroupInfo(groupInfo); List relations = groupRelationService.listByGroup(groupId); + relations.forEach(i->{ + i.setMeterIdentifyName(dictService.getDictNameByCode(MeterDictCode.EQUIPMENT_METER_IDENTITY,i.getMeterIdentify())); + i.setUsageStatusName(dictService.getDictNameByCode(MeterDictCode.EQUIPMENT_USAGE_STATUS,i.getUsageStatus())); + + }); groupForm.setEquipmentList(relations); return groupForm; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java index 0a5a5fe..5456965 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java @@ -5,9 +5,12 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.equipment.EquipmentApprovalLog; @@ -16,6 +19,7 @@ import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.PrefixCodeEnum; +import com.casic.missiles.enums.equipment.EquipmentStatusTypeEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; @@ -81,6 +85,30 @@ @Autowired private IEquipmentTaskRelationService taskRelationService; + @Autowired + private IEquipmentModelInfoService modelInfoService; + + @Override + public boolean updateEquipmentInfo(EquipmentApprovalForm approvalForm) { + if(checkRfidRepeat(approvalForm.getRfid(),approvalForm.getEquipmentId())){ + throw new BusinessException(500,"RFID标签已使用"); + } + String checkLoc = checkLocation(approvalForm.getInstallLocationId(),approvalForm.getUsageStatus(),approvalForm.getEquipmentId()); + if(StrUtil.isNotEmpty(checkLoc)){ + throw new BusinessException(500,String.format("当前安装位置已存在一台在用设备,编号为%s",checkLoc)); + } + + attachmentService.saveByEquipment(approvalForm.getEquipmentId(), approvalForm.getAttachments()); + taskRelationService.saveByEquipment(approvalForm.getEquipmentId(),approvalForm.getTaskInfos()); + if (EQUIPMENT_TYPE_SPECIAL.equals(approvalForm.getEquipmentType())) { + specialCertificateService.saveCertificateList(approvalForm.getEquipmentId(), approvalForm.getCertificateList()); + } + EquipmentInfo info = new EquipmentInfo(); + BeanUtil.copyProperties(approvalForm, info); + info.setId(approvalForm.getEquipmentId()); + saveTurnoverLog(info, null, approvalForm.getCreateUserId()); + return equipmentInfoService.updateById(info); + } @Override @Transactional @@ -91,6 +119,12 @@ if(checkRfidRepeat(approvalForm.getRfid(),approvalForm.getEquipmentId())){ throw new BusinessException(500,"RFID标签已使用"); } + String checkLoc = this.checkLocation(approvalForm.getInstallLocationId(),approvalForm.getUsageStatus(),approvalForm.getEquipmentId()); + if(StrUtil.isNotEmpty(checkLoc)){ + throw new BusinessException(500,String.format("当前安装位置已存在一台在用设备,编号为%s",checkLoc)); + } + + if(ObjectUtil.isEmpty(approvalForm.getCreateUserId())){ AuthUser authUser = permissionContext.getAuthService().getLoginUser(); approvalForm.setCreateUserId(authUser.getId()); @@ -170,10 +204,19 @@ return updateApprovalStatus(submitRequest.getId(), ApprovalStatusEnum.IN_APPROVED); } - private boolean checkRfidRepeat(String rfid, Long equipmentId){ + @Override + public boolean checkRfidRepeat(String rfid, Long equipmentId){ return StrUtil.isNotEmpty(rfid) && this.baseMapper.checkRfid(rfid, equipmentId) > 0; } + @Override + public String checkLocation(Long installLocationId, String usageStatus, Long equipmentId){ + if(ObjectUtil.isNotEmpty(installLocationId) && EquipmentStatusTypeEnum.UNSEAL.equals(usageStatus)){ + return this.baseMapper.checkLocation(installLocationId,EquipmentStatusTypeEnum.UNSEAL,equipmentId); + } + return null; + } + private boolean haveUnfinishedApproval(EquipmentApprovalForm approvalForm){ if(ObjectUtil.isNotEmpty(approvalForm.getEquipmentId())){ QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -188,14 +231,16 @@ public void simpleUpdate(EquipmentApprovalForm approvalForm, EquipmentInfo info) { EquipmentInfo oldObj = SerializationUtils.clone(info); CasicBeanUtil.copySpecifyProperties(approvalForm, info, "checkOrganization", "checkDate", - "certificateValid", "meterIdentify", "usePosition", "directorName", "rfid", - "useSign", "installLocation", "installLocationExt", "testTask", "remarkExt"); + "certificateValid", "meterIdentify", "usePositionId","usePosition","directorId", "directorName", "rfid", + "useSign","installLocationId", "installLocation", "installLocationExt", "testTask", "remarkExt", + "checkDestination","limitInstruction"); saveTurnoverLog(info, oldObj, approvalForm.getCreateUserId()); equipmentInfoService.updateById(info); } - private void saveTurnoverLog(EquipmentInfo newObj, EquipmentInfo oldObj, Long createUserId) { + @Override + public void saveTurnoverLog(EquipmentInfo newObj, EquipmentInfo oldObj, Long createUserId) { if(ObjectUtil.isEmpty(oldObj)){ oldObj = equipmentInfoService.getById(newObj.getId()); } @@ -268,6 +313,8 @@ info.setGroupInfos(groupInfoService.selectByEquipment(info.getEquipmentId())); info.setCertificateList(equipmentInfoService.allCertificate(info.getEquipmentId(),info.getEquipmentType())); info.setTaskInfos(taskInfoService.listByEquipment(info.getEquipmentId())); + info.setInstructionsFile(modelInfoService.getById(info.getModelId()).getInstructionsFile()); + } return info; } @@ -278,7 +325,7 @@ super.warpper(approval); approval.setCompanyName(permissionContext.getDeptService().getDeptName(approval.getCompanyId())); approval.setDeptName(permissionContext.getDeptService().getDeptName(approval.getDeptId())); - //DictCodeUtils.convertDictCodeToName(approval); + DictCodeUtils.convertDictCodeToName(approval); } catch (Exception e) { throw new RuntimeException(e); @@ -287,6 +334,18 @@ } @Override + public List list(Wrapper queryWrapper) { + return this.baseMapper.selectList(queryWrapper); + } + + @Override + public > E page(E page, Wrapper queryWrapper) { + List list = this.baseMapper.selectListPage((Page) page, (QueryWrapper) queryWrapper); + page.setRecords(list); + return page; + } + + @Override public QueryWrapper commonQuery(EquipmentQueryForm queryForm) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); @@ -294,6 +353,7 @@ queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"use_position_id",queryForm.getUsePositionId()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUsageStatus()), "usage_status", queryForm.getUsageStatus()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "certificate_valid", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "certificate_valid", queryForm.getCertificateValidEnd()); @@ -301,12 +361,18 @@ queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getModel()),"model",queryForm.getModel()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"manufacture_no",queryForm.getManufactureNo()); queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"company_id",queryForm.getCompanyId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()),"director_id",queryForm.getDirectorId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"director_name",queryForm.getDirectorName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()),"use_sign",queryForm.getUseSign()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); + if(ObjectUtil.isNotEmpty(queryForm.getGroupId())){ + String existSql = String.format("(select id from eqpt_equipment_group_relation where group_id = %d and equipment_id = eqpt_equipment_info_approval_view.id)",queryForm.getGroupId()); + queryWrapper.exists(existSql); + } + if(ObjectUtil.isNotEmpty(queryForm.getTaskId())){ - String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info.id)",queryForm.getTaskId()); + String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info_approval_view.id)",queryForm.getTaskId()); queryWrapper.exists(existSql); } queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()),"check_organization",queryForm.getCheckOrganization()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java index bbade89..c587261 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java @@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.annotation.EquipmentLog; import com.casic.missiles.constants.MeterDictCode; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; @@ -27,10 +28,7 @@ import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.PrefixCodeEnum; -import com.casic.missiles.enums.equipment.EquipmentCertificateTypeEnum; -import com.casic.missiles.enums.equipment.EquipmentStatusTypeEnum; -import com.casic.missiles.enums.equipment.EquipmentTypeEnum; -import com.casic.missiles.enums.equipment.StatusApprovalTypeEnum; +import com.casic.missiles.enums.equipment.*; import com.casic.missiles.enums.plan.CheckCompletionEnum; import com.casic.missiles.enums.plan.SampleStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -46,13 +44,21 @@ import com.casic.missiles.service.status.IEquipmentStatusLogService; import com.casic.missiles.service.subcontract.ISubcontractCertificateService; import com.casic.missiles.service.system.IRemindConfigService; +import com.casic.missiles.service.system.ISystemDeptService; +import com.casic.missiles.service.system.ISystemLocationService; +import com.casic.missiles.service.system.ISystemPositionService; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import com.casic.missiles.utils.SpringContextUtil; +import io.swagger.annotations.ApiModelProperty; import liquibase.pro.packaged.S; import lombok.RequiredArgsConstructor; +import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; import org.springframework.web.multipart.MultipartFile; @@ -64,6 +70,7 @@ import java.util.stream.Collectors; import static com.casic.missiles.enums.equipment.EquipmentTypeEnum.EQUIPMENT_TYPE_NORMAL; +import static com.casic.missiles.enums.equipment.EquipmentTypeEnum.EQUIPMENT_TYPE_SPECIAL; /** *

@@ -91,9 +98,16 @@ private final IEquipmentModelInfoService modelInfoService; private final EquipmentInfoApprovalMapper infoApprovalMapper; + private final ISystemDeptService systemDeptService; + private final ISystemPositionService positionService; + private final ISystemLocationService locationService; + private ISubcontractCertificateService subcontractCertificateService; + @Value("${casic.role.operator: user}") + private String operatorRoleTip; + @Autowired @@ -101,6 +115,20 @@ this.subcontractCertificateService = subcontractCertificateService; } + @EquipmentLog(key = "#entity.id") + @Override + @Transactional(propagation = Propagation.REQUIRES_NEW) + public boolean saveOrUpdate(EquipmentInfo entity) { + return super.saveOrUpdate(entity); + } + + @EquipmentLog(key = "#entity.id") + @Override + @Transactional(propagation = Propagation.REQUIRES_NEW) + public boolean updateById(EquipmentInfo entity) { + return super.updateById(entity); + } + @Override public Page listPage(Page page, EquipmentQueryForm queryForm) { QueryWrapper queryWrapper = commonQuery(queryForm); @@ -167,10 +195,24 @@ if (CollUtil.isNotEmpty(queryForm.getIds())) { queryWrapper.in("id", queryForm.getIds()); } else { + // 如果当前用户所在组织机构 的级别是受检单位,查本单位下所有部门的;否则查当前用户所在部门的 + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + if(systemDeptService.isCompany(authUser.getDeptId())){ + List scopeDeptIds = permissionContext.getDeptService().getIdsByPid(authUser.getDeptId(),null); + if(ObjectUtil.isNotEmpty(queryForm.getDeptIds())){ + scopeDeptIds.retainAll(queryForm.getDeptIds()); + } + queryForm.setDeptIds(scopeDeptIds); + }else { + queryForm.setDeptId(authUser.getDeptId()); + } + + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()),"dept_id",queryForm.getDeptId()); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentNo()), "equipment_no", queryForm.getEquipmentNo()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"use_position_id",queryForm.getUsePositionId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUsageStatus()), "usage_status", queryForm.getUsageStatus()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "certificate_valid", queryForm.getCertificateValidStart()); @@ -179,12 +221,18 @@ queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getModel()),"model",queryForm.getModel()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"manufacture_no",queryForm.getManufactureNo()); queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"company_id",queryForm.getCompanyId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()),"director_id",queryForm.getDirectorId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"director_name",queryForm.getDirectorName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()),"use_sign",queryForm.getUseSign()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); + if(ObjectUtil.isNotEmpty(queryForm.getGroupId())){ + String existSql = String.format("(select id from eqpt_equipment_group_relation where group_id = %d and equipment_id = eqpt_equipment_info_view.id)",queryForm.getGroupId()); + queryWrapper.exists(existSql); + } + if(ObjectUtil.isNotEmpty(queryForm.getTaskId())){ - String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info.id)",queryForm.getTaskId()); + String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info_view.id)",queryForm.getTaskId()); queryWrapper.exists(existSql); } queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()),"check_organization",queryForm.getCheckOrganization()); @@ -213,6 +261,8 @@ infoForm.setCertificateList(allCertificate(equipmentId, equipmentInfo.getEquipmentType())); infoForm.setTaskInfos(taskInfoService.listByEquipment(equipmentId)); + infoForm.setInstructionsFile(modelInfoService.getById(equipmentInfo.getModelId()).getInstructionsFile()); + } return infoForm; } @@ -424,7 +474,6 @@ equipmentInfo.setCreateTime(new Date()); equipmentInfo.setUpdateTime(new Date()); equipmentInfo.setIsDel(0); - equipmentInfos.add(equipmentInfo); } @@ -438,10 +487,11 @@ @Override public void updateEquipmentStatus(Long equipmentId, String usageStatus) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("id", equipmentId); - updateWrapper.set("usage_status", usageStatus); - this.update(updateWrapper); + EquipmentInfo equipmentInfo = this.getById(equipmentId); + if(ObjectUtil.isNotEmpty(equipmentInfo)){ + equipmentInfo.setUsageStatus(usageStatus); + } + this.updateById(equipmentInfo); } @Override @@ -469,19 +519,29 @@ if (StrUtil.isNotEmpty(meterIdentify)) { equipmentInfo.setMeterIdentify(meterIdentify); } - this.updateById(equipmentInfo); + //当设备证书有效期更新且未到期时,设备状态自动变更为启封 if (!EquipmentStatusTypeEnum.UNSEAL.equals(equipmentInfo.getUsageStatus()) && !EquipmentStatusTypeEnum.SCRAP.equals(equipmentInfo.getUsageStatus()) && certificateValid.after(new Date())) { - this.updateEquipmentStatus(equipmentId, EquipmentStatusTypeEnum.UNSEAL); - statusLogService.saveLog(equipmentId, StatusApprovalTypeEnum.UNSEAL, "设备证书更新"); + String usageStatus = EquipmentStatusTypeEnum.UNSEAL; + equipmentInfo.setUsageStatus(usageStatus); + statusLogService.saveLog(equipmentId, usageStatus, "设备证书更新"); } - + this.updateById(equipmentInfo); } } } + @Override + public void updateLimitInstruction(Long equipmentId, String limitInstruction) { + EquipmentInfo equipmentInfo = this.getById(equipmentId); + if (ObjectUtil.isNotEmpty(equipmentInfo)) { + equipmentInfo.setLimitInstruction(limitInstruction); + this.updateById(equipmentInfo); + } + } + public void removeCertificateInfo(Long equipmentId, Long certificateId) { EquipmentInfo equipmentInfo = this.getById(equipmentId); if (ObjectUtil.isNotEmpty(equipmentInfo)) { @@ -506,9 +566,11 @@ @Override public Page remindListPage(Page page, EquipmentRemindQueryForm queryForm) { QueryWrapper queryWrapper = remindQuery(queryForm); - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - dataScope.setScopeName("dept_id"); - List list = this.baseMapper.selectRemindListPage(page, dataScope, queryWrapper); + queryWrapper.in("usage_status",Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, + EquipmentStatusTypeEnum.DISABLE, + EquipmentStatusTypeEnum.DELAY)); + List list = this.baseMapper.selectRemindListPage(page, null,queryWrapper, + SampleStatusEnum.getSampleStatusByCompletion(Arrays.asList(CheckCompletionEnum.UNCHECK,CheckCompletionEnum.IN_CHECK))); list.forEach(this::warpEquipmentRemindInfo); page.setRecords(list); return page; @@ -517,9 +579,11 @@ @Override public List remindList(EquipmentRemindQueryForm queryForm) { QueryWrapper queryWrapper = remindQuery(queryForm); - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - dataScope.setScopeName("dept_id"); - List list = this.baseMapper.selectRemindList(dataScope, queryWrapper); + queryWrapper.in("usage_status",Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, + EquipmentStatusTypeEnum.DISABLE, + EquipmentStatusTypeEnum.DELAY)); + List list = this.baseMapper.selectRemindList(null, queryWrapper, + SampleStatusEnum.getSampleStatusByCompletion(Arrays.asList(CheckCompletionEnum.UNCHECK,CheckCompletionEnum.IN_CHECK))); list.forEach(this::warpEquipmentRemindInfo); return list; } @@ -533,10 +597,27 @@ } private QueryWrapper remindQuery(EquipmentRemindQueryForm queryForm){ + // 操作手仅能看到自己负责的设备信息,其余角色查看本组织结构下所有 + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + if(authUser.getRoleTips().contains(operatorRoleTip)){ + queryForm.setDirectorId(authUser.getId()); + }else { + List scopeIds = permissionContext.getDeptService().getIdsByPid(authUser.getDeptId(),null); + scopeIds.add(authUser.getDeptId()); + if(CollUtil.isNotEmpty(queryForm.getDeptIds())){ + scopeIds.retainAll(queryForm.getDeptIds()); + } + queryForm.setDeptIds(scopeIds); + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); if (CollUtil.isNotEmpty(queryForm.getIds())) { queryWrapper.in("id", queryForm.getIds()); } else { + + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()),"dept_id",queryForm.getDeptId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"company_id",queryForm.getCompanyId()); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentNo()), "equipment_no", queryForm.getEquipmentNo()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); @@ -544,15 +625,28 @@ queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"manufacture_no",queryForm.getManufactureNo()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"use_position_id",queryForm.getUsePositionId()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUsageStatus()), "usage_status", queryForm.getUsageStatus()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()), "use_sign", queryForm.getUseSign()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()),"check_destination",queryForm.getCheckDestination()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "certificate_valid", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "certificate_valid", queryForm.getCertificateValidEnd()); + + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()),"check_destination",queryForm.getCheckDestination()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckStatus()),"check_status",queryForm.getCheckStatus()); + + queryWrapper.in(CollUtil.isNotEmpty(queryForm.getUsageStatusList()),"usage_status",queryForm.getUsageStatusList()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufacturer()),"manufacturer",queryForm.getManufacturer()); queryWrapper.like(ObjectUtil.isNotEmpty(queryForm.getTaskId()),"taskIds",queryForm.getTaskId()); if (StrUtil.isNotEmpty(queryForm.getTaskStartTime()) || StrUtil.isNotEmpty(queryForm.getTastEndTime())) { queryWrapper.and(i -> { - i.le(StrUtil.isNotEmpty(queryForm.getTaskStartTime()), "task_start_time", queryForm.getTaskStartTime()) - .or() - .ge(StrUtil.isNotEmpty(queryForm.getTastEndTime()), "task_end_time", queryForm.getTastEndTime()); + i.le(StrUtil.isNotEmpty(queryForm.getTaskStartTime()), "task_start_time", queryForm.getTastEndTime()) + .ge(StrUtil.isNotEmpty(queryForm.getTastEndTime()), "task_end_time", queryForm.getTaskStartTime()); + +// i.le(StrUtil.isNotEmpty(queryForm.getTaskStartTime()), "task_start_time", queryForm.getTaskStartTime()) +// .or() +// .ge(StrUtil.isNotEmpty(queryForm.getTastEndTime()), "task_end_time", queryForm.getTastEndTime()); }); } } @@ -562,6 +656,21 @@ } @Override + public Page orderSelectListPage(Page page, EquipmentRemindQueryForm queryForm) { + QueryWrapper queryWrapper = remindQuery(queryForm); + queryWrapper.in("usage_status",Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, + EquipmentStatusTypeEnum.DISABLE, + EquipmentStatusTypeEnum.DELAY, + EquipmentStatusTypeEnum.SEAL)); + queryWrapper.eq("check_status",0); //未送检设备 + List list = this.baseMapper.selectRemindList(null, queryWrapper, + SampleStatusEnum.getSampleStatusByCompletion(Arrays.asList(CheckCompletionEnum.UNCHECK,CheckCompletionEnum.IN_CHECK))); + list.forEach(this::warpEquipmentRemindInfo); + page.setRecords(list); + return page; + } + + @Override public List expireTrend(String type) { switch (type){ case "month": @@ -598,9 +707,21 @@ queryWrapper.le("certificate_valid", endTime); queryWrapper.eq("is_del",0); - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - dataScope.setScopeName("dept_id"); - return this.baseMapper.selectList(dataScope,queryWrapper); + queryWrapper.in("usage_status",Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, + EquipmentStatusTypeEnum.DISABLE, + EquipmentStatusTypeEnum.DELAY)); + + // 操作手仅能看到自己负责的设备信息,其余角色查看本组织结构下所有 + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + if(authUser.getRoleTips().contains(operatorRoleTip)){ + queryWrapper.eq("director_id",authUser.getId()); + }else { + List scopeIds = permissionContext.getDeptService().getIdsByPid(authUser.getDeptId(),null); + scopeIds.add(authUser.getDeptId()); + queryWrapper.in("dept_id",scopeIds); + } + + return this.baseMapper.selectList(null,queryWrapper); } private List expireTrendByMonth(){ @@ -611,7 +732,7 @@ startCal.set(Calendar.SECOND,0); Calendar endCal = Calendar.getInstance(); - endCal.add(Calendar.MONTH,1); + endCal.add(Calendar.MONTH,3); endCal.set(Calendar.HOUR_OF_DAY,23); endCal.set(Calendar.MINUTE,59); endCal.set(Calendar.SECOND,59); @@ -634,8 +755,19 @@ @Override public Page certificateListPage(Page page, EquipmentCertificateQueryForm queryForm) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - dataScope.setScopeName("e.dept_id"); + // 如果当前用户所在组织机构 的级别是受检单位,查本单位下所有部门的;否则查当前用户所在部门的 + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + if(systemDeptService.isCompany(authUser.getDeptId())){ + List scopeDeptIds = permissionContext.getDeptService().getIdsByPid(authUser.getDeptId(),null); + if(ObjectUtil.isNotEmpty(queryForm.getDeptIds())){ + scopeDeptIds.retainAll(queryForm.getDeptIds()); + } + queryForm.setDeptIds(scopeDeptIds); + }else { + queryForm.setDeptId(authUser.getDeptId()); + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCertificateNo()), "c.certificate_report_no", queryForm.getCertificateNo()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCertificateName()), "c.certificate_report_name", queryForm.getCertificateName()); @@ -644,10 +776,26 @@ queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()), "'西昌卫星发射中心计量测试站'", queryForm.getCheckOrganization()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "c.expiration_date", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "c.expiration_date", queryForm.getCertificateValidEnd()); + + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getModel()),"e.model",queryForm.getModel()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"e.manufacture_no",queryForm.getManufactureNo()); + queryWrapper.eq("e.is_del", 0); queryWrapper.eq("c.approval_status", ApprovalStatusEnum.PASSED); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()),"e.dept_id",queryForm.getDeptId()); + queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "e.dept_id", queryForm.getDeptIds()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"e.company_id",queryForm.getCompanyId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"e.use_position_id",queryForm.getUsePositionId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "e.use_position", queryForm.getUsePosition()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()),"e.director_id",queryForm.getDirectorId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"e.director_name",queryForm.getDirectorName()); - List list = this.baseMapper.bizCertificateListPage(page, dataScope, queryWrapper); + + List list = this.baseMapper.bizCertificateListPage(page, null, queryWrapper); + for (EquipmentCertificateDTO certificateDTO : list) { + certificateDTO.setDeptName(permissionContext.getDeptService().getDeptName(certificateDTO.getDeptId())); + certificateDTO.setCompanyName(permissionContext.getDeptService().getDeptName(certificateDTO.getCompanyId())); + } page.setRecords(list); return page; } @@ -668,4 +816,76 @@ } taskRelationService.saveBatch(relationList); } + + @Override + public String getFieldName(String fieldName) { + Field[] fields = EquipmentInfo.class.getDeclaredFields(); + for (Field field : fields) { + if (!field.isAccessible()) { + field.setAccessible(true); + } + if(fieldName.equals(field.getName())){ + if(field.isAnnotationPresent(ApiModelProperty.class)){ + ApiModelProperty apiModelProperty = field.getAnnotationsByType(ApiModelProperty.class)[0]; + String notes = apiModelProperty.notes(); + if(StrUtil.isNotEmpty(notes)){ + notes = notes.replace("id","").replace("code",""); + } + return notes; + } + } + } + return null; + } + + @Override + public String getFieldValue(String fieldName, String fieldValue) { + if(StrUtil.isBlank(fieldValue)){ + return fieldValue; + } + Field[] fields = EquipmentInfo.class.getDeclaredFields(); + for (Field field : fields) { + if (!field.isAccessible()) { + field.setAccessible(true); + } + if(fieldName.equals(field.getName())){ + if(field.isAnnotationPresent(ApiModelProperty.class)){ + ApiModelProperty apiModelProperty = field.getAnnotationsByType(ApiModelProperty.class)[0]; + String notes = apiModelProperty.notes(); + if(StrUtil.isNotEmpty(notes)){ + if(notes.contains("code")){ + DictCodeField dictCodeField = field.getAnnotationsByType(DictCodeField.class)[0]; + if (StringUtils.isEmpty(dictCodeField.cacheName())) { + throw new BusinessException(500, "缓存名不能为空"); + } + AbstractDictService dictService = SpringContextUtil.getBean(AbstractDictService.class); + fieldValue = dictService.getDictNameByCode(dictCodeField.cacheName(), fieldValue); + } + if(notes.contains("id")){ + switch (notes){ + case "所在单位id": + case "使用部门id": + fieldValue = permissionContext.getDeptService().getDeptName(fieldValue); + break; + case "使用岗位id": + fieldValue = positionService.getNameById(Long.valueOf(fieldValue)); + break; + case "负责人id": + fieldValue = permissionContext.getUserService().getById(fieldValue).getName(); + break; + case "安装位置id": + fieldValue = locationService.getById(fieldValue).getInstallLocation(); + break; + case "规格型号id": + fieldValue = modelInfoService.getById(fieldValue).getModel(); + break; + } + } + } + + } + } + } + return fieldValue; + } } 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml index a9033f9..c49776d 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml @@ -4,71 +4,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - id, approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + id + , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction + + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml index 62449ec..f4d9936 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml @@ -42,6 +42,12 @@ + + + + + + @@ -50,12 +56,20 @@ product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid as certificateValid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time, - is_del,model_id,help_instruction + is_del,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction select - from eqpt_equipment_info + from eqpt_equipment_info_view ${ew.sqlSegment} @@ -110,7 +124,7 @@ eqpt_remind_all as ( select e.id as equipment_id, - IFNULL(m.remind_time,0) as remind_time + IFNULL(m.remind_time,90) as remind_time from eqpt_equipment_info e left join eqpt_remind m on e.id = m.equipment_id ), @@ -118,20 +132,32 @@ select id,task_name,CONCAT(DATE_FORMAT(start_time,'%Y-%m-%d'),"~",DATE_FORMAT(end_time,'%Y-%m-%d')) as time_ext,start_time,end_time from eqpt_equipment_task_info ), + latest_sample_relation AS ( + SELECT * + FROM biz_business_order_sample_relation a + WHERE id = ( + SELECT max( id ) + FROM biz_business_order_sample_relation b + WHERE a.sample_id = b.sample_id ) + ), eqpt_ext as ( select e.* , - DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, - GROUP_CONCAT(t.task_name) as taskNames, - GROUP_CONCAT(t.time_ext) as taskTimes, - GROUP_CONCAT(t.id) as taskIds, - min(t.start_time) as task_start_time, - max(t.end_time) as task_end_time - from eqpt_equipment_info e + DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, + GROUP_CONCAT(t.task_name) as taskNames, + GROUP_CONCAT(t.time_ext) as taskTimes, + GROUP_CONCAT(t.id) as taskIds, + min(t.start_time) as task_start_time, + max(t.end_time) as task_end_time, + (case when lsr.sample_status in + #{item} + then 1 else 0 end) as check_status + from eqpt_equipment_info_view e left join eqpt_remind_all a on e.id = a.equipment_id left join eqpt_equipment_task_relation r on e.id = r.equipment_id left join task_ext t on r.task_id = t.id + left join latest_sample_relation lsr on lsr.sample_id = e.id where e.certificate_valid is not null - group by e.id,e.certificate_valid,a.remind_time + group by e.id,e.certificate_valid,a.remind_time,lsr.sample_status ) select * from eqpt_ext @@ -163,6 +189,9 @@ e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, + e.model as model, + e.company_id as companyId, + e.manufacture_no as manufactureNo, c.certificate_report_no as certificateNo, c.certificate_report_name as certificateName, '西昌卫星发射中心计量测试站' as checkOrganization, @@ -173,7 +202,7 @@ c.update_time as updateTime, '1' as certificateType, c.remark as remark - from biz_business_certificate_report c ,eqpt_equipment_info e + from biz_business_certificate_report c ,eqpt_equipment_info_view e where c.sample_id = e.id diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml index 097c405..2ddebe6 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,6 +13,7 @@ + @@ -21,7 +22,7 @@ - id, model_no, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, create_user_id, create_dept_id, create_time, update_time + id, equipment_type, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, inspectable, create_user_id, create_dept_id, create_time, update_time + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java index c69cc82..d1a2bd1 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.service.equipment.IEquipmentGroupInfoService; import io.swagger.annotations.Api; @@ -60,14 +61,11 @@ return ReturnUtil.success(); } - @ApiImplicitParams({ - @ApiImplicitParam(name = "groupName",value = "分组名称",dataType = "String",paramType = "query") - }) @ApiOperation("分组分页列表") - @GetMapping("listPage") - public ReturnDTO> listPage(String groupName){ + @PostMapping("listPage") + public ReturnDTO> listPage(@RequestBody EquipmentGroupQueryForm queryForm){ Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,groupName))); + return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,queryForm))); } @ApiImplicitParams({ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 56b6814..3130c5c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.business.LabelBindDTO; import com.casic.missiles.dto.equipment.*; import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; import com.casic.missiles.service.equipment.IEquipmentInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -36,6 +37,14 @@ public class EquipmentInfoController extends ExportController { private final IEquipmentInfoService equipmentInfoService; + private final IEquipmentInfoApprovalService approvalService; + + @ApiOperation("直接编辑设备") + @PostMapping("/info/update") + public ReturnDTO update(@RequestBody EquipmentApprovalForm approvalForm){ + approvalService.updateEquipmentInfo(approvalForm); + return ReturnUtil.success(); + } @ApiOperation("设备分页列表") @PostMapping("/info/listPage") @@ -152,5 +161,14 @@ return ReturnUtil.success(); } + @ApiOperation("到期提醒分页列表") + @PostMapping("/orderSelect/listPage") + @ResponseBody + public ReturnDTO> EquipmentOrderSelectQueryForm(@RequestBody EquipmentRemindQueryForm queryForm) { + Page page = PageFactory.defaultPage(); + page = equipmentInfoService.orderSelectListPage(page, queryForm); + return ReturnUtil.success(super.packForBT(page)); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index 044d245..ccbd668 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -103,14 +103,20 @@ @ApiOperation("设备名称列表") @GetMapping("listEquipmentName") - public ReturnDTO> listEquipmentName(){ - return ReturnUtil.success(modelInfoService.listEquipmentName()); + public ReturnDTO> listEquipmentName(String equipmentType){ + return ReturnUtil.success(modelInfoService.listEquipmentName(equipmentType)); } @ApiOperation("规格型号列表") @GetMapping("listModel") - public ReturnDTO> listModel(String equipmentName){ - return ReturnUtil.success(modelInfoService.listModel(equipmentName)); + public ReturnDTO> listModel(String equipmentType, String equipmentName){ + return ReturnUtil.success(modelInfoService.listModel(equipmentType,equipmentName)); + } + + @ApiOperation("获取默认检定去向") + @GetMapping("defaultCheckDestination") + public ReturnDTO defaultCheckDestination(Long modelId, Long companyId){ + return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java index 7e79008..1fc1f9c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.CertificateUpdate; +import com.casic.missiles.dto.equipment.LimitInstructionUpdate; import com.casic.missiles.model.plan.OrderReceive; import com.casic.missiles.model.plan.SampleStatueUpdate; import com.casic.missiles.service.equipment.IEquipmentInfoService; @@ -55,4 +56,11 @@ return ReturnUtil.success(); } + @ApiOperation("更新限用说明") + @PostMapping("/limitInstructionUpdate") + public ReturnDTO updateLimitInstruction(@RequestBody LimitInstructionUpdate updateForm) { + equipmentInfoService.updateLimitInstruction(updateForm.getEquipmentId(), updateForm.getLimitInstruction()); + return ReturnUtil.success(); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java index e314003..73d02ec 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java @@ -1,7 +1,18 @@ package com.casic.missiles.controller.system; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.system.SystemLocation; +import com.casic.missiles.service.system.ISystemLocationService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** *

@@ -11,8 +22,45 @@ * @author zhangyingjie * @since 2023-11-15 */ +@Api(tags = "安装位置管理") @RestController -@RequestMapping("/system-location") -public class SystemLocationController { +@RequestMapping("/system/location") +@RequiredArgsConstructor +public class SystemLocationController extends BaseController { + + private final ISystemLocationService locationService; + + @PostMapping("add") + public ReturnDTO add(@RequestBody SystemLocation systemLocation){ + locationService.add(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("update") + public ReturnDTO update(@RequestBody SystemLocation systemLocation){ + locationService.update(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("delete") + public ReturnDTO delete(@RequestBody SystemLocation systemLocation){ + locationService.delete(systemLocation); + return ReturnUtil.success(); + } + + @GetMapping("listPage") + public ReturnDTO> listPage(Long searchId,Long positionId, String installLocation){ + Page page = PageFactory.defaultPage(); + page = locationService.listPage(page,searchId,positionId, installLocation); + return ReturnUtil.success(super.packForBT(page)); + } + + @GetMapping("list") + public ReturnDTO> list(Long searchId,Long positionId, String installLocation){ + List list = locationService.list(searchId,positionId, installLocation); + return ReturnUtil.success(list); + } + + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java index f9e2f91..d64634a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java @@ -1,6 +1,8 @@ package com.casic.missiles.controller.system; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; @@ -10,6 +12,8 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** *

* 受检系统-系统管理-岗位管理 前端控制器 @@ -22,7 +26,7 @@ @RestController @RequestMapping("/system/position") @RequiredArgsConstructor -public class SystemPositionController { +public class SystemPositionController extends BaseController { private final ISystemPositionService positionService; @@ -45,16 +49,16 @@ } @GetMapping("listPage") - public ReturnDTO listPage(Long searchId,String positionName){ + public ReturnDTO> listPage(Long searchId, String positionName){ Page page = PageFactory.defaultPage(); - positionService.listPage(page,searchId,positionName); - return ReturnUtil.success(); + page = positionService.listPage(page,searchId,positionName); + return ReturnUtil.success(super.packForBT(page)); } @GetMapping("list") - public ReturnDTO list(Long searchId,String positionName){ - positionService.list(searchId,positionName); - return ReturnUtil.success(); + public ReturnDTO> list(Long searchId,String positionName){ + List list = positionService.list(searchId,positionName); + return ReturnUtil.success(list); } diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index 6f0359b..88cce74 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -72,9 +72,9 @@ addresses: http://111.198.10.15:21605/xxl-job-admin executor: # 此执行器的名称 - appname: casic-metering-job + appname: casic-metering-xc-eqpt-job # 此执行器的ip、端口,每个节点对应自己的ip,端口用于任务执行的通信 - ip: 127.0.0.1 + ip: 192.168.20.33 port: 9999 # 此执行器的日志存放路径 logpath: logs/xxl-job/casic-metering-job @@ -122,7 +122,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_remind_relation + table-name: eqpt_equipment_modify_log prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index 7b3c7a2..29a820a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -18,11 +18,15 @@ */ // 系统前缀 String DICT_PREFIX = "eqpt"; + + String EQUIPMENT_TYPE = DICT_PREFIX + "DeviceCategory"; //受检设备使用状态 String EQUIPMENT_USAGE_STATUS = DICT_PREFIX + "DeviceUseStatus"; //受检设备重要等级 String EQUIPMENT_LEVEL = DICT_PREFIX + "DeviceLevel"; + String EQUIPMENT_QUALITY = DICT_PREFIX + "DeviceQuality"; + String EQUIPMENT_CATEGORY = DICT_PREFIX + "DeviceType"; // 设备申请类型 String EQUIPMENT_APPROVAL_TYPE = DICT_PREFIX + "EquipmentApprovalType"; @@ -30,6 +34,8 @@ String EQUIPMENT_STATUS_APPROVAL_TYPE = DICT_PREFIX + "EquipmentStatusApprovalType"; // 设备计量标识 String EQUIPMENT_METER_IDENTITY = DICT_PREFIX + "MeterIdentify"; + + String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; // 计量计划计划分类 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java index 694e48b..aefff4a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.equipment; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.model.equipment.EquipmentAttachment; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentTechnicalTarget; @@ -13,6 +14,8 @@ @Data public class EquipmentApprovalForm extends EquipmentInfoApproval { + @ApiModelProperty("规格型号说明书") + private String instructionsFile; @ApiModelProperty("技术指标列表") private List technicalTargetList; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java index f6448c6..c814444 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java @@ -12,6 +12,9 @@ @Setter public class EquipmentInfoForm extends EquipmentInfo{ + @ApiModelProperty("规格型号说明书") + private String instructionsFile; + @ApiModelProperty("组别信息") @TableField(exist = false) private List groupInfos; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java index bcec504..7803273 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java @@ -10,6 +10,9 @@ @Setter public class EquipmentModelQueryForm { + @ApiModelProperty("设备类型") + private String equipmentType; + @ApiModelProperty("设备名称") private String equipmentName; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java index 03fc0f1..fc2acc8 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java @@ -32,12 +32,21 @@ @ApiModelProperty("所在单位") private Long companyId; - @ApiModelProperty("使用部门") + + @ApiModelProperty("使用部门(单个)") + private Long deptId; + @ApiModelProperty("使用部门(列表)") private List deptIds; + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty("使用岗位") private String usePosition; + @ApiModelProperty("负责人ID") + private Long directorId; + @ApiModelProperty("负责人") private String directorName; @@ -50,6 +59,9 @@ @ApiModelProperty("安装位置") private String installLocation; + @ApiModelProperty("分组id") + private Long groupId; + @ApiModelProperty("参试任务id") private Long taskId; @@ -75,4 +87,5 @@ @ApiModelProperty("使用状态列表[状态维护选择设备时用]") private List usageStatusList; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java index 30b5af3..b6afd18 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java @@ -73,5 +73,52 @@ @TableField("remark") private String remark; + /** + * 所在单位id + */ + @ApiModelProperty("所在单位id") + @TableField(exist = false) + private Long companyId; + + @ApiModelProperty("所在单位名称") + @TableField(exist = false) + private String companyName; + + /** + * 使用部门id + */ + @ApiModelProperty("使用部门id") + @TableField(exist = false) + private Long deptId; + + @ApiModelProperty("使用部门名称") + @TableField(exist = false) + private String deptName; + + /** + * 分系统id + */ + @ApiModelProperty(value = "分系统id") + @TableField(exist = false) + private Long subSystemId; + + @ApiModelProperty("分系统名称") + @TableField(exist = false) + private String subSystemName; + + /** + * 使用岗位id + */ + @ApiModelProperty("岗位ID") + @TableField("position_id") + private Long positionId; + + /** + * 使用岗位名称 + */ + @ApiModelProperty("岗位名称") + @TableField(exist = false) + private String positionName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java index 36575f6..b4f78b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.equipment; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -7,6 +8,8 @@ import java.io.Serializable; import java.util.Date; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.Getter; @@ -55,12 +58,35 @@ @ApiModelProperty("型号规格") @TableField(exist = false) private String model; + + @ApiModelProperty("出厂编号") + @TableField(exist = false) + private String manufactureNo; + @ApiModelProperty("生产厂家") + @TableField(exist = false) + private String manufacturer; + + /** + * 出厂编号 + */ + @ApiModelProperty("负责人") @TableField(exist = false) private String directorName; @ApiModelProperty("计量标识") @TableField(exist = false) private String meterIdentify; + + @ApiModelProperty("计量标识名称") + @TableField(exist = false) + private String meterIdentifyName; + + @ApiModelProperty("使用状态(字典code)") + @TableField(exist = false) + private String usageStatus; + @ApiModelProperty("使用状态名称") + @TableField(exist = false) + private String usageStatusName; @ApiModelProperty("证书有效期") @TableField(exist = false) private Date certificateValid; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java index 21294cf..a8392ff 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java @@ -44,14 +44,14 @@ private static final long serialVersionUID = 1L; - @ApiModelProperty("主键") + @ApiModelProperty(value = "主键") @TableId("id") private Long id; /** * 设备编号 */ - @ApiModelProperty("设备编号") + @ApiModelProperty(value = "设备编号",notes = "统一编号") @TableField("equipment_no") @ExcelProperty(value = "统一编号",index = 0) private String equipmentNo; @@ -59,7 +59,7 @@ /** * 设备名称 */ - @ApiModelProperty("设备名称") + @ApiModelProperty(value = "设备名称",notes = "设备名称") @TableField("equipment_name") @ExcelProperty(value = "设备名称",index = 1) private String equipmentName; @@ -67,14 +67,18 @@ /** * 设备类型(1受检设备;2特种设备) */ - @ApiModelProperty("设备类型(1受检设备;2特种设备)") + @ApiModelProperty(value = "设备类型(1受检设备;2特种设备)",notes = "设备类型code") @TableField("equipment_type") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE) private String equipmentType; + @TableField(exist = false) + private String equipmentTypeName; + /** * 使用状态(字典code) */ - @ApiModelProperty("使用状态(字典code)") + @ApiModelProperty(value = "使用状态(字典code)",notes = "使用状态code") @TableField("usage_status") @DictCodeField(message = "使用状态", cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS) private String usageStatus; @@ -87,28 +91,32 @@ /** * 等级(字典code) */ - @ApiModelProperty("等级(字典code)") + @ApiModelProperty(value = "等级(字典code)",notes = "重要等级code") @TableField("level") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_LEVEL) private String level; + @TableField(exist = false) + private String levelName; + /** * 生产国家 */ - @ApiModelProperty("生产国家") + @ApiModelProperty(value = "生产国家",notes = "生产国家") @TableField("product_country") private String productCountry; /** * 生产厂家 */ - @ApiModelProperty("生产厂家") + @ApiModelProperty(value = "生产厂家",notes = "生产厂家") @TableField("manufacturer") private String manufacturer; /** * 出厂编号 */ - @ApiModelProperty("出厂编号") + @ApiModelProperty(value = "出厂编号",notes = "出厂编号") @TableField("manufacture_no") @ExcelProperty(value = "出厂编号",index = 3) private String manufactureNo; @@ -116,28 +124,28 @@ /** * 生产日期 */ - @ApiModelProperty("生产日期") + @ApiModelProperty(value = "生产日期",notes = "生产日期") @TableField("product_date") private Date productDate; /** * 单价(万元) */ - @ApiModelProperty("单价(万元)") + @ApiModelProperty(value = "单价(万元)",notes = "设备单价(万元)") @TableField("unit_price") private BigDecimal unitPrice; /** * 购进日期 */ - @ApiModelProperty("购进日期") + @ApiModelProperty(value = "购进日期",notes = "购进日期") @TableField("purchase_date") private Date purchaseDate; /** * 型号规格 */ - @ApiModelProperty("型号规格") + @ApiModelProperty(value = "型号规格",notes = "型号规格") @TableField("model") @ExcelProperty(value = "型号规格",index = 2) private String model; @@ -145,14 +153,18 @@ /** * 质量状况 */ - @ApiModelProperty("质量状况") + @ApiModelProperty(value = "质量状况",notes = "质量状况code") @TableField("quality_condition") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_QUALITY) private String qualityCondition; + @TableField(exist = false) + private String qualityConditionName; + /** * 所在单位id */ - @ApiModelProperty("所在单位id") + @ApiModelProperty(value = "所在单位id",notes = "所在单位id") @TableField("company_id") private Long companyId; @@ -163,7 +175,7 @@ /** * 使用部门id */ - @ApiModelProperty("使用部门id") + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") @TableField("dept_id") private Long deptId; @@ -174,14 +186,17 @@ /** * 设备分类(字典code) */ - @ApiModelProperty("设备分类(字典code)") + @ApiModelProperty(value = "设备分类(字典code)",notes = "设备分类code") @TableField("category") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CATEGORY) private String category; + @TableField(exist = false) + private String categoryName; /** * 检定周期(月) */ - @ApiModelProperty("检定周期(月)") + @ApiModelProperty(value = "检定周期(月)",notes = "检定周期(月)") @TableField("check_cycle") @ExcelProperty(value = "检定周期(月)",index = 6) @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, horizontalAlignment = HorizontalAlignmentEnum.LEFT) @@ -190,7 +205,7 @@ /** * 备注 */ - @ApiModelProperty("备注") + @ApiModelProperty(value = "备注",notes = "备注") @TableField("remark") @ExcelProperty(value = "备注",index = 9) private String remark; @@ -198,28 +213,28 @@ /** * 说明书(minio存储文件名)(多个用,拼接) */ - @ApiModelProperty("说明书(minio存储文件名)(多个用,拼接)") + @ApiModelProperty(value = "说明书(minio存储文件名)(多个用,拼接)") @TableField("instructions_file") private String instructionsFile; /** * 检定机构 */ - @ApiModelProperty("检定机构") + @ApiModelProperty(value = "检定机构",notes = "检定(校准)机构") @TableField("check_organization") private String checkOrganization; /** * 检定日期 */ - @ApiModelProperty("检定日期") + @ApiModelProperty(value = "检定日期",notes = "检定(校准)日期") @TableField("check_date") private Date checkDate; /** * 证书有效期 */ - @ApiModelProperty("证书有效期") + @ApiModelProperty(value = "证书有效期",notes = "证书有效期") @TableField("certificate_valid") @ExcelProperty(value = "证书有效期",index = 7, converter = DateExcelConverter.class) private Date certificateValid; @@ -227,7 +242,7 @@ /** * 计量标识 */ - @ApiModelProperty("计量标识") + @ApiModelProperty(value = "计量标识",notes = "计量标识code") @TableField("meter_identify") @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY) private String meterIdentify; @@ -237,17 +252,28 @@ @ExcelProperty(value = "计量标识",index = 5) private String meterIdentifyName; + @ApiModelProperty(value = "使用岗位id",notes = "使用岗位id") + @TableField("use_position_id") + private String usePositionId; + /** * 使用岗位 */ @ApiModelProperty("使用岗位") - @TableField("use_position") + @TableField(exist = false) @ExcelProperty(value = "使用岗位",index = 4) private String usePosition; /** * 负责人 */ + @ApiModelProperty(value = "负责人id",notes = "负责人id") + @TableField("director_id") + private String directorId; + + /** + * 负责人 + */ @ApiModelProperty("负责人") @TableField("director_name") private String directorName; @@ -255,17 +281,25 @@ /** * RFID标签绑定 */ - @ApiModelProperty("RFID标签绑定") + @ApiModelProperty(value = "RFID标签绑定",notes = "RFID标签绑定") @TableField("RFID") private String rfid; /** * 在用信息(字典code) */ - @ApiModelProperty("在用信息(字典code)") + @ApiModelProperty(value = "在用信息(字典code)",notes = "在用信息code") @TableField("use_sign") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE) private String useSign; + @TableField(exist = false) + private String useSignName; + + @ApiModelProperty(value = "安装位置id",notes = "安装位置id") + @TableField("install_location_id") + private Long installLocationId; + /** * 安装位置(选择) */ @@ -276,7 +310,7 @@ /** * 安装位置(自定义编写) */ - @ApiModelProperty("安装位置(自定义编写)") + @ApiModelProperty(value = "安装位置(自定义编写)",notes = "详细位置") @TableField("install_location_ext") private String installLocationExt; @@ -290,7 +324,7 @@ /** * 备注(扩展) */ - @ApiModelProperty("备注(扩展)") + @ApiModelProperty(value = "备注(扩展)",notes = "备注") @TableField("remark_ext") private String remarkExt; @@ -327,14 +361,25 @@ @TableLogic(value = "0",delval = "1") private Integer isDel; - @ApiModelProperty("规格型号id") + @ApiModelProperty(value = "规格型号id",notes = "规格型号id") @TableField("model_id") private Long modelId; - @ApiModelProperty("辅助字段") + @ApiModelProperty(value = "辅助字段",notes = "辅助字段") @TableField("help_instruction") private String helpInstruction; + @ApiModelProperty(value = "检定去向",notes = "检定去向") + @TableField("check_destination") + private String checkDestination; + + @ApiModelProperty(value = "限用说明",notes = "限用说明") + @TableField("limit_instruction") + private String limitInstruction; + + @ApiModelProperty("分组名称") + @TableField(exist = false) + private String groupNames; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java index 13eeef8..060aa33 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java @@ -101,8 +101,13 @@ */ @ApiModelProperty("使用状态(字典code)") @TableField("usage_status") + @DictCodeField(message = "使用状态", cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS) private String usageStatus; + @ApiModelProperty("使用状态名称") + @TableField(exist = false) + private String usageStatusName; + /** * 等级(字典code) */ @@ -253,6 +258,10 @@ @TableField(exist = false) private String meterIdentifyName; + @ApiModelProperty("使用岗位id") + @TableField("use_position_id") + private String usePositionId; + /** * 使用岗位 */ @@ -263,6 +272,12 @@ /** * 负责人 */ + @ApiModelProperty("负责人id") + @TableField("director_id") + private String directorId; + /** + * 负责人 + */ @ApiModelProperty("负责人") @TableField("director_name") private String directorName; @@ -281,6 +296,10 @@ @TableField("use_sign") private String useSign; + @ApiModelProperty("安装位置id") + @TableField("install_location_id") + private Long installLocationId; + /** * 安装位置(选择) */ @@ -347,6 +366,14 @@ @TableField("help_instruction") private String helpInstruction; + @ApiModelProperty("检定去向") + @TableField("check_destination") + private String checkDestination; + + @ApiModelProperty("限用说明") + @TableField("limit_instruction") + private String limitInstruction; + @ApiModelProperty("任务id") @TableField(exist = false) private String taskId; @@ -363,4 +390,7 @@ @TableField(exist = false) private List taskInfos; + @ApiModelProperty("分组名称") + @TableField(exist = false) + private String groupNames; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java index 471e8c8..d4b20e9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java @@ -48,10 +48,15 @@ /** * 型号规格编号 */ - @ApiModelProperty("型号规格编号") - @TableField("model_no") - @ExcelProperty("型号规格编号") - private String modelNo; + @ApiModelProperty("设备类型") + @TableField("equipment_type") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE) + private String equipmentType; + + @ApiModelProperty("设备类型名称") + @TableField(exist = false) + @ExcelProperty("设备类型") + private String equipmentTypeName; /** * 设备名称 @@ -113,6 +118,10 @@ @ExcelProperty("备注") private String remark; + @ApiModelProperty("计量站是否可检(1西昌可检;2海口可检,多个用,拼接)") + @TableField("inspectable") + private String inspectable; + /** * 创建人id */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java index d495e2e..a78c41a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java @@ -83,6 +83,7 @@ /** * 安装位置 */ + @ApiModelProperty("安装位置") @TableField("install_location") private String installLocation; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java index d5417d4..633af3f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import java.util.List; @@ -23,7 +24,7 @@ void deleteGroup(Long groupId); - Page listPage(Page page, String groupName); + Page listPage(Page page, EquipmentGroupQueryForm queryForm); EquipmentGroupForm detail(Long groupId); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java index 06d0cbd..222ebdd 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java @@ -3,6 +3,7 @@ import com.casic.missiles.dto.equipment.EquipmentApprovalLog; import com.casic.missiles.dto.equipment.EquipmentQueryForm; import com.casic.missiles.dto.equipment.EquipmentApprovalForm; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentModelInfo; import com.casic.missiles.service.ICommonApprovalService; @@ -19,6 +20,14 @@ */ public interface IEquipmentInfoApprovalService extends ICommonApprovalService { + boolean updateEquipmentInfo(EquipmentApprovalForm approvalForm); + + boolean checkRfidRepeat(String rfid, Long equipmentId); + + String checkLocation(Long installLocationId, String usageStatus, Long equipmentId); + + void saveTurnoverLog(EquipmentInfo newObj, EquipmentInfo oldObj, Long createUserId); + Long saveOrUpdateApproval(EquipmentApprovalForm approvalForm); EquipmentApprovalForm approvalInfoDetail(Long approvalId); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index acec159..dde436d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -29,6 +29,8 @@ */ public interface IEquipmentInfoService extends IService { + + Page listPage(Page page, EquipmentQueryForm queryForm); List list(EquipmentQueryForm queryForm); @@ -52,6 +54,9 @@ void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date certificateValid, String meterIdentify); + void updateLimitInstruction(Long equipmentId, String limitInstruction); + + void removeCertificateInfo(Long equipmentId, Long certificateId); Page remindListPage(Page page, EquipmentRemindQueryForm queryForm) @@ -67,4 +72,10 @@ (Page page, EquipmentCertificateQueryForm queryForm); void bindTask(EquipmentTaskBindForm bindForm); + + String getFieldName(String field); + String getFieldValue(String field, String fieldValue); + + Page orderSelectListPage(Page page, EquipmentRemindQueryForm queryForm); + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java index 19afa01..4e532a7 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java @@ -28,8 +28,10 @@ List listScope(EquipmentModelQueryForm queryForm); - List listEquipmentName(); + List listEquipmentName(String equipmentType); - List listModel(String equipmentName); + List listModel(String equipmentType, String equipmentName); + + String defaultCheckDestination(Long modelId,Long companyId); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java index 4a89b12..5608317 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java @@ -2,11 +2,16 @@ import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.constants.MeterDictCode; +import com.casic.missiles.core.application.service.AbstractDeptService; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.mapper.equipment.EquipmentGroupInfoMapper; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.model.equipment.EquipmentGroupRelation; @@ -31,6 +36,8 @@ public class EquipmentGroupInfoServiceImpl extends ServiceImpl implements IEquipmentGroupInfoService { private final IEquipmentGroupRelationService groupRelationService; + private final AbstractDeptService deptService; + private final AbstractDictService dictService; @Override @Transactional @@ -62,14 +69,25 @@ groupRelationService.deleteByGroupId(groupId); } - // todo datascope @Override - public Page listPage(Page page, String groupName) { + public Page listPage(Page page, EquipmentGroupQueryForm queryForm) { QueryWrapper queryWrapper = new QueryWrapper<>(); - if (StrUtil.isNotEmpty(groupName)) { - queryWrapper.like("binary group_name", groupName); - } - return this.page(page, queryWrapper); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"p.company_id",queryForm.getCompanyId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()),"p.dept_id",queryForm.getDeptId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getSubSystemId()),"p.sub_system_id",queryForm.getSubSystemId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getPositionId()),"g.position_id",queryForm.getPositionId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getGroupName()), "binary g.group_name", queryForm.getGroupName()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCreateUserId()),"g.create_user_id",queryForm.getCreateUserId()); + List list = this.baseMapper.listPage(page, queryWrapper); + list.forEach(this::wrapper); + page.setRecords(list); + return page; + } + + private void wrapper(EquipmentGroupInfo info) { + info.setCompanyName(deptService.getDeptName(info.getCompanyId())); + info.setDeptName(deptService.getDeptName(info.getDeptId())); + info.setSubSystemName(deptService.getDeptName(info.getSubSystemId())); } @Override @@ -80,6 +98,11 @@ groupForm.setGroupInfo(groupInfo); List relations = groupRelationService.listByGroup(groupId); + relations.forEach(i->{ + i.setMeterIdentifyName(dictService.getDictNameByCode(MeterDictCode.EQUIPMENT_METER_IDENTITY,i.getMeterIdentify())); + i.setUsageStatusName(dictService.getDictNameByCode(MeterDictCode.EQUIPMENT_USAGE_STATUS,i.getUsageStatus())); + + }); groupForm.setEquipmentList(relations); return groupForm; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java index 0a5a5fe..5456965 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java @@ -5,9 +5,12 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.equipment.EquipmentApprovalLog; @@ -16,6 +19,7 @@ import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.PrefixCodeEnum; +import com.casic.missiles.enums.equipment.EquipmentStatusTypeEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; @@ -81,6 +85,30 @@ @Autowired private IEquipmentTaskRelationService taskRelationService; + @Autowired + private IEquipmentModelInfoService modelInfoService; + + @Override + public boolean updateEquipmentInfo(EquipmentApprovalForm approvalForm) { + if(checkRfidRepeat(approvalForm.getRfid(),approvalForm.getEquipmentId())){ + throw new BusinessException(500,"RFID标签已使用"); + } + String checkLoc = checkLocation(approvalForm.getInstallLocationId(),approvalForm.getUsageStatus(),approvalForm.getEquipmentId()); + if(StrUtil.isNotEmpty(checkLoc)){ + throw new BusinessException(500,String.format("当前安装位置已存在一台在用设备,编号为%s",checkLoc)); + } + + attachmentService.saveByEquipment(approvalForm.getEquipmentId(), approvalForm.getAttachments()); + taskRelationService.saveByEquipment(approvalForm.getEquipmentId(),approvalForm.getTaskInfos()); + if (EQUIPMENT_TYPE_SPECIAL.equals(approvalForm.getEquipmentType())) { + specialCertificateService.saveCertificateList(approvalForm.getEquipmentId(), approvalForm.getCertificateList()); + } + EquipmentInfo info = new EquipmentInfo(); + BeanUtil.copyProperties(approvalForm, info); + info.setId(approvalForm.getEquipmentId()); + saveTurnoverLog(info, null, approvalForm.getCreateUserId()); + return equipmentInfoService.updateById(info); + } @Override @Transactional @@ -91,6 +119,12 @@ if(checkRfidRepeat(approvalForm.getRfid(),approvalForm.getEquipmentId())){ throw new BusinessException(500,"RFID标签已使用"); } + String checkLoc = this.checkLocation(approvalForm.getInstallLocationId(),approvalForm.getUsageStatus(),approvalForm.getEquipmentId()); + if(StrUtil.isNotEmpty(checkLoc)){ + throw new BusinessException(500,String.format("当前安装位置已存在一台在用设备,编号为%s",checkLoc)); + } + + if(ObjectUtil.isEmpty(approvalForm.getCreateUserId())){ AuthUser authUser = permissionContext.getAuthService().getLoginUser(); approvalForm.setCreateUserId(authUser.getId()); @@ -170,10 +204,19 @@ return updateApprovalStatus(submitRequest.getId(), ApprovalStatusEnum.IN_APPROVED); } - private boolean checkRfidRepeat(String rfid, Long equipmentId){ + @Override + public boolean checkRfidRepeat(String rfid, Long equipmentId){ return StrUtil.isNotEmpty(rfid) && this.baseMapper.checkRfid(rfid, equipmentId) > 0; } + @Override + public String checkLocation(Long installLocationId, String usageStatus, Long equipmentId){ + if(ObjectUtil.isNotEmpty(installLocationId) && EquipmentStatusTypeEnum.UNSEAL.equals(usageStatus)){ + return this.baseMapper.checkLocation(installLocationId,EquipmentStatusTypeEnum.UNSEAL,equipmentId); + } + return null; + } + private boolean haveUnfinishedApproval(EquipmentApprovalForm approvalForm){ if(ObjectUtil.isNotEmpty(approvalForm.getEquipmentId())){ QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -188,14 +231,16 @@ public void simpleUpdate(EquipmentApprovalForm approvalForm, EquipmentInfo info) { EquipmentInfo oldObj = SerializationUtils.clone(info); CasicBeanUtil.copySpecifyProperties(approvalForm, info, "checkOrganization", "checkDate", - "certificateValid", "meterIdentify", "usePosition", "directorName", "rfid", - "useSign", "installLocation", "installLocationExt", "testTask", "remarkExt"); + "certificateValid", "meterIdentify", "usePositionId","usePosition","directorId", "directorName", "rfid", + "useSign","installLocationId", "installLocation", "installLocationExt", "testTask", "remarkExt", + "checkDestination","limitInstruction"); saveTurnoverLog(info, oldObj, approvalForm.getCreateUserId()); equipmentInfoService.updateById(info); } - private void saveTurnoverLog(EquipmentInfo newObj, EquipmentInfo oldObj, Long createUserId) { + @Override + public void saveTurnoverLog(EquipmentInfo newObj, EquipmentInfo oldObj, Long createUserId) { if(ObjectUtil.isEmpty(oldObj)){ oldObj = equipmentInfoService.getById(newObj.getId()); } @@ -268,6 +313,8 @@ info.setGroupInfos(groupInfoService.selectByEquipment(info.getEquipmentId())); info.setCertificateList(equipmentInfoService.allCertificate(info.getEquipmentId(),info.getEquipmentType())); info.setTaskInfos(taskInfoService.listByEquipment(info.getEquipmentId())); + info.setInstructionsFile(modelInfoService.getById(info.getModelId()).getInstructionsFile()); + } return info; } @@ -278,7 +325,7 @@ super.warpper(approval); approval.setCompanyName(permissionContext.getDeptService().getDeptName(approval.getCompanyId())); approval.setDeptName(permissionContext.getDeptService().getDeptName(approval.getDeptId())); - //DictCodeUtils.convertDictCodeToName(approval); + DictCodeUtils.convertDictCodeToName(approval); } catch (Exception e) { throw new RuntimeException(e); @@ -287,6 +334,18 @@ } @Override + public List list(Wrapper queryWrapper) { + return this.baseMapper.selectList(queryWrapper); + } + + @Override + public > E page(E page, Wrapper queryWrapper) { + List list = this.baseMapper.selectListPage((Page) page, (QueryWrapper) queryWrapper); + page.setRecords(list); + return page; + } + + @Override public QueryWrapper commonQuery(EquipmentQueryForm queryForm) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); @@ -294,6 +353,7 @@ queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"use_position_id",queryForm.getUsePositionId()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUsageStatus()), "usage_status", queryForm.getUsageStatus()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "certificate_valid", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "certificate_valid", queryForm.getCertificateValidEnd()); @@ -301,12 +361,18 @@ queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getModel()),"model",queryForm.getModel()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"manufacture_no",queryForm.getManufactureNo()); queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"company_id",queryForm.getCompanyId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()),"director_id",queryForm.getDirectorId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"director_name",queryForm.getDirectorName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()),"use_sign",queryForm.getUseSign()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); + if(ObjectUtil.isNotEmpty(queryForm.getGroupId())){ + String existSql = String.format("(select id from eqpt_equipment_group_relation where group_id = %d and equipment_id = eqpt_equipment_info_approval_view.id)",queryForm.getGroupId()); + queryWrapper.exists(existSql); + } + if(ObjectUtil.isNotEmpty(queryForm.getTaskId())){ - String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info.id)",queryForm.getTaskId()); + String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info_approval_view.id)",queryForm.getTaskId()); queryWrapper.exists(existSql); } queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()),"check_organization",queryForm.getCheckOrganization()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java index bbade89..c587261 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java @@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.annotation.EquipmentLog; import com.casic.missiles.constants.MeterDictCode; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; @@ -27,10 +28,7 @@ import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.PrefixCodeEnum; -import com.casic.missiles.enums.equipment.EquipmentCertificateTypeEnum; -import com.casic.missiles.enums.equipment.EquipmentStatusTypeEnum; -import com.casic.missiles.enums.equipment.EquipmentTypeEnum; -import com.casic.missiles.enums.equipment.StatusApprovalTypeEnum; +import com.casic.missiles.enums.equipment.*; import com.casic.missiles.enums.plan.CheckCompletionEnum; import com.casic.missiles.enums.plan.SampleStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -46,13 +44,21 @@ import com.casic.missiles.service.status.IEquipmentStatusLogService; import com.casic.missiles.service.subcontract.ISubcontractCertificateService; import com.casic.missiles.service.system.IRemindConfigService; +import com.casic.missiles.service.system.ISystemDeptService; +import com.casic.missiles.service.system.ISystemLocationService; +import com.casic.missiles.service.system.ISystemPositionService; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import com.casic.missiles.utils.SpringContextUtil; +import io.swagger.annotations.ApiModelProperty; import liquibase.pro.packaged.S; import lombok.RequiredArgsConstructor; +import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; import org.springframework.web.multipart.MultipartFile; @@ -64,6 +70,7 @@ import java.util.stream.Collectors; import static com.casic.missiles.enums.equipment.EquipmentTypeEnum.EQUIPMENT_TYPE_NORMAL; +import static com.casic.missiles.enums.equipment.EquipmentTypeEnum.EQUIPMENT_TYPE_SPECIAL; /** *

@@ -91,9 +98,16 @@ private final IEquipmentModelInfoService modelInfoService; private final EquipmentInfoApprovalMapper infoApprovalMapper; + private final ISystemDeptService systemDeptService; + private final ISystemPositionService positionService; + private final ISystemLocationService locationService; + private ISubcontractCertificateService subcontractCertificateService; + @Value("${casic.role.operator: user}") + private String operatorRoleTip; + @Autowired @@ -101,6 +115,20 @@ this.subcontractCertificateService = subcontractCertificateService; } + @EquipmentLog(key = "#entity.id") + @Override + @Transactional(propagation = Propagation.REQUIRES_NEW) + public boolean saveOrUpdate(EquipmentInfo entity) { + return super.saveOrUpdate(entity); + } + + @EquipmentLog(key = "#entity.id") + @Override + @Transactional(propagation = Propagation.REQUIRES_NEW) + public boolean updateById(EquipmentInfo entity) { + return super.updateById(entity); + } + @Override public Page listPage(Page page, EquipmentQueryForm queryForm) { QueryWrapper queryWrapper = commonQuery(queryForm); @@ -167,10 +195,24 @@ if (CollUtil.isNotEmpty(queryForm.getIds())) { queryWrapper.in("id", queryForm.getIds()); } else { + // 如果当前用户所在组织机构 的级别是受检单位,查本单位下所有部门的;否则查当前用户所在部门的 + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + if(systemDeptService.isCompany(authUser.getDeptId())){ + List scopeDeptIds = permissionContext.getDeptService().getIdsByPid(authUser.getDeptId(),null); + if(ObjectUtil.isNotEmpty(queryForm.getDeptIds())){ + scopeDeptIds.retainAll(queryForm.getDeptIds()); + } + queryForm.setDeptIds(scopeDeptIds); + }else { + queryForm.setDeptId(authUser.getDeptId()); + } + + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()),"dept_id",queryForm.getDeptId()); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentNo()), "equipment_no", queryForm.getEquipmentNo()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"use_position_id",queryForm.getUsePositionId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUsageStatus()), "usage_status", queryForm.getUsageStatus()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "certificate_valid", queryForm.getCertificateValidStart()); @@ -179,12 +221,18 @@ queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getModel()),"model",queryForm.getModel()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"manufacture_no",queryForm.getManufactureNo()); queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"company_id",queryForm.getCompanyId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()),"director_id",queryForm.getDirectorId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"director_name",queryForm.getDirectorName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()),"use_sign",queryForm.getUseSign()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); + if(ObjectUtil.isNotEmpty(queryForm.getGroupId())){ + String existSql = String.format("(select id from eqpt_equipment_group_relation where group_id = %d and equipment_id = eqpt_equipment_info_view.id)",queryForm.getGroupId()); + queryWrapper.exists(existSql); + } + if(ObjectUtil.isNotEmpty(queryForm.getTaskId())){ - String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info.id)",queryForm.getTaskId()); + String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info_view.id)",queryForm.getTaskId()); queryWrapper.exists(existSql); } queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()),"check_organization",queryForm.getCheckOrganization()); @@ -213,6 +261,8 @@ infoForm.setCertificateList(allCertificate(equipmentId, equipmentInfo.getEquipmentType())); infoForm.setTaskInfos(taskInfoService.listByEquipment(equipmentId)); + infoForm.setInstructionsFile(modelInfoService.getById(equipmentInfo.getModelId()).getInstructionsFile()); + } return infoForm; } @@ -424,7 +474,6 @@ equipmentInfo.setCreateTime(new Date()); equipmentInfo.setUpdateTime(new Date()); equipmentInfo.setIsDel(0); - equipmentInfos.add(equipmentInfo); } @@ -438,10 +487,11 @@ @Override public void updateEquipmentStatus(Long equipmentId, String usageStatus) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("id", equipmentId); - updateWrapper.set("usage_status", usageStatus); - this.update(updateWrapper); + EquipmentInfo equipmentInfo = this.getById(equipmentId); + if(ObjectUtil.isNotEmpty(equipmentInfo)){ + equipmentInfo.setUsageStatus(usageStatus); + } + this.updateById(equipmentInfo); } @Override @@ -469,19 +519,29 @@ if (StrUtil.isNotEmpty(meterIdentify)) { equipmentInfo.setMeterIdentify(meterIdentify); } - this.updateById(equipmentInfo); + //当设备证书有效期更新且未到期时,设备状态自动变更为启封 if (!EquipmentStatusTypeEnum.UNSEAL.equals(equipmentInfo.getUsageStatus()) && !EquipmentStatusTypeEnum.SCRAP.equals(equipmentInfo.getUsageStatus()) && certificateValid.after(new Date())) { - this.updateEquipmentStatus(equipmentId, EquipmentStatusTypeEnum.UNSEAL); - statusLogService.saveLog(equipmentId, StatusApprovalTypeEnum.UNSEAL, "设备证书更新"); + String usageStatus = EquipmentStatusTypeEnum.UNSEAL; + equipmentInfo.setUsageStatus(usageStatus); + statusLogService.saveLog(equipmentId, usageStatus, "设备证书更新"); } - + this.updateById(equipmentInfo); } } } + @Override + public void updateLimitInstruction(Long equipmentId, String limitInstruction) { + EquipmentInfo equipmentInfo = this.getById(equipmentId); + if (ObjectUtil.isNotEmpty(equipmentInfo)) { + equipmentInfo.setLimitInstruction(limitInstruction); + this.updateById(equipmentInfo); + } + } + public void removeCertificateInfo(Long equipmentId, Long certificateId) { EquipmentInfo equipmentInfo = this.getById(equipmentId); if (ObjectUtil.isNotEmpty(equipmentInfo)) { @@ -506,9 +566,11 @@ @Override public Page remindListPage(Page page, EquipmentRemindQueryForm queryForm) { QueryWrapper queryWrapper = remindQuery(queryForm); - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - dataScope.setScopeName("dept_id"); - List list = this.baseMapper.selectRemindListPage(page, dataScope, queryWrapper); + queryWrapper.in("usage_status",Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, + EquipmentStatusTypeEnum.DISABLE, + EquipmentStatusTypeEnum.DELAY)); + List list = this.baseMapper.selectRemindListPage(page, null,queryWrapper, + SampleStatusEnum.getSampleStatusByCompletion(Arrays.asList(CheckCompletionEnum.UNCHECK,CheckCompletionEnum.IN_CHECK))); list.forEach(this::warpEquipmentRemindInfo); page.setRecords(list); return page; @@ -517,9 +579,11 @@ @Override public List remindList(EquipmentRemindQueryForm queryForm) { QueryWrapper queryWrapper = remindQuery(queryForm); - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - dataScope.setScopeName("dept_id"); - List list = this.baseMapper.selectRemindList(dataScope, queryWrapper); + queryWrapper.in("usage_status",Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, + EquipmentStatusTypeEnum.DISABLE, + EquipmentStatusTypeEnum.DELAY)); + List list = this.baseMapper.selectRemindList(null, queryWrapper, + SampleStatusEnum.getSampleStatusByCompletion(Arrays.asList(CheckCompletionEnum.UNCHECK,CheckCompletionEnum.IN_CHECK))); list.forEach(this::warpEquipmentRemindInfo); return list; } @@ -533,10 +597,27 @@ } private QueryWrapper remindQuery(EquipmentRemindQueryForm queryForm){ + // 操作手仅能看到自己负责的设备信息,其余角色查看本组织结构下所有 + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + if(authUser.getRoleTips().contains(operatorRoleTip)){ + queryForm.setDirectorId(authUser.getId()); + }else { + List scopeIds = permissionContext.getDeptService().getIdsByPid(authUser.getDeptId(),null); + scopeIds.add(authUser.getDeptId()); + if(CollUtil.isNotEmpty(queryForm.getDeptIds())){ + scopeIds.retainAll(queryForm.getDeptIds()); + } + queryForm.setDeptIds(scopeIds); + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); if (CollUtil.isNotEmpty(queryForm.getIds())) { queryWrapper.in("id", queryForm.getIds()); } else { + + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()),"dept_id",queryForm.getDeptId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"company_id",queryForm.getCompanyId()); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentNo()), "equipment_no", queryForm.getEquipmentNo()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); @@ -544,15 +625,28 @@ queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"manufacture_no",queryForm.getManufactureNo()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"use_position_id",queryForm.getUsePositionId()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUsageStatus()), "usage_status", queryForm.getUsageStatus()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()), "use_sign", queryForm.getUseSign()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()),"check_destination",queryForm.getCheckDestination()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "certificate_valid", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "certificate_valid", queryForm.getCertificateValidEnd()); + + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()),"check_destination",queryForm.getCheckDestination()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckStatus()),"check_status",queryForm.getCheckStatus()); + + queryWrapper.in(CollUtil.isNotEmpty(queryForm.getUsageStatusList()),"usage_status",queryForm.getUsageStatusList()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufacturer()),"manufacturer",queryForm.getManufacturer()); queryWrapper.like(ObjectUtil.isNotEmpty(queryForm.getTaskId()),"taskIds",queryForm.getTaskId()); if (StrUtil.isNotEmpty(queryForm.getTaskStartTime()) || StrUtil.isNotEmpty(queryForm.getTastEndTime())) { queryWrapper.and(i -> { - i.le(StrUtil.isNotEmpty(queryForm.getTaskStartTime()), "task_start_time", queryForm.getTaskStartTime()) - .or() - .ge(StrUtil.isNotEmpty(queryForm.getTastEndTime()), "task_end_time", queryForm.getTastEndTime()); + i.le(StrUtil.isNotEmpty(queryForm.getTaskStartTime()), "task_start_time", queryForm.getTastEndTime()) + .ge(StrUtil.isNotEmpty(queryForm.getTastEndTime()), "task_end_time", queryForm.getTaskStartTime()); + +// i.le(StrUtil.isNotEmpty(queryForm.getTaskStartTime()), "task_start_time", queryForm.getTaskStartTime()) +// .or() +// .ge(StrUtil.isNotEmpty(queryForm.getTastEndTime()), "task_end_time", queryForm.getTastEndTime()); }); } } @@ -562,6 +656,21 @@ } @Override + public Page orderSelectListPage(Page page, EquipmentRemindQueryForm queryForm) { + QueryWrapper queryWrapper = remindQuery(queryForm); + queryWrapper.in("usage_status",Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, + EquipmentStatusTypeEnum.DISABLE, + EquipmentStatusTypeEnum.DELAY, + EquipmentStatusTypeEnum.SEAL)); + queryWrapper.eq("check_status",0); //未送检设备 + List list = this.baseMapper.selectRemindList(null, queryWrapper, + SampleStatusEnum.getSampleStatusByCompletion(Arrays.asList(CheckCompletionEnum.UNCHECK,CheckCompletionEnum.IN_CHECK))); + list.forEach(this::warpEquipmentRemindInfo); + page.setRecords(list); + return page; + } + + @Override public List expireTrend(String type) { switch (type){ case "month": @@ -598,9 +707,21 @@ queryWrapper.le("certificate_valid", endTime); queryWrapper.eq("is_del",0); - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - dataScope.setScopeName("dept_id"); - return this.baseMapper.selectList(dataScope,queryWrapper); + queryWrapper.in("usage_status",Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, + EquipmentStatusTypeEnum.DISABLE, + EquipmentStatusTypeEnum.DELAY)); + + // 操作手仅能看到自己负责的设备信息,其余角色查看本组织结构下所有 + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + if(authUser.getRoleTips().contains(operatorRoleTip)){ + queryWrapper.eq("director_id",authUser.getId()); + }else { + List scopeIds = permissionContext.getDeptService().getIdsByPid(authUser.getDeptId(),null); + scopeIds.add(authUser.getDeptId()); + queryWrapper.in("dept_id",scopeIds); + } + + return this.baseMapper.selectList(null,queryWrapper); } private List expireTrendByMonth(){ @@ -611,7 +732,7 @@ startCal.set(Calendar.SECOND,0); Calendar endCal = Calendar.getInstance(); - endCal.add(Calendar.MONTH,1); + endCal.add(Calendar.MONTH,3); endCal.set(Calendar.HOUR_OF_DAY,23); endCal.set(Calendar.MINUTE,59); endCal.set(Calendar.SECOND,59); @@ -634,8 +755,19 @@ @Override public Page certificateListPage(Page page, EquipmentCertificateQueryForm queryForm) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - dataScope.setScopeName("e.dept_id"); + // 如果当前用户所在组织机构 的级别是受检单位,查本单位下所有部门的;否则查当前用户所在部门的 + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + if(systemDeptService.isCompany(authUser.getDeptId())){ + List scopeDeptIds = permissionContext.getDeptService().getIdsByPid(authUser.getDeptId(),null); + if(ObjectUtil.isNotEmpty(queryForm.getDeptIds())){ + scopeDeptIds.retainAll(queryForm.getDeptIds()); + } + queryForm.setDeptIds(scopeDeptIds); + }else { + queryForm.setDeptId(authUser.getDeptId()); + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCertificateNo()), "c.certificate_report_no", queryForm.getCertificateNo()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCertificateName()), "c.certificate_report_name", queryForm.getCertificateName()); @@ -644,10 +776,26 @@ queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()), "'西昌卫星发射中心计量测试站'", queryForm.getCheckOrganization()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "c.expiration_date", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "c.expiration_date", queryForm.getCertificateValidEnd()); + + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getModel()),"e.model",queryForm.getModel()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"e.manufacture_no",queryForm.getManufactureNo()); + queryWrapper.eq("e.is_del", 0); queryWrapper.eq("c.approval_status", ApprovalStatusEnum.PASSED); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()),"e.dept_id",queryForm.getDeptId()); + queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "e.dept_id", queryForm.getDeptIds()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"e.company_id",queryForm.getCompanyId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"e.use_position_id",queryForm.getUsePositionId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "e.use_position", queryForm.getUsePosition()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()),"e.director_id",queryForm.getDirectorId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"e.director_name",queryForm.getDirectorName()); - List list = this.baseMapper.bizCertificateListPage(page, dataScope, queryWrapper); + + List list = this.baseMapper.bizCertificateListPage(page, null, queryWrapper); + for (EquipmentCertificateDTO certificateDTO : list) { + certificateDTO.setDeptName(permissionContext.getDeptService().getDeptName(certificateDTO.getDeptId())); + certificateDTO.setCompanyName(permissionContext.getDeptService().getDeptName(certificateDTO.getCompanyId())); + } page.setRecords(list); return page; } @@ -668,4 +816,76 @@ } taskRelationService.saveBatch(relationList); } + + @Override + public String getFieldName(String fieldName) { + Field[] fields = EquipmentInfo.class.getDeclaredFields(); + for (Field field : fields) { + if (!field.isAccessible()) { + field.setAccessible(true); + } + if(fieldName.equals(field.getName())){ + if(field.isAnnotationPresent(ApiModelProperty.class)){ + ApiModelProperty apiModelProperty = field.getAnnotationsByType(ApiModelProperty.class)[0]; + String notes = apiModelProperty.notes(); + if(StrUtil.isNotEmpty(notes)){ + notes = notes.replace("id","").replace("code",""); + } + return notes; + } + } + } + return null; + } + + @Override + public String getFieldValue(String fieldName, String fieldValue) { + if(StrUtil.isBlank(fieldValue)){ + return fieldValue; + } + Field[] fields = EquipmentInfo.class.getDeclaredFields(); + for (Field field : fields) { + if (!field.isAccessible()) { + field.setAccessible(true); + } + if(fieldName.equals(field.getName())){ + if(field.isAnnotationPresent(ApiModelProperty.class)){ + ApiModelProperty apiModelProperty = field.getAnnotationsByType(ApiModelProperty.class)[0]; + String notes = apiModelProperty.notes(); + if(StrUtil.isNotEmpty(notes)){ + if(notes.contains("code")){ + DictCodeField dictCodeField = field.getAnnotationsByType(DictCodeField.class)[0]; + if (StringUtils.isEmpty(dictCodeField.cacheName())) { + throw new BusinessException(500, "缓存名不能为空"); + } + AbstractDictService dictService = SpringContextUtil.getBean(AbstractDictService.class); + fieldValue = dictService.getDictNameByCode(dictCodeField.cacheName(), fieldValue); + } + if(notes.contains("id")){ + switch (notes){ + case "所在单位id": + case "使用部门id": + fieldValue = permissionContext.getDeptService().getDeptName(fieldValue); + break; + case "使用岗位id": + fieldValue = positionService.getNameById(Long.valueOf(fieldValue)); + break; + case "负责人id": + fieldValue = permissionContext.getUserService().getById(fieldValue).getName(); + break; + case "安装位置id": + fieldValue = locationService.getById(fieldValue).getInstallLocation(); + break; + case "规格型号id": + fieldValue = modelInfoService.getById(fieldValue).getModel(); + break; + } + } + } + + } + } + } + return fieldValue; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModelInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModelInfoServiceImpl.java index 9c5ce09..6510618 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModelInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModelInfoServiceImpl.java @@ -53,11 +53,23 @@ private final IEquipmentInfoApprovalService equipmentInfoApprovalService; private final AbstractPermissionContext permissionContext; + private final String XC_INSPECTABLE = "1"; // 西昌可检 + private final String HK_INSPECTABLE = "2"; // 海口可检 + + private final String XC_LAB = "西昌"; // 西昌可检 + private final String HK_LAB = "海口"; // 海口可检 + + private final String CHECK_DESTINATION_METER = "1"; // 检定去向:计量室 + private final String CHECK_DESTINATION_DELIVERY = "2"; // 检定去向:外送 + @Override @Transactional public void add(EquipmentModelInfo modelInfo) { - Long maxNo = this.baseMapper.selectMaxNo(); - modelInfo.setModelNo(NumberGeneratorUtil.getContactNo(PrefixCodeEnum.EQUIPMENT_MODEL_PREFIX, maxNo)); + if(StrUtil.isNotEmpty(modelInfo.getInspectable())){ + if(StrUtil.isBlank(modelInfo.getCategory())){ + throw new BusinessException(501,"计量站可检,设备分类必填"); + } + } this.save(modelInfo); technicalTargetService.saveByModel(modelInfo.getId(),modelInfo.getTechnicalTargetList()); } @@ -65,6 +77,11 @@ @Override @Transactional public void update(EquipmentModelInfo modelInfo) { + if(StrUtil.isNotEmpty(modelInfo.getInspectable())){ + if(StrUtil.isBlank(modelInfo.getCategory())){ + throw new BusinessException(501,"计量站可检,设备分类必填"); + } + } this.updateById(modelInfo); technicalTargetService.saveByModel(modelInfo.getId(),modelInfo.getTechnicalTargetList()); equipmentInfoService.updateByModel(modelInfo); @@ -90,8 +107,6 @@ @Override public Page listScopePage(Page page, EquipmentModelQueryForm queryForm) { -// DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); -// dataScope.setScopeName("create_dept_id"); QueryWrapper queryWrapper = commonQuery(queryForm); List list = this.baseMapper.listScopePage(null,page,queryWrapper); List technicalTargetList = technicalTargetService.listByModelIds(list.stream().map(EquipmentModelInfo::getId).collect(Collectors.toList())); @@ -111,8 +126,6 @@ @Override public List listScope(EquipmentModelQueryForm queryForm) { -// DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); -// dataScope.setScopeName("create_dept_id"); QueryWrapper queryWrapper = commonQuery(queryForm); List list = this.baseMapper.listScope(null,queryWrapper); List technicalTargetList = technicalTargetService.listByModelIds(list.stream().map(EquipmentModelInfo::getId).collect(Collectors.toList())); @@ -136,35 +149,44 @@ queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getHelpInstruction()),"help_instruction",queryForm.getHelpInstruction()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCategory()),"category",queryForm.getCategory()); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getIds()),"id",queryForm.getIds()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()),"equipment_type",queryForm.getEquipmentType()); return queryWrapper; } @Override - public List listEquipmentName() { + public List listEquipmentName(String equipmentType) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.select("distinct equipment_name as equipment_name"); - -// DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); -// if (!ScopeEnums.ALL_TYPE.equals(dataScope.getScopeEnums())) { -// List dataScopeDeptIds = dataScope.getDeptIds(); -// queryWrapper.in("create_dept_id",dataScopeDeptIds); -// } + queryWrapper.eq(StrUtil.isNotEmpty(equipmentType),"equipment_type",equipmentType); + queryWrapper.orderByAsc("equipment_name"); List> maps = this.listMaps(queryWrapper); return maps.stream().map(i->i.get("equipment_name").toString()).collect(Collectors.toList()); } @Override - public List listModel(String equipmentName) { + public List listModel(String equipmentType, String equipmentName) { QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(StrUtil.isNotEmpty(equipmentType),"equipment_type",equipmentType); queryWrapper.eq("equipment_name",equipmentName); -// DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); -// if (!ScopeEnums.ALL_TYPE.equals(dataScope.getScopeEnums())) { -// List dataScopeDeptIds = dataScope.getDeptIds(); -// queryWrapper.in("create_dept_id",dataScopeDeptIds); -// } queryWrapper.select("distinct model as model"); + queryWrapper.orderByAsc("model"); List> maps = this.listMaps(queryWrapper); return maps.stream().map(i->i.get("model").toString()).collect(Collectors.toList()); } + @Override + public String defaultCheckDestination(Long modelId, Long companyId) { + String defaultLab = this.baseMapper.getLabLocation(companyId); + String inspectable = this.getById(modelId).getInspectable(); + if(StrUtil.isNotEmpty(defaultLab) && StrUtil.isNotEmpty(inspectable)){ + if(inspectable.contains(XC_INSPECTABLE) && defaultLab.contains(XC_LAB)){ + return CHECK_DESTINATION_METER; + }else if(inspectable.contains(HK_INSPECTABLE) && defaultLab.contains(HK_LAB)){ + return CHECK_DESTINATION_METER; + }else { + return CHECK_DESTINATION_DELIVERY; + } + } + return null; + } } 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml index a9033f9..c49776d 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml @@ -4,71 +4,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - id, approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + id + , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction + + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml index 62449ec..f4d9936 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml @@ -42,6 +42,12 @@ + + + + + + @@ -50,12 +56,20 @@ product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid as certificateValid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time, - is_del,model_id,help_instruction + is_del,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction select - from eqpt_equipment_info + from eqpt_equipment_info_view ${ew.sqlSegment} @@ -110,7 +124,7 @@ eqpt_remind_all as ( select e.id as equipment_id, - IFNULL(m.remind_time,0) as remind_time + IFNULL(m.remind_time,90) as remind_time from eqpt_equipment_info e left join eqpt_remind m on e.id = m.equipment_id ), @@ -118,20 +132,32 @@ select id,task_name,CONCAT(DATE_FORMAT(start_time,'%Y-%m-%d'),"~",DATE_FORMAT(end_time,'%Y-%m-%d')) as time_ext,start_time,end_time from eqpt_equipment_task_info ), + latest_sample_relation AS ( + SELECT * + FROM biz_business_order_sample_relation a + WHERE id = ( + SELECT max( id ) + FROM biz_business_order_sample_relation b + WHERE a.sample_id = b.sample_id ) + ), eqpt_ext as ( select e.* , - DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, - GROUP_CONCAT(t.task_name) as taskNames, - GROUP_CONCAT(t.time_ext) as taskTimes, - GROUP_CONCAT(t.id) as taskIds, - min(t.start_time) as task_start_time, - max(t.end_time) as task_end_time - from eqpt_equipment_info e + DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, + GROUP_CONCAT(t.task_name) as taskNames, + GROUP_CONCAT(t.time_ext) as taskTimes, + GROUP_CONCAT(t.id) as taskIds, + min(t.start_time) as task_start_time, + max(t.end_time) as task_end_time, + (case when lsr.sample_status in + #{item} + then 1 else 0 end) as check_status + from eqpt_equipment_info_view e left join eqpt_remind_all a on e.id = a.equipment_id left join eqpt_equipment_task_relation r on e.id = r.equipment_id left join task_ext t on r.task_id = t.id + left join latest_sample_relation lsr on lsr.sample_id = e.id where e.certificate_valid is not null - group by e.id,e.certificate_valid,a.remind_time + group by e.id,e.certificate_valid,a.remind_time,lsr.sample_status ) select * from eqpt_ext @@ -163,6 +189,9 @@ e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, + e.model as model, + e.company_id as companyId, + e.manufacture_no as manufactureNo, c.certificate_report_no as certificateNo, c.certificate_report_name as certificateName, '西昌卫星发射中心计量测试站' as checkOrganization, @@ -173,7 +202,7 @@ c.update_time as updateTime, '1' as certificateType, c.remark as remark - from biz_business_certificate_report c ,eqpt_equipment_info e + from biz_business_certificate_report c ,eqpt_equipment_info_view e where c.sample_id = e.id diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml index 097c405..2ddebe6 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,6 +13,7 @@ + @@ -21,7 +22,7 @@ - id, model_no, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, create_user_id, create_dept_id, create_time, update_time + id, equipment_type, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, inspectable, create_user_id, create_dept_id, create_time, update_time + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java index c69cc82..d1a2bd1 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.service.equipment.IEquipmentGroupInfoService; import io.swagger.annotations.Api; @@ -60,14 +61,11 @@ return ReturnUtil.success(); } - @ApiImplicitParams({ - @ApiImplicitParam(name = "groupName",value = "分组名称",dataType = "String",paramType = "query") - }) @ApiOperation("分组分页列表") - @GetMapping("listPage") - public ReturnDTO> listPage(String groupName){ + @PostMapping("listPage") + public ReturnDTO> listPage(@RequestBody EquipmentGroupQueryForm queryForm){ Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,groupName))); + return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,queryForm))); } @ApiImplicitParams({ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 56b6814..3130c5c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.business.LabelBindDTO; import com.casic.missiles.dto.equipment.*; import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; import com.casic.missiles.service.equipment.IEquipmentInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -36,6 +37,14 @@ public class EquipmentInfoController extends ExportController { private final IEquipmentInfoService equipmentInfoService; + private final IEquipmentInfoApprovalService approvalService; + + @ApiOperation("直接编辑设备") + @PostMapping("/info/update") + public ReturnDTO update(@RequestBody EquipmentApprovalForm approvalForm){ + approvalService.updateEquipmentInfo(approvalForm); + return ReturnUtil.success(); + } @ApiOperation("设备分页列表") @PostMapping("/info/listPage") @@ -152,5 +161,14 @@ return ReturnUtil.success(); } + @ApiOperation("到期提醒分页列表") + @PostMapping("/orderSelect/listPage") + @ResponseBody + public ReturnDTO> EquipmentOrderSelectQueryForm(@RequestBody EquipmentRemindQueryForm queryForm) { + Page page = PageFactory.defaultPage(); + page = equipmentInfoService.orderSelectListPage(page, queryForm); + return ReturnUtil.success(super.packForBT(page)); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index 044d245..ccbd668 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -103,14 +103,20 @@ @ApiOperation("设备名称列表") @GetMapping("listEquipmentName") - public ReturnDTO> listEquipmentName(){ - return ReturnUtil.success(modelInfoService.listEquipmentName()); + public ReturnDTO> listEquipmentName(String equipmentType){ + return ReturnUtil.success(modelInfoService.listEquipmentName(equipmentType)); } @ApiOperation("规格型号列表") @GetMapping("listModel") - public ReturnDTO> listModel(String equipmentName){ - return ReturnUtil.success(modelInfoService.listModel(equipmentName)); + public ReturnDTO> listModel(String equipmentType, String equipmentName){ + return ReturnUtil.success(modelInfoService.listModel(equipmentType,equipmentName)); + } + + @ApiOperation("获取默认检定去向") + @GetMapping("defaultCheckDestination") + public ReturnDTO defaultCheckDestination(Long modelId, Long companyId){ + return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java index 7e79008..1fc1f9c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.CertificateUpdate; +import com.casic.missiles.dto.equipment.LimitInstructionUpdate; import com.casic.missiles.model.plan.OrderReceive; import com.casic.missiles.model.plan.SampleStatueUpdate; import com.casic.missiles.service.equipment.IEquipmentInfoService; @@ -55,4 +56,11 @@ return ReturnUtil.success(); } + @ApiOperation("更新限用说明") + @PostMapping("/limitInstructionUpdate") + public ReturnDTO updateLimitInstruction(@RequestBody LimitInstructionUpdate updateForm) { + equipmentInfoService.updateLimitInstruction(updateForm.getEquipmentId(), updateForm.getLimitInstruction()); + return ReturnUtil.success(); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java index e314003..73d02ec 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java @@ -1,7 +1,18 @@ package com.casic.missiles.controller.system; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.system.SystemLocation; +import com.casic.missiles.service.system.ISystemLocationService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** *

@@ -11,8 +22,45 @@ * @author zhangyingjie * @since 2023-11-15 */ +@Api(tags = "安装位置管理") @RestController -@RequestMapping("/system-location") -public class SystemLocationController { +@RequestMapping("/system/location") +@RequiredArgsConstructor +public class SystemLocationController extends BaseController { + + private final ISystemLocationService locationService; + + @PostMapping("add") + public ReturnDTO add(@RequestBody SystemLocation systemLocation){ + locationService.add(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("update") + public ReturnDTO update(@RequestBody SystemLocation systemLocation){ + locationService.update(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("delete") + public ReturnDTO delete(@RequestBody SystemLocation systemLocation){ + locationService.delete(systemLocation); + return ReturnUtil.success(); + } + + @GetMapping("listPage") + public ReturnDTO> listPage(Long searchId,Long positionId, String installLocation){ + Page page = PageFactory.defaultPage(); + page = locationService.listPage(page,searchId,positionId, installLocation); + return ReturnUtil.success(super.packForBT(page)); + } + + @GetMapping("list") + public ReturnDTO> list(Long searchId,Long positionId, String installLocation){ + List list = locationService.list(searchId,positionId, installLocation); + return ReturnUtil.success(list); + } + + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java index f9e2f91..d64634a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java @@ -1,6 +1,8 @@ package com.casic.missiles.controller.system; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; @@ -10,6 +12,8 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** *

* 受检系统-系统管理-岗位管理 前端控制器 @@ -22,7 +26,7 @@ @RestController @RequestMapping("/system/position") @RequiredArgsConstructor -public class SystemPositionController { +public class SystemPositionController extends BaseController { private final ISystemPositionService positionService; @@ -45,16 +49,16 @@ } @GetMapping("listPage") - public ReturnDTO listPage(Long searchId,String positionName){ + public ReturnDTO> listPage(Long searchId, String positionName){ Page page = PageFactory.defaultPage(); - positionService.listPage(page,searchId,positionName); - return ReturnUtil.success(); + page = positionService.listPage(page,searchId,positionName); + return ReturnUtil.success(super.packForBT(page)); } @GetMapping("list") - public ReturnDTO list(Long searchId,String positionName){ - positionService.list(searchId,positionName); - return ReturnUtil.success(); + public ReturnDTO> list(Long searchId,String positionName){ + List list = positionService.list(searchId,positionName); + return ReturnUtil.success(list); } diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index 6f0359b..88cce74 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -72,9 +72,9 @@ addresses: http://111.198.10.15:21605/xxl-job-admin executor: # 此执行器的名称 - appname: casic-metering-job + appname: casic-metering-xc-eqpt-job # 此执行器的ip、端口,每个节点对应自己的ip,端口用于任务执行的通信 - ip: 127.0.0.1 + ip: 192.168.20.33 port: 9999 # 此执行器的日志存放路径 logpath: logs/xxl-job/casic-metering-job @@ -122,7 +122,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_remind_relation + table-name: eqpt_equipment_modify_log prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index 7b3c7a2..29a820a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -18,11 +18,15 @@ */ // 系统前缀 String DICT_PREFIX = "eqpt"; + + String EQUIPMENT_TYPE = DICT_PREFIX + "DeviceCategory"; //受检设备使用状态 String EQUIPMENT_USAGE_STATUS = DICT_PREFIX + "DeviceUseStatus"; //受检设备重要等级 String EQUIPMENT_LEVEL = DICT_PREFIX + "DeviceLevel"; + String EQUIPMENT_QUALITY = DICT_PREFIX + "DeviceQuality"; + String EQUIPMENT_CATEGORY = DICT_PREFIX + "DeviceType"; // 设备申请类型 String EQUIPMENT_APPROVAL_TYPE = DICT_PREFIX + "EquipmentApprovalType"; @@ -30,6 +34,8 @@ String EQUIPMENT_STATUS_APPROVAL_TYPE = DICT_PREFIX + "EquipmentStatusApprovalType"; // 设备计量标识 String EQUIPMENT_METER_IDENTITY = DICT_PREFIX + "MeterIdentify"; + + String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; // 计量计划计划分类 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java index 694e48b..aefff4a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.equipment; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.model.equipment.EquipmentAttachment; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentTechnicalTarget; @@ -13,6 +14,8 @@ @Data public class EquipmentApprovalForm extends EquipmentInfoApproval { + @ApiModelProperty("规格型号说明书") + private String instructionsFile; @ApiModelProperty("技术指标列表") private List technicalTargetList; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java index f6448c6..c814444 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java @@ -12,6 +12,9 @@ @Setter public class EquipmentInfoForm extends EquipmentInfo{ + @ApiModelProperty("规格型号说明书") + private String instructionsFile; + @ApiModelProperty("组别信息") @TableField(exist = false) private List groupInfos; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java index bcec504..7803273 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java @@ -10,6 +10,9 @@ @Setter public class EquipmentModelQueryForm { + @ApiModelProperty("设备类型") + private String equipmentType; + @ApiModelProperty("设备名称") private String equipmentName; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java index 03fc0f1..fc2acc8 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java @@ -32,12 +32,21 @@ @ApiModelProperty("所在单位") private Long companyId; - @ApiModelProperty("使用部门") + + @ApiModelProperty("使用部门(单个)") + private Long deptId; + @ApiModelProperty("使用部门(列表)") private List deptIds; + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty("使用岗位") private String usePosition; + @ApiModelProperty("负责人ID") + private Long directorId; + @ApiModelProperty("负责人") private String directorName; @@ -50,6 +59,9 @@ @ApiModelProperty("安装位置") private String installLocation; + @ApiModelProperty("分组id") + private Long groupId; + @ApiModelProperty("参试任务id") private Long taskId; @@ -75,4 +87,5 @@ @ApiModelProperty("使用状态列表[状态维护选择设备时用]") private List usageStatusList; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java index 30b5af3..b6afd18 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java @@ -73,5 +73,52 @@ @TableField("remark") private String remark; + /** + * 所在单位id + */ + @ApiModelProperty("所在单位id") + @TableField(exist = false) + private Long companyId; + + @ApiModelProperty("所在单位名称") + @TableField(exist = false) + private String companyName; + + /** + * 使用部门id + */ + @ApiModelProperty("使用部门id") + @TableField(exist = false) + private Long deptId; + + @ApiModelProperty("使用部门名称") + @TableField(exist = false) + private String deptName; + + /** + * 分系统id + */ + @ApiModelProperty(value = "分系统id") + @TableField(exist = false) + private Long subSystemId; + + @ApiModelProperty("分系统名称") + @TableField(exist = false) + private String subSystemName; + + /** + * 使用岗位id + */ + @ApiModelProperty("岗位ID") + @TableField("position_id") + private Long positionId; + + /** + * 使用岗位名称 + */ + @ApiModelProperty("岗位名称") + @TableField(exist = false) + private String positionName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java index 36575f6..b4f78b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.equipment; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -7,6 +8,8 @@ import java.io.Serializable; import java.util.Date; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.Getter; @@ -55,12 +58,35 @@ @ApiModelProperty("型号规格") @TableField(exist = false) private String model; + + @ApiModelProperty("出厂编号") + @TableField(exist = false) + private String manufactureNo; + @ApiModelProperty("生产厂家") + @TableField(exist = false) + private String manufacturer; + + /** + * 出厂编号 + */ + @ApiModelProperty("负责人") @TableField(exist = false) private String directorName; @ApiModelProperty("计量标识") @TableField(exist = false) private String meterIdentify; + + @ApiModelProperty("计量标识名称") + @TableField(exist = false) + private String meterIdentifyName; + + @ApiModelProperty("使用状态(字典code)") + @TableField(exist = false) + private String usageStatus; + @ApiModelProperty("使用状态名称") + @TableField(exist = false) + private String usageStatusName; @ApiModelProperty("证书有效期") @TableField(exist = false) private Date certificateValid; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java index 21294cf..a8392ff 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java @@ -44,14 +44,14 @@ private static final long serialVersionUID = 1L; - @ApiModelProperty("主键") + @ApiModelProperty(value = "主键") @TableId("id") private Long id; /** * 设备编号 */ - @ApiModelProperty("设备编号") + @ApiModelProperty(value = "设备编号",notes = "统一编号") @TableField("equipment_no") @ExcelProperty(value = "统一编号",index = 0) private String equipmentNo; @@ -59,7 +59,7 @@ /** * 设备名称 */ - @ApiModelProperty("设备名称") + @ApiModelProperty(value = "设备名称",notes = "设备名称") @TableField("equipment_name") @ExcelProperty(value = "设备名称",index = 1) private String equipmentName; @@ -67,14 +67,18 @@ /** * 设备类型(1受检设备;2特种设备) */ - @ApiModelProperty("设备类型(1受检设备;2特种设备)") + @ApiModelProperty(value = "设备类型(1受检设备;2特种设备)",notes = "设备类型code") @TableField("equipment_type") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE) private String equipmentType; + @TableField(exist = false) + private String equipmentTypeName; + /** * 使用状态(字典code) */ - @ApiModelProperty("使用状态(字典code)") + @ApiModelProperty(value = "使用状态(字典code)",notes = "使用状态code") @TableField("usage_status") @DictCodeField(message = "使用状态", cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS) private String usageStatus; @@ -87,28 +91,32 @@ /** * 等级(字典code) */ - @ApiModelProperty("等级(字典code)") + @ApiModelProperty(value = "等级(字典code)",notes = "重要等级code") @TableField("level") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_LEVEL) private String level; + @TableField(exist = false) + private String levelName; + /** * 生产国家 */ - @ApiModelProperty("生产国家") + @ApiModelProperty(value = "生产国家",notes = "生产国家") @TableField("product_country") private String productCountry; /** * 生产厂家 */ - @ApiModelProperty("生产厂家") + @ApiModelProperty(value = "生产厂家",notes = "生产厂家") @TableField("manufacturer") private String manufacturer; /** * 出厂编号 */ - @ApiModelProperty("出厂编号") + @ApiModelProperty(value = "出厂编号",notes = "出厂编号") @TableField("manufacture_no") @ExcelProperty(value = "出厂编号",index = 3) private String manufactureNo; @@ -116,28 +124,28 @@ /** * 生产日期 */ - @ApiModelProperty("生产日期") + @ApiModelProperty(value = "生产日期",notes = "生产日期") @TableField("product_date") private Date productDate; /** * 单价(万元) */ - @ApiModelProperty("单价(万元)") + @ApiModelProperty(value = "单价(万元)",notes = "设备单价(万元)") @TableField("unit_price") private BigDecimal unitPrice; /** * 购进日期 */ - @ApiModelProperty("购进日期") + @ApiModelProperty(value = "购进日期",notes = "购进日期") @TableField("purchase_date") private Date purchaseDate; /** * 型号规格 */ - @ApiModelProperty("型号规格") + @ApiModelProperty(value = "型号规格",notes = "型号规格") @TableField("model") @ExcelProperty(value = "型号规格",index = 2) private String model; @@ -145,14 +153,18 @@ /** * 质量状况 */ - @ApiModelProperty("质量状况") + @ApiModelProperty(value = "质量状况",notes = "质量状况code") @TableField("quality_condition") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_QUALITY) private String qualityCondition; + @TableField(exist = false) + private String qualityConditionName; + /** * 所在单位id */ - @ApiModelProperty("所在单位id") + @ApiModelProperty(value = "所在单位id",notes = "所在单位id") @TableField("company_id") private Long companyId; @@ -163,7 +175,7 @@ /** * 使用部门id */ - @ApiModelProperty("使用部门id") + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") @TableField("dept_id") private Long deptId; @@ -174,14 +186,17 @@ /** * 设备分类(字典code) */ - @ApiModelProperty("设备分类(字典code)") + @ApiModelProperty(value = "设备分类(字典code)",notes = "设备分类code") @TableField("category") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CATEGORY) private String category; + @TableField(exist = false) + private String categoryName; /** * 检定周期(月) */ - @ApiModelProperty("检定周期(月)") + @ApiModelProperty(value = "检定周期(月)",notes = "检定周期(月)") @TableField("check_cycle") @ExcelProperty(value = "检定周期(月)",index = 6) @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, horizontalAlignment = HorizontalAlignmentEnum.LEFT) @@ -190,7 +205,7 @@ /** * 备注 */ - @ApiModelProperty("备注") + @ApiModelProperty(value = "备注",notes = "备注") @TableField("remark") @ExcelProperty(value = "备注",index = 9) private String remark; @@ -198,28 +213,28 @@ /** * 说明书(minio存储文件名)(多个用,拼接) */ - @ApiModelProperty("说明书(minio存储文件名)(多个用,拼接)") + @ApiModelProperty(value = "说明书(minio存储文件名)(多个用,拼接)") @TableField("instructions_file") private String instructionsFile; /** * 检定机构 */ - @ApiModelProperty("检定机构") + @ApiModelProperty(value = "检定机构",notes = "检定(校准)机构") @TableField("check_organization") private String checkOrganization; /** * 检定日期 */ - @ApiModelProperty("检定日期") + @ApiModelProperty(value = "检定日期",notes = "检定(校准)日期") @TableField("check_date") private Date checkDate; /** * 证书有效期 */ - @ApiModelProperty("证书有效期") + @ApiModelProperty(value = "证书有效期",notes = "证书有效期") @TableField("certificate_valid") @ExcelProperty(value = "证书有效期",index = 7, converter = DateExcelConverter.class) private Date certificateValid; @@ -227,7 +242,7 @@ /** * 计量标识 */ - @ApiModelProperty("计量标识") + @ApiModelProperty(value = "计量标识",notes = "计量标识code") @TableField("meter_identify") @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY) private String meterIdentify; @@ -237,17 +252,28 @@ @ExcelProperty(value = "计量标识",index = 5) private String meterIdentifyName; + @ApiModelProperty(value = "使用岗位id",notes = "使用岗位id") + @TableField("use_position_id") + private String usePositionId; + /** * 使用岗位 */ @ApiModelProperty("使用岗位") - @TableField("use_position") + @TableField(exist = false) @ExcelProperty(value = "使用岗位",index = 4) private String usePosition; /** * 负责人 */ + @ApiModelProperty(value = "负责人id",notes = "负责人id") + @TableField("director_id") + private String directorId; + + /** + * 负责人 + */ @ApiModelProperty("负责人") @TableField("director_name") private String directorName; @@ -255,17 +281,25 @@ /** * RFID标签绑定 */ - @ApiModelProperty("RFID标签绑定") + @ApiModelProperty(value = "RFID标签绑定",notes = "RFID标签绑定") @TableField("RFID") private String rfid; /** * 在用信息(字典code) */ - @ApiModelProperty("在用信息(字典code)") + @ApiModelProperty(value = "在用信息(字典code)",notes = "在用信息code") @TableField("use_sign") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE) private String useSign; + @TableField(exist = false) + private String useSignName; + + @ApiModelProperty(value = "安装位置id",notes = "安装位置id") + @TableField("install_location_id") + private Long installLocationId; + /** * 安装位置(选择) */ @@ -276,7 +310,7 @@ /** * 安装位置(自定义编写) */ - @ApiModelProperty("安装位置(自定义编写)") + @ApiModelProperty(value = "安装位置(自定义编写)",notes = "详细位置") @TableField("install_location_ext") private String installLocationExt; @@ -290,7 +324,7 @@ /** * 备注(扩展) */ - @ApiModelProperty("备注(扩展)") + @ApiModelProperty(value = "备注(扩展)",notes = "备注") @TableField("remark_ext") private String remarkExt; @@ -327,14 +361,25 @@ @TableLogic(value = "0",delval = "1") private Integer isDel; - @ApiModelProperty("规格型号id") + @ApiModelProperty(value = "规格型号id",notes = "规格型号id") @TableField("model_id") private Long modelId; - @ApiModelProperty("辅助字段") + @ApiModelProperty(value = "辅助字段",notes = "辅助字段") @TableField("help_instruction") private String helpInstruction; + @ApiModelProperty(value = "检定去向",notes = "检定去向") + @TableField("check_destination") + private String checkDestination; + + @ApiModelProperty(value = "限用说明",notes = "限用说明") + @TableField("limit_instruction") + private String limitInstruction; + + @ApiModelProperty("分组名称") + @TableField(exist = false) + private String groupNames; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java index 13eeef8..060aa33 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java @@ -101,8 +101,13 @@ */ @ApiModelProperty("使用状态(字典code)") @TableField("usage_status") + @DictCodeField(message = "使用状态", cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS) private String usageStatus; + @ApiModelProperty("使用状态名称") + @TableField(exist = false) + private String usageStatusName; + /** * 等级(字典code) */ @@ -253,6 +258,10 @@ @TableField(exist = false) private String meterIdentifyName; + @ApiModelProperty("使用岗位id") + @TableField("use_position_id") + private String usePositionId; + /** * 使用岗位 */ @@ -263,6 +272,12 @@ /** * 负责人 */ + @ApiModelProperty("负责人id") + @TableField("director_id") + private String directorId; + /** + * 负责人 + */ @ApiModelProperty("负责人") @TableField("director_name") private String directorName; @@ -281,6 +296,10 @@ @TableField("use_sign") private String useSign; + @ApiModelProperty("安装位置id") + @TableField("install_location_id") + private Long installLocationId; + /** * 安装位置(选择) */ @@ -347,6 +366,14 @@ @TableField("help_instruction") private String helpInstruction; + @ApiModelProperty("检定去向") + @TableField("check_destination") + private String checkDestination; + + @ApiModelProperty("限用说明") + @TableField("limit_instruction") + private String limitInstruction; + @ApiModelProperty("任务id") @TableField(exist = false) private String taskId; @@ -363,4 +390,7 @@ @TableField(exist = false) private List taskInfos; + @ApiModelProperty("分组名称") + @TableField(exist = false) + private String groupNames; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java index 471e8c8..d4b20e9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java @@ -48,10 +48,15 @@ /** * 型号规格编号 */ - @ApiModelProperty("型号规格编号") - @TableField("model_no") - @ExcelProperty("型号规格编号") - private String modelNo; + @ApiModelProperty("设备类型") + @TableField("equipment_type") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE) + private String equipmentType; + + @ApiModelProperty("设备类型名称") + @TableField(exist = false) + @ExcelProperty("设备类型") + private String equipmentTypeName; /** * 设备名称 @@ -113,6 +118,10 @@ @ExcelProperty("备注") private String remark; + @ApiModelProperty("计量站是否可检(1西昌可检;2海口可检,多个用,拼接)") + @TableField("inspectable") + private String inspectable; + /** * 创建人id */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java index d495e2e..a78c41a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java @@ -83,6 +83,7 @@ /** * 安装位置 */ + @ApiModelProperty("安装位置") @TableField("install_location") private String installLocation; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java index d5417d4..633af3f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import java.util.List; @@ -23,7 +24,7 @@ void deleteGroup(Long groupId); - Page listPage(Page page, String groupName); + Page listPage(Page page, EquipmentGroupQueryForm queryForm); EquipmentGroupForm detail(Long groupId); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java index 06d0cbd..222ebdd 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java @@ -3,6 +3,7 @@ import com.casic.missiles.dto.equipment.EquipmentApprovalLog; import com.casic.missiles.dto.equipment.EquipmentQueryForm; import com.casic.missiles.dto.equipment.EquipmentApprovalForm; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentModelInfo; import com.casic.missiles.service.ICommonApprovalService; @@ -19,6 +20,14 @@ */ public interface IEquipmentInfoApprovalService extends ICommonApprovalService { + boolean updateEquipmentInfo(EquipmentApprovalForm approvalForm); + + boolean checkRfidRepeat(String rfid, Long equipmentId); + + String checkLocation(Long installLocationId, String usageStatus, Long equipmentId); + + void saveTurnoverLog(EquipmentInfo newObj, EquipmentInfo oldObj, Long createUserId); + Long saveOrUpdateApproval(EquipmentApprovalForm approvalForm); EquipmentApprovalForm approvalInfoDetail(Long approvalId); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index acec159..dde436d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -29,6 +29,8 @@ */ public interface IEquipmentInfoService extends IService { + + Page listPage(Page page, EquipmentQueryForm queryForm); List list(EquipmentQueryForm queryForm); @@ -52,6 +54,9 @@ void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date certificateValid, String meterIdentify); + void updateLimitInstruction(Long equipmentId, String limitInstruction); + + void removeCertificateInfo(Long equipmentId, Long certificateId); Page remindListPage(Page page, EquipmentRemindQueryForm queryForm) @@ -67,4 +72,10 @@ (Page page, EquipmentCertificateQueryForm queryForm); void bindTask(EquipmentTaskBindForm bindForm); + + String getFieldName(String field); + String getFieldValue(String field, String fieldValue); + + Page orderSelectListPage(Page page, EquipmentRemindQueryForm queryForm); + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java index 19afa01..4e532a7 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java @@ -28,8 +28,10 @@ List listScope(EquipmentModelQueryForm queryForm); - List listEquipmentName(); + List listEquipmentName(String equipmentType); - List listModel(String equipmentName); + List listModel(String equipmentType, String equipmentName); + + String defaultCheckDestination(Long modelId,Long companyId); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java index 4a89b12..5608317 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java @@ -2,11 +2,16 @@ import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.constants.MeterDictCode; +import com.casic.missiles.core.application.service.AbstractDeptService; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.mapper.equipment.EquipmentGroupInfoMapper; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.model.equipment.EquipmentGroupRelation; @@ -31,6 +36,8 @@ public class EquipmentGroupInfoServiceImpl extends ServiceImpl implements IEquipmentGroupInfoService { private final IEquipmentGroupRelationService groupRelationService; + private final AbstractDeptService deptService; + private final AbstractDictService dictService; @Override @Transactional @@ -62,14 +69,25 @@ groupRelationService.deleteByGroupId(groupId); } - // todo datascope @Override - public Page listPage(Page page, String groupName) { + public Page listPage(Page page, EquipmentGroupQueryForm queryForm) { QueryWrapper queryWrapper = new QueryWrapper<>(); - if (StrUtil.isNotEmpty(groupName)) { - queryWrapper.like("binary group_name", groupName); - } - return this.page(page, queryWrapper); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"p.company_id",queryForm.getCompanyId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()),"p.dept_id",queryForm.getDeptId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getSubSystemId()),"p.sub_system_id",queryForm.getSubSystemId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getPositionId()),"g.position_id",queryForm.getPositionId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getGroupName()), "binary g.group_name", queryForm.getGroupName()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCreateUserId()),"g.create_user_id",queryForm.getCreateUserId()); + List list = this.baseMapper.listPage(page, queryWrapper); + list.forEach(this::wrapper); + page.setRecords(list); + return page; + } + + private void wrapper(EquipmentGroupInfo info) { + info.setCompanyName(deptService.getDeptName(info.getCompanyId())); + info.setDeptName(deptService.getDeptName(info.getDeptId())); + info.setSubSystemName(deptService.getDeptName(info.getSubSystemId())); } @Override @@ -80,6 +98,11 @@ groupForm.setGroupInfo(groupInfo); List relations = groupRelationService.listByGroup(groupId); + relations.forEach(i->{ + i.setMeterIdentifyName(dictService.getDictNameByCode(MeterDictCode.EQUIPMENT_METER_IDENTITY,i.getMeterIdentify())); + i.setUsageStatusName(dictService.getDictNameByCode(MeterDictCode.EQUIPMENT_USAGE_STATUS,i.getUsageStatus())); + + }); groupForm.setEquipmentList(relations); return groupForm; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java index 0a5a5fe..5456965 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java @@ -5,9 +5,12 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.equipment.EquipmentApprovalLog; @@ -16,6 +19,7 @@ import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.PrefixCodeEnum; +import com.casic.missiles.enums.equipment.EquipmentStatusTypeEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; @@ -81,6 +85,30 @@ @Autowired private IEquipmentTaskRelationService taskRelationService; + @Autowired + private IEquipmentModelInfoService modelInfoService; + + @Override + public boolean updateEquipmentInfo(EquipmentApprovalForm approvalForm) { + if(checkRfidRepeat(approvalForm.getRfid(),approvalForm.getEquipmentId())){ + throw new BusinessException(500,"RFID标签已使用"); + } + String checkLoc = checkLocation(approvalForm.getInstallLocationId(),approvalForm.getUsageStatus(),approvalForm.getEquipmentId()); + if(StrUtil.isNotEmpty(checkLoc)){ + throw new BusinessException(500,String.format("当前安装位置已存在一台在用设备,编号为%s",checkLoc)); + } + + attachmentService.saveByEquipment(approvalForm.getEquipmentId(), approvalForm.getAttachments()); + taskRelationService.saveByEquipment(approvalForm.getEquipmentId(),approvalForm.getTaskInfos()); + if (EQUIPMENT_TYPE_SPECIAL.equals(approvalForm.getEquipmentType())) { + specialCertificateService.saveCertificateList(approvalForm.getEquipmentId(), approvalForm.getCertificateList()); + } + EquipmentInfo info = new EquipmentInfo(); + BeanUtil.copyProperties(approvalForm, info); + info.setId(approvalForm.getEquipmentId()); + saveTurnoverLog(info, null, approvalForm.getCreateUserId()); + return equipmentInfoService.updateById(info); + } @Override @Transactional @@ -91,6 +119,12 @@ if(checkRfidRepeat(approvalForm.getRfid(),approvalForm.getEquipmentId())){ throw new BusinessException(500,"RFID标签已使用"); } + String checkLoc = this.checkLocation(approvalForm.getInstallLocationId(),approvalForm.getUsageStatus(),approvalForm.getEquipmentId()); + if(StrUtil.isNotEmpty(checkLoc)){ + throw new BusinessException(500,String.format("当前安装位置已存在一台在用设备,编号为%s",checkLoc)); + } + + if(ObjectUtil.isEmpty(approvalForm.getCreateUserId())){ AuthUser authUser = permissionContext.getAuthService().getLoginUser(); approvalForm.setCreateUserId(authUser.getId()); @@ -170,10 +204,19 @@ return updateApprovalStatus(submitRequest.getId(), ApprovalStatusEnum.IN_APPROVED); } - private boolean checkRfidRepeat(String rfid, Long equipmentId){ + @Override + public boolean checkRfidRepeat(String rfid, Long equipmentId){ return StrUtil.isNotEmpty(rfid) && this.baseMapper.checkRfid(rfid, equipmentId) > 0; } + @Override + public String checkLocation(Long installLocationId, String usageStatus, Long equipmentId){ + if(ObjectUtil.isNotEmpty(installLocationId) && EquipmentStatusTypeEnum.UNSEAL.equals(usageStatus)){ + return this.baseMapper.checkLocation(installLocationId,EquipmentStatusTypeEnum.UNSEAL,equipmentId); + } + return null; + } + private boolean haveUnfinishedApproval(EquipmentApprovalForm approvalForm){ if(ObjectUtil.isNotEmpty(approvalForm.getEquipmentId())){ QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -188,14 +231,16 @@ public void simpleUpdate(EquipmentApprovalForm approvalForm, EquipmentInfo info) { EquipmentInfo oldObj = SerializationUtils.clone(info); CasicBeanUtil.copySpecifyProperties(approvalForm, info, "checkOrganization", "checkDate", - "certificateValid", "meterIdentify", "usePosition", "directorName", "rfid", - "useSign", "installLocation", "installLocationExt", "testTask", "remarkExt"); + "certificateValid", "meterIdentify", "usePositionId","usePosition","directorId", "directorName", "rfid", + "useSign","installLocationId", "installLocation", "installLocationExt", "testTask", "remarkExt", + "checkDestination","limitInstruction"); saveTurnoverLog(info, oldObj, approvalForm.getCreateUserId()); equipmentInfoService.updateById(info); } - private void saveTurnoverLog(EquipmentInfo newObj, EquipmentInfo oldObj, Long createUserId) { + @Override + public void saveTurnoverLog(EquipmentInfo newObj, EquipmentInfo oldObj, Long createUserId) { if(ObjectUtil.isEmpty(oldObj)){ oldObj = equipmentInfoService.getById(newObj.getId()); } @@ -268,6 +313,8 @@ info.setGroupInfos(groupInfoService.selectByEquipment(info.getEquipmentId())); info.setCertificateList(equipmentInfoService.allCertificate(info.getEquipmentId(),info.getEquipmentType())); info.setTaskInfos(taskInfoService.listByEquipment(info.getEquipmentId())); + info.setInstructionsFile(modelInfoService.getById(info.getModelId()).getInstructionsFile()); + } return info; } @@ -278,7 +325,7 @@ super.warpper(approval); approval.setCompanyName(permissionContext.getDeptService().getDeptName(approval.getCompanyId())); approval.setDeptName(permissionContext.getDeptService().getDeptName(approval.getDeptId())); - //DictCodeUtils.convertDictCodeToName(approval); + DictCodeUtils.convertDictCodeToName(approval); } catch (Exception e) { throw new RuntimeException(e); @@ -287,6 +334,18 @@ } @Override + public List list(Wrapper queryWrapper) { + return this.baseMapper.selectList(queryWrapper); + } + + @Override + public > E page(E page, Wrapper queryWrapper) { + List list = this.baseMapper.selectListPage((Page) page, (QueryWrapper) queryWrapper); + page.setRecords(list); + return page; + } + + @Override public QueryWrapper commonQuery(EquipmentQueryForm queryForm) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); @@ -294,6 +353,7 @@ queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"use_position_id",queryForm.getUsePositionId()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUsageStatus()), "usage_status", queryForm.getUsageStatus()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "certificate_valid", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "certificate_valid", queryForm.getCertificateValidEnd()); @@ -301,12 +361,18 @@ queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getModel()),"model",queryForm.getModel()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"manufacture_no",queryForm.getManufactureNo()); queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"company_id",queryForm.getCompanyId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()),"director_id",queryForm.getDirectorId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"director_name",queryForm.getDirectorName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()),"use_sign",queryForm.getUseSign()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); + if(ObjectUtil.isNotEmpty(queryForm.getGroupId())){ + String existSql = String.format("(select id from eqpt_equipment_group_relation where group_id = %d and equipment_id = eqpt_equipment_info_approval_view.id)",queryForm.getGroupId()); + queryWrapper.exists(existSql); + } + if(ObjectUtil.isNotEmpty(queryForm.getTaskId())){ - String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info.id)",queryForm.getTaskId()); + String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info_approval_view.id)",queryForm.getTaskId()); queryWrapper.exists(existSql); } queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()),"check_organization",queryForm.getCheckOrganization()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java index bbade89..c587261 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java @@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.annotation.EquipmentLog; import com.casic.missiles.constants.MeterDictCode; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; @@ -27,10 +28,7 @@ import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.PrefixCodeEnum; -import com.casic.missiles.enums.equipment.EquipmentCertificateTypeEnum; -import com.casic.missiles.enums.equipment.EquipmentStatusTypeEnum; -import com.casic.missiles.enums.equipment.EquipmentTypeEnum; -import com.casic.missiles.enums.equipment.StatusApprovalTypeEnum; +import com.casic.missiles.enums.equipment.*; import com.casic.missiles.enums.plan.CheckCompletionEnum; import com.casic.missiles.enums.plan.SampleStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -46,13 +44,21 @@ import com.casic.missiles.service.status.IEquipmentStatusLogService; import com.casic.missiles.service.subcontract.ISubcontractCertificateService; import com.casic.missiles.service.system.IRemindConfigService; +import com.casic.missiles.service.system.ISystemDeptService; +import com.casic.missiles.service.system.ISystemLocationService; +import com.casic.missiles.service.system.ISystemPositionService; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import com.casic.missiles.utils.SpringContextUtil; +import io.swagger.annotations.ApiModelProperty; import liquibase.pro.packaged.S; import lombok.RequiredArgsConstructor; +import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; import org.springframework.web.multipart.MultipartFile; @@ -64,6 +70,7 @@ import java.util.stream.Collectors; import static com.casic.missiles.enums.equipment.EquipmentTypeEnum.EQUIPMENT_TYPE_NORMAL; +import static com.casic.missiles.enums.equipment.EquipmentTypeEnum.EQUIPMENT_TYPE_SPECIAL; /** *

@@ -91,9 +98,16 @@ private final IEquipmentModelInfoService modelInfoService; private final EquipmentInfoApprovalMapper infoApprovalMapper; + private final ISystemDeptService systemDeptService; + private final ISystemPositionService positionService; + private final ISystemLocationService locationService; + private ISubcontractCertificateService subcontractCertificateService; + @Value("${casic.role.operator: user}") + private String operatorRoleTip; + @Autowired @@ -101,6 +115,20 @@ this.subcontractCertificateService = subcontractCertificateService; } + @EquipmentLog(key = "#entity.id") + @Override + @Transactional(propagation = Propagation.REQUIRES_NEW) + public boolean saveOrUpdate(EquipmentInfo entity) { + return super.saveOrUpdate(entity); + } + + @EquipmentLog(key = "#entity.id") + @Override + @Transactional(propagation = Propagation.REQUIRES_NEW) + public boolean updateById(EquipmentInfo entity) { + return super.updateById(entity); + } + @Override public Page listPage(Page page, EquipmentQueryForm queryForm) { QueryWrapper queryWrapper = commonQuery(queryForm); @@ -167,10 +195,24 @@ if (CollUtil.isNotEmpty(queryForm.getIds())) { queryWrapper.in("id", queryForm.getIds()); } else { + // 如果当前用户所在组织机构 的级别是受检单位,查本单位下所有部门的;否则查当前用户所在部门的 + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + if(systemDeptService.isCompany(authUser.getDeptId())){ + List scopeDeptIds = permissionContext.getDeptService().getIdsByPid(authUser.getDeptId(),null); + if(ObjectUtil.isNotEmpty(queryForm.getDeptIds())){ + scopeDeptIds.retainAll(queryForm.getDeptIds()); + } + queryForm.setDeptIds(scopeDeptIds); + }else { + queryForm.setDeptId(authUser.getDeptId()); + } + + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()),"dept_id",queryForm.getDeptId()); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentNo()), "equipment_no", queryForm.getEquipmentNo()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"use_position_id",queryForm.getUsePositionId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUsageStatus()), "usage_status", queryForm.getUsageStatus()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "certificate_valid", queryForm.getCertificateValidStart()); @@ -179,12 +221,18 @@ queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getModel()),"model",queryForm.getModel()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"manufacture_no",queryForm.getManufactureNo()); queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"company_id",queryForm.getCompanyId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()),"director_id",queryForm.getDirectorId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"director_name",queryForm.getDirectorName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()),"use_sign",queryForm.getUseSign()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); + if(ObjectUtil.isNotEmpty(queryForm.getGroupId())){ + String existSql = String.format("(select id from eqpt_equipment_group_relation where group_id = %d and equipment_id = eqpt_equipment_info_view.id)",queryForm.getGroupId()); + queryWrapper.exists(existSql); + } + if(ObjectUtil.isNotEmpty(queryForm.getTaskId())){ - String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info.id)",queryForm.getTaskId()); + String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info_view.id)",queryForm.getTaskId()); queryWrapper.exists(existSql); } queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()),"check_organization",queryForm.getCheckOrganization()); @@ -213,6 +261,8 @@ infoForm.setCertificateList(allCertificate(equipmentId, equipmentInfo.getEquipmentType())); infoForm.setTaskInfos(taskInfoService.listByEquipment(equipmentId)); + infoForm.setInstructionsFile(modelInfoService.getById(equipmentInfo.getModelId()).getInstructionsFile()); + } return infoForm; } @@ -424,7 +474,6 @@ equipmentInfo.setCreateTime(new Date()); equipmentInfo.setUpdateTime(new Date()); equipmentInfo.setIsDel(0); - equipmentInfos.add(equipmentInfo); } @@ -438,10 +487,11 @@ @Override public void updateEquipmentStatus(Long equipmentId, String usageStatus) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("id", equipmentId); - updateWrapper.set("usage_status", usageStatus); - this.update(updateWrapper); + EquipmentInfo equipmentInfo = this.getById(equipmentId); + if(ObjectUtil.isNotEmpty(equipmentInfo)){ + equipmentInfo.setUsageStatus(usageStatus); + } + this.updateById(equipmentInfo); } @Override @@ -469,19 +519,29 @@ if (StrUtil.isNotEmpty(meterIdentify)) { equipmentInfo.setMeterIdentify(meterIdentify); } - this.updateById(equipmentInfo); + //当设备证书有效期更新且未到期时,设备状态自动变更为启封 if (!EquipmentStatusTypeEnum.UNSEAL.equals(equipmentInfo.getUsageStatus()) && !EquipmentStatusTypeEnum.SCRAP.equals(equipmentInfo.getUsageStatus()) && certificateValid.after(new Date())) { - this.updateEquipmentStatus(equipmentId, EquipmentStatusTypeEnum.UNSEAL); - statusLogService.saveLog(equipmentId, StatusApprovalTypeEnum.UNSEAL, "设备证书更新"); + String usageStatus = EquipmentStatusTypeEnum.UNSEAL; + equipmentInfo.setUsageStatus(usageStatus); + statusLogService.saveLog(equipmentId, usageStatus, "设备证书更新"); } - + this.updateById(equipmentInfo); } } } + @Override + public void updateLimitInstruction(Long equipmentId, String limitInstruction) { + EquipmentInfo equipmentInfo = this.getById(equipmentId); + if (ObjectUtil.isNotEmpty(equipmentInfo)) { + equipmentInfo.setLimitInstruction(limitInstruction); + this.updateById(equipmentInfo); + } + } + public void removeCertificateInfo(Long equipmentId, Long certificateId) { EquipmentInfo equipmentInfo = this.getById(equipmentId); if (ObjectUtil.isNotEmpty(equipmentInfo)) { @@ -506,9 +566,11 @@ @Override public Page remindListPage(Page page, EquipmentRemindQueryForm queryForm) { QueryWrapper queryWrapper = remindQuery(queryForm); - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - dataScope.setScopeName("dept_id"); - List list = this.baseMapper.selectRemindListPage(page, dataScope, queryWrapper); + queryWrapper.in("usage_status",Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, + EquipmentStatusTypeEnum.DISABLE, + EquipmentStatusTypeEnum.DELAY)); + List list = this.baseMapper.selectRemindListPage(page, null,queryWrapper, + SampleStatusEnum.getSampleStatusByCompletion(Arrays.asList(CheckCompletionEnum.UNCHECK,CheckCompletionEnum.IN_CHECK))); list.forEach(this::warpEquipmentRemindInfo); page.setRecords(list); return page; @@ -517,9 +579,11 @@ @Override public List remindList(EquipmentRemindQueryForm queryForm) { QueryWrapper queryWrapper = remindQuery(queryForm); - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - dataScope.setScopeName("dept_id"); - List list = this.baseMapper.selectRemindList(dataScope, queryWrapper); + queryWrapper.in("usage_status",Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, + EquipmentStatusTypeEnum.DISABLE, + EquipmentStatusTypeEnum.DELAY)); + List list = this.baseMapper.selectRemindList(null, queryWrapper, + SampleStatusEnum.getSampleStatusByCompletion(Arrays.asList(CheckCompletionEnum.UNCHECK,CheckCompletionEnum.IN_CHECK))); list.forEach(this::warpEquipmentRemindInfo); return list; } @@ -533,10 +597,27 @@ } private QueryWrapper remindQuery(EquipmentRemindQueryForm queryForm){ + // 操作手仅能看到自己负责的设备信息,其余角色查看本组织结构下所有 + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + if(authUser.getRoleTips().contains(operatorRoleTip)){ + queryForm.setDirectorId(authUser.getId()); + }else { + List scopeIds = permissionContext.getDeptService().getIdsByPid(authUser.getDeptId(),null); + scopeIds.add(authUser.getDeptId()); + if(CollUtil.isNotEmpty(queryForm.getDeptIds())){ + scopeIds.retainAll(queryForm.getDeptIds()); + } + queryForm.setDeptIds(scopeIds); + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); if (CollUtil.isNotEmpty(queryForm.getIds())) { queryWrapper.in("id", queryForm.getIds()); } else { + + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()),"dept_id",queryForm.getDeptId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"company_id",queryForm.getCompanyId()); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentNo()), "equipment_no", queryForm.getEquipmentNo()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); @@ -544,15 +625,28 @@ queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"manufacture_no",queryForm.getManufactureNo()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"use_position_id",queryForm.getUsePositionId()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUsageStatus()), "usage_status", queryForm.getUsageStatus()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()), "use_sign", queryForm.getUseSign()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()),"check_destination",queryForm.getCheckDestination()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "certificate_valid", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "certificate_valid", queryForm.getCertificateValidEnd()); + + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()),"check_destination",queryForm.getCheckDestination()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckStatus()),"check_status",queryForm.getCheckStatus()); + + queryWrapper.in(CollUtil.isNotEmpty(queryForm.getUsageStatusList()),"usage_status",queryForm.getUsageStatusList()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufacturer()),"manufacturer",queryForm.getManufacturer()); queryWrapper.like(ObjectUtil.isNotEmpty(queryForm.getTaskId()),"taskIds",queryForm.getTaskId()); if (StrUtil.isNotEmpty(queryForm.getTaskStartTime()) || StrUtil.isNotEmpty(queryForm.getTastEndTime())) { queryWrapper.and(i -> { - i.le(StrUtil.isNotEmpty(queryForm.getTaskStartTime()), "task_start_time", queryForm.getTaskStartTime()) - .or() - .ge(StrUtil.isNotEmpty(queryForm.getTastEndTime()), "task_end_time", queryForm.getTastEndTime()); + i.le(StrUtil.isNotEmpty(queryForm.getTaskStartTime()), "task_start_time", queryForm.getTastEndTime()) + .ge(StrUtil.isNotEmpty(queryForm.getTastEndTime()), "task_end_time", queryForm.getTaskStartTime()); + +// i.le(StrUtil.isNotEmpty(queryForm.getTaskStartTime()), "task_start_time", queryForm.getTaskStartTime()) +// .or() +// .ge(StrUtil.isNotEmpty(queryForm.getTastEndTime()), "task_end_time", queryForm.getTastEndTime()); }); } } @@ -562,6 +656,21 @@ } @Override + public Page orderSelectListPage(Page page, EquipmentRemindQueryForm queryForm) { + QueryWrapper queryWrapper = remindQuery(queryForm); + queryWrapper.in("usage_status",Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, + EquipmentStatusTypeEnum.DISABLE, + EquipmentStatusTypeEnum.DELAY, + EquipmentStatusTypeEnum.SEAL)); + queryWrapper.eq("check_status",0); //未送检设备 + List list = this.baseMapper.selectRemindList(null, queryWrapper, + SampleStatusEnum.getSampleStatusByCompletion(Arrays.asList(CheckCompletionEnum.UNCHECK,CheckCompletionEnum.IN_CHECK))); + list.forEach(this::warpEquipmentRemindInfo); + page.setRecords(list); + return page; + } + + @Override public List expireTrend(String type) { switch (type){ case "month": @@ -598,9 +707,21 @@ queryWrapper.le("certificate_valid", endTime); queryWrapper.eq("is_del",0); - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - dataScope.setScopeName("dept_id"); - return this.baseMapper.selectList(dataScope,queryWrapper); + queryWrapper.in("usage_status",Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, + EquipmentStatusTypeEnum.DISABLE, + EquipmentStatusTypeEnum.DELAY)); + + // 操作手仅能看到自己负责的设备信息,其余角色查看本组织结构下所有 + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + if(authUser.getRoleTips().contains(operatorRoleTip)){ + queryWrapper.eq("director_id",authUser.getId()); + }else { + List scopeIds = permissionContext.getDeptService().getIdsByPid(authUser.getDeptId(),null); + scopeIds.add(authUser.getDeptId()); + queryWrapper.in("dept_id",scopeIds); + } + + return this.baseMapper.selectList(null,queryWrapper); } private List expireTrendByMonth(){ @@ -611,7 +732,7 @@ startCal.set(Calendar.SECOND,0); Calendar endCal = Calendar.getInstance(); - endCal.add(Calendar.MONTH,1); + endCal.add(Calendar.MONTH,3); endCal.set(Calendar.HOUR_OF_DAY,23); endCal.set(Calendar.MINUTE,59); endCal.set(Calendar.SECOND,59); @@ -634,8 +755,19 @@ @Override public Page certificateListPage(Page page, EquipmentCertificateQueryForm queryForm) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - dataScope.setScopeName("e.dept_id"); + // 如果当前用户所在组织机构 的级别是受检单位,查本单位下所有部门的;否则查当前用户所在部门的 + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + if(systemDeptService.isCompany(authUser.getDeptId())){ + List scopeDeptIds = permissionContext.getDeptService().getIdsByPid(authUser.getDeptId(),null); + if(ObjectUtil.isNotEmpty(queryForm.getDeptIds())){ + scopeDeptIds.retainAll(queryForm.getDeptIds()); + } + queryForm.setDeptIds(scopeDeptIds); + }else { + queryForm.setDeptId(authUser.getDeptId()); + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCertificateNo()), "c.certificate_report_no", queryForm.getCertificateNo()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCertificateName()), "c.certificate_report_name", queryForm.getCertificateName()); @@ -644,10 +776,26 @@ queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()), "'西昌卫星发射中心计量测试站'", queryForm.getCheckOrganization()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "c.expiration_date", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "c.expiration_date", queryForm.getCertificateValidEnd()); + + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getModel()),"e.model",queryForm.getModel()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"e.manufacture_no",queryForm.getManufactureNo()); + queryWrapper.eq("e.is_del", 0); queryWrapper.eq("c.approval_status", ApprovalStatusEnum.PASSED); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()),"e.dept_id",queryForm.getDeptId()); + queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "e.dept_id", queryForm.getDeptIds()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"e.company_id",queryForm.getCompanyId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"e.use_position_id",queryForm.getUsePositionId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "e.use_position", queryForm.getUsePosition()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()),"e.director_id",queryForm.getDirectorId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"e.director_name",queryForm.getDirectorName()); - List list = this.baseMapper.bizCertificateListPage(page, dataScope, queryWrapper); + + List list = this.baseMapper.bizCertificateListPage(page, null, queryWrapper); + for (EquipmentCertificateDTO certificateDTO : list) { + certificateDTO.setDeptName(permissionContext.getDeptService().getDeptName(certificateDTO.getDeptId())); + certificateDTO.setCompanyName(permissionContext.getDeptService().getDeptName(certificateDTO.getCompanyId())); + } page.setRecords(list); return page; } @@ -668,4 +816,76 @@ } taskRelationService.saveBatch(relationList); } + + @Override + public String getFieldName(String fieldName) { + Field[] fields = EquipmentInfo.class.getDeclaredFields(); + for (Field field : fields) { + if (!field.isAccessible()) { + field.setAccessible(true); + } + if(fieldName.equals(field.getName())){ + if(field.isAnnotationPresent(ApiModelProperty.class)){ + ApiModelProperty apiModelProperty = field.getAnnotationsByType(ApiModelProperty.class)[0]; + String notes = apiModelProperty.notes(); + if(StrUtil.isNotEmpty(notes)){ + notes = notes.replace("id","").replace("code",""); + } + return notes; + } + } + } + return null; + } + + @Override + public String getFieldValue(String fieldName, String fieldValue) { + if(StrUtil.isBlank(fieldValue)){ + return fieldValue; + } + Field[] fields = EquipmentInfo.class.getDeclaredFields(); + for (Field field : fields) { + if (!field.isAccessible()) { + field.setAccessible(true); + } + if(fieldName.equals(field.getName())){ + if(field.isAnnotationPresent(ApiModelProperty.class)){ + ApiModelProperty apiModelProperty = field.getAnnotationsByType(ApiModelProperty.class)[0]; + String notes = apiModelProperty.notes(); + if(StrUtil.isNotEmpty(notes)){ + if(notes.contains("code")){ + DictCodeField dictCodeField = field.getAnnotationsByType(DictCodeField.class)[0]; + if (StringUtils.isEmpty(dictCodeField.cacheName())) { + throw new BusinessException(500, "缓存名不能为空"); + } + AbstractDictService dictService = SpringContextUtil.getBean(AbstractDictService.class); + fieldValue = dictService.getDictNameByCode(dictCodeField.cacheName(), fieldValue); + } + if(notes.contains("id")){ + switch (notes){ + case "所在单位id": + case "使用部门id": + fieldValue = permissionContext.getDeptService().getDeptName(fieldValue); + break; + case "使用岗位id": + fieldValue = positionService.getNameById(Long.valueOf(fieldValue)); + break; + case "负责人id": + fieldValue = permissionContext.getUserService().getById(fieldValue).getName(); + break; + case "安装位置id": + fieldValue = locationService.getById(fieldValue).getInstallLocation(); + break; + case "规格型号id": + fieldValue = modelInfoService.getById(fieldValue).getModel(); + break; + } + } + } + + } + } + } + return fieldValue; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModelInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModelInfoServiceImpl.java index 9c5ce09..6510618 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModelInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModelInfoServiceImpl.java @@ -53,11 +53,23 @@ private final IEquipmentInfoApprovalService equipmentInfoApprovalService; private final AbstractPermissionContext permissionContext; + private final String XC_INSPECTABLE = "1"; // 西昌可检 + private final String HK_INSPECTABLE = "2"; // 海口可检 + + private final String XC_LAB = "西昌"; // 西昌可检 + private final String HK_LAB = "海口"; // 海口可检 + + private final String CHECK_DESTINATION_METER = "1"; // 检定去向:计量室 + private final String CHECK_DESTINATION_DELIVERY = "2"; // 检定去向:外送 + @Override @Transactional public void add(EquipmentModelInfo modelInfo) { - Long maxNo = this.baseMapper.selectMaxNo(); - modelInfo.setModelNo(NumberGeneratorUtil.getContactNo(PrefixCodeEnum.EQUIPMENT_MODEL_PREFIX, maxNo)); + if(StrUtil.isNotEmpty(modelInfo.getInspectable())){ + if(StrUtil.isBlank(modelInfo.getCategory())){ + throw new BusinessException(501,"计量站可检,设备分类必填"); + } + } this.save(modelInfo); technicalTargetService.saveByModel(modelInfo.getId(),modelInfo.getTechnicalTargetList()); } @@ -65,6 +77,11 @@ @Override @Transactional public void update(EquipmentModelInfo modelInfo) { + if(StrUtil.isNotEmpty(modelInfo.getInspectable())){ + if(StrUtil.isBlank(modelInfo.getCategory())){ + throw new BusinessException(501,"计量站可检,设备分类必填"); + } + } this.updateById(modelInfo); technicalTargetService.saveByModel(modelInfo.getId(),modelInfo.getTechnicalTargetList()); equipmentInfoService.updateByModel(modelInfo); @@ -90,8 +107,6 @@ @Override public Page listScopePage(Page page, EquipmentModelQueryForm queryForm) { -// DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); -// dataScope.setScopeName("create_dept_id"); QueryWrapper queryWrapper = commonQuery(queryForm); List list = this.baseMapper.listScopePage(null,page,queryWrapper); List technicalTargetList = technicalTargetService.listByModelIds(list.stream().map(EquipmentModelInfo::getId).collect(Collectors.toList())); @@ -111,8 +126,6 @@ @Override public List listScope(EquipmentModelQueryForm queryForm) { -// DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); -// dataScope.setScopeName("create_dept_id"); QueryWrapper queryWrapper = commonQuery(queryForm); List list = this.baseMapper.listScope(null,queryWrapper); List technicalTargetList = technicalTargetService.listByModelIds(list.stream().map(EquipmentModelInfo::getId).collect(Collectors.toList())); @@ -136,35 +149,44 @@ queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getHelpInstruction()),"help_instruction",queryForm.getHelpInstruction()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCategory()),"category",queryForm.getCategory()); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getIds()),"id",queryForm.getIds()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()),"equipment_type",queryForm.getEquipmentType()); return queryWrapper; } @Override - public List listEquipmentName() { + public List listEquipmentName(String equipmentType) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.select("distinct equipment_name as equipment_name"); - -// DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); -// if (!ScopeEnums.ALL_TYPE.equals(dataScope.getScopeEnums())) { -// List dataScopeDeptIds = dataScope.getDeptIds(); -// queryWrapper.in("create_dept_id",dataScopeDeptIds); -// } + queryWrapper.eq(StrUtil.isNotEmpty(equipmentType),"equipment_type",equipmentType); + queryWrapper.orderByAsc("equipment_name"); List> maps = this.listMaps(queryWrapper); return maps.stream().map(i->i.get("equipment_name").toString()).collect(Collectors.toList()); } @Override - public List listModel(String equipmentName) { + public List listModel(String equipmentType, String equipmentName) { QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(StrUtil.isNotEmpty(equipmentType),"equipment_type",equipmentType); queryWrapper.eq("equipment_name",equipmentName); -// DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); -// if (!ScopeEnums.ALL_TYPE.equals(dataScope.getScopeEnums())) { -// List dataScopeDeptIds = dataScope.getDeptIds(); -// queryWrapper.in("create_dept_id",dataScopeDeptIds); -// } queryWrapper.select("distinct model as model"); + queryWrapper.orderByAsc("model"); List> maps = this.listMaps(queryWrapper); return maps.stream().map(i->i.get("model").toString()).collect(Collectors.toList()); } + @Override + public String defaultCheckDestination(Long modelId, Long companyId) { + String defaultLab = this.baseMapper.getLabLocation(companyId); + String inspectable = this.getById(modelId).getInspectable(); + if(StrUtil.isNotEmpty(defaultLab) && StrUtil.isNotEmpty(inspectable)){ + if(inspectable.contains(XC_INSPECTABLE) && defaultLab.contains(XC_LAB)){ + return CHECK_DESTINATION_METER; + }else if(inspectable.contains(HK_INSPECTABLE) && defaultLab.contains(HK_LAB)){ + return CHECK_DESTINATION_METER; + }else { + return CHECK_DESTINATION_DELIVERY; + } + } + return null; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemDeptServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemDeptServiceImpl.java index 8dac37e..4f3e46d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemDeptServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemDeptServiceImpl.java @@ -62,4 +62,10 @@ } return secondDepts; } + + @Override + public boolean isCompany(Long deptId) { + Dept dept = deptService.getById(deptId); + return dept.getPid() <= 0; + } } 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml index a9033f9..c49776d 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml @@ -4,71 +4,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - id, approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + id + , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction + + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml index 62449ec..f4d9936 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml @@ -42,6 +42,12 @@ + + + + + + @@ -50,12 +56,20 @@ product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid as certificateValid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time, - is_del,model_id,help_instruction + is_del,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction select - from eqpt_equipment_info + from eqpt_equipment_info_view ${ew.sqlSegment} @@ -110,7 +124,7 @@ eqpt_remind_all as ( select e.id as equipment_id, - IFNULL(m.remind_time,0) as remind_time + IFNULL(m.remind_time,90) as remind_time from eqpt_equipment_info e left join eqpt_remind m on e.id = m.equipment_id ), @@ -118,20 +132,32 @@ select id,task_name,CONCAT(DATE_FORMAT(start_time,'%Y-%m-%d'),"~",DATE_FORMAT(end_time,'%Y-%m-%d')) as time_ext,start_time,end_time from eqpt_equipment_task_info ), + latest_sample_relation AS ( + SELECT * + FROM biz_business_order_sample_relation a + WHERE id = ( + SELECT max( id ) + FROM biz_business_order_sample_relation b + WHERE a.sample_id = b.sample_id ) + ), eqpt_ext as ( select e.* , - DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, - GROUP_CONCAT(t.task_name) as taskNames, - GROUP_CONCAT(t.time_ext) as taskTimes, - GROUP_CONCAT(t.id) as taskIds, - min(t.start_time) as task_start_time, - max(t.end_time) as task_end_time - from eqpt_equipment_info e + DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, + GROUP_CONCAT(t.task_name) as taskNames, + GROUP_CONCAT(t.time_ext) as taskTimes, + GROUP_CONCAT(t.id) as taskIds, + min(t.start_time) as task_start_time, + max(t.end_time) as task_end_time, + (case when lsr.sample_status in + #{item} + then 1 else 0 end) as check_status + from eqpt_equipment_info_view e left join eqpt_remind_all a on e.id = a.equipment_id left join eqpt_equipment_task_relation r on e.id = r.equipment_id left join task_ext t on r.task_id = t.id + left join latest_sample_relation lsr on lsr.sample_id = e.id where e.certificate_valid is not null - group by e.id,e.certificate_valid,a.remind_time + group by e.id,e.certificate_valid,a.remind_time,lsr.sample_status ) select * from eqpt_ext @@ -163,6 +189,9 @@ e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, + e.model as model, + e.company_id as companyId, + e.manufacture_no as manufactureNo, c.certificate_report_no as certificateNo, c.certificate_report_name as certificateName, '西昌卫星发射中心计量测试站' as checkOrganization, @@ -173,7 +202,7 @@ c.update_time as updateTime, '1' as certificateType, c.remark as remark - from biz_business_certificate_report c ,eqpt_equipment_info e + from biz_business_certificate_report c ,eqpt_equipment_info_view e where c.sample_id = e.id diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml index 097c405..2ddebe6 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,6 +13,7 @@ + @@ -21,7 +22,7 @@ - id, model_no, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, create_user_id, create_dept_id, create_time, update_time + id, equipment_type, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, inspectable, create_user_id, create_dept_id, create_time, update_time + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java index c69cc82..d1a2bd1 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.service.equipment.IEquipmentGroupInfoService; import io.swagger.annotations.Api; @@ -60,14 +61,11 @@ return ReturnUtil.success(); } - @ApiImplicitParams({ - @ApiImplicitParam(name = "groupName",value = "分组名称",dataType = "String",paramType = "query") - }) @ApiOperation("分组分页列表") - @GetMapping("listPage") - public ReturnDTO> listPage(String groupName){ + @PostMapping("listPage") + public ReturnDTO> listPage(@RequestBody EquipmentGroupQueryForm queryForm){ Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,groupName))); + return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,queryForm))); } @ApiImplicitParams({ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 56b6814..3130c5c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.business.LabelBindDTO; import com.casic.missiles.dto.equipment.*; import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; import com.casic.missiles.service.equipment.IEquipmentInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -36,6 +37,14 @@ public class EquipmentInfoController extends ExportController { private final IEquipmentInfoService equipmentInfoService; + private final IEquipmentInfoApprovalService approvalService; + + @ApiOperation("直接编辑设备") + @PostMapping("/info/update") + public ReturnDTO update(@RequestBody EquipmentApprovalForm approvalForm){ + approvalService.updateEquipmentInfo(approvalForm); + return ReturnUtil.success(); + } @ApiOperation("设备分页列表") @PostMapping("/info/listPage") @@ -152,5 +161,14 @@ return ReturnUtil.success(); } + @ApiOperation("到期提醒分页列表") + @PostMapping("/orderSelect/listPage") + @ResponseBody + public ReturnDTO> EquipmentOrderSelectQueryForm(@RequestBody EquipmentRemindQueryForm queryForm) { + Page page = PageFactory.defaultPage(); + page = equipmentInfoService.orderSelectListPage(page, queryForm); + return ReturnUtil.success(super.packForBT(page)); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index 044d245..ccbd668 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -103,14 +103,20 @@ @ApiOperation("设备名称列表") @GetMapping("listEquipmentName") - public ReturnDTO> listEquipmentName(){ - return ReturnUtil.success(modelInfoService.listEquipmentName()); + public ReturnDTO> listEquipmentName(String equipmentType){ + return ReturnUtil.success(modelInfoService.listEquipmentName(equipmentType)); } @ApiOperation("规格型号列表") @GetMapping("listModel") - public ReturnDTO> listModel(String equipmentName){ - return ReturnUtil.success(modelInfoService.listModel(equipmentName)); + public ReturnDTO> listModel(String equipmentType, String equipmentName){ + return ReturnUtil.success(modelInfoService.listModel(equipmentType,equipmentName)); + } + + @ApiOperation("获取默认检定去向") + @GetMapping("defaultCheckDestination") + public ReturnDTO defaultCheckDestination(Long modelId, Long companyId){ + return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java index 7e79008..1fc1f9c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.CertificateUpdate; +import com.casic.missiles.dto.equipment.LimitInstructionUpdate; import com.casic.missiles.model.plan.OrderReceive; import com.casic.missiles.model.plan.SampleStatueUpdate; import com.casic.missiles.service.equipment.IEquipmentInfoService; @@ -55,4 +56,11 @@ return ReturnUtil.success(); } + @ApiOperation("更新限用说明") + @PostMapping("/limitInstructionUpdate") + public ReturnDTO updateLimitInstruction(@RequestBody LimitInstructionUpdate updateForm) { + equipmentInfoService.updateLimitInstruction(updateForm.getEquipmentId(), updateForm.getLimitInstruction()); + return ReturnUtil.success(); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java index e314003..73d02ec 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java @@ -1,7 +1,18 @@ package com.casic.missiles.controller.system; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.system.SystemLocation; +import com.casic.missiles.service.system.ISystemLocationService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** *

@@ -11,8 +22,45 @@ * @author zhangyingjie * @since 2023-11-15 */ +@Api(tags = "安装位置管理") @RestController -@RequestMapping("/system-location") -public class SystemLocationController { +@RequestMapping("/system/location") +@RequiredArgsConstructor +public class SystemLocationController extends BaseController { + + private final ISystemLocationService locationService; + + @PostMapping("add") + public ReturnDTO add(@RequestBody SystemLocation systemLocation){ + locationService.add(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("update") + public ReturnDTO update(@RequestBody SystemLocation systemLocation){ + locationService.update(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("delete") + public ReturnDTO delete(@RequestBody SystemLocation systemLocation){ + locationService.delete(systemLocation); + return ReturnUtil.success(); + } + + @GetMapping("listPage") + public ReturnDTO> listPage(Long searchId,Long positionId, String installLocation){ + Page page = PageFactory.defaultPage(); + page = locationService.listPage(page,searchId,positionId, installLocation); + return ReturnUtil.success(super.packForBT(page)); + } + + @GetMapping("list") + public ReturnDTO> list(Long searchId,Long positionId, String installLocation){ + List list = locationService.list(searchId,positionId, installLocation); + return ReturnUtil.success(list); + } + + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java index f9e2f91..d64634a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java @@ -1,6 +1,8 @@ package com.casic.missiles.controller.system; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; @@ -10,6 +12,8 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** *

* 受检系统-系统管理-岗位管理 前端控制器 @@ -22,7 +26,7 @@ @RestController @RequestMapping("/system/position") @RequiredArgsConstructor -public class SystemPositionController { +public class SystemPositionController extends BaseController { private final ISystemPositionService positionService; @@ -45,16 +49,16 @@ } @GetMapping("listPage") - public ReturnDTO listPage(Long searchId,String positionName){ + public ReturnDTO> listPage(Long searchId, String positionName){ Page page = PageFactory.defaultPage(); - positionService.listPage(page,searchId,positionName); - return ReturnUtil.success(); + page = positionService.listPage(page,searchId,positionName); + return ReturnUtil.success(super.packForBT(page)); } @GetMapping("list") - public ReturnDTO list(Long searchId,String positionName){ - positionService.list(searchId,positionName); - return ReturnUtil.success(); + public ReturnDTO> list(Long searchId,String positionName){ + List list = positionService.list(searchId,positionName); + return ReturnUtil.success(list); } diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index 6f0359b..88cce74 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -72,9 +72,9 @@ addresses: http://111.198.10.15:21605/xxl-job-admin executor: # 此执行器的名称 - appname: casic-metering-job + appname: casic-metering-xc-eqpt-job # 此执行器的ip、端口,每个节点对应自己的ip,端口用于任务执行的通信 - ip: 127.0.0.1 + ip: 192.168.20.33 port: 9999 # 此执行器的日志存放路径 logpath: logs/xxl-job/casic-metering-job @@ -122,7 +122,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_remind_relation + table-name: eqpt_equipment_modify_log prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index 7b3c7a2..29a820a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -18,11 +18,15 @@ */ // 系统前缀 String DICT_PREFIX = "eqpt"; + + String EQUIPMENT_TYPE = DICT_PREFIX + "DeviceCategory"; //受检设备使用状态 String EQUIPMENT_USAGE_STATUS = DICT_PREFIX + "DeviceUseStatus"; //受检设备重要等级 String EQUIPMENT_LEVEL = DICT_PREFIX + "DeviceLevel"; + String EQUIPMENT_QUALITY = DICT_PREFIX + "DeviceQuality"; + String EQUIPMENT_CATEGORY = DICT_PREFIX + "DeviceType"; // 设备申请类型 String EQUIPMENT_APPROVAL_TYPE = DICT_PREFIX + "EquipmentApprovalType"; @@ -30,6 +34,8 @@ String EQUIPMENT_STATUS_APPROVAL_TYPE = DICT_PREFIX + "EquipmentStatusApprovalType"; // 设备计量标识 String EQUIPMENT_METER_IDENTITY = DICT_PREFIX + "MeterIdentify"; + + String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; // 计量计划计划分类 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java index 694e48b..aefff4a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.equipment; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.model.equipment.EquipmentAttachment; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentTechnicalTarget; @@ -13,6 +14,8 @@ @Data public class EquipmentApprovalForm extends EquipmentInfoApproval { + @ApiModelProperty("规格型号说明书") + private String instructionsFile; @ApiModelProperty("技术指标列表") private List technicalTargetList; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java index f6448c6..c814444 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java @@ -12,6 +12,9 @@ @Setter public class EquipmentInfoForm extends EquipmentInfo{ + @ApiModelProperty("规格型号说明书") + private String instructionsFile; + @ApiModelProperty("组别信息") @TableField(exist = false) private List groupInfos; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java index bcec504..7803273 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java @@ -10,6 +10,9 @@ @Setter public class EquipmentModelQueryForm { + @ApiModelProperty("设备类型") + private String equipmentType; + @ApiModelProperty("设备名称") private String equipmentName; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java index 03fc0f1..fc2acc8 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java @@ -32,12 +32,21 @@ @ApiModelProperty("所在单位") private Long companyId; - @ApiModelProperty("使用部门") + + @ApiModelProperty("使用部门(单个)") + private Long deptId; + @ApiModelProperty("使用部门(列表)") private List deptIds; + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty("使用岗位") private String usePosition; + @ApiModelProperty("负责人ID") + private Long directorId; + @ApiModelProperty("负责人") private String directorName; @@ -50,6 +59,9 @@ @ApiModelProperty("安装位置") private String installLocation; + @ApiModelProperty("分组id") + private Long groupId; + @ApiModelProperty("参试任务id") private Long taskId; @@ -75,4 +87,5 @@ @ApiModelProperty("使用状态列表[状态维护选择设备时用]") private List usageStatusList; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java index 30b5af3..b6afd18 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java @@ -73,5 +73,52 @@ @TableField("remark") private String remark; + /** + * 所在单位id + */ + @ApiModelProperty("所在单位id") + @TableField(exist = false) + private Long companyId; + + @ApiModelProperty("所在单位名称") + @TableField(exist = false) + private String companyName; + + /** + * 使用部门id + */ + @ApiModelProperty("使用部门id") + @TableField(exist = false) + private Long deptId; + + @ApiModelProperty("使用部门名称") + @TableField(exist = false) + private String deptName; + + /** + * 分系统id + */ + @ApiModelProperty(value = "分系统id") + @TableField(exist = false) + private Long subSystemId; + + @ApiModelProperty("分系统名称") + @TableField(exist = false) + private String subSystemName; + + /** + * 使用岗位id + */ + @ApiModelProperty("岗位ID") + @TableField("position_id") + private Long positionId; + + /** + * 使用岗位名称 + */ + @ApiModelProperty("岗位名称") + @TableField(exist = false) + private String positionName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java index 36575f6..b4f78b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.equipment; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -7,6 +8,8 @@ import java.io.Serializable; import java.util.Date; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.Getter; @@ -55,12 +58,35 @@ @ApiModelProperty("型号规格") @TableField(exist = false) private String model; + + @ApiModelProperty("出厂编号") + @TableField(exist = false) + private String manufactureNo; + @ApiModelProperty("生产厂家") + @TableField(exist = false) + private String manufacturer; + + /** + * 出厂编号 + */ + @ApiModelProperty("负责人") @TableField(exist = false) private String directorName; @ApiModelProperty("计量标识") @TableField(exist = false) private String meterIdentify; + + @ApiModelProperty("计量标识名称") + @TableField(exist = false) + private String meterIdentifyName; + + @ApiModelProperty("使用状态(字典code)") + @TableField(exist = false) + private String usageStatus; + @ApiModelProperty("使用状态名称") + @TableField(exist = false) + private String usageStatusName; @ApiModelProperty("证书有效期") @TableField(exist = false) private Date certificateValid; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java index 21294cf..a8392ff 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java @@ -44,14 +44,14 @@ private static final long serialVersionUID = 1L; - @ApiModelProperty("主键") + @ApiModelProperty(value = "主键") @TableId("id") private Long id; /** * 设备编号 */ - @ApiModelProperty("设备编号") + @ApiModelProperty(value = "设备编号",notes = "统一编号") @TableField("equipment_no") @ExcelProperty(value = "统一编号",index = 0) private String equipmentNo; @@ -59,7 +59,7 @@ /** * 设备名称 */ - @ApiModelProperty("设备名称") + @ApiModelProperty(value = "设备名称",notes = "设备名称") @TableField("equipment_name") @ExcelProperty(value = "设备名称",index = 1) private String equipmentName; @@ -67,14 +67,18 @@ /** * 设备类型(1受检设备;2特种设备) */ - @ApiModelProperty("设备类型(1受检设备;2特种设备)") + @ApiModelProperty(value = "设备类型(1受检设备;2特种设备)",notes = "设备类型code") @TableField("equipment_type") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE) private String equipmentType; + @TableField(exist = false) + private String equipmentTypeName; + /** * 使用状态(字典code) */ - @ApiModelProperty("使用状态(字典code)") + @ApiModelProperty(value = "使用状态(字典code)",notes = "使用状态code") @TableField("usage_status") @DictCodeField(message = "使用状态", cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS) private String usageStatus; @@ -87,28 +91,32 @@ /** * 等级(字典code) */ - @ApiModelProperty("等级(字典code)") + @ApiModelProperty(value = "等级(字典code)",notes = "重要等级code") @TableField("level") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_LEVEL) private String level; + @TableField(exist = false) + private String levelName; + /** * 生产国家 */ - @ApiModelProperty("生产国家") + @ApiModelProperty(value = "生产国家",notes = "生产国家") @TableField("product_country") private String productCountry; /** * 生产厂家 */ - @ApiModelProperty("生产厂家") + @ApiModelProperty(value = "生产厂家",notes = "生产厂家") @TableField("manufacturer") private String manufacturer; /** * 出厂编号 */ - @ApiModelProperty("出厂编号") + @ApiModelProperty(value = "出厂编号",notes = "出厂编号") @TableField("manufacture_no") @ExcelProperty(value = "出厂编号",index = 3) private String manufactureNo; @@ -116,28 +124,28 @@ /** * 生产日期 */ - @ApiModelProperty("生产日期") + @ApiModelProperty(value = "生产日期",notes = "生产日期") @TableField("product_date") private Date productDate; /** * 单价(万元) */ - @ApiModelProperty("单价(万元)") + @ApiModelProperty(value = "单价(万元)",notes = "设备单价(万元)") @TableField("unit_price") private BigDecimal unitPrice; /** * 购进日期 */ - @ApiModelProperty("购进日期") + @ApiModelProperty(value = "购进日期",notes = "购进日期") @TableField("purchase_date") private Date purchaseDate; /** * 型号规格 */ - @ApiModelProperty("型号规格") + @ApiModelProperty(value = "型号规格",notes = "型号规格") @TableField("model") @ExcelProperty(value = "型号规格",index = 2) private String model; @@ -145,14 +153,18 @@ /** * 质量状况 */ - @ApiModelProperty("质量状况") + @ApiModelProperty(value = "质量状况",notes = "质量状况code") @TableField("quality_condition") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_QUALITY) private String qualityCondition; + @TableField(exist = false) + private String qualityConditionName; + /** * 所在单位id */ - @ApiModelProperty("所在单位id") + @ApiModelProperty(value = "所在单位id",notes = "所在单位id") @TableField("company_id") private Long companyId; @@ -163,7 +175,7 @@ /** * 使用部门id */ - @ApiModelProperty("使用部门id") + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") @TableField("dept_id") private Long deptId; @@ -174,14 +186,17 @@ /** * 设备分类(字典code) */ - @ApiModelProperty("设备分类(字典code)") + @ApiModelProperty(value = "设备分类(字典code)",notes = "设备分类code") @TableField("category") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CATEGORY) private String category; + @TableField(exist = false) + private String categoryName; /** * 检定周期(月) */ - @ApiModelProperty("检定周期(月)") + @ApiModelProperty(value = "检定周期(月)",notes = "检定周期(月)") @TableField("check_cycle") @ExcelProperty(value = "检定周期(月)",index = 6) @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, horizontalAlignment = HorizontalAlignmentEnum.LEFT) @@ -190,7 +205,7 @@ /** * 备注 */ - @ApiModelProperty("备注") + @ApiModelProperty(value = "备注",notes = "备注") @TableField("remark") @ExcelProperty(value = "备注",index = 9) private String remark; @@ -198,28 +213,28 @@ /** * 说明书(minio存储文件名)(多个用,拼接) */ - @ApiModelProperty("说明书(minio存储文件名)(多个用,拼接)") + @ApiModelProperty(value = "说明书(minio存储文件名)(多个用,拼接)") @TableField("instructions_file") private String instructionsFile; /** * 检定机构 */ - @ApiModelProperty("检定机构") + @ApiModelProperty(value = "检定机构",notes = "检定(校准)机构") @TableField("check_organization") private String checkOrganization; /** * 检定日期 */ - @ApiModelProperty("检定日期") + @ApiModelProperty(value = "检定日期",notes = "检定(校准)日期") @TableField("check_date") private Date checkDate; /** * 证书有效期 */ - @ApiModelProperty("证书有效期") + @ApiModelProperty(value = "证书有效期",notes = "证书有效期") @TableField("certificate_valid") @ExcelProperty(value = "证书有效期",index = 7, converter = DateExcelConverter.class) private Date certificateValid; @@ -227,7 +242,7 @@ /** * 计量标识 */ - @ApiModelProperty("计量标识") + @ApiModelProperty(value = "计量标识",notes = "计量标识code") @TableField("meter_identify") @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY) private String meterIdentify; @@ -237,17 +252,28 @@ @ExcelProperty(value = "计量标识",index = 5) private String meterIdentifyName; + @ApiModelProperty(value = "使用岗位id",notes = "使用岗位id") + @TableField("use_position_id") + private String usePositionId; + /** * 使用岗位 */ @ApiModelProperty("使用岗位") - @TableField("use_position") + @TableField(exist = false) @ExcelProperty(value = "使用岗位",index = 4) private String usePosition; /** * 负责人 */ + @ApiModelProperty(value = "负责人id",notes = "负责人id") + @TableField("director_id") + private String directorId; + + /** + * 负责人 + */ @ApiModelProperty("负责人") @TableField("director_name") private String directorName; @@ -255,17 +281,25 @@ /** * RFID标签绑定 */ - @ApiModelProperty("RFID标签绑定") + @ApiModelProperty(value = "RFID标签绑定",notes = "RFID标签绑定") @TableField("RFID") private String rfid; /** * 在用信息(字典code) */ - @ApiModelProperty("在用信息(字典code)") + @ApiModelProperty(value = "在用信息(字典code)",notes = "在用信息code") @TableField("use_sign") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE) private String useSign; + @TableField(exist = false) + private String useSignName; + + @ApiModelProperty(value = "安装位置id",notes = "安装位置id") + @TableField("install_location_id") + private Long installLocationId; + /** * 安装位置(选择) */ @@ -276,7 +310,7 @@ /** * 安装位置(自定义编写) */ - @ApiModelProperty("安装位置(自定义编写)") + @ApiModelProperty(value = "安装位置(自定义编写)",notes = "详细位置") @TableField("install_location_ext") private String installLocationExt; @@ -290,7 +324,7 @@ /** * 备注(扩展) */ - @ApiModelProperty("备注(扩展)") + @ApiModelProperty(value = "备注(扩展)",notes = "备注") @TableField("remark_ext") private String remarkExt; @@ -327,14 +361,25 @@ @TableLogic(value = "0",delval = "1") private Integer isDel; - @ApiModelProperty("规格型号id") + @ApiModelProperty(value = "规格型号id",notes = "规格型号id") @TableField("model_id") private Long modelId; - @ApiModelProperty("辅助字段") + @ApiModelProperty(value = "辅助字段",notes = "辅助字段") @TableField("help_instruction") private String helpInstruction; + @ApiModelProperty(value = "检定去向",notes = "检定去向") + @TableField("check_destination") + private String checkDestination; + + @ApiModelProperty(value = "限用说明",notes = "限用说明") + @TableField("limit_instruction") + private String limitInstruction; + + @ApiModelProperty("分组名称") + @TableField(exist = false) + private String groupNames; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java index 13eeef8..060aa33 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java @@ -101,8 +101,13 @@ */ @ApiModelProperty("使用状态(字典code)") @TableField("usage_status") + @DictCodeField(message = "使用状态", cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS) private String usageStatus; + @ApiModelProperty("使用状态名称") + @TableField(exist = false) + private String usageStatusName; + /** * 等级(字典code) */ @@ -253,6 +258,10 @@ @TableField(exist = false) private String meterIdentifyName; + @ApiModelProperty("使用岗位id") + @TableField("use_position_id") + private String usePositionId; + /** * 使用岗位 */ @@ -263,6 +272,12 @@ /** * 负责人 */ + @ApiModelProperty("负责人id") + @TableField("director_id") + private String directorId; + /** + * 负责人 + */ @ApiModelProperty("负责人") @TableField("director_name") private String directorName; @@ -281,6 +296,10 @@ @TableField("use_sign") private String useSign; + @ApiModelProperty("安装位置id") + @TableField("install_location_id") + private Long installLocationId; + /** * 安装位置(选择) */ @@ -347,6 +366,14 @@ @TableField("help_instruction") private String helpInstruction; + @ApiModelProperty("检定去向") + @TableField("check_destination") + private String checkDestination; + + @ApiModelProperty("限用说明") + @TableField("limit_instruction") + private String limitInstruction; + @ApiModelProperty("任务id") @TableField(exist = false) private String taskId; @@ -363,4 +390,7 @@ @TableField(exist = false) private List taskInfos; + @ApiModelProperty("分组名称") + @TableField(exist = false) + private String groupNames; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java index 471e8c8..d4b20e9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java @@ -48,10 +48,15 @@ /** * 型号规格编号 */ - @ApiModelProperty("型号规格编号") - @TableField("model_no") - @ExcelProperty("型号规格编号") - private String modelNo; + @ApiModelProperty("设备类型") + @TableField("equipment_type") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE) + private String equipmentType; + + @ApiModelProperty("设备类型名称") + @TableField(exist = false) + @ExcelProperty("设备类型") + private String equipmentTypeName; /** * 设备名称 @@ -113,6 +118,10 @@ @ExcelProperty("备注") private String remark; + @ApiModelProperty("计量站是否可检(1西昌可检;2海口可检,多个用,拼接)") + @TableField("inspectable") + private String inspectable; + /** * 创建人id */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java index d495e2e..a78c41a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java @@ -83,6 +83,7 @@ /** * 安装位置 */ + @ApiModelProperty("安装位置") @TableField("install_location") private String installLocation; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java index d5417d4..633af3f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import java.util.List; @@ -23,7 +24,7 @@ void deleteGroup(Long groupId); - Page listPage(Page page, String groupName); + Page listPage(Page page, EquipmentGroupQueryForm queryForm); EquipmentGroupForm detail(Long groupId); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java index 06d0cbd..222ebdd 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java @@ -3,6 +3,7 @@ import com.casic.missiles.dto.equipment.EquipmentApprovalLog; import com.casic.missiles.dto.equipment.EquipmentQueryForm; import com.casic.missiles.dto.equipment.EquipmentApprovalForm; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentModelInfo; import com.casic.missiles.service.ICommonApprovalService; @@ -19,6 +20,14 @@ */ public interface IEquipmentInfoApprovalService extends ICommonApprovalService { + boolean updateEquipmentInfo(EquipmentApprovalForm approvalForm); + + boolean checkRfidRepeat(String rfid, Long equipmentId); + + String checkLocation(Long installLocationId, String usageStatus, Long equipmentId); + + void saveTurnoverLog(EquipmentInfo newObj, EquipmentInfo oldObj, Long createUserId); + Long saveOrUpdateApproval(EquipmentApprovalForm approvalForm); EquipmentApprovalForm approvalInfoDetail(Long approvalId); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index acec159..dde436d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -29,6 +29,8 @@ */ public interface IEquipmentInfoService extends IService { + + Page listPage(Page page, EquipmentQueryForm queryForm); List list(EquipmentQueryForm queryForm); @@ -52,6 +54,9 @@ void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date certificateValid, String meterIdentify); + void updateLimitInstruction(Long equipmentId, String limitInstruction); + + void removeCertificateInfo(Long equipmentId, Long certificateId); Page remindListPage(Page page, EquipmentRemindQueryForm queryForm) @@ -67,4 +72,10 @@ (Page page, EquipmentCertificateQueryForm queryForm); void bindTask(EquipmentTaskBindForm bindForm); + + String getFieldName(String field); + String getFieldValue(String field, String fieldValue); + + Page orderSelectListPage(Page page, EquipmentRemindQueryForm queryForm); + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java index 19afa01..4e532a7 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java @@ -28,8 +28,10 @@ List listScope(EquipmentModelQueryForm queryForm); - List listEquipmentName(); + List listEquipmentName(String equipmentType); - List listModel(String equipmentName); + List listModel(String equipmentType, String equipmentName); + + String defaultCheckDestination(Long modelId,Long companyId); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java index 4a89b12..5608317 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java @@ -2,11 +2,16 @@ import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.constants.MeterDictCode; +import com.casic.missiles.core.application.service.AbstractDeptService; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.mapper.equipment.EquipmentGroupInfoMapper; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.model.equipment.EquipmentGroupRelation; @@ -31,6 +36,8 @@ public class EquipmentGroupInfoServiceImpl extends ServiceImpl implements IEquipmentGroupInfoService { private final IEquipmentGroupRelationService groupRelationService; + private final AbstractDeptService deptService; + private final AbstractDictService dictService; @Override @Transactional @@ -62,14 +69,25 @@ groupRelationService.deleteByGroupId(groupId); } - // todo datascope @Override - public Page listPage(Page page, String groupName) { + public Page listPage(Page page, EquipmentGroupQueryForm queryForm) { QueryWrapper queryWrapper = new QueryWrapper<>(); - if (StrUtil.isNotEmpty(groupName)) { - queryWrapper.like("binary group_name", groupName); - } - return this.page(page, queryWrapper); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"p.company_id",queryForm.getCompanyId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()),"p.dept_id",queryForm.getDeptId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getSubSystemId()),"p.sub_system_id",queryForm.getSubSystemId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getPositionId()),"g.position_id",queryForm.getPositionId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getGroupName()), "binary g.group_name", queryForm.getGroupName()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCreateUserId()),"g.create_user_id",queryForm.getCreateUserId()); + List list = this.baseMapper.listPage(page, queryWrapper); + list.forEach(this::wrapper); + page.setRecords(list); + return page; + } + + private void wrapper(EquipmentGroupInfo info) { + info.setCompanyName(deptService.getDeptName(info.getCompanyId())); + info.setDeptName(deptService.getDeptName(info.getDeptId())); + info.setSubSystemName(deptService.getDeptName(info.getSubSystemId())); } @Override @@ -80,6 +98,11 @@ groupForm.setGroupInfo(groupInfo); List relations = groupRelationService.listByGroup(groupId); + relations.forEach(i->{ + i.setMeterIdentifyName(dictService.getDictNameByCode(MeterDictCode.EQUIPMENT_METER_IDENTITY,i.getMeterIdentify())); + i.setUsageStatusName(dictService.getDictNameByCode(MeterDictCode.EQUIPMENT_USAGE_STATUS,i.getUsageStatus())); + + }); groupForm.setEquipmentList(relations); return groupForm; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java index 0a5a5fe..5456965 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java @@ -5,9 +5,12 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.equipment.EquipmentApprovalLog; @@ -16,6 +19,7 @@ import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.PrefixCodeEnum; +import com.casic.missiles.enums.equipment.EquipmentStatusTypeEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; @@ -81,6 +85,30 @@ @Autowired private IEquipmentTaskRelationService taskRelationService; + @Autowired + private IEquipmentModelInfoService modelInfoService; + + @Override + public boolean updateEquipmentInfo(EquipmentApprovalForm approvalForm) { + if(checkRfidRepeat(approvalForm.getRfid(),approvalForm.getEquipmentId())){ + throw new BusinessException(500,"RFID标签已使用"); + } + String checkLoc = checkLocation(approvalForm.getInstallLocationId(),approvalForm.getUsageStatus(),approvalForm.getEquipmentId()); + if(StrUtil.isNotEmpty(checkLoc)){ + throw new BusinessException(500,String.format("当前安装位置已存在一台在用设备,编号为%s",checkLoc)); + } + + attachmentService.saveByEquipment(approvalForm.getEquipmentId(), approvalForm.getAttachments()); + taskRelationService.saveByEquipment(approvalForm.getEquipmentId(),approvalForm.getTaskInfos()); + if (EQUIPMENT_TYPE_SPECIAL.equals(approvalForm.getEquipmentType())) { + specialCertificateService.saveCertificateList(approvalForm.getEquipmentId(), approvalForm.getCertificateList()); + } + EquipmentInfo info = new EquipmentInfo(); + BeanUtil.copyProperties(approvalForm, info); + info.setId(approvalForm.getEquipmentId()); + saveTurnoverLog(info, null, approvalForm.getCreateUserId()); + return equipmentInfoService.updateById(info); + } @Override @Transactional @@ -91,6 +119,12 @@ if(checkRfidRepeat(approvalForm.getRfid(),approvalForm.getEquipmentId())){ throw new BusinessException(500,"RFID标签已使用"); } + String checkLoc = this.checkLocation(approvalForm.getInstallLocationId(),approvalForm.getUsageStatus(),approvalForm.getEquipmentId()); + if(StrUtil.isNotEmpty(checkLoc)){ + throw new BusinessException(500,String.format("当前安装位置已存在一台在用设备,编号为%s",checkLoc)); + } + + if(ObjectUtil.isEmpty(approvalForm.getCreateUserId())){ AuthUser authUser = permissionContext.getAuthService().getLoginUser(); approvalForm.setCreateUserId(authUser.getId()); @@ -170,10 +204,19 @@ return updateApprovalStatus(submitRequest.getId(), ApprovalStatusEnum.IN_APPROVED); } - private boolean checkRfidRepeat(String rfid, Long equipmentId){ + @Override + public boolean checkRfidRepeat(String rfid, Long equipmentId){ return StrUtil.isNotEmpty(rfid) && this.baseMapper.checkRfid(rfid, equipmentId) > 0; } + @Override + public String checkLocation(Long installLocationId, String usageStatus, Long equipmentId){ + if(ObjectUtil.isNotEmpty(installLocationId) && EquipmentStatusTypeEnum.UNSEAL.equals(usageStatus)){ + return this.baseMapper.checkLocation(installLocationId,EquipmentStatusTypeEnum.UNSEAL,equipmentId); + } + return null; + } + private boolean haveUnfinishedApproval(EquipmentApprovalForm approvalForm){ if(ObjectUtil.isNotEmpty(approvalForm.getEquipmentId())){ QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -188,14 +231,16 @@ public void simpleUpdate(EquipmentApprovalForm approvalForm, EquipmentInfo info) { EquipmentInfo oldObj = SerializationUtils.clone(info); CasicBeanUtil.copySpecifyProperties(approvalForm, info, "checkOrganization", "checkDate", - "certificateValid", "meterIdentify", "usePosition", "directorName", "rfid", - "useSign", "installLocation", "installLocationExt", "testTask", "remarkExt"); + "certificateValid", "meterIdentify", "usePositionId","usePosition","directorId", "directorName", "rfid", + "useSign","installLocationId", "installLocation", "installLocationExt", "testTask", "remarkExt", + "checkDestination","limitInstruction"); saveTurnoverLog(info, oldObj, approvalForm.getCreateUserId()); equipmentInfoService.updateById(info); } - private void saveTurnoverLog(EquipmentInfo newObj, EquipmentInfo oldObj, Long createUserId) { + @Override + public void saveTurnoverLog(EquipmentInfo newObj, EquipmentInfo oldObj, Long createUserId) { if(ObjectUtil.isEmpty(oldObj)){ oldObj = equipmentInfoService.getById(newObj.getId()); } @@ -268,6 +313,8 @@ info.setGroupInfos(groupInfoService.selectByEquipment(info.getEquipmentId())); info.setCertificateList(equipmentInfoService.allCertificate(info.getEquipmentId(),info.getEquipmentType())); info.setTaskInfos(taskInfoService.listByEquipment(info.getEquipmentId())); + info.setInstructionsFile(modelInfoService.getById(info.getModelId()).getInstructionsFile()); + } return info; } @@ -278,7 +325,7 @@ super.warpper(approval); approval.setCompanyName(permissionContext.getDeptService().getDeptName(approval.getCompanyId())); approval.setDeptName(permissionContext.getDeptService().getDeptName(approval.getDeptId())); - //DictCodeUtils.convertDictCodeToName(approval); + DictCodeUtils.convertDictCodeToName(approval); } catch (Exception e) { throw new RuntimeException(e); @@ -287,6 +334,18 @@ } @Override + public List list(Wrapper queryWrapper) { + return this.baseMapper.selectList(queryWrapper); + } + + @Override + public > E page(E page, Wrapper queryWrapper) { + List list = this.baseMapper.selectListPage((Page) page, (QueryWrapper) queryWrapper); + page.setRecords(list); + return page; + } + + @Override public QueryWrapper commonQuery(EquipmentQueryForm queryForm) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); @@ -294,6 +353,7 @@ queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"use_position_id",queryForm.getUsePositionId()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUsageStatus()), "usage_status", queryForm.getUsageStatus()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "certificate_valid", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "certificate_valid", queryForm.getCertificateValidEnd()); @@ -301,12 +361,18 @@ queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getModel()),"model",queryForm.getModel()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"manufacture_no",queryForm.getManufactureNo()); queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"company_id",queryForm.getCompanyId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()),"director_id",queryForm.getDirectorId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"director_name",queryForm.getDirectorName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()),"use_sign",queryForm.getUseSign()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); + if(ObjectUtil.isNotEmpty(queryForm.getGroupId())){ + String existSql = String.format("(select id from eqpt_equipment_group_relation where group_id = %d and equipment_id = eqpt_equipment_info_approval_view.id)",queryForm.getGroupId()); + queryWrapper.exists(existSql); + } + if(ObjectUtil.isNotEmpty(queryForm.getTaskId())){ - String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info.id)",queryForm.getTaskId()); + String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info_approval_view.id)",queryForm.getTaskId()); queryWrapper.exists(existSql); } queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()),"check_organization",queryForm.getCheckOrganization()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java index bbade89..c587261 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java @@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.annotation.EquipmentLog; import com.casic.missiles.constants.MeterDictCode; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; @@ -27,10 +28,7 @@ import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.PrefixCodeEnum; -import com.casic.missiles.enums.equipment.EquipmentCertificateTypeEnum; -import com.casic.missiles.enums.equipment.EquipmentStatusTypeEnum; -import com.casic.missiles.enums.equipment.EquipmentTypeEnum; -import com.casic.missiles.enums.equipment.StatusApprovalTypeEnum; +import com.casic.missiles.enums.equipment.*; import com.casic.missiles.enums.plan.CheckCompletionEnum; import com.casic.missiles.enums.plan.SampleStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -46,13 +44,21 @@ import com.casic.missiles.service.status.IEquipmentStatusLogService; import com.casic.missiles.service.subcontract.ISubcontractCertificateService; import com.casic.missiles.service.system.IRemindConfigService; +import com.casic.missiles.service.system.ISystemDeptService; +import com.casic.missiles.service.system.ISystemLocationService; +import com.casic.missiles.service.system.ISystemPositionService; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import com.casic.missiles.utils.SpringContextUtil; +import io.swagger.annotations.ApiModelProperty; import liquibase.pro.packaged.S; import lombok.RequiredArgsConstructor; +import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; import org.springframework.web.multipart.MultipartFile; @@ -64,6 +70,7 @@ import java.util.stream.Collectors; import static com.casic.missiles.enums.equipment.EquipmentTypeEnum.EQUIPMENT_TYPE_NORMAL; +import static com.casic.missiles.enums.equipment.EquipmentTypeEnum.EQUIPMENT_TYPE_SPECIAL; /** *

@@ -91,9 +98,16 @@ private final IEquipmentModelInfoService modelInfoService; private final EquipmentInfoApprovalMapper infoApprovalMapper; + private final ISystemDeptService systemDeptService; + private final ISystemPositionService positionService; + private final ISystemLocationService locationService; + private ISubcontractCertificateService subcontractCertificateService; + @Value("${casic.role.operator: user}") + private String operatorRoleTip; + @Autowired @@ -101,6 +115,20 @@ this.subcontractCertificateService = subcontractCertificateService; } + @EquipmentLog(key = "#entity.id") + @Override + @Transactional(propagation = Propagation.REQUIRES_NEW) + public boolean saveOrUpdate(EquipmentInfo entity) { + return super.saveOrUpdate(entity); + } + + @EquipmentLog(key = "#entity.id") + @Override + @Transactional(propagation = Propagation.REQUIRES_NEW) + public boolean updateById(EquipmentInfo entity) { + return super.updateById(entity); + } + @Override public Page listPage(Page page, EquipmentQueryForm queryForm) { QueryWrapper queryWrapper = commonQuery(queryForm); @@ -167,10 +195,24 @@ if (CollUtil.isNotEmpty(queryForm.getIds())) { queryWrapper.in("id", queryForm.getIds()); } else { + // 如果当前用户所在组织机构 的级别是受检单位,查本单位下所有部门的;否则查当前用户所在部门的 + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + if(systemDeptService.isCompany(authUser.getDeptId())){ + List scopeDeptIds = permissionContext.getDeptService().getIdsByPid(authUser.getDeptId(),null); + if(ObjectUtil.isNotEmpty(queryForm.getDeptIds())){ + scopeDeptIds.retainAll(queryForm.getDeptIds()); + } + queryForm.setDeptIds(scopeDeptIds); + }else { + queryForm.setDeptId(authUser.getDeptId()); + } + + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()),"dept_id",queryForm.getDeptId()); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentNo()), "equipment_no", queryForm.getEquipmentNo()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"use_position_id",queryForm.getUsePositionId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUsageStatus()), "usage_status", queryForm.getUsageStatus()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "certificate_valid", queryForm.getCertificateValidStart()); @@ -179,12 +221,18 @@ queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getModel()),"model",queryForm.getModel()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"manufacture_no",queryForm.getManufactureNo()); queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"company_id",queryForm.getCompanyId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()),"director_id",queryForm.getDirectorId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"director_name",queryForm.getDirectorName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()),"use_sign",queryForm.getUseSign()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); + if(ObjectUtil.isNotEmpty(queryForm.getGroupId())){ + String existSql = String.format("(select id from eqpt_equipment_group_relation where group_id = %d and equipment_id = eqpt_equipment_info_view.id)",queryForm.getGroupId()); + queryWrapper.exists(existSql); + } + if(ObjectUtil.isNotEmpty(queryForm.getTaskId())){ - String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info.id)",queryForm.getTaskId()); + String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info_view.id)",queryForm.getTaskId()); queryWrapper.exists(existSql); } queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()),"check_organization",queryForm.getCheckOrganization()); @@ -213,6 +261,8 @@ infoForm.setCertificateList(allCertificate(equipmentId, equipmentInfo.getEquipmentType())); infoForm.setTaskInfos(taskInfoService.listByEquipment(equipmentId)); + infoForm.setInstructionsFile(modelInfoService.getById(equipmentInfo.getModelId()).getInstructionsFile()); + } return infoForm; } @@ -424,7 +474,6 @@ equipmentInfo.setCreateTime(new Date()); equipmentInfo.setUpdateTime(new Date()); equipmentInfo.setIsDel(0); - equipmentInfos.add(equipmentInfo); } @@ -438,10 +487,11 @@ @Override public void updateEquipmentStatus(Long equipmentId, String usageStatus) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("id", equipmentId); - updateWrapper.set("usage_status", usageStatus); - this.update(updateWrapper); + EquipmentInfo equipmentInfo = this.getById(equipmentId); + if(ObjectUtil.isNotEmpty(equipmentInfo)){ + equipmentInfo.setUsageStatus(usageStatus); + } + this.updateById(equipmentInfo); } @Override @@ -469,19 +519,29 @@ if (StrUtil.isNotEmpty(meterIdentify)) { equipmentInfo.setMeterIdentify(meterIdentify); } - this.updateById(equipmentInfo); + //当设备证书有效期更新且未到期时,设备状态自动变更为启封 if (!EquipmentStatusTypeEnum.UNSEAL.equals(equipmentInfo.getUsageStatus()) && !EquipmentStatusTypeEnum.SCRAP.equals(equipmentInfo.getUsageStatus()) && certificateValid.after(new Date())) { - this.updateEquipmentStatus(equipmentId, EquipmentStatusTypeEnum.UNSEAL); - statusLogService.saveLog(equipmentId, StatusApprovalTypeEnum.UNSEAL, "设备证书更新"); + String usageStatus = EquipmentStatusTypeEnum.UNSEAL; + equipmentInfo.setUsageStatus(usageStatus); + statusLogService.saveLog(equipmentId, usageStatus, "设备证书更新"); } - + this.updateById(equipmentInfo); } } } + @Override + public void updateLimitInstruction(Long equipmentId, String limitInstruction) { + EquipmentInfo equipmentInfo = this.getById(equipmentId); + if (ObjectUtil.isNotEmpty(equipmentInfo)) { + equipmentInfo.setLimitInstruction(limitInstruction); + this.updateById(equipmentInfo); + } + } + public void removeCertificateInfo(Long equipmentId, Long certificateId) { EquipmentInfo equipmentInfo = this.getById(equipmentId); if (ObjectUtil.isNotEmpty(equipmentInfo)) { @@ -506,9 +566,11 @@ @Override public Page remindListPage(Page page, EquipmentRemindQueryForm queryForm) { QueryWrapper queryWrapper = remindQuery(queryForm); - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - dataScope.setScopeName("dept_id"); - List list = this.baseMapper.selectRemindListPage(page, dataScope, queryWrapper); + queryWrapper.in("usage_status",Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, + EquipmentStatusTypeEnum.DISABLE, + EquipmentStatusTypeEnum.DELAY)); + List list = this.baseMapper.selectRemindListPage(page, null,queryWrapper, + SampleStatusEnum.getSampleStatusByCompletion(Arrays.asList(CheckCompletionEnum.UNCHECK,CheckCompletionEnum.IN_CHECK))); list.forEach(this::warpEquipmentRemindInfo); page.setRecords(list); return page; @@ -517,9 +579,11 @@ @Override public List remindList(EquipmentRemindQueryForm queryForm) { QueryWrapper queryWrapper = remindQuery(queryForm); - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - dataScope.setScopeName("dept_id"); - List list = this.baseMapper.selectRemindList(dataScope, queryWrapper); + queryWrapper.in("usage_status",Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, + EquipmentStatusTypeEnum.DISABLE, + EquipmentStatusTypeEnum.DELAY)); + List list = this.baseMapper.selectRemindList(null, queryWrapper, + SampleStatusEnum.getSampleStatusByCompletion(Arrays.asList(CheckCompletionEnum.UNCHECK,CheckCompletionEnum.IN_CHECK))); list.forEach(this::warpEquipmentRemindInfo); return list; } @@ -533,10 +597,27 @@ } private QueryWrapper remindQuery(EquipmentRemindQueryForm queryForm){ + // 操作手仅能看到自己负责的设备信息,其余角色查看本组织结构下所有 + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + if(authUser.getRoleTips().contains(operatorRoleTip)){ + queryForm.setDirectorId(authUser.getId()); + }else { + List scopeIds = permissionContext.getDeptService().getIdsByPid(authUser.getDeptId(),null); + scopeIds.add(authUser.getDeptId()); + if(CollUtil.isNotEmpty(queryForm.getDeptIds())){ + scopeIds.retainAll(queryForm.getDeptIds()); + } + queryForm.setDeptIds(scopeIds); + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); if (CollUtil.isNotEmpty(queryForm.getIds())) { queryWrapper.in("id", queryForm.getIds()); } else { + + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()),"dept_id",queryForm.getDeptId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"company_id",queryForm.getCompanyId()); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentNo()), "equipment_no", queryForm.getEquipmentNo()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); @@ -544,15 +625,28 @@ queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"manufacture_no",queryForm.getManufactureNo()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"use_position_id",queryForm.getUsePositionId()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUsageStatus()), "usage_status", queryForm.getUsageStatus()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()), "use_sign", queryForm.getUseSign()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()),"check_destination",queryForm.getCheckDestination()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "certificate_valid", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "certificate_valid", queryForm.getCertificateValidEnd()); + + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()),"check_destination",queryForm.getCheckDestination()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckStatus()),"check_status",queryForm.getCheckStatus()); + + queryWrapper.in(CollUtil.isNotEmpty(queryForm.getUsageStatusList()),"usage_status",queryForm.getUsageStatusList()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufacturer()),"manufacturer",queryForm.getManufacturer()); queryWrapper.like(ObjectUtil.isNotEmpty(queryForm.getTaskId()),"taskIds",queryForm.getTaskId()); if (StrUtil.isNotEmpty(queryForm.getTaskStartTime()) || StrUtil.isNotEmpty(queryForm.getTastEndTime())) { queryWrapper.and(i -> { - i.le(StrUtil.isNotEmpty(queryForm.getTaskStartTime()), "task_start_time", queryForm.getTaskStartTime()) - .or() - .ge(StrUtil.isNotEmpty(queryForm.getTastEndTime()), "task_end_time", queryForm.getTastEndTime()); + i.le(StrUtil.isNotEmpty(queryForm.getTaskStartTime()), "task_start_time", queryForm.getTastEndTime()) + .ge(StrUtil.isNotEmpty(queryForm.getTastEndTime()), "task_end_time", queryForm.getTaskStartTime()); + +// i.le(StrUtil.isNotEmpty(queryForm.getTaskStartTime()), "task_start_time", queryForm.getTaskStartTime()) +// .or() +// .ge(StrUtil.isNotEmpty(queryForm.getTastEndTime()), "task_end_time", queryForm.getTastEndTime()); }); } } @@ -562,6 +656,21 @@ } @Override + public Page orderSelectListPage(Page page, EquipmentRemindQueryForm queryForm) { + QueryWrapper queryWrapper = remindQuery(queryForm); + queryWrapper.in("usage_status",Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, + EquipmentStatusTypeEnum.DISABLE, + EquipmentStatusTypeEnum.DELAY, + EquipmentStatusTypeEnum.SEAL)); + queryWrapper.eq("check_status",0); //未送检设备 + List list = this.baseMapper.selectRemindList(null, queryWrapper, + SampleStatusEnum.getSampleStatusByCompletion(Arrays.asList(CheckCompletionEnum.UNCHECK,CheckCompletionEnum.IN_CHECK))); + list.forEach(this::warpEquipmentRemindInfo); + page.setRecords(list); + return page; + } + + @Override public List expireTrend(String type) { switch (type){ case "month": @@ -598,9 +707,21 @@ queryWrapper.le("certificate_valid", endTime); queryWrapper.eq("is_del",0); - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - dataScope.setScopeName("dept_id"); - return this.baseMapper.selectList(dataScope,queryWrapper); + queryWrapper.in("usage_status",Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, + EquipmentStatusTypeEnum.DISABLE, + EquipmentStatusTypeEnum.DELAY)); + + // 操作手仅能看到自己负责的设备信息,其余角色查看本组织结构下所有 + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + if(authUser.getRoleTips().contains(operatorRoleTip)){ + queryWrapper.eq("director_id",authUser.getId()); + }else { + List scopeIds = permissionContext.getDeptService().getIdsByPid(authUser.getDeptId(),null); + scopeIds.add(authUser.getDeptId()); + queryWrapper.in("dept_id",scopeIds); + } + + return this.baseMapper.selectList(null,queryWrapper); } private List expireTrendByMonth(){ @@ -611,7 +732,7 @@ startCal.set(Calendar.SECOND,0); Calendar endCal = Calendar.getInstance(); - endCal.add(Calendar.MONTH,1); + endCal.add(Calendar.MONTH,3); endCal.set(Calendar.HOUR_OF_DAY,23); endCal.set(Calendar.MINUTE,59); endCal.set(Calendar.SECOND,59); @@ -634,8 +755,19 @@ @Override public Page certificateListPage(Page page, EquipmentCertificateQueryForm queryForm) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - dataScope.setScopeName("e.dept_id"); + // 如果当前用户所在组织机构 的级别是受检单位,查本单位下所有部门的;否则查当前用户所在部门的 + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + if(systemDeptService.isCompany(authUser.getDeptId())){ + List scopeDeptIds = permissionContext.getDeptService().getIdsByPid(authUser.getDeptId(),null); + if(ObjectUtil.isNotEmpty(queryForm.getDeptIds())){ + scopeDeptIds.retainAll(queryForm.getDeptIds()); + } + queryForm.setDeptIds(scopeDeptIds); + }else { + queryForm.setDeptId(authUser.getDeptId()); + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCertificateNo()), "c.certificate_report_no", queryForm.getCertificateNo()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCertificateName()), "c.certificate_report_name", queryForm.getCertificateName()); @@ -644,10 +776,26 @@ queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()), "'西昌卫星发射中心计量测试站'", queryForm.getCheckOrganization()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "c.expiration_date", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "c.expiration_date", queryForm.getCertificateValidEnd()); + + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getModel()),"e.model",queryForm.getModel()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"e.manufacture_no",queryForm.getManufactureNo()); + queryWrapper.eq("e.is_del", 0); queryWrapper.eq("c.approval_status", ApprovalStatusEnum.PASSED); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()),"e.dept_id",queryForm.getDeptId()); + queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "e.dept_id", queryForm.getDeptIds()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"e.company_id",queryForm.getCompanyId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"e.use_position_id",queryForm.getUsePositionId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "e.use_position", queryForm.getUsePosition()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()),"e.director_id",queryForm.getDirectorId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"e.director_name",queryForm.getDirectorName()); - List list = this.baseMapper.bizCertificateListPage(page, dataScope, queryWrapper); + + List list = this.baseMapper.bizCertificateListPage(page, null, queryWrapper); + for (EquipmentCertificateDTO certificateDTO : list) { + certificateDTO.setDeptName(permissionContext.getDeptService().getDeptName(certificateDTO.getDeptId())); + certificateDTO.setCompanyName(permissionContext.getDeptService().getDeptName(certificateDTO.getCompanyId())); + } page.setRecords(list); return page; } @@ -668,4 +816,76 @@ } taskRelationService.saveBatch(relationList); } + + @Override + public String getFieldName(String fieldName) { + Field[] fields = EquipmentInfo.class.getDeclaredFields(); + for (Field field : fields) { + if (!field.isAccessible()) { + field.setAccessible(true); + } + if(fieldName.equals(field.getName())){ + if(field.isAnnotationPresent(ApiModelProperty.class)){ + ApiModelProperty apiModelProperty = field.getAnnotationsByType(ApiModelProperty.class)[0]; + String notes = apiModelProperty.notes(); + if(StrUtil.isNotEmpty(notes)){ + notes = notes.replace("id","").replace("code",""); + } + return notes; + } + } + } + return null; + } + + @Override + public String getFieldValue(String fieldName, String fieldValue) { + if(StrUtil.isBlank(fieldValue)){ + return fieldValue; + } + Field[] fields = EquipmentInfo.class.getDeclaredFields(); + for (Field field : fields) { + if (!field.isAccessible()) { + field.setAccessible(true); + } + if(fieldName.equals(field.getName())){ + if(field.isAnnotationPresent(ApiModelProperty.class)){ + ApiModelProperty apiModelProperty = field.getAnnotationsByType(ApiModelProperty.class)[0]; + String notes = apiModelProperty.notes(); + if(StrUtil.isNotEmpty(notes)){ + if(notes.contains("code")){ + DictCodeField dictCodeField = field.getAnnotationsByType(DictCodeField.class)[0]; + if (StringUtils.isEmpty(dictCodeField.cacheName())) { + throw new BusinessException(500, "缓存名不能为空"); + } + AbstractDictService dictService = SpringContextUtil.getBean(AbstractDictService.class); + fieldValue = dictService.getDictNameByCode(dictCodeField.cacheName(), fieldValue); + } + if(notes.contains("id")){ + switch (notes){ + case "所在单位id": + case "使用部门id": + fieldValue = permissionContext.getDeptService().getDeptName(fieldValue); + break; + case "使用岗位id": + fieldValue = positionService.getNameById(Long.valueOf(fieldValue)); + break; + case "负责人id": + fieldValue = permissionContext.getUserService().getById(fieldValue).getName(); + break; + case "安装位置id": + fieldValue = locationService.getById(fieldValue).getInstallLocation(); + break; + case "规格型号id": + fieldValue = modelInfoService.getById(fieldValue).getModel(); + break; + } + } + } + + } + } + } + return fieldValue; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModelInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModelInfoServiceImpl.java index 9c5ce09..6510618 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModelInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModelInfoServiceImpl.java @@ -53,11 +53,23 @@ private final IEquipmentInfoApprovalService equipmentInfoApprovalService; private final AbstractPermissionContext permissionContext; + private final String XC_INSPECTABLE = "1"; // 西昌可检 + private final String HK_INSPECTABLE = "2"; // 海口可检 + + private final String XC_LAB = "西昌"; // 西昌可检 + private final String HK_LAB = "海口"; // 海口可检 + + private final String CHECK_DESTINATION_METER = "1"; // 检定去向:计量室 + private final String CHECK_DESTINATION_DELIVERY = "2"; // 检定去向:外送 + @Override @Transactional public void add(EquipmentModelInfo modelInfo) { - Long maxNo = this.baseMapper.selectMaxNo(); - modelInfo.setModelNo(NumberGeneratorUtil.getContactNo(PrefixCodeEnum.EQUIPMENT_MODEL_PREFIX, maxNo)); + if(StrUtil.isNotEmpty(modelInfo.getInspectable())){ + if(StrUtil.isBlank(modelInfo.getCategory())){ + throw new BusinessException(501,"计量站可检,设备分类必填"); + } + } this.save(modelInfo); technicalTargetService.saveByModel(modelInfo.getId(),modelInfo.getTechnicalTargetList()); } @@ -65,6 +77,11 @@ @Override @Transactional public void update(EquipmentModelInfo modelInfo) { + if(StrUtil.isNotEmpty(modelInfo.getInspectable())){ + if(StrUtil.isBlank(modelInfo.getCategory())){ + throw new BusinessException(501,"计量站可检,设备分类必填"); + } + } this.updateById(modelInfo); technicalTargetService.saveByModel(modelInfo.getId(),modelInfo.getTechnicalTargetList()); equipmentInfoService.updateByModel(modelInfo); @@ -90,8 +107,6 @@ @Override public Page listScopePage(Page page, EquipmentModelQueryForm queryForm) { -// DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); -// dataScope.setScopeName("create_dept_id"); QueryWrapper queryWrapper = commonQuery(queryForm); List list = this.baseMapper.listScopePage(null,page,queryWrapper); List technicalTargetList = technicalTargetService.listByModelIds(list.stream().map(EquipmentModelInfo::getId).collect(Collectors.toList())); @@ -111,8 +126,6 @@ @Override public List listScope(EquipmentModelQueryForm queryForm) { -// DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); -// dataScope.setScopeName("create_dept_id"); QueryWrapper queryWrapper = commonQuery(queryForm); List list = this.baseMapper.listScope(null,queryWrapper); List technicalTargetList = technicalTargetService.listByModelIds(list.stream().map(EquipmentModelInfo::getId).collect(Collectors.toList())); @@ -136,35 +149,44 @@ queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getHelpInstruction()),"help_instruction",queryForm.getHelpInstruction()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCategory()),"category",queryForm.getCategory()); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getIds()),"id",queryForm.getIds()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()),"equipment_type",queryForm.getEquipmentType()); return queryWrapper; } @Override - public List listEquipmentName() { + public List listEquipmentName(String equipmentType) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.select("distinct equipment_name as equipment_name"); - -// DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); -// if (!ScopeEnums.ALL_TYPE.equals(dataScope.getScopeEnums())) { -// List dataScopeDeptIds = dataScope.getDeptIds(); -// queryWrapper.in("create_dept_id",dataScopeDeptIds); -// } + queryWrapper.eq(StrUtil.isNotEmpty(equipmentType),"equipment_type",equipmentType); + queryWrapper.orderByAsc("equipment_name"); List> maps = this.listMaps(queryWrapper); return maps.stream().map(i->i.get("equipment_name").toString()).collect(Collectors.toList()); } @Override - public List listModel(String equipmentName) { + public List listModel(String equipmentType, String equipmentName) { QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(StrUtil.isNotEmpty(equipmentType),"equipment_type",equipmentType); queryWrapper.eq("equipment_name",equipmentName); -// DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); -// if (!ScopeEnums.ALL_TYPE.equals(dataScope.getScopeEnums())) { -// List dataScopeDeptIds = dataScope.getDeptIds(); -// queryWrapper.in("create_dept_id",dataScopeDeptIds); -// } queryWrapper.select("distinct model as model"); + queryWrapper.orderByAsc("model"); List> maps = this.listMaps(queryWrapper); return maps.stream().map(i->i.get("model").toString()).collect(Collectors.toList()); } + @Override + public String defaultCheckDestination(Long modelId, Long companyId) { + String defaultLab = this.baseMapper.getLabLocation(companyId); + String inspectable = this.getById(modelId).getInspectable(); + if(StrUtil.isNotEmpty(defaultLab) && StrUtil.isNotEmpty(inspectable)){ + if(inspectable.contains(XC_INSPECTABLE) && defaultLab.contains(XC_LAB)){ + return CHECK_DESTINATION_METER; + }else if(inspectable.contains(HK_INSPECTABLE) && defaultLab.contains(HK_LAB)){ + return CHECK_DESTINATION_METER; + }else { + return CHECK_DESTINATION_DELIVERY; + } + } + return null; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemDeptServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemDeptServiceImpl.java index 8dac37e..4f3e46d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemDeptServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemDeptServiceImpl.java @@ -62,4 +62,10 @@ } return secondDepts; } + + @Override + public boolean isCompany(Long deptId) { + Dept dept = deptService.getById(deptId); + return dept.getPid() <= 0; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemLocationServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemLocationServiceImpl.java index c77c548..5f3008c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemLocationServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemLocationServiceImpl.java @@ -97,28 +97,31 @@ } @Override - public Page listPage(Page page, Long searchId, String positionName) { - QueryWrapper queryWrapper = getQueryWrapper(searchId, positionName); + public Page listPage(Page page, Long searchId,Long positionId, String installLocation) { + QueryWrapper queryWrapper = getQueryWrapper(searchId,positionId, installLocation); page = this.page(page, queryWrapper); page.getRecords().forEach(this::wrapper); return page; } @Override - public List list(Long searchId, String positionName) { - QueryWrapper queryWrapper = getQueryWrapper(searchId, positionName); + public List list(Long searchId,Long positionId, String installLocation) { + QueryWrapper queryWrapper = getQueryWrapper(searchId,positionId, installLocation); List list = this.list(queryWrapper); list.forEach(this::wrapper); return list; } @NotNull - private static QueryWrapper getQueryWrapper(Long searchId, String positionName) { + private static QueryWrapper getQueryWrapper(Long searchId,Long positionId, String installLocation) { QueryWrapper queryWrapper = new QueryWrapper<>(); - if(StrUtil.isNotEmpty(positionName)){ - queryWrapper.like("position_name", positionName); + if(ObjectUtil.isNotEmpty(positionId)){ + queryWrapper.eq("position_id",positionId); } - if(ObjectUtil.isEmpty(searchId)){ + if(StrUtil.isNotEmpty(installLocation)){ + queryWrapper.like("install_location", installLocation); + } + if(ObjectUtil.isNotEmpty(searchId)){ queryWrapper.and(i->i.eq("company_id", searchId) .or().eq("dept_id", searchId) .or().eq("sub_system_id", searchId)); 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml index a9033f9..c49776d 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml @@ -4,71 +4,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - id, approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + id + , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction + + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml index 62449ec..f4d9936 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml @@ -42,6 +42,12 @@ + + + + + + @@ -50,12 +56,20 @@ product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid as certificateValid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time, - is_del,model_id,help_instruction + is_del,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction select - from eqpt_equipment_info + from eqpt_equipment_info_view ${ew.sqlSegment} @@ -110,7 +124,7 @@ eqpt_remind_all as ( select e.id as equipment_id, - IFNULL(m.remind_time,0) as remind_time + IFNULL(m.remind_time,90) as remind_time from eqpt_equipment_info e left join eqpt_remind m on e.id = m.equipment_id ), @@ -118,20 +132,32 @@ select id,task_name,CONCAT(DATE_FORMAT(start_time,'%Y-%m-%d'),"~",DATE_FORMAT(end_time,'%Y-%m-%d')) as time_ext,start_time,end_time from eqpt_equipment_task_info ), + latest_sample_relation AS ( + SELECT * + FROM biz_business_order_sample_relation a + WHERE id = ( + SELECT max( id ) + FROM biz_business_order_sample_relation b + WHERE a.sample_id = b.sample_id ) + ), eqpt_ext as ( select e.* , - DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, - GROUP_CONCAT(t.task_name) as taskNames, - GROUP_CONCAT(t.time_ext) as taskTimes, - GROUP_CONCAT(t.id) as taskIds, - min(t.start_time) as task_start_time, - max(t.end_time) as task_end_time - from eqpt_equipment_info e + DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, + GROUP_CONCAT(t.task_name) as taskNames, + GROUP_CONCAT(t.time_ext) as taskTimes, + GROUP_CONCAT(t.id) as taskIds, + min(t.start_time) as task_start_time, + max(t.end_time) as task_end_time, + (case when lsr.sample_status in + #{item} + then 1 else 0 end) as check_status + from eqpt_equipment_info_view e left join eqpt_remind_all a on e.id = a.equipment_id left join eqpt_equipment_task_relation r on e.id = r.equipment_id left join task_ext t on r.task_id = t.id + left join latest_sample_relation lsr on lsr.sample_id = e.id where e.certificate_valid is not null - group by e.id,e.certificate_valid,a.remind_time + group by e.id,e.certificate_valid,a.remind_time,lsr.sample_status ) select * from eqpt_ext @@ -163,6 +189,9 @@ e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, + e.model as model, + e.company_id as companyId, + e.manufacture_no as manufactureNo, c.certificate_report_no as certificateNo, c.certificate_report_name as certificateName, '西昌卫星发射中心计量测试站' as checkOrganization, @@ -173,7 +202,7 @@ c.update_time as updateTime, '1' as certificateType, c.remark as remark - from biz_business_certificate_report c ,eqpt_equipment_info e + from biz_business_certificate_report c ,eqpt_equipment_info_view e where c.sample_id = e.id diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml index 097c405..2ddebe6 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,6 +13,7 @@ + @@ -21,7 +22,7 @@ - id, model_no, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, create_user_id, create_dept_id, create_time, update_time + id, equipment_type, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, inspectable, create_user_id, create_dept_id, create_time, update_time + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java index c69cc82..d1a2bd1 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.service.equipment.IEquipmentGroupInfoService; import io.swagger.annotations.Api; @@ -60,14 +61,11 @@ return ReturnUtil.success(); } - @ApiImplicitParams({ - @ApiImplicitParam(name = "groupName",value = "分组名称",dataType = "String",paramType = "query") - }) @ApiOperation("分组分页列表") - @GetMapping("listPage") - public ReturnDTO> listPage(String groupName){ + @PostMapping("listPage") + public ReturnDTO> listPage(@RequestBody EquipmentGroupQueryForm queryForm){ Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,groupName))); + return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,queryForm))); } @ApiImplicitParams({ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 56b6814..3130c5c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.business.LabelBindDTO; import com.casic.missiles.dto.equipment.*; import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; import com.casic.missiles.service.equipment.IEquipmentInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -36,6 +37,14 @@ public class EquipmentInfoController extends ExportController { private final IEquipmentInfoService equipmentInfoService; + private final IEquipmentInfoApprovalService approvalService; + + @ApiOperation("直接编辑设备") + @PostMapping("/info/update") + public ReturnDTO update(@RequestBody EquipmentApprovalForm approvalForm){ + approvalService.updateEquipmentInfo(approvalForm); + return ReturnUtil.success(); + } @ApiOperation("设备分页列表") @PostMapping("/info/listPage") @@ -152,5 +161,14 @@ return ReturnUtil.success(); } + @ApiOperation("到期提醒分页列表") + @PostMapping("/orderSelect/listPage") + @ResponseBody + public ReturnDTO> EquipmentOrderSelectQueryForm(@RequestBody EquipmentRemindQueryForm queryForm) { + Page page = PageFactory.defaultPage(); + page = equipmentInfoService.orderSelectListPage(page, queryForm); + return ReturnUtil.success(super.packForBT(page)); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index 044d245..ccbd668 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -103,14 +103,20 @@ @ApiOperation("设备名称列表") @GetMapping("listEquipmentName") - public ReturnDTO> listEquipmentName(){ - return ReturnUtil.success(modelInfoService.listEquipmentName()); + public ReturnDTO> listEquipmentName(String equipmentType){ + return ReturnUtil.success(modelInfoService.listEquipmentName(equipmentType)); } @ApiOperation("规格型号列表") @GetMapping("listModel") - public ReturnDTO> listModel(String equipmentName){ - return ReturnUtil.success(modelInfoService.listModel(equipmentName)); + public ReturnDTO> listModel(String equipmentType, String equipmentName){ + return ReturnUtil.success(modelInfoService.listModel(equipmentType,equipmentName)); + } + + @ApiOperation("获取默认检定去向") + @GetMapping("defaultCheckDestination") + public ReturnDTO defaultCheckDestination(Long modelId, Long companyId){ + return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java index 7e79008..1fc1f9c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.CertificateUpdate; +import com.casic.missiles.dto.equipment.LimitInstructionUpdate; import com.casic.missiles.model.plan.OrderReceive; import com.casic.missiles.model.plan.SampleStatueUpdate; import com.casic.missiles.service.equipment.IEquipmentInfoService; @@ -55,4 +56,11 @@ return ReturnUtil.success(); } + @ApiOperation("更新限用说明") + @PostMapping("/limitInstructionUpdate") + public ReturnDTO updateLimitInstruction(@RequestBody LimitInstructionUpdate updateForm) { + equipmentInfoService.updateLimitInstruction(updateForm.getEquipmentId(), updateForm.getLimitInstruction()); + return ReturnUtil.success(); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java index e314003..73d02ec 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java @@ -1,7 +1,18 @@ package com.casic.missiles.controller.system; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.system.SystemLocation; +import com.casic.missiles.service.system.ISystemLocationService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** *

@@ -11,8 +22,45 @@ * @author zhangyingjie * @since 2023-11-15 */ +@Api(tags = "安装位置管理") @RestController -@RequestMapping("/system-location") -public class SystemLocationController { +@RequestMapping("/system/location") +@RequiredArgsConstructor +public class SystemLocationController extends BaseController { + + private final ISystemLocationService locationService; + + @PostMapping("add") + public ReturnDTO add(@RequestBody SystemLocation systemLocation){ + locationService.add(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("update") + public ReturnDTO update(@RequestBody SystemLocation systemLocation){ + locationService.update(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("delete") + public ReturnDTO delete(@RequestBody SystemLocation systemLocation){ + locationService.delete(systemLocation); + return ReturnUtil.success(); + } + + @GetMapping("listPage") + public ReturnDTO> listPage(Long searchId,Long positionId, String installLocation){ + Page page = PageFactory.defaultPage(); + page = locationService.listPage(page,searchId,positionId, installLocation); + return ReturnUtil.success(super.packForBT(page)); + } + + @GetMapping("list") + public ReturnDTO> list(Long searchId,Long positionId, String installLocation){ + List list = locationService.list(searchId,positionId, installLocation); + return ReturnUtil.success(list); + } + + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java index f9e2f91..d64634a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java @@ -1,6 +1,8 @@ package com.casic.missiles.controller.system; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; @@ -10,6 +12,8 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** *

* 受检系统-系统管理-岗位管理 前端控制器 @@ -22,7 +26,7 @@ @RestController @RequestMapping("/system/position") @RequiredArgsConstructor -public class SystemPositionController { +public class SystemPositionController extends BaseController { private final ISystemPositionService positionService; @@ -45,16 +49,16 @@ } @GetMapping("listPage") - public ReturnDTO listPage(Long searchId,String positionName){ + public ReturnDTO> listPage(Long searchId, String positionName){ Page page = PageFactory.defaultPage(); - positionService.listPage(page,searchId,positionName); - return ReturnUtil.success(); + page = positionService.listPage(page,searchId,positionName); + return ReturnUtil.success(super.packForBT(page)); } @GetMapping("list") - public ReturnDTO list(Long searchId,String positionName){ - positionService.list(searchId,positionName); - return ReturnUtil.success(); + public ReturnDTO> list(Long searchId,String positionName){ + List list = positionService.list(searchId,positionName); + return ReturnUtil.success(list); } diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index 6f0359b..88cce74 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -72,9 +72,9 @@ addresses: http://111.198.10.15:21605/xxl-job-admin executor: # 此执行器的名称 - appname: casic-metering-job + appname: casic-metering-xc-eqpt-job # 此执行器的ip、端口,每个节点对应自己的ip,端口用于任务执行的通信 - ip: 127.0.0.1 + ip: 192.168.20.33 port: 9999 # 此执行器的日志存放路径 logpath: logs/xxl-job/casic-metering-job @@ -122,7 +122,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_remind_relation + table-name: eqpt_equipment_modify_log prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index 7b3c7a2..29a820a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -18,11 +18,15 @@ */ // 系统前缀 String DICT_PREFIX = "eqpt"; + + String EQUIPMENT_TYPE = DICT_PREFIX + "DeviceCategory"; //受检设备使用状态 String EQUIPMENT_USAGE_STATUS = DICT_PREFIX + "DeviceUseStatus"; //受检设备重要等级 String EQUIPMENT_LEVEL = DICT_PREFIX + "DeviceLevel"; + String EQUIPMENT_QUALITY = DICT_PREFIX + "DeviceQuality"; + String EQUIPMENT_CATEGORY = DICT_PREFIX + "DeviceType"; // 设备申请类型 String EQUIPMENT_APPROVAL_TYPE = DICT_PREFIX + "EquipmentApprovalType"; @@ -30,6 +34,8 @@ String EQUIPMENT_STATUS_APPROVAL_TYPE = DICT_PREFIX + "EquipmentStatusApprovalType"; // 设备计量标识 String EQUIPMENT_METER_IDENTITY = DICT_PREFIX + "MeterIdentify"; + + String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; // 计量计划计划分类 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java index 694e48b..aefff4a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.equipment; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.model.equipment.EquipmentAttachment; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentTechnicalTarget; @@ -13,6 +14,8 @@ @Data public class EquipmentApprovalForm extends EquipmentInfoApproval { + @ApiModelProperty("规格型号说明书") + private String instructionsFile; @ApiModelProperty("技术指标列表") private List technicalTargetList; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java index f6448c6..c814444 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java @@ -12,6 +12,9 @@ @Setter public class EquipmentInfoForm extends EquipmentInfo{ + @ApiModelProperty("规格型号说明书") + private String instructionsFile; + @ApiModelProperty("组别信息") @TableField(exist = false) private List groupInfos; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java index bcec504..7803273 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java @@ -10,6 +10,9 @@ @Setter public class EquipmentModelQueryForm { + @ApiModelProperty("设备类型") + private String equipmentType; + @ApiModelProperty("设备名称") private String equipmentName; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java index 03fc0f1..fc2acc8 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java @@ -32,12 +32,21 @@ @ApiModelProperty("所在单位") private Long companyId; - @ApiModelProperty("使用部门") + + @ApiModelProperty("使用部门(单个)") + private Long deptId; + @ApiModelProperty("使用部门(列表)") private List deptIds; + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty("使用岗位") private String usePosition; + @ApiModelProperty("负责人ID") + private Long directorId; + @ApiModelProperty("负责人") private String directorName; @@ -50,6 +59,9 @@ @ApiModelProperty("安装位置") private String installLocation; + @ApiModelProperty("分组id") + private Long groupId; + @ApiModelProperty("参试任务id") private Long taskId; @@ -75,4 +87,5 @@ @ApiModelProperty("使用状态列表[状态维护选择设备时用]") private List usageStatusList; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java index 30b5af3..b6afd18 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java @@ -73,5 +73,52 @@ @TableField("remark") private String remark; + /** + * 所在单位id + */ + @ApiModelProperty("所在单位id") + @TableField(exist = false) + private Long companyId; + + @ApiModelProperty("所在单位名称") + @TableField(exist = false) + private String companyName; + + /** + * 使用部门id + */ + @ApiModelProperty("使用部门id") + @TableField(exist = false) + private Long deptId; + + @ApiModelProperty("使用部门名称") + @TableField(exist = false) + private String deptName; + + /** + * 分系统id + */ + @ApiModelProperty(value = "分系统id") + @TableField(exist = false) + private Long subSystemId; + + @ApiModelProperty("分系统名称") + @TableField(exist = false) + private String subSystemName; + + /** + * 使用岗位id + */ + @ApiModelProperty("岗位ID") + @TableField("position_id") + private Long positionId; + + /** + * 使用岗位名称 + */ + @ApiModelProperty("岗位名称") + @TableField(exist = false) + private String positionName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java index 36575f6..b4f78b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.equipment; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -7,6 +8,8 @@ import java.io.Serializable; import java.util.Date; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.Getter; @@ -55,12 +58,35 @@ @ApiModelProperty("型号规格") @TableField(exist = false) private String model; + + @ApiModelProperty("出厂编号") + @TableField(exist = false) + private String manufactureNo; + @ApiModelProperty("生产厂家") + @TableField(exist = false) + private String manufacturer; + + /** + * 出厂编号 + */ + @ApiModelProperty("负责人") @TableField(exist = false) private String directorName; @ApiModelProperty("计量标识") @TableField(exist = false) private String meterIdentify; + + @ApiModelProperty("计量标识名称") + @TableField(exist = false) + private String meterIdentifyName; + + @ApiModelProperty("使用状态(字典code)") + @TableField(exist = false) + private String usageStatus; + @ApiModelProperty("使用状态名称") + @TableField(exist = false) + private String usageStatusName; @ApiModelProperty("证书有效期") @TableField(exist = false) private Date certificateValid; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java index 21294cf..a8392ff 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java @@ -44,14 +44,14 @@ private static final long serialVersionUID = 1L; - @ApiModelProperty("主键") + @ApiModelProperty(value = "主键") @TableId("id") private Long id; /** * 设备编号 */ - @ApiModelProperty("设备编号") + @ApiModelProperty(value = "设备编号",notes = "统一编号") @TableField("equipment_no") @ExcelProperty(value = "统一编号",index = 0) private String equipmentNo; @@ -59,7 +59,7 @@ /** * 设备名称 */ - @ApiModelProperty("设备名称") + @ApiModelProperty(value = "设备名称",notes = "设备名称") @TableField("equipment_name") @ExcelProperty(value = "设备名称",index = 1) private String equipmentName; @@ -67,14 +67,18 @@ /** * 设备类型(1受检设备;2特种设备) */ - @ApiModelProperty("设备类型(1受检设备;2特种设备)") + @ApiModelProperty(value = "设备类型(1受检设备;2特种设备)",notes = "设备类型code") @TableField("equipment_type") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE) private String equipmentType; + @TableField(exist = false) + private String equipmentTypeName; + /** * 使用状态(字典code) */ - @ApiModelProperty("使用状态(字典code)") + @ApiModelProperty(value = "使用状态(字典code)",notes = "使用状态code") @TableField("usage_status") @DictCodeField(message = "使用状态", cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS) private String usageStatus; @@ -87,28 +91,32 @@ /** * 等级(字典code) */ - @ApiModelProperty("等级(字典code)") + @ApiModelProperty(value = "等级(字典code)",notes = "重要等级code") @TableField("level") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_LEVEL) private String level; + @TableField(exist = false) + private String levelName; + /** * 生产国家 */ - @ApiModelProperty("生产国家") + @ApiModelProperty(value = "生产国家",notes = "生产国家") @TableField("product_country") private String productCountry; /** * 生产厂家 */ - @ApiModelProperty("生产厂家") + @ApiModelProperty(value = "生产厂家",notes = "生产厂家") @TableField("manufacturer") private String manufacturer; /** * 出厂编号 */ - @ApiModelProperty("出厂编号") + @ApiModelProperty(value = "出厂编号",notes = "出厂编号") @TableField("manufacture_no") @ExcelProperty(value = "出厂编号",index = 3) private String manufactureNo; @@ -116,28 +124,28 @@ /** * 生产日期 */ - @ApiModelProperty("生产日期") + @ApiModelProperty(value = "生产日期",notes = "生产日期") @TableField("product_date") private Date productDate; /** * 单价(万元) */ - @ApiModelProperty("单价(万元)") + @ApiModelProperty(value = "单价(万元)",notes = "设备单价(万元)") @TableField("unit_price") private BigDecimal unitPrice; /** * 购进日期 */ - @ApiModelProperty("购进日期") + @ApiModelProperty(value = "购进日期",notes = "购进日期") @TableField("purchase_date") private Date purchaseDate; /** * 型号规格 */ - @ApiModelProperty("型号规格") + @ApiModelProperty(value = "型号规格",notes = "型号规格") @TableField("model") @ExcelProperty(value = "型号规格",index = 2) private String model; @@ -145,14 +153,18 @@ /** * 质量状况 */ - @ApiModelProperty("质量状况") + @ApiModelProperty(value = "质量状况",notes = "质量状况code") @TableField("quality_condition") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_QUALITY) private String qualityCondition; + @TableField(exist = false) + private String qualityConditionName; + /** * 所在单位id */ - @ApiModelProperty("所在单位id") + @ApiModelProperty(value = "所在单位id",notes = "所在单位id") @TableField("company_id") private Long companyId; @@ -163,7 +175,7 @@ /** * 使用部门id */ - @ApiModelProperty("使用部门id") + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") @TableField("dept_id") private Long deptId; @@ -174,14 +186,17 @@ /** * 设备分类(字典code) */ - @ApiModelProperty("设备分类(字典code)") + @ApiModelProperty(value = "设备分类(字典code)",notes = "设备分类code") @TableField("category") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CATEGORY) private String category; + @TableField(exist = false) + private String categoryName; /** * 检定周期(月) */ - @ApiModelProperty("检定周期(月)") + @ApiModelProperty(value = "检定周期(月)",notes = "检定周期(月)") @TableField("check_cycle") @ExcelProperty(value = "检定周期(月)",index = 6) @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, horizontalAlignment = HorizontalAlignmentEnum.LEFT) @@ -190,7 +205,7 @@ /** * 备注 */ - @ApiModelProperty("备注") + @ApiModelProperty(value = "备注",notes = "备注") @TableField("remark") @ExcelProperty(value = "备注",index = 9) private String remark; @@ -198,28 +213,28 @@ /** * 说明书(minio存储文件名)(多个用,拼接) */ - @ApiModelProperty("说明书(minio存储文件名)(多个用,拼接)") + @ApiModelProperty(value = "说明书(minio存储文件名)(多个用,拼接)") @TableField("instructions_file") private String instructionsFile; /** * 检定机构 */ - @ApiModelProperty("检定机构") + @ApiModelProperty(value = "检定机构",notes = "检定(校准)机构") @TableField("check_organization") private String checkOrganization; /** * 检定日期 */ - @ApiModelProperty("检定日期") + @ApiModelProperty(value = "检定日期",notes = "检定(校准)日期") @TableField("check_date") private Date checkDate; /** * 证书有效期 */ - @ApiModelProperty("证书有效期") + @ApiModelProperty(value = "证书有效期",notes = "证书有效期") @TableField("certificate_valid") @ExcelProperty(value = "证书有效期",index = 7, converter = DateExcelConverter.class) private Date certificateValid; @@ -227,7 +242,7 @@ /** * 计量标识 */ - @ApiModelProperty("计量标识") + @ApiModelProperty(value = "计量标识",notes = "计量标识code") @TableField("meter_identify") @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY) private String meterIdentify; @@ -237,17 +252,28 @@ @ExcelProperty(value = "计量标识",index = 5) private String meterIdentifyName; + @ApiModelProperty(value = "使用岗位id",notes = "使用岗位id") + @TableField("use_position_id") + private String usePositionId; + /** * 使用岗位 */ @ApiModelProperty("使用岗位") - @TableField("use_position") + @TableField(exist = false) @ExcelProperty(value = "使用岗位",index = 4) private String usePosition; /** * 负责人 */ + @ApiModelProperty(value = "负责人id",notes = "负责人id") + @TableField("director_id") + private String directorId; + + /** + * 负责人 + */ @ApiModelProperty("负责人") @TableField("director_name") private String directorName; @@ -255,17 +281,25 @@ /** * RFID标签绑定 */ - @ApiModelProperty("RFID标签绑定") + @ApiModelProperty(value = "RFID标签绑定",notes = "RFID标签绑定") @TableField("RFID") private String rfid; /** * 在用信息(字典code) */ - @ApiModelProperty("在用信息(字典code)") + @ApiModelProperty(value = "在用信息(字典code)",notes = "在用信息code") @TableField("use_sign") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE) private String useSign; + @TableField(exist = false) + private String useSignName; + + @ApiModelProperty(value = "安装位置id",notes = "安装位置id") + @TableField("install_location_id") + private Long installLocationId; + /** * 安装位置(选择) */ @@ -276,7 +310,7 @@ /** * 安装位置(自定义编写) */ - @ApiModelProperty("安装位置(自定义编写)") + @ApiModelProperty(value = "安装位置(自定义编写)",notes = "详细位置") @TableField("install_location_ext") private String installLocationExt; @@ -290,7 +324,7 @@ /** * 备注(扩展) */ - @ApiModelProperty("备注(扩展)") + @ApiModelProperty(value = "备注(扩展)",notes = "备注") @TableField("remark_ext") private String remarkExt; @@ -327,14 +361,25 @@ @TableLogic(value = "0",delval = "1") private Integer isDel; - @ApiModelProperty("规格型号id") + @ApiModelProperty(value = "规格型号id",notes = "规格型号id") @TableField("model_id") private Long modelId; - @ApiModelProperty("辅助字段") + @ApiModelProperty(value = "辅助字段",notes = "辅助字段") @TableField("help_instruction") private String helpInstruction; + @ApiModelProperty(value = "检定去向",notes = "检定去向") + @TableField("check_destination") + private String checkDestination; + + @ApiModelProperty(value = "限用说明",notes = "限用说明") + @TableField("limit_instruction") + private String limitInstruction; + + @ApiModelProperty("分组名称") + @TableField(exist = false) + private String groupNames; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java index 13eeef8..060aa33 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java @@ -101,8 +101,13 @@ */ @ApiModelProperty("使用状态(字典code)") @TableField("usage_status") + @DictCodeField(message = "使用状态", cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS) private String usageStatus; + @ApiModelProperty("使用状态名称") + @TableField(exist = false) + private String usageStatusName; + /** * 等级(字典code) */ @@ -253,6 +258,10 @@ @TableField(exist = false) private String meterIdentifyName; + @ApiModelProperty("使用岗位id") + @TableField("use_position_id") + private String usePositionId; + /** * 使用岗位 */ @@ -263,6 +272,12 @@ /** * 负责人 */ + @ApiModelProperty("负责人id") + @TableField("director_id") + private String directorId; + /** + * 负责人 + */ @ApiModelProperty("负责人") @TableField("director_name") private String directorName; @@ -281,6 +296,10 @@ @TableField("use_sign") private String useSign; + @ApiModelProperty("安装位置id") + @TableField("install_location_id") + private Long installLocationId; + /** * 安装位置(选择) */ @@ -347,6 +366,14 @@ @TableField("help_instruction") private String helpInstruction; + @ApiModelProperty("检定去向") + @TableField("check_destination") + private String checkDestination; + + @ApiModelProperty("限用说明") + @TableField("limit_instruction") + private String limitInstruction; + @ApiModelProperty("任务id") @TableField(exist = false) private String taskId; @@ -363,4 +390,7 @@ @TableField(exist = false) private List taskInfos; + @ApiModelProperty("分组名称") + @TableField(exist = false) + private String groupNames; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java index 471e8c8..d4b20e9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java @@ -48,10 +48,15 @@ /** * 型号规格编号 */ - @ApiModelProperty("型号规格编号") - @TableField("model_no") - @ExcelProperty("型号规格编号") - private String modelNo; + @ApiModelProperty("设备类型") + @TableField("equipment_type") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE) + private String equipmentType; + + @ApiModelProperty("设备类型名称") + @TableField(exist = false) + @ExcelProperty("设备类型") + private String equipmentTypeName; /** * 设备名称 @@ -113,6 +118,10 @@ @ExcelProperty("备注") private String remark; + @ApiModelProperty("计量站是否可检(1西昌可检;2海口可检,多个用,拼接)") + @TableField("inspectable") + private String inspectable; + /** * 创建人id */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java index d495e2e..a78c41a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java @@ -83,6 +83,7 @@ /** * 安装位置 */ + @ApiModelProperty("安装位置") @TableField("install_location") private String installLocation; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java index d5417d4..633af3f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import java.util.List; @@ -23,7 +24,7 @@ void deleteGroup(Long groupId); - Page listPage(Page page, String groupName); + Page listPage(Page page, EquipmentGroupQueryForm queryForm); EquipmentGroupForm detail(Long groupId); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java index 06d0cbd..222ebdd 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java @@ -3,6 +3,7 @@ import com.casic.missiles.dto.equipment.EquipmentApprovalLog; import com.casic.missiles.dto.equipment.EquipmentQueryForm; import com.casic.missiles.dto.equipment.EquipmentApprovalForm; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentModelInfo; import com.casic.missiles.service.ICommonApprovalService; @@ -19,6 +20,14 @@ */ public interface IEquipmentInfoApprovalService extends ICommonApprovalService { + boolean updateEquipmentInfo(EquipmentApprovalForm approvalForm); + + boolean checkRfidRepeat(String rfid, Long equipmentId); + + String checkLocation(Long installLocationId, String usageStatus, Long equipmentId); + + void saveTurnoverLog(EquipmentInfo newObj, EquipmentInfo oldObj, Long createUserId); + Long saveOrUpdateApproval(EquipmentApprovalForm approvalForm); EquipmentApprovalForm approvalInfoDetail(Long approvalId); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index acec159..dde436d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -29,6 +29,8 @@ */ public interface IEquipmentInfoService extends IService { + + Page listPage(Page page, EquipmentQueryForm queryForm); List list(EquipmentQueryForm queryForm); @@ -52,6 +54,9 @@ void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date certificateValid, String meterIdentify); + void updateLimitInstruction(Long equipmentId, String limitInstruction); + + void removeCertificateInfo(Long equipmentId, Long certificateId); Page remindListPage(Page page, EquipmentRemindQueryForm queryForm) @@ -67,4 +72,10 @@ (Page page, EquipmentCertificateQueryForm queryForm); void bindTask(EquipmentTaskBindForm bindForm); + + String getFieldName(String field); + String getFieldValue(String field, String fieldValue); + + Page orderSelectListPage(Page page, EquipmentRemindQueryForm queryForm); + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java index 19afa01..4e532a7 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java @@ -28,8 +28,10 @@ List listScope(EquipmentModelQueryForm queryForm); - List listEquipmentName(); + List listEquipmentName(String equipmentType); - List listModel(String equipmentName); + List listModel(String equipmentType, String equipmentName); + + String defaultCheckDestination(Long modelId,Long companyId); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java index 4a89b12..5608317 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java @@ -2,11 +2,16 @@ import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.constants.MeterDictCode; +import com.casic.missiles.core.application.service.AbstractDeptService; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.mapper.equipment.EquipmentGroupInfoMapper; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.model.equipment.EquipmentGroupRelation; @@ -31,6 +36,8 @@ public class EquipmentGroupInfoServiceImpl extends ServiceImpl implements IEquipmentGroupInfoService { private final IEquipmentGroupRelationService groupRelationService; + private final AbstractDeptService deptService; + private final AbstractDictService dictService; @Override @Transactional @@ -62,14 +69,25 @@ groupRelationService.deleteByGroupId(groupId); } - // todo datascope @Override - public Page listPage(Page page, String groupName) { + public Page listPage(Page page, EquipmentGroupQueryForm queryForm) { QueryWrapper queryWrapper = new QueryWrapper<>(); - if (StrUtil.isNotEmpty(groupName)) { - queryWrapper.like("binary group_name", groupName); - } - return this.page(page, queryWrapper); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"p.company_id",queryForm.getCompanyId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()),"p.dept_id",queryForm.getDeptId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getSubSystemId()),"p.sub_system_id",queryForm.getSubSystemId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getPositionId()),"g.position_id",queryForm.getPositionId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getGroupName()), "binary g.group_name", queryForm.getGroupName()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCreateUserId()),"g.create_user_id",queryForm.getCreateUserId()); + List list = this.baseMapper.listPage(page, queryWrapper); + list.forEach(this::wrapper); + page.setRecords(list); + return page; + } + + private void wrapper(EquipmentGroupInfo info) { + info.setCompanyName(deptService.getDeptName(info.getCompanyId())); + info.setDeptName(deptService.getDeptName(info.getDeptId())); + info.setSubSystemName(deptService.getDeptName(info.getSubSystemId())); } @Override @@ -80,6 +98,11 @@ groupForm.setGroupInfo(groupInfo); List relations = groupRelationService.listByGroup(groupId); + relations.forEach(i->{ + i.setMeterIdentifyName(dictService.getDictNameByCode(MeterDictCode.EQUIPMENT_METER_IDENTITY,i.getMeterIdentify())); + i.setUsageStatusName(dictService.getDictNameByCode(MeterDictCode.EQUIPMENT_USAGE_STATUS,i.getUsageStatus())); + + }); groupForm.setEquipmentList(relations); return groupForm; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java index 0a5a5fe..5456965 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java @@ -5,9 +5,12 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.equipment.EquipmentApprovalLog; @@ -16,6 +19,7 @@ import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.PrefixCodeEnum; +import com.casic.missiles.enums.equipment.EquipmentStatusTypeEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; @@ -81,6 +85,30 @@ @Autowired private IEquipmentTaskRelationService taskRelationService; + @Autowired + private IEquipmentModelInfoService modelInfoService; + + @Override + public boolean updateEquipmentInfo(EquipmentApprovalForm approvalForm) { + if(checkRfidRepeat(approvalForm.getRfid(),approvalForm.getEquipmentId())){ + throw new BusinessException(500,"RFID标签已使用"); + } + String checkLoc = checkLocation(approvalForm.getInstallLocationId(),approvalForm.getUsageStatus(),approvalForm.getEquipmentId()); + if(StrUtil.isNotEmpty(checkLoc)){ + throw new BusinessException(500,String.format("当前安装位置已存在一台在用设备,编号为%s",checkLoc)); + } + + attachmentService.saveByEquipment(approvalForm.getEquipmentId(), approvalForm.getAttachments()); + taskRelationService.saveByEquipment(approvalForm.getEquipmentId(),approvalForm.getTaskInfos()); + if (EQUIPMENT_TYPE_SPECIAL.equals(approvalForm.getEquipmentType())) { + specialCertificateService.saveCertificateList(approvalForm.getEquipmentId(), approvalForm.getCertificateList()); + } + EquipmentInfo info = new EquipmentInfo(); + BeanUtil.copyProperties(approvalForm, info); + info.setId(approvalForm.getEquipmentId()); + saveTurnoverLog(info, null, approvalForm.getCreateUserId()); + return equipmentInfoService.updateById(info); + } @Override @Transactional @@ -91,6 +119,12 @@ if(checkRfidRepeat(approvalForm.getRfid(),approvalForm.getEquipmentId())){ throw new BusinessException(500,"RFID标签已使用"); } + String checkLoc = this.checkLocation(approvalForm.getInstallLocationId(),approvalForm.getUsageStatus(),approvalForm.getEquipmentId()); + if(StrUtil.isNotEmpty(checkLoc)){ + throw new BusinessException(500,String.format("当前安装位置已存在一台在用设备,编号为%s",checkLoc)); + } + + if(ObjectUtil.isEmpty(approvalForm.getCreateUserId())){ AuthUser authUser = permissionContext.getAuthService().getLoginUser(); approvalForm.setCreateUserId(authUser.getId()); @@ -170,10 +204,19 @@ return updateApprovalStatus(submitRequest.getId(), ApprovalStatusEnum.IN_APPROVED); } - private boolean checkRfidRepeat(String rfid, Long equipmentId){ + @Override + public boolean checkRfidRepeat(String rfid, Long equipmentId){ return StrUtil.isNotEmpty(rfid) && this.baseMapper.checkRfid(rfid, equipmentId) > 0; } + @Override + public String checkLocation(Long installLocationId, String usageStatus, Long equipmentId){ + if(ObjectUtil.isNotEmpty(installLocationId) && EquipmentStatusTypeEnum.UNSEAL.equals(usageStatus)){ + return this.baseMapper.checkLocation(installLocationId,EquipmentStatusTypeEnum.UNSEAL,equipmentId); + } + return null; + } + private boolean haveUnfinishedApproval(EquipmentApprovalForm approvalForm){ if(ObjectUtil.isNotEmpty(approvalForm.getEquipmentId())){ QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -188,14 +231,16 @@ public void simpleUpdate(EquipmentApprovalForm approvalForm, EquipmentInfo info) { EquipmentInfo oldObj = SerializationUtils.clone(info); CasicBeanUtil.copySpecifyProperties(approvalForm, info, "checkOrganization", "checkDate", - "certificateValid", "meterIdentify", "usePosition", "directorName", "rfid", - "useSign", "installLocation", "installLocationExt", "testTask", "remarkExt"); + "certificateValid", "meterIdentify", "usePositionId","usePosition","directorId", "directorName", "rfid", + "useSign","installLocationId", "installLocation", "installLocationExt", "testTask", "remarkExt", + "checkDestination","limitInstruction"); saveTurnoverLog(info, oldObj, approvalForm.getCreateUserId()); equipmentInfoService.updateById(info); } - private void saveTurnoverLog(EquipmentInfo newObj, EquipmentInfo oldObj, Long createUserId) { + @Override + public void saveTurnoverLog(EquipmentInfo newObj, EquipmentInfo oldObj, Long createUserId) { if(ObjectUtil.isEmpty(oldObj)){ oldObj = equipmentInfoService.getById(newObj.getId()); } @@ -268,6 +313,8 @@ info.setGroupInfos(groupInfoService.selectByEquipment(info.getEquipmentId())); info.setCertificateList(equipmentInfoService.allCertificate(info.getEquipmentId(),info.getEquipmentType())); info.setTaskInfos(taskInfoService.listByEquipment(info.getEquipmentId())); + info.setInstructionsFile(modelInfoService.getById(info.getModelId()).getInstructionsFile()); + } return info; } @@ -278,7 +325,7 @@ super.warpper(approval); approval.setCompanyName(permissionContext.getDeptService().getDeptName(approval.getCompanyId())); approval.setDeptName(permissionContext.getDeptService().getDeptName(approval.getDeptId())); - //DictCodeUtils.convertDictCodeToName(approval); + DictCodeUtils.convertDictCodeToName(approval); } catch (Exception e) { throw new RuntimeException(e); @@ -287,6 +334,18 @@ } @Override + public List list(Wrapper queryWrapper) { + return this.baseMapper.selectList(queryWrapper); + } + + @Override + public > E page(E page, Wrapper queryWrapper) { + List list = this.baseMapper.selectListPage((Page) page, (QueryWrapper) queryWrapper); + page.setRecords(list); + return page; + } + + @Override public QueryWrapper commonQuery(EquipmentQueryForm queryForm) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); @@ -294,6 +353,7 @@ queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"use_position_id",queryForm.getUsePositionId()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUsageStatus()), "usage_status", queryForm.getUsageStatus()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "certificate_valid", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "certificate_valid", queryForm.getCertificateValidEnd()); @@ -301,12 +361,18 @@ queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getModel()),"model",queryForm.getModel()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"manufacture_no",queryForm.getManufactureNo()); queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"company_id",queryForm.getCompanyId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()),"director_id",queryForm.getDirectorId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"director_name",queryForm.getDirectorName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()),"use_sign",queryForm.getUseSign()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); + if(ObjectUtil.isNotEmpty(queryForm.getGroupId())){ + String existSql = String.format("(select id from eqpt_equipment_group_relation where group_id = %d and equipment_id = eqpt_equipment_info_approval_view.id)",queryForm.getGroupId()); + queryWrapper.exists(existSql); + } + if(ObjectUtil.isNotEmpty(queryForm.getTaskId())){ - String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info.id)",queryForm.getTaskId()); + String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info_approval_view.id)",queryForm.getTaskId()); queryWrapper.exists(existSql); } queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()),"check_organization",queryForm.getCheckOrganization()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java index bbade89..c587261 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java @@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.annotation.EquipmentLog; import com.casic.missiles.constants.MeterDictCode; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; @@ -27,10 +28,7 @@ import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.PrefixCodeEnum; -import com.casic.missiles.enums.equipment.EquipmentCertificateTypeEnum; -import com.casic.missiles.enums.equipment.EquipmentStatusTypeEnum; -import com.casic.missiles.enums.equipment.EquipmentTypeEnum; -import com.casic.missiles.enums.equipment.StatusApprovalTypeEnum; +import com.casic.missiles.enums.equipment.*; import com.casic.missiles.enums.plan.CheckCompletionEnum; import com.casic.missiles.enums.plan.SampleStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -46,13 +44,21 @@ import com.casic.missiles.service.status.IEquipmentStatusLogService; import com.casic.missiles.service.subcontract.ISubcontractCertificateService; import com.casic.missiles.service.system.IRemindConfigService; +import com.casic.missiles.service.system.ISystemDeptService; +import com.casic.missiles.service.system.ISystemLocationService; +import com.casic.missiles.service.system.ISystemPositionService; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import com.casic.missiles.utils.SpringContextUtil; +import io.swagger.annotations.ApiModelProperty; import liquibase.pro.packaged.S; import lombok.RequiredArgsConstructor; +import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; import org.springframework.web.multipart.MultipartFile; @@ -64,6 +70,7 @@ import java.util.stream.Collectors; import static com.casic.missiles.enums.equipment.EquipmentTypeEnum.EQUIPMENT_TYPE_NORMAL; +import static com.casic.missiles.enums.equipment.EquipmentTypeEnum.EQUIPMENT_TYPE_SPECIAL; /** *

@@ -91,9 +98,16 @@ private final IEquipmentModelInfoService modelInfoService; private final EquipmentInfoApprovalMapper infoApprovalMapper; + private final ISystemDeptService systemDeptService; + private final ISystemPositionService positionService; + private final ISystemLocationService locationService; + private ISubcontractCertificateService subcontractCertificateService; + @Value("${casic.role.operator: user}") + private String operatorRoleTip; + @Autowired @@ -101,6 +115,20 @@ this.subcontractCertificateService = subcontractCertificateService; } + @EquipmentLog(key = "#entity.id") + @Override + @Transactional(propagation = Propagation.REQUIRES_NEW) + public boolean saveOrUpdate(EquipmentInfo entity) { + return super.saveOrUpdate(entity); + } + + @EquipmentLog(key = "#entity.id") + @Override + @Transactional(propagation = Propagation.REQUIRES_NEW) + public boolean updateById(EquipmentInfo entity) { + return super.updateById(entity); + } + @Override public Page listPage(Page page, EquipmentQueryForm queryForm) { QueryWrapper queryWrapper = commonQuery(queryForm); @@ -167,10 +195,24 @@ if (CollUtil.isNotEmpty(queryForm.getIds())) { queryWrapper.in("id", queryForm.getIds()); } else { + // 如果当前用户所在组织机构 的级别是受检单位,查本单位下所有部门的;否则查当前用户所在部门的 + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + if(systemDeptService.isCompany(authUser.getDeptId())){ + List scopeDeptIds = permissionContext.getDeptService().getIdsByPid(authUser.getDeptId(),null); + if(ObjectUtil.isNotEmpty(queryForm.getDeptIds())){ + scopeDeptIds.retainAll(queryForm.getDeptIds()); + } + queryForm.setDeptIds(scopeDeptIds); + }else { + queryForm.setDeptId(authUser.getDeptId()); + } + + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()),"dept_id",queryForm.getDeptId()); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentNo()), "equipment_no", queryForm.getEquipmentNo()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"use_position_id",queryForm.getUsePositionId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUsageStatus()), "usage_status", queryForm.getUsageStatus()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "certificate_valid", queryForm.getCertificateValidStart()); @@ -179,12 +221,18 @@ queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getModel()),"model",queryForm.getModel()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"manufacture_no",queryForm.getManufactureNo()); queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"company_id",queryForm.getCompanyId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()),"director_id",queryForm.getDirectorId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"director_name",queryForm.getDirectorName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()),"use_sign",queryForm.getUseSign()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); + if(ObjectUtil.isNotEmpty(queryForm.getGroupId())){ + String existSql = String.format("(select id from eqpt_equipment_group_relation where group_id = %d and equipment_id = eqpt_equipment_info_view.id)",queryForm.getGroupId()); + queryWrapper.exists(existSql); + } + if(ObjectUtil.isNotEmpty(queryForm.getTaskId())){ - String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info.id)",queryForm.getTaskId()); + String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info_view.id)",queryForm.getTaskId()); queryWrapper.exists(existSql); } queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()),"check_organization",queryForm.getCheckOrganization()); @@ -213,6 +261,8 @@ infoForm.setCertificateList(allCertificate(equipmentId, equipmentInfo.getEquipmentType())); infoForm.setTaskInfos(taskInfoService.listByEquipment(equipmentId)); + infoForm.setInstructionsFile(modelInfoService.getById(equipmentInfo.getModelId()).getInstructionsFile()); + } return infoForm; } @@ -424,7 +474,6 @@ equipmentInfo.setCreateTime(new Date()); equipmentInfo.setUpdateTime(new Date()); equipmentInfo.setIsDel(0); - equipmentInfos.add(equipmentInfo); } @@ -438,10 +487,11 @@ @Override public void updateEquipmentStatus(Long equipmentId, String usageStatus) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("id", equipmentId); - updateWrapper.set("usage_status", usageStatus); - this.update(updateWrapper); + EquipmentInfo equipmentInfo = this.getById(equipmentId); + if(ObjectUtil.isNotEmpty(equipmentInfo)){ + equipmentInfo.setUsageStatus(usageStatus); + } + this.updateById(equipmentInfo); } @Override @@ -469,19 +519,29 @@ if (StrUtil.isNotEmpty(meterIdentify)) { equipmentInfo.setMeterIdentify(meterIdentify); } - this.updateById(equipmentInfo); + //当设备证书有效期更新且未到期时,设备状态自动变更为启封 if (!EquipmentStatusTypeEnum.UNSEAL.equals(equipmentInfo.getUsageStatus()) && !EquipmentStatusTypeEnum.SCRAP.equals(equipmentInfo.getUsageStatus()) && certificateValid.after(new Date())) { - this.updateEquipmentStatus(equipmentId, EquipmentStatusTypeEnum.UNSEAL); - statusLogService.saveLog(equipmentId, StatusApprovalTypeEnum.UNSEAL, "设备证书更新"); + String usageStatus = EquipmentStatusTypeEnum.UNSEAL; + equipmentInfo.setUsageStatus(usageStatus); + statusLogService.saveLog(equipmentId, usageStatus, "设备证书更新"); } - + this.updateById(equipmentInfo); } } } + @Override + public void updateLimitInstruction(Long equipmentId, String limitInstruction) { + EquipmentInfo equipmentInfo = this.getById(equipmentId); + if (ObjectUtil.isNotEmpty(equipmentInfo)) { + equipmentInfo.setLimitInstruction(limitInstruction); + this.updateById(equipmentInfo); + } + } + public void removeCertificateInfo(Long equipmentId, Long certificateId) { EquipmentInfo equipmentInfo = this.getById(equipmentId); if (ObjectUtil.isNotEmpty(equipmentInfo)) { @@ -506,9 +566,11 @@ @Override public Page remindListPage(Page page, EquipmentRemindQueryForm queryForm) { QueryWrapper queryWrapper = remindQuery(queryForm); - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - dataScope.setScopeName("dept_id"); - List list = this.baseMapper.selectRemindListPage(page, dataScope, queryWrapper); + queryWrapper.in("usage_status",Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, + EquipmentStatusTypeEnum.DISABLE, + EquipmentStatusTypeEnum.DELAY)); + List list = this.baseMapper.selectRemindListPage(page, null,queryWrapper, + SampleStatusEnum.getSampleStatusByCompletion(Arrays.asList(CheckCompletionEnum.UNCHECK,CheckCompletionEnum.IN_CHECK))); list.forEach(this::warpEquipmentRemindInfo); page.setRecords(list); return page; @@ -517,9 +579,11 @@ @Override public List remindList(EquipmentRemindQueryForm queryForm) { QueryWrapper queryWrapper = remindQuery(queryForm); - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - dataScope.setScopeName("dept_id"); - List list = this.baseMapper.selectRemindList(dataScope, queryWrapper); + queryWrapper.in("usage_status",Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, + EquipmentStatusTypeEnum.DISABLE, + EquipmentStatusTypeEnum.DELAY)); + List list = this.baseMapper.selectRemindList(null, queryWrapper, + SampleStatusEnum.getSampleStatusByCompletion(Arrays.asList(CheckCompletionEnum.UNCHECK,CheckCompletionEnum.IN_CHECK))); list.forEach(this::warpEquipmentRemindInfo); return list; } @@ -533,10 +597,27 @@ } private QueryWrapper remindQuery(EquipmentRemindQueryForm queryForm){ + // 操作手仅能看到自己负责的设备信息,其余角色查看本组织结构下所有 + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + if(authUser.getRoleTips().contains(operatorRoleTip)){ + queryForm.setDirectorId(authUser.getId()); + }else { + List scopeIds = permissionContext.getDeptService().getIdsByPid(authUser.getDeptId(),null); + scopeIds.add(authUser.getDeptId()); + if(CollUtil.isNotEmpty(queryForm.getDeptIds())){ + scopeIds.retainAll(queryForm.getDeptIds()); + } + queryForm.setDeptIds(scopeIds); + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); if (CollUtil.isNotEmpty(queryForm.getIds())) { queryWrapper.in("id", queryForm.getIds()); } else { + + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()),"dept_id",queryForm.getDeptId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"company_id",queryForm.getCompanyId()); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentNo()), "equipment_no", queryForm.getEquipmentNo()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); @@ -544,15 +625,28 @@ queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"manufacture_no",queryForm.getManufactureNo()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"use_position_id",queryForm.getUsePositionId()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUsageStatus()), "usage_status", queryForm.getUsageStatus()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()), "use_sign", queryForm.getUseSign()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()),"check_destination",queryForm.getCheckDestination()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "certificate_valid", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "certificate_valid", queryForm.getCertificateValidEnd()); + + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()),"check_destination",queryForm.getCheckDestination()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckStatus()),"check_status",queryForm.getCheckStatus()); + + queryWrapper.in(CollUtil.isNotEmpty(queryForm.getUsageStatusList()),"usage_status",queryForm.getUsageStatusList()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufacturer()),"manufacturer",queryForm.getManufacturer()); queryWrapper.like(ObjectUtil.isNotEmpty(queryForm.getTaskId()),"taskIds",queryForm.getTaskId()); if (StrUtil.isNotEmpty(queryForm.getTaskStartTime()) || StrUtil.isNotEmpty(queryForm.getTastEndTime())) { queryWrapper.and(i -> { - i.le(StrUtil.isNotEmpty(queryForm.getTaskStartTime()), "task_start_time", queryForm.getTaskStartTime()) - .or() - .ge(StrUtil.isNotEmpty(queryForm.getTastEndTime()), "task_end_time", queryForm.getTastEndTime()); + i.le(StrUtil.isNotEmpty(queryForm.getTaskStartTime()), "task_start_time", queryForm.getTastEndTime()) + .ge(StrUtil.isNotEmpty(queryForm.getTastEndTime()), "task_end_time", queryForm.getTaskStartTime()); + +// i.le(StrUtil.isNotEmpty(queryForm.getTaskStartTime()), "task_start_time", queryForm.getTaskStartTime()) +// .or() +// .ge(StrUtil.isNotEmpty(queryForm.getTastEndTime()), "task_end_time", queryForm.getTastEndTime()); }); } } @@ -562,6 +656,21 @@ } @Override + public Page orderSelectListPage(Page page, EquipmentRemindQueryForm queryForm) { + QueryWrapper queryWrapper = remindQuery(queryForm); + queryWrapper.in("usage_status",Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, + EquipmentStatusTypeEnum.DISABLE, + EquipmentStatusTypeEnum.DELAY, + EquipmentStatusTypeEnum.SEAL)); + queryWrapper.eq("check_status",0); //未送检设备 + List list = this.baseMapper.selectRemindList(null, queryWrapper, + SampleStatusEnum.getSampleStatusByCompletion(Arrays.asList(CheckCompletionEnum.UNCHECK,CheckCompletionEnum.IN_CHECK))); + list.forEach(this::warpEquipmentRemindInfo); + page.setRecords(list); + return page; + } + + @Override public List expireTrend(String type) { switch (type){ case "month": @@ -598,9 +707,21 @@ queryWrapper.le("certificate_valid", endTime); queryWrapper.eq("is_del",0); - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - dataScope.setScopeName("dept_id"); - return this.baseMapper.selectList(dataScope,queryWrapper); + queryWrapper.in("usage_status",Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, + EquipmentStatusTypeEnum.DISABLE, + EquipmentStatusTypeEnum.DELAY)); + + // 操作手仅能看到自己负责的设备信息,其余角色查看本组织结构下所有 + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + if(authUser.getRoleTips().contains(operatorRoleTip)){ + queryWrapper.eq("director_id",authUser.getId()); + }else { + List scopeIds = permissionContext.getDeptService().getIdsByPid(authUser.getDeptId(),null); + scopeIds.add(authUser.getDeptId()); + queryWrapper.in("dept_id",scopeIds); + } + + return this.baseMapper.selectList(null,queryWrapper); } private List expireTrendByMonth(){ @@ -611,7 +732,7 @@ startCal.set(Calendar.SECOND,0); Calendar endCal = Calendar.getInstance(); - endCal.add(Calendar.MONTH,1); + endCal.add(Calendar.MONTH,3); endCal.set(Calendar.HOUR_OF_DAY,23); endCal.set(Calendar.MINUTE,59); endCal.set(Calendar.SECOND,59); @@ -634,8 +755,19 @@ @Override public Page certificateListPage(Page page, EquipmentCertificateQueryForm queryForm) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - dataScope.setScopeName("e.dept_id"); + // 如果当前用户所在组织机构 的级别是受检单位,查本单位下所有部门的;否则查当前用户所在部门的 + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + if(systemDeptService.isCompany(authUser.getDeptId())){ + List scopeDeptIds = permissionContext.getDeptService().getIdsByPid(authUser.getDeptId(),null); + if(ObjectUtil.isNotEmpty(queryForm.getDeptIds())){ + scopeDeptIds.retainAll(queryForm.getDeptIds()); + } + queryForm.setDeptIds(scopeDeptIds); + }else { + queryForm.setDeptId(authUser.getDeptId()); + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCertificateNo()), "c.certificate_report_no", queryForm.getCertificateNo()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCertificateName()), "c.certificate_report_name", queryForm.getCertificateName()); @@ -644,10 +776,26 @@ queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()), "'西昌卫星发射中心计量测试站'", queryForm.getCheckOrganization()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "c.expiration_date", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "c.expiration_date", queryForm.getCertificateValidEnd()); + + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getModel()),"e.model",queryForm.getModel()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"e.manufacture_no",queryForm.getManufactureNo()); + queryWrapper.eq("e.is_del", 0); queryWrapper.eq("c.approval_status", ApprovalStatusEnum.PASSED); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()),"e.dept_id",queryForm.getDeptId()); + queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "e.dept_id", queryForm.getDeptIds()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"e.company_id",queryForm.getCompanyId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"e.use_position_id",queryForm.getUsePositionId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "e.use_position", queryForm.getUsePosition()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()),"e.director_id",queryForm.getDirectorId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"e.director_name",queryForm.getDirectorName()); - List list = this.baseMapper.bizCertificateListPage(page, dataScope, queryWrapper); + + List list = this.baseMapper.bizCertificateListPage(page, null, queryWrapper); + for (EquipmentCertificateDTO certificateDTO : list) { + certificateDTO.setDeptName(permissionContext.getDeptService().getDeptName(certificateDTO.getDeptId())); + certificateDTO.setCompanyName(permissionContext.getDeptService().getDeptName(certificateDTO.getCompanyId())); + } page.setRecords(list); return page; } @@ -668,4 +816,76 @@ } taskRelationService.saveBatch(relationList); } + + @Override + public String getFieldName(String fieldName) { + Field[] fields = EquipmentInfo.class.getDeclaredFields(); + for (Field field : fields) { + if (!field.isAccessible()) { + field.setAccessible(true); + } + if(fieldName.equals(field.getName())){ + if(field.isAnnotationPresent(ApiModelProperty.class)){ + ApiModelProperty apiModelProperty = field.getAnnotationsByType(ApiModelProperty.class)[0]; + String notes = apiModelProperty.notes(); + if(StrUtil.isNotEmpty(notes)){ + notes = notes.replace("id","").replace("code",""); + } + return notes; + } + } + } + return null; + } + + @Override + public String getFieldValue(String fieldName, String fieldValue) { + if(StrUtil.isBlank(fieldValue)){ + return fieldValue; + } + Field[] fields = EquipmentInfo.class.getDeclaredFields(); + for (Field field : fields) { + if (!field.isAccessible()) { + field.setAccessible(true); + } + if(fieldName.equals(field.getName())){ + if(field.isAnnotationPresent(ApiModelProperty.class)){ + ApiModelProperty apiModelProperty = field.getAnnotationsByType(ApiModelProperty.class)[0]; + String notes = apiModelProperty.notes(); + if(StrUtil.isNotEmpty(notes)){ + if(notes.contains("code")){ + DictCodeField dictCodeField = field.getAnnotationsByType(DictCodeField.class)[0]; + if (StringUtils.isEmpty(dictCodeField.cacheName())) { + throw new BusinessException(500, "缓存名不能为空"); + } + AbstractDictService dictService = SpringContextUtil.getBean(AbstractDictService.class); + fieldValue = dictService.getDictNameByCode(dictCodeField.cacheName(), fieldValue); + } + if(notes.contains("id")){ + switch (notes){ + case "所在单位id": + case "使用部门id": + fieldValue = permissionContext.getDeptService().getDeptName(fieldValue); + break; + case "使用岗位id": + fieldValue = positionService.getNameById(Long.valueOf(fieldValue)); + break; + case "负责人id": + fieldValue = permissionContext.getUserService().getById(fieldValue).getName(); + break; + case "安装位置id": + fieldValue = locationService.getById(fieldValue).getInstallLocation(); + break; + case "规格型号id": + fieldValue = modelInfoService.getById(fieldValue).getModel(); + break; + } + } + } + + } + } + } + return fieldValue; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModelInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModelInfoServiceImpl.java index 9c5ce09..6510618 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModelInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModelInfoServiceImpl.java @@ -53,11 +53,23 @@ private final IEquipmentInfoApprovalService equipmentInfoApprovalService; private final AbstractPermissionContext permissionContext; + private final String XC_INSPECTABLE = "1"; // 西昌可检 + private final String HK_INSPECTABLE = "2"; // 海口可检 + + private final String XC_LAB = "西昌"; // 西昌可检 + private final String HK_LAB = "海口"; // 海口可检 + + private final String CHECK_DESTINATION_METER = "1"; // 检定去向:计量室 + private final String CHECK_DESTINATION_DELIVERY = "2"; // 检定去向:外送 + @Override @Transactional public void add(EquipmentModelInfo modelInfo) { - Long maxNo = this.baseMapper.selectMaxNo(); - modelInfo.setModelNo(NumberGeneratorUtil.getContactNo(PrefixCodeEnum.EQUIPMENT_MODEL_PREFIX, maxNo)); + if(StrUtil.isNotEmpty(modelInfo.getInspectable())){ + if(StrUtil.isBlank(modelInfo.getCategory())){ + throw new BusinessException(501,"计量站可检,设备分类必填"); + } + } this.save(modelInfo); technicalTargetService.saveByModel(modelInfo.getId(),modelInfo.getTechnicalTargetList()); } @@ -65,6 +77,11 @@ @Override @Transactional public void update(EquipmentModelInfo modelInfo) { + if(StrUtil.isNotEmpty(modelInfo.getInspectable())){ + if(StrUtil.isBlank(modelInfo.getCategory())){ + throw new BusinessException(501,"计量站可检,设备分类必填"); + } + } this.updateById(modelInfo); technicalTargetService.saveByModel(modelInfo.getId(),modelInfo.getTechnicalTargetList()); equipmentInfoService.updateByModel(modelInfo); @@ -90,8 +107,6 @@ @Override public Page listScopePage(Page page, EquipmentModelQueryForm queryForm) { -// DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); -// dataScope.setScopeName("create_dept_id"); QueryWrapper queryWrapper = commonQuery(queryForm); List list = this.baseMapper.listScopePage(null,page,queryWrapper); List technicalTargetList = technicalTargetService.listByModelIds(list.stream().map(EquipmentModelInfo::getId).collect(Collectors.toList())); @@ -111,8 +126,6 @@ @Override public List listScope(EquipmentModelQueryForm queryForm) { -// DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); -// dataScope.setScopeName("create_dept_id"); QueryWrapper queryWrapper = commonQuery(queryForm); List list = this.baseMapper.listScope(null,queryWrapper); List technicalTargetList = technicalTargetService.listByModelIds(list.stream().map(EquipmentModelInfo::getId).collect(Collectors.toList())); @@ -136,35 +149,44 @@ queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getHelpInstruction()),"help_instruction",queryForm.getHelpInstruction()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCategory()),"category",queryForm.getCategory()); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getIds()),"id",queryForm.getIds()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()),"equipment_type",queryForm.getEquipmentType()); return queryWrapper; } @Override - public List listEquipmentName() { + public List listEquipmentName(String equipmentType) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.select("distinct equipment_name as equipment_name"); - -// DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); -// if (!ScopeEnums.ALL_TYPE.equals(dataScope.getScopeEnums())) { -// List dataScopeDeptIds = dataScope.getDeptIds(); -// queryWrapper.in("create_dept_id",dataScopeDeptIds); -// } + queryWrapper.eq(StrUtil.isNotEmpty(equipmentType),"equipment_type",equipmentType); + queryWrapper.orderByAsc("equipment_name"); List> maps = this.listMaps(queryWrapper); return maps.stream().map(i->i.get("equipment_name").toString()).collect(Collectors.toList()); } @Override - public List listModel(String equipmentName) { + public List listModel(String equipmentType, String equipmentName) { QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(StrUtil.isNotEmpty(equipmentType),"equipment_type",equipmentType); queryWrapper.eq("equipment_name",equipmentName); -// DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); -// if (!ScopeEnums.ALL_TYPE.equals(dataScope.getScopeEnums())) { -// List dataScopeDeptIds = dataScope.getDeptIds(); -// queryWrapper.in("create_dept_id",dataScopeDeptIds); -// } queryWrapper.select("distinct model as model"); + queryWrapper.orderByAsc("model"); List> maps = this.listMaps(queryWrapper); return maps.stream().map(i->i.get("model").toString()).collect(Collectors.toList()); } + @Override + public String defaultCheckDestination(Long modelId, Long companyId) { + String defaultLab = this.baseMapper.getLabLocation(companyId); + String inspectable = this.getById(modelId).getInspectable(); + if(StrUtil.isNotEmpty(defaultLab) && StrUtil.isNotEmpty(inspectable)){ + if(inspectable.contains(XC_INSPECTABLE) && defaultLab.contains(XC_LAB)){ + return CHECK_DESTINATION_METER; + }else if(inspectable.contains(HK_INSPECTABLE) && defaultLab.contains(HK_LAB)){ + return CHECK_DESTINATION_METER; + }else { + return CHECK_DESTINATION_DELIVERY; + } + } + return null; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemDeptServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemDeptServiceImpl.java index 8dac37e..4f3e46d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemDeptServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemDeptServiceImpl.java @@ -62,4 +62,10 @@ } return secondDepts; } + + @Override + public boolean isCompany(Long deptId) { + Dept dept = deptService.getById(deptId); + return dept.getPid() <= 0; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemLocationServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemLocationServiceImpl.java index c77c548..5f3008c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemLocationServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemLocationServiceImpl.java @@ -97,28 +97,31 @@ } @Override - public Page listPage(Page page, Long searchId, String positionName) { - QueryWrapper queryWrapper = getQueryWrapper(searchId, positionName); + public Page listPage(Page page, Long searchId,Long positionId, String installLocation) { + QueryWrapper queryWrapper = getQueryWrapper(searchId,positionId, installLocation); page = this.page(page, queryWrapper); page.getRecords().forEach(this::wrapper); return page; } @Override - public List list(Long searchId, String positionName) { - QueryWrapper queryWrapper = getQueryWrapper(searchId, positionName); + public List list(Long searchId,Long positionId, String installLocation) { + QueryWrapper queryWrapper = getQueryWrapper(searchId,positionId, installLocation); List list = this.list(queryWrapper); list.forEach(this::wrapper); return list; } @NotNull - private static QueryWrapper getQueryWrapper(Long searchId, String positionName) { + private static QueryWrapper getQueryWrapper(Long searchId,Long positionId, String installLocation) { QueryWrapper queryWrapper = new QueryWrapper<>(); - if(StrUtil.isNotEmpty(positionName)){ - queryWrapper.like("position_name", positionName); + if(ObjectUtil.isNotEmpty(positionId)){ + queryWrapper.eq("position_id",positionId); } - if(ObjectUtil.isEmpty(searchId)){ + if(StrUtil.isNotEmpty(installLocation)){ + queryWrapper.like("install_location", installLocation); + } + if(ObjectUtil.isNotEmpty(searchId)){ queryWrapper.and(i->i.eq("company_id", searchId) .or().eq("dept_id", searchId) .or().eq("sub_system_id", searchId)); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemPositionServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemPositionServiceImpl.java index 1520928..6015bd8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemPositionServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemPositionServiceImpl.java @@ -117,7 +117,7 @@ if(StrUtil.isNotEmpty(positionName)){ queryWrapper.like("position_name", positionName); } - if(ObjectUtil.isEmpty(searchId)){ + if(ObjectUtil.isNotEmpty(searchId)){ queryWrapper.and(i->i.eq("company_id", searchId) .or().eq("dept_id", searchId) .or().eq("sub_system_id", searchId)); 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml index a9033f9..c49776d 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml @@ -4,71 +4,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - id, approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + id + , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction + + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml index 62449ec..f4d9936 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml @@ -42,6 +42,12 @@ + + + + + + @@ -50,12 +56,20 @@ product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid as certificateValid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time, - is_del,model_id,help_instruction + is_del,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction select - from eqpt_equipment_info + from eqpt_equipment_info_view ${ew.sqlSegment} @@ -110,7 +124,7 @@ eqpt_remind_all as ( select e.id as equipment_id, - IFNULL(m.remind_time,0) as remind_time + IFNULL(m.remind_time,90) as remind_time from eqpt_equipment_info e left join eqpt_remind m on e.id = m.equipment_id ), @@ -118,20 +132,32 @@ select id,task_name,CONCAT(DATE_FORMAT(start_time,'%Y-%m-%d'),"~",DATE_FORMAT(end_time,'%Y-%m-%d')) as time_ext,start_time,end_time from eqpt_equipment_task_info ), + latest_sample_relation AS ( + SELECT * + FROM biz_business_order_sample_relation a + WHERE id = ( + SELECT max( id ) + FROM biz_business_order_sample_relation b + WHERE a.sample_id = b.sample_id ) + ), eqpt_ext as ( select e.* , - DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, - GROUP_CONCAT(t.task_name) as taskNames, - GROUP_CONCAT(t.time_ext) as taskTimes, - GROUP_CONCAT(t.id) as taskIds, - min(t.start_time) as task_start_time, - max(t.end_time) as task_end_time - from eqpt_equipment_info e + DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, + GROUP_CONCAT(t.task_name) as taskNames, + GROUP_CONCAT(t.time_ext) as taskTimes, + GROUP_CONCAT(t.id) as taskIds, + min(t.start_time) as task_start_time, + max(t.end_time) as task_end_time, + (case when lsr.sample_status in + #{item} + then 1 else 0 end) as check_status + from eqpt_equipment_info_view e left join eqpt_remind_all a on e.id = a.equipment_id left join eqpt_equipment_task_relation r on e.id = r.equipment_id left join task_ext t on r.task_id = t.id + left join latest_sample_relation lsr on lsr.sample_id = e.id where e.certificate_valid is not null - group by e.id,e.certificate_valid,a.remind_time + group by e.id,e.certificate_valid,a.remind_time,lsr.sample_status ) select * from eqpt_ext @@ -163,6 +189,9 @@ e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, + e.model as model, + e.company_id as companyId, + e.manufacture_no as manufactureNo, c.certificate_report_no as certificateNo, c.certificate_report_name as certificateName, '西昌卫星发射中心计量测试站' as checkOrganization, @@ -173,7 +202,7 @@ c.update_time as updateTime, '1' as certificateType, c.remark as remark - from biz_business_certificate_report c ,eqpt_equipment_info e + from biz_business_certificate_report c ,eqpt_equipment_info_view e where c.sample_id = e.id diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml index 097c405..2ddebe6 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,6 +13,7 @@ + @@ -21,7 +22,7 @@ - id, model_no, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, create_user_id, create_dept_id, create_time, update_time + id, equipment_type, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, inspectable, create_user_id, create_dept_id, create_time, update_time + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java index c69cc82..d1a2bd1 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.service.equipment.IEquipmentGroupInfoService; import io.swagger.annotations.Api; @@ -60,14 +61,11 @@ return ReturnUtil.success(); } - @ApiImplicitParams({ - @ApiImplicitParam(name = "groupName",value = "分组名称",dataType = "String",paramType = "query") - }) @ApiOperation("分组分页列表") - @GetMapping("listPage") - public ReturnDTO> listPage(String groupName){ + @PostMapping("listPage") + public ReturnDTO> listPage(@RequestBody EquipmentGroupQueryForm queryForm){ Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,groupName))); + return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,queryForm))); } @ApiImplicitParams({ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 56b6814..3130c5c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.business.LabelBindDTO; import com.casic.missiles.dto.equipment.*; import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; import com.casic.missiles.service.equipment.IEquipmentInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -36,6 +37,14 @@ public class EquipmentInfoController extends ExportController { private final IEquipmentInfoService equipmentInfoService; + private final IEquipmentInfoApprovalService approvalService; + + @ApiOperation("直接编辑设备") + @PostMapping("/info/update") + public ReturnDTO update(@RequestBody EquipmentApprovalForm approvalForm){ + approvalService.updateEquipmentInfo(approvalForm); + return ReturnUtil.success(); + } @ApiOperation("设备分页列表") @PostMapping("/info/listPage") @@ -152,5 +161,14 @@ return ReturnUtil.success(); } + @ApiOperation("到期提醒分页列表") + @PostMapping("/orderSelect/listPage") + @ResponseBody + public ReturnDTO> EquipmentOrderSelectQueryForm(@RequestBody EquipmentRemindQueryForm queryForm) { + Page page = PageFactory.defaultPage(); + page = equipmentInfoService.orderSelectListPage(page, queryForm); + return ReturnUtil.success(super.packForBT(page)); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index 044d245..ccbd668 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -103,14 +103,20 @@ @ApiOperation("设备名称列表") @GetMapping("listEquipmentName") - public ReturnDTO> listEquipmentName(){ - return ReturnUtil.success(modelInfoService.listEquipmentName()); + public ReturnDTO> listEquipmentName(String equipmentType){ + return ReturnUtil.success(modelInfoService.listEquipmentName(equipmentType)); } @ApiOperation("规格型号列表") @GetMapping("listModel") - public ReturnDTO> listModel(String equipmentName){ - return ReturnUtil.success(modelInfoService.listModel(equipmentName)); + public ReturnDTO> listModel(String equipmentType, String equipmentName){ + return ReturnUtil.success(modelInfoService.listModel(equipmentType,equipmentName)); + } + + @ApiOperation("获取默认检定去向") + @GetMapping("defaultCheckDestination") + public ReturnDTO defaultCheckDestination(Long modelId, Long companyId){ + return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java index 7e79008..1fc1f9c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.CertificateUpdate; +import com.casic.missiles.dto.equipment.LimitInstructionUpdate; import com.casic.missiles.model.plan.OrderReceive; import com.casic.missiles.model.plan.SampleStatueUpdate; import com.casic.missiles.service.equipment.IEquipmentInfoService; @@ -55,4 +56,11 @@ return ReturnUtil.success(); } + @ApiOperation("更新限用说明") + @PostMapping("/limitInstructionUpdate") + public ReturnDTO updateLimitInstruction(@RequestBody LimitInstructionUpdate updateForm) { + equipmentInfoService.updateLimitInstruction(updateForm.getEquipmentId(), updateForm.getLimitInstruction()); + return ReturnUtil.success(); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java index e314003..73d02ec 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java @@ -1,7 +1,18 @@ package com.casic.missiles.controller.system; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.system.SystemLocation; +import com.casic.missiles.service.system.ISystemLocationService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** *

@@ -11,8 +22,45 @@ * @author zhangyingjie * @since 2023-11-15 */ +@Api(tags = "安装位置管理") @RestController -@RequestMapping("/system-location") -public class SystemLocationController { +@RequestMapping("/system/location") +@RequiredArgsConstructor +public class SystemLocationController extends BaseController { + + private final ISystemLocationService locationService; + + @PostMapping("add") + public ReturnDTO add(@RequestBody SystemLocation systemLocation){ + locationService.add(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("update") + public ReturnDTO update(@RequestBody SystemLocation systemLocation){ + locationService.update(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("delete") + public ReturnDTO delete(@RequestBody SystemLocation systemLocation){ + locationService.delete(systemLocation); + return ReturnUtil.success(); + } + + @GetMapping("listPage") + public ReturnDTO> listPage(Long searchId,Long positionId, String installLocation){ + Page page = PageFactory.defaultPage(); + page = locationService.listPage(page,searchId,positionId, installLocation); + return ReturnUtil.success(super.packForBT(page)); + } + + @GetMapping("list") + public ReturnDTO> list(Long searchId,Long positionId, String installLocation){ + List list = locationService.list(searchId,positionId, installLocation); + return ReturnUtil.success(list); + } + + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java index f9e2f91..d64634a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java @@ -1,6 +1,8 @@ package com.casic.missiles.controller.system; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; @@ -10,6 +12,8 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** *

* 受检系统-系统管理-岗位管理 前端控制器 @@ -22,7 +26,7 @@ @RestController @RequestMapping("/system/position") @RequiredArgsConstructor -public class SystemPositionController { +public class SystemPositionController extends BaseController { private final ISystemPositionService positionService; @@ -45,16 +49,16 @@ } @GetMapping("listPage") - public ReturnDTO listPage(Long searchId,String positionName){ + public ReturnDTO> listPage(Long searchId, String positionName){ Page page = PageFactory.defaultPage(); - positionService.listPage(page,searchId,positionName); - return ReturnUtil.success(); + page = positionService.listPage(page,searchId,positionName); + return ReturnUtil.success(super.packForBT(page)); } @GetMapping("list") - public ReturnDTO list(Long searchId,String positionName){ - positionService.list(searchId,positionName); - return ReturnUtil.success(); + public ReturnDTO> list(Long searchId,String positionName){ + List list = positionService.list(searchId,positionName); + return ReturnUtil.success(list); } diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index 6f0359b..88cce74 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -72,9 +72,9 @@ addresses: http://111.198.10.15:21605/xxl-job-admin executor: # 此执行器的名称 - appname: casic-metering-job + appname: casic-metering-xc-eqpt-job # 此执行器的ip、端口,每个节点对应自己的ip,端口用于任务执行的通信 - ip: 127.0.0.1 + ip: 192.168.20.33 port: 9999 # 此执行器的日志存放路径 logpath: logs/xxl-job/casic-metering-job @@ -122,7 +122,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_remind_relation + table-name: eqpt_equipment_modify_log prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index 7b3c7a2..29a820a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -18,11 +18,15 @@ */ // 系统前缀 String DICT_PREFIX = "eqpt"; + + String EQUIPMENT_TYPE = DICT_PREFIX + "DeviceCategory"; //受检设备使用状态 String EQUIPMENT_USAGE_STATUS = DICT_PREFIX + "DeviceUseStatus"; //受检设备重要等级 String EQUIPMENT_LEVEL = DICT_PREFIX + "DeviceLevel"; + String EQUIPMENT_QUALITY = DICT_PREFIX + "DeviceQuality"; + String EQUIPMENT_CATEGORY = DICT_PREFIX + "DeviceType"; // 设备申请类型 String EQUIPMENT_APPROVAL_TYPE = DICT_PREFIX + "EquipmentApprovalType"; @@ -30,6 +34,8 @@ String EQUIPMENT_STATUS_APPROVAL_TYPE = DICT_PREFIX + "EquipmentStatusApprovalType"; // 设备计量标识 String EQUIPMENT_METER_IDENTITY = DICT_PREFIX + "MeterIdentify"; + + String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; // 计量计划计划分类 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java index 694e48b..aefff4a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.equipment; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.model.equipment.EquipmentAttachment; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentTechnicalTarget; @@ -13,6 +14,8 @@ @Data public class EquipmentApprovalForm extends EquipmentInfoApproval { + @ApiModelProperty("规格型号说明书") + private String instructionsFile; @ApiModelProperty("技术指标列表") private List technicalTargetList; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java index f6448c6..c814444 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java @@ -12,6 +12,9 @@ @Setter public class EquipmentInfoForm extends EquipmentInfo{ + @ApiModelProperty("规格型号说明书") + private String instructionsFile; + @ApiModelProperty("组别信息") @TableField(exist = false) private List groupInfos; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java index bcec504..7803273 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java @@ -10,6 +10,9 @@ @Setter public class EquipmentModelQueryForm { + @ApiModelProperty("设备类型") + private String equipmentType; + @ApiModelProperty("设备名称") private String equipmentName; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java index 03fc0f1..fc2acc8 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java @@ -32,12 +32,21 @@ @ApiModelProperty("所在单位") private Long companyId; - @ApiModelProperty("使用部门") + + @ApiModelProperty("使用部门(单个)") + private Long deptId; + @ApiModelProperty("使用部门(列表)") private List deptIds; + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty("使用岗位") private String usePosition; + @ApiModelProperty("负责人ID") + private Long directorId; + @ApiModelProperty("负责人") private String directorName; @@ -50,6 +59,9 @@ @ApiModelProperty("安装位置") private String installLocation; + @ApiModelProperty("分组id") + private Long groupId; + @ApiModelProperty("参试任务id") private Long taskId; @@ -75,4 +87,5 @@ @ApiModelProperty("使用状态列表[状态维护选择设备时用]") private List usageStatusList; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java index 30b5af3..b6afd18 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java @@ -73,5 +73,52 @@ @TableField("remark") private String remark; + /** + * 所在单位id + */ + @ApiModelProperty("所在单位id") + @TableField(exist = false) + private Long companyId; + + @ApiModelProperty("所在单位名称") + @TableField(exist = false) + private String companyName; + + /** + * 使用部门id + */ + @ApiModelProperty("使用部门id") + @TableField(exist = false) + private Long deptId; + + @ApiModelProperty("使用部门名称") + @TableField(exist = false) + private String deptName; + + /** + * 分系统id + */ + @ApiModelProperty(value = "分系统id") + @TableField(exist = false) + private Long subSystemId; + + @ApiModelProperty("分系统名称") + @TableField(exist = false) + private String subSystemName; + + /** + * 使用岗位id + */ + @ApiModelProperty("岗位ID") + @TableField("position_id") + private Long positionId; + + /** + * 使用岗位名称 + */ + @ApiModelProperty("岗位名称") + @TableField(exist = false) + private String positionName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java index 36575f6..b4f78b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.equipment; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -7,6 +8,8 @@ import java.io.Serializable; import java.util.Date; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.Getter; @@ -55,12 +58,35 @@ @ApiModelProperty("型号规格") @TableField(exist = false) private String model; + + @ApiModelProperty("出厂编号") + @TableField(exist = false) + private String manufactureNo; + @ApiModelProperty("生产厂家") + @TableField(exist = false) + private String manufacturer; + + /** + * 出厂编号 + */ + @ApiModelProperty("负责人") @TableField(exist = false) private String directorName; @ApiModelProperty("计量标识") @TableField(exist = false) private String meterIdentify; + + @ApiModelProperty("计量标识名称") + @TableField(exist = false) + private String meterIdentifyName; + + @ApiModelProperty("使用状态(字典code)") + @TableField(exist = false) + private String usageStatus; + @ApiModelProperty("使用状态名称") + @TableField(exist = false) + private String usageStatusName; @ApiModelProperty("证书有效期") @TableField(exist = false) private Date certificateValid; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java index 21294cf..a8392ff 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java @@ -44,14 +44,14 @@ private static final long serialVersionUID = 1L; - @ApiModelProperty("主键") + @ApiModelProperty(value = "主键") @TableId("id") private Long id; /** * 设备编号 */ - @ApiModelProperty("设备编号") + @ApiModelProperty(value = "设备编号",notes = "统一编号") @TableField("equipment_no") @ExcelProperty(value = "统一编号",index = 0) private String equipmentNo; @@ -59,7 +59,7 @@ /** * 设备名称 */ - @ApiModelProperty("设备名称") + @ApiModelProperty(value = "设备名称",notes = "设备名称") @TableField("equipment_name") @ExcelProperty(value = "设备名称",index = 1) private String equipmentName; @@ -67,14 +67,18 @@ /** * 设备类型(1受检设备;2特种设备) */ - @ApiModelProperty("设备类型(1受检设备;2特种设备)") + @ApiModelProperty(value = "设备类型(1受检设备;2特种设备)",notes = "设备类型code") @TableField("equipment_type") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE) private String equipmentType; + @TableField(exist = false) + private String equipmentTypeName; + /** * 使用状态(字典code) */ - @ApiModelProperty("使用状态(字典code)") + @ApiModelProperty(value = "使用状态(字典code)",notes = "使用状态code") @TableField("usage_status") @DictCodeField(message = "使用状态", cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS) private String usageStatus; @@ -87,28 +91,32 @@ /** * 等级(字典code) */ - @ApiModelProperty("等级(字典code)") + @ApiModelProperty(value = "等级(字典code)",notes = "重要等级code") @TableField("level") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_LEVEL) private String level; + @TableField(exist = false) + private String levelName; + /** * 生产国家 */ - @ApiModelProperty("生产国家") + @ApiModelProperty(value = "生产国家",notes = "生产国家") @TableField("product_country") private String productCountry; /** * 生产厂家 */ - @ApiModelProperty("生产厂家") + @ApiModelProperty(value = "生产厂家",notes = "生产厂家") @TableField("manufacturer") private String manufacturer; /** * 出厂编号 */ - @ApiModelProperty("出厂编号") + @ApiModelProperty(value = "出厂编号",notes = "出厂编号") @TableField("manufacture_no") @ExcelProperty(value = "出厂编号",index = 3) private String manufactureNo; @@ -116,28 +124,28 @@ /** * 生产日期 */ - @ApiModelProperty("生产日期") + @ApiModelProperty(value = "生产日期",notes = "生产日期") @TableField("product_date") private Date productDate; /** * 单价(万元) */ - @ApiModelProperty("单价(万元)") + @ApiModelProperty(value = "单价(万元)",notes = "设备单价(万元)") @TableField("unit_price") private BigDecimal unitPrice; /** * 购进日期 */ - @ApiModelProperty("购进日期") + @ApiModelProperty(value = "购进日期",notes = "购进日期") @TableField("purchase_date") private Date purchaseDate; /** * 型号规格 */ - @ApiModelProperty("型号规格") + @ApiModelProperty(value = "型号规格",notes = "型号规格") @TableField("model") @ExcelProperty(value = "型号规格",index = 2) private String model; @@ -145,14 +153,18 @@ /** * 质量状况 */ - @ApiModelProperty("质量状况") + @ApiModelProperty(value = "质量状况",notes = "质量状况code") @TableField("quality_condition") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_QUALITY) private String qualityCondition; + @TableField(exist = false) + private String qualityConditionName; + /** * 所在单位id */ - @ApiModelProperty("所在单位id") + @ApiModelProperty(value = "所在单位id",notes = "所在单位id") @TableField("company_id") private Long companyId; @@ -163,7 +175,7 @@ /** * 使用部门id */ - @ApiModelProperty("使用部门id") + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") @TableField("dept_id") private Long deptId; @@ -174,14 +186,17 @@ /** * 设备分类(字典code) */ - @ApiModelProperty("设备分类(字典code)") + @ApiModelProperty(value = "设备分类(字典code)",notes = "设备分类code") @TableField("category") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CATEGORY) private String category; + @TableField(exist = false) + private String categoryName; /** * 检定周期(月) */ - @ApiModelProperty("检定周期(月)") + @ApiModelProperty(value = "检定周期(月)",notes = "检定周期(月)") @TableField("check_cycle") @ExcelProperty(value = "检定周期(月)",index = 6) @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, horizontalAlignment = HorizontalAlignmentEnum.LEFT) @@ -190,7 +205,7 @@ /** * 备注 */ - @ApiModelProperty("备注") + @ApiModelProperty(value = "备注",notes = "备注") @TableField("remark") @ExcelProperty(value = "备注",index = 9) private String remark; @@ -198,28 +213,28 @@ /** * 说明书(minio存储文件名)(多个用,拼接) */ - @ApiModelProperty("说明书(minio存储文件名)(多个用,拼接)") + @ApiModelProperty(value = "说明书(minio存储文件名)(多个用,拼接)") @TableField("instructions_file") private String instructionsFile; /** * 检定机构 */ - @ApiModelProperty("检定机构") + @ApiModelProperty(value = "检定机构",notes = "检定(校准)机构") @TableField("check_organization") private String checkOrganization; /** * 检定日期 */ - @ApiModelProperty("检定日期") + @ApiModelProperty(value = "检定日期",notes = "检定(校准)日期") @TableField("check_date") private Date checkDate; /** * 证书有效期 */ - @ApiModelProperty("证书有效期") + @ApiModelProperty(value = "证书有效期",notes = "证书有效期") @TableField("certificate_valid") @ExcelProperty(value = "证书有效期",index = 7, converter = DateExcelConverter.class) private Date certificateValid; @@ -227,7 +242,7 @@ /** * 计量标识 */ - @ApiModelProperty("计量标识") + @ApiModelProperty(value = "计量标识",notes = "计量标识code") @TableField("meter_identify") @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY) private String meterIdentify; @@ -237,17 +252,28 @@ @ExcelProperty(value = "计量标识",index = 5) private String meterIdentifyName; + @ApiModelProperty(value = "使用岗位id",notes = "使用岗位id") + @TableField("use_position_id") + private String usePositionId; + /** * 使用岗位 */ @ApiModelProperty("使用岗位") - @TableField("use_position") + @TableField(exist = false) @ExcelProperty(value = "使用岗位",index = 4) private String usePosition; /** * 负责人 */ + @ApiModelProperty(value = "负责人id",notes = "负责人id") + @TableField("director_id") + private String directorId; + + /** + * 负责人 + */ @ApiModelProperty("负责人") @TableField("director_name") private String directorName; @@ -255,17 +281,25 @@ /** * RFID标签绑定 */ - @ApiModelProperty("RFID标签绑定") + @ApiModelProperty(value = "RFID标签绑定",notes = "RFID标签绑定") @TableField("RFID") private String rfid; /** * 在用信息(字典code) */ - @ApiModelProperty("在用信息(字典code)") + @ApiModelProperty(value = "在用信息(字典code)",notes = "在用信息code") @TableField("use_sign") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE) private String useSign; + @TableField(exist = false) + private String useSignName; + + @ApiModelProperty(value = "安装位置id",notes = "安装位置id") + @TableField("install_location_id") + private Long installLocationId; + /** * 安装位置(选择) */ @@ -276,7 +310,7 @@ /** * 安装位置(自定义编写) */ - @ApiModelProperty("安装位置(自定义编写)") + @ApiModelProperty(value = "安装位置(自定义编写)",notes = "详细位置") @TableField("install_location_ext") private String installLocationExt; @@ -290,7 +324,7 @@ /** * 备注(扩展) */ - @ApiModelProperty("备注(扩展)") + @ApiModelProperty(value = "备注(扩展)",notes = "备注") @TableField("remark_ext") private String remarkExt; @@ -327,14 +361,25 @@ @TableLogic(value = "0",delval = "1") private Integer isDel; - @ApiModelProperty("规格型号id") + @ApiModelProperty(value = "规格型号id",notes = "规格型号id") @TableField("model_id") private Long modelId; - @ApiModelProperty("辅助字段") + @ApiModelProperty(value = "辅助字段",notes = "辅助字段") @TableField("help_instruction") private String helpInstruction; + @ApiModelProperty(value = "检定去向",notes = "检定去向") + @TableField("check_destination") + private String checkDestination; + + @ApiModelProperty(value = "限用说明",notes = "限用说明") + @TableField("limit_instruction") + private String limitInstruction; + + @ApiModelProperty("分组名称") + @TableField(exist = false) + private String groupNames; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java index 13eeef8..060aa33 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java @@ -101,8 +101,13 @@ */ @ApiModelProperty("使用状态(字典code)") @TableField("usage_status") + @DictCodeField(message = "使用状态", cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS) private String usageStatus; + @ApiModelProperty("使用状态名称") + @TableField(exist = false) + private String usageStatusName; + /** * 等级(字典code) */ @@ -253,6 +258,10 @@ @TableField(exist = false) private String meterIdentifyName; + @ApiModelProperty("使用岗位id") + @TableField("use_position_id") + private String usePositionId; + /** * 使用岗位 */ @@ -263,6 +272,12 @@ /** * 负责人 */ + @ApiModelProperty("负责人id") + @TableField("director_id") + private String directorId; + /** + * 负责人 + */ @ApiModelProperty("负责人") @TableField("director_name") private String directorName; @@ -281,6 +296,10 @@ @TableField("use_sign") private String useSign; + @ApiModelProperty("安装位置id") + @TableField("install_location_id") + private Long installLocationId; + /** * 安装位置(选择) */ @@ -347,6 +366,14 @@ @TableField("help_instruction") private String helpInstruction; + @ApiModelProperty("检定去向") + @TableField("check_destination") + private String checkDestination; + + @ApiModelProperty("限用说明") + @TableField("limit_instruction") + private String limitInstruction; + @ApiModelProperty("任务id") @TableField(exist = false) private String taskId; @@ -363,4 +390,7 @@ @TableField(exist = false) private List taskInfos; + @ApiModelProperty("分组名称") + @TableField(exist = false) + private String groupNames; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java index 471e8c8..d4b20e9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java @@ -48,10 +48,15 @@ /** * 型号规格编号 */ - @ApiModelProperty("型号规格编号") - @TableField("model_no") - @ExcelProperty("型号规格编号") - private String modelNo; + @ApiModelProperty("设备类型") + @TableField("equipment_type") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE) + private String equipmentType; + + @ApiModelProperty("设备类型名称") + @TableField(exist = false) + @ExcelProperty("设备类型") + private String equipmentTypeName; /** * 设备名称 @@ -113,6 +118,10 @@ @ExcelProperty("备注") private String remark; + @ApiModelProperty("计量站是否可检(1西昌可检;2海口可检,多个用,拼接)") + @TableField("inspectable") + private String inspectable; + /** * 创建人id */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java index d495e2e..a78c41a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java @@ -83,6 +83,7 @@ /** * 安装位置 */ + @ApiModelProperty("安装位置") @TableField("install_location") private String installLocation; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java index d5417d4..633af3f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import java.util.List; @@ -23,7 +24,7 @@ void deleteGroup(Long groupId); - Page listPage(Page page, String groupName); + Page listPage(Page page, EquipmentGroupQueryForm queryForm); EquipmentGroupForm detail(Long groupId); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java index 06d0cbd..222ebdd 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java @@ -3,6 +3,7 @@ import com.casic.missiles.dto.equipment.EquipmentApprovalLog; import com.casic.missiles.dto.equipment.EquipmentQueryForm; import com.casic.missiles.dto.equipment.EquipmentApprovalForm; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentModelInfo; import com.casic.missiles.service.ICommonApprovalService; @@ -19,6 +20,14 @@ */ public interface IEquipmentInfoApprovalService extends ICommonApprovalService { + boolean updateEquipmentInfo(EquipmentApprovalForm approvalForm); + + boolean checkRfidRepeat(String rfid, Long equipmentId); + + String checkLocation(Long installLocationId, String usageStatus, Long equipmentId); + + void saveTurnoverLog(EquipmentInfo newObj, EquipmentInfo oldObj, Long createUserId); + Long saveOrUpdateApproval(EquipmentApprovalForm approvalForm); EquipmentApprovalForm approvalInfoDetail(Long approvalId); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index acec159..dde436d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -29,6 +29,8 @@ */ public interface IEquipmentInfoService extends IService { + + Page listPage(Page page, EquipmentQueryForm queryForm); List list(EquipmentQueryForm queryForm); @@ -52,6 +54,9 @@ void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date certificateValid, String meterIdentify); + void updateLimitInstruction(Long equipmentId, String limitInstruction); + + void removeCertificateInfo(Long equipmentId, Long certificateId); Page remindListPage(Page page, EquipmentRemindQueryForm queryForm) @@ -67,4 +72,10 @@ (Page page, EquipmentCertificateQueryForm queryForm); void bindTask(EquipmentTaskBindForm bindForm); + + String getFieldName(String field); + String getFieldValue(String field, String fieldValue); + + Page orderSelectListPage(Page page, EquipmentRemindQueryForm queryForm); + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java index 19afa01..4e532a7 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java @@ -28,8 +28,10 @@ List listScope(EquipmentModelQueryForm queryForm); - List listEquipmentName(); + List listEquipmentName(String equipmentType); - List listModel(String equipmentName); + List listModel(String equipmentType, String equipmentName); + + String defaultCheckDestination(Long modelId,Long companyId); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java index 4a89b12..5608317 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java @@ -2,11 +2,16 @@ import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.constants.MeterDictCode; +import com.casic.missiles.core.application.service.AbstractDeptService; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.mapper.equipment.EquipmentGroupInfoMapper; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.model.equipment.EquipmentGroupRelation; @@ -31,6 +36,8 @@ public class EquipmentGroupInfoServiceImpl extends ServiceImpl implements IEquipmentGroupInfoService { private final IEquipmentGroupRelationService groupRelationService; + private final AbstractDeptService deptService; + private final AbstractDictService dictService; @Override @Transactional @@ -62,14 +69,25 @@ groupRelationService.deleteByGroupId(groupId); } - // todo datascope @Override - public Page listPage(Page page, String groupName) { + public Page listPage(Page page, EquipmentGroupQueryForm queryForm) { QueryWrapper queryWrapper = new QueryWrapper<>(); - if (StrUtil.isNotEmpty(groupName)) { - queryWrapper.like("binary group_name", groupName); - } - return this.page(page, queryWrapper); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"p.company_id",queryForm.getCompanyId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()),"p.dept_id",queryForm.getDeptId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getSubSystemId()),"p.sub_system_id",queryForm.getSubSystemId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getPositionId()),"g.position_id",queryForm.getPositionId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getGroupName()), "binary g.group_name", queryForm.getGroupName()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCreateUserId()),"g.create_user_id",queryForm.getCreateUserId()); + List list = this.baseMapper.listPage(page, queryWrapper); + list.forEach(this::wrapper); + page.setRecords(list); + return page; + } + + private void wrapper(EquipmentGroupInfo info) { + info.setCompanyName(deptService.getDeptName(info.getCompanyId())); + info.setDeptName(deptService.getDeptName(info.getDeptId())); + info.setSubSystemName(deptService.getDeptName(info.getSubSystemId())); } @Override @@ -80,6 +98,11 @@ groupForm.setGroupInfo(groupInfo); List relations = groupRelationService.listByGroup(groupId); + relations.forEach(i->{ + i.setMeterIdentifyName(dictService.getDictNameByCode(MeterDictCode.EQUIPMENT_METER_IDENTITY,i.getMeterIdentify())); + i.setUsageStatusName(dictService.getDictNameByCode(MeterDictCode.EQUIPMENT_USAGE_STATUS,i.getUsageStatus())); + + }); groupForm.setEquipmentList(relations); return groupForm; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java index 0a5a5fe..5456965 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java @@ -5,9 +5,12 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.equipment.EquipmentApprovalLog; @@ -16,6 +19,7 @@ import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.PrefixCodeEnum; +import com.casic.missiles.enums.equipment.EquipmentStatusTypeEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; @@ -81,6 +85,30 @@ @Autowired private IEquipmentTaskRelationService taskRelationService; + @Autowired + private IEquipmentModelInfoService modelInfoService; + + @Override + public boolean updateEquipmentInfo(EquipmentApprovalForm approvalForm) { + if(checkRfidRepeat(approvalForm.getRfid(),approvalForm.getEquipmentId())){ + throw new BusinessException(500,"RFID标签已使用"); + } + String checkLoc = checkLocation(approvalForm.getInstallLocationId(),approvalForm.getUsageStatus(),approvalForm.getEquipmentId()); + if(StrUtil.isNotEmpty(checkLoc)){ + throw new BusinessException(500,String.format("当前安装位置已存在一台在用设备,编号为%s",checkLoc)); + } + + attachmentService.saveByEquipment(approvalForm.getEquipmentId(), approvalForm.getAttachments()); + taskRelationService.saveByEquipment(approvalForm.getEquipmentId(),approvalForm.getTaskInfos()); + if (EQUIPMENT_TYPE_SPECIAL.equals(approvalForm.getEquipmentType())) { + specialCertificateService.saveCertificateList(approvalForm.getEquipmentId(), approvalForm.getCertificateList()); + } + EquipmentInfo info = new EquipmentInfo(); + BeanUtil.copyProperties(approvalForm, info); + info.setId(approvalForm.getEquipmentId()); + saveTurnoverLog(info, null, approvalForm.getCreateUserId()); + return equipmentInfoService.updateById(info); + } @Override @Transactional @@ -91,6 +119,12 @@ if(checkRfidRepeat(approvalForm.getRfid(),approvalForm.getEquipmentId())){ throw new BusinessException(500,"RFID标签已使用"); } + String checkLoc = this.checkLocation(approvalForm.getInstallLocationId(),approvalForm.getUsageStatus(),approvalForm.getEquipmentId()); + if(StrUtil.isNotEmpty(checkLoc)){ + throw new BusinessException(500,String.format("当前安装位置已存在一台在用设备,编号为%s",checkLoc)); + } + + if(ObjectUtil.isEmpty(approvalForm.getCreateUserId())){ AuthUser authUser = permissionContext.getAuthService().getLoginUser(); approvalForm.setCreateUserId(authUser.getId()); @@ -170,10 +204,19 @@ return updateApprovalStatus(submitRequest.getId(), ApprovalStatusEnum.IN_APPROVED); } - private boolean checkRfidRepeat(String rfid, Long equipmentId){ + @Override + public boolean checkRfidRepeat(String rfid, Long equipmentId){ return StrUtil.isNotEmpty(rfid) && this.baseMapper.checkRfid(rfid, equipmentId) > 0; } + @Override + public String checkLocation(Long installLocationId, String usageStatus, Long equipmentId){ + if(ObjectUtil.isNotEmpty(installLocationId) && EquipmentStatusTypeEnum.UNSEAL.equals(usageStatus)){ + return this.baseMapper.checkLocation(installLocationId,EquipmentStatusTypeEnum.UNSEAL,equipmentId); + } + return null; + } + private boolean haveUnfinishedApproval(EquipmentApprovalForm approvalForm){ if(ObjectUtil.isNotEmpty(approvalForm.getEquipmentId())){ QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -188,14 +231,16 @@ public void simpleUpdate(EquipmentApprovalForm approvalForm, EquipmentInfo info) { EquipmentInfo oldObj = SerializationUtils.clone(info); CasicBeanUtil.copySpecifyProperties(approvalForm, info, "checkOrganization", "checkDate", - "certificateValid", "meterIdentify", "usePosition", "directorName", "rfid", - "useSign", "installLocation", "installLocationExt", "testTask", "remarkExt"); + "certificateValid", "meterIdentify", "usePositionId","usePosition","directorId", "directorName", "rfid", + "useSign","installLocationId", "installLocation", "installLocationExt", "testTask", "remarkExt", + "checkDestination","limitInstruction"); saveTurnoverLog(info, oldObj, approvalForm.getCreateUserId()); equipmentInfoService.updateById(info); } - private void saveTurnoverLog(EquipmentInfo newObj, EquipmentInfo oldObj, Long createUserId) { + @Override + public void saveTurnoverLog(EquipmentInfo newObj, EquipmentInfo oldObj, Long createUserId) { if(ObjectUtil.isEmpty(oldObj)){ oldObj = equipmentInfoService.getById(newObj.getId()); } @@ -268,6 +313,8 @@ info.setGroupInfos(groupInfoService.selectByEquipment(info.getEquipmentId())); info.setCertificateList(equipmentInfoService.allCertificate(info.getEquipmentId(),info.getEquipmentType())); info.setTaskInfos(taskInfoService.listByEquipment(info.getEquipmentId())); + info.setInstructionsFile(modelInfoService.getById(info.getModelId()).getInstructionsFile()); + } return info; } @@ -278,7 +325,7 @@ super.warpper(approval); approval.setCompanyName(permissionContext.getDeptService().getDeptName(approval.getCompanyId())); approval.setDeptName(permissionContext.getDeptService().getDeptName(approval.getDeptId())); - //DictCodeUtils.convertDictCodeToName(approval); + DictCodeUtils.convertDictCodeToName(approval); } catch (Exception e) { throw new RuntimeException(e); @@ -287,6 +334,18 @@ } @Override + public List list(Wrapper queryWrapper) { + return this.baseMapper.selectList(queryWrapper); + } + + @Override + public > E page(E page, Wrapper queryWrapper) { + List list = this.baseMapper.selectListPage((Page) page, (QueryWrapper) queryWrapper); + page.setRecords(list); + return page; + } + + @Override public QueryWrapper commonQuery(EquipmentQueryForm queryForm) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); @@ -294,6 +353,7 @@ queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"use_position_id",queryForm.getUsePositionId()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUsageStatus()), "usage_status", queryForm.getUsageStatus()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "certificate_valid", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "certificate_valid", queryForm.getCertificateValidEnd()); @@ -301,12 +361,18 @@ queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getModel()),"model",queryForm.getModel()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"manufacture_no",queryForm.getManufactureNo()); queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"company_id",queryForm.getCompanyId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()),"director_id",queryForm.getDirectorId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"director_name",queryForm.getDirectorName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()),"use_sign",queryForm.getUseSign()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); + if(ObjectUtil.isNotEmpty(queryForm.getGroupId())){ + String existSql = String.format("(select id from eqpt_equipment_group_relation where group_id = %d and equipment_id = eqpt_equipment_info_approval_view.id)",queryForm.getGroupId()); + queryWrapper.exists(existSql); + } + if(ObjectUtil.isNotEmpty(queryForm.getTaskId())){ - String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info.id)",queryForm.getTaskId()); + String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info_approval_view.id)",queryForm.getTaskId()); queryWrapper.exists(existSql); } queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()),"check_organization",queryForm.getCheckOrganization()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java index bbade89..c587261 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java @@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.annotation.EquipmentLog; import com.casic.missiles.constants.MeterDictCode; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; @@ -27,10 +28,7 @@ import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.PrefixCodeEnum; -import com.casic.missiles.enums.equipment.EquipmentCertificateTypeEnum; -import com.casic.missiles.enums.equipment.EquipmentStatusTypeEnum; -import com.casic.missiles.enums.equipment.EquipmentTypeEnum; -import com.casic.missiles.enums.equipment.StatusApprovalTypeEnum; +import com.casic.missiles.enums.equipment.*; import com.casic.missiles.enums.plan.CheckCompletionEnum; import com.casic.missiles.enums.plan.SampleStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -46,13 +44,21 @@ import com.casic.missiles.service.status.IEquipmentStatusLogService; import com.casic.missiles.service.subcontract.ISubcontractCertificateService; import com.casic.missiles.service.system.IRemindConfigService; +import com.casic.missiles.service.system.ISystemDeptService; +import com.casic.missiles.service.system.ISystemLocationService; +import com.casic.missiles.service.system.ISystemPositionService; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import com.casic.missiles.utils.SpringContextUtil; +import io.swagger.annotations.ApiModelProperty; import liquibase.pro.packaged.S; import lombok.RequiredArgsConstructor; +import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; import org.springframework.web.multipart.MultipartFile; @@ -64,6 +70,7 @@ import java.util.stream.Collectors; import static com.casic.missiles.enums.equipment.EquipmentTypeEnum.EQUIPMENT_TYPE_NORMAL; +import static com.casic.missiles.enums.equipment.EquipmentTypeEnum.EQUIPMENT_TYPE_SPECIAL; /** *

@@ -91,9 +98,16 @@ private final IEquipmentModelInfoService modelInfoService; private final EquipmentInfoApprovalMapper infoApprovalMapper; + private final ISystemDeptService systemDeptService; + private final ISystemPositionService positionService; + private final ISystemLocationService locationService; + private ISubcontractCertificateService subcontractCertificateService; + @Value("${casic.role.operator: user}") + private String operatorRoleTip; + @Autowired @@ -101,6 +115,20 @@ this.subcontractCertificateService = subcontractCertificateService; } + @EquipmentLog(key = "#entity.id") + @Override + @Transactional(propagation = Propagation.REQUIRES_NEW) + public boolean saveOrUpdate(EquipmentInfo entity) { + return super.saveOrUpdate(entity); + } + + @EquipmentLog(key = "#entity.id") + @Override + @Transactional(propagation = Propagation.REQUIRES_NEW) + public boolean updateById(EquipmentInfo entity) { + return super.updateById(entity); + } + @Override public Page listPage(Page page, EquipmentQueryForm queryForm) { QueryWrapper queryWrapper = commonQuery(queryForm); @@ -167,10 +195,24 @@ if (CollUtil.isNotEmpty(queryForm.getIds())) { queryWrapper.in("id", queryForm.getIds()); } else { + // 如果当前用户所在组织机构 的级别是受检单位,查本单位下所有部门的;否则查当前用户所在部门的 + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + if(systemDeptService.isCompany(authUser.getDeptId())){ + List scopeDeptIds = permissionContext.getDeptService().getIdsByPid(authUser.getDeptId(),null); + if(ObjectUtil.isNotEmpty(queryForm.getDeptIds())){ + scopeDeptIds.retainAll(queryForm.getDeptIds()); + } + queryForm.setDeptIds(scopeDeptIds); + }else { + queryForm.setDeptId(authUser.getDeptId()); + } + + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()),"dept_id",queryForm.getDeptId()); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentNo()), "equipment_no", queryForm.getEquipmentNo()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"use_position_id",queryForm.getUsePositionId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUsageStatus()), "usage_status", queryForm.getUsageStatus()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "certificate_valid", queryForm.getCertificateValidStart()); @@ -179,12 +221,18 @@ queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getModel()),"model",queryForm.getModel()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"manufacture_no",queryForm.getManufactureNo()); queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"company_id",queryForm.getCompanyId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()),"director_id",queryForm.getDirectorId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"director_name",queryForm.getDirectorName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()),"use_sign",queryForm.getUseSign()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); + if(ObjectUtil.isNotEmpty(queryForm.getGroupId())){ + String existSql = String.format("(select id from eqpt_equipment_group_relation where group_id = %d and equipment_id = eqpt_equipment_info_view.id)",queryForm.getGroupId()); + queryWrapper.exists(existSql); + } + if(ObjectUtil.isNotEmpty(queryForm.getTaskId())){ - String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info.id)",queryForm.getTaskId()); + String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info_view.id)",queryForm.getTaskId()); queryWrapper.exists(existSql); } queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()),"check_organization",queryForm.getCheckOrganization()); @@ -213,6 +261,8 @@ infoForm.setCertificateList(allCertificate(equipmentId, equipmentInfo.getEquipmentType())); infoForm.setTaskInfos(taskInfoService.listByEquipment(equipmentId)); + infoForm.setInstructionsFile(modelInfoService.getById(equipmentInfo.getModelId()).getInstructionsFile()); + } return infoForm; } @@ -424,7 +474,6 @@ equipmentInfo.setCreateTime(new Date()); equipmentInfo.setUpdateTime(new Date()); equipmentInfo.setIsDel(0); - equipmentInfos.add(equipmentInfo); } @@ -438,10 +487,11 @@ @Override public void updateEquipmentStatus(Long equipmentId, String usageStatus) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("id", equipmentId); - updateWrapper.set("usage_status", usageStatus); - this.update(updateWrapper); + EquipmentInfo equipmentInfo = this.getById(equipmentId); + if(ObjectUtil.isNotEmpty(equipmentInfo)){ + equipmentInfo.setUsageStatus(usageStatus); + } + this.updateById(equipmentInfo); } @Override @@ -469,19 +519,29 @@ if (StrUtil.isNotEmpty(meterIdentify)) { equipmentInfo.setMeterIdentify(meterIdentify); } - this.updateById(equipmentInfo); + //当设备证书有效期更新且未到期时,设备状态自动变更为启封 if (!EquipmentStatusTypeEnum.UNSEAL.equals(equipmentInfo.getUsageStatus()) && !EquipmentStatusTypeEnum.SCRAP.equals(equipmentInfo.getUsageStatus()) && certificateValid.after(new Date())) { - this.updateEquipmentStatus(equipmentId, EquipmentStatusTypeEnum.UNSEAL); - statusLogService.saveLog(equipmentId, StatusApprovalTypeEnum.UNSEAL, "设备证书更新"); + String usageStatus = EquipmentStatusTypeEnum.UNSEAL; + equipmentInfo.setUsageStatus(usageStatus); + statusLogService.saveLog(equipmentId, usageStatus, "设备证书更新"); } - + this.updateById(equipmentInfo); } } } + @Override + public void updateLimitInstruction(Long equipmentId, String limitInstruction) { + EquipmentInfo equipmentInfo = this.getById(equipmentId); + if (ObjectUtil.isNotEmpty(equipmentInfo)) { + equipmentInfo.setLimitInstruction(limitInstruction); + this.updateById(equipmentInfo); + } + } + public void removeCertificateInfo(Long equipmentId, Long certificateId) { EquipmentInfo equipmentInfo = this.getById(equipmentId); if (ObjectUtil.isNotEmpty(equipmentInfo)) { @@ -506,9 +566,11 @@ @Override public Page remindListPage(Page page, EquipmentRemindQueryForm queryForm) { QueryWrapper queryWrapper = remindQuery(queryForm); - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - dataScope.setScopeName("dept_id"); - List list = this.baseMapper.selectRemindListPage(page, dataScope, queryWrapper); + queryWrapper.in("usage_status",Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, + EquipmentStatusTypeEnum.DISABLE, + EquipmentStatusTypeEnum.DELAY)); + List list = this.baseMapper.selectRemindListPage(page, null,queryWrapper, + SampleStatusEnum.getSampleStatusByCompletion(Arrays.asList(CheckCompletionEnum.UNCHECK,CheckCompletionEnum.IN_CHECK))); list.forEach(this::warpEquipmentRemindInfo); page.setRecords(list); return page; @@ -517,9 +579,11 @@ @Override public List remindList(EquipmentRemindQueryForm queryForm) { QueryWrapper queryWrapper = remindQuery(queryForm); - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - dataScope.setScopeName("dept_id"); - List list = this.baseMapper.selectRemindList(dataScope, queryWrapper); + queryWrapper.in("usage_status",Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, + EquipmentStatusTypeEnum.DISABLE, + EquipmentStatusTypeEnum.DELAY)); + List list = this.baseMapper.selectRemindList(null, queryWrapper, + SampleStatusEnum.getSampleStatusByCompletion(Arrays.asList(CheckCompletionEnum.UNCHECK,CheckCompletionEnum.IN_CHECK))); list.forEach(this::warpEquipmentRemindInfo); return list; } @@ -533,10 +597,27 @@ } private QueryWrapper remindQuery(EquipmentRemindQueryForm queryForm){ + // 操作手仅能看到自己负责的设备信息,其余角色查看本组织结构下所有 + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + if(authUser.getRoleTips().contains(operatorRoleTip)){ + queryForm.setDirectorId(authUser.getId()); + }else { + List scopeIds = permissionContext.getDeptService().getIdsByPid(authUser.getDeptId(),null); + scopeIds.add(authUser.getDeptId()); + if(CollUtil.isNotEmpty(queryForm.getDeptIds())){ + scopeIds.retainAll(queryForm.getDeptIds()); + } + queryForm.setDeptIds(scopeIds); + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); if (CollUtil.isNotEmpty(queryForm.getIds())) { queryWrapper.in("id", queryForm.getIds()); } else { + + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()),"dept_id",queryForm.getDeptId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"company_id",queryForm.getCompanyId()); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentNo()), "equipment_no", queryForm.getEquipmentNo()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); @@ -544,15 +625,28 @@ queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"manufacture_no",queryForm.getManufactureNo()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"use_position_id",queryForm.getUsePositionId()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUsageStatus()), "usage_status", queryForm.getUsageStatus()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()), "use_sign", queryForm.getUseSign()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()),"check_destination",queryForm.getCheckDestination()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "certificate_valid", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "certificate_valid", queryForm.getCertificateValidEnd()); + + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()),"check_destination",queryForm.getCheckDestination()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckStatus()),"check_status",queryForm.getCheckStatus()); + + queryWrapper.in(CollUtil.isNotEmpty(queryForm.getUsageStatusList()),"usage_status",queryForm.getUsageStatusList()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufacturer()),"manufacturer",queryForm.getManufacturer()); queryWrapper.like(ObjectUtil.isNotEmpty(queryForm.getTaskId()),"taskIds",queryForm.getTaskId()); if (StrUtil.isNotEmpty(queryForm.getTaskStartTime()) || StrUtil.isNotEmpty(queryForm.getTastEndTime())) { queryWrapper.and(i -> { - i.le(StrUtil.isNotEmpty(queryForm.getTaskStartTime()), "task_start_time", queryForm.getTaskStartTime()) - .or() - .ge(StrUtil.isNotEmpty(queryForm.getTastEndTime()), "task_end_time", queryForm.getTastEndTime()); + i.le(StrUtil.isNotEmpty(queryForm.getTaskStartTime()), "task_start_time", queryForm.getTastEndTime()) + .ge(StrUtil.isNotEmpty(queryForm.getTastEndTime()), "task_end_time", queryForm.getTaskStartTime()); + +// i.le(StrUtil.isNotEmpty(queryForm.getTaskStartTime()), "task_start_time", queryForm.getTaskStartTime()) +// .or() +// .ge(StrUtil.isNotEmpty(queryForm.getTastEndTime()), "task_end_time", queryForm.getTastEndTime()); }); } } @@ -562,6 +656,21 @@ } @Override + public Page orderSelectListPage(Page page, EquipmentRemindQueryForm queryForm) { + QueryWrapper queryWrapper = remindQuery(queryForm); + queryWrapper.in("usage_status",Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, + EquipmentStatusTypeEnum.DISABLE, + EquipmentStatusTypeEnum.DELAY, + EquipmentStatusTypeEnum.SEAL)); + queryWrapper.eq("check_status",0); //未送检设备 + List list = this.baseMapper.selectRemindList(null, queryWrapper, + SampleStatusEnum.getSampleStatusByCompletion(Arrays.asList(CheckCompletionEnum.UNCHECK,CheckCompletionEnum.IN_CHECK))); + list.forEach(this::warpEquipmentRemindInfo); + page.setRecords(list); + return page; + } + + @Override public List expireTrend(String type) { switch (type){ case "month": @@ -598,9 +707,21 @@ queryWrapper.le("certificate_valid", endTime); queryWrapper.eq("is_del",0); - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - dataScope.setScopeName("dept_id"); - return this.baseMapper.selectList(dataScope,queryWrapper); + queryWrapper.in("usage_status",Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, + EquipmentStatusTypeEnum.DISABLE, + EquipmentStatusTypeEnum.DELAY)); + + // 操作手仅能看到自己负责的设备信息,其余角色查看本组织结构下所有 + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + if(authUser.getRoleTips().contains(operatorRoleTip)){ + queryWrapper.eq("director_id",authUser.getId()); + }else { + List scopeIds = permissionContext.getDeptService().getIdsByPid(authUser.getDeptId(),null); + scopeIds.add(authUser.getDeptId()); + queryWrapper.in("dept_id",scopeIds); + } + + return this.baseMapper.selectList(null,queryWrapper); } private List expireTrendByMonth(){ @@ -611,7 +732,7 @@ startCal.set(Calendar.SECOND,0); Calendar endCal = Calendar.getInstance(); - endCal.add(Calendar.MONTH,1); + endCal.add(Calendar.MONTH,3); endCal.set(Calendar.HOUR_OF_DAY,23); endCal.set(Calendar.MINUTE,59); endCal.set(Calendar.SECOND,59); @@ -634,8 +755,19 @@ @Override public Page certificateListPage(Page page, EquipmentCertificateQueryForm queryForm) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - dataScope.setScopeName("e.dept_id"); + // 如果当前用户所在组织机构 的级别是受检单位,查本单位下所有部门的;否则查当前用户所在部门的 + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + if(systemDeptService.isCompany(authUser.getDeptId())){ + List scopeDeptIds = permissionContext.getDeptService().getIdsByPid(authUser.getDeptId(),null); + if(ObjectUtil.isNotEmpty(queryForm.getDeptIds())){ + scopeDeptIds.retainAll(queryForm.getDeptIds()); + } + queryForm.setDeptIds(scopeDeptIds); + }else { + queryForm.setDeptId(authUser.getDeptId()); + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCertificateNo()), "c.certificate_report_no", queryForm.getCertificateNo()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCertificateName()), "c.certificate_report_name", queryForm.getCertificateName()); @@ -644,10 +776,26 @@ queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()), "'西昌卫星发射中心计量测试站'", queryForm.getCheckOrganization()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "c.expiration_date", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "c.expiration_date", queryForm.getCertificateValidEnd()); + + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getModel()),"e.model",queryForm.getModel()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"e.manufacture_no",queryForm.getManufactureNo()); + queryWrapper.eq("e.is_del", 0); queryWrapper.eq("c.approval_status", ApprovalStatusEnum.PASSED); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()),"e.dept_id",queryForm.getDeptId()); + queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "e.dept_id", queryForm.getDeptIds()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"e.company_id",queryForm.getCompanyId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"e.use_position_id",queryForm.getUsePositionId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "e.use_position", queryForm.getUsePosition()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()),"e.director_id",queryForm.getDirectorId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"e.director_name",queryForm.getDirectorName()); - List list = this.baseMapper.bizCertificateListPage(page, dataScope, queryWrapper); + + List list = this.baseMapper.bizCertificateListPage(page, null, queryWrapper); + for (EquipmentCertificateDTO certificateDTO : list) { + certificateDTO.setDeptName(permissionContext.getDeptService().getDeptName(certificateDTO.getDeptId())); + certificateDTO.setCompanyName(permissionContext.getDeptService().getDeptName(certificateDTO.getCompanyId())); + } page.setRecords(list); return page; } @@ -668,4 +816,76 @@ } taskRelationService.saveBatch(relationList); } + + @Override + public String getFieldName(String fieldName) { + Field[] fields = EquipmentInfo.class.getDeclaredFields(); + for (Field field : fields) { + if (!field.isAccessible()) { + field.setAccessible(true); + } + if(fieldName.equals(field.getName())){ + if(field.isAnnotationPresent(ApiModelProperty.class)){ + ApiModelProperty apiModelProperty = field.getAnnotationsByType(ApiModelProperty.class)[0]; + String notes = apiModelProperty.notes(); + if(StrUtil.isNotEmpty(notes)){ + notes = notes.replace("id","").replace("code",""); + } + return notes; + } + } + } + return null; + } + + @Override + public String getFieldValue(String fieldName, String fieldValue) { + if(StrUtil.isBlank(fieldValue)){ + return fieldValue; + } + Field[] fields = EquipmentInfo.class.getDeclaredFields(); + for (Field field : fields) { + if (!field.isAccessible()) { + field.setAccessible(true); + } + if(fieldName.equals(field.getName())){ + if(field.isAnnotationPresent(ApiModelProperty.class)){ + ApiModelProperty apiModelProperty = field.getAnnotationsByType(ApiModelProperty.class)[0]; + String notes = apiModelProperty.notes(); + if(StrUtil.isNotEmpty(notes)){ + if(notes.contains("code")){ + DictCodeField dictCodeField = field.getAnnotationsByType(DictCodeField.class)[0]; + if (StringUtils.isEmpty(dictCodeField.cacheName())) { + throw new BusinessException(500, "缓存名不能为空"); + } + AbstractDictService dictService = SpringContextUtil.getBean(AbstractDictService.class); + fieldValue = dictService.getDictNameByCode(dictCodeField.cacheName(), fieldValue); + } + if(notes.contains("id")){ + switch (notes){ + case "所在单位id": + case "使用部门id": + fieldValue = permissionContext.getDeptService().getDeptName(fieldValue); + break; + case "使用岗位id": + fieldValue = positionService.getNameById(Long.valueOf(fieldValue)); + break; + case "负责人id": + fieldValue = permissionContext.getUserService().getById(fieldValue).getName(); + break; + case "安装位置id": + fieldValue = locationService.getById(fieldValue).getInstallLocation(); + break; + case "规格型号id": + fieldValue = modelInfoService.getById(fieldValue).getModel(); + break; + } + } + } + + } + } + } + return fieldValue; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModelInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModelInfoServiceImpl.java index 9c5ce09..6510618 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModelInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModelInfoServiceImpl.java @@ -53,11 +53,23 @@ private final IEquipmentInfoApprovalService equipmentInfoApprovalService; private final AbstractPermissionContext permissionContext; + private final String XC_INSPECTABLE = "1"; // 西昌可检 + private final String HK_INSPECTABLE = "2"; // 海口可检 + + private final String XC_LAB = "西昌"; // 西昌可检 + private final String HK_LAB = "海口"; // 海口可检 + + private final String CHECK_DESTINATION_METER = "1"; // 检定去向:计量室 + private final String CHECK_DESTINATION_DELIVERY = "2"; // 检定去向:外送 + @Override @Transactional public void add(EquipmentModelInfo modelInfo) { - Long maxNo = this.baseMapper.selectMaxNo(); - modelInfo.setModelNo(NumberGeneratorUtil.getContactNo(PrefixCodeEnum.EQUIPMENT_MODEL_PREFIX, maxNo)); + if(StrUtil.isNotEmpty(modelInfo.getInspectable())){ + if(StrUtil.isBlank(modelInfo.getCategory())){ + throw new BusinessException(501,"计量站可检,设备分类必填"); + } + } this.save(modelInfo); technicalTargetService.saveByModel(modelInfo.getId(),modelInfo.getTechnicalTargetList()); } @@ -65,6 +77,11 @@ @Override @Transactional public void update(EquipmentModelInfo modelInfo) { + if(StrUtil.isNotEmpty(modelInfo.getInspectable())){ + if(StrUtil.isBlank(modelInfo.getCategory())){ + throw new BusinessException(501,"计量站可检,设备分类必填"); + } + } this.updateById(modelInfo); technicalTargetService.saveByModel(modelInfo.getId(),modelInfo.getTechnicalTargetList()); equipmentInfoService.updateByModel(modelInfo); @@ -90,8 +107,6 @@ @Override public Page listScopePage(Page page, EquipmentModelQueryForm queryForm) { -// DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); -// dataScope.setScopeName("create_dept_id"); QueryWrapper queryWrapper = commonQuery(queryForm); List list = this.baseMapper.listScopePage(null,page,queryWrapper); List technicalTargetList = technicalTargetService.listByModelIds(list.stream().map(EquipmentModelInfo::getId).collect(Collectors.toList())); @@ -111,8 +126,6 @@ @Override public List listScope(EquipmentModelQueryForm queryForm) { -// DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); -// dataScope.setScopeName("create_dept_id"); QueryWrapper queryWrapper = commonQuery(queryForm); List list = this.baseMapper.listScope(null,queryWrapper); List technicalTargetList = technicalTargetService.listByModelIds(list.stream().map(EquipmentModelInfo::getId).collect(Collectors.toList())); @@ -136,35 +149,44 @@ queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getHelpInstruction()),"help_instruction",queryForm.getHelpInstruction()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCategory()),"category",queryForm.getCategory()); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getIds()),"id",queryForm.getIds()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()),"equipment_type",queryForm.getEquipmentType()); return queryWrapper; } @Override - public List listEquipmentName() { + public List listEquipmentName(String equipmentType) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.select("distinct equipment_name as equipment_name"); - -// DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); -// if (!ScopeEnums.ALL_TYPE.equals(dataScope.getScopeEnums())) { -// List dataScopeDeptIds = dataScope.getDeptIds(); -// queryWrapper.in("create_dept_id",dataScopeDeptIds); -// } + queryWrapper.eq(StrUtil.isNotEmpty(equipmentType),"equipment_type",equipmentType); + queryWrapper.orderByAsc("equipment_name"); List> maps = this.listMaps(queryWrapper); return maps.stream().map(i->i.get("equipment_name").toString()).collect(Collectors.toList()); } @Override - public List listModel(String equipmentName) { + public List listModel(String equipmentType, String equipmentName) { QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(StrUtil.isNotEmpty(equipmentType),"equipment_type",equipmentType); queryWrapper.eq("equipment_name",equipmentName); -// DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); -// if (!ScopeEnums.ALL_TYPE.equals(dataScope.getScopeEnums())) { -// List dataScopeDeptIds = dataScope.getDeptIds(); -// queryWrapper.in("create_dept_id",dataScopeDeptIds); -// } queryWrapper.select("distinct model as model"); + queryWrapper.orderByAsc("model"); List> maps = this.listMaps(queryWrapper); return maps.stream().map(i->i.get("model").toString()).collect(Collectors.toList()); } + @Override + public String defaultCheckDestination(Long modelId, Long companyId) { + String defaultLab = this.baseMapper.getLabLocation(companyId); + String inspectable = this.getById(modelId).getInspectable(); + if(StrUtil.isNotEmpty(defaultLab) && StrUtil.isNotEmpty(inspectable)){ + if(inspectable.contains(XC_INSPECTABLE) && defaultLab.contains(XC_LAB)){ + return CHECK_DESTINATION_METER; + }else if(inspectable.contains(HK_INSPECTABLE) && defaultLab.contains(HK_LAB)){ + return CHECK_DESTINATION_METER; + }else { + return CHECK_DESTINATION_DELIVERY; + } + } + return null; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemDeptServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemDeptServiceImpl.java index 8dac37e..4f3e46d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemDeptServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemDeptServiceImpl.java @@ -62,4 +62,10 @@ } return secondDepts; } + + @Override + public boolean isCompany(Long deptId) { + Dept dept = deptService.getById(deptId); + return dept.getPid() <= 0; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemLocationServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemLocationServiceImpl.java index c77c548..5f3008c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemLocationServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemLocationServiceImpl.java @@ -97,28 +97,31 @@ } @Override - public Page listPage(Page page, Long searchId, String positionName) { - QueryWrapper queryWrapper = getQueryWrapper(searchId, positionName); + public Page listPage(Page page, Long searchId,Long positionId, String installLocation) { + QueryWrapper queryWrapper = getQueryWrapper(searchId,positionId, installLocation); page = this.page(page, queryWrapper); page.getRecords().forEach(this::wrapper); return page; } @Override - public List list(Long searchId, String positionName) { - QueryWrapper queryWrapper = getQueryWrapper(searchId, positionName); + public List list(Long searchId,Long positionId, String installLocation) { + QueryWrapper queryWrapper = getQueryWrapper(searchId,positionId, installLocation); List list = this.list(queryWrapper); list.forEach(this::wrapper); return list; } @NotNull - private static QueryWrapper getQueryWrapper(Long searchId, String positionName) { + private static QueryWrapper getQueryWrapper(Long searchId,Long positionId, String installLocation) { QueryWrapper queryWrapper = new QueryWrapper<>(); - if(StrUtil.isNotEmpty(positionName)){ - queryWrapper.like("position_name", positionName); + if(ObjectUtil.isNotEmpty(positionId)){ + queryWrapper.eq("position_id",positionId); } - if(ObjectUtil.isEmpty(searchId)){ + if(StrUtil.isNotEmpty(installLocation)){ + queryWrapper.like("install_location", installLocation); + } + if(ObjectUtil.isNotEmpty(searchId)){ queryWrapper.and(i->i.eq("company_id", searchId) .or().eq("dept_id", searchId) .or().eq("sub_system_id", searchId)); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemPositionServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemPositionServiceImpl.java index 1520928..6015bd8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemPositionServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemPositionServiceImpl.java @@ -117,7 +117,7 @@ if(StrUtil.isNotEmpty(positionName)){ queryWrapper.like("position_name", positionName); } - if(ObjectUtil.isEmpty(searchId)){ + if(ObjectUtil.isNotEmpty(searchId)){ queryWrapper.and(i->i.eq("company_id", searchId) .or().eq("dept_id", searchId) .or().eq("sub_system_id", searchId)); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemDeptService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemDeptService.java index a821d17..65d5b7f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemDeptService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemDeptService.java @@ -9,4 +9,6 @@ Dept getUserCompany(); List getAllCompanyList(); + + boolean isCompany(Long deptId); } 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 index 2039244..1198f89 100644 --- 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 @@ -1,6 +1,8 @@ package com.casic.missiles.utils; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; @@ -66,6 +68,52 @@ return true; } + public static JSONArray fieldCompareDetail(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); + + JSONArray res = new JSONArray(); + //循环遍历比较属性 + if (beforeFields.length > 0) { + for (int i = 0; i < beforeFields.length; i++) { + if (ObjectUtil.isEmpty(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))) { + JSONObject item = new JSONObject(); + item.put("field",beforeFields[i].getName()); + item.put("oldVal",beforeValue); + item.put("newVal",afterValue); + res.add(item); + } + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + } + } + } + } + + + return res; + } + public static void copySpecifyProperties(Object source, Object target, String... copyProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java index b8ed4da..a755b10 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentGroupInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.mapper.equipment; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +20,7 @@ @InterceptorIgnore(tenantLine = "true") public interface EquipmentGroupInfoMapper extends BaseMapper { + List listPage(@Param("page") Page page, + @Param("ew")QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java index 3b59797..c004670 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoApprovalMapper.java @@ -1,10 +1,16 @@ package com.casic.missiles.mapper.equipment; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

* 受检设备-设备台账-审批记录表 Mapper 接口 @@ -19,4 +25,13 @@ Long selectMaxNo(@Param("equipmentType")String equipmentType); Integer checkRfid(@Param("rfid")String rfid,@Param("equipmentId")Long equipmentId); + + String checkLocation(@Param("installLocationId")Long installLocationId, + @Param("usageStatus")String usageStatus, + @Param("equipmentId")Long equipmentId); + + List selectListPage(@Param("page") Page page, @Param("ew") QueryWrapper queryWrapper); + + List selectList(@Param("ew") QueryWrapper queryWrapper); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java index 025b0f0..82814ec 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModelInfoMapper.java @@ -30,4 +30,6 @@ @Param("page") Page page, @Param("ew")QueryWrapper queryWrapper); + String getLabLocation(@Param("companyId") Long companyId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml index 8667ec0..79b29e8 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupInfoMapper.xml @@ -18,4 +18,27 @@ id, group_name, create_user_id, create_user_name, create_time, update_time, remark + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml index 852b4dc..373adcb 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentGroupRelationMapper.xml @@ -26,6 +26,9 @@ e.equipment_no as equipmentNo, e.equipment_name as equipmentName, e.model as model, + e.manufacture_no as manufactureNo, + e.manufacturer as manufacturer, + e.usage_status as usageStatus, e.director_name as directorName, e.meter_identify as meterIdentify, e.certificate_valid as certificateValid, @@ -33,7 +36,7 @@ e.install_location_ext as installLocationExt FROM eqpt_equipment_group_relation r - LEFT JOIN eqpt_equipment_info e ON r.equipment_id = e.id + LEFT JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id WHERE r.group_id = #{groupId} diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml index a9033f9..c49776d 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoApprovalMapper.xml @@ -4,71 +4,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - id, approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + id + , approval_type, process_id, approval_status, equipment_id, equipment_no, equipment_name, usage_status, level, product_country, manufacturer, manufacture_no, product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time + ,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction + + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml index 62449ec..f4d9936 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentInfoMapper.xml @@ -42,6 +42,12 @@ + + + + + + @@ -50,12 +56,20 @@ product_date, unit_price, purchase_date, model, quality_condition, company_id, dept_id, category, check_cycle, remark, instructions_file, check_organization, check_date, certificate_valid as certificateValid, meter_identify, use_position, director_name, RFID, use_sign, install_location, install_location_ext, test_task, remark_ext, create_user_id, create_user_name, create_time, update_time, - is_del,model_id,help_instruction + is_del,model_id,help_instruction,use_position_id,director_id,install_location_id,check_destination,limit_instruction select - from eqpt_equipment_info + from eqpt_equipment_info_view ${ew.sqlSegment} @@ -110,7 +124,7 @@ eqpt_remind_all as ( select e.id as equipment_id, - IFNULL(m.remind_time,0) as remind_time + IFNULL(m.remind_time,90) as remind_time from eqpt_equipment_info e left join eqpt_remind m on e.id = m.equipment_id ), @@ -118,20 +132,32 @@ select id,task_name,CONCAT(DATE_FORMAT(start_time,'%Y-%m-%d'),"~",DATE_FORMAT(end_time,'%Y-%m-%d')) as time_ext,start_time,end_time from eqpt_equipment_task_info ), + latest_sample_relation AS ( + SELECT * + FROM biz_business_order_sample_relation a + WHERE id = ( + SELECT max( id ) + FROM biz_business_order_sample_relation b + WHERE a.sample_id = b.sample_id ) + ), eqpt_ext as ( select e.* , - DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, - GROUP_CONCAT(t.task_name) as taskNames, - GROUP_CONCAT(t.time_ext) as taskTimes, - GROUP_CONCAT(t.id) as taskIds, - min(t.start_time) as task_start_time, - max(t.end_time) as task_end_time - from eqpt_equipment_info e + DATE_SUB(e.certificate_valid,INTERVAL a.remind_time DAY) AS remind_valid, + GROUP_CONCAT(t.task_name) as taskNames, + GROUP_CONCAT(t.time_ext) as taskTimes, + GROUP_CONCAT(t.id) as taskIds, + min(t.start_time) as task_start_time, + max(t.end_time) as task_end_time, + (case when lsr.sample_status in + #{item} + then 1 else 0 end) as check_status + from eqpt_equipment_info_view e left join eqpt_remind_all a on e.id = a.equipment_id left join eqpt_equipment_task_relation r on e.id = r.equipment_id left join task_ext t on r.task_id = t.id + left join latest_sample_relation lsr on lsr.sample_id = e.id where e.certificate_valid is not null - group by e.id,e.certificate_valid,a.remind_time + group by e.id,e.certificate_valid,a.remind_time,lsr.sample_status ) select * from eqpt_ext @@ -163,6 +189,9 @@ e.equipment_name as equipmentName, e.meter_identify as meterIdentify, e.dept_id as deptId, + e.model as model, + e.company_id as companyId, + e.manufacture_no as manufactureNo, c.certificate_report_no as certificateNo, c.certificate_report_name as certificateName, '西昌卫星发射中心计量测试站' as checkOrganization, @@ -173,7 +202,7 @@ c.update_time as updateTime, '1' as certificateType, c.remark as remark - from biz_business_certificate_report c ,eqpt_equipment_info e + from biz_business_certificate_report c ,eqpt_equipment_info_view e where c.sample_id = e.id diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml index 097c405..2ddebe6 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModelInfoMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,6 +13,7 @@ + @@ -21,7 +22,7 @@ - id, model_no, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, create_user_id, create_dept_id, create_time, update_time + id, equipment_type, equipment_name, model, help_instruction, category, check_cycle, instructions_file, remark, inspectable, create_user_id, create_dept_id, create_time, update_time + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java index c69cc82..d1a2bd1 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentGroupController.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.service.equipment.IEquipmentGroupInfoService; import io.swagger.annotations.Api; @@ -60,14 +61,11 @@ return ReturnUtil.success(); } - @ApiImplicitParams({ - @ApiImplicitParam(name = "groupName",value = "分组名称",dataType = "String",paramType = "query") - }) @ApiOperation("分组分页列表") - @GetMapping("listPage") - public ReturnDTO> listPage(String groupName){ + @PostMapping("listPage") + public ReturnDTO> listPage(@RequestBody EquipmentGroupQueryForm queryForm){ Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,groupName))); + return ReturnUtil.success(super.packForBT(groupInfoService.listPage(page,queryForm))); } @ApiImplicitParams({ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 56b6814..3130c5c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.business.LabelBindDTO; import com.casic.missiles.dto.equipment.*; import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; import com.casic.missiles.service.equipment.IEquipmentInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -36,6 +37,14 @@ public class EquipmentInfoController extends ExportController { private final IEquipmentInfoService equipmentInfoService; + private final IEquipmentInfoApprovalService approvalService; + + @ApiOperation("直接编辑设备") + @PostMapping("/info/update") + public ReturnDTO update(@RequestBody EquipmentApprovalForm approvalForm){ + approvalService.updateEquipmentInfo(approvalForm); + return ReturnUtil.success(); + } @ApiOperation("设备分页列表") @PostMapping("/info/listPage") @@ -152,5 +161,14 @@ return ReturnUtil.success(); } + @ApiOperation("到期提醒分页列表") + @PostMapping("/orderSelect/listPage") + @ResponseBody + public ReturnDTO> EquipmentOrderSelectQueryForm(@RequestBody EquipmentRemindQueryForm queryForm) { + Page page = PageFactory.defaultPage(); + page = equipmentInfoService.orderSelectListPage(page, queryForm); + return ReturnUtil.success(super.packForBT(page)); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index 044d245..ccbd668 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -103,14 +103,20 @@ @ApiOperation("设备名称列表") @GetMapping("listEquipmentName") - public ReturnDTO> listEquipmentName(){ - return ReturnUtil.success(modelInfoService.listEquipmentName()); + public ReturnDTO> listEquipmentName(String equipmentType){ + return ReturnUtil.success(modelInfoService.listEquipmentName(equipmentType)); } @ApiOperation("规格型号列表") @GetMapping("listModel") - public ReturnDTO> listModel(String equipmentName){ - return ReturnUtil.success(modelInfoService.listModel(equipmentName)); + public ReturnDTO> listModel(String equipmentType, String equipmentName){ + return ReturnUtil.success(modelInfoService.listModel(equipmentType,equipmentName)); + } + + @ApiOperation("获取默认检定去向") + @GetMapping("defaultCheckDestination") + public ReturnDTO defaultCheckDestination(Long modelId, Long companyId){ + return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java index 7e79008..1fc1f9c 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizUpdateController.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.CertificateUpdate; +import com.casic.missiles.dto.equipment.LimitInstructionUpdate; import com.casic.missiles.model.plan.OrderReceive; import com.casic.missiles.model.plan.SampleStatueUpdate; import com.casic.missiles.service.equipment.IEquipmentInfoService; @@ -55,4 +56,11 @@ return ReturnUtil.success(); } + @ApiOperation("更新限用说明") + @PostMapping("/limitInstructionUpdate") + public ReturnDTO updateLimitInstruction(@RequestBody LimitInstructionUpdate updateForm) { + equipmentInfoService.updateLimitInstruction(updateForm.getEquipmentId(), updateForm.getLimitInstruction()); + return ReturnUtil.success(); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java index e314003..73d02ec 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemLocationController.java @@ -1,7 +1,18 @@ package com.casic.missiles.controller.system; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.system.SystemLocation; +import com.casic.missiles.service.system.ISystemLocationService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** *

@@ -11,8 +22,45 @@ * @author zhangyingjie * @since 2023-11-15 */ +@Api(tags = "安装位置管理") @RestController -@RequestMapping("/system-location") -public class SystemLocationController { +@RequestMapping("/system/location") +@RequiredArgsConstructor +public class SystemLocationController extends BaseController { + + private final ISystemLocationService locationService; + + @PostMapping("add") + public ReturnDTO add(@RequestBody SystemLocation systemLocation){ + locationService.add(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("update") + public ReturnDTO update(@RequestBody SystemLocation systemLocation){ + locationService.update(systemLocation); + return ReturnUtil.success(); + } + + @PostMapping("delete") + public ReturnDTO delete(@RequestBody SystemLocation systemLocation){ + locationService.delete(systemLocation); + return ReturnUtil.success(); + } + + @GetMapping("listPage") + public ReturnDTO> listPage(Long searchId,Long positionId, String installLocation){ + Page page = PageFactory.defaultPage(); + page = locationService.listPage(page,searchId,positionId, installLocation); + return ReturnUtil.success(super.packForBT(page)); + } + + @GetMapping("list") + public ReturnDTO> list(Long searchId,Long positionId, String installLocation){ + List list = locationService.list(searchId,positionId, installLocation); + return ReturnUtil.success(list); + } + + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java index f9e2f91..d64634a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/system/SystemPositionController.java @@ -1,6 +1,8 @@ package com.casic.missiles.controller.system; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; @@ -10,6 +12,8 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** *

* 受检系统-系统管理-岗位管理 前端控制器 @@ -22,7 +26,7 @@ @RestController @RequestMapping("/system/position") @RequiredArgsConstructor -public class SystemPositionController { +public class SystemPositionController extends BaseController { private final ISystemPositionService positionService; @@ -45,16 +49,16 @@ } @GetMapping("listPage") - public ReturnDTO listPage(Long searchId,String positionName){ + public ReturnDTO> listPage(Long searchId, String positionName){ Page page = PageFactory.defaultPage(); - positionService.listPage(page,searchId,positionName); - return ReturnUtil.success(); + page = positionService.listPage(page,searchId,positionName); + return ReturnUtil.success(super.packForBT(page)); } @GetMapping("list") - public ReturnDTO list(Long searchId,String positionName){ - positionService.list(searchId,positionName); - return ReturnUtil.success(); + public ReturnDTO> list(Long searchId,String positionName){ + List list = positionService.list(searchId,positionName); + return ReturnUtil.success(list); } diff --git a/casic-metering-eqpt-api/src/main/resources/config/application.yml b/casic-metering-eqpt-api/src/main/resources/config/application.yml index 6f0359b..88cce74 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application.yml @@ -72,9 +72,9 @@ addresses: http://111.198.10.15:21605/xxl-job-admin executor: # 此执行器的名称 - appname: casic-metering-job + appname: casic-metering-xc-eqpt-job # 此执行器的ip、端口,每个节点对应自己的ip,端口用于任务执行的通信 - ip: 127.0.0.1 + ip: 192.168.20.33 port: 9999 # 此执行器的日志存放路径 logpath: logs/xxl-job/casic-metering-job @@ -122,7 +122,7 @@ #作者 author: zhangyingjie #待生成对象表名 - table-name: eqpt_remind_relation + table-name: eqpt_equipment_modify_log prefix: eqpt_ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index 7b3c7a2..29a820a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -18,11 +18,15 @@ */ // 系统前缀 String DICT_PREFIX = "eqpt"; + + String EQUIPMENT_TYPE = DICT_PREFIX + "DeviceCategory"; //受检设备使用状态 String EQUIPMENT_USAGE_STATUS = DICT_PREFIX + "DeviceUseStatus"; //受检设备重要等级 String EQUIPMENT_LEVEL = DICT_PREFIX + "DeviceLevel"; + String EQUIPMENT_QUALITY = DICT_PREFIX + "DeviceQuality"; + String EQUIPMENT_CATEGORY = DICT_PREFIX + "DeviceType"; // 设备申请类型 String EQUIPMENT_APPROVAL_TYPE = DICT_PREFIX + "EquipmentApprovalType"; @@ -30,6 +34,8 @@ String EQUIPMENT_STATUS_APPROVAL_TYPE = DICT_PREFIX + "EquipmentStatusApprovalType"; // 设备计量标识 String EQUIPMENT_METER_IDENTITY = DICT_PREFIX + "MeterIdentify"; + + String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; // 计量计划计划分类 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java index 694e48b..aefff4a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentApprovalForm.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.equipment; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.model.equipment.EquipmentAttachment; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentTechnicalTarget; @@ -13,6 +14,8 @@ @Data public class EquipmentApprovalForm extends EquipmentInfoApproval { + @ApiModelProperty("规格型号说明书") + private String instructionsFile; @ApiModelProperty("技术指标列表") private List technicalTargetList; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java index f6448c6..c814444 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentInfoForm.java @@ -12,6 +12,9 @@ @Setter public class EquipmentInfoForm extends EquipmentInfo{ + @ApiModelProperty("规格型号说明书") + private String instructionsFile; + @ApiModelProperty("组别信息") @TableField(exist = false) private List groupInfos; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java index bcec504..7803273 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelQueryForm.java @@ -10,6 +10,9 @@ @Setter public class EquipmentModelQueryForm { + @ApiModelProperty("设备类型") + private String equipmentType; + @ApiModelProperty("设备名称") private String equipmentName; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java index 03fc0f1..fc2acc8 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java @@ -32,12 +32,21 @@ @ApiModelProperty("所在单位") private Long companyId; - @ApiModelProperty("使用部门") + + @ApiModelProperty("使用部门(单个)") + private Long deptId; + @ApiModelProperty("使用部门(列表)") private List deptIds; + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty("使用岗位") private String usePosition; + @ApiModelProperty("负责人ID") + private Long directorId; + @ApiModelProperty("负责人") private String directorName; @@ -50,6 +59,9 @@ @ApiModelProperty("安装位置") private String installLocation; + @ApiModelProperty("分组id") + private Long groupId; + @ApiModelProperty("参试任务id") private Long taskId; @@ -75,4 +87,5 @@ @ApiModelProperty("使用状态列表[状态维护选择设备时用]") private List usageStatusList; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java index 30b5af3..b6afd18 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupInfo.java @@ -73,5 +73,52 @@ @TableField("remark") private String remark; + /** + * 所在单位id + */ + @ApiModelProperty("所在单位id") + @TableField(exist = false) + private Long companyId; + + @ApiModelProperty("所在单位名称") + @TableField(exist = false) + private String companyName; + + /** + * 使用部门id + */ + @ApiModelProperty("使用部门id") + @TableField(exist = false) + private Long deptId; + + @ApiModelProperty("使用部门名称") + @TableField(exist = false) + private String deptName; + + /** + * 分系统id + */ + @ApiModelProperty(value = "分系统id") + @TableField(exist = false) + private Long subSystemId; + + @ApiModelProperty("分系统名称") + @TableField(exist = false) + private String subSystemName; + + /** + * 使用岗位id + */ + @ApiModelProperty("岗位ID") + @TableField("position_id") + private Long positionId; + + /** + * 使用岗位名称 + */ + @ApiModelProperty("岗位名称") + @TableField(exist = false) + private String positionName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java index 36575f6..b4f78b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentGroupRelation.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.equipment; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -7,6 +8,8 @@ import java.io.Serializable; import java.util.Date; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.Getter; @@ -55,12 +58,35 @@ @ApiModelProperty("型号规格") @TableField(exist = false) private String model; + + @ApiModelProperty("出厂编号") + @TableField(exist = false) + private String manufactureNo; + @ApiModelProperty("生产厂家") + @TableField(exist = false) + private String manufacturer; + + /** + * 出厂编号 + */ + @ApiModelProperty("负责人") @TableField(exist = false) private String directorName; @ApiModelProperty("计量标识") @TableField(exist = false) private String meterIdentify; + + @ApiModelProperty("计量标识名称") + @TableField(exist = false) + private String meterIdentifyName; + + @ApiModelProperty("使用状态(字典code)") + @TableField(exist = false) + private String usageStatus; + @ApiModelProperty("使用状态名称") + @TableField(exist = false) + private String usageStatusName; @ApiModelProperty("证书有效期") @TableField(exist = false) private Date certificateValid; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java index 21294cf..a8392ff 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java @@ -44,14 +44,14 @@ private static final long serialVersionUID = 1L; - @ApiModelProperty("主键") + @ApiModelProperty(value = "主键") @TableId("id") private Long id; /** * 设备编号 */ - @ApiModelProperty("设备编号") + @ApiModelProperty(value = "设备编号",notes = "统一编号") @TableField("equipment_no") @ExcelProperty(value = "统一编号",index = 0) private String equipmentNo; @@ -59,7 +59,7 @@ /** * 设备名称 */ - @ApiModelProperty("设备名称") + @ApiModelProperty(value = "设备名称",notes = "设备名称") @TableField("equipment_name") @ExcelProperty(value = "设备名称",index = 1) private String equipmentName; @@ -67,14 +67,18 @@ /** * 设备类型(1受检设备;2特种设备) */ - @ApiModelProperty("设备类型(1受检设备;2特种设备)") + @ApiModelProperty(value = "设备类型(1受检设备;2特种设备)",notes = "设备类型code") @TableField("equipment_type") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE) private String equipmentType; + @TableField(exist = false) + private String equipmentTypeName; + /** * 使用状态(字典code) */ - @ApiModelProperty("使用状态(字典code)") + @ApiModelProperty(value = "使用状态(字典code)",notes = "使用状态code") @TableField("usage_status") @DictCodeField(message = "使用状态", cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS) private String usageStatus; @@ -87,28 +91,32 @@ /** * 等级(字典code) */ - @ApiModelProperty("等级(字典code)") + @ApiModelProperty(value = "等级(字典code)",notes = "重要等级code") @TableField("level") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_LEVEL) private String level; + @TableField(exist = false) + private String levelName; + /** * 生产国家 */ - @ApiModelProperty("生产国家") + @ApiModelProperty(value = "生产国家",notes = "生产国家") @TableField("product_country") private String productCountry; /** * 生产厂家 */ - @ApiModelProperty("生产厂家") + @ApiModelProperty(value = "生产厂家",notes = "生产厂家") @TableField("manufacturer") private String manufacturer; /** * 出厂编号 */ - @ApiModelProperty("出厂编号") + @ApiModelProperty(value = "出厂编号",notes = "出厂编号") @TableField("manufacture_no") @ExcelProperty(value = "出厂编号",index = 3) private String manufactureNo; @@ -116,28 +124,28 @@ /** * 生产日期 */ - @ApiModelProperty("生产日期") + @ApiModelProperty(value = "生产日期",notes = "生产日期") @TableField("product_date") private Date productDate; /** * 单价(万元) */ - @ApiModelProperty("单价(万元)") + @ApiModelProperty(value = "单价(万元)",notes = "设备单价(万元)") @TableField("unit_price") private BigDecimal unitPrice; /** * 购进日期 */ - @ApiModelProperty("购进日期") + @ApiModelProperty(value = "购进日期",notes = "购进日期") @TableField("purchase_date") private Date purchaseDate; /** * 型号规格 */ - @ApiModelProperty("型号规格") + @ApiModelProperty(value = "型号规格",notes = "型号规格") @TableField("model") @ExcelProperty(value = "型号规格",index = 2) private String model; @@ -145,14 +153,18 @@ /** * 质量状况 */ - @ApiModelProperty("质量状况") + @ApiModelProperty(value = "质量状况",notes = "质量状况code") @TableField("quality_condition") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_QUALITY) private String qualityCondition; + @TableField(exist = false) + private String qualityConditionName; + /** * 所在单位id */ - @ApiModelProperty("所在单位id") + @ApiModelProperty(value = "所在单位id",notes = "所在单位id") @TableField("company_id") private Long companyId; @@ -163,7 +175,7 @@ /** * 使用部门id */ - @ApiModelProperty("使用部门id") + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") @TableField("dept_id") private Long deptId; @@ -174,14 +186,17 @@ /** * 设备分类(字典code) */ - @ApiModelProperty("设备分类(字典code)") + @ApiModelProperty(value = "设备分类(字典code)",notes = "设备分类code") @TableField("category") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CATEGORY) private String category; + @TableField(exist = false) + private String categoryName; /** * 检定周期(月) */ - @ApiModelProperty("检定周期(月)") + @ApiModelProperty(value = "检定周期(月)",notes = "检定周期(月)") @TableField("check_cycle") @ExcelProperty(value = "检定周期(月)",index = 6) @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, horizontalAlignment = HorizontalAlignmentEnum.LEFT) @@ -190,7 +205,7 @@ /** * 备注 */ - @ApiModelProperty("备注") + @ApiModelProperty(value = "备注",notes = "备注") @TableField("remark") @ExcelProperty(value = "备注",index = 9) private String remark; @@ -198,28 +213,28 @@ /** * 说明书(minio存储文件名)(多个用,拼接) */ - @ApiModelProperty("说明书(minio存储文件名)(多个用,拼接)") + @ApiModelProperty(value = "说明书(minio存储文件名)(多个用,拼接)") @TableField("instructions_file") private String instructionsFile; /** * 检定机构 */ - @ApiModelProperty("检定机构") + @ApiModelProperty(value = "检定机构",notes = "检定(校准)机构") @TableField("check_organization") private String checkOrganization; /** * 检定日期 */ - @ApiModelProperty("检定日期") + @ApiModelProperty(value = "检定日期",notes = "检定(校准)日期") @TableField("check_date") private Date checkDate; /** * 证书有效期 */ - @ApiModelProperty("证书有效期") + @ApiModelProperty(value = "证书有效期",notes = "证书有效期") @TableField("certificate_valid") @ExcelProperty(value = "证书有效期",index = 7, converter = DateExcelConverter.class) private Date certificateValid; @@ -227,7 +242,7 @@ /** * 计量标识 */ - @ApiModelProperty("计量标识") + @ApiModelProperty(value = "计量标识",notes = "计量标识code") @TableField("meter_identify") @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY) private String meterIdentify; @@ -237,17 +252,28 @@ @ExcelProperty(value = "计量标识",index = 5) private String meterIdentifyName; + @ApiModelProperty(value = "使用岗位id",notes = "使用岗位id") + @TableField("use_position_id") + private String usePositionId; + /** * 使用岗位 */ @ApiModelProperty("使用岗位") - @TableField("use_position") + @TableField(exist = false) @ExcelProperty(value = "使用岗位",index = 4) private String usePosition; /** * 负责人 */ + @ApiModelProperty(value = "负责人id",notes = "负责人id") + @TableField("director_id") + private String directorId; + + /** + * 负责人 + */ @ApiModelProperty("负责人") @TableField("director_name") private String directorName; @@ -255,17 +281,25 @@ /** * RFID标签绑定 */ - @ApiModelProperty("RFID标签绑定") + @ApiModelProperty(value = "RFID标签绑定",notes = "RFID标签绑定") @TableField("RFID") private String rfid; /** * 在用信息(字典code) */ - @ApiModelProperty("在用信息(字典code)") + @ApiModelProperty(value = "在用信息(字典code)",notes = "在用信息code") @TableField("use_sign") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE) private String useSign; + @TableField(exist = false) + private String useSignName; + + @ApiModelProperty(value = "安装位置id",notes = "安装位置id") + @TableField("install_location_id") + private Long installLocationId; + /** * 安装位置(选择) */ @@ -276,7 +310,7 @@ /** * 安装位置(自定义编写) */ - @ApiModelProperty("安装位置(自定义编写)") + @ApiModelProperty(value = "安装位置(自定义编写)",notes = "详细位置") @TableField("install_location_ext") private String installLocationExt; @@ -290,7 +324,7 @@ /** * 备注(扩展) */ - @ApiModelProperty("备注(扩展)") + @ApiModelProperty(value = "备注(扩展)",notes = "备注") @TableField("remark_ext") private String remarkExt; @@ -327,14 +361,25 @@ @TableLogic(value = "0",delval = "1") private Integer isDel; - @ApiModelProperty("规格型号id") + @ApiModelProperty(value = "规格型号id",notes = "规格型号id") @TableField("model_id") private Long modelId; - @ApiModelProperty("辅助字段") + @ApiModelProperty(value = "辅助字段",notes = "辅助字段") @TableField("help_instruction") private String helpInstruction; + @ApiModelProperty(value = "检定去向",notes = "检定去向") + @TableField("check_destination") + private String checkDestination; + + @ApiModelProperty(value = "限用说明",notes = "限用说明") + @TableField("limit_instruction") + private String limitInstruction; + + @ApiModelProperty("分组名称") + @TableField(exist = false) + private String groupNames; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java index 13eeef8..060aa33 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java @@ -101,8 +101,13 @@ */ @ApiModelProperty("使用状态(字典code)") @TableField("usage_status") + @DictCodeField(message = "使用状态", cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS) private String usageStatus; + @ApiModelProperty("使用状态名称") + @TableField(exist = false) + private String usageStatusName; + /** * 等级(字典code) */ @@ -253,6 +258,10 @@ @TableField(exist = false) private String meterIdentifyName; + @ApiModelProperty("使用岗位id") + @TableField("use_position_id") + private String usePositionId; + /** * 使用岗位 */ @@ -263,6 +272,12 @@ /** * 负责人 */ + @ApiModelProperty("负责人id") + @TableField("director_id") + private String directorId; + /** + * 负责人 + */ @ApiModelProperty("负责人") @TableField("director_name") private String directorName; @@ -281,6 +296,10 @@ @TableField("use_sign") private String useSign; + @ApiModelProperty("安装位置id") + @TableField("install_location_id") + private Long installLocationId; + /** * 安装位置(选择) */ @@ -347,6 +366,14 @@ @TableField("help_instruction") private String helpInstruction; + @ApiModelProperty("检定去向") + @TableField("check_destination") + private String checkDestination; + + @ApiModelProperty("限用说明") + @TableField("limit_instruction") + private String limitInstruction; + @ApiModelProperty("任务id") @TableField(exist = false) private String taskId; @@ -363,4 +390,7 @@ @TableField(exist = false) private List taskInfos; + @ApiModelProperty("分组名称") + @TableField(exist = false) + private String groupNames; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java index 471e8c8..d4b20e9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelInfo.java @@ -48,10 +48,15 @@ /** * 型号规格编号 */ - @ApiModelProperty("型号规格编号") - @TableField("model_no") - @ExcelProperty("型号规格编号") - private String modelNo; + @ApiModelProperty("设备类型") + @TableField("equipment_type") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE) + private String equipmentType; + + @ApiModelProperty("设备类型名称") + @TableField(exist = false) + @ExcelProperty("设备类型") + private String equipmentTypeName; /** * 设备名称 @@ -113,6 +118,10 @@ @ExcelProperty("备注") private String remark; + @ApiModelProperty("计量站是否可检(1西昌可检;2海口可检,多个用,拼接)") + @TableField("inspectable") + private String inspectable; + /** * 创建人id */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java index d495e2e..a78c41a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemLocation.java @@ -83,6 +83,7 @@ /** * 安装位置 */ + @ApiModelProperty("安装位置") @TableField("install_location") private String installLocation; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java index d5417d4..633af3f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentGroupInfoService.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import java.util.List; @@ -23,7 +24,7 @@ void deleteGroup(Long groupId); - Page listPage(Page page, String groupName); + Page listPage(Page page, EquipmentGroupQueryForm queryForm); EquipmentGroupForm detail(Long groupId); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java index 06d0cbd..222ebdd 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoApprovalService.java @@ -3,6 +3,7 @@ import com.casic.missiles.dto.equipment.EquipmentApprovalLog; import com.casic.missiles.dto.equipment.EquipmentQueryForm; import com.casic.missiles.dto.equipment.EquipmentApprovalForm; +import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.equipment.EquipmentModelInfo; import com.casic.missiles.service.ICommonApprovalService; @@ -19,6 +20,14 @@ */ public interface IEquipmentInfoApprovalService extends ICommonApprovalService { + boolean updateEquipmentInfo(EquipmentApprovalForm approvalForm); + + boolean checkRfidRepeat(String rfid, Long equipmentId); + + String checkLocation(Long installLocationId, String usageStatus, Long equipmentId); + + void saveTurnoverLog(EquipmentInfo newObj, EquipmentInfo oldObj, Long createUserId); + Long saveOrUpdateApproval(EquipmentApprovalForm approvalForm); EquipmentApprovalForm approvalInfoDetail(Long approvalId); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index acec159..dde436d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -29,6 +29,8 @@ */ public interface IEquipmentInfoService extends IService { + + Page listPage(Page page, EquipmentQueryForm queryForm); List list(EquipmentQueryForm queryForm); @@ -52,6 +54,9 @@ void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date certificateValid, String meterIdentify); + void updateLimitInstruction(Long equipmentId, String limitInstruction); + + void removeCertificateInfo(Long equipmentId, Long certificateId); Page remindListPage(Page page, EquipmentRemindQueryForm queryForm) @@ -67,4 +72,10 @@ (Page page, EquipmentCertificateQueryForm queryForm); void bindTask(EquipmentTaskBindForm bindForm); + + String getFieldName(String field); + String getFieldValue(String field, String fieldValue); + + Page orderSelectListPage(Page page, EquipmentRemindQueryForm queryForm); + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java index 19afa01..4e532a7 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java @@ -28,8 +28,10 @@ List listScope(EquipmentModelQueryForm queryForm); - List listEquipmentName(); + List listEquipmentName(String equipmentType); - List listModel(String equipmentName); + List listModel(String equipmentType, String equipmentName); + + String defaultCheckDestination(Long modelId,Long companyId); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java index 4a89b12..5608317 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentGroupInfoServiceImpl.java @@ -2,11 +2,16 @@ import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.constants.MeterDictCode; +import com.casic.missiles.core.application.service.AbstractDeptService; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.dto.equipment.EquipmentGroupForm; +import com.casic.missiles.dto.equipment.EquipmentGroupQueryForm; import com.casic.missiles.mapper.equipment.EquipmentGroupInfoMapper; import com.casic.missiles.model.equipment.EquipmentGroupInfo; import com.casic.missiles.model.equipment.EquipmentGroupRelation; @@ -31,6 +36,8 @@ public class EquipmentGroupInfoServiceImpl extends ServiceImpl implements IEquipmentGroupInfoService { private final IEquipmentGroupRelationService groupRelationService; + private final AbstractDeptService deptService; + private final AbstractDictService dictService; @Override @Transactional @@ -62,14 +69,25 @@ groupRelationService.deleteByGroupId(groupId); } - // todo datascope @Override - public Page listPage(Page page, String groupName) { + public Page listPage(Page page, EquipmentGroupQueryForm queryForm) { QueryWrapper queryWrapper = new QueryWrapper<>(); - if (StrUtil.isNotEmpty(groupName)) { - queryWrapper.like("binary group_name", groupName); - } - return this.page(page, queryWrapper); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"p.company_id",queryForm.getCompanyId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()),"p.dept_id",queryForm.getDeptId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getSubSystemId()),"p.sub_system_id",queryForm.getSubSystemId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getPositionId()),"g.position_id",queryForm.getPositionId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getGroupName()), "binary g.group_name", queryForm.getGroupName()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCreateUserId()),"g.create_user_id",queryForm.getCreateUserId()); + List list = this.baseMapper.listPage(page, queryWrapper); + list.forEach(this::wrapper); + page.setRecords(list); + return page; + } + + private void wrapper(EquipmentGroupInfo info) { + info.setCompanyName(deptService.getDeptName(info.getCompanyId())); + info.setDeptName(deptService.getDeptName(info.getDeptId())); + info.setSubSystemName(deptService.getDeptName(info.getSubSystemId())); } @Override @@ -80,6 +98,11 @@ groupForm.setGroupInfo(groupInfo); List relations = groupRelationService.listByGroup(groupId); + relations.forEach(i->{ + i.setMeterIdentifyName(dictService.getDictNameByCode(MeterDictCode.EQUIPMENT_METER_IDENTITY,i.getMeterIdentify())); + i.setUsageStatusName(dictService.getDictNameByCode(MeterDictCode.EQUIPMENT_USAGE_STATUS,i.getUsageStatus())); + + }); groupForm.setEquipmentList(relations); return groupForm; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java index 0a5a5fe..5456965 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java @@ -5,9 +5,12 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.equipment.EquipmentApprovalLog; @@ -16,6 +19,7 @@ import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.PrefixCodeEnum; +import com.casic.missiles.enums.equipment.EquipmentStatusTypeEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.equipment.EquipmentInfo; import com.casic.missiles.model.equipment.EquipmentInfoApproval; @@ -81,6 +85,30 @@ @Autowired private IEquipmentTaskRelationService taskRelationService; + @Autowired + private IEquipmentModelInfoService modelInfoService; + + @Override + public boolean updateEquipmentInfo(EquipmentApprovalForm approvalForm) { + if(checkRfidRepeat(approvalForm.getRfid(),approvalForm.getEquipmentId())){ + throw new BusinessException(500,"RFID标签已使用"); + } + String checkLoc = checkLocation(approvalForm.getInstallLocationId(),approvalForm.getUsageStatus(),approvalForm.getEquipmentId()); + if(StrUtil.isNotEmpty(checkLoc)){ + throw new BusinessException(500,String.format("当前安装位置已存在一台在用设备,编号为%s",checkLoc)); + } + + attachmentService.saveByEquipment(approvalForm.getEquipmentId(), approvalForm.getAttachments()); + taskRelationService.saveByEquipment(approvalForm.getEquipmentId(),approvalForm.getTaskInfos()); + if (EQUIPMENT_TYPE_SPECIAL.equals(approvalForm.getEquipmentType())) { + specialCertificateService.saveCertificateList(approvalForm.getEquipmentId(), approvalForm.getCertificateList()); + } + EquipmentInfo info = new EquipmentInfo(); + BeanUtil.copyProperties(approvalForm, info); + info.setId(approvalForm.getEquipmentId()); + saveTurnoverLog(info, null, approvalForm.getCreateUserId()); + return equipmentInfoService.updateById(info); + } @Override @Transactional @@ -91,6 +119,12 @@ if(checkRfidRepeat(approvalForm.getRfid(),approvalForm.getEquipmentId())){ throw new BusinessException(500,"RFID标签已使用"); } + String checkLoc = this.checkLocation(approvalForm.getInstallLocationId(),approvalForm.getUsageStatus(),approvalForm.getEquipmentId()); + if(StrUtil.isNotEmpty(checkLoc)){ + throw new BusinessException(500,String.format("当前安装位置已存在一台在用设备,编号为%s",checkLoc)); + } + + if(ObjectUtil.isEmpty(approvalForm.getCreateUserId())){ AuthUser authUser = permissionContext.getAuthService().getLoginUser(); approvalForm.setCreateUserId(authUser.getId()); @@ -170,10 +204,19 @@ return updateApprovalStatus(submitRequest.getId(), ApprovalStatusEnum.IN_APPROVED); } - private boolean checkRfidRepeat(String rfid, Long equipmentId){ + @Override + public boolean checkRfidRepeat(String rfid, Long equipmentId){ return StrUtil.isNotEmpty(rfid) && this.baseMapper.checkRfid(rfid, equipmentId) > 0; } + @Override + public String checkLocation(Long installLocationId, String usageStatus, Long equipmentId){ + if(ObjectUtil.isNotEmpty(installLocationId) && EquipmentStatusTypeEnum.UNSEAL.equals(usageStatus)){ + return this.baseMapper.checkLocation(installLocationId,EquipmentStatusTypeEnum.UNSEAL,equipmentId); + } + return null; + } + private boolean haveUnfinishedApproval(EquipmentApprovalForm approvalForm){ if(ObjectUtil.isNotEmpty(approvalForm.getEquipmentId())){ QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -188,14 +231,16 @@ public void simpleUpdate(EquipmentApprovalForm approvalForm, EquipmentInfo info) { EquipmentInfo oldObj = SerializationUtils.clone(info); CasicBeanUtil.copySpecifyProperties(approvalForm, info, "checkOrganization", "checkDate", - "certificateValid", "meterIdentify", "usePosition", "directorName", "rfid", - "useSign", "installLocation", "installLocationExt", "testTask", "remarkExt"); + "certificateValid", "meterIdentify", "usePositionId","usePosition","directorId", "directorName", "rfid", + "useSign","installLocationId", "installLocation", "installLocationExt", "testTask", "remarkExt", + "checkDestination","limitInstruction"); saveTurnoverLog(info, oldObj, approvalForm.getCreateUserId()); equipmentInfoService.updateById(info); } - private void saveTurnoverLog(EquipmentInfo newObj, EquipmentInfo oldObj, Long createUserId) { + @Override + public void saveTurnoverLog(EquipmentInfo newObj, EquipmentInfo oldObj, Long createUserId) { if(ObjectUtil.isEmpty(oldObj)){ oldObj = equipmentInfoService.getById(newObj.getId()); } @@ -268,6 +313,8 @@ info.setGroupInfos(groupInfoService.selectByEquipment(info.getEquipmentId())); info.setCertificateList(equipmentInfoService.allCertificate(info.getEquipmentId(),info.getEquipmentType())); info.setTaskInfos(taskInfoService.listByEquipment(info.getEquipmentId())); + info.setInstructionsFile(modelInfoService.getById(info.getModelId()).getInstructionsFile()); + } return info; } @@ -278,7 +325,7 @@ super.warpper(approval); approval.setCompanyName(permissionContext.getDeptService().getDeptName(approval.getCompanyId())); approval.setDeptName(permissionContext.getDeptService().getDeptName(approval.getDeptId())); - //DictCodeUtils.convertDictCodeToName(approval); + DictCodeUtils.convertDictCodeToName(approval); } catch (Exception e) { throw new RuntimeException(e); @@ -287,6 +334,18 @@ } @Override + public List list(Wrapper queryWrapper) { + return this.baseMapper.selectList(queryWrapper); + } + + @Override + public > E page(E page, Wrapper queryWrapper) { + List list = this.baseMapper.selectListPage((Page) page, (QueryWrapper) queryWrapper); + page.setRecords(list); + return page; + } + + @Override public QueryWrapper commonQuery(EquipmentQueryForm queryForm) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); @@ -294,6 +353,7 @@ queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"use_position_id",queryForm.getUsePositionId()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUsageStatus()), "usage_status", queryForm.getUsageStatus()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "certificate_valid", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "certificate_valid", queryForm.getCertificateValidEnd()); @@ -301,12 +361,18 @@ queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getModel()),"model",queryForm.getModel()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"manufacture_no",queryForm.getManufactureNo()); queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"company_id",queryForm.getCompanyId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()),"director_id",queryForm.getDirectorId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"director_name",queryForm.getDirectorName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()),"use_sign",queryForm.getUseSign()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); + if(ObjectUtil.isNotEmpty(queryForm.getGroupId())){ + String existSql = String.format("(select id from eqpt_equipment_group_relation where group_id = %d and equipment_id = eqpt_equipment_info_approval_view.id)",queryForm.getGroupId()); + queryWrapper.exists(existSql); + } + if(ObjectUtil.isNotEmpty(queryForm.getTaskId())){ - String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info.id)",queryForm.getTaskId()); + String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info_approval_view.id)",queryForm.getTaskId()); queryWrapper.exists(existSql); } queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()),"check_organization",queryForm.getCheckOrganization()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java index bbade89..c587261 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java @@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.annotation.EquipmentLog; import com.casic.missiles.constants.MeterDictCode; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; @@ -27,10 +28,7 @@ import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.PrefixCodeEnum; -import com.casic.missiles.enums.equipment.EquipmentCertificateTypeEnum; -import com.casic.missiles.enums.equipment.EquipmentStatusTypeEnum; -import com.casic.missiles.enums.equipment.EquipmentTypeEnum; -import com.casic.missiles.enums.equipment.StatusApprovalTypeEnum; +import com.casic.missiles.enums.equipment.*; import com.casic.missiles.enums.plan.CheckCompletionEnum; import com.casic.missiles.enums.plan.SampleStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -46,13 +44,21 @@ import com.casic.missiles.service.status.IEquipmentStatusLogService; import com.casic.missiles.service.subcontract.ISubcontractCertificateService; import com.casic.missiles.service.system.IRemindConfigService; +import com.casic.missiles.service.system.ISystemDeptService; +import com.casic.missiles.service.system.ISystemLocationService; +import com.casic.missiles.service.system.ISystemPositionService; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import com.casic.missiles.utils.SpringContextUtil; +import io.swagger.annotations.ApiModelProperty; import liquibase.pro.packaged.S; import lombok.RequiredArgsConstructor; +import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; import org.springframework.web.multipart.MultipartFile; @@ -64,6 +70,7 @@ import java.util.stream.Collectors; import static com.casic.missiles.enums.equipment.EquipmentTypeEnum.EQUIPMENT_TYPE_NORMAL; +import static com.casic.missiles.enums.equipment.EquipmentTypeEnum.EQUIPMENT_TYPE_SPECIAL; /** *

@@ -91,9 +98,16 @@ private final IEquipmentModelInfoService modelInfoService; private final EquipmentInfoApprovalMapper infoApprovalMapper; + private final ISystemDeptService systemDeptService; + private final ISystemPositionService positionService; + private final ISystemLocationService locationService; + private ISubcontractCertificateService subcontractCertificateService; + @Value("${casic.role.operator: user}") + private String operatorRoleTip; + @Autowired @@ -101,6 +115,20 @@ this.subcontractCertificateService = subcontractCertificateService; } + @EquipmentLog(key = "#entity.id") + @Override + @Transactional(propagation = Propagation.REQUIRES_NEW) + public boolean saveOrUpdate(EquipmentInfo entity) { + return super.saveOrUpdate(entity); + } + + @EquipmentLog(key = "#entity.id") + @Override + @Transactional(propagation = Propagation.REQUIRES_NEW) + public boolean updateById(EquipmentInfo entity) { + return super.updateById(entity); + } + @Override public Page listPage(Page page, EquipmentQueryForm queryForm) { QueryWrapper queryWrapper = commonQuery(queryForm); @@ -167,10 +195,24 @@ if (CollUtil.isNotEmpty(queryForm.getIds())) { queryWrapper.in("id", queryForm.getIds()); } else { + // 如果当前用户所在组织机构 的级别是受检单位,查本单位下所有部门的;否则查当前用户所在部门的 + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + if(systemDeptService.isCompany(authUser.getDeptId())){ + List scopeDeptIds = permissionContext.getDeptService().getIdsByPid(authUser.getDeptId(),null); + if(ObjectUtil.isNotEmpty(queryForm.getDeptIds())){ + scopeDeptIds.retainAll(queryForm.getDeptIds()); + } + queryForm.setDeptIds(scopeDeptIds); + }else { + queryForm.setDeptId(authUser.getDeptId()); + } + + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()),"dept_id",queryForm.getDeptId()); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentNo()), "equipment_no", queryForm.getEquipmentNo()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"use_position_id",queryForm.getUsePositionId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUsageStatus()), "usage_status", queryForm.getUsageStatus()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "certificate_valid", queryForm.getCertificateValidStart()); @@ -179,12 +221,18 @@ queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getModel()),"model",queryForm.getModel()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"manufacture_no",queryForm.getManufactureNo()); queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"company_id",queryForm.getCompanyId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()),"director_id",queryForm.getDirectorId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"director_name",queryForm.getDirectorName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()),"use_sign",queryForm.getUseSign()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); + if(ObjectUtil.isNotEmpty(queryForm.getGroupId())){ + String existSql = String.format("(select id from eqpt_equipment_group_relation where group_id = %d and equipment_id = eqpt_equipment_info_view.id)",queryForm.getGroupId()); + queryWrapper.exists(existSql); + } + if(ObjectUtil.isNotEmpty(queryForm.getTaskId())){ - String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info.id)",queryForm.getTaskId()); + String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info_view.id)",queryForm.getTaskId()); queryWrapper.exists(existSql); } queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()),"check_organization",queryForm.getCheckOrganization()); @@ -213,6 +261,8 @@ infoForm.setCertificateList(allCertificate(equipmentId, equipmentInfo.getEquipmentType())); infoForm.setTaskInfos(taskInfoService.listByEquipment(equipmentId)); + infoForm.setInstructionsFile(modelInfoService.getById(equipmentInfo.getModelId()).getInstructionsFile()); + } return infoForm; } @@ -424,7 +474,6 @@ equipmentInfo.setCreateTime(new Date()); equipmentInfo.setUpdateTime(new Date()); equipmentInfo.setIsDel(0); - equipmentInfos.add(equipmentInfo); } @@ -438,10 +487,11 @@ @Override public void updateEquipmentStatus(Long equipmentId, String usageStatus) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("id", equipmentId); - updateWrapper.set("usage_status", usageStatus); - this.update(updateWrapper); + EquipmentInfo equipmentInfo = this.getById(equipmentId); + if(ObjectUtil.isNotEmpty(equipmentInfo)){ + equipmentInfo.setUsageStatus(usageStatus); + } + this.updateById(equipmentInfo); } @Override @@ -469,19 +519,29 @@ if (StrUtil.isNotEmpty(meterIdentify)) { equipmentInfo.setMeterIdentify(meterIdentify); } - this.updateById(equipmentInfo); + //当设备证书有效期更新且未到期时,设备状态自动变更为启封 if (!EquipmentStatusTypeEnum.UNSEAL.equals(equipmentInfo.getUsageStatus()) && !EquipmentStatusTypeEnum.SCRAP.equals(equipmentInfo.getUsageStatus()) && certificateValid.after(new Date())) { - this.updateEquipmentStatus(equipmentId, EquipmentStatusTypeEnum.UNSEAL); - statusLogService.saveLog(equipmentId, StatusApprovalTypeEnum.UNSEAL, "设备证书更新"); + String usageStatus = EquipmentStatusTypeEnum.UNSEAL; + equipmentInfo.setUsageStatus(usageStatus); + statusLogService.saveLog(equipmentId, usageStatus, "设备证书更新"); } - + this.updateById(equipmentInfo); } } } + @Override + public void updateLimitInstruction(Long equipmentId, String limitInstruction) { + EquipmentInfo equipmentInfo = this.getById(equipmentId); + if (ObjectUtil.isNotEmpty(equipmentInfo)) { + equipmentInfo.setLimitInstruction(limitInstruction); + this.updateById(equipmentInfo); + } + } + public void removeCertificateInfo(Long equipmentId, Long certificateId) { EquipmentInfo equipmentInfo = this.getById(equipmentId); if (ObjectUtil.isNotEmpty(equipmentInfo)) { @@ -506,9 +566,11 @@ @Override public Page remindListPage(Page page, EquipmentRemindQueryForm queryForm) { QueryWrapper queryWrapper = remindQuery(queryForm); - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - dataScope.setScopeName("dept_id"); - List list = this.baseMapper.selectRemindListPage(page, dataScope, queryWrapper); + queryWrapper.in("usage_status",Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, + EquipmentStatusTypeEnum.DISABLE, + EquipmentStatusTypeEnum.DELAY)); + List list = this.baseMapper.selectRemindListPage(page, null,queryWrapper, + SampleStatusEnum.getSampleStatusByCompletion(Arrays.asList(CheckCompletionEnum.UNCHECK,CheckCompletionEnum.IN_CHECK))); list.forEach(this::warpEquipmentRemindInfo); page.setRecords(list); return page; @@ -517,9 +579,11 @@ @Override public List remindList(EquipmentRemindQueryForm queryForm) { QueryWrapper queryWrapper = remindQuery(queryForm); - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - dataScope.setScopeName("dept_id"); - List list = this.baseMapper.selectRemindList(dataScope, queryWrapper); + queryWrapper.in("usage_status",Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, + EquipmentStatusTypeEnum.DISABLE, + EquipmentStatusTypeEnum.DELAY)); + List list = this.baseMapper.selectRemindList(null, queryWrapper, + SampleStatusEnum.getSampleStatusByCompletion(Arrays.asList(CheckCompletionEnum.UNCHECK,CheckCompletionEnum.IN_CHECK))); list.forEach(this::warpEquipmentRemindInfo); return list; } @@ -533,10 +597,27 @@ } private QueryWrapper remindQuery(EquipmentRemindQueryForm queryForm){ + // 操作手仅能看到自己负责的设备信息,其余角色查看本组织结构下所有 + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + if(authUser.getRoleTips().contains(operatorRoleTip)){ + queryForm.setDirectorId(authUser.getId()); + }else { + List scopeIds = permissionContext.getDeptService().getIdsByPid(authUser.getDeptId(),null); + scopeIds.add(authUser.getDeptId()); + if(CollUtil.isNotEmpty(queryForm.getDeptIds())){ + scopeIds.retainAll(queryForm.getDeptIds()); + } + queryForm.setDeptIds(scopeIds); + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); if (CollUtil.isNotEmpty(queryForm.getIds())) { queryWrapper.in("id", queryForm.getIds()); } else { + + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()),"dept_id",queryForm.getDeptId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"company_id",queryForm.getCompanyId()); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentNo()), "equipment_no", queryForm.getEquipmentNo()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); @@ -544,15 +625,28 @@ queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"manufacture_no",queryForm.getManufactureNo()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"use_position_id",queryForm.getUsePositionId()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUsageStatus()), "usage_status", queryForm.getUsageStatus()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()), "use_sign", queryForm.getUseSign()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()),"check_destination",queryForm.getCheckDestination()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "certificate_valid", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "certificate_valid", queryForm.getCertificateValidEnd()); + + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()),"check_destination",queryForm.getCheckDestination()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckStatus()),"check_status",queryForm.getCheckStatus()); + + queryWrapper.in(CollUtil.isNotEmpty(queryForm.getUsageStatusList()),"usage_status",queryForm.getUsageStatusList()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufacturer()),"manufacturer",queryForm.getManufacturer()); queryWrapper.like(ObjectUtil.isNotEmpty(queryForm.getTaskId()),"taskIds",queryForm.getTaskId()); if (StrUtil.isNotEmpty(queryForm.getTaskStartTime()) || StrUtil.isNotEmpty(queryForm.getTastEndTime())) { queryWrapper.and(i -> { - i.le(StrUtil.isNotEmpty(queryForm.getTaskStartTime()), "task_start_time", queryForm.getTaskStartTime()) - .or() - .ge(StrUtil.isNotEmpty(queryForm.getTastEndTime()), "task_end_time", queryForm.getTastEndTime()); + i.le(StrUtil.isNotEmpty(queryForm.getTaskStartTime()), "task_start_time", queryForm.getTastEndTime()) + .ge(StrUtil.isNotEmpty(queryForm.getTastEndTime()), "task_end_time", queryForm.getTaskStartTime()); + +// i.le(StrUtil.isNotEmpty(queryForm.getTaskStartTime()), "task_start_time", queryForm.getTaskStartTime()) +// .or() +// .ge(StrUtil.isNotEmpty(queryForm.getTastEndTime()), "task_end_time", queryForm.getTastEndTime()); }); } } @@ -562,6 +656,21 @@ } @Override + public Page orderSelectListPage(Page page, EquipmentRemindQueryForm queryForm) { + QueryWrapper queryWrapper = remindQuery(queryForm); + queryWrapper.in("usage_status",Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, + EquipmentStatusTypeEnum.DISABLE, + EquipmentStatusTypeEnum.DELAY, + EquipmentStatusTypeEnum.SEAL)); + queryWrapper.eq("check_status",0); //未送检设备 + List list = this.baseMapper.selectRemindList(null, queryWrapper, + SampleStatusEnum.getSampleStatusByCompletion(Arrays.asList(CheckCompletionEnum.UNCHECK,CheckCompletionEnum.IN_CHECK))); + list.forEach(this::warpEquipmentRemindInfo); + page.setRecords(list); + return page; + } + + @Override public List expireTrend(String type) { switch (type){ case "month": @@ -598,9 +707,21 @@ queryWrapper.le("certificate_valid", endTime); queryWrapper.eq("is_del",0); - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - dataScope.setScopeName("dept_id"); - return this.baseMapper.selectList(dataScope,queryWrapper); + queryWrapper.in("usage_status",Arrays.asList(EquipmentStatusTypeEnum.UNSEAL, + EquipmentStatusTypeEnum.DISABLE, + EquipmentStatusTypeEnum.DELAY)); + + // 操作手仅能看到自己负责的设备信息,其余角色查看本组织结构下所有 + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + if(authUser.getRoleTips().contains(operatorRoleTip)){ + queryWrapper.eq("director_id",authUser.getId()); + }else { + List scopeIds = permissionContext.getDeptService().getIdsByPid(authUser.getDeptId(),null); + scopeIds.add(authUser.getDeptId()); + queryWrapper.in("dept_id",scopeIds); + } + + return this.baseMapper.selectList(null,queryWrapper); } private List expireTrendByMonth(){ @@ -611,7 +732,7 @@ startCal.set(Calendar.SECOND,0); Calendar endCal = Calendar.getInstance(); - endCal.add(Calendar.MONTH,1); + endCal.add(Calendar.MONTH,3); endCal.set(Calendar.HOUR_OF_DAY,23); endCal.set(Calendar.MINUTE,59); endCal.set(Calendar.SECOND,59); @@ -634,8 +755,19 @@ @Override public Page certificateListPage(Page page, EquipmentCertificateQueryForm queryForm) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - dataScope.setScopeName("e.dept_id"); + // 如果当前用户所在组织机构 的级别是受检单位,查本单位下所有部门的;否则查当前用户所在部门的 + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + if(systemDeptService.isCompany(authUser.getDeptId())){ + List scopeDeptIds = permissionContext.getDeptService().getIdsByPid(authUser.getDeptId(),null); + if(ObjectUtil.isNotEmpty(queryForm.getDeptIds())){ + scopeDeptIds.retainAll(queryForm.getDeptIds()); + } + queryForm.setDeptIds(scopeDeptIds); + }else { + queryForm.setDeptId(authUser.getDeptId()); + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCertificateNo()), "c.certificate_report_no", queryForm.getCertificateNo()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCertificateName()), "c.certificate_report_name", queryForm.getCertificateName()); @@ -644,10 +776,26 @@ queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()), "'西昌卫星发射中心计量测试站'", queryForm.getCheckOrganization()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "c.expiration_date", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "c.expiration_date", queryForm.getCertificateValidEnd()); + + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getModel()),"e.model",queryForm.getModel()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"e.manufacture_no",queryForm.getManufactureNo()); + queryWrapper.eq("e.is_del", 0); queryWrapper.eq("c.approval_status", ApprovalStatusEnum.PASSED); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()),"e.dept_id",queryForm.getDeptId()); + queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "e.dept_id", queryForm.getDeptIds()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"e.company_id",queryForm.getCompanyId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"e.use_position_id",queryForm.getUsePositionId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "e.use_position", queryForm.getUsePosition()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()),"e.director_id",queryForm.getDirectorId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"e.director_name",queryForm.getDirectorName()); - List list = this.baseMapper.bizCertificateListPage(page, dataScope, queryWrapper); + + List list = this.baseMapper.bizCertificateListPage(page, null, queryWrapper); + for (EquipmentCertificateDTO certificateDTO : list) { + certificateDTO.setDeptName(permissionContext.getDeptService().getDeptName(certificateDTO.getDeptId())); + certificateDTO.setCompanyName(permissionContext.getDeptService().getDeptName(certificateDTO.getCompanyId())); + } page.setRecords(list); return page; } @@ -668,4 +816,76 @@ } taskRelationService.saveBatch(relationList); } + + @Override + public String getFieldName(String fieldName) { + Field[] fields = EquipmentInfo.class.getDeclaredFields(); + for (Field field : fields) { + if (!field.isAccessible()) { + field.setAccessible(true); + } + if(fieldName.equals(field.getName())){ + if(field.isAnnotationPresent(ApiModelProperty.class)){ + ApiModelProperty apiModelProperty = field.getAnnotationsByType(ApiModelProperty.class)[0]; + String notes = apiModelProperty.notes(); + if(StrUtil.isNotEmpty(notes)){ + notes = notes.replace("id","").replace("code",""); + } + return notes; + } + } + } + return null; + } + + @Override + public String getFieldValue(String fieldName, String fieldValue) { + if(StrUtil.isBlank(fieldValue)){ + return fieldValue; + } + Field[] fields = EquipmentInfo.class.getDeclaredFields(); + for (Field field : fields) { + if (!field.isAccessible()) { + field.setAccessible(true); + } + if(fieldName.equals(field.getName())){ + if(field.isAnnotationPresent(ApiModelProperty.class)){ + ApiModelProperty apiModelProperty = field.getAnnotationsByType(ApiModelProperty.class)[0]; + String notes = apiModelProperty.notes(); + if(StrUtil.isNotEmpty(notes)){ + if(notes.contains("code")){ + DictCodeField dictCodeField = field.getAnnotationsByType(DictCodeField.class)[0]; + if (StringUtils.isEmpty(dictCodeField.cacheName())) { + throw new BusinessException(500, "缓存名不能为空"); + } + AbstractDictService dictService = SpringContextUtil.getBean(AbstractDictService.class); + fieldValue = dictService.getDictNameByCode(dictCodeField.cacheName(), fieldValue); + } + if(notes.contains("id")){ + switch (notes){ + case "所在单位id": + case "使用部门id": + fieldValue = permissionContext.getDeptService().getDeptName(fieldValue); + break; + case "使用岗位id": + fieldValue = positionService.getNameById(Long.valueOf(fieldValue)); + break; + case "负责人id": + fieldValue = permissionContext.getUserService().getById(fieldValue).getName(); + break; + case "安装位置id": + fieldValue = locationService.getById(fieldValue).getInstallLocation(); + break; + case "规格型号id": + fieldValue = modelInfoService.getById(fieldValue).getModel(); + break; + } + } + } + + } + } + } + return fieldValue; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModelInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModelInfoServiceImpl.java index 9c5ce09..6510618 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModelInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModelInfoServiceImpl.java @@ -53,11 +53,23 @@ private final IEquipmentInfoApprovalService equipmentInfoApprovalService; private final AbstractPermissionContext permissionContext; + private final String XC_INSPECTABLE = "1"; // 西昌可检 + private final String HK_INSPECTABLE = "2"; // 海口可检 + + private final String XC_LAB = "西昌"; // 西昌可检 + private final String HK_LAB = "海口"; // 海口可检 + + private final String CHECK_DESTINATION_METER = "1"; // 检定去向:计量室 + private final String CHECK_DESTINATION_DELIVERY = "2"; // 检定去向:外送 + @Override @Transactional public void add(EquipmentModelInfo modelInfo) { - Long maxNo = this.baseMapper.selectMaxNo(); - modelInfo.setModelNo(NumberGeneratorUtil.getContactNo(PrefixCodeEnum.EQUIPMENT_MODEL_PREFIX, maxNo)); + if(StrUtil.isNotEmpty(modelInfo.getInspectable())){ + if(StrUtil.isBlank(modelInfo.getCategory())){ + throw new BusinessException(501,"计量站可检,设备分类必填"); + } + } this.save(modelInfo); technicalTargetService.saveByModel(modelInfo.getId(),modelInfo.getTechnicalTargetList()); } @@ -65,6 +77,11 @@ @Override @Transactional public void update(EquipmentModelInfo modelInfo) { + if(StrUtil.isNotEmpty(modelInfo.getInspectable())){ + if(StrUtil.isBlank(modelInfo.getCategory())){ + throw new BusinessException(501,"计量站可检,设备分类必填"); + } + } this.updateById(modelInfo); technicalTargetService.saveByModel(modelInfo.getId(),modelInfo.getTechnicalTargetList()); equipmentInfoService.updateByModel(modelInfo); @@ -90,8 +107,6 @@ @Override public Page listScopePage(Page page, EquipmentModelQueryForm queryForm) { -// DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); -// dataScope.setScopeName("create_dept_id"); QueryWrapper queryWrapper = commonQuery(queryForm); List list = this.baseMapper.listScopePage(null,page,queryWrapper); List technicalTargetList = technicalTargetService.listByModelIds(list.stream().map(EquipmentModelInfo::getId).collect(Collectors.toList())); @@ -111,8 +126,6 @@ @Override public List listScope(EquipmentModelQueryForm queryForm) { -// DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); -// dataScope.setScopeName("create_dept_id"); QueryWrapper queryWrapper = commonQuery(queryForm); List list = this.baseMapper.listScope(null,queryWrapper); List technicalTargetList = technicalTargetService.listByModelIds(list.stream().map(EquipmentModelInfo::getId).collect(Collectors.toList())); @@ -136,35 +149,44 @@ queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getHelpInstruction()),"help_instruction",queryForm.getHelpInstruction()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCategory()),"category",queryForm.getCategory()); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getIds()),"id",queryForm.getIds()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()),"equipment_type",queryForm.getEquipmentType()); return queryWrapper; } @Override - public List listEquipmentName() { + public List listEquipmentName(String equipmentType) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.select("distinct equipment_name as equipment_name"); - -// DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); -// if (!ScopeEnums.ALL_TYPE.equals(dataScope.getScopeEnums())) { -// List dataScopeDeptIds = dataScope.getDeptIds(); -// queryWrapper.in("create_dept_id",dataScopeDeptIds); -// } + queryWrapper.eq(StrUtil.isNotEmpty(equipmentType),"equipment_type",equipmentType); + queryWrapper.orderByAsc("equipment_name"); List> maps = this.listMaps(queryWrapper); return maps.stream().map(i->i.get("equipment_name").toString()).collect(Collectors.toList()); } @Override - public List listModel(String equipmentName) { + public List listModel(String equipmentType, String equipmentName) { QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(StrUtil.isNotEmpty(equipmentType),"equipment_type",equipmentType); queryWrapper.eq("equipment_name",equipmentName); -// DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); -// if (!ScopeEnums.ALL_TYPE.equals(dataScope.getScopeEnums())) { -// List dataScopeDeptIds = dataScope.getDeptIds(); -// queryWrapper.in("create_dept_id",dataScopeDeptIds); -// } queryWrapper.select("distinct model as model"); + queryWrapper.orderByAsc("model"); List> maps = this.listMaps(queryWrapper); return maps.stream().map(i->i.get("model").toString()).collect(Collectors.toList()); } + @Override + public String defaultCheckDestination(Long modelId, Long companyId) { + String defaultLab = this.baseMapper.getLabLocation(companyId); + String inspectable = this.getById(modelId).getInspectable(); + if(StrUtil.isNotEmpty(defaultLab) && StrUtil.isNotEmpty(inspectable)){ + if(inspectable.contains(XC_INSPECTABLE) && defaultLab.contains(XC_LAB)){ + return CHECK_DESTINATION_METER; + }else if(inspectable.contains(HK_INSPECTABLE) && defaultLab.contains(HK_LAB)){ + return CHECK_DESTINATION_METER; + }else { + return CHECK_DESTINATION_DELIVERY; + } + } + return null; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemDeptServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemDeptServiceImpl.java index 8dac37e..4f3e46d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemDeptServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemDeptServiceImpl.java @@ -62,4 +62,10 @@ } return secondDepts; } + + @Override + public boolean isCompany(Long deptId) { + Dept dept = deptService.getById(deptId); + return dept.getPid() <= 0; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemLocationServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemLocationServiceImpl.java index c77c548..5f3008c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemLocationServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemLocationServiceImpl.java @@ -97,28 +97,31 @@ } @Override - public Page listPage(Page page, Long searchId, String positionName) { - QueryWrapper queryWrapper = getQueryWrapper(searchId, positionName); + public Page listPage(Page page, Long searchId,Long positionId, String installLocation) { + QueryWrapper queryWrapper = getQueryWrapper(searchId,positionId, installLocation); page = this.page(page, queryWrapper); page.getRecords().forEach(this::wrapper); return page; } @Override - public List list(Long searchId, String positionName) { - QueryWrapper queryWrapper = getQueryWrapper(searchId, positionName); + public List list(Long searchId,Long positionId, String installLocation) { + QueryWrapper queryWrapper = getQueryWrapper(searchId,positionId, installLocation); List list = this.list(queryWrapper); list.forEach(this::wrapper); return list; } @NotNull - private static QueryWrapper getQueryWrapper(Long searchId, String positionName) { + private static QueryWrapper getQueryWrapper(Long searchId,Long positionId, String installLocation) { QueryWrapper queryWrapper = new QueryWrapper<>(); - if(StrUtil.isNotEmpty(positionName)){ - queryWrapper.like("position_name", positionName); + if(ObjectUtil.isNotEmpty(positionId)){ + queryWrapper.eq("position_id",positionId); } - if(ObjectUtil.isEmpty(searchId)){ + if(StrUtil.isNotEmpty(installLocation)){ + queryWrapper.like("install_location", installLocation); + } + if(ObjectUtil.isNotEmpty(searchId)){ queryWrapper.and(i->i.eq("company_id", searchId) .or().eq("dept_id", searchId) .or().eq("sub_system_id", searchId)); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemPositionServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemPositionServiceImpl.java index 1520928..6015bd8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemPositionServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemPositionServiceImpl.java @@ -117,7 +117,7 @@ if(StrUtil.isNotEmpty(positionName)){ queryWrapper.like("position_name", positionName); } - if(ObjectUtil.isEmpty(searchId)){ + if(ObjectUtil.isNotEmpty(searchId)){ queryWrapper.and(i->i.eq("company_id", searchId) .or().eq("dept_id", searchId) .or().eq("sub_system_id", searchId)); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemDeptService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemDeptService.java index a821d17..65d5b7f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemDeptService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemDeptService.java @@ -9,4 +9,6 @@ Dept getUserCompany(); List getAllCompanyList(); + + boolean isCompany(Long deptId); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemLocationService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemLocationService.java index 8d14dc8..6945f8c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemLocationService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemLocationService.java @@ -23,8 +23,8 @@ void delete(SystemLocation systemLocation); - Page listPage(Page page, Long searchId, String positionName); + Page listPage(Page page, Long searchId,Long positionId, String installLocation); - List list(Long searchId, String positionName); + List list(Long searchId,Long positionId, String installLocation); }