动作参数取值范围+角色配置权限
This commit is contained in:
8
rc_autoplc_backend/.idea/.gitignore
generated
vendored
8
rc_autoplc_backend/.idea/.gitignore
generated
vendored
@@ -1,8 +0,0 @@
|
|||||||
# Default ignored files
|
|
||||||
/shelf/
|
|
||||||
/workspace.xml
|
|
||||||
# Editor-based HTTP Client requests
|
|
||||||
/httpRequests/
|
|
||||||
# Datasource local storage ignored files
|
|
||||||
/dataSources/
|
|
||||||
/dataSources.local.xml
|
|
||||||
26
rc_autoplc_backend/.idea/compiler.xml
generated
26
rc_autoplc_backend/.idea/compiler.xml
generated
@@ -1,26 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="CompilerConfiguration">
|
|
||||||
<annotationProcessing>
|
|
||||||
<profile default="true" name="Default" enabled="true" />
|
|
||||||
<profile name="Annotation profile for Rc-autoplc-backend" enabled="true">
|
|
||||||
<sourceOutputDir name="target/generated-sources/annotations" />
|
|
||||||
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
|
|
||||||
<outputRelativeToContentRoot value="true" />
|
|
||||||
<processorPath useClasspath="false">
|
|
||||||
<entry name="$PROJECT_DIR$/../../../../maven/maven-respository/org/projectlombok/lombok/1.18.30/lombok-1.18.30.jar" />
|
|
||||||
</processorPath>
|
|
||||||
<module name="rczn-common" />
|
|
||||||
<module name="rczn-admin" />
|
|
||||||
<module name="rczn-autoplc" />
|
|
||||||
</profile>
|
|
||||||
</annotationProcessing>
|
|
||||||
</component>
|
|
||||||
<component name="JavacSettings">
|
|
||||||
<option name="ADDITIONAL_OPTIONS_OVERRIDE">
|
|
||||||
<module name="rczn-admin" options="-parameters" />
|
|
||||||
<module name="rczn-autoplc" options="-parameters" />
|
|
||||||
<module name="rczn-common" options="-parameters" />
|
|
||||||
</option>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
10
rc_autoplc_backend/.idea/encodings.xml
generated
10
rc_autoplc_backend/.idea/encodings.xml
generated
@@ -1,10 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="Encoding">
|
|
||||||
<file url="file://$PROJECT_DIR$/rczn-admin/src/main/java" charset="UTF-8" />
|
|
||||||
<file url="file://$PROJECT_DIR$/rczn-autoplc/src/main/java" charset="UTF-8" />
|
|
||||||
<file url="file://$PROJECT_DIR$/rczn-common/src/main/java" charset="UTF-8" />
|
|
||||||
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
|
|
||||||
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
40
rc_autoplc_backend/.idea/jarRepositories.xml
generated
40
rc_autoplc_backend/.idea/jarRepositories.xml
generated
@@ -1,40 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="RemoteRepositoriesConfiguration">
|
|
||||||
<remote-repository>
|
|
||||||
<option name="id" value="central" />
|
|
||||||
<option name="name" value="Central Repository" />
|
|
||||||
<option name="url" value="https://repo.maven.apache.org/maven2" />
|
|
||||||
</remote-repository>
|
|
||||||
<remote-repository>
|
|
||||||
<option name="id" value="ias-snapshots" />
|
|
||||||
<option name="name" value="Infinite Automation Snapshot Repository" />
|
|
||||||
<option name="url" value="https://maven.mangoautomation.net/repository/ias-snapshot/" />
|
|
||||||
</remote-repository>
|
|
||||||
<remote-repository>
|
|
||||||
<option name="id" value="spring-milestones" />
|
|
||||||
<option name="name" value="Spring Milestones" />
|
|
||||||
<option name="url" value="https://repo.spring.io/milestone" />
|
|
||||||
</remote-repository>
|
|
||||||
<remote-repository>
|
|
||||||
<option name="id" value="spring-releases" />
|
|
||||||
<option name="name" value="Spring Releases" />
|
|
||||||
<option name="url" value="https://repo.spring.io/release" />
|
|
||||||
</remote-repository>
|
|
||||||
<remote-repository>
|
|
||||||
<option name="id" value="central" />
|
|
||||||
<option name="name" value="Maven Central repository" />
|
|
||||||
<option name="url" value="https://repo1.maven.org/maven2" />
|
|
||||||
</remote-repository>
|
|
||||||
<remote-repository>
|
|
||||||
<option name="id" value="jboss.community" />
|
|
||||||
<option name="name" value="JBoss Community repository" />
|
|
||||||
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
|
|
||||||
</remote-repository>
|
|
||||||
<remote-repository>
|
|
||||||
<option name="id" value="ias-releases" />
|
|
||||||
<option name="name" value="Infinite Automation Release Repository" />
|
|
||||||
<option name="url" value="https://maven.mangoautomation.net/repository/ias-release/" />
|
|
||||||
</remote-repository>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
124
rc_autoplc_backend/.idea/uiDesigner.xml
generated
124
rc_autoplc_backend/.idea/uiDesigner.xml
generated
@@ -1,124 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="Palette2">
|
|
||||||
<group name="Swing">
|
|
||||||
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
|
|
||||||
</item>
|
|
||||||
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
|
|
||||||
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
|
|
||||||
<initial-values>
|
|
||||||
<property name="text" value="Button" />
|
|
||||||
</initial-values>
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
|
|
||||||
<initial-values>
|
|
||||||
<property name="text" value="RadioButton" />
|
|
||||||
</initial-values>
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
|
|
||||||
<initial-values>
|
|
||||||
<property name="text" value="CheckBox" />
|
|
||||||
</initial-values>
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
|
|
||||||
<initial-values>
|
|
||||||
<property name="text" value="Label" />
|
|
||||||
</initial-values>
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
|
||||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
|
||||||
<preferred-size width="150" height="-1" />
|
|
||||||
</default-constraints>
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
|
||||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
|
||||||
<preferred-size width="150" height="-1" />
|
|
||||||
</default-constraints>
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
|
||||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
|
||||||
<preferred-size width="150" height="-1" />
|
|
||||||
</default-constraints>
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
|
||||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
|
||||||
<preferred-size width="150" height="50" />
|
|
||||||
</default-constraints>
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
|
||||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
|
||||||
<preferred-size width="150" height="50" />
|
|
||||||
</default-constraints>
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
|
||||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
|
||||||
<preferred-size width="150" height="50" />
|
|
||||||
</default-constraints>
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
|
||||||
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
|
||||||
<preferred-size width="150" height="50" />
|
|
||||||
</default-constraints>
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
|
|
||||||
<preferred-size width="150" height="50" />
|
|
||||||
</default-constraints>
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
|
||||||
<preferred-size width="150" height="50" />
|
|
||||||
</default-constraints>
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
|
|
||||||
<preferred-size width="200" height="200" />
|
|
||||||
</default-constraints>
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
|
|
||||||
<preferred-size width="200" height="200" />
|
|
||||||
</default-constraints>
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
|
||||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
|
|
||||||
<preferred-size width="-1" height="20" />
|
|
||||||
</default-constraints>
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
|
|
||||||
</item>
|
|
||||||
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
|
||||||
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
|
|
||||||
</item>
|
|
||||||
</group>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
54
rc_autoplc_backend/.idea/workspace.xml
generated
Normal file
54
rc_autoplc_backend/.idea/workspace.xml
generated
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="AutoImportSettings">
|
||||||
|
<option name="autoReloadType" value="SELECTIVE" />
|
||||||
|
</component>
|
||||||
|
<component name="ChangeListManager">
|
||||||
|
<list default="true" id="d47bc58e-d36b-422c-92c6-393c467a25d3" name="Changes" comment="" />
|
||||||
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
|
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||||
|
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||||
|
</component>
|
||||||
|
<component name="Git.Settings">
|
||||||
|
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/.." />
|
||||||
|
</component>
|
||||||
|
<component name="MarkdownSettingsMigration">
|
||||||
|
<option name="stateVersion" value="1" />
|
||||||
|
</component>
|
||||||
|
<component name="MavenImportPreferences">
|
||||||
|
<option name="generalSettings">
|
||||||
|
<MavenGeneralSettings>
|
||||||
|
<option name="useMavenConfig" value="true" />
|
||||||
|
</MavenGeneralSettings>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
<component name="ProjectId" id="37uy9ngFoDUVUddX8Yg9afHWRsn" />
|
||||||
|
<component name="ProjectViewState">
|
||||||
|
<option name="hideEmptyMiddlePackages" value="true" />
|
||||||
|
<option name="showLibraryContents" value="true" />
|
||||||
|
</component>
|
||||||
|
<component name="PropertiesComponent"><![CDATA[{
|
||||||
|
"keyToString": {
|
||||||
|
"RunOnceActivity.OpenProjectViewOnStart": "true",
|
||||||
|
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||||
|
"WebServerToolWindowFactoryState": "false",
|
||||||
|
"vue.rearranger.settings.migration": "true"
|
||||||
|
}
|
||||||
|
}]]></component>
|
||||||
|
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
|
||||||
|
<component name="TaskManager">
|
||||||
|
<task active="true" id="Default" summary="Default task">
|
||||||
|
<changelist id="d47bc58e-d36b-422c-92c6-393c467a25d3" name="Changes" comment="" />
|
||||||
|
<created>1767767108230</created>
|
||||||
|
<option name="number" value="Default" />
|
||||||
|
<option name="presentableId" value="Default" />
|
||||||
|
<updated>1767767108230</updated>
|
||||||
|
<workItem from="1767767109651" duration="29000" />
|
||||||
|
</task>
|
||||||
|
<servers />
|
||||||
|
</component>
|
||||||
|
<component name="TypeScriptGeneratedFilesManager">
|
||||||
|
<option name="version" value="3" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
@@ -85,16 +85,16 @@ distribution (with or without modification), making available to the
|
|||||||
public, and in some countries other activities as well.
|
public, and in some countries other activities as well.
|
||||||
|
|
||||||
To "convey" a work means any kind of propagation that enables other
|
To "convey" a work means any kind of propagation that enables other
|
||||||
parties to make or receive copies. Mere interaction with a userBusy through
|
parties to make or receive copies. Mere interaction with a user through
|
||||||
a computer network, with no transfer of a copy, is not conveying.
|
a computer network, with no transfer of a copy, is not conveying.
|
||||||
|
|
||||||
An interactive userBusy interface displays "Appropriate Legal Notices"
|
An interactive user interface displays "Appropriate Legal Notices"
|
||||||
to the extent that it includes a convenient and prominently visible
|
to the extent that it includes a convenient and prominently visible
|
||||||
feature that (1) displays an appropriate copyright notice, and (2)
|
feature that (1) displays an appropriate copyright notice, and (2)
|
||||||
tells the userBusy that there is no warranty for the work (except to the
|
tells the user that there is no warranty for the work (except to the
|
||||||
extent that warranties are provided), that licensees may convey the
|
extent that warranties are provided), that licensees may convey the
|
||||||
work under this License, and how to view a copy of this License. If
|
work under this License, and how to view a copy of this License. If
|
||||||
the interface presents a list of userBusy commands or options, such as a
|
the interface presents a list of user commands or options, such as a
|
||||||
menu, a prominent item in the list meets this criterion.
|
menu, a prominent item in the list meets this criterion.
|
||||||
|
|
||||||
1. Source Code.
|
1. Source Code.
|
||||||
@@ -215,7 +215,7 @@ terms of section 4, provided that you also meet all of these conditions:
|
|||||||
permission to license the work in any other way, but it does not
|
permission to license the work in any other way, but it does not
|
||||||
invalidate such permission if you have separately received it.
|
invalidate such permission if you have separately received it.
|
||||||
|
|
||||||
d) If the work has interactive userBusy interfaces, each must display
|
d) If the work has interactive user interfaces, each must display
|
||||||
Appropriate Legal Notices; however, if the Program has interactive
|
Appropriate Legal Notices; however, if the Program has interactive
|
||||||
interfaces that do not display Appropriate Legal Notices, your
|
interfaces that do not display Appropriate Legal Notices, your
|
||||||
work need not make them do so.
|
work need not make them do so.
|
||||||
@@ -287,9 +287,9 @@ tangible personal property which is normally used for personal, family,
|
|||||||
or household purposes, or (2) anything designed or sold for incorporation
|
or household purposes, or (2) anything designed or sold for incorporation
|
||||||
into a dwelling. In determining whether a product is a consumer product,
|
into a dwelling. In determining whether a product is a consumer product,
|
||||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||||
product received by a particular userBusy, "normally used" refers to a
|
product received by a particular user, "normally used" refers to a
|
||||||
typical or common use of that class of product, regardless of the status
|
typical or common use of that class of product, regardless of the status
|
||||||
of the particular userBusy or of the way in which the particular userBusy
|
of the particular user or of the way in which the particular user
|
||||||
actually uses, or expects or is expected to use, the product. A product
|
actually uses, or expects or is expected to use, the product. A product
|
||||||
is a consumer product regardless of whether the product has substantial
|
is a consumer product regardless of whether the product has substantial
|
||||||
commercial, industrial or non-consumer uses, unless such uses represent
|
commercial, industrial or non-consumer uses, unless such uses represent
|
||||||
|
|||||||
@@ -35,8 +35,3 @@
|
|||||||
4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
|
4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
|
||||||
5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
|
5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
|
||||||
6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
|
6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
|
||||||
|
|
||||||
#### 增加日志生成:
|
|
||||||
1. 2026-4-3:用户登录日志信息
|
|
||||||
2. 2026-4-3:SOP用户操作日志信息
|
|
||||||
3. 2026-4-3:基础数据(功能岛、SOP序列)用户操作(增-删-改)日志
|
|
||||||
2
rc_autoplc_backend/mvnw.cmd
vendored
2
rc_autoplc_backend/mvnw.cmd
vendored
@@ -23,7 +23,7 @@
|
|||||||
@REM
|
@REM
|
||||||
@REM Optional ENV vars
|
@REM Optional ENV vars
|
||||||
@REM MVNW_REPOURL - repo url base for downloading maven distribution
|
@REM MVNW_REPOURL - repo url base for downloading maven distribution
|
||||||
@REM MVNW_USERNAME/MVNW_PASSWORD - userBusy and password for downloading maven
|
@REM MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven
|
||||||
@REM MVNW_VERBOSE - true: enable verbose log; others: silence the output
|
@REM MVNW_VERBOSE - true: enable verbose log; others: silence the output
|
||||||
@REM ----------------------------------------------------------------------------
|
@REM ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-parent</artifactId>
|
<artifactId>spring-boot-starter-parent</artifactId>
|
||||||
<version>3.2.12</version>
|
<version>3.4.12</version>
|
||||||
<relativePath/>
|
<relativePath/>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
@@ -30,7 +30,6 @@
|
|||||||
<jwt.version>4.4.0</jwt.version>
|
<jwt.version>4.4.0</jwt.version>
|
||||||
<knife4j.version>4.5.0</knife4j.version>
|
<knife4j.version>4.5.0</knife4j.version>
|
||||||
<jakarta.servlet-api.version>6.0.0</jakarta.servlet-api.version>
|
<jakarta.servlet-api.version>6.0.0</jakarta.servlet-api.version>
|
||||||
<lombok.version>1.18.30</lombok.version>
|
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<!-- 使用 dependencyManagement 管理项目特定版本 -->
|
<!-- 使用 dependencyManagement 管理项目特定版本 -->
|
||||||
@@ -76,34 +75,6 @@
|
|||||||
<version>${jakarta.servlet-api.version}</version>
|
<version>${jakarta.servlet-api.version}</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<!-- 在父模块的 dependencyManagement 中添加 -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.fasterxml.jackson.datatype</groupId>
|
|
||||||
<artifactId>jackson-datatype-jsr310</artifactId>
|
|
||||||
<version>2.15.4</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.commons</groupId>
|
|
||||||
<artifactId>commons-lang3</artifactId>
|
|
||||||
<version>3.14.0</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>jakarta.validation</groupId>
|
|
||||||
<artifactId>jakarta.validation-api</artifactId>
|
|
||||||
<version>3.0.2</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.github.s7connector</groupId>
|
|
||||||
<artifactId>s7connector</artifactId>
|
|
||||||
<version>2.1</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.commons</groupId>
|
|
||||||
<artifactId>commons-pool2</artifactId>
|
|
||||||
<version>2.12.0</version>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</dependencyManagement>
|
</dependencyManagement>
|
||||||
|
|
||||||
@@ -113,7 +84,6 @@
|
|||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
<version>3.11.0</version>
|
|
||||||
<configuration>
|
<configuration>
|
||||||
<source>${java.version}</source>
|
<source>${java.version}</source>
|
||||||
<target>${java.version}</target>
|
<target>${java.version}</target>
|
||||||
@@ -122,7 +92,6 @@
|
|||||||
<path>
|
<path>
|
||||||
<groupId>org.projectlombok</groupId>
|
<groupId>org.projectlombok</groupId>
|
||||||
<artifactId>lombok</artifactId>
|
<artifactId>lombok</artifactId>
|
||||||
<version>${lombok.version}</version>
|
|
||||||
</path>
|
</path>
|
||||||
</annotationProcessorPaths>
|
</annotationProcessorPaths>
|
||||||
</configuration>
|
</configuration>
|
||||||
|
|||||||
@@ -67,12 +67,6 @@
|
|||||||
<scope>runtime</scope>
|
<scope>runtime</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- <dependency>-->
|
|
||||||
<!-- <groupId>org.springdoc</groupId>-->
|
|
||||||
<!-- <artifactId>springdoc-openapi-starter-common</artifactId>-->
|
|
||||||
<!-- <version>2.3.0</version>-->
|
|
||||||
<!-- <scope>compile</scope>-->
|
|
||||||
<!-- </dependency>-->
|
|
||||||
<!-- 工具类 -->
|
<!-- 工具类 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.projectlombok</groupId>
|
<groupId>org.projectlombok</groupId>
|
||||||
@@ -85,7 +79,10 @@
|
|||||||
<groupId>com.auth0</groupId>
|
<groupId>com.auth0</groupId>
|
||||||
<artifactId>java-jwt</artifactId>
|
<artifactId>java-jwt</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.github.xiaoymin</groupId>
|
||||||
|
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.github.pagehelper</groupId>
|
<groupId>com.github.pagehelper</groupId>
|
||||||
<artifactId>pagehelper-spring-boot-starter</artifactId>
|
<artifactId>pagehelper-spring-boot-starter</artifactId>
|
||||||
@@ -95,12 +92,6 @@
|
|||||||
<artifactId>jackson-datatype-jsr310</artifactId>
|
<artifactId>jackson-datatype-jsr310</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- modbus4j 核心依赖(Java8+,Spring Boot2/3均兼容) -->
|
|
||||||
<!-- <dependency>-->
|
|
||||||
<!-- <groupId>com.infiniteautomation</groupId>-->
|
|
||||||
<!-- <artifactId>modbus4j</artifactId>-->
|
|
||||||
<!-- <version>3.0.3</version>-->
|
|
||||||
<!-- </dependency>-->
|
|
||||||
<!-- 测试依赖 -->
|
<!-- 测试依赖 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
|||||||
@@ -3,11 +3,9 @@ package com.rczn;
|
|||||||
import org.springframework.boot.SpringApplication;
|
import org.springframework.boot.SpringApplication;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
import org.springframework.context.annotation.ComponentScan;
|
import org.springframework.context.annotation.ComponentScan;
|
||||||
import org.springframework.scheduling.annotation.EnableScheduling;
|
|
||||||
|
|
||||||
@SpringBootApplication
|
@SpringBootApplication
|
||||||
@ComponentScan(value = "com.rczn.*")
|
@ComponentScan(value = "com.rczn.*")
|
||||||
@EnableScheduling
|
|
||||||
public class RcznAdminApplication {
|
public class RcznAdminApplication {
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|||||||
@@ -1,10 +1,6 @@
|
|||||||
package com.rczn.config;
|
package com.rczn.config;
|
||||||
|
|
||||||
import org.springframework.context.annotation.Bean;
|
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.web.cors.CorsConfiguration;
|
|
||||||
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
|
|
||||||
import org.springframework.web.filter.CorsFilter;
|
|
||||||
import org.springframework.web.servlet.config.annotation.CorsRegistry;
|
import org.springframework.web.servlet.config.annotation.CorsRegistry;
|
||||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||||
|
|
||||||
@@ -21,25 +17,4 @@ public class CorsConfig implements WebMvcConfigurer {
|
|||||||
.allowCredentials(true) // 允许携带Cookie
|
.allowCredentials(true) // 允许携带Cookie
|
||||||
.maxAge(3600); // 预检请求缓存1小时
|
.maxAge(3600); // 预检请求缓存1小时
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
|
||||||
public CorsFilter corsFilter() {
|
|
||||||
CorsConfiguration config = new CorsConfiguration();
|
|
||||||
// 1. 允许前端源(不要用*,和withCredentials=true配合需指定具体源,或用allowedOriginPatterns)
|
|
||||||
config.addAllowedOriginPattern("*");
|
|
||||||
// 2. 允许携带凭证(和前端withCredentials=true对应)
|
|
||||||
config.setAllowCredentials(true);
|
|
||||||
// 3. 允许所有请求方法(包含OPTIONS)
|
|
||||||
config.addAllowedMethod("*");
|
|
||||||
// 4. 允许所有请求头(包含Authorization)
|
|
||||||
config.addAllowedHeader("*");
|
|
||||||
// 5. 预检请求缓存时间(减少OPTIONS请求次数)
|
|
||||||
config.setMaxAge(3600L);
|
|
||||||
|
|
||||||
// 配置生效路径
|
|
||||||
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
|
|
||||||
source.registerCorsConfiguration("/**", config);
|
|
||||||
|
|
||||||
return new CorsFilter(source);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
package com.rczn.config;
|
|
||||||
|
|
||||||
import io.swagger.v3.oas.models.Components;
|
|
||||||
import io.swagger.v3.oas.models.OpenAPI;
|
|
||||||
import io.swagger.v3.oas.models.info.Info;
|
|
||||||
import io.swagger.v3.oas.models.security.SecurityRequirement;
|
|
||||||
import io.swagger.v3.oas.models.security.SecurityScheme;
|
|
||||||
import org.springframework.context.annotation.Bean;
|
|
||||||
import org.springframework.context.annotation.Configuration;
|
|
||||||
|
|
||||||
@Configuration
|
|
||||||
public class Knife4jConfig {
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
public OpenAPI customOpenAPI() {
|
|
||||||
// 1. 声明JWT认证规则
|
|
||||||
String securitySchemeName = "Authorization";
|
|
||||||
return new OpenAPI()
|
|
||||||
// 2. 文档基础信息(可选)
|
|
||||||
.info(new Info()
|
|
||||||
.title("XX自动化编程系统API")
|
|
||||||
.version("1.0.0")
|
|
||||||
.description("集成JWT认证的Knife4j接口文档"))
|
|
||||||
// 3. 配置全局认证规则(所有接口默认需要Token)
|
|
||||||
.addSecurityItem(new SecurityRequirement().addList(securitySchemeName))
|
|
||||||
// 4. 定义Token的传递方式(请求头+Bearer格式)
|
|
||||||
.components(new Components()
|
|
||||||
.addSecuritySchemes(securitySchemeName,
|
|
||||||
new SecurityScheme()
|
|
||||||
.name(securitySchemeName)
|
|
||||||
.type(SecurityScheme.Type.HTTP) // HTTP认证
|
|
||||||
.scheme("bearer") // Bearer格式
|
|
||||||
.bearerFormat("JWT") // Token类型为JWT
|
|
||||||
.in(SecurityScheme.In.HEADER) // 放在请求头
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,55 +0,0 @@
|
|||||||
package com.rczn.config;
|
|
||||||
|
|
||||||
import com.rczn.interceptors.LoginInterceptor;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.context.annotation.Configuration;
|
|
||||||
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
|
||||||
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
|
|
||||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
|
||||||
|
|
||||||
// 必须启用@Configuration,让Spring扫描到
|
|
||||||
@Configuration
|
|
||||||
public class WebConfig implements WebMvcConfigurer {
|
|
||||||
|
|
||||||
// 必须注入拦截器(取消注释)
|
|
||||||
@Autowired
|
|
||||||
LoginInterceptor loginInterceptor;
|
|
||||||
|
|
||||||
// 注册拦截器
|
|
||||||
@Override
|
|
||||||
public void addInterceptors(InterceptorRegistry registry) {
|
|
||||||
registry.addInterceptor(loginInterceptor)
|
|
||||||
// 拦截所有请求
|
|
||||||
.addPathPatterns("/**")
|
|
||||||
// 放行Swagger/Knife4j所有相关路径(关键补充/doc.html)
|
|
||||||
.excludePathPatterns(
|
|
||||||
// Knife4j自定义UI路径(核心!)
|
|
||||||
"/doc.html",
|
|
||||||
// Swagger UI页面相关
|
|
||||||
"/swagger-ui/**",
|
|
||||||
"/webjars/**",
|
|
||||||
// SpringDoc接口文档数据相关
|
|
||||||
"/v3/api-docs/**",
|
|
||||||
"/v3/api-docs.yaml",
|
|
||||||
// 旧版Swagger兼容
|
|
||||||
"/swagger-resources/**",
|
|
||||||
"/swagger-ui.html"
|
|
||||||
)
|
|
||||||
// 放行登录/注册接口
|
|
||||||
.excludePathPatterns("/user/login", "/user/register");
|
|
||||||
}
|
|
||||||
|
|
||||||
// 静态资源映射(适配Knife4j+SpringDoc)
|
|
||||||
@Override
|
|
||||||
public void addResourceHandlers(ResourceHandlerRegistry registry) {
|
|
||||||
// Knife4j静态资源(核心补充)
|
|
||||||
registry.addResourceHandler("/doc.html")
|
|
||||||
.addResourceLocations("classpath:/META-INF/resources/");
|
|
||||||
// Swagger UI静态资源
|
|
||||||
registry.addResourceHandler("/swagger-ui/**")
|
|
||||||
.addResourceLocations("classpath:/META-INF/resources/webjars/springdoc-openapi-ui/");
|
|
||||||
// Webjars通用资源
|
|
||||||
registry.addResourceHandler("/webjars/**")
|
|
||||||
.addResourceLocations("classpath:/META-INF/resources/webjars/");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,16 +1,15 @@
|
|||||||
package com.rczn.rcznautoplc.controller;
|
package com.rczn.controller;
|
||||||
|
|
||||||
import com.rczn.domain.PageBean;
|
import com.rczn.domain.PageBean;
|
||||||
import com.rczn.domain.Result;
|
import com.rczn.domain.Result;
|
||||||
import com.rczn.rcznautoplc.domain.ManageLog;
|
import com.rczn.system.domain.ManageLog;
|
||||||
import com.rczn.rcznautoplc.service.ManageLogService;
|
import com.rczn.system.service.ManageLogService;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
import io.swagger.v3.oas.annotations.Parameters;
|
import io.swagger.v3.oas.annotations.Parameters;
|
||||||
import io.swagger.v3.oas.annotations.enums.ParameterIn;
|
import io.swagger.v3.oas.annotations.enums.ParameterIn;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
@@ -44,12 +43,8 @@ public class ManageLogController {
|
|||||||
@RequestParam(required = false) String logName,
|
@RequestParam(required = false) String logName,
|
||||||
@RequestParam(required = false) String logType,
|
@RequestParam(required = false) String logType,
|
||||||
@RequestParam(required = false) Long createId,
|
@RequestParam(required = false) Long createId,
|
||||||
@RequestParam(required = false)
|
@RequestParam(required = false) LocalDateTime logWritetimeStart,
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
@RequestParam(required = false) LocalDateTime logWritetimeEnd) {
|
||||||
LocalDateTime logWritetimeStart,
|
|
||||||
@RequestParam(required = false)
|
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
|
||||||
LocalDateTime logWritetimeEnd) {
|
|
||||||
|
|
||||||
// 构建查询条件(空字段自动忽略)
|
// 构建查询条件(空字段自动忽略)
|
||||||
ManageLog query = new ManageLog();
|
ManageLog query = new ManageLog();
|
||||||
@@ -9,7 +9,6 @@ import io.swagger.v3.oas.annotations.Parameter;
|
|||||||
import io.swagger.v3.oas.annotations.Parameters;
|
import io.swagger.v3.oas.annotations.Parameters;
|
||||||
import io.swagger.v3.oas.annotations.enums.ParameterIn;
|
import io.swagger.v3.oas.annotations.enums.ParameterIn;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -22,8 +21,12 @@ import java.util.List;
|
|||||||
@Tag(name = "角色管理", description = "角色增删改查接口(支持分页+多条件查询+编码唯一性校验)")
|
@Tag(name = "角色管理", description = "角色增删改查接口(支持分页+多条件查询+编码唯一性校验)")
|
||||||
public class RoleController {
|
public class RoleController {
|
||||||
|
|
||||||
@Autowired
|
private final RoleService roleService;
|
||||||
RoleService roleService;
|
|
||||||
|
// 构造器注入
|
||||||
|
public RoleController(RoleService roleService) {
|
||||||
|
this.roleService = roleService;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 1. 分页查询角色(多条件模糊查询)
|
* 1. 分页查询角色(多条件模糊查询)
|
||||||
|
|||||||
@@ -1,65 +0,0 @@
|
|||||||
package com.rczn.controller;
|
|
||||||
|
|
||||||
import com.rczn.domain.Result;
|
|
||||||
import com.rczn.system.domain.RolePermission;
|
|
||||||
import com.rczn.system.domain.query.RolePermissionQuery;
|
|
||||||
import com.rczn.system.service.RolePermissionService;
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
|
||||||
import io.swagger.v3.oas.annotations.enums.ParameterIn;
|
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@RestController
|
|
||||||
@RequestMapping("/rolePermission")
|
|
||||||
@Tag(name = "角色权限管理", description = "角色权限关联接口")
|
|
||||||
public class RolePermissionController {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
RolePermissionService rolePermissionService;
|
|
||||||
|
|
||||||
@GetMapping("/listByRoleId/{roleId}")
|
|
||||||
@Operation(summary = "根据角色ID查询权限ID列表")
|
|
||||||
public Result getListByRoleId(
|
|
||||||
@Parameter(name = "roleId", required = true) @PathVariable Integer roleId) {
|
|
||||||
List<RolePermission> list = rolePermissionService.selectListByRoleId(roleId);
|
|
||||||
return Result.success(list);
|
|
||||||
}
|
|
||||||
|
|
||||||
@PostMapping("/add")
|
|
||||||
@Operation(summary = "给角色添加权限")
|
|
||||||
public Result add(@RequestBody RolePermissionQuery rolePermission) {
|
|
||||||
if (rolePermission.getRoleId() == null || rolePermission.getPermissionId() == null) {
|
|
||||||
return Result.error("角色ID和权限ID不能为空");
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
RolePermission rolePermissionEntity = new RolePermission();
|
|
||||||
rolePermissionEntity.setRoleId(rolePermission.getRoleId());
|
|
||||||
rolePermissionEntity.setPermissionId(rolePermission.getPermissionId());
|
|
||||||
rolePermissionService.insert(rolePermissionEntity);
|
|
||||||
return Result.success("添加成功");
|
|
||||||
} catch (Exception e) {
|
|
||||||
return Result.error(e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@DeleteMapping("/del")
|
|
||||||
@Operation(summary = "删除角色权限关联")
|
|
||||||
public Result delete(
|
|
||||||
@RequestParam Integer roleId,
|
|
||||||
@RequestParam(required = false) Integer permissionId) {
|
|
||||||
boolean success = rolePermissionService.delete(roleId, permissionId);
|
|
||||||
return success ? Result.success("删除成功") : Result.error("删除失败");
|
|
||||||
}
|
|
||||||
|
|
||||||
@DeleteMapping("/clearByRoleId/{roleId}")
|
|
||||||
@Operation(summary = "清空某个角色的所有权限")
|
|
||||||
public Result clearByRoleId(
|
|
||||||
@Parameter(name = "roleId", required = true) @PathVariable Integer roleId) {
|
|
||||||
rolePermissionService.deleteByRoleId(roleId);
|
|
||||||
return Result.success("清空成功");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,109 +0,0 @@
|
|||||||
package com.rczn.controller;
|
|
||||||
|
|
||||||
import com.github.pagehelper.PageInfo;
|
|
||||||
import com.rczn.domain.Result;
|
|
||||||
import com.rczn.system.domain.SysDicData;
|
|
||||||
import com.rczn.system.service.SysDicDataService;
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
|
||||||
import io.swagger.v3.oas.annotations.Parameters;
|
|
||||||
import io.swagger.v3.oas.annotations.enums.ParameterIn;
|
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.http.MediaType;
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@RestController
|
|
||||||
@RequestMapping("/sysDicData")
|
|
||||||
@Tag(name = "字典数据管理", description = "字典数据增删改查+分页查询+按类型查询接口")
|
|
||||||
public class SysDicDataController {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private SysDicDataService sysDicDataService;
|
|
||||||
|
|
||||||
@GetMapping(value = "/listPage", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
@Operation(summary = "分页查询字典数据", description = "支持字典类型ID、标签、值查询")
|
|
||||||
@Parameters({
|
|
||||||
@Parameter(name = "pageNum", description = "页码(必填)", required = true, example = "1", in = ParameterIn.QUERY),
|
|
||||||
@Parameter(name = "pageSize", description = "每页条数(必填)", required = true, example = "10", in = ParameterIn.QUERY),
|
|
||||||
@Parameter(name = "dicId", description = "字典类型ID(可选)", required = false, example = "1", in = ParameterIn.QUERY),
|
|
||||||
@Parameter(name = "dicLabel", description = "数据标签(可选,模糊查询)", required = false, example = "运行", in = ParameterIn.QUERY),
|
|
||||||
@Parameter(name = "dicValue", description = "数据值(可选,模糊查询)", required = false, example = "1", in = ParameterIn.QUERY)
|
|
||||||
})
|
|
||||||
public Result getDicDataPage(
|
|
||||||
@RequestParam Integer pageNum,
|
|
||||||
@RequestParam Integer pageSize,
|
|
||||||
@RequestParam(required = false) Integer dicId,
|
|
||||||
@RequestParam(required = false) String dicLabel,
|
|
||||||
@RequestParam(required = false) String dicValue) {
|
|
||||||
PageInfo<SysDicData> pageBean = sysDicDataService.selectPage(pageNum, pageSize, dicId, dicLabel, dicValue);
|
|
||||||
return Result.success(pageBean);
|
|
||||||
}
|
|
||||||
|
|
||||||
@GetMapping(value = "/list", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
@Operation(summary = "查询字典数据", description = "支持字典类型ID、标签、值查询")
|
|
||||||
@Parameters({
|
|
||||||
@Parameter(name = "dicId", description = "字典类型ID(可选)", required = false, example = "1", in = ParameterIn.QUERY),
|
|
||||||
@Parameter(name = "dicLabel", description = "数据标签(可选,模糊查询)", required = false, example = "运行", in = ParameterIn.QUERY),
|
|
||||||
@Parameter(name = "dicValue", description = "数据值(可选,模糊查询)", required = false, example = "1", in = ParameterIn.QUERY)
|
|
||||||
})
|
|
||||||
public Result getList(
|
|
||||||
@RequestParam(required = false) Integer dicId,
|
|
||||||
@RequestParam(required = false) String dicLabel,
|
|
||||||
@RequestParam(required = false) String dicValue) {
|
|
||||||
List<SysDicData> list = sysDicDataService.selectList( dicId, dicLabel, dicValue);
|
|
||||||
return Result.success(list);
|
|
||||||
}
|
|
||||||
|
|
||||||
@GetMapping(value = "/getById/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
@Operation(summary = "查询单个字典数据", description = "根据字典数据ID查询详情")
|
|
||||||
public Result getDicDataById(@PathVariable Long id) {
|
|
||||||
SysDicData sysDicData = sysDicDataService.selectById(id);
|
|
||||||
return sysDicData != null ? Result.success(sysDicData) : Result.error("字典数据不存在");
|
|
||||||
}
|
|
||||||
|
|
||||||
@GetMapping(value = "/listByDicId/{dicId}", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
@Operation(summary = "按字典类型ID查询数据列表", description = "查询指定字典类型下的所有有效数据")
|
|
||||||
public Result getDicDataByDicId(@PathVariable Integer dicId) {
|
|
||||||
try {
|
|
||||||
List<SysDicData> list = sysDicDataService.selectByDicId(dicId);
|
|
||||||
return Result.success(list);
|
|
||||||
} catch (IllegalArgumentException e) {
|
|
||||||
return Result.error(e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@PostMapping(value = "/add", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
@Operation(summary = "新增字典数据", description = "字典类型ID、数据标签为必填项")
|
|
||||||
public Result addDicData(@RequestBody SysDicData sysDicData) {
|
|
||||||
try {
|
|
||||||
Long dicDataId = sysDicDataService.insert(sysDicData);
|
|
||||||
return Result.success(dicDataId);
|
|
||||||
} catch (IllegalArgumentException e) {
|
|
||||||
return Result.error(e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@PutMapping(value = "/update", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
@Operation(summary = "修改字典数据", description = "需传入字典数据ID,其他字段可选(非空则更新)")
|
|
||||||
public Result updateDicData(@RequestBody SysDicData sysDicData) {
|
|
||||||
try {
|
|
||||||
Boolean success = sysDicDataService.update(sysDicData);
|
|
||||||
return success ? Result.success(true) : Result.error("修改失败(字典数据不存在或已删除)");
|
|
||||||
} catch (IllegalArgumentException e) {
|
|
||||||
return Result.error(e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@DeleteMapping(value = "/del/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
@Operation(summary = "删除字典数据", description = "逻辑删除(设置delSign=1,不物理删除数据)")
|
|
||||||
public Result deleteDicData(@PathVariable Long id) {
|
|
||||||
try {
|
|
||||||
Boolean success = sysDicDataService.deleteById(id);
|
|
||||||
return success ? Result.success(true) : Result.error("删除失败(字典数据不存在或已删除)");
|
|
||||||
} catch (IllegalArgumentException e) {
|
|
||||||
return Result.error(e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,95 +0,0 @@
|
|||||||
package com.rczn.controller;
|
|
||||||
|
|
||||||
import com.github.pagehelper.PageInfo;
|
|
||||||
import com.rczn.domain.Result;
|
|
||||||
import com.rczn.system.domain.SysDicType;
|
|
||||||
import com.rczn.system.service.SysDicTypeService;
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
|
||||||
import io.swagger.v3.oas.annotations.Parameters;
|
|
||||||
import io.swagger.v3.oas.annotations.enums.ParameterIn;
|
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.http.MediaType;
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@RestController
|
|
||||||
@RequestMapping("/sysDicType")
|
|
||||||
@Tag(name = "字典类型管理", description = "字典类型增删改查+分页查询接口")
|
|
||||||
public class SysDicTypeController {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private SysDicTypeService sysDicTypeService;
|
|
||||||
|
|
||||||
@GetMapping(value = "/listPage", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
@Operation(summary = "分页查询字典类型", description = "支持字典名称、编码模糊查询")
|
|
||||||
@Parameters({
|
|
||||||
@Parameter(name = "pageNum", description = "页码(必填)", required = true, example = "1", in = ParameterIn.QUERY),
|
|
||||||
@Parameter(name = "pageSize", description = "每页条数(必填)", required = true, example = "10", in = ParameterIn.QUERY),
|
|
||||||
@Parameter(name = "dicName", description = "字典名称(可选,模糊查询)", required = false, example = "设备状态", in = ParameterIn.QUERY),
|
|
||||||
@Parameter(name = "dicCode", description = "字典编码(可选,模糊查询)", required = false, example = "DEV_STATUS", in = ParameterIn.QUERY)
|
|
||||||
})
|
|
||||||
public Result getDicTypePage(
|
|
||||||
@RequestParam Integer pageNum,
|
|
||||||
@RequestParam Integer pageSize,
|
|
||||||
@RequestParam(required = false) String dicName,
|
|
||||||
@RequestParam(required = false) String dicCode) {
|
|
||||||
PageInfo<SysDicType> pageBean = sysDicTypeService.selectPage(pageNum, pageSize, dicName, dicCode);
|
|
||||||
return Result.success(pageBean);
|
|
||||||
}
|
|
||||||
|
|
||||||
@GetMapping(value = "/list", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
@Operation(summary = "查询字典类型列表", description = "支持字典名称、编码模糊查询")
|
|
||||||
@Parameters({
|
|
||||||
@Parameter(name = "dicName", description = "字典名称(可选,模糊查询)", required = false, example = "设备状态", in = ParameterIn.QUERY),
|
|
||||||
@Parameter(name = "dicCode", description = "字典编码(可选,模糊查询)", required = false, example = "DEV_STATUS", in = ParameterIn.QUERY)
|
|
||||||
})
|
|
||||||
public Result getList(
|
|
||||||
@RequestParam(required = false) String dicName,
|
|
||||||
@RequestParam(required = false) String dicCode) {
|
|
||||||
List<SysDicType> list = sysDicTypeService.selectList( dicName, dicCode);
|
|
||||||
return Result.success(list);
|
|
||||||
}
|
|
||||||
|
|
||||||
@GetMapping(value = "/getById/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
@Operation(summary = "查询单个字典类型", description = "根据字典类型ID查询详情")
|
|
||||||
public Result getDicTypeById(@PathVariable Long id) {
|
|
||||||
SysDicType sysDicType = sysDicTypeService.selectById(id);
|
|
||||||
return sysDicType != null ? Result.success(sysDicType) : Result.error("字典类型不存在");
|
|
||||||
}
|
|
||||||
|
|
||||||
@PostMapping(value = "/add", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
@Operation(summary = "新增字典类型", description = "字典名称为必填项")
|
|
||||||
public Result addDicType(@RequestBody SysDicType sysDicType) {
|
|
||||||
try {
|
|
||||||
Long dicTypeId = sysDicTypeService.insert(sysDicType);
|
|
||||||
return Result.success(dicTypeId);
|
|
||||||
} catch (IllegalArgumentException e) {
|
|
||||||
return Result.error(e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@PutMapping(value = "/update", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
@Operation(summary = "修改字典类型", description = "需传入字典类型ID,其他字段可选(非空则更新)")
|
|
||||||
public Result updateDicType(@RequestBody SysDicType sysDicType) {
|
|
||||||
try {
|
|
||||||
Boolean success = sysDicTypeService.update(sysDicType);
|
|
||||||
return success ? Result.success(true) : Result.error("修改失败(字典类型不存在或已删除)");
|
|
||||||
} catch (IllegalArgumentException e) {
|
|
||||||
return Result.error(e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@DeleteMapping(value = "/del/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
@Operation(summary = "删除字典类型", description = "逻辑删除(设置delSign=1,不物理删除数据)")
|
|
||||||
public Result deleteDicType(@PathVariable Long id) {
|
|
||||||
try {
|
|
||||||
Boolean success = sysDicTypeService.deleteById(id);
|
|
||||||
return success ? Result.success(true) : Result.error("删除失败(字典类型不存在或已删除)");
|
|
||||||
} catch (IllegalArgumentException e) {
|
|
||||||
return Result.error(e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,128 +0,0 @@
|
|||||||
package com.rczn.controller;
|
|
||||||
|
|
||||||
import com.rczn.domain.PageBean;
|
|
||||||
import com.rczn.domain.Result;
|
|
||||||
import com.rczn.system.domain.Permission;
|
|
||||||
import com.rczn.system.domain.Role;
|
|
||||||
import com.rczn.system.service.SysPermissionService;
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
|
||||||
import io.swagger.v3.oas.annotations.Parameters;
|
|
||||||
import io.swagger.v3.oas.annotations.enums.ParameterIn;
|
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 权限管理 API(MyBatis 树形结构实现)
|
|
||||||
*/
|
|
||||||
@RestController
|
|
||||||
@RequestMapping("/permission")
|
|
||||||
@Tag(name = "权限管理", description = "权限增删改查接口(树形结构)")
|
|
||||||
public class SysPermissionController {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private SysPermissionService sysPermissionService;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 1. 分页查询权限(多条件模糊查询)
|
|
||||||
*/
|
|
||||||
@GetMapping("/listPage")
|
|
||||||
@Operation(summary = "分页查询权限", description = "支持角色名、角色编码模糊查询,页码从1开始")
|
|
||||||
@Parameters({
|
|
||||||
@Parameter(name = "pageNum", description = "页码(必填,从1开始)", required = true, example = "1", in = ParameterIn.QUERY),
|
|
||||||
@Parameter(name = "pageSize", description = "每页条数(必填)", required = true, example = "10", in = ParameterIn.QUERY),
|
|
||||||
@Parameter(name = "parentId", description = "父级ID(可选)", required = false, example = "0", in = ParameterIn.QUERY),
|
|
||||||
@Parameter(name = "permissionName", description = "权限名称(模糊查询,可选)", required = false, example = "用户添加", in = ParameterIn.QUERY)
|
|
||||||
})
|
|
||||||
public Result<PageBean<Permission>> getRolePage(
|
|
||||||
@RequestParam Integer pageNum,
|
|
||||||
@RequestParam Integer pageSize,
|
|
||||||
@RequestParam(required = false) Integer parentId,
|
|
||||||
@RequestParam(required = false) String permissionName) {
|
|
||||||
|
|
||||||
PageBean<Permission> pageBean = sysPermissionService.selectRolePage(pageNum, pageSize, parentId,permissionName);
|
|
||||||
return Result.success(pageBean);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 1. 查询权限树形结构列表
|
|
||||||
*/
|
|
||||||
@GetMapping("/list")
|
|
||||||
@Operation(summary = "查询权限树形列表", description = "返回权限树形结构(parentId为0或null为顶级)")
|
|
||||||
public Result<List<Permission>> getPermissionList() {
|
|
||||||
List<Permission> treeList = sysPermissionService.getPermissionList();
|
|
||||||
return Result.success(treeList);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 1. 查询权限树形结构列表
|
|
||||||
*/
|
|
||||||
// @GetMapping("/listByParentId/{parentId}")
|
|
||||||
// @Operation(summary = "查询权限树形列表", description = "返回权限树形结构(parentId为0或null为顶级)")
|
|
||||||
// public Result<List<Permission>> getPermissionListByParentId(@PathVariable Integer parentId) {
|
|
||||||
// List<Permission> treeList = sysPermissionService.getPermissionListByParentId(parentId);
|
|
||||||
// return Result.success(treeList);
|
|
||||||
// }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 2. 根据ID查询单个权限
|
|
||||||
*/
|
|
||||||
@GetMapping("/getById/{id}")
|
|
||||||
@Operation(summary = "查询单个权限", description = "根据权限ID查询详情")
|
|
||||||
public Result getPermissionById(
|
|
||||||
@Parameter(name = "id", description = "权限ID", required = true, example = "1", in = ParameterIn.PATH)
|
|
||||||
@PathVariable Integer id) {
|
|
||||||
|
|
||||||
Permission permission = sysPermissionService.getPermissionById(id);
|
|
||||||
if (permission == null) {
|
|
||||||
return Result.error("权限ID:" + id + " 不存在");
|
|
||||||
}
|
|
||||||
return Result.success(permission);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 3. 新增权限
|
|
||||||
*/
|
|
||||||
@PostMapping("/add")
|
|
||||||
@Operation(summary = "新增权限", description = "提交权限信息创建新权限")
|
|
||||||
public Result addPermission(
|
|
||||||
@Parameter(name = "permission", description = "权限信息", required = true)
|
|
||||||
@RequestBody Permission permission) {
|
|
||||||
|
|
||||||
boolean success = sysPermissionService.addPermission(permission);
|
|
||||||
return success ? Result.success("新增权限成功") : Result.error("新增失败");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 4. 修改权限
|
|
||||||
*/
|
|
||||||
@PutMapping("/update")
|
|
||||||
@Operation(summary = "修改权限", description = "传入权限ID和需要修改的字段")
|
|
||||||
public Result updatePermission(
|
|
||||||
@Parameter(name = "permission", description = "权限信息(必须包含ID)", required = true)
|
|
||||||
@RequestBody Permission permission) {
|
|
||||||
|
|
||||||
try {
|
|
||||||
boolean success = sysPermissionService.updatePermission(permission);
|
|
||||||
return success ? Result.success("修改权限成功") : Result.error("修改失败(权限不存在)");
|
|
||||||
} catch (Exception e) {
|
|
||||||
return Result.error(e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 5. 根据ID删除权限(逻辑删除)
|
|
||||||
*/
|
|
||||||
@DeleteMapping("/del/{id}")
|
|
||||||
@Operation(summary = "删除权限", description = "根据权限ID逻辑删除")
|
|
||||||
public Result deletePermission(
|
|
||||||
@Parameter(name = "id", description = "权限ID", required = true, example = "1", in = ParameterIn.PATH)
|
|
||||||
@PathVariable Integer id) {
|
|
||||||
|
|
||||||
boolean success = sysPermissionService.deletePermission(id);
|
|
||||||
return success ? Result.success("删除权限成功") : Result.error("删除失败(权限不存在)");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,33 +1,18 @@
|
|||||||
package com.rczn.controller;
|
package com.rczn.controller;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonAppend;
|
|
||||||
import com.rczn.domain.PageBean;
|
import com.rczn.domain.PageBean;
|
||||||
import com.rczn.domain.Result;
|
import com.rczn.domain.Result;
|
||||||
import com.rczn.rcznautoplc.domain.ManageLog;
|
|
||||||
import com.rczn.rcznautoplc.domain.RecordInfo;
|
|
||||||
import com.rczn.rcznautoplc.service.ManageLogService;
|
|
||||||
import com.rczn.rcznautoplc.service.RecordInfoService;
|
|
||||||
import com.rczn.system.domain.Permission;
|
|
||||||
import com.rczn.system.domain.User;
|
import com.rczn.system.domain.User;
|
||||||
import com.rczn.system.service.UserService;
|
import com.rczn.system.service.UserService;
|
||||||
import com.rczn.utils.JwtUtil;
|
|
||||||
import com.rczn.utils.Md5Util;
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
import io.swagger.v3.oas.annotations.Parameters;
|
import io.swagger.v3.oas.annotations.Parameters;
|
||||||
import io.swagger.v3.oas.annotations.enums.ParameterIn;
|
import io.swagger.v3.oas.annotations.enums.ParameterIn;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import jakarta.validation.constraints.Pattern;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.time.format.DateTimeFormatter;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户管理 CRUD API(MyBatis+PageHelper 实现)
|
* 用户管理 CRUD API(MyBatis+PageHelper 实现)
|
||||||
@@ -132,108 +117,4 @@ public class UserController {
|
|||||||
Boolean success = userService.deleteById(id);
|
Boolean success = userService.deleteById(id);
|
||||||
return success ? Result.success("删除用户成功") : Result.error("删除失败(用户不存在)");
|
return success ? Result.success("删除用户成功") : Result.error("删除失败(用户不存在)");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@PostMapping("/register")
|
|
||||||
@Operation(summary = "注册", description = "用户名必须是2-16位的字母、数字、下划线或减号")
|
|
||||||
public Result register(@Pattern(regexp = "^[a-zA-Z0-9_-]{2,16}$", message = "用户名必须是2-16位的字母、数字、下划线或减号")
|
|
||||||
@Parameter(
|
|
||||||
name = "username",
|
|
||||||
description = "用户名"
|
|
||||||
)
|
|
||||||
@RequestParam
|
|
||||||
String username,
|
|
||||||
@Parameter(
|
|
||||||
name = "password",
|
|
||||||
description = "密码..."
|
|
||||||
)
|
|
||||||
@RequestParam
|
|
||||||
String password) {
|
|
||||||
//查询数据库是否有该用户
|
|
||||||
User user = userService.findeUserByUsername(username);
|
|
||||||
//注册
|
|
||||||
if (user == null) {
|
|
||||||
//如果用户不存在,则注册
|
|
||||||
int result = userService.register(username, password);
|
|
||||||
return Result.success("用户注册成功");
|
|
||||||
} else {
|
|
||||||
//用户存在,返回错误信息
|
|
||||||
return Result.error("该用户名已存在!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@GetMapping("/getUserByUsername")
|
|
||||||
public Result getUserByUsername(String username) {
|
|
||||||
User user = userService.findeUserByUsername(username);
|
|
||||||
if (user == null) {
|
|
||||||
return Result.error("该用户不存在!");
|
|
||||||
} else {
|
|
||||||
return Result.success(user);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
ManageLogService manageLogService;
|
|
||||||
|
|
||||||
@PostMapping("/login")
|
|
||||||
@Operation(summary = "用户登录接口",description = "根据用户名和密码登录,返回JWT Token")
|
|
||||||
public Result login(
|
|
||||||
@Parameter(
|
|
||||||
name = "username",
|
|
||||||
description = "登录用户名(2-16位的字母、数字、下划线或减号)",
|
|
||||||
required = true, // 标记为必填参数
|
|
||||||
example = "string"
|
|
||||||
)
|
|
||||||
@RequestParam
|
|
||||||
String username,
|
|
||||||
@Parameter(
|
|
||||||
name = "password",
|
|
||||||
description = "登录密码",
|
|
||||||
required = true
|
|
||||||
)
|
|
||||||
@RequestParam
|
|
||||||
String password) {
|
|
||||||
|
|
||||||
//TODO 登录逻辑
|
|
||||||
//查询数据库是否有该用户
|
|
||||||
User user = userService.findeUserByUsername(username);
|
|
||||||
//登录
|
|
||||||
if (user == null) {
|
|
||||||
//如果用户不存在,返回错误信息
|
|
||||||
return Result.error("该用户不存在!");
|
|
||||||
} else {
|
|
||||||
//校验密码:
|
|
||||||
String encryptPassword = user.getPassword();
|
|
||||||
if (encryptPassword.equals(password)) {
|
|
||||||
//登录成功,增加登录日志:
|
|
||||||
LocalDateTime loginTime = LocalDateTime.now();
|
|
||||||
ManageLog info = new ManageLog();
|
|
||||||
info.setCreateId(user.getId());
|
|
||||||
info.setLogName("登录日志");
|
|
||||||
info.setLogType("登录日志");//1:登录日志、2:SOP操作日志、3:基础数据操作日志
|
|
||||||
StringBuilder stringBuilder = new StringBuilder();
|
|
||||||
stringBuilder.append("用户名:").append(user.getUserName()).append(",登录操作时间:").append(loginTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
|
||||||
info.setLogContent(stringBuilder.toString());
|
|
||||||
info.setCreateTime(loginTime);
|
|
||||||
manageLogService.insert(info);
|
|
||||||
|
|
||||||
// if (Md5Util.checkPassword(password, encryptPassword)) {
|
|
||||||
//生产token
|
|
||||||
Map<String, Object> claims = new HashMap<>();
|
|
||||||
claims.put("id", user.getId());
|
|
||||||
claims.put("username", user.getUserName());
|
|
||||||
//获取权限列表:
|
|
||||||
List<Permission> permissions = userService.findUserPermissions(user.getId());
|
|
||||||
List<String> permissionList = permissions.stream().map(Permission::getPermissionCode).collect(Collectors.toList());
|
|
||||||
claims.put("permissions", permissionList);
|
|
||||||
String jwtToken = JwtUtil.genToken(claims);
|
|
||||||
//密码正确,返回成功信息
|
|
||||||
return Result.success(jwtToken);
|
|
||||||
} else {
|
|
||||||
//密码错误,返回错误信息
|
|
||||||
return Result.error("密码错误!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
package com.rczn.rcznautoplc.domain;
|
package com.rczn.system.domain;
|
||||||
|
|
||||||
|
|
||||||
import com.rczn.domain.BaseBean;
|
import com.rczn.domain.BaseBean;
|
||||||
|
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
public class ManageLog extends BaseBean {
|
public class ManageLog extends BaseBean {
|
||||||
@@ -1,31 +1,16 @@
|
|||||||
package com.rczn.system.domain;
|
package com.rczn.system.domain;
|
||||||
|
|
||||||
import com.rczn.domain.BaseBean;
|
import com.rczn.domain.BaseBean;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
import java.util.List;
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
@ToString
|
||||||
public class Permission extends BaseBean {
|
public class Permission extends BaseBean {
|
||||||
|
|
||||||
private Integer parentId;
|
|
||||||
private String permissionName;
|
private String permissionName;
|
||||||
private String permissionCode;
|
|
||||||
|
|
||||||
// 树形结构子节点 ✅
|
private String permissionCode;}
|
||||||
private List<Permission> children;
|
|
||||||
|
|
||||||
// getter & setter
|
|
||||||
public Integer getParentId() { return parentId; }
|
|
||||||
public void setParentId(Integer parentId) { this.parentId = parentId; }
|
|
||||||
public String getPermissionName() { return permissionName; }
|
|
||||||
public void setPermissionName(String permissionName) { this.permissionName = permissionName; }
|
|
||||||
public String getPermissionCode() { return permissionCode; }
|
|
||||||
public void setPermissionCode(String permissionCode) { this.permissionCode = permissionCode; }
|
|
||||||
|
|
||||||
// children
|
|
||||||
public List<Permission> getChildren() {
|
|
||||||
return children;
|
|
||||||
}
|
|
||||||
public void setChildren(List<Permission> children) {
|
|
||||||
this.children = children;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,52 +0,0 @@
|
|||||||
package com.rczn.system.domain;
|
|
||||||
|
|
||||||
import com.rczn.domain.BaseBean;
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 字典数据实体类
|
|
||||||
* 对应表:sys_dic_data
|
|
||||||
*/
|
|
||||||
public class SysDicData extends BaseBean {
|
|
||||||
|
|
||||||
// 字典类型id(外键)
|
|
||||||
private Integer dicId;
|
|
||||||
|
|
||||||
// 数据标签
|
|
||||||
private String dicLabel;
|
|
||||||
|
|
||||||
// 数据字典值
|
|
||||||
private String dicValue;
|
|
||||||
|
|
||||||
public SysDicData() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public SysDicData(Long id, Long createId, LocalDateTime createTime, Long updateId, LocalDateTime updateTime, boolean delSign, String remark) {
|
|
||||||
super(id, createId, createTime, updateId, updateTime, delSign, remark);
|
|
||||||
}
|
|
||||||
|
|
||||||
// getter/setter
|
|
||||||
public Integer getDicId() {
|
|
||||||
return dicId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDicId(Integer dicId) {
|
|
||||||
this.dicId = dicId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDicLabel() {
|
|
||||||
return dicLabel;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDicLabel(String dicLabel) {
|
|
||||||
this.dicLabel = dicLabel;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDicValue() {
|
|
||||||
return dicValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDicValue(String dicValue) {
|
|
||||||
this.dicValue = dicValue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
package com.rczn.system.domain;
|
|
||||||
|
|
||||||
import com.rczn.domain.BaseBean;
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 字典类型实体类
|
|
||||||
* 对应表:sys_dic_type
|
|
||||||
*/
|
|
||||||
public class SysDicType extends BaseBean {
|
|
||||||
|
|
||||||
// 字典名称(必填)
|
|
||||||
private String dicName;
|
|
||||||
|
|
||||||
// 字典编码
|
|
||||||
private String dicCode;
|
|
||||||
|
|
||||||
public SysDicType() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public SysDicType(Long id, Long createId, LocalDateTime createTime, Long updateId, LocalDateTime updateTime, boolean delSign, String remark) {
|
|
||||||
super(id, createId, createTime, updateId, updateTime, delSign, remark);
|
|
||||||
}
|
|
||||||
|
|
||||||
// getter/setter
|
|
||||||
public String getDicName() {
|
|
||||||
return dicName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDicName(String dicName) {
|
|
||||||
this.dicName = dicName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDicCode() {
|
|
||||||
return dicCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDicCode(String dicCode) {
|
|
||||||
this.dicCode = dicCode;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
package com.rczn.system.domain.query;
|
|
||||||
|
|
||||||
public class RolePermissionQuery {
|
|
||||||
|
|
||||||
//角色id
|
|
||||||
private Integer roleId;
|
|
||||||
|
|
||||||
//权限id
|
|
||||||
private Integer permissionId;
|
|
||||||
|
|
||||||
public RolePermissionQuery(Integer roleId, Integer permissionId) {
|
|
||||||
this.roleId = roleId;
|
|
||||||
this.permissionId = permissionId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public RolePermissionQuery() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getRoleId() {
|
|
||||||
return roleId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRoleId(Integer roleId) {
|
|
||||||
this.roleId = roleId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getPermissionId() {
|
|
||||||
return permissionId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPermissionId(Integer permissionId) {
|
|
||||||
this.permissionId = permissionId;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,8 +1,7 @@
|
|||||||
package com.rczn.rcznautoplc.mapper;
|
package com.rczn.system.mapper;
|
||||||
|
|
||||||
import com.rczn.rcznautoplc.domain.ManageLog;
|
import com.rczn.system.domain.ManageLog;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Mapper // 标记为 MyBatis Mapper 接口,确保被 Spring 扫描
|
@Mapper // 标记为 MyBatis Mapper 接口,确保被 Spring 扫描
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
package com.rczn.system.mapper;
|
|
||||||
|
|
||||||
import com.rczn.system.domain.RolePermission;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
|
||||||
import org.apache.ibatis.annotations.Param;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@Mapper
|
|
||||||
public interface RolePermissionMapper {
|
|
||||||
|
|
||||||
List<RolePermission> selectListByRoleId(@Param("roleId") Integer roleId);
|
|
||||||
|
|
||||||
int insert(RolePermission rolePermission);
|
|
||||||
|
|
||||||
int delete(@Param("roleId") Integer roleId, @Param("permissionId") Integer permissionId);
|
|
||||||
|
|
||||||
int deleteByRoleId(@Param("roleId") Integer roleId);
|
|
||||||
}
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
package com.rczn.system.mapper;
|
|
||||||
|
|
||||||
import com.rczn.system.domain.SysDicData;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@Mapper
|
|
||||||
public interface SysDicDataMapper {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 新增字典数据
|
|
||||||
*/
|
|
||||||
int insert(SysDicData sysDicData);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 修改字典数据
|
|
||||||
*/
|
|
||||||
int update(SysDicData sysDicData);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 逻辑删除字典数据
|
|
||||||
*/
|
|
||||||
int deleteById(Long id);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据ID查询字典数据
|
|
||||||
*/
|
|
||||||
SysDicData selectById(Long id);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 分页查询字典数据(参数可选)
|
|
||||||
*/
|
|
||||||
List<SysDicData> selectPage(SysDicData sysDicData);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据字典类型ID查询字典数据列表
|
|
||||||
*/
|
|
||||||
List<SysDicData> selectByDicId(Integer dicId);
|
|
||||||
}
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
package com.rczn.system.mapper;
|
|
||||||
|
|
||||||
import com.rczn.system.domain.SysDicType;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@Mapper
|
|
||||||
public interface SysDicTypeMapper {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 新增字典类型
|
|
||||||
*/
|
|
||||||
int insert(SysDicType sysDicType);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 修改字典类型
|
|
||||||
*/
|
|
||||||
int update(SysDicType sysDicType);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 逻辑删除字典类型
|
|
||||||
*/
|
|
||||||
int deleteById(Long id);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据ID查询字典类型
|
|
||||||
*/
|
|
||||||
SysDicType selectById(Long id);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 分页查询字典类型(参数可选)
|
|
||||||
*/
|
|
||||||
List<SysDicType> selectPage(SysDicType sysDicType);
|
|
||||||
}
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
package com.rczn.system.mapper;
|
|
||||||
|
|
||||||
|
|
||||||
import com.rczn.system.domain.Permission;
|
|
||||||
import com.rczn.system.domain.Role;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
|
||||||
import org.apache.ibatis.annotations.Param;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@Mapper
|
|
||||||
public interface SysPermissionMapper {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 分页查询角色(支持角色名/角色编码模糊查询)
|
|
||||||
*/
|
|
||||||
List<Permission> selectPermissionPage(
|
|
||||||
@Param("parentId") Integer parentId,
|
|
||||||
@Param("permissionName") String permissionName);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询总条数(支持模糊查询条件)
|
|
||||||
*/
|
|
||||||
Long selectTotal(
|
|
||||||
@Param("parentId") Integer parentId,
|
|
||||||
@Param("permissionName") String permissionName);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询所有权限(未删除)
|
|
||||||
*/
|
|
||||||
List<Permission> selectPermissionList();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据ID查询
|
|
||||||
*/
|
|
||||||
Permission selectPermissionById(Integer id);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 新增
|
|
||||||
*/
|
|
||||||
int insertPermission(Permission permission);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 修改
|
|
||||||
*/
|
|
||||||
int updatePermission(Permission permission);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 逻辑删除
|
|
||||||
*/
|
|
||||||
int deletePermissionById(Integer id);
|
|
||||||
}
|
|
||||||
@@ -1,11 +1,8 @@
|
|||||||
package com.rczn.system.mapper;
|
package com.rczn.system.mapper;
|
||||||
|
|
||||||
import com.rczn.system.domain.Permission;
|
|
||||||
import com.rczn.system.domain.User;
|
import com.rczn.system.domain.User;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Select;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Mapper
|
@Mapper
|
||||||
@@ -34,10 +31,4 @@ public interface UserMapper {
|
|||||||
@Param("sex") Integer sex,
|
@Param("sex") Integer sex,
|
||||||
@Param("delSign") Boolean delSign
|
@Param("delSign") Boolean delSign
|
||||||
);
|
);
|
||||||
|
|
||||||
@Select("SELECT * FROM sys_user WHERE user_name = #{userName}")
|
|
||||||
User selectByUsername(String userName);
|
|
||||||
|
|
||||||
//根据用户id,查询出对应的权限列表
|
|
||||||
List<Permission> findUserPermissions(Long userId);
|
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.rczn.rcznautoplc.service;
|
package com.rczn.system.service;
|
||||||
|
|
||||||
import com.rczn.domain.PageBean;
|
import com.rczn.domain.PageBean;
|
||||||
import com.rczn.rcznautoplc.domain.ManageLog;
|
import com.rczn.system.domain.ManageLog;
|
||||||
|
|
||||||
public interface ManageLogService {
|
public interface ManageLogService {
|
||||||
// 新增日志
|
// 新增日志
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
package com.rczn.system.service;
|
|
||||||
|
|
||||||
import com.rczn.system.domain.RolePermission;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public interface RolePermissionService {
|
|
||||||
|
|
||||||
List<RolePermission> selectListByRoleId(Integer roleId);
|
|
||||||
|
|
||||||
void insert(RolePermission rolePermission);
|
|
||||||
|
|
||||||
boolean delete(Integer roleId, Integer permissionId);
|
|
||||||
|
|
||||||
void deleteByRoleId(Integer roleId);
|
|
||||||
}
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
package com.rczn.system.service;
|
|
||||||
|
|
||||||
import com.github.pagehelper.PageInfo;
|
|
||||||
import com.rczn.system.domain.SysDicData;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public interface SysDicDataService {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 分页查询字典数据
|
|
||||||
*/
|
|
||||||
PageInfo<SysDicData> selectPage(Integer pageNum, Integer pageSize, Integer dicId, String dicLabel, String dicValue);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询字典数据列表
|
|
||||||
*/
|
|
||||||
List<SysDicData> selectList(Integer dicId, String dicLabel, String dicValue);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据ID查询字典数据
|
|
||||||
*/
|
|
||||||
SysDicData selectById(Long id);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据字典类型ID查询字典数据列表
|
|
||||||
*/
|
|
||||||
List<SysDicData> selectByDicId(Integer dicId);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 新增字典数据
|
|
||||||
*/
|
|
||||||
Long insert(SysDicData sysDicData);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 修改字典数据
|
|
||||||
*/
|
|
||||||
Boolean update(SysDicData sysDicData);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 逻辑删除字典数据
|
|
||||||
*/
|
|
||||||
Boolean deleteById(Long id);
|
|
||||||
}
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
package com.rczn.system.service;
|
|
||||||
|
|
||||||
|
|
||||||
import com.github.pagehelper.PageInfo;
|
|
||||||
import com.rczn.system.domain.SysDicType;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public interface SysDicTypeService {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 分页查询字典类型
|
|
||||||
*/
|
|
||||||
PageInfo<SysDicType> selectPage(Integer pageNum, Integer pageSize, String dicName, String dicCode);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询字典类型列表
|
|
||||||
*/
|
|
||||||
List<SysDicType> selectList( String dicName, String dicCode);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据ID查询字典类型
|
|
||||||
*/
|
|
||||||
SysDicType selectById(Long id);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 新增字典类型
|
|
||||||
*/
|
|
||||||
Long insert(SysDicType sysDicType);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 修改字典类型
|
|
||||||
*/
|
|
||||||
Boolean update(SysDicType sysDicType);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 逻辑删除字典类型
|
|
||||||
*/
|
|
||||||
Boolean deleteById(Long id);
|
|
||||||
}
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
package com.rczn.system.service;
|
|
||||||
|
|
||||||
import com.rczn.domain.PageBean;
|
|
||||||
import com.rczn.system.domain.Permission;
|
|
||||||
import com.rczn.system.domain.Role;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public interface SysPermissionService {
|
|
||||||
List<Permission> getPermissionList();
|
|
||||||
//根据父ID查询权限列表:
|
|
||||||
List<Permission> getPermissionListByParentId(Integer parentId);
|
|
||||||
Permission getPermissionById(Integer id);
|
|
||||||
boolean addPermission(Permission permission);
|
|
||||||
boolean updatePermission(Permission permission);
|
|
||||||
boolean deletePermission(Integer id);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 1. 分页查询角色(多条件模糊查询)
|
|
||||||
* @param pageNum
|
|
||||||
* @param pageSize
|
|
||||||
* @param permissionName
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
PageBean<Permission> selectRolePage(Integer pageNum, Integer pageSize,Integer parentId, String permissionName);
|
|
||||||
}
|
|
||||||
@@ -11,13 +11,6 @@ public interface UserRoleService {
|
|||||||
Boolean deleteByRoleId(Integer roleId);
|
Boolean deleteByRoleId(Integer roleId);
|
||||||
UserRole selectById(Long id);
|
UserRole selectById(Long id);
|
||||||
List<UserRole> selectByUserId(Integer userId);
|
List<UserRole> selectByUserId(Integer userId);
|
||||||
|
|
||||||
/**
|
|
||||||
* Selects user roles by the given role ID
|
|
||||||
*
|
|
||||||
* @param roleId The ID of the role to search for
|
|
||||||
* @return List of UserRole objects associated with the given role ID
|
|
||||||
*/
|
|
||||||
List<UserRole> selectByRoleId(Integer roleId);
|
List<UserRole> selectByRoleId(Integer roleId);
|
||||||
PageBean<UserRole> selectPage(Integer pageNum, Integer pageSize, Integer userId, Integer roleId);
|
PageBean<UserRole> selectPage(Integer pageNum, Integer pageSize, Integer userId, Integer roleId);
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.rczn.system.service;
|
package com.rczn.system.service;
|
||||||
|
|
||||||
import com.rczn.domain.PageBean;
|
import com.rczn.domain.PageBean;
|
||||||
import com.rczn.system.domain.Permission;
|
|
||||||
import com.rczn.system.domain.User;
|
import com.rczn.system.domain.User;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -54,25 +53,4 @@ public interface UserService {
|
|||||||
* @return 是否删除成功(true/false)
|
* @return 是否删除成功(true/false)
|
||||||
*/
|
*/
|
||||||
Boolean deleteById(Long id);
|
Boolean deleteById(Long id);
|
||||||
|
|
||||||
/**
|
|
||||||
* 6. 根据用户名查询用户
|
|
||||||
* @param username 用户名
|
|
||||||
* @return 用户实体
|
|
||||||
*/
|
|
||||||
User findeUserByUsername(String username);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 7. 注册用户
|
|
||||||
* @param username 用户名
|
|
||||||
* @param password 密码
|
|
||||||
*/
|
|
||||||
int register(String username, String password);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据用户id查询出关联的用户权限对象列表,
|
|
||||||
* 表直接的关系是:
|
|
||||||
* 用户表(user)--用户权限表(user_role)--权限表(role)-- 权限资源表(role_resource)--资源表(resource)
|
|
||||||
*/
|
|
||||||
List<Permission> findUserPermissions(Long userId);
|
|
||||||
}
|
}
|
||||||
@@ -1,11 +1,12 @@
|
|||||||
package com.rczn.rcznautoplc.service.impl;
|
package com.rczn.system.service.impl;
|
||||||
|
|
||||||
import com.github.pagehelper.Page;
|
import com.github.pagehelper.Page;
|
||||||
import com.github.pagehelper.PageHelper;
|
|
||||||
import com.rczn.domain.PageBean;
|
import com.rczn.domain.PageBean;
|
||||||
import com.rczn.rcznautoplc.domain.ManageLog;
|
import com.rczn.system.domain.ManageLog;
|
||||||
import com.rczn.rcznautoplc.mapper.ManageLogMapper;
|
import com.github.pagehelper.PageHelper;
|
||||||
import com.rczn.rcznautoplc.service.ManageLogService;
|
import com.rczn.system.domain.Position;
|
||||||
|
import com.rczn.system.mapper.ManageLogMapper;
|
||||||
|
import com.rczn.system.service.ManageLogService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.util.Assert;
|
import org.springframework.util.Assert;
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
package com.rczn.system.service.impl;
|
|
||||||
|
|
||||||
import com.rczn.system.domain.RolePermission;
|
|
||||||
import com.rczn.system.mapper.RolePermissionMapper;
|
|
||||||
import com.rczn.system.service.RolePermissionService;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@Service
|
|
||||||
public class RolePermissionServiceImpl implements RolePermissionService {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
RolePermissionMapper rolePermissionMapper;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<RolePermission> selectListByRoleId(Integer roleId) {
|
|
||||||
return rolePermissionMapper.selectListByRoleId(roleId);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@Transactional
|
|
||||||
public void insert(RolePermission rolePermission) {
|
|
||||||
rolePermission.setCreateTime(LocalDateTime.now());
|
|
||||||
rolePermissionMapper.insert(rolePermission);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@Transactional
|
|
||||||
public boolean delete(Integer roleId, Integer permissionId) {
|
|
||||||
return rolePermissionMapper.delete(roleId, permissionId) > 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@Transactional
|
|
||||||
public void deleteByRoleId(Integer roleId) {
|
|
||||||
rolePermissionMapper.deleteByRoleId(roleId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,97 +0,0 @@
|
|||||||
package com.rczn.system.service.impl;
|
|
||||||
|
|
||||||
import com.github.pagehelper.PageHelper;
|
|
||||||
import com.github.pagehelper.PageInfo;
|
|
||||||
import com.rczn.system.domain.SysDicData;
|
|
||||||
import com.rczn.system.mapper.SysDicDataMapper;
|
|
||||||
import com.rczn.system.service.SysDicDataService;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@Service
|
|
||||||
public class SysDicDataServiceImpl implements SysDicDataService {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private SysDicDataMapper sysDicDataMapper;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public PageInfo<SysDicData> selectPage(Integer pageNum, Integer pageSize, Integer dicId, String dicLabel, String dicValue) {
|
|
||||||
PageHelper.startPage(pageNum, pageSize);
|
|
||||||
SysDicData query = new SysDicData();
|
|
||||||
query.setDicId(dicId);
|
|
||||||
query.setDicLabel(dicLabel);
|
|
||||||
query.setDicValue(dicValue);
|
|
||||||
return new PageInfo<>(sysDicDataMapper.selectPage(query));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询字典数据列表
|
|
||||||
*
|
|
||||||
* @param dicId
|
|
||||||
* @param dicLabel
|
|
||||||
* @param dicValue
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public List<SysDicData> selectList(Integer dicId, String dicLabel, String dicValue) {
|
|
||||||
SysDicData query = new SysDicData();
|
|
||||||
query.setDicId(dicId);
|
|
||||||
query.setDicLabel(dicLabel);
|
|
||||||
query.setDicValue(dicValue);
|
|
||||||
return sysDicDataMapper.selectPage(query);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public SysDicData selectById(Long id) {
|
|
||||||
return sysDicDataMapper.selectById(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<SysDicData> selectByDicId(Integer dicId) {
|
|
||||||
if (dicId == null) {
|
|
||||||
throw new IllegalArgumentException("字典类型ID不能为空");
|
|
||||||
}
|
|
||||||
return sysDicDataMapper.selectByDicId(dicId);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Long insert(SysDicData sysDicData) {
|
|
||||||
// 校验必填项
|
|
||||||
if (sysDicData.getDicId() == null) {
|
|
||||||
throw new IllegalArgumentException("字典类型ID不能为空");
|
|
||||||
}
|
|
||||||
if (sysDicData.getDicLabel() == null || sysDicData.getDicLabel().trim().isEmpty()) {
|
|
||||||
throw new IllegalArgumentException("数据标签不能为空");
|
|
||||||
}
|
|
||||||
int count = sysDicDataMapper.insert(sysDicData);
|
|
||||||
return count > 0 ? sysDicData.getId() : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Boolean update(SysDicData sysDicData) {
|
|
||||||
if (sysDicData.getId() == null) {
|
|
||||||
throw new IllegalArgumentException("字典数据ID不能为空");
|
|
||||||
}
|
|
||||||
// 校验是否存在
|
|
||||||
SysDicData exist = sysDicDataMapper.selectById(sysDicData.getId());
|
|
||||||
if (exist == null) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
int count = sysDicDataMapper.update(sysDicData);
|
|
||||||
return count > 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Boolean deleteById(Long id) {
|
|
||||||
if (id == null) {
|
|
||||||
throw new IllegalArgumentException("字典数据ID不能为空");
|
|
||||||
}
|
|
||||||
// 校验是否存在
|
|
||||||
SysDicData exist = sysDicDataMapper.selectById(id);
|
|
||||||
if (exist == null) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
int count = sysDicDataMapper.deleteById(id);
|
|
||||||
return count > 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,84 +0,0 @@
|
|||||||
package com.rczn.system.service.impl;
|
|
||||||
|
|
||||||
import com.github.pagehelper.PageHelper;
|
|
||||||
import com.github.pagehelper.PageInfo;
|
|
||||||
import com.rczn.system.domain.SysDicType;
|
|
||||||
import com.rczn.system.mapper.SysDicTypeMapper;
|
|
||||||
import com.rczn.system.service.SysDicTypeService;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@Service
|
|
||||||
public class SysDicTypeServiceImpl implements SysDicTypeService {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private SysDicTypeMapper sysDicTypeMapper;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public PageInfo<SysDicType> selectPage(Integer pageNum, Integer pageSize, String dicName, String dicCode) {
|
|
||||||
PageHelper.startPage(pageNum, pageSize);
|
|
||||||
SysDicType query = new SysDicType();
|
|
||||||
query.setDicName(dicName);
|
|
||||||
query.setDicCode(dicCode);
|
|
||||||
return new PageInfo<>(sysDicTypeMapper.selectPage(query));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询字典类型列表
|
|
||||||
*
|
|
||||||
* @param dicName
|
|
||||||
* @param dicCode
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public List<SysDicType> selectList(String dicName, String dicCode) {
|
|
||||||
SysDicType query = new SysDicType();
|
|
||||||
query.setDicName(dicName);
|
|
||||||
query.setDicCode(dicCode);
|
|
||||||
return sysDicTypeMapper.selectPage(query);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public SysDicType selectById(Long id) {
|
|
||||||
return sysDicTypeMapper.selectById(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Long insert(SysDicType sysDicType) {
|
|
||||||
// 校验必填项
|
|
||||||
if (sysDicType.getDicName() == null || sysDicType.getDicName().trim().isEmpty()) {
|
|
||||||
throw new IllegalArgumentException("字典名称不能为空");
|
|
||||||
}
|
|
||||||
int count = sysDicTypeMapper.insert(sysDicType);
|
|
||||||
return count > 0 ? sysDicType.getId() : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Boolean update(SysDicType sysDicType) {
|
|
||||||
if (sysDicType.getId() == null) {
|
|
||||||
throw new IllegalArgumentException("字典类型ID不能为空");
|
|
||||||
}
|
|
||||||
// 校验是否存在
|
|
||||||
SysDicType exist = sysDicTypeMapper.selectById(sysDicType.getId());
|
|
||||||
if (exist == null) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
int count = sysDicTypeMapper.update(sysDicType);
|
|
||||||
return count > 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Boolean deleteById(Long id) {
|
|
||||||
if (id == null) {
|
|
||||||
throw new IllegalArgumentException("字典类型ID不能为空");
|
|
||||||
}
|
|
||||||
// 校验是否存在
|
|
||||||
SysDicType exist = sysDicTypeMapper.selectById(id);
|
|
||||||
if (exist == null) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
int count = sysDicTypeMapper.deleteById(id);
|
|
||||||
return count > 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,140 +0,0 @@
|
|||||||
package com.rczn.system.service.impl;
|
|
||||||
|
|
||||||
import com.github.pagehelper.PageHelper;
|
|
||||||
import com.rczn.domain.PageBean;
|
|
||||||
import com.rczn.system.domain.Permission;
|
|
||||||
import com.rczn.system.domain.Role;
|
|
||||||
import com.rczn.system.mapper.SysPermissionMapper;
|
|
||||||
import com.rczn.system.service.SysPermissionService;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
@Service
|
|
||||||
public class SysPermissionServiceImpl implements SysPermissionService {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private SysPermissionMapper sysPermissionMapper;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Permission getPermissionById(Integer id) {
|
|
||||||
return sysPermissionMapper.selectPermissionById(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean addPermission(Permission permission) {
|
|
||||||
return sysPermissionMapper.insertPermission(permission) > 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean updatePermission(Permission permission) {
|
|
||||||
return sysPermissionMapper.updatePermission(permission) > 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean deletePermission(Integer id) {
|
|
||||||
return sysPermissionMapper.deletePermissionById(id) > 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 1. 分页查询角色(多条件模糊查询)
|
|
||||||
*
|
|
||||||
* @param pageNum
|
|
||||||
* @param pageSize
|
|
||||||
* @param permissionName
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public PageBean<Permission> selectRolePage(Integer pageNum, Integer pageSize,Integer parentId, String permissionName) {
|
|
||||||
// 1. PageHelper 设置分页参数
|
|
||||||
PageHelper.startPage(pageNum, pageSize);
|
|
||||||
//加一层过滤:
|
|
||||||
if(parentId == 0){
|
|
||||||
parentId = null;
|
|
||||||
}
|
|
||||||
// 2. 执行查询
|
|
||||||
List<Permission> permissionList = sysPermissionMapper.selectPermissionPage(parentId,permissionName);
|
|
||||||
// 3. 查询总条数
|
|
||||||
Long total = sysPermissionMapper.selectTotal(parentId,permissionName);
|
|
||||||
// 4. 封装分页结果
|
|
||||||
return new PageBean<Permission>() {{
|
|
||||||
setTotal(total);
|
|
||||||
setItems(permissionList);
|
|
||||||
}};
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<Permission> getPermissionList() {
|
|
||||||
// 1. 查询所有平级权限
|
|
||||||
List<Permission> allPermissions = sysPermissionMapper.selectPermissionList();
|
|
||||||
|
|
||||||
// 2. 找到顶层节点(parentId = null 或 0)
|
|
||||||
List<Permission> topNodes = new ArrayList<>();
|
|
||||||
for (Permission p : allPermissions) {
|
|
||||||
if (p.getParentId() == null || p.getParentId() == 0) {
|
|
||||||
topNodes.add(p);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 3. 循环给每个顶层节点设置子节点(递归)
|
|
||||||
for (Permission node : topNodes) {
|
|
||||||
node.setChildren(findChildren(node, allPermissions));
|
|
||||||
}
|
|
||||||
|
|
||||||
return topNodes;
|
|
||||||
}
|
|
||||||
|
|
||||||
/***
|
|
||||||
* 根据父ID查询权限列表
|
|
||||||
* @param parentId
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public List<Permission> getPermissionListByParentId(Integer parentId) {
|
|
||||||
// 1. 查询所有平级权限
|
|
||||||
List<Permission> allPermissions = sysPermissionMapper.selectPermissionList();
|
|
||||||
|
|
||||||
// 2. 找到顶层节点(parentId = null 或 0)
|
|
||||||
List<Permission> topNodes = new ArrayList<>();
|
|
||||||
for (Permission p : allPermissions) {
|
|
||||||
if(parentId == null || parentId == 0){
|
|
||||||
if (p.getParentId() == null || p.getParentId() == 0) {
|
|
||||||
topNodes.add(p);
|
|
||||||
}
|
|
||||||
}else {
|
|
||||||
if (p.getParentId() == parentId) {
|
|
||||||
topNodes.add(p);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// 3. 循环给每个顶层节点设置子节点(递归)
|
|
||||||
for (Permission node : topNodes) {
|
|
||||||
node.setChildren(findChildren(node, allPermissions));
|
|
||||||
}
|
|
||||||
|
|
||||||
return topNodes;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 递归查找子节点(最稳妥、最清晰、不会漏)
|
|
||||||
*/
|
|
||||||
private List<Permission> findChildren(Permission parent, List<Permission> allList) {
|
|
||||||
List<Permission> children = new ArrayList<>();
|
|
||||||
|
|
||||||
for (Permission p : allList) {
|
|
||||||
// 子节点的 parentId == 父节点 id
|
|
||||||
if (parent.getId().equals(p.getParentId()==null?0:p.getParentId().longValue())) {
|
|
||||||
children.add(p);
|
|
||||||
// 递归给子节点设置孙子节点
|
|
||||||
p.setChildren(findChildren(p, allList));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return children;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -3,7 +3,6 @@ package com.rczn.system.service.impl;
|
|||||||
import com.github.pagehelper.Page;
|
import com.github.pagehelper.Page;
|
||||||
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageHelper;
|
||||||
import com.rczn.domain.PageBean;
|
import com.rczn.domain.PageBean;
|
||||||
import com.rczn.system.domain.Permission;
|
|
||||||
import com.rczn.system.domain.Position;
|
import com.rczn.system.domain.Position;
|
||||||
import com.rczn.system.domain.UserRole;
|
import com.rczn.system.domain.UserRole;
|
||||||
import com.rczn.system.mapper.UserRoleMapper;
|
import com.rczn.system.mapper.UserRoleMapper;
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package com.rczn.system.service.impl;
|
|||||||
import com.github.pagehelper.Page;
|
import com.github.pagehelper.Page;
|
||||||
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageHelper;
|
||||||
import com.rczn.domain.PageBean;
|
import com.rczn.domain.PageBean;
|
||||||
import com.rczn.system.domain.Permission;
|
|
||||||
import com.rczn.system.domain.User;
|
import com.rczn.system.domain.User;
|
||||||
import com.rczn.system.mapper.UserMapper;
|
import com.rczn.system.mapper.UserMapper;
|
||||||
import com.rczn.system.service.UserService;
|
import com.rczn.system.service.UserService;
|
||||||
@@ -91,41 +90,4 @@ public class UserServiceImpl implements UserService {
|
|||||||
int rows = userMapper.deleteById(id,null);
|
int rows = userMapper.deleteById(id,null);
|
||||||
return rows > 0;
|
return rows > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 6. 根据用户名查询用户
|
|
||||||
*
|
|
||||||
* @param username 用户名
|
|
||||||
* @return 用户实体
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public User findeUserByUsername(String username) {
|
|
||||||
return userMapper.selectByUsername(username);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 7. 注册用户
|
|
||||||
*
|
|
||||||
* @param username 用户名
|
|
||||||
* @param password 密码
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public int register(String username, String password) {
|
|
||||||
User user = new User();
|
|
||||||
user.setUserName(username);
|
|
||||||
user.setPassword(password);
|
|
||||||
return userMapper.insert(user);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据用户id查询出关联的用户权限对象列表,
|
|
||||||
* 表直接的关系是:
|
|
||||||
* 用户表(user)--用户权限表(user_role)--权限表(role)-- 权限资源表(role_resource)--资源表(resource)
|
|
||||||
*
|
|
||||||
* @param userId
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public List<Permission> findUserPermissions(Long userId) {
|
|
||||||
return userMapper.findUserPermissions(userId);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -14,7 +14,7 @@ spring:
|
|||||||
# 数据源配置(MySQL 8.x)
|
# 数据源配置(MySQL 8.x)
|
||||||
datasource:
|
datasource:
|
||||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||||
url: jdbc:mysql://47.116.126.33:3306/rc_autoplc_program?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&allowMultiQueries=true
|
url: jdbc:mysql://47.116.126.33:3306/rc_autoplc_program?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
|
||||||
username: nianke
|
username: nianke
|
||||||
password: Jy@.niankeCrm2025
|
password: Jy@.niankeCrm2025
|
||||||
# 解决跨域(可选,配合之前的CorsConfig)
|
# 解决跨域(可选,配合之前的CorsConfig)
|
||||||
@@ -42,12 +42,11 @@ spring:
|
|||||||
mybatis:
|
mybatis:
|
||||||
configuration:
|
configuration:
|
||||||
map-underscore-to-camel-case: true # 下划线转驼峰
|
map-underscore-to-camel-case: true # 下划线转驼峰
|
||||||
|
mapper-locations: classpath:mapper/**/*.xml # 补充:指定Mapper.xml文件路径(必加)
|
||||||
|
type-aliases-package: com.rczn.**.domain # 补充:实体类别名包(可选)
|
||||||
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 关键:SQL 打印到控制台
|
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 关键:SQL 打印到控制台
|
||||||
log-prefix: "[MyBatis] " # 可选:日志前缀,便于区分 SQL 日志
|
log-prefix: "[MyBatis] " # 可选:日志前缀,便于区分 SQL 日志
|
||||||
default-statement-timeout: 30 # 可选:SQL 执行超时时间(秒)
|
default-statement-timeout: 30 # 可选:SQL 执行超时时间(秒)
|
||||||
mapper-locations: classpath:mapper/**/*.xml # 补充:指定Mapper.xml文件路径(必加)
|
|
||||||
type-aliases-package: com.rczn.**.domain # 补充:实体类别名包(可选)
|
|
||||||
|
|
||||||
|
|
||||||
# HikariCP 连接池配置(关键)
|
# HikariCP 连接池配置(关键)
|
||||||
hikari:
|
hikari:
|
||||||
@@ -67,22 +66,22 @@ pagehelper:
|
|||||||
support-methods-arguments: true # 支持通过 Mapper 接口参数传递分页参数
|
support-methods-arguments: true # 支持通过 Mapper 接口参数传递分页参数
|
||||||
params: count=countSql # 分页参数名映射
|
params: count=countSql # 分页参数名映射
|
||||||
|
|
||||||
#
|
|
||||||
## SpringDoc OpenAPI 3 核心配置(适配Spring Boot 3.x)
|
# SpringDoc OpenAPI 3 核心配置(适配Spring Boot 3.x)
|
||||||
#springdoc:
|
springdoc:
|
||||||
# packages-to-scan: com.rczn # 扫描的基础包(Controller所在包)
|
packages-to-scan: com.rczn # 扫描的基础包(Controller所在包)
|
||||||
# api-docs:
|
api-docs:
|
||||||
# enabled: true # 启用/v3/api-docs接口
|
enabled: true # 启用/v3/api-docs接口
|
||||||
# path: /v3/api-docs # OpenAPI JSON数据路径(默认)
|
path: /v3/api-docs # OpenAPI JSON数据路径(默认)
|
||||||
# swagger-ui:
|
swagger-ui:
|
||||||
# path: /swagger-ui.html # 自定义Swagger UI访问路径(兼容Spring Boot 2.x习惯)
|
path: /swagger-ui.html # 自定义Swagger UI访问路径(兼容Spring Boot 2.x习惯)
|
||||||
# tags-sorter: alpha # 标签字母排序
|
tags-sorter: alpha # 标签字母排序
|
||||||
# operations-sorter: alpha # 接口字母排序
|
operations-sorter: alpha # 接口字母排序
|
||||||
# disable-swagger-default-url: true # 禁用默认PetStore示例
|
disable-swagger-default-url: true # 禁用默认PetStore示例
|
||||||
# default-flat-param-object: false # 禁用扁平参数对象
|
default-flat-param-object: false # 禁用扁平参数对象
|
||||||
# paths-to-exclude: /error, /actuator/** # 排除错误接口/监控接口(可选)
|
paths-to-exclude: /error, /actuator/** # 排除错误接口/监控接口(可选)
|
||||||
#
|
|
||||||
## OpenAPI文档基础信息(中文正常显示)
|
# OpenAPI文档基础信息(中文正常显示)
|
||||||
openapi:
|
openapi:
|
||||||
info:
|
info:
|
||||||
title: XX自动化编程系统API文档
|
title: XX自动化编程系统API文档
|
||||||
@@ -97,40 +96,6 @@ openapi:
|
|||||||
- url: http://47.116.126.33:9090 # 测试环境地址
|
- url: http://47.116.126.33:9090 # 测试环境地址
|
||||||
description: 测试环境
|
description: 测试环境
|
||||||
|
|
||||||
|
|
||||||
# SpringDoc + Knife4j 核心配置
|
|
||||||
springdoc:
|
|
||||||
packages-to-scan: com.rczn # 扫描Controller所在包
|
|
||||||
api-docs:
|
|
||||||
enabled: true
|
|
||||||
path: /v3/api-docs
|
|
||||||
swagger-ui:
|
|
||||||
tags-sorter: alpha
|
|
||||||
operations-sorter: alpha
|
|
||||||
paths-to-exclude: /error, /actuator/**
|
|
||||||
|
|
||||||
# Knife4j增强配置(可选,开启中文UI)
|
|
||||||
knife4j:
|
|
||||||
enable: true
|
|
||||||
setting:
|
|
||||||
language: zh_cn # 中文界面
|
|
||||||
enable-swagger-models: true # 显示模型
|
|
||||||
enable-document-manage: false # 关闭文档管理(开发环境)
|
|
||||||
|
|
||||||
# OpenAPI文档信息
|
|
||||||
#openapi:
|
|
||||||
# info:
|
|
||||||
# title: XX自动化编程系统API文档
|
|
||||||
# description: SpringBoot 3.x + Knife4j + OpenAPI 3 接口文档
|
|
||||||
# version: 1.0.0
|
|
||||||
# contact:
|
|
||||||
# name: 研发组
|
|
||||||
# email: xxx@xxx.com
|
|
||||||
# servers:
|
|
||||||
# - url: http://localhost:9090
|
|
||||||
# description: 本地开发环境
|
|
||||||
# - url: http://47.116.126.33:9090
|
|
||||||
# description: 测试环境
|
|
||||||
# Spring Boot 日志核心配置
|
# Spring Boot 日志核心配置
|
||||||
logging:
|
logging:
|
||||||
# 1. 全局日志级别(可细化到包/类)
|
# 1. 全局日志级别(可细化到包/类)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.rczn.rcznautoplc.mapper.ManageLogMapper">
|
<mapper namespace="com.rczn.system.mapper.ManageLogMapper">
|
||||||
|
|
||||||
<!-- 公共字段(BaseBean 继承的字段) -->
|
<!-- 公共字段(BaseBean 继承的字段) -->
|
||||||
<sql id="baseColumn">
|
<sql id="baseColumn">
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
<!-- 结果集映射(关联数据库列与实体类字段) -->
|
<!-- 结果集映射(关联数据库列与实体类字段) -->
|
||||||
<resultMap id="LogResultMap" type="com.rczn.rcznautoplc.domain.ManageLog">
|
<resultMap id="LogResultMap" type="com.rczn.system.domain.ManageLog">
|
||||||
<!-- 公共字段映射 -->
|
<!-- 公共字段映射 -->
|
||||||
<id column="id" property="id"/>
|
<id column="id" property="id"/>
|
||||||
<result column="create_id" property="createId"/>
|
<result column="create_id" property="createId"/>
|
||||||
@@ -107,7 +107,7 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<!-- 5. 分页查询日志(空字段忽略条件) -->
|
<!-- 5. 分页查询日志(空字段忽略条件) -->
|
||||||
<select id="selectPage" resultMap="LogResultMap" parameterType="com.rczn.rcznautoplc.domain.ManageLog">
|
<select id="selectPage" resultMap="LogResultMap" parameterType="com.rczn.system.domain.ManageLog">
|
||||||
SELECT
|
SELECT
|
||||||
<include refid="baseColumn"/>,
|
<include refid="baseColumn"/>,
|
||||||
<include refid="logColumn"/>
|
<include refid="logColumn"/>
|
||||||
@@ -144,7 +144,7 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<!-- 6. 查询分页总数(与分页查询条件一致) -->
|
<!-- 6. 查询分页总数(与分页查询条件一致) -->
|
||||||
<select id="selectTotal" resultType="java.lang.Long" parameterType="com.rczn.rcznautoplc.domain.ManageLog">
|
<select id="selectTotal" resultType="java.lang.Long" parameterType="com.rczn.system.domain.ManageLog">
|
||||||
SELECT COUNT(*)
|
SELECT COUNT(*)
|
||||||
FROM sys_manage_log
|
FROM sys_manage_log
|
||||||
<where>
|
<where>
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
||||||
|
|
||||||
<mapper namespace="com.rczn.system.mapper.RolePermissionMapper">
|
|
||||||
|
|
||||||
<resultMap id="RolePermissionResultMap" type="com.rczn.system.domain.RolePermission">
|
|
||||||
<id column="id" property="id"/>
|
|
||||||
<result column="role_id" property="roleId"/>
|
|
||||||
<result column="permission_id" property="permissionId"/>
|
|
||||||
</resultMap>
|
|
||||||
|
|
||||||
<sql id="baseColumn">
|
|
||||||
id, role_id, permission_id
|
|
||||||
</sql>
|
|
||||||
|
|
||||||
<select id="selectListByRoleId" resultMap="RolePermissionResultMap">
|
|
||||||
SELECT <include refid="baseColumn"/>
|
|
||||||
FROM sys_role_permission
|
|
||||||
WHERE role_id = #{roleId}
|
|
||||||
</select>
|
|
||||||
|
|
||||||
<insert id="insert">
|
|
||||||
INSERT INTO sys_role_permission (role_id, permission_id)
|
|
||||||
VALUES (#{roleId}, #{permissionId})
|
|
||||||
</insert>
|
|
||||||
|
|
||||||
<delete id="delete">
|
|
||||||
DELETE FROM sys_role_permission
|
|
||||||
<where>
|
|
||||||
<if test="roleId != null">
|
|
||||||
role_id = #{roleId}
|
|
||||||
</if>
|
|
||||||
<if test="permissionId != null">
|
|
||||||
AND permission_id = #{permissionId}
|
|
||||||
</if>
|
|
||||||
</where>
|
|
||||||
</delete>
|
|
||||||
|
|
||||||
<delete id="deleteByRoleId">
|
|
||||||
DELETE FROM sys_role_permission
|
|
||||||
WHERE role_id = #{roleId}
|
|
||||||
</delete>
|
|
||||||
|
|
||||||
</mapper>
|
|
||||||
@@ -1,74 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
||||||
<mapper namespace="com.rczn.system.mapper.SysDicDataMapper">
|
|
||||||
<sql id="baseColumn">
|
|
||||||
id, create_by, create_time, update_by, update_time, del_sign, remark
|
|
||||||
</sql>
|
|
||||||
|
|
||||||
<sql id="dicDataColumn">
|
|
||||||
dic_id, dic_label, dic_value
|
|
||||||
</sql>
|
|
||||||
|
|
||||||
<!-- 新增字典数据 -->
|
|
||||||
<insert id="insert" useGeneratedKeys="true" keyProperty="id">
|
|
||||||
INSERT INTO sys_dic_data (
|
|
||||||
<include refid="dicDataColumn"/>,
|
|
||||||
create_by, create_time, update_by, update_time, del_sign
|
|
||||||
) VALUES (
|
|
||||||
#{dicId}, #{dicLabel}, #{dicValue},
|
|
||||||
#{createId}, NOW(), #{updateId}, NOW(), 0
|
|
||||||
)
|
|
||||||
</insert>
|
|
||||||
|
|
||||||
<!-- 修改字典数据 -->
|
|
||||||
<update id="update">
|
|
||||||
UPDATE sys_dic_data
|
|
||||||
<set>
|
|
||||||
<if test="dicId != null">dic_id = #{dicId},</if>
|
|
||||||
<if test="dicLabel != null and dicLabel != ''">dic_label = #{dicLabel},</if>
|
|
||||||
<if test="dicValue != null and dicValue != ''">dic_value = #{dicValue},</if>
|
|
||||||
<if test="updateId != null">update_by = #{updateId},</if>
|
|
||||||
update_time = NOW()
|
|
||||||
</set>
|
|
||||||
WHERE id = #{id} AND del_sign = 0
|
|
||||||
</update>
|
|
||||||
|
|
||||||
<!-- 逻辑删除字典数据 -->
|
|
||||||
<update id="deleteById">
|
|
||||||
UPDATE sys_dic_data
|
|
||||||
SET del_sign = 1, update_time = NOW()
|
|
||||||
WHERE id = #{id} AND del_sign = 0
|
|
||||||
</update>
|
|
||||||
|
|
||||||
<!-- 根据ID查询字典数据 -->
|
|
||||||
<select id="selectById" resultType="com.rczn.system.domain.SysDicData">
|
|
||||||
SELECT
|
|
||||||
<include refid="baseColumn"/>,
|
|
||||||
<include refid="dicDataColumn"/>
|
|
||||||
FROM sys_dic_data
|
|
||||||
WHERE id = #{id} AND del_sign = 0
|
|
||||||
</select>
|
|
||||||
|
|
||||||
<!-- 分页查询字典数据(支持按字典类型ID、标签、值查询) -->
|
|
||||||
<select id="selectPage" resultType="com.rczn.system.domain.SysDicData">
|
|
||||||
SELECT
|
|
||||||
<include refid="baseColumn"/>,
|
|
||||||
<include refid="dicDataColumn"/>
|
|
||||||
FROM sys_dic_data
|
|
||||||
WHERE del_sign = 0
|
|
||||||
<if test="dicId != null">AND dic_id = #{dicId}</if>
|
|
||||||
<if test="dicLabel != null and dicLabel != ''">AND dic_label LIKE CONCAT('%', #{dicLabel}, '%')</if>
|
|
||||||
<if test="dicValue != null and dicValue != ''">AND dic_value LIKE CONCAT('%', #{dicValue}, '%')</if>
|
|
||||||
ORDER BY create_time DESC
|
|
||||||
</select>
|
|
||||||
|
|
||||||
<!-- 根据字典类型ID查询字典数据列表 -->
|
|
||||||
<select id="selectByDicId" resultType="com.rczn.system.domain.SysDicData">
|
|
||||||
SELECT
|
|
||||||
<include refid="baseColumn"/>,
|
|
||||||
<include refid="dicDataColumn"/>
|
|
||||||
FROM sys_dic_data
|
|
||||||
WHERE dic_id = #{dicId} AND del_sign = 0
|
|
||||||
ORDER BY create_time DESC
|
|
||||||
</select>
|
|
||||||
</mapper>
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
||||||
<mapper namespace="com.rczn.system.mapper.SysDicTypeMapper">
|
|
||||||
<sql id="baseColumn">
|
|
||||||
id, create_by, create_time, update_by, update_time, del_sign, remark
|
|
||||||
</sql>
|
|
||||||
|
|
||||||
<sql id="dicTypeColumn">
|
|
||||||
dic_name, dic_code
|
|
||||||
</sql>
|
|
||||||
|
|
||||||
<!-- 新增字典类型 -->
|
|
||||||
<insert id="insert" useGeneratedKeys="true" keyProperty="id">
|
|
||||||
INSERT INTO sys_dic_type (
|
|
||||||
<include refid="dicTypeColumn"/>,
|
|
||||||
create_by, create_time, update_by, update_time, del_sign
|
|
||||||
) VALUES (
|
|
||||||
#{dicName}, #{dicCode},
|
|
||||||
#{createId}, NOW(), #{updateId}, NOW(), 0
|
|
||||||
)
|
|
||||||
</insert>
|
|
||||||
|
|
||||||
<!-- 修改字典类型 -->
|
|
||||||
<update id="update">
|
|
||||||
UPDATE sys_dic_type
|
|
||||||
<set>
|
|
||||||
<if test="dicName != null and dicName != ''">dic_name = #{dicName},</if>
|
|
||||||
<if test="dicCode != null and dicCode != ''">dic_code = #{dicCode},</if>
|
|
||||||
<if test="updateId != null">update_by = #{updateId},</if>
|
|
||||||
update_time = NOW()
|
|
||||||
</set>
|
|
||||||
WHERE id = #{id} AND del_sign = 0
|
|
||||||
</update>
|
|
||||||
|
|
||||||
<!-- 逻辑删除字典类型 -->
|
|
||||||
<update id="deleteById">
|
|
||||||
UPDATE sys_dic_type
|
|
||||||
SET del_sign = 1, update_time = NOW()
|
|
||||||
WHERE id = #{id} AND del_sign = 0
|
|
||||||
</update>
|
|
||||||
|
|
||||||
<!-- 根据ID查询字典类型 -->
|
|
||||||
<select id="selectById" resultType="com.rczn.system.domain.SysDicType">
|
|
||||||
SELECT
|
|
||||||
<include refid="baseColumn"/>,
|
|
||||||
<include refid="dicTypeColumn"/>
|
|
||||||
FROM sys_dic_type
|
|
||||||
WHERE id = #{id} AND del_sign = 0
|
|
||||||
</select>
|
|
||||||
|
|
||||||
<!-- 分页查询字典类型 -->
|
|
||||||
<select id="selectPage" resultType="com.rczn.system.domain.SysDicType">
|
|
||||||
SELECT
|
|
||||||
<include refid="baseColumn"/>,
|
|
||||||
<include refid="dicTypeColumn"/>
|
|
||||||
FROM sys_dic_type
|
|
||||||
WHERE del_sign = 0
|
|
||||||
<if test="dicName != null and dicName != ''">AND dic_name LIKE CONCAT('%', #{dicName}, '%')</if>
|
|
||||||
<if test="dicCode != null and dicCode != ''">AND dic_code LIKE CONCAT('%', #{dicCode}, '%')</if>
|
|
||||||
ORDER BY create_time DESC
|
|
||||||
</select>
|
|
||||||
</mapper>
|
|
||||||
@@ -1,72 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
||||||
|
|
||||||
<mapper namespace="com.rczn.system.mapper.SysPermissionMapper">
|
|
||||||
|
|
||||||
<resultMap id="PermissionResultMap" type="com.rczn.system.domain.Permission">
|
|
||||||
<id column="id" property="id"/>
|
|
||||||
<result column="parent_id" property="parentId"/>
|
|
||||||
<result column="permission_name" property="permissionName"/>
|
|
||||||
<result column="permission_code" property="permissionCode"/>
|
|
||||||
<result column="create_id" property="createId"/>
|
|
||||||
<result column="create_time" property="createTime"/>
|
|
||||||
<result column="update_id" property="updateId"/>
|
|
||||||
<result column="update_time" property="updateTime"/>
|
|
||||||
<result column="del_sign" property="delSign"/>
|
|
||||||
<result column="remark" property="remark"/>
|
|
||||||
</resultMap>
|
|
||||||
|
|
||||||
<!-- 查询所有 -->
|
|
||||||
<select id="selectPermissionList" resultMap="PermissionResultMap">
|
|
||||||
SELECT * FROM sys_permission
|
|
||||||
WHERE del_sign = 0
|
|
||||||
</select>
|
|
||||||
|
|
||||||
<!-- 根据ID查询 -->
|
|
||||||
<select id="selectPermissionById" resultMap="PermissionResultMap">
|
|
||||||
SELECT * FROM sys_permission
|
|
||||||
WHERE id = #{id} AND del_sign = 0
|
|
||||||
</select>
|
|
||||||
<!-- 查询总数量 -->
|
|
||||||
<select id="selectTotal" resultType="java.lang.Long">
|
|
||||||
SELECT COUNT(*) FROM sys_permission
|
|
||||||
WHERE del_sign = 0
|
|
||||||
<if test="parentId != null "> and parent_id = #{parentId}</if>
|
|
||||||
<if test="permissionName != null and permissionName != ''"> AND permission_name LIKE CONCAT('%', #{permissionName}, '%')</if>
|
|
||||||
</select>
|
|
||||||
|
|
||||||
<!-- 根据条件分页查询权限数据: -->
|
|
||||||
<select id="selectPermissionPage" resultType="com.rczn.system.domain.Permission">
|
|
||||||
SELECT * FROM sys_permission
|
|
||||||
WHERE del_sign = 0
|
|
||||||
<if test="parentId != null "> and parent_id = #{parentId}</if>
|
|
||||||
<if test="permissionName != null and permissionName != ''"> AND permission_name LIKE CONCAT('%', #{permissionName}, '%')</if>
|
|
||||||
</select>
|
|
||||||
|
|
||||||
<!-- 新增 -->
|
|
||||||
<insert id="insertPermission">
|
|
||||||
INSERT INTO sys_permission
|
|
||||||
(parent_id, permission_name, permission_code, create_id, remark, del_sign)
|
|
||||||
VALUES
|
|
||||||
(#{parentId}, #{permissionName}, #{permissionCode}, #{createId}, #{remark}, 0)
|
|
||||||
</insert>
|
|
||||||
|
|
||||||
<!-- 修改 -->
|
|
||||||
<update id="updatePermission">
|
|
||||||
UPDATE sys_permission
|
|
||||||
SET
|
|
||||||
parent_id = #{parentId},
|
|
||||||
permission_name = #{permissionName},
|
|
||||||
permission_code = #{permissionCode},
|
|
||||||
update_id = #{updateId},
|
|
||||||
remark = #{remark}
|
|
||||||
WHERE id = #{id}
|
|
||||||
</update>
|
|
||||||
|
|
||||||
<!-- 逻辑删除 -->
|
|
||||||
<update id="deletePermissionById">
|
|
||||||
UPDATE sys_permission SET del_sign = 1 WHERE id = #{id}
|
|
||||||
</update>
|
|
||||||
|
|
||||||
</mapper>
|
|
||||||
@@ -198,24 +198,5 @@
|
|||||||
</if>
|
</if>
|
||||||
</where>
|
</where>
|
||||||
</select>
|
</select>
|
||||||
<select id="findUserPermissions" resultType="com.rczn.system.domain.Permission">
|
|
||||||
SELECT
|
|
||||||
p.*
|
|
||||||
FROM
|
|
||||||
sys_user u
|
|
||||||
JOIN
|
|
||||||
sys_user_role ur ON u.id = ur.user_id
|
|
||||||
JOIN
|
|
||||||
sys_role r ON ur.role_id = r.id
|
|
||||||
JOIN
|
|
||||||
sys_role_permission rp ON r.id = rp.role_id
|
|
||||||
JOIN
|
|
||||||
sys_permission p ON rp.permission_id = p.id
|
|
||||||
WHERE
|
|
||||||
u.id = #{userId}
|
|
||||||
AND u.del_sign = 0
|
|
||||||
AND r.del_sign = 0
|
|
||||||
AND p.del_sign = 0;
|
|
||||||
</select>
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
package com.rczn;
|
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
|
||||||
|
|
||||||
@SpringBootTest
|
|
||||||
class RcznAdminApplicationTests {
|
|
||||||
|
|
||||||
// @Test
|
|
||||||
void contextLoads() {
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -38,7 +38,6 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.projectlombok</groupId>
|
<groupId>org.projectlombok</groupId>
|
||||||
<artifactId>lombok</artifactId>
|
<artifactId>lombok</artifactId>
|
||||||
<version>${lombok.version}</version>
|
|
||||||
<optional>true</optional>
|
<optional>true</optional>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
@@ -47,7 +46,12 @@
|
|||||||
<version>5.3.3</version>
|
<version>5.3.3</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>io.swagger.core.v3</groupId>
|
||||||
|
<artifactId>swagger-annotations-jakarta</artifactId>
|
||||||
|
<version>2.2.21</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.mybatis</groupId>
|
<groupId>org.mybatis</groupId>
|
||||||
<artifactId>mybatis</artifactId>
|
<artifactId>mybatis</artifactId>
|
||||||
@@ -66,15 +70,11 @@
|
|||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>io.swagger.core.v3</groupId>
|
<groupId>org.springdoc</groupId>
|
||||||
<artifactId>swagger-models-jakarta</artifactId>
|
<artifactId>springdoc-openapi-starter-common</artifactId>
|
||||||
<version>2.2.19</version>
|
<version>2.3.0</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>org.junit.jupiter</groupId>
|
|
||||||
<artifactId>junit-jupiter-api</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- 这里可以添加PLC通信相关的依赖 -->
|
<!-- 这里可以添加PLC通信相关的依赖 -->
|
||||||
<!-- 例如:
|
<!-- 例如:
|
||||||
|
|||||||
@@ -1,28 +0,0 @@
|
|||||||
package com.rczn.rcznautoplc.cache;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 1-功能岛>plc地址
|
|
||||||
* 2-动作单元>plc地址
|
|
||||||
* 3-参数名字>plc地址
|
|
||||||
* 三个映射关系Map表
|
|
||||||
*/
|
|
||||||
public class IsLandActionParamToPlc {
|
|
||||||
// 1-功能岛>plc地址:key-功能岛id,value-功能岛plc地址
|
|
||||||
public static final Map<Integer, Integer> islandToPlc = new HashMap<>();
|
|
||||||
|
|
||||||
// 2-动作单元>plc地址:key-动作单元id,value-动作单元plc地址
|
|
||||||
public static final Map<Integer, Integer> actionToPlc = new HashMap<>();
|
|
||||||
|
|
||||||
// 3-参数名字>plc地址:key-参数名字,value-参数plc地址
|
|
||||||
public static final Map<String, Integer> paramToPlc = new HashMap<>();
|
|
||||||
|
|
||||||
//4-参数id>plc地址:key-参数id,value-参数plc地址
|
|
||||||
public static final Map<Integer,Integer> paramIdToPlc = new HashMap<>();
|
|
||||||
//更新三种数据的方法
|
|
||||||
//获取spring里面bean
|
|
||||||
//1-功能岛>plc地址
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,110 +0,0 @@
|
|||||||
package com.rczn.rcznautoplc.cache;
|
|
||||||
|
|
||||||
//样品准备状态
|
|
||||||
public class PlcRunStatus {
|
|
||||||
//定容岛:状态属性:
|
|
||||||
public static int goodsScanStatus = 0; //货物扫描:0-准备,1-扫描完毕
|
|
||||||
|
|
||||||
//plc系统运行状态:
|
|
||||||
public static int systemPlcRunStatus = 0; //系统准备:0-未准备,1-空闲,2-忙,4异常
|
|
||||||
|
|
||||||
public static int goodsCount = 0;//样品处理数量
|
|
||||||
|
|
||||||
public static int goodsCurrentIndex = 0;//当前样品处理索引
|
|
||||||
|
|
||||||
//404内照射项目默认样品:尿液,液体:
|
|
||||||
public static String defaultGoodsName = "尿液";
|
|
||||||
|
|
||||||
public static String defaultGoodsType = "液体";
|
|
||||||
|
|
||||||
//目标监测物
|
|
||||||
public static String defaultGoalDetect = "总氮";
|
|
||||||
|
|
||||||
public static class PlcRunStatusResponse{
|
|
||||||
private int goodsScanStatus = 0; //货物扫描:0-准备,1-扫描完毕
|
|
||||||
|
|
||||||
private int systemPlcRunStatus = 0; //系统准备:0-未准备,1-空闲,2-忙,4异常
|
|
||||||
|
|
||||||
private int goodsCount = 0;//样品处理数量
|
|
||||||
|
|
||||||
private int goodsCurrentIndex = 0;//当前样品处理索引
|
|
||||||
|
|
||||||
private String defaultGoodsName = "尿液";//默认样品名称
|
|
||||||
|
|
||||||
private String defaultGoodsType = "液体";//默认样品类型
|
|
||||||
|
|
||||||
private String defaultGoalDetect = "总氮";//默认目标监测物
|
|
||||||
|
|
||||||
public PlcRunStatusResponse() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public PlcRunStatusResponse(int goodsScanStatus, int systemPlcRunStatus, int goodsCount, int goodsCurrentIndex, String defaultGoodsName, String defaultGoodsType, String defaultGoalDetect) {
|
|
||||||
this.goodsScanStatus = goodsScanStatus;
|
|
||||||
this.systemPlcRunStatus = systemPlcRunStatus;
|
|
||||||
this.goodsCount = goodsCount;
|
|
||||||
this.goodsCurrentIndex = goodsCurrentIndex;
|
|
||||||
this.defaultGoodsName = defaultGoodsName;
|
|
||||||
this.defaultGoodsType = defaultGoodsType;
|
|
||||||
this.defaultGoalDetect = defaultGoalDetect;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getGoodsScanStatus() {
|
|
||||||
return goodsScanStatus;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGoodsScanStatus(int goodsScanStatus) {
|
|
||||||
this.goodsScanStatus = goodsScanStatus;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getSystemPlcRunStatus() {
|
|
||||||
return systemPlcRunStatus;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSystemPlcRunStatus(int systemPlcRunStatus) {
|
|
||||||
this.systemPlcRunStatus = systemPlcRunStatus;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getGoodsCount() {
|
|
||||||
return goodsCount;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGoodsCount(int goodsCount) {
|
|
||||||
this.goodsCount = goodsCount;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getGoodsCurrentIndex() {
|
|
||||||
return goodsCurrentIndex;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGoodsCurrentIndex(int goodsCurrentIndex) {
|
|
||||||
this.goodsCurrentIndex = goodsCurrentIndex;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDefaultGoodsName() {
|
|
||||||
return defaultGoodsName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDefaultGoodsName(String defaultGoodsName) {
|
|
||||||
this.defaultGoodsName = defaultGoodsName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDefaultGoodsType() {
|
|
||||||
return defaultGoodsType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDefaultGoodsType(String defaultGoodsType) {
|
|
||||||
this.defaultGoodsType = defaultGoodsType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDefaultGoalDetect() {
|
|
||||||
return defaultGoalDetect;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDefaultGoalDetect(String defaultGoalDetect) {
|
|
||||||
this.defaultGoalDetect = defaultGoalDetect;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
package com.rczn.rcznautoplc.cache;
|
|
||||||
|
|
||||||
public class RegisterAddrDic {
|
|
||||||
|
|
||||||
//主PLC:寄存器地址:
|
|
||||||
public final static int goodsScanRegisterArr = 5000;//样品扫描状态寄存器地址:
|
|
||||||
|
|
||||||
//整体运转状态:
|
|
||||||
public final static int wholeRunStatusRegisterArr = 1100;//整体运转状态寄存器地址:
|
|
||||||
|
|
||||||
//协议存储地址:
|
|
||||||
//1-下发plc:样品sop指令协议寄存器地址:
|
|
||||||
public final static int downProtcolRegisterArr = 2000;//协议存储寄存器地址:
|
|
||||||
//2-接收plc:处理样品状态数据协议寄存器地址
|
|
||||||
public final static int upProtcolRegisterArr = 3000;//协议存储寄存器地址:
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.rczn.rcznautoplc.controller;
|
package com.rczn.rcznautoplc.controller;
|
||||||
|
|
||||||
import com.rczn.domain.Result;
|
|
||||||
import com.rczn.rcznautoplc.domain.DevInfo;
|
import com.rczn.rcznautoplc.domain.DevInfo;
|
||||||
import com.rczn.rcznautoplc.service.DevInfoService;
|
import com.rczn.rcznautoplc.service.DevInfoService;
|
||||||
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.PageInfo;
|
||||||
@@ -26,7 +25,7 @@ import java.util.Map;
|
|||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/devInfo")
|
@RequestMapping("/devInfo")
|
||||||
@Tag(name = "动作单元管理", description = "设备增删改查+分页查询+全量查询接口")
|
@Tag(name = "设备管理", description = "设备增删改查+分页查询+全量查询接口")
|
||||||
public class DevInfoController {
|
public class DevInfoController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -36,15 +35,15 @@ public class DevInfoController {
|
|||||||
* 新增设备
|
* 新增设备
|
||||||
*/
|
*/
|
||||||
@PostMapping(value = "/add", produces = MediaType.APPLICATION_JSON_VALUE)
|
@PostMapping(value = "/add", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
@Operation(summary = "新增动作单元", description = "动作单元名称为必填项,其他字段可选(非空则入库)")
|
@Operation(summary = "新增设备", description = "设备名称为必填项,其他字段可选(非空则入库)")
|
||||||
public ResponseEntity<Map<String, Object>> addDevInfo(
|
public ResponseEntity<Map<String, Object>> addDevInfo(
|
||||||
@Parameter(name = "动作单元信息", description = "动作单元新增请求参数", required = true)
|
@Parameter(name = "设备信息", description = "设备新增请求参数", required = true)
|
||||||
@RequestBody DevInfo devInfo) {
|
@RequestBody DevInfo devInfo) {
|
||||||
Map<String, Object> result = new HashMap<>();
|
Map<String, Object> result = new HashMap<>();
|
||||||
try {
|
try {
|
||||||
boolean success = devInfoService.addDevInfo(devInfo);
|
boolean success = devInfoService.addDevInfo(devInfo);
|
||||||
result.put("success", success);
|
result.put("success", success);
|
||||||
result.put("message", success ? "动作单元新增成功" : "动作单元新增失败");
|
result.put("message", success ? "设备新增成功" : "设备新增失败");
|
||||||
return ResponseEntity.ok(result);
|
return ResponseEntity.ok(result);
|
||||||
} catch (IllegalArgumentException e) {
|
} catch (IllegalArgumentException e) {
|
||||||
result.put("success", false);
|
result.put("success", false);
|
||||||
@@ -61,15 +60,15 @@ public class DevInfoController {
|
|||||||
* 根据ID删除设备(逻辑删除)
|
* 根据ID删除设备(逻辑删除)
|
||||||
*/
|
*/
|
||||||
@DeleteMapping(value = "/del/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
|
@DeleteMapping(value = "/del/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
@Operation(summary = "删除动作单元", description = "逻辑删除(设置delSign=1,不物理删除数据)")
|
@Operation(summary = "删除设备", description = "逻辑删除(设置delSign=1,不物理删除数据)")
|
||||||
public ResponseEntity<Map<String, Object>> removeDevInfoById(
|
public ResponseEntity<Map<String, Object>> removeDevInfoById(
|
||||||
@Parameter(name = "id", description = "动作单元ID", required = true, example = "1")
|
@Parameter(name = "id", description = "设备ID", required = true, example = "1")
|
||||||
@PathVariable Long id) {
|
@PathVariable Long id) {
|
||||||
Map<String, Object> result = new HashMap<>();
|
Map<String, Object> result = new HashMap<>();
|
||||||
try {
|
try {
|
||||||
boolean success = devInfoService.removeDevInfoById(id);
|
boolean success = devInfoService.removeDevInfoById(id);
|
||||||
result.put("success", success);
|
result.put("success", success);
|
||||||
result.put("message", success ? "动作单元删除成功" : "动作单元不存在或已删除");
|
result.put("message", success ? "设备删除成功" : "设备不存在或已删除");
|
||||||
return ResponseEntity.ok(result);
|
return ResponseEntity.ok(result);
|
||||||
} catch (IllegalArgumentException e) {
|
} catch (IllegalArgumentException e) {
|
||||||
result.put("success", false);
|
result.put("success", false);
|
||||||
@@ -86,15 +85,15 @@ public class DevInfoController {
|
|||||||
* 更新设备
|
* 更新设备
|
||||||
*/
|
*/
|
||||||
@PutMapping(value = "/update", produces = MediaType.APPLICATION_JSON_VALUE)
|
@PutMapping(value = "/update", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
@Operation(summary = "修改动作单元", description = "需传入动作单元ID,其他字段可选(非空则更新)")
|
@Operation(summary = "修改设备", description = "需传入设备ID,其他字段可选(非空则更新)")
|
||||||
public ResponseEntity<Map<String, Object>> updateDevInfo(
|
public ResponseEntity<Map<String, Object>> updateDevInfo(
|
||||||
@Parameter(name = "动作单元信息", description = "动作单元修改请求参数(含ID)", required = true)
|
@Parameter(name = "设备信息", description = "设备修改请求参数(含ID)", required = true)
|
||||||
@RequestBody DevInfo devInfo) {
|
@RequestBody DevInfo devInfo) {
|
||||||
Map<String, Object> result = new HashMap<>();
|
Map<String, Object> result = new HashMap<>();
|
||||||
try {
|
try {
|
||||||
boolean success = devInfoService.updateDevInfo(devInfo);
|
boolean success = devInfoService.updateDevInfo(devInfo);
|
||||||
result.put("success", success);
|
result.put("success", success);
|
||||||
result.put("message", success ? "动作单元更新成功" : "动作单元不存在或已删除");
|
result.put("message", success ? "设备更新成功" : "设备不存在或已删除");
|
||||||
return ResponseEntity.ok(result);
|
return ResponseEntity.ok(result);
|
||||||
} catch (IllegalArgumentException e) {
|
} catch (IllegalArgumentException e) {
|
||||||
result.put("success", false);
|
result.put("success", false);
|
||||||
@@ -108,12 +107,12 @@ public class DevInfoController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据ID查询动作单元
|
* 根据ID查询设备
|
||||||
*/
|
*/
|
||||||
@GetMapping(value = "/getById/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
|
@GetMapping(value = "/getById/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
@Operation(summary = "查询单个动作单元", description = "根据动作单元ID查询动作单元完整信息")
|
@Operation(summary = "查询单个设备", description = "根据设备ID查询设备完整信息")
|
||||||
public ResponseEntity<Map<String, Object>> getDevInfoById(
|
public ResponseEntity<Map<String, Object>> getDevInfoById(
|
||||||
@Parameter(name = "id", description = "动作单元ID", required = true, example = "1")
|
@Parameter(name = "id", description = "设备ID", required = true, example = "1")
|
||||||
@PathVariable Long id) {
|
@PathVariable Long id) {
|
||||||
Map<String, Object> result = new HashMap<>();
|
Map<String, Object> result = new HashMap<>();
|
||||||
try {
|
try {
|
||||||
@@ -123,7 +122,7 @@ public class DevInfoController {
|
|||||||
result.put("data", devInfo);
|
result.put("data", devInfo);
|
||||||
} else {
|
} else {
|
||||||
result.put("success", false);
|
result.put("success", false);
|
||||||
result.put("message", "动作单元不存在或已删除");
|
result.put("message", "设备不存在或已删除");
|
||||||
}
|
}
|
||||||
return ResponseEntity.ok(result);
|
return ResponseEntity.ok(result);
|
||||||
} catch (IllegalArgumentException e) {
|
} catch (IllegalArgumentException e) {
|
||||||
@@ -138,29 +137,33 @@ public class DevInfoController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页查询动作单元
|
* 分页查询设备
|
||||||
* 示例:/devInfo/listPage?pageNum=1&pageSize=10&devName=动作单元1&status=0
|
* 示例:/devInfo/listPage?pageNum=1&pageSize=10&devName=设备1&status=0
|
||||||
*/
|
*/
|
||||||
@GetMapping(value = "/listPage", produces = MediaType.APPLICATION_JSON_VALUE)
|
@GetMapping(value = "/listPage", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
@Operation(summary = "分页查询动作单元", description = "支持动作单元名称、型号、IP、状态等多条件过滤,默认查询未删除动作单元")
|
@Operation(summary = "分页查询设备", description = "支持设备名称、型号、IP、状态等多条件过滤,默认查询未删除设备")
|
||||||
@Parameters({
|
@Parameters({
|
||||||
@Parameter(name = "pageNum", description = "页码(必填)", required = true, example = "1", in = ParameterIn.QUERY),
|
@Parameter(name = "pageNum", description = "页码(必填)", required = true, example = "1", in = ParameterIn.QUERY),
|
||||||
@Parameter(name = "pageSize", description = "每页条数(必填)", required = true, example = "10", in = ParameterIn.QUERY)
|
@Parameter(name = "pageSize", description = "每页条数(必填)", required = true, example = "10", in = ParameterIn.QUERY)
|
||||||
// @Parameter(name = "devName", description = "设备名称(可选,模糊查询)", required = false, example = "PLC设备", in = ParameterIn.QUERY),
|
// @Parameter(name = "devName", description = "设备名称(可选,模糊查询)", required = false, example = "PLC设备", in = ParameterIn.QUERY),
|
||||||
// @Parameter(name = "devModel", description = "设备型号(可选,模糊查询)", required = false, example = "S7-1200", in = ParameterIn.QUERY)
|
// @Parameter(name = "devModel", description = "设备型号(可选,模糊查询)", required = false, example = "S7-1200", in = ParameterIn.QUERY)
|
||||||
})
|
})
|
||||||
public Result getDevInfoPage(
|
public ResponseEntity<Map<String, Object>> getDevInfoPage(
|
||||||
@ParameterObject // 核心注解:标记该实体类从查询参数取值
|
@ParameterObject // 核心注解:标记该实体类从查询参数取值
|
||||||
@Schema(description = "设备查询条件(可选)") // 补充描述
|
@Schema(description = "设备查询条件(可选)") // 补充描述
|
||||||
DevInfo devInfo, // 接收查询条件(devName、status等)
|
DevInfo devInfo, // 接收查询条件(devName、status等)
|
||||||
@RequestParam Integer pageNum,
|
@RequestParam Integer pageNum,
|
||||||
@RequestParam Integer pageSize) {
|
@RequestParam Integer pageSize) {
|
||||||
|
Map<String, Object> result = new HashMap<>();
|
||||||
try {
|
try {
|
||||||
PageInfo<DevInfo> pageInfo = devInfoService.getDevInfoPage(devInfo, pageNum, pageSize);
|
PageInfo<DevInfo> pageInfo = devInfoService.getDevInfoPage(devInfo, pageNum, pageSize);
|
||||||
Result<PageInfo<DevInfo>> success = Result.success(pageInfo);
|
result.put("success", true);
|
||||||
return success;
|
result.put("data", pageInfo);
|
||||||
|
return ResponseEntity.ok(result);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
return Result.error("数据库异常!");
|
result.put("success", false);
|
||||||
|
result.put("message", "服务器异常:" + e.getMessage());
|
||||||
|
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import com.github.pagehelper.PageInfo;
|
|||||||
import com.rczn.domain.PageBean;
|
import com.rczn.domain.PageBean;
|
||||||
import com.rczn.domain.Result;
|
import com.rczn.domain.Result;
|
||||||
import com.rczn.rcznautoplc.domain.DevParam;
|
import com.rczn.rcznautoplc.domain.DevParam;
|
||||||
import com.rczn.rcznautoplc.domain.query.DevParamQuery;
|
|
||||||
import com.rczn.rcznautoplc.service.DevParamService;
|
import com.rczn.rcznautoplc.service.DevParamService;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
@@ -34,7 +33,6 @@ public class DevParamController {
|
|||||||
@Parameter(name = "pageNum", description = "页码(必填)", required = true, example = "1", in = ParameterIn.QUERY),
|
@Parameter(name = "pageNum", description = "页码(必填)", required = true, example = "1", in = ParameterIn.QUERY),
|
||||||
@Parameter(name = "pageSize", description = "每页条数(必填)", required = true, example = "10", in = ParameterIn.QUERY),
|
@Parameter(name = "pageSize", description = "每页条数(必填)", required = true, example = "10", in = ParameterIn.QUERY),
|
||||||
@Parameter(name = "devId", description = "设备ID(可选,精准查询)", required = false, example = "1", in = ParameterIn.QUERY),
|
@Parameter(name = "devId", description = "设备ID(可选,精准查询)", required = false, example = "1", in = ParameterIn.QUERY),
|
||||||
@Parameter(name = "paramTypeData", description = "参数类型(可选,模糊查询)", required = false, example = "耗材,通用", in = ParameterIn.QUERY),
|
|
||||||
@Parameter(name = "paramName", description = "参数名称(可选,模糊查询)", required = false, example = "温度", in = ParameterIn.QUERY),
|
@Parameter(name = "paramName", description = "参数名称(可选,模糊查询)", required = false, example = "温度", in = ParameterIn.QUERY),
|
||||||
@Parameter(name = "paramValue", description = "参数值(可选,模糊查询)", required = false, example = "25", in = ParameterIn.QUERY)
|
@Parameter(name = "paramValue", description = "参数值(可选,模糊查询)", required = false, example = "25", in = ParameterIn.QUERY)
|
||||||
})
|
})
|
||||||
@@ -42,10 +40,9 @@ public class DevParamController {
|
|||||||
@RequestParam Integer pageNum,
|
@RequestParam Integer pageNum,
|
||||||
@RequestParam Integer pageSize,
|
@RequestParam Integer pageSize,
|
||||||
@RequestParam(required = false) Integer devId,
|
@RequestParam(required = false) Integer devId,
|
||||||
@RequestParam(required = false) String paramTypeData,
|
|
||||||
@RequestParam(required = false) String paramName,
|
@RequestParam(required = false) String paramName,
|
||||||
@RequestParam(required = false) String paramValue) {
|
@RequestParam(required = false) String paramValue) {
|
||||||
PageInfo<DevParam> pageBean = devParamService.selectPage(pageNum, pageSize, devId,paramTypeData, paramName, paramValue);
|
PageInfo<DevParam> pageBean = devParamService.selectPage(pageNum, pageSize, devId, paramName, paramValue);
|
||||||
return Result.success(pageBean);
|
return Result.success(pageBean);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -56,57 +53,17 @@ public class DevParamController {
|
|||||||
@Operation(summary = "查询设备参数", description = "支持设备ID精准查询、参数名称/值模糊查询")
|
@Operation(summary = "查询设备参数", description = "支持设备ID精准查询、参数名称/值模糊查询")
|
||||||
@Parameters({
|
@Parameters({
|
||||||
@Parameter(name = "devId", description = "设备ID(可选,精准查询)", required = false, example = "1", in = ParameterIn.QUERY),
|
@Parameter(name = "devId", description = "设备ID(可选,精准查询)", required = false, example = "1", in = ParameterIn.QUERY),
|
||||||
@Parameter(name = "paramTypeData", description = "参数类型(可选,模糊查询)", required = false, example = "耗材,通用", in = ParameterIn.QUERY),
|
|
||||||
@Parameter(name = "paramName", description = "参数名称(可选,模糊查询)", required = false, example = "温度", in = ParameterIn.QUERY),
|
@Parameter(name = "paramName", description = "参数名称(可选,模糊查询)", required = false, example = "温度", in = ParameterIn.QUERY),
|
||||||
@Parameter(name = "paramValue", description = "参数值(可选,模糊查询)", required = false, example = "25", in = ParameterIn.QUERY)
|
@Parameter(name = "paramValue", description = "参数值(可选,模糊查询)", required = false, example = "25", in = ParameterIn.QUERY)
|
||||||
})
|
})
|
||||||
public Result getDevParamPage(
|
public Result getDevParamPage(
|
||||||
@RequestParam(required = false) Integer devId,
|
@RequestParam(required = false) Integer devId,
|
||||||
@RequestParam(required = false) String paramTypeData,
|
|
||||||
@RequestParam(required = false) String paramName,
|
@RequestParam(required = false) String paramName,
|
||||||
@RequestParam(required = false) String paramValue) {
|
@RequestParam(required = false) String paramValue) {
|
||||||
|
List<DevParam> pageBean = devParamService.selectList( devId, paramName, paramValue);
|
||||||
DevParamQuery query = new DevParamQuery();
|
|
||||||
query.setDevId(devId);
|
|
||||||
query.setParamTypeData(paramTypeData);
|
|
||||||
query.setParamName(paramName);
|
|
||||||
query.setParamValue(paramValue);
|
|
||||||
List<DevParam> pageBean = devParamService.selectList( query);
|
|
||||||
return Result.success(pageBean);
|
return Result.success(pageBean);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据条件,查询设备参数
|
|
||||||
*/
|
|
||||||
@PostMapping(value = "/addDevId", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
@Operation(summary = "为参数增加设备的devId", description = "为参数增加设备的devId")
|
|
||||||
@Parameters({
|
|
||||||
@Parameter(name = "devId", description = "设备ID", required = true, example = "1", in = ParameterIn.QUERY),
|
|
||||||
@Parameter(name = "paramId", description = "参数Id", required = true, example = "1", in = ParameterIn.QUERY)
|
|
||||||
})
|
|
||||||
public Result addDevId(
|
|
||||||
@RequestParam(required = true) Integer devId,
|
|
||||||
@RequestParam(required = true) Integer paramId) {
|
|
||||||
Boolean result = devParamService.addDevId( devId, paramId );
|
|
||||||
return Result.success(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据条件,查询设备参数
|
|
||||||
*/
|
|
||||||
@PostMapping(value = "/delDevId", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
@Operation(summary = "为参数减少设备的devId", description = "为参数减少设备的devId")
|
|
||||||
@Parameters({
|
|
||||||
@Parameter(name = "devId", description = "设备ID", required = true, example = "1", in = ParameterIn.QUERY),
|
|
||||||
@Parameter(name = "paramId", description = "参数Id", required = true, example = "1", in = ParameterIn.QUERY)
|
|
||||||
})
|
|
||||||
public Result delDevId(
|
|
||||||
@RequestParam(required = true) Integer devId,
|
|
||||||
@RequestParam(required = true) Integer paramId) {
|
|
||||||
Boolean result = devParamService.reduceDevId( devId, paramId );
|
|
||||||
return Result.success(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据ID查询设备参数
|
* 根据ID查询设备参数
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,13 +1,10 @@
|
|||||||
package com.rczn.rcznautoplc.controller;
|
package com.rczn.rcznautoplc.controller;
|
||||||
|
|
||||||
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.PageInfo;
|
||||||
|
import com.rczn.domain.PageBean;
|
||||||
import com.rczn.domain.Result;
|
import com.rczn.domain.Result;
|
||||||
import com.rczn.rcznautoplc.domain.FlowInfo;
|
import com.rczn.rcznautoplc.domain.FlowInfo;
|
||||||
import com.rczn.rcznautoplc.domain.ManageLog;
|
|
||||||
import com.rczn.rcznautoplc.domain.UserBusy;
|
|
||||||
import com.rczn.rcznautoplc.service.FlowInfoService;
|
import com.rczn.rcznautoplc.service.FlowInfoService;
|
||||||
import com.rczn.rcznautoplc.service.ManageLogService;
|
|
||||||
import com.rczn.utils.ThreadLocalUtil;
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
import io.swagger.v3.oas.annotations.Parameters;
|
import io.swagger.v3.oas.annotations.Parameters;
|
||||||
@@ -17,10 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.time.format.DateTimeFormatter;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/flowInfo")
|
@RequestMapping("/flowInfo")
|
||||||
@@ -30,6 +24,7 @@ public class FlowInfoController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
FlowInfoService flowInfoService;
|
FlowInfoService flowInfoService;
|
||||||
|
|
||||||
|
|
||||||
@GetMapping(value = "/listPage", produces = MediaType.APPLICATION_JSON_VALUE)
|
@GetMapping(value = "/listPage", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
@Operation(summary = "分页查询流程信息", description = "支持流程排序精准查询、流程名称/岛屿ID列表模糊查询")
|
@Operation(summary = "分页查询流程信息", description = "支持流程排序精准查询、流程名称/岛屿ID列表模糊查询")
|
||||||
@Parameters({
|
@Parameters({
|
||||||
@@ -76,23 +71,6 @@ public class FlowInfoController {
|
|||||||
public Result addFlowInfo(@RequestBody FlowInfo flowInfo) {
|
public Result addFlowInfo(@RequestBody FlowInfo flowInfo) {
|
||||||
try {
|
try {
|
||||||
Long flowInfoId = flowInfoService.insert(flowInfo);
|
Long flowInfoId = flowInfoService.insert(flowInfo);
|
||||||
//记录操作样品执行SOP操作日志:
|
|
||||||
LocalDateTime loginTime = LocalDateTime.now();
|
|
||||||
ManageLog info = new ManageLog();
|
|
||||||
// ========== 修复开始 ==========
|
|
||||||
Map<String, Object> mapClaims = ThreadLocalUtil.get();
|
|
||||||
UserBusy userBusy = new UserBusy();
|
|
||||||
userBusy.setId(Long.valueOf( mapClaims.get("id").toString()));
|
|
||||||
userBusy.setUserName((String) mapClaims.get("username"));
|
|
||||||
// ========== 修复结束 ==========
|
|
||||||
info.setCreateId(userBusy.getId());
|
|
||||||
info.setLogName("基础数据操作日志");
|
|
||||||
info.setLogType("基础数据操作日志");//1:登录日志、2:SOP操作日志、3:基础数据操作日志
|
|
||||||
StringBuilder stringBuilder = new StringBuilder();
|
|
||||||
stringBuilder.append("用户名:").append(userBusy.getUserName()).append(",SOP配置添加操作时间:").append(loginTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
|
||||||
info.setLogContent(stringBuilder.toString());
|
|
||||||
info.setCreateTime(loginTime);
|
|
||||||
manageLogService.insert(info);
|
|
||||||
return Result.success(flowInfoId);
|
return Result.success(flowInfoId);
|
||||||
} catch (IllegalArgumentException e) {
|
} catch (IllegalArgumentException e) {
|
||||||
return Result.error(e.getMessage());
|
return Result.error(e.getMessage());
|
||||||
@@ -110,31 +88,11 @@ public class FlowInfoController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Autowired
|
|
||||||
ManageLogService manageLogService;
|
|
||||||
|
|
||||||
@DeleteMapping(value = "/del/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
|
@DeleteMapping(value = "/del/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
@Operation(summary = "删除流程信息", description = "逻辑删除(设置delSign=1,不物理删除数据)")
|
@Operation(summary = "删除流程信息", description = "逻辑删除(设置delSign=1,不物理删除数据)")
|
||||||
public Result deleteFlowInfo(@PathVariable Long id) {
|
public Result deleteFlowInfo(@PathVariable Long id) {
|
||||||
try {
|
try {
|
||||||
Boolean success = flowInfoService.deleteById(id);
|
Boolean success = flowInfoService.deleteById(id);
|
||||||
//记录操作样品执行SOP操作日志:
|
|
||||||
LocalDateTime loginTime = LocalDateTime.now();
|
|
||||||
ManageLog info = new ManageLog();
|
|
||||||
// ========== 修复开始 ==========
|
|
||||||
Map<String, Object> mapClaims = ThreadLocalUtil.get();
|
|
||||||
UserBusy userBusy = new UserBusy();
|
|
||||||
userBusy.setId(Long.valueOf( mapClaims.get("id").toString()));
|
|
||||||
userBusy.setUserName((String) mapClaims.get("username"));
|
|
||||||
// ========== 修复结束 ==========
|
|
||||||
info.setCreateId(userBusy.getId());
|
|
||||||
info.setLogName("基础数据操作日志");
|
|
||||||
info.setLogType("基础数据操作日志");//1:登录日志、2:SOP操作日志、3:基础数据操作日志
|
|
||||||
StringBuilder stringBuilder = new StringBuilder();
|
|
||||||
stringBuilder.append("用户名:").append(userBusy.getUserName()).append(",SOP配置删除操作时间:").append(loginTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
|
||||||
info.setLogContent(stringBuilder.toString());
|
|
||||||
info.setCreateTime(loginTime);
|
|
||||||
manageLogService.insert(info);
|
|
||||||
return success ? Result.success(true) : Result.error("删除失败(流程信息不存在或已删除)");
|
return success ? Result.success(true) : Result.error("删除失败(流程信息不存在或已删除)");
|
||||||
} catch (IllegalArgumentException e) {
|
} catch (IllegalArgumentException e) {
|
||||||
return Result.error(e.getMessage());
|
return Result.error(e.getMessage());
|
||||||
|
|||||||
@@ -4,21 +4,16 @@ import com.github.pagehelper.PageInfo;
|
|||||||
import com.rczn.domain.PageBean;
|
import com.rczn.domain.PageBean;
|
||||||
import com.rczn.domain.Result;
|
import com.rczn.domain.Result;
|
||||||
import com.rczn.rcznautoplc.domain.GoodsFlowStatus;
|
import com.rczn.rcznautoplc.domain.GoodsFlowStatus;
|
||||||
import com.rczn.rcznautoplc.domain.query.GoodsFlowStatusQuery;
|
|
||||||
import com.rczn.rcznautoplc.service.GoodsFlowStatusService;
|
import com.rczn.rcznautoplc.service.GoodsFlowStatusService;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
import io.swagger.v3.oas.annotations.Parameters;
|
import io.swagger.v3.oas.annotations.Parameters;
|
||||||
import io.swagger.v3.oas.annotations.enums.ParameterIn;
|
import io.swagger.v3.oas.annotations.enums.ParameterIn;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import org.springdoc.core.annotations.ParameterObject;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/goodsFlowStatus")
|
@RequestMapping("/goodsFlowStatus")
|
||||||
@Tag(name = "样品流程信息管理", description = "样品流程状态增删改查+分页查询接口")
|
@Tag(name = "样品流程信息管理", description = "样品流程状态增删改查+分页查询接口")
|
||||||
@@ -33,29 +28,22 @@ public class GoodsFlowStatusController {
|
|||||||
@Parameters({
|
@Parameters({
|
||||||
@Parameter(name = "pageNum", description = "页码(必填)", required = true, example = "1", in = ParameterIn.QUERY),
|
@Parameter(name = "pageNum", description = "页码(必填)", required = true, example = "1", in = ParameterIn.QUERY),
|
||||||
@Parameter(name = "pageSize", description = "每页条数(必填)", required = true, example = "10", in = ParameterIn.QUERY),
|
@Parameter(name = "pageSize", description = "每页条数(必填)", required = true, example = "10", in = ParameterIn.QUERY),
|
||||||
|
@Parameter(name = "goodsId", description = "样品ID(可选,精准查询)", required = false, example = "1", in = ParameterIn.QUERY),
|
||||||
|
@Parameter(name = "flowId", description = "流程ID(可选,精准查询)", required = false, example = "1", in = ParameterIn.QUERY),
|
||||||
|
@Parameter(name = "islandId", description = "岛屿ID(可选,精准查询)", required = false, example = "1", in = ParameterIn.QUERY),
|
||||||
|
@Parameter(name = "status", description = "状态(可选,精准查询:0-未执行,1-执行,10-通过,11-失败)", required = false, example = "10", in = ParameterIn.QUERY)
|
||||||
})
|
})
|
||||||
public Result getGoodsFlowStatusPage(
|
public Result getGoodsFlowStatusPage(
|
||||||
@RequestParam Integer pageNum,
|
@RequestParam Integer pageNum,
|
||||||
@RequestParam Integer pageSize,
|
@RequestParam Integer pageSize,
|
||||||
@ParameterObject
|
@RequestParam(required = false) Integer goodsId,
|
||||||
@Schema(description = "样品ID、流程ID、岛屿ID、状态精准查询条件")
|
@RequestParam(required = false) Integer flowId,
|
||||||
GoodsFlowStatusQuery goodsFlowStatus) {
|
@RequestParam(required = false) Integer islandId,
|
||||||
PageInfo<GoodsFlowStatus> pageBean = goodsFlowStatusService.selectPage(pageNum, pageSize, goodsFlowStatus);
|
@RequestParam(required = false) Integer status) {
|
||||||
|
PageInfo<GoodsFlowStatus> pageBean = goodsFlowStatusService.selectPage(pageNum, pageSize, goodsId, flowId, islandId, status);
|
||||||
return Result.success(pageBean);
|
return Result.success(pageBean);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = "/list", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
@Operation(summary = "查询样品流程状态", description = "支持样品ID、流程ID、岛屿ID、状态等精准查询")
|
|
||||||
@Parameters({
|
|
||||||
})
|
|
||||||
public Result getList(
|
|
||||||
@ParameterObject
|
|
||||||
@Schema(description = "样品ID、流程ID、岛屿ID、状态等精准查询条件")
|
|
||||||
GoodsFlowStatusQuery goodsFlowStatus) {
|
|
||||||
List<GoodsFlowStatus> list = goodsFlowStatusService.selectList( goodsFlowStatus);
|
|
||||||
return Result.success(list);
|
|
||||||
}
|
|
||||||
|
|
||||||
@GetMapping(value = "/getById/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
|
@GetMapping(value = "/getById/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
@Operation(summary = "查询单个样品流程状态", description = "根据样品流程状态ID查询详情")
|
@Operation(summary = "查询单个样品流程状态", description = "根据样品流程状态ID查询详情")
|
||||||
public Result getGoodsFlowStatusById(@PathVariable Long id) {
|
public Result getGoodsFlowStatusById(@PathVariable Long id) {
|
||||||
|
|||||||
@@ -4,21 +4,16 @@ import com.github.pagehelper.PageInfo;
|
|||||||
import com.rczn.domain.PageBean;
|
import com.rczn.domain.PageBean;
|
||||||
import com.rczn.domain.Result;
|
import com.rczn.domain.Result;
|
||||||
import com.rczn.rcznautoplc.domain.GoodsInfo;
|
import com.rczn.rcznautoplc.domain.GoodsInfo;
|
||||||
import com.rczn.rcznautoplc.domain.query.GoodsInfoQuery;
|
|
||||||
import com.rczn.rcznautoplc.service.GoodsInfoService;
|
import com.rczn.rcznautoplc.service.GoodsInfoService;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
import io.swagger.v3.oas.annotations.Parameters;
|
import io.swagger.v3.oas.annotations.Parameters;
|
||||||
import io.swagger.v3.oas.annotations.enums.ParameterIn;
|
import io.swagger.v3.oas.annotations.enums.ParameterIn;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import org.springdoc.core.annotations.ParameterObject;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/goodsInfo")
|
@RequestMapping("/goodsInfo")
|
||||||
@Tag(name = "样品信息管理", description = "样品信息增删改查+分页查询接口")
|
@Tag(name = "样品信息管理", description = "样品信息增删改查+分页查询接口")
|
||||||
@@ -34,37 +29,23 @@ public class GoodsInfoController {
|
|||||||
@Operation(summary = "分页查询样品信息", description = "支持样品名称/类型/来源模糊查询、批次精准查询")
|
@Operation(summary = "分页查询样品信息", description = "支持样品名称/类型/来源模糊查询、批次精准查询")
|
||||||
@Parameters({
|
@Parameters({
|
||||||
@Parameter(name = "pageNum", description = "页码(必填)", required = true, example = "1", in = ParameterIn.QUERY),
|
@Parameter(name = "pageNum", description = "页码(必填)", required = true, example = "1", in = ParameterIn.QUERY),
|
||||||
@Parameter(name = "pageSize", description = "每页条数(必填)", required = true, example = "10", in = ParameterIn.QUERY)
|
@Parameter(name = "pageSize", description = "每页条数(必填)", required = true, example = "10", in = ParameterIn.QUERY),
|
||||||
// @Parameter(name = "goodsName", description = "样品名称(可选,模糊查询)", required = false, example = "手机", in = ParameterIn.QUERY),
|
@Parameter(name = "goodsName", description = "样品名称(可选,模糊查询)", required = false, example = "手机", in = ParameterIn.QUERY),
|
||||||
// @Parameter(name = "goodsType", description = "样品类型(可选,模糊查询)", required = false, example = "电子产品", in = ParameterIn.QUERY),
|
@Parameter(name = "goodsType", description = "样品类型(可选,模糊查询)", required = false, example = "电子产品", in = ParameterIn.QUERY),
|
||||||
// @Parameter(name = "goodFrom", description = "样品来源(可选,模糊查询)", required = false, example = "深圳", in = ParameterIn.QUERY),
|
@Parameter(name = "goodFrom", description = "样品来源(可选,模糊查询)", required = false, example = "深圳", in = ParameterIn.QUERY),
|
||||||
// @Parameter(name = "goodBatch", description = "样品批次(可选,精准查询)", required = false, example = "202501", in = ParameterIn.QUERY)
|
@Parameter(name = "goodBatch", description = "样品批次(可选,精准查询)", required = false, example = "202501", in = ParameterIn.QUERY)
|
||||||
})
|
})
|
||||||
public Result getGoodsInfoPage(
|
public Result getGoodsInfoPage(
|
||||||
@RequestParam Integer pageNum,
|
@RequestParam Integer pageNum,
|
||||||
@RequestParam Integer pageSize,
|
@RequestParam Integer pageSize,
|
||||||
@ParameterObject
|
@RequestParam(required = false) String goodsName,
|
||||||
@Schema(description = "样品信息查询条件(可选)", name = "goodsInfo", required = false)
|
@RequestParam(required = false) String goodsType,
|
||||||
GoodsInfoQuery goodsInfo) {
|
@RequestParam(required = false) String goodFrom,
|
||||||
PageInfo<GoodsInfo> pageBean = goodsInfoService.selectPage(pageNum, pageSize, goodsInfo);
|
@RequestParam(required = false) Integer goodBatch) {
|
||||||
|
PageInfo<GoodsInfo> pageBean = goodsInfoService.selectPage(pageNum, pageSize, goodsName, goodsType, goodFrom, goodBatch);
|
||||||
return Result.success(pageBean);
|
return Result.success(pageBean);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询样品信息
|
|
||||||
*/
|
|
||||||
@GetMapping(value = "/list", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
@Operation(summary = "查询样品信息", description = "支持样品名称/类型/来源模糊查询、批次精准查询")
|
|
||||||
@Parameters({
|
|
||||||
})
|
|
||||||
public Result getList(
|
|
||||||
@ParameterObject
|
|
||||||
@Schema(description = "样品信息查询条件(可选)", name = "goodsInfo", required = false)
|
|
||||||
GoodsInfoQuery goodsInfo) {
|
|
||||||
List<GoodsInfo> list = goodsInfoService.selectList( goodsInfo);
|
|
||||||
return Result.success(list);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据ID查询样品信息
|
* 根据ID查询样品信息
|
||||||
*/
|
*/
|
||||||
@@ -89,21 +70,6 @@ public class GoodsInfoController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 扫码新增样品信息
|
|
||||||
* 扫码信息:样品类型、样品编码、样品名称、样品点位
|
|
||||||
*/
|
|
||||||
@PostMapping(value = "/scanAdd", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
@Operation(summary = "扫描新增样品", description = "样品名称、类型、编码、点位为必填项")
|
|
||||||
public Result scanAdd(@RequestBody GoodsInfo goodsInfo) {
|
|
||||||
try {
|
|
||||||
GoodsInfo goodInfoResult = goodsInfoService.insertByScan(goodsInfo);
|
|
||||||
return Result.success(goodInfoResult);
|
|
||||||
} catch (IllegalArgumentException e) {
|
|
||||||
return Result.error(e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改样品信息
|
* 修改样品信息
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,337 +0,0 @@
|
|||||||
package com.rczn.rcznautoplc.controller;
|
|
||||||
|
|
||||||
import com.rczn.domain.Result;
|
|
||||||
import com.rczn.modbus.Modbus4jWriteUtils;
|
|
||||||
import com.rczn.rcznautoplc.cache.PlcRunStatus;
|
|
||||||
import com.rczn.rcznautoplc.domain.*;
|
|
||||||
import com.rczn.rcznautoplc.domain.query.StepInfoQuery;
|
|
||||||
import com.rczn.rcznautoplc.service.*;
|
|
||||||
import com.rczn.rcznautoplc.utils.PlcConnectMap;
|
|
||||||
import com.rczn.utils.ThreadLocalUtil;
|
|
||||||
import com.serotonin.modbus4j.ModbusMaster;
|
|
||||||
import com.serotonin.modbus4j.code.DataType;
|
|
||||||
import com.serotonin.modbus4j.exception.ErrorResponseException;
|
|
||||||
import com.serotonin.modbus4j.exception.ModbusInitException;
|
|
||||||
import com.serotonin.modbus4j.exception.ModbusTransportException;
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
|
||||||
import io.swagger.v3.oas.annotations.enums.ParameterIn;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
||||||
import org.springdoc.core.annotations.ParameterObject;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.http.MediaType;
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.time.format.DateTimeFormatter;
|
|
||||||
import java.util.Comparator;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 设备信息 Controller(RESTful API)
|
|
||||||
*/
|
|
||||||
@RestController
|
|
||||||
@RequestMapping("/plc")
|
|
||||||
@Tag(name = "plc设备控制类", description = "plc设备初始化,查询,控制方法集合")
|
|
||||||
public class PlcController {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private PlcService plcService;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 设备连接
|
|
||||||
*/
|
|
||||||
@PostMapping(value = "/connect", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
@Operation(summary = "连接设备", description = "连接设备...")
|
|
||||||
public Result plcConnect(
|
|
||||||
@ParameterObject
|
|
||||||
@Schema(description = "plc设备参数")
|
|
||||||
ModbusConnectObj connectObj) {
|
|
||||||
ModbusMaster connectorInit;
|
|
||||||
if(PlcConnectMap.modbusConnectorMap.containsKey(connectObj.getIpAddr())){
|
|
||||||
return Result.error("设备连接已经存在!");
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
|
|
||||||
connectorInit = plcService.connectModbus(connectObj);
|
|
||||||
if(connectorInit != null){
|
|
||||||
return Result.success(true);
|
|
||||||
}else {
|
|
||||||
return Result.error("设备连接失败!");
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
|
||||||
return Result.error("设备连接失败!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 向plc寄存器写数据:
|
|
||||||
*/
|
|
||||||
@PostMapping(value = "/plcWrite", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
@Operation(summary = "连接设备", description = "连接设备...")
|
|
||||||
public Result plcWrite(
|
|
||||||
@ParameterObject
|
|
||||||
@Schema(description = "plc设备参数")
|
|
||||||
ModbusConnectObj connectObj,
|
|
||||||
@Parameter
|
|
||||||
@Schema(description = "寄存器地址", required = true, example = "10000")
|
|
||||||
@RequestParam int registerAddress,
|
|
||||||
@Parameter
|
|
||||||
@Schema(description = "寄存器值", required = true, example = "12345")
|
|
||||||
@RequestParam int registerValue) {
|
|
||||||
ModbusMaster connectorInit;
|
|
||||||
if(PlcConnectMap.modbusConnectorMap.containsKey(connectObj.getIpAddr())){
|
|
||||||
connectorInit = PlcConnectMap.modbusConnectorMap.get(connectObj.getIpAddr());
|
|
||||||
try {
|
|
||||||
Modbus4jWriteUtils.writeHoldingRegister(connectorInit,1,registerAddress,registerValue, DataType.TWO_BYTE_INT_UNSIGNED);
|
|
||||||
} catch (ModbusTransportException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
} catch (ErrorResponseException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
} catch (ModbusInitException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
return Result.error("设备连接已经存在!");
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
connectorInit = plcService.connectModbus(connectObj);
|
|
||||||
if(connectorInit != null){
|
|
||||||
//往地址1000里面写入数据:
|
|
||||||
Modbus4jWriteUtils.writeHoldingRegister(connectorInit,1,registerAddress,registerValue, DataType.TWO_BYTE_INT_UNSIGNED);
|
|
||||||
return Result.success(true);
|
|
||||||
}else {
|
|
||||||
return Result.error("设备连接失败!");
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
|
||||||
return Result.error("设备连接失败!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据ID删除设备(逻辑删除)
|
|
||||||
*/
|
|
||||||
@PostMapping(value = "/run")
|
|
||||||
@Operation(summary = "运行plc", description = "plc设备运行停止")
|
|
||||||
public Result runPlc(
|
|
||||||
@Parameter(name = "ipAddr", description = "设备ip地址", required = true, example = "192.168.1.123")
|
|
||||||
@RequestParam String ipAddr) {
|
|
||||||
try {
|
|
||||||
Boolean success = plcService.startPlc(ipAddr);
|
|
||||||
return Result.success(success);
|
|
||||||
} catch (Exception e) {
|
|
||||||
return Result.error("停止失败!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据ID删除设备(逻辑删除)
|
|
||||||
*/
|
|
||||||
@PostMapping(value = "/pause")
|
|
||||||
@Operation(summary = "暂停运行plc", description = "暂停运行plc")
|
|
||||||
public Result pausePlc(
|
|
||||||
@Parameter(name = "ipAddr", description = "设备ip地址", required = true, example = "192.168.1.123")
|
|
||||||
@RequestParam String ipAddr) {
|
|
||||||
try {
|
|
||||||
Boolean success = plcService.pausePlc(ipAddr);
|
|
||||||
return Result.success(success);
|
|
||||||
} catch (Exception e) {
|
|
||||||
return Result.error("停止失败!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据设备ip地址,停止执行
|
|
||||||
*/
|
|
||||||
@PostMapping(value = "/stop")
|
|
||||||
@Operation(summary = "停止plc", description = "plc设备运行停止")
|
|
||||||
public Result stop(
|
|
||||||
@Parameter(name = "ipAddr", description = "设备ip地址", required = true, example = "192.168.1.123")
|
|
||||||
@RequestParam String ipAddr) {
|
|
||||||
try {
|
|
||||||
Boolean success = plcService.stopPlc(ipAddr);
|
|
||||||
return Result.success(success);
|
|
||||||
} catch (Exception e) {
|
|
||||||
return Result.error("停止失败!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据plc ip地址,故障复位
|
|
||||||
*/
|
|
||||||
@PostMapping(value = "/resetError")
|
|
||||||
@Operation(summary = "plc设备复位故障", description = "plc设备复位故障")
|
|
||||||
public Result resetError(
|
|
||||||
@Parameter(name = "ipAddr", description = "设备ip地址", required = true, example = "192.168.1.123")
|
|
||||||
@RequestParam String ipAddr) {
|
|
||||||
try {
|
|
||||||
Boolean success = plcService.resetErrorPlc(ipAddr);
|
|
||||||
return Result.success(success);
|
|
||||||
} catch (Exception e) {
|
|
||||||
return Result.error("停止失败!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据plc ip地址,获取plc设备状态
|
|
||||||
*/
|
|
||||||
@GetMapping(value = "/plcStatus")
|
|
||||||
@Operation(summary = "plc设备获取状态值", description = "状态值:10-就绪,11-执行中,12-暂停中,19已停止,20-故障中")
|
|
||||||
public Result plcStatus(
|
|
||||||
@Parameter(name = "ipAddr", description = "设备ip地址", required = true, example = "192.168.1.123")
|
|
||||||
@RequestParam String ipAddr) {
|
|
||||||
try {
|
|
||||||
Integer resultValue = plcService.getPlcStatus(ipAddr);
|
|
||||||
return Result.success(resultValue);
|
|
||||||
} catch (Exception e) {
|
|
||||||
return Result.error("停止失败!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据plc ip地址,获取plc设备状态
|
|
||||||
*/
|
|
||||||
@GetMapping(value = "/mastertPlcStatus")
|
|
||||||
@Operation(summary = "获取主plc状态对象", description = "goodsScanStatus = 0; //货物扫描:0-准备,1-扫描完毕;//系统准备:0-未准备,1-空闲,2-忙,4异常")
|
|
||||||
public Result mastertPlcStatus() {
|
|
||||||
try {
|
|
||||||
PlcRunStatus.PlcRunStatusResponse response = new PlcRunStatus.PlcRunStatusResponse();
|
|
||||||
response.setGoodsScanStatus(PlcRunStatus.goodsScanStatus);
|
|
||||||
response.setSystemPlcRunStatus(PlcRunStatus.systemPlcRunStatus);
|
|
||||||
response.setGoodsCount(PlcRunStatus.goodsCount);
|
|
||||||
response.setGoodsCurrentIndex(PlcRunStatus.goodsCurrentIndex);
|
|
||||||
response.setDefaultGoodsName(PlcRunStatus.defaultGoodsName);
|
|
||||||
response.setDefaultGoodsType(PlcRunStatus.defaultGoodsType);
|
|
||||||
response.setDefaultGoalDetect(PlcRunStatus.defaultGoalDetect);
|
|
||||||
|
|
||||||
return Result.success(response);
|
|
||||||
} catch (Exception e) {
|
|
||||||
return Result.error("停止失败!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据plc ip地址,设置plc设备模式:
|
|
||||||
* 0-手动模式,1-自动模式
|
|
||||||
*/
|
|
||||||
@PostMapping(value = "/setModel")
|
|
||||||
@Operation(summary = "plc设备设置模式", description = "模式值:0-手动模式,1-自动模式")
|
|
||||||
public Result setModel(
|
|
||||||
@Parameter(name = "ipAddr", description = "设备ip地址", required = true, example = "192.168.1.123", in = ParameterIn.QUERY)
|
|
||||||
@RequestParam String ipAddr,
|
|
||||||
@Parameter(name = "model", description = "设备模式值", required = true, example = "0-1", in = ParameterIn.QUERY)
|
|
||||||
@RequestParam Integer model) {
|
|
||||||
try {
|
|
||||||
Boolean resultValue = plcService.setPlcModel(ipAddr,model);
|
|
||||||
return Result.success(resultValue);
|
|
||||||
} catch (Exception e) {
|
|
||||||
return Result.error("停止失败!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据plc ip地址,获取plc设备模式:
|
|
||||||
* 0-手动模式,1-自动模式
|
|
||||||
*/
|
|
||||||
@GetMapping(value = "/getModel")
|
|
||||||
@Operation(summary = "plc设备获取模式值", description = "模式值:0-手动模式,1-自动模式")
|
|
||||||
public Result getModel(
|
|
||||||
@Parameter(name = "ipAddr", description = "设备ip地址", required = true, example = "192.168.1.123")
|
|
||||||
@RequestParam String ipAddr) {
|
|
||||||
try {
|
|
||||||
Integer resultValue = plcService.getPlcModel(ipAddr);
|
|
||||||
return Result.success(resultValue);
|
|
||||||
} catch (Exception e) {
|
|
||||||
return Result.error("停止失败!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 更新设备
|
|
||||||
*/
|
|
||||||
@GetMapping(value = "/getAll", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
@Operation(summary = "获取全部plc连接对象", description = "获取全部plc连接对象")
|
|
||||||
public Result getPlcAll() {
|
|
||||||
Map<String,ModbusMaster> connectorMap = plcService.modbusALlMap();
|
|
||||||
return Result.success(connectorMap);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据ID查询设备
|
|
||||||
*/
|
|
||||||
@GetMapping(value = "/getPlcByIp", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
@Operation(summary = "更加ip地址,查询plc连接对象", description = "更加ip地址,查询plc连接对象")
|
|
||||||
public Result getConnectByIpaddr(
|
|
||||||
@Parameter(name = "ipAddr", description = "设备IP", required = true, example = "192.168.1.123")
|
|
||||||
@RequestParam String ipAddr) {
|
|
||||||
ModbusMaster connector = plcService.getModbusConnect(ipAddr);
|
|
||||||
return Result.success(connector);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询所有设备(不分页)
|
|
||||||
*/
|
|
||||||
@PostMapping(value = "/doAction", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
@Operation(summary = "调用plc设备执行动作", description = "根据plc设备ip,执行动作")
|
|
||||||
public Result doAction(
|
|
||||||
@RequestParam String ip,
|
|
||||||
@RequestParam String action
|
|
||||||
) {
|
|
||||||
Boolean aBoolean = plcService.doAction(ip, action);
|
|
||||||
return Result.success(aBoolean);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
StepInfoService stepInfoService;
|
|
||||||
@Autowired
|
|
||||||
GoodsInfoService goodsInfoService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
ManageLogService manageLogService;
|
|
||||||
|
|
||||||
@PostMapping(value = "/runFlow")
|
|
||||||
@Operation(summary = "为样品执行国标" ,description = "为样品执行国标")
|
|
||||||
public Result doStandGoods(
|
|
||||||
|
|
||||||
@RequestParam String plcIp,
|
|
||||||
@RequestParam Integer flowId,
|
|
||||||
@RequestParam List<Integer> goodsIds
|
|
||||||
){
|
|
||||||
//根据flowId获取步骤信息表:
|
|
||||||
StepInfoQuery stepInfo = new StepInfoQuery();
|
|
||||||
stepInfo.setFlowId(flowId);
|
|
||||||
List<StepInfo> stepInfoList = stepInfoService.selectList(stepInfo);
|
|
||||||
//stepInfoList根据StepInfo里面的stepOrder(int)排序
|
|
||||||
stepInfoList.sort(Comparator.comparing(StepInfo::getStepOrder));
|
|
||||||
//根据goodsIds获取样品信息的 bar_code编码列表:
|
|
||||||
List<GoodsInfo> goodsInfoList = goodsInfoService.selectByIdList(goodsIds);
|
|
||||||
List<String> barCodeList = goodsInfoList.stream().map(GoodsInfo::getBarCode).collect(Collectors.toList());
|
|
||||||
Boolean aBoolean = plcService.runSopInfoForGoodsList(plcIp,flowId, barCodeList, stepInfoList);
|
|
||||||
//记录操作样品执行SOP操作日志:
|
|
||||||
LocalDateTime loginTime = LocalDateTime.now();
|
|
||||||
ManageLog info = new ManageLog();
|
|
||||||
// ========== 修复开始 ==========
|
|
||||||
Map<String, Object> mapClaims = ThreadLocalUtil.get();
|
|
||||||
UserBusy userBusy = new UserBusy();
|
|
||||||
userBusy.setId(Long.valueOf( mapClaims.get("id").toString()));
|
|
||||||
userBusy.setUserName((String) mapClaims.get("username"));
|
|
||||||
// ========== 修复结束 ==========
|
|
||||||
info.setCreateId(userBusy.getId());
|
|
||||||
info.setLogName("SOP操作日志");
|
|
||||||
info.setLogType("SOP操作日志");//1:登录日志、2:SOP操作日志、3:基础数据操作日志
|
|
||||||
StringBuilder stringBuilder = new StringBuilder();
|
|
||||||
stringBuilder.append("用户名:").append(userBusy.getUserName()).append(",SOP执行操作时间:").append(loginTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
|
||||||
info.setLogContent(stringBuilder.toString());
|
|
||||||
info.setCreateTime(loginTime);
|
|
||||||
manageLogService.insert(info);
|
|
||||||
|
|
||||||
return Result.success(aBoolean);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -4,15 +4,12 @@ import com.github.pagehelper.PageInfo;
|
|||||||
import com.rczn.domain.PageBean;
|
import com.rczn.domain.PageBean;
|
||||||
import com.rczn.domain.Result;
|
import com.rczn.domain.Result;
|
||||||
import com.rczn.rcznautoplc.domain.StepInfo;
|
import com.rczn.rcznautoplc.domain.StepInfo;
|
||||||
import com.rczn.rcznautoplc.domain.query.StepInfoQuery;
|
|
||||||
import com.rczn.rcznautoplc.service.StepInfoService;
|
import com.rczn.rcznautoplc.service.StepInfoService;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
import io.swagger.v3.oas.annotations.Parameters;
|
import io.swagger.v3.oas.annotations.Parameters;
|
||||||
import io.swagger.v3.oas.annotations.enums.ParameterIn;
|
import io.swagger.v3.oas.annotations.enums.ParameterIn;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import org.springdoc.core.annotations.ParameterObject;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
@@ -27,31 +24,35 @@ public class StepInfoController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
StepInfoService stepInfoService;
|
StepInfoService stepInfoService;
|
||||||
|
|
||||||
|
|
||||||
@GetMapping(value = "/listPage", produces = MediaType.APPLICATION_JSON_VALUE)
|
@GetMapping(value = "/listPage", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
@Operation(summary = "分页查询步骤信息", description = "支持岛屿ID精准查询、步骤名称模糊查询")
|
@Operation(summary = "分页查询步骤信息", description = "支持岛屿ID精准查询、步骤名称模糊查询")
|
||||||
@Parameters({
|
@Parameters({
|
||||||
@Parameter(name = "pageNum", description = "页码(必填)", required = true, example = "1", in = ParameterIn.QUERY),
|
@Parameter(name = "pageNum", description = "页码(必填)", required = true, example = "1", in = ParameterIn.QUERY),
|
||||||
@Parameter(name = "pageSize", description = "每页条数(必填)", required = true, example = "10", in = ParameterIn.QUERY)
|
@Parameter(name = "pageSize", description = "每页条数(必填)", required = true, example = "10", in = ParameterIn.QUERY),
|
||||||
|
@Parameter(name = "islandId", description = "岛屿ID(可选,精准查询)", required = false, example = "1", in = ParameterIn.QUERY),
|
||||||
|
@Parameter(name = "stepName", description = "步骤名称(可选,模糊查询)", required = false, example = "检测", in = ParameterIn.QUERY)
|
||||||
})
|
})
|
||||||
public Result getStepInfoPage(
|
public Result getStepInfoPage(
|
||||||
@ParameterObject // 核心注解:标记该实体类从查询参数取值
|
|
||||||
@Schema(description = "设备查询条件(可选)") // 补充描述
|
|
||||||
StepInfoQuery stepInfo,
|
|
||||||
@RequestParam Integer pageNum,
|
@RequestParam Integer pageNum,
|
||||||
@RequestParam Integer pageSize
|
@RequestParam Integer pageSize,
|
||||||
) {
|
@RequestParam(required = false) Integer islandId,
|
||||||
PageInfo<StepInfo> pageBean = stepInfoService.selectPage(pageNum, pageSize, stepInfo);
|
@RequestParam(required = false) String stepName) {
|
||||||
|
PageInfo<StepInfo> pageBean = stepInfoService.selectPage(pageNum, pageSize, islandId, stepName);
|
||||||
return Result.success(pageBean);
|
return Result.success(pageBean);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@GetMapping(value = "/list", produces = MediaType.APPLICATION_JSON_VALUE)
|
@GetMapping(value = "/list", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
@Operation(summary = "查询步骤信息", description = "支持岛屿ID精准查询、步骤名称模糊查询")
|
@Operation(summary = "查询步骤信息", description = "支持岛屿ID精准查询、步骤名称模糊查询")
|
||||||
|
@Parameters({
|
||||||
|
@Parameter(name = "islandId", description = "岛屿ID(可选,精准查询)", required = false, example = "1", in = ParameterIn.QUERY),
|
||||||
|
@Parameter(name = "stepName", description = "步骤名称(可选,模糊查询)", required = false, example = "检测", in = ParameterIn.QUERY)
|
||||||
|
})
|
||||||
public Result getStepInfoList(
|
public Result getStepInfoList(
|
||||||
@ParameterObject // 核心注解:标记该实体类从查询参数取值
|
@RequestParam(required = false) Integer islandId,
|
||||||
@Schema(description = "设备查询条件(可选)") // 补充描述
|
@RequestParam(required = false) String stepName) {
|
||||||
StepInfoQuery stepInfo) {
|
List<StepInfo> list = stepInfoService.selectList( islandId, stepName);
|
||||||
List<StepInfo> list = stepInfoService.selectList( stepInfo);
|
|
||||||
return Result.success(list);
|
return Result.success(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -73,30 +74,6 @@ public class StepInfoController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping(value = "/batchAdd", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
@Operation(summary = "批量新增步骤信息", description = "岛屿ID、步骤名称为必填项")
|
|
||||||
public Result batchAddStepInfo(@RequestBody List<StepInfo> stepInfoList) {
|
|
||||||
try {
|
|
||||||
stepInfoService.insertBatch(stepInfoList);
|
|
||||||
return Result.success(true);
|
|
||||||
} catch (IllegalArgumentException e) {
|
|
||||||
return Result.error(e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//批量更新步骤信息
|
|
||||||
@PostMapping(value = "/batchUpdate", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
@Operation(summary = "批量更新步骤信息", description = "岛屿ID、步骤名称为必填项")
|
|
||||||
public Result batchUpdateStepInfo(@RequestBody List<StepInfo> stepInfoList) {
|
|
||||||
try {
|
|
||||||
stepInfoService.updateBatch(stepInfoList);
|
|
||||||
return Result.success(true);
|
|
||||||
} catch (IllegalArgumentException e) {
|
|
||||||
return Result.error(e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@PutMapping(value = "/update", produces = MediaType.APPLICATION_JSON_VALUE)
|
@PutMapping(value = "/update", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
@Operation(summary = "修改步骤信息", description = "需传入步骤信息ID,其他字段可选(非空则更新)")
|
@Operation(summary = "修改步骤信息", description = "需传入步骤信息ID,其他字段可选(非空则更新)")
|
||||||
public Result updateStepInfo(@RequestBody StepInfo stepInfo) {
|
public Result updateStepInfo(@RequestBody StepInfo stepInfo) {
|
||||||
@@ -118,16 +95,4 @@ public class StepInfoController {
|
|||||||
return Result.error(e.getMessage());
|
return Result.error(e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//批量删除步骤信息
|
|
||||||
@DeleteMapping(value = "/batchDel", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
@Operation(summary = "批量删除步骤信息", description = "逻辑删除(设置delSign=1,不物理删除数据)")
|
|
||||||
public Result batchDeleteStepInfo(@RequestBody List<Long> ids) {
|
|
||||||
try {
|
|
||||||
stepInfoService.deleteBatchByIds(ids);
|
|
||||||
return Result.success(true);
|
|
||||||
} catch (IllegalArgumentException e) {
|
|
||||||
return Result.error(e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
package com.rczn.rcznautoplc.controller;
|
|
||||||
|
|
||||||
import com.rczn.websocket.WebSocketServer;
|
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
@RestController
|
|
||||||
@RequestMapping("/websocket")
|
|
||||||
@Tag(name = "websocket", description = "websocket接口")
|
|
||||||
public class WebSocketController {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private WebSocketServer webSocketServer;
|
|
||||||
|
|
||||||
@RequestMapping("/send/{message}")
|
|
||||||
public String send(@PathVariable("message") String message){
|
|
||||||
webSocketServer.onMessage(message,null);
|
|
||||||
return "success";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,8 +1,6 @@
|
|||||||
package com.rczn.rcznautoplc.domain;
|
package com.rczn.rcznautoplc.domain;
|
||||||
|
|
||||||
import com.rczn.domain.BaseBean;
|
import com.rczn.domain.BaseBean;
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@@ -17,9 +15,6 @@ public class DevInfo extends BaseBean {
|
|||||||
//设备型号
|
//设备型号
|
||||||
private String devModel;
|
private String devModel;
|
||||||
|
|
||||||
//plc映射地址
|
|
||||||
private Integer plcAddr;
|
|
||||||
|
|
||||||
//设备IP地址
|
//设备IP地址
|
||||||
private String ipAddr;
|
private String ipAddr;
|
||||||
|
|
||||||
@@ -31,8 +26,6 @@ public class DevInfo extends BaseBean {
|
|||||||
|
|
||||||
private Integer status; // 0-空闲,1-运行,4-故障
|
private Integer status; // 0-空闲,1-运行,4-故障
|
||||||
|
|
||||||
private Integer runModel;//0-手动模式,1-自动模式
|
|
||||||
|
|
||||||
private String devDesc;
|
private String devDesc;
|
||||||
|
|
||||||
public DevInfo() {
|
public DevInfo() {
|
||||||
@@ -66,14 +59,6 @@ public class DevInfo extends BaseBean {
|
|||||||
this.devModel = devModel;
|
this.devModel = devModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer getPlcAddr() {
|
|
||||||
return plcAddr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPlcAddr(Integer plcAddr) {
|
|
||||||
this.plcAddr = plcAddr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getIpAddr() {
|
public String getIpAddr() {
|
||||||
return ipAddr;
|
return ipAddr;
|
||||||
}
|
}
|
||||||
@@ -114,14 +99,6 @@ public class DevInfo extends BaseBean {
|
|||||||
this.status = status;
|
this.status = status;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer getRunModel() {
|
|
||||||
return runModel;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRunModel(Integer runModel) {
|
|
||||||
this.runModel = runModel;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDevDesc() {
|
public String getDevDesc() {
|
||||||
return devDesc;
|
return devDesc;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,21 +1,13 @@
|
|||||||
package com.rczn.rcznautoplc.domain;
|
package com.rczn.rcznautoplc.domain;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
|
||||||
import com.rczn.domain.BaseBean;
|
import com.rczn.domain.BaseBean;
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
public class DevParam extends BaseBean {
|
public class DevParam extends BaseBean {
|
||||||
private String devIds;
|
private Integer devId;
|
||||||
|
|
||||||
//字典类型-参数分类id
|
|
||||||
private Integer dicDataId;
|
|
||||||
|
|
||||||
private String paramName;
|
private String paramName;
|
||||||
//plc映射地址
|
|
||||||
private Integer plcAddr;
|
|
||||||
|
|
||||||
private String paramValue;
|
private String paramValue;
|
||||||
|
|
||||||
@@ -24,10 +16,8 @@ public class DevParam extends BaseBean {
|
|||||||
private String paramUnit;
|
private String paramUnit;
|
||||||
|
|
||||||
private String formType;
|
private String formType;
|
||||||
|
|
||||||
private String paramDesc;
|
private String paramDesc;
|
||||||
|
|
||||||
@JsonIgnore
|
|
||||||
private DevInfo devInfo;
|
private DevInfo devInfo;
|
||||||
|
|
||||||
public DevParam() {
|
public DevParam() {
|
||||||
@@ -37,12 +27,12 @@ public class DevParam extends BaseBean {
|
|||||||
super(id, createId, createTime, updateId, updateTime, delSign, remark);
|
super(id, createId, createTime, updateId, updateTime, delSign, remark);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getDevIds() {
|
public Integer getDevId() {
|
||||||
return devIds;
|
return devId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDevIds(String devIds) {
|
public void setDevId(Integer devId) {
|
||||||
this.devIds = devIds;
|
this.devId = devId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getParamName() {
|
public String getParamName() {
|
||||||
@@ -69,22 +59,6 @@ public class DevParam extends BaseBean {
|
|||||||
this.paramType = paramType;
|
this.paramType = paramType;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer getPlcAddr() {
|
|
||||||
return plcAddr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPlcAddr(Integer plcAddr) {
|
|
||||||
this.plcAddr = plcAddr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getDicDataId() {
|
|
||||||
return dicDataId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDicDataId(Integer dicDataId) {
|
|
||||||
this.dicDataId = dicDataId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getParamUnit() {
|
public String getParamUnit() {
|
||||||
return paramUnit;
|
return paramUnit;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
package com.rczn.rcznautoplc.domain;
|
package com.rczn.rcznautoplc.domain;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
|
||||||
import com.rczn.domain.BaseBean;
|
import com.rczn.domain.BaseBean;
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@@ -14,8 +11,6 @@ public class GoodsFlowStatus extends BaseBean {
|
|||||||
|
|
||||||
private Integer islandId;
|
private Integer islandId;
|
||||||
|
|
||||||
private Integer devId;
|
|
||||||
|
|
||||||
private Integer flowSort;
|
private Integer flowSort;
|
||||||
|
|
||||||
private Integer status; // 0-未执行,1-执行,10-通过,11-失败
|
private Integer status; // 0-未执行,1-执行,10-通过,11-失败
|
||||||
@@ -65,14 +60,6 @@ public class GoodsFlowStatus extends BaseBean {
|
|||||||
this.flowSort = flowSort;
|
this.flowSort = flowSort;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer getDevId() {
|
|
||||||
return devId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDevId(Integer devId) {
|
|
||||||
this.devId = devId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getStatus() {
|
public Integer getStatus() {
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,6 @@
|
|||||||
package com.rczn.rcznautoplc.domain;
|
package com.rczn.rcznautoplc.domain;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
|
||||||
import com.rczn.domain.BaseBean;
|
import com.rczn.domain.BaseBean;
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import io.swagger.v3.oas.models.security.SecurityScheme;
|
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@@ -20,25 +16,15 @@ public class GoodsInfo extends BaseBean {
|
|||||||
|
|
||||||
private Integer goodBatch;
|
private Integer goodBatch;
|
||||||
|
|
||||||
//进样点位
|
|
||||||
private Integer pointNum;
|
|
||||||
|
|
||||||
//目标监测物
|
|
||||||
private String goalDetect;
|
|
||||||
|
|
||||||
//条码
|
|
||||||
private String barCode;
|
|
||||||
|
|
||||||
//国标id
|
|
||||||
private Integer flowId;
|
|
||||||
|
|
||||||
private Integer goodsStatus;
|
|
||||||
|
|
||||||
private String desc;
|
private String desc;
|
||||||
|
|
||||||
public GoodsInfo() {
|
public GoodsInfo() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public GoodsInfo(Long id, Long createId, LocalDateTime createTime, Long updateId, LocalDateTime updateTime, boolean delSign, String remark) {
|
||||||
|
super(id, createId, createTime, updateId, updateTime, delSign, remark);
|
||||||
|
}
|
||||||
|
|
||||||
public String getGoodsName() {
|
public String getGoodsName() {
|
||||||
return goodsName;
|
return goodsName;
|
||||||
}
|
}
|
||||||
@@ -79,46 +65,6 @@ public class GoodsInfo extends BaseBean {
|
|||||||
this.goodBatch = goodBatch;
|
this.goodBatch = goodBatch;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer getPointNum() {
|
|
||||||
return pointNum;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPointNum(Integer pointNum) {
|
|
||||||
this.pointNum = pointNum;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getGoalDetect() {
|
|
||||||
return goalDetect;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGoalDetect(String goalDetect) {
|
|
||||||
this.goalDetect = goalDetect;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getBarCode() {
|
|
||||||
return barCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setBarCode(String barCode) {
|
|
||||||
this.barCode = barCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getFlowId() {
|
|
||||||
return flowId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFlowId(Integer flowId) {
|
|
||||||
this.flowId = flowId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getGoodsStatus() {
|
|
||||||
return goodsStatus;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGoodsStatus(Integer goodsStatus) {
|
|
||||||
this.goodsStatus = goodsStatus;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDesc() {
|
public String getDesc() {
|
||||||
return desc;
|
return desc;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,9 +10,6 @@ public class IslandInfo extends BaseBean {
|
|||||||
|
|
||||||
private String islandCode;
|
private String islandCode;
|
||||||
|
|
||||||
//plc映射地址
|
|
||||||
private Integer plcAddr;
|
|
||||||
|
|
||||||
private String islandLogo;
|
private String islandLogo;
|
||||||
|
|
||||||
private String desc;
|
private String desc;
|
||||||
@@ -20,6 +17,10 @@ public class IslandInfo extends BaseBean {
|
|||||||
public IslandInfo() {
|
public IslandInfo() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public IslandInfo(Long id, Long createId, LocalDateTime createTime, Long updateId, LocalDateTime updateTime, boolean delSign, String remark) {
|
||||||
|
super(id, createId, createTime, updateId, updateTime, delSign, remark);
|
||||||
|
}
|
||||||
|
|
||||||
public String getIslandName() {
|
public String getIslandName() {
|
||||||
return islandName;
|
return islandName;
|
||||||
}
|
}
|
||||||
@@ -36,14 +37,6 @@ public class IslandInfo extends BaseBean {
|
|||||||
this.islandCode = islandCode;
|
this.islandCode = islandCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer getPlcAddr() {
|
|
||||||
return plcAddr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPlcAddr(Integer plcAddr) {
|
|
||||||
this.plcAddr = plcAddr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getIslandLogo() {
|
public String getIslandLogo() {
|
||||||
return islandLogo;
|
return islandLogo;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
package com.rczn.rcznautoplc.domain;
|
package com.rczn.rcznautoplc.domain;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
|
||||||
import com.rczn.domain.BaseBean;
|
import com.rczn.domain.BaseBean;
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@@ -22,10 +19,8 @@ public class IslandParam extends BaseBean {
|
|||||||
|
|
||||||
private String formType;
|
private String formType;
|
||||||
|
|
||||||
@JsonIgnore
|
|
||||||
private IslandInfo islandInfo;
|
private IslandInfo islandInfo;
|
||||||
|
|
||||||
@JsonIgnore
|
|
||||||
private StepInfo stepInfo;
|
private StepInfo stepInfo;
|
||||||
|
|
||||||
public IslandParam() {
|
public IslandParam() {
|
||||||
|
|||||||
@@ -1,85 +0,0 @@
|
|||||||
package com.rczn.rcznautoplc.domain;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonBackReference;
|
|
||||||
import com.github.s7connector.api.S7Connector;
|
|
||||||
import com.serotonin.modbus4j.ModbusMaster;
|
|
||||||
|
|
||||||
public class ModbusConnectObj {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ip地址
|
|
||||||
*/
|
|
||||||
private String ipAddr;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 端口号
|
|
||||||
*/
|
|
||||||
private Integer port;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 机架号
|
|
||||||
*/
|
|
||||||
private Integer rack;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 插槽
|
|
||||||
*/
|
|
||||||
private Integer slot;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 是否是主机
|
|
||||||
*/
|
|
||||||
private Boolean host;
|
|
||||||
|
|
||||||
|
|
||||||
public ModbusConnectObj(String ipAddr, Integer port, Integer rack, Integer slot,Boolean host) {
|
|
||||||
this.ipAddr = ipAddr;
|
|
||||||
this.port = port;
|
|
||||||
this.rack = rack;
|
|
||||||
this.slot = slot;
|
|
||||||
this.host = host;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ModbusConnectObj() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getIpAddr() {
|
|
||||||
return ipAddr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setIpAddr(String ipAddr) {
|
|
||||||
this.ipAddr = ipAddr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getPort() {
|
|
||||||
return port;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPort(Integer port) {
|
|
||||||
this.port = port;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getRack() {
|
|
||||||
return rack;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRack(Integer rack) {
|
|
||||||
this.rack = rack;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getSlot() {
|
|
||||||
return slot;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSlot(Integer slot) {
|
|
||||||
this.slot = slot;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getHost() {
|
|
||||||
return host;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setHost(Boolean host) {
|
|
||||||
this.host = host;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,84 +0,0 @@
|
|||||||
package com.rczn.rcznautoplc.domain;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonBackReference;
|
|
||||||
import com.github.s7connector.api.S7Connector;
|
|
||||||
|
|
||||||
public class PlcConnectObj {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ip地址
|
|
||||||
*/
|
|
||||||
private String ipAddr;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 端口号
|
|
||||||
*/
|
|
||||||
private Integer port;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 机架号
|
|
||||||
*/
|
|
||||||
private Integer rack;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 插槽
|
|
||||||
*/
|
|
||||||
private Integer slot;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 连接对象
|
|
||||||
*/
|
|
||||||
@JsonBackReference
|
|
||||||
private S7Connector connector;
|
|
||||||
|
|
||||||
public PlcConnectObj(String ipAddr, Integer port, Integer rack, Integer slot, S7Connector connector) {
|
|
||||||
this.ipAddr = ipAddr;
|
|
||||||
this.port = port;
|
|
||||||
this.rack = rack;
|
|
||||||
this.slot = slot;
|
|
||||||
this.connector = connector;
|
|
||||||
}
|
|
||||||
|
|
||||||
public PlcConnectObj() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getIpAddr() {
|
|
||||||
return ipAddr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setIpAddr(String ipAddr) {
|
|
||||||
this.ipAddr = ipAddr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getPort() {
|
|
||||||
return port;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPort(Integer port) {
|
|
||||||
this.port = port;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getRack() {
|
|
||||||
return rack;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRack(Integer rack) {
|
|
||||||
this.rack = rack;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getSlot() {
|
|
||||||
return slot;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSlot(Integer slot) {
|
|
||||||
this.slot = slot;
|
|
||||||
}
|
|
||||||
|
|
||||||
public S7Connector getConnector() {
|
|
||||||
return connector;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setConnector(S7Connector connector) {
|
|
||||||
this.connector = connector;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,9 +1,6 @@
|
|||||||
package com.rczn.rcznautoplc.domain;
|
package com.rczn.rcznautoplc.domain;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
|
||||||
import com.rczn.domain.BaseBean;
|
import com.rczn.domain.BaseBean;
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@@ -20,12 +17,10 @@ public class StepInfo extends BaseBean {
|
|||||||
private String paramValue;
|
private String paramValue;
|
||||||
private String formType;
|
private String formType;
|
||||||
|
|
||||||
private Integer stepOrder;
|
|
||||||
private String stepName;
|
private String stepName;
|
||||||
|
|
||||||
private String stepDesc;
|
private String stepDesc;
|
||||||
|
|
||||||
@JsonIgnore
|
|
||||||
private IslandInfo islandInfo;
|
private IslandInfo islandInfo;
|
||||||
|
|
||||||
public StepInfo() {
|
public StepInfo() {
|
||||||
@@ -99,14 +94,6 @@ public class StepInfo extends BaseBean {
|
|||||||
this.islandId = islandId;
|
this.islandId = islandId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer getStepOrder() {
|
|
||||||
return stepOrder;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setStepOrder(Integer stepOrder) {
|
|
||||||
this.stepOrder = stepOrder;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getStepName() {
|
public String getStepName() {
|
||||||
return stepName;
|
return stepName;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,111 +0,0 @@
|
|||||||
package com.rczn.rcznautoplc.domain;
|
|
||||||
|
|
||||||
import com.rczn.domain.BaseBean;
|
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
|
|
||||||
public class UserBusy extends BaseBean {
|
|
||||||
|
|
||||||
private Long id;
|
|
||||||
private String userName;
|
|
||||||
|
|
||||||
private String password;
|
|
||||||
|
|
||||||
private String salt;
|
|
||||||
|
|
||||||
private String nicke;
|
|
||||||
|
|
||||||
private Boolean sex; // 0-女, 1-男
|
|
||||||
|
|
||||||
private String emailAddr;
|
|
||||||
|
|
||||||
private String address;
|
|
||||||
|
|
||||||
|
|
||||||
public UserBusy() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public UserBusy(Long id, Long createId, LocalDateTime createTime, Long updateId, LocalDateTime updateTime, boolean delSign, String remark) {
|
|
||||||
super(id, createId, createTime, updateId, updateTime, delSign, remark);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "User{" +
|
|
||||||
"userName='" + userName + '\'' +
|
|
||||||
", password='" + password + '\'' +
|
|
||||||
", salt='" + salt + '\'' +
|
|
||||||
", nicke='" + nicke + '\'' +
|
|
||||||
", sex=" + sex +
|
|
||||||
", emailAddr='" + emailAddr + '\'' +
|
|
||||||
", address='" + address + '\'' +
|
|
||||||
'}';
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Long getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setId(Long id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getUserName() {
|
|
||||||
return userName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUserName(String userName) {
|
|
||||||
this.userName = userName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getPassword() {
|
|
||||||
return password;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPassword(String password) {
|
|
||||||
this.password = password;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSalt() {
|
|
||||||
return salt;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSalt(String salt) {
|
|
||||||
this.salt = salt;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getNicke() {
|
|
||||||
return nicke;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setNicke(String nicke) {
|
|
||||||
this.nicke = nicke;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getSex() {
|
|
||||||
return sex;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSex(Boolean sex) {
|
|
||||||
this.sex = sex;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getEmailAddr() {
|
|
||||||
return emailAddr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEmailAddr(String emailAddr) {
|
|
||||||
this.emailAddr = emailAddr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getAddress() {
|
|
||||||
return address;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAddress(String address) {
|
|
||||||
this.address = address;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,122 +0,0 @@
|
|||||||
package com.rczn.rcznautoplc.domain.query;
|
|
||||||
|
|
||||||
public class DevInfoQuery {
|
|
||||||
|
|
||||||
//功能岛外键
|
|
||||||
private Integer islandId;
|
|
||||||
|
|
||||||
//设备名称
|
|
||||||
private String devName;
|
|
||||||
|
|
||||||
//设备型号
|
|
||||||
private String devModel;
|
|
||||||
|
|
||||||
//plc映射地址
|
|
||||||
private Integer plcAddr;
|
|
||||||
|
|
||||||
//设备IP地址
|
|
||||||
private String ipAddr;
|
|
||||||
|
|
||||||
private Integer port;
|
|
||||||
|
|
||||||
private String protocolType;
|
|
||||||
|
|
||||||
private String company;
|
|
||||||
|
|
||||||
private Integer status; // 0-空闲,1-运行,4-故障
|
|
||||||
|
|
||||||
private Integer runModel;//0-手动模式,1-自动模式
|
|
||||||
|
|
||||||
private String devDesc;
|
|
||||||
|
|
||||||
public DevInfoQuery() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getIslandId() {
|
|
||||||
return islandId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setIslandId(Integer islandId) {
|
|
||||||
this.islandId = islandId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDevName() {
|
|
||||||
return devName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDevName(String devName) {
|
|
||||||
this.devName = devName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDevModel() {
|
|
||||||
return devModel;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDevModel(String devModel) {
|
|
||||||
this.devModel = devModel;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getPlcAddr() {
|
|
||||||
return plcAddr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPlcAddr(Integer plcAddr) {
|
|
||||||
this.plcAddr = plcAddr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getIpAddr() {
|
|
||||||
return ipAddr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setIpAddr(String ipAddr) {
|
|
||||||
this.ipAddr = ipAddr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getPort() {
|
|
||||||
return port;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPort(Integer port) {
|
|
||||||
this.port = port;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getProtocolType() {
|
|
||||||
return protocolType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setProtocolType(String protocolType) {
|
|
||||||
this.protocolType = protocolType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCompany() {
|
|
||||||
return company;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCompany(String company) {
|
|
||||||
this.company = company;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getStatus() {
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setStatus(Integer status) {
|
|
||||||
this.status = status;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getRunModel() {
|
|
||||||
return runModel;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRunModel(Integer runModel) {
|
|
||||||
this.runModel = runModel;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDevDesc() {
|
|
||||||
return devDesc;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDevDesc(String devDesc) {
|
|
||||||
this.devDesc = devDesc;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,87 +0,0 @@
|
|||||||
package com.rczn.rcznautoplc.domain.query;
|
|
||||||
|
|
||||||
public class DevParamQuery {
|
|
||||||
private String devIds;
|
|
||||||
|
|
||||||
private Integer devId;
|
|
||||||
|
|
||||||
private String paramName;
|
|
||||||
|
|
||||||
private String paramValue;
|
|
||||||
|
|
||||||
private String paramTypeData;
|
|
||||||
|
|
||||||
private String paramUnit;
|
|
||||||
|
|
||||||
private String formType;
|
|
||||||
|
|
||||||
private String paramDesc;
|
|
||||||
|
|
||||||
public DevParamQuery() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getDevId() {
|
|
||||||
return devId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDevId(Integer devId) {
|
|
||||||
this.devId = devId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDevIds() {
|
|
||||||
return devIds;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDevIds(String devIds) {
|
|
||||||
this.devIds = devIds;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getParamName() {
|
|
||||||
return paramName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setParamName(String paramName) {
|
|
||||||
this.paramName = paramName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getParamValue() {
|
|
||||||
return paramValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setParamValue(String paramValue) {
|
|
||||||
this.paramValue = paramValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getParamTypeData() {
|
|
||||||
return paramTypeData;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setParamTypeData(String paramTypeData) {
|
|
||||||
this.paramTypeData = paramTypeData;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getParamUnit() {
|
|
||||||
return paramUnit;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setParamUnit(String paramUnit) {
|
|
||||||
this.paramUnit = paramUnit;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getFormType() {
|
|
||||||
return formType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFormType(String formType) {
|
|
||||||
this.formType = formType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getParamDesc() {
|
|
||||||
return paramDesc;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setParamDesc(String paramDesc) {
|
|
||||||
this.paramDesc = paramDesc;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,75 +0,0 @@
|
|||||||
package com.rczn.rcznautoplc.domain.query;
|
|
||||||
|
|
||||||
import com.rczn.domain.BaseBean;
|
|
||||||
import com.rczn.rcznautoplc.domain.FlowInfo;
|
|
||||||
import com.rczn.rcznautoplc.domain.IslandInfo;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
|
|
||||||
public class GoodsFlowStatusQuery {
|
|
||||||
private Integer goodsId;
|
|
||||||
|
|
||||||
private Integer flowId;
|
|
||||||
|
|
||||||
private Integer islandId;
|
|
||||||
|
|
||||||
private Integer devId;
|
|
||||||
|
|
||||||
private Integer flowSort;
|
|
||||||
|
|
||||||
private Integer status; // 0-未执行,1-执行,10-通过,11-失败
|
|
||||||
|
|
||||||
public GoodsFlowStatusQuery() {
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public Integer getGoodsId() {
|
|
||||||
return goodsId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGoodsId(Integer goodsId) {
|
|
||||||
this.goodsId = goodsId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getFlowId() {
|
|
||||||
return flowId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFlowId(Integer flowId) {
|
|
||||||
this.flowId = flowId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getIslandId() {
|
|
||||||
return islandId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setIslandId(Integer islandId) {
|
|
||||||
this.islandId = islandId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getFlowSort() {
|
|
||||||
return flowSort;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFlowSort(Integer flowSort) {
|
|
||||||
this.flowSort = flowSort;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getDevId() {
|
|
||||||
return devId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDevId(Integer devId) {
|
|
||||||
this.devId = devId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getStatus() {
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setStatus(Integer status) {
|
|
||||||
this.status = status;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,125 +0,0 @@
|
|||||||
package com.rczn.rcznautoplc.domain.query;
|
|
||||||
|
|
||||||
import com.rczn.domain.BaseBean;
|
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
|
|
||||||
|
|
||||||
public class GoodsInfoQuery extends BaseBean{
|
|
||||||
private String goodsName;
|
|
||||||
|
|
||||||
private String goodsType;
|
|
||||||
|
|
||||||
private LocalDateTime incomeTime;
|
|
||||||
|
|
||||||
private String goodFrom;
|
|
||||||
|
|
||||||
private Integer goodBatch;
|
|
||||||
|
|
||||||
private Integer pointNum;
|
|
||||||
|
|
||||||
//目标监测物
|
|
||||||
private String goalDetect;
|
|
||||||
|
|
||||||
//条码
|
|
||||||
private String barCode;
|
|
||||||
|
|
||||||
//国标id
|
|
||||||
private Integer flowId;
|
|
||||||
|
|
||||||
private Integer goodsStatus;
|
|
||||||
|
|
||||||
private String desc;
|
|
||||||
|
|
||||||
public GoodsInfoQuery() {
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public String getGoodsName() {
|
|
||||||
return goodsName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGoodsName(String goodsName) {
|
|
||||||
this.goodsName = goodsName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getGoodsType() {
|
|
||||||
return goodsType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGoodsType(String goodsType) {
|
|
||||||
this.goodsType = goodsType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public LocalDateTime getIncomeTime() {
|
|
||||||
return incomeTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setIncomeTime(LocalDateTime incomeTime) {
|
|
||||||
this.incomeTime = incomeTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getGoodFrom() {
|
|
||||||
return goodFrom;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGoodFrom(String goodFrom) {
|
|
||||||
this.goodFrom = goodFrom;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getGoodBatch() {
|
|
||||||
return goodBatch;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGoodBatch(Integer goodBatch) {
|
|
||||||
this.goodBatch = goodBatch;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getPointNum() {
|
|
||||||
return pointNum;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPointNum(Integer pointNum) {
|
|
||||||
this.pointNum = pointNum;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getGoalDetect() {
|
|
||||||
return goalDetect;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGoalDetect(String goalDetect) {
|
|
||||||
this.goalDetect = goalDetect;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getBarCode() {
|
|
||||||
return barCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setBarCode(String barCode) {
|
|
||||||
this.barCode = barCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getFlowId() {
|
|
||||||
return flowId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFlowId(Integer flowId) {
|
|
||||||
this.flowId = flowId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getGoodsStatus() {
|
|
||||||
return goodsStatus;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGoodsStatus(Integer goodsStatus) {
|
|
||||||
this.goodsStatus = goodsStatus;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDesc() {
|
|
||||||
return desc;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDesc(String desc) {
|
|
||||||
this.desc = desc;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,60 +0,0 @@
|
|||||||
package com.rczn.rcznautoplc.domain.query;
|
|
||||||
|
|
||||||
import com.rczn.domain.BaseBean;
|
|
||||||
|
|
||||||
|
|
||||||
public class IslandInfoQuery {
|
|
||||||
private String islandName;
|
|
||||||
|
|
||||||
private String islandCode;
|
|
||||||
|
|
||||||
//plc映射地址
|
|
||||||
private Integer plcAddr;
|
|
||||||
|
|
||||||
private String islandLogo;
|
|
||||||
|
|
||||||
private String desc;
|
|
||||||
|
|
||||||
public IslandInfoQuery() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getIslandName() {
|
|
||||||
return islandName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setIslandName(String islandName) {
|
|
||||||
this.islandName = islandName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getIslandCode() {
|
|
||||||
return islandCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setIslandCode(String islandCode) {
|
|
||||||
this.islandCode = islandCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getPlcAddr() {
|
|
||||||
return plcAddr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPlcAddr(Integer plcAddr) {
|
|
||||||
this.plcAddr = plcAddr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getIslandLogo() {
|
|
||||||
return islandLogo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setIslandLogo(String islandLogo) {
|
|
||||||
this.islandLogo = islandLogo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDesc() {
|
|
||||||
return desc;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDesc(String desc) {
|
|
||||||
this.desc = desc;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,84 +0,0 @@
|
|||||||
package com.rczn.rcznautoplc.domain.query;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
|
||||||
import com.rczn.domain.BaseBean;
|
|
||||||
import com.rczn.rcznautoplc.domain.IslandInfo;
|
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
|
|
||||||
public class IslandParamQuery {
|
|
||||||
private Integer islandId;
|
|
||||||
|
|
||||||
private Integer stepId;
|
|
||||||
|
|
||||||
private String paramName;
|
|
||||||
|
|
||||||
private String paramType;
|
|
||||||
|
|
||||||
private String paramUnit;
|
|
||||||
|
|
||||||
private String paramValue;
|
|
||||||
|
|
||||||
private String formType;
|
|
||||||
|
|
||||||
public IslandParamQuery() {
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public Integer getIslandId() {
|
|
||||||
return islandId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setIslandId(Integer islandId) {
|
|
||||||
this.islandId = islandId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getStepId() {
|
|
||||||
return stepId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setStepId(Integer stepId) {
|
|
||||||
this.stepId = stepId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getParamName() {
|
|
||||||
return paramName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setParamName(String paramName) {
|
|
||||||
this.paramName = paramName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getParamType() {
|
|
||||||
return paramType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setParamType(String paramType) {
|
|
||||||
this.paramType = paramType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getParamUnit() {
|
|
||||||
return paramUnit;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setParamUnit(String paramUnit) {
|
|
||||||
this.paramUnit = paramUnit;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getParamValue() {
|
|
||||||
return paramValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setParamValue(String paramValue) {
|
|
||||||
this.paramValue = paramValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getFormType() {
|
|
||||||
return formType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFormType(String formType) {
|
|
||||||
this.formType = formType;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,118 +0,0 @@
|
|||||||
package com.rczn.rcznautoplc.domain.query;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
|
||||||
import com.rczn.domain.BaseBean;
|
|
||||||
import com.rczn.rcznautoplc.domain.IslandInfo;
|
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
|
|
||||||
public class StepInfoQuery {
|
|
||||||
private Integer islandId;
|
|
||||||
|
|
||||||
//设备id
|
|
||||||
private Integer devId;
|
|
||||||
private Integer flowId;
|
|
||||||
|
|
||||||
private String paramName;
|
|
||||||
private String paramType;
|
|
||||||
private String paramUnit;
|
|
||||||
private String paramValue;
|
|
||||||
private String formType;
|
|
||||||
|
|
||||||
private Integer stepOrder;
|
|
||||||
private String stepName;
|
|
||||||
|
|
||||||
private String stepDesc;
|
|
||||||
|
|
||||||
public StepInfoQuery() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getFlowId() {
|
|
||||||
return flowId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFlowId(Integer flowId) {
|
|
||||||
this.flowId = flowId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getDevId() {
|
|
||||||
return devId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDevId(Integer devId) {
|
|
||||||
this.devId = devId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getParamName() {
|
|
||||||
return paramName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setParamName(String paramName) {
|
|
||||||
this.paramName = paramName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getParamType() {
|
|
||||||
return paramType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setParamType(String paramType) {
|
|
||||||
this.paramType = paramType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getParamUnit() {
|
|
||||||
return paramUnit;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setParamUnit(String paramUnit) {
|
|
||||||
this.paramUnit = paramUnit;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getParamValue() {
|
|
||||||
return paramValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setParamValue(String paramValue) {
|
|
||||||
this.paramValue = paramValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getFormType() {
|
|
||||||
return formType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFormType(String formType) {
|
|
||||||
this.formType = formType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getIslandId() {
|
|
||||||
return islandId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setIslandId(Integer islandId) {
|
|
||||||
this.islandId = islandId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getStepOrder() {
|
|
||||||
return stepOrder;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setStepOrder(Integer stepOrder) {
|
|
||||||
this.stepOrder = stepOrder;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getStepName() {
|
|
||||||
return stepName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setStepName(String stepName) {
|
|
||||||
this.stepName = stepName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getStepDesc() {
|
|
||||||
return stepDesc;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setStepDesc(String stepDesc) {
|
|
||||||
this.stepDesc = stepDesc;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.rczn.rcznautoplc.mapper;
|
package com.rczn.rcznautoplc.mapper;
|
||||||
|
|
||||||
import com.rczn.rcznautoplc.domain.DevInfo;
|
import com.rczn.rcznautoplc.domain.DevInfo;
|
||||||
import com.rczn.rcznautoplc.domain.query.DevInfoQuery;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
@@ -24,8 +23,6 @@ public interface DevInfoMapper {
|
|||||||
// 根据ID查询设备(未删除)
|
// 根据ID查询设备(未删除)
|
||||||
DevInfo selectById(@Param("id") Long id);
|
DevInfo selectById(@Param("id") Long id);
|
||||||
|
|
||||||
//根据设备信息,查询设备信息列表
|
|
||||||
List<DevInfo> selectList(DevInfoQuery devInfo);
|
|
||||||
// 分页查询设备(支持多条件过滤)
|
// 分页查询设备(支持多条件过滤)
|
||||||
List<DevInfo> selectPage(DevInfo devInfo);
|
List<DevInfo> selectPage(DevInfo devInfo);
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.rczn.rcznautoplc.mapper;
|
package com.rczn.rcznautoplc.mapper;
|
||||||
|
|
||||||
import com.rczn.rcznautoplc.domain.DevParam;
|
import com.rczn.rcznautoplc.domain.DevParam;
|
||||||
import com.rczn.rcznautoplc.domain.query.DevParamQuery;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
@@ -32,9 +31,5 @@ public interface DevParamMapper {
|
|||||||
/**
|
/**
|
||||||
* 分页查询设备参数(支持条件过滤)
|
* 分页查询设备参数(支持条件过滤)
|
||||||
*/
|
*/
|
||||||
List<DevParam> selectPage(DevParamQuery devParam);
|
List<DevParam> selectPage(DevParam devParam);
|
||||||
|
|
||||||
Boolean addDevId(@Param("devId") Integer devId,@Param("paramId") Integer paramId);
|
|
||||||
|
|
||||||
Boolean delDevId(@Param("devId")Integer devId,@Param("paramId") Integer paramId);
|
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.rczn.rcznautoplc.mapper;
|
package com.rczn.rcznautoplc.mapper;
|
||||||
|
|
||||||
import com.rczn.rcznautoplc.domain.GoodsFlowStatus;
|
import com.rczn.rcznautoplc.domain.GoodsFlowStatus;
|
||||||
import com.rczn.rcznautoplc.domain.query.GoodsFlowStatusQuery;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
@@ -13,5 +12,5 @@ public interface GoodsFlowStatusMapper {
|
|||||||
Boolean update(GoodsFlowStatus goodsFlowStatus);
|
Boolean update(GoodsFlowStatus goodsFlowStatus);
|
||||||
Boolean deleteById(@Param("id") Long id);
|
Boolean deleteById(@Param("id") Long id);
|
||||||
GoodsFlowStatus selectById(@Param("id") Long id);
|
GoodsFlowStatus selectById(@Param("id") Long id);
|
||||||
List<GoodsFlowStatus> selectPage(GoodsFlowStatusQuery goodsFlowStatus);
|
List<GoodsFlowStatus> selectPage(GoodsFlowStatus goodsFlowStatus);
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.rczn.rcznautoplc.mapper;
|
package com.rczn.rcznautoplc.mapper;
|
||||||
|
|
||||||
import com.rczn.rcznautoplc.domain.GoodsInfo;
|
import com.rczn.rcznautoplc.domain.GoodsInfo;
|
||||||
import com.rczn.rcznautoplc.domain.query.GoodsInfoQuery;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
@@ -10,16 +9,8 @@ import java.util.List;
|
|||||||
@Mapper
|
@Mapper
|
||||||
public interface GoodsInfoMapper {
|
public interface GoodsInfoMapper {
|
||||||
Long insert(GoodsInfo goodsInfo);
|
Long insert(GoodsInfo goodsInfo);
|
||||||
|
|
||||||
//批量插入样品数据:
|
|
||||||
// Long batchInsert(List<GoodsInfo> goodsInfoList);
|
|
||||||
Boolean update(GoodsInfo goodsInfo);
|
Boolean update(GoodsInfo goodsInfo);
|
||||||
Boolean deleteById(@Param("id") Long id);
|
Boolean deleteById(@Param("id") Long id);
|
||||||
|
|
||||||
GoodsInfo selectById(@Param("id") Long id);
|
GoodsInfo selectById(@Param("id") Long id);
|
||||||
|
List<GoodsInfo> selectPage(GoodsInfo goodsInfo);
|
||||||
List<GoodsInfo> selectByIdList(@Param("idList") List<Integer> idList);
|
|
||||||
|
|
||||||
GoodsInfo selectByBarCode(@Param("barCode") String barCode);
|
|
||||||
List<GoodsInfo> selectPage(GoodsInfoQuery goodsInfo);
|
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.rczn.rcznautoplc.mapper;
|
package com.rczn.rcznautoplc.mapper;
|
||||||
|
|
||||||
import com.rczn.rcznautoplc.domain.IslandInfo;
|
import com.rczn.rcznautoplc.domain.IslandInfo;
|
||||||
import com.rczn.rcznautoplc.domain.query.IslandInfoQuery;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
@@ -13,10 +12,5 @@ public interface IslandInfoMapper {
|
|||||||
Boolean update(IslandInfo islandInfo);
|
Boolean update(IslandInfo islandInfo);
|
||||||
Boolean deleteById(@Param("id") Long id);
|
Boolean deleteById(@Param("id") Long id);
|
||||||
IslandInfo selectById(@Param("id") Long id);
|
IslandInfo selectById(@Param("id") Long id);
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询功能岛信息List
|
|
||||||
*/
|
|
||||||
List<IslandInfo> selectList(IslandInfoQuery islandInfoQuery);
|
|
||||||
List<IslandInfo> selectPage(IslandInfo islandInfo);
|
List<IslandInfo> selectPage(IslandInfo islandInfo);
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.rczn.rcznautoplc.mapper;
|
package com.rczn.rcznautoplc.mapper;
|
||||||
|
|
||||||
import com.rczn.rcznautoplc.domain.StepInfo;
|
import com.rczn.rcznautoplc.domain.StepInfo;
|
||||||
import com.rczn.rcznautoplc.domain.query.StepInfoQuery;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
@@ -12,13 +11,6 @@ public interface StepInfoMapper {
|
|||||||
Long insert(StepInfo stepInfo);
|
Long insert(StepInfo stepInfo);
|
||||||
Boolean update(StepInfo stepInfo);
|
Boolean update(StepInfo stepInfo);
|
||||||
Boolean deleteById(@Param("id") Long id);
|
Boolean deleteById(@Param("id") Long id);
|
||||||
|
|
||||||
Long deleteBatchByIds(List<Long> ids);
|
|
||||||
StepInfo selectById(@Param("id") Long id);
|
StepInfo selectById(@Param("id") Long id);
|
||||||
List<StepInfo> selectList(StepInfo stepInfo);
|
List<StepInfo> selectPage(StepInfo stepInfo);
|
||||||
List<StepInfo> selectPage(StepInfoQuery stepInfo);
|
|
||||||
|
|
||||||
Long insertBatch(List<StepInfo> stepInfoList);
|
|
||||||
|
|
||||||
Long updateBatch(List<StepInfo> stepInfoList);
|
|
||||||
}
|
}
|
||||||
@@ -2,7 +2,6 @@ package com.rczn.rcznautoplc.service;
|
|||||||
|
|
||||||
import com.rczn.rcznautoplc.domain.DevInfo;
|
import com.rczn.rcznautoplc.domain.DevInfo;
|
||||||
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.PageInfo;
|
||||||
import com.rczn.rcznautoplc.domain.query.DevInfoQuery;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -22,15 +21,6 @@ public interface DevInfoService {
|
|||||||
// 根据ID查询设备
|
// 根据ID查询设备
|
||||||
DevInfo getDevInfoById(Long id);
|
DevInfo getDevInfoById(Long id);
|
||||||
|
|
||||||
//根据设备信息查询设备列表数据
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Retrieves a list of device information based on the provided query parameters.
|
|
||||||
*
|
|
||||||
* @param devInfo The query parameters used to filter device information
|
|
||||||
* @return List<DevInfo> A list of device information objects that match the query criteria
|
|
||||||
*/
|
|
||||||
List<DevInfo> getDevInfoList(DevInfoQuery devInfo);
|
|
||||||
// 分页查询设备
|
// 分页查询设备
|
||||||
PageInfo<DevInfo> getDevInfoPage(DevInfo devInfo, Integer pageNum, Integer pageSize);
|
PageInfo<DevInfo> getDevInfoPage(DevInfo devInfo, Integer pageNum, Integer pageSize);
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package com.rczn.rcznautoplc.service;
|
|||||||
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.PageInfo;
|
||||||
import com.rczn.domain.PageBean;
|
import com.rczn.domain.PageBean;
|
||||||
import com.rczn.rcznautoplc.domain.DevParam;
|
import com.rczn.rcznautoplc.domain.DevParam;
|
||||||
import com.rczn.rcznautoplc.domain.query.DevParamQuery;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -11,9 +10,9 @@ public interface DevParamService {
|
|||||||
/**
|
/**
|
||||||
* 分页查询
|
* 分页查询
|
||||||
*/
|
*/
|
||||||
PageInfo<DevParam> selectPage(Integer pageNum, Integer pageSize, Integer devId,String paramTypeData, String paramName, String paramValue);
|
PageInfo<DevParam> selectPage(Integer pageNum, Integer pageSize, Integer devId, String paramName, String paramValue);
|
||||||
|
|
||||||
List<DevParam> selectList(DevParamQuery queryParam);
|
List<DevParam> selectList(Integer devId, String paramName, String paramValue);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据ID查询
|
* 根据ID查询
|
||||||
@@ -30,16 +29,6 @@ public interface DevParamService {
|
|||||||
*/
|
*/
|
||||||
Boolean update(DevParam devParam);
|
Boolean update(DevParam devParam);
|
||||||
|
|
||||||
/**
|
|
||||||
* 为参数增加devId值
|
|
||||||
*/
|
|
||||||
Boolean addDevId(Integer devId, Integer paramId);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据paramId,减少devIds中的devId
|
|
||||||
*/
|
|
||||||
Boolean reduceDevId(Integer devId, Integer paramId);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 逻辑删除
|
* 逻辑删除
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -3,13 +3,9 @@ package com.rczn.rcznautoplc.service;
|
|||||||
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.PageInfo;
|
||||||
import com.rczn.domain.PageBean;
|
import com.rczn.domain.PageBean;
|
||||||
import com.rczn.rcznautoplc.domain.GoodsFlowStatus;
|
import com.rczn.rcznautoplc.domain.GoodsFlowStatus;
|
||||||
import com.rczn.rcznautoplc.domain.query.GoodsFlowStatusQuery;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public interface GoodsFlowStatusService {
|
public interface GoodsFlowStatusService {
|
||||||
PageInfo<GoodsFlowStatus> selectPage(Integer pageNum, Integer pageSize, GoodsFlowStatusQuery goodsFlowStatus);
|
PageInfo<GoodsFlowStatus> selectPage(Integer pageNum, Integer pageSize, Integer goodsId, Integer flowId, Integer islandId, Integer status);
|
||||||
List<GoodsFlowStatus> selectList( GoodsFlowStatusQuery goodsFlowStatus);
|
|
||||||
GoodsFlowStatus selectById(Long id);
|
GoodsFlowStatus selectById(Long id);
|
||||||
Long insert(GoodsFlowStatus goodsFlowStatus);
|
Long insert(GoodsFlowStatus goodsFlowStatus);
|
||||||
Boolean update(GoodsFlowStatus goodsFlowStatus);
|
Boolean update(GoodsFlowStatus goodsFlowStatus);
|
||||||
|
|||||||
@@ -1,42 +1,25 @@
|
|||||||
package com.rczn.rcznautoplc.service;
|
package com.rczn.rcznautoplc.service;
|
||||||
|
|
||||||
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.PageInfo;
|
||||||
|
import com.rczn.domain.PageBean;
|
||||||
import com.rczn.rcznautoplc.domain.GoodsInfo;
|
import com.rczn.rcznautoplc.domain.GoodsInfo;
|
||||||
import com.rczn.rcznautoplc.domain.query.GoodsInfoQuery;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public interface GoodsInfoService {
|
public interface GoodsInfoService {
|
||||||
/**
|
/**
|
||||||
* 分页查询货物信息
|
* 分页查询货物信息
|
||||||
*/
|
*/
|
||||||
PageInfo<GoodsInfo> selectPage(Integer pageNum, Integer pageSize, GoodsInfoQuery goodsInfo);
|
PageInfo<GoodsInfo> selectPage(Integer pageNum, Integer pageSize, String goodsName, String goodsType, String goodFrom, Integer goodBatch);
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询样品信息List
|
|
||||||
*/
|
|
||||||
List<GoodsInfo> selectList(GoodsInfoQuery goodsInfo);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据ID查询货物信息
|
* 根据ID查询货物信息
|
||||||
*/
|
*/
|
||||||
GoodsInfo selectById(Long id);
|
GoodsInfo selectById(Long id);
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据ID列表查询货物列表信息
|
|
||||||
*/
|
|
||||||
List<GoodsInfo> selectByIdList(List<Integer> ids);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增货物信息
|
* 新增货物信息
|
||||||
*/
|
*/
|
||||||
Long insert(GoodsInfo goodsInfo);
|
Long insert(GoodsInfo goodsInfo);
|
||||||
|
|
||||||
/**
|
|
||||||
* 扫码新增货物信息
|
|
||||||
*/
|
|
||||||
GoodsInfo insertByScan(GoodsInfo goodsInfo);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改货物信息
|
* 修改货物信息
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -2,22 +2,11 @@ package com.rczn.rcznautoplc.service;
|
|||||||
|
|
||||||
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.PageInfo;
|
||||||
import com.rczn.domain.PageBean;
|
import com.rczn.domain.PageBean;
|
||||||
import com.rczn.rcznautoplc.domain.GoodsInfo;
|
|
||||||
import com.rczn.rcznautoplc.domain.IslandInfo;
|
import com.rczn.rcznautoplc.domain.IslandInfo;
|
||||||
import com.rczn.rcznautoplc.domain.query.GoodsInfoQuery;
|
|
||||||
import com.rczn.rcznautoplc.domain.query.IslandInfoQuery;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public interface IslandInfoService {
|
public interface IslandInfoService {
|
||||||
PageInfo<IslandInfo> selectPage(Integer pageNum, Integer pageSize, String islandName, String islandCode);
|
PageInfo<IslandInfo> selectPage(Integer pageNum, Integer pageSize, String islandName, String islandCode);
|
||||||
IslandInfo selectById(Long id);
|
IslandInfo selectById(Long id);
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询功能岛信息List
|
|
||||||
*/
|
|
||||||
List<IslandInfo> selectList(IslandInfoQuery islandInfoQuery);
|
|
||||||
|
|
||||||
Long insert(IslandInfo islandInfo);
|
Long insert(IslandInfo islandInfo);
|
||||||
Boolean update(IslandInfo islandInfo);
|
Boolean update(IslandInfo islandInfo);
|
||||||
Boolean deleteById(Long id);
|
Boolean deleteById(Long id);
|
||||||
|
|||||||
@@ -1,125 +0,0 @@
|
|||||||
package com.rczn.rcznautoplc.service;
|
|
||||||
|
|
||||||
import com.github.s7connector.api.S7Connector;
|
|
||||||
import com.rczn.rcznautoplc.domain.ModbusConnectObj;
|
|
||||||
import com.rczn.rcznautoplc.domain.PlcConnectObj;
|
|
||||||
import com.rczn.rcznautoplc.domain.StepInfo;
|
|
||||||
import com.rczn.rcznautoplc.utils.PlcConnectMap;
|
|
||||||
import com.serotonin.modbus4j.ModbusMaster;
|
|
||||||
import com.serotonin.modbus4j.exception.ModbusInitException;
|
|
||||||
import com.serotonin.modbus4j.exception.ModbusTransportException;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
public interface PlcService {
|
|
||||||
/**
|
|
||||||
* 连接plc设备
|
|
||||||
* @param connectObj-
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
PlcConnectObj connect(PlcConnectObj connectObj);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 连接modbus设备
|
|
||||||
* @param connectObj-
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
ModbusMaster connectModbus(ModbusConnectObj connectObj) throws ModbusInitException, ModbusTransportException;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 启动plc设备
|
|
||||||
* @param ipAddr-
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
Boolean startPlc(String ipAddr);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* plc设备暂停运行
|
|
||||||
* @param ipAddr-
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
Boolean pausePlc(String ipAddr);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* plc设备故障复位
|
|
||||||
* @param ipAddr-
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
Boolean resetErrorPlc(String ipAddr);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据ip地址获取plc设备状态值
|
|
||||||
* 0-未连接,1-连接,11-执行,12-暂停,19暂停,20-故障复位
|
|
||||||
* @param ipAddr
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
Integer getPlcStatus(String ipAddr);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据ip地址设置plc设备模式
|
|
||||||
* 0-手动,1-自动
|
|
||||||
* @param ipAddr
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
Boolean setPlcModel(String ipAddr,Integer modelValue);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据ip地址获取plc设备模式值
|
|
||||||
* 0-手动,1-自动
|
|
||||||
* @param ipAddr
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
Integer getPlcModel(String ipAddr);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据ip地址获取modbus连接设备
|
|
||||||
*
|
|
||||||
* @param ipAddr
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public ModbusMaster getModbusConnect(String ipAddr);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据ip地址获取plc设备
|
|
||||||
* @param ipAddr
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
S7Connector getPlc(String ipAddr);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取全部plc连接对象
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
Map<String,S7Connector> plcALlMap();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取全部plc连接对象
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public Map<String, ModbusMaster> modbusALlMap();
|
|
||||||
/**
|
|
||||||
* 执行plc动作
|
|
||||||
* @param ipAddr
|
|
||||||
* @param action
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
Boolean doAction(String ipAddr,String action);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 停止plc运行:
|
|
||||||
* @param ipAddr
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
Boolean stopPlc(String ipAddr);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 执行sop信息
|
|
||||||
* @param sopId
|
|
||||||
* @param barCodeList
|
|
||||||
* @param stepInfoList
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
Boolean runSopInfoForGoodsList(String plcIp, Integer sopId, List<String> barCodeList,List<StepInfo> stepInfoList);
|
|
||||||
}
|
|
||||||
@@ -2,32 +2,14 @@ package com.rczn.rcznautoplc.service;
|
|||||||
|
|
||||||
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.PageInfo;
|
||||||
import com.rczn.rcznautoplc.domain.StepInfo;
|
import com.rczn.rcznautoplc.domain.StepInfo;
|
||||||
import com.rczn.rcznautoplc.domain.query.StepInfoQuery;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public interface StepInfoService {
|
public interface StepInfoService {
|
||||||
PageInfo<StepInfo> selectPage(Integer pageNum, Integer pageSize, StepInfoQuery stepInfo);
|
PageInfo<StepInfo> selectPage(Integer pageNum, Integer pageSize, Integer islandId, String stepName);
|
||||||
List<StepInfo> selectList( StepInfoQuery stepInfo);
|
List<StepInfo> selectList( Integer islandId, String stepName);
|
||||||
StepInfo selectById(Long id);
|
StepInfo selectById(Long id);
|
||||||
Long insert(StepInfo stepInfo);
|
Long insert(StepInfo stepInfo);
|
||||||
|
|
||||||
Long insertBatch(List<StepInfo> stepInfoList);
|
|
||||||
Boolean update(StepInfo stepInfo);
|
Boolean update(StepInfo stepInfo);
|
||||||
|
|
||||||
/**
|
|
||||||
* 批量更新
|
|
||||||
* @param stepInfoList
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
Long updateBatch(List<StepInfo> stepInfoList);
|
|
||||||
Boolean deleteById(Long id);
|
Boolean deleteById(Long id);
|
||||||
|
|
||||||
/**
|
|
||||||
* 批量删除
|
|
||||||
* @param ids
|
|
||||||
* @return
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
|
||||||
Long deleteBatchByIds(List<Long> ids);
|
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.rczn.rcznautoplc.service.impl;
|
package com.rczn.rcznautoplc.service.impl;
|
||||||
|
|
||||||
import com.rczn.rcznautoplc.domain.DevInfo;
|
import com.rczn.rcznautoplc.domain.DevInfo;
|
||||||
import com.rczn.rcznautoplc.domain.query.DevInfoQuery;
|
|
||||||
import com.rczn.rcznautoplc.mapper.DevInfoMapper;
|
import com.rczn.rcznautoplc.mapper.DevInfoMapper;
|
||||||
import com.rczn.rcznautoplc.service.DevInfoService;
|
import com.rczn.rcznautoplc.service.DevInfoService;
|
||||||
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageHelper;
|
||||||
@@ -30,18 +29,6 @@ public class DevInfoServiceImpl implements DevInfoService {
|
|||||||
if (devInfo.getCreateTime() == null) {
|
if (devInfo.getCreateTime() == null) {
|
||||||
devInfo.setCreateTime(java.time.LocalDateTime.now());
|
devInfo.setCreateTime(java.time.LocalDateTime.now());
|
||||||
}
|
}
|
||||||
//判断设备是否是PLC,PLC设备只有一个主PLC:company-主站
|
|
||||||
if(devInfo.getDevModel().equals("PLC")&&devInfo.getCompany().equals("主站")){
|
|
||||||
//查询出devModel为PLC,company为“主站”的设备
|
|
||||||
DevInfoQuery devInfo1 = new DevInfoQuery();
|
|
||||||
devInfo1.setDevModel("PLC");
|
|
||||||
devInfo1.setCompany("主站");
|
|
||||||
List<DevInfo> devInfoList = devInfoMapper.selectList(devInfo1);
|
|
||||||
if(devInfoList.size()>0){
|
|
||||||
//如果存在,报错抛出异常
|
|
||||||
throw new RuntimeException("主站PLC设备只能有一个");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 调用Mapper新增
|
// 调用Mapper新增
|
||||||
return devInfoMapper.insert(devInfo) > 0;
|
return devInfoMapper.insert(devInfo) > 0;
|
||||||
}
|
}
|
||||||
@@ -64,25 +51,6 @@ public class DevInfoServiceImpl implements DevInfoService {
|
|||||||
if (devInfo.getUpdateTime() == null) {
|
if (devInfo.getUpdateTime() == null) {
|
||||||
devInfo.setUpdateTime(java.time.LocalDateTime.now());
|
devInfo.setUpdateTime(java.time.LocalDateTime.now());
|
||||||
}
|
}
|
||||||
|
|
||||||
//判断设备是否是PLC,PLC设备只有一个主PLC:company-主站
|
|
||||||
if(devInfo.getDevModel().equals("PLC")&&devInfo.getCompany().equals("主站")){
|
|
||||||
//查询出devModel为PLC,company为“主站”的设备
|
|
||||||
DevInfoQuery devInfo1 = new DevInfoQuery();
|
|
||||||
devInfo1.setDevModel("PLC");
|
|
||||||
devInfo1.setCompany("主站");
|
|
||||||
List<DevInfo> devInfoList = devInfoMapper.selectList(devInfo1);
|
|
||||||
if(devInfoList.size()>0){
|
|
||||||
for (DevInfo devInfo2 : devInfoList)
|
|
||||||
if(devInfo2.getId().equals(devInfo.getId()))
|
|
||||||
continue;
|
|
||||||
else {
|
|
||||||
//如果存在,报错抛出异常
|
|
||||||
throw new RuntimeException("主站PLC设备只能有一个");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 调用Mapper更新
|
// 调用Mapper更新
|
||||||
return devInfoMapper.updateById(devInfo) > 0;
|
return devInfoMapper.updateById(devInfo) > 0;
|
||||||
}
|
}
|
||||||
@@ -93,11 +61,6 @@ public class DevInfoServiceImpl implements DevInfoService {
|
|||||||
return devInfoMapper.selectById(id);
|
return devInfoMapper.selectById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<DevInfo> getDevInfoList(DevInfoQuery devInfo) {
|
|
||||||
return devInfoMapper.selectList(devInfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageInfo<DevInfo> getDevInfoPage(DevInfo devInfo, Integer pageNum, Integer pageSize) {
|
public PageInfo<DevInfo> getDevInfoPage(DevInfo devInfo, Integer pageNum, Integer pageSize) {
|
||||||
// 分页参数默认值
|
// 分页参数默认值
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import com.github.pagehelper.PageHelper;
|
|||||||
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.PageInfo;
|
||||||
import com.rczn.domain.PageBean;
|
import com.rczn.domain.PageBean;
|
||||||
import com.rczn.rcznautoplc.domain.DevParam;
|
import com.rczn.rcznautoplc.domain.DevParam;
|
||||||
import com.rczn.rcznautoplc.domain.query.DevParamQuery;
|
|
||||||
import com.rczn.rcznautoplc.mapper.DevParamMapper;
|
import com.rczn.rcznautoplc.mapper.DevParamMapper;
|
||||||
import com.rczn.rcznautoplc.service.DevParamService;
|
import com.rczn.rcznautoplc.service.DevParamService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -19,13 +18,12 @@ public class DevParamServiceImpl implements DevParamService {
|
|||||||
DevParamMapper devParamMapper;
|
DevParamMapper devParamMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageInfo<DevParam> selectPage(Integer pageNum, Integer pageSize, Integer devId, String paramTypeData, String paramName, String paramValue) {
|
public PageInfo<DevParam> selectPage(Integer pageNum, Integer pageSize, Integer devId, String paramName, String paramValue) {
|
||||||
// 1. 开启分页
|
// 1. 开启分页
|
||||||
PageHelper.startPage(pageNum, pageSize);
|
PageHelper.startPage(pageNum, pageSize);
|
||||||
// 2. 构建查询条件
|
// 2. 构建查询条件
|
||||||
DevParamQuery queryParam = new DevParamQuery();
|
DevParam queryParam = new DevParam();
|
||||||
queryParam.setDevId(devId);
|
queryParam.setDevId(devId);
|
||||||
queryParam.setParamTypeData(paramTypeData);
|
|
||||||
queryParam.setParamName(paramName);
|
queryParam.setParamName(paramName);
|
||||||
queryParam.setParamValue(paramValue);
|
queryParam.setParamValue(paramValue);
|
||||||
// 3. 执行查询
|
// 3. 执行查询
|
||||||
@@ -42,7 +40,12 @@ public class DevParamServiceImpl implements DevParamService {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<DevParam> selectList(DevParamQuery queryParam) {
|
public List<DevParam> selectList(Integer devId, String paramName, String paramValue) {
|
||||||
|
// 1. 构建查询条件
|
||||||
|
DevParam queryParam = new DevParam();
|
||||||
|
queryParam.setDevId(devId);
|
||||||
|
queryParam.setParamName(paramName);
|
||||||
|
queryParam.setParamValue(paramValue);
|
||||||
// 3. 执行查询
|
// 3. 执行查询
|
||||||
List<DevParam> list = devParamMapper.selectPage(queryParam);
|
List<DevParam> list = devParamMapper.selectPage(queryParam);
|
||||||
return list;
|
return list;
|
||||||
@@ -58,8 +61,8 @@ public class DevParamServiceImpl implements DevParamService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long insert(DevParam devParam) {
|
public Long insert(DevParam devParam) {
|
||||||
if (devParam.getDevIds() == null) {
|
if (devParam.getDevId() == null) {
|
||||||
devParam.setDevIds(";");
|
throw new IllegalArgumentException("设备ID不能为空");
|
||||||
}
|
}
|
||||||
if (devParam.getParamName() == null || devParam.getParamName().isEmpty()) {
|
if (devParam.getParamName() == null || devParam.getParamName().isEmpty()) {
|
||||||
throw new IllegalArgumentException("参数名称不能为空");
|
throw new IllegalArgumentException("参数名称不能为空");
|
||||||
@@ -75,28 +78,6 @@ public class DevParamServiceImpl implements DevParamService {
|
|||||||
return devParamMapper.update(devParam);
|
return devParamMapper.update(devParam);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 为参数增加devId值
|
|
||||||
*
|
|
||||||
* @param devId
|
|
||||||
* @param paramId
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public Boolean addDevId(Integer devId, Integer paramId) {
|
|
||||||
return devParamMapper.addDevId(devId, paramId);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据paramId,减少devIds中的devId
|
|
||||||
*
|
|
||||||
* @param devId
|
|
||||||
* @param paramId
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public Boolean reduceDevId(Integer devId, Integer paramId) {
|
|
||||||
return devParamMapper.delDevId(devId, paramId);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean deleteById(Long id) {
|
public Boolean deleteById(Long id) {
|
||||||
if (id == null) {
|
if (id == null) {
|
||||||
|
|||||||
@@ -56,8 +56,10 @@ public class FlowInfoServiceImpl implements FlowInfoService {
|
|||||||
if (flowInfo.getFlowName() == null || flowInfo.getFlowName().isEmpty()) {
|
if (flowInfo.getFlowName() == null || flowInfo.getFlowName().isEmpty()) {
|
||||||
throw new IllegalArgumentException("流程名称不能为空");
|
throw new IllegalArgumentException("流程名称不能为空");
|
||||||
}
|
}
|
||||||
Long result = flowInfoMapper.insert(flowInfo);
|
if (flowInfo.getFlowIndex() == null) {
|
||||||
return flowInfo.getId();
|
throw new IllegalArgumentException("流程排序不能为空");
|
||||||
|
}
|
||||||
|
return flowInfoMapper.insert(flowInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user