Commit 14a4dd7f6dd263ae031f48e5aeff18ad6aa2b3f6

Authored by pengcheng
2 parents 3ac7e318 6e4eb5c9

Merge remote-tracking branch 'origin/Masada' into develop

# Conflicts:
#	src/main/java/com/huaheng/pc/config/location/mapper/LocationMapper.java
#	src/main/java/com/huaheng/pc/config/warehouse/mapper/WarehouseMapper.java
#	src/main/java/com/huaheng/pc/receipt/receiptDetail/service/ReceiptDetailServiceImpl.java
#	src/main/java/com/huaheng/pc/shipment/shipmentDetail/mapper/ShipmentDetailMapper.java
#	src/main/java/com/huaheng/pc/shipment/shipmentDetail/service/ShipmentDetailService.java
#	src/main/java/com/huaheng/pc/shipment/shipmentDetail/service/ShipmentDetailServiceImpl.java
#	src/main/resources/mybatis/config/WarehouseMapper.xml
#	src/main/resources/mybatis/shipment/ShipmentDetailMapper.xml
#	src/main/resources/templates/config/carrier/carrier.html
#	src/main/resources/templates/config/company/company.html
#	src/main/resources/templates/config/configValue/configValue.html
#	src/main/resources/templates/config/customer/customer.html
#	src/main/resources/templates/config/statusFlowHeader/statusFlowHeader.html
#	src/main/resources/templates/config/supplier/supplier.html
#	src/main/resources/templates/system/config/config.html
Showing 153 changed files with 5456 additions and 602 deletions

Too many changes to show.

To preserve performance only 60 of 153 files are displayed.

.idea/workspace.xml
1 1 <?xml version="1.0" encoding="UTF-8"?>
2 2 <project version="4">
3 3 <component name="ChangeListManager">
4   - <list default="true" id="baeae966-16bb-4f97-a411-22fe5a65cefd" name="Default Changelist" comment="">
  4 + <list default="true" id="29079676-ace5-434e-89a2-76a325e744a5" name="Default Changelist" comment="d多种格式导出">
5 5 <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
6   - <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkingRegister/controller/CheckingRegisterController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkingRegister/controller/CheckingRegisterController.java" afterDir="false" />
7   - <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkingRegister/service/CheckingRegisterService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkingRegister/service/CheckingRegisterService.java" afterDir="false" />
8   - <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/statusFlow/controller/StatusFlowHeaderController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/statusFlow/controller/StatusFlowHeaderController.java" afterDir="false" />
9   - <change beforePath="$PROJECT_DIR$/src/main/resources/templates/config/filterConfigHeader/add.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/config/filterConfigHeader/add.html" afterDir="false" />
10   - <change beforePath="$PROJECT_DIR$/src/main/resources/templates/config/receiptType/add.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/config/receiptType/add.html" afterDir="false" />
11   - <change beforePath="$PROJECT_DIR$/src/main/resources/templates/config/statusFlowHeader/add.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/config/statusFlowHeader/add.html" afterDir="false" />
12   - <change beforePath="$PROJECT_DIR$/src/main/resources/templates/config/statusFlowHeader/statusFlowHeader.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/config/statusFlowHeader/statusFlowHeader.html" afterDir="false" />
13   - <change beforePath="$PROJECT_DIR$/src/main/resources/templates/receipt/receiptHeader/receiptHeader.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/receipt/receiptHeader/receiptHeader.html" afterDir="false" />
  6 + <change beforePath="$PROJECT_DIR$/mypage" beforeDir="false" />
  7 + <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/jasper/JasperController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/jasper/JasperController.java" afterDir="false" />
  8 + <change beforePath="$PROJECT_DIR$/src/main/resources/templates/config/shipmentType/edit.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/config/shipmentType/edit.html" afterDir="false" />
  9 + <change beforePath="$PROJECT_DIR$/src/main/resources/templates/shipment/shipmentContainerHeader/shipmentContainerHeader.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/shipment/shipmentContainerHeader/shipmentContainerHeader.html" afterDir="false" />
14 10 </list>
  11 + <ignored path="$PROJECT_DIR$/target/" />
15 12 <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
16 13 <option name="SHOW_DIALOG" value="false" />
17 14 <option name="HIGHLIGHT_CONFLICTS" value="true" />
... ... @@ -32,22 +29,396 @@
32 29 <expand />
33 30 <select />
34 31 </component>
  32 + <component name="FileEditorManager">
  33 + <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
  34 + <file pinned="false" current-in-tab="false">
  35 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/controller/ShipmentContainerHeaderController.java">
  36 + <provider selected="true" editor-type-id="text-editor">
  37 + <state relative-caret-position="300">
  38 + <caret line="36" column="13" selection-start-line="36" selection-start-column="13" selection-end-line="36" selection-end-column="13" />
  39 + </state>
  40 + </provider>
  41 + </entry>
  42 + </file>
  43 + <file pinned="false" current-in-tab="false">
  44 + <entry file="file://$PROJECT_DIR$/src/main/resources/templates/shipment/shipmentContainerHeader/shipmentContainerHeader.html">
  45 + <provider selected="true" editor-type-id="text-editor">
  46 + <state relative-caret-position="100">
  47 + <caret line="16" column="72" selection-start-line="16" selection-start-column="72" selection-end-line="16" selection-end-column="72" />
  48 + </state>
  49 + </provider>
  50 + </entry>
  51 + </file>
  52 + <file pinned="false" current-in-tab="true">
  53 + <entry file="file://$PROJECT_DIR$/src/main/resources/templates/config/shipmentType/edit.html">
  54 + <provider selected="true" editor-type-id="text-editor">
  55 + <state relative-caret-position="118">
  56 + <caret line="63" column="37" lean-forward="true" selection-start-line="63" selection-start-column="37" selection-end-line="63" selection-end-column="37" />
  57 + </state>
  58 + </provider>
  59 + </entry>
  60 + </file>
  61 + <file pinned="false" current-in-tab="false">
  62 + <entry file="file://$PROJECT_DIR$/src/main/resources/templates/config/shipmentType/add.html">
  63 + <provider selected="true" editor-type-id="text-editor">
  64 + <state relative-caret-position="1200">
  65 + <caret line="48" column="144" selection-start-line="48" selection-start-column="130" selection-end-line="48" selection-end-column="144" />
  66 + </state>
  67 + </provider>
  68 + </entry>
  69 + </file>
  70 + <file pinned="false" current-in-tab="false">
  71 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/statusFlow/service/StatusFlowHeaderService.java">
  72 + <provider selected="true" editor-type-id="text-editor">
  73 + <state relative-caret-position="325">
  74 + <caret line="25" column="63" selection-start-line="25" selection-start-column="53" selection-end-line="25" selection-end-column="63" />
  75 + </state>
  76 + </provider>
  77 + </entry>
  78 + </file>
  79 + <file pinned="false" current-in-tab="false">
  80 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/shipmentType/controller/shipmentTypeController.java">
  81 + <provider selected="true" editor-type-id="text-editor">
  82 + <state relative-caret-position="2175">
  83 + <caret line="118" column="19" selection-start-line="118" selection-start-column="19" selection-end-line="118" selection-end-column="19" />
  84 + </state>
  85 + </provider>
  86 + </entry>
  87 + </file>
  88 + </leaf>
  89 + </component>
35 90 <component name="FileTemplateManagerImpl">
36 91 <option name="RECENT_TEMPLATES">
37 92 <list>
38 93 <option value="Interface" />
39   - <option value="Class" />
40   - <option value="Enum" />
41 94 <option value="HTML File" />
  95 + <option value="Enum" />
  96 + <option value="Class" />
42 97 </list>
43 98 </option>
44 99 </component>
  100 + <component name="FindInProjectRecents">
  101 + <findStrings>
  102 + <find>20</find>
  103 + <find>30</find>
  104 + <find>3</find>
  105 + <find>40</find>
  106 + <find>50</find>
  107 + <find>0</find>
  108 + <find>1</find>
  109 + <find>5</find>
  110 + <find>10</find>
  111 + <find>runToPdfStream</find>
  112 + <find>\\</find>
  113 + </findStrings>
  114 + <replaceStrings>
  115 + <replace>/</replace>
  116 + </replaceStrings>
  117 + <dirStrings>
  118 + <dir>C:\Users\Administrator\IdeaProjects\wms2\src\main\resources\static\img\icon</dir>
  119 + </dirStrings>
  120 + </component>
45 121 <component name="Git.Settings">
46 122 <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
  123 + <option name="RECENT_BRANCH_BY_REPOSITORY">
  124 + <map>
  125 + <entry key="$PROJECT_DIR$" value="develop" />
  126 + </map>
  127 + </option>
  128 + <option name="PUSH_TAGS">
  129 + <GitPushTagMode />
  130 + </option>
  131 + </component>
  132 + <component name="IdeDocumentHistory">
  133 + <option name="CHANGED_PATHS">
  134 + <list>
  135 + <option value="$PROJECT_DIR$/src/main/resources/templates/config/materialType/add.html" />
  136 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/FilterConfigDetail/service/FilterConfigDetailService.java" />
  137 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/statusFlow/service/StatusFlowHeaderService.java" />
  138 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/materialUnit/controller/MaterialUnitController.java" />
  139 + <option value="$PROJECT_DIR$/src/main/resources/templates/config/materialMultiple/add.html" />
  140 + <option value="$PROJECT_DIR$/src/main/resources/templates/config/materialMultiple/materialMultiple.html" />
  141 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/materialMultiple/controller/MaterialMultipleController.java" />
  142 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/bom/controller/BomHeaderController.java" />
  143 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/excelTemplate/controller/excelTemplateController.java" />
  144 + <option value="$PROJECT_DIR$/src/main/resources/templates/config/company/edit.html" />
  145 + <option value="$PROJECT_DIR$/src/main/resources/templates/config/bomHeader/add.html" />
  146 + <option value="$PROJECT_DIR$/src/main/resources/templates/config/bomHeader/edit.html" />
  147 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/company/service/CompanyServiceImpl.java" />
  148 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/material/controller/MaterialController.java" />
  149 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/api/wcs/service/taskInfo/TaskInfoServiceImpl.java" />
  150 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/controller/TaskHeaderController.java" />
  151 + <option value="$PROJECT_DIR$/src/main/resources/templates/task/taskHeader/taskHeader.html" />
  152 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/api/wcs/domain/WcsTask.java" />
  153 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/api/wcs/service/taskAssignService/TaskAssignServiceImpl.java" />
  154 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/api/wcs/service/taskCancel/TaskCancelServiceImpl.java" />
  155 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/api/wcs/service/taskFinish/TaskFinishServiceImpl.java" />
  156 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java" />
  157 + <option value="$PROJECT_DIR$/src/main/resources/mybatis/config/LocationMapper.xml" />
  158 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/location/mapper/LocationMapper.java" />
  159 + <option value="$PROJECT_DIR$/src/main/resources/templates/inventory/cycleCountHeader/add.html" />
  160 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/framework/jasper/JasperPdfReportView.java" />
  161 + <option value="$PROJECT_DIR$/src/main/resources/fonts/fonts.xml" />
  162 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/report/excelReport/controller/ExcelReportController.java" />
  163 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptDetail/service/ReceiptDetailServiceImpl.java" />
  164 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/framework/jasper/JasperReportConfig.java" />
  165 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/report/jasper/controller/JasperController.java" />
  166 + <option value="$PROJECT_DIR$/src/test/java/com.huaheng.test/ServiceTest.java" />
  167 + <option value="$PROJECT_DIR$/src/main/resources/application-dev.yml" />
  168 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/framework/jasper/JasperReportsPdfView.java" />
  169 + <option value="$PROJECT_DIR$/src/main/resources/application.yml" />
  170 + <option value="$PROJECT_DIR$/src/main/resources/jasperreports_extension.properties" />
  171 + <option value="$PROJECT_DIR$/pom.xml" />
  172 + <option value="$PROJECT_DIR$/src/main/resources/mybatis/inventory/InventoryDetailMapper.xml" />
  173 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailService.java" />
  174 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailServiceImpl.java" />
  175 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/inventory/inventoryDetail/mapper/InventoryDetailMapper.java" />
  176 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/framework/jasper/JasperConfig.java" />
  177 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/jasper/JasperConfig.java" />
  178 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/common/jasper/DocType.java" />
  179 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/common/jasper/DocTypeUtil.java" />
  180 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/common/jasper/JasperUtils.java" />
  181 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/common/jasper/JasperreportUtils.java" />
  182 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/jasper/JasperController.java" />
  183 + <option value="$PROJECT_DIR$/src/main/resources/templates/shipment/shipmentContainerHeader/shipmentContainerHeader.html" />
  184 + <option value="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/shipmentType/controller/shipmentTypeController.java" />
  185 + <option value="$PROJECT_DIR$/src/main/resources/templates/config/shipmentType/edit.html" />
  186 + </list>
  187 + </option>
  188 + </component>
  189 + <component name="MavenImportPreferences">
  190 + <option name="importingSettings">
  191 + <MavenImportingSettings>
  192 + <option name="importAutomatically" value="true" />
  193 + </MavenImportingSettings>
  194 + </option>
  195 + </component>
  196 + <component name="MavenProjectNavigator">
  197 + <treeState>
  198 + <expand>
  199 + <path>
  200 + <item name="" type="16c1761:MavenProjectsStructure$RootNode" />
  201 + <item name="huaheng" type="9519ce18:MavenProjectsStructure$ProjectNode" />
  202 + </path>
  203 + <path>
  204 + <item name="" type="16c1761:MavenProjectsStructure$RootNode" />
  205 + <item name="huaheng" type="9519ce18:MavenProjectsStructure$ProjectNode" />
  206 + <item name="Dependencies" type="f4be9f2a:MavenProjectsStructure$DependenciesNode" />
  207 + </path>
  208 + </expand>
  209 + <select />
  210 + </treeState>
  211 + </component>
  212 + <component name="ProjectFrameBounds" extendedState="6">
  213 + <option name="x" value="-10" />
  214 + <option name="y" value="-10" />
  215 + <option name="width" value="1940" />
  216 + <option name="height" value="1050" />
47 217 </component>
48 218 <component name="ProjectId" id="1QOzUtfkdeRmYuw3MIDHXXMLsFH" />
49 219 <component name="ProjectLevelVcsManager">
50 220 <OptionsSetting value="false" id="Update" />
  221 + <ConfirmationsSetting value="2" id="Add" />
  222 + </component>
  223 + <component name="ProjectView">
  224 + <navigator proportions="" version="1">
  225 + <foldersAlwaysOnTop value="true" />
  226 + </navigator>
  227 + <panes>
  228 + <pane id="Scope" />
  229 + <pane id="ProjectPane">
  230 + <subPane>
  231 + <expand>
  232 + <path>
  233 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  234 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  235 + </path>
  236 + <path>
  237 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  238 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  239 + <item name="src" type="462c0819:PsiDirectoryNode" />
  240 + </path>
  241 + <path>
  242 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  243 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  244 + <item name="src" type="462c0819:PsiDirectoryNode" />
  245 + <item name="main" type="462c0819:PsiDirectoryNode" />
  246 + </path>
  247 + <path>
  248 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  249 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  250 + <item name="src" type="462c0819:PsiDirectoryNode" />
  251 + <item name="main" type="462c0819:PsiDirectoryNode" />
  252 + <item name="java" type="462c0819:PsiDirectoryNode" />
  253 + </path>
  254 + <path>
  255 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  256 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  257 + <item name="src" type="462c0819:PsiDirectoryNode" />
  258 + <item name="main" type="462c0819:PsiDirectoryNode" />
  259 + <item name="java" type="462c0819:PsiDirectoryNode" />
  260 + <item name="com" type="462c0819:PsiDirectoryNode" />
  261 + </path>
  262 + <path>
  263 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  264 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  265 + <item name="src" type="462c0819:PsiDirectoryNode" />
  266 + <item name="main" type="462c0819:PsiDirectoryNode" />
  267 + <item name="java" type="462c0819:PsiDirectoryNode" />
  268 + <item name="com" type="462c0819:PsiDirectoryNode" />
  269 + <item name="huaheng" type="462c0819:PsiDirectoryNode" />
  270 + </path>
  271 + <path>
  272 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  273 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  274 + <item name="src" type="462c0819:PsiDirectoryNode" />
  275 + <item name="main" type="462c0819:PsiDirectoryNode" />
  276 + <item name="java" type="462c0819:PsiDirectoryNode" />
  277 + <item name="com" type="462c0819:PsiDirectoryNode" />
  278 + <item name="huaheng" type="462c0819:PsiDirectoryNode" />
  279 + <item name="common" type="462c0819:PsiDirectoryNode" />
  280 + </path>
  281 + <path>
  282 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  283 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  284 + <item name="src" type="462c0819:PsiDirectoryNode" />
  285 + <item name="main" type="462c0819:PsiDirectoryNode" />
  286 + <item name="java" type="462c0819:PsiDirectoryNode" />
  287 + <item name="com" type="462c0819:PsiDirectoryNode" />
  288 + <item name="huaheng" type="462c0819:PsiDirectoryNode" />
  289 + <item name="pc" type="462c0819:PsiDirectoryNode" />
  290 + </path>
  291 + <path>
  292 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  293 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  294 + <item name="src" type="462c0819:PsiDirectoryNode" />
  295 + <item name="main" type="462c0819:PsiDirectoryNode" />
  296 + <item name="java" type="462c0819:PsiDirectoryNode" />
  297 + <item name="com" type="462c0819:PsiDirectoryNode" />
  298 + <item name="huaheng" type="462c0819:PsiDirectoryNode" />
  299 + <item name="pc" type="462c0819:PsiDirectoryNode" />
  300 + <item name="config" type="462c0819:PsiDirectoryNode" />
  301 + </path>
  302 + <path>
  303 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  304 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  305 + <item name="src" type="462c0819:PsiDirectoryNode" />
  306 + <item name="main" type="462c0819:PsiDirectoryNode" />
  307 + <item name="java" type="462c0819:PsiDirectoryNode" />
  308 + <item name="com" type="462c0819:PsiDirectoryNode" />
  309 + <item name="huaheng" type="462c0819:PsiDirectoryNode" />
  310 + <item name="pc" type="462c0819:PsiDirectoryNode" />
  311 + <item name="config" type="462c0819:PsiDirectoryNode" />
  312 + <item name="shipmentType" type="462c0819:PsiDirectoryNode" />
  313 + </path>
  314 + <path>
  315 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  316 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  317 + <item name="src" type="462c0819:PsiDirectoryNode" />
  318 + <item name="main" type="462c0819:PsiDirectoryNode" />
  319 + <item name="java" type="462c0819:PsiDirectoryNode" />
  320 + <item name="com" type="462c0819:PsiDirectoryNode" />
  321 + <item name="huaheng" type="462c0819:PsiDirectoryNode" />
  322 + <item name="pc" type="462c0819:PsiDirectoryNode" />
  323 + <item name="config" type="462c0819:PsiDirectoryNode" />
  324 + <item name="shipmentType" type="462c0819:PsiDirectoryNode" />
  325 + <item name="controller" type="462c0819:PsiDirectoryNode" />
  326 + </path>
  327 + <path>
  328 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  329 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  330 + <item name="src" type="462c0819:PsiDirectoryNode" />
  331 + <item name="main" type="462c0819:PsiDirectoryNode" />
  332 + <item name="java" type="462c0819:PsiDirectoryNode" />
  333 + <item name="com" type="462c0819:PsiDirectoryNode" />
  334 + <item name="huaheng" type="462c0819:PsiDirectoryNode" />
  335 + <item name="pc" type="462c0819:PsiDirectoryNode" />
  336 + <item name="shipment" type="462c0819:PsiDirectoryNode" />
  337 + </path>
  338 + <path>
  339 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  340 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  341 + <item name="src" type="462c0819:PsiDirectoryNode" />
  342 + <item name="main" type="462c0819:PsiDirectoryNode" />
  343 + <item name="java" type="462c0819:PsiDirectoryNode" />
  344 + <item name="com" type="462c0819:PsiDirectoryNode" />
  345 + <item name="huaheng" type="462c0819:PsiDirectoryNode" />
  346 + <item name="pc" type="462c0819:PsiDirectoryNode" />
  347 + <item name="shipment" type="462c0819:PsiDirectoryNode" />
  348 + <item name="shipmentContainerHeader" type="462c0819:PsiDirectoryNode" />
  349 + </path>
  350 + <path>
  351 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  352 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  353 + <item name="src" type="462c0819:PsiDirectoryNode" />
  354 + <item name="main" type="462c0819:PsiDirectoryNode" />
  355 + <item name="java" type="462c0819:PsiDirectoryNode" />
  356 + <item name="com" type="462c0819:PsiDirectoryNode" />
  357 + <item name="huaheng" type="462c0819:PsiDirectoryNode" />
  358 + <item name="pc" type="462c0819:PsiDirectoryNode" />
  359 + <item name="shipment" type="462c0819:PsiDirectoryNode" />
  360 + <item name="shipmentContainerHeader" type="462c0819:PsiDirectoryNode" />
  361 + <item name="controller" type="462c0819:PsiDirectoryNode" />
  362 + </path>
  363 + <path>
  364 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  365 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  366 + <item name="src" type="462c0819:PsiDirectoryNode" />
  367 + <item name="main" type="462c0819:PsiDirectoryNode" />
  368 + <item name="resources" type="462c0819:PsiDirectoryNode" />
  369 + </path>
  370 + <path>
  371 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  372 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  373 + <item name="src" type="462c0819:PsiDirectoryNode" />
  374 + <item name="main" type="462c0819:PsiDirectoryNode" />
  375 + <item name="resources" type="462c0819:PsiDirectoryNode" />
  376 + <item name="templates" type="462c0819:PsiDirectoryNode" />
  377 + </path>
  378 + <path>
  379 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  380 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  381 + <item name="src" type="462c0819:PsiDirectoryNode" />
  382 + <item name="main" type="462c0819:PsiDirectoryNode" />
  383 + <item name="resources" type="462c0819:PsiDirectoryNode" />
  384 + <item name="templates" type="462c0819:PsiDirectoryNode" />
  385 + <item name="config" type="462c0819:PsiDirectoryNode" />
  386 + </path>
  387 + <path>
  388 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  389 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  390 + <item name="src" type="462c0819:PsiDirectoryNode" />
  391 + <item name="main" type="462c0819:PsiDirectoryNode" />
  392 + <item name="resources" type="462c0819:PsiDirectoryNode" />
  393 + <item name="templates" type="462c0819:PsiDirectoryNode" />
  394 + <item name="config" type="462c0819:PsiDirectoryNode" />
  395 + <item name="shipmentType" type="462c0819:PsiDirectoryNode" />
  396 + </path>
  397 + <path>
  398 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  399 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  400 + <item name="src" type="462c0819:PsiDirectoryNode" />
  401 + <item name="main" type="462c0819:PsiDirectoryNode" />
  402 + <item name="resources" type="462c0819:PsiDirectoryNode" />
  403 + <item name="templates" type="462c0819:PsiDirectoryNode" />
  404 + <item name="shipment" type="462c0819:PsiDirectoryNode" />
  405 + </path>
  406 + <path>
  407 + <item name="wms2" type="b2602c69:ProjectViewProjectNode" />
  408 + <item name="wms2" type="462c0819:PsiDirectoryNode" />
  409 + <item name="src" type="462c0819:PsiDirectoryNode" />
  410 + <item name="main" type="462c0819:PsiDirectoryNode" />
  411 + <item name="resources" type="462c0819:PsiDirectoryNode" />
  412 + <item name="templates" type="462c0819:PsiDirectoryNode" />
  413 + <item name="shipment" type="462c0819:PsiDirectoryNode" />
  414 + <item name="shipmentContainerHeader" type="462c0819:PsiDirectoryNode" />
  415 + </path>
  416 + </expand>
  417 + <select />
  418 + </subPane>
  419 + </pane>
  420 + <pane id="PackagesPane" />
  421 + </panes>
51 422 </component>
52 423 <component name="PropertiesComponent">
53 424 <property name="ASKED_ADD_EXTERNAL_FILES" value="true" />
... ... @@ -58,15 +429,16 @@
58 429 <property name="RequestMappingsPanelWidth1" value="75" />
59 430 <property name="WebServerToolWindowFactoryState" value="false" />
60 431 <property name="aspect.path.notification.shown" value="true" />
  432 + <property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1574413107783" />
61 433 <property name="full.screen.before.presentation.mode" value="false" />
62   - <property name="last_opened_file_path" value="$PROJECT_DIR$/src/main/resources/static/ajax/libs/bootstrap-table/extensions/editable" />
  434 + <property name="last_opened_file_path" value="$MAVEN_REPOSITORY$/com/font/fonts/1.0.0/fonts-1.0.0.jar!/" />
63 435 <property name="node.js.detected.package.eslint" value="true" />
64 436 <property name="node.js.detected.package.tslint" value="true" />
65 437 <property name="node.js.path.for.package.eslint" value="project" />
66 438 <property name="node.js.path.for.package.tslint" value="project" />
67 439 <property name="node.js.selected.package.eslint" value="(autodetect)" />
68 440 <property name="node.js.selected.package.tslint" value="(autodetect)" />
69   - <property name="project.structure.last.edited" value="Modules" />
  441 + <property name="project.structure.last.edited" value="Libraries" />
70 442 <property name="project.structure.proportion" value="0.15429688" />
71 443 <property name="project.structure.side.proportion" value="0.2" />
72 444 <property name="run.code.analysis.last.selected.profile" value="pProject Default" />
... ... @@ -74,7 +446,18 @@
74 446 </component>
75 447 <component name="RecentsManager">
76 448 <key name="CopyFile.RECENT_KEYS">
77   - <recent name="E:\code\wms2\src\main\resources\static\ajax\libs\bootstrap-table\extensions\editable" />
  449 + <recent name="C:\Users\Administrator\IdeaProjects\wms2\src\main\resources\jaspers" />
  450 + <recent name="C:\Users\Administrator\IdeaProjects\wms2\src\main\resources" />
  451 + <recent name="C:\Users\Administrator\IdeaProjects\wms2\src\main\resources\templates" />
  452 + <recent name="C:\Users\Administrator\IdeaProjects\wms2\src\main\resources\fonts" />
  453 + <recent name="C:\Users\Administrator\IdeaProjects\wms2\src\main\resources\static\js" />
  454 + </key>
  455 + <key name="CopyClassDialog.RECENTS_KEY">
  456 + <recent name="com.huaheng.pc.jasper" />
  457 + </key>
  458 + <key name="MoveFile.RECENT_KEYS">
  459 + <recent name="C:\Users\Administrator\IdeaProjects\wms2\src\main\resources\jaspers" />
  460 + <recent name="C:\Users\Administrator\Desktop" />
78 461 </key>
79 462 </component>
80 463 <component name="RunDashboard">
... ... @@ -93,6 +476,7 @@
93 476 </RuleState>
94 477 </list>
95 478 </option>
  479 + <option name="contentProportion" value="0.15846995" />
96 480 </component>
97 481 <component name="RunManager" selected="Spring Boot.HuaHengApplication">
98 482 <configuration name="ReceiptContainerHeaderServiceImpl" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
... ... @@ -108,6 +492,22 @@
108 492 <option name="Make" enabled="true" />
109 493 </method>
110 494 </configuration>
  495 + <configuration name="ServiceTest.jasper" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
  496 + <module name="wms2" />
  497 + <extension name="coverage">
  498 + <pattern>
  499 + <option name="PATTERN" value="com.huaheng.test.*" />
  500 + <option name="ENABLED" value="true" />
  501 + </pattern>
  502 + </extension>
  503 + <option name="PACKAGE_NAME" value="com.huaheng.test" />
  504 + <option name="MAIN_CLASS_NAME" value="com.huaheng.test.ServiceTest" />
  505 + <option name="METHOD_NAME" value="jasper" />
  506 + <option name="TEST_OBJECT" value="method" />
  507 + <method v="2">
  508 + <option name="Make" enabled="true" />
  509 + </method>
  510 + </configuration>
111 511 <configuration name="ServiceTest.sendSimpleMail" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
112 512 <module name="huaheng" />
113 513 <extension name="coverage">
... ... @@ -124,8 +524,69 @@
124 524 <option name="Make" enabled="true" />
125 525 </method>
126 526 </configuration>
  527 + <configuration name="HuaHengApplication (1)" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" temporary="true" nameIsGenerated="true">
  528 + <module name="wms2" />
  529 + <extension name="coverage">
  530 + <pattern>
  531 + <option name="PATTERN" value="com.huaheng.*" />
  532 + <option name="ENABLED" value="true" />
  533 + </pattern>
  534 + </extension>
  535 + <option name="SPRING_BOOT_MAIN_CLASS" value="com.huaheng.HuaHengApplication" />
  536 + <method v="2">
  537 + <option name="Make" enabled="true" />
  538 + </method>
  539 + </configuration>
127 540 <configuration name="HuaHengApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" temporary="true" nameIsGenerated="true">
128   - <module name="huaheng" />
  541 + <module name="wms2" />
  542 + <extension name="coverage">
  543 + <pattern>
  544 + <option name="PATTERN" value="com.huaheng.*" />
  545 + <option name="ENABLED" value="true" />
  546 + </pattern>
  547 + </extension>
  548 + <option name="SPRING_BOOT_MAIN_CLASS" value="com.huaheng.HuaHengApplication" />
  549 + <option name="ALTERNATIVE_JRE_PATH" />
  550 + <option name="UPDATE_ACTION_UPDATE_POLICY" value="UpdateClassesAndResources" />
  551 + <option name="FRAME_DEACTIVATION_UPDATE_POLICY" value="UpdateClassesAndResources" />
  552 + <method v="2">
  553 + <option name="Make" enabled="true" />
  554 + </method>
  555 + </configuration>
  556 + <configuration name="HuaHengApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" temporary="true" nameIsGenerated="true">
  557 + <module name="wms2" />
  558 + <extension name="coverage">
  559 + <pattern>
  560 + <option name="PATTERN" value="com.huaheng.*" />
  561 + <option name="ENABLED" value="true" />
  562 + </pattern>
  563 + </extension>
  564 + <option name="SPRING_BOOT_MAIN_CLASS" value="com.huaheng.HuaHengApplication" />
  565 + <option name="ALTERNATIVE_JRE_PATH" />
  566 + <option name="UPDATE_ACTION_UPDATE_POLICY" value="UpdateClassesAndResources" />
  567 + <option name="FRAME_DEACTIVATION_UPDATE_POLICY" value="UpdateClassesAndResources" />
  568 + <method v="2">
  569 + <option name="Make" enabled="true" />
  570 + </method>
  571 + </configuration>
  572 + <configuration name="HuaHengApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" temporary="true" nameIsGenerated="true">
  573 + <module name="wms2" />
  574 + <extension name="coverage">
  575 + <pattern>
  576 + <option name="PATTERN" value="com.huaheng.*" />
  577 + <option name="ENABLED" value="true" />
  578 + </pattern>
  579 + </extension>
  580 + <option name="SPRING_BOOT_MAIN_CLASS" value="com.huaheng.HuaHengApplication" />
  581 + <option name="ALTERNATIVE_JRE_PATH" />
  582 + <option name="UPDATE_ACTION_UPDATE_POLICY" value="UpdateClassesAndResources" />
  583 + <option name="FRAME_DEACTIVATION_UPDATE_POLICY" value="UpdateClassesAndResources" />
  584 + <method v="2">
  585 + <option name="Make" enabled="true" />
  586 + </method>
  587 + </configuration>
  588 + <configuration name="HuaHengApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" temporary="true" nameIsGenerated="true">
  589 + <module name="wms2" />
129 590 <extension name="coverage">
130 591 <pattern>
131 592 <option name="PATTERN" value="com.huaheng.*" />
... ... @@ -143,13 +604,17 @@
143 604 <list>
144 605 <item itemvalue="Application.ReceiptContainerHeaderServiceImpl" />
145 606 <item itemvalue="JUnit.ServiceTest.sendSimpleMail" />
  607 + <item itemvalue="JUnit.ServiceTest.jasper" />
  608 + <item itemvalue="Spring Boot.HuaHengApplication (1)" />
146 609 <item itemvalue="Spring Boot.HuaHengApplication" />
147 610 </list>
148 611 <recent_temporary>
149 612 <list>
150 613 <item itemvalue="Spring Boot.HuaHengApplication" />
151   - <item itemvalue="Application.ReceiptContainerHeaderServiceImpl" />
  614 + <item itemvalue="Spring Boot.HuaHengApplication (1)" />
  615 + <item itemvalue="JUnit.ServiceTest.jasper" />
152 616 <item itemvalue="JUnit.ServiceTest.sendSimpleMail" />
  617 + <item itemvalue="Application.ReceiptContainerHeaderServiceImpl" />
153 618 </list>
154 619 </recent_temporary>
155 620 </component>
... ... @@ -179,7 +644,7 @@
179 644 </component>
180 645 <component name="TaskManager">
181 646 <task active="true" id="Default" summary="Default task">
182   - <changelist id="baeae966-16bb-4f97-a411-22fe5a65cefd" name="Default Changelist" comment="" />
  647 + <changelist id="29079676-ace5-434e-89a2-76a325e744a5" name="Default Changelist" comment="添加根据容器编码查找容器的方法&#10;配置规则添加自动添加模块类型&#10;添加是否自动生成临时容器" />
183 648 <created>1567656449978</created>
184 649 <option name="number" value="Default" />
185 650 <option name="presentableId" value="Default" />
... ... @@ -272,104 +737,35 @@
272 737 <workItem from="1569748443357" duration="438000" />
273 738 <workItem from="1569803438585" duration="13789000" />
274 739 <workItem from="1570581146682" duration="9295000" />
275   - </task>
276   - <task id="LOCAL-00001" summary="修改添加物料时使用物料类别生成物料编码">
277   - <created>1567664306836</created>
278   - <option name="number" value="00001" />
279   - <option name="presentableId" value="LOCAL-00001" />
280   - <option name="project" value="LOCAL" />
281   - <updated>1567664306836</updated>
282   - </task>
283   - <task id="LOCAL-00002" summary="修改添加物料时使用物料类别生成物料编码">
284   - <created>1567936901056</created>
285   - <option name="number" value="00002" />
286   - <option name="presentableId" value="LOCAL-00002" />
287   - <option name="project" value="LOCAL" />
288   - <updated>1567936901056</updated>
289   - </task>
290   - <task id="LOCAL-00003" summary="修改质检页面、添加完成质检">
291   - <created>1568025230030</created>
292   - <option name="number" value="00003" />
293   - <option name="presentableId" value="LOCAL-00003" />
294   - <option name="project" value="LOCAL" />
295   - <updated>1568025230030</updated>
296   - </task>
297   - <task id="LOCAL-00004" summary="修改质检页面、添加完成质检">
298   - <created>1568110494128</created>
299   - <option name="number" value="00004" />
300   - <option name="presentableId" value="LOCAL-00004" />
301   - <option name="project" value="LOCAL" />
302   - <updated>1568110494128</updated>
303   - </task>
304   - <task id="LOCAL-00005" summary="修复入库质检请求地址冲突">
305   - <created>1568162392627</created>
306   - <option name="number" value="00005" />
307   - <option name="presentableId" value="LOCAL-00005" />
308   - <option name="project" value="LOCAL" />
309   - <updated>1568162392627</updated>
310   - </task>
311   - <task id="LOCAL-00006" summary="添加入库单打印">
312   - <created>1568174134623</created>
313   - <option name="number" value="00006" />
314   - <option name="presentableId" value="LOCAL-00006" />
315   - <option name="project" value="LOCAL" />
316   - <updated>1568174134623</updated>
317   - </task>
318   - <task id="LOCAL-00007" summary="修改入库单审核移动到入库单头表">
319   - <created>1568186231357</created>
320   - <option name="number" value="00007" />
321   - <option name="presentableId" value="LOCAL-00007" />
322   - <option name="project" value="LOCAL" />
323   - <updated>1568186231357</updated>
324   - </task>
325   - <task id="LOCAL-00008" summary="修改任务完成更新库位的错误">
326   - <created>1568191139437</created>
327   - <option name="number" value="00008" />
328   - <option name="presentableId" value="LOCAL-00008" />
329   - <option name="project" value="LOCAL" />
330   - <updated>1568191139437</updated>
331   - </task>
332   - <task id="LOCAL-00009" summary="修改入库类型自动判断">
333   - <created>1568259182874</created>
334   - <option name="number" value="00009" />
335   - <option name="presentableId" value="LOCAL-00009" />
336   - <option name="project" value="LOCAL" />
337   - <updated>1568259182874</updated>
338   - </task>
339   - <task id="LOCAL-00010" summary="修改入库单页面">
340   - <created>1568281128408</created>
341   - <option name="number" value="00010" />
342   - <option name="presentableId" value="LOCAL-00010" />
343   - <option name="project" value="LOCAL" />
344   - <updated>1568281128408</updated>
345   - </task>
346   - <task id="LOCAL-00011" summary="修改入库单页面,入库单审核,质检页面后台跳转接口">
347   - <created>1568616697584</created>
348   - <option name="number" value="00011" />
349   - <option name="presentableId" value="LOCAL-00011" />
350   - <option name="project" value="LOCAL" />
351   - <updated>1568616697584</updated>
352   - </task>
353   - <task id="LOCAL-00012" summary="修改 入库收货,生成上架任务自动执行定位">
354   - <created>1568692224269</created>
355   - <option name="number" value="00012" />
356   - <option name="presentableId" value="LOCAL-00012" />
357   - <option name="project" value="LOCAL" />
358   - <updated>1568692224269</updated>
359   - </task>
360   - <task id="LOCAL-00013" summary="修复商品管理、物料类别种bug">
361   - <created>1568784920330</created>
362   - <option name="number" value="00013" />
363   - <option name="presentableId" value="LOCAL-00013" />
364   - <option name="project" value="LOCAL" />
365   - <updated>1568784920330</updated>
366   - </task>
367   - <task id="LOCAL-00014" summary="修改入库明细添加加载定位规则的错误">
368   - <created>1568788287608</created>
369   - <option name="number" value="00014" />
370   - <option name="presentableId" value="LOCAL-00014" />
371   - <option name="project" value="LOCAL" />
372   - <updated>1568788287608</updated>
  740 + <workItem from="1571185601359" duration="15893000" />
  741 + <workItem from="1571273749726" duration="10559000" />
  742 + <workItem from="1571358765147" duration="13125000" />
  743 + <workItem from="1571618321321" duration="24837000" />
  744 + <workItem from="1571704409088" duration="5386000" />
  745 + <workItem from="1571791080420" duration="2000" />
  746 + <workItem from="1571791109916" duration="12667000" />
  747 + <workItem from="1571877371520" duration="18025000" />
  748 + <workItem from="1571909533980" duration="1083000" />
  749 + <workItem from="1571963848874" duration="13664000" />
  750 + <workItem from="1572222704814" duration="8052000" />
  751 + <workItem from="1572309302624" duration="19352000" />
  752 + <workItem from="1572396103535" duration="16947000" />
  753 + <workItem from="1572481930051" duration="8552000" />
  754 + <workItem from="1572493319144" duration="8880000" />
  755 + <workItem from="1572568169800" duration="13626000" />
  756 + <workItem from="1572827775923" duration="16176000" />
  757 + <workItem from="1572913575221" duration="1583000" />
  758 + <workItem from="1573605927642" duration="3763000" />
  759 + <workItem from="1573692874284" duration="4508000" />
  760 + <workItem from="1573777839143" duration="4335000" />
  761 + <workItem from="1573796767441" duration="11890000" />
  762 + <workItem from="1574037819650" duration="15257000" />
  763 + <workItem from="1574123142144" duration="23459000" />
  764 + <workItem from="1574209886131" duration="15642000" />
  765 + <workItem from="1574296268709" duration="15155000" />
  766 + <workItem from="1574382813105" duration="7331000" />
  767 + <workItem from="1574416919078" duration="1230000" />
  768 + <workItem from="1574642048568" duration="282000" />
373 769 </task>
374 770 <task id="LOCAL-00015" summary="添加入库质检行内编辑">
375 771 <created>1568857387442</created>
... ... @@ -511,9 +907,296 @@
511 907 <option name="project" value="LOCAL" />
512 908 <updated>1570582333467</updated>
513 909 </task>
514   - <option name="localTasksCounter" value="35" />
  910 + <task id="LOCAL-00035" summary="wcs接口修改">
  911 + <created>1571122379988</created>
  912 + <option name="number" value="00035" />
  913 + <option name="presentableId" value="LOCAL-00035" />
  914 + <option name="project" value="LOCAL" />
  915 + <updated>1571122379988</updated>
  916 + </task>
  917 + <task id="LOCAL-00036" summary="页面格式和排版更改">
  918 + <created>1571207162953</created>
  919 + <option name="number" value="00036" />
  920 + <option name="presentableId" value="LOCAL-00036" />
  921 + <option name="project" value="LOCAL" />
  922 + <updated>1571207162954</updated>
  923 + </task>
  924 + <task id="LOCAL-00037" summary="接口地址修改,入库生成任务时字段添加">
  925 + <created>1571214245114</created>
  926 + <option name="number" value="00037" />
  927 + <option name="presentableId" value="LOCAL-00037" />
  928 + <option name="project" value="LOCAL" />
  929 + <updated>1571214245114</updated>
  930 + </task>
  931 + <task id="LOCAL-00038" summary="常量代替数字">
  932 + <created>1571648535594</created>
  933 + <option name="number" value="00038" />
  934 + <option name="presentableId" value="LOCAL-00038" />
  935 + <option name="project" value="LOCAL" />
  936 + <updated>1571648535594</updated>
  937 + </task>
  938 + <task id="LOCAL-00039" summary="复制角色,字典数据,菜单">
  939 + <created>1571825499862</created>
  940 + <option name="number" value="00039" />
  941 + <option name="presentableId" value="LOCAL-00039" />
  942 + <option name="project" value="LOCAL" />
  943 + <updated>1571825499862</updated>
  944 + </task>
  945 + <task id="LOCAL-00040" summary="复制流程,规则配置,波次,菜单">
  946 + <created>1571886888136</created>
  947 + <option name="number" value="00040" />
  948 + <option name="presentableId" value="LOCAL-00040" />
  949 + <option name="project" value="LOCAL" />
  950 + <updated>1571886888136</updated>
  951 + </task>
  952 + <task id="LOCAL-00041" summary="修改masada分支">
  953 + <created>1571973935036</created>
  954 + <option name="number" value="00041" />
  955 + <option name="presentableId" value="LOCAL-00041" />
  956 + <option name="project" value="LOCAL" />
  957 + <updated>1571973935037</updated>
  958 + </task>
  959 + <task id="LOCAL-00042" summary="修改权限">
  960 + <created>1571985219873</created>
  961 + <option name="number" value="00042" />
  962 + <option name="presentableId" value="LOCAL-00042" />
  963 + <option name="project" value="LOCAL" />
  964 + <updated>1571985219873</updated>
  965 + </task>
  966 + <task id="LOCAL-00043" summary="界面修改">
  967 + <created>1572259123124</created>
  968 + <option name="number" value="00043" />
  969 + <option name="presentableId" value="LOCAL-00043" />
  970 + <option name="project" value="LOCAL" />
  971 + <updated>1572259123124</updated>
  972 + </task>
  973 + <task id="LOCAL-00044" summary="修改权限">
  974 + <created>1572318327154</created>
  975 + <option name="number" value="00044" />
  976 + <option name="presentableId" value="LOCAL-00044" />
  977 + <option name="project" value="LOCAL" />
  978 + <updated>1572318327154</updated>
  979 + </task>
  980 + <task id="LOCAL-00045" summary="添加复制仓库时,复制用户仓库关系表">
  981 + <created>1572319632042</created>
  982 + <option name="number" value="00045" />
  983 + <option name="presentableId" value="LOCAL-00045" />
  984 + <option name="project" value="LOCAL" />
  985 + <updated>1572319632042</updated>
  986 + </task>
  987 + <task id="LOCAL-00046" summary="优化库位和容器的插入功能">
  988 + <created>1572339639431</created>
  989 + <option name="number" value="00046" />
  990 + <option name="presentableId" value="LOCAL-00046" />
  991 + <option name="project" value="LOCAL" />
  992 + <updated>1572339639431</updated>
  993 + </task>
  994 + <task id="LOCAL-00047" summary="界面修改">
  995 + <created>1572404247104</created>
  996 + <option name="number" value="00047" />
  997 + <option name="presentableId" value="LOCAL-00047" />
  998 + <option name="project" value="LOCAL" />
  999 + <updated>1572404247104</updated>
  1000 + </task>
  1001 + <task id="LOCAL-00048" summary="界面修改">
  1002 + <created>1572430513551</created>
  1003 + <option name="number" value="00048" />
  1004 + <option name="presentableId" value="LOCAL-00048" />
  1005 + <option name="project" value="LOCAL" />
  1006 + <updated>1572430513551</updated>
  1007 + </task>
  1008 + <task id="LOCAL-00049" summary="界面修改">
  1009 + <created>1572485193959</created>
  1010 + <option name="number" value="00049" />
  1011 + <option name="presentableId" value="LOCAL-00049" />
  1012 + <option name="project" value="LOCAL" />
  1013 + <updated>1572485193959</updated>
  1014 + </task>
  1015 + <task id="LOCAL-00050" summary="修改界面以及删除物料如果有库存无法删除的修改">
  1016 + <created>1572514806738</created>
  1017 + <option name="number" value="00050" />
  1018 + <option name="presentableId" value="LOCAL-00050" />
  1019 + <option name="project" value="LOCAL" />
  1020 + <updated>1572514806739</updated>
  1021 + </task>
  1022 + <task id="LOCAL-00051" summary="物料单位转换">
  1023 + <created>1572521475402</created>
  1024 + <option name="number" value="00051" />
  1025 + <option name="presentableId" value="LOCAL-00051" />
  1026 + <option name="project" value="LOCAL" />
  1027 + <updated>1572521475402</updated>
  1028 + </task>
  1029 + <task id="LOCAL-00052" summary="模糊查询">
  1030 + <created>1572592205859</created>
  1031 + <option name="number" value="00052" />
  1032 + <option name="presentableId" value="LOCAL-00052" />
  1033 + <option name="project" value="LOCAL" />
  1034 + <updated>1572592205859</updated>
  1035 + </task>
  1036 + <task id="LOCAL-00053" summary="商品界面和货主界面修改">
  1037 + <created>1572599577946</created>
  1038 + <option name="number" value="00053" />
  1039 + <option name="presentableId" value="LOCAL-00053" />
  1040 + <option name="project" value="LOCAL" />
  1041 + <updated>1572599577946</updated>
  1042 + </task>
  1043 + <task id="LOCAL-00054" summary="任务抛异常">
  1044 + <created>1572601218998</created>
  1045 + <option name="number" value="00054" />
  1046 + <option name="presentableId" value="LOCAL-00054" />
  1047 + <option name="project" value="LOCAL" />
  1048 + <updated>1572601218998</updated>
  1049 + </task>
  1050 + <task id="LOCAL-00055" summary="wcs2接口修改">
  1051 + <created>1572866228413</created>
  1052 + <option name="number" value="00055" />
  1053 + <option name="presentableId" value="LOCAL-00055" />
  1054 + <option name="project" value="LOCAL" />
  1055 + <updated>1572866228414</updated>
  1056 + </task>
  1057 + <task id="LOCAL-00056" summary="合并分支">
  1058 + <created>1573539697837</created>
  1059 + <option name="number" value="00056" />
  1060 + <option name="presentableId" value="LOCAL-00056" />
  1061 + <option name="project" value="LOCAL" />
  1062 + <updated>1573539697837</updated>
  1063 + </task>
  1064 + <task id="LOCAL-00057" summary="合并分支">
  1065 + <created>1573540779552</created>
  1066 + <option name="number" value="00057" />
  1067 + <option name="presentableId" value="LOCAL-00057" />
  1068 + <option name="project" value="LOCAL" />
  1069 + <updated>1573540779553</updated>
  1070 + </task>
  1071 + <task id="LOCAL-00058" summary="修改货主显示">
  1072 + <created>1573796464922</created>
  1073 + <option name="number" value="00058" />
  1074 + <option name="presentableId" value="LOCAL-00058" />
  1075 + <option name="project" value="LOCAL" />
  1076 + <updated>1573796464922</updated>
  1077 + </task>
  1078 + <task id="LOCAL-00059" summary="jasperreport集成spring boot">
  1079 + <created>1573809300737</created>
  1080 + <option name="number" value="00059" />
  1081 + <option name="presentableId" value="LOCAL-00059" />
  1082 + <option name="project" value="LOCAL" />
  1083 + <updated>1573809300737</updated>
  1084 + </task>
  1085 + <task id="LOCAL-00060" summary="jasperreport集成spring boot,jasper文件,中文不显示">
  1086 + <created>1574160540167</created>
  1087 + <option name="number" value="00060" />
  1088 + <option name="presentableId" value="LOCAL-00060" />
  1089 + <option name="project" value="LOCAL" />
  1090 + <updated>1574160540169</updated>
  1091 + </task>
  1092 + <task id="LOCAL-00061" summary="方法移除">
  1093 + <created>1574160598655</created>
  1094 + <option name="number" value="00061" />
  1095 + <option name="presentableId" value="LOCAL-00061" />
  1096 + <option name="project" value="LOCAL" />
  1097 + <updated>1574160598656</updated>
  1098 + </task>
  1099 + <task id="LOCAL-00062" summary="pdf预览完成">
  1100 + <created>1574210318480</created>
  1101 + <option name="number" value="00062" />
  1102 + <option name="presentableId" value="LOCAL-00062" />
  1103 + <option name="project" value="LOCAL" />
  1104 + <updated>1574210318481</updated>
  1105 + </task>
  1106 + <task id="LOCAL-00063" summary="d多种格式导出">
  1107 + <created>1574307636322</created>
  1108 + <option name="number" value="00063" />
  1109 + <option name="presentableId" value="LOCAL-00063" />
  1110 + <option name="project" value="LOCAL" />
  1111 + <updated>1574307636322</updated>
  1112 + </task>
  1113 + <option name="localTasksCounter" value="64" />
515 1114 <servers />
516 1115 </component>
  1116 + <component name="TestHistory">
  1117 + <history-entry file="ServiceTest_jasper - 2019.11.19 at 08h 58m 30s.xml">
  1118 + <configuration name="ServiceTest.jasper" configurationId="JUnit" />
  1119 + </history-entry>
  1120 + <history-entry file="ServiceTest_jasper - 2019.11.19 at 08h 59m 24s.xml">
  1121 + <configuration name="ServiceTest.jasper" configurationId="JUnit" />
  1122 + </history-entry>
  1123 + <history-entry file="ServiceTest_jasper - 2019.11.19 at 08h 59m 36s.xml">
  1124 + <configuration name="ServiceTest.jasper" configurationId="JUnit" />
  1125 + </history-entry>
  1126 + <history-entry file="ServiceTest_jasper - 2019.11.19 at 09h 00m 55s.xml">
  1127 + <configuration name="ServiceTest.jasper" configurationId="JUnit" />
  1128 + </history-entry>
  1129 + <history-entry file="ServiceTest_jasper - 2019.11.19 at 09h 01m 34s.xml">
  1130 + <configuration name="ServiceTest.jasper" configurationId="JUnit" />
  1131 + </history-entry>
  1132 + <history-entry file="ServiceTest_jasper - 2019.11.19 at 09h 20m 43s.xml">
  1133 + <configuration name="ServiceTest.jasper" configurationId="JUnit" />
  1134 + </history-entry>
  1135 + <history-entry file="ServiceTest_jasper - 2019.11.19 at 09h 21m 50s.xml">
  1136 + <configuration name="ServiceTest.jasper" configurationId="JUnit" />
  1137 + </history-entry>
  1138 + <history-entry file="ServiceTest_jasper - 2019.11.19 at 11h 10m 05s.xml">
  1139 + <configuration name="ServiceTest.jasper" configurationId="JUnit" />
  1140 + </history-entry>
  1141 + <history-entry file="ServiceTest_jasper - 2019.11.19 at 11h 11m 13s.xml">
  1142 + <configuration name="ServiceTest.jasper" configurationId="JUnit" />
  1143 + </history-entry>
  1144 + <history-entry file="ServiceTest_jasper - 2019.11.19 at 11h 13m 12s.xml">
  1145 + <configuration name="ServiceTest.jasper" configurationId="JUnit" />
  1146 + </history-entry>
  1147 + </component>
  1148 + <component name="TimeTrackingManager">
  1149 + <option name="totallyTimeSpent" value="324983000" />
  1150 + </component>
  1151 + <component name="TodoView">
  1152 + <todo-panel id="selected-file">
  1153 + <is-autoscroll-to-source value="true" />
  1154 + </todo-panel>
  1155 + <todo-panel id="all">
  1156 + <are-packages-shown value="true" />
  1157 + <is-autoscroll-to-source value="true" />
  1158 + </todo-panel>
  1159 + </component>
  1160 + <component name="ToolWindowManager">
  1161 + <frame x="-7" y="-7" width="1550" height="838" extended-state="6" />
  1162 + <editor active="true" />
  1163 + <layout>
  1164 + <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.22117962" />
  1165 + <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
  1166 + <window_info id="Designer" order="2" />
  1167 + <window_info id="Image Layers" order="3" />
  1168 + <window_info id="Capture Tool" order="4" />
  1169 + <window_info id="UI Designer" order="5" />
  1170 + <window_info id="Favorites" order="6" side_tool="true" />
  1171 + <window_info id="Web" order="7" side_tool="true" />
  1172 + <window_info anchor="bottom" id="Message" order="0" />
  1173 + <window_info anchor="bottom" id="Find" order="1" weight="0.3286119" />
  1174 + <window_info anchor="bottom" id="Run" order="2" />
  1175 + <window_info anchor="bottom" id="Debug" order="3" weight="0.47450426" />
  1176 + <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
  1177 + <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
  1178 + <window_info anchor="bottom" id="TODO" order="6" weight="0.32904148" />
  1179 + <window_info anchor="bottom" id="Spring" order="7" sideWeight="0.49865952" weight="0.3286119" />
  1180 + <window_info anchor="bottom" id="Terminal" order="8" weight="0.3286119" />
  1181 + <window_info anchor="bottom" id="Docker" order="9" show_stripe_button="false" />
  1182 + <window_info anchor="bottom" id="Event Log" order="10" sideWeight="0.09115282" side_tool="true" weight="0.6489971" />
  1183 + <window_info anchor="bottom" id="Messages" order="11" sideWeight="0.4978678" weight="0.3275488" />
  1184 + <window_info anchor="bottom" id="Java Enterprise" order="12" sideWeight="0.49932975" weight="0.3286119" />
  1185 + <window_info anchor="bottom" id="Database Changes" order="13" weight="0.32719547" />
  1186 + <window_info anchor="bottom" id="Version Control" order="14" sideWeight="0.4978678" weight="0.04229935" />
  1187 + <window_info active="true" anchor="bottom" id="Run Dashboard" order="15" sideWeight="0.9088472" visible="true" weight="0.4631728" />
  1188 + <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
  1189 + <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
  1190 + <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
  1191 + <window_info anchor="right" id="Maven" order="3" weight="0.32908848" />
  1192 + <window_info anchor="right" id="Palette" order="4" />
  1193 + <window_info anchor="right" id="Capture Analysis" order="5" />
  1194 + <window_info anchor="right" id="Database" order="6" />
  1195 + <window_info anchor="right" id="Palette&#9;" order="7" />
  1196 + <window_info anchor="right" id="Theme Preview" order="8" />
  1197 + <window_info anchor="right" id="Bean Validation" order="9" />
  1198 + </layout>
  1199 + </component>
517 1200 <component name="TypeScriptGeneratedFilesManager">
518 1201 <option name="version" value="1" />
519 1202 </component>
... ... @@ -523,41 +1206,90 @@
523 1206 <entry key="MAIN">
524 1207 <value>
525 1208 <State>
526   - <option name="COLUMN_ORDER" />
  1209 + <option name="RECENTLY_FILTERED_USER_GROUPS">
  1210 + <collection />
  1211 + </option>
  1212 + <option name="RECENTLY_FILTERED_BRANCH_GROUPS">
  1213 + <collection />
  1214 + </option>
  1215 + <option name="FILTERS">
  1216 + <map>
  1217 + <entry key="user">
  1218 + <value>
  1219 + <list>
  1220 + <option value="mahuandong" />
  1221 + </list>
  1222 + </value>
  1223 + </entry>
  1224 + </map>
  1225 + </option>
  1226 + <option name="COLUMN_ORDER">
  1227 + <list>
  1228 + <option value="0" />
  1229 + <option value="1" />
  1230 + <option value="2" />
  1231 + <option value="3" />
  1232 + </list>
  1233 + </option>
527 1234 </State>
528 1235 </value>
529 1236 </entry>
530 1237 </map>
531 1238 </option>
  1239 + <option name="RECENT_FILTERS">
  1240 + <map>
  1241 + <entry key="Branch">
  1242 + <value>
  1243 + <list>
  1244 + <RecentGroup>
  1245 + <option name="FILTER_VALUES">
  1246 + <option value="origin/develop" />
  1247 + </option>
  1248 + </RecentGroup>
  1249 + </list>
  1250 + </value>
  1251 + </entry>
  1252 + <entry key="User">
  1253 + <value>
  1254 + <list>
  1255 + <RecentGroup>
  1256 + <option name="FILTER_VALUES">
  1257 + <option value="mahuandong" />
  1258 + </option>
  1259 + </RecentGroup>
  1260 + </list>
  1261 + </value>
  1262 + </entry>
  1263 + </map>
  1264 + </option>
532 1265 </component>
533 1266 <component name="VcsManagerConfiguration">
534   - <option name="ADD_EXTERNAL_FILES_SILENTLY" value="true" />
535   - <MESSAGE value="修改入库单页面" />
536   - <MESSAGE value="修改入库单页面,入库单审核,质检页面后台跳转接口" />
537   - <MESSAGE value="修改 入库收货,生成上架任务自动执行定位" />
538   - <MESSAGE value="修复商品管理、物料类别种bug" />
539   - <MESSAGE value="修改入库明细添加加载定位规则的错误" />
540   - <MESSAGE value="添加入库质检行内编辑" />
541   - <MESSAGE value="行内编辑完成后更新数据库" />
542   - <MESSAGE value="修改质检登记使用bootstarp boot原生方法初始化" />
543   - <MESSAGE value="表单头创建时间添加默认创建时间&#10;开始时间默认提前一周,结束时间默认当天" />
544   - <MESSAGE value="配置中所有页面添加重置按钮" />
545   - <MESSAGE value="收货添加定位、取消定位、取消组盘按钮" />
546   - <MESSAGE value="修改入库单数量使用BigDecimal类型,修改入库单添加、修改、物理类型添加和修改页面" />
547   - <MESSAGE value="修改物料管理中物料类型使用物料类别表,不在使用数据字典" />
548   - <MESSAGE value="修改波次主表、波次流程头表、波次流程明细页面" />
549   - <MESSAGE value="修改入库首选项修改添加模块为select" />
550   - <MESSAGE value="修改任务取消入库组盘状态不回滚,修改任务完成入库单状态不完成" />
551   - <MESSAGE value="添加自动生成容器编码" />
552   - <MESSAGE value="修改入库首选项页面,规则查询使用数据字典值,表格值显示修改" />
553   - <MESSAGE value="入库单添加重置按钮,入库单历史添加上游单号搜索" />
554   - <MESSAGE value="添加取消入库组盘时容器为临时容器,删除容器" />
555   - <MESSAGE value="出库完成时删除临时容器" />
556   - <MESSAGE value="修改容器新增时容器enable状态" />
557   - <MESSAGE value="修改入库组盘页面中任务类型的显示问题&#10;修改任务完成不修改入库组盘状态的问题" />
558   - <MESSAGE value="添加根据code查询物料" />
559 1267 <MESSAGE value="添加根据容器编码查找容器的方法&#10;配置规则添加自动添加模块类型&#10;添加是否自动生成临时容器" />
560   - <option name="LAST_COMMIT_MESSAGE" value="添加根据容器编码查找容器的方法&#10;配置规则添加自动添加模块类型&#10;添加是否自动生成临时容器" />
  1268 + <MESSAGE value="wcs接口修改" />
  1269 + <MESSAGE value="页面格式和排版更改" />
  1270 + <MESSAGE value="接口地址修改,入库生成任务时字段添加" />
  1271 + <MESSAGE value="常量代替数字" />
  1272 + <MESSAGE value="复制角色,字典数据,菜单" />
  1273 + <MESSAGE value="复制流程,规则配置,波次,菜单" />
  1274 + <MESSAGE value="修改masada分支" />
  1275 + <MESSAGE value="修改权限" />
  1276 + <MESSAGE value="添加复制仓库时,复制用户仓库关系表" />
  1277 + <MESSAGE value="优化库位和容器的插入功能" />
  1278 + <MESSAGE value="界面修改" />
  1279 + <MESSAGE value="修改界面以及删除物料如果有库存无法删除的修改" />
  1280 + <MESSAGE value="物料单位转换" />
  1281 + <MESSAGE value="模糊查询" />
  1282 + <MESSAGE value="商品界面和货主界面修改" />
  1283 + <MESSAGE value="任务抛异常" />
  1284 + <MESSAGE value="wcs2接口修改" />
  1285 + <MESSAGE value="合并分支" />
  1286 + <MESSAGE value="修改货主显示" />
  1287 + <MESSAGE value="jasperreport集成spring boot" />
  1288 + <MESSAGE value="jasperreport集成spring boot,jasper文件,中文不显示" />
  1289 + <MESSAGE value="方法移除" />
  1290 + <MESSAGE value="pdf预览完成" />
  1291 + <MESSAGE value="d多种格式导出" />
  1292 + <option name="LAST_COMMIT_MESSAGE" value="d多种格式导出" />
561 1293 </component>
562 1294 <component name="XDebuggerManager">
563 1295 <breakpoint-manager>
... ... @@ -565,42 +1297,49 @@
565 1297 <line-breakpoint enabled="true" type="java-line">
566 1298 <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/bom/controller/BomHeaderController.java</url>
567 1299 <line>164</line>
  1300 + <properties />
568 1301 <option name="timeStamp" value="24" />
569 1302 </line-breakpoint>
570 1303 <line-breakpoint enabled="true" type="java-line">
571   - <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/material/controller/MaterialController.java</url>
572   - <line>150</line>
573   - <option name="timeStamp" value="26" />
574   - </line-breakpoint>
575   - <line-breakpoint enabled="true" type="java-line">
576 1304 <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkingRegister/controller/CheckingRegisterController.java</url>
577   - <line>174</line>
  1305 + <line>175</line>
  1306 + <properties />
578 1307 <option name="timeStamp" value="28" />
579 1308 </line-breakpoint>
580 1309 <line-breakpoint enabled="true" type="java-line">
581   - <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java</url>
582   - <line>631</line>
583   - <option name="timeStamp" value="48" />
584   - </line-breakpoint>
585   - <line-breakpoint enabled="true" type="java-line">
586 1310 <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptContainerDetail/service/ReceiptContainerDetailServiceImpl.java</url>
587   - <line>56</line>
  1311 + <line>57</line>
  1312 + <properties />
588 1313 <option name="timeStamp" value="49" />
589 1314 </line-breakpoint>
590 1315 <line-breakpoint enabled="true" type="java-line">
591 1316 <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptContainerDetail/service/ReceiptContainerDetailServiceImpl.java</url>
592   - <line>84</line>
  1317 + <line>85</line>
  1318 + <properties />
593 1319 <option name="timeStamp" value="51" />
594 1320 </line-breakpoint>
595 1321 <line-breakpoint enabled="true" type="java-line">
596   - <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/statusFlow/controller/StatusFlowHeaderController.java</url>
597   - <line>86</line>
598   - <option name="timeStamp" value="57" />
  1322 + <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/api/wcs/service/emptyOutHandle/EmptyOutHandleServiceImpl.java</url>
  1323 + <line>31</line>
  1324 + <properties />
  1325 + <option name="timeStamp" value="63" />
599 1326 </line-breakpoint>
600 1327 <line-breakpoint enabled="true" type="java-line">
601   - <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkingRegister/controller/CheckingRegisterController.java</url>
602   - <line>145</line>
603   - <option name="timeStamp" value="62" />
  1328 + <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/api/wcs/service/overrideHandle/OverrideHandleServiceImpl.java</url>
  1329 + <line>108</line>
  1330 + <properties />
  1331 + <option name="timeStamp" value="70" />
  1332 + </line-breakpoint>
  1333 + <line-breakpoint enabled="true" type="java-line">
  1334 + <url>jar://$MAVEN_REPOSITORY$/com/alibaba/fastjson/1.2.59/fastjson-1.2.59.jar!/com/alibaba/fastjson/JSONException.class</url>
  1335 + <properties />
  1336 + <option name="timeStamp" value="71" />
  1337 + </line-breakpoint>
  1338 + <line-breakpoint enabled="true" type="java-line">
  1339 + <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/materialMultiple/controller/MaterialMultipleController.java</url>
  1340 + <line>105</line>
  1341 + <properties />
  1342 + <option name="timeStamp" value="90" />
604 1343 </line-breakpoint>
605 1344 <line-breakpoint enabled="true" type="javascript">
606 1345 <url>file://$PROJECT_DIR$/src/main/resources/templates/check/checkingRegister/checkingRegister.html</url>
... ... @@ -617,6 +1356,7 @@
617 1356 <watches-manager>
618 1357 <configuration name="SpringBootApplicationConfigurationType">
619 1358 <watch expression="receiptDetailService.getById(receiptContainerDetail.getReceiptDetailId()).getLocatingRule()" language="JAVA" />
  1359 + <watch expression="dictDataList" />
620 1360 </configuration>
621 1361 </watches-manager>
622 1362 </component>
... ... @@ -625,4 +1365,436 @@
625 1365 <FILTER>com.huaheng.*</FILTER>
626 1366 </SUITE>
627 1367 </component>
  1368 + <component name="editorHistoryManager">
  1369 + <entry file="file://$PROJECT_DIR$/src/main/resources/application.yml">
  1370 + <provider selected="true" editor-type-id="text-editor">
  1371 + <state relative-caret-position="1023">
  1372 + <caret line="72" column="10" lean-forward="true" selection-start-line="72" selection-start-column="10" selection-end-line="72" selection-end-column="10" />
  1373 + </state>
  1374 + </provider>
  1375 + </entry>
  1376 + <entry file="jar://C:/Program Files (x86)/jdk1.9/src.zip!/java/lang/String.java">
  1377 + <provider selected="true" editor-type-id="text-editor">
  1378 + <state relative-caret-position="145">
  1379 + <caret line="110" column="19" selection-start-line="110" selection-start-column="19" selection-end-line="110" selection-end-column="19" />
  1380 + </state>
  1381 + </provider>
  1382 + </entry>
  1383 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/sendMail/service/MailService.java">
  1384 + <provider selected="true" editor-type-id="text-editor">
  1385 + <state relative-caret-position="-460">
  1386 + <caret line="6" column="17" selection-start-line="6" selection-start-column="17" selection-end-line="6" selection-end-column="17" />
  1387 + </state>
  1388 + </provider>
  1389 + </entry>
  1390 + <entry file="file://$PROJECT_DIR$/src/main/resources/fonts/fonts.xml">
  1391 + <provider selected="true" editor-type-id="text-editor">
  1392 + <state>
  1393 + <caret selection-end-line="14" selection-end-column="15" />
  1394 + </state>
  1395 + </provider>
  1396 + </entry>
  1397 + <entry file="file://$PROJECT_DIR$/pom.xml">
  1398 + <provider editor-type-id="MavenHelperPluginDependencyAnalyzer" />
  1399 + <provider selected="true" editor-type-id="text-editor">
  1400 + <state relative-caret-position="800">
  1401 + <caret line="281" column="21" lean-forward="true" selection-start-line="281" selection-start-column="21" selection-end-line="281" selection-end-column="21" />
  1402 + </state>
  1403 + </provider>
  1404 + </entry>
  1405 + <entry file="file://$PROJECT_DIR$/src/main/resources/jasperreports_extension.properties">
  1406 + <provider selected="true" editor-type-id="text-editor">
  1407 + <state>
  1408 + <caret selection-end-line="1" selection-end-column="78" />
  1409 + </state>
  1410 + </provider>
  1411 + </entry>
  1412 + <entry file="jar://$MAVEN_REPOSITORY$/org/springframework/spring-context-support/5.1.5.RELEASE/spring-context-support-5.1.5.RELEASE.jar!/org/springframework/mail/SimpleMailMessage.class">
  1413 + <provider selected="true" editor-type-id="text-editor">
  1414 + <state relative-caret-position="145">
  1415 + <caret line="14" column="13" selection-start-line="14" selection-start-column="13" selection-end-line="14" selection-end-column="13" />
  1416 + </state>
  1417 + </provider>
  1418 + </entry>
  1419 + <entry file="jar://$MAVEN_REPOSITORY$/org/springframework/spring-context-support/5.1.5.RELEASE/spring-context-support-5.1.5.RELEASE.jar!/org/springframework/mail/javamail/JavaMailSender.class">
  1420 + <provider selected="true" editor-type-id="text-editor">
  1421 + <state relative-caret-position="145">
  1422 + <caret line="12" column="17" selection-start-line="12" selection-start-column="17" selection-end-line="12" selection-end-column="17" />
  1423 + </state>
  1424 + </provider>
  1425 + </entry>
  1426 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/sendMail/service/MailServiceImpl.java">
  1427 + <provider selected="true" editor-type-id="text-editor">
  1428 + <state relative-caret-position="750">
  1429 + <caret line="91" column="40" selection-start-line="91" selection-start-column="40" selection-end-line="91" selection-end-column="40" />
  1430 + </state>
  1431 + </provider>
  1432 + </entry>
  1433 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/alarmLevel/controller/AlarmLevelController.java">
  1434 + <provider selected="true" editor-type-id="text-editor">
  1435 + <state relative-caret-position="286">
  1436 + <caret line="147" column="73" selection-start-line="147" selection-start-column="73" selection-end-line="147" selection-end-column="73" />
  1437 + </state>
  1438 + </provider>
  1439 + </entry>
  1440 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/framework/jasper/JasperConfig.java" />
  1441 + <entry file="jar://$MAVEN_REPOSITORY$/net/sf/jasperreports/jasperreports/6.10.0/jasperreports-6.10.0.jar!/net/sf/jasperreports/engine/JasperExportManager.class">
  1442 + <provider selected="true" editor-type-id="text-editor">
  1443 + <state relative-caret-position="94">
  1444 + <caret line="86" column="74" selection-start-line="86" selection-start-column="62" selection-end-line="86" selection-end-column="74" />
  1445 + </state>
  1446 + </provider>
  1447 + </entry>
  1448 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/report/jasper/controller/JasperController.java" />
  1449 + <entry file="jar://$MAVEN_REPOSITORY$/net/sf/jasperreports/jasperreports/6.10.0/jasperreports-6.10.0.jar!/net/sf/jasperreports/export/ExporterInput.class">
  1450 + <provider selected="true" editor-type-id="text-editor">
  1451 + <state relative-caret-position="175">
  1452 + <caret line="10" column="28" selection-start-line="10" selection-start-column="28" selection-end-line="10" selection-end-column="28" />
  1453 + </state>
  1454 + </provider>
  1455 + </entry>
  1456 + <entry file="jar://$MAVEN_REPOSITORY$/net/sf/jasperreports/jasperreports/6.10.0/jasperreports-6.10.0.jar!/net/sf/jasperreports/export/PrintPartUnrollExporterInput.class">
  1457 + <provider selected="true" editor-type-id="text-editor">
  1458 + <state relative-caret-position="231">
  1459 + <caret line="50" column="35" selection-start-line="50" selection-start-column="35" selection-end-line="50" selection-end-column="35" />
  1460 + <folding>
  1461 + <element signature="e#2105#2106#0" expanded="true" />
  1462 + <element signature="e#2142#2143#0" expanded="true" />
  1463 + </folding>
  1464 + </state>
  1465 + </provider>
  1466 + </entry>
  1467 + <entry file="jar://$MAVEN_REPOSITORY$/net/sf/jasperreports/jasperreports/6.10.0/jasperreports-6.10.0.jar!/net/sf/jasperreports/engine/export/JRXlsExporter.class">
  1468 + <provider selected="true" editor-type-id="text-editor">
  1469 + <state relative-caret-position="150">
  1470 + <caret line="109" column="26" selection-start-line="109" selection-start-column="13" selection-end-line="109" selection-end-column="26" />
  1471 + </state>
  1472 + </provider>
  1473 + </entry>
  1474 + <entry file="jar://$MAVEN_REPOSITORY$/net/sf/jasperreports/jasperreports/6.10.0/jasperreports-6.10.0.jar!/net/sf/jasperreports/engine/ReportContext.class">
  1475 + <provider selected="true" editor-type-id="text-editor">
  1476 + <state relative-caret-position="131">
  1477 + <caret line="9" column="17" selection-start-line="9" selection-start-column="17" selection-end-line="9" selection-end-column="17" />
  1478 + </state>
  1479 + </provider>
  1480 + </entry>
  1481 + <entry file="jar://$MAVEN_REPOSITORY$/net/sf/jasperreports/jasperreports/6.10.0/jasperreports-6.10.0.jar!/net/sf/jasperreports/engine/SimpleReportContext.class">
  1482 + <provider selected="true" editor-type-id="text-editor">
  1483 + <state relative-caret-position="-2">
  1484 + <caret line="12" column="13" selection-start-line="12" selection-start-column="13" selection-end-line="12" selection-end-column="13" />
  1485 + </state>
  1486 + </provider>
  1487 + </entry>
  1488 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/report/excelReport/service/ExcelReportService.java">
  1489 + <provider selected="true" editor-type-id="text-editor">
  1490 + <state relative-caret-position="600">
  1491 + <caret line="38" column="40" selection-start-line="38" selection-start-column="29" selection-end-line="38" selection-end-column="40" />
  1492 + </state>
  1493 + </provider>
  1494 + </entry>
  1495 + <entry file="jar://$MAVEN_REPOSITORY$/net/sf/jasperreports/jasperreports/6.10.0/jasperreports-6.10.0.jar!/net/sf/jasperreports/engine/JRVirtualizer.class">
  1496 + <provider selected="true" editor-type-id="text-editor">
  1497 + <state relative-caret-position="100">
  1498 + <caret line="7" column="17" selection-start-line="7" selection-start-column="17" selection-end-line="7" selection-end-column="17" />
  1499 + </state>
  1500 + </provider>
  1501 + </entry>
  1502 + <entry file="jar://$MAVEN_REPOSITORY$/net/sf/jasperreports/jasperreports/6.10.0/jasperreports-6.10.0.jar!/net/sf/jasperreports/engine/fill/JRAbstractLRUVirtualizer.class">
  1503 + <provider selected="true" editor-type-id="text-editor">
  1504 + <state relative-caret-position="150">
  1505 + <caret line="28" column="64" lean-forward="true" selection-start-line="28" selection-start-column="64" selection-end-line="28" selection-end-column="64" />
  1506 + </state>
  1507 + </provider>
  1508 + </entry>
  1509 + <entry file="jar://$MAVEN_REPOSITORY$/net/sf/jasperreports/jasperreports/6.10.0/jasperreports-6.10.0.jar!/net/sf/jasperreports/engine/fill/JRFileVirtualizer.class">
  1510 + <provider selected="true" editor-type-id="text-editor">
  1511 + <state relative-caret-position="150">
  1512 + <caret line="22" column="52" lean-forward="true" selection-start-line="22" selection-start-column="39" selection-end-line="22" selection-end-column="63" />
  1513 + </state>
  1514 + </provider>
  1515 + </entry>
  1516 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/report/excelReport/controller/ExcelReportController.java">
  1517 + <provider selected="true" editor-type-id="text-editor">
  1518 + <state relative-caret-position="25">
  1519 + <caret line="26" column="13" selection-start-line="26" selection-start-column="13" selection-end-line="26" selection-end-column="13" />
  1520 + </state>
  1521 + </provider>
  1522 + </entry>
  1523 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/common/utils/security/ShiroUtils.java">
  1524 + <provider selected="true" editor-type-id="text-editor">
  1525 + <state relative-caret-position="225">
  1526 + <caret line="20" column="13" selection-start-line="20" selection-start-column="13" selection-end-line="20" selection-end-column="13" />
  1527 + </state>
  1528 + </provider>
  1529 + </entry>
  1530 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptHeader/controller/ReceiptHeaderController.java">
  1531 + <provider selected="true" editor-type-id="text-editor">
  1532 + <state relative-caret-position="225">
  1533 + <caret line="76" column="56" lean-forward="true" selection-start-line="76" selection-start-column="56" selection-end-line="76" selection-end-column="56" />
  1534 + </state>
  1535 + </provider>
  1536 + </entry>
  1537 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/common/jasper/DocType.java">
  1538 + <provider selected="true" editor-type-id="text-editor">
  1539 + <state relative-caret-position="225">
  1540 + <caret line="9" column="12" selection-start-line="9" selection-start-column="12" selection-end-line="9" selection-end-column="12" />
  1541 + </state>
  1542 + </provider>
  1543 + </entry>
  1544 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/common/jasper/DocTypeUtil.java">
  1545 + <provider selected="true" editor-type-id="text-editor">
  1546 + <state relative-caret-position="225">
  1547 + <caret line="17" column="41" selection-start-line="17" selection-start-column="27" selection-end-line="17" selection-end-column="41" />
  1548 + </state>
  1549 + </provider>
  1550 + </entry>
  1551 + <entry file="jar://$MAVEN_REPOSITORY$/net/sf/jasperreports/jasperreports/6.10.0/jasperreports-6.10.0.jar!/net/sf/jasperreports/engine/JasperFillManager.class">
  1552 + <provider selected="true" editor-type-id="text-editor">
  1553 + <state relative-caret-position="146">
  1554 + <caret line="249" column="30" selection-start-line="249" selection-start-column="30" selection-end-line="249" selection-end-column="30" />
  1555 + </state>
  1556 + </provider>
  1557 + </entry>
  1558 + <entry file="jar://$MAVEN_REPOSITORY$/net/sf/jasperreports/jasperreports/6.10.0/jasperreports-6.10.0.jar!/net/sf/jasperreports/engine/JRAbstractExporter.class">
  1559 + <provider selected="true" editor-type-id="text-editor">
  1560 + <state relative-caret-position="146">
  1561 + <caret line="153" column="16" selection-start-line="153" selection-start-column="16" selection-end-line="153" selection-end-column="16" />
  1562 + </state>
  1563 + </provider>
  1564 + </entry>
  1565 + <entry file="jar://$MAVEN_REPOSITORY$/net/sf/jasperreports/jasperreports/6.10.0/jasperreports-6.10.0.jar!/net/sf/jasperreports/export/SimpleExporterInput.class">
  1566 + <provider selected="true" editor-type-id="text-editor">
  1567 + <state relative-caret-position="146">
  1568 + <caret line="25" column="11" selection-start-line="25" selection-start-column="11" selection-end-line="25" selection-end-column="11" />
  1569 + </state>
  1570 + </provider>
  1571 + </entry>
  1572 + <entry file="jar://$MAVEN_REPOSITORY$/net/sf/jasperreports/jasperreports/6.10.0/jasperreports-6.10.0.jar!/net/sf/jasperreports/engine/JREmptyDataSource.class">
  1573 + <provider selected="true" editor-type-id="text-editor">
  1574 + <state relative-caret-position="50">
  1575 + <caret line="11" column="11" selection-start-line="11" selection-start-column="11" selection-end-line="11" selection-end-column="11" />
  1576 + </state>
  1577 + </provider>
  1578 + </entry>
  1579 + <entry file="jar://$MAVEN_REPOSITORY$/net/sf/jasperreports/jasperreports/6.10.0/jasperreports-6.10.0.jar!/net/sf/jasperreports/engine/data/JRBeanCollectionDataSource.class">
  1580 + <provider selected="true" editor-type-id="text-editor">
  1581 + <state relative-caret-position="-154">
  1582 + <caret line="17" column="11" selection-start-line="17" selection-start-column="11" selection-end-line="17" selection-end-column="11" />
  1583 + <folding>
  1584 + <element signature="e#540#541#0" expanded="true" />
  1585 + <element signature="e#582#583#0" expanded="true" />
  1586 + </folding>
  1587 + </state>
  1588 + </provider>
  1589 + </entry>
  1590 + <entry file="jar://$MAVEN_REPOSITORY$/net/sf/jasperreports/jasperreports/6.10.0/jasperreports-6.10.0.jar!/net/sf/jasperreports/engine/JRDataSource.class">
  1591 + <provider selected="true" editor-type-id="text-editor">
  1592 + <state relative-caret-position="100">
  1593 + <caret line="7" column="17" selection-start-line="7" selection-start-column="17" selection-end-line="7" selection-end-column="17" />
  1594 + </state>
  1595 + </provider>
  1596 + </entry>
  1597 + <entry file="jar://$MAVEN_REPOSITORY$/org/springframework/spring-web/5.1.5.RELEASE/spring-web-5.1.5.RELEASE.jar!/org/springframework/web/method/support/InvocableHandlerMethod.class">
  1598 + <provider selected="true" editor-type-id="text-editor">
  1599 + <state relative-caret-position="146">
  1600 + <caret line="106" selection-start-line="106" selection-end-line="106" />
  1601 + </state>
  1602 + </provider>
  1603 + </entry>
  1604 + <entry file="jar://C:/Program Files (x86)/jdk1.9/src.zip!/javax/sql/DataSource.java">
  1605 + <provider selected="true" editor-type-id="text-editor">
  1606 + <state relative-caret-position="146">
  1607 + <caret line="76" column="17" selection-start-line="76" selection-start-column="17" selection-end-line="76" selection-end-column="17" />
  1608 + </state>
  1609 + </provider>
  1610 + </entry>
  1611 + <entry file="file://$PROJECT_DIR$/mypage" />
  1612 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/jasper/JasperController.java">
  1613 + <provider selected="true" editor-type-id="text-editor">
  1614 + <state relative-caret-position="75">
  1615 + <caret line="71" column="24" lean-forward="true" selection-start-line="71" selection-start-column="24" selection-end-line="71" selection-end-column="24" />
  1616 + <folding>
  1617 + <element signature="imports" expanded="true" />
  1618 + </folding>
  1619 + </state>
  1620 + </provider>
  1621 + </entry>
  1622 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/common/jasper/JasperreportUtils.java">
  1623 + <provider selected="true" editor-type-id="text-editor">
  1624 + <state relative-caret-position="7000">
  1625 + <caret line="303" column="30" selection-start-line="303" selection-start-column="27" selection-end-line="303" selection-end-column="30" />
  1626 + <folding>
  1627 + <element signature="imports" expanded="true" />
  1628 + </folding>
  1629 + </state>
  1630 + </provider>
  1631 + </entry>
  1632 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/shipment/shipmentHeader/controller/ShipmentHeaderController.java">
  1633 + <provider selected="true" editor-type-id="text-editor">
  1634 + <state relative-caret-position="-4818">
  1635 + <caret line="42" column="13" selection-start-line="42" selection-start-column="13" selection-end-line="42" selection-end-column="13" />
  1636 + </state>
  1637 + </provider>
  1638 + </entry>
  1639 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/shipment/shippingCombination/controller/ShippingCombinationController.java">
  1640 + <provider selected="true" editor-type-id="text-editor">
  1641 + <state relative-caret-position="182">
  1642 + <caret line="153" column="93" selection-start-line="153" selection-start-column="93" selection-end-line="153" selection-end-column="93" />
  1643 + </state>
  1644 + </provider>
  1645 + </entry>
  1646 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderService.java">
  1647 + <provider selected="true" editor-type-id="text-editor">
  1648 + <state relative-caret-position="132">
  1649 + <caret line="19" column="28" selection-start-line="19" selection-start-column="28" selection-end-line="19" selection-end-column="28" />
  1650 + </state>
  1651 + </provider>
  1652 + </entry>
  1653 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/shipmentPreference/service/ShipmentPreferenceService.java">
  1654 + <provider selected="true" editor-type-id="text-editor">
  1655 + <state relative-caret-position="159">
  1656 + <caret line="12" column="26" selection-start-line="12" selection-start-column="26" selection-end-line="12" selection-end-column="26" />
  1657 + </state>
  1658 + </provider>
  1659 + </entry>
  1660 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/shipment/shipmentDetail/controller/ShipmentDetailController.java">
  1661 + <provider selected="true" editor-type-id="text-editor">
  1662 + <state relative-caret-position="168">
  1663 + <caret line="191" selection-start-line="191" selection-end-line="191" />
  1664 + </state>
  1665 + </provider>
  1666 + </entry>
  1667 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/shipmentPreference/service/ShipmentPreferenceServiceImpl.java">
  1668 + <provider selected="true" editor-type-id="text-editor">
  1669 + <state relative-caret-position="192">
  1670 + <caret line="54" selection-start-line="54" selection-end-line="54" />
  1671 + </state>
  1672 + </provider>
  1673 + </entry>
  1674 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java">
  1675 + <provider selected="true" editor-type-id="text-editor">
  1676 + <state relative-caret-position="232">
  1677 + <caret line="104" selection-start-line="104" selection-end-line="104" />
  1678 + </state>
  1679 + </provider>
  1680 + </entry>
  1681 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/controller/ShipmentContainerHeaderController.java">
  1682 + <provider selected="true" editor-type-id="text-editor">
  1683 + <state relative-caret-position="300">
  1684 + <caret line="36" column="13" selection-start-line="36" selection-start-column="13" selection-end-line="36" selection-end-column="13" />
  1685 + </state>
  1686 + </provider>
  1687 + </entry>
  1688 + <entry file="file://$PROJECT_DIR$/src/main/resources/templates/config/shipmentType/add.html">
  1689 + <provider selected="true" editor-type-id="text-editor">
  1690 + <state relative-caret-position="1200">
  1691 + <caret line="48" column="144" selection-start-line="48" selection-start-column="130" selection-end-line="48" selection-end-column="144" />
  1692 + </state>
  1693 + </provider>
  1694 + </entry>
  1695 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/statusFlow/service/StatusFlowHeaderService.java">
  1696 + <provider selected="true" editor-type-id="text-editor">
  1697 + <state relative-caret-position="325">
  1698 + <caret line="25" column="63" selection-start-line="25" selection-start-column="53" selection-end-line="25" selection-end-column="63" />
  1699 + </state>
  1700 + </provider>
  1701 + </entry>
  1702 + <entry file="file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/shipmentType/controller/shipmentTypeController.java">
  1703 + <provider selected="true" editor-type-id="text-editor">
  1704 + <state relative-caret-position="2175">
  1705 + <caret line="118" column="19" selection-start-line="118" selection-start-column="19" selection-end-line="118" selection-end-column="19" />
  1706 + </state>
  1707 + </provider>
  1708 + </entry>
  1709 + <entry file="file://$PROJECT_DIR$/src/main/resources/templates/shipment/shipmentContainerHeader/shipmentContainerHeader.html">
  1710 + <provider selected="true" editor-type-id="text-editor">
  1711 + <state relative-caret-position="100">
  1712 + <caret line="16" column="72" selection-start-line="16" selection-start-column="72" selection-end-line="16" selection-end-column="72" />
  1713 + </state>
  1714 + </provider>
  1715 + </entry>
  1716 + <entry file="file://$PROJECT_DIR$/src/main/resources/templates/config/shipmentType/edit.html">
  1717 + <provider selected="true" editor-type-id="text-editor">
  1718 + <state relative-caret-position="118">
  1719 + <caret line="63" column="37" lean-forward="true" selection-start-line="63" selection-start-column="37" selection-end-line="63" selection-end-column="37" />
  1720 + </state>
  1721 + </provider>
  1722 + </entry>
  1723 + </component>
  1724 + <component name="masterDetails">
  1725 + <states>
  1726 + <state key="ArtifactsStructureConfigurable.UI">
  1727 + <settings>
  1728 + <artifact-editor />
  1729 + <splitter-proportions>
  1730 + <option name="proportions">
  1731 + <list>
  1732 + <option value="0.2" />
  1733 + </list>
  1734 + </option>
  1735 + </splitter-proportions>
  1736 + </settings>
  1737 + </state>
  1738 + <state key="FacetStructureConfigurable.UI">
  1739 + <settings>
  1740 + <last-edited>Spring</last-edited>
  1741 + <splitter-proportions>
  1742 + <option name="proportions">
  1743 + <list>
  1744 + <option value="0.2" />
  1745 + </list>
  1746 + </option>
  1747 + </splitter-proportions>
  1748 + </settings>
  1749 + </state>
  1750 + <state key="GlobalLibrariesConfigurable.UI">
  1751 + <settings>
  1752 + <splitter-proportions>
  1753 + <option name="proportions">
  1754 + <list>
  1755 + <option value="0.2" />
  1756 + </list>
  1757 + </option>
  1758 + </splitter-proportions>
  1759 + </settings>
  1760 + </state>
  1761 + <state key="JdkListConfigurable.UI">
  1762 + <settings>
  1763 + <last-edited>1.8</last-edited>
  1764 + <splitter-proportions>
  1765 + <option name="proportions">
  1766 + <list>
  1767 + <option value="0.2" />
  1768 + </list>
  1769 + </option>
  1770 + </splitter-proportions>
  1771 + </settings>
  1772 + </state>
  1773 + <state key="ModuleStructureConfigurable.UI">
  1774 + <settings>
  1775 + <last-edited>wms2</last-edited>
  1776 + <splitter-proportions>
  1777 + <option name="proportions">
  1778 + <list>
  1779 + <option value="0.2" />
  1780 + <option value="0.6" />
  1781 + </list>
  1782 + </option>
  1783 + </splitter-proportions>
  1784 + </settings>
  1785 + </state>
  1786 + <state key="ProjectLibrariesConfigurable.UI">
  1787 + <settings>
  1788 + <last-edited>fonts-1.0.0</last-edited>
  1789 + <splitter-proportions>
  1790 + <option name="proportions">
  1791 + <list>
  1792 + <option value="0.2" />
  1793 + </list>
  1794 + </option>
  1795 + </splitter-proportions>
  1796 + </settings>
  1797 + </state>
  1798 + </states>
  1799 + </component>
628 1800 </project>
629 1801 \ No newline at end of file
... ...
... ... @@ -249,6 +249,43 @@
249 249 <version>3.17</version>
250 250 </dependency>
251 251  
  252 + <!--jasperreports-->
  253 + <dependency>
  254 + <groupId>net.sf.jasperreports</groupId>
  255 + <artifactId>jasperreports</artifactId>
  256 + <version>6.10.0</version>
  257 + </dependency>
  258 + <dependency>
  259 + <groupId>net.sf.jasperreports</groupId>
  260 + <artifactId>jasperreports-fonts</artifactId>
  261 + <version>6.10.0</version>
  262 + </dependency>
  263 + <dependency>
  264 + <groupId>com.itextpdf</groupId>
  265 + <artifactId>itextpdf</artifactId>
  266 + <version>5.5.7</version>
  267 + </dependency>
  268 + <dependency>
  269 + <groupId>com.itextpdf</groupId>
  270 + <artifactId>itext-pdfa</artifactId>
  271 + <version>5.5.7</version>
  272 + </dependency>
  273 + <dependency>
  274 + <groupId>com.itextpdf</groupId>
  275 + <artifactId>itext-asian</artifactId>
  276 + <version>5.2.0</version>
  277 + </dependency>
  278 + <dependency>
  279 + <groupId>cn.lesper</groupId>
  280 + <artifactId>iTextAsian</artifactId>
  281 + <version>3.0</version>
  282 + </dependency>
  283 + <dependency>
  284 + <groupId>org.codehaus.groovy</groupId>
  285 + <artifactId>groovy-all</artifactId>
  286 + <version>2.4.11</version>
  287 + </dependency>
  288 +
252 289 <!--activiti工作流-->
253 290 <!--<dependency>-->
254 291 <!--<groupId>org.activiti</groupId>-->
... ...
src/main/java/com/huaheng/api/general/controller/BasicDataApi.java
... ... @@ -5,6 +5,7 @@ import com.huaheng.framework.aspectj.lang.annotation.Log;
5 5 import com.huaheng.framework.aspectj.lang.constant.BusinessType;
6 6 import com.huaheng.framework.web.controller.BaseController;
7 7 import com.huaheng.framework.web.domain.AjaxResult;
  8 +import com.huaheng.pc.config.containerCapacity.domain.ContainerCapacity;
8 9 import com.huaheng.pc.config.customer.domain.Customer;
9 10 import com.huaheng.pc.config.material.domain.Material;
10 11 import com.huaheng.pc.config.supplier.domain.Supplier;
... ... @@ -106,6 +107,18 @@ public class BasicDataApi extends BaseController {
106 107 }
107 108  
108 109 /**
  110 + * 同步容器容量
  111 + */
  112 + @Log(title = "容器容量添加", action = BusinessType.INSERT)
  113 + @PostMapping("/containerCapacity")
  114 + @ApiOperation("容器容量添加公共接口")
  115 + @ResponseBody
  116 + public AjaxResult containerCapacityApi(@RequestBody ContainerCapacity containerCapacity){
  117 + AjaxResult ajaxResult = basicDataApiService.containerCapacity(containerCapacity);
  118 + return ajaxResult;
  119 + }
  120 +
  121 + /**
109 122 * 同步供应商档案
110 123 */
111 124 @Log(title = "供应商档案添加", action = BusinessType.INSERT)
... ...
src/main/java/com/huaheng/api/general/controller/ReceiptApi.java 0 → 100644
  1 +package com.huaheng.api.general.controller;
  2 +
  3 +
  4 +import com.huaheng.api.general.domain.ReceiptDomain;
  5 +import com.huaheng.api.general.service.ReceiptApiService;
  6 +import com.huaheng.framework.aspectj.lang.annotation.Log;
  7 +import com.huaheng.framework.aspectj.lang.constant.BusinessType;
  8 +import com.huaheng.framework.web.domain.AjaxResult;
  9 +import io.swagger.annotations.Api;
  10 +import io.swagger.annotations.ApiOperation;
  11 +import org.springframework.web.bind.annotation.*;
  12 +
  13 +import javax.annotation.Resource;
  14 +
  15 +@RestController
  16 +@RequestMapping("/api/receiptApi")
  17 +@Api(tags = {"receipt"}, description = "入库单接口")
  18 +public class ReceiptApi {
  19 +
  20 + @Resource
  21 + private ReceiptApiService receiptApiService;
  22 +
  23 +
  24 + /**
  25 + * 同步入库单
  26 + */
  27 + @Log(title = "入库单添加", action = BusinessType.INSERT)
  28 + @PostMapping("/receipt")
  29 + @ApiOperation("入库单添加公共接口")
  30 + @ResponseBody
  31 + public AjaxResult Receipt(@RequestBody ReceiptDomain receiptDomain)
  32 + {
  33 + AjaxResult ajaxResult = receiptApiService.receipt(receiptDomain);
  34 + return ajaxResult;
  35 + }
  36 +
  37 +}
... ...
src/main/java/com/huaheng/api/general/controller/ShipmentApi.java 0 → 100644
  1 +package com.huaheng.api.general.controller;
  2 +
  3 +
  4 +import com.huaheng.api.general.domain.ShipmentDomain;
  5 +import com.huaheng.api.general.service.ShipmentApiService;
  6 +import com.huaheng.framework.aspectj.lang.annotation.Log;
  7 +import com.huaheng.framework.aspectj.lang.constant.BusinessType;
  8 +import com.huaheng.framework.web.domain.AjaxResult;
  9 +import io.swagger.annotations.Api;
  10 +import io.swagger.annotations.ApiOperation;
  11 +import org.springframework.web.bind.annotation.*;
  12 +
  13 +import javax.annotation.Resource;
  14 +
  15 +@RestController
  16 +@RequestMapping("/api/shipmentApi")
  17 +@Api(tags = {"shipment"}, description = "出库单接口")
  18 +public class ShipmentApi {
  19 +
  20 + @Resource
  21 + private ShipmentApiService shipmentApiService;
  22 +
  23 + /**
  24 + * 同步出库单
  25 + */
  26 + @Log(title = "出库单添加", action = BusinessType.INSERT)
  27 + @PostMapping("/shipment")
  28 + @ApiOperation("出库单添加公共接口")
  29 + @ResponseBody
  30 + public AjaxResult Shipment(@RequestBody ShipmentDomain shipmentDomain)
  31 + {
  32 + AjaxResult ajaxResult = shipmentApiService.shipment(shipmentDomain);
  33 + return ajaxResult;
  34 + }
  35 +}
... ...
src/main/java/com/huaheng/api/general/domain/ReceiptDomain.java 0 → 100644
  1 +package com.huaheng.api.general.domain;
  2 +
  3 +import com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail;
  4 +import com.huaheng.pc.receipt.receiptDetail.service.ReceiptDetailService;
  5 +import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader;
  6 +import lombok.Data;
  7 +
  8 +import java.util.List;
  9 +
  10 +@Data
  11 +public class ReceiptDomain {
  12 +
  13 + //入库主单
  14 + private ReceiptHeader receiptHeader;
  15 +
  16 + //入库子单列
  17 + private List<ReceiptDetail> receiptDetails;
  18 +}
... ...
src/main/java/com/huaheng/api/general/domain/ShipmentDomain.java 0 → 100644
  1 +package com.huaheng.api.general.domain;
  2 +
  3 +import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail;
  4 +import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader;
  5 +import lombok.Data;
  6 +
  7 +import java.util.List;
  8 +
  9 +@Data
  10 +public class ShipmentDomain {
  11 + private ShipmentHeader shipmentHeader;
  12 +
  13 + private List<ShipmentDetail> shipmentDetails;
  14 +}
... ...
src/main/java/com/huaheng/api/general/service/BasicDataApiService.java
... ... @@ -7,6 +7,10 @@ import com.huaheng.common.utils.StringUtils;
7 7 import com.huaheng.framework.web.domain.AjaxResult;
8 8 import com.huaheng.pc.config.company.domain.Company;
9 9 import com.huaheng.pc.config.company.service.CompanyService;
  10 +import com.huaheng.pc.config.containerCapacity.domain.ContainerCapacity;
  11 +import com.huaheng.pc.config.containerCapacity.service.ContainerCapacityService;
  12 +import com.huaheng.pc.config.containerType.domain.ContainerType;
  13 +import com.huaheng.pc.config.containerType.service.ContainerTypeService;
10 14 import com.huaheng.pc.config.customer.domain.Customer;
11 15 import com.huaheng.pc.config.customer.service.CustomerServiceImpl;
12 16 import com.huaheng.pc.config.material.domain.Material;
... ... @@ -30,6 +34,7 @@ import org.springframework.stereotype.Component;
30 34 import org.springframework.transaction.annotation.Transactional;
31 35  
32 36 import javax.annotation.Resource;
  37 +import java.math.BigDecimal;
33 38 import java.util.ArrayList;
34 39 import java.util.List;
35 40  
... ... @@ -42,7 +47,8 @@ public class BasicDataApiService {
42 47 IDictDataService dictDataService;
43 48 @Autowired
44 49 MaterialService materialService;
45   -
  50 + @Autowired
  51 + ContainerTypeService containerTypeService;
46 52 @Resource
47 53 private DictTypeMapper dictTypeMapper;
48 54 @Resource
... ... @@ -66,6 +72,9 @@ public class BasicDataApiService {
66 72 @Autowired
67 73 CompanyService companyService;
68 74  
  75 + @Autowired
  76 + private ContainerCapacityService containerCapacityService;
  77 +
69 78 //检查仓库
70 79 public Warehouse checkWarehouse(String code) {
71 80 LambdaQueryWrapper<Warehouse> warehouseLam = Wrappers.lambdaQuery();
... ... @@ -507,4 +516,73 @@ public class BasicDataApiService {
507 516 throw new ServiceException("供应商数据问题。。。");
508 517 }
509 518 }
  519 +
  520 +
  521 + /**
  522 + * 容器容量通用接口
  523 + * 1、判断必填字段是否为空
  524 + * 2、检查仓库、物料和容器类型
  525 + * 3、检查此容器容量是否存在,不存在则添加
  526 + * @param containerCapacity
  527 + * @return
  528 + */
  529 + public AjaxResult containerCapacity(ContainerCapacity containerCapacity){
  530 + Boolean flag = false;
  531 + //1、判断必填字段是否为空
  532 + if(StringUtils.isEmpty(containerCapacity.getContainerType())){
  533 + return AjaxResult.error("没有容器类型");
  534 + }
  535 + if(StringUtils.isEmpty(containerCapacity.getWarehouseCode())){
  536 + return AjaxResult.error("没有仓库编号");
  537 + }
  538 + if(StringUtils.isEmpty(containerCapacity.getMaterialCode())){
  539 + return AjaxResult.error("没有物料编号");
  540 + }
  541 + if(StringUtils.isNull(containerCapacity.getQty())){
  542 + return AjaxResult.error("没有容量上限");
  543 + }
  544 +
  545 + // 2、检查仓库、物料和容器类型
  546 + this.checkWarehouse(containerCapacity.getWarehouseCode());
  547 +
  548 + //物料检查
  549 + LambdaQueryWrapper<Material> materialLam = Wrappers.lambdaQuery();
  550 + materialLam.eq(Material::getCode,containerCapacity.getMaterialCode())
  551 + .eq(Material::getWarehouseCode,containerCapacity.getWarehouseCode());
  552 + Material material = materialService.getOne(materialLam);
  553 + if(material == null){
  554 + return AjaxResult.error("系统没有此物料编号");
  555 + }
  556 +
  557 + //容器类型检查
  558 + LambdaQueryWrapper<ContainerType> containerTypeLamb = Wrappers.lambdaQuery();
  559 + containerTypeLamb.eq(ContainerType::getCode,containerCapacity.getContainerType())
  560 + .eq(ContainerType::getWarehouseCode,containerCapacity.getWarehouseCode());
  561 + ContainerType containerType = containerTypeService.getOne(containerTypeLamb);
  562 + if(containerType == null){
  563 + return AjaxResult.error("系统没有此容器类型");
  564 + }
  565 +
  566 + //3、检查此容器容量是否存在,不存在则添加
  567 + LambdaQueryWrapper<ContainerCapacity> containerCapacityLambd = Wrappers.lambdaQuery();
  568 + containerCapacityLambd.eq(ContainerCapacity::getContainerType,containerCapacity.getContainerType())
  569 + .eq(ContainerCapacity::getWarehouseCode,containerCapacity.getWarehouseCode())
  570 + .eq(ContainerCapacity::getMaterialCode,containerCapacity.getMaterialCode());
  571 + ContainerCapacity capacity = containerCapacityService.getOne(containerCapacityLambd);
  572 + if(capacity == null){
  573 + flag = containerCapacityService.save(containerCapacity);
  574 + if(flag == false){
  575 + return AjaxResult.error("新增容器容量失败");
  576 + }
  577 + }else {
  578 + if(capacity.getQty().compareTo(containerCapacity.getQty()) != 0){
  579 + capacity.setQty(containerCapacity.getQty());
  580 + flag = containerCapacityService.updateById(capacity);
  581 + if(flag == false){
  582 + return AjaxResult.error("修改容器容量失败");
  583 + }
  584 + }
  585 + }
  586 + return AjaxResult.success("新增容器容量成功");
  587 + }
510 588 }
... ...
src/main/java/com/huaheng/api/general/service/ReceiptApiService.java 0 → 100644
  1 +package com.huaheng.api.general.service;
  2 +
  3 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4 +import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  5 +import com.huaheng.api.general.controller.ReceiptApi;
  6 +import com.huaheng.api.general.domain.ReceiptDomain;
  7 +import com.huaheng.common.exception.service.ServiceException;
  8 +import com.huaheng.common.utils.StringUtils;
  9 +import com.huaheng.framework.web.domain.AjaxResult;
  10 +import com.huaheng.pc.config.FilterConfigDetail.domain.FilterConfigDetail;
  11 +import com.huaheng.pc.config.FilterConfigDetail.service.FilterConfigDetailService;
  12 +import com.huaheng.pc.config.company.domain.Company;
  13 +import com.huaheng.pc.config.company.service.CompanyService;
  14 +import com.huaheng.pc.config.material.domain.Material;
  15 +import com.huaheng.pc.config.material.service.MaterialService;
  16 +import com.huaheng.pc.config.receiptType.domain.ReceiptType;
  17 +import com.huaheng.pc.config.receiptType.service.ReceiptTypeService;
  18 +import com.huaheng.pc.config.statusFlow.domain.StatusFlowHeader;
  19 +import com.huaheng.pc.config.statusFlow.service.StatusFlowHeaderService;
  20 +import com.huaheng.pc.config.supplier.domain.Supplier;
  21 +import com.huaheng.pc.config.supplier.service.SupplierService;
  22 +import com.huaheng.pc.config.warehouse.domain.Warehouse;
  23 +import com.huaheng.pc.config.warehouse.service.WarehouseService;
  24 +import com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail;
  25 +import com.huaheng.pc.receipt.receiptDetail.service.ReceiptDetailService;
  26 +import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader;
  27 +import com.huaheng.pc.receipt.receiptHeader.service.ReceiptHeaderService;
  28 +import org.springframework.stereotype.Component;
  29 +import org.springframework.transaction.annotation.Transactional;
  30 +
  31 +import javax.annotation.Resource;
  32 +import java.math.BigDecimal;
  33 +import java.util.List;
  34 +
  35 +@Component
  36 +@Transactional
  37 +public class ReceiptApiService {
  38 + @Resource
  39 + private ReceiptHeaderService receiptHeaderService;
  40 + @Resource
  41 + private ReceiptDetailService receiptDetailService;
  42 + @Resource
  43 + private ReceiptTypeService receiptTypeService;
  44 + @Resource
  45 + private WarehouseService warehouseService;
  46 + @Resource
  47 + private CompanyService companyService;
  48 + @Resource
  49 + private MaterialService materialService;
  50 + @Resource
  51 + private SupplierService supplierService;
  52 + @Resource
  53 + private FilterConfigDetailService filterConfigDetailService;
  54 + @Resource
  55 + private StatusFlowHeaderService statusFlowHeaderService;
  56 + /**
  57 + * 入库单下发
  58 + * @param receipt 入库单
  59 + * @return 是否下发成功
  60 + */
  61 + @Transactional(rollbackFor = Exception.class)
  62 + public AjaxResult receipt(ReceiptDomain receipt){
  63 +
  64 + /* 0.step 获取入库头表,获取入库明细*/
  65 + ReceiptHeader receiptHeader = receipt.getReceiptHeader();
  66 + List<ReceiptDetail> receiptDetails = receipt.getReceiptDetails();
  67 + /* 1.step 校验入库单是否为空*/
  68 + if (receiptHeader == null || receiptDetails.isEmpty()){
  69 + throw new ServiceException("入库主单或入库子单为空");
  70 + }
  71 + /* 2.step 检查入库头表合法性*/
  72 + AjaxResult checkReceiptHeaderResult = checkReceiptHeader(receiptHeader);
  73 + if (checkReceiptHeaderResult.hasErr() ){
  74 + return AjaxResult.error(checkReceiptHeaderResult.getMsg());
  75 + }
  76 +
  77 + /* 3.step 检查入库明细合法性*/
  78 + AjaxResult checkReceiptDetailResult = checkReceiptDetail(receiptDetails);
  79 + if (checkReceiptDetailResult.hasErr() ){
  80 + return AjaxResult.error(checkReceiptDetailResult.getMsg());
  81 + }
  82 +
  83 + /* 4.step 计算入库明细总行数、总数量*/
  84 + BigDecimal totalQty = new BigDecimal(0);
  85 + for (ReceiptDetail receiptDetail: receiptDetails) {
  86 + totalQty.add(receiptDetail.getTotalQty());
  87 + }
  88 + receiptHeader.setTotalLines(receiptDetails.size());
  89 + receiptHeader.setTotalQty(totalQty);
  90 +
  91 + /* 5.step 保存的入库头表*/
  92 + if (!receiptHeaderService.save(receiptHeader)){
  93 + throw new ServiceException("保存入库头表失败");
  94 + }
  95 +
  96 + /* 6.step 保存入库明细*/
  97 + LambdaQueryWrapper<ReceiptHeader> lambda = Wrappers.lambdaQuery();
  98 + lambda.eq(ReceiptHeader::getWarehouseCode, receiptHeader.getWarehouseCode())
  99 + .eq(ReceiptHeader::getCode, receiptHeader.getCode());
  100 + receiptHeader = receiptHeaderService.getOne(lambda);
  101 + for (ReceiptDetail receiptDetail : receiptDetails) {
  102 + receiptDetail.setReceiptId(receiptHeader.getId());
  103 + receiptDetail.setReceiptCode(receiptHeader.getCode());
  104 + receiptDetail.setWarehouseCode(receiptHeader.getWarehouseCode());
  105 + receiptDetail.setCompanyCode(receiptHeader.getWarehouseCode());
  106 + Material material = materialService.findAllByCode(receiptDetail.getMaterialCode());
  107 + receiptDetail.setMaterialName(material.getName());
  108 + receiptDetail.setMaterialSpec(material.getSpec());
  109 + receiptDetail.setMaterialUnit(material.getUnit());
  110 + if (!receiptDetailService.save(receiptDetail)){
  111 + throw new ServiceException("保存入库明细失败");
  112 + }
  113 + }
  114 +
  115 + return AjaxResult.success("成功");
  116 + }
  117 +
  118 + /**
  119 + * 检查入库头表合法性
  120 + * @param receiptHeader 入库头表
  121 + * @return 检查结果
  122 + */
  123 + private AjaxResult checkReceiptHeader(ReceiptHeader receiptHeader){
  124 + /* 0.step 必填项是否为空*/
  125 + if (StringUtils.isEmpty(receiptHeader.getCode()) || StringUtils.isEmpty(receiptHeader.getCompanyCode()) ||
  126 + StringUtils.isEmpty(receiptHeader.getWarehouseCode()) || StringUtils.isEmpty(receiptHeader.getReceiptType())){
  127 + return AjaxResult.error("入库主单字段有误");
  128 + }
  129 +
  130 + /* 1.step 查询该单据编码是否已存在*/
  131 + LambdaQueryWrapper<ReceiptHeader> receiptHeaderLambda = Wrappers.lambdaQuery(receiptHeader);
  132 + if (receiptHeaderService.getOne(receiptHeaderLambda) != null){
  133 + return AjaxResult.error("该单据已存在:"+receiptHeader.getCode());
  134 + }
  135 +
  136 + /* 2.step 判断入库类型是否匹配*/
  137 + LambdaQueryWrapper<ReceiptType> receiptTypeLambda = Wrappers.lambdaQuery();
  138 + receiptTypeLambda.eq(ReceiptType::getCode, receiptHeader.getReceiptType());
  139 + if (receiptTypeService.getOne(receiptTypeLambda) == null){
  140 + return AjaxResult.error("没有对应的入库单类型");
  141 + }
  142 +
  143 + /* 3.step 判断仓库是否存在*/
  144 + LambdaQueryWrapper<Warehouse> warehouseLambda = Wrappers.lambdaQuery();
  145 + warehouseLambda.eq(Warehouse::getCode, receiptHeader.getWarehouseCode());
  146 + if (warehouseService.getOne(warehouseLambda) == null){
  147 + return AjaxResult.error("该仓库不存在");
  148 + }
  149 +
  150 + /* 4.step 判断货主是否存在*/
  151 + LambdaQueryWrapper<Company> companyLambda = Wrappers.lambdaQuery();
  152 + companyLambda.eq(Company::getCode, receiptHeader.getCompanyCode());
  153 + if (companyService.getOne(companyLambda) == null){
  154 + return AjaxResult.error("该货主不存在");
  155 + }
  156 +
  157 + return AjaxResult.success("");
  158 + }
  159 +
  160 + /**
  161 + * 检查入库明细合法性
  162 + * @param receiptDetails 入库明细
  163 + * @return 检查结果
  164 + */
  165 + private AjaxResult checkReceiptDetail(List<ReceiptDetail> receiptDetails){
  166 +
  167 + for (ReceiptDetail receiptDetail: receiptDetails) {
  168 + /* 0.step 判断必填字段是否为空且总数量不能为0*/
  169 + if (receiptDetail.getMaterialCode() == null ||
  170 + new BigDecimal(0).compareTo(receiptDetail.getTotalQty() != null ?
  171 + receiptDetail.getTotalQty() : new BigDecimal(0)) == 0 ){
  172 + return AjaxResult.error("入库明细字段有误");
  173 + }
  174 +
  175 + /* 1.step 判断供应商是否存在*/
  176 + if (receiptDetail.getSupplierCode() != null){
  177 + LambdaQueryWrapper<Supplier> supplierLambda = Wrappers.lambdaQuery();
  178 + supplierLambda.eq(Supplier::getCode, receiptDetail.getSupplierCode());
  179 + if (supplierService.getOne(supplierLambda) == null) {
  180 + return AjaxResult.error("供应商不存在");
  181 + }
  182 + }
  183 +
  184 + /* 2.step 判断定位规则是否存在*/
  185 + if (receiptDetail.getLocatingRule() != null){
  186 + LambdaQueryWrapper<FilterConfigDetail> filterConfigDetailLambda = Wrappers.lambdaQuery();
  187 + filterConfigDetailLambda.eq(FilterConfigDetail::getCode, receiptDetail.getLocatingRule())
  188 + .eq(FilterConfigDetail::getModuleType, "receipt")
  189 + .eq(FilterConfigDetail::getRecordType, "locationRule");
  190 + FilterConfigDetail filterConfigDetail = filterConfigDetailService.getOne(filterConfigDetailLambda);
  191 + if (filterConfigDetail == null){
  192 + return AjaxResult.error(receiptDetail.getLocatingRule()+"定位规则不存在");
  193 + }
  194 + }
  195 +
  196 + /* 3.step 判断流程编码是否存在*/
  197 + if (receiptDetail.getStatusFlowCode() != null){
  198 + LambdaQueryWrapper<StatusFlowHeader> statusFlowHeaderLambda = Wrappers.lambdaQuery();
  199 + statusFlowHeaderLambda.eq(StatusFlowHeader::getCode, receiptDetail.getStatusFlowCode())
  200 + .eq(StatusFlowHeader::getModuleType, "receipt")
  201 + .eq(StatusFlowHeader::getRecordType, "receivingFlow");
  202 + StatusFlowHeader statusFlowHeader = statusFlowHeaderService.getOne(statusFlowHeaderLambda);
  203 + if (statusFlowHeader == null){
  204 + return AjaxResult.error(receiptDetail.getLocatingRule()+"该流程不存在");
  205 + }
  206 + }
  207 + }
  208 +
  209 + return AjaxResult.success("");
  210 + }
  211 +}
... ...
src/main/java/com/huaheng/api/general/service/ShipmentApiService.java 0 → 100644
  1 +package com.huaheng.api.general.service;
  2 +
  3 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4 +import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  5 +import com.huaheng.api.general.domain.ShipmentDomain;
  6 +import com.huaheng.common.exception.service.ServiceException;
  7 +import com.huaheng.common.utils.StringUtils;
  8 +import com.huaheng.common.utils.security.ShiroUtils;
  9 +import com.huaheng.framework.web.domain.AjaxResult;
  10 +import com.huaheng.pc.config.company.domain.Company;
  11 +import com.huaheng.pc.config.company.service.CompanyService;
  12 +import com.huaheng.pc.config.customer.domain.Customer;
  13 +import com.huaheng.pc.config.customer.service.CustomerServiceImpl;
  14 +import com.huaheng.pc.config.material.domain.Material;
  15 +import com.huaheng.pc.config.material.service.MaterialService;
  16 +import com.huaheng.pc.config.shipmentType.domain.ShipmentType;
  17 +import com.huaheng.pc.config.shipmentType.service.ShipmentTypeService;
  18 +import com.huaheng.pc.config.warehouse.domain.Warehouse;
  19 +import com.huaheng.pc.config.warehouse.service.WarehouseService;
  20 +import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail;
  21 +import com.huaheng.pc.shipment.shipmentDetail.service.ShipmentDetailService;
  22 +import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader;
  23 +import com.huaheng.pc.shipment.shipmentHeader.service.ShipmentHeaderService;
  24 +import org.springframework.beans.factory.annotation.Autowired;
  25 +import org.springframework.stereotype.Component;
  26 +import org.springframework.transaction.annotation.Transactional;
  27 +
  28 +import java.math.BigDecimal;
  29 +import java.util.ArrayList;
  30 +import java.util.List;
  31 +
  32 +/**
  33 + * @author ricard
  34 + * @time 19/11/11
  35 + *
  36 + */
  37 +
  38 +
  39 +@Component
  40 +@Transactional
  41 +public class ShipmentApiService {
  42 +
  43 + @Autowired
  44 + private ShipmentHeaderService shipmentHeaderService;
  45 +
  46 + @Autowired
  47 + private ShipmentDetailService shipmentDetailService;
  48 +
  49 + @Autowired
  50 + private WarehouseService warehouseService;
  51 +
  52 + @Autowired
  53 + private CompanyService companyService;
  54 +
  55 + @Autowired
  56 + private CustomerServiceImpl customerService;
  57 +
  58 + @Autowired
  59 + private ShipmentTypeService shipmentTypeService;
  60 +
  61 + @Autowired
  62 + private MaterialService materialService;
  63 +
  64 + /**
  65 + * 出库单下发
  66 + *
  67 + * @param shipmentDomain
  68 + * @return
  69 + */
  70 + @Transactional
  71 + public AjaxResult shipment(ShipmentDomain shipmentDomain){
  72 +
  73 + //1、判断出库主单和子单列是否为空
  74 + ShipmentHeader shipmentHeader = shipmentDomain.getShipmentHeader();
  75 + List<ShipmentDetail> shipmentDetails = shipmentDomain.getShipmentDetails();
  76 + if(shipmentHeader == null){
  77 + return AjaxResult.error("出库主单为空");
  78 + }
  79 + if(shipmentDetails.size() < 1 || shipmentDetails == null ){
  80 + return AjaxResult.error("出库子单为空");
  81 + }
  82 +
  83 + //2、检查出库主单的合法性
  84 + AjaxResult ajaxResult = this.checkShipmentHeader(shipmentHeader);
  85 +
  86 + //3、检查出库子单的合法性
  87 + shipmentDetails =this.checkShipmentDetail(shipmentDetails,shipmentHeader);
  88 +
  89 + //4、保存出库主表
  90 + BigDecimal totalQty = new BigDecimal(0);
  91 + for (ShipmentDetail item: shipmentDetails) {
  92 + totalQty.add(item.getShipQty());
  93 + }
  94 + shipmentHeader.setTotalLines(shipmentDetails.size());
  95 + shipmentHeader.setTotalQty(totalQty);
  96 + shipmentHeader.setCode(shipmentHeaderService.createCode(shipmentHeader.getShipmentType()));
  97 +
  98 + if(!shipmentHeaderService.save(shipmentHeader)){
  99 + throw new ServiceException("保存出库主表失败");
  100 + }
  101 +
  102 + //5、保存出库子表
  103 + for(ShipmentDetail shipmentDetail : shipmentDetails){
  104 + shipmentDetail.setShipmentId(shipmentHeader.getId());
  105 + shipmentDetail.setShipmentCode(shipmentHeader.getCode());
  106 + }
  107 +
  108 + int num = 0;
  109 + List<ShipmentDetail> shipmentDetailList = new ArrayList<>();
  110 + if(shipmentDetails.size() >500 ){
  111 + for(ShipmentDetail item : shipmentDetails){
  112 + num++;
  113 + shipmentDetailList.add(item);
  114 + if(num % 500 ==0 || num == shipmentDetails.size()){
  115 + if(!shipmentDetailService.insertDetails(shipmentDetailList)){
  116 + throw new ServiceException("保存出库子表失败");
  117 + }
  118 + shipmentDetailList=new ArrayList<>();
  119 + }
  120 + }
  121 + }else {
  122 + if(!shipmentDetailService.insertDetails(shipmentDetails)){
  123 + throw new ServiceException("保存出库子表失败");
  124 + }
  125 + }
  126 + return AjaxResult.success("出库单下发成功");
  127 + }
  128 +
  129 +
  130 + /**
  131 + * 检查出库主单的合法性
  132 + * @param shipmentHeader
  133 + * @return
  134 + */
  135 + public AjaxResult checkShipmentHeader(ShipmentHeader shipmentHeader){
  136 + //1、判断仓库和货主
  137 + if(StringUtils.isEmpty(shipmentHeader.getWarehouseCode())){
  138 + return AjaxResult.error("仓库为空");
  139 + }
  140 + if(StringUtils.isEmpty(shipmentHeader.getCompanyCode())){
  141 + return AjaxResult.error("货主为空");
  142 + }
  143 +
  144 +
  145 + LambdaQueryWrapper<Warehouse> warehouseLamb = Wrappers.lambdaQuery();
  146 + warehouseLamb.eq(Warehouse::getCode,shipmentHeader.getWarehouseCode());
  147 + Warehouse warehouse =warehouseService.getOne(warehouseLamb);
  148 + if(warehouse == null){
  149 + return AjaxResult.error("wms没有此仓库");
  150 + }
  151 +
  152 + LambdaQueryWrapper<Company> companyLamb = Wrappers.lambdaQuery();
  153 + companyLamb.eq(Company::getCode,shipmentHeader.getCompanyCode());
  154 + Company company =companyService.getOne(companyLamb);
  155 + if(company == null){
  156 + return AjaxResult.error("wms没有此货主");
  157 + }
  158 +
  159 + //2、判断出库类型
  160 + LambdaQueryWrapper<ShipmentType> shipmentTypeLamb = Wrappers.lambdaQuery();
  161 + shipmentTypeLamb.eq(ShipmentType::getCode,shipmentHeader.getShipmentType())
  162 + .eq(ShipmentType::getWarehouseCode,shipmentHeader.getWarehouseCode());
  163 + ShipmentType shipmentType =shipmentTypeService.getOne(shipmentTypeLamb);
  164 + if(shipmentType == null){
  165 + return AjaxResult.error("wms没有此出库类型");
  166 + }
  167 +
  168 + //3、检查上游单号是否存在
  169 + LambdaQueryWrapper<ShipmentHeader> shipmentHeaderLamb = Wrappers.lambdaQuery();
  170 + shipmentHeaderLamb.eq(ShipmentHeader::getWarehouseCode,shipmentHeader.getWarehouseCode())
  171 + .eq(ShipmentHeader::getReferCode,shipmentHeader.getReferCode());
  172 + List<ShipmentHeader> shipmentHeaders = shipmentHeaderService.list(shipmentHeaderLamb);
  173 + if(shipmentHeaders.size() > 0 || shipmentHeaders != null){
  174 + return AjaxResult.success("出库单已经下发");
  175 + }
  176 +
  177 + //4、检查客户
  178 + if(StringUtils.isNotEmpty(shipmentHeader.getCustomerCode())){
  179 + LambdaQueryWrapper<Customer> customerLamb = Wrappers.lambdaQuery();
  180 + customerLamb.eq(Customer::getWarehouseCode,shipmentHeader.getWarehouseCode())
  181 + .eq(Customer::getCode,shipmentHeader.getCustomerCode());
  182 + Customer customer = customerService.getOne(customerLamb);
  183 + if(customer == null){
  184 + return AjaxResult.error("wms没有此客户");
  185 + }
  186 + }
  187 + return AjaxResult.success(shipmentHeader);
  188 + }
  189 +
  190 +
  191 + /**
  192 + * 检查出库子单的合法性
  193 + * @param shipmentDetails
  194 + * @return
  195 + */
  196 + public List<ShipmentDetail> checkShipmentDetail(List<ShipmentDetail> shipmentDetails,ShipmentHeader shipmentHeader){
  197 +
  198 + for(ShipmentDetail shipmentDetail : shipmentDetails) {
  199 + //1、检查物料
  200 + if(StringUtils.isEmpty(shipmentDetail.getMaterialCode())){
  201 + throw new ServiceException("物料为空");
  202 + }
  203 + LambdaQueryWrapper<Material> materialLamb = Wrappers.lambdaQuery();
  204 + materialLamb.eq(Material::getCode,shipmentDetail.getMaterialCode())
  205 + .eq(Material::getWarehouseCode,shipmentHeader.getWarehouseCode());
  206 + Material material = materialService.getOne(materialLamb);
  207 + if(material == null){
  208 + throw new ServiceException("wms没有此物料");
  209 + }
  210 +
  211 + //2、赋值物料属性
  212 + shipmentDetail.setMaterialName(material.getName());
  213 + shipmentDetail.setMaterialSpec(material.getSpec());
  214 + shipmentDetail.setMaterialUnit(material.getUnit());
  215 + }
  216 + return shipmentDetails;
  217 + }
  218 +}
... ...
src/main/java/com/huaheng/api/wcs/service/taskFinish/TaskFinishServiceImpl.java
... ... @@ -24,6 +24,7 @@ public class TaskFinishServiceImpl implements TaskFinishService {
24 24 if(StringUtils.isEmpty(taskFinishDomain.getTaskNo())){
25 25 return AjaxResult.error("任务号为空");
26 26 }
  27 +
27 28 if(taskFinishDomain.getIsEmptyOut() == 1){
28 29 LambdaQueryWrapper<TaskHeader> lam = Wrappers.lambdaQuery();
29 30 lam.eq(TaskHeader::getId,Integer.valueOf(taskFinishDomain.getTaskNo()));
... ...
src/main/java/com/huaheng/common/jasper/DocType.java 0 → 100644
  1 +package com.huaheng.common.jasper;
  2 +
  3 +/**
  4 + * 定义了报表输出类型,固定了可输出类型
  5 + * @author ricard
  6 + * @date 19/11/21
  7 + *
  8 + */
  9 +
  10 +public enum DocType {
  11 +
  12 + PDF, HTML, XLS, XLSX, XML, RTF, CSV, TXT, DOC
  13 +
  14 +}
... ...
src/main/java/com/huaheng/common/jasper/DocTypeUtil.java 0 → 100644
  1 +package com.huaheng.common.jasper;
  2 +
  3 +
  4 +/**
  5 + * 格式工具类
  6 + * @author ricard
  7 + * @date 19/11/21
  8 + *
  9 + */
  10 +public class DocTypeUtil {
  11 + /**
  12 + * 默认类型PDF
  13 + * @param docType
  14 + * @return
  15 + *
  16 + */
  17 +
  18 + public static DocType getEnumDocType(String docType){
  19 + //默认PDF
  20 + DocType type = DocType.PDF;
  21 + docType = docType.toUpperCase();
  22 +
  23 + if(docType.equals("DOC")){
  24 + type =DocType.DOC;
  25 + } else if (docType.equals("XLS")) {
  26 + type = DocType.XLS;
  27 + } else if(docType.equals("XLSX")) {
  28 + type = DocType.XLSX;
  29 + }else if (docType.equals("XML")) {
  30 + type = DocType.XML;
  31 + } else if (docType.equals("RTF")) {
  32 + type = DocType.RTF;
  33 + } else if (docType.equals("CSV")) {
  34 + type = DocType.CSV;
  35 + } else if (docType.equals("HTML")) {
  36 + type = DocType.HTML;
  37 + } else if (docType.equals("TXT")) {
  38 + type = DocType.TXT;
  39 + }
  40 + return type;
  41 + }
  42 +}
... ...
src/main/java/com/huaheng/common/jasper/JasperreportUtils.java 0 → 100644
  1 +package com.huaheng.common.jasper;
  2 +
  3 +import net.sf.jasperreports.engine.*;
  4 +import net.sf.jasperreports.engine.export.*;
  5 +import net.sf.jasperreports.engine.export.ooxml.JRXlsxExporter;
  6 +import net.sf.jasperreports.engine.fill.JRFileVirtualizer;
  7 +import net.sf.jasperreports.export.*;
  8 +import org.slf4j.Logger;
  9 +import org.slf4j.LoggerFactory;
  10 +
  11 +import javax.servlet.ServletException;
  12 +import javax.servlet.ServletOutputStream;
  13 +import javax.servlet.http.HttpServletRequest;
  14 +import javax.servlet.http.HttpServletResponse;
  15 +import javax.servlet.http.HttpSession;
  16 +import java.io.*;
  17 +import java.lang.reflect.Field;
  18 +import java.math.BigDecimal;
  19 +import java.net.URLEncoder;
  20 +import java.sql.Connection;
  21 +import java.sql.SQLException;
  22 +import java.text.DecimalFormat;
  23 +import java.text.SimpleDateFormat;
  24 +import java.util.Date;
  25 +import java.util.List;
  26 +import java.util.Map;
  27 +
  28 +/**
  29 + * 报表工具类
  30 + * @author ricard
  31 + * @date 19/11/21
  32 + *
  33 + */
  34 +public class JasperreportUtils {
  35 +
  36 +
  37 +
  38 +
  39 + private static final Logger LOGGER = LoggerFactory.getLogger(JasperreportUtils.class);
  40 + private HttpServletRequest request;
  41 + private HttpServletResponse response;
  42 + private HttpSession session;
  43 +
  44 + public JasperreportUtils(HttpServletRequest request, HttpServletResponse response, HttpSession session){
  45 + super();
  46 + this.request = request;
  47 + this.response =response;
  48 + this.session =request.getSession();
  49 + }
  50 +
  51 +
  52 +
  53 + /**
  54 + * datasource与parameters填充报表
  55 + *
  56 + * @param jasperPath
  57 + * @param dataSource
  58 + * @param parameters
  59 + * @return
  60 + * @throws JRException
  61 + */
  62 + public JasperPrint getJasperPrint(String jasperPath, Map<String, Object> parameters, JRDataSource dataSource)
  63 + throws JRException {
  64 +
  65 + JasperPrint jasperPrint = JasperFillManager.fillReport(jasperPath, parameters, dataSource);
  66 + return jasperPrint;
  67 + }
  68 +
  69 + /**
  70 + * connection与parameters填充报表
  71 + *
  72 + * @param jasperPath
  73 + * @param conn
  74 + * @param parameters
  75 + * @return
  76 + * @throws JRException
  77 + */
  78 + public JasperPrint getJasperPrint(String jasperPath, Map<String, Object> parameters, Connection conn)
  79 + throws JRException {
  80 +
  81 + JasperPrint jasperPrint = JasperFillManager.fillReport(jasperPath, parameters, conn);
  82 + return jasperPrint;
  83 + }
  84 +
  85 + /**
  86 + * 传入list获取jasperPrint
  87 + *
  88 + * @param jasperPath
  89 + * @param parameters
  90 + * @param list
  91 + * @return
  92 + * @throws JRException
  93 + */
  94 +// public JasperPrint getJasperPrintWithBeanList(String jasperPath, Map<String, Object> parameters, List<?> list)
  95 +// throws JRException,SQLException {
  96 +// JRDataSource jrDataSource = null;
  97 +// JasperPrint jasperPrint =new JasperPrint();
  98 +// if(null != list && list.size()> 0) {
  99 +// jrDataSource = new JRBeanCollectionDataSource(list);
  100 +// jasperPrint = JasperFillManager.fillReport(jasperPath, parameters, jrDataSource);
  101 +// }else {
  102 +// jasperPrint = JasperFillManager.fillReport(jasperPath, parameters, connection);
  103 +// }
  104 +// return jasperPrint;
  105 +// }
  106 +
  107 +
  108 +
  109 + /**
  110 + * 获得相应类型的Content type
  111 + *
  112 + * @param docType
  113 + * @return
  114 + */
  115 + public String getContentType(DocType docType) {
  116 + String contentType = "text/html";
  117 + switch (docType) {
  118 + case PDF:
  119 + contentType = "application/pdf";
  120 + break;
  121 + case XLS:
  122 + contentType = "application/vnd.ms-excel";
  123 + break;
  124 + case XLSX:
  125 + contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
  126 + break;
  127 + case XML:
  128 + contentType = "text/xml";
  129 + break;
  130 + case RTF:
  131 + contentType = "application/rtf";
  132 + break;
  133 + case CSV:
  134 + contentType = "text/plain";
  135 + break;
  136 + case DOC:
  137 + contentType = "application/msword";
  138 + break;
  139 + }
  140 + return contentType;
  141 + }
  142 +
  143 + /**
  144 + * jrxml文件 编译为 jasper文件
  145 + *
  146 + * @param jrxmlPath
  147 + * @param jasperPath
  148 + * @throws JRException
  149 + */
  150 + public void jrxmlToJsper(String jrxmlPath, String jasperPath) throws JRException {
  151 +
  152 + JasperCompileManager.compileReportToFile(jrxmlPath, jasperPath);
  153 +
  154 + }
  155 +
  156 +
  157 + /**
  158 + * 生成html文件
  159 + * @param response
  160 + * @param connection
  161 + * @param jasperPath
  162 + * @param fileName
  163 + * @param parameters
  164 + * @return
  165 + */
  166 + public String createHtml(HttpServletResponse response, Connection connection, String jasperPath, String fileName,
  167 + Map<String, Object> parameters, String folder) {
  168 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
  169 + String dpath = sdf.format(new Date());
  170 + String path = "D:"+"/reportHtml" + folder + "/" + dpath;
  171 + File file = new File(path);
  172 + if (!file.exists()) {
  173 + file.mkdirs();
  174 + }
  175 + String htmlFilePath = path + "/" + fileName;
  176 + try {
  177 +
  178 + JasperPrint jasperPrint = this.getJasperPrint(jasperPath,parameters,connection);
  179 + JasperExportManager.exportReportToHtmlFile(jasperPrint, htmlFilePath);
  180 +
  181 + } catch (Exception ex) {
  182 + LOGGER.error("生成html文件错误"+ex.getMessage(),ex);
  183 + }
  184 + return folder + "/" + dpath + "/" + fileName;
  185 + }
  186 +
  187 + /**
  188 + * 传入类型,获取输出器
  189 + *
  190 + * @param docType
  191 + * @return
  192 + */
  193 + @SuppressWarnings("deprecation")
  194 + public JRAbstractExporter getJRExporter(DocType docType) {
  195 + JRAbstractExporter exporter = null;
  196 + switch (docType) {
  197 + case PDF:
  198 + exporter = new JRPdfExporter();
  199 + break;
  200 + case HTML:
  201 + exporter = new HtmlExporter();
  202 + break;
  203 + case XLS:
  204 + exporter = new JRXlsExporter();
  205 + break;
  206 + case XLSX:
  207 + exporter = new JRXlsxExporter();
  208 + break;
  209 + case XML:
  210 + exporter = new JRXmlExporter();
  211 + break;
  212 + case RTF:
  213 + exporter = new JRRtfExporter();
  214 + break;
  215 + case CSV:
  216 + exporter = new JRCsvExporter();
  217 + break;
  218 + case DOC:
  219 + exporter = new JRRtfExporter();
  220 + break;
  221 + case TXT:
  222 + exporter = new JRTextExporter();
  223 + break;
  224 + }
  225 + return exporter;
  226 + }
  227 +
  228 +
  229 + /**
  230 + * 生成不同格式报表文档(带缓存)
  231 + *
  232 + * @param docType
  233 + * 文档类型
  234 + * @param jasperPath
  235 + */
  236 + @SuppressWarnings("deprecation")
  237 + public void createExportDocument(DocType docType, String jasperPath, Map<String, Object> parameters,
  238 + String fileName,Connection connection) throws JRException, IOException, ServletException, SQLException {
  239 +
  240 + //1、传入类型,获取输出器
  241 + JRAbstractExporter exporter = getJRExporter(docType);
  242 +
  243 + // 2、获取后缀
  244 + String ext = docType.toString().toLowerCase();
  245 +
  246 + if (!fileName.toLowerCase().endsWith(ext)) {
  247 + fileName += "." + ext;
  248 + }
  249 +
  250 +
  251 + // 3、判断资源类型
  252 + if (ext.equals("xls")) {
  253 + SimpleXlsReportConfiguration configuration = new SimpleXlsReportConfiguration();
  254 + // 删除记录最下面的空行
  255 + configuration.setRemoveEmptySpaceBetweenRows(Boolean.TRUE);
  256 + // 一页一个sheet
  257 + configuration.setOnePagePerSheet(Boolean.FALSE);
  258 + // 显示边框 背景白色
  259 + configuration.setWhitePageBackground(Boolean.FALSE);
  260 + exporter.setConfiguration(configuration);
  261 + }
  262 + if(ext.equals("xlsx")) {
  263 + SimpleXlsxReportConfiguration configuration = new SimpleXlsxReportConfiguration();
  264 + configuration.setRemoveEmptySpaceBetweenRows(Boolean.TRUE);
  265 + configuration.setRemoveEmptySpaceBetweenColumns(Boolean.TRUE);
  266 + configuration.setWhitePageBackground(Boolean.FALSE);
  267 + //自动选择格式
  268 + configuration.setDetectCellType(Boolean.TRUE);
  269 + exporter.setConfiguration(configuration);
  270 + }
  271 + if (ext.equals("txt")) {
  272 + SimpleTextReportConfiguration configuration = new SimpleTextReportConfiguration();
  273 + configuration.setCharWidth((float)8);
  274 + configuration.setCharHeight((float)15);
  275 + exporter.setConfiguration(configuration);
  276 + }
  277 +
  278 + //4、设置格式和头
  279 + response.setContentType(getContentType(docType));
  280 + response.setHeader("Content-Disposition",
  281 + "attachment; filename*=UTF-8''" + URLEncoder.encode(fileName, "UTF-8"));
  282 +
  283 + //5、加缓存
  284 + JRFileVirtualizer virtualizer = new JRFileVirtualizer(2, "D:/temp");
  285 + parameters.put(JRParameter.REPORT_VIRTUALIZER, virtualizer);
  286 + virtualizer.setReadOnly(true);
  287 +
  288 + //6、连接数据库获取jasperPrint
  289 + exporter.setExporterInput(new SimpleExporterInput(getJasperPrint(jasperPath, parameters, connection)));
  290 + /*exporter.setParameter(JRExporterParameter.JASPER_PRINT,
  291 + getJasperPrintWithBeanList(jasperPath, parameters, list));*/
  292 +
  293 + OutputStream outStream = null;
  294 + PrintWriter outWriter = null;
  295 +
  296 + // 7、解决中文乱码问题
  297 + response.setCharacterEncoding("UTF-8");
  298 + if (ext.equals("csv") || ext.equals("doc") || ext.equals("rtf") || ext.equals("txt")) {
  299 + outWriter = response.getWriter();
  300 + SimpleWriterExporterOutput outPut = new SimpleWriterExporterOutput(outWriter);
  301 + exporter.setExporterOutput(outPut);
  302 + //exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, outWriter);
  303 + } else {
  304 + if(ext.equals("xml")) {
  305 + outWriter = response.getWriter();
  306 + XmlExporterOutput outPut = new SimpleXmlExporterOutput(outWriter);
  307 + exporter.setExporterOutput(outPut);
  308 + }else if(ext.equals("html")){
  309 + outWriter = response.getWriter();
  310 + HtmlExporterOutput outPut = new SimpleHtmlExporterOutput(outWriter);
  311 + exporter.setExporterOutput(outPut);
  312 + }else {
  313 + outStream = response.getOutputStream();
  314 + exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(outStream));
  315 + }
  316 + }
  317 + try {
  318 + exporter.exportReport();
  319 + virtualizer.cleanup();
  320 + } catch (JRException e) {
  321 + throw new ServletException(e);
  322 + } finally {
  323 + if (outStream != null) {
  324 + try {
  325 + outStream.close();
  326 + } catch (IOException ex) {
  327 + }
  328 + }
  329 + if(outWriter != null) {
  330 + outWriter.close();
  331 + }
  332 + }
  333 + }
  334 +
  335 +
  336 + /**
  337 + * 输出以分页的形式输出html
  338 + * @param jasperPrint
  339 + * @param pageStr
  340 + * @throws JRException
  341 + * @throws IOException
  342 + */
  343 +
  344 + public void createHtmlByPage(JasperPrint jasperPrint,String pageStr) throws JRException, IOException {
  345 + int pageIndex = 0;
  346 + int lastPageIndex = 0;
  347 +
  348 + HtmlExporter exporter = new HtmlExporter();
  349 + if(null != jasperPrint.getPages()) {
  350 + lastPageIndex = jasperPrint.getPages().size() - 1;
  351 + }
  352 +
  353 + if(null == pageStr) {
  354 + pageStr = "0";
  355 + }
  356 + try {
  357 + pageIndex = Integer.valueOf(pageStr);
  358 + if(pageIndex > 0) {
  359 + pageIndex = pageIndex -1 ;
  360 + }
  361 + } catch (Exception e) {
  362 + // 如果得到的非数字字符串
  363 + if("lastPage".equals(pageStr)) {
  364 + pageIndex = lastPageIndex;
  365 + }
  366 + }
  367 +
  368 + if (pageIndex < 0) {
  369 + pageIndex = 0;
  370 + }
  371 + if (pageIndex > lastPageIndex) {
  372 + pageIndex = lastPageIndex;
  373 + }
  374 + response.setCharacterEncoding("UTF-8");
  375 + try {
  376 + PrintWriter out = response.getWriter();
  377 + exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
  378 +
  379 + SimpleHtmlReportConfiguration configuration = new SimpleHtmlReportConfiguration();
  380 + configuration.setPageIndex(pageIndex);
  381 + exporter.setConfiguration(configuration);
  382 + //exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE);
  383 +
  384 + HtmlExporterOutput outPut = new SimpleHtmlExporterOutput(out);
  385 + exporter.setExporterOutput(outPut);
  386 +
  387 + exporter.exportReport();
  388 + } catch (Exception e) {
  389 +
  390 + e.printStackTrace();
  391 + }
  392 + }
  393 +
  394 +
  395 + /**
  396 + * 批量打印pdf文件
  397 + */
  398 + public void exportBatchPdf(List<JasperPrint> jasperPrintList,String fileName) {
  399 +
  400 + JRPdfExporter exporter = new JRPdfExporter();
  401 + try {
  402 + /**
  403 + * 注入打印模板
  404 + */
  405 + exporter.setExporterInput(SimpleExporterInput.getInstance(jasperPrintList));
  406 +
  407 + OutputStream outStream = null;
  408 +
  409 + response.setContentType(getContentType(DocType.PDF));
  410 + response.setHeader("Content-Disposition",
  411 + "attachment; filename*=UTF-8''" + URLEncoder.encode(fileName, "UTF-8"));
  412 + outStream = response.getOutputStream();
  413 +
  414 + exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(outStream));
  415 + //配置项
  416 + SimplePdfExporterConfiguration configuration = new SimplePdfExporterConfiguration();
  417 + // 是否批量打印
  418 + configuration.setCreatingBatchModeBookmarks(true);
  419 + // 是否加密
  420 + configuration.setEncrypted(false);
  421 + exporter.setConfiguration(configuration);
  422 +
  423 + exporter.exportReport();
  424 + } catch (Exception e) {
  425 + e.printStackTrace();
  426 + }
  427 +
  428 + }
  429 +
  430 +
  431 +
  432 + /**
  433 + * 千分位格式化数据 保留两位小数,且 ‘0 ’ 转为 ‘--’
  434 + *
  435 + * @param obj
  436 + * @param fieldNames
  437 + * 需转化的属性
  438 + * @return
  439 + */
  440 + public Object toFormatNumber(Object obj, String[] fieldNames) {
  441 + Class clazz = (Class) obj.getClass();
  442 + Field[] fs = clazz.getDeclaredFields();
  443 + for (int i = 0; i < fs.length; i++) {
  444 + Field f = fs[i];
  445 + // 设置些属性是可以访问的
  446 + f.setAccessible(true);
  447 + String type = f.getType().toString();
  448 + Object val = null;
  449 +
  450 + try {
  451 + for (String str : fieldNames) {
  452 + if (f.getName() == str) {
  453 + val = f.get(obj);
  454 + }
  455 + }
  456 + if (null != val) {
  457 + if (type.endsWith("String")) {
  458 + if (val.equals("0")) {
  459 + f.set(obj, "--");
  460 + } else {
  461 + /*
  462 + * ; BigDecimal str=new BigDecimal((String) val); DecimalFormat df=new
  463 + * DecimalFormat(",###,##0.00");
  464 + */ // 保留两位小数
  465 + f.set(obj, this.toNumeber((String) val));
  466 + }
  467 +
  468 + } else if (type.endsWith("int") || type.endsWith("Integer")) {
  469 + // System.out.println(f.getType()+"\t");
  470 + } else {
  471 + // System.out.println(f.getType()+"\t");
  472 + }
  473 + }
  474 +
  475 + } catch (Exception ex) {
  476 + LOGGER.error("千分位格式化数据错误"+ex.getMessage(), ex);
  477 + }
  478 + }
  479 + return obj;
  480 + }
  481 +
  482 + /**
  483 + * 转为万元保留小数点后两位
  484 + *
  485 + * @param value
  486 + * @return
  487 + */
  488 + private String toNumeber(String value) {
  489 + Double number = Double.valueOf(value) / 10000.00;
  490 + BigDecimal str = new BigDecimal(number);
  491 + DecimalFormat df = new DecimalFormat(",###,##0.00");
  492 +
  493 + return df.format(str);
  494 + }
  495 +
  496 +
  497 +}
... ...
src/main/java/com/huaheng/pc/config/FilterConfigHeader/service/FilterConfigHeaderService.java
... ... @@ -9,6 +9,7 @@ import com.huaheng.pc.config.FilterConfigDetail.mapper.FilterConfigDetailMapper;
9 9 import com.huaheng.pc.config.FilterConfigHeader.domain.FilterConfigHeader;
10 10 import com.huaheng.pc.config.FilterConfigHeader.mapper.FilterConfigHeaderMapper;
11 11 import org.springframework.stereotype.Service;
  12 +import org.springframework.transaction.annotation.Transactional;
12 13  
13 14 import javax.annotation.Resource;
14 15 import java.util.List;
... ... @@ -34,6 +35,7 @@ public class FilterConfigHeaderService extends ServiceImpl&lt;FilterConfigHeaderMap
34 35  
35 36  
36 37 //复制规则配置
  38 + @Transactional
37 39 public Boolean filterConfigCopy(String code,String newCode){
38 40 int i = 0;
39 41 //复制规则配置主表
... ...
src/main/java/com/huaheng/pc/config/address/service/AddressServiceImpl.java
... ... @@ -10,6 +10,7 @@ import com.huaheng.common.utils.security.ShiroUtils;
10 10 import com.huaheng.pc.config.address.domain.Address;
11 11 import com.huaheng.pc.config.address.mapper.AddressMapper;
12 12 import org.springframework.stereotype.Service;
  13 +import org.springframework.transaction.annotation.Transactional;
13 14  
14 15 import java.util.List;
15 16  
... ... @@ -42,6 +43,7 @@ public class AddressServiceImpl extends ServiceImpl&lt;AddressMapper, Address&gt; impl
42 43 * @return 是否复制成功
43 44 */
44 45 @Override
  46 + @Transactional
45 47 public Boolean addressCopy(String warehouseCode, String newWarehouseCode) {
46 48 log.trace("开始复制地址表");
47 49 LambdaQueryWrapper<Address> lambdaQueryWrapper = Wrappers.lambdaQuery();
... ...
src/main/java/com/huaheng/pc/config/bom/controller/BomHeaderController.java
... ... @@ -72,7 +72,7 @@ public class BomHeaderController extends BaseController {
72 72 lambdaQueryWrapper.gt(StringUtils.isNotEmpty(createdBegin), BomHeader::getCreated, createdBegin)
73 73 .lt(StringUtils.isNotEmpty(createdEnd), BomHeader::getCreated, createdEnd)
74 74 .eq(StringUtils.isNotEmpty(bomHeader.getMaterialCode()), BomHeader::getMaterialCode, bomHeader.getMaterialCode())
75   - .eq(StringUtils.isNotEmpty(bomHeader.getMaterialName()), BomHeader::getMaterialName, bomHeader.getMaterialName())
  75 + .like(StringUtils.isNotEmpty(bomHeader.getMaterialName()), BomHeader::getMaterialName, bomHeader.getMaterialName())
76 76 .eq(StringUtils.isNotEmpty(bomHeader.getCompanyCode()), BomHeader::getCompanyCode, bomHeader.getCompanyCode());
77 77  
78 78 if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){
... ...
src/main/java/com/huaheng/pc/config/carrier/controller/CarrierController.java
... ... @@ -64,7 +64,7 @@ public class CarrierController extends BaseController {
64 64 lambdaQueryWrapper.gt(StringUtils.isNotEmpty(createdBegin), Carrier::getCreated, createdBegin)
65 65 .lt(StringUtils.isNotEmpty(createdEnd), Carrier::getCreated, createdEnd)
66 66 .eq(StringUtils.isNotEmpty(carrier.getCode()), Carrier::getCode, carrier.getCode())
67   - .eq(StringUtils.isNotEmpty(carrier.getName()), Carrier::getName, carrier.getName())
  67 + .like(StringUtils.isNotEmpty(carrier.getName()), Carrier::getName, carrier.getName())
68 68 .eq(Carrier::getWarehouseCode, ShiroUtils.getWarehouseCode());
69 69  
70 70 if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){
... ...
src/main/java/com/huaheng/pc/config/company/service/CompanyServiceImpl.java
... ... @@ -87,11 +87,11 @@ public class CompanyServiceImpl extends ServiceImpl&lt;CompanyMapper, Company&gt; impl
87 87 warehouseCompanyService.remove(lambdaQueryWrapper.eq(WarehouseCompany::getCompanyId, company.getId()));
88 88 //添加货主仓库关联
89 89 WarehouseCompany record = new WarehouseCompany();
90   - for (int i=0; i<warehouse.length-1; i++)
  90 + for (int i=0; i<warehouse.length; i++)
91 91 {
92 92 record.setCompanyId(company.getId());
93 93 record.setCompanyCode(company.getCode());
94   - record.setWarehouseCode(warehouse[i+1]);
  94 + record.setWarehouseCode(warehouse[i]);
95 95 warehouseCompanyService.save(record);
96 96 }
97 97 //更新货主
... ...
src/main/java/com/huaheng/pc/config/configValue/service/ConfigValueService.java
... ... @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
6 6 import com.huaheng.pc.config.configValue.domain.ConfigValue;
7 7 import com.huaheng.pc.config.configValue.mapper.ConfigValueMapper;
8 8 import org.springframework.stereotype.Service;
  9 +import org.springframework.transaction.annotation.Transactional;
9 10  
10 11 import java.util.List;
11 12 @Service
... ... @@ -17,6 +18,7 @@ public class ConfigValueService extends ServiceImpl&lt;ConfigValueMapper, ConfigVal
17 18 * @param newWarehouseCode 新仓库编码
18 19 * @return 是否复制成功
19 20 */
  21 + @Transactional
20 22 public boolean configValueCopy(String warehouseCode, String newWarehouseCode){
21 23 log.trace("开始复制系统参数配置表");
22 24 LambdaQueryWrapper<ConfigValue> lambdaQueryWrapper = Wrappers.lambdaQuery();
... ...
src/main/java/com/huaheng/pc/config/container/mapper/ContainerMapper.java
... ... @@ -16,5 +16,7 @@ public interface ContainerMapper extends BaseMapper&lt;Container&gt; {
16 16  
17 17 Container findAllByCode(@Param("code") String code);
18 18  
  19 + int addList(@Param("containers") List<Container> containers);
  20 +
19 21  
20 22 }
21 23 \ No newline at end of file
... ...
src/main/java/com/huaheng/pc/config/container/service/ContainerServiceImpl.java
... ... @@ -31,6 +31,7 @@ public class ContainerServiceImpl extends ServiceImpl&lt;ContainerMapper, Container
31 31 @Override
32 32 public AjaxResult<List<Container>> insertContainer(String type, Integer quantity) {
33 33 List<Container> containerList = new ArrayList<>();
  34 + List<Container> containers =new ArrayList<>();
34 35 Integer number = getNumber(type);
35 36 for(int i=0; i<quantity; i++) {
36 37 number++;
... ... @@ -45,10 +46,13 @@ public class ContainerServiceImpl extends ServiceImpl&lt;ContainerMapper, Container
45 46 container.setEnable(true);
46 47 container.setCompanyCode(ShiroUtils.getCompanyCodeList().get(0));
47 48 container.setWarehouseCode(ShiroUtils.getWarehouseCode());
48   - this.save(container);
49   - containerList.add(container);
  49 + containers.add(container);
  50 + if( i>0 && (i%1000==0 || i == quantity-1)){
  51 + containerMapper.addList(containers);
  52 + containers = new ArrayList<>();
  53 + }
50 54 }
51   - return AjaxResult.success(containerList);
  55 + return AjaxResult.success(containers);
52 56 }
53 57  
54 58 private Integer getNumber(String type) {
... ...
src/main/java/com/huaheng/pc/config/containerType/controller/ContainerTypeController.java
... ... @@ -63,6 +63,7 @@ public class ContainerTypeController extends BaseController
63 63 lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin),ContainerType::getCreated, createdBegin)
64 64 .le(StringUtils.isNotEmpty(createdEnd), ContainerType::getCreated, createdEnd)
65 65 .eq(ContainerType::getWarehouseCode,ShiroUtils.getWarehouseCode())
  66 + .in(ContainerType::getCompanyCode,ShiroUtils.getCompanyCodeList())
66 67 .eq(StringUtils.isNotEmpty(containerType.getCode()),ContainerType::getCode,containerType.getCode())
67 68 .like(StringUtils.isNotEmpty(containerType.getName()),ContainerType::getName,containerType.getName());;
68 69  
... ...
src/main/java/com/huaheng/pc/config/containerType/service/ContainerTypeServiceImpl.java
... ... @@ -3,14 +3,17 @@ package com.huaheng.pc.config.containerType.service;
3 3 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
4 4 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
5 5 import com.huaheng.common.utils.security.ShiroUtils;
  6 +import com.huaheng.pc.config.configValue.domain.ConfigValue;
6 7 import org.springframework.stereotype.Service;
7   -
  8 +import javax.annotation.Resource;
8 9 import java.util.List;
9 10 import java.util.Map;
10 11  
11 12 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
12 13 import com.huaheng.pc.config.containerType.domain.ContainerType;
13 14 import com.huaheng.pc.config.containerType.mapper.ContainerTypeMapper;
  15 +import com.huaheng.pc.config.containerType.service.ContainerTypeService;
  16 +import org.springframework.transaction.annotation.Transactional;
14 17  
15 18 @Service("containerType")
16 19 public class ContainerTypeServiceImpl extends ServiceImpl<ContainerTypeMapper, ContainerType> implements ContainerTypeService{
... ...
src/main/java/com/huaheng/pc/config/customer/controller/CustomerController.java
... ... @@ -66,7 +66,7 @@ public class CustomerController extends BaseController {
66 66 lambdaQueryWrapper.gt(StringUtils.isNotEmpty(createdBegin), Customer::getCreated, createdBegin)
67 67 .lt(StringUtils.isNotEmpty(createdEnd), Customer::getCreated, createdEnd)
68 68 .eq(StringUtils.isNotEmpty(customer.getCode()), Customer::getCode, customer.getCode())
69   - .eq(StringUtils.isNotEmpty(customer.getName()), Customer::getName, customer.getName())
  69 + .like(StringUtils.isNotEmpty(customer.getName()), Customer::getName, customer.getName())
70 70 .eq(Customer::getDeleted, false)
71 71 .eq(Customer::getWarehouseCode, ShiroUtils.getWarehouseCode())
72 72 .orderByDesc(Customer::getCreated);
... ...
src/main/java/com/huaheng/pc/config/cycleCountPreference/service/CycleCountPreferenceService.java
... ... @@ -73,6 +73,7 @@ public class CycleCountPreferenceService extends ServiceImpl&lt;CycleCountPreferenc
73 73 * @param newWarehouseCode 新仓库编码
74 74 * @return 是否复制成功
75 75 */
  76 + @Transactional
76 77 public boolean cycleCountPreferenceCopy(String warehouseCode, String newWarehouseCode) {
77 78 log.trace("开始复盘点首选项表");
78 79 LambdaQueryWrapper<CycleCountPreference> lambdaQueryWrapper = Wrappers.lambdaQuery();
... ...
src/main/java/com/huaheng/pc/config/excelTemplate/controller/excelTemplateController.java
... ... @@ -59,7 +59,7 @@ public class excelTemplateController extends BaseController {
59 59 Integer pageSize = pageDomain.getPageSize();
60 60 lambdaQueryWrapper.gt(StringUtils.isNotEmpty(createdBegin), ExcelTemplate::getCreated, createdBegin)
61 61 .lt(StringUtils.isNotEmpty(createdEnd), ExcelTemplate::getCreated, createdEnd)
62   - .eq(StringUtils.isNotEmpty(excelTemplate.getName()), ExcelTemplate::getName, excelTemplate.getName())
  62 + .like(StringUtils.isNotEmpty(excelTemplate.getName()), ExcelTemplate::getName, excelTemplate.getName())
63 63 .eq(ExcelTemplate::getWarehouseCode, ShiroUtils.getWarehouseCode())
64 64 .in(ExcelTemplate::getCompanyCode, ShiroUtils.getCompanyCodeList());
65 65  
... ...
src/main/java/com/huaheng/pc/config/location/controller/LocationController.java
... ... @@ -76,6 +76,7 @@ public class LocationController extends BaseController {
76 76 Integer pageSize = pageDomain.getPageSize();
77 77 lambdaQueryWrapper.gt(StringUtils.isNotEmpty(createdBegin), Location::getCreated, createdBegin)
78 78 .lt(StringUtils.isNotEmpty(createdEnd), Location::getCreated, createdEnd)
  79 + .eq(Location::getWarehouseCode,ShiroUtils.getWarehouseCode())
79 80 .eq(StringUtils.isNotEmpty(location.getCode()), Location::getCode, location.getCode())
80 81 .eq(StringUtils.isNotEmpty(location.getName()), Location::getName,location.getName())
81 82 .eq(StringUtils.isNotEmpty(location.getContainerCode()), Location::getContainerCode, location.getContainerCode())
... ...
src/main/java/com/huaheng/pc/config/location/mapper/LocationMapper.java
... ... @@ -7,6 +7,8 @@ import org.apache.ibatis.annotations.Param;
7 7 import java.util.LinkedHashMap;
8 8 import java.util.List;
9 9  
  10 +import java.util.List;
  11 +
10 12 public interface LocationMapper extends BaseMapper<Location> {
11 13  
12 14 void updateStatus(@Param("warehouseCode") String warehouseCode, @Param("code") String code, @Param("status") String status);
... ... @@ -15,8 +17,11 @@ public interface LocationMapper extends BaseMapper&lt;Location&gt; {
15 17  
16 18 Location position(String locatingRule);
17 19  
  20 + int addList(@Param("locations") List<Location> locations);
  21 +
18 22 Location getAllLocation(@Param("warehouseCode") String warehouseCode, @Param("type") String type);
19 23  
20 24 //库位利用率
21 25 List<LinkedHashMap<String, Object>> getLocationProp();
  26 +
22 27 }
23 28 \ No newline at end of file
... ...
src/main/java/com/huaheng/pc/config/location/service/LocationServiceImpl.java
... ... @@ -142,7 +142,21 @@ public class LocationServiceImpl extends ServiceImpl&lt;LocationMapper, Location&gt; i
142 142 }
143 143 }
144 144 }
145   - return locationService.saveBatch(locations);
  145 + int num =0;
  146 + List<Location> locations1 = new ArrayList<>();
  147 + if(locations.size() >1000 ){
  148 + for(Location item : locations){
  149 + num++;
  150 + locations1.add(item);
  151 + if(num % 1000 ==0 || num == locations.size()){
  152 + locationMapper.addList(locations1);
  153 + locations1=new ArrayList<>();
  154 + }
  155 + }
  156 + }else {
  157 + locationMapper.addList(locations);
  158 + }
  159 + return true;
146 160 }
147 161  
148 162 @Override
... ...
src/main/java/com/huaheng/pc/config/locationType/domain/LocationType.java
... ... @@ -39,19 +39,19 @@ public class LocationType implements Serializable {
39 39 * 长
40 40 */
41 41 @TableField(value = "length")
42   - private Integer length;
  42 + private String length;
43 43  
44 44 /**
45 45 * 宽
46 46 */
47 47 @TableField(value = "width")
48   - private Integer width;
  48 + private String width;
49 49  
50 50 /**
51 51 * 高
52 52 */
53 53 @TableField(value = "height")
54   - private Integer height;
  54 + private String height;
55 55  
56 56 /**
57 57 * 最大重量
... ...
src/main/java/com/huaheng/pc/config/locationType/service/LocationTypeServiceImpl.java
... ... @@ -8,6 +8,7 @@ import com.huaheng.pc.config.cycleCountPreference.domain.CycleCountPreference;
8 8 import com.huaheng.pc.config.locationType.domain.LocationType;
9 9 import com.huaheng.pc.config.locationType.mapper.LocationTypeMapper;
10 10 import org.springframework.stereotype.Service;
  11 +import org.springframework.transaction.annotation.Transactional;
11 12  
12 13 import java.util.List;
13 14 import java.util.Map;
... ... @@ -31,6 +32,7 @@ public class LocationTypeServiceImpl extends ServiceImpl&lt;LocationTypeMapper, Loc
31 32 * @return 是否复制成功
32 33 */
33 34 @Override
  35 + @Transactional
34 36 public boolean locationTypeCopy(String warehouseCode, String newWarehouseCode) {
35 37 log.trace("开始复盘点首选项表");
36 38 LambdaQueryWrapper<LocationType> lambdaQueryWrapper = Wrappers.lambdaQuery();
... ...
src/main/java/com/huaheng/pc/config/material/controller/MaterialController.java
... ... @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
4 4 import com.baomidou.mybatisplus.core.metadata.IPage;
5 5 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
6 6 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  7 +import com.huaheng.common.exception.service.ServiceException;
  8 +import com.huaheng.common.support.Convert;
7 9 import com.huaheng.common.utils.StringUtils;
8 10 import com.huaheng.common.utils.poi.ExcelUtil;
9 11 import com.huaheng.common.utils.security.ShiroUtils;
... ... @@ -16,6 +18,8 @@ import com.huaheng.framework.web.page.TableDataInfo;
16 18 import com.huaheng.framework.web.page.TableSupport;
17 19 import com.huaheng.pc.config.material.domain.Material;
18 20 import com.huaheng.pc.config.material.service.MaterialService;
  21 +import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail;
  22 +import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService;
19 23 import io.swagger.annotations.Api;
20 24 import io.swagger.annotations.ApiOperation;
21 25 import io.swagger.annotations.ApiParam;
... ... @@ -37,6 +41,8 @@ public class MaterialController extends BaseController {
37 41  
38 42 @Resource
39 43 private MaterialService materialService;
  44 + @Resource
  45 + private InventoryDetailService inventoryDetailService;
40 46  
41 47 @RequiresPermissions("config:material:view")
42 48 @GetMapping()
... ... @@ -66,11 +72,10 @@ public class MaterialController extends BaseController {
66 72 lambda.gt(StringUtils.isNotEmpty(createdBegin), Material::getCreated, createdBegin)
67 73 .lt(StringUtils.isNotEmpty(createdEnd), Material::getCreated, createdEnd)
68 74 .eq(StringUtils.isNotEmpty(material.getCode()), Material::getCode, material.getCode())
69   - .eq(StringUtils.isNotEmpty(material.getName()), Material::getName, material.getName())
  75 + .like(StringUtils.isNotEmpty(material.getName()), Material::getName, material.getName())
70 76 .eq(StringUtils.isNotEmpty(material.getType()), Material::getType, material.getType())
71 77 .like(StringUtils.isNotEmpty(material.getSpec()), Material::getSpec, material.getSpec())
72 78 .eq(Material::getWarehouseCode, ShiroUtils.getWarehouseCode())
73   - .in(Material::getCompanyCode, ShiroUtils.getCompanyCodeList())
74 79 .eq(Material::getDeleted, false);
75 80  
76 81 if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){
... ... @@ -139,6 +144,16 @@ public class MaterialController extends BaseController {
139 144 if (StringUtils.isEmpty(ids)){
140 145 return AjaxResult.error("id不能为空");
141 146 } else {
  147 + for(Integer id :Convert.toIntArray(ids)){
  148 + Material material = materialService.getById(id);
  149 + LambdaQueryWrapper<InventoryDetail> lamb = Wrappers.lambdaQuery();
  150 + lamb.eq(InventoryDetail::getWarehouseCode,ShiroUtils.getWarehouseCode())
  151 + .eq(InventoryDetail::getMaterialCode,material.getCode());
  152 + List<InventoryDetail> inventoryDetails = inventoryDetailService.list(lamb);
  153 + if(inventoryDetails != null || inventoryDetails.size() > 0){
  154 + throw new ServiceException("id为"+id+"的物料有库存");
  155 + }
  156 + }
142 157 return materialService.removeByIds(ids);
143 158 }
144 159 }
... ...
src/main/java/com/huaheng/pc/config/materialMultiple/controller/MaterialMultipleController.java
... ... @@ -14,6 +14,8 @@ import com.huaheng.framework.web.domain.AjaxResult;
14 14 import com.huaheng.framework.web.page.PageDomain;
15 15 import com.huaheng.framework.web.page.TableDataInfo;
16 16 import com.huaheng.framework.web.page.TableSupport;
  17 +import com.huaheng.pc.config.material.domain.Material;
  18 +import com.huaheng.pc.config.material.service.MaterialService;
17 19 import com.huaheng.pc.config.materialMultiple.domain.MaterialMultiple;
18 20 import com.huaheng.pc.config.materialMultiple.service.MaterialMultipleServiceImpl;
19 21 import io.swagger.annotations.ApiOperation;
... ... @@ -33,6 +35,8 @@ public class MaterialMultipleController extends BaseController {
33 35  
34 36 @Resource
35 37 private MaterialMultipleServiceImpl materialMultipleService;
  38 + @Resource
  39 + private MaterialService materialService;
36 40  
37 41 private String prefix = "config/materialMultiple";
38 42  
... ... @@ -60,7 +64,7 @@ public class MaterialMultipleController extends BaseController {
60 64 lambdaQueryWrapper.gt(StringUtils.isNotEmpty(createdBegin), MaterialMultiple::getCreated, createdBegin)
61 65 .lt(StringUtils.isNotEmpty(createdEnd), MaterialMultiple::getCreated, createdEnd)
62 66 .eq(StringUtils.isNotEmpty(materialMultiple.getMaterialCode()), MaterialMultiple::getMaterialCode, materialMultiple.getMaterialCode())
63   - .eq(StringUtils.isNotEmpty(materialMultiple.getMaterialName()), MaterialMultiple::getMaterialName, materialMultiple.getMaterialName())
  67 + .like(StringUtils.isNotEmpty(materialMultiple.getMaterialName()), MaterialMultiple::getMaterialName, materialMultiple.getMaterialName())
64 68 .in(MaterialMultiple::getCompanyCode, ShiroUtils.getCompanyCodeList())
65 69 .eq(MaterialMultiple::getWarehouseCode, ShiroUtils.getWarehouseCode());
66 70  
... ... @@ -92,15 +96,25 @@ public class MaterialMultipleController extends BaseController {
92 96 @PostMapping("/add")
93 97 @ResponseBody
94 98 public AjaxResult addSave(MaterialMultiple materialMultiple) {
  99 + LambdaQueryWrapper<Material> lam = Wrappers.lambdaQuery();
  100 + lam.eq(Material::getCode,materialMultiple.getMaterialCode())
  101 + .eq(Material::getWarehouseCode,ShiroUtils.getWarehouseCode());
  102 + Material material = materialService.getOne(lam);
  103 + if(material ==null){
  104 + return AjaxResult.error("物料编码错误,系统没有此物料");
  105 + }
95 106 LambdaQueryWrapper<MaterialMultiple> lambda = Wrappers.lambdaQuery();
96 107 lambda.eq(MaterialMultiple::getCompanyCode,materialMultiple.getCompanyCode())
97 108 .eq(MaterialMultiple::getMaterialCode, materialMultiple)
98 109 .eq(MaterialMultiple::getWarehouseCode, ShiroUtils.getWarehouseCode())
99 110 .eq(MaterialMultiple::getUnitId1, materialMultiple.getUnitId1())
100 111 .eq(MaterialMultiple::getUnitId2, materialMultiple.getUnitId2());
101   - if (materialMultipleService.list(lambda) == null){
  112 + if (materialMultipleService.list(lambda) != null){
102 113 return AjaxResult.error("该信息已存在");
103 114 }
  115 + materialMultiple.setMaterialName(material.getName());
  116 + materialMultiple.setMaterialSpec(material.getSpec());
  117 + materialMultiple.setWarehouseCode(ShiroUtils.getWarehouseCode());
104 118 materialMultiple.setCreatedBy(ShiroUtils.getLoginName());
105 119 materialMultiple.setLastUpdatedBy(ShiroUtils.getLoginName());
106 120 return toAjax(materialMultipleService.save(materialMultiple));
... ...
src/main/java/com/huaheng/pc/config/materialType/controller/MaterialTypeController.java
... ... @@ -71,7 +71,7 @@ public class MaterialTypeController extends BaseController {
71 71 .eq(MaterialType::getWarehouseCode, ShiroUtils.getWarehouseCode())
72 72 .eq(StringUtils.isNotEmpty(materialType.getCode()),
73 73 MaterialType::getCode, materialType.getCode())
74   - .eq(StringUtils.isNotEmpty(materialType.getName()), MaterialType::getName, materialType.getName());
  74 + .like(StringUtils.isNotEmpty(materialType.getName()), MaterialType::getName, materialType.getName());
75 75  
76 76 if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){
77 77 /**
... ...
src/main/java/com/huaheng/pc/config/materialUnit/controller/MaterialUnitController.java
... ... @@ -101,7 +101,8 @@ public class MaterialUnitController extends BaseController {
101 101 @ResponseBody
102 102 public AjaxResult addSave(MaterialUnit materialUnit) {
103 103 LambdaQueryWrapper<Material> lambdaQueryWrapper = Wrappers.lambdaQuery();
104   - lambdaQueryWrapper.eq(Material::getCode, materialUnit.getMaterialCode());
  104 + lambdaQueryWrapper.eq(Material::getCode, materialUnit.getMaterialCode())
  105 + .eq(Material::getWarehouseCode,ShiroUtils.getWarehouseCode());
105 106 Material material = materialService.getOne(lambdaQueryWrapper);
106 107 if (material == null){
107 108 return AjaxResult.error(" 该物料编码不存在");
... ... @@ -110,12 +111,13 @@ public class MaterialUnitController extends BaseController {
110 111 LambdaQueryWrapper<MaterialUnit> lambda = Wrappers.lambdaQuery();
111 112 lambda.eq(MaterialUnit::getWarehouseCode, ShiroUtils.getWarehouseCode())
112 113 .eq(MaterialUnit::getCompanyCode, materialUnit.getCompanyCode())
113   - .eq(MaterialUnit::getMaterialCode, materialUnit.getMaterialCode())
114   - .eq(MaterialUnit::getUnit, materialUnit.getUnit());
  114 + .eq(MaterialUnit::getWarehouseCode,ShiroUtils.getWarehouseCode())
  115 + .eq(MaterialUnit::getMaterialCode, materialUnit.getMaterialCode())
  116 + .eq(MaterialUnit::getUnit, materialUnit.getUnit());
115 117 if (materialUnitService.getOne(lambda) != null){
116 118 return AjaxResult.error("当前新增记录已存在");
117 119 }
118   -
  120 + materialUnit.setWarehouseCode(ShiroUtils.getWarehouseCode());
119 121 materialUnit.setMaterialName(material.getName());
120 122 materialUnit.setMaterialSpec(material.getSpec());
121 123 materialUnit.setCreatedBy(ShiroUtils.getLoginName());
... ...
src/main/java/com/huaheng/pc/config/receiptPreference/controller/ReceiptPreferenceController.java
... ... @@ -61,7 +61,7 @@ public class ReceiptPreferenceController extends BaseController {
61 61 .eq(ReceiptPreference::getWarehouseCode, ShiroUtils.getWarehouseCode())
62 62 .eq(StringUtils.isNotEmpty(receiptPreference.getCode()),
63 63 ReceiptPreference::getCode, receiptPreference.getCode())
64   - .eq(StringUtils.isNotEmpty(receiptPreference.getName()),
  64 + .like(StringUtils.isNotEmpty(receiptPreference.getName()),
65 65 ReceiptPreference::getName, receiptPreference.getName())
66 66 .like(StringUtils.isNotEmpty(receiptPreference.getReceivingFlow()),
67 67 ReceiptPreference::getReceivingFlow, receiptPreference.getReceivingFlow());
... ...
src/main/java/com/huaheng/pc/config/receiptPreference/service/ReceiptPreferenceService.java
... ... @@ -9,6 +9,8 @@ import java.util.List;
9 9 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
10 10 import com.huaheng.pc.config.receiptPreference.mapper.ReceiptPreferenceMapper;
11 11 import com.huaheng.pc.config.receiptPreference.domain.ReceiptPreference;
  12 +import org.springframework.transaction.annotation.Transactional;
  13 +
12 14 @Service
13 15 public class ReceiptPreferenceService extends ServiceImpl<ReceiptPreferenceMapper, ReceiptPreference> {
14 16  
... ... @@ -19,6 +21,7 @@ public class ReceiptPreferenceService extends ServiceImpl&lt;ReceiptPreferenceMappe
19 21 * @param newWarehouseCode 新仓库编码
20 22 * @return 是否复制成功
21 23 */
  24 + @Transactional
22 25 public boolean receiptPreferenceCopy(String warehouseCode, String newWarehouseCode) {
23 26 log.trace("开始入库首选项表");
24 27 LambdaQueryWrapper<ReceiptPreference> lambdaQueryWrapper = Wrappers.lambdaQuery();
... ...
src/main/java/com/huaheng/pc/config/receiptType/service/ReceiptTypeServiceImpl.java
... ... @@ -9,6 +9,7 @@ import com.huaheng.pc.config.address.domain.Address;
9 9 import com.huaheng.pc.config.receiptType.domain.ReceiptType;
10 10 import com.huaheng.pc.config.receiptType.mapper.ReceiptTypeMapper;
11 11 import org.springframework.stereotype.Service;
  12 +import org.springframework.transaction.annotation.Transactional;
12 13  
13 14 import java.util.List;
14 15 import java.util.Map;
... ... @@ -31,6 +32,7 @@ public class ReceiptTypeServiceImpl extends ServiceImpl&lt;ReceiptTypeMapper, Recei
31 32 * @return 是否复制成功
32 33 */
33 34 @Override
  35 + @Transactional
34 36 public Boolean receiptTypeCopy(String warehouseCode, String newWarehouseCode) {
35 37 log.trace("开始复制入库类型表");
36 38 LambdaQueryWrapper<ReceiptType> lambdaQueryWrapper = Wrappers.lambdaQuery();
... ...
src/main/java/com/huaheng/pc/config/shipmentPreference/service/ShipmentPreferenceServiceImpl.java
... ... @@ -19,6 +19,7 @@ import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader;
19 19 import com.huaheng.pc.shipment.shipmentHeader.service.ShipmentHeaderService;
20 20 import org.springframework.beans.factory.annotation.Autowired;
21 21 import org.springframework.stereotype.Service;
  22 +import org.springframework.transaction.annotation.Transactional;
22 23  
23 24 import java.util.ArrayList;
24 25 import java.util.List;
... ... @@ -118,6 +119,7 @@ public class ShipmentPreferenceServiceImpl extends ServiceImpl&lt;ShipmentPreferenc
118 119 * @return 是否复制成功
119 120 */
120 121 @Override
  122 + @Transactional
121 123 public boolean shipmentPreferenceCopy(String warehouseCode, String newWarehouseCode) {
122 124 log.trace("开始复制出库首选项表");
123 125 LambdaQueryWrapper<ShipmentPreference> lambdaQueryWrapper = Wrappers.lambdaQuery();
... ...
src/main/java/com/huaheng/pc/config/shipmentType/service/ShipmentTypeServiceImpl.java
... ... @@ -7,6 +7,7 @@ import com.huaheng.pc.config.shipmentPreference.domain.ShipmentPreference;
7 7 import com.huaheng.pc.config.shipmentType.domain.ShipmentType;
8 8 import com.huaheng.pc.config.shipmentType.mapper.ShipmentTypeMapper;
9 9 import org.springframework.stereotype.Service;
  10 +import org.springframework.transaction.annotation.Transactional;
10 11  
11 12 import java.util.List;
12 13  
... ... @@ -21,6 +22,7 @@ public class ShipmentTypeServiceImpl extends ServiceImpl&lt;ShipmentTypeMapper, Shi
21 22 * @return 是否复制成功
22 23 */
23 24 @Override
  25 + @Transactional
24 26 public boolean ShipmentTypeCopy(String warehouseCode, String newWarehouseCode) {
25 27 log.trace("开始复制出库类型表");
26 28 LambdaQueryWrapper<ShipmentType> lambdaQueryWrapper = Wrappers.lambdaQuery();
... ...
src/main/java/com/huaheng/pc/config/statusFlow/service/StatusFlowHeaderService.java
... ... @@ -26,6 +26,7 @@ public class StatusFlowHeaderService extends ServiceImpl&lt;StatusFlowHeaderMapper,
26 26 public List<Map<String, Object>> flowList(String recordType){
27 27 LambdaQueryWrapper<StatusFlowHeader> lambda = Wrappers.lambdaQuery();
28 28 lambda.select(StatusFlowHeader::getCode, StatusFlowHeader::getName)
  29 + .eq(StatusFlowHeader::getWarehouseCode,ShiroUtils.getWarehouseCode())
29 30 .eq(StatusFlowHeader::getRecordType, recordType);
30 31 return this.listMaps(lambda);
31 32 }
... ...
src/main/java/com/huaheng/pc/config/supplier/controller/SupplierController.java
... ... @@ -66,7 +66,7 @@ public class SupplierController extends BaseController {
66 66 lambdaQueryWrapper.gt(StringUtils.isNotEmpty(createdBegin), Supplier::getCreated, createdBegin)
67 67 .lt(StringUtils.isNotEmpty(createdEnd), Supplier::getCreated, createdEnd)
68 68 .eq(StringUtils.isNotEmpty(supplier.getCode()), Supplier::getCode, supplier.getCode())
69   - .eq(StringUtils.isNotEmpty(supplier.getName()), Supplier::getName, supplier.getName())
  69 + .like(StringUtils.isNotEmpty(supplier.getName()), Supplier::getName, supplier.getName())
70 70 .eq(Supplier::getWarehouseCode, ShiroUtils.getWarehouseCode())
71 71 .eq(Supplier::getDeleted,false)
72 72 .orderByDesc(Supplier::getCreated);
... ...
src/main/java/com/huaheng/pc/config/warehouse/controller/WareHouseController.java
... ... @@ -169,7 +169,7 @@ public class WareHouseController extends BaseController {
169 169 return prefix+"/copy";
170 170 }
171 171 /**
172   - * 修改保存仓库
  172 + * 复制仓库
173 173 */
174 174 @RequiresPermissions("config:warehouse:copy")
175 175 @Log(title = "通用-仓库管理", operating = "复制仓库", action = BusinessType.INSERT)
... ...
src/main/java/com/huaheng/pc/config/warehouse/mapper/WarehouseMapper.java
... ... @@ -17,6 +17,9 @@ public interface WarehouseMapper extends BaseMapper&lt;Warehouse&gt; {
17 17  
18 18 int companyCopy(@Param("warehouseCode") String warehouseCode, @Param("newWarehouseCode")String newWarehouseCode);
19 19  
  20 + int userCopy(@Param("warehouseCode") String warehouseCode, @Param("newWarehouseCode")String newWarehouseCode);
  21 +
  22 +
20 23 List<Warehouse> selectListEntityByEqual(Warehouse condition);
21 24  
22 25 }
23 26 \ No newline at end of file
... ...
src/main/java/com/huaheng/pc/config/warehouse/service/WarehouseServiceImpl.java
... ... @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
5 5 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
6 6 import com.huaheng.common.exception.service.ServiceException;
7 7 import com.huaheng.pc.config.FilterConfigHeader.service.FilterConfigHeaderService;
  8 +import com.huaheng.pc.config.address.domain.Address;
8 9 import com.huaheng.pc.config.address.service.AddressService;
9 10 import com.huaheng.pc.config.configValue.service.ConfigValueService;
10 11 import com.huaheng.pc.config.containerType.service.ContainerTypeService;
... ... @@ -20,6 +21,7 @@ import com.huaheng.pc.config.warehouse.mapper.WarehouseMapper;
20 21 import com.huaheng.pc.config.warehouseCompany.domain.WarehouseCompany;
21 22 import com.huaheng.pc.config.warehouseCompany.service.WarehouseCompanyService;
22 23 import com.huaheng.pc.config.waveMaster.service.WaveMasterService;
  24 +import com.huaheng.pc.config.zone.service.ZoneService;
23 25 import com.huaheng.pc.system.dict.service.IDictTypeService;
24 26 import com.huaheng.pc.system.menu.service.IMenuService;
25 27 import com.huaheng.pc.system.role.service.IRoleService;
... ... @@ -68,6 +70,8 @@ public class WarehouseServiceImpl extends ServiceImpl&lt;WarehouseMapper, Warehouse
68 70 private StatusFlowHeaderService statusFlowHeaderService;
69 71 @Autowired
70 72 private WaveMasterService waveMasterService;
  73 + @Autowired
  74 + private ZoneService zoneService;
71 75  
72 76 @Override
73 77 public List<Map<String, Object>> getWarehouseList(Integer id) {
... ... @@ -79,15 +83,15 @@ public class WarehouseServiceImpl extends ServiceImpl&lt;WarehouseMapper, Warehouse
79 83 List<Map<String, Object>> warehouseList = warehouseMapper.selectMaps(lambdaQueryWrapper);
80 84  
81 85 LambdaQueryWrapper<WarehouseCompany> lambdaQueryWrapper1 = Wrappers.lambdaQuery();
82   - lambdaQueryWrapper1.select(WarehouseCompany::getCompanyCode, WarehouseCompany::getWarehouseCode)
  86 + lambdaQueryWrapper1.select(WarehouseCompany::getCompanyCode,WarehouseCompany::getWarehouseCode)
83 87 .eq(WarehouseCompany::getCompanyId,id);
84 88 List<Map<String, Object>> warehouseCompanies = warehouseCompanyService.listMaps(lambdaQueryWrapper1);
85 89  
86 90 for(Map<String, Object> item : warehouseList){
87 91 item.put("flag",false);
88 92 item.put("value", item.get("code").toString());
89   - for (Map<String, Object> warehouseId:warehouseCompanies) {
90   - if (item.get("code").toString().equals(warehouseId.get("warehouseCode").toString())) {
  93 + for (Map<String, Object> warehouseI:warehouseCompanies) {
  94 + if (item.get("code").toString().equals(warehouseI.get("warehouseCode").toString())) {
91 95 item.put("flag",true);
92 96 break;
93 97 }
... ... @@ -139,6 +143,10 @@ public class WarehouseServiceImpl extends ServiceImpl&lt;WarehouseMapper, Warehouse
139 143 if (!locationTypeService.locationTypeCopy(warehouseCode, newWarehouseCode)){
140 144 throw new ServiceException("复制库位类型表失败");
141 145 }
  146 + /* 复制库区表*/
  147 + if (!zoneService.zoneCopy(warehouseCode, newWarehouseCode)){
  148 + throw new ServiceException("复制库区类型表失败");
  149 + }
142 150 /* 复制盘点首选项表*/
143 151 if (!cycleCountPreferenceService.cycleCountPreferenceCopy(warehouseCode, newWarehouseCode)){
144 152 throw new ServiceException("复制盘点首选项表失败");
... ... @@ -163,6 +171,10 @@ public class WarehouseServiceImpl extends ServiceImpl&lt;WarehouseMapper, Warehouse
163 171 if (warehouseMapper.companyCopy(warehouseCode, newWarehouseCode) < 1){
164 172 throw new ServiceException("复制仓库货主关系表失败");
165 173 }
  174 + /* 复制仓库用户关系*/
  175 + if (warehouseMapper.userCopy(warehouseCode, newWarehouseCode) < 1){
  176 + throw new ServiceException("复制仓库货主关系表失败");
  177 + }
166 178 /* 复制角色*/
167 179 if (!roleService.roleCopy(warehouseCode, newWarehouseCode)){
168 180 throw new ServiceException("复制角色表失败");
... ...
src/main/java/com/huaheng/pc/config/waveMaster/service/WaveMasterService.java
... ... @@ -9,6 +9,7 @@ import com.huaheng.pc.config.waveFlowHeader.mapper.WaveFlowHeaderMapper;
9 9 import com.huaheng.pc.config.waveMaster.domain.WaveMaster;
10 10 import com.huaheng.pc.config.waveMaster.mapper.WaveMasterMapper;
11 11 import org.springframework.stereotype.Service;
  12 +import org.springframework.transaction.annotation.Transactional;
12 13  
13 14 import javax.annotation.Resource;
14 15  
... ... @@ -25,6 +26,7 @@ public class WaveMasterService extends ServiceImpl&lt;WaveMasterMapper, WaveMaster&gt;
25 26  
26 27  
27 28 //复制波次配置
  29 + @Transactional
28 30 public Boolean waveMasterCopy(String code,String newCode){
29 31 int i = 0;
30 32 //复制波次配置
... ...
src/main/java/com/huaheng/pc/config/zone/mapper/ZoneMapper.java
... ... @@ -2,6 +2,10 @@ package com.huaheng.pc.config.zone.mapper;
2 2  
3 3 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 4 import com.huaheng.pc.config.zone.domain.Zone;
  5 +import org.apache.ibatis.annotations.Param;
5 6  
6 7 public interface ZoneMapper extends BaseMapper<Zone> {
  8 +
  9 + /* 复制库区表*/
  10 + int zoneCopy(@Param("code") String code,@Param("newCode") String newCode);
7 11 }
8 12 \ No newline at end of file
... ...
src/main/java/com/huaheng/pc/config/zone/service/ZoneService.java
... ... @@ -9,4 +9,7 @@ import java.util.Map;
9 9 public interface ZoneService extends IService<Zone>{
10 10 public List<Map<String, Object>> getZoneCodeList();
11 11  
  12 + /* 复制库区表*/
  13 + boolean zoneCopy(String warehouseCode, String newWarehouseCode);
  14 +
12 15 }
... ...
src/main/java/com/huaheng/pc/config/zone/service/ZoneServiceImpl.java
... ... @@ -3,20 +3,39 @@ package com.huaheng.pc.config.zone.service;
3 3 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
4 4 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
5 5 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  6 +import com.huaheng.common.exception.service.ServiceException;
6 7 import com.huaheng.pc.config.zone.domain.Zone;
7 8 import com.huaheng.pc.config.zone.mapper.ZoneMapper;
8 9 import org.springframework.stereotype.Service;
  10 +import org.springframework.transaction.annotation.Transactional;
9 11  
  12 +import javax.annotation.Resource;
10 13 import java.util.List;
11 14 import java.util.Map;
12 15  
13 16 @Service("zone")
14 17 public class ZoneServiceImpl extends ServiceImpl<ZoneMapper, Zone> implements ZoneService {
15 18  
  19 + @Resource
  20 + private ZoneMapper zoneMapper;
  21 +
16 22 @Override
  23 + @Transactional
17 24 public List<Map<String, Object>> getZoneCodeList() {
18 25 LambdaQueryWrapper<Zone> lambda = Wrappers.lambdaQuery();
19 26 lambda.select(Zone::getId, Zone::getCode, Zone::getName);
20 27 return this.listMaps(lambda);
21 28 }
  29 +
  30 + @Override
  31 + @Transactional
  32 + public boolean zoneCopy(String warehouseCode, String newWarehouseCode) {
  33 + int i = 0;
  34 + //复制流程主表
  35 + i = zoneMapper.zoneCopy(warehouseCode,newWarehouseCode);
  36 + if(i < 1){
  37 + throw new ServiceException("复制菜单数据失败");
  38 + }
  39 + return true;
  40 + }
22 41 }
... ...
src/main/java/com/huaheng/pc/jasper/JasperController.java 0 → 100644
  1 +package com.huaheng.pc.jasper;
  2 +
  3 +import com.huaheng.common.jasper.DocType;
  4 +import com.huaheng.common.jasper.DocTypeUtil;
  5 +import com.huaheng.common.jasper.JasperreportUtils;
  6 +import net.sf.jasperreports.engine.*;
  7 +import net.sf.jasperreports.engine.util.JRLoader;
  8 +import org.springframework.core.io.ClassPathResource;
  9 +import org.springframework.web.bind.annotation.*;
  10 +
  11 +import javax.annotation.Resource;
  12 +import javax.servlet.http.HttpServletRequest;
  13 +import javax.servlet.http.HttpServletResponse;
  14 +import javax.sql.DataSource;
  15 +import java.io.File;
  16 +import java.io.IOException;
  17 +import java.io.InputStream;
  18 +import java.io.OutputStream;
  19 +import java.sql.Connection;
  20 +import java.sql.SQLException;
  21 +import java.util.ArrayList;
  22 +import java.util.HashMap;
  23 +import java.util.List;
  24 +import java.util.Map;
  25 +
  26 +@RestController
  27 +@RequestMapping("/api/jasper")
  28 +public class JasperController {
  29 +
  30 + @Resource
  31 + private DataSource dataSource;
  32 +
  33 +
  34 +
  35 + /**
  36 + * 转换为pdf在浏览器上展示
  37 + *
  38 + * @param reportName
  39 + * @param parameters
  40 + * @param response
  41 + * @throws SQLException
  42 + * @throws ClassNotFoundException
  43 + * @throws JRException
  44 + * @throws IOException
  45 + */
  46 +// @GetMapping("/{reportName}")
  47 + public void getReportByParam(
  48 + @PathVariable("reportName") final String reportName,
  49 + @RequestParam(required = false) Map<String, Object> parameters,
  50 + HttpServletResponse response) throws Exception {
  51 +
  52 + parameters = parameters == null ? new HashMap<>() : parameters;
  53 + //获取文件流
  54 + ClassPathResource resource = new ClassPathResource("jaspers" + File.separator + reportName + ".jasper");
  55 + InputStream jasperStream = resource.getInputStream();
  56 +
  57 + JasperReport jasperReport = (JasperReport) JRLoader.loadObject(jasperStream);
  58 + Connection connection =dataSource.getConnection();
  59 + JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, connection);
  60 + response.setContentType("application/pdf");
  61 + response.setHeader("Content-Disposition", "inline;");
  62 + final OutputStream outputStream = response.getOutputStream();
  63 + JasperExportManager.exportReportToPdfStream(jasperPrint, outputStream);
  64 + }
  65 +
  66 +
  67 +
  68 +
  69 + /**
  70 + * 转换为多种格式导出
  71 + *
  72 + * @param reportName
  73 + * @param parameters
  74 + * @param response
  75 + * @throws SQLException
  76 + * @throws ClassNotFoundException
  77 + * @throws JRException
  78 + * @throws IOException
  79 + */
  80 + @GetMapping("/{reportName}")
  81 + public void getReportByExcel(
  82 + @PathVariable("reportName") final String reportName,
  83 + @RequestParam(required = false) Map<String, Object> parameters,
  84 + HttpServletRequest request,
  85 + HttpServletResponse response) throws Exception {
  86 +
  87 + parameters = parameters == null ? new HashMap<>() : parameters;
  88 + String jasperPath ="C:/Users/Administrator/JaspersoftWorkspace/MyReports/" + reportName + ".jasper";
  89 + String docType="xml";
  90 + DocType type = DocTypeUtil.getEnumDocType(docType);
  91 + String fileName =reportName;
  92 + List list =new ArrayList();
  93 + Connection connection =dataSource.getConnection();
  94 + JasperreportUtils jasperreportUtils =new JasperreportUtils(request,response,request.getSession());
  95 + jasperreportUtils.createExportDocument(type,jasperPath,parameters,reportName,connection);
  96 +
  97 + }
  98 +
  99 +
  100 +}
... ...
src/main/java/com/huaheng/pc/monitor/errorlog/domain/ErrorLog.java
1 1 package com.huaheng.pc.monitor.errorlog.domain;
2 2  
  3 +import com.baomidou.mybatisplus.annotation.IdType;
  4 +import com.baomidou.mybatisplus.annotation.TableField;
  5 +import com.baomidou.mybatisplus.annotation.TableId;
  6 +import com.baomidou.mybatisplus.annotation.TableName;
3 7 import com.huaheng.framework.web.domain.BaseEntity;
4 8 import org.apache.commons.lang3.builder.ToStringBuilder;
5 9 import org.apache.commons.lang3.builder.ToStringStyle;
... ... @@ -11,40 +15,58 @@ import java.util.Date;
11 15 * @author huaheng
12 16 * @date 2018-12-4
13 17 */
  18 +
  19 +@TableName(value = "logging_event")
14 20 public class ErrorLog extends BaseEntity {
15 21  
16 22 private static final long serialVersionUID = 1L;
17 23 //错误编号
  24 + @TableId(value = "event_id", type = IdType.AUTO)
18 25 private Integer event_id;
19 26 //时间戳
  27 + @TableField(value = "timestmp")
20 28 private Long timestmp;
21 29 //格式化错误信息
  30 + @TableField(value = "formatted_message")
22 31 private String formatted_message;
23 32 //日志名
  33 + @TableField(value = "logger_name")
24 34 private String logger_name;
25 35 //级别
  36 + @TableField(value = "level_string")
26 37 private String level_string;
27 38 //线程名
  39 + @TableField(value = "thread_name")
28 40 private String thread_name;
29 41 //参数标志
  42 + @TableField(value = "reference_flag")
30 43 private String reference_flag;
31 44 //arg0参数
  45 + @TableField(value = "arg0")
32 46 private String arg0;
33 47 //arg1参数
  48 + @TableField(value = "arg1")
34 49 private String arg1;
35 50 //arg2参数
  51 + @TableField(value = "arg2")
36 52 private String arg2;
37 53 //arg3参数
  54 + @TableField(value = "arg3")
38 55 private String arg3;
39 56 //来电名称
  57 + @TableField(value = "caller_filename")
40 58 private String caller_filename;
41 59 //来电类
  60 + @TableField(value = "caller_class")
42 61 private String caller_class;
43 62 //来电方法
  63 + @TableField(value = "caller_method")
44 64 private String caller_method;
45 65 //来电线程
  66 + @TableField(value = "caller_line")
46 67 private String caller_line;
47 68 //发生时间
  69 + @TableField(value = "creatTime")
48 70 private Date creatTime;
49 71  
50 72 public Integer getEvent_id() {
... ...
src/main/java/com/huaheng/pc/monitor/job/controller/JobController.java 0 → 100644
  1 +package com.huaheng.pc.monitor.job.controller;
  2 +
  3 +import com.huaheng.common.utils.poi.ExcelUtil;
  4 +import com.huaheng.framework.aspectj.lang.annotation.Log;
  5 +import com.huaheng.framework.aspectj.lang.constant.BusinessType;
  6 +import com.huaheng.framework.web.controller.BaseController;
  7 +import com.huaheng.framework.web.domain.AjaxResult;
  8 +import com.huaheng.framework.web.page.TableDataInfo;
  9 +import com.huaheng.pc.monitor.job.domain.Job;
  10 +import com.huaheng.pc.monitor.job.service.IJobService;
  11 +import org.apache.shiro.authz.annotation.RequiresPermissions;
  12 +import org.springframework.beans.factory.annotation.Autowired;
  13 +import org.springframework.stereotype.Controller;
  14 +import org.springframework.ui.ModelMap;
  15 +import org.springframework.web.bind.annotation.*;
  16 +
  17 +import java.util.List;
  18 +
  19 +/**
  20 + * 调度任务信息操作处理
  21 + *
  22 + * @author huaheng
  23 + */
  24 +@Controller
  25 +@RequestMapping("/monitor/job")
  26 +public class JobController extends BaseController
  27 +{
  28 + private String prefix = "monitor/job";
  29 +
  30 + @Autowired
  31 + private IJobService jobService;
  32 +
  33 + @RequiresPermissions("monitor:job:view")
  34 + @GetMapping()
  35 + public String job()
  36 + {
  37 + return prefix + "/job";
  38 + }
  39 +
  40 + @RequiresPermissions("monitor:job:list")
  41 + @Log(title = "系统监控-定时任务", operating = "查看定时任务", action = BusinessType.GRANT)
  42 + @PostMapping("/list")
  43 + @ResponseBody
  44 + public TableDataInfo list(Job job)
  45 + {
  46 + startPage();
  47 + List<Job> list = jobService.selectJobList(job);
  48 + return getDataTable(list);
  49 + }
  50 +
  51 + @Log(title = "系统监控-定时任务", operating = "导出定时任务", action = BusinessType.EXPORT)
  52 + @RequiresPermissions("monitor:job:export")
  53 + @PostMapping("/export")
  54 + @ResponseBody
  55 + public AjaxResult export(Job job) throws Exception
  56 + {
  57 + try
  58 + {
  59 + List<Job> list = jobService.selectJobList(job);
  60 + ExcelUtil<Job> util = new ExcelUtil<Job>(Job.class);
  61 + return util.exportExcel(list, "job");
  62 + }
  63 + catch (Exception e)
  64 + {
  65 + return error("导出Excel失败,请联系网站管理员!");
  66 + }
  67 + }
  68 +
  69 + @Log(title = "系统监控-定时任务", operating = "删除定时任务", action = BusinessType.DELETE)
  70 + @RequiresPermissions("monitor:job:remove")
  71 + @PostMapping("/remove")
  72 + @ResponseBody
  73 + public AjaxResult remove(String ids)
  74 + {
  75 + try
  76 + {
  77 + jobService.deleteJobByIds(ids);
  78 + return success();
  79 + }
  80 + catch (Exception e)
  81 + {
  82 + e.printStackTrace();
  83 + return error(e.getMessage());
  84 + }
  85 + }
  86 +
  87 + /**
  88 + * 任务调度状态修改
  89 + */
  90 + @Log(title = "系统监控-定时任务", operating = "启用或暂停定时任务", action = BusinessType.UPDATE)
  91 + @RequiresPermissions("monitor:job:changeStatus")
  92 + @PostMapping("/changeStatus")
  93 + @ResponseBody
  94 + public AjaxResult changeStatus(Job job)
  95 + {
  96 + return toAjax(jobService.changeStatus(job));
  97 + }
  98 +
  99 + /**
  100 + * 任务调度立即执行一次
  101 + */
  102 + @Log(title = "系统监控-定时任务", operating = "执行定时任务", action = BusinessType.UPDATE)
  103 + @RequiresPermissions("monitor:job:start")
  104 + @PostMapping("/run")
  105 + @ResponseBody
  106 + public AjaxResult run(Job job)
  107 + {
  108 + return toAjax(jobService.run(job));
  109 + }
  110 +
  111 + /**
  112 + * 新增调度
  113 + */
  114 + @GetMapping("/add")
  115 + public String add()
  116 + {
  117 + return prefix + "/add";
  118 + }
  119 +
  120 + /**
  121 + * 新增保存调度
  122 + */
  123 + @Log(title = "系统监控-定时任务", operating = "新增定时任务", action = BusinessType.INSERT)
  124 + @RequiresPermissions("monitor:job:add")
  125 + @PostMapping("/add")
  126 + @ResponseBody
  127 + public AjaxResult addSave(Job job)
  128 + {
  129 + return toAjax(jobService.insertJobCron(job));
  130 + }
  131 +
  132 + /**
  133 + * 修改调度
  134 + */
  135 + @GetMapping("/edit/{id}")
  136 + public String edit(@PathVariable("id") Long id, ModelMap mmap)
  137 + {
  138 + mmap.put("job", jobService.selectJobById(id));
  139 + return prefix + "/edit";
  140 + }
  141 +
  142 + /**
  143 + * 修改保存调度
  144 + */
  145 + @Log(title = "系统监控-定时任务", operating = "修改定时任务", action = BusinessType.UPDATE)
  146 + @RequiresPermissions("monitor:job:edit")
  147 + @PostMapping("/edit")
  148 + @ResponseBody
  149 + public AjaxResult editSave(Job job)
  150 + {
  151 + return toAjax(jobService.updateJobCron(job));
  152 + }
  153 +}
... ...
src/main/java/com/huaheng/pc/monitor/job/controller/JobLogController.java 0 → 100644
  1 +package com.huaheng.pc.monitor.job.controller;
  2 +
  3 +import com.huaheng.common.utils.poi.ExcelUtil;
  4 +import com.huaheng.framework.aspectj.lang.annotation.Log;
  5 +import com.huaheng.framework.aspectj.lang.constant.BusinessType;
  6 +import com.huaheng.framework.web.controller.BaseController;
  7 +import com.huaheng.framework.web.domain.AjaxResult;
  8 +import com.huaheng.framework.web.page.TableDataInfo;
  9 +import com.huaheng.pc.monitor.job.domain.JobLog;
  10 +import com.huaheng.pc.monitor.job.service.IJobLogService;
  11 +import org.apache.shiro.authz.annotation.RequiresPermissions;
  12 +import org.springframework.beans.factory.annotation.Autowired;
  13 +import org.springframework.stereotype.Controller;
  14 +import org.springframework.web.bind.annotation.GetMapping;
  15 +import org.springframework.web.bind.annotation.PostMapping;
  16 +import org.springframework.web.bind.annotation.RequestMapping;
  17 +import org.springframework.web.bind.annotation.ResponseBody;
  18 +
  19 +import java.util.List;
  20 +
  21 +/**
  22 + * 调度日志操作处理
  23 + *
  24 + * @author huaheng
  25 + */
  26 +@Controller
  27 +@RequestMapping("/monitor/jobLog")
  28 +public class JobLogController extends BaseController
  29 +{
  30 + private String prefix = "monitor/job";
  31 +
  32 + @Autowired
  33 + private IJobLogService jobLogService;
  34 +
  35 + @RequiresPermissions("monitor:jobLog:view")
  36 + @GetMapping()
  37 + public String jobLog()
  38 + {
  39 + return prefix + "/jobLog";
  40 + }
  41 +
  42 + @RequiresPermissions("monitor:jobLog:list")
  43 + @PostMapping("/list")
  44 + @ResponseBody
  45 + public TableDataInfo list(JobLog jobLog)
  46 + {
  47 + startPage();
  48 + List<JobLog> list = jobLogService.selectJobLogList(jobLog);
  49 + return getDataTable(list);
  50 + }
  51 +
  52 + @Log(title = "系统监控-定时任务", operating = "导出调度日志", action = BusinessType.EXPORT)
  53 + @RequiresPermissions("monitor:jobLog:export")
  54 + @PostMapping("/export")
  55 + @ResponseBody
  56 + public AjaxResult export(JobLog jobLog) throws Exception
  57 + {
  58 + try
  59 + {
  60 + List<JobLog> list = jobLogService.selectJobLogList(jobLog);
  61 + ExcelUtil<JobLog> util = new ExcelUtil<JobLog>(JobLog.class);
  62 + return util.exportExcel(list, "jobLog");
  63 + }
  64 + catch (Exception e)
  65 + {
  66 + return error("导出Excel失败,请联系网站管理员!");
  67 + }
  68 + }
  69 +
  70 + @Log(title = "系统监控-定时任务", operating = "删除调度日志", action = BusinessType.DELETE)
  71 + @RequiresPermissions("monitor:jobLog:remove")
  72 + @PostMapping("/remove")
  73 + @ResponseBody
  74 + public AjaxResult remove(String ids)
  75 + {
  76 + return toAjax(jobLogService.deleteJobLogByIds(ids));
  77 + }
  78 +}
... ...
src/main/java/com/huaheng/pc/monitor/job/domain/Job.java 0 → 100644
  1 +package com.huaheng.pc.monitor.job.domain;
  2 +
  3 +import com.baomidou.mybatisplus.annotation.IdType;
  4 +import com.baomidou.mybatisplus.annotation.TableField;
  5 +import com.baomidou.mybatisplus.annotation.TableId;
  6 +import com.baomidou.mybatisplus.annotation.TableName;
  7 +import com.fasterxml.jackson.annotation.JsonFormat;
  8 +import com.google.common.collect.Maps;
  9 +import com.huaheng.common.constant.ScheduleConstants;
  10 +import com.huaheng.framework.aspectj.lang.annotation.Excel;
  11 +
  12 +import java.io.Serializable;
  13 +import java.util.Date;
  14 +import java.util.Map;
  15 +
  16 +/**
  17 + * 定时任务调度信息 sys_job
  18 + *
  19 + * @author huaheng
  20 + */
  21 +@TableName(value = "sys_job")
  22 +public class Job implements Serializable
  23 +{
  24 + private static final long serialVersionUID = 1L;
  25 +
  26 + /** 任务ID */
  27 + @Excel(name = "任务序号")
  28 + @TableId(value = "id", type = IdType.AUTO)
  29 + private Long id;
  30 +
  31 + /** 任务名称 */
  32 + @Excel(name = "任务名称")
  33 + @TableField(value = "jobName")
  34 + private String jobName;
  35 +
  36 + /** 任务组名 */
  37 + @Excel(name = "任务组名")
  38 + @TableField(value = "jobGroup")
  39 + private String jobGroup;
  40 +
  41 + /** 任务方法 */
  42 + @Excel(name = "任务方法")
  43 + @TableField(value = "methodName")
  44 + private String methodName;
  45 +
  46 + /** 方法参数 */
  47 + @Excel(name = "方法参数")
  48 + @TableField(value = "methodParams")
  49 + private String methodParams;
  50 +
  51 + /** cron执行表达式 */
  52 + @Excel(name = "执行表达式 ")
  53 + @TableField(value = "cronExpression")
  54 + private String cronExpression;
  55 +
  56 + /** cron计划策略 */
  57 + @Excel(name = "计划策略 ")
  58 + @TableField(value = "misfirePolicy")
  59 + private String misfirePolicy = ScheduleConstants.MISFIRE_DEFAULT;
  60 +
  61 + /** 任务状态(0正常 1暂停) */
  62 + @Excel(name = "任务状态")
  63 + @TableField(value = "status")
  64 + private String status;
  65 +
  66 + /** 搜索值 */
  67 + private String searchValue;
  68 +
  69 + /** 创建者 */
  70 + @TableField(value = "createBy")
  71 + private String createBy;
  72 +
  73 + /** 创建时间 */
  74 + @TableField(value = "createTime")
  75 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  76 + private Date createTime;
  77 +
  78 + /** 更新者 */
  79 + @TableField(value = "updateBy")
  80 + private String updateBy;
  81 +
  82 + /** 更新时间 */
  83 + @TableField(value = "updateTime")
  84 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  85 + private Date updateTime;
  86 +
  87 + /** 备注 */
  88 + @TableField(value = "remark")
  89 +// @TableField(exist=false)
  90 + private String remark;
  91 +
  92 + /** 请求参数 */
  93 + private Map<String, Object> params;
  94 +
  95 + public Long getId()
  96 + {
  97 + return id;
  98 + }
  99 +
  100 + public void setId(Long id)
  101 + {
  102 + this.id = id;
  103 + }
  104 +
  105 + public String getJobName()
  106 + {
  107 + return jobName;
  108 + }
  109 +
  110 + public void setJobName(String jobName)
  111 + {
  112 + this.jobName = jobName;
  113 + }
  114 +
  115 + public String getJobGroup()
  116 + {
  117 + return jobGroup;
  118 + }
  119 +
  120 + public void setJobGroup(String jobGroup)
  121 + {
  122 + this.jobGroup = jobGroup;
  123 + }
  124 +
  125 + public String getMethodName()
  126 + {
  127 + return methodName;
  128 + }
  129 +
  130 + public void setMethodName(String methodName)
  131 + {
  132 + this.methodName = methodName;
  133 + }
  134 +
  135 + public String getMethodParams()
  136 + {
  137 + return methodParams;
  138 + }
  139 +
  140 + public void setMethodParams(String methodParams)
  141 + {
  142 + this.methodParams = methodParams;
  143 + }
  144 +
  145 + public String getCronExpression()
  146 + {
  147 + return cronExpression;
  148 + }
  149 +
  150 + public void setCronExpression(String cronExpression)
  151 + {
  152 + this.cronExpression = cronExpression;
  153 + }
  154 +
  155 + public String getMisfirePolicy()
  156 + {
  157 + return misfirePolicy;
  158 + }
  159 +
  160 + public void setMisfirePolicy(String misfirePolicy)
  161 + {
  162 + this.misfirePolicy = misfirePolicy;
  163 + }
  164 +
  165 + public String getStatus()
  166 + {
  167 + return status;
  168 + }
  169 +
  170 + public void setStatus(String status)
  171 + {
  172 + this.status = status;
  173 + }
  174 +
  175 + public String getSearchValue()
  176 + {
  177 + return searchValue;
  178 + }
  179 +
  180 + public void setSearchValue(String searchValue)
  181 + {
  182 + this.searchValue = searchValue;
  183 + }
  184 +
  185 + public String getCreateBy()
  186 + {
  187 + return createBy;
  188 + }
  189 +
  190 + public void setCreateBy(String createBy)
  191 + {
  192 + this.createBy = createBy;
  193 + }
  194 +
  195 + public Date getCreateTime()
  196 + {
  197 + return createTime;
  198 + }
  199 +
  200 + public void setCreateTime(Date createTime)
  201 + {
  202 + this.createTime = createTime;
  203 + }
  204 +
  205 + public String getUpdateBy()
  206 + {
  207 + return updateBy;
  208 + }
  209 +
  210 + public void setUpdateBy(String updateBy)
  211 + {
  212 + this.updateBy = updateBy;
  213 + }
  214 +
  215 + public Date getUpdateTime()
  216 + {
  217 + return updateTime;
  218 + }
  219 +
  220 + public void setUpdateTime(Date updateTime)
  221 + {
  222 + this.updateTime = updateTime;
  223 + }
  224 +
  225 + public String getRemark()
  226 + {
  227 + return remark;
  228 + }
  229 +
  230 + public void setRemark(String remark)
  231 + {
  232 + this.remark = remark;
  233 + }
  234 +
  235 + public Map<String, Object> getParams() { if (params == null) { params = Maps.newHashMap(); } return params; }
  236 +
  237 + public void setParams(Map<String, Object> params)
  238 + {
  239 + this.params = params;
  240 + }
  241 +
  242 + @Override
  243 + public String toString()
  244 + {
  245 + return "Job [id=" + id + ", jobName=" + jobName + ", jobGroup=" + jobGroup + ", methodName=" + methodName
  246 + + ", methodParams=" + methodParams + ", cronExpression=" + cronExpression + ", status=" + status + "]";
  247 + }
  248 +
  249 +}
... ...
src/main/java/com/huaheng/pc/monitor/job/domain/JobLog.java 0 → 100644
  1 +package com.huaheng.pc.monitor.job.domain;
  2 +
  3 +import com.baomidou.mybatisplus.annotation.IdType;
  4 +import com.baomidou.mybatisplus.annotation.TableField;
  5 +import com.baomidou.mybatisplus.annotation.TableId;
  6 +import com.baomidou.mybatisplus.annotation.TableName;
  7 +import com.fasterxml.jackson.annotation.JsonFormat;
  8 +import com.google.common.collect.Maps;
  9 +import com.huaheng.framework.aspectj.lang.annotation.Excel;
  10 +
  11 +import java.util.Date;
  12 +import java.util.Map;
  13 +
  14 +/**
  15 + * 定时任务调度日志信息 sys_job_log
  16 + *
  17 + * @author huaheng
  18 + */
  19 +@TableName(value = "sys_job_log")
  20 +public class JobLog
  21 +{
  22 + private static final long serialVersionUID = 1L;
  23 +
  24 + /** ID */
  25 + @Excel(name = "日志序号")
  26 + @TableId(value = "id", type = IdType.AUTO)
  27 + private Integer id;
  28 +
  29 + /** 任务名称 */
  30 + @Excel(name = "任务名称")
  31 + @TableField(value = "jobName")
  32 + private String jobName;
  33 +
  34 + /** 任务组名 */
  35 + @Excel(name = "任务组名")
  36 + @TableField(value = "jobGroup")
  37 + private String jobGroup;
  38 +
  39 + /** 任务方法 */
  40 + @Excel(name = "任务方法")
  41 + @TableField(value = "methodName")
  42 + private String methodName;
  43 +
  44 + /** 方法参数 */
  45 + @Excel(name = "方法参数")
  46 + @TableField(value = "methodParams")
  47 + private String methodParams;
  48 +
  49 + /** 日志信息 */
  50 + @Excel(name = "日志信息")
  51 + @TableField(value = "jobMessage")
  52 + private String jobMessage;
  53 +
  54 + /** 执行状态(0正常 1失败) */
  55 + @Excel(name = "执行状态")
  56 + @TableField(value = "status")
  57 + private String status;
  58 +
  59 + /** 异常信息 */
  60 + @Excel(name = "异常信息")
  61 + @TableField(value = "exceptionInfo")
  62 + private String exceptionInfo;
  63 +
  64 + /** 搜索值 */
  65 + private String searchValue;
  66 +
  67 + /** 创建者 */
  68 + private String createBy;
  69 +
  70 + /** 创建时间 */
  71 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  72 + @TableField(value = "createTime")
  73 + private Date createTime;
  74 +
  75 + /** 更新者 */
  76 + private String updateBy;
  77 +
  78 + /** 更新时间 */
  79 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  80 + private Date updateTime;
  81 +
  82 + /** 备注 */
  83 +// @TableField(exist=false)
  84 + private String remark;
  85 +
  86 + /** 请求参数 */
  87 + private Map<String, Object> params;
  88 +
  89 + public Integer getId() {
  90 + return id;
  91 + }
  92 +
  93 + public void setId(Integer id) {
  94 + this.id = id;
  95 + }
  96 +
  97 + public String getJobName()
  98 + {
  99 + return jobName;
  100 + }
  101 +
  102 + public void setJobName(String jobName)
  103 + {
  104 + this.jobName = jobName;
  105 + }
  106 +
  107 + public String getJobGroup()
  108 + {
  109 + return jobGroup;
  110 + }
  111 +
  112 + public void setJobGroup(String jobGroup)
  113 + {
  114 + this.jobGroup = jobGroup;
  115 + }
  116 +
  117 + public String getMethodName()
  118 + {
  119 + return methodName;
  120 + }
  121 +
  122 + public void setMethodName(String methodName)
  123 + {
  124 + this.methodName = methodName;
  125 + }
  126 +
  127 + public String getMethodParams()
  128 + {
  129 + return methodParams;
  130 + }
  131 +
  132 + public void setMethodParams(String methodParams)
  133 + {
  134 + this.methodParams = methodParams;
  135 + }
  136 +
  137 + public String getJobMessage()
  138 + {
  139 + return jobMessage;
  140 + }
  141 +
  142 + public void setJobMessage(String jobMessage)
  143 + {
  144 + this.jobMessage = jobMessage;
  145 + }
  146 +
  147 + public String getStatus()
  148 + {
  149 + return status;
  150 + }
  151 +
  152 + public void setStatus(String status)
  153 + {
  154 + this.status = status;
  155 + }
  156 +
  157 + public String getExceptionInfo()
  158 + {
  159 + return exceptionInfo;
  160 + }
  161 +
  162 + public void setExceptionInfo(String exceptionInfo)
  163 + {
  164 + this.exceptionInfo = exceptionInfo;
  165 + }
  166 +
  167 + public String getSearchValue()
  168 + {
  169 + return searchValue;
  170 + }
  171 +
  172 + public void setSearchValue(String searchValue)
  173 + {
  174 + this.searchValue = searchValue;
  175 + }
  176 +
  177 + public String getCreateBy()
  178 + {
  179 + return createBy;
  180 + }
  181 +
  182 + public void setCreateBy(String createBy)
  183 + {
  184 + this.createBy = createBy;
  185 + }
  186 +
  187 + public Date getCreateTime()
  188 + {
  189 + return createTime;
  190 + }
  191 +
  192 + public void setCreateTime(Date createTime)
  193 + {
  194 + this.createTime = createTime;
  195 + }
  196 +
  197 + public String getUpdateBy()
  198 + {
  199 + return updateBy;
  200 + }
  201 +
  202 + public void setUpdateBy(String updateBy)
  203 + {
  204 + this.updateBy = updateBy;
  205 + }
  206 +
  207 + public Date getUpdateTime()
  208 + {
  209 + return updateTime;
  210 + }
  211 +
  212 + public void setUpdateTime(Date updateTime)
  213 + {
  214 + this.updateTime = updateTime;
  215 + }
  216 +
  217 + public String getRemark()
  218 + {
  219 + return remark;
  220 + }
  221 +
  222 + public void setRemark(String remark)
  223 + {
  224 + this.remark = remark;
  225 + }
  226 +
  227 + public Map<String, Object> getParams()
  228 + {
  229 + if (params == null) {
  230 + params = Maps.newHashMap();
  231 + }
  232 + return params;
  233 + }
  234 +
  235 + public void setParams(Map<String, Object> params)
  236 + {
  237 + this.params = params;
  238 + }
  239 +
  240 + @Override
  241 + public String toString()
  242 + {
  243 + return "JobLog [id=" + id + ", jobName=" + jobName + ", jobGroup=" + jobGroup + ", methodName="
  244 + + methodName + ", methodParams=" + methodParams + ", jobMessage=" + jobMessage + ", status=" + status
  245 + + ", exceptionInfo=" + exceptionInfo + "]";
  246 + }
  247 +
  248 +}
... ...
src/main/java/com/huaheng/pc/monitor/job/mapper/JobLogMapper.java 0 → 100644
  1 +package com.huaheng.pc.monitor.job.mapper;
  2 +
  3 +import com.huaheng.pc.monitor.job.domain.JobLog;
  4 +import org.springframework.stereotype.Service;
  5 +
  6 +import java.util.List;
  7 +
  8 +/**
  9 + * 调度任务日志信息 数据层
  10 + *
  11 + * @author huaheng
  12 + */
  13 +@Service
  14 +public interface JobLogMapper
  15 +{
  16 +
  17 + /**
  18 + * 获取quartz调度器日志的计划任务
  19 + *
  20 + * @param jobLog 调度日志信息
  21 + * @return 调度任务日志集合
  22 + */
  23 + public List<JobLog> selectJobLogList(JobLog jobLog);
  24 +
  25 + /**
  26 + * 通过调度任务日志ID查询调度信息
  27 + *
  28 + * @param id 调度任务日志ID
  29 + * @return 调度任务日志对象信息
  30 + */
  31 + public JobLog selectJobLogById(Integer id);
  32 +
  33 + /**
  34 + * 新增任务日志
  35 + *
  36 + * @param jobLog 调度日志信息
  37 + * @return 结果
  38 + */
  39 + public int insertJobLog(JobLog jobLog);
  40 +
  41 + /**
  42 + * 批量删除调度日志信息
  43 + *
  44 + * @param ids 需要删除的数据ID
  45 + * @return 结果
  46 + */
  47 + public int deleteJobLogByIds(String[] ids);
  48 +
  49 + /**
  50 + * 删除任务日志
  51 + *
  52 + * @param id 调度日志ID
  53 + * @return 结果
  54 + */
  55 + public int deleteJobLogById(Integer id);
  56 +
  57 +
  58 + //清空任务日志
  59 + public int truncateTable();
  60 +
  61 +}
... ...
src/main/java/com/huaheng/pc/monitor/job/mapper/JobMapper.java 0 → 100644
  1 +package com.huaheng.pc.monitor.job.mapper;
  2 +
  3 +import com.huaheng.pc.monitor.job.domain.Job;
  4 +import org.springframework.stereotype.Service;
  5 +
  6 +import java.util.List;
  7 +
  8 +/**
  9 + * 调度任务信息 数据层
  10 + *
  11 + * @author huaheng
  12 + */
  13 +@Service
  14 +public interface JobMapper
  15 +{
  16 +
  17 + /**
  18 + * 查询调度任务日志集合
  19 + *
  20 + * @param job 调度信息
  21 + * @return 操作日志集合
  22 + */
  23 + public List<Job> selectJobList(Job job);
  24 +
  25 + /**
  26 + * 查询所有调度任务
  27 + *
  28 + * @return 调度任务列表
  29 + */
  30 + public List<Job> selectJobAll();
  31 +
  32 + /**
  33 + * 通过调度ID查询调度任务信息
  34 + *
  35 + * @param id 调度ID
  36 + * @return 角色对象信息
  37 + */
  38 + public Job selectJobById(Long id);
  39 +
  40 + /**
  41 + * 通过调度ID删除调度任务信息
  42 + *
  43 + * @param job 调度
  44 + * @return 结果
  45 + */
  46 + public int deleteJobById(Job job);
  47 +
  48 + /**
  49 + * 批量删除调度任务信息
  50 + *
  51 + * @param ids 需要删除的数据ID
  52 + * @return 结果
  53 + */
  54 + public int deleteJobByIds(Integer[] ids);
  55 +
  56 + /**
  57 + * 修改调度任务信息
  58 + *
  59 + * @param job 调度任务信息
  60 + * @return 结果
  61 + */
  62 + public int updateJob(Job job);
  63 +
  64 + /**
  65 + * 新增调度任务信息
  66 + *
  67 + * @param job 调度任务信息
  68 + * @return 结果
  69 + */
  70 + public int insertJob(Job job);
  71 +
  72 +}
... ...
src/main/java/com/huaheng/pc/monitor/job/service/IJobLogService.java 0 → 100644
  1 +package com.huaheng.pc.monitor.job.service;
  2 +
  3 +import com.huaheng.pc.monitor.job.domain.JobLog;
  4 +
  5 +import java.util.List;
  6 +
  7 +/**
  8 + * 定时任务调度日志信息信息 服务层
  9 + *
  10 + * @author huaheng
  11 + */
  12 +public interface IJobLogService
  13 +{
  14 +
  15 + /**
  16 + * 获取quartz调度器日志的计划任务
  17 + *
  18 + * @param jobLog 调度日志信息
  19 + * @return 调度任务日志集合
  20 + */
  21 + public List<JobLog> selectJobLogList(JobLog jobLog);
  22 +
  23 + /**
  24 + * 通过调度任务日志ID查询调度信息
  25 + *
  26 + * @param id 调度任务日志ID
  27 + * @return 调度任务日志对象信息
  28 + */
  29 + public JobLog selectJobLogById(Integer id);
  30 +
  31 + /**
  32 + * 新增任务日志
  33 + *
  34 + * @param jobLog 调度日志信息
  35 + */
  36 + public void addJobLog(JobLog jobLog);
  37 +
  38 + /**
  39 + * 批量删除调度日志信息
  40 + *
  41 + * @param ids 需要删除的数据ID
  42 + * @return 结果
  43 + */
  44 + public int deleteJobLogByIds(String ids);
  45 +
  46 + /**
  47 + * 删除任务日志
  48 + *
  49 + * @param id 调度日志ID
  50 + * @return 结果
  51 + */
  52 + public int deleteJobLogById(Integer id);
  53 +
  54 + //清空任务日志
  55 + public int truncateTable();
  56 +
  57 +}
... ...
src/main/java/com/huaheng/pc/monitor/job/service/IJobService.java 0 → 100644
  1 +package com.huaheng.pc.monitor.job.service;
  2 +
  3 +import com.huaheng.pc.monitor.job.domain.Job;
  4 +
  5 +import java.util.List;
  6 +
  7 +/**
  8 + * 定时任务调度信息信息 服务层
  9 + *
  10 + * @author huaheng
  11 + */
  12 +public interface IJobService
  13 +{
  14 +
  15 + /**
  16 + * 获取quartz调度器的计划任务
  17 + *
  18 + * @param job 调度信息
  19 + * @return 调度任务集合
  20 + */
  21 + public List<Job> selectJobList(Job job);
  22 +
  23 + /**
  24 + * 通过调度任务ID查询调度信息
  25 + *
  26 + * @param id 调度任务ID
  27 + * @return 调度任务对象信息
  28 + */
  29 + public Job selectJobById(Long id);
  30 +
  31 + /**
  32 + * 暂停任务
  33 + *
  34 + * @param job 调度信息
  35 + * @return 结果
  36 + */
  37 + public int pauseJob(Job job);
  38 +
  39 + /**
  40 + * 恢复任务
  41 + *
  42 + * @param job 调度信息
  43 + * @return 结果
  44 + */
  45 + public int resumeJob(Job job);
  46 +
  47 + /**
  48 + * 删除任务后,所对应的trigger也将被删除
  49 + *
  50 + * @param job 调度信息
  51 + * @return 结果
  52 + */
  53 + public int deleteJob(Job job);
  54 +
  55 + /**
  56 + * 批量删除调度信息
  57 + *
  58 + * @param ids 需要删除的数据ID
  59 + * @return 结果
  60 + */
  61 + public void deleteJobByIds(String ids);
  62 +
  63 + /**
  64 + * 任务调度状态修改
  65 + *
  66 + * @param job 调度信息
  67 + * @return 结果
  68 + */
  69 + public int changeStatus(Job job);
  70 +
  71 + /**
  72 + * 立即运行任务
  73 + *
  74 + * @param job 调度信息
  75 + * @return 结果
  76 + */
  77 + public int run(Job job);
  78 +
  79 + /**
  80 + * 新增任务表达式
  81 + *
  82 + * @param job 调度信息
  83 + * @return 结果
  84 + */
  85 + public int insertJobCron(Job job);
  86 +
  87 + /**
  88 + * 更新任务的时间表达式
  89 + *
  90 + * @param job 调度信息
  91 + * @return 结果
  92 + */
  93 + public int updateJobCron(Job job);
  94 +
  95 +}
... ...