diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java index c668e55..921a6a5 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java @@ -1,7 +1,15 @@ package com.casic.missiles.mapper.business; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.business.OrderListResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface BusinessOrderListResponseMapper extends BaseMapper { + + List listPage(@Param("page")Page page, + @Param("ew")QueryWrapper ew); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java index c668e55..921a6a5 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java @@ -1,7 +1,15 @@ package com.casic.missiles.mapper.business; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.business.OrderListResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface BusinessOrderListResponseMapper extends BaseMapper { + + List listPage(@Param("page")Page page, + @Param("ew")QueryWrapper ew); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java index cde328c..219d6d8 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java @@ -41,9 +41,14 @@ List bizCertificateList(@Param("equipmentId") Long equipmentId); - List selectRemindListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindListPage(@Param("page") Page page, + @Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); - List selectRemindList(@Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindList(@Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java index c668e55..921a6a5 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java @@ -1,7 +1,15 @@ package com.casic.missiles.mapper.business; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.business.OrderListResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface BusinessOrderListResponseMapper extends BaseMapper { + + List listPage(@Param("page")Page page, + @Param("ew")QueryWrapper ew); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java index cde328c..219d6d8 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java @@ -41,9 +41,14 @@ List bizCertificateList(@Param("equipmentId") Long equipmentId); - List selectRemindListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindListPage(@Param("page") Page page, + @Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); - List selectRemindList(@Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindList(@Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java new file mode 100644 index 0000000..4b6f2f4 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-设备台账-设备变更记录 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface EquipmentModifyLogMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java index c668e55..921a6a5 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java @@ -1,7 +1,15 @@ package com.casic.missiles.mapper.business; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.business.OrderListResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface BusinessOrderListResponseMapper extends BaseMapper { + + List listPage(@Param("page")Page page, + @Param("ew")QueryWrapper ew); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java index cde328c..219d6d8 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java @@ -41,9 +41,14 @@ List bizCertificateList(@Param("equipmentId") Long equipmentId); - List selectRemindListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindListPage(@Param("page") Page page, + @Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); - List selectRemindList(@Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindList(@Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java new file mode 100644 index 0000000..4b6f2f4 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-设备台账-设备变更记录 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface EquipmentModifyLogMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml index 18476de..a536f10 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml @@ -37,4 +37,24 @@ + + + diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java index c668e55..921a6a5 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java @@ -1,7 +1,15 @@ package com.casic.missiles.mapper.business; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.business.OrderListResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface BusinessOrderListResponseMapper extends BaseMapper { + + List listPage(@Param("page")Page page, + @Param("ew")QueryWrapper ew); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java index cde328c..219d6d8 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java @@ -41,9 +41,14 @@ List bizCertificateList(@Param("equipmentId") Long equipmentId); - List selectRemindListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindListPage(@Param("page") Page page, + @Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); - List selectRemindList(@Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindList(@Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java new file mode 100644 index 0000000..4b6f2f4 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-设备台账-设备变更记录 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface EquipmentModifyLogMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml index 18476de..a536f10 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml @@ -37,4 +37,24 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml new file mode 100644 index 0000000..e65b78e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, order_no, deliverer_id, deliverer, customer_id, customer_name, deliverer_tel, plan_deliver_time, require_over_time, customer_address, customer_phone, is_urgent, maintain_major, undertaker_id, measure_company, undertaker_name, undertake_time, receive_status, receive_illustrate, create_user_id, create_user_name, create_time, update_time + + + + + + diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java index c668e55..921a6a5 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java @@ -1,7 +1,15 @@ package com.casic.missiles.mapper.business; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.business.OrderListResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface BusinessOrderListResponseMapper extends BaseMapper { + + List listPage(@Param("page")Page page, + @Param("ew")QueryWrapper ew); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java index cde328c..219d6d8 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java @@ -41,9 +41,14 @@ List bizCertificateList(@Param("equipmentId") Long equipmentId); - List selectRemindListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindListPage(@Param("page") Page page, + @Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); - List selectRemindList(@Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindList(@Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java new file mode 100644 index 0000000..4b6f2f4 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-设备台账-设备变更记录 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface EquipmentModifyLogMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml index 18476de..a536f10 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml @@ -37,4 +37,24 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml new file mode 100644 index 0000000..e65b78e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, order_no, deliverer_id, deliverer, customer_id, customer_name, deliverer_tel, plan_deliver_time, require_over_time, customer_address, customer_phone, is_urgent, maintain_major, undertaker_id, measure_company, undertaker_name, undertake_time, receive_status, receive_illustrate, create_user_id, create_user_name, create_time, update_time + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml new file mode 100644 index 0000000..f1b61be --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, equipment_id, content, operate_user_id, operate_time + + + diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java index c668e55..921a6a5 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java @@ -1,7 +1,15 @@ package com.casic.missiles.mapper.business; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.business.OrderListResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface BusinessOrderListResponseMapper extends BaseMapper { + + List listPage(@Param("page")Page page, + @Param("ew")QueryWrapper ew); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java index cde328c..219d6d8 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java @@ -41,9 +41,14 @@ List bizCertificateList(@Param("equipmentId") Long equipmentId); - List selectRemindListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindListPage(@Param("page") Page page, + @Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); - List selectRemindList(@Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindList(@Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java new file mode 100644 index 0000000..4b6f2f4 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-设备台账-设备变更记录 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface EquipmentModifyLogMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml index 18476de..a536f10 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml @@ -37,4 +37,24 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml new file mode 100644 index 0000000..e65b78e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, order_no, deliverer_id, deliverer, customer_id, customer_name, deliverer_tel, plan_deliver_time, require_over_time, customer_address, customer_phone, is_urgent, maintain_major, undertaker_id, measure_company, undertaker_name, undertake_time, receive_status, receive_illustrate, create_user_id, create_user_name, create_time, update_time + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml new file mode 100644 index 0000000..f1b61be --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, equipment_id, content, operate_user_id, operate_time + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java new file mode 100644 index 0000000..a65c4df --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java @@ -0,0 +1,36 @@ +package com.casic.missiles.controller.equipment; + +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 前端控制器 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Api(tags = "设备变更记录") +@RestController +@RequestMapping("/equipment") +@RequiredArgsConstructor +public class EquipmentModifyLogController { + + private final IEquipmentModifyLogService modifyLogService; + + @GetMapping("/modifyLogs") + public ReturnDTO> list(Long equipmentId){ + return ReturnUtil.success(modifyLogService.listByEquipment(equipmentId)); + } + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java index c668e55..921a6a5 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java @@ -1,7 +1,15 @@ package com.casic.missiles.mapper.business; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.business.OrderListResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface BusinessOrderListResponseMapper extends BaseMapper { + + List listPage(@Param("page")Page page, + @Param("ew")QueryWrapper ew); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java index cde328c..219d6d8 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java @@ -41,9 +41,14 @@ List bizCertificateList(@Param("equipmentId") Long equipmentId); - List selectRemindListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindListPage(@Param("page") Page page, + @Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); - List selectRemindList(@Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindList(@Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java new file mode 100644 index 0000000..4b6f2f4 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-设备台账-设备变更记录 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface EquipmentModifyLogMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml index 18476de..a536f10 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml @@ -37,4 +37,24 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml new file mode 100644 index 0000000..e65b78e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, order_no, deliverer_id, deliverer, customer_id, customer_name, deliverer_tel, plan_deliver_time, require_over_time, customer_address, customer_phone, is_urgent, maintain_major, undertaker_id, measure_company, undertaker_name, undertake_time, receive_status, receive_illustrate, create_user_id, create_user_name, create_time, update_time + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml new file mode 100644 index 0000000..f1b61be --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, equipment_id, content, operate_user_id, operate_time + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java new file mode 100644 index 0000000..a65c4df --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java @@ -0,0 +1,36 @@ +package com.casic.missiles.controller.equipment; + +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 前端控制器 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Api(tags = "设备变更记录") +@RestController +@RequestMapping("/equipment") +@RequiredArgsConstructor +public class EquipmentModifyLogController { + + private final IEquipmentModifyLogService modifyLogService; + + @GetMapping("/modifyLogs") + public ReturnDTO> list(Long equipmentId){ + return ReturnUtil.success(modifyLogService.listByEquipment(equipmentId)); + } + +} diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java index 444318c..6b3af95 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java @@ -72,6 +72,15 @@ return businessOrderService.addOrder(businessOrder); } + @ApiOperation("任务单检查") + @PostMapping("/check") + public ReturnDTO orderChcek(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(businessOrderService.checkOrder(businessOrder)); + } + @ApiOperation("任务单更新") @PostMapping("/update") public ReturnDTO orderUpdate(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java index c668e55..921a6a5 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java @@ -1,7 +1,15 @@ package com.casic.missiles.mapper.business; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.business.OrderListResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface BusinessOrderListResponseMapper extends BaseMapper { + + List listPage(@Param("page")Page page, + @Param("ew")QueryWrapper ew); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java index cde328c..219d6d8 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java @@ -41,9 +41,14 @@ List bizCertificateList(@Param("equipmentId") Long equipmentId); - List selectRemindListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindListPage(@Param("page") Page page, + @Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); - List selectRemindList(@Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindList(@Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java new file mode 100644 index 0000000..4b6f2f4 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-设备台账-设备变更记录 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface EquipmentModifyLogMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml index 18476de..a536f10 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml @@ -37,4 +37,24 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml new file mode 100644 index 0000000..e65b78e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, order_no, deliverer_id, deliverer, customer_id, customer_name, deliverer_tel, plan_deliver_time, require_over_time, customer_address, customer_phone, is_urgent, maintain_major, undertaker_id, measure_company, undertaker_name, undertake_time, receive_status, receive_illustrate, create_user_id, create_user_name, create_time, update_time + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml new file mode 100644 index 0000000..f1b61be --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, equipment_id, content, operate_user_id, operate_time + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java new file mode 100644 index 0000000..a65c4df --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java @@ -0,0 +1,36 @@ +package com.casic.missiles.controller.equipment; + +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 前端控制器 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Api(tags = "设备变更记录") +@RestController +@RequestMapping("/equipment") +@RequiredArgsConstructor +public class EquipmentModifyLogController { + + private final IEquipmentModifyLogService modifyLogService; + + @GetMapping("/modifyLogs") + public ReturnDTO> list(Long equipmentId){ + return ReturnUtil.success(modifyLogService.listByEquipment(equipmentId)); + } + +} diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java index 444318c..6b3af95 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java @@ -72,6 +72,15 @@ return businessOrderService.addOrder(businessOrder); } + @ApiOperation("任务单检查") + @PostMapping("/check") + public ReturnDTO orderChcek(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(businessOrderService.checkOrder(businessOrder)); + } + @ApiOperation("任务单更新") @PostMapping("/update") public ReturnDTO orderUpdate(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index 84ca460..352950c 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -36,6 +36,8 @@ template: calibration: "现场检定审批报告" environmental: "现场环境记录" + role: + operator: user # 操作手 logging: level.root: info diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java index c668e55..921a6a5 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java @@ -1,7 +1,15 @@ package com.casic.missiles.mapper.business; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.business.OrderListResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface BusinessOrderListResponseMapper extends BaseMapper { + + List listPage(@Param("page")Page page, + @Param("ew")QueryWrapper ew); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java index cde328c..219d6d8 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java @@ -41,9 +41,14 @@ List bizCertificateList(@Param("equipmentId") Long equipmentId); - List selectRemindListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindListPage(@Param("page") Page page, + @Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); - List selectRemindList(@Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindList(@Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java new file mode 100644 index 0000000..4b6f2f4 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-设备台账-设备变更记录 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface EquipmentModifyLogMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml index 18476de..a536f10 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml @@ -37,4 +37,24 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml new file mode 100644 index 0000000..e65b78e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, order_no, deliverer_id, deliverer, customer_id, customer_name, deliverer_tel, plan_deliver_time, require_over_time, customer_address, customer_phone, is_urgent, maintain_major, undertaker_id, measure_company, undertaker_name, undertake_time, receive_status, receive_illustrate, create_user_id, create_user_name, create_time, update_time + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml new file mode 100644 index 0000000..f1b61be --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, equipment_id, content, operate_user_id, operate_time + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java new file mode 100644 index 0000000..a65c4df --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java @@ -0,0 +1,36 @@ +package com.casic.missiles.controller.equipment; + +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 前端控制器 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Api(tags = "设备变更记录") +@RestController +@RequestMapping("/equipment") +@RequiredArgsConstructor +public class EquipmentModifyLogController { + + private final IEquipmentModifyLogService modifyLogService; + + @GetMapping("/modifyLogs") + public ReturnDTO> list(Long equipmentId){ + return ReturnUtil.success(modifyLogService.listByEquipment(equipmentId)); + } + +} diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java index 444318c..6b3af95 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java @@ -72,6 +72,15 @@ return businessOrderService.addOrder(businessOrder); } + @ApiOperation("任务单检查") + @PostMapping("/check") + public ReturnDTO orderChcek(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(businessOrderService.checkOrder(businessOrder)); + } + @ApiOperation("任务单更新") @PostMapping("/update") public ReturnDTO orderUpdate(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index 84ca460..352950c 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -36,6 +36,8 @@ template: calibration: "现场检定审批报告" environmental: "现场环境记录" + role: + operator: user # 操作手 logging: level.root: info diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java index 72514d8..2836b50 100644 --- a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java @@ -45,7 +45,7 @@ if(EquipmentStatusTypeEnum.DELAY.equals(equipmentInfo.getUsageStatus())){ QueryWrapper statusQueryWrapper = new QueryWrapper<>(); statusQueryWrapper.eq("equipment_id",equipmentInfo.getId()); - statusQueryWrapper.eq("", StatusApprovalTypeEnum.DELAY); + statusQueryWrapper.eq("approval_type", StatusApprovalTypeEnum.DELAY); statusQueryWrapper.orderByDesc("create_time"); statusQueryWrapper.last("limit 1"); EquipmentStatusApproval statusApproval = statusApprovalService.getOne(statusQueryWrapper); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java index c668e55..921a6a5 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java @@ -1,7 +1,15 @@ package com.casic.missiles.mapper.business; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.business.OrderListResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface BusinessOrderListResponseMapper extends BaseMapper { + + List listPage(@Param("page")Page page, + @Param("ew")QueryWrapper ew); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java index cde328c..219d6d8 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java @@ -41,9 +41,14 @@ List bizCertificateList(@Param("equipmentId") Long equipmentId); - List selectRemindListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindListPage(@Param("page") Page page, + @Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); - List selectRemindList(@Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindList(@Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java new file mode 100644 index 0000000..4b6f2f4 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-设备台账-设备变更记录 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface EquipmentModifyLogMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml index 18476de..a536f10 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml @@ -37,4 +37,24 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml new file mode 100644 index 0000000..e65b78e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, order_no, deliverer_id, deliverer, customer_id, customer_name, deliverer_tel, plan_deliver_time, require_over_time, customer_address, customer_phone, is_urgent, maintain_major, undertaker_id, measure_company, undertaker_name, undertake_time, receive_status, receive_illustrate, create_user_id, create_user_name, create_time, update_time + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml new file mode 100644 index 0000000..f1b61be --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, equipment_id, content, operate_user_id, operate_time + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java new file mode 100644 index 0000000..a65c4df --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java @@ -0,0 +1,36 @@ +package com.casic.missiles.controller.equipment; + +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 前端控制器 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Api(tags = "设备变更记录") +@RestController +@RequestMapping("/equipment") +@RequiredArgsConstructor +public class EquipmentModifyLogController { + + private final IEquipmentModifyLogService modifyLogService; + + @GetMapping("/modifyLogs") + public ReturnDTO> list(Long equipmentId){ + return ReturnUtil.success(modifyLogService.listByEquipment(equipmentId)); + } + +} diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java index 444318c..6b3af95 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java @@ -72,6 +72,15 @@ return businessOrderService.addOrder(businessOrder); } + @ApiOperation("任务单检查") + @PostMapping("/check") + public ReturnDTO orderChcek(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(businessOrderService.checkOrder(businessOrder)); + } + @ApiOperation("任务单更新") @PostMapping("/update") public ReturnDTO orderUpdate(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index 84ca460..352950c 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -36,6 +36,8 @@ template: calibration: "现场检定审批报告" environmental: "现场环境记录" + role: + operator: user # 操作手 logging: level.root: info diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java index 72514d8..2836b50 100644 --- a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java @@ -45,7 +45,7 @@ if(EquipmentStatusTypeEnum.DELAY.equals(equipmentInfo.getUsageStatus())){ QueryWrapper statusQueryWrapper = new QueryWrapper<>(); statusQueryWrapper.eq("equipment_id",equipmentInfo.getId()); - statusQueryWrapper.eq("", StatusApprovalTypeEnum.DELAY); + statusQueryWrapper.eq("approval_type", StatusApprovalTypeEnum.DELAY); statusQueryWrapper.orderByDesc("create_time"); statusQueryWrapper.last("limit 1"); EquipmentStatusApproval statusApproval = statusApprovalService.getOne(statusQueryWrapper); diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java new file mode 100644 index 0000000..f3aa066 --- /dev/null +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java @@ -0,0 +1,48 @@ +package com.casic.missiles.job.handler; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.model.status.EquipmentStatusApproval; +import com.casic.missiles.service.status.IEquipmentStatusApprovalService; +import com.casic.missiles.service.status.IEquipmentStatusLogService; +import com.xxl.job.core.context.XxlJobHelper; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +@Slf4j +@Component +@RequiredArgsConstructor +public class EquipmentStatusApprovalJobHandler { + + private final IEquipmentStatusApprovalService statusApprovalService; + + @XxlJob("equipmentStatusApprovalJobHandler") + public void equipmentStatusApprovalJobHandler(){ + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.HOUR_OF_DAY,0); + calendar.set(Calendar.MINUTE,0); + calendar.set(Calendar.SECOND,0); + Date startTime = calendar.getTime(); + + calendar.add(Calendar.DATE,1); + Date endTime = calendar.getTime(); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("approval_status", ApprovalStatusEnum.PASSED); + queryWrapper.ge("approval_time",startTime); + queryWrapper.lt("approval_time",endTime); + List list = statusApprovalService.list(queryWrapper); + for (EquipmentStatusApproval approval : list) { + statusApprovalService.updateStatusAndSaveLog(approval); + XxlJobHelper.log(String.format("update equipment %s status",approval.getEquipmentNo())); + } + } + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java index c668e55..921a6a5 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java @@ -1,7 +1,15 @@ package com.casic.missiles.mapper.business; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.business.OrderListResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface BusinessOrderListResponseMapper extends BaseMapper { + + List listPage(@Param("page")Page page, + @Param("ew")QueryWrapper ew); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java index cde328c..219d6d8 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java @@ -41,9 +41,14 @@ List bizCertificateList(@Param("equipmentId") Long equipmentId); - List selectRemindListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindListPage(@Param("page") Page page, + @Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); - List selectRemindList(@Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindList(@Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java new file mode 100644 index 0000000..4b6f2f4 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-设备台账-设备变更记录 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface EquipmentModifyLogMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml index 18476de..a536f10 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml @@ -37,4 +37,24 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml new file mode 100644 index 0000000..e65b78e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, order_no, deliverer_id, deliverer, customer_id, customer_name, deliverer_tel, plan_deliver_time, require_over_time, customer_address, customer_phone, is_urgent, maintain_major, undertaker_id, measure_company, undertaker_name, undertake_time, receive_status, receive_illustrate, create_user_id, create_user_name, create_time, update_time + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml new file mode 100644 index 0000000..f1b61be --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, equipment_id, content, operate_user_id, operate_time + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java new file mode 100644 index 0000000..a65c4df --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java @@ -0,0 +1,36 @@ +package com.casic.missiles.controller.equipment; + +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 前端控制器 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Api(tags = "设备变更记录") +@RestController +@RequestMapping("/equipment") +@RequiredArgsConstructor +public class EquipmentModifyLogController { + + private final IEquipmentModifyLogService modifyLogService; + + @GetMapping("/modifyLogs") + public ReturnDTO> list(Long equipmentId){ + return ReturnUtil.success(modifyLogService.listByEquipment(equipmentId)); + } + +} diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java index 444318c..6b3af95 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java @@ -72,6 +72,15 @@ return businessOrderService.addOrder(businessOrder); } + @ApiOperation("任务单检查") + @PostMapping("/check") + public ReturnDTO orderChcek(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(businessOrderService.checkOrder(businessOrder)); + } + @ApiOperation("任务单更新") @PostMapping("/update") public ReturnDTO orderUpdate(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index 84ca460..352950c 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -36,6 +36,8 @@ template: calibration: "现场检定审批报告" environmental: "现场环境记录" + role: + operator: user # 操作手 logging: level.root: info diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java index 72514d8..2836b50 100644 --- a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java @@ -45,7 +45,7 @@ if(EquipmentStatusTypeEnum.DELAY.equals(equipmentInfo.getUsageStatus())){ QueryWrapper statusQueryWrapper = new QueryWrapper<>(); statusQueryWrapper.eq("equipment_id",equipmentInfo.getId()); - statusQueryWrapper.eq("", StatusApprovalTypeEnum.DELAY); + statusQueryWrapper.eq("approval_type", StatusApprovalTypeEnum.DELAY); statusQueryWrapper.orderByDesc("create_time"); statusQueryWrapper.last("limit 1"); EquipmentStatusApproval statusApproval = statusApprovalService.getOne(statusQueryWrapper); diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java new file mode 100644 index 0000000..f3aa066 --- /dev/null +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java @@ -0,0 +1,48 @@ +package com.casic.missiles.job.handler; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.model.status.EquipmentStatusApproval; +import com.casic.missiles.service.status.IEquipmentStatusApprovalService; +import com.casic.missiles.service.status.IEquipmentStatusLogService; +import com.xxl.job.core.context.XxlJobHelper; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +@Slf4j +@Component +@RequiredArgsConstructor +public class EquipmentStatusApprovalJobHandler { + + private final IEquipmentStatusApprovalService statusApprovalService; + + @XxlJob("equipmentStatusApprovalJobHandler") + public void equipmentStatusApprovalJobHandler(){ + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.HOUR_OF_DAY,0); + calendar.set(Calendar.MINUTE,0); + calendar.set(Calendar.SECOND,0); + Date startTime = calendar.getTime(); + + calendar.add(Calendar.DATE,1); + Date endTime = calendar.getTime(); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("approval_status", ApprovalStatusEnum.PASSED); + queryWrapper.ge("approval_time",startTime); + queryWrapper.lt("approval_time",endTime); + List list = statusApprovalService.list(queryWrapper); + for (EquipmentStatusApproval approval : list) { + statusApprovalService.updateStatusAndSaveLog(approval); + XxlJobHelper.log(String.format("update equipment %s status",approval.getEquipmentNo())); + } + } + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java new file mode 100644 index 0000000..032e2d4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java @@ -0,0 +1,14 @@ +package com.casic.missiles.dto.business; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class OrderCheckDTO { + + private String orderNo; + private String manufactureNo; + + private String equipmentName; +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java index c668e55..921a6a5 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java @@ -1,7 +1,15 @@ package com.casic.missiles.mapper.business; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.business.OrderListResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface BusinessOrderListResponseMapper extends BaseMapper { + + List listPage(@Param("page")Page page, + @Param("ew")QueryWrapper ew); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java index cde328c..219d6d8 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java @@ -41,9 +41,14 @@ List bizCertificateList(@Param("equipmentId") Long equipmentId); - List selectRemindListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindListPage(@Param("page") Page page, + @Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); - List selectRemindList(@Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindList(@Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java new file mode 100644 index 0000000..4b6f2f4 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-设备台账-设备变更记录 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface EquipmentModifyLogMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml index 18476de..a536f10 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml @@ -37,4 +37,24 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml new file mode 100644 index 0000000..e65b78e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, order_no, deliverer_id, deliverer, customer_id, customer_name, deliverer_tel, plan_deliver_time, require_over_time, customer_address, customer_phone, is_urgent, maintain_major, undertaker_id, measure_company, undertaker_name, undertake_time, receive_status, receive_illustrate, create_user_id, create_user_name, create_time, update_time + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml new file mode 100644 index 0000000..f1b61be --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, equipment_id, content, operate_user_id, operate_time + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java new file mode 100644 index 0000000..a65c4df --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java @@ -0,0 +1,36 @@ +package com.casic.missiles.controller.equipment; + +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 前端控制器 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Api(tags = "设备变更记录") +@RestController +@RequestMapping("/equipment") +@RequiredArgsConstructor +public class EquipmentModifyLogController { + + private final IEquipmentModifyLogService modifyLogService; + + @GetMapping("/modifyLogs") + public ReturnDTO> list(Long equipmentId){ + return ReturnUtil.success(modifyLogService.listByEquipment(equipmentId)); + } + +} diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java index 444318c..6b3af95 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java @@ -72,6 +72,15 @@ return businessOrderService.addOrder(businessOrder); } + @ApiOperation("任务单检查") + @PostMapping("/check") + public ReturnDTO orderChcek(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(businessOrderService.checkOrder(businessOrder)); + } + @ApiOperation("任务单更新") @PostMapping("/update") public ReturnDTO orderUpdate(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index 84ca460..352950c 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -36,6 +36,8 @@ template: calibration: "现场检定审批报告" environmental: "现场环境记录" + role: + operator: user # 操作手 logging: level.root: info diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java index 72514d8..2836b50 100644 --- a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java @@ -45,7 +45,7 @@ if(EquipmentStatusTypeEnum.DELAY.equals(equipmentInfo.getUsageStatus())){ QueryWrapper statusQueryWrapper = new QueryWrapper<>(); statusQueryWrapper.eq("equipment_id",equipmentInfo.getId()); - statusQueryWrapper.eq("", StatusApprovalTypeEnum.DELAY); + statusQueryWrapper.eq("approval_type", StatusApprovalTypeEnum.DELAY); statusQueryWrapper.orderByDesc("create_time"); statusQueryWrapper.last("limit 1"); EquipmentStatusApproval statusApproval = statusApprovalService.getOne(statusQueryWrapper); diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java new file mode 100644 index 0000000..f3aa066 --- /dev/null +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java @@ -0,0 +1,48 @@ +package com.casic.missiles.job.handler; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.model.status.EquipmentStatusApproval; +import com.casic.missiles.service.status.IEquipmentStatusApprovalService; +import com.casic.missiles.service.status.IEquipmentStatusLogService; +import com.xxl.job.core.context.XxlJobHelper; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +@Slf4j +@Component +@RequiredArgsConstructor +public class EquipmentStatusApprovalJobHandler { + + private final IEquipmentStatusApprovalService statusApprovalService; + + @XxlJob("equipmentStatusApprovalJobHandler") + public void equipmentStatusApprovalJobHandler(){ + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.HOUR_OF_DAY,0); + calendar.set(Calendar.MINUTE,0); + calendar.set(Calendar.SECOND,0); + Date startTime = calendar.getTime(); + + calendar.add(Calendar.DATE,1); + Date endTime = calendar.getTime(); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("approval_status", ApprovalStatusEnum.PASSED); + queryWrapper.ge("approval_time",startTime); + queryWrapper.lt("approval_time",endTime); + List list = statusApprovalService.list(queryWrapper); + for (EquipmentStatusApproval approval : list) { + statusApprovalService.updateStatusAndSaveLog(approval); + XxlJobHelper.log(String.format("update equipment %s status",approval.getEquipmentNo())); + } + } + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java new file mode 100644 index 0000000..032e2d4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java @@ -0,0 +1,14 @@ +package com.casic.missiles.dto.business; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class OrderCheckDTO { + + private String orderNo; + private String manufactureNo; + + private String equipmentName; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java index bdf1531..67899b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java @@ -1,9 +1,15 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @Description: * @Author: wangpeng @@ -18,12 +24,30 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; + @ApiModelProperty("使用部门(单个)") + private Long deptId; + + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty(value = "送检人", dataType = "String") private String deliverer; @ApiModelProperty(value = "创建人名字", dataType = "String") private String createUserName; + /** + * 检定(校准)单位(固定值) + */ + @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") + private String measureCompany; + + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "接收状态(包括接收相关状态和检测完成状态)", dataType = "String") + private String receiveStatus; + @ApiModelProperty(value = "创建开始时间", dataType = "String") private String createStartTime; diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java index c668e55..921a6a5 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java @@ -1,7 +1,15 @@ package com.casic.missiles.mapper.business; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.business.OrderListResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface BusinessOrderListResponseMapper extends BaseMapper { + + List listPage(@Param("page")Page page, + @Param("ew")QueryWrapper ew); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java index cde328c..219d6d8 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java @@ -41,9 +41,14 @@ List bizCertificateList(@Param("equipmentId") Long equipmentId); - List selectRemindListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindListPage(@Param("page") Page page, + @Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); - List selectRemindList(@Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindList(@Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java new file mode 100644 index 0000000..4b6f2f4 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-设备台账-设备变更记录 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface EquipmentModifyLogMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml index 18476de..a536f10 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml @@ -37,4 +37,24 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml new file mode 100644 index 0000000..e65b78e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, order_no, deliverer_id, deliverer, customer_id, customer_name, deliverer_tel, plan_deliver_time, require_over_time, customer_address, customer_phone, is_urgent, maintain_major, undertaker_id, measure_company, undertaker_name, undertake_time, receive_status, receive_illustrate, create_user_id, create_user_name, create_time, update_time + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml new file mode 100644 index 0000000..f1b61be --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, equipment_id, content, operate_user_id, operate_time + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java new file mode 100644 index 0000000..a65c4df --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java @@ -0,0 +1,36 @@ +package com.casic.missiles.controller.equipment; + +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 前端控制器 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Api(tags = "设备变更记录") +@RestController +@RequestMapping("/equipment") +@RequiredArgsConstructor +public class EquipmentModifyLogController { + + private final IEquipmentModifyLogService modifyLogService; + + @GetMapping("/modifyLogs") + public ReturnDTO> list(Long equipmentId){ + return ReturnUtil.success(modifyLogService.listByEquipment(equipmentId)); + } + +} diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java index 444318c..6b3af95 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java @@ -72,6 +72,15 @@ return businessOrderService.addOrder(businessOrder); } + @ApiOperation("任务单检查") + @PostMapping("/check") + public ReturnDTO orderChcek(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(businessOrderService.checkOrder(businessOrder)); + } + @ApiOperation("任务单更新") @PostMapping("/update") public ReturnDTO orderUpdate(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index 84ca460..352950c 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -36,6 +36,8 @@ template: calibration: "现场检定审批报告" environmental: "现场环境记录" + role: + operator: user # 操作手 logging: level.root: info diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java index 72514d8..2836b50 100644 --- a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java @@ -45,7 +45,7 @@ if(EquipmentStatusTypeEnum.DELAY.equals(equipmentInfo.getUsageStatus())){ QueryWrapper statusQueryWrapper = new QueryWrapper<>(); statusQueryWrapper.eq("equipment_id",equipmentInfo.getId()); - statusQueryWrapper.eq("", StatusApprovalTypeEnum.DELAY); + statusQueryWrapper.eq("approval_type", StatusApprovalTypeEnum.DELAY); statusQueryWrapper.orderByDesc("create_time"); statusQueryWrapper.last("limit 1"); EquipmentStatusApproval statusApproval = statusApprovalService.getOne(statusQueryWrapper); diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java new file mode 100644 index 0000000..f3aa066 --- /dev/null +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java @@ -0,0 +1,48 @@ +package com.casic.missiles.job.handler; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.model.status.EquipmentStatusApproval; +import com.casic.missiles.service.status.IEquipmentStatusApprovalService; +import com.casic.missiles.service.status.IEquipmentStatusLogService; +import com.xxl.job.core.context.XxlJobHelper; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +@Slf4j +@Component +@RequiredArgsConstructor +public class EquipmentStatusApprovalJobHandler { + + private final IEquipmentStatusApprovalService statusApprovalService; + + @XxlJob("equipmentStatusApprovalJobHandler") + public void equipmentStatusApprovalJobHandler(){ + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.HOUR_OF_DAY,0); + calendar.set(Calendar.MINUTE,0); + calendar.set(Calendar.SECOND,0); + Date startTime = calendar.getTime(); + + calendar.add(Calendar.DATE,1); + Date endTime = calendar.getTime(); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("approval_status", ApprovalStatusEnum.PASSED); + queryWrapper.ge("approval_time",startTime); + queryWrapper.lt("approval_time",endTime); + List list = statusApprovalService.list(queryWrapper); + for (EquipmentStatusApproval approval : list) { + statusApprovalService.updateStatusAndSaveLog(approval); + XxlJobHelper.log(String.format("update equipment %s status",approval.getEquipmentNo())); + } + } + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java new file mode 100644 index 0000000..032e2d4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java @@ -0,0 +1,14 @@ +package com.casic.missiles.dto.business; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class OrderCheckDTO { + + private String orderNo; + private String manufactureNo; + + private String equipmentName; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java index bdf1531..67899b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java @@ -1,9 +1,15 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @Description: * @Author: wangpeng @@ -18,12 +24,30 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; + @ApiModelProperty("使用部门(单个)") + private Long deptId; + + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty(value = "送检人", dataType = "String") private String deliverer; @ApiModelProperty(value = "创建人名字", dataType = "String") private String createUserName; + /** + * 检定(校准)单位(固定值) + */ + @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") + private String measureCompany; + + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "接收状态(包括接收相关状态和检测完成状态)", dataType = "String") + private String receiveStatus; + @ApiModelProperty(value = "创建开始时间", dataType = "String") private String createStartTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java index 3e4c232..f17b7a7 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.annotation.DictCodeField; @@ -30,6 +31,15 @@ private String customerName; /** + * 返回创建人的部门 + */ + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; + + /** * 检定(校准)单位(固定值) */ @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") @@ -52,4 +62,8 @@ @ApiModelProperty(value = "创建时间", dataType = "String") private String createTime; + + @ApiModelProperty(value = "计划送检时间", dataType = "String") + private String requireOverTime; + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java index c668e55..921a6a5 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java @@ -1,7 +1,15 @@ package com.casic.missiles.mapper.business; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.business.OrderListResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface BusinessOrderListResponseMapper extends BaseMapper { + + List listPage(@Param("page")Page page, + @Param("ew")QueryWrapper ew); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java index cde328c..219d6d8 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java @@ -41,9 +41,14 @@ List bizCertificateList(@Param("equipmentId") Long equipmentId); - List selectRemindListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindListPage(@Param("page") Page page, + @Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); - List selectRemindList(@Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindList(@Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java new file mode 100644 index 0000000..4b6f2f4 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-设备台账-设备变更记录 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface EquipmentModifyLogMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml index 18476de..a536f10 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml @@ -37,4 +37,24 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml new file mode 100644 index 0000000..e65b78e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, order_no, deliverer_id, deliverer, customer_id, customer_name, deliverer_tel, plan_deliver_time, require_over_time, customer_address, customer_phone, is_urgent, maintain_major, undertaker_id, measure_company, undertaker_name, undertake_time, receive_status, receive_illustrate, create_user_id, create_user_name, create_time, update_time + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml new file mode 100644 index 0000000..f1b61be --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, equipment_id, content, operate_user_id, operate_time + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java new file mode 100644 index 0000000..a65c4df --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java @@ -0,0 +1,36 @@ +package com.casic.missiles.controller.equipment; + +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 前端控制器 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Api(tags = "设备变更记录") +@RestController +@RequestMapping("/equipment") +@RequiredArgsConstructor +public class EquipmentModifyLogController { + + private final IEquipmentModifyLogService modifyLogService; + + @GetMapping("/modifyLogs") + public ReturnDTO> list(Long equipmentId){ + return ReturnUtil.success(modifyLogService.listByEquipment(equipmentId)); + } + +} diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java index 444318c..6b3af95 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java @@ -72,6 +72,15 @@ return businessOrderService.addOrder(businessOrder); } + @ApiOperation("任务单检查") + @PostMapping("/check") + public ReturnDTO orderChcek(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(businessOrderService.checkOrder(businessOrder)); + } + @ApiOperation("任务单更新") @PostMapping("/update") public ReturnDTO orderUpdate(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index 84ca460..352950c 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -36,6 +36,8 @@ template: calibration: "现场检定审批报告" environmental: "现场环境记录" + role: + operator: user # 操作手 logging: level.root: info diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java index 72514d8..2836b50 100644 --- a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java @@ -45,7 +45,7 @@ if(EquipmentStatusTypeEnum.DELAY.equals(equipmentInfo.getUsageStatus())){ QueryWrapper statusQueryWrapper = new QueryWrapper<>(); statusQueryWrapper.eq("equipment_id",equipmentInfo.getId()); - statusQueryWrapper.eq("", StatusApprovalTypeEnum.DELAY); + statusQueryWrapper.eq("approval_type", StatusApprovalTypeEnum.DELAY); statusQueryWrapper.orderByDesc("create_time"); statusQueryWrapper.last("limit 1"); EquipmentStatusApproval statusApproval = statusApprovalService.getOne(statusQueryWrapper); diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java new file mode 100644 index 0000000..f3aa066 --- /dev/null +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java @@ -0,0 +1,48 @@ +package com.casic.missiles.job.handler; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.model.status.EquipmentStatusApproval; +import com.casic.missiles.service.status.IEquipmentStatusApprovalService; +import com.casic.missiles.service.status.IEquipmentStatusLogService; +import com.xxl.job.core.context.XxlJobHelper; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +@Slf4j +@Component +@RequiredArgsConstructor +public class EquipmentStatusApprovalJobHandler { + + private final IEquipmentStatusApprovalService statusApprovalService; + + @XxlJob("equipmentStatusApprovalJobHandler") + public void equipmentStatusApprovalJobHandler(){ + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.HOUR_OF_DAY,0); + calendar.set(Calendar.MINUTE,0); + calendar.set(Calendar.SECOND,0); + Date startTime = calendar.getTime(); + + calendar.add(Calendar.DATE,1); + Date endTime = calendar.getTime(); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("approval_status", ApprovalStatusEnum.PASSED); + queryWrapper.ge("approval_time",startTime); + queryWrapper.lt("approval_time",endTime); + List list = statusApprovalService.list(queryWrapper); + for (EquipmentStatusApproval approval : list) { + statusApprovalService.updateStatusAndSaveLog(approval); + XxlJobHelper.log(String.format("update equipment %s status",approval.getEquipmentNo())); + } + } + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java new file mode 100644 index 0000000..032e2d4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java @@ -0,0 +1,14 @@ +package com.casic.missiles.dto.business; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class OrderCheckDTO { + + private String orderNo; + private String manufactureNo; + + private String equipmentName; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java index bdf1531..67899b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java @@ -1,9 +1,15 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @Description: * @Author: wangpeng @@ -18,12 +24,30 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; + @ApiModelProperty("使用部门(单个)") + private Long deptId; + + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty(value = "送检人", dataType = "String") private String deliverer; @ApiModelProperty(value = "创建人名字", dataType = "String") private String createUserName; + /** + * 检定(校准)单位(固定值) + */ + @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") + private String measureCompany; + + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "接收状态(包括接收相关状态和检测完成状态)", dataType = "String") + private String receiveStatus; + @ApiModelProperty(value = "创建开始时间", dataType = "String") private String createStartTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java index 3e4c232..f17b7a7 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.annotation.DictCodeField; @@ -30,6 +31,15 @@ private String customerName; /** + * 返回创建人的部门 + */ + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; + + /** * 检定(校准)单位(固定值) */ @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") @@ -52,4 +62,8 @@ @ApiModelProperty(value = "创建时间", dataType = "String") private String createTime; + + @ApiModelProperty(value = "计划送检时间", dataType = "String") + private String requireOverTime; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java index 83b45ac..08ba19e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java @@ -1,5 +1,7 @@ package com.casic.missiles.dto.equipment; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; @@ -82,4 +84,21 @@ @ApiModelProperty("计量标识") private String meterIdentify; + + @ApiModelProperty(value = "型号规格") + private String model; + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "所在单位id") + private Long companyId; + + @ApiModelProperty("所在单位名称") + private String companyName; + + @ApiModelProperty(value = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java index c668e55..921a6a5 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java @@ -1,7 +1,15 @@ package com.casic.missiles.mapper.business; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.business.OrderListResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface BusinessOrderListResponseMapper extends BaseMapper { + + List listPage(@Param("page")Page page, + @Param("ew")QueryWrapper ew); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java index cde328c..219d6d8 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java @@ -41,9 +41,14 @@ List bizCertificateList(@Param("equipmentId") Long equipmentId); - List selectRemindListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindListPage(@Param("page") Page page, + @Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); - List selectRemindList(@Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindList(@Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java new file mode 100644 index 0000000..4b6f2f4 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-设备台账-设备变更记录 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface EquipmentModifyLogMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml index 18476de..a536f10 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml @@ -37,4 +37,24 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml new file mode 100644 index 0000000..e65b78e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, order_no, deliverer_id, deliverer, customer_id, customer_name, deliverer_tel, plan_deliver_time, require_over_time, customer_address, customer_phone, is_urgent, maintain_major, undertaker_id, measure_company, undertaker_name, undertake_time, receive_status, receive_illustrate, create_user_id, create_user_name, create_time, update_time + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml new file mode 100644 index 0000000..f1b61be --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, equipment_id, content, operate_user_id, operate_time + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java new file mode 100644 index 0000000..a65c4df --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java @@ -0,0 +1,36 @@ +package com.casic.missiles.controller.equipment; + +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 前端控制器 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Api(tags = "设备变更记录") +@RestController +@RequestMapping("/equipment") +@RequiredArgsConstructor +public class EquipmentModifyLogController { + + private final IEquipmentModifyLogService modifyLogService; + + @GetMapping("/modifyLogs") + public ReturnDTO> list(Long equipmentId){ + return ReturnUtil.success(modifyLogService.listByEquipment(equipmentId)); + } + +} diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java index 444318c..6b3af95 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java @@ -72,6 +72,15 @@ return businessOrderService.addOrder(businessOrder); } + @ApiOperation("任务单检查") + @PostMapping("/check") + public ReturnDTO orderChcek(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(businessOrderService.checkOrder(businessOrder)); + } + @ApiOperation("任务单更新") @PostMapping("/update") public ReturnDTO orderUpdate(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index 84ca460..352950c 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -36,6 +36,8 @@ template: calibration: "现场检定审批报告" environmental: "现场环境记录" + role: + operator: user # 操作手 logging: level.root: info diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java index 72514d8..2836b50 100644 --- a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java @@ -45,7 +45,7 @@ if(EquipmentStatusTypeEnum.DELAY.equals(equipmentInfo.getUsageStatus())){ QueryWrapper statusQueryWrapper = new QueryWrapper<>(); statusQueryWrapper.eq("equipment_id",equipmentInfo.getId()); - statusQueryWrapper.eq("", StatusApprovalTypeEnum.DELAY); + statusQueryWrapper.eq("approval_type", StatusApprovalTypeEnum.DELAY); statusQueryWrapper.orderByDesc("create_time"); statusQueryWrapper.last("limit 1"); EquipmentStatusApproval statusApproval = statusApprovalService.getOne(statusQueryWrapper); diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java new file mode 100644 index 0000000..f3aa066 --- /dev/null +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java @@ -0,0 +1,48 @@ +package com.casic.missiles.job.handler; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.model.status.EquipmentStatusApproval; +import com.casic.missiles.service.status.IEquipmentStatusApprovalService; +import com.casic.missiles.service.status.IEquipmentStatusLogService; +import com.xxl.job.core.context.XxlJobHelper; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +@Slf4j +@Component +@RequiredArgsConstructor +public class EquipmentStatusApprovalJobHandler { + + private final IEquipmentStatusApprovalService statusApprovalService; + + @XxlJob("equipmentStatusApprovalJobHandler") + public void equipmentStatusApprovalJobHandler(){ + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.HOUR_OF_DAY,0); + calendar.set(Calendar.MINUTE,0); + calendar.set(Calendar.SECOND,0); + Date startTime = calendar.getTime(); + + calendar.add(Calendar.DATE,1); + Date endTime = calendar.getTime(); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("approval_status", ApprovalStatusEnum.PASSED); + queryWrapper.ge("approval_time",startTime); + queryWrapper.lt("approval_time",endTime); + List list = statusApprovalService.list(queryWrapper); + for (EquipmentStatusApproval approval : list) { + statusApprovalService.updateStatusAndSaveLog(approval); + XxlJobHelper.log(String.format("update equipment %s status",approval.getEquipmentNo())); + } + } + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java new file mode 100644 index 0000000..032e2d4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java @@ -0,0 +1,14 @@ +package com.casic.missiles.dto.business; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class OrderCheckDTO { + + private String orderNo; + private String manufactureNo; + + private String equipmentName; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java index bdf1531..67899b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java @@ -1,9 +1,15 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @Description: * @Author: wangpeng @@ -18,12 +24,30 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; + @ApiModelProperty("使用部门(单个)") + private Long deptId; + + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty(value = "送检人", dataType = "String") private String deliverer; @ApiModelProperty(value = "创建人名字", dataType = "String") private String createUserName; + /** + * 检定(校准)单位(固定值) + */ + @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") + private String measureCompany; + + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "接收状态(包括接收相关状态和检测完成状态)", dataType = "String") + private String receiveStatus; + @ApiModelProperty(value = "创建开始时间", dataType = "String") private String createStartTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java index 3e4c232..f17b7a7 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.annotation.DictCodeField; @@ -30,6 +31,15 @@ private String customerName; /** + * 返回创建人的部门 + */ + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; + + /** * 检定(校准)单位(固定值) */ @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") @@ -52,4 +62,8 @@ @ApiModelProperty(value = "创建时间", dataType = "String") private String createTime; + + @ApiModelProperty(value = "计划送检时间", dataType = "String") + private String requireOverTime; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java index 83b45ac..08ba19e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java @@ -1,5 +1,7 @@ package com.casic.missiles.dto.equipment; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; @@ -82,4 +84,21 @@ @ApiModelProperty("计量标识") private String meterIdentify; + + @ApiModelProperty(value = "型号规格") + private String model; + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "所在单位id") + private Long companyId; + + @ApiModelProperty("所在单位名称") + private String companyName; + + @ApiModelProperty(value = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java index 6284acf..f313257 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java @@ -5,6 +5,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.List; + @Getter @Setter public class EquipmentCertificateQueryForm extends BaseQueryForm { @@ -29,4 +31,30 @@ @ApiModelProperty("证书有效期结束时间") private String certificateValidEnd; + + @ApiModelProperty("型号规格") + private String model; + + @ApiModelProperty("出厂编号") + private String manufactureNo; + + @ApiModelProperty("所在单位") + private Long companyId; + + @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; } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java index c668e55..921a6a5 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java @@ -1,7 +1,15 @@ package com.casic.missiles.mapper.business; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.business.OrderListResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface BusinessOrderListResponseMapper extends BaseMapper { + + List listPage(@Param("page")Page page, + @Param("ew")QueryWrapper ew); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java index cde328c..219d6d8 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java @@ -41,9 +41,14 @@ List bizCertificateList(@Param("equipmentId") Long equipmentId); - List selectRemindListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindListPage(@Param("page") Page page, + @Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); - List selectRemindList(@Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindList(@Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java new file mode 100644 index 0000000..4b6f2f4 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-设备台账-设备变更记录 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface EquipmentModifyLogMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml index 18476de..a536f10 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml @@ -37,4 +37,24 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml new file mode 100644 index 0000000..e65b78e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, order_no, deliverer_id, deliverer, customer_id, customer_name, deliverer_tel, plan_deliver_time, require_over_time, customer_address, customer_phone, is_urgent, maintain_major, undertaker_id, measure_company, undertaker_name, undertake_time, receive_status, receive_illustrate, create_user_id, create_user_name, create_time, update_time + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml new file mode 100644 index 0000000..f1b61be --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, equipment_id, content, operate_user_id, operate_time + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java new file mode 100644 index 0000000..a65c4df --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java @@ -0,0 +1,36 @@ +package com.casic.missiles.controller.equipment; + +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 前端控制器 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Api(tags = "设备变更记录") +@RestController +@RequestMapping("/equipment") +@RequiredArgsConstructor +public class EquipmentModifyLogController { + + private final IEquipmentModifyLogService modifyLogService; + + @GetMapping("/modifyLogs") + public ReturnDTO> list(Long equipmentId){ + return ReturnUtil.success(modifyLogService.listByEquipment(equipmentId)); + } + +} diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java index 444318c..6b3af95 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java @@ -72,6 +72,15 @@ return businessOrderService.addOrder(businessOrder); } + @ApiOperation("任务单检查") + @PostMapping("/check") + public ReturnDTO orderChcek(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(businessOrderService.checkOrder(businessOrder)); + } + @ApiOperation("任务单更新") @PostMapping("/update") public ReturnDTO orderUpdate(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index 84ca460..352950c 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -36,6 +36,8 @@ template: calibration: "现场检定审批报告" environmental: "现场环境记录" + role: + operator: user # 操作手 logging: level.root: info diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java index 72514d8..2836b50 100644 --- a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java @@ -45,7 +45,7 @@ if(EquipmentStatusTypeEnum.DELAY.equals(equipmentInfo.getUsageStatus())){ QueryWrapper statusQueryWrapper = new QueryWrapper<>(); statusQueryWrapper.eq("equipment_id",equipmentInfo.getId()); - statusQueryWrapper.eq("", StatusApprovalTypeEnum.DELAY); + statusQueryWrapper.eq("approval_type", StatusApprovalTypeEnum.DELAY); statusQueryWrapper.orderByDesc("create_time"); statusQueryWrapper.last("limit 1"); EquipmentStatusApproval statusApproval = statusApprovalService.getOne(statusQueryWrapper); diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java new file mode 100644 index 0000000..f3aa066 --- /dev/null +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java @@ -0,0 +1,48 @@ +package com.casic.missiles.job.handler; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.model.status.EquipmentStatusApproval; +import com.casic.missiles.service.status.IEquipmentStatusApprovalService; +import com.casic.missiles.service.status.IEquipmentStatusLogService; +import com.xxl.job.core.context.XxlJobHelper; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +@Slf4j +@Component +@RequiredArgsConstructor +public class EquipmentStatusApprovalJobHandler { + + private final IEquipmentStatusApprovalService statusApprovalService; + + @XxlJob("equipmentStatusApprovalJobHandler") + public void equipmentStatusApprovalJobHandler(){ + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.HOUR_OF_DAY,0); + calendar.set(Calendar.MINUTE,0); + calendar.set(Calendar.SECOND,0); + Date startTime = calendar.getTime(); + + calendar.add(Calendar.DATE,1); + Date endTime = calendar.getTime(); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("approval_status", ApprovalStatusEnum.PASSED); + queryWrapper.ge("approval_time",startTime); + queryWrapper.lt("approval_time",endTime); + List list = statusApprovalService.list(queryWrapper); + for (EquipmentStatusApproval approval : list) { + statusApprovalService.updateStatusAndSaveLog(approval); + XxlJobHelper.log(String.format("update equipment %s status",approval.getEquipmentNo())); + } + } + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java new file mode 100644 index 0000000..032e2d4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java @@ -0,0 +1,14 @@ +package com.casic.missiles.dto.business; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class OrderCheckDTO { + + private String orderNo; + private String manufactureNo; + + private String equipmentName; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java index bdf1531..67899b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java @@ -1,9 +1,15 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @Description: * @Author: wangpeng @@ -18,12 +24,30 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; + @ApiModelProperty("使用部门(单个)") + private Long deptId; + + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty(value = "送检人", dataType = "String") private String deliverer; @ApiModelProperty(value = "创建人名字", dataType = "String") private String createUserName; + /** + * 检定(校准)单位(固定值) + */ + @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") + private String measureCompany; + + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "接收状态(包括接收相关状态和检测完成状态)", dataType = "String") + private String receiveStatus; + @ApiModelProperty(value = "创建开始时间", dataType = "String") private String createStartTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java index 3e4c232..f17b7a7 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.annotation.DictCodeField; @@ -30,6 +31,15 @@ private String customerName; /** + * 返回创建人的部门 + */ + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; + + /** * 检定(校准)单位(固定值) */ @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") @@ -52,4 +62,8 @@ @ApiModelProperty(value = "创建时间", dataType = "String") private String createTime; + + @ApiModelProperty(value = "计划送检时间", dataType = "String") + private String requireOverTime; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java index 83b45ac..08ba19e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java @@ -1,5 +1,7 @@ package com.casic.missiles.dto.equipment; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; @@ -82,4 +84,21 @@ @ApiModelProperty("计量标识") private String meterIdentify; + + @ApiModelProperty(value = "型号规格") + private String model; + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "所在单位id") + private Long companyId; + + @ApiModelProperty("所在单位名称") + private String companyName; + + @ApiModelProperty(value = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java index 6284acf..f313257 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java @@ -5,6 +5,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.List; + @Getter @Setter public class EquipmentCertificateQueryForm extends BaseQueryForm { @@ -29,4 +31,30 @@ @ApiModelProperty("证书有效期结束时间") private String certificateValidEnd; + + @ApiModelProperty("型号规格") + private String model; + + @ApiModelProperty("出厂编号") + private String manufactureNo; + + @ApiModelProperty("所在单位") + private Long companyId; + + @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; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java new file mode 100644 index 0000000..cdad130 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java @@ -0,0 +1,32 @@ +package com.casic.missiles.dto.equipment; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.model.equipment.EquipmentGroupInfo; +import com.casic.missiles.model.equipment.EquipmentGroupRelation; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class EquipmentGroupQueryForm { + + @ApiModelProperty("所在单位id") + private Long companyId; + + @ApiModelProperty("使用部门id") + private Long deptId; + + @ApiModelProperty(value = "分系统id") + private Long subSystemId; + + @ApiModelProperty("岗位ID") + private Long positionId; + + @ApiModelProperty("分组名称") + private String groupName; + + @ApiModelProperty("创建人id") + private String createUserId; + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java index c668e55..921a6a5 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java @@ -1,7 +1,15 @@ package com.casic.missiles.mapper.business; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.business.OrderListResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface BusinessOrderListResponseMapper extends BaseMapper { + + List listPage(@Param("page")Page page, + @Param("ew")QueryWrapper ew); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java index cde328c..219d6d8 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java @@ -41,9 +41,14 @@ List bizCertificateList(@Param("equipmentId") Long equipmentId); - List selectRemindListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindListPage(@Param("page") Page page, + @Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); - List selectRemindList(@Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindList(@Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java new file mode 100644 index 0000000..4b6f2f4 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-设备台账-设备变更记录 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface EquipmentModifyLogMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml index 18476de..a536f10 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml @@ -37,4 +37,24 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml new file mode 100644 index 0000000..e65b78e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, order_no, deliverer_id, deliverer, customer_id, customer_name, deliverer_tel, plan_deliver_time, require_over_time, customer_address, customer_phone, is_urgent, maintain_major, undertaker_id, measure_company, undertaker_name, undertake_time, receive_status, receive_illustrate, create_user_id, create_user_name, create_time, update_time + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml new file mode 100644 index 0000000..f1b61be --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, equipment_id, content, operate_user_id, operate_time + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java new file mode 100644 index 0000000..a65c4df --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java @@ -0,0 +1,36 @@ +package com.casic.missiles.controller.equipment; + +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 前端控制器 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Api(tags = "设备变更记录") +@RestController +@RequestMapping("/equipment") +@RequiredArgsConstructor +public class EquipmentModifyLogController { + + private final IEquipmentModifyLogService modifyLogService; + + @GetMapping("/modifyLogs") + public ReturnDTO> list(Long equipmentId){ + return ReturnUtil.success(modifyLogService.listByEquipment(equipmentId)); + } + +} diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java index 444318c..6b3af95 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java @@ -72,6 +72,15 @@ return businessOrderService.addOrder(businessOrder); } + @ApiOperation("任务单检查") + @PostMapping("/check") + public ReturnDTO orderChcek(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(businessOrderService.checkOrder(businessOrder)); + } + @ApiOperation("任务单更新") @PostMapping("/update") public ReturnDTO orderUpdate(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index 84ca460..352950c 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -36,6 +36,8 @@ template: calibration: "现场检定审批报告" environmental: "现场环境记录" + role: + operator: user # 操作手 logging: level.root: info diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java index 72514d8..2836b50 100644 --- a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java @@ -45,7 +45,7 @@ if(EquipmentStatusTypeEnum.DELAY.equals(equipmentInfo.getUsageStatus())){ QueryWrapper statusQueryWrapper = new QueryWrapper<>(); statusQueryWrapper.eq("equipment_id",equipmentInfo.getId()); - statusQueryWrapper.eq("", StatusApprovalTypeEnum.DELAY); + statusQueryWrapper.eq("approval_type", StatusApprovalTypeEnum.DELAY); statusQueryWrapper.orderByDesc("create_time"); statusQueryWrapper.last("limit 1"); EquipmentStatusApproval statusApproval = statusApprovalService.getOne(statusQueryWrapper); diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java new file mode 100644 index 0000000..f3aa066 --- /dev/null +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java @@ -0,0 +1,48 @@ +package com.casic.missiles.job.handler; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.model.status.EquipmentStatusApproval; +import com.casic.missiles.service.status.IEquipmentStatusApprovalService; +import com.casic.missiles.service.status.IEquipmentStatusLogService; +import com.xxl.job.core.context.XxlJobHelper; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +@Slf4j +@Component +@RequiredArgsConstructor +public class EquipmentStatusApprovalJobHandler { + + private final IEquipmentStatusApprovalService statusApprovalService; + + @XxlJob("equipmentStatusApprovalJobHandler") + public void equipmentStatusApprovalJobHandler(){ + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.HOUR_OF_DAY,0); + calendar.set(Calendar.MINUTE,0); + calendar.set(Calendar.SECOND,0); + Date startTime = calendar.getTime(); + + calendar.add(Calendar.DATE,1); + Date endTime = calendar.getTime(); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("approval_status", ApprovalStatusEnum.PASSED); + queryWrapper.ge("approval_time",startTime); + queryWrapper.lt("approval_time",endTime); + List list = statusApprovalService.list(queryWrapper); + for (EquipmentStatusApproval approval : list) { + statusApprovalService.updateStatusAndSaveLog(approval); + XxlJobHelper.log(String.format("update equipment %s status",approval.getEquipmentNo())); + } + } + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java new file mode 100644 index 0000000..032e2d4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java @@ -0,0 +1,14 @@ +package com.casic.missiles.dto.business; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class OrderCheckDTO { + + private String orderNo; + private String manufactureNo; + + private String equipmentName; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java index bdf1531..67899b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java @@ -1,9 +1,15 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @Description: * @Author: wangpeng @@ -18,12 +24,30 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; + @ApiModelProperty("使用部门(单个)") + private Long deptId; + + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty(value = "送检人", dataType = "String") private String deliverer; @ApiModelProperty(value = "创建人名字", dataType = "String") private String createUserName; + /** + * 检定(校准)单位(固定值) + */ + @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") + private String measureCompany; + + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "接收状态(包括接收相关状态和检测完成状态)", dataType = "String") + private String receiveStatus; + @ApiModelProperty(value = "创建开始时间", dataType = "String") private String createStartTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java index 3e4c232..f17b7a7 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.annotation.DictCodeField; @@ -30,6 +31,15 @@ private String customerName; /** + * 返回创建人的部门 + */ + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; + + /** * 检定(校准)单位(固定值) */ @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") @@ -52,4 +62,8 @@ @ApiModelProperty(value = "创建时间", dataType = "String") private String createTime; + + @ApiModelProperty(value = "计划送检时间", dataType = "String") + private String requireOverTime; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java index 83b45ac..08ba19e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java @@ -1,5 +1,7 @@ package com.casic.missiles.dto.equipment; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; @@ -82,4 +84,21 @@ @ApiModelProperty("计量标识") private String meterIdentify; + + @ApiModelProperty(value = "型号规格") + private String model; + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "所在单位id") + private Long companyId; + + @ApiModelProperty("所在单位名称") + private String companyName; + + @ApiModelProperty(value = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java index 6284acf..f313257 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java @@ -5,6 +5,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.List; + @Getter @Setter public class EquipmentCertificateQueryForm extends BaseQueryForm { @@ -29,4 +31,30 @@ @ApiModelProperty("证书有效期结束时间") private String certificateValidEnd; + + @ApiModelProperty("型号规格") + private String model; + + @ApiModelProperty("出厂编号") + private String manufactureNo; + + @ApiModelProperty("所在单位") + private Long companyId; + + @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; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java new file mode 100644 index 0000000..cdad130 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java @@ -0,0 +1,32 @@ +package com.casic.missiles.dto.equipment; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.model.equipment.EquipmentGroupInfo; +import com.casic.missiles.model.equipment.EquipmentGroupRelation; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class EquipmentGroupQueryForm { + + @ApiModelProperty("所在单位id") + private Long companyId; + + @ApiModelProperty("使用部门id") + private Long deptId; + + @ApiModelProperty(value = "分系统id") + private Long subSystemId; + + @ApiModelProperty("岗位ID") + private Long positionId; + + @ApiModelProperty("分组名称") + private String groupName; + + @ApiModelProperty("创建人id") + private String createUserId; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java index 43016e2..5773c4e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java @@ -50,4 +50,11 @@ @ApiModelProperty("备注") @ExcelIgnore private String remark; + + @ApiModelProperty("检定状态") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_REMIND_CHECK_STATUS) + private String checkStatus; + + @ApiModelProperty("检定状态名称") + private String checkStatusName; } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java index c668e55..921a6a5 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java @@ -1,7 +1,15 @@ package com.casic.missiles.mapper.business; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.business.OrderListResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface BusinessOrderListResponseMapper extends BaseMapper { + + List listPage(@Param("page")Page page, + @Param("ew")QueryWrapper ew); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java index cde328c..219d6d8 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java @@ -41,9 +41,14 @@ List bizCertificateList(@Param("equipmentId") Long equipmentId); - List selectRemindListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindListPage(@Param("page") Page page, + @Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); - List selectRemindList(@Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindList(@Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java new file mode 100644 index 0000000..4b6f2f4 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-设备台账-设备变更记录 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface EquipmentModifyLogMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml index 18476de..a536f10 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml @@ -37,4 +37,24 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml new file mode 100644 index 0000000..e65b78e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, order_no, deliverer_id, deliverer, customer_id, customer_name, deliverer_tel, plan_deliver_time, require_over_time, customer_address, customer_phone, is_urgent, maintain_major, undertaker_id, measure_company, undertaker_name, undertake_time, receive_status, receive_illustrate, create_user_id, create_user_name, create_time, update_time + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml new file mode 100644 index 0000000..f1b61be --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, equipment_id, content, operate_user_id, operate_time + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java new file mode 100644 index 0000000..a65c4df --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java @@ -0,0 +1,36 @@ +package com.casic.missiles.controller.equipment; + +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 前端控制器 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Api(tags = "设备变更记录") +@RestController +@RequestMapping("/equipment") +@RequiredArgsConstructor +public class EquipmentModifyLogController { + + private final IEquipmentModifyLogService modifyLogService; + + @GetMapping("/modifyLogs") + public ReturnDTO> list(Long equipmentId){ + return ReturnUtil.success(modifyLogService.listByEquipment(equipmentId)); + } + +} diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java index 444318c..6b3af95 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java @@ -72,6 +72,15 @@ return businessOrderService.addOrder(businessOrder); } + @ApiOperation("任务单检查") + @PostMapping("/check") + public ReturnDTO orderChcek(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(businessOrderService.checkOrder(businessOrder)); + } + @ApiOperation("任务单更新") @PostMapping("/update") public ReturnDTO orderUpdate(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index 84ca460..352950c 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -36,6 +36,8 @@ template: calibration: "现场检定审批报告" environmental: "现场环境记录" + role: + operator: user # 操作手 logging: level.root: info diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java index 72514d8..2836b50 100644 --- a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java @@ -45,7 +45,7 @@ if(EquipmentStatusTypeEnum.DELAY.equals(equipmentInfo.getUsageStatus())){ QueryWrapper statusQueryWrapper = new QueryWrapper<>(); statusQueryWrapper.eq("equipment_id",equipmentInfo.getId()); - statusQueryWrapper.eq("", StatusApprovalTypeEnum.DELAY); + statusQueryWrapper.eq("approval_type", StatusApprovalTypeEnum.DELAY); statusQueryWrapper.orderByDesc("create_time"); statusQueryWrapper.last("limit 1"); EquipmentStatusApproval statusApproval = statusApprovalService.getOne(statusQueryWrapper); diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java new file mode 100644 index 0000000..f3aa066 --- /dev/null +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java @@ -0,0 +1,48 @@ +package com.casic.missiles.job.handler; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.model.status.EquipmentStatusApproval; +import com.casic.missiles.service.status.IEquipmentStatusApprovalService; +import com.casic.missiles.service.status.IEquipmentStatusLogService; +import com.xxl.job.core.context.XxlJobHelper; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +@Slf4j +@Component +@RequiredArgsConstructor +public class EquipmentStatusApprovalJobHandler { + + private final IEquipmentStatusApprovalService statusApprovalService; + + @XxlJob("equipmentStatusApprovalJobHandler") + public void equipmentStatusApprovalJobHandler(){ + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.HOUR_OF_DAY,0); + calendar.set(Calendar.MINUTE,0); + calendar.set(Calendar.SECOND,0); + Date startTime = calendar.getTime(); + + calendar.add(Calendar.DATE,1); + Date endTime = calendar.getTime(); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("approval_status", ApprovalStatusEnum.PASSED); + queryWrapper.ge("approval_time",startTime); + queryWrapper.lt("approval_time",endTime); + List list = statusApprovalService.list(queryWrapper); + for (EquipmentStatusApproval approval : list) { + statusApprovalService.updateStatusAndSaveLog(approval); + XxlJobHelper.log(String.format("update equipment %s status",approval.getEquipmentNo())); + } + } + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java new file mode 100644 index 0000000..032e2d4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java @@ -0,0 +1,14 @@ +package com.casic.missiles.dto.business; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class OrderCheckDTO { + + private String orderNo; + private String manufactureNo; + + private String equipmentName; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java index bdf1531..67899b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java @@ -1,9 +1,15 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @Description: * @Author: wangpeng @@ -18,12 +24,30 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; + @ApiModelProperty("使用部门(单个)") + private Long deptId; + + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty(value = "送检人", dataType = "String") private String deliverer; @ApiModelProperty(value = "创建人名字", dataType = "String") private String createUserName; + /** + * 检定(校准)单位(固定值) + */ + @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") + private String measureCompany; + + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "接收状态(包括接收相关状态和检测完成状态)", dataType = "String") + private String receiveStatus; + @ApiModelProperty(value = "创建开始时间", dataType = "String") private String createStartTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java index 3e4c232..f17b7a7 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.annotation.DictCodeField; @@ -30,6 +31,15 @@ private String customerName; /** + * 返回创建人的部门 + */ + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; + + /** * 检定(校准)单位(固定值) */ @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") @@ -52,4 +62,8 @@ @ApiModelProperty(value = "创建时间", dataType = "String") private String createTime; + + @ApiModelProperty(value = "计划送检时间", dataType = "String") + private String requireOverTime; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java index 83b45ac..08ba19e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java @@ -1,5 +1,7 @@ package com.casic.missiles.dto.equipment; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; @@ -82,4 +84,21 @@ @ApiModelProperty("计量标识") private String meterIdentify; + + @ApiModelProperty(value = "型号规格") + private String model; + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "所在单位id") + private Long companyId; + + @ApiModelProperty("所在单位名称") + private String companyName; + + @ApiModelProperty(value = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java index 6284acf..f313257 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java @@ -5,6 +5,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.List; + @Getter @Setter public class EquipmentCertificateQueryForm extends BaseQueryForm { @@ -29,4 +31,30 @@ @ApiModelProperty("证书有效期结束时间") private String certificateValidEnd; + + @ApiModelProperty("型号规格") + private String model; + + @ApiModelProperty("出厂编号") + private String manufactureNo; + + @ApiModelProperty("所在单位") + private Long companyId; + + @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; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java new file mode 100644 index 0000000..cdad130 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java @@ -0,0 +1,32 @@ +package com.casic.missiles.dto.equipment; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.model.equipment.EquipmentGroupInfo; +import com.casic.missiles.model.equipment.EquipmentGroupRelation; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class EquipmentGroupQueryForm { + + @ApiModelProperty("所在单位id") + private Long companyId; + + @ApiModelProperty("使用部门id") + private Long deptId; + + @ApiModelProperty(value = "分系统id") + private Long subSystemId; + + @ApiModelProperty("岗位ID") + private Long positionId; + + @ApiModelProperty("分组名称") + private String groupName; + + @ApiModelProperty("创建人id") + private String createUserId; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java index 43016e2..5773c4e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java @@ -50,4 +50,11 @@ @ApiModelProperty("备注") @ExcelIgnore private String remark; + + @ApiModelProperty("检定状态") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_REMIND_CHECK_STATUS) + private String checkStatus; + + @ApiModelProperty("检定状态名称") + private String checkStatusName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java index 663cd38..6a6f602 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java @@ -22,21 +22,46 @@ @ApiModelProperty("规格型号") private String model; + @ApiModelProperty("生产厂家") + private String manufacturer; + @ApiModelProperty("出厂编号") private String manufactureNo; @ApiModelProperty("设备类型(1受检设备;2特种设备)") private String equipmentType; + @ApiModelProperty("所在单位") + private Long companyId; + + @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; + @ApiModelProperty("使用状态") private String usageStatus; + @ApiModelProperty("使用状态列表") + private List usageStatusList; + + @ApiModelProperty("在用信息") + private String useSign; + @ApiModelProperty("证书有效期开始时间") private String certificateValidStart; @@ -52,4 +77,12 @@ @ApiModelProperty("参试任务结束时间") private String tastEndTime; + @ApiModelProperty("检定去向") + private String checkDestination; + + @ApiModelProperty("检定状态") + private String checkStatus; + + + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java index c668e55..921a6a5 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java @@ -1,7 +1,15 @@ package com.casic.missiles.mapper.business; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.business.OrderListResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface BusinessOrderListResponseMapper extends BaseMapper { + + List listPage(@Param("page")Page page, + @Param("ew")QueryWrapper ew); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java index cde328c..219d6d8 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java @@ -41,9 +41,14 @@ List bizCertificateList(@Param("equipmentId") Long equipmentId); - List selectRemindListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindListPage(@Param("page") Page page, + @Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); - List selectRemindList(@Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindList(@Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java new file mode 100644 index 0000000..4b6f2f4 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-设备台账-设备变更记录 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface EquipmentModifyLogMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml index 18476de..a536f10 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml @@ -37,4 +37,24 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml new file mode 100644 index 0000000..e65b78e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, order_no, deliverer_id, deliverer, customer_id, customer_name, deliverer_tel, plan_deliver_time, require_over_time, customer_address, customer_phone, is_urgent, maintain_major, undertaker_id, measure_company, undertaker_name, undertake_time, receive_status, receive_illustrate, create_user_id, create_user_name, create_time, update_time + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml new file mode 100644 index 0000000..f1b61be --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, equipment_id, content, operate_user_id, operate_time + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java new file mode 100644 index 0000000..a65c4df --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java @@ -0,0 +1,36 @@ +package com.casic.missiles.controller.equipment; + +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 前端控制器 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Api(tags = "设备变更记录") +@RestController +@RequestMapping("/equipment") +@RequiredArgsConstructor +public class EquipmentModifyLogController { + + private final IEquipmentModifyLogService modifyLogService; + + @GetMapping("/modifyLogs") + public ReturnDTO> list(Long equipmentId){ + return ReturnUtil.success(modifyLogService.listByEquipment(equipmentId)); + } + +} diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java index 444318c..6b3af95 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java @@ -72,6 +72,15 @@ return businessOrderService.addOrder(businessOrder); } + @ApiOperation("任务单检查") + @PostMapping("/check") + public ReturnDTO orderChcek(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(businessOrderService.checkOrder(businessOrder)); + } + @ApiOperation("任务单更新") @PostMapping("/update") public ReturnDTO orderUpdate(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index 84ca460..352950c 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -36,6 +36,8 @@ template: calibration: "现场检定审批报告" environmental: "现场环境记录" + role: + operator: user # 操作手 logging: level.root: info diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java index 72514d8..2836b50 100644 --- a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java @@ -45,7 +45,7 @@ if(EquipmentStatusTypeEnum.DELAY.equals(equipmentInfo.getUsageStatus())){ QueryWrapper statusQueryWrapper = new QueryWrapper<>(); statusQueryWrapper.eq("equipment_id",equipmentInfo.getId()); - statusQueryWrapper.eq("", StatusApprovalTypeEnum.DELAY); + statusQueryWrapper.eq("approval_type", StatusApprovalTypeEnum.DELAY); statusQueryWrapper.orderByDesc("create_time"); statusQueryWrapper.last("limit 1"); EquipmentStatusApproval statusApproval = statusApprovalService.getOne(statusQueryWrapper); diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java new file mode 100644 index 0000000..f3aa066 --- /dev/null +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java @@ -0,0 +1,48 @@ +package com.casic.missiles.job.handler; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.model.status.EquipmentStatusApproval; +import com.casic.missiles.service.status.IEquipmentStatusApprovalService; +import com.casic.missiles.service.status.IEquipmentStatusLogService; +import com.xxl.job.core.context.XxlJobHelper; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +@Slf4j +@Component +@RequiredArgsConstructor +public class EquipmentStatusApprovalJobHandler { + + private final IEquipmentStatusApprovalService statusApprovalService; + + @XxlJob("equipmentStatusApprovalJobHandler") + public void equipmentStatusApprovalJobHandler(){ + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.HOUR_OF_DAY,0); + calendar.set(Calendar.MINUTE,0); + calendar.set(Calendar.SECOND,0); + Date startTime = calendar.getTime(); + + calendar.add(Calendar.DATE,1); + Date endTime = calendar.getTime(); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("approval_status", ApprovalStatusEnum.PASSED); + queryWrapper.ge("approval_time",startTime); + queryWrapper.lt("approval_time",endTime); + List list = statusApprovalService.list(queryWrapper); + for (EquipmentStatusApproval approval : list) { + statusApprovalService.updateStatusAndSaveLog(approval); + XxlJobHelper.log(String.format("update equipment %s status",approval.getEquipmentNo())); + } + } + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java new file mode 100644 index 0000000..032e2d4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java @@ -0,0 +1,14 @@ +package com.casic.missiles.dto.business; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class OrderCheckDTO { + + private String orderNo; + private String manufactureNo; + + private String equipmentName; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java index bdf1531..67899b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java @@ -1,9 +1,15 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @Description: * @Author: wangpeng @@ -18,12 +24,30 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; + @ApiModelProperty("使用部门(单个)") + private Long deptId; + + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty(value = "送检人", dataType = "String") private String deliverer; @ApiModelProperty(value = "创建人名字", dataType = "String") private String createUserName; + /** + * 检定(校准)单位(固定值) + */ + @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") + private String measureCompany; + + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "接收状态(包括接收相关状态和检测完成状态)", dataType = "String") + private String receiveStatus; + @ApiModelProperty(value = "创建开始时间", dataType = "String") private String createStartTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java index 3e4c232..f17b7a7 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.annotation.DictCodeField; @@ -30,6 +31,15 @@ private String customerName; /** + * 返回创建人的部门 + */ + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; + + /** * 检定(校准)单位(固定值) */ @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") @@ -52,4 +62,8 @@ @ApiModelProperty(value = "创建时间", dataType = "String") private String createTime; + + @ApiModelProperty(value = "计划送检时间", dataType = "String") + private String requireOverTime; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java index 83b45ac..08ba19e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java @@ -1,5 +1,7 @@ package com.casic.missiles.dto.equipment; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; @@ -82,4 +84,21 @@ @ApiModelProperty("计量标识") private String meterIdentify; + + @ApiModelProperty(value = "型号规格") + private String model; + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "所在单位id") + private Long companyId; + + @ApiModelProperty("所在单位名称") + private String companyName; + + @ApiModelProperty(value = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java index 6284acf..f313257 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java @@ -5,6 +5,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.List; + @Getter @Setter public class EquipmentCertificateQueryForm extends BaseQueryForm { @@ -29,4 +31,30 @@ @ApiModelProperty("证书有效期结束时间") private String certificateValidEnd; + + @ApiModelProperty("型号规格") + private String model; + + @ApiModelProperty("出厂编号") + private String manufactureNo; + + @ApiModelProperty("所在单位") + private Long companyId; + + @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; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java new file mode 100644 index 0000000..cdad130 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java @@ -0,0 +1,32 @@ +package com.casic.missiles.dto.equipment; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.model.equipment.EquipmentGroupInfo; +import com.casic.missiles.model.equipment.EquipmentGroupRelation; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class EquipmentGroupQueryForm { + + @ApiModelProperty("所在单位id") + private Long companyId; + + @ApiModelProperty("使用部门id") + private Long deptId; + + @ApiModelProperty(value = "分系统id") + private Long subSystemId; + + @ApiModelProperty("岗位ID") + private Long positionId; + + @ApiModelProperty("分组名称") + private String groupName; + + @ApiModelProperty("创建人id") + private String createUserId; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java index 43016e2..5773c4e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java @@ -50,4 +50,11 @@ @ApiModelProperty("备注") @ExcelIgnore private String remark; + + @ApiModelProperty("检定状态") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_REMIND_CHECK_STATUS) + private String checkStatus; + + @ApiModelProperty("检定状态名称") + private String checkStatusName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java index 663cd38..6a6f602 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java @@ -22,21 +22,46 @@ @ApiModelProperty("规格型号") private String model; + @ApiModelProperty("生产厂家") + private String manufacturer; + @ApiModelProperty("出厂编号") private String manufactureNo; @ApiModelProperty("设备类型(1受检设备;2特种设备)") private String equipmentType; + @ApiModelProperty("所在单位") + private Long companyId; + + @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; + @ApiModelProperty("使用状态") private String usageStatus; + @ApiModelProperty("使用状态列表") + private List usageStatusList; + + @ApiModelProperty("在用信息") + private String useSign; + @ApiModelProperty("证书有效期开始时间") private String certificateValidStart; @@ -52,4 +77,12 @@ @ApiModelProperty("参试任务结束时间") private String tastEndTime; + @ApiModelProperty("检定去向") + private String checkDestination; + + @ApiModelProperty("检定状态") + private String checkStatus; + + + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java new file mode 100644 index 0000000..e217254 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java @@ -0,0 +1,19 @@ +package com.casic.missiles.dto.equipment; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.Date; + +@Getter +@Setter +public class LimitInstructionUpdate { + + @ApiModelProperty("受检设备id") + private Long equipmentId; + + @ApiModelProperty("限用说明") + private String limitInstruction; + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java index c668e55..921a6a5 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java @@ -1,7 +1,15 @@ package com.casic.missiles.mapper.business; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.business.OrderListResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface BusinessOrderListResponseMapper extends BaseMapper { + + List listPage(@Param("page")Page page, + @Param("ew")QueryWrapper ew); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java index cde328c..219d6d8 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java @@ -41,9 +41,14 @@ List bizCertificateList(@Param("equipmentId") Long equipmentId); - List selectRemindListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindListPage(@Param("page") Page page, + @Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); - List selectRemindList(@Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindList(@Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java new file mode 100644 index 0000000..4b6f2f4 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-设备台账-设备变更记录 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface EquipmentModifyLogMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml index 18476de..a536f10 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml @@ -37,4 +37,24 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml new file mode 100644 index 0000000..e65b78e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, order_no, deliverer_id, deliverer, customer_id, customer_name, deliverer_tel, plan_deliver_time, require_over_time, customer_address, customer_phone, is_urgent, maintain_major, undertaker_id, measure_company, undertaker_name, undertake_time, receive_status, receive_illustrate, create_user_id, create_user_name, create_time, update_time + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml new file mode 100644 index 0000000..f1b61be --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, equipment_id, content, operate_user_id, operate_time + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java new file mode 100644 index 0000000..a65c4df --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java @@ -0,0 +1,36 @@ +package com.casic.missiles.controller.equipment; + +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 前端控制器 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Api(tags = "设备变更记录") +@RestController +@RequestMapping("/equipment") +@RequiredArgsConstructor +public class EquipmentModifyLogController { + + private final IEquipmentModifyLogService modifyLogService; + + @GetMapping("/modifyLogs") + public ReturnDTO> list(Long equipmentId){ + return ReturnUtil.success(modifyLogService.listByEquipment(equipmentId)); + } + +} diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java index 444318c..6b3af95 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java @@ -72,6 +72,15 @@ return businessOrderService.addOrder(businessOrder); } + @ApiOperation("任务单检查") + @PostMapping("/check") + public ReturnDTO orderChcek(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(businessOrderService.checkOrder(businessOrder)); + } + @ApiOperation("任务单更新") @PostMapping("/update") public ReturnDTO orderUpdate(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index 84ca460..352950c 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -36,6 +36,8 @@ template: calibration: "现场检定审批报告" environmental: "现场环境记录" + role: + operator: user # 操作手 logging: level.root: info diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java index 72514d8..2836b50 100644 --- a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java @@ -45,7 +45,7 @@ if(EquipmentStatusTypeEnum.DELAY.equals(equipmentInfo.getUsageStatus())){ QueryWrapper statusQueryWrapper = new QueryWrapper<>(); statusQueryWrapper.eq("equipment_id",equipmentInfo.getId()); - statusQueryWrapper.eq("", StatusApprovalTypeEnum.DELAY); + statusQueryWrapper.eq("approval_type", StatusApprovalTypeEnum.DELAY); statusQueryWrapper.orderByDesc("create_time"); statusQueryWrapper.last("limit 1"); EquipmentStatusApproval statusApproval = statusApprovalService.getOne(statusQueryWrapper); diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java new file mode 100644 index 0000000..f3aa066 --- /dev/null +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java @@ -0,0 +1,48 @@ +package com.casic.missiles.job.handler; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.model.status.EquipmentStatusApproval; +import com.casic.missiles.service.status.IEquipmentStatusApprovalService; +import com.casic.missiles.service.status.IEquipmentStatusLogService; +import com.xxl.job.core.context.XxlJobHelper; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +@Slf4j +@Component +@RequiredArgsConstructor +public class EquipmentStatusApprovalJobHandler { + + private final IEquipmentStatusApprovalService statusApprovalService; + + @XxlJob("equipmentStatusApprovalJobHandler") + public void equipmentStatusApprovalJobHandler(){ + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.HOUR_OF_DAY,0); + calendar.set(Calendar.MINUTE,0); + calendar.set(Calendar.SECOND,0); + Date startTime = calendar.getTime(); + + calendar.add(Calendar.DATE,1); + Date endTime = calendar.getTime(); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("approval_status", ApprovalStatusEnum.PASSED); + queryWrapper.ge("approval_time",startTime); + queryWrapper.lt("approval_time",endTime); + List list = statusApprovalService.list(queryWrapper); + for (EquipmentStatusApproval approval : list) { + statusApprovalService.updateStatusAndSaveLog(approval); + XxlJobHelper.log(String.format("update equipment %s status",approval.getEquipmentNo())); + } + } + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java new file mode 100644 index 0000000..032e2d4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java @@ -0,0 +1,14 @@ +package com.casic.missiles.dto.business; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class OrderCheckDTO { + + private String orderNo; + private String manufactureNo; + + private String equipmentName; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java index bdf1531..67899b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java @@ -1,9 +1,15 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @Description: * @Author: wangpeng @@ -18,12 +24,30 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; + @ApiModelProperty("使用部门(单个)") + private Long deptId; + + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty(value = "送检人", dataType = "String") private String deliverer; @ApiModelProperty(value = "创建人名字", dataType = "String") private String createUserName; + /** + * 检定(校准)单位(固定值) + */ + @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") + private String measureCompany; + + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "接收状态(包括接收相关状态和检测完成状态)", dataType = "String") + private String receiveStatus; + @ApiModelProperty(value = "创建开始时间", dataType = "String") private String createStartTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java index 3e4c232..f17b7a7 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.annotation.DictCodeField; @@ -30,6 +31,15 @@ private String customerName; /** + * 返回创建人的部门 + */ + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; + + /** * 检定(校准)单位(固定值) */ @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") @@ -52,4 +62,8 @@ @ApiModelProperty(value = "创建时间", dataType = "String") private String createTime; + + @ApiModelProperty(value = "计划送检时间", dataType = "String") + private String requireOverTime; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java index 83b45ac..08ba19e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java @@ -1,5 +1,7 @@ package com.casic.missiles.dto.equipment; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; @@ -82,4 +84,21 @@ @ApiModelProperty("计量标识") private String meterIdentify; + + @ApiModelProperty(value = "型号规格") + private String model; + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "所在单位id") + private Long companyId; + + @ApiModelProperty("所在单位名称") + private String companyName; + + @ApiModelProperty(value = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java index 6284acf..f313257 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java @@ -5,6 +5,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.List; + @Getter @Setter public class EquipmentCertificateQueryForm extends BaseQueryForm { @@ -29,4 +31,30 @@ @ApiModelProperty("证书有效期结束时间") private String certificateValidEnd; + + @ApiModelProperty("型号规格") + private String model; + + @ApiModelProperty("出厂编号") + private String manufactureNo; + + @ApiModelProperty("所在单位") + private Long companyId; + + @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; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java new file mode 100644 index 0000000..cdad130 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java @@ -0,0 +1,32 @@ +package com.casic.missiles.dto.equipment; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.model.equipment.EquipmentGroupInfo; +import com.casic.missiles.model.equipment.EquipmentGroupRelation; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class EquipmentGroupQueryForm { + + @ApiModelProperty("所在单位id") + private Long companyId; + + @ApiModelProperty("使用部门id") + private Long deptId; + + @ApiModelProperty(value = "分系统id") + private Long subSystemId; + + @ApiModelProperty("岗位ID") + private Long positionId; + + @ApiModelProperty("分组名称") + private String groupName; + + @ApiModelProperty("创建人id") + private String createUserId; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java index 43016e2..5773c4e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java @@ -50,4 +50,11 @@ @ApiModelProperty("备注") @ExcelIgnore private String remark; + + @ApiModelProperty("检定状态") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_REMIND_CHECK_STATUS) + private String checkStatus; + + @ApiModelProperty("检定状态名称") + private String checkStatusName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java index 663cd38..6a6f602 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java @@ -22,21 +22,46 @@ @ApiModelProperty("规格型号") private String model; + @ApiModelProperty("生产厂家") + private String manufacturer; + @ApiModelProperty("出厂编号") private String manufactureNo; @ApiModelProperty("设备类型(1受检设备;2特种设备)") private String equipmentType; + @ApiModelProperty("所在单位") + private Long companyId; + + @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; + @ApiModelProperty("使用状态") private String usageStatus; + @ApiModelProperty("使用状态列表") + private List usageStatusList; + + @ApiModelProperty("在用信息") + private String useSign; + @ApiModelProperty("证书有效期开始时间") private String certificateValidStart; @@ -52,4 +77,12 @@ @ApiModelProperty("参试任务结束时间") private String tastEndTime; + @ApiModelProperty("检定去向") + private String checkDestination; + + @ApiModelProperty("检定状态") + private String checkStatus; + + + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java new file mode 100644 index 0000000..e217254 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java @@ -0,0 +1,19 @@ +package com.casic.missiles.dto.equipment; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.Date; + +@Getter +@Setter +public class LimitInstructionUpdate { + + @ApiModelProperty("受检设备id") + private Long equipmentId; + + @ApiModelProperty("限用说明") + private String limitInstruction; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java index 068ffb6..8f1c6a0 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java @@ -56,6 +56,10 @@ @TableField("sample_model") private String sampleModel; + @ApiModelProperty("生产厂家") + @TableField(exist = false) + private String sampleManufacturer; + /** * 交接单id,避免重复交接(可为空) */ diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java index c668e55..921a6a5 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java @@ -1,7 +1,15 @@ package com.casic.missiles.mapper.business; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.business.OrderListResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface BusinessOrderListResponseMapper extends BaseMapper { + + List listPage(@Param("page")Page page, + @Param("ew")QueryWrapper ew); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java index cde328c..219d6d8 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java @@ -41,9 +41,14 @@ List bizCertificateList(@Param("equipmentId") Long equipmentId); - List selectRemindListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindListPage(@Param("page") Page page, + @Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); - List selectRemindList(@Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindList(@Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java new file mode 100644 index 0000000..4b6f2f4 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-设备台账-设备变更记录 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface EquipmentModifyLogMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml index 18476de..a536f10 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml @@ -37,4 +37,24 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml new file mode 100644 index 0000000..e65b78e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, order_no, deliverer_id, deliverer, customer_id, customer_name, deliverer_tel, plan_deliver_time, require_over_time, customer_address, customer_phone, is_urgent, maintain_major, undertaker_id, measure_company, undertaker_name, undertake_time, receive_status, receive_illustrate, create_user_id, create_user_name, create_time, update_time + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml new file mode 100644 index 0000000..f1b61be --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, equipment_id, content, operate_user_id, operate_time + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java new file mode 100644 index 0000000..a65c4df --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java @@ -0,0 +1,36 @@ +package com.casic.missiles.controller.equipment; + +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 前端控制器 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Api(tags = "设备变更记录") +@RestController +@RequestMapping("/equipment") +@RequiredArgsConstructor +public class EquipmentModifyLogController { + + private final IEquipmentModifyLogService modifyLogService; + + @GetMapping("/modifyLogs") + public ReturnDTO> list(Long equipmentId){ + return ReturnUtil.success(modifyLogService.listByEquipment(equipmentId)); + } + +} diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java index 444318c..6b3af95 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java @@ -72,6 +72,15 @@ return businessOrderService.addOrder(businessOrder); } + @ApiOperation("任务单检查") + @PostMapping("/check") + public ReturnDTO orderChcek(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(businessOrderService.checkOrder(businessOrder)); + } + @ApiOperation("任务单更新") @PostMapping("/update") public ReturnDTO orderUpdate(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index 84ca460..352950c 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -36,6 +36,8 @@ template: calibration: "现场检定审批报告" environmental: "现场环境记录" + role: + operator: user # 操作手 logging: level.root: info diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java index 72514d8..2836b50 100644 --- a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java @@ -45,7 +45,7 @@ if(EquipmentStatusTypeEnum.DELAY.equals(equipmentInfo.getUsageStatus())){ QueryWrapper statusQueryWrapper = new QueryWrapper<>(); statusQueryWrapper.eq("equipment_id",equipmentInfo.getId()); - statusQueryWrapper.eq("", StatusApprovalTypeEnum.DELAY); + statusQueryWrapper.eq("approval_type", StatusApprovalTypeEnum.DELAY); statusQueryWrapper.orderByDesc("create_time"); statusQueryWrapper.last("limit 1"); EquipmentStatusApproval statusApproval = statusApprovalService.getOne(statusQueryWrapper); diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java new file mode 100644 index 0000000..f3aa066 --- /dev/null +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java @@ -0,0 +1,48 @@ +package com.casic.missiles.job.handler; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.model.status.EquipmentStatusApproval; +import com.casic.missiles.service.status.IEquipmentStatusApprovalService; +import com.casic.missiles.service.status.IEquipmentStatusLogService; +import com.xxl.job.core.context.XxlJobHelper; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +@Slf4j +@Component +@RequiredArgsConstructor +public class EquipmentStatusApprovalJobHandler { + + private final IEquipmentStatusApprovalService statusApprovalService; + + @XxlJob("equipmentStatusApprovalJobHandler") + public void equipmentStatusApprovalJobHandler(){ + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.HOUR_OF_DAY,0); + calendar.set(Calendar.MINUTE,0); + calendar.set(Calendar.SECOND,0); + Date startTime = calendar.getTime(); + + calendar.add(Calendar.DATE,1); + Date endTime = calendar.getTime(); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("approval_status", ApprovalStatusEnum.PASSED); + queryWrapper.ge("approval_time",startTime); + queryWrapper.lt("approval_time",endTime); + List list = statusApprovalService.list(queryWrapper); + for (EquipmentStatusApproval approval : list) { + statusApprovalService.updateStatusAndSaveLog(approval); + XxlJobHelper.log(String.format("update equipment %s status",approval.getEquipmentNo())); + } + } + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java new file mode 100644 index 0000000..032e2d4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java @@ -0,0 +1,14 @@ +package com.casic.missiles.dto.business; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class OrderCheckDTO { + + private String orderNo; + private String manufactureNo; + + private String equipmentName; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java index bdf1531..67899b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java @@ -1,9 +1,15 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @Description: * @Author: wangpeng @@ -18,12 +24,30 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; + @ApiModelProperty("使用部门(单个)") + private Long deptId; + + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty(value = "送检人", dataType = "String") private String deliverer; @ApiModelProperty(value = "创建人名字", dataType = "String") private String createUserName; + /** + * 检定(校准)单位(固定值) + */ + @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") + private String measureCompany; + + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "接收状态(包括接收相关状态和检测完成状态)", dataType = "String") + private String receiveStatus; + @ApiModelProperty(value = "创建开始时间", dataType = "String") private String createStartTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java index 3e4c232..f17b7a7 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.annotation.DictCodeField; @@ -30,6 +31,15 @@ private String customerName; /** + * 返回创建人的部门 + */ + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; + + /** * 检定(校准)单位(固定值) */ @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") @@ -52,4 +62,8 @@ @ApiModelProperty(value = "创建时间", dataType = "String") private String createTime; + + @ApiModelProperty(value = "计划送检时间", dataType = "String") + private String requireOverTime; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java index 83b45ac..08ba19e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java @@ -1,5 +1,7 @@ package com.casic.missiles.dto.equipment; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; @@ -82,4 +84,21 @@ @ApiModelProperty("计量标识") private String meterIdentify; + + @ApiModelProperty(value = "型号规格") + private String model; + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "所在单位id") + private Long companyId; + + @ApiModelProperty("所在单位名称") + private String companyName; + + @ApiModelProperty(value = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java index 6284acf..f313257 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java @@ -5,6 +5,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.List; + @Getter @Setter public class EquipmentCertificateQueryForm extends BaseQueryForm { @@ -29,4 +31,30 @@ @ApiModelProperty("证书有效期结束时间") private String certificateValidEnd; + + @ApiModelProperty("型号规格") + private String model; + + @ApiModelProperty("出厂编号") + private String manufactureNo; + + @ApiModelProperty("所在单位") + private Long companyId; + + @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; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java new file mode 100644 index 0000000..cdad130 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java @@ -0,0 +1,32 @@ +package com.casic.missiles.dto.equipment; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.model.equipment.EquipmentGroupInfo; +import com.casic.missiles.model.equipment.EquipmentGroupRelation; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class EquipmentGroupQueryForm { + + @ApiModelProperty("所在单位id") + private Long companyId; + + @ApiModelProperty("使用部门id") + private Long deptId; + + @ApiModelProperty(value = "分系统id") + private Long subSystemId; + + @ApiModelProperty("岗位ID") + private Long positionId; + + @ApiModelProperty("分组名称") + private String groupName; + + @ApiModelProperty("创建人id") + private String createUserId; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java index 43016e2..5773c4e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java @@ -50,4 +50,11 @@ @ApiModelProperty("备注") @ExcelIgnore private String remark; + + @ApiModelProperty("检定状态") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_REMIND_CHECK_STATUS) + private String checkStatus; + + @ApiModelProperty("检定状态名称") + private String checkStatusName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java index 663cd38..6a6f602 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java @@ -22,21 +22,46 @@ @ApiModelProperty("规格型号") private String model; + @ApiModelProperty("生产厂家") + private String manufacturer; + @ApiModelProperty("出厂编号") private String manufactureNo; @ApiModelProperty("设备类型(1受检设备;2特种设备)") private String equipmentType; + @ApiModelProperty("所在单位") + private Long companyId; + + @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; + @ApiModelProperty("使用状态") private String usageStatus; + @ApiModelProperty("使用状态列表") + private List usageStatusList; + + @ApiModelProperty("在用信息") + private String useSign; + @ApiModelProperty("证书有效期开始时间") private String certificateValidStart; @@ -52,4 +77,12 @@ @ApiModelProperty("参试任务结束时间") private String tastEndTime; + @ApiModelProperty("检定去向") + private String checkDestination; + + @ApiModelProperty("检定状态") + private String checkStatus; + + + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java new file mode 100644 index 0000000..e217254 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java @@ -0,0 +1,19 @@ +package com.casic.missiles.dto.equipment; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.Date; + +@Getter +@Setter +public class LimitInstructionUpdate { + + @ApiModelProperty("受检设备id") + private Long equipmentId; + + @ApiModelProperty("限用说明") + private String limitInstruction; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java index 068ffb6..8f1c6a0 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java @@ -56,6 +56,10 @@ @TableField("sample_model") private String sampleModel; + @ApiModelProperty("生产厂家") + @TableField(exist = false) + private String sampleManufacturer; + /** * 交接单id,避免重复交接(可为空) */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java new file mode 100644 index 0000000..a19c0a6 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java @@ -0,0 +1,72 @@ +package com.casic.missiles.model.equipment; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 受检设备-设备台账-设备变更记录 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Getter +@Setter +@TableName("eqpt_equipment_modify_log") +public class EquipmentModifyLog implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ApiModelProperty("主键") + @TableId("id") + private Long id; + + /** + * 设备id + */ + @ApiModelProperty("设备id") + @TableField("equipment_id") + private Long equipmentId; + + /** + * 变更内容 + */ + @ApiModelProperty("变更内容") + @TableField("content") + private String content; + + /** + * 变更人 + */ + @ApiModelProperty("变更人id") + @TableField("operate_user_id") + private Long operateUserId; + + @ApiModelProperty("变更人姓名") + @TableField(exist = false) + private String operateUserName; + /** + * 变更时间 + */ + @ApiModelProperty("变更时间") + @TableField("operate_time") + private Date operateTime; + + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java index c668e55..921a6a5 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java @@ -1,7 +1,15 @@ package com.casic.missiles.mapper.business; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.business.OrderListResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface BusinessOrderListResponseMapper extends BaseMapper { + + List listPage(@Param("page")Page page, + @Param("ew")QueryWrapper ew); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java index cde328c..219d6d8 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java @@ -41,9 +41,14 @@ List bizCertificateList(@Param("equipmentId") Long equipmentId); - List selectRemindListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindListPage(@Param("page") Page page, + @Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); - List selectRemindList(@Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindList(@Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java new file mode 100644 index 0000000..4b6f2f4 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-设备台账-设备变更记录 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface EquipmentModifyLogMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml index 18476de..a536f10 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml @@ -37,4 +37,24 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml new file mode 100644 index 0000000..e65b78e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, order_no, deliverer_id, deliverer, customer_id, customer_name, deliverer_tel, plan_deliver_time, require_over_time, customer_address, customer_phone, is_urgent, maintain_major, undertaker_id, measure_company, undertaker_name, undertake_time, receive_status, receive_illustrate, create_user_id, create_user_name, create_time, update_time + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml new file mode 100644 index 0000000..f1b61be --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, equipment_id, content, operate_user_id, operate_time + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java new file mode 100644 index 0000000..a65c4df --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java @@ -0,0 +1,36 @@ +package com.casic.missiles.controller.equipment; + +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 前端控制器 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Api(tags = "设备变更记录") +@RestController +@RequestMapping("/equipment") +@RequiredArgsConstructor +public class EquipmentModifyLogController { + + private final IEquipmentModifyLogService modifyLogService; + + @GetMapping("/modifyLogs") + public ReturnDTO> list(Long equipmentId){ + return ReturnUtil.success(modifyLogService.listByEquipment(equipmentId)); + } + +} diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java index 444318c..6b3af95 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java @@ -72,6 +72,15 @@ return businessOrderService.addOrder(businessOrder); } + @ApiOperation("任务单检查") + @PostMapping("/check") + public ReturnDTO orderChcek(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(businessOrderService.checkOrder(businessOrder)); + } + @ApiOperation("任务单更新") @PostMapping("/update") public ReturnDTO orderUpdate(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index 84ca460..352950c 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -36,6 +36,8 @@ template: calibration: "现场检定审批报告" environmental: "现场环境记录" + role: + operator: user # 操作手 logging: level.root: info diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java index 72514d8..2836b50 100644 --- a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java @@ -45,7 +45,7 @@ if(EquipmentStatusTypeEnum.DELAY.equals(equipmentInfo.getUsageStatus())){ QueryWrapper statusQueryWrapper = new QueryWrapper<>(); statusQueryWrapper.eq("equipment_id",equipmentInfo.getId()); - statusQueryWrapper.eq("", StatusApprovalTypeEnum.DELAY); + statusQueryWrapper.eq("approval_type", StatusApprovalTypeEnum.DELAY); statusQueryWrapper.orderByDesc("create_time"); statusQueryWrapper.last("limit 1"); EquipmentStatusApproval statusApproval = statusApprovalService.getOne(statusQueryWrapper); diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java new file mode 100644 index 0000000..f3aa066 --- /dev/null +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java @@ -0,0 +1,48 @@ +package com.casic.missiles.job.handler; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.model.status.EquipmentStatusApproval; +import com.casic.missiles.service.status.IEquipmentStatusApprovalService; +import com.casic.missiles.service.status.IEquipmentStatusLogService; +import com.xxl.job.core.context.XxlJobHelper; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +@Slf4j +@Component +@RequiredArgsConstructor +public class EquipmentStatusApprovalJobHandler { + + private final IEquipmentStatusApprovalService statusApprovalService; + + @XxlJob("equipmentStatusApprovalJobHandler") + public void equipmentStatusApprovalJobHandler(){ + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.HOUR_OF_DAY,0); + calendar.set(Calendar.MINUTE,0); + calendar.set(Calendar.SECOND,0); + Date startTime = calendar.getTime(); + + calendar.add(Calendar.DATE,1); + Date endTime = calendar.getTime(); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("approval_status", ApprovalStatusEnum.PASSED); + queryWrapper.ge("approval_time",startTime); + queryWrapper.lt("approval_time",endTime); + List list = statusApprovalService.list(queryWrapper); + for (EquipmentStatusApproval approval : list) { + statusApprovalService.updateStatusAndSaveLog(approval); + XxlJobHelper.log(String.format("update equipment %s status",approval.getEquipmentNo())); + } + } + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java new file mode 100644 index 0000000..032e2d4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java @@ -0,0 +1,14 @@ +package com.casic.missiles.dto.business; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class OrderCheckDTO { + + private String orderNo; + private String manufactureNo; + + private String equipmentName; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java index bdf1531..67899b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java @@ -1,9 +1,15 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @Description: * @Author: wangpeng @@ -18,12 +24,30 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; + @ApiModelProperty("使用部门(单个)") + private Long deptId; + + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty(value = "送检人", dataType = "String") private String deliverer; @ApiModelProperty(value = "创建人名字", dataType = "String") private String createUserName; + /** + * 检定(校准)单位(固定值) + */ + @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") + private String measureCompany; + + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "接收状态(包括接收相关状态和检测完成状态)", dataType = "String") + private String receiveStatus; + @ApiModelProperty(value = "创建开始时间", dataType = "String") private String createStartTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java index 3e4c232..f17b7a7 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.annotation.DictCodeField; @@ -30,6 +31,15 @@ private String customerName; /** + * 返回创建人的部门 + */ + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; + + /** * 检定(校准)单位(固定值) */ @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") @@ -52,4 +62,8 @@ @ApiModelProperty(value = "创建时间", dataType = "String") private String createTime; + + @ApiModelProperty(value = "计划送检时间", dataType = "String") + private String requireOverTime; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java index 83b45ac..08ba19e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java @@ -1,5 +1,7 @@ package com.casic.missiles.dto.equipment; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; @@ -82,4 +84,21 @@ @ApiModelProperty("计量标识") private String meterIdentify; + + @ApiModelProperty(value = "型号规格") + private String model; + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "所在单位id") + private Long companyId; + + @ApiModelProperty("所在单位名称") + private String companyName; + + @ApiModelProperty(value = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java index 6284acf..f313257 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java @@ -5,6 +5,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.List; + @Getter @Setter public class EquipmentCertificateQueryForm extends BaseQueryForm { @@ -29,4 +31,30 @@ @ApiModelProperty("证书有效期结束时间") private String certificateValidEnd; + + @ApiModelProperty("型号规格") + private String model; + + @ApiModelProperty("出厂编号") + private String manufactureNo; + + @ApiModelProperty("所在单位") + private Long companyId; + + @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; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java new file mode 100644 index 0000000..cdad130 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java @@ -0,0 +1,32 @@ +package com.casic.missiles.dto.equipment; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.model.equipment.EquipmentGroupInfo; +import com.casic.missiles.model.equipment.EquipmentGroupRelation; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class EquipmentGroupQueryForm { + + @ApiModelProperty("所在单位id") + private Long companyId; + + @ApiModelProperty("使用部门id") + private Long deptId; + + @ApiModelProperty(value = "分系统id") + private Long subSystemId; + + @ApiModelProperty("岗位ID") + private Long positionId; + + @ApiModelProperty("分组名称") + private String groupName; + + @ApiModelProperty("创建人id") + private String createUserId; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java index 43016e2..5773c4e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java @@ -50,4 +50,11 @@ @ApiModelProperty("备注") @ExcelIgnore private String remark; + + @ApiModelProperty("检定状态") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_REMIND_CHECK_STATUS) + private String checkStatus; + + @ApiModelProperty("检定状态名称") + private String checkStatusName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java index 663cd38..6a6f602 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java @@ -22,21 +22,46 @@ @ApiModelProperty("规格型号") private String model; + @ApiModelProperty("生产厂家") + private String manufacturer; + @ApiModelProperty("出厂编号") private String manufactureNo; @ApiModelProperty("设备类型(1受检设备;2特种设备)") private String equipmentType; + @ApiModelProperty("所在单位") + private Long companyId; + + @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; + @ApiModelProperty("使用状态") private String usageStatus; + @ApiModelProperty("使用状态列表") + private List usageStatusList; + + @ApiModelProperty("在用信息") + private String useSign; + @ApiModelProperty("证书有效期开始时间") private String certificateValidStart; @@ -52,4 +77,12 @@ @ApiModelProperty("参试任务结束时间") private String tastEndTime; + @ApiModelProperty("检定去向") + private String checkDestination; + + @ApiModelProperty("检定状态") + private String checkStatus; + + + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java new file mode 100644 index 0000000..e217254 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java @@ -0,0 +1,19 @@ +package com.casic.missiles.dto.equipment; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.Date; + +@Getter +@Setter +public class LimitInstructionUpdate { + + @ApiModelProperty("受检设备id") + private Long equipmentId; + + @ApiModelProperty("限用说明") + private String limitInstruction; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java index 068ffb6..8f1c6a0 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java @@ -56,6 +56,10 @@ @TableField("sample_model") private String sampleModel; + @ApiModelProperty("生产厂家") + @TableField(exist = false) + private String sampleManufacturer; + /** * 交接单id,避免重复交接(可为空) */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java new file mode 100644 index 0000000..a19c0a6 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java @@ -0,0 +1,72 @@ +package com.casic.missiles.model.equipment; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 受检设备-设备台账-设备变更记录 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Getter +@Setter +@TableName("eqpt_equipment_modify_log") +public class EquipmentModifyLog implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ApiModelProperty("主键") + @TableId("id") + private Long id; + + /** + * 设备id + */ + @ApiModelProperty("设备id") + @TableField("equipment_id") + private Long equipmentId; + + /** + * 变更内容 + */ + @ApiModelProperty("变更内容") + @TableField("content") + private String content; + + /** + * 变更人 + */ + @ApiModelProperty("变更人id") + @TableField("operate_user_id") + private Long operateUserId; + + @ApiModelProperty("变更人姓名") + @TableField(exist = false) + private String operateUserName; + /** + * 变更时间 + */ + @ApiModelProperty("变更时间") + @TableField("operate_time") + private Date operateTime; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java b/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java index 989211a..e8bc431 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java @@ -66,5 +66,9 @@ @ApiModelProperty("原因") private String reason; + @ApiModelProperty("状态维护申请id") + @TableField("status_approval_id") + private Long statusApprovalId; + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java index c668e55..921a6a5 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java @@ -1,7 +1,15 @@ package com.casic.missiles.mapper.business; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.business.OrderListResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface BusinessOrderListResponseMapper extends BaseMapper { + + List listPage(@Param("page")Page page, + @Param("ew")QueryWrapper ew); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java index cde328c..219d6d8 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java @@ -41,9 +41,14 @@ List bizCertificateList(@Param("equipmentId") Long equipmentId); - List selectRemindListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindListPage(@Param("page") Page page, + @Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); - List selectRemindList(@Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindList(@Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java new file mode 100644 index 0000000..4b6f2f4 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-设备台账-设备变更记录 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface EquipmentModifyLogMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml index 18476de..a536f10 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml @@ -37,4 +37,24 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml new file mode 100644 index 0000000..e65b78e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, order_no, deliverer_id, deliverer, customer_id, customer_name, deliverer_tel, plan_deliver_time, require_over_time, customer_address, customer_phone, is_urgent, maintain_major, undertaker_id, measure_company, undertaker_name, undertake_time, receive_status, receive_illustrate, create_user_id, create_user_name, create_time, update_time + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml new file mode 100644 index 0000000..f1b61be --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, equipment_id, content, operate_user_id, operate_time + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java new file mode 100644 index 0000000..a65c4df --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java @@ -0,0 +1,36 @@ +package com.casic.missiles.controller.equipment; + +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 前端控制器 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Api(tags = "设备变更记录") +@RestController +@RequestMapping("/equipment") +@RequiredArgsConstructor +public class EquipmentModifyLogController { + + private final IEquipmentModifyLogService modifyLogService; + + @GetMapping("/modifyLogs") + public ReturnDTO> list(Long equipmentId){ + return ReturnUtil.success(modifyLogService.listByEquipment(equipmentId)); + } + +} diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java index 444318c..6b3af95 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java @@ -72,6 +72,15 @@ return businessOrderService.addOrder(businessOrder); } + @ApiOperation("任务单检查") + @PostMapping("/check") + public ReturnDTO orderChcek(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(businessOrderService.checkOrder(businessOrder)); + } + @ApiOperation("任务单更新") @PostMapping("/update") public ReturnDTO orderUpdate(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index 84ca460..352950c 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -36,6 +36,8 @@ template: calibration: "现场检定审批报告" environmental: "现场环境记录" + role: + operator: user # 操作手 logging: level.root: info diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java index 72514d8..2836b50 100644 --- a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java @@ -45,7 +45,7 @@ if(EquipmentStatusTypeEnum.DELAY.equals(equipmentInfo.getUsageStatus())){ QueryWrapper statusQueryWrapper = new QueryWrapper<>(); statusQueryWrapper.eq("equipment_id",equipmentInfo.getId()); - statusQueryWrapper.eq("", StatusApprovalTypeEnum.DELAY); + statusQueryWrapper.eq("approval_type", StatusApprovalTypeEnum.DELAY); statusQueryWrapper.orderByDesc("create_time"); statusQueryWrapper.last("limit 1"); EquipmentStatusApproval statusApproval = statusApprovalService.getOne(statusQueryWrapper); diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java new file mode 100644 index 0000000..f3aa066 --- /dev/null +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java @@ -0,0 +1,48 @@ +package com.casic.missiles.job.handler; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.model.status.EquipmentStatusApproval; +import com.casic.missiles.service.status.IEquipmentStatusApprovalService; +import com.casic.missiles.service.status.IEquipmentStatusLogService; +import com.xxl.job.core.context.XxlJobHelper; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +@Slf4j +@Component +@RequiredArgsConstructor +public class EquipmentStatusApprovalJobHandler { + + private final IEquipmentStatusApprovalService statusApprovalService; + + @XxlJob("equipmentStatusApprovalJobHandler") + public void equipmentStatusApprovalJobHandler(){ + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.HOUR_OF_DAY,0); + calendar.set(Calendar.MINUTE,0); + calendar.set(Calendar.SECOND,0); + Date startTime = calendar.getTime(); + + calendar.add(Calendar.DATE,1); + Date endTime = calendar.getTime(); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("approval_status", ApprovalStatusEnum.PASSED); + queryWrapper.ge("approval_time",startTime); + queryWrapper.lt("approval_time",endTime); + List list = statusApprovalService.list(queryWrapper); + for (EquipmentStatusApproval approval : list) { + statusApprovalService.updateStatusAndSaveLog(approval); + XxlJobHelper.log(String.format("update equipment %s status",approval.getEquipmentNo())); + } + } + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java new file mode 100644 index 0000000..032e2d4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java @@ -0,0 +1,14 @@ +package com.casic.missiles.dto.business; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class OrderCheckDTO { + + private String orderNo; + private String manufactureNo; + + private String equipmentName; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java index bdf1531..67899b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java @@ -1,9 +1,15 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @Description: * @Author: wangpeng @@ -18,12 +24,30 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; + @ApiModelProperty("使用部门(单个)") + private Long deptId; + + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty(value = "送检人", dataType = "String") private String deliverer; @ApiModelProperty(value = "创建人名字", dataType = "String") private String createUserName; + /** + * 检定(校准)单位(固定值) + */ + @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") + private String measureCompany; + + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "接收状态(包括接收相关状态和检测完成状态)", dataType = "String") + private String receiveStatus; + @ApiModelProperty(value = "创建开始时间", dataType = "String") private String createStartTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java index 3e4c232..f17b7a7 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.annotation.DictCodeField; @@ -30,6 +31,15 @@ private String customerName; /** + * 返回创建人的部门 + */ + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; + + /** * 检定(校准)单位(固定值) */ @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") @@ -52,4 +62,8 @@ @ApiModelProperty(value = "创建时间", dataType = "String") private String createTime; + + @ApiModelProperty(value = "计划送检时间", dataType = "String") + private String requireOverTime; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java index 83b45ac..08ba19e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java @@ -1,5 +1,7 @@ package com.casic.missiles.dto.equipment; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; @@ -82,4 +84,21 @@ @ApiModelProperty("计量标识") private String meterIdentify; + + @ApiModelProperty(value = "型号规格") + private String model; + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "所在单位id") + private Long companyId; + + @ApiModelProperty("所在单位名称") + private String companyName; + + @ApiModelProperty(value = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java index 6284acf..f313257 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java @@ -5,6 +5,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.List; + @Getter @Setter public class EquipmentCertificateQueryForm extends BaseQueryForm { @@ -29,4 +31,30 @@ @ApiModelProperty("证书有效期结束时间") private String certificateValidEnd; + + @ApiModelProperty("型号规格") + private String model; + + @ApiModelProperty("出厂编号") + private String manufactureNo; + + @ApiModelProperty("所在单位") + private Long companyId; + + @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; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java new file mode 100644 index 0000000..cdad130 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java @@ -0,0 +1,32 @@ +package com.casic.missiles.dto.equipment; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.model.equipment.EquipmentGroupInfo; +import com.casic.missiles.model.equipment.EquipmentGroupRelation; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class EquipmentGroupQueryForm { + + @ApiModelProperty("所在单位id") + private Long companyId; + + @ApiModelProperty("使用部门id") + private Long deptId; + + @ApiModelProperty(value = "分系统id") + private Long subSystemId; + + @ApiModelProperty("岗位ID") + private Long positionId; + + @ApiModelProperty("分组名称") + private String groupName; + + @ApiModelProperty("创建人id") + private String createUserId; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java index 43016e2..5773c4e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java @@ -50,4 +50,11 @@ @ApiModelProperty("备注") @ExcelIgnore private String remark; + + @ApiModelProperty("检定状态") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_REMIND_CHECK_STATUS) + private String checkStatus; + + @ApiModelProperty("检定状态名称") + private String checkStatusName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java index 663cd38..6a6f602 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java @@ -22,21 +22,46 @@ @ApiModelProperty("规格型号") private String model; + @ApiModelProperty("生产厂家") + private String manufacturer; + @ApiModelProperty("出厂编号") private String manufactureNo; @ApiModelProperty("设备类型(1受检设备;2特种设备)") private String equipmentType; + @ApiModelProperty("所在单位") + private Long companyId; + + @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; + @ApiModelProperty("使用状态") private String usageStatus; + @ApiModelProperty("使用状态列表") + private List usageStatusList; + + @ApiModelProperty("在用信息") + private String useSign; + @ApiModelProperty("证书有效期开始时间") private String certificateValidStart; @@ -52,4 +77,12 @@ @ApiModelProperty("参试任务结束时间") private String tastEndTime; + @ApiModelProperty("检定去向") + private String checkDestination; + + @ApiModelProperty("检定状态") + private String checkStatus; + + + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java new file mode 100644 index 0000000..e217254 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java @@ -0,0 +1,19 @@ +package com.casic.missiles.dto.equipment; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.Date; + +@Getter +@Setter +public class LimitInstructionUpdate { + + @ApiModelProperty("受检设备id") + private Long equipmentId; + + @ApiModelProperty("限用说明") + private String limitInstruction; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java index 068ffb6..8f1c6a0 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java @@ -56,6 +56,10 @@ @TableField("sample_model") private String sampleModel; + @ApiModelProperty("生产厂家") + @TableField(exist = false) + private String sampleManufacturer; + /** * 交接单id,避免重复交接(可为空) */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java new file mode 100644 index 0000000..a19c0a6 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java @@ -0,0 +1,72 @@ +package com.casic.missiles.model.equipment; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 受检设备-设备台账-设备变更记录 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Getter +@Setter +@TableName("eqpt_equipment_modify_log") +public class EquipmentModifyLog implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ApiModelProperty("主键") + @TableId("id") + private Long id; + + /** + * 设备id + */ + @ApiModelProperty("设备id") + @TableField("equipment_id") + private Long equipmentId; + + /** + * 变更内容 + */ + @ApiModelProperty("变更内容") + @TableField("content") + private String content; + + /** + * 变更人 + */ + @ApiModelProperty("变更人id") + @TableField("operate_user_id") + private Long operateUserId; + + @ApiModelProperty("变更人姓名") + @TableField(exist = false) + private String operateUserName; + /** + * 变更时间 + */ + @ApiModelProperty("变更时间") + @TableField("operate_time") + private Date operateTime; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java b/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java index 989211a..e8bc431 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java @@ -66,5 +66,9 @@ @ApiModelProperty("原因") private String reason; + @ApiModelProperty("状态维护申请id") + @TableField("status_approval_id") + private Long statusApprovalId; + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/annotation/EquipmentLog.java b/casic-metering-service/src/main/java/com/casic/missiles/annotation/EquipmentLog.java new file mode 100644 index 0000000..b28717e --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/annotation/EquipmentLog.java @@ -0,0 +1,20 @@ +package com.casic.missiles.annotation; + + +import java.lang.annotation.*; + +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface EquipmentLog { + + /** + * 设备ID + */ + String key(); + + /** + * 变更描述 + */ + String value() default ""; +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java index c668e55..921a6a5 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java @@ -1,7 +1,15 @@ package com.casic.missiles.mapper.business; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.business.OrderListResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface BusinessOrderListResponseMapper extends BaseMapper { + + List listPage(@Param("page")Page page, + @Param("ew")QueryWrapper ew); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java index cde328c..219d6d8 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java @@ -41,9 +41,14 @@ List bizCertificateList(@Param("equipmentId") Long equipmentId); - List selectRemindListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindListPage(@Param("page") Page page, + @Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); - List selectRemindList(@Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindList(@Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java new file mode 100644 index 0000000..4b6f2f4 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-设备台账-设备变更记录 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface EquipmentModifyLogMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml index 18476de..a536f10 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml @@ -37,4 +37,24 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml new file mode 100644 index 0000000..e65b78e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, order_no, deliverer_id, deliverer, customer_id, customer_name, deliverer_tel, plan_deliver_time, require_over_time, customer_address, customer_phone, is_urgent, maintain_major, undertaker_id, measure_company, undertaker_name, undertake_time, receive_status, receive_illustrate, create_user_id, create_user_name, create_time, update_time + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml new file mode 100644 index 0000000..f1b61be --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, equipment_id, content, operate_user_id, operate_time + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java new file mode 100644 index 0000000..a65c4df --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java @@ -0,0 +1,36 @@ +package com.casic.missiles.controller.equipment; + +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 前端控制器 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Api(tags = "设备变更记录") +@RestController +@RequestMapping("/equipment") +@RequiredArgsConstructor +public class EquipmentModifyLogController { + + private final IEquipmentModifyLogService modifyLogService; + + @GetMapping("/modifyLogs") + public ReturnDTO> list(Long equipmentId){ + return ReturnUtil.success(modifyLogService.listByEquipment(equipmentId)); + } + +} diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java index 444318c..6b3af95 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java @@ -72,6 +72,15 @@ return businessOrderService.addOrder(businessOrder); } + @ApiOperation("任务单检查") + @PostMapping("/check") + public ReturnDTO orderChcek(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(businessOrderService.checkOrder(businessOrder)); + } + @ApiOperation("任务单更新") @PostMapping("/update") public ReturnDTO orderUpdate(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index 84ca460..352950c 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -36,6 +36,8 @@ template: calibration: "现场检定审批报告" environmental: "现场环境记录" + role: + operator: user # 操作手 logging: level.root: info diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java index 72514d8..2836b50 100644 --- a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java @@ -45,7 +45,7 @@ if(EquipmentStatusTypeEnum.DELAY.equals(equipmentInfo.getUsageStatus())){ QueryWrapper statusQueryWrapper = new QueryWrapper<>(); statusQueryWrapper.eq("equipment_id",equipmentInfo.getId()); - statusQueryWrapper.eq("", StatusApprovalTypeEnum.DELAY); + statusQueryWrapper.eq("approval_type", StatusApprovalTypeEnum.DELAY); statusQueryWrapper.orderByDesc("create_time"); statusQueryWrapper.last("limit 1"); EquipmentStatusApproval statusApproval = statusApprovalService.getOne(statusQueryWrapper); diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java new file mode 100644 index 0000000..f3aa066 --- /dev/null +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java @@ -0,0 +1,48 @@ +package com.casic.missiles.job.handler; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.model.status.EquipmentStatusApproval; +import com.casic.missiles.service.status.IEquipmentStatusApprovalService; +import com.casic.missiles.service.status.IEquipmentStatusLogService; +import com.xxl.job.core.context.XxlJobHelper; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +@Slf4j +@Component +@RequiredArgsConstructor +public class EquipmentStatusApprovalJobHandler { + + private final IEquipmentStatusApprovalService statusApprovalService; + + @XxlJob("equipmentStatusApprovalJobHandler") + public void equipmentStatusApprovalJobHandler(){ + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.HOUR_OF_DAY,0); + calendar.set(Calendar.MINUTE,0); + calendar.set(Calendar.SECOND,0); + Date startTime = calendar.getTime(); + + calendar.add(Calendar.DATE,1); + Date endTime = calendar.getTime(); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("approval_status", ApprovalStatusEnum.PASSED); + queryWrapper.ge("approval_time",startTime); + queryWrapper.lt("approval_time",endTime); + List list = statusApprovalService.list(queryWrapper); + for (EquipmentStatusApproval approval : list) { + statusApprovalService.updateStatusAndSaveLog(approval); + XxlJobHelper.log(String.format("update equipment %s status",approval.getEquipmentNo())); + } + } + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java new file mode 100644 index 0000000..032e2d4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java @@ -0,0 +1,14 @@ +package com.casic.missiles.dto.business; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class OrderCheckDTO { + + private String orderNo; + private String manufactureNo; + + private String equipmentName; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java index bdf1531..67899b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java @@ -1,9 +1,15 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @Description: * @Author: wangpeng @@ -18,12 +24,30 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; + @ApiModelProperty("使用部门(单个)") + private Long deptId; + + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty(value = "送检人", dataType = "String") private String deliverer; @ApiModelProperty(value = "创建人名字", dataType = "String") private String createUserName; + /** + * 检定(校准)单位(固定值) + */ + @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") + private String measureCompany; + + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "接收状态(包括接收相关状态和检测完成状态)", dataType = "String") + private String receiveStatus; + @ApiModelProperty(value = "创建开始时间", dataType = "String") private String createStartTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java index 3e4c232..f17b7a7 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.annotation.DictCodeField; @@ -30,6 +31,15 @@ private String customerName; /** + * 返回创建人的部门 + */ + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; + + /** * 检定(校准)单位(固定值) */ @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") @@ -52,4 +62,8 @@ @ApiModelProperty(value = "创建时间", dataType = "String") private String createTime; + + @ApiModelProperty(value = "计划送检时间", dataType = "String") + private String requireOverTime; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java index 83b45ac..08ba19e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java @@ -1,5 +1,7 @@ package com.casic.missiles.dto.equipment; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; @@ -82,4 +84,21 @@ @ApiModelProperty("计量标识") private String meterIdentify; + + @ApiModelProperty(value = "型号规格") + private String model; + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "所在单位id") + private Long companyId; + + @ApiModelProperty("所在单位名称") + private String companyName; + + @ApiModelProperty(value = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java index 6284acf..f313257 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java @@ -5,6 +5,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.List; + @Getter @Setter public class EquipmentCertificateQueryForm extends BaseQueryForm { @@ -29,4 +31,30 @@ @ApiModelProperty("证书有效期结束时间") private String certificateValidEnd; + + @ApiModelProperty("型号规格") + private String model; + + @ApiModelProperty("出厂编号") + private String manufactureNo; + + @ApiModelProperty("所在单位") + private Long companyId; + + @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; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java new file mode 100644 index 0000000..cdad130 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java @@ -0,0 +1,32 @@ +package com.casic.missiles.dto.equipment; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.model.equipment.EquipmentGroupInfo; +import com.casic.missiles.model.equipment.EquipmentGroupRelation; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class EquipmentGroupQueryForm { + + @ApiModelProperty("所在单位id") + private Long companyId; + + @ApiModelProperty("使用部门id") + private Long deptId; + + @ApiModelProperty(value = "分系统id") + private Long subSystemId; + + @ApiModelProperty("岗位ID") + private Long positionId; + + @ApiModelProperty("分组名称") + private String groupName; + + @ApiModelProperty("创建人id") + private String createUserId; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java index 43016e2..5773c4e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java @@ -50,4 +50,11 @@ @ApiModelProperty("备注") @ExcelIgnore private String remark; + + @ApiModelProperty("检定状态") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_REMIND_CHECK_STATUS) + private String checkStatus; + + @ApiModelProperty("检定状态名称") + private String checkStatusName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java index 663cd38..6a6f602 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java @@ -22,21 +22,46 @@ @ApiModelProperty("规格型号") private String model; + @ApiModelProperty("生产厂家") + private String manufacturer; + @ApiModelProperty("出厂编号") private String manufactureNo; @ApiModelProperty("设备类型(1受检设备;2特种设备)") private String equipmentType; + @ApiModelProperty("所在单位") + private Long companyId; + + @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; + @ApiModelProperty("使用状态") private String usageStatus; + @ApiModelProperty("使用状态列表") + private List usageStatusList; + + @ApiModelProperty("在用信息") + private String useSign; + @ApiModelProperty("证书有效期开始时间") private String certificateValidStart; @@ -52,4 +77,12 @@ @ApiModelProperty("参试任务结束时间") private String tastEndTime; + @ApiModelProperty("检定去向") + private String checkDestination; + + @ApiModelProperty("检定状态") + private String checkStatus; + + + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java new file mode 100644 index 0000000..e217254 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java @@ -0,0 +1,19 @@ +package com.casic.missiles.dto.equipment; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.Date; + +@Getter +@Setter +public class LimitInstructionUpdate { + + @ApiModelProperty("受检设备id") + private Long equipmentId; + + @ApiModelProperty("限用说明") + private String limitInstruction; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java index 068ffb6..8f1c6a0 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java @@ -56,6 +56,10 @@ @TableField("sample_model") private String sampleModel; + @ApiModelProperty("生产厂家") + @TableField(exist = false) + private String sampleManufacturer; + /** * 交接单id,避免重复交接(可为空) */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java new file mode 100644 index 0000000..a19c0a6 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java @@ -0,0 +1,72 @@ +package com.casic.missiles.model.equipment; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 受检设备-设备台账-设备变更记录 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Getter +@Setter +@TableName("eqpt_equipment_modify_log") +public class EquipmentModifyLog implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ApiModelProperty("主键") + @TableId("id") + private Long id; + + /** + * 设备id + */ + @ApiModelProperty("设备id") + @TableField("equipment_id") + private Long equipmentId; + + /** + * 变更内容 + */ + @ApiModelProperty("变更内容") + @TableField("content") + private String content; + + /** + * 变更人 + */ + @ApiModelProperty("变更人id") + @TableField("operate_user_id") + private Long operateUserId; + + @ApiModelProperty("变更人姓名") + @TableField(exist = false) + private String operateUserName; + /** + * 变更时间 + */ + @ApiModelProperty("变更时间") + @TableField("operate_time") + private Date operateTime; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java b/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java index 989211a..e8bc431 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java @@ -66,5 +66,9 @@ @ApiModelProperty("原因") private String reason; + @ApiModelProperty("状态维护申请id") + @TableField("status_approval_id") + private Long statusApprovalId; + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/annotation/EquipmentLog.java b/casic-metering-service/src/main/java/com/casic/missiles/annotation/EquipmentLog.java new file mode 100644 index 0000000..b28717e --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/annotation/EquipmentLog.java @@ -0,0 +1,20 @@ +package com.casic.missiles.annotation; + + +import java.lang.annotation.*; + +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface EquipmentLog { + + /** + * 设备ID + */ + String key(); + + /** + * 变更描述 + */ + String value() default ""; +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java new file mode 100644 index 0000000..b168cc1 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java @@ -0,0 +1,144 @@ +package com.casic.missiles.aop; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.casic.missiles.annotation.EquipmentLog; +import com.casic.missiles.core.application.service.AbstractAuthService; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentInfoService; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import com.casic.missiles.utils.CasicBeanUtil; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.Signature; +import org.aspectj.lang.annotation.After; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.aspectj.lang.annotation.Pointcut; +import org.aspectj.lang.reflect.MethodSignature; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.DefaultParameterNameDiscoverer; +import org.springframework.expression.EvaluationContext; +import org.springframework.expression.spel.standard.SpelExpression; +import org.springframework.expression.spel.standard.SpelExpressionParser; +import org.springframework.expression.spel.support.StandardEvaluationContext; +import org.springframework.scheduling.annotation.Async; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.stereotype.Component; + +import java.beans.Expression; +import java.lang.reflect.Method; +import java.util.Date; + +@Aspect +@Component +@EnableAsync +public class EquipmentLogAop { + + @Autowired + private IEquipmentInfoService equipmentInfoService; + @Autowired + private IEquipmentModifyLogService modifyLogService; + @Autowired + private AbstractAuthService authService; + + + /** + * 用于SpEL表达式解析. + */ + private final SpelExpressionParser parser = new SpelExpressionParser(); + /** + * 用于获取方法参数定义名字. + */ + private final DefaultParameterNameDiscoverer nameDiscoverer = new DefaultParameterNameDiscoverer(); + + private Long equipmentId; + private EquipmentInfo oldInfo; + + + /** + * 注解的位置 + */ + @Pointcut("@annotation(com.casic.missiles.annotation.EquipmentLog)") + public void logPointCut() {} + + @Before(value="logPointCut()") + public void before(JoinPoint joinPoint) throws Exception { + equipmentId = getEquipmentId(joinPoint); + if(ObjectUtil.isNotEmpty(equipmentId)){ + oldInfo = equipmentInfoService.getById(equipmentId); + }else { + oldInfo = null; + } + } + + private Long getEquipmentId(JoinPoint joinPoint) throws Exception { + //1.1获取目标对象对应的字节码对象 + Class targetCls= joinPoint.getTarget().getClass(); + //1.2获取目标方法对象 + //1.2.1 获取方法签名信息从而获取方法名和参数类型 + Signature signature= joinPoint.getSignature(); + //1.2.1.1将方法签名强转成MethodSignature类型,方便调用 + MethodSignature ms= (MethodSignature)signature; + //1.2.2通过字节码对象以及方法签名获取目标方法对象 + Method targetMethod=targetCls.getDeclaredMethod(ms.getName(),ms.getParameterTypes()); + //1.3获取目标方法对象上注解中的属性值 + //1.2.3 获取方法上的自定义requiredLog注解 + EquipmentLog equipmentLog=targetMethod.getAnnotation(EquipmentLog.class); + String val = generateKeyBySpEL(equipmentLog.key(), joinPoint); + return ObjectUtil.isNotEmpty(val) ? Long.valueOf(val) : null; + } + + @After(value="logPointCut()") + @Async + public void after(JoinPoint joinPoint){ + if(ObjectUtil.isNotEmpty(equipmentId) && ObjectUtil.isNotEmpty(oldInfo)){ + EquipmentInfo newInfo = equipmentInfoService.getById(equipmentId); + JSONArray res = CasicBeanUtil.fieldCompareDetail(oldInfo,newInfo,null); + if(ObjectUtil.isNotEmpty(res) && res.size() > 0){ + StringBuilder stringBuilder = new StringBuilder(); + for (int i = 0; i < res.size(); i++) { + JSONObject item = res.getJSONObject(i); + String filedName = equipmentInfoService.getFieldName(item.getString("field")); + if(StrUtil.isNotBlank(filedName)){ + String oldValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("oldVal")); + String newValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("newVal")); + String msg = String.format("字段名=%s,变更前=%s,变更后=%s;",filedName,oldValue,newValue); + stringBuilder.append(msg); + } + } + saveLog(equipmentId,stringBuilder.toString()); + } + } + } + + private void saveLog(Long equipmentId,String content){ + if(StrUtil.isNotBlank(content)){ + EquipmentModifyLog modifyLog = new EquipmentModifyLog(); + modifyLog.setEquipmentId(equipmentId); + modifyLog.setContent(content); + modifyLog.setOperateTime(new Date()); + AuthUser authUser = authService.getLoginUser(); + if(ObjectUtil.isNotEmpty(authUser)){ + modifyLog.setOperateUserId(authUser.getId()); + } + modifyLogService.save(modifyLog); + } + } + + public String generateKeyBySpEL(String spELString, JoinPoint joinPoint) throws Exception { + MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); + String[] paramNames = nameDiscoverer.getParameterNames(methodSignature.getMethod()); + SpelExpression expression = (SpelExpression) parser.parseExpression(spELString); + EvaluationContext context = new StandardEvaluationContext(); + Object[] args = joinPoint.getArgs(); + for (int i = 0; i < args.length; i++) { + context.setVariable(paramNames[i], args[i]); + } + return expression.getValue(context).toString(); + } +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java index c668e55..921a6a5 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java @@ -1,7 +1,15 @@ package com.casic.missiles.mapper.business; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.business.OrderListResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface BusinessOrderListResponseMapper extends BaseMapper { + + List listPage(@Param("page")Page page, + @Param("ew")QueryWrapper ew); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java index cde328c..219d6d8 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java @@ -41,9 +41,14 @@ List bizCertificateList(@Param("equipmentId") Long equipmentId); - List selectRemindListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindListPage(@Param("page") Page page, + @Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); - List selectRemindList(@Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindList(@Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java new file mode 100644 index 0000000..4b6f2f4 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-设备台账-设备变更记录 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface EquipmentModifyLogMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml index 18476de..a536f10 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml @@ -37,4 +37,24 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml new file mode 100644 index 0000000..e65b78e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, order_no, deliverer_id, deliverer, customer_id, customer_name, deliverer_tel, plan_deliver_time, require_over_time, customer_address, customer_phone, is_urgent, maintain_major, undertaker_id, measure_company, undertaker_name, undertake_time, receive_status, receive_illustrate, create_user_id, create_user_name, create_time, update_time + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml new file mode 100644 index 0000000..f1b61be --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, equipment_id, content, operate_user_id, operate_time + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java new file mode 100644 index 0000000..a65c4df --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java @@ -0,0 +1,36 @@ +package com.casic.missiles.controller.equipment; + +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 前端控制器 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Api(tags = "设备变更记录") +@RestController +@RequestMapping("/equipment") +@RequiredArgsConstructor +public class EquipmentModifyLogController { + + private final IEquipmentModifyLogService modifyLogService; + + @GetMapping("/modifyLogs") + public ReturnDTO> list(Long equipmentId){ + return ReturnUtil.success(modifyLogService.listByEquipment(equipmentId)); + } + +} diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java index 444318c..6b3af95 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java @@ -72,6 +72,15 @@ return businessOrderService.addOrder(businessOrder); } + @ApiOperation("任务单检查") + @PostMapping("/check") + public ReturnDTO orderChcek(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(businessOrderService.checkOrder(businessOrder)); + } + @ApiOperation("任务单更新") @PostMapping("/update") public ReturnDTO orderUpdate(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index 84ca460..352950c 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -36,6 +36,8 @@ template: calibration: "现场检定审批报告" environmental: "现场环境记录" + role: + operator: user # 操作手 logging: level.root: info diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java index 72514d8..2836b50 100644 --- a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java @@ -45,7 +45,7 @@ if(EquipmentStatusTypeEnum.DELAY.equals(equipmentInfo.getUsageStatus())){ QueryWrapper statusQueryWrapper = new QueryWrapper<>(); statusQueryWrapper.eq("equipment_id",equipmentInfo.getId()); - statusQueryWrapper.eq("", StatusApprovalTypeEnum.DELAY); + statusQueryWrapper.eq("approval_type", StatusApprovalTypeEnum.DELAY); statusQueryWrapper.orderByDesc("create_time"); statusQueryWrapper.last("limit 1"); EquipmentStatusApproval statusApproval = statusApprovalService.getOne(statusQueryWrapper); diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java new file mode 100644 index 0000000..f3aa066 --- /dev/null +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java @@ -0,0 +1,48 @@ +package com.casic.missiles.job.handler; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.model.status.EquipmentStatusApproval; +import com.casic.missiles.service.status.IEquipmentStatusApprovalService; +import com.casic.missiles.service.status.IEquipmentStatusLogService; +import com.xxl.job.core.context.XxlJobHelper; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +@Slf4j +@Component +@RequiredArgsConstructor +public class EquipmentStatusApprovalJobHandler { + + private final IEquipmentStatusApprovalService statusApprovalService; + + @XxlJob("equipmentStatusApprovalJobHandler") + public void equipmentStatusApprovalJobHandler(){ + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.HOUR_OF_DAY,0); + calendar.set(Calendar.MINUTE,0); + calendar.set(Calendar.SECOND,0); + Date startTime = calendar.getTime(); + + calendar.add(Calendar.DATE,1); + Date endTime = calendar.getTime(); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("approval_status", ApprovalStatusEnum.PASSED); + queryWrapper.ge("approval_time",startTime); + queryWrapper.lt("approval_time",endTime); + List list = statusApprovalService.list(queryWrapper); + for (EquipmentStatusApproval approval : list) { + statusApprovalService.updateStatusAndSaveLog(approval); + XxlJobHelper.log(String.format("update equipment %s status",approval.getEquipmentNo())); + } + } + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java new file mode 100644 index 0000000..032e2d4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java @@ -0,0 +1,14 @@ +package com.casic.missiles.dto.business; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class OrderCheckDTO { + + private String orderNo; + private String manufactureNo; + + private String equipmentName; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java index bdf1531..67899b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java @@ -1,9 +1,15 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @Description: * @Author: wangpeng @@ -18,12 +24,30 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; + @ApiModelProperty("使用部门(单个)") + private Long deptId; + + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty(value = "送检人", dataType = "String") private String deliverer; @ApiModelProperty(value = "创建人名字", dataType = "String") private String createUserName; + /** + * 检定(校准)单位(固定值) + */ + @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") + private String measureCompany; + + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "接收状态(包括接收相关状态和检测完成状态)", dataType = "String") + private String receiveStatus; + @ApiModelProperty(value = "创建开始时间", dataType = "String") private String createStartTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java index 3e4c232..f17b7a7 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.annotation.DictCodeField; @@ -30,6 +31,15 @@ private String customerName; /** + * 返回创建人的部门 + */ + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; + + /** * 检定(校准)单位(固定值) */ @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") @@ -52,4 +62,8 @@ @ApiModelProperty(value = "创建时间", dataType = "String") private String createTime; + + @ApiModelProperty(value = "计划送检时间", dataType = "String") + private String requireOverTime; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java index 83b45ac..08ba19e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java @@ -1,5 +1,7 @@ package com.casic.missiles.dto.equipment; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; @@ -82,4 +84,21 @@ @ApiModelProperty("计量标识") private String meterIdentify; + + @ApiModelProperty(value = "型号规格") + private String model; + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "所在单位id") + private Long companyId; + + @ApiModelProperty("所在单位名称") + private String companyName; + + @ApiModelProperty(value = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java index 6284acf..f313257 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java @@ -5,6 +5,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.List; + @Getter @Setter public class EquipmentCertificateQueryForm extends BaseQueryForm { @@ -29,4 +31,30 @@ @ApiModelProperty("证书有效期结束时间") private String certificateValidEnd; + + @ApiModelProperty("型号规格") + private String model; + + @ApiModelProperty("出厂编号") + private String manufactureNo; + + @ApiModelProperty("所在单位") + private Long companyId; + + @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; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java new file mode 100644 index 0000000..cdad130 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java @@ -0,0 +1,32 @@ +package com.casic.missiles.dto.equipment; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.model.equipment.EquipmentGroupInfo; +import com.casic.missiles.model.equipment.EquipmentGroupRelation; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class EquipmentGroupQueryForm { + + @ApiModelProperty("所在单位id") + private Long companyId; + + @ApiModelProperty("使用部门id") + private Long deptId; + + @ApiModelProperty(value = "分系统id") + private Long subSystemId; + + @ApiModelProperty("岗位ID") + private Long positionId; + + @ApiModelProperty("分组名称") + private String groupName; + + @ApiModelProperty("创建人id") + private String createUserId; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java index 43016e2..5773c4e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java @@ -50,4 +50,11 @@ @ApiModelProperty("备注") @ExcelIgnore private String remark; + + @ApiModelProperty("检定状态") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_REMIND_CHECK_STATUS) + private String checkStatus; + + @ApiModelProperty("检定状态名称") + private String checkStatusName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java index 663cd38..6a6f602 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java @@ -22,21 +22,46 @@ @ApiModelProperty("规格型号") private String model; + @ApiModelProperty("生产厂家") + private String manufacturer; + @ApiModelProperty("出厂编号") private String manufactureNo; @ApiModelProperty("设备类型(1受检设备;2特种设备)") private String equipmentType; + @ApiModelProperty("所在单位") + private Long companyId; + + @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; + @ApiModelProperty("使用状态") private String usageStatus; + @ApiModelProperty("使用状态列表") + private List usageStatusList; + + @ApiModelProperty("在用信息") + private String useSign; + @ApiModelProperty("证书有效期开始时间") private String certificateValidStart; @@ -52,4 +77,12 @@ @ApiModelProperty("参试任务结束时间") private String tastEndTime; + @ApiModelProperty("检定去向") + private String checkDestination; + + @ApiModelProperty("检定状态") + private String checkStatus; + + + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java new file mode 100644 index 0000000..e217254 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java @@ -0,0 +1,19 @@ +package com.casic.missiles.dto.equipment; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.Date; + +@Getter +@Setter +public class LimitInstructionUpdate { + + @ApiModelProperty("受检设备id") + private Long equipmentId; + + @ApiModelProperty("限用说明") + private String limitInstruction; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java index 068ffb6..8f1c6a0 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java @@ -56,6 +56,10 @@ @TableField("sample_model") private String sampleModel; + @ApiModelProperty("生产厂家") + @TableField(exist = false) + private String sampleManufacturer; + /** * 交接单id,避免重复交接(可为空) */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java new file mode 100644 index 0000000..a19c0a6 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java @@ -0,0 +1,72 @@ +package com.casic.missiles.model.equipment; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 受检设备-设备台账-设备变更记录 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Getter +@Setter +@TableName("eqpt_equipment_modify_log") +public class EquipmentModifyLog implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ApiModelProperty("主键") + @TableId("id") + private Long id; + + /** + * 设备id + */ + @ApiModelProperty("设备id") + @TableField("equipment_id") + private Long equipmentId; + + /** + * 变更内容 + */ + @ApiModelProperty("变更内容") + @TableField("content") + private String content; + + /** + * 变更人 + */ + @ApiModelProperty("变更人id") + @TableField("operate_user_id") + private Long operateUserId; + + @ApiModelProperty("变更人姓名") + @TableField(exist = false) + private String operateUserName; + /** + * 变更时间 + */ + @ApiModelProperty("变更时间") + @TableField("operate_time") + private Date operateTime; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java b/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java index 989211a..e8bc431 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java @@ -66,5 +66,9 @@ @ApiModelProperty("原因") private String reason; + @ApiModelProperty("状态维护申请id") + @TableField("status_approval_id") + private Long statusApprovalId; + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/annotation/EquipmentLog.java b/casic-metering-service/src/main/java/com/casic/missiles/annotation/EquipmentLog.java new file mode 100644 index 0000000..b28717e --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/annotation/EquipmentLog.java @@ -0,0 +1,20 @@ +package com.casic.missiles.annotation; + + +import java.lang.annotation.*; + +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface EquipmentLog { + + /** + * 设备ID + */ + String key(); + + /** + * 变更描述 + */ + String value() default ""; +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java new file mode 100644 index 0000000..b168cc1 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java @@ -0,0 +1,144 @@ +package com.casic.missiles.aop; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.casic.missiles.annotation.EquipmentLog; +import com.casic.missiles.core.application.service.AbstractAuthService; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentInfoService; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import com.casic.missiles.utils.CasicBeanUtil; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.Signature; +import org.aspectj.lang.annotation.After; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.aspectj.lang.annotation.Pointcut; +import org.aspectj.lang.reflect.MethodSignature; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.DefaultParameterNameDiscoverer; +import org.springframework.expression.EvaluationContext; +import org.springframework.expression.spel.standard.SpelExpression; +import org.springframework.expression.spel.standard.SpelExpressionParser; +import org.springframework.expression.spel.support.StandardEvaluationContext; +import org.springframework.scheduling.annotation.Async; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.stereotype.Component; + +import java.beans.Expression; +import java.lang.reflect.Method; +import java.util.Date; + +@Aspect +@Component +@EnableAsync +public class EquipmentLogAop { + + @Autowired + private IEquipmentInfoService equipmentInfoService; + @Autowired + private IEquipmentModifyLogService modifyLogService; + @Autowired + private AbstractAuthService authService; + + + /** + * 用于SpEL表达式解析. + */ + private final SpelExpressionParser parser = new SpelExpressionParser(); + /** + * 用于获取方法参数定义名字. + */ + private final DefaultParameterNameDiscoverer nameDiscoverer = new DefaultParameterNameDiscoverer(); + + private Long equipmentId; + private EquipmentInfo oldInfo; + + + /** + * 注解的位置 + */ + @Pointcut("@annotation(com.casic.missiles.annotation.EquipmentLog)") + public void logPointCut() {} + + @Before(value="logPointCut()") + public void before(JoinPoint joinPoint) throws Exception { + equipmentId = getEquipmentId(joinPoint); + if(ObjectUtil.isNotEmpty(equipmentId)){ + oldInfo = equipmentInfoService.getById(equipmentId); + }else { + oldInfo = null; + } + } + + private Long getEquipmentId(JoinPoint joinPoint) throws Exception { + //1.1获取目标对象对应的字节码对象 + Class targetCls= joinPoint.getTarget().getClass(); + //1.2获取目标方法对象 + //1.2.1 获取方法签名信息从而获取方法名和参数类型 + Signature signature= joinPoint.getSignature(); + //1.2.1.1将方法签名强转成MethodSignature类型,方便调用 + MethodSignature ms= (MethodSignature)signature; + //1.2.2通过字节码对象以及方法签名获取目标方法对象 + Method targetMethod=targetCls.getDeclaredMethod(ms.getName(),ms.getParameterTypes()); + //1.3获取目标方法对象上注解中的属性值 + //1.2.3 获取方法上的自定义requiredLog注解 + EquipmentLog equipmentLog=targetMethod.getAnnotation(EquipmentLog.class); + String val = generateKeyBySpEL(equipmentLog.key(), joinPoint); + return ObjectUtil.isNotEmpty(val) ? Long.valueOf(val) : null; + } + + @After(value="logPointCut()") + @Async + public void after(JoinPoint joinPoint){ + if(ObjectUtil.isNotEmpty(equipmentId) && ObjectUtil.isNotEmpty(oldInfo)){ + EquipmentInfo newInfo = equipmentInfoService.getById(equipmentId); + JSONArray res = CasicBeanUtil.fieldCompareDetail(oldInfo,newInfo,null); + if(ObjectUtil.isNotEmpty(res) && res.size() > 0){ + StringBuilder stringBuilder = new StringBuilder(); + for (int i = 0; i < res.size(); i++) { + JSONObject item = res.getJSONObject(i); + String filedName = equipmentInfoService.getFieldName(item.getString("field")); + if(StrUtil.isNotBlank(filedName)){ + String oldValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("oldVal")); + String newValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("newVal")); + String msg = String.format("字段名=%s,变更前=%s,变更后=%s;",filedName,oldValue,newValue); + stringBuilder.append(msg); + } + } + saveLog(equipmentId,stringBuilder.toString()); + } + } + } + + private void saveLog(Long equipmentId,String content){ + if(StrUtil.isNotBlank(content)){ + EquipmentModifyLog modifyLog = new EquipmentModifyLog(); + modifyLog.setEquipmentId(equipmentId); + modifyLog.setContent(content); + modifyLog.setOperateTime(new Date()); + AuthUser authUser = authService.getLoginUser(); + if(ObjectUtil.isNotEmpty(authUser)){ + modifyLog.setOperateUserId(authUser.getId()); + } + modifyLogService.save(modifyLog); + } + } + + public String generateKeyBySpEL(String spELString, JoinPoint joinPoint) throws Exception { + MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); + String[] paramNames = nameDiscoverer.getParameterNames(methodSignature.getMethod()); + SpelExpression expression = (SpelExpression) parser.parseExpression(spELString); + EvaluationContext context = new StandardEvaluationContext(); + Object[] args = joinPoint.getArgs(); + for (int i = 0; i < args.length; i++) { + context.setVariable(paramNames[i], args[i]); + } + return expression.getValue(context).toString(); + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java index 074d0a1..596ab06 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java @@ -28,5 +28,7 @@ ReturnDTO updateStatusById(Long id, String alreadyReceived); + String checkOrder(BizBusinessOrderInfo businessOrder); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java index c668e55..921a6a5 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java @@ -1,7 +1,15 @@ package com.casic.missiles.mapper.business; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.business.OrderListResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface BusinessOrderListResponseMapper extends BaseMapper { + + List listPage(@Param("page")Page page, + @Param("ew")QueryWrapper ew); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java index cde328c..219d6d8 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java @@ -41,9 +41,14 @@ List bizCertificateList(@Param("equipmentId") Long equipmentId); - List selectRemindListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindListPage(@Param("page") Page page, + @Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); - List selectRemindList(@Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindList(@Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java new file mode 100644 index 0000000..4b6f2f4 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-设备台账-设备变更记录 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface EquipmentModifyLogMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml index 18476de..a536f10 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml @@ -37,4 +37,24 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml new file mode 100644 index 0000000..e65b78e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, order_no, deliverer_id, deliverer, customer_id, customer_name, deliverer_tel, plan_deliver_time, require_over_time, customer_address, customer_phone, is_urgent, maintain_major, undertaker_id, measure_company, undertaker_name, undertake_time, receive_status, receive_illustrate, create_user_id, create_user_name, create_time, update_time + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml new file mode 100644 index 0000000..f1b61be --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, equipment_id, content, operate_user_id, operate_time + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java new file mode 100644 index 0000000..a65c4df --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java @@ -0,0 +1,36 @@ +package com.casic.missiles.controller.equipment; + +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 前端控制器 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Api(tags = "设备变更记录") +@RestController +@RequestMapping("/equipment") +@RequiredArgsConstructor +public class EquipmentModifyLogController { + + private final IEquipmentModifyLogService modifyLogService; + + @GetMapping("/modifyLogs") + public ReturnDTO> list(Long equipmentId){ + return ReturnUtil.success(modifyLogService.listByEquipment(equipmentId)); + } + +} diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java index 444318c..6b3af95 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java @@ -72,6 +72,15 @@ return businessOrderService.addOrder(businessOrder); } + @ApiOperation("任务单检查") + @PostMapping("/check") + public ReturnDTO orderChcek(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(businessOrderService.checkOrder(businessOrder)); + } + @ApiOperation("任务单更新") @PostMapping("/update") public ReturnDTO orderUpdate(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index 84ca460..352950c 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -36,6 +36,8 @@ template: calibration: "现场检定审批报告" environmental: "现场环境记录" + role: + operator: user # 操作手 logging: level.root: info diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java index 72514d8..2836b50 100644 --- a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java @@ -45,7 +45,7 @@ if(EquipmentStatusTypeEnum.DELAY.equals(equipmentInfo.getUsageStatus())){ QueryWrapper statusQueryWrapper = new QueryWrapper<>(); statusQueryWrapper.eq("equipment_id",equipmentInfo.getId()); - statusQueryWrapper.eq("", StatusApprovalTypeEnum.DELAY); + statusQueryWrapper.eq("approval_type", StatusApprovalTypeEnum.DELAY); statusQueryWrapper.orderByDesc("create_time"); statusQueryWrapper.last("limit 1"); EquipmentStatusApproval statusApproval = statusApprovalService.getOne(statusQueryWrapper); diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java new file mode 100644 index 0000000..f3aa066 --- /dev/null +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java @@ -0,0 +1,48 @@ +package com.casic.missiles.job.handler; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.model.status.EquipmentStatusApproval; +import com.casic.missiles.service.status.IEquipmentStatusApprovalService; +import com.casic.missiles.service.status.IEquipmentStatusLogService; +import com.xxl.job.core.context.XxlJobHelper; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +@Slf4j +@Component +@RequiredArgsConstructor +public class EquipmentStatusApprovalJobHandler { + + private final IEquipmentStatusApprovalService statusApprovalService; + + @XxlJob("equipmentStatusApprovalJobHandler") + public void equipmentStatusApprovalJobHandler(){ + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.HOUR_OF_DAY,0); + calendar.set(Calendar.MINUTE,0); + calendar.set(Calendar.SECOND,0); + Date startTime = calendar.getTime(); + + calendar.add(Calendar.DATE,1); + Date endTime = calendar.getTime(); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("approval_status", ApprovalStatusEnum.PASSED); + queryWrapper.ge("approval_time",startTime); + queryWrapper.lt("approval_time",endTime); + List list = statusApprovalService.list(queryWrapper); + for (EquipmentStatusApproval approval : list) { + statusApprovalService.updateStatusAndSaveLog(approval); + XxlJobHelper.log(String.format("update equipment %s status",approval.getEquipmentNo())); + } + } + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java new file mode 100644 index 0000000..032e2d4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java @@ -0,0 +1,14 @@ +package com.casic.missiles.dto.business; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class OrderCheckDTO { + + private String orderNo; + private String manufactureNo; + + private String equipmentName; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java index bdf1531..67899b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java @@ -1,9 +1,15 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @Description: * @Author: wangpeng @@ -18,12 +24,30 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; + @ApiModelProperty("使用部门(单个)") + private Long deptId; + + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty(value = "送检人", dataType = "String") private String deliverer; @ApiModelProperty(value = "创建人名字", dataType = "String") private String createUserName; + /** + * 检定(校准)单位(固定值) + */ + @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") + private String measureCompany; + + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "接收状态(包括接收相关状态和检测完成状态)", dataType = "String") + private String receiveStatus; + @ApiModelProperty(value = "创建开始时间", dataType = "String") private String createStartTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java index 3e4c232..f17b7a7 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.annotation.DictCodeField; @@ -30,6 +31,15 @@ private String customerName; /** + * 返回创建人的部门 + */ + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; + + /** * 检定(校准)单位(固定值) */ @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") @@ -52,4 +62,8 @@ @ApiModelProperty(value = "创建时间", dataType = "String") private String createTime; + + @ApiModelProperty(value = "计划送检时间", dataType = "String") + private String requireOverTime; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java index 83b45ac..08ba19e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java @@ -1,5 +1,7 @@ package com.casic.missiles.dto.equipment; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; @@ -82,4 +84,21 @@ @ApiModelProperty("计量标识") private String meterIdentify; + + @ApiModelProperty(value = "型号规格") + private String model; + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "所在单位id") + private Long companyId; + + @ApiModelProperty("所在单位名称") + private String companyName; + + @ApiModelProperty(value = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java index 6284acf..f313257 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java @@ -5,6 +5,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.List; + @Getter @Setter public class EquipmentCertificateQueryForm extends BaseQueryForm { @@ -29,4 +31,30 @@ @ApiModelProperty("证书有效期结束时间") private String certificateValidEnd; + + @ApiModelProperty("型号规格") + private String model; + + @ApiModelProperty("出厂编号") + private String manufactureNo; + + @ApiModelProperty("所在单位") + private Long companyId; + + @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; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java new file mode 100644 index 0000000..cdad130 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java @@ -0,0 +1,32 @@ +package com.casic.missiles.dto.equipment; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.model.equipment.EquipmentGroupInfo; +import com.casic.missiles.model.equipment.EquipmentGroupRelation; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class EquipmentGroupQueryForm { + + @ApiModelProperty("所在单位id") + private Long companyId; + + @ApiModelProperty("使用部门id") + private Long deptId; + + @ApiModelProperty(value = "分系统id") + private Long subSystemId; + + @ApiModelProperty("岗位ID") + private Long positionId; + + @ApiModelProperty("分组名称") + private String groupName; + + @ApiModelProperty("创建人id") + private String createUserId; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java index 43016e2..5773c4e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java @@ -50,4 +50,11 @@ @ApiModelProperty("备注") @ExcelIgnore private String remark; + + @ApiModelProperty("检定状态") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_REMIND_CHECK_STATUS) + private String checkStatus; + + @ApiModelProperty("检定状态名称") + private String checkStatusName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java index 663cd38..6a6f602 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java @@ -22,21 +22,46 @@ @ApiModelProperty("规格型号") private String model; + @ApiModelProperty("生产厂家") + private String manufacturer; + @ApiModelProperty("出厂编号") private String manufactureNo; @ApiModelProperty("设备类型(1受检设备;2特种设备)") private String equipmentType; + @ApiModelProperty("所在单位") + private Long companyId; + + @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; + @ApiModelProperty("使用状态") private String usageStatus; + @ApiModelProperty("使用状态列表") + private List usageStatusList; + + @ApiModelProperty("在用信息") + private String useSign; + @ApiModelProperty("证书有效期开始时间") private String certificateValidStart; @@ -52,4 +77,12 @@ @ApiModelProperty("参试任务结束时间") private String tastEndTime; + @ApiModelProperty("检定去向") + private String checkDestination; + + @ApiModelProperty("检定状态") + private String checkStatus; + + + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java new file mode 100644 index 0000000..e217254 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java @@ -0,0 +1,19 @@ +package com.casic.missiles.dto.equipment; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.Date; + +@Getter +@Setter +public class LimitInstructionUpdate { + + @ApiModelProperty("受检设备id") + private Long equipmentId; + + @ApiModelProperty("限用说明") + private String limitInstruction; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java index 068ffb6..8f1c6a0 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java @@ -56,6 +56,10 @@ @TableField("sample_model") private String sampleModel; + @ApiModelProperty("生产厂家") + @TableField(exist = false) + private String sampleManufacturer; + /** * 交接单id,避免重复交接(可为空) */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java new file mode 100644 index 0000000..a19c0a6 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java @@ -0,0 +1,72 @@ +package com.casic.missiles.model.equipment; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 受检设备-设备台账-设备变更记录 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Getter +@Setter +@TableName("eqpt_equipment_modify_log") +public class EquipmentModifyLog implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ApiModelProperty("主键") + @TableId("id") + private Long id; + + /** + * 设备id + */ + @ApiModelProperty("设备id") + @TableField("equipment_id") + private Long equipmentId; + + /** + * 变更内容 + */ + @ApiModelProperty("变更内容") + @TableField("content") + private String content; + + /** + * 变更人 + */ + @ApiModelProperty("变更人id") + @TableField("operate_user_id") + private Long operateUserId; + + @ApiModelProperty("变更人姓名") + @TableField(exist = false) + private String operateUserName; + /** + * 变更时间 + */ + @ApiModelProperty("变更时间") + @TableField("operate_time") + private Date operateTime; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java b/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java index 989211a..e8bc431 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java @@ -66,5 +66,9 @@ @ApiModelProperty("原因") private String reason; + @ApiModelProperty("状态维护申请id") + @TableField("status_approval_id") + private Long statusApprovalId; + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/annotation/EquipmentLog.java b/casic-metering-service/src/main/java/com/casic/missiles/annotation/EquipmentLog.java new file mode 100644 index 0000000..b28717e --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/annotation/EquipmentLog.java @@ -0,0 +1,20 @@ +package com.casic.missiles.annotation; + + +import java.lang.annotation.*; + +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface EquipmentLog { + + /** + * 设备ID + */ + String key(); + + /** + * 变更描述 + */ + String value() default ""; +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java new file mode 100644 index 0000000..b168cc1 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java @@ -0,0 +1,144 @@ +package com.casic.missiles.aop; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.casic.missiles.annotation.EquipmentLog; +import com.casic.missiles.core.application.service.AbstractAuthService; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentInfoService; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import com.casic.missiles.utils.CasicBeanUtil; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.Signature; +import org.aspectj.lang.annotation.After; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.aspectj.lang.annotation.Pointcut; +import org.aspectj.lang.reflect.MethodSignature; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.DefaultParameterNameDiscoverer; +import org.springframework.expression.EvaluationContext; +import org.springframework.expression.spel.standard.SpelExpression; +import org.springframework.expression.spel.standard.SpelExpressionParser; +import org.springframework.expression.spel.support.StandardEvaluationContext; +import org.springframework.scheduling.annotation.Async; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.stereotype.Component; + +import java.beans.Expression; +import java.lang.reflect.Method; +import java.util.Date; + +@Aspect +@Component +@EnableAsync +public class EquipmentLogAop { + + @Autowired + private IEquipmentInfoService equipmentInfoService; + @Autowired + private IEquipmentModifyLogService modifyLogService; + @Autowired + private AbstractAuthService authService; + + + /** + * 用于SpEL表达式解析. + */ + private final SpelExpressionParser parser = new SpelExpressionParser(); + /** + * 用于获取方法参数定义名字. + */ + private final DefaultParameterNameDiscoverer nameDiscoverer = new DefaultParameterNameDiscoverer(); + + private Long equipmentId; + private EquipmentInfo oldInfo; + + + /** + * 注解的位置 + */ + @Pointcut("@annotation(com.casic.missiles.annotation.EquipmentLog)") + public void logPointCut() {} + + @Before(value="logPointCut()") + public void before(JoinPoint joinPoint) throws Exception { + equipmentId = getEquipmentId(joinPoint); + if(ObjectUtil.isNotEmpty(equipmentId)){ + oldInfo = equipmentInfoService.getById(equipmentId); + }else { + oldInfo = null; + } + } + + private Long getEquipmentId(JoinPoint joinPoint) throws Exception { + //1.1获取目标对象对应的字节码对象 + Class targetCls= joinPoint.getTarget().getClass(); + //1.2获取目标方法对象 + //1.2.1 获取方法签名信息从而获取方法名和参数类型 + Signature signature= joinPoint.getSignature(); + //1.2.1.1将方法签名强转成MethodSignature类型,方便调用 + MethodSignature ms= (MethodSignature)signature; + //1.2.2通过字节码对象以及方法签名获取目标方法对象 + Method targetMethod=targetCls.getDeclaredMethod(ms.getName(),ms.getParameterTypes()); + //1.3获取目标方法对象上注解中的属性值 + //1.2.3 获取方法上的自定义requiredLog注解 + EquipmentLog equipmentLog=targetMethod.getAnnotation(EquipmentLog.class); + String val = generateKeyBySpEL(equipmentLog.key(), joinPoint); + return ObjectUtil.isNotEmpty(val) ? Long.valueOf(val) : null; + } + + @After(value="logPointCut()") + @Async + public void after(JoinPoint joinPoint){ + if(ObjectUtil.isNotEmpty(equipmentId) && ObjectUtil.isNotEmpty(oldInfo)){ + EquipmentInfo newInfo = equipmentInfoService.getById(equipmentId); + JSONArray res = CasicBeanUtil.fieldCompareDetail(oldInfo,newInfo,null); + if(ObjectUtil.isNotEmpty(res) && res.size() > 0){ + StringBuilder stringBuilder = new StringBuilder(); + for (int i = 0; i < res.size(); i++) { + JSONObject item = res.getJSONObject(i); + String filedName = equipmentInfoService.getFieldName(item.getString("field")); + if(StrUtil.isNotBlank(filedName)){ + String oldValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("oldVal")); + String newValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("newVal")); + String msg = String.format("字段名=%s,变更前=%s,变更后=%s;",filedName,oldValue,newValue); + stringBuilder.append(msg); + } + } + saveLog(equipmentId,stringBuilder.toString()); + } + } + } + + private void saveLog(Long equipmentId,String content){ + if(StrUtil.isNotBlank(content)){ + EquipmentModifyLog modifyLog = new EquipmentModifyLog(); + modifyLog.setEquipmentId(equipmentId); + modifyLog.setContent(content); + modifyLog.setOperateTime(new Date()); + AuthUser authUser = authService.getLoginUser(); + if(ObjectUtil.isNotEmpty(authUser)){ + modifyLog.setOperateUserId(authUser.getId()); + } + modifyLogService.save(modifyLog); + } + } + + public String generateKeyBySpEL(String spELString, JoinPoint joinPoint) throws Exception { + MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); + String[] paramNames = nameDiscoverer.getParameterNames(methodSignature.getMethod()); + SpelExpression expression = (SpelExpression) parser.parseExpression(spELString); + EvaluationContext context = new StandardEvaluationContext(); + Object[] args = joinPoint.getArgs(); + for (int i = 0; i < args.length; i++) { + context.setVariable(paramNames[i], args[i]); + } + return expression.getValue(context).toString(); + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java index 074d0a1..596ab06 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java @@ -28,5 +28,7 @@ ReturnDTO updateStatusById(Long id, String alreadyReceived); + String checkOrder(BizBusinessOrderInfo businessOrder); + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModifyLogService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModifyLogService.java new file mode 100644 index 0000000..dda4137 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModifyLogService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.service.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 服务类 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface IEquipmentModifyLogService extends IService { + + List listByEquipment(Long equipmentId); + + +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java index c668e55..921a6a5 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java @@ -1,7 +1,15 @@ package com.casic.missiles.mapper.business; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.business.OrderListResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface BusinessOrderListResponseMapper extends BaseMapper { + + List listPage(@Param("page")Page page, + @Param("ew")QueryWrapper ew); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java index cde328c..219d6d8 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java @@ -41,9 +41,14 @@ List bizCertificateList(@Param("equipmentId") Long equipmentId); - List selectRemindListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindListPage(@Param("page") Page page, + @Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); - List selectRemindList(@Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindList(@Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java new file mode 100644 index 0000000..4b6f2f4 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-设备台账-设备变更记录 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface EquipmentModifyLogMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml index 18476de..a536f10 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml @@ -37,4 +37,24 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml new file mode 100644 index 0000000..e65b78e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, order_no, deliverer_id, deliverer, customer_id, customer_name, deliverer_tel, plan_deliver_time, require_over_time, customer_address, customer_phone, is_urgent, maintain_major, undertaker_id, measure_company, undertaker_name, undertake_time, receive_status, receive_illustrate, create_user_id, create_user_name, create_time, update_time + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml new file mode 100644 index 0000000..f1b61be --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, equipment_id, content, operate_user_id, operate_time + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java new file mode 100644 index 0000000..a65c4df --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java @@ -0,0 +1,36 @@ +package com.casic.missiles.controller.equipment; + +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 前端控制器 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Api(tags = "设备变更记录") +@RestController +@RequestMapping("/equipment") +@RequiredArgsConstructor +public class EquipmentModifyLogController { + + private final IEquipmentModifyLogService modifyLogService; + + @GetMapping("/modifyLogs") + public ReturnDTO> list(Long equipmentId){ + return ReturnUtil.success(modifyLogService.listByEquipment(equipmentId)); + } + +} diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java index 444318c..6b3af95 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java @@ -72,6 +72,15 @@ return businessOrderService.addOrder(businessOrder); } + @ApiOperation("任务单检查") + @PostMapping("/check") + public ReturnDTO orderChcek(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(businessOrderService.checkOrder(businessOrder)); + } + @ApiOperation("任务单更新") @PostMapping("/update") public ReturnDTO orderUpdate(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index 84ca460..352950c 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -36,6 +36,8 @@ template: calibration: "现场检定审批报告" environmental: "现场环境记录" + role: + operator: user # 操作手 logging: level.root: info diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java index 72514d8..2836b50 100644 --- a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java @@ -45,7 +45,7 @@ if(EquipmentStatusTypeEnum.DELAY.equals(equipmentInfo.getUsageStatus())){ QueryWrapper statusQueryWrapper = new QueryWrapper<>(); statusQueryWrapper.eq("equipment_id",equipmentInfo.getId()); - statusQueryWrapper.eq("", StatusApprovalTypeEnum.DELAY); + statusQueryWrapper.eq("approval_type", StatusApprovalTypeEnum.DELAY); statusQueryWrapper.orderByDesc("create_time"); statusQueryWrapper.last("limit 1"); EquipmentStatusApproval statusApproval = statusApprovalService.getOne(statusQueryWrapper); diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java new file mode 100644 index 0000000..f3aa066 --- /dev/null +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java @@ -0,0 +1,48 @@ +package com.casic.missiles.job.handler; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.model.status.EquipmentStatusApproval; +import com.casic.missiles.service.status.IEquipmentStatusApprovalService; +import com.casic.missiles.service.status.IEquipmentStatusLogService; +import com.xxl.job.core.context.XxlJobHelper; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +@Slf4j +@Component +@RequiredArgsConstructor +public class EquipmentStatusApprovalJobHandler { + + private final IEquipmentStatusApprovalService statusApprovalService; + + @XxlJob("equipmentStatusApprovalJobHandler") + public void equipmentStatusApprovalJobHandler(){ + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.HOUR_OF_DAY,0); + calendar.set(Calendar.MINUTE,0); + calendar.set(Calendar.SECOND,0); + Date startTime = calendar.getTime(); + + calendar.add(Calendar.DATE,1); + Date endTime = calendar.getTime(); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("approval_status", ApprovalStatusEnum.PASSED); + queryWrapper.ge("approval_time",startTime); + queryWrapper.lt("approval_time",endTime); + List list = statusApprovalService.list(queryWrapper); + for (EquipmentStatusApproval approval : list) { + statusApprovalService.updateStatusAndSaveLog(approval); + XxlJobHelper.log(String.format("update equipment %s status",approval.getEquipmentNo())); + } + } + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java new file mode 100644 index 0000000..032e2d4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java @@ -0,0 +1,14 @@ +package com.casic.missiles.dto.business; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class OrderCheckDTO { + + private String orderNo; + private String manufactureNo; + + private String equipmentName; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java index bdf1531..67899b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java @@ -1,9 +1,15 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @Description: * @Author: wangpeng @@ -18,12 +24,30 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; + @ApiModelProperty("使用部门(单个)") + private Long deptId; + + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty(value = "送检人", dataType = "String") private String deliverer; @ApiModelProperty(value = "创建人名字", dataType = "String") private String createUserName; + /** + * 检定(校准)单位(固定值) + */ + @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") + private String measureCompany; + + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "接收状态(包括接收相关状态和检测完成状态)", dataType = "String") + private String receiveStatus; + @ApiModelProperty(value = "创建开始时间", dataType = "String") private String createStartTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java index 3e4c232..f17b7a7 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.annotation.DictCodeField; @@ -30,6 +31,15 @@ private String customerName; /** + * 返回创建人的部门 + */ + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; + + /** * 检定(校准)单位(固定值) */ @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") @@ -52,4 +62,8 @@ @ApiModelProperty(value = "创建时间", dataType = "String") private String createTime; + + @ApiModelProperty(value = "计划送检时间", dataType = "String") + private String requireOverTime; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java index 83b45ac..08ba19e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java @@ -1,5 +1,7 @@ package com.casic.missiles.dto.equipment; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; @@ -82,4 +84,21 @@ @ApiModelProperty("计量标识") private String meterIdentify; + + @ApiModelProperty(value = "型号规格") + private String model; + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "所在单位id") + private Long companyId; + + @ApiModelProperty("所在单位名称") + private String companyName; + + @ApiModelProperty(value = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java index 6284acf..f313257 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java @@ -5,6 +5,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.List; + @Getter @Setter public class EquipmentCertificateQueryForm extends BaseQueryForm { @@ -29,4 +31,30 @@ @ApiModelProperty("证书有效期结束时间") private String certificateValidEnd; + + @ApiModelProperty("型号规格") + private String model; + + @ApiModelProperty("出厂编号") + private String manufactureNo; + + @ApiModelProperty("所在单位") + private Long companyId; + + @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; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java new file mode 100644 index 0000000..cdad130 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java @@ -0,0 +1,32 @@ +package com.casic.missiles.dto.equipment; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.model.equipment.EquipmentGroupInfo; +import com.casic.missiles.model.equipment.EquipmentGroupRelation; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class EquipmentGroupQueryForm { + + @ApiModelProperty("所在单位id") + private Long companyId; + + @ApiModelProperty("使用部门id") + private Long deptId; + + @ApiModelProperty(value = "分系统id") + private Long subSystemId; + + @ApiModelProperty("岗位ID") + private Long positionId; + + @ApiModelProperty("分组名称") + private String groupName; + + @ApiModelProperty("创建人id") + private String createUserId; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java index 43016e2..5773c4e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java @@ -50,4 +50,11 @@ @ApiModelProperty("备注") @ExcelIgnore private String remark; + + @ApiModelProperty("检定状态") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_REMIND_CHECK_STATUS) + private String checkStatus; + + @ApiModelProperty("检定状态名称") + private String checkStatusName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java index 663cd38..6a6f602 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java @@ -22,21 +22,46 @@ @ApiModelProperty("规格型号") private String model; + @ApiModelProperty("生产厂家") + private String manufacturer; + @ApiModelProperty("出厂编号") private String manufactureNo; @ApiModelProperty("设备类型(1受检设备;2特种设备)") private String equipmentType; + @ApiModelProperty("所在单位") + private Long companyId; + + @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; + @ApiModelProperty("使用状态") private String usageStatus; + @ApiModelProperty("使用状态列表") + private List usageStatusList; + + @ApiModelProperty("在用信息") + private String useSign; + @ApiModelProperty("证书有效期开始时间") private String certificateValidStart; @@ -52,4 +77,12 @@ @ApiModelProperty("参试任务结束时间") private String tastEndTime; + @ApiModelProperty("检定去向") + private String checkDestination; + + @ApiModelProperty("检定状态") + private String checkStatus; + + + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java new file mode 100644 index 0000000..e217254 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java @@ -0,0 +1,19 @@ +package com.casic.missiles.dto.equipment; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.Date; + +@Getter +@Setter +public class LimitInstructionUpdate { + + @ApiModelProperty("受检设备id") + private Long equipmentId; + + @ApiModelProperty("限用说明") + private String limitInstruction; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java index 068ffb6..8f1c6a0 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java @@ -56,6 +56,10 @@ @TableField("sample_model") private String sampleModel; + @ApiModelProperty("生产厂家") + @TableField(exist = false) + private String sampleManufacturer; + /** * 交接单id,避免重复交接(可为空) */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java new file mode 100644 index 0000000..a19c0a6 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java @@ -0,0 +1,72 @@ +package com.casic.missiles.model.equipment; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 受检设备-设备台账-设备变更记录 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Getter +@Setter +@TableName("eqpt_equipment_modify_log") +public class EquipmentModifyLog implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ApiModelProperty("主键") + @TableId("id") + private Long id; + + /** + * 设备id + */ + @ApiModelProperty("设备id") + @TableField("equipment_id") + private Long equipmentId; + + /** + * 变更内容 + */ + @ApiModelProperty("变更内容") + @TableField("content") + private String content; + + /** + * 变更人 + */ + @ApiModelProperty("变更人id") + @TableField("operate_user_id") + private Long operateUserId; + + @ApiModelProperty("变更人姓名") + @TableField(exist = false) + private String operateUserName; + /** + * 变更时间 + */ + @ApiModelProperty("变更时间") + @TableField("operate_time") + private Date operateTime; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java b/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java index 989211a..e8bc431 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java @@ -66,5 +66,9 @@ @ApiModelProperty("原因") private String reason; + @ApiModelProperty("状态维护申请id") + @TableField("status_approval_id") + private Long statusApprovalId; + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/annotation/EquipmentLog.java b/casic-metering-service/src/main/java/com/casic/missiles/annotation/EquipmentLog.java new file mode 100644 index 0000000..b28717e --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/annotation/EquipmentLog.java @@ -0,0 +1,20 @@ +package com.casic.missiles.annotation; + + +import java.lang.annotation.*; + +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface EquipmentLog { + + /** + * 设备ID + */ + String key(); + + /** + * 变更描述 + */ + String value() default ""; +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java new file mode 100644 index 0000000..b168cc1 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java @@ -0,0 +1,144 @@ +package com.casic.missiles.aop; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.casic.missiles.annotation.EquipmentLog; +import com.casic.missiles.core.application.service.AbstractAuthService; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentInfoService; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import com.casic.missiles.utils.CasicBeanUtil; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.Signature; +import org.aspectj.lang.annotation.After; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.aspectj.lang.annotation.Pointcut; +import org.aspectj.lang.reflect.MethodSignature; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.DefaultParameterNameDiscoverer; +import org.springframework.expression.EvaluationContext; +import org.springframework.expression.spel.standard.SpelExpression; +import org.springframework.expression.spel.standard.SpelExpressionParser; +import org.springframework.expression.spel.support.StandardEvaluationContext; +import org.springframework.scheduling.annotation.Async; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.stereotype.Component; + +import java.beans.Expression; +import java.lang.reflect.Method; +import java.util.Date; + +@Aspect +@Component +@EnableAsync +public class EquipmentLogAop { + + @Autowired + private IEquipmentInfoService equipmentInfoService; + @Autowired + private IEquipmentModifyLogService modifyLogService; + @Autowired + private AbstractAuthService authService; + + + /** + * 用于SpEL表达式解析. + */ + private final SpelExpressionParser parser = new SpelExpressionParser(); + /** + * 用于获取方法参数定义名字. + */ + private final DefaultParameterNameDiscoverer nameDiscoverer = new DefaultParameterNameDiscoverer(); + + private Long equipmentId; + private EquipmentInfo oldInfo; + + + /** + * 注解的位置 + */ + @Pointcut("@annotation(com.casic.missiles.annotation.EquipmentLog)") + public void logPointCut() {} + + @Before(value="logPointCut()") + public void before(JoinPoint joinPoint) throws Exception { + equipmentId = getEquipmentId(joinPoint); + if(ObjectUtil.isNotEmpty(equipmentId)){ + oldInfo = equipmentInfoService.getById(equipmentId); + }else { + oldInfo = null; + } + } + + private Long getEquipmentId(JoinPoint joinPoint) throws Exception { + //1.1获取目标对象对应的字节码对象 + Class targetCls= joinPoint.getTarget().getClass(); + //1.2获取目标方法对象 + //1.2.1 获取方法签名信息从而获取方法名和参数类型 + Signature signature= joinPoint.getSignature(); + //1.2.1.1将方法签名强转成MethodSignature类型,方便调用 + MethodSignature ms= (MethodSignature)signature; + //1.2.2通过字节码对象以及方法签名获取目标方法对象 + Method targetMethod=targetCls.getDeclaredMethod(ms.getName(),ms.getParameterTypes()); + //1.3获取目标方法对象上注解中的属性值 + //1.2.3 获取方法上的自定义requiredLog注解 + EquipmentLog equipmentLog=targetMethod.getAnnotation(EquipmentLog.class); + String val = generateKeyBySpEL(equipmentLog.key(), joinPoint); + return ObjectUtil.isNotEmpty(val) ? Long.valueOf(val) : null; + } + + @After(value="logPointCut()") + @Async + public void after(JoinPoint joinPoint){ + if(ObjectUtil.isNotEmpty(equipmentId) && ObjectUtil.isNotEmpty(oldInfo)){ + EquipmentInfo newInfo = equipmentInfoService.getById(equipmentId); + JSONArray res = CasicBeanUtil.fieldCompareDetail(oldInfo,newInfo,null); + if(ObjectUtil.isNotEmpty(res) && res.size() > 0){ + StringBuilder stringBuilder = new StringBuilder(); + for (int i = 0; i < res.size(); i++) { + JSONObject item = res.getJSONObject(i); + String filedName = equipmentInfoService.getFieldName(item.getString("field")); + if(StrUtil.isNotBlank(filedName)){ + String oldValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("oldVal")); + String newValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("newVal")); + String msg = String.format("字段名=%s,变更前=%s,变更后=%s;",filedName,oldValue,newValue); + stringBuilder.append(msg); + } + } + saveLog(equipmentId,stringBuilder.toString()); + } + } + } + + private void saveLog(Long equipmentId,String content){ + if(StrUtil.isNotBlank(content)){ + EquipmentModifyLog modifyLog = new EquipmentModifyLog(); + modifyLog.setEquipmentId(equipmentId); + modifyLog.setContent(content); + modifyLog.setOperateTime(new Date()); + AuthUser authUser = authService.getLoginUser(); + if(ObjectUtil.isNotEmpty(authUser)){ + modifyLog.setOperateUserId(authUser.getId()); + } + modifyLogService.save(modifyLog); + } + } + + public String generateKeyBySpEL(String spELString, JoinPoint joinPoint) throws Exception { + MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); + String[] paramNames = nameDiscoverer.getParameterNames(methodSignature.getMethod()); + SpelExpression expression = (SpelExpression) parser.parseExpression(spELString); + EvaluationContext context = new StandardEvaluationContext(); + Object[] args = joinPoint.getArgs(); + for (int i = 0; i < args.length; i++) { + context.setVariable(paramNames[i], args[i]); + } + return expression.getValue(context).toString(); + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java index 074d0a1..596ab06 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java @@ -28,5 +28,7 @@ ReturnDTO updateStatusById(Long id, String alreadyReceived); + String checkOrder(BizBusinessOrderInfo businessOrder); + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModifyLogService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModifyLogService.java new file mode 100644 index 0000000..dda4137 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModifyLogService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.service.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 服务类 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface IEquipmentModifyLogService extends IService { + + List listByEquipment(Long equipmentId); + + +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java index 759cb30..158cc4e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java @@ -69,10 +69,10 @@ statisticsDTO.setDeptName(subList.get(0).getDeptName()); statisticsDTO.setTotal((long) subList.size()); - statisticsDTO.setMonthToExpire(subList.stream().filter(i->i.getCertificateValid().after(new Date()) && DateUtil.month(new Date()) == DateUtil.month(i.getCertificateValid())).count()); - statisticsDTO.setExpired(subList.stream().filter(i->i.getCertificateValid().before(new Date())).count()); + statisticsDTO.setMonthToExpire(subList.stream().filter(i->ObjectUtil.isNotEmpty(i.getCertificateValid()) && i.getCertificateValid().after(new Date()) && DateUtil.month(new Date()) == DateUtil.month(i.getCertificateValid())).count()); + statisticsDTO.setExpired(subList.stream().filter(i->ObjectUtil.isNotEmpty(i.getCertificateValid()) && i.getCertificateValid().before(new Date())).count()); statisticsDTO.setInCheck(subList.stream().filter(i-> StrUtil.isNotEmpty(i.getLatestSampleStatus()) && SampleStatusEnum.getSampleStatusByCompletion(InCheckSampleStatus).contains(i.getLatestSampleStatus())).count()); - statisticsDTO.setYearToCheck(subList.stream().filter(i-> DateUtil.year(new Date()) == DateUtil.year(i.getCertificateValid())).count()); + statisticsDTO.setYearToCheck(subList.stream().filter(i-> ObjectUtil.isNotEmpty(i.getCertificateValid()) && DateUtil.year(new Date()) == DateUtil.year(i.getCertificateValid())).count()); statisticsDTO.setYearChecked(subList.stream().mapToLong(i->Long.valueOf(i.getYearChecked())).sum()); Optional planFinishOpt = planFinishDTOList.stream().filter(i->deptId.equals(i.getDeptId())).findFirst(); @@ -393,13 +393,16 @@ private List getDeptGroupList(Map> deptGroupMap) { List deptGroupList = new ArrayList<>(); for (String key : deptGroupMap.keySet()) { - EquipmentMultiAggr.EquipmentSimpleList item = new EquipmentMultiAggr.EquipmentSimpleList(); - item.setEquipmentName(key.split(";;;")[0]); - item.setModel(key.split(";;;")[1]); - item.setCompanyName(key.split(";;;")[2]); - item.setDeptName(key.split(";;;")[3]); - item.setCount(deptGroupMap.get(key).size()); - deptGroupList.add(item); + if(key.split(";;;").length >= 4){ + EquipmentMultiAggr.EquipmentSimpleList item = new EquipmentMultiAggr.EquipmentSimpleList(); + item.setEquipmentName(key.split(";;;")[0]); + item.setModel(key.split(";;;")[1]); + item.setCompanyName(key.split(";;;")[2]); + item.setDeptName(key.split(";;;")[3]); + item.setCount(deptGroupMap.get(key).size()); + deptGroupList.add(item); + } + } return deptGroupList; } @@ -408,12 +411,14 @@ private List getCompanyGroupList(Map> companyGroupMap) { List companyGroupList = new ArrayList<>(); for (String key : companyGroupMap.keySet()) { - EquipmentMultiAggr.EquipmentSimpleList item = new EquipmentMultiAggr.EquipmentSimpleList(); - item.setEquipmentName(key.split(";;;")[0]); - item.setModel(key.split(";;;")[1]); - item.setCompanyName(key.split(";;;")[2]); - item.setCount(companyGroupMap.get(key).size()); - companyGroupList.add(item); + if(key.split(";;;").length >= 3){ + EquipmentMultiAggr.EquipmentSimpleList item = new EquipmentMultiAggr.EquipmentSimpleList(); + item.setEquipmentName(key.split(";;;")[0]); + item.setModel(key.split(";;;")[1]); + item.setCompanyName(key.split(";;;")[2]); + item.setCount(companyGroupMap.get(key).size()); + companyGroupList.add(item); + } } return companyGroupList; } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java index c668e55..921a6a5 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java @@ -1,7 +1,15 @@ package com.casic.missiles.mapper.business; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.business.OrderListResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface BusinessOrderListResponseMapper extends BaseMapper { + + List listPage(@Param("page")Page page, + @Param("ew")QueryWrapper ew); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java index cde328c..219d6d8 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java @@ -41,9 +41,14 @@ List bizCertificateList(@Param("equipmentId") Long equipmentId); - List selectRemindListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindListPage(@Param("page") Page page, + @Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); - List selectRemindList(@Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindList(@Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java new file mode 100644 index 0000000..4b6f2f4 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-设备台账-设备变更记录 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface EquipmentModifyLogMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml index 18476de..a536f10 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml @@ -37,4 +37,24 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml new file mode 100644 index 0000000..e65b78e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, order_no, deliverer_id, deliverer, customer_id, customer_name, deliverer_tel, plan_deliver_time, require_over_time, customer_address, customer_phone, is_urgent, maintain_major, undertaker_id, measure_company, undertaker_name, undertake_time, receive_status, receive_illustrate, create_user_id, create_user_name, create_time, update_time + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml new file mode 100644 index 0000000..f1b61be --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, equipment_id, content, operate_user_id, operate_time + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java new file mode 100644 index 0000000..a65c4df --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java @@ -0,0 +1,36 @@ +package com.casic.missiles.controller.equipment; + +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 前端控制器 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Api(tags = "设备变更记录") +@RestController +@RequestMapping("/equipment") +@RequiredArgsConstructor +public class EquipmentModifyLogController { + + private final IEquipmentModifyLogService modifyLogService; + + @GetMapping("/modifyLogs") + public ReturnDTO> list(Long equipmentId){ + return ReturnUtil.success(modifyLogService.listByEquipment(equipmentId)); + } + +} diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java index 444318c..6b3af95 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java @@ -72,6 +72,15 @@ return businessOrderService.addOrder(businessOrder); } + @ApiOperation("任务单检查") + @PostMapping("/check") + public ReturnDTO orderChcek(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(businessOrderService.checkOrder(businessOrder)); + } + @ApiOperation("任务单更新") @PostMapping("/update") public ReturnDTO orderUpdate(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index 84ca460..352950c 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -36,6 +36,8 @@ template: calibration: "现场检定审批报告" environmental: "现场环境记录" + role: + operator: user # 操作手 logging: level.root: info diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java index 72514d8..2836b50 100644 --- a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java @@ -45,7 +45,7 @@ if(EquipmentStatusTypeEnum.DELAY.equals(equipmentInfo.getUsageStatus())){ QueryWrapper statusQueryWrapper = new QueryWrapper<>(); statusQueryWrapper.eq("equipment_id",equipmentInfo.getId()); - statusQueryWrapper.eq("", StatusApprovalTypeEnum.DELAY); + statusQueryWrapper.eq("approval_type", StatusApprovalTypeEnum.DELAY); statusQueryWrapper.orderByDesc("create_time"); statusQueryWrapper.last("limit 1"); EquipmentStatusApproval statusApproval = statusApprovalService.getOne(statusQueryWrapper); diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java new file mode 100644 index 0000000..f3aa066 --- /dev/null +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java @@ -0,0 +1,48 @@ +package com.casic.missiles.job.handler; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.model.status.EquipmentStatusApproval; +import com.casic.missiles.service.status.IEquipmentStatusApprovalService; +import com.casic.missiles.service.status.IEquipmentStatusLogService; +import com.xxl.job.core.context.XxlJobHelper; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +@Slf4j +@Component +@RequiredArgsConstructor +public class EquipmentStatusApprovalJobHandler { + + private final IEquipmentStatusApprovalService statusApprovalService; + + @XxlJob("equipmentStatusApprovalJobHandler") + public void equipmentStatusApprovalJobHandler(){ + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.HOUR_OF_DAY,0); + calendar.set(Calendar.MINUTE,0); + calendar.set(Calendar.SECOND,0); + Date startTime = calendar.getTime(); + + calendar.add(Calendar.DATE,1); + Date endTime = calendar.getTime(); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("approval_status", ApprovalStatusEnum.PASSED); + queryWrapper.ge("approval_time",startTime); + queryWrapper.lt("approval_time",endTime); + List list = statusApprovalService.list(queryWrapper); + for (EquipmentStatusApproval approval : list) { + statusApprovalService.updateStatusAndSaveLog(approval); + XxlJobHelper.log(String.format("update equipment %s status",approval.getEquipmentNo())); + } + } + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java new file mode 100644 index 0000000..032e2d4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java @@ -0,0 +1,14 @@ +package com.casic.missiles.dto.business; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class OrderCheckDTO { + + private String orderNo; + private String manufactureNo; + + private String equipmentName; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java index bdf1531..67899b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java @@ -1,9 +1,15 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @Description: * @Author: wangpeng @@ -18,12 +24,30 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; + @ApiModelProperty("使用部门(单个)") + private Long deptId; + + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty(value = "送检人", dataType = "String") private String deliverer; @ApiModelProperty(value = "创建人名字", dataType = "String") private String createUserName; + /** + * 检定(校准)单位(固定值) + */ + @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") + private String measureCompany; + + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "接收状态(包括接收相关状态和检测完成状态)", dataType = "String") + private String receiveStatus; + @ApiModelProperty(value = "创建开始时间", dataType = "String") private String createStartTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java index 3e4c232..f17b7a7 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.annotation.DictCodeField; @@ -30,6 +31,15 @@ private String customerName; /** + * 返回创建人的部门 + */ + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; + + /** * 检定(校准)单位(固定值) */ @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") @@ -52,4 +62,8 @@ @ApiModelProperty(value = "创建时间", dataType = "String") private String createTime; + + @ApiModelProperty(value = "计划送检时间", dataType = "String") + private String requireOverTime; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java index 83b45ac..08ba19e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java @@ -1,5 +1,7 @@ package com.casic.missiles.dto.equipment; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; @@ -82,4 +84,21 @@ @ApiModelProperty("计量标识") private String meterIdentify; + + @ApiModelProperty(value = "型号规格") + private String model; + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "所在单位id") + private Long companyId; + + @ApiModelProperty("所在单位名称") + private String companyName; + + @ApiModelProperty(value = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java index 6284acf..f313257 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java @@ -5,6 +5,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.List; + @Getter @Setter public class EquipmentCertificateQueryForm extends BaseQueryForm { @@ -29,4 +31,30 @@ @ApiModelProperty("证书有效期结束时间") private String certificateValidEnd; + + @ApiModelProperty("型号规格") + private String model; + + @ApiModelProperty("出厂编号") + private String manufactureNo; + + @ApiModelProperty("所在单位") + private Long companyId; + + @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; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java new file mode 100644 index 0000000..cdad130 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java @@ -0,0 +1,32 @@ +package com.casic.missiles.dto.equipment; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.model.equipment.EquipmentGroupInfo; +import com.casic.missiles.model.equipment.EquipmentGroupRelation; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class EquipmentGroupQueryForm { + + @ApiModelProperty("所在单位id") + private Long companyId; + + @ApiModelProperty("使用部门id") + private Long deptId; + + @ApiModelProperty(value = "分系统id") + private Long subSystemId; + + @ApiModelProperty("岗位ID") + private Long positionId; + + @ApiModelProperty("分组名称") + private String groupName; + + @ApiModelProperty("创建人id") + private String createUserId; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java index 43016e2..5773c4e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java @@ -50,4 +50,11 @@ @ApiModelProperty("备注") @ExcelIgnore private String remark; + + @ApiModelProperty("检定状态") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_REMIND_CHECK_STATUS) + private String checkStatus; + + @ApiModelProperty("检定状态名称") + private String checkStatusName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java index 663cd38..6a6f602 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java @@ -22,21 +22,46 @@ @ApiModelProperty("规格型号") private String model; + @ApiModelProperty("生产厂家") + private String manufacturer; + @ApiModelProperty("出厂编号") private String manufactureNo; @ApiModelProperty("设备类型(1受检设备;2特种设备)") private String equipmentType; + @ApiModelProperty("所在单位") + private Long companyId; + + @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; + @ApiModelProperty("使用状态") private String usageStatus; + @ApiModelProperty("使用状态列表") + private List usageStatusList; + + @ApiModelProperty("在用信息") + private String useSign; + @ApiModelProperty("证书有效期开始时间") private String certificateValidStart; @@ -52,4 +77,12 @@ @ApiModelProperty("参试任务结束时间") private String tastEndTime; + @ApiModelProperty("检定去向") + private String checkDestination; + + @ApiModelProperty("检定状态") + private String checkStatus; + + + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java new file mode 100644 index 0000000..e217254 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java @@ -0,0 +1,19 @@ +package com.casic.missiles.dto.equipment; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.Date; + +@Getter +@Setter +public class LimitInstructionUpdate { + + @ApiModelProperty("受检设备id") + private Long equipmentId; + + @ApiModelProperty("限用说明") + private String limitInstruction; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java index 068ffb6..8f1c6a0 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java @@ -56,6 +56,10 @@ @TableField("sample_model") private String sampleModel; + @ApiModelProperty("生产厂家") + @TableField(exist = false) + private String sampleManufacturer; + /** * 交接单id,避免重复交接(可为空) */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java new file mode 100644 index 0000000..a19c0a6 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java @@ -0,0 +1,72 @@ +package com.casic.missiles.model.equipment; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 受检设备-设备台账-设备变更记录 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Getter +@Setter +@TableName("eqpt_equipment_modify_log") +public class EquipmentModifyLog implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ApiModelProperty("主键") + @TableId("id") + private Long id; + + /** + * 设备id + */ + @ApiModelProperty("设备id") + @TableField("equipment_id") + private Long equipmentId; + + /** + * 变更内容 + */ + @ApiModelProperty("变更内容") + @TableField("content") + private String content; + + /** + * 变更人 + */ + @ApiModelProperty("变更人id") + @TableField("operate_user_id") + private Long operateUserId; + + @ApiModelProperty("变更人姓名") + @TableField(exist = false) + private String operateUserName; + /** + * 变更时间 + */ + @ApiModelProperty("变更时间") + @TableField("operate_time") + private Date operateTime; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java b/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java index 989211a..e8bc431 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java @@ -66,5 +66,9 @@ @ApiModelProperty("原因") private String reason; + @ApiModelProperty("状态维护申请id") + @TableField("status_approval_id") + private Long statusApprovalId; + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/annotation/EquipmentLog.java b/casic-metering-service/src/main/java/com/casic/missiles/annotation/EquipmentLog.java new file mode 100644 index 0000000..b28717e --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/annotation/EquipmentLog.java @@ -0,0 +1,20 @@ +package com.casic.missiles.annotation; + + +import java.lang.annotation.*; + +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface EquipmentLog { + + /** + * 设备ID + */ + String key(); + + /** + * 变更描述 + */ + String value() default ""; +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java new file mode 100644 index 0000000..b168cc1 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java @@ -0,0 +1,144 @@ +package com.casic.missiles.aop; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.casic.missiles.annotation.EquipmentLog; +import com.casic.missiles.core.application.service.AbstractAuthService; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentInfoService; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import com.casic.missiles.utils.CasicBeanUtil; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.Signature; +import org.aspectj.lang.annotation.After; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.aspectj.lang.annotation.Pointcut; +import org.aspectj.lang.reflect.MethodSignature; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.DefaultParameterNameDiscoverer; +import org.springframework.expression.EvaluationContext; +import org.springframework.expression.spel.standard.SpelExpression; +import org.springframework.expression.spel.standard.SpelExpressionParser; +import org.springframework.expression.spel.support.StandardEvaluationContext; +import org.springframework.scheduling.annotation.Async; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.stereotype.Component; + +import java.beans.Expression; +import java.lang.reflect.Method; +import java.util.Date; + +@Aspect +@Component +@EnableAsync +public class EquipmentLogAop { + + @Autowired + private IEquipmentInfoService equipmentInfoService; + @Autowired + private IEquipmentModifyLogService modifyLogService; + @Autowired + private AbstractAuthService authService; + + + /** + * 用于SpEL表达式解析. + */ + private final SpelExpressionParser parser = new SpelExpressionParser(); + /** + * 用于获取方法参数定义名字. + */ + private final DefaultParameterNameDiscoverer nameDiscoverer = new DefaultParameterNameDiscoverer(); + + private Long equipmentId; + private EquipmentInfo oldInfo; + + + /** + * 注解的位置 + */ + @Pointcut("@annotation(com.casic.missiles.annotation.EquipmentLog)") + public void logPointCut() {} + + @Before(value="logPointCut()") + public void before(JoinPoint joinPoint) throws Exception { + equipmentId = getEquipmentId(joinPoint); + if(ObjectUtil.isNotEmpty(equipmentId)){ + oldInfo = equipmentInfoService.getById(equipmentId); + }else { + oldInfo = null; + } + } + + private Long getEquipmentId(JoinPoint joinPoint) throws Exception { + //1.1获取目标对象对应的字节码对象 + Class targetCls= joinPoint.getTarget().getClass(); + //1.2获取目标方法对象 + //1.2.1 获取方法签名信息从而获取方法名和参数类型 + Signature signature= joinPoint.getSignature(); + //1.2.1.1将方法签名强转成MethodSignature类型,方便调用 + MethodSignature ms= (MethodSignature)signature; + //1.2.2通过字节码对象以及方法签名获取目标方法对象 + Method targetMethod=targetCls.getDeclaredMethod(ms.getName(),ms.getParameterTypes()); + //1.3获取目标方法对象上注解中的属性值 + //1.2.3 获取方法上的自定义requiredLog注解 + EquipmentLog equipmentLog=targetMethod.getAnnotation(EquipmentLog.class); + String val = generateKeyBySpEL(equipmentLog.key(), joinPoint); + return ObjectUtil.isNotEmpty(val) ? Long.valueOf(val) : null; + } + + @After(value="logPointCut()") + @Async + public void after(JoinPoint joinPoint){ + if(ObjectUtil.isNotEmpty(equipmentId) && ObjectUtil.isNotEmpty(oldInfo)){ + EquipmentInfo newInfo = equipmentInfoService.getById(equipmentId); + JSONArray res = CasicBeanUtil.fieldCompareDetail(oldInfo,newInfo,null); + if(ObjectUtil.isNotEmpty(res) && res.size() > 0){ + StringBuilder stringBuilder = new StringBuilder(); + for (int i = 0; i < res.size(); i++) { + JSONObject item = res.getJSONObject(i); + String filedName = equipmentInfoService.getFieldName(item.getString("field")); + if(StrUtil.isNotBlank(filedName)){ + String oldValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("oldVal")); + String newValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("newVal")); + String msg = String.format("字段名=%s,变更前=%s,变更后=%s;",filedName,oldValue,newValue); + stringBuilder.append(msg); + } + } + saveLog(equipmentId,stringBuilder.toString()); + } + } + } + + private void saveLog(Long equipmentId,String content){ + if(StrUtil.isNotBlank(content)){ + EquipmentModifyLog modifyLog = new EquipmentModifyLog(); + modifyLog.setEquipmentId(equipmentId); + modifyLog.setContent(content); + modifyLog.setOperateTime(new Date()); + AuthUser authUser = authService.getLoginUser(); + if(ObjectUtil.isNotEmpty(authUser)){ + modifyLog.setOperateUserId(authUser.getId()); + } + modifyLogService.save(modifyLog); + } + } + + public String generateKeyBySpEL(String spELString, JoinPoint joinPoint) throws Exception { + MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); + String[] paramNames = nameDiscoverer.getParameterNames(methodSignature.getMethod()); + SpelExpression expression = (SpelExpression) parser.parseExpression(spELString); + EvaluationContext context = new StandardEvaluationContext(); + Object[] args = joinPoint.getArgs(); + for (int i = 0; i < args.length; i++) { + context.setVariable(paramNames[i], args[i]); + } + return expression.getValue(context).toString(); + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java index 074d0a1..596ab06 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java @@ -28,5 +28,7 @@ ReturnDTO updateStatusById(Long id, String alreadyReceived); + String checkOrder(BizBusinessOrderInfo businessOrder); + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModifyLogService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModifyLogService.java new file mode 100644 index 0000000..dda4137 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModifyLogService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.service.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 服务类 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface IEquipmentModifyLogService extends IService { + + List listByEquipment(Long equipmentId); + + +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java index 759cb30..158cc4e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java @@ -69,10 +69,10 @@ statisticsDTO.setDeptName(subList.get(0).getDeptName()); statisticsDTO.setTotal((long) subList.size()); - statisticsDTO.setMonthToExpire(subList.stream().filter(i->i.getCertificateValid().after(new Date()) && DateUtil.month(new Date()) == DateUtil.month(i.getCertificateValid())).count()); - statisticsDTO.setExpired(subList.stream().filter(i->i.getCertificateValid().before(new Date())).count()); + statisticsDTO.setMonthToExpire(subList.stream().filter(i->ObjectUtil.isNotEmpty(i.getCertificateValid()) && i.getCertificateValid().after(new Date()) && DateUtil.month(new Date()) == DateUtil.month(i.getCertificateValid())).count()); + statisticsDTO.setExpired(subList.stream().filter(i->ObjectUtil.isNotEmpty(i.getCertificateValid()) && i.getCertificateValid().before(new Date())).count()); statisticsDTO.setInCheck(subList.stream().filter(i-> StrUtil.isNotEmpty(i.getLatestSampleStatus()) && SampleStatusEnum.getSampleStatusByCompletion(InCheckSampleStatus).contains(i.getLatestSampleStatus())).count()); - statisticsDTO.setYearToCheck(subList.stream().filter(i-> DateUtil.year(new Date()) == DateUtil.year(i.getCertificateValid())).count()); + statisticsDTO.setYearToCheck(subList.stream().filter(i-> ObjectUtil.isNotEmpty(i.getCertificateValid()) && DateUtil.year(new Date()) == DateUtil.year(i.getCertificateValid())).count()); statisticsDTO.setYearChecked(subList.stream().mapToLong(i->Long.valueOf(i.getYearChecked())).sum()); Optional planFinishOpt = planFinishDTOList.stream().filter(i->deptId.equals(i.getDeptId())).findFirst(); @@ -393,13 +393,16 @@ private List getDeptGroupList(Map> deptGroupMap) { List deptGroupList = new ArrayList<>(); for (String key : deptGroupMap.keySet()) { - EquipmentMultiAggr.EquipmentSimpleList item = new EquipmentMultiAggr.EquipmentSimpleList(); - item.setEquipmentName(key.split(";;;")[0]); - item.setModel(key.split(";;;")[1]); - item.setCompanyName(key.split(";;;")[2]); - item.setDeptName(key.split(";;;")[3]); - item.setCount(deptGroupMap.get(key).size()); - deptGroupList.add(item); + if(key.split(";;;").length >= 4){ + EquipmentMultiAggr.EquipmentSimpleList item = new EquipmentMultiAggr.EquipmentSimpleList(); + item.setEquipmentName(key.split(";;;")[0]); + item.setModel(key.split(";;;")[1]); + item.setCompanyName(key.split(";;;")[2]); + item.setDeptName(key.split(";;;")[3]); + item.setCount(deptGroupMap.get(key).size()); + deptGroupList.add(item); + } + } return deptGroupList; } @@ -408,12 +411,14 @@ private List getCompanyGroupList(Map> companyGroupMap) { List companyGroupList = new ArrayList<>(); for (String key : companyGroupMap.keySet()) { - EquipmentMultiAggr.EquipmentSimpleList item = new EquipmentMultiAggr.EquipmentSimpleList(); - item.setEquipmentName(key.split(";;;")[0]); - item.setModel(key.split(";;;")[1]); - item.setCompanyName(key.split(";;;")[2]); - item.setCount(companyGroupMap.get(key).size()); - companyGroupList.add(item); + if(key.split(";;;").length >= 3){ + EquipmentMultiAggr.EquipmentSimpleList item = new EquipmentMultiAggr.EquipmentSimpleList(); + item.setEquipmentName(key.split(";;;")[0]); + item.setModel(key.split(";;;")[1]); + item.setCompanyName(key.split(";;;")[2]); + item.setCount(companyGroupMap.get(key).size()); + companyGroupList.add(item); + } } return companyGroupList; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/BizBusinessOrderInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/BizBusinessOrderInfoServiceImpl.java index dac1790..fed732a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/BizBusinessOrderInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/BizBusinessOrderInfoServiceImpl.java @@ -1,6 +1,8 @@ package com.casic.missiles.service.impl.business; 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; @@ -8,6 +10,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.OrderBackRequest; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.dto.business.OrderListRequest; import com.casic.missiles.dto.business.OrderListResponse; import com.casic.missiles.enums.BusinessExceptionEnum; @@ -57,11 +60,13 @@ List parentDeptIds = permissionContext.getDeptService().getParentListById(deptId); wrapper.and(i->i.eq("customer_id",deptId).or().in(CollUtil.isNotEmpty(parentDeptIds),"customer_id",parentDeptIds)); - Page resultPage = orderListResponseMapper.selectPage(page, wrapper); - for (OrderListResponse customerAdviceInfo : resultPage.getRecords()) { + List list = orderListResponseMapper.listPage(page, wrapper); + page.setRecords(list); + for (OrderListResponse customerAdviceInfo : page.getRecords()) { DictCodeUtils.convertDictCodeToName(customerAdviceInfo); + customerAdviceInfo.setDeptName(permissionContext.getDeptService().getDeptName(customerAdviceInfo.getDeptId())); } - return resultPage; + return page; } @Override @@ -70,6 +75,7 @@ DictCodeUtils.convertDictCodeToName(orderInfo); // todo 交接单编号列表,另需补充根据交接单编号打印pdf的接口 QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.select("*","(select manufacturer from eqpt_equipment_info e where e.id = sample_id) as sampleManufacturer"); wrapper.eq("order_id", orderInfo.getId()); List orderSampleList = sampleRelationMapper.selectList(wrapper); for (BizBusinessOrderSampleRelation bizBusinessOrderSampleRelation : orderSampleList) { @@ -154,7 +160,38 @@ "{0} <= DATE_FORMAT(create_time,'%Y-%m-%d')", request.getCreateStartTime().split(" ")[0]); wrapper.apply(StringUtils.isNotBlank(request.getCreateEndTime()), "{0} >= DATE_FORMAT(create_time,'%Y-%m-%d')", request.getCreateEndTime().split(" ")[0]); + + wrapper.eq(ObjectUtil.isNotEmpty(request.getDeptId()),"dept_id",request.getDeptId()); + wrapper.like(StrUtil.isNotEmpty(request.getMeasureCompany()),"measure_company",request.getMeasureCompany()); + wrapper.eq(StrUtil.isNotEmpty(request.getReceiveStatus()),"receive_status",request.getReceiveStatus()); + + String positionSql = String.format("(select id from eqpt_equipment_info e where e.id in (select sample_id from biz_business_order_sample_relation r where r.order_id = t.id) and e.use_position_id = %s)",request.getUsePositionId()); + wrapper.exists(ObjectUtil.isNotEmpty(request.getUsePositionId()),positionSql); + + String manufactureNoSql = String.format("(select id from eqpt_equipment_info e where e.id in (select sample_id from biz_business_order_sample_relation r where r.order_id = t.id) and e.manufacture_no like '%%%s%%')",request.getManufactureNo()); + wrapper.exists(ObjectUtil.isNotEmpty(request.getManufactureNo()),manufactureNoSql); wrapper.orderByDesc("create_time"); return wrapper; } + + @Override + public String checkOrder(BizBusinessOrderInfo businessOrder) { + List sampleRelations = businessOrder.getCustomerSampleInfoList(); + if(CollUtil.isNotEmpty(sampleRelations)){ + List sampleIds = sampleRelations.stream().map(BizBusinessOrderSampleRelation::getSampleId).distinct().collect(Collectors.toList()); + List checkRes = this.baseMapper.checkSamples(sampleIds,businessOrder.getId()); + if(CollUtil.isNotEmpty(checkRes)){ + Map> map = checkRes.stream().collect(Collectors.groupingBy(OrderCheckDTO::getManufactureNo)); + StringBuilder stringBuilder = new StringBuilder(); + for (String manufactureNo : map.keySet()) { + List subRes = map.get(manufactureNo); + String orderNos = StrUtil.join(",",subRes.stream().map(OrderCheckDTO::getOrderNo).distinct().collect(Collectors.toList())); + stringBuilder.append(String.format("编号为%s的%s设备已在任务单%s中,",manufactureNo,subRes.get(0).getEquipmentName(),orderNos)); + } + stringBuilder.append("请确认是否继续提交"); + return stringBuilder.toString(); + } + } + return null; + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java index c668e55..921a6a5 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java @@ -1,7 +1,15 @@ package com.casic.missiles.mapper.business; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.business.OrderListResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface BusinessOrderListResponseMapper extends BaseMapper { + + List listPage(@Param("page")Page page, + @Param("ew")QueryWrapper ew); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java index cde328c..219d6d8 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java @@ -41,9 +41,14 @@ List bizCertificateList(@Param("equipmentId") Long equipmentId); - List selectRemindListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindListPage(@Param("page") Page page, + @Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); - List selectRemindList(@Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindList(@Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java new file mode 100644 index 0000000..4b6f2f4 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-设备台账-设备变更记录 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface EquipmentModifyLogMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml index 18476de..a536f10 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml @@ -37,4 +37,24 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml new file mode 100644 index 0000000..e65b78e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, order_no, deliverer_id, deliverer, customer_id, customer_name, deliverer_tel, plan_deliver_time, require_over_time, customer_address, customer_phone, is_urgent, maintain_major, undertaker_id, measure_company, undertaker_name, undertake_time, receive_status, receive_illustrate, create_user_id, create_user_name, create_time, update_time + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml new file mode 100644 index 0000000..f1b61be --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, equipment_id, content, operate_user_id, operate_time + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java new file mode 100644 index 0000000..a65c4df --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java @@ -0,0 +1,36 @@ +package com.casic.missiles.controller.equipment; + +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 前端控制器 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Api(tags = "设备变更记录") +@RestController +@RequestMapping("/equipment") +@RequiredArgsConstructor +public class EquipmentModifyLogController { + + private final IEquipmentModifyLogService modifyLogService; + + @GetMapping("/modifyLogs") + public ReturnDTO> list(Long equipmentId){ + return ReturnUtil.success(modifyLogService.listByEquipment(equipmentId)); + } + +} diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java index 444318c..6b3af95 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java @@ -72,6 +72,15 @@ return businessOrderService.addOrder(businessOrder); } + @ApiOperation("任务单检查") + @PostMapping("/check") + public ReturnDTO orderChcek(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(businessOrderService.checkOrder(businessOrder)); + } + @ApiOperation("任务单更新") @PostMapping("/update") public ReturnDTO orderUpdate(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index 84ca460..352950c 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -36,6 +36,8 @@ template: calibration: "现场检定审批报告" environmental: "现场环境记录" + role: + operator: user # 操作手 logging: level.root: info diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java index 72514d8..2836b50 100644 --- a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java @@ -45,7 +45,7 @@ if(EquipmentStatusTypeEnum.DELAY.equals(equipmentInfo.getUsageStatus())){ QueryWrapper statusQueryWrapper = new QueryWrapper<>(); statusQueryWrapper.eq("equipment_id",equipmentInfo.getId()); - statusQueryWrapper.eq("", StatusApprovalTypeEnum.DELAY); + statusQueryWrapper.eq("approval_type", StatusApprovalTypeEnum.DELAY); statusQueryWrapper.orderByDesc("create_time"); statusQueryWrapper.last("limit 1"); EquipmentStatusApproval statusApproval = statusApprovalService.getOne(statusQueryWrapper); diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java new file mode 100644 index 0000000..f3aa066 --- /dev/null +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java @@ -0,0 +1,48 @@ +package com.casic.missiles.job.handler; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.model.status.EquipmentStatusApproval; +import com.casic.missiles.service.status.IEquipmentStatusApprovalService; +import com.casic.missiles.service.status.IEquipmentStatusLogService; +import com.xxl.job.core.context.XxlJobHelper; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +@Slf4j +@Component +@RequiredArgsConstructor +public class EquipmentStatusApprovalJobHandler { + + private final IEquipmentStatusApprovalService statusApprovalService; + + @XxlJob("equipmentStatusApprovalJobHandler") + public void equipmentStatusApprovalJobHandler(){ + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.HOUR_OF_DAY,0); + calendar.set(Calendar.MINUTE,0); + calendar.set(Calendar.SECOND,0); + Date startTime = calendar.getTime(); + + calendar.add(Calendar.DATE,1); + Date endTime = calendar.getTime(); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("approval_status", ApprovalStatusEnum.PASSED); + queryWrapper.ge("approval_time",startTime); + queryWrapper.lt("approval_time",endTime); + List list = statusApprovalService.list(queryWrapper); + for (EquipmentStatusApproval approval : list) { + statusApprovalService.updateStatusAndSaveLog(approval); + XxlJobHelper.log(String.format("update equipment %s status",approval.getEquipmentNo())); + } + } + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java new file mode 100644 index 0000000..032e2d4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java @@ -0,0 +1,14 @@ +package com.casic.missiles.dto.business; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class OrderCheckDTO { + + private String orderNo; + private String manufactureNo; + + private String equipmentName; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java index bdf1531..67899b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java @@ -1,9 +1,15 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @Description: * @Author: wangpeng @@ -18,12 +24,30 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; + @ApiModelProperty("使用部门(单个)") + private Long deptId; + + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty(value = "送检人", dataType = "String") private String deliverer; @ApiModelProperty(value = "创建人名字", dataType = "String") private String createUserName; + /** + * 检定(校准)单位(固定值) + */ + @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") + private String measureCompany; + + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "接收状态(包括接收相关状态和检测完成状态)", dataType = "String") + private String receiveStatus; + @ApiModelProperty(value = "创建开始时间", dataType = "String") private String createStartTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java index 3e4c232..f17b7a7 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.annotation.DictCodeField; @@ -30,6 +31,15 @@ private String customerName; /** + * 返回创建人的部门 + */ + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; + + /** * 检定(校准)单位(固定值) */ @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") @@ -52,4 +62,8 @@ @ApiModelProperty(value = "创建时间", dataType = "String") private String createTime; + + @ApiModelProperty(value = "计划送检时间", dataType = "String") + private String requireOverTime; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java index 83b45ac..08ba19e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java @@ -1,5 +1,7 @@ package com.casic.missiles.dto.equipment; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; @@ -82,4 +84,21 @@ @ApiModelProperty("计量标识") private String meterIdentify; + + @ApiModelProperty(value = "型号规格") + private String model; + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "所在单位id") + private Long companyId; + + @ApiModelProperty("所在单位名称") + private String companyName; + + @ApiModelProperty(value = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java index 6284acf..f313257 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java @@ -5,6 +5,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.List; + @Getter @Setter public class EquipmentCertificateQueryForm extends BaseQueryForm { @@ -29,4 +31,30 @@ @ApiModelProperty("证书有效期结束时间") private String certificateValidEnd; + + @ApiModelProperty("型号规格") + private String model; + + @ApiModelProperty("出厂编号") + private String manufactureNo; + + @ApiModelProperty("所在单位") + private Long companyId; + + @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; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java new file mode 100644 index 0000000..cdad130 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java @@ -0,0 +1,32 @@ +package com.casic.missiles.dto.equipment; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.model.equipment.EquipmentGroupInfo; +import com.casic.missiles.model.equipment.EquipmentGroupRelation; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class EquipmentGroupQueryForm { + + @ApiModelProperty("所在单位id") + private Long companyId; + + @ApiModelProperty("使用部门id") + private Long deptId; + + @ApiModelProperty(value = "分系统id") + private Long subSystemId; + + @ApiModelProperty("岗位ID") + private Long positionId; + + @ApiModelProperty("分组名称") + private String groupName; + + @ApiModelProperty("创建人id") + private String createUserId; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java index 43016e2..5773c4e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java @@ -50,4 +50,11 @@ @ApiModelProperty("备注") @ExcelIgnore private String remark; + + @ApiModelProperty("检定状态") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_REMIND_CHECK_STATUS) + private String checkStatus; + + @ApiModelProperty("检定状态名称") + private String checkStatusName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java index 663cd38..6a6f602 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java @@ -22,21 +22,46 @@ @ApiModelProperty("规格型号") private String model; + @ApiModelProperty("生产厂家") + private String manufacturer; + @ApiModelProperty("出厂编号") private String manufactureNo; @ApiModelProperty("设备类型(1受检设备;2特种设备)") private String equipmentType; + @ApiModelProperty("所在单位") + private Long companyId; + + @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; + @ApiModelProperty("使用状态") private String usageStatus; + @ApiModelProperty("使用状态列表") + private List usageStatusList; + + @ApiModelProperty("在用信息") + private String useSign; + @ApiModelProperty("证书有效期开始时间") private String certificateValidStart; @@ -52,4 +77,12 @@ @ApiModelProperty("参试任务结束时间") private String tastEndTime; + @ApiModelProperty("检定去向") + private String checkDestination; + + @ApiModelProperty("检定状态") + private String checkStatus; + + + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java new file mode 100644 index 0000000..e217254 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java @@ -0,0 +1,19 @@ +package com.casic.missiles.dto.equipment; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.Date; + +@Getter +@Setter +public class LimitInstructionUpdate { + + @ApiModelProperty("受检设备id") + private Long equipmentId; + + @ApiModelProperty("限用说明") + private String limitInstruction; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java index 068ffb6..8f1c6a0 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java @@ -56,6 +56,10 @@ @TableField("sample_model") private String sampleModel; + @ApiModelProperty("生产厂家") + @TableField(exist = false) + private String sampleManufacturer; + /** * 交接单id,避免重复交接(可为空) */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java new file mode 100644 index 0000000..a19c0a6 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java @@ -0,0 +1,72 @@ +package com.casic.missiles.model.equipment; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 受检设备-设备台账-设备变更记录 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Getter +@Setter +@TableName("eqpt_equipment_modify_log") +public class EquipmentModifyLog implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ApiModelProperty("主键") + @TableId("id") + private Long id; + + /** + * 设备id + */ + @ApiModelProperty("设备id") + @TableField("equipment_id") + private Long equipmentId; + + /** + * 变更内容 + */ + @ApiModelProperty("变更内容") + @TableField("content") + private String content; + + /** + * 变更人 + */ + @ApiModelProperty("变更人id") + @TableField("operate_user_id") + private Long operateUserId; + + @ApiModelProperty("变更人姓名") + @TableField(exist = false) + private String operateUserName; + /** + * 变更时间 + */ + @ApiModelProperty("变更时间") + @TableField("operate_time") + private Date operateTime; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java b/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java index 989211a..e8bc431 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java @@ -66,5 +66,9 @@ @ApiModelProperty("原因") private String reason; + @ApiModelProperty("状态维护申请id") + @TableField("status_approval_id") + private Long statusApprovalId; + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/annotation/EquipmentLog.java b/casic-metering-service/src/main/java/com/casic/missiles/annotation/EquipmentLog.java new file mode 100644 index 0000000..b28717e --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/annotation/EquipmentLog.java @@ -0,0 +1,20 @@ +package com.casic.missiles.annotation; + + +import java.lang.annotation.*; + +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface EquipmentLog { + + /** + * 设备ID + */ + String key(); + + /** + * 变更描述 + */ + String value() default ""; +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java new file mode 100644 index 0000000..b168cc1 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java @@ -0,0 +1,144 @@ +package com.casic.missiles.aop; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.casic.missiles.annotation.EquipmentLog; +import com.casic.missiles.core.application.service.AbstractAuthService; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentInfoService; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import com.casic.missiles.utils.CasicBeanUtil; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.Signature; +import org.aspectj.lang.annotation.After; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.aspectj.lang.annotation.Pointcut; +import org.aspectj.lang.reflect.MethodSignature; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.DefaultParameterNameDiscoverer; +import org.springframework.expression.EvaluationContext; +import org.springframework.expression.spel.standard.SpelExpression; +import org.springframework.expression.spel.standard.SpelExpressionParser; +import org.springframework.expression.spel.support.StandardEvaluationContext; +import org.springframework.scheduling.annotation.Async; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.stereotype.Component; + +import java.beans.Expression; +import java.lang.reflect.Method; +import java.util.Date; + +@Aspect +@Component +@EnableAsync +public class EquipmentLogAop { + + @Autowired + private IEquipmentInfoService equipmentInfoService; + @Autowired + private IEquipmentModifyLogService modifyLogService; + @Autowired + private AbstractAuthService authService; + + + /** + * 用于SpEL表达式解析. + */ + private final SpelExpressionParser parser = new SpelExpressionParser(); + /** + * 用于获取方法参数定义名字. + */ + private final DefaultParameterNameDiscoverer nameDiscoverer = new DefaultParameterNameDiscoverer(); + + private Long equipmentId; + private EquipmentInfo oldInfo; + + + /** + * 注解的位置 + */ + @Pointcut("@annotation(com.casic.missiles.annotation.EquipmentLog)") + public void logPointCut() {} + + @Before(value="logPointCut()") + public void before(JoinPoint joinPoint) throws Exception { + equipmentId = getEquipmentId(joinPoint); + if(ObjectUtil.isNotEmpty(equipmentId)){ + oldInfo = equipmentInfoService.getById(equipmentId); + }else { + oldInfo = null; + } + } + + private Long getEquipmentId(JoinPoint joinPoint) throws Exception { + //1.1获取目标对象对应的字节码对象 + Class targetCls= joinPoint.getTarget().getClass(); + //1.2获取目标方法对象 + //1.2.1 获取方法签名信息从而获取方法名和参数类型 + Signature signature= joinPoint.getSignature(); + //1.2.1.1将方法签名强转成MethodSignature类型,方便调用 + MethodSignature ms= (MethodSignature)signature; + //1.2.2通过字节码对象以及方法签名获取目标方法对象 + Method targetMethod=targetCls.getDeclaredMethod(ms.getName(),ms.getParameterTypes()); + //1.3获取目标方法对象上注解中的属性值 + //1.2.3 获取方法上的自定义requiredLog注解 + EquipmentLog equipmentLog=targetMethod.getAnnotation(EquipmentLog.class); + String val = generateKeyBySpEL(equipmentLog.key(), joinPoint); + return ObjectUtil.isNotEmpty(val) ? Long.valueOf(val) : null; + } + + @After(value="logPointCut()") + @Async + public void after(JoinPoint joinPoint){ + if(ObjectUtil.isNotEmpty(equipmentId) && ObjectUtil.isNotEmpty(oldInfo)){ + EquipmentInfo newInfo = equipmentInfoService.getById(equipmentId); + JSONArray res = CasicBeanUtil.fieldCompareDetail(oldInfo,newInfo,null); + if(ObjectUtil.isNotEmpty(res) && res.size() > 0){ + StringBuilder stringBuilder = new StringBuilder(); + for (int i = 0; i < res.size(); i++) { + JSONObject item = res.getJSONObject(i); + String filedName = equipmentInfoService.getFieldName(item.getString("field")); + if(StrUtil.isNotBlank(filedName)){ + String oldValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("oldVal")); + String newValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("newVal")); + String msg = String.format("字段名=%s,变更前=%s,变更后=%s;",filedName,oldValue,newValue); + stringBuilder.append(msg); + } + } + saveLog(equipmentId,stringBuilder.toString()); + } + } + } + + private void saveLog(Long equipmentId,String content){ + if(StrUtil.isNotBlank(content)){ + EquipmentModifyLog modifyLog = new EquipmentModifyLog(); + modifyLog.setEquipmentId(equipmentId); + modifyLog.setContent(content); + modifyLog.setOperateTime(new Date()); + AuthUser authUser = authService.getLoginUser(); + if(ObjectUtil.isNotEmpty(authUser)){ + modifyLog.setOperateUserId(authUser.getId()); + } + modifyLogService.save(modifyLog); + } + } + + public String generateKeyBySpEL(String spELString, JoinPoint joinPoint) throws Exception { + MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); + String[] paramNames = nameDiscoverer.getParameterNames(methodSignature.getMethod()); + SpelExpression expression = (SpelExpression) parser.parseExpression(spELString); + EvaluationContext context = new StandardEvaluationContext(); + Object[] args = joinPoint.getArgs(); + for (int i = 0; i < args.length; i++) { + context.setVariable(paramNames[i], args[i]); + } + return expression.getValue(context).toString(); + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java index 074d0a1..596ab06 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java @@ -28,5 +28,7 @@ ReturnDTO updateStatusById(Long id, String alreadyReceived); + String checkOrder(BizBusinessOrderInfo businessOrder); + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModifyLogService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModifyLogService.java new file mode 100644 index 0000000..dda4137 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModifyLogService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.service.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 服务类 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface IEquipmentModifyLogService extends IService { + + List listByEquipment(Long equipmentId); + + +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java index 759cb30..158cc4e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java @@ -69,10 +69,10 @@ statisticsDTO.setDeptName(subList.get(0).getDeptName()); statisticsDTO.setTotal((long) subList.size()); - statisticsDTO.setMonthToExpire(subList.stream().filter(i->i.getCertificateValid().after(new Date()) && DateUtil.month(new Date()) == DateUtil.month(i.getCertificateValid())).count()); - statisticsDTO.setExpired(subList.stream().filter(i->i.getCertificateValid().before(new Date())).count()); + statisticsDTO.setMonthToExpire(subList.stream().filter(i->ObjectUtil.isNotEmpty(i.getCertificateValid()) && i.getCertificateValid().after(new Date()) && DateUtil.month(new Date()) == DateUtil.month(i.getCertificateValid())).count()); + statisticsDTO.setExpired(subList.stream().filter(i->ObjectUtil.isNotEmpty(i.getCertificateValid()) && i.getCertificateValid().before(new Date())).count()); statisticsDTO.setInCheck(subList.stream().filter(i-> StrUtil.isNotEmpty(i.getLatestSampleStatus()) && SampleStatusEnum.getSampleStatusByCompletion(InCheckSampleStatus).contains(i.getLatestSampleStatus())).count()); - statisticsDTO.setYearToCheck(subList.stream().filter(i-> DateUtil.year(new Date()) == DateUtil.year(i.getCertificateValid())).count()); + statisticsDTO.setYearToCheck(subList.stream().filter(i-> ObjectUtil.isNotEmpty(i.getCertificateValid()) && DateUtil.year(new Date()) == DateUtil.year(i.getCertificateValid())).count()); statisticsDTO.setYearChecked(subList.stream().mapToLong(i->Long.valueOf(i.getYearChecked())).sum()); Optional planFinishOpt = planFinishDTOList.stream().filter(i->deptId.equals(i.getDeptId())).findFirst(); @@ -393,13 +393,16 @@ private List getDeptGroupList(Map> deptGroupMap) { List deptGroupList = new ArrayList<>(); for (String key : deptGroupMap.keySet()) { - EquipmentMultiAggr.EquipmentSimpleList item = new EquipmentMultiAggr.EquipmentSimpleList(); - item.setEquipmentName(key.split(";;;")[0]); - item.setModel(key.split(";;;")[1]); - item.setCompanyName(key.split(";;;")[2]); - item.setDeptName(key.split(";;;")[3]); - item.setCount(deptGroupMap.get(key).size()); - deptGroupList.add(item); + if(key.split(";;;").length >= 4){ + EquipmentMultiAggr.EquipmentSimpleList item = new EquipmentMultiAggr.EquipmentSimpleList(); + item.setEquipmentName(key.split(";;;")[0]); + item.setModel(key.split(";;;")[1]); + item.setCompanyName(key.split(";;;")[2]); + item.setDeptName(key.split(";;;")[3]); + item.setCount(deptGroupMap.get(key).size()); + deptGroupList.add(item); + } + } return deptGroupList; } @@ -408,12 +411,14 @@ private List getCompanyGroupList(Map> companyGroupMap) { List companyGroupList = new ArrayList<>(); for (String key : companyGroupMap.keySet()) { - EquipmentMultiAggr.EquipmentSimpleList item = new EquipmentMultiAggr.EquipmentSimpleList(); - item.setEquipmentName(key.split(";;;")[0]); - item.setModel(key.split(";;;")[1]); - item.setCompanyName(key.split(";;;")[2]); - item.setCount(companyGroupMap.get(key).size()); - companyGroupList.add(item); + if(key.split(";;;").length >= 3){ + EquipmentMultiAggr.EquipmentSimpleList item = new EquipmentMultiAggr.EquipmentSimpleList(); + item.setEquipmentName(key.split(";;;")[0]); + item.setModel(key.split(";;;")[1]); + item.setCompanyName(key.split(";;;")[2]); + item.setCount(companyGroupMap.get(key).size()); + companyGroupList.add(item); + } } return companyGroupList; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/BizBusinessOrderInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/BizBusinessOrderInfoServiceImpl.java index dac1790..fed732a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/BizBusinessOrderInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/BizBusinessOrderInfoServiceImpl.java @@ -1,6 +1,8 @@ package com.casic.missiles.service.impl.business; 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; @@ -8,6 +10,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.OrderBackRequest; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.dto.business.OrderListRequest; import com.casic.missiles.dto.business.OrderListResponse; import com.casic.missiles.enums.BusinessExceptionEnum; @@ -57,11 +60,13 @@ List parentDeptIds = permissionContext.getDeptService().getParentListById(deptId); wrapper.and(i->i.eq("customer_id",deptId).or().in(CollUtil.isNotEmpty(parentDeptIds),"customer_id",parentDeptIds)); - Page resultPage = orderListResponseMapper.selectPage(page, wrapper); - for (OrderListResponse customerAdviceInfo : resultPage.getRecords()) { + List list = orderListResponseMapper.listPage(page, wrapper); + page.setRecords(list); + for (OrderListResponse customerAdviceInfo : page.getRecords()) { DictCodeUtils.convertDictCodeToName(customerAdviceInfo); + customerAdviceInfo.setDeptName(permissionContext.getDeptService().getDeptName(customerAdviceInfo.getDeptId())); } - return resultPage; + return page; } @Override @@ -70,6 +75,7 @@ DictCodeUtils.convertDictCodeToName(orderInfo); // todo 交接单编号列表,另需补充根据交接单编号打印pdf的接口 QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.select("*","(select manufacturer from eqpt_equipment_info e where e.id = sample_id) as sampleManufacturer"); wrapper.eq("order_id", orderInfo.getId()); List orderSampleList = sampleRelationMapper.selectList(wrapper); for (BizBusinessOrderSampleRelation bizBusinessOrderSampleRelation : orderSampleList) { @@ -154,7 +160,38 @@ "{0} <= DATE_FORMAT(create_time,'%Y-%m-%d')", request.getCreateStartTime().split(" ")[0]); wrapper.apply(StringUtils.isNotBlank(request.getCreateEndTime()), "{0} >= DATE_FORMAT(create_time,'%Y-%m-%d')", request.getCreateEndTime().split(" ")[0]); + + wrapper.eq(ObjectUtil.isNotEmpty(request.getDeptId()),"dept_id",request.getDeptId()); + wrapper.like(StrUtil.isNotEmpty(request.getMeasureCompany()),"measure_company",request.getMeasureCompany()); + wrapper.eq(StrUtil.isNotEmpty(request.getReceiveStatus()),"receive_status",request.getReceiveStatus()); + + String positionSql = String.format("(select id from eqpt_equipment_info e where e.id in (select sample_id from biz_business_order_sample_relation r where r.order_id = t.id) and e.use_position_id = %s)",request.getUsePositionId()); + wrapper.exists(ObjectUtil.isNotEmpty(request.getUsePositionId()),positionSql); + + String manufactureNoSql = String.format("(select id from eqpt_equipment_info e where e.id in (select sample_id from biz_business_order_sample_relation r where r.order_id = t.id) and e.manufacture_no like '%%%s%%')",request.getManufactureNo()); + wrapper.exists(ObjectUtil.isNotEmpty(request.getManufactureNo()),manufactureNoSql); wrapper.orderByDesc("create_time"); return wrapper; } + + @Override + public String checkOrder(BizBusinessOrderInfo businessOrder) { + List sampleRelations = businessOrder.getCustomerSampleInfoList(); + if(CollUtil.isNotEmpty(sampleRelations)){ + List sampleIds = sampleRelations.stream().map(BizBusinessOrderSampleRelation::getSampleId).distinct().collect(Collectors.toList()); + List checkRes = this.baseMapper.checkSamples(sampleIds,businessOrder.getId()); + if(CollUtil.isNotEmpty(checkRes)){ + Map> map = checkRes.stream().collect(Collectors.groupingBy(OrderCheckDTO::getManufactureNo)); + StringBuilder stringBuilder = new StringBuilder(); + for (String manufactureNo : map.keySet()) { + List subRes = map.get(manufactureNo); + String orderNos = StrUtil.join(",",subRes.stream().map(OrderCheckDTO::getOrderNo).distinct().collect(Collectors.toList())); + stringBuilder.append(String.format("编号为%s的%s设备已在任务单%s中,",manufactureNo,subRes.get(0).getEquipmentName(),orderNos)); + } + stringBuilder.append("请确认是否继续提交"); + return stringBuilder.toString(); + } + } + return null; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModifyLogServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModifyLogServiceImpl.java new file mode 100644 index 0000000..825a9ee --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModifyLogServiceImpl.java @@ -0,0 +1,42 @@ +package com.casic.missiles.service.impl.equipment; + +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.core.application.service.AbstractUserService; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.mapper.equipment.EquipmentModifyLogMapper; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 服务实现类 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Service +@RequiredArgsConstructor +public class EquipmentModifyLogServiceImpl extends ServiceImpl implements IEquipmentModifyLogService { + + private final AbstractUserService userService; + + @Override + public List listByEquipment(Long equipmentId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("equipment_id",equipmentId); + queryWrapper.orderByDesc("operate_time"); + List list = this.list(queryWrapper); + for (EquipmentModifyLog modifyLog : list) { + if(ObjectUtil.isNotEmpty(modifyLog.getOperateUserId())){ + modifyLog.setOperateUserName(userService.getById(modifyLog.getOperateUserId()).getName()); + } + } + return list; + } +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java index c668e55..921a6a5 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java @@ -1,7 +1,15 @@ package com.casic.missiles.mapper.business; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.business.OrderListResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface BusinessOrderListResponseMapper extends BaseMapper { + + List listPage(@Param("page")Page page, + @Param("ew")QueryWrapper ew); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java index cde328c..219d6d8 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java @@ -41,9 +41,14 @@ List bizCertificateList(@Param("equipmentId") Long equipmentId); - List selectRemindListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindListPage(@Param("page") Page page, + @Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); - List selectRemindList(@Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindList(@Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java new file mode 100644 index 0000000..4b6f2f4 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-设备台账-设备变更记录 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface EquipmentModifyLogMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml index 18476de..a536f10 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml @@ -37,4 +37,24 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml new file mode 100644 index 0000000..e65b78e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, order_no, deliverer_id, deliverer, customer_id, customer_name, deliverer_tel, plan_deliver_time, require_over_time, customer_address, customer_phone, is_urgent, maintain_major, undertaker_id, measure_company, undertaker_name, undertake_time, receive_status, receive_illustrate, create_user_id, create_user_name, create_time, update_time + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml new file mode 100644 index 0000000..f1b61be --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, equipment_id, content, operate_user_id, operate_time + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java new file mode 100644 index 0000000..a65c4df --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java @@ -0,0 +1,36 @@ +package com.casic.missiles.controller.equipment; + +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 前端控制器 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Api(tags = "设备变更记录") +@RestController +@RequestMapping("/equipment") +@RequiredArgsConstructor +public class EquipmentModifyLogController { + + private final IEquipmentModifyLogService modifyLogService; + + @GetMapping("/modifyLogs") + public ReturnDTO> list(Long equipmentId){ + return ReturnUtil.success(modifyLogService.listByEquipment(equipmentId)); + } + +} diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java index 444318c..6b3af95 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java @@ -72,6 +72,15 @@ return businessOrderService.addOrder(businessOrder); } + @ApiOperation("任务单检查") + @PostMapping("/check") + public ReturnDTO orderChcek(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(businessOrderService.checkOrder(businessOrder)); + } + @ApiOperation("任务单更新") @PostMapping("/update") public ReturnDTO orderUpdate(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index 84ca460..352950c 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -36,6 +36,8 @@ template: calibration: "现场检定审批报告" environmental: "现场环境记录" + role: + operator: user # 操作手 logging: level.root: info diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java index 72514d8..2836b50 100644 --- a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java @@ -45,7 +45,7 @@ if(EquipmentStatusTypeEnum.DELAY.equals(equipmentInfo.getUsageStatus())){ QueryWrapper statusQueryWrapper = new QueryWrapper<>(); statusQueryWrapper.eq("equipment_id",equipmentInfo.getId()); - statusQueryWrapper.eq("", StatusApprovalTypeEnum.DELAY); + statusQueryWrapper.eq("approval_type", StatusApprovalTypeEnum.DELAY); statusQueryWrapper.orderByDesc("create_time"); statusQueryWrapper.last("limit 1"); EquipmentStatusApproval statusApproval = statusApprovalService.getOne(statusQueryWrapper); diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java new file mode 100644 index 0000000..f3aa066 --- /dev/null +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java @@ -0,0 +1,48 @@ +package com.casic.missiles.job.handler; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.model.status.EquipmentStatusApproval; +import com.casic.missiles.service.status.IEquipmentStatusApprovalService; +import com.casic.missiles.service.status.IEquipmentStatusLogService; +import com.xxl.job.core.context.XxlJobHelper; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +@Slf4j +@Component +@RequiredArgsConstructor +public class EquipmentStatusApprovalJobHandler { + + private final IEquipmentStatusApprovalService statusApprovalService; + + @XxlJob("equipmentStatusApprovalJobHandler") + public void equipmentStatusApprovalJobHandler(){ + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.HOUR_OF_DAY,0); + calendar.set(Calendar.MINUTE,0); + calendar.set(Calendar.SECOND,0); + Date startTime = calendar.getTime(); + + calendar.add(Calendar.DATE,1); + Date endTime = calendar.getTime(); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("approval_status", ApprovalStatusEnum.PASSED); + queryWrapper.ge("approval_time",startTime); + queryWrapper.lt("approval_time",endTime); + List list = statusApprovalService.list(queryWrapper); + for (EquipmentStatusApproval approval : list) { + statusApprovalService.updateStatusAndSaveLog(approval); + XxlJobHelper.log(String.format("update equipment %s status",approval.getEquipmentNo())); + } + } + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java new file mode 100644 index 0000000..032e2d4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java @@ -0,0 +1,14 @@ +package com.casic.missiles.dto.business; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class OrderCheckDTO { + + private String orderNo; + private String manufactureNo; + + private String equipmentName; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java index bdf1531..67899b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java @@ -1,9 +1,15 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @Description: * @Author: wangpeng @@ -18,12 +24,30 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; + @ApiModelProperty("使用部门(单个)") + private Long deptId; + + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty(value = "送检人", dataType = "String") private String deliverer; @ApiModelProperty(value = "创建人名字", dataType = "String") private String createUserName; + /** + * 检定(校准)单位(固定值) + */ + @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") + private String measureCompany; + + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "接收状态(包括接收相关状态和检测完成状态)", dataType = "String") + private String receiveStatus; + @ApiModelProperty(value = "创建开始时间", dataType = "String") private String createStartTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java index 3e4c232..f17b7a7 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.annotation.DictCodeField; @@ -30,6 +31,15 @@ private String customerName; /** + * 返回创建人的部门 + */ + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; + + /** * 检定(校准)单位(固定值) */ @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") @@ -52,4 +62,8 @@ @ApiModelProperty(value = "创建时间", dataType = "String") private String createTime; + + @ApiModelProperty(value = "计划送检时间", dataType = "String") + private String requireOverTime; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java index 83b45ac..08ba19e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java @@ -1,5 +1,7 @@ package com.casic.missiles.dto.equipment; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; @@ -82,4 +84,21 @@ @ApiModelProperty("计量标识") private String meterIdentify; + + @ApiModelProperty(value = "型号规格") + private String model; + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "所在单位id") + private Long companyId; + + @ApiModelProperty("所在单位名称") + private String companyName; + + @ApiModelProperty(value = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java index 6284acf..f313257 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java @@ -5,6 +5,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.List; + @Getter @Setter public class EquipmentCertificateQueryForm extends BaseQueryForm { @@ -29,4 +31,30 @@ @ApiModelProperty("证书有效期结束时间") private String certificateValidEnd; + + @ApiModelProperty("型号规格") + private String model; + + @ApiModelProperty("出厂编号") + private String manufactureNo; + + @ApiModelProperty("所在单位") + private Long companyId; + + @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; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java new file mode 100644 index 0000000..cdad130 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java @@ -0,0 +1,32 @@ +package com.casic.missiles.dto.equipment; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.model.equipment.EquipmentGroupInfo; +import com.casic.missiles.model.equipment.EquipmentGroupRelation; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class EquipmentGroupQueryForm { + + @ApiModelProperty("所在单位id") + private Long companyId; + + @ApiModelProperty("使用部门id") + private Long deptId; + + @ApiModelProperty(value = "分系统id") + private Long subSystemId; + + @ApiModelProperty("岗位ID") + private Long positionId; + + @ApiModelProperty("分组名称") + private String groupName; + + @ApiModelProperty("创建人id") + private String createUserId; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java index 43016e2..5773c4e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java @@ -50,4 +50,11 @@ @ApiModelProperty("备注") @ExcelIgnore private String remark; + + @ApiModelProperty("检定状态") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_REMIND_CHECK_STATUS) + private String checkStatus; + + @ApiModelProperty("检定状态名称") + private String checkStatusName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java index 663cd38..6a6f602 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java @@ -22,21 +22,46 @@ @ApiModelProperty("规格型号") private String model; + @ApiModelProperty("生产厂家") + private String manufacturer; + @ApiModelProperty("出厂编号") private String manufactureNo; @ApiModelProperty("设备类型(1受检设备;2特种设备)") private String equipmentType; + @ApiModelProperty("所在单位") + private Long companyId; + + @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; + @ApiModelProperty("使用状态") private String usageStatus; + @ApiModelProperty("使用状态列表") + private List usageStatusList; + + @ApiModelProperty("在用信息") + private String useSign; + @ApiModelProperty("证书有效期开始时间") private String certificateValidStart; @@ -52,4 +77,12 @@ @ApiModelProperty("参试任务结束时间") private String tastEndTime; + @ApiModelProperty("检定去向") + private String checkDestination; + + @ApiModelProperty("检定状态") + private String checkStatus; + + + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java new file mode 100644 index 0000000..e217254 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java @@ -0,0 +1,19 @@ +package com.casic.missiles.dto.equipment; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.Date; + +@Getter +@Setter +public class LimitInstructionUpdate { + + @ApiModelProperty("受检设备id") + private Long equipmentId; + + @ApiModelProperty("限用说明") + private String limitInstruction; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java index 068ffb6..8f1c6a0 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java @@ -56,6 +56,10 @@ @TableField("sample_model") private String sampleModel; + @ApiModelProperty("生产厂家") + @TableField(exist = false) + private String sampleManufacturer; + /** * 交接单id,避免重复交接(可为空) */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java new file mode 100644 index 0000000..a19c0a6 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java @@ -0,0 +1,72 @@ +package com.casic.missiles.model.equipment; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 受检设备-设备台账-设备变更记录 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Getter +@Setter +@TableName("eqpt_equipment_modify_log") +public class EquipmentModifyLog implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ApiModelProperty("主键") + @TableId("id") + private Long id; + + /** + * 设备id + */ + @ApiModelProperty("设备id") + @TableField("equipment_id") + private Long equipmentId; + + /** + * 变更内容 + */ + @ApiModelProperty("变更内容") + @TableField("content") + private String content; + + /** + * 变更人 + */ + @ApiModelProperty("变更人id") + @TableField("operate_user_id") + private Long operateUserId; + + @ApiModelProperty("变更人姓名") + @TableField(exist = false) + private String operateUserName; + /** + * 变更时间 + */ + @ApiModelProperty("变更时间") + @TableField("operate_time") + private Date operateTime; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java b/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java index 989211a..e8bc431 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java @@ -66,5 +66,9 @@ @ApiModelProperty("原因") private String reason; + @ApiModelProperty("状态维护申请id") + @TableField("status_approval_id") + private Long statusApprovalId; + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/annotation/EquipmentLog.java b/casic-metering-service/src/main/java/com/casic/missiles/annotation/EquipmentLog.java new file mode 100644 index 0000000..b28717e --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/annotation/EquipmentLog.java @@ -0,0 +1,20 @@ +package com.casic.missiles.annotation; + + +import java.lang.annotation.*; + +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface EquipmentLog { + + /** + * 设备ID + */ + String key(); + + /** + * 变更描述 + */ + String value() default ""; +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java new file mode 100644 index 0000000..b168cc1 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java @@ -0,0 +1,144 @@ +package com.casic.missiles.aop; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.casic.missiles.annotation.EquipmentLog; +import com.casic.missiles.core.application.service.AbstractAuthService; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentInfoService; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import com.casic.missiles.utils.CasicBeanUtil; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.Signature; +import org.aspectj.lang.annotation.After; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.aspectj.lang.annotation.Pointcut; +import org.aspectj.lang.reflect.MethodSignature; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.DefaultParameterNameDiscoverer; +import org.springframework.expression.EvaluationContext; +import org.springframework.expression.spel.standard.SpelExpression; +import org.springframework.expression.spel.standard.SpelExpressionParser; +import org.springframework.expression.spel.support.StandardEvaluationContext; +import org.springframework.scheduling.annotation.Async; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.stereotype.Component; + +import java.beans.Expression; +import java.lang.reflect.Method; +import java.util.Date; + +@Aspect +@Component +@EnableAsync +public class EquipmentLogAop { + + @Autowired + private IEquipmentInfoService equipmentInfoService; + @Autowired + private IEquipmentModifyLogService modifyLogService; + @Autowired + private AbstractAuthService authService; + + + /** + * 用于SpEL表达式解析. + */ + private final SpelExpressionParser parser = new SpelExpressionParser(); + /** + * 用于获取方法参数定义名字. + */ + private final DefaultParameterNameDiscoverer nameDiscoverer = new DefaultParameterNameDiscoverer(); + + private Long equipmentId; + private EquipmentInfo oldInfo; + + + /** + * 注解的位置 + */ + @Pointcut("@annotation(com.casic.missiles.annotation.EquipmentLog)") + public void logPointCut() {} + + @Before(value="logPointCut()") + public void before(JoinPoint joinPoint) throws Exception { + equipmentId = getEquipmentId(joinPoint); + if(ObjectUtil.isNotEmpty(equipmentId)){ + oldInfo = equipmentInfoService.getById(equipmentId); + }else { + oldInfo = null; + } + } + + private Long getEquipmentId(JoinPoint joinPoint) throws Exception { + //1.1获取目标对象对应的字节码对象 + Class targetCls= joinPoint.getTarget().getClass(); + //1.2获取目标方法对象 + //1.2.1 获取方法签名信息从而获取方法名和参数类型 + Signature signature= joinPoint.getSignature(); + //1.2.1.1将方法签名强转成MethodSignature类型,方便调用 + MethodSignature ms= (MethodSignature)signature; + //1.2.2通过字节码对象以及方法签名获取目标方法对象 + Method targetMethod=targetCls.getDeclaredMethod(ms.getName(),ms.getParameterTypes()); + //1.3获取目标方法对象上注解中的属性值 + //1.2.3 获取方法上的自定义requiredLog注解 + EquipmentLog equipmentLog=targetMethod.getAnnotation(EquipmentLog.class); + String val = generateKeyBySpEL(equipmentLog.key(), joinPoint); + return ObjectUtil.isNotEmpty(val) ? Long.valueOf(val) : null; + } + + @After(value="logPointCut()") + @Async + public void after(JoinPoint joinPoint){ + if(ObjectUtil.isNotEmpty(equipmentId) && ObjectUtil.isNotEmpty(oldInfo)){ + EquipmentInfo newInfo = equipmentInfoService.getById(equipmentId); + JSONArray res = CasicBeanUtil.fieldCompareDetail(oldInfo,newInfo,null); + if(ObjectUtil.isNotEmpty(res) && res.size() > 0){ + StringBuilder stringBuilder = new StringBuilder(); + for (int i = 0; i < res.size(); i++) { + JSONObject item = res.getJSONObject(i); + String filedName = equipmentInfoService.getFieldName(item.getString("field")); + if(StrUtil.isNotBlank(filedName)){ + String oldValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("oldVal")); + String newValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("newVal")); + String msg = String.format("字段名=%s,变更前=%s,变更后=%s;",filedName,oldValue,newValue); + stringBuilder.append(msg); + } + } + saveLog(equipmentId,stringBuilder.toString()); + } + } + } + + private void saveLog(Long equipmentId,String content){ + if(StrUtil.isNotBlank(content)){ + EquipmentModifyLog modifyLog = new EquipmentModifyLog(); + modifyLog.setEquipmentId(equipmentId); + modifyLog.setContent(content); + modifyLog.setOperateTime(new Date()); + AuthUser authUser = authService.getLoginUser(); + if(ObjectUtil.isNotEmpty(authUser)){ + modifyLog.setOperateUserId(authUser.getId()); + } + modifyLogService.save(modifyLog); + } + } + + public String generateKeyBySpEL(String spELString, JoinPoint joinPoint) throws Exception { + MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); + String[] paramNames = nameDiscoverer.getParameterNames(methodSignature.getMethod()); + SpelExpression expression = (SpelExpression) parser.parseExpression(spELString); + EvaluationContext context = new StandardEvaluationContext(); + Object[] args = joinPoint.getArgs(); + for (int i = 0; i < args.length; i++) { + context.setVariable(paramNames[i], args[i]); + } + return expression.getValue(context).toString(); + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java index 074d0a1..596ab06 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java @@ -28,5 +28,7 @@ ReturnDTO updateStatusById(Long id, String alreadyReceived); + String checkOrder(BizBusinessOrderInfo businessOrder); + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModifyLogService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModifyLogService.java new file mode 100644 index 0000000..dda4137 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModifyLogService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.service.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 服务类 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface IEquipmentModifyLogService extends IService { + + List listByEquipment(Long equipmentId); + + +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java index 759cb30..158cc4e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java @@ -69,10 +69,10 @@ statisticsDTO.setDeptName(subList.get(0).getDeptName()); statisticsDTO.setTotal((long) subList.size()); - statisticsDTO.setMonthToExpire(subList.stream().filter(i->i.getCertificateValid().after(new Date()) && DateUtil.month(new Date()) == DateUtil.month(i.getCertificateValid())).count()); - statisticsDTO.setExpired(subList.stream().filter(i->i.getCertificateValid().before(new Date())).count()); + statisticsDTO.setMonthToExpire(subList.stream().filter(i->ObjectUtil.isNotEmpty(i.getCertificateValid()) && i.getCertificateValid().after(new Date()) && DateUtil.month(new Date()) == DateUtil.month(i.getCertificateValid())).count()); + statisticsDTO.setExpired(subList.stream().filter(i->ObjectUtil.isNotEmpty(i.getCertificateValid()) && i.getCertificateValid().before(new Date())).count()); statisticsDTO.setInCheck(subList.stream().filter(i-> StrUtil.isNotEmpty(i.getLatestSampleStatus()) && SampleStatusEnum.getSampleStatusByCompletion(InCheckSampleStatus).contains(i.getLatestSampleStatus())).count()); - statisticsDTO.setYearToCheck(subList.stream().filter(i-> DateUtil.year(new Date()) == DateUtil.year(i.getCertificateValid())).count()); + statisticsDTO.setYearToCheck(subList.stream().filter(i-> ObjectUtil.isNotEmpty(i.getCertificateValid()) && DateUtil.year(new Date()) == DateUtil.year(i.getCertificateValid())).count()); statisticsDTO.setYearChecked(subList.stream().mapToLong(i->Long.valueOf(i.getYearChecked())).sum()); Optional planFinishOpt = planFinishDTOList.stream().filter(i->deptId.equals(i.getDeptId())).findFirst(); @@ -393,13 +393,16 @@ private List getDeptGroupList(Map> deptGroupMap) { List deptGroupList = new ArrayList<>(); for (String key : deptGroupMap.keySet()) { - EquipmentMultiAggr.EquipmentSimpleList item = new EquipmentMultiAggr.EquipmentSimpleList(); - item.setEquipmentName(key.split(";;;")[0]); - item.setModel(key.split(";;;")[1]); - item.setCompanyName(key.split(";;;")[2]); - item.setDeptName(key.split(";;;")[3]); - item.setCount(deptGroupMap.get(key).size()); - deptGroupList.add(item); + if(key.split(";;;").length >= 4){ + EquipmentMultiAggr.EquipmentSimpleList item = new EquipmentMultiAggr.EquipmentSimpleList(); + item.setEquipmentName(key.split(";;;")[0]); + item.setModel(key.split(";;;")[1]); + item.setCompanyName(key.split(";;;")[2]); + item.setDeptName(key.split(";;;")[3]); + item.setCount(deptGroupMap.get(key).size()); + deptGroupList.add(item); + } + } return deptGroupList; } @@ -408,12 +411,14 @@ private List getCompanyGroupList(Map> companyGroupMap) { List companyGroupList = new ArrayList<>(); for (String key : companyGroupMap.keySet()) { - EquipmentMultiAggr.EquipmentSimpleList item = new EquipmentMultiAggr.EquipmentSimpleList(); - item.setEquipmentName(key.split(";;;")[0]); - item.setModel(key.split(";;;")[1]); - item.setCompanyName(key.split(";;;")[2]); - item.setCount(companyGroupMap.get(key).size()); - companyGroupList.add(item); + if(key.split(";;;").length >= 3){ + EquipmentMultiAggr.EquipmentSimpleList item = new EquipmentMultiAggr.EquipmentSimpleList(); + item.setEquipmentName(key.split(";;;")[0]); + item.setModel(key.split(";;;")[1]); + item.setCompanyName(key.split(";;;")[2]); + item.setCount(companyGroupMap.get(key).size()); + companyGroupList.add(item); + } } return companyGroupList; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/BizBusinessOrderInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/BizBusinessOrderInfoServiceImpl.java index dac1790..fed732a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/BizBusinessOrderInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/BizBusinessOrderInfoServiceImpl.java @@ -1,6 +1,8 @@ package com.casic.missiles.service.impl.business; 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; @@ -8,6 +10,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.OrderBackRequest; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.dto.business.OrderListRequest; import com.casic.missiles.dto.business.OrderListResponse; import com.casic.missiles.enums.BusinessExceptionEnum; @@ -57,11 +60,13 @@ List parentDeptIds = permissionContext.getDeptService().getParentListById(deptId); wrapper.and(i->i.eq("customer_id",deptId).or().in(CollUtil.isNotEmpty(parentDeptIds),"customer_id",parentDeptIds)); - Page resultPage = orderListResponseMapper.selectPage(page, wrapper); - for (OrderListResponse customerAdviceInfo : resultPage.getRecords()) { + List list = orderListResponseMapper.listPage(page, wrapper); + page.setRecords(list); + for (OrderListResponse customerAdviceInfo : page.getRecords()) { DictCodeUtils.convertDictCodeToName(customerAdviceInfo); + customerAdviceInfo.setDeptName(permissionContext.getDeptService().getDeptName(customerAdviceInfo.getDeptId())); } - return resultPage; + return page; } @Override @@ -70,6 +75,7 @@ DictCodeUtils.convertDictCodeToName(orderInfo); // todo 交接单编号列表,另需补充根据交接单编号打印pdf的接口 QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.select("*","(select manufacturer from eqpt_equipment_info e where e.id = sample_id) as sampleManufacturer"); wrapper.eq("order_id", orderInfo.getId()); List orderSampleList = sampleRelationMapper.selectList(wrapper); for (BizBusinessOrderSampleRelation bizBusinessOrderSampleRelation : orderSampleList) { @@ -154,7 +160,38 @@ "{0} <= DATE_FORMAT(create_time,'%Y-%m-%d')", request.getCreateStartTime().split(" ")[0]); wrapper.apply(StringUtils.isNotBlank(request.getCreateEndTime()), "{0} >= DATE_FORMAT(create_time,'%Y-%m-%d')", request.getCreateEndTime().split(" ")[0]); + + wrapper.eq(ObjectUtil.isNotEmpty(request.getDeptId()),"dept_id",request.getDeptId()); + wrapper.like(StrUtil.isNotEmpty(request.getMeasureCompany()),"measure_company",request.getMeasureCompany()); + wrapper.eq(StrUtil.isNotEmpty(request.getReceiveStatus()),"receive_status",request.getReceiveStatus()); + + String positionSql = String.format("(select id from eqpt_equipment_info e where e.id in (select sample_id from biz_business_order_sample_relation r where r.order_id = t.id) and e.use_position_id = %s)",request.getUsePositionId()); + wrapper.exists(ObjectUtil.isNotEmpty(request.getUsePositionId()),positionSql); + + String manufactureNoSql = String.format("(select id from eqpt_equipment_info e where e.id in (select sample_id from biz_business_order_sample_relation r where r.order_id = t.id) and e.manufacture_no like '%%%s%%')",request.getManufactureNo()); + wrapper.exists(ObjectUtil.isNotEmpty(request.getManufactureNo()),manufactureNoSql); wrapper.orderByDesc("create_time"); return wrapper; } + + @Override + public String checkOrder(BizBusinessOrderInfo businessOrder) { + List sampleRelations = businessOrder.getCustomerSampleInfoList(); + if(CollUtil.isNotEmpty(sampleRelations)){ + List sampleIds = sampleRelations.stream().map(BizBusinessOrderSampleRelation::getSampleId).distinct().collect(Collectors.toList()); + List checkRes = this.baseMapper.checkSamples(sampleIds,businessOrder.getId()); + if(CollUtil.isNotEmpty(checkRes)){ + Map> map = checkRes.stream().collect(Collectors.groupingBy(OrderCheckDTO::getManufactureNo)); + StringBuilder stringBuilder = new StringBuilder(); + for (String manufactureNo : map.keySet()) { + List subRes = map.get(manufactureNo); + String orderNos = StrUtil.join(",",subRes.stream().map(OrderCheckDTO::getOrderNo).distinct().collect(Collectors.toList())); + stringBuilder.append(String.format("编号为%s的%s设备已在任务单%s中,",manufactureNo,subRes.get(0).getEquipmentName(),orderNos)); + } + stringBuilder.append("请确认是否继续提交"); + return stringBuilder.toString(); + } + } + return null; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModifyLogServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModifyLogServiceImpl.java new file mode 100644 index 0000000..825a9ee --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModifyLogServiceImpl.java @@ -0,0 +1,42 @@ +package com.casic.missiles.service.impl.equipment; + +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.core.application.service.AbstractUserService; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.mapper.equipment.EquipmentModifyLogMapper; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 服务实现类 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Service +@RequiredArgsConstructor +public class EquipmentModifyLogServiceImpl extends ServiceImpl implements IEquipmentModifyLogService { + + private final AbstractUserService userService; + + @Override + public List listByEquipment(Long equipmentId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("equipment_id",equipmentId); + queryWrapper.orderByDesc("operate_time"); + List list = this.list(queryWrapper); + for (EquipmentModifyLog modifyLog : list) { + if(ObjectUtil.isNotEmpty(modifyLog.getOperateUserId())){ + modifyLog.setOperateUserName(userService.getById(modifyLog.getOperateUserId()).getName()); + } + } + return list; + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java index 6dceac4..6de99ec 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java @@ -26,6 +26,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.Date; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; @@ -104,6 +105,13 @@ public void finishApproval(Long approvalId) { EquipmentStatusApproval approval = this.getById(approvalId); super.updateApprovalStatus(approval.getId(),ApprovalStatusEnum.PASSED); + if(ObjectUtil.isEmpty(approval.getApprovalTime()) || approval.getApprovalTime().before(new Date())){ + updateStatusAndSaveLog(approval); + } + } + + @Override + public void updateStatusAndSaveLog(EquipmentStatusApproval approval){ statusLogService.saveLog(approval); switch (approval.getApprovalType()) { case SEAL: diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java index c668e55..921a6a5 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java @@ -1,7 +1,15 @@ package com.casic.missiles.mapper.business; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.business.OrderListResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface BusinessOrderListResponseMapper extends BaseMapper { + + List listPage(@Param("page")Page page, + @Param("ew")QueryWrapper ew); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java index cde328c..219d6d8 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java @@ -41,9 +41,14 @@ List bizCertificateList(@Param("equipmentId") Long equipmentId); - List selectRemindListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindListPage(@Param("page") Page page, + @Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); - List selectRemindList(@Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindList(@Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java new file mode 100644 index 0000000..4b6f2f4 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-设备台账-设备变更记录 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface EquipmentModifyLogMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml index 18476de..a536f10 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml @@ -37,4 +37,24 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml new file mode 100644 index 0000000..e65b78e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, order_no, deliverer_id, deliverer, customer_id, customer_name, deliverer_tel, plan_deliver_time, require_over_time, customer_address, customer_phone, is_urgent, maintain_major, undertaker_id, measure_company, undertaker_name, undertake_time, receive_status, receive_illustrate, create_user_id, create_user_name, create_time, update_time + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml new file mode 100644 index 0000000..f1b61be --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, equipment_id, content, operate_user_id, operate_time + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java new file mode 100644 index 0000000..a65c4df --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java @@ -0,0 +1,36 @@ +package com.casic.missiles.controller.equipment; + +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 前端控制器 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Api(tags = "设备变更记录") +@RestController +@RequestMapping("/equipment") +@RequiredArgsConstructor +public class EquipmentModifyLogController { + + private final IEquipmentModifyLogService modifyLogService; + + @GetMapping("/modifyLogs") + public ReturnDTO> list(Long equipmentId){ + return ReturnUtil.success(modifyLogService.listByEquipment(equipmentId)); + } + +} diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java index 444318c..6b3af95 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java @@ -72,6 +72,15 @@ return businessOrderService.addOrder(businessOrder); } + @ApiOperation("任务单检查") + @PostMapping("/check") + public ReturnDTO orderChcek(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(businessOrderService.checkOrder(businessOrder)); + } + @ApiOperation("任务单更新") @PostMapping("/update") public ReturnDTO orderUpdate(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index 84ca460..352950c 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -36,6 +36,8 @@ template: calibration: "现场检定审批报告" environmental: "现场环境记录" + role: + operator: user # 操作手 logging: level.root: info diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java index 72514d8..2836b50 100644 --- a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java @@ -45,7 +45,7 @@ if(EquipmentStatusTypeEnum.DELAY.equals(equipmentInfo.getUsageStatus())){ QueryWrapper statusQueryWrapper = new QueryWrapper<>(); statusQueryWrapper.eq("equipment_id",equipmentInfo.getId()); - statusQueryWrapper.eq("", StatusApprovalTypeEnum.DELAY); + statusQueryWrapper.eq("approval_type", StatusApprovalTypeEnum.DELAY); statusQueryWrapper.orderByDesc("create_time"); statusQueryWrapper.last("limit 1"); EquipmentStatusApproval statusApproval = statusApprovalService.getOne(statusQueryWrapper); diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java new file mode 100644 index 0000000..f3aa066 --- /dev/null +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java @@ -0,0 +1,48 @@ +package com.casic.missiles.job.handler; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.model.status.EquipmentStatusApproval; +import com.casic.missiles.service.status.IEquipmentStatusApprovalService; +import com.casic.missiles.service.status.IEquipmentStatusLogService; +import com.xxl.job.core.context.XxlJobHelper; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +@Slf4j +@Component +@RequiredArgsConstructor +public class EquipmentStatusApprovalJobHandler { + + private final IEquipmentStatusApprovalService statusApprovalService; + + @XxlJob("equipmentStatusApprovalJobHandler") + public void equipmentStatusApprovalJobHandler(){ + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.HOUR_OF_DAY,0); + calendar.set(Calendar.MINUTE,0); + calendar.set(Calendar.SECOND,0); + Date startTime = calendar.getTime(); + + calendar.add(Calendar.DATE,1); + Date endTime = calendar.getTime(); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("approval_status", ApprovalStatusEnum.PASSED); + queryWrapper.ge("approval_time",startTime); + queryWrapper.lt("approval_time",endTime); + List list = statusApprovalService.list(queryWrapper); + for (EquipmentStatusApproval approval : list) { + statusApprovalService.updateStatusAndSaveLog(approval); + XxlJobHelper.log(String.format("update equipment %s status",approval.getEquipmentNo())); + } + } + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java new file mode 100644 index 0000000..032e2d4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java @@ -0,0 +1,14 @@ +package com.casic.missiles.dto.business; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class OrderCheckDTO { + + private String orderNo; + private String manufactureNo; + + private String equipmentName; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java index bdf1531..67899b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java @@ -1,9 +1,15 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @Description: * @Author: wangpeng @@ -18,12 +24,30 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; + @ApiModelProperty("使用部门(单个)") + private Long deptId; + + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty(value = "送检人", dataType = "String") private String deliverer; @ApiModelProperty(value = "创建人名字", dataType = "String") private String createUserName; + /** + * 检定(校准)单位(固定值) + */ + @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") + private String measureCompany; + + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "接收状态(包括接收相关状态和检测完成状态)", dataType = "String") + private String receiveStatus; + @ApiModelProperty(value = "创建开始时间", dataType = "String") private String createStartTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java index 3e4c232..f17b7a7 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.annotation.DictCodeField; @@ -30,6 +31,15 @@ private String customerName; /** + * 返回创建人的部门 + */ + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; + + /** * 检定(校准)单位(固定值) */ @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") @@ -52,4 +62,8 @@ @ApiModelProperty(value = "创建时间", dataType = "String") private String createTime; + + @ApiModelProperty(value = "计划送检时间", dataType = "String") + private String requireOverTime; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java index 83b45ac..08ba19e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java @@ -1,5 +1,7 @@ package com.casic.missiles.dto.equipment; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; @@ -82,4 +84,21 @@ @ApiModelProperty("计量标识") private String meterIdentify; + + @ApiModelProperty(value = "型号规格") + private String model; + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "所在单位id") + private Long companyId; + + @ApiModelProperty("所在单位名称") + private String companyName; + + @ApiModelProperty(value = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java index 6284acf..f313257 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java @@ -5,6 +5,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.List; + @Getter @Setter public class EquipmentCertificateQueryForm extends BaseQueryForm { @@ -29,4 +31,30 @@ @ApiModelProperty("证书有效期结束时间") private String certificateValidEnd; + + @ApiModelProperty("型号规格") + private String model; + + @ApiModelProperty("出厂编号") + private String manufactureNo; + + @ApiModelProperty("所在单位") + private Long companyId; + + @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; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java new file mode 100644 index 0000000..cdad130 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java @@ -0,0 +1,32 @@ +package com.casic.missiles.dto.equipment; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.model.equipment.EquipmentGroupInfo; +import com.casic.missiles.model.equipment.EquipmentGroupRelation; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class EquipmentGroupQueryForm { + + @ApiModelProperty("所在单位id") + private Long companyId; + + @ApiModelProperty("使用部门id") + private Long deptId; + + @ApiModelProperty(value = "分系统id") + private Long subSystemId; + + @ApiModelProperty("岗位ID") + private Long positionId; + + @ApiModelProperty("分组名称") + private String groupName; + + @ApiModelProperty("创建人id") + private String createUserId; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java index 43016e2..5773c4e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java @@ -50,4 +50,11 @@ @ApiModelProperty("备注") @ExcelIgnore private String remark; + + @ApiModelProperty("检定状态") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_REMIND_CHECK_STATUS) + private String checkStatus; + + @ApiModelProperty("检定状态名称") + private String checkStatusName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java index 663cd38..6a6f602 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java @@ -22,21 +22,46 @@ @ApiModelProperty("规格型号") private String model; + @ApiModelProperty("生产厂家") + private String manufacturer; + @ApiModelProperty("出厂编号") private String manufactureNo; @ApiModelProperty("设备类型(1受检设备;2特种设备)") private String equipmentType; + @ApiModelProperty("所在单位") + private Long companyId; + + @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; + @ApiModelProperty("使用状态") private String usageStatus; + @ApiModelProperty("使用状态列表") + private List usageStatusList; + + @ApiModelProperty("在用信息") + private String useSign; + @ApiModelProperty("证书有效期开始时间") private String certificateValidStart; @@ -52,4 +77,12 @@ @ApiModelProperty("参试任务结束时间") private String tastEndTime; + @ApiModelProperty("检定去向") + private String checkDestination; + + @ApiModelProperty("检定状态") + private String checkStatus; + + + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java new file mode 100644 index 0000000..e217254 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java @@ -0,0 +1,19 @@ +package com.casic.missiles.dto.equipment; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.Date; + +@Getter +@Setter +public class LimitInstructionUpdate { + + @ApiModelProperty("受检设备id") + private Long equipmentId; + + @ApiModelProperty("限用说明") + private String limitInstruction; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java index 068ffb6..8f1c6a0 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java @@ -56,6 +56,10 @@ @TableField("sample_model") private String sampleModel; + @ApiModelProperty("生产厂家") + @TableField(exist = false) + private String sampleManufacturer; + /** * 交接单id,避免重复交接(可为空) */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java new file mode 100644 index 0000000..a19c0a6 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java @@ -0,0 +1,72 @@ +package com.casic.missiles.model.equipment; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 受检设备-设备台账-设备变更记录 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Getter +@Setter +@TableName("eqpt_equipment_modify_log") +public class EquipmentModifyLog implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ApiModelProperty("主键") + @TableId("id") + private Long id; + + /** + * 设备id + */ + @ApiModelProperty("设备id") + @TableField("equipment_id") + private Long equipmentId; + + /** + * 变更内容 + */ + @ApiModelProperty("变更内容") + @TableField("content") + private String content; + + /** + * 变更人 + */ + @ApiModelProperty("变更人id") + @TableField("operate_user_id") + private Long operateUserId; + + @ApiModelProperty("变更人姓名") + @TableField(exist = false) + private String operateUserName; + /** + * 变更时间 + */ + @ApiModelProperty("变更时间") + @TableField("operate_time") + private Date operateTime; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java b/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java index 989211a..e8bc431 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java @@ -66,5 +66,9 @@ @ApiModelProperty("原因") private String reason; + @ApiModelProperty("状态维护申请id") + @TableField("status_approval_id") + private Long statusApprovalId; + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/annotation/EquipmentLog.java b/casic-metering-service/src/main/java/com/casic/missiles/annotation/EquipmentLog.java new file mode 100644 index 0000000..b28717e --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/annotation/EquipmentLog.java @@ -0,0 +1,20 @@ +package com.casic.missiles.annotation; + + +import java.lang.annotation.*; + +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface EquipmentLog { + + /** + * 设备ID + */ + String key(); + + /** + * 变更描述 + */ + String value() default ""; +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java new file mode 100644 index 0000000..b168cc1 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java @@ -0,0 +1,144 @@ +package com.casic.missiles.aop; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.casic.missiles.annotation.EquipmentLog; +import com.casic.missiles.core.application.service.AbstractAuthService; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentInfoService; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import com.casic.missiles.utils.CasicBeanUtil; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.Signature; +import org.aspectj.lang.annotation.After; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.aspectj.lang.annotation.Pointcut; +import org.aspectj.lang.reflect.MethodSignature; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.DefaultParameterNameDiscoverer; +import org.springframework.expression.EvaluationContext; +import org.springframework.expression.spel.standard.SpelExpression; +import org.springframework.expression.spel.standard.SpelExpressionParser; +import org.springframework.expression.spel.support.StandardEvaluationContext; +import org.springframework.scheduling.annotation.Async; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.stereotype.Component; + +import java.beans.Expression; +import java.lang.reflect.Method; +import java.util.Date; + +@Aspect +@Component +@EnableAsync +public class EquipmentLogAop { + + @Autowired + private IEquipmentInfoService equipmentInfoService; + @Autowired + private IEquipmentModifyLogService modifyLogService; + @Autowired + private AbstractAuthService authService; + + + /** + * 用于SpEL表达式解析. + */ + private final SpelExpressionParser parser = new SpelExpressionParser(); + /** + * 用于获取方法参数定义名字. + */ + private final DefaultParameterNameDiscoverer nameDiscoverer = new DefaultParameterNameDiscoverer(); + + private Long equipmentId; + private EquipmentInfo oldInfo; + + + /** + * 注解的位置 + */ + @Pointcut("@annotation(com.casic.missiles.annotation.EquipmentLog)") + public void logPointCut() {} + + @Before(value="logPointCut()") + public void before(JoinPoint joinPoint) throws Exception { + equipmentId = getEquipmentId(joinPoint); + if(ObjectUtil.isNotEmpty(equipmentId)){ + oldInfo = equipmentInfoService.getById(equipmentId); + }else { + oldInfo = null; + } + } + + private Long getEquipmentId(JoinPoint joinPoint) throws Exception { + //1.1获取目标对象对应的字节码对象 + Class targetCls= joinPoint.getTarget().getClass(); + //1.2获取目标方法对象 + //1.2.1 获取方法签名信息从而获取方法名和参数类型 + Signature signature= joinPoint.getSignature(); + //1.2.1.1将方法签名强转成MethodSignature类型,方便调用 + MethodSignature ms= (MethodSignature)signature; + //1.2.2通过字节码对象以及方法签名获取目标方法对象 + Method targetMethod=targetCls.getDeclaredMethod(ms.getName(),ms.getParameterTypes()); + //1.3获取目标方法对象上注解中的属性值 + //1.2.3 获取方法上的自定义requiredLog注解 + EquipmentLog equipmentLog=targetMethod.getAnnotation(EquipmentLog.class); + String val = generateKeyBySpEL(equipmentLog.key(), joinPoint); + return ObjectUtil.isNotEmpty(val) ? Long.valueOf(val) : null; + } + + @After(value="logPointCut()") + @Async + public void after(JoinPoint joinPoint){ + if(ObjectUtil.isNotEmpty(equipmentId) && ObjectUtil.isNotEmpty(oldInfo)){ + EquipmentInfo newInfo = equipmentInfoService.getById(equipmentId); + JSONArray res = CasicBeanUtil.fieldCompareDetail(oldInfo,newInfo,null); + if(ObjectUtil.isNotEmpty(res) && res.size() > 0){ + StringBuilder stringBuilder = new StringBuilder(); + for (int i = 0; i < res.size(); i++) { + JSONObject item = res.getJSONObject(i); + String filedName = equipmentInfoService.getFieldName(item.getString("field")); + if(StrUtil.isNotBlank(filedName)){ + String oldValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("oldVal")); + String newValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("newVal")); + String msg = String.format("字段名=%s,变更前=%s,变更后=%s;",filedName,oldValue,newValue); + stringBuilder.append(msg); + } + } + saveLog(equipmentId,stringBuilder.toString()); + } + } + } + + private void saveLog(Long equipmentId,String content){ + if(StrUtil.isNotBlank(content)){ + EquipmentModifyLog modifyLog = new EquipmentModifyLog(); + modifyLog.setEquipmentId(equipmentId); + modifyLog.setContent(content); + modifyLog.setOperateTime(new Date()); + AuthUser authUser = authService.getLoginUser(); + if(ObjectUtil.isNotEmpty(authUser)){ + modifyLog.setOperateUserId(authUser.getId()); + } + modifyLogService.save(modifyLog); + } + } + + public String generateKeyBySpEL(String spELString, JoinPoint joinPoint) throws Exception { + MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); + String[] paramNames = nameDiscoverer.getParameterNames(methodSignature.getMethod()); + SpelExpression expression = (SpelExpression) parser.parseExpression(spELString); + EvaluationContext context = new StandardEvaluationContext(); + Object[] args = joinPoint.getArgs(); + for (int i = 0; i < args.length; i++) { + context.setVariable(paramNames[i], args[i]); + } + return expression.getValue(context).toString(); + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java index 074d0a1..596ab06 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java @@ -28,5 +28,7 @@ ReturnDTO updateStatusById(Long id, String alreadyReceived); + String checkOrder(BizBusinessOrderInfo businessOrder); + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModifyLogService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModifyLogService.java new file mode 100644 index 0000000..dda4137 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModifyLogService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.service.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 服务类 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface IEquipmentModifyLogService extends IService { + + List listByEquipment(Long equipmentId); + + +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java index 759cb30..158cc4e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java @@ -69,10 +69,10 @@ statisticsDTO.setDeptName(subList.get(0).getDeptName()); statisticsDTO.setTotal((long) subList.size()); - statisticsDTO.setMonthToExpire(subList.stream().filter(i->i.getCertificateValid().after(new Date()) && DateUtil.month(new Date()) == DateUtil.month(i.getCertificateValid())).count()); - statisticsDTO.setExpired(subList.stream().filter(i->i.getCertificateValid().before(new Date())).count()); + statisticsDTO.setMonthToExpire(subList.stream().filter(i->ObjectUtil.isNotEmpty(i.getCertificateValid()) && i.getCertificateValid().after(new Date()) && DateUtil.month(new Date()) == DateUtil.month(i.getCertificateValid())).count()); + statisticsDTO.setExpired(subList.stream().filter(i->ObjectUtil.isNotEmpty(i.getCertificateValid()) && i.getCertificateValid().before(new Date())).count()); statisticsDTO.setInCheck(subList.stream().filter(i-> StrUtil.isNotEmpty(i.getLatestSampleStatus()) && SampleStatusEnum.getSampleStatusByCompletion(InCheckSampleStatus).contains(i.getLatestSampleStatus())).count()); - statisticsDTO.setYearToCheck(subList.stream().filter(i-> DateUtil.year(new Date()) == DateUtil.year(i.getCertificateValid())).count()); + statisticsDTO.setYearToCheck(subList.stream().filter(i-> ObjectUtil.isNotEmpty(i.getCertificateValid()) && DateUtil.year(new Date()) == DateUtil.year(i.getCertificateValid())).count()); statisticsDTO.setYearChecked(subList.stream().mapToLong(i->Long.valueOf(i.getYearChecked())).sum()); Optional planFinishOpt = planFinishDTOList.stream().filter(i->deptId.equals(i.getDeptId())).findFirst(); @@ -393,13 +393,16 @@ private List getDeptGroupList(Map> deptGroupMap) { List deptGroupList = new ArrayList<>(); for (String key : deptGroupMap.keySet()) { - EquipmentMultiAggr.EquipmentSimpleList item = new EquipmentMultiAggr.EquipmentSimpleList(); - item.setEquipmentName(key.split(";;;")[0]); - item.setModel(key.split(";;;")[1]); - item.setCompanyName(key.split(";;;")[2]); - item.setDeptName(key.split(";;;")[3]); - item.setCount(deptGroupMap.get(key).size()); - deptGroupList.add(item); + if(key.split(";;;").length >= 4){ + EquipmentMultiAggr.EquipmentSimpleList item = new EquipmentMultiAggr.EquipmentSimpleList(); + item.setEquipmentName(key.split(";;;")[0]); + item.setModel(key.split(";;;")[1]); + item.setCompanyName(key.split(";;;")[2]); + item.setDeptName(key.split(";;;")[3]); + item.setCount(deptGroupMap.get(key).size()); + deptGroupList.add(item); + } + } return deptGroupList; } @@ -408,12 +411,14 @@ private List getCompanyGroupList(Map> companyGroupMap) { List companyGroupList = new ArrayList<>(); for (String key : companyGroupMap.keySet()) { - EquipmentMultiAggr.EquipmentSimpleList item = new EquipmentMultiAggr.EquipmentSimpleList(); - item.setEquipmentName(key.split(";;;")[0]); - item.setModel(key.split(";;;")[1]); - item.setCompanyName(key.split(";;;")[2]); - item.setCount(companyGroupMap.get(key).size()); - companyGroupList.add(item); + if(key.split(";;;").length >= 3){ + EquipmentMultiAggr.EquipmentSimpleList item = new EquipmentMultiAggr.EquipmentSimpleList(); + item.setEquipmentName(key.split(";;;")[0]); + item.setModel(key.split(";;;")[1]); + item.setCompanyName(key.split(";;;")[2]); + item.setCount(companyGroupMap.get(key).size()); + companyGroupList.add(item); + } } return companyGroupList; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/BizBusinessOrderInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/BizBusinessOrderInfoServiceImpl.java index dac1790..fed732a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/BizBusinessOrderInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/BizBusinessOrderInfoServiceImpl.java @@ -1,6 +1,8 @@ package com.casic.missiles.service.impl.business; 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; @@ -8,6 +10,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.OrderBackRequest; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.dto.business.OrderListRequest; import com.casic.missiles.dto.business.OrderListResponse; import com.casic.missiles.enums.BusinessExceptionEnum; @@ -57,11 +60,13 @@ List parentDeptIds = permissionContext.getDeptService().getParentListById(deptId); wrapper.and(i->i.eq("customer_id",deptId).or().in(CollUtil.isNotEmpty(parentDeptIds),"customer_id",parentDeptIds)); - Page resultPage = orderListResponseMapper.selectPage(page, wrapper); - for (OrderListResponse customerAdviceInfo : resultPage.getRecords()) { + List list = orderListResponseMapper.listPage(page, wrapper); + page.setRecords(list); + for (OrderListResponse customerAdviceInfo : page.getRecords()) { DictCodeUtils.convertDictCodeToName(customerAdviceInfo); + customerAdviceInfo.setDeptName(permissionContext.getDeptService().getDeptName(customerAdviceInfo.getDeptId())); } - return resultPage; + return page; } @Override @@ -70,6 +75,7 @@ DictCodeUtils.convertDictCodeToName(orderInfo); // todo 交接单编号列表,另需补充根据交接单编号打印pdf的接口 QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.select("*","(select manufacturer from eqpt_equipment_info e where e.id = sample_id) as sampleManufacturer"); wrapper.eq("order_id", orderInfo.getId()); List orderSampleList = sampleRelationMapper.selectList(wrapper); for (BizBusinessOrderSampleRelation bizBusinessOrderSampleRelation : orderSampleList) { @@ -154,7 +160,38 @@ "{0} <= DATE_FORMAT(create_time,'%Y-%m-%d')", request.getCreateStartTime().split(" ")[0]); wrapper.apply(StringUtils.isNotBlank(request.getCreateEndTime()), "{0} >= DATE_FORMAT(create_time,'%Y-%m-%d')", request.getCreateEndTime().split(" ")[0]); + + wrapper.eq(ObjectUtil.isNotEmpty(request.getDeptId()),"dept_id",request.getDeptId()); + wrapper.like(StrUtil.isNotEmpty(request.getMeasureCompany()),"measure_company",request.getMeasureCompany()); + wrapper.eq(StrUtil.isNotEmpty(request.getReceiveStatus()),"receive_status",request.getReceiveStatus()); + + String positionSql = String.format("(select id from eqpt_equipment_info e where e.id in (select sample_id from biz_business_order_sample_relation r where r.order_id = t.id) and e.use_position_id = %s)",request.getUsePositionId()); + wrapper.exists(ObjectUtil.isNotEmpty(request.getUsePositionId()),positionSql); + + String manufactureNoSql = String.format("(select id from eqpt_equipment_info e where e.id in (select sample_id from biz_business_order_sample_relation r where r.order_id = t.id) and e.manufacture_no like '%%%s%%')",request.getManufactureNo()); + wrapper.exists(ObjectUtil.isNotEmpty(request.getManufactureNo()),manufactureNoSql); wrapper.orderByDesc("create_time"); return wrapper; } + + @Override + public String checkOrder(BizBusinessOrderInfo businessOrder) { + List sampleRelations = businessOrder.getCustomerSampleInfoList(); + if(CollUtil.isNotEmpty(sampleRelations)){ + List sampleIds = sampleRelations.stream().map(BizBusinessOrderSampleRelation::getSampleId).distinct().collect(Collectors.toList()); + List checkRes = this.baseMapper.checkSamples(sampleIds,businessOrder.getId()); + if(CollUtil.isNotEmpty(checkRes)){ + Map> map = checkRes.stream().collect(Collectors.groupingBy(OrderCheckDTO::getManufactureNo)); + StringBuilder stringBuilder = new StringBuilder(); + for (String manufactureNo : map.keySet()) { + List subRes = map.get(manufactureNo); + String orderNos = StrUtil.join(",",subRes.stream().map(OrderCheckDTO::getOrderNo).distinct().collect(Collectors.toList())); + stringBuilder.append(String.format("编号为%s的%s设备已在任务单%s中,",manufactureNo,subRes.get(0).getEquipmentName(),orderNos)); + } + stringBuilder.append("请确认是否继续提交"); + return stringBuilder.toString(); + } + } + return null; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModifyLogServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModifyLogServiceImpl.java new file mode 100644 index 0000000..825a9ee --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModifyLogServiceImpl.java @@ -0,0 +1,42 @@ +package com.casic.missiles.service.impl.equipment; + +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.core.application.service.AbstractUserService; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.mapper.equipment.EquipmentModifyLogMapper; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 服务实现类 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Service +@RequiredArgsConstructor +public class EquipmentModifyLogServiceImpl extends ServiceImpl implements IEquipmentModifyLogService { + + private final AbstractUserService userService; + + @Override + public List listByEquipment(Long equipmentId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("equipment_id",equipmentId); + queryWrapper.orderByDesc("operate_time"); + List list = this.list(queryWrapper); + for (EquipmentModifyLog modifyLog : list) { + if(ObjectUtil.isNotEmpty(modifyLog.getOperateUserId())){ + modifyLog.setOperateUserName(userService.getById(modifyLog.getOperateUserId()).getName()); + } + } + return list; + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java index 6dceac4..6de99ec 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java @@ -26,6 +26,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.Date; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; @@ -104,6 +105,13 @@ public void finishApproval(Long approvalId) { EquipmentStatusApproval approval = this.getById(approvalId); super.updateApprovalStatus(approval.getId(),ApprovalStatusEnum.PASSED); + if(ObjectUtil.isEmpty(approval.getApprovalTime()) || approval.getApprovalTime().before(new Date())){ + updateStatusAndSaveLog(approval); + } + } + + @Override + public void updateStatusAndSaveLog(EquipmentStatusApproval approval){ statusLogService.saveLog(approval); switch (approval.getApprovalType()) { case SEAL: diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusLogServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusLogServiceImpl.java index de1f710..6282acc 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusLogServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusLogServiceImpl.java @@ -26,14 +26,16 @@ @Override public void saveLog(EquipmentStatusApproval statusApproval) { - this.saveLog(statusApproval.getEquipmentId(),statusApproval.getApprovalType(),statusApproval.getApprovalReason(),statusApproval.getCreateUserId(),statusApproval.getCreateUserName()); + this.saveLog(statusApproval.getEquipmentId(),statusApproval.getApprovalType(), + statusApproval.getApprovalReason(),statusApproval.getCreateUserId(),statusApproval.getCreateUserName(), + statusApproval.getId()); } public void saveLog(Long equipmentId,String statusType,String reason){ - this.saveLog(equipmentId,statusType,reason,null,null); + this.saveLog(equipmentId,statusType,reason,null,null,null); } - public void saveLog(Long equipmentId,String statusType,String reason, Long createUserId, String createUserName){ + public void saveLog(Long equipmentId,String statusType,String reason, Long createUserId, String createUserName,Long statusApprovalId){ QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("equipment_id",equipmentId); queryWrapper.orderByDesc("start_time"); @@ -50,6 +52,7 @@ newLog.setReason(reason); newLog.setCreateUserId(createUserId); newLog.setCreateUserName(createUserName); + newLog.setStatusApprovalId(statusApprovalId); this.save(newLog); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java index c668e55..921a6a5 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java @@ -1,7 +1,15 @@ package com.casic.missiles.mapper.business; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.business.OrderListResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface BusinessOrderListResponseMapper extends BaseMapper { + + List listPage(@Param("page")Page page, + @Param("ew")QueryWrapper ew); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java index cde328c..219d6d8 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java @@ -41,9 +41,14 @@ List bizCertificateList(@Param("equipmentId") Long equipmentId); - List selectRemindListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindListPage(@Param("page") Page page, + @Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); - List selectRemindList(@Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindList(@Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java new file mode 100644 index 0000000..4b6f2f4 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-设备台账-设备变更记录 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface EquipmentModifyLogMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml index 18476de..a536f10 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml @@ -37,4 +37,24 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml new file mode 100644 index 0000000..e65b78e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, order_no, deliverer_id, deliverer, customer_id, customer_name, deliverer_tel, plan_deliver_time, require_over_time, customer_address, customer_phone, is_urgent, maintain_major, undertaker_id, measure_company, undertaker_name, undertake_time, receive_status, receive_illustrate, create_user_id, create_user_name, create_time, update_time + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml new file mode 100644 index 0000000..f1b61be --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, equipment_id, content, operate_user_id, operate_time + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java new file mode 100644 index 0000000..a65c4df --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java @@ -0,0 +1,36 @@ +package com.casic.missiles.controller.equipment; + +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 前端控制器 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Api(tags = "设备变更记录") +@RestController +@RequestMapping("/equipment") +@RequiredArgsConstructor +public class EquipmentModifyLogController { + + private final IEquipmentModifyLogService modifyLogService; + + @GetMapping("/modifyLogs") + public ReturnDTO> list(Long equipmentId){ + return ReturnUtil.success(modifyLogService.listByEquipment(equipmentId)); + } + +} diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java index 444318c..6b3af95 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java @@ -72,6 +72,15 @@ return businessOrderService.addOrder(businessOrder); } + @ApiOperation("任务单检查") + @PostMapping("/check") + public ReturnDTO orderChcek(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(businessOrderService.checkOrder(businessOrder)); + } + @ApiOperation("任务单更新") @PostMapping("/update") public ReturnDTO orderUpdate(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index 84ca460..352950c 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -36,6 +36,8 @@ template: calibration: "现场检定审批报告" environmental: "现场环境记录" + role: + operator: user # 操作手 logging: level.root: info diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java index 72514d8..2836b50 100644 --- a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java @@ -45,7 +45,7 @@ if(EquipmentStatusTypeEnum.DELAY.equals(equipmentInfo.getUsageStatus())){ QueryWrapper statusQueryWrapper = new QueryWrapper<>(); statusQueryWrapper.eq("equipment_id",equipmentInfo.getId()); - statusQueryWrapper.eq("", StatusApprovalTypeEnum.DELAY); + statusQueryWrapper.eq("approval_type", StatusApprovalTypeEnum.DELAY); statusQueryWrapper.orderByDesc("create_time"); statusQueryWrapper.last("limit 1"); EquipmentStatusApproval statusApproval = statusApprovalService.getOne(statusQueryWrapper); diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java new file mode 100644 index 0000000..f3aa066 --- /dev/null +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java @@ -0,0 +1,48 @@ +package com.casic.missiles.job.handler; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.model.status.EquipmentStatusApproval; +import com.casic.missiles.service.status.IEquipmentStatusApprovalService; +import com.casic.missiles.service.status.IEquipmentStatusLogService; +import com.xxl.job.core.context.XxlJobHelper; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +@Slf4j +@Component +@RequiredArgsConstructor +public class EquipmentStatusApprovalJobHandler { + + private final IEquipmentStatusApprovalService statusApprovalService; + + @XxlJob("equipmentStatusApprovalJobHandler") + public void equipmentStatusApprovalJobHandler(){ + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.HOUR_OF_DAY,0); + calendar.set(Calendar.MINUTE,0); + calendar.set(Calendar.SECOND,0); + Date startTime = calendar.getTime(); + + calendar.add(Calendar.DATE,1); + Date endTime = calendar.getTime(); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("approval_status", ApprovalStatusEnum.PASSED); + queryWrapper.ge("approval_time",startTime); + queryWrapper.lt("approval_time",endTime); + List list = statusApprovalService.list(queryWrapper); + for (EquipmentStatusApproval approval : list) { + statusApprovalService.updateStatusAndSaveLog(approval); + XxlJobHelper.log(String.format("update equipment %s status",approval.getEquipmentNo())); + } + } + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java new file mode 100644 index 0000000..032e2d4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java @@ -0,0 +1,14 @@ +package com.casic.missiles.dto.business; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class OrderCheckDTO { + + private String orderNo; + private String manufactureNo; + + private String equipmentName; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java index bdf1531..67899b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java @@ -1,9 +1,15 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @Description: * @Author: wangpeng @@ -18,12 +24,30 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; + @ApiModelProperty("使用部门(单个)") + private Long deptId; + + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty(value = "送检人", dataType = "String") private String deliverer; @ApiModelProperty(value = "创建人名字", dataType = "String") private String createUserName; + /** + * 检定(校准)单位(固定值) + */ + @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") + private String measureCompany; + + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "接收状态(包括接收相关状态和检测完成状态)", dataType = "String") + private String receiveStatus; + @ApiModelProperty(value = "创建开始时间", dataType = "String") private String createStartTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java index 3e4c232..f17b7a7 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.annotation.DictCodeField; @@ -30,6 +31,15 @@ private String customerName; /** + * 返回创建人的部门 + */ + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; + + /** * 检定(校准)单位(固定值) */ @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") @@ -52,4 +62,8 @@ @ApiModelProperty(value = "创建时间", dataType = "String") private String createTime; + + @ApiModelProperty(value = "计划送检时间", dataType = "String") + private String requireOverTime; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java index 83b45ac..08ba19e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java @@ -1,5 +1,7 @@ package com.casic.missiles.dto.equipment; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; @@ -82,4 +84,21 @@ @ApiModelProperty("计量标识") private String meterIdentify; + + @ApiModelProperty(value = "型号规格") + private String model; + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "所在单位id") + private Long companyId; + + @ApiModelProperty("所在单位名称") + private String companyName; + + @ApiModelProperty(value = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java index 6284acf..f313257 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java @@ -5,6 +5,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.List; + @Getter @Setter public class EquipmentCertificateQueryForm extends BaseQueryForm { @@ -29,4 +31,30 @@ @ApiModelProperty("证书有效期结束时间") private String certificateValidEnd; + + @ApiModelProperty("型号规格") + private String model; + + @ApiModelProperty("出厂编号") + private String manufactureNo; + + @ApiModelProperty("所在单位") + private Long companyId; + + @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; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java new file mode 100644 index 0000000..cdad130 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java @@ -0,0 +1,32 @@ +package com.casic.missiles.dto.equipment; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.model.equipment.EquipmentGroupInfo; +import com.casic.missiles.model.equipment.EquipmentGroupRelation; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class EquipmentGroupQueryForm { + + @ApiModelProperty("所在单位id") + private Long companyId; + + @ApiModelProperty("使用部门id") + private Long deptId; + + @ApiModelProperty(value = "分系统id") + private Long subSystemId; + + @ApiModelProperty("岗位ID") + private Long positionId; + + @ApiModelProperty("分组名称") + private String groupName; + + @ApiModelProperty("创建人id") + private String createUserId; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java index 43016e2..5773c4e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java @@ -50,4 +50,11 @@ @ApiModelProperty("备注") @ExcelIgnore private String remark; + + @ApiModelProperty("检定状态") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_REMIND_CHECK_STATUS) + private String checkStatus; + + @ApiModelProperty("检定状态名称") + private String checkStatusName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java index 663cd38..6a6f602 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java @@ -22,21 +22,46 @@ @ApiModelProperty("规格型号") private String model; + @ApiModelProperty("生产厂家") + private String manufacturer; + @ApiModelProperty("出厂编号") private String manufactureNo; @ApiModelProperty("设备类型(1受检设备;2特种设备)") private String equipmentType; + @ApiModelProperty("所在单位") + private Long companyId; + + @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; + @ApiModelProperty("使用状态") private String usageStatus; + @ApiModelProperty("使用状态列表") + private List usageStatusList; + + @ApiModelProperty("在用信息") + private String useSign; + @ApiModelProperty("证书有效期开始时间") private String certificateValidStart; @@ -52,4 +77,12 @@ @ApiModelProperty("参试任务结束时间") private String tastEndTime; + @ApiModelProperty("检定去向") + private String checkDestination; + + @ApiModelProperty("检定状态") + private String checkStatus; + + + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java new file mode 100644 index 0000000..e217254 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java @@ -0,0 +1,19 @@ +package com.casic.missiles.dto.equipment; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.Date; + +@Getter +@Setter +public class LimitInstructionUpdate { + + @ApiModelProperty("受检设备id") + private Long equipmentId; + + @ApiModelProperty("限用说明") + private String limitInstruction; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java index 068ffb6..8f1c6a0 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java @@ -56,6 +56,10 @@ @TableField("sample_model") private String sampleModel; + @ApiModelProperty("生产厂家") + @TableField(exist = false) + private String sampleManufacturer; + /** * 交接单id,避免重复交接(可为空) */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java new file mode 100644 index 0000000..a19c0a6 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java @@ -0,0 +1,72 @@ +package com.casic.missiles.model.equipment; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 受检设备-设备台账-设备变更记录 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Getter +@Setter +@TableName("eqpt_equipment_modify_log") +public class EquipmentModifyLog implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ApiModelProperty("主键") + @TableId("id") + private Long id; + + /** + * 设备id + */ + @ApiModelProperty("设备id") + @TableField("equipment_id") + private Long equipmentId; + + /** + * 变更内容 + */ + @ApiModelProperty("变更内容") + @TableField("content") + private String content; + + /** + * 变更人 + */ + @ApiModelProperty("变更人id") + @TableField("operate_user_id") + private Long operateUserId; + + @ApiModelProperty("变更人姓名") + @TableField(exist = false) + private String operateUserName; + /** + * 变更时间 + */ + @ApiModelProperty("变更时间") + @TableField("operate_time") + private Date operateTime; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java b/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java index 989211a..e8bc431 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java @@ -66,5 +66,9 @@ @ApiModelProperty("原因") private String reason; + @ApiModelProperty("状态维护申请id") + @TableField("status_approval_id") + private Long statusApprovalId; + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/annotation/EquipmentLog.java b/casic-metering-service/src/main/java/com/casic/missiles/annotation/EquipmentLog.java new file mode 100644 index 0000000..b28717e --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/annotation/EquipmentLog.java @@ -0,0 +1,20 @@ +package com.casic.missiles.annotation; + + +import java.lang.annotation.*; + +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface EquipmentLog { + + /** + * 设备ID + */ + String key(); + + /** + * 变更描述 + */ + String value() default ""; +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java new file mode 100644 index 0000000..b168cc1 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java @@ -0,0 +1,144 @@ +package com.casic.missiles.aop; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.casic.missiles.annotation.EquipmentLog; +import com.casic.missiles.core.application.service.AbstractAuthService; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentInfoService; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import com.casic.missiles.utils.CasicBeanUtil; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.Signature; +import org.aspectj.lang.annotation.After; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.aspectj.lang.annotation.Pointcut; +import org.aspectj.lang.reflect.MethodSignature; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.DefaultParameterNameDiscoverer; +import org.springframework.expression.EvaluationContext; +import org.springframework.expression.spel.standard.SpelExpression; +import org.springframework.expression.spel.standard.SpelExpressionParser; +import org.springframework.expression.spel.support.StandardEvaluationContext; +import org.springframework.scheduling.annotation.Async; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.stereotype.Component; + +import java.beans.Expression; +import java.lang.reflect.Method; +import java.util.Date; + +@Aspect +@Component +@EnableAsync +public class EquipmentLogAop { + + @Autowired + private IEquipmentInfoService equipmentInfoService; + @Autowired + private IEquipmentModifyLogService modifyLogService; + @Autowired + private AbstractAuthService authService; + + + /** + * 用于SpEL表达式解析. + */ + private final SpelExpressionParser parser = new SpelExpressionParser(); + /** + * 用于获取方法参数定义名字. + */ + private final DefaultParameterNameDiscoverer nameDiscoverer = new DefaultParameterNameDiscoverer(); + + private Long equipmentId; + private EquipmentInfo oldInfo; + + + /** + * 注解的位置 + */ + @Pointcut("@annotation(com.casic.missiles.annotation.EquipmentLog)") + public void logPointCut() {} + + @Before(value="logPointCut()") + public void before(JoinPoint joinPoint) throws Exception { + equipmentId = getEquipmentId(joinPoint); + if(ObjectUtil.isNotEmpty(equipmentId)){ + oldInfo = equipmentInfoService.getById(equipmentId); + }else { + oldInfo = null; + } + } + + private Long getEquipmentId(JoinPoint joinPoint) throws Exception { + //1.1获取目标对象对应的字节码对象 + Class targetCls= joinPoint.getTarget().getClass(); + //1.2获取目标方法对象 + //1.2.1 获取方法签名信息从而获取方法名和参数类型 + Signature signature= joinPoint.getSignature(); + //1.2.1.1将方法签名强转成MethodSignature类型,方便调用 + MethodSignature ms= (MethodSignature)signature; + //1.2.2通过字节码对象以及方法签名获取目标方法对象 + Method targetMethod=targetCls.getDeclaredMethod(ms.getName(),ms.getParameterTypes()); + //1.3获取目标方法对象上注解中的属性值 + //1.2.3 获取方法上的自定义requiredLog注解 + EquipmentLog equipmentLog=targetMethod.getAnnotation(EquipmentLog.class); + String val = generateKeyBySpEL(equipmentLog.key(), joinPoint); + return ObjectUtil.isNotEmpty(val) ? Long.valueOf(val) : null; + } + + @After(value="logPointCut()") + @Async + public void after(JoinPoint joinPoint){ + if(ObjectUtil.isNotEmpty(equipmentId) && ObjectUtil.isNotEmpty(oldInfo)){ + EquipmentInfo newInfo = equipmentInfoService.getById(equipmentId); + JSONArray res = CasicBeanUtil.fieldCompareDetail(oldInfo,newInfo,null); + if(ObjectUtil.isNotEmpty(res) && res.size() > 0){ + StringBuilder stringBuilder = new StringBuilder(); + for (int i = 0; i < res.size(); i++) { + JSONObject item = res.getJSONObject(i); + String filedName = equipmentInfoService.getFieldName(item.getString("field")); + if(StrUtil.isNotBlank(filedName)){ + String oldValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("oldVal")); + String newValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("newVal")); + String msg = String.format("字段名=%s,变更前=%s,变更后=%s;",filedName,oldValue,newValue); + stringBuilder.append(msg); + } + } + saveLog(equipmentId,stringBuilder.toString()); + } + } + } + + private void saveLog(Long equipmentId,String content){ + if(StrUtil.isNotBlank(content)){ + EquipmentModifyLog modifyLog = new EquipmentModifyLog(); + modifyLog.setEquipmentId(equipmentId); + modifyLog.setContent(content); + modifyLog.setOperateTime(new Date()); + AuthUser authUser = authService.getLoginUser(); + if(ObjectUtil.isNotEmpty(authUser)){ + modifyLog.setOperateUserId(authUser.getId()); + } + modifyLogService.save(modifyLog); + } + } + + public String generateKeyBySpEL(String spELString, JoinPoint joinPoint) throws Exception { + MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); + String[] paramNames = nameDiscoverer.getParameterNames(methodSignature.getMethod()); + SpelExpression expression = (SpelExpression) parser.parseExpression(spELString); + EvaluationContext context = new StandardEvaluationContext(); + Object[] args = joinPoint.getArgs(); + for (int i = 0; i < args.length; i++) { + context.setVariable(paramNames[i], args[i]); + } + return expression.getValue(context).toString(); + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java index 074d0a1..596ab06 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java @@ -28,5 +28,7 @@ ReturnDTO updateStatusById(Long id, String alreadyReceived); + String checkOrder(BizBusinessOrderInfo businessOrder); + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModifyLogService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModifyLogService.java new file mode 100644 index 0000000..dda4137 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModifyLogService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.service.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 服务类 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface IEquipmentModifyLogService extends IService { + + List listByEquipment(Long equipmentId); + + +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java index 759cb30..158cc4e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java @@ -69,10 +69,10 @@ statisticsDTO.setDeptName(subList.get(0).getDeptName()); statisticsDTO.setTotal((long) subList.size()); - statisticsDTO.setMonthToExpire(subList.stream().filter(i->i.getCertificateValid().after(new Date()) && DateUtil.month(new Date()) == DateUtil.month(i.getCertificateValid())).count()); - statisticsDTO.setExpired(subList.stream().filter(i->i.getCertificateValid().before(new Date())).count()); + statisticsDTO.setMonthToExpire(subList.stream().filter(i->ObjectUtil.isNotEmpty(i.getCertificateValid()) && i.getCertificateValid().after(new Date()) && DateUtil.month(new Date()) == DateUtil.month(i.getCertificateValid())).count()); + statisticsDTO.setExpired(subList.stream().filter(i->ObjectUtil.isNotEmpty(i.getCertificateValid()) && i.getCertificateValid().before(new Date())).count()); statisticsDTO.setInCheck(subList.stream().filter(i-> StrUtil.isNotEmpty(i.getLatestSampleStatus()) && SampleStatusEnum.getSampleStatusByCompletion(InCheckSampleStatus).contains(i.getLatestSampleStatus())).count()); - statisticsDTO.setYearToCheck(subList.stream().filter(i-> DateUtil.year(new Date()) == DateUtil.year(i.getCertificateValid())).count()); + statisticsDTO.setYearToCheck(subList.stream().filter(i-> ObjectUtil.isNotEmpty(i.getCertificateValid()) && DateUtil.year(new Date()) == DateUtil.year(i.getCertificateValid())).count()); statisticsDTO.setYearChecked(subList.stream().mapToLong(i->Long.valueOf(i.getYearChecked())).sum()); Optional planFinishOpt = planFinishDTOList.stream().filter(i->deptId.equals(i.getDeptId())).findFirst(); @@ -393,13 +393,16 @@ private List getDeptGroupList(Map> deptGroupMap) { List deptGroupList = new ArrayList<>(); for (String key : deptGroupMap.keySet()) { - EquipmentMultiAggr.EquipmentSimpleList item = new EquipmentMultiAggr.EquipmentSimpleList(); - item.setEquipmentName(key.split(";;;")[0]); - item.setModel(key.split(";;;")[1]); - item.setCompanyName(key.split(";;;")[2]); - item.setDeptName(key.split(";;;")[3]); - item.setCount(deptGroupMap.get(key).size()); - deptGroupList.add(item); + if(key.split(";;;").length >= 4){ + EquipmentMultiAggr.EquipmentSimpleList item = new EquipmentMultiAggr.EquipmentSimpleList(); + item.setEquipmentName(key.split(";;;")[0]); + item.setModel(key.split(";;;")[1]); + item.setCompanyName(key.split(";;;")[2]); + item.setDeptName(key.split(";;;")[3]); + item.setCount(deptGroupMap.get(key).size()); + deptGroupList.add(item); + } + } return deptGroupList; } @@ -408,12 +411,14 @@ private List getCompanyGroupList(Map> companyGroupMap) { List companyGroupList = new ArrayList<>(); for (String key : companyGroupMap.keySet()) { - EquipmentMultiAggr.EquipmentSimpleList item = new EquipmentMultiAggr.EquipmentSimpleList(); - item.setEquipmentName(key.split(";;;")[0]); - item.setModel(key.split(";;;")[1]); - item.setCompanyName(key.split(";;;")[2]); - item.setCount(companyGroupMap.get(key).size()); - companyGroupList.add(item); + if(key.split(";;;").length >= 3){ + EquipmentMultiAggr.EquipmentSimpleList item = new EquipmentMultiAggr.EquipmentSimpleList(); + item.setEquipmentName(key.split(";;;")[0]); + item.setModel(key.split(";;;")[1]); + item.setCompanyName(key.split(";;;")[2]); + item.setCount(companyGroupMap.get(key).size()); + companyGroupList.add(item); + } } return companyGroupList; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/BizBusinessOrderInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/BizBusinessOrderInfoServiceImpl.java index dac1790..fed732a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/BizBusinessOrderInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/BizBusinessOrderInfoServiceImpl.java @@ -1,6 +1,8 @@ package com.casic.missiles.service.impl.business; 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; @@ -8,6 +10,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.OrderBackRequest; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.dto.business.OrderListRequest; import com.casic.missiles.dto.business.OrderListResponse; import com.casic.missiles.enums.BusinessExceptionEnum; @@ -57,11 +60,13 @@ List parentDeptIds = permissionContext.getDeptService().getParentListById(deptId); wrapper.and(i->i.eq("customer_id",deptId).or().in(CollUtil.isNotEmpty(parentDeptIds),"customer_id",parentDeptIds)); - Page resultPage = orderListResponseMapper.selectPage(page, wrapper); - for (OrderListResponse customerAdviceInfo : resultPage.getRecords()) { + List list = orderListResponseMapper.listPage(page, wrapper); + page.setRecords(list); + for (OrderListResponse customerAdviceInfo : page.getRecords()) { DictCodeUtils.convertDictCodeToName(customerAdviceInfo); + customerAdviceInfo.setDeptName(permissionContext.getDeptService().getDeptName(customerAdviceInfo.getDeptId())); } - return resultPage; + return page; } @Override @@ -70,6 +75,7 @@ DictCodeUtils.convertDictCodeToName(orderInfo); // todo 交接单编号列表,另需补充根据交接单编号打印pdf的接口 QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.select("*","(select manufacturer from eqpt_equipment_info e where e.id = sample_id) as sampleManufacturer"); wrapper.eq("order_id", orderInfo.getId()); List orderSampleList = sampleRelationMapper.selectList(wrapper); for (BizBusinessOrderSampleRelation bizBusinessOrderSampleRelation : orderSampleList) { @@ -154,7 +160,38 @@ "{0} <= DATE_FORMAT(create_time,'%Y-%m-%d')", request.getCreateStartTime().split(" ")[0]); wrapper.apply(StringUtils.isNotBlank(request.getCreateEndTime()), "{0} >= DATE_FORMAT(create_time,'%Y-%m-%d')", request.getCreateEndTime().split(" ")[0]); + + wrapper.eq(ObjectUtil.isNotEmpty(request.getDeptId()),"dept_id",request.getDeptId()); + wrapper.like(StrUtil.isNotEmpty(request.getMeasureCompany()),"measure_company",request.getMeasureCompany()); + wrapper.eq(StrUtil.isNotEmpty(request.getReceiveStatus()),"receive_status",request.getReceiveStatus()); + + String positionSql = String.format("(select id from eqpt_equipment_info e where e.id in (select sample_id from biz_business_order_sample_relation r where r.order_id = t.id) and e.use_position_id = %s)",request.getUsePositionId()); + wrapper.exists(ObjectUtil.isNotEmpty(request.getUsePositionId()),positionSql); + + String manufactureNoSql = String.format("(select id from eqpt_equipment_info e where e.id in (select sample_id from biz_business_order_sample_relation r where r.order_id = t.id) and e.manufacture_no like '%%%s%%')",request.getManufactureNo()); + wrapper.exists(ObjectUtil.isNotEmpty(request.getManufactureNo()),manufactureNoSql); wrapper.orderByDesc("create_time"); return wrapper; } + + @Override + public String checkOrder(BizBusinessOrderInfo businessOrder) { + List sampleRelations = businessOrder.getCustomerSampleInfoList(); + if(CollUtil.isNotEmpty(sampleRelations)){ + List sampleIds = sampleRelations.stream().map(BizBusinessOrderSampleRelation::getSampleId).distinct().collect(Collectors.toList()); + List checkRes = this.baseMapper.checkSamples(sampleIds,businessOrder.getId()); + if(CollUtil.isNotEmpty(checkRes)){ + Map> map = checkRes.stream().collect(Collectors.groupingBy(OrderCheckDTO::getManufactureNo)); + StringBuilder stringBuilder = new StringBuilder(); + for (String manufactureNo : map.keySet()) { + List subRes = map.get(manufactureNo); + String orderNos = StrUtil.join(",",subRes.stream().map(OrderCheckDTO::getOrderNo).distinct().collect(Collectors.toList())); + stringBuilder.append(String.format("编号为%s的%s设备已在任务单%s中,",manufactureNo,subRes.get(0).getEquipmentName(),orderNos)); + } + stringBuilder.append("请确认是否继续提交"); + return stringBuilder.toString(); + } + } + return null; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModifyLogServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModifyLogServiceImpl.java new file mode 100644 index 0000000..825a9ee --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModifyLogServiceImpl.java @@ -0,0 +1,42 @@ +package com.casic.missiles.service.impl.equipment; + +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.core.application.service.AbstractUserService; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.mapper.equipment.EquipmentModifyLogMapper; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 服务实现类 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Service +@RequiredArgsConstructor +public class EquipmentModifyLogServiceImpl extends ServiceImpl implements IEquipmentModifyLogService { + + private final AbstractUserService userService; + + @Override + public List listByEquipment(Long equipmentId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("equipment_id",equipmentId); + queryWrapper.orderByDesc("operate_time"); + List list = this.list(queryWrapper); + for (EquipmentModifyLog modifyLog : list) { + if(ObjectUtil.isNotEmpty(modifyLog.getOperateUserId())){ + modifyLog.setOperateUserName(userService.getById(modifyLog.getOperateUserId()).getName()); + } + } + return list; + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java index 6dceac4..6de99ec 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java @@ -26,6 +26,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.Date; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; @@ -104,6 +105,13 @@ public void finishApproval(Long approvalId) { EquipmentStatusApproval approval = this.getById(approvalId); super.updateApprovalStatus(approval.getId(),ApprovalStatusEnum.PASSED); + if(ObjectUtil.isEmpty(approval.getApprovalTime()) || approval.getApprovalTime().before(new Date())){ + updateStatusAndSaveLog(approval); + } + } + + @Override + public void updateStatusAndSaveLog(EquipmentStatusApproval approval){ statusLogService.saveLog(approval); switch (approval.getApprovalType()) { case SEAL: diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusLogServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusLogServiceImpl.java index de1f710..6282acc 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusLogServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusLogServiceImpl.java @@ -26,14 +26,16 @@ @Override public void saveLog(EquipmentStatusApproval statusApproval) { - this.saveLog(statusApproval.getEquipmentId(),statusApproval.getApprovalType(),statusApproval.getApprovalReason(),statusApproval.getCreateUserId(),statusApproval.getCreateUserName()); + this.saveLog(statusApproval.getEquipmentId(),statusApproval.getApprovalType(), + statusApproval.getApprovalReason(),statusApproval.getCreateUserId(),statusApproval.getCreateUserName(), + statusApproval.getId()); } public void saveLog(Long equipmentId,String statusType,String reason){ - this.saveLog(equipmentId,statusType,reason,null,null); + this.saveLog(equipmentId,statusType,reason,null,null,null); } - public void saveLog(Long equipmentId,String statusType,String reason, Long createUserId, String createUserName){ + public void saveLog(Long equipmentId,String statusType,String reason, Long createUserId, String createUserName,Long statusApprovalId){ QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("equipment_id",equipmentId); queryWrapper.orderByDesc("start_time"); @@ -50,6 +52,7 @@ newLog.setReason(reason); newLog.setCreateUserId(createUserId); newLog.setCreateUserName(createUserName); + newLog.setStatusApprovalId(statusApprovalId); this.save(newLog); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/status/IEquipmentStatusApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/status/IEquipmentStatusApprovalService.java index 791794d..a96dfec 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/status/IEquipmentStatusApprovalService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/status/IEquipmentStatusApprovalService.java @@ -30,5 +30,5 @@ Long saveOrUpdateApproval(EquipmentStatusApproval approvalForm); EquipmentStatusApproval approvalInfoDetail(Long approvalId); - + void updateStatusAndSaveLog(EquipmentStatusApproval approval); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java index 8594bae..14d8a51 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BizBusinessOrderInfoMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.model.business.BizBusinessOrderInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -15,4 +19,7 @@ Long selectMaxOrderNo(); + List checkSamples(@Param("sampleIds")List sampleIds, + @Param("orderId")Long orderId); + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java index c668e55..921a6a5 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderListResponseMapper.java @@ -1,7 +1,15 @@ package com.casic.missiles.mapper.business; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.business.OrderListResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; public interface BusinessOrderListResponseMapper extends BaseMapper { + + List listPage(@Param("page")Page page, + @Param("ew")QueryWrapper ew); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java index cde328c..219d6d8 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentInfoMapper.java @@ -41,9 +41,14 @@ List bizCertificateList(@Param("equipmentId") Long equipmentId); - List selectRemindListPage(@Param("page") Page page, @Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindListPage(@Param("page") Page page, + @Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); - List selectRemindList(@Param("dataScope") DataScope dataScope, @Param("ew") QueryWrapper queryWrapper); + List selectRemindList(@Param("dataScope") DataScope dataScope, + @Param("ew") QueryWrapper queryWrapper, + @Param("checkedStatus") List checkedStatus); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java new file mode 100644 index 0000000..4b6f2f4 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/equipment/EquipmentModifyLogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 受检设备-设备台账-设备变更记录 Mapper 接口 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface EquipmentModifyLogMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml index 18476de..a536f10 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderInfoMapper.xml @@ -37,4 +37,24 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml new file mode 100644 index 0000000..e65b78e --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, order_no, deliverer_id, deliverer, customer_id, customer_name, deliverer_tel, plan_deliver_time, require_over_time, customer_address, customer_phone, is_urgent, maintain_major, undertaker_id, measure_company, undertaker_name, undertake_time, receive_status, receive_illustrate, create_user_id, create_user_name, create_time, update_time + + + + + + diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml new file mode 100644 index 0000000..f1b61be --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentModifyLogMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, equipment_id, content, operate_user_id, operate_time + + + diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java new file mode 100644 index 0000000..a65c4df --- /dev/null +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModifyLogController.java @@ -0,0 +1,36 @@ +package com.casic.missiles.controller.equipment; + +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 前端控制器 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Api(tags = "设备变更记录") +@RestController +@RequestMapping("/equipment") +@RequiredArgsConstructor +public class EquipmentModifyLogController { + + private final IEquipmentModifyLogService modifyLogService; + + @GetMapping("/modifyLogs") + public ReturnDTO> list(Long equipmentId){ + return ReturnUtil.success(modifyLogService.listByEquipment(equipmentId)); + } + +} diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java index 444318c..6b3af95 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/plan/BizBusinessOrderInfoController.java @@ -72,6 +72,15 @@ return businessOrderService.addOrder(businessOrder); } + @ApiOperation("任务单检查") + @PostMapping("/check") + public ReturnDTO orderChcek(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(businessOrderService.checkOrder(businessOrder)); + } + @ApiOperation("任务单更新") @PostMapping("/update") public ReturnDTO orderUpdate(@RequestBody @Valid BizBusinessOrderInfo businessOrder, BindingResult bindingResult) { diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml index 84ca460..352950c 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-dev.yml @@ -36,6 +36,8 @@ template: calibration: "现场检定审批报告" environmental: "现场环境记录" + role: + operator: user # 操作手 logging: level.root: info diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java index 72514d8..2836b50 100644 --- a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentExpireJobHandler.java @@ -45,7 +45,7 @@ if(EquipmentStatusTypeEnum.DELAY.equals(equipmentInfo.getUsageStatus())){ QueryWrapper statusQueryWrapper = new QueryWrapper<>(); statusQueryWrapper.eq("equipment_id",equipmentInfo.getId()); - statusQueryWrapper.eq("", StatusApprovalTypeEnum.DELAY); + statusQueryWrapper.eq("approval_type", StatusApprovalTypeEnum.DELAY); statusQueryWrapper.orderByDesc("create_time"); statusQueryWrapper.last("limit 1"); EquipmentStatusApproval statusApproval = statusApprovalService.getOne(statusQueryWrapper); diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java new file mode 100644 index 0000000..f3aa066 --- /dev/null +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/EquipmentStatusApprovalJobHandler.java @@ -0,0 +1,48 @@ +package com.casic.missiles.job.handler; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.model.status.EquipmentStatusApproval; +import com.casic.missiles.service.status.IEquipmentStatusApprovalService; +import com.casic.missiles.service.status.IEquipmentStatusLogService; +import com.xxl.job.core.context.XxlJobHelper; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +@Slf4j +@Component +@RequiredArgsConstructor +public class EquipmentStatusApprovalJobHandler { + + private final IEquipmentStatusApprovalService statusApprovalService; + + @XxlJob("equipmentStatusApprovalJobHandler") + public void equipmentStatusApprovalJobHandler(){ + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.HOUR_OF_DAY,0); + calendar.set(Calendar.MINUTE,0); + calendar.set(Calendar.SECOND,0); + Date startTime = calendar.getTime(); + + calendar.add(Calendar.DATE,1); + Date endTime = calendar.getTime(); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("approval_status", ApprovalStatusEnum.PASSED); + queryWrapper.ge("approval_time",startTime); + queryWrapper.lt("approval_time",endTime); + List list = statusApprovalService.list(queryWrapper); + for (EquipmentStatusApproval approval : list) { + statusApprovalService.updateStatusAndSaveLog(approval); + XxlJobHelper.log(String.format("update equipment %s status",approval.getEquipmentNo())); + } + } + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java new file mode 100644 index 0000000..032e2d4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderCheckDTO.java @@ -0,0 +1,14 @@ +package com.casic.missiles.dto.business; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class OrderCheckDTO { + + private String orderNo; + private String manufactureNo; + + private String equipmentName; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java index bdf1531..67899b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListRequest.java @@ -1,9 +1,15 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @Description: * @Author: wangpeng @@ -18,12 +24,30 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; + @ApiModelProperty("使用部门(单个)") + private Long deptId; + + @ApiModelProperty("使用岗位id") + private String usePositionId; + @ApiModelProperty(value = "送检人", dataType = "String") private String deliverer; @ApiModelProperty(value = "创建人名字", dataType = "String") private String createUserName; + /** + * 检定(校准)单位(固定值) + */ + @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") + private String measureCompany; + + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "接收状态(包括接收相关状态和检测完成状态)", dataType = "String") + private String receiveStatus; + @ApiModelProperty(value = "创建开始时间", dataType = "String") private String createStartTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java index 3e4c232..f17b7a7 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/OrderListResponse.java @@ -1,5 +1,6 @@ package com.casic.missiles.dto.business; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.annotation.DictCodeField; @@ -30,6 +31,15 @@ private String customerName; /** + * 返回创建人的部门 + */ + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; + + /** * 检定(校准)单位(固定值) */ @ApiModelProperty(value = "溯源单位(检定(校准)单位)", dataType = "String") @@ -52,4 +62,8 @@ @ApiModelProperty(value = "创建时间", dataType = "String") private String createTime; + + @ApiModelProperty(value = "计划送检时间", dataType = "String") + private String requireOverTime; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java index 83b45ac..08ba19e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateDTO.java @@ -1,5 +1,7 @@ package com.casic.missiles.dto.equipment; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; @@ -82,4 +84,21 @@ @ApiModelProperty("计量标识") private String meterIdentify; + + @ApiModelProperty(value = "型号规格") + private String model; + @ApiModelProperty(value = "出厂编号") + private String manufactureNo; + + @ApiModelProperty(value = "所在单位id") + private Long companyId; + + @ApiModelProperty("所在单位名称") + private String companyName; + + @ApiModelProperty(value = "使用部门id") + private Long deptId; + + @ApiModelProperty("使用部门名称") + private String deptName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java index 6284acf..f313257 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentCertificateQueryForm.java @@ -5,6 +5,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.List; + @Getter @Setter public class EquipmentCertificateQueryForm extends BaseQueryForm { @@ -29,4 +31,30 @@ @ApiModelProperty("证书有效期结束时间") private String certificateValidEnd; + + @ApiModelProperty("型号规格") + private String model; + + @ApiModelProperty("出厂编号") + private String manufactureNo; + + @ApiModelProperty("所在单位") + private Long companyId; + + @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; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java new file mode 100644 index 0000000..cdad130 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentGroupQueryForm.java @@ -0,0 +1,32 @@ +package com.casic.missiles.dto.equipment; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.casic.missiles.model.equipment.EquipmentGroupInfo; +import com.casic.missiles.model.equipment.EquipmentGroupRelation; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class EquipmentGroupQueryForm { + + @ApiModelProperty("所在单位id") + private Long companyId; + + @ApiModelProperty("使用部门id") + private Long deptId; + + @ApiModelProperty(value = "分系统id") + private Long subSystemId; + + @ApiModelProperty("岗位ID") + private Long positionId; + + @ApiModelProperty("分组名称") + private String groupName; + + @ApiModelProperty("创建人id") + private String createUserId; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java index 43016e2..5773c4e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindList.java @@ -50,4 +50,11 @@ @ApiModelProperty("备注") @ExcelIgnore private String remark; + + @ApiModelProperty("检定状态") + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_REMIND_CHECK_STATUS) + private String checkStatus; + + @ApiModelProperty("检定状态名称") + private String checkStatusName; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java index 663cd38..6a6f602 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java @@ -22,21 +22,46 @@ @ApiModelProperty("规格型号") private String model; + @ApiModelProperty("生产厂家") + private String manufacturer; + @ApiModelProperty("出厂编号") private String manufactureNo; @ApiModelProperty("设备类型(1受检设备;2特种设备)") private String equipmentType; + @ApiModelProperty("所在单位") + private Long companyId; + + @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; + @ApiModelProperty("使用状态") private String usageStatus; + @ApiModelProperty("使用状态列表") + private List usageStatusList; + + @ApiModelProperty("在用信息") + private String useSign; + @ApiModelProperty("证书有效期开始时间") private String certificateValidStart; @@ -52,4 +77,12 @@ @ApiModelProperty("参试任务结束时间") private String tastEndTime; + @ApiModelProperty("检定去向") + private String checkDestination; + + @ApiModelProperty("检定状态") + private String checkStatus; + + + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java new file mode 100644 index 0000000..e217254 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/LimitInstructionUpdate.java @@ -0,0 +1,19 @@ +package com.casic.missiles.dto.equipment; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.util.Date; + +@Getter +@Setter +public class LimitInstructionUpdate { + + @ApiModelProperty("受检设备id") + private Long equipmentId; + + @ApiModelProperty("限用说明") + private String limitInstruction; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java index 068ffb6..8f1c6a0 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderSampleRelation.java @@ -56,6 +56,10 @@ @TableField("sample_model") private String sampleModel; + @ApiModelProperty("生产厂家") + @TableField(exist = false) + private String sampleManufacturer; + /** * 交接单id,避免重复交接(可为空) */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java new file mode 100644 index 0000000..a19c0a6 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModifyLog.java @@ -0,0 +1,72 @@ +package com.casic.missiles.model.equipment; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 受检设备-设备台账-设备变更记录 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Getter +@Setter +@TableName("eqpt_equipment_modify_log") +public class EquipmentModifyLog implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ApiModelProperty("主键") + @TableId("id") + private Long id; + + /** + * 设备id + */ + @ApiModelProperty("设备id") + @TableField("equipment_id") + private Long equipmentId; + + /** + * 变更内容 + */ + @ApiModelProperty("变更内容") + @TableField("content") + private String content; + + /** + * 变更人 + */ + @ApiModelProperty("变更人id") + @TableField("operate_user_id") + private Long operateUserId; + + @ApiModelProperty("变更人姓名") + @TableField(exist = false) + private String operateUserName; + /** + * 变更时间 + */ + @ApiModelProperty("变更时间") + @TableField("operate_time") + private Date operateTime; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java b/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java index 989211a..e8bc431 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/status/EquipmentStatusLog.java @@ -66,5 +66,9 @@ @ApiModelProperty("原因") private String reason; + @ApiModelProperty("状态维护申请id") + @TableField("status_approval_id") + private Long statusApprovalId; + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/annotation/EquipmentLog.java b/casic-metering-service/src/main/java/com/casic/missiles/annotation/EquipmentLog.java new file mode 100644 index 0000000..b28717e --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/annotation/EquipmentLog.java @@ -0,0 +1,20 @@ +package com.casic.missiles.annotation; + + +import java.lang.annotation.*; + +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface EquipmentLog { + + /** + * 设备ID + */ + String key(); + + /** + * 变更描述 + */ + String value() default ""; +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java new file mode 100644 index 0000000..b168cc1 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java @@ -0,0 +1,144 @@ +package com.casic.missiles.aop; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.casic.missiles.annotation.EquipmentLog; +import com.casic.missiles.core.application.service.AbstractAuthService; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.service.equipment.IEquipmentInfoService; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import com.casic.missiles.utils.CasicBeanUtil; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.Signature; +import org.aspectj.lang.annotation.After; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.aspectj.lang.annotation.Pointcut; +import org.aspectj.lang.reflect.MethodSignature; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.DefaultParameterNameDiscoverer; +import org.springframework.expression.EvaluationContext; +import org.springframework.expression.spel.standard.SpelExpression; +import org.springframework.expression.spel.standard.SpelExpressionParser; +import org.springframework.expression.spel.support.StandardEvaluationContext; +import org.springframework.scheduling.annotation.Async; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.stereotype.Component; + +import java.beans.Expression; +import java.lang.reflect.Method; +import java.util.Date; + +@Aspect +@Component +@EnableAsync +public class EquipmentLogAop { + + @Autowired + private IEquipmentInfoService equipmentInfoService; + @Autowired + private IEquipmentModifyLogService modifyLogService; + @Autowired + private AbstractAuthService authService; + + + /** + * 用于SpEL表达式解析. + */ + private final SpelExpressionParser parser = new SpelExpressionParser(); + /** + * 用于获取方法参数定义名字. + */ + private final DefaultParameterNameDiscoverer nameDiscoverer = new DefaultParameterNameDiscoverer(); + + private Long equipmentId; + private EquipmentInfo oldInfo; + + + /** + * 注解的位置 + */ + @Pointcut("@annotation(com.casic.missiles.annotation.EquipmentLog)") + public void logPointCut() {} + + @Before(value="logPointCut()") + public void before(JoinPoint joinPoint) throws Exception { + equipmentId = getEquipmentId(joinPoint); + if(ObjectUtil.isNotEmpty(equipmentId)){ + oldInfo = equipmentInfoService.getById(equipmentId); + }else { + oldInfo = null; + } + } + + private Long getEquipmentId(JoinPoint joinPoint) throws Exception { + //1.1获取目标对象对应的字节码对象 + Class targetCls= joinPoint.getTarget().getClass(); + //1.2获取目标方法对象 + //1.2.1 获取方法签名信息从而获取方法名和参数类型 + Signature signature= joinPoint.getSignature(); + //1.2.1.1将方法签名强转成MethodSignature类型,方便调用 + MethodSignature ms= (MethodSignature)signature; + //1.2.2通过字节码对象以及方法签名获取目标方法对象 + Method targetMethod=targetCls.getDeclaredMethod(ms.getName(),ms.getParameterTypes()); + //1.3获取目标方法对象上注解中的属性值 + //1.2.3 获取方法上的自定义requiredLog注解 + EquipmentLog equipmentLog=targetMethod.getAnnotation(EquipmentLog.class); + String val = generateKeyBySpEL(equipmentLog.key(), joinPoint); + return ObjectUtil.isNotEmpty(val) ? Long.valueOf(val) : null; + } + + @After(value="logPointCut()") + @Async + public void after(JoinPoint joinPoint){ + if(ObjectUtil.isNotEmpty(equipmentId) && ObjectUtil.isNotEmpty(oldInfo)){ + EquipmentInfo newInfo = equipmentInfoService.getById(equipmentId); + JSONArray res = CasicBeanUtil.fieldCompareDetail(oldInfo,newInfo,null); + if(ObjectUtil.isNotEmpty(res) && res.size() > 0){ + StringBuilder stringBuilder = new StringBuilder(); + for (int i = 0; i < res.size(); i++) { + JSONObject item = res.getJSONObject(i); + String filedName = equipmentInfoService.getFieldName(item.getString("field")); + if(StrUtil.isNotBlank(filedName)){ + String oldValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("oldVal")); + String newValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("newVal")); + String msg = String.format("字段名=%s,变更前=%s,变更后=%s;",filedName,oldValue,newValue); + stringBuilder.append(msg); + } + } + saveLog(equipmentId,stringBuilder.toString()); + } + } + } + + private void saveLog(Long equipmentId,String content){ + if(StrUtil.isNotBlank(content)){ + EquipmentModifyLog modifyLog = new EquipmentModifyLog(); + modifyLog.setEquipmentId(equipmentId); + modifyLog.setContent(content); + modifyLog.setOperateTime(new Date()); + AuthUser authUser = authService.getLoginUser(); + if(ObjectUtil.isNotEmpty(authUser)){ + modifyLog.setOperateUserId(authUser.getId()); + } + modifyLogService.save(modifyLog); + } + } + + public String generateKeyBySpEL(String spELString, JoinPoint joinPoint) throws Exception { + MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); + String[] paramNames = nameDiscoverer.getParameterNames(methodSignature.getMethod()); + SpelExpression expression = (SpelExpression) parser.parseExpression(spELString); + EvaluationContext context = new StandardEvaluationContext(); + Object[] args = joinPoint.getArgs(); + for (int i = 0; i < args.length; i++) { + context.setVariable(paramNames[i], args[i]); + } + return expression.getValue(context).toString(); + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java index 074d0a1..596ab06 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOrderInfoService.java @@ -28,5 +28,7 @@ ReturnDTO updateStatusById(Long id, String alreadyReceived); + String checkOrder(BizBusinessOrderInfo businessOrder); + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModifyLogService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModifyLogService.java new file mode 100644 index 0000000..dda4137 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModifyLogService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.service.equipment; + +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 服务类 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +public interface IEquipmentModifyLogService extends IService { + + List listByEquipment(Long equipmentId); + + +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java index 759cb30..158cc4e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java @@ -69,10 +69,10 @@ statisticsDTO.setDeptName(subList.get(0).getDeptName()); statisticsDTO.setTotal((long) subList.size()); - statisticsDTO.setMonthToExpire(subList.stream().filter(i->i.getCertificateValid().after(new Date()) && DateUtil.month(new Date()) == DateUtil.month(i.getCertificateValid())).count()); - statisticsDTO.setExpired(subList.stream().filter(i->i.getCertificateValid().before(new Date())).count()); + statisticsDTO.setMonthToExpire(subList.stream().filter(i->ObjectUtil.isNotEmpty(i.getCertificateValid()) && i.getCertificateValid().after(new Date()) && DateUtil.month(new Date()) == DateUtil.month(i.getCertificateValid())).count()); + statisticsDTO.setExpired(subList.stream().filter(i->ObjectUtil.isNotEmpty(i.getCertificateValid()) && i.getCertificateValid().before(new Date())).count()); statisticsDTO.setInCheck(subList.stream().filter(i-> StrUtil.isNotEmpty(i.getLatestSampleStatus()) && SampleStatusEnum.getSampleStatusByCompletion(InCheckSampleStatus).contains(i.getLatestSampleStatus())).count()); - statisticsDTO.setYearToCheck(subList.stream().filter(i-> DateUtil.year(new Date()) == DateUtil.year(i.getCertificateValid())).count()); + statisticsDTO.setYearToCheck(subList.stream().filter(i-> ObjectUtil.isNotEmpty(i.getCertificateValid()) && DateUtil.year(new Date()) == DateUtil.year(i.getCertificateValid())).count()); statisticsDTO.setYearChecked(subList.stream().mapToLong(i->Long.valueOf(i.getYearChecked())).sum()); Optional planFinishOpt = planFinishDTOList.stream().filter(i->deptId.equals(i.getDeptId())).findFirst(); @@ -393,13 +393,16 @@ private List getDeptGroupList(Map> deptGroupMap) { List deptGroupList = new ArrayList<>(); for (String key : deptGroupMap.keySet()) { - EquipmentMultiAggr.EquipmentSimpleList item = new EquipmentMultiAggr.EquipmentSimpleList(); - item.setEquipmentName(key.split(";;;")[0]); - item.setModel(key.split(";;;")[1]); - item.setCompanyName(key.split(";;;")[2]); - item.setDeptName(key.split(";;;")[3]); - item.setCount(deptGroupMap.get(key).size()); - deptGroupList.add(item); + if(key.split(";;;").length >= 4){ + EquipmentMultiAggr.EquipmentSimpleList item = new EquipmentMultiAggr.EquipmentSimpleList(); + item.setEquipmentName(key.split(";;;")[0]); + item.setModel(key.split(";;;")[1]); + item.setCompanyName(key.split(";;;")[2]); + item.setDeptName(key.split(";;;")[3]); + item.setCount(deptGroupMap.get(key).size()); + deptGroupList.add(item); + } + } return deptGroupList; } @@ -408,12 +411,14 @@ private List getCompanyGroupList(Map> companyGroupMap) { List companyGroupList = new ArrayList<>(); for (String key : companyGroupMap.keySet()) { - EquipmentMultiAggr.EquipmentSimpleList item = new EquipmentMultiAggr.EquipmentSimpleList(); - item.setEquipmentName(key.split(";;;")[0]); - item.setModel(key.split(";;;")[1]); - item.setCompanyName(key.split(";;;")[2]); - item.setCount(companyGroupMap.get(key).size()); - companyGroupList.add(item); + if(key.split(";;;").length >= 3){ + EquipmentMultiAggr.EquipmentSimpleList item = new EquipmentMultiAggr.EquipmentSimpleList(); + item.setEquipmentName(key.split(";;;")[0]); + item.setModel(key.split(";;;")[1]); + item.setCompanyName(key.split(";;;")[2]); + item.setCount(companyGroupMap.get(key).size()); + companyGroupList.add(item); + } } return companyGroupList; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/BizBusinessOrderInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/BizBusinessOrderInfoServiceImpl.java index dac1790..fed732a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/BizBusinessOrderInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/BizBusinessOrderInfoServiceImpl.java @@ -1,6 +1,8 @@ package com.casic.missiles.service.impl.business; 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; @@ -8,6 +10,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.OrderBackRequest; +import com.casic.missiles.dto.business.OrderCheckDTO; import com.casic.missiles.dto.business.OrderListRequest; import com.casic.missiles.dto.business.OrderListResponse; import com.casic.missiles.enums.BusinessExceptionEnum; @@ -57,11 +60,13 @@ List parentDeptIds = permissionContext.getDeptService().getParentListById(deptId); wrapper.and(i->i.eq("customer_id",deptId).or().in(CollUtil.isNotEmpty(parentDeptIds),"customer_id",parentDeptIds)); - Page resultPage = orderListResponseMapper.selectPage(page, wrapper); - for (OrderListResponse customerAdviceInfo : resultPage.getRecords()) { + List list = orderListResponseMapper.listPage(page, wrapper); + page.setRecords(list); + for (OrderListResponse customerAdviceInfo : page.getRecords()) { DictCodeUtils.convertDictCodeToName(customerAdviceInfo); + customerAdviceInfo.setDeptName(permissionContext.getDeptService().getDeptName(customerAdviceInfo.getDeptId())); } - return resultPage; + return page; } @Override @@ -70,6 +75,7 @@ DictCodeUtils.convertDictCodeToName(orderInfo); // todo 交接单编号列表,另需补充根据交接单编号打印pdf的接口 QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.select("*","(select manufacturer from eqpt_equipment_info e where e.id = sample_id) as sampleManufacturer"); wrapper.eq("order_id", orderInfo.getId()); List orderSampleList = sampleRelationMapper.selectList(wrapper); for (BizBusinessOrderSampleRelation bizBusinessOrderSampleRelation : orderSampleList) { @@ -154,7 +160,38 @@ "{0} <= DATE_FORMAT(create_time,'%Y-%m-%d')", request.getCreateStartTime().split(" ")[0]); wrapper.apply(StringUtils.isNotBlank(request.getCreateEndTime()), "{0} >= DATE_FORMAT(create_time,'%Y-%m-%d')", request.getCreateEndTime().split(" ")[0]); + + wrapper.eq(ObjectUtil.isNotEmpty(request.getDeptId()),"dept_id",request.getDeptId()); + wrapper.like(StrUtil.isNotEmpty(request.getMeasureCompany()),"measure_company",request.getMeasureCompany()); + wrapper.eq(StrUtil.isNotEmpty(request.getReceiveStatus()),"receive_status",request.getReceiveStatus()); + + String positionSql = String.format("(select id from eqpt_equipment_info e where e.id in (select sample_id from biz_business_order_sample_relation r where r.order_id = t.id) and e.use_position_id = %s)",request.getUsePositionId()); + wrapper.exists(ObjectUtil.isNotEmpty(request.getUsePositionId()),positionSql); + + String manufactureNoSql = String.format("(select id from eqpt_equipment_info e where e.id in (select sample_id from biz_business_order_sample_relation r where r.order_id = t.id) and e.manufacture_no like '%%%s%%')",request.getManufactureNo()); + wrapper.exists(ObjectUtil.isNotEmpty(request.getManufactureNo()),manufactureNoSql); wrapper.orderByDesc("create_time"); return wrapper; } + + @Override + public String checkOrder(BizBusinessOrderInfo businessOrder) { + List sampleRelations = businessOrder.getCustomerSampleInfoList(); + if(CollUtil.isNotEmpty(sampleRelations)){ + List sampleIds = sampleRelations.stream().map(BizBusinessOrderSampleRelation::getSampleId).distinct().collect(Collectors.toList()); + List checkRes = this.baseMapper.checkSamples(sampleIds,businessOrder.getId()); + if(CollUtil.isNotEmpty(checkRes)){ + Map> map = checkRes.stream().collect(Collectors.groupingBy(OrderCheckDTO::getManufactureNo)); + StringBuilder stringBuilder = new StringBuilder(); + for (String manufactureNo : map.keySet()) { + List subRes = map.get(manufactureNo); + String orderNos = StrUtil.join(",",subRes.stream().map(OrderCheckDTO::getOrderNo).distinct().collect(Collectors.toList())); + stringBuilder.append(String.format("编号为%s的%s设备已在任务单%s中,",manufactureNo,subRes.get(0).getEquipmentName(),orderNos)); + } + stringBuilder.append("请确认是否继续提交"); + return stringBuilder.toString(); + } + } + return null; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModifyLogServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModifyLogServiceImpl.java new file mode 100644 index 0000000..825a9ee --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModifyLogServiceImpl.java @@ -0,0 +1,42 @@ +package com.casic.missiles.service.impl.equipment; + +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.core.application.service.AbstractUserService; +import com.casic.missiles.model.equipment.EquipmentModifyLog; +import com.casic.missiles.mapper.equipment.EquipmentModifyLogMapper; +import com.casic.missiles.service.equipment.IEquipmentModifyLogService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 受检设备-设备台账-设备变更记录 服务实现类 + *

+ * + * @author zhangyingjie + * @since 2023-11-20 + */ +@Service +@RequiredArgsConstructor +public class EquipmentModifyLogServiceImpl extends ServiceImpl implements IEquipmentModifyLogService { + + private final AbstractUserService userService; + + @Override + public List listByEquipment(Long equipmentId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("equipment_id",equipmentId); + queryWrapper.orderByDesc("operate_time"); + List list = this.list(queryWrapper); + for (EquipmentModifyLog modifyLog : list) { + if(ObjectUtil.isNotEmpty(modifyLog.getOperateUserId())){ + modifyLog.setOperateUserName(userService.getById(modifyLog.getOperateUserId()).getName()); + } + } + return list; + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java index 6dceac4..6de99ec 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java @@ -26,6 +26,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.Date; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; @@ -104,6 +105,13 @@ public void finishApproval(Long approvalId) { EquipmentStatusApproval approval = this.getById(approvalId); super.updateApprovalStatus(approval.getId(),ApprovalStatusEnum.PASSED); + if(ObjectUtil.isEmpty(approval.getApprovalTime()) || approval.getApprovalTime().before(new Date())){ + updateStatusAndSaveLog(approval); + } + } + + @Override + public void updateStatusAndSaveLog(EquipmentStatusApproval approval){ statusLogService.saveLog(approval); switch (approval.getApprovalType()) { case SEAL: diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusLogServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusLogServiceImpl.java index de1f710..6282acc 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusLogServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusLogServiceImpl.java @@ -26,14 +26,16 @@ @Override public void saveLog(EquipmentStatusApproval statusApproval) { - this.saveLog(statusApproval.getEquipmentId(),statusApproval.getApprovalType(),statusApproval.getApprovalReason(),statusApproval.getCreateUserId(),statusApproval.getCreateUserName()); + this.saveLog(statusApproval.getEquipmentId(),statusApproval.getApprovalType(), + statusApproval.getApprovalReason(),statusApproval.getCreateUserId(),statusApproval.getCreateUserName(), + statusApproval.getId()); } public void saveLog(Long equipmentId,String statusType,String reason){ - this.saveLog(equipmentId,statusType,reason,null,null); + this.saveLog(equipmentId,statusType,reason,null,null,null); } - public void saveLog(Long equipmentId,String statusType,String reason, Long createUserId, String createUserName){ + public void saveLog(Long equipmentId,String statusType,String reason, Long createUserId, String createUserName,Long statusApprovalId){ QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("equipment_id",equipmentId); queryWrapper.orderByDesc("start_time"); @@ -50,6 +52,7 @@ newLog.setReason(reason); newLog.setCreateUserId(createUserId); newLog.setCreateUserName(createUserName); + newLog.setStatusApprovalId(statusApprovalId); this.save(newLog); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/status/IEquipmentStatusApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/status/IEquipmentStatusApprovalService.java index 791794d..a96dfec 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/status/IEquipmentStatusApprovalService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/status/IEquipmentStatusApprovalService.java @@ -30,5 +30,5 @@ Long saveOrUpdateApproval(EquipmentStatusApproval approvalForm); EquipmentStatusApproval approvalInfoDetail(Long approvalId); - + void updateStatusAndSaveLog(EquipmentStatusApproval approval); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/status/IEquipmentStatusLogService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/status/IEquipmentStatusLogService.java index f4134d0..a87ead5 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/status/IEquipmentStatusLogService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/status/IEquipmentStatusLogService.java @@ -20,7 +20,5 @@ void saveLog(Long equipmentId,String statusType,String reason); - void saveLog(Long equipmentId,String statusType,String reason, Long createUserId, String createUserName); - List listByEquipment(Long equipmentId); }