Commit 532cf712b26360e1db07ea7539762778b274a190

Authored by pengcheng
2 parents 3c7d6309 e0b03d18

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

Showing 50 changed files with 921 additions and 306 deletions
.idea/workspace.xml
@@ -3,16 +3,14 @@ @@ -3,16 +3,14 @@
3 <component name="ChangeListManager"> 3 <component name="ChangeListManager">
4 <list default="true" id="baeae966-16bb-4f97-a411-22fe5a65cefd" name="Default Changelist" comment=""> 4 <list default="true" id="baeae966-16bb-4f97-a411-22fe5a65cefd" name="Default Changelist" comment="">
5 <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> 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/config/FilterConfigDetail/service/FilterConfigDetailService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/FilterConfigDetail/service/FilterConfigDetailService.java" afterDir="false" />  
7 - <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/service/ReceiptContainerHeaderServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/service/ReceiptContainerHeaderServiceImpl.java" afterDir="false" />  
8 - <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptHeader/controller/ReceiptHeaderController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptHeader/controller/ReceiptHeaderController.java" afterDir="false" />  
9 - <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiving/service/ReceivingService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiving/service/ReceivingService.java" afterDir="false" />  
10 - <change beforePath="$PROJECT_DIR$/src/main/resources/templates/check/checkDetail/checkDetail.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/check/checkDetail/checkDetail.html" afterDir="false" />  
11 - <change beforePath="$PROJECT_DIR$/src/main/resources/templates/receipt/receiptDetail/add.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/receipt/receiptDetail/add.html" afterDir="false" />  
12 - <change beforePath="$PROJECT_DIR$/src/main/resources/templates/receipt/receiptDetail/receiptDetail.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/receipt/receiptDetail/receiptDetail.html" 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" /> 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" />
14 - <change beforePath="$PROJECT_DIR$/src/main/resources/templates/receipt/receiptHeader/report.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/receipt/receiptHeader/report.html" afterDir="false" />  
15 - <change beforePath="$PROJECT_DIR$/src/main/resources/templates/receipt/receiving/add.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/receipt/receiving/add.html" afterDir="false" />  
16 </list> 14 </list>
17 <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> 15 <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
18 <option name="SHOW_DIALOG" value="false" /> 16 <option name="SHOW_DIALOG" value="false" />
@@ -31,59 +29,7 @@ @@ -31,59 +29,7 @@
31 <option name="HIDDEN_KINDS"> 29 <option name="HIDDEN_KINDS">
32 <set /> 30 <set />
33 </option> 31 </option>
34 - <expand>  
35 - <path>  
36 - <item name="Database" type="3277223f:DatabaseStructure$DbRootGroup" />  
37 - <item name="@172.16.29.45" type="feb32156:DbDataSourceImpl" />  
38 - </path>  
39 - <path>  
40 - <item name="Database" type="3277223f:DatabaseStructure$DbRootGroup" />  
41 - <item name="@172.16.29.45" type="feb32156:DbDataSourceImpl" />  
42 - <item name="schemas" type="d4e8921:DatabaseStructure$FamilyGroup" />  
43 - </path>  
44 - <path>  
45 - <item name="Database" type="3277223f:DatabaseStructure$DbRootGroup" />  
46 - <item name="@172.16.29.45" type="feb32156:DbDataSourceImpl" />  
47 - <item name="schemas" type="d4e8921:DatabaseStructure$FamilyGroup" />  
48 - <item name="wms_v2: schema" type="76f4a085:MysqlImplModel$Schema" />  
49 - </path>  
50 - <path>  
51 - <item name="Database" type="3277223f:DatabaseStructure$DbRootGroup" />  
52 - <item name="@172.16.29.45" type="feb32156:DbDataSourceImpl" />  
53 - <item name="schemas" type="d4e8921:DatabaseStructure$FamilyGroup" />  
54 - <item name="wms_v2: schema" type="76f4a085:MysqlImplModel$Schema" />  
55 - <item name="receipt_header: table" type="285a2a93:MysqlImplModel$Table" />  
56 - </path>  
57 - <path>  
58 - <item name="Database" type="3277223f:DatabaseStructure$DbRootGroup" />  
59 - <item name="@localhost" type="feb32156:DbDataSourceImpl" />  
60 - </path>  
61 - <path>  
62 - <item name="Database" type="3277223f:DatabaseStructure$DbRootGroup" />  
63 - <item name="@localhost" type="feb32156:DbDataSourceImpl" />  
64 - <item name="schemas" type="d4e8921:DatabaseStructure$FamilyGroup" />  
65 - </path>  
66 - <path>  
67 - <item name="Database" type="3277223f:DatabaseStructure$DbRootGroup" />  
68 - <item name="@localhost" type="feb32156:DbDataSourceImpl" />  
69 - <item name="schemas" type="d4e8921:DatabaseStructure$FamilyGroup" />  
70 - <item name="wms2.0: schema" type="76f4a085:MysqlImplModel$Schema" />  
71 - </path>  
72 - <path>  
73 - <item name="Database" type="3277223f:DatabaseStructure$DbRootGroup" />  
74 - <item name="@localhost" type="feb32156:DbDataSourceImpl" />  
75 - <item name="schemas" type="d4e8921:DatabaseStructure$FamilyGroup" />  
76 - <item name="wms2.0: schema" type="76f4a085:MysqlImplModel$Schema" />  
77 - <item name="check_detail: table" type="285a2a93:MysqlImplModel$Table" />  
78 - </path>  
79 - <path>  
80 - <item name="Database" type="3277223f:DatabaseStructure$DbRootGroup" />  
81 - <item name="@localhost" type="feb32156:DbDataSourceImpl" />  
82 - <item name="schemas" type="d4e8921:DatabaseStructure$FamilyGroup" />  
83 - <item name="wms2.0: schema" type="76f4a085:MysqlImplModel$Schema" />  
84 - <item name="check_header: table" type="285a2a93:MysqlImplModel$Table" />  
85 - </path>  
86 - </expand> 32 + <expand />
87 <select /> 33 <select />
88 </component> 34 </component>
89 <component name="FileTemplateManagerImpl"> 35 <component name="FileTemplateManagerImpl">
@@ -104,6 +50,7 @@ @@ -104,6 +50,7 @@
104 <OptionsSetting value="false" id="Update" /> 50 <OptionsSetting value="false" id="Update" />
105 </component> 51 </component>
106 <component name="PropertiesComponent"> 52 <component name="PropertiesComponent">
  53 + <property name="ASKED_ADD_EXTERNAL_FILES" value="true" />
107 <property name="DefaultHtmlFileTemplate" value="HTML File" /> 54 <property name="DefaultHtmlFileTemplate" value="HTML File" />
108 <property name="RequestMappingsPanelOrder0" value="0" /> 55 <property name="RequestMappingsPanelOrder0" value="0" />
109 <property name="RequestMappingsPanelOrder1" value="1" /> 56 <property name="RequestMappingsPanelOrder1" value="1" />
@@ -112,17 +59,30 @@ @@ -112,17 +59,30 @@
112 <property name="WebServerToolWindowFactoryState" value="false" /> 59 <property name="WebServerToolWindowFactoryState" value="false" />
113 <property name="aspect.path.notification.shown" value="true" /> 60 <property name="aspect.path.notification.shown" value="true" />
114 <property name="full.screen.before.presentation.mode" value="false" /> 61 <property name="full.screen.before.presentation.mode" value="false" />
115 - <property name="last_opened_file_path" value="$PROJECT_DIR$/../WMSV1" /> 62 + <property name="last_opened_file_path" value="$PROJECT_DIR$/src/main/resources/static/ajax/libs/bootstrap-table/extensions/editable" />
116 <property name="node.js.detected.package.eslint" value="true" /> 63 <property name="node.js.detected.package.eslint" value="true" />
117 <property name="node.js.detected.package.tslint" value="true" /> 64 <property name="node.js.detected.package.tslint" value="true" />
118 <property name="node.js.path.for.package.eslint" value="project" /> 65 <property name="node.js.path.for.package.eslint" value="project" />
119 <property name="node.js.path.for.package.tslint" value="project" /> 66 <property name="node.js.path.for.package.tslint" value="project" />
120 <property name="node.js.selected.package.eslint" value="(autodetect)" /> 67 <property name="node.js.selected.package.eslint" value="(autodetect)" />
121 <property name="node.js.selected.package.tslint" value="(autodetect)" /> 68 <property name="node.js.selected.package.tslint" value="(autodetect)" />
  69 + <property name="project.structure.last.edited" value="Modules" />
  70 + <property name="project.structure.proportion" value="0.15429688" />
  71 + <property name="project.structure.side.proportion" value="0.2" />
122 <property name="run.code.analysis.last.selected.profile" value="pProject Default" /> 72 <property name="run.code.analysis.last.selected.profile" value="pProject Default" />
123 - <property name="settings.editor.selected.configurable" value="reference.settingsdialog.IDE.editor.colors.Console Font" /> 73 + <property name="settings.editor.selected.configurable" value="preferences.pluginManager" />
  74 + </component>
  75 + <component name="RecentsManager">
  76 + <key name="CopyFile.RECENT_KEYS">
  77 + <recent name="E:\code\wms2\src\main\resources\static\ajax\libs\bootstrap-table\extensions\editable" />
  78 + </key>
124 </component> 79 </component>
125 <component name="RunDashboard"> 80 <component name="RunDashboard">
  81 + <option name="configurationTypes">
  82 + <set>
  83 + <option value="SpringBootApplicationConfigurationType" />
  84 + </set>
  85 + </option>
126 <option name="ruleStates"> 86 <option name="ruleStates">
127 <list> 87 <list>
128 <RuleState> 88 <RuleState>
@@ -135,6 +95,19 @@ @@ -135,6 +95,19 @@
135 </option> 95 </option>
136 </component> 96 </component>
137 <component name="RunManager" selected="Spring Boot.HuaHengApplication"> 97 <component name="RunManager" selected="Spring Boot.HuaHengApplication">
  98 + <configuration name="ReceiptContainerHeaderServiceImpl" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
  99 + <option name="MAIN_CLASS_NAME" value="com.huaheng.pc.receipt.receiptContainerHeader.service.ReceiptContainerHeaderServiceImpl" />
  100 + <module name="huaheng" />
  101 + <extension name="coverage">
  102 + <pattern>
  103 + <option name="PATTERN" value="com.huaheng.pc.receipt.receiptContainerHeader.service.*" />
  104 + <option name="ENABLED" value="true" />
  105 + </pattern>
  106 + </extension>
  107 + <method v="2">
  108 + <option name="Make" enabled="true" />
  109 + </method>
  110 + </configuration>
138 <configuration name="ServiceTest.sendSimpleMail" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true"> 111 <configuration name="ServiceTest.sendSimpleMail" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
139 <module name="huaheng" /> 112 <module name="huaheng" />
140 <extension name="coverage"> 113 <extension name="coverage">
@@ -168,12 +141,14 @@ @@ -168,12 +141,14 @@
168 </method> 141 </method>
169 </configuration> 142 </configuration>
170 <list> 143 <list>
  144 + <item itemvalue="Application.ReceiptContainerHeaderServiceImpl" />
171 <item itemvalue="JUnit.ServiceTest.sendSimpleMail" /> 145 <item itemvalue="JUnit.ServiceTest.sendSimpleMail" />
172 <item itemvalue="Spring Boot.HuaHengApplication" /> 146 <item itemvalue="Spring Boot.HuaHengApplication" />
173 </list> 147 </list>
174 <recent_temporary> 148 <recent_temporary>
175 <list> 149 <list>
176 <item itemvalue="Spring Boot.HuaHengApplication" /> 150 <item itemvalue="Spring Boot.HuaHengApplication" />
  151 + <item itemvalue="Application.ReceiptContainerHeaderServiceImpl" />
177 <item itemvalue="JUnit.ServiceTest.sendSimpleMail" /> 152 <item itemvalue="JUnit.ServiceTest.sendSimpleMail" />
178 </list> 153 </list>
179 </recent_temporary> 154 </recent_temporary>
@@ -181,11 +156,17 @@ @@ -181,11 +156,17 @@
181 <component name="ServiceViewManager"> 156 <component name="ServiceViewManager">
182 <option name="allServicesViewState"> 157 <option name="allServicesViewState">
183 <serviceView> 158 <serviceView>
  159 + <option name="contentProportion" value="0.1612554" />
184 <treeState> 160 <treeState>
185 <expand> 161 <expand>
186 <path> 162 <path>
187 <item name="services root" type="e789fda9:ObjectUtils$Sentinel" /> 163 <item name="services root" type="e789fda9:ObjectUtils$Sentinel" />
188 - <item name="com.intellij.execution.services.ServiceModel$ServiceGroupNode@20dd4d1b" type="7427dc5b:ServiceModel$ServiceGroupNode" /> 164 + <item name="com.intellij.execution.services.ServiceModel$ServiceGroupNode@c531c3e8" type="7427dc5b:ServiceModel$ServiceGroupNode" />
  165 + </path>
  166 + <path>
  167 + <item name="services root" type="e789fda9:ObjectUtils$Sentinel" />
  168 + <item name="com.intellij.execution.services.ServiceModel$ServiceGroupNode@c531c3e8" type="7427dc5b:ServiceModel$ServiceGroupNode" />
  169 + <item name="com.intellij.execution.services.ServiceModel$ServiceGroupNode@ef9dc71e" type="7427dc5b:ServiceModel$ServiceGroupNode" />
189 </path> 170 </path>
190 </expand> 171 </expand>
191 <select /> 172 <select />
@@ -224,7 +205,73 @@ @@ -224,7 +205,73 @@
224 <workItem from="1568102802104" duration="132000" /> 205 <workItem from="1568102802104" duration="132000" />
225 <workItem from="1568108585629" duration="2016000" /> 206 <workItem from="1568108585629" duration="2016000" />
226 <workItem from="1568162278389" duration="3299000" /> 207 <workItem from="1568162278389" duration="3299000" />
227 - <workItem from="1568170378983" duration="10947000" /> 208 + <workItem from="1568170378983" duration="18141000" />
  209 + <workItem from="1568249510258" duration="10225000" />
  210 + <workItem from="1568266250892" duration="1333000" />
  211 + <workItem from="1568269799447" duration="99000" />
  212 + <workItem from="1568270609232" duration="2008000" />
  213 + <workItem from="1568277784815" duration="3397000" />
  214 + <workItem from="1568595092050" duration="120000" />
  215 + <workItem from="1568595230891" duration="859000" />
  216 + <workItem from="1568597823149" duration="18415000" />
  217 + <workItem from="1568622349963" duration="1657000" />
  218 + <workItem from="1568625672966" duration="1471000" />
  219 + <workItem from="1568680155591" duration="361000" />
  220 + <workItem from="1568680712425" duration="2511000" />
  221 + <workItem from="1568684486098" duration="957000" />
  222 + <workItem from="1568685565340" duration="4430000" />
  223 + <workItem from="1568691952276" duration="8650000" />
  224 + <workItem from="1568707800753" duration="1137000" />
  225 + <workItem from="1568710796434" duration="1618000" />
  226 + <workItem from="1568766055582" duration="6000" />
  227 + <workItem from="1568768025248" duration="5346000" />
  228 + <workItem from="1568778175920" duration="2572000" />
  229 + <workItem from="1568787162277" duration="1740000" />
  230 + <workItem from="1568788907625" duration="7345000" />
  231 + <workItem from="1568853208604" duration="1177000" />
  232 + <workItem from="1568854399388" duration="3001000" />
  233 + <workItem from="1568861704814" duration="2380000" />
  234 + <workItem from="1568865359898" duration="108000" />
  235 + <workItem from="1568865651366" duration="623000" />
  236 + <workItem from="1568868902957" duration="3468000" />
  237 + <workItem from="1568875455023" duration="3979000" />
  238 + <workItem from="1568882661913" duration="1883000" />
  239 + <workItem from="1568887498559" duration="554000" />
  240 + <workItem from="1568940290765" duration="1255000" />
  241 + <workItem from="1568943643646" duration="634000" />
  242 + <workItem from="1568946720514" duration="599000" />
  243 + <workItem from="1568951675236" duration="5060000" />
  244 + <workItem from="1568963416874" duration="848000" />
  245 + <workItem from="1568964502775" duration="3587000" />
  246 + <workItem from="1568970279520" duration="8000" />
  247 + <workItem from="1569032862367" duration="1792000" />
  248 + <workItem from="1569037677538" duration="64000" />
  249 + <workItem from="1569134046393" duration="65000" />
  250 + <workItem from="1569198499251" duration="8680000" />
  251 + <workItem from="1569207254306" duration="18489000" />
  252 + <workItem from="1569285398457" duration="5908000" />
  253 + <workItem from="1569295518709" duration="463000" />
  254 + <workItem from="1569299856099" duration="4172000" />
  255 + <workItem from="1569312420091" duration="6208000" />
  256 + <workItem from="1569318779053" duration="35000" />
  257 + <workItem from="1569372049669" duration="4595000" />
  258 + <workItem from="1569390345693" duration="1418000" />
  259 + <workItem from="1569393808742" duration="10588000" />
  260 + <workItem from="1569411369199" duration="191000" />
  261 + <workItem from="1569457959376" duration="2373000" />
  262 + <workItem from="1569461866204" duration="777000" />
  263 + <workItem from="1569462694383" duration="6561000" />
  264 + <workItem from="1569477197991" duration="8695000" />
  265 + <workItem from="1569545011335" duration="12640000" />
  266 + <workItem from="1569565238961" duration="5096000" />
  267 + <workItem from="1569571884664" duration="2032000" />
  268 + <workItem from="1569577676760" duration="124000" />
  269 + <workItem from="1569717688488" duration="13568000" />
  270 + <workItem from="1569743740441" duration="1168000" />
  271 + <workItem from="1569745589865" duration="2739000" />
  272 + <workItem from="1569748443357" duration="438000" />
  273 + <workItem from="1569803438585" duration="13789000" />
  274 + <workItem from="1570581146682" duration="9295000" />
228 </task> 275 </task>
229 <task id="LOCAL-00001" summary="修改添加物料时使用物料类别生成物料编码"> 276 <task id="LOCAL-00001" summary="修改添加物料时使用物料类别生成物料编码">
230 <created>1567664306836</created> 277 <created>1567664306836</created>
@@ -268,7 +315,203 @@ @@ -268,7 +315,203 @@
268 <option name="project" value="LOCAL" /> 315 <option name="project" value="LOCAL" />
269 <updated>1568174134623</updated> 316 <updated>1568174134623</updated>
270 </task> 317 </task>
271 - <option name="localTasksCounter" value="7" /> 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>
  373 + </task>
  374 + <task id="LOCAL-00015" summary="添加入库质检行内编辑">
  375 + <created>1568857387442</created>
  376 + <option name="number" value="00015" />
  377 + <option name="presentableId" value="LOCAL-00015" />
  378 + <option name="project" value="LOCAL" />
  379 + <updated>1568857387442</updated>
  380 + </task>
  381 + <task id="LOCAL-00016" summary="行内编辑完成后更新数据库">
  382 + <created>1568875291383</created>
  383 + <option name="number" value="00016" />
  384 + <option name="presentableId" value="LOCAL-00016" />
  385 + <option name="project" value="LOCAL" />
  386 + <updated>1568875291383</updated>
  387 + </task>
  388 + <task id="LOCAL-00017" summary="修改质检登记使用bootstarp boot原生方法初始化">
  389 + <created>1568885639106</created>
  390 + <option name="number" value="00017" />
  391 + <option name="presentableId" value="LOCAL-00017" />
  392 + <option name="project" value="LOCAL" />
  393 + <updated>1568885639106</updated>
  394 + </task>
  395 + <task id="LOCAL-00018" summary="表单头创建时间添加默认创建时间&#10;开始时间默认提前一周,结束时间默认当天">
  396 + <created>1569207792528</created>
  397 + <option name="number" value="00018" />
  398 + <option name="presentableId" value="LOCAL-00018" />
  399 + <option name="project" value="LOCAL" />
  400 + <updated>1569207792528</updated>
  401 + </task>
  402 + <task id="LOCAL-00019" summary="配置中所有页面添加重置按钮">
  403 + <created>1569218224945</created>
  404 + <option name="number" value="00019" />
  405 + <option name="presentableId" value="LOCAL-00019" />
  406 + <option name="project" value="LOCAL" />
  407 + <updated>1569218224945</updated>
  408 + </task>
  409 + <task id="LOCAL-00020" summary="收货添加定位、取消定位、取消组盘按钮">
  410 + <created>1569232154274</created>
  411 + <option name="number" value="00020" />
  412 + <option name="presentableId" value="LOCAL-00020" />
  413 + <option name="project" value="LOCAL" />
  414 + <updated>1569232154274</updated>
  415 + </task>
  416 + <task id="LOCAL-00021" summary="修改入库单数量使用BigDecimal类型,修改入库单添加、修改、物理类型添加和修改页面">
  417 + <created>1569318560852</created>
  418 + <option name="number" value="00021" />
  419 + <option name="presentableId" value="LOCAL-00021" />
  420 + <option name="project" value="LOCAL" />
  421 + <updated>1569318560852</updated>
  422 + </task>
  423 + <task id="LOCAL-00022" summary="修改物料管理中物料类型使用物料类别表,不在使用数据字典">
  424 + <created>1569395439782</created>
  425 + <option name="number" value="00022" />
  426 + <option name="presentableId" value="LOCAL-00022" />
  427 + <option name="project" value="LOCAL" />
  428 + <updated>1569395439782</updated>
  429 + </task>
  430 + <task id="LOCAL-00023" summary="修改波次主表、波次流程头表、波次流程明细页面">
  431 + <created>1569402291802</created>
  432 + <option name="number" value="00023" />
  433 + <option name="presentableId" value="LOCAL-00023" />
  434 + <option name="project" value="LOCAL" />
  435 + <updated>1569402291802</updated>
  436 + </task>
  437 + <task id="LOCAL-00024" summary="修改入库首选项修改添加模块为select">
  438 + <created>1569411473661</created>
  439 + <option name="number" value="00024" />
  440 + <option name="presentableId" value="LOCAL-00024" />
  441 + <option name="project" value="LOCAL" />
  442 + <updated>1569411473661</updated>
  443 + </task>
  444 + <task id="LOCAL-00025" summary="修改任务取消入库组盘状态不回滚,修改任务完成入库单状态不完成">
  445 + <created>1569477488017</created>
  446 + <option name="number" value="00025" />
  447 + <option name="presentableId" value="LOCAL-00025" />
  448 + <option name="project" value="LOCAL" />
  449 + <updated>1569477488017</updated>
  450 + </task>
  451 + <task id="LOCAL-00026" summary="添加自动生成容器编码">
  452 + <created>1569484931952</created>
  453 + <option name="number" value="00026" />
  454 + <option name="presentableId" value="LOCAL-00026" />
  455 + <option name="project" value="LOCAL" />
  456 + <updated>1569484931952</updated>
  457 + </task>
  458 + <task id="LOCAL-00027" summary="修改入库首选项页面,规则查询使用数据字典值,表格值显示修改">
  459 + <created>1569553028716</created>
  460 + <option name="number" value="00027" />
  461 + <option name="presentableId" value="LOCAL-00027" />
  462 + <option name="project" value="LOCAL" />
  463 + <updated>1569553028716</updated>
  464 + </task>
  465 + <task id="LOCAL-00028" summary="入库单添加重置按钮,入库单历史添加上游单号搜索">
  466 + <created>1569554438854</created>
  467 + <option name="number" value="00028" />
  468 + <option name="presentableId" value="LOCAL-00028" />
  469 + <option name="project" value="LOCAL" />
  470 + <updated>1569554438854</updated>
  471 + </task>
  472 + <task id="LOCAL-00029" summary="添加取消入库组盘时容器为临时容器,删除容器">
  473 + <created>1569567112288</created>
  474 + <option name="number" value="00029" />
  475 + <option name="presentableId" value="LOCAL-00029" />
  476 + <option name="project" value="LOCAL" />
  477 + <updated>1569567112288</updated>
  478 + </task>
  479 + <task id="LOCAL-00030" summary="出库完成时删除临时容器">
  480 + <created>1569568426923</created>
  481 + <option name="number" value="00030" />
  482 + <option name="presentableId" value="LOCAL-00030" />
  483 + <option name="project" value="LOCAL" />
  484 + <updated>1569568426923</updated>
  485 + </task>
  486 + <task id="LOCAL-00031" summary="修改容器新增时容器enable状态">
  487 + <created>1569577849038</created>
  488 + <option name="number" value="00031" />
  489 + <option name="presentableId" value="LOCAL-00031" />
  490 + <option name="project" value="LOCAL" />
  491 + <updated>1569577849039</updated>
  492 + </task>
  493 + <task id="LOCAL-00032" summary="修改入库组盘页面中任务类型的显示问题&#10;修改任务完成不修改入库组盘状态的问题">
  494 + <created>1569740895495</created>
  495 + <option name="number" value="00032" />
  496 + <option name="presentableId" value="LOCAL-00032" />
  497 + <option name="project" value="LOCAL" />
  498 + <updated>1569740895496</updated>
  499 + </task>
  500 + <task id="LOCAL-00033" summary="添加根据code查询物料">
  501 + <created>1569743042718</created>
  502 + <option name="number" value="00033" />
  503 + <option name="presentableId" value="LOCAL-00033" />
  504 + <option name="project" value="LOCAL" />
  505 + <updated>1569743042718</updated>
  506 + </task>
  507 + <task id="LOCAL-00034" summary="添加根据容器编码查找容器的方法&#10;配置规则添加自动添加模块类型&#10;添加是否自动生成临时容器">
  508 + <created>1570582333467</created>
  509 + <option name="number" value="00034" />
  510 + <option name="presentableId" value="LOCAL-00034" />
  511 + <option name="project" value="LOCAL" />
  512 + <updated>1570582333467</updated>
  513 + </task>
  514 + <option name="localTasksCounter" value="35" />
272 <servers /> 515 <servers />
273 </component> 516 </component>
274 <component name="TypeScriptGeneratedFilesManager"> 517 <component name="TypeScriptGeneratedFilesManager">
@@ -288,41 +531,98 @@ @@ -288,41 +531,98 @@
288 </option> 531 </option>
289 </component> 532 </component>
290 <component name="VcsManagerConfiguration"> 533 <component name="VcsManagerConfiguration">
291 - <MESSAGE value="修改添加物料时使用物料类别生成物料编码" />  
292 - <MESSAGE value="修改质检页面、添加完成质检" />  
293 - <MESSAGE value="修复入库质检请求地址冲突" />  
294 - <MESSAGE value="添加入库单打印" />  
295 - <option name="LAST_COMMIT_MESSAGE" value="添加入库单打印" /> 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 + <MESSAGE value="添加根据容器编码查找容器的方法&#10;配置规则添加自动添加模块类型&#10;添加是否自动生成临时容器" />
  560 + <option name="LAST_COMMIT_MESSAGE" value="添加根据容器编码查找容器的方法&#10;配置规则添加自动添加模块类型&#10;添加是否自动生成临时容器" />
296 </component> 561 </component>
297 <component name="XDebuggerManager"> 562 <component name="XDebuggerManager">
298 <breakpoint-manager> 563 <breakpoint-manager>
299 <breakpoints> 564 <breakpoints>
300 <line-breakpoint enabled="true" type="java-line"> 565 <line-breakpoint enabled="true" type="java-line">
301 - <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkDetail/controller/CheckDetailController.java</url>  
302 - <line>152</line>  
303 - <option name="timeStamp" value="6" /> 566 + <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/config/bom/controller/BomHeaderController.java</url>
  567 + <line>164</line>
  568 + <option name="timeStamp" value="24" />
  569 + </line-breakpoint>
  570 + <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 + <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkingRegister/controller/CheckingRegisterController.java</url>
  577 + <line>174</line>
  578 + <option name="timeStamp" value="28" />
304 </line-breakpoint> 579 </line-breakpoint>
305 <line-breakpoint enabled="true" type="java-line"> 580 <line-breakpoint enabled="true" type="java-line">
306 - <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkDetail/controller/CheckDetailController.java</url>  
307 - <line>154</line>  
308 - <option name="timeStamp" value="8" /> 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" />
309 </line-breakpoint> 584 </line-breakpoint>
310 <line-breakpoint enabled="true" type="java-line"> 585 <line-breakpoint enabled="true" type="java-line">
311 - <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkDetail/service/CheckDetailService.java</url>  
312 - <line>45</line>  
313 - <option name="timeStamp" value="9" /> 586 + <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptContainerDetail/service/ReceiptContainerDetailServiceImpl.java</url>
  587 + <line>56</line>
  588 + <option name="timeStamp" value="49" />
314 </line-breakpoint> 589 </line-breakpoint>
315 <line-breakpoint enabled="true" type="java-line"> 590 <line-breakpoint enabled="true" type="java-line">
316 - <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptHeader/service/ReceiptHeaderService.java</url>  
317 - <line>144</line>  
318 - <option name="timeStamp" value="10" /> 591 + <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptContainerDetail/service/ReceiptContainerDetailServiceImpl.java</url>
  592 + <line>84</line>
  593 + <option name="timeStamp" value="51" />
319 </line-breakpoint> 594 </line-breakpoint>
320 <line-breakpoint enabled="true" type="java-line"> 595 <line-breakpoint enabled="true" type="java-line">
321 - <url>file://$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptHeader/controller/ReceiptHeaderController.java</url>  
322 - <line>240</line>  
323 - <option name="timeStamp" value="11" /> 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" />
  599 + </line-breakpoint>
  600 + <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" />
  604 + </line-breakpoint>
  605 + <line-breakpoint enabled="true" type="javascript">
  606 + <url>file://$PROJECT_DIR$/src/main/resources/templates/check/checkingRegister/checkingRegister.html</url>
  607 + <line>308</line>
  608 + <option name="timeStamp" value="29" />
  609 + </line-breakpoint>
  610 + <line-breakpoint enabled="true" type="javascript">
  611 + <url>file://$PROJECT_DIR$/src/main/resources/templates/config/waveFlowHeader/waveFlowHeader.html</url>
  612 + <line>71</line>
  613 + <option name="timeStamp" value="43" />
324 </line-breakpoint> 614 </line-breakpoint>
325 </breakpoints> 615 </breakpoints>
326 </breakpoint-manager> 616 </breakpoint-manager>
  617 + <watches-manager>
  618 + <configuration name="SpringBootApplicationConfigurationType">
  619 + <watch expression="receiptDetailService.getById(receiptContainerDetail.getReceiptDetailId()).getLocatingRule()" language="JAVA" />
  620 + </configuration>
  621 + </watches-manager>
  622 + </component>
  623 + <component name="com.intellij.coverage.CoverageDataManagerImpl">
  624 + <SUITE FILE_PATH="coverage/huaheng$HuaHengApplication.ic" NAME="HuaHengApplication Coverage Results" MODIFIED="1568251952497" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="idea" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false">
  625 + <FILTER>com.huaheng.*</FILTER>
  626 + </SUITE>
327 </component> 627 </component>
328 </project> 628 </project>
329 \ No newline at end of file 629 \ No newline at end of file
src/main/java/com/huaheng/pc/check/checkingRegister/controller/CheckingRegisterController.java
@@ -84,7 +84,9 @@ public class CheckingRegisterController extends BaseController { @@ -84,7 +84,9 @@ public class CheckingRegisterController extends BaseController {
84 PageDomain pageDomain = TableSupport.buildPageRequest(); 84 PageDomain pageDomain = TableSupport.buildPageRequest();
85 Integer pageNum = pageNumber; 85 Integer pageNum = pageNumber;
86 Integer pageSize = pageDomain.getPageSize(); 86 Integer pageSize = pageDomain.getPageSize();
87 - boolean isDetailNull; 87 + boolean isDetailNull; //质检明细是否存在标识
  88 +
  89 + //判断质检单明细标号是否存在,不存在显示所有质检报告
88 if (StringUtils.isNotNull(checkingRegister.getCheckDetailId())){ 90 if (StringUtils.isNotNull(checkingRegister.getCheckDetailId())){
89 isDetailNull = true; 91 isDetailNull = true;
90 if (checkingRegister.getCheckDetailId() == 0){ 92 if (checkingRegister.getCheckDetailId() == 0){
src/main/java/com/huaheng/pc/check/checkingRegister/service/CheckingRegisterService.java
@@ -64,7 +64,7 @@ public class CheckingRegisterService extends ServiceImpl&lt;CheckingRegisterMapper, @@ -64,7 +64,7 @@ public class CheckingRegisterService extends ServiceImpl&lt;CheckingRegisterMapper,
64 */ 64 */
65 public List<CheckingRegister> emptyList(Integer checkDetailId){ 65 public List<CheckingRegister> emptyList(Integer checkDetailId){
66 List<CheckingRegister> list = new ArrayList<>(); 66 List<CheckingRegister> list = new ArrayList<>();
67 - List<DictData> dictDataList = dictDataService.selectDictDataByType("inventoryStatus"); 67 + List<DictData> dictDataList = dictDataService.selectDictDataByType("inventorySts");
68 CheckDetail checkDetail = checkDetailService.getById(checkDetailId); 68 CheckDetail checkDetail = checkDetailService.getById(checkDetailId);
69 for (DictData dictData: dictDataList){ 69 for (DictData dictData: dictDataList){
70 CheckingRegister checkingRegister1 = new CheckingRegister(); 70 CheckingRegister checkingRegister1 = new CheckingRegister();
src/main/java/com/huaheng/pc/config/FilterConfigHeader/controller/FilterConfigHeaderController.java
@@ -98,8 +98,9 @@ public class FilterConfigHeaderController extends BaseController { @@ -98,8 +98,9 @@ public class FilterConfigHeaderController extends BaseController {
98 /** 98 /**
99 * 新增规则配置主表 99 * 新增规则配置主表
100 */ 100 */
101 - @GetMapping("/add")  
102 - public String add() { 101 + @GetMapping("/add/{type}")
  102 + public String add(@PathVariable("type")String type, ModelMap modelMap) {
  103 + modelMap.put("moduleType", type);
103 return prefix + "/add"; 104 return prefix + "/add";
104 } 105 }
105 106
src/main/java/com/huaheng/pc/config/container/mapper/ContainerMapper.java
@@ -14,6 +14,7 @@ public interface ContainerMapper extends BaseMapper&lt;Container&gt; { @@ -14,6 +14,7 @@ public interface ContainerMapper extends BaseMapper&lt;Container&gt; {
14 14
15 void updateLocationCodeAndStatus(@Param("warehouseCode") String warehouseCode, @Param("containerCode") String containerCode, @Param("locationCode") String locationCode, @Param("status") String status); 15 void updateLocationCodeAndStatus(@Param("warehouseCode") String warehouseCode, @Param("containerCode") String containerCode, @Param("locationCode") String locationCode, @Param("status") String status);
16 16
  17 + Container findAllByCode(@Param("code") String code);
17 18
18 19
19 } 20 }
20 \ No newline at end of file 21 \ No newline at end of file
src/main/java/com/huaheng/pc/config/container/service/ContainerService.java
@@ -20,4 +20,6 @@ public interface ContainerService extends IService&lt;Container&gt;{ @@ -20,4 +20,6 @@ public interface ContainerService extends IService&lt;Container&gt;{
20 void removeContainer(String containType, String containCode); 20 void removeContainer(String containType, String containCode);
21 21
22 void removeByCode(String containCode); 22 void removeByCode(String containCode);
  23 +
  24 + Container findAllByCode(String containCode);
23 } 25 }
src/main/java/com/huaheng/pc/config/container/service/ContainerServiceImpl.java
@@ -162,4 +162,9 @@ public class ContainerServiceImpl extends ServiceImpl&lt;ContainerMapper, Container @@ -162,4 +162,9 @@ public class ContainerServiceImpl extends ServiceImpl&lt;ContainerMapper, Container
162 } 162 }
163 163
164 } 164 }
  165 +
  166 + @Override
  167 + public Container findAllByCode(String code) {
  168 + return containerMapper.findAllByCode(code);
  169 + }
165 } 170 }
src/main/java/com/huaheng/pc/config/material/controller/MaterialController.java
@@ -156,7 +156,6 @@ public class MaterialController extends BaseController { @@ -156,7 +156,6 @@ public class MaterialController extends BaseController {
156 156
157 /** 157 /**
158 * 导出模板 158 * 导出模板
159 - * @param file  
160 * @return 159 * @return
161 * @throws Exception 160 * @throws Exception
162 */ 161 */
src/main/java/com/huaheng/pc/config/statusFlow/controller/StatusFlowDetailController.java
@@ -96,6 +96,7 @@ public class StatusFlowDetailController extends BaseController { @@ -96,6 +96,7 @@ public class StatusFlowDetailController extends BaseController {
96 StatusFlowHeader statusFlowHeader = statusFlowHeaderService.getById(headerId); 96 StatusFlowHeader statusFlowHeader = statusFlowHeaderService.getById(headerId);
97 mmap.put("headerId",headerId); 97 mmap.put("headerId",headerId);
98 mmap.put("headerCode", statusFlowHeader.getCode()); 98 mmap.put("headerCode", statusFlowHeader.getCode());
  99 + mmap.put("moduleType", statusFlowHeader.getModuleType());
99 return prefix + "/add"; 100 return prefix + "/add";
100 } 101 }
101 102
src/main/java/com/huaheng/pc/config/statusFlow/controller/StatusFlowHeaderController.java
@@ -82,8 +82,9 @@ public class StatusFlowHeaderController extends BaseController { @@ -82,8 +82,9 @@ public class StatusFlowHeaderController extends BaseController {
82 /** 82 /**
83 * 新增流程 83 * 新增流程
84 */ 84 */
85 - @GetMapping("/add")  
86 - public String add() { 85 + @GetMapping("/add/{type}")
  86 + public String add(@PathVariable("type") String type, ModelMap modelMap) {
  87 + modelMap.put("moduleType", type);
87 return prefix + "/add"; 88 return prefix + "/add";
88 } 89 }
89 90
src/main/java/com/huaheng/pc/inventory/adjustDetail/controller/adjustDetailController.java
@@ -38,8 +38,6 @@ public class adjustDetailController extends BaseController { @@ -38,8 +38,6 @@ public class adjustDetailController extends BaseController {
38 38
39 39
40 @Resource 40 @Resource
41 - private AdjustHeaderService adjustHeaderService;  
42 - @Resource  
43 private AdjustHeaderMapper adjustHeaderMapper; 41 private AdjustHeaderMapper adjustHeaderMapper;
44 @Resource 42 @Resource
45 private AdjustDetailService adjustDetailService; 43 private AdjustDetailService adjustDetailService;
@@ -49,7 +47,7 @@ public class adjustDetailController extends BaseController { @@ -49,7 +47,7 @@ public class adjustDetailController extends BaseController {
49 private String prefix = "inventory/adjustDetail"; 47 private String prefix = "inventory/adjustDetail";
50 48
51 49
52 - //@RequiresPermissions("inventory:cycleCount:view") 50 + @RequiresPermissions("inventory:adjustDetail:view")
53 @GetMapping() 51 @GetMapping()
54 public String adjustHeader() 52 public String adjustHeader()
55 { 53 {
@@ -60,7 +58,7 @@ public class adjustDetailController extends BaseController { @@ -60,7 +58,7 @@ public class adjustDetailController extends BaseController {
60 /** 58 /**
61 * 查询调整单主列表 59 * 查询调整单主列表
62 */ 60 */
63 - //@RequiresPermissions("inventory:cycleCount:list") 61 + @RequiresPermissions("inventory:adjustDetail:list")
64 @PostMapping("/list") 62 @PostMapping("/list")
65 @Log(title = "库存-调整",operating = "查看调整明细单", action = BusinessType.GRANT) 63 @Log(title = "库存-调整",operating = "查看调整明细单", action = BusinessType.GRANT)
66 @ResponseBody 64 @ResponseBody
@@ -121,7 +119,7 @@ public class adjustDetailController extends BaseController { @@ -121,7 +119,7 @@ public class adjustDetailController extends BaseController {
121 /** 119 /**
122 * 保存新增调整明细 120 * 保存新增调整明细
123 */ 121 */
124 - //@RequiresPermissions("inventory:cyclecountDetail:add") 122 + @RequiresPermissions("inventory:adjustDetail:add")
125 @Log(title = "库存-盘点", operating = "新增盘点补货明细", action = BusinessType.INSERT) 123 @Log(title = "库存-盘点", operating = "新增盘点补货明细", action = BusinessType.INSERT)
126 @PostMapping("/addAdjust") 124 @PostMapping("/addAdjust")
127 @ResponseBody 125 @ResponseBody
@@ -150,7 +148,7 @@ public class adjustDetailController extends BaseController { @@ -150,7 +148,7 @@ public class adjustDetailController extends BaseController {
150 * 调整数量,调整库存状态 148 * 调整数量,调整库存状态
151 * 调整插入库存 149 * 调整插入库存
152 */ 150 */
153 - //@RequiresPermissions("inventory:cyclecountAdjustDetail:addAdjust") 151 + @RequiresPermissions("inventory:adjustDetail:addAdjust")
154 @Log(title = "库存-调整单", operating = "调整单调整库存差异,调整数量", action = BusinessType.UPDATE) 152 @Log(title = "库存-调整单", operating = "调整单调整库存差异,调整数量", action = BusinessType.UPDATE)
155 @PostMapping("/adjustEdit") 153 @PostMapping("/adjustEdit")
156 @ResponseBody 154 @ResponseBody
@@ -177,6 +175,7 @@ public class adjustDetailController extends BaseController { @@ -177,6 +175,7 @@ public class adjustDetailController extends BaseController {
177 * @param ids 175 * @param ids
178 * @return 176 * @return
179 */ 177 */
  178 + @RequiresPermissions("inventory:adjustDetail:adjustAgree")
180 @Log(title = "库存-调整单", operating = "调整审批", action = BusinessType.OTHER) 179 @Log(title = "库存-调整单", operating = "调整审批", action = BusinessType.OTHER)
181 @PostMapping("/adjustAgree") 180 @PostMapping("/adjustAgree")
182 @ResponseBody 181 @ResponseBody
@@ -199,7 +198,7 @@ public class adjustDetailController extends BaseController { @@ -199,7 +198,7 @@ public class adjustDetailController extends BaseController {
199 /** 198 /**
200 * 删除调整单明细 199 * 删除调整单明细
201 */ 200 */
202 - //@RequiresPermissions("inventory:cyclecountDetail:remove") 201 + @RequiresPermissions("inventory:adjustDetail:remove")
203 @Log(title = "库存-调整", operating = "删除调整单明细", action = BusinessType.DELETE) 202 @Log(title = "库存-调整", operating = "删除调整单明细", action = BusinessType.DELETE)
204 @PostMapping( "/remove") 203 @PostMapping( "/remove")
205 @ResponseBody 204 @ResponseBody
@@ -212,7 +211,6 @@ public class adjustDetailController extends BaseController { @@ -212,7 +211,6 @@ public class adjustDetailController extends BaseController {
212 return AjaxResult.error("单据状态不允许删除"); 211 return AjaxResult.error("单据状态不允许删除");
213 } 212 }
214 adjustDetailService.removeById(id); 213 adjustDetailService.removeById(id);
215 -  
216 return AjaxResult.success("删除成功!"); 214 return AjaxResult.success("删除成功!");
217 } 215 }
218 216
src/main/java/com/huaheng/pc/inventory/adjustDetail/service/AdjustDetailServiceImpl.java
@@ -157,7 +157,7 @@ public class AdjustDetailServiceImpl extends ServiceImpl&lt;AdjustDetailMapper, Adj @@ -157,7 +157,7 @@ public class AdjustDetailServiceImpl extends ServiceImpl&lt;AdjustDetailMapper, Adj
157 AjaxResult.error("该单据已调整,不允许再次调整!" ); 157 AjaxResult.error("该单据已调整,不允许再次调整!" );
158 } 158 }
159 //查询调整的库存明细 159 //查询调整的库存明细
160 - InventoryDetail inventoryDetail = new InventoryDetail(); 160 + InventoryDetail inventoryDetail ;
161 //调整单中不带库存明细时不查询 161 //调整单中不带库存明细时不查询
162 if(adjustDetail.getInventoryDetailId() != null) { 162 if(adjustDetail.getInventoryDetailId() != null) {
163 inventoryDetail = inventoryDetailService.getById(adjustDetail.getInventoryDetailId()); 163 inventoryDetail = inventoryDetailService.getById(adjustDetail.getInventoryDetailId());
src/main/java/com/huaheng/pc/inventory/adjustHeader/controller/adjustHeaderController.java
@@ -44,7 +44,7 @@ public class adjustHeaderController extends BaseController { @@ -44,7 +44,7 @@ public class adjustHeaderController extends BaseController {
44 private String prefix = "inventory/adjustHeader"; 44 private String prefix = "inventory/adjustHeader";
45 45
46 46
47 - //@RequiresPermissions("inventory:cycleCount:view") 47 + @RequiresPermissions("inventory:adjustHeader:view")
48 @GetMapping() 48 @GetMapping()
49 public String adjustHeader() 49 public String adjustHeader()
50 { 50 {
@@ -55,7 +55,7 @@ public class adjustHeaderController extends BaseController { @@ -55,7 +55,7 @@ public class adjustHeaderController extends BaseController {
55 /** 55 /**
56 * 查询调整单主列表 56 * 查询调整单主列表
57 */ 57 */
58 - //@RequiresPermissions("inventory:cycleCount:list") 58 + @RequiresPermissions("inventory:adjustHeader:list")
59 @PostMapping("/list") 59 @PostMapping("/list")
60 @Log(title = "库存-调整",operating = "查看调整主单", action = BusinessType.GRANT) 60 @Log(title = "库存-调整",operating = "查看调整主单", action = BusinessType.GRANT)
61 @ResponseBody 61 @ResponseBody
@@ -101,7 +101,7 @@ public class adjustHeaderController extends BaseController { @@ -101,7 +101,7 @@ public class adjustHeaderController extends BaseController {
101 /** 101 /**
102 * 新增保存调整单主 102 * 新增保存调整单主
103 */ 103 */
104 - //@RequiresPermissions("inventory:cycleCount:add") 104 + @RequiresPermissions("inventory:adjustHeader:add")
105 @Log(title = "库存-调整",operating = "新增调整主单", action = BusinessType.INSERT) 105 @Log(title = "库存-调整",operating = "新增调整主单", action = BusinessType.INSERT)
106 @PostMapping("/addsave") 106 @PostMapping("/addsave")
107 @ResponseBody 107 @ResponseBody
@@ -114,7 +114,7 @@ public class adjustHeaderController extends BaseController { @@ -114,7 +114,7 @@ public class adjustHeaderController extends BaseController {
114 /** 114 /**
115 * 删除调整单主 115 * 删除调整单主
116 */ 116 */
117 - //@RequiresPermissions("inventory:cycleCount:remove") 117 + @RequiresPermissions("inventory:adjustHeader:remove")
118 @Log(title = "库存-调整",operating = "删除调整主单", action = BusinessType.DELETE) 118 @Log(title = "库存-调整",operating = "删除调整主单", action = BusinessType.DELETE)
119 @PostMapping( "/remove") 119 @PostMapping( "/remove")
120 @ResponseBody 120 @ResponseBody
@@ -124,7 +124,7 @@ public class adjustHeaderController extends BaseController { @@ -124,7 +124,7 @@ public class adjustHeaderController extends BaseController {
124 return AjaxResult.error("id不能为空"); 124 return AjaxResult.error("id不能为空");
125 for (Integer id : Convert.toIntArray(ids)) 125 for (Integer id : Convert.toIntArray(ids))
126 { 126 {
127 - AjaxResult result = adjustHeaderService.delete(id); 127 + AjaxResult result = adjustHeaderService.deleteHeader(id);
128 if(result.code!=200){ 128 if(result.code!=200){
129 return result; 129 return result;
130 } 130 }
@@ -136,7 +136,7 @@ public class adjustHeaderController extends BaseController { @@ -136,7 +136,7 @@ public class adjustHeaderController extends BaseController {
136 * 调整单打印 136 * 调整单打印
137 * @return 137 * @return
138 */ 138 */
139 - //@RequiresPermissions("inventory:cyclecountAdjust:report") 139 + @RequiresPermissions("inventory:adjustHeader:report")
140 @GetMapping("/report/{id}") 140 @GetMapping("/report/{id}")
141 public String report(@PathVariable("id") Integer id, ModelMap mmap) 141 public String report(@PathVariable("id") Integer id, ModelMap mmap)
142 { 142 {
src/main/java/com/huaheng/pc/inventory/adjustHeader/service/AdjustHeaderService.java
@@ -11,7 +11,7 @@ public interface AdjustHeaderService extends IService&lt;AdjustHeader&gt; { @@ -11,7 +11,7 @@ public interface AdjustHeaderService extends IService&lt;AdjustHeader&gt; {
11 11
12 String createCode(); 12 String createCode();
13 13
14 - AjaxResult delete(Integer id); 14 + AjaxResult deleteHeader(Integer id);
15 15
16 AjaxResult addSave(AdjustHeader adjustHeader); 16 AjaxResult addSave(AdjustHeader adjustHeader);
17 17
src/main/java/com/huaheng/pc/inventory/adjustHeader/service/AdjustHeaderServiceImpl.java
1 package com.huaheng.pc.inventory.adjustHeader.service; 1 package com.huaheng.pc.inventory.adjustHeader.service;
2 2
  3 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4 +import com.baomidou.mybatisplus.core.toolkit.Wrappers;
3 import com.huaheng.common.utils.StringUtils; 5 import com.huaheng.common.utils.StringUtils;
4 import com.huaheng.common.utils.security.ShiroUtils; 6 import com.huaheng.common.utils.security.ShiroUtils;
5 import com.huaheng.framework.web.domain.AjaxResult; 7 import com.huaheng.framework.web.domain.AjaxResult;
  8 +import com.huaheng.pc.config.warehouse.domain.Warehouse;
6 import com.huaheng.pc.inventory.adjustDetail.domain.AdjustDetail; 9 import com.huaheng.pc.inventory.adjustDetail.domain.AdjustDetail;
  10 +import com.huaheng.pc.inventory.adjustDetail.service.AdjustDetailService;
7 import org.springframework.stereotype.Service; 11 import org.springframework.stereotype.Service;
8 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 12 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
9 import com.huaheng.pc.inventory.adjustHeader.domain.AdjustHeader; 13 import com.huaheng.pc.inventory.adjustHeader.domain.AdjustHeader;
@@ -13,6 +17,7 @@ import org.springframework.transaction.annotation.Transactional; @@ -13,6 +17,7 @@ import org.springframework.transaction.annotation.Transactional;
13 import javax.annotation.Resource; 17 import javax.annotation.Resource;
14 import java.text.SimpleDateFormat; 18 import java.text.SimpleDateFormat;
15 import java.util.Date; 19 import java.util.Date;
  20 +import java.util.List;
16 21
17 @Service 22 @Service
18 public class AdjustHeaderServiceImpl extends ServiceImpl<AdjustHeaderMapper, AdjustHeader> implements AdjustHeaderService { 23 public class AdjustHeaderServiceImpl extends ServiceImpl<AdjustHeaderMapper, AdjustHeader> implements AdjustHeaderService {
@@ -20,7 +25,8 @@ public class AdjustHeaderServiceImpl extends ServiceImpl&lt;AdjustHeaderMapper, Adj @@ -20,7 +25,8 @@ public class AdjustHeaderServiceImpl extends ServiceImpl&lt;AdjustHeaderMapper, Adj
20 25
21 @Resource 26 @Resource
22 private AdjustHeaderMapper adjustHeaderMapper; 27 private AdjustHeaderMapper adjustHeaderMapper;
23 - 28 + @Resource
  29 + private AdjustDetailService adjustDetailService;
24 30
25 31
26 32
@@ -48,22 +54,29 @@ public class AdjustHeaderServiceImpl extends ServiceImpl&lt;AdjustHeaderMapper, Adj @@ -48,22 +54,29 @@ public class AdjustHeaderServiceImpl extends ServiceImpl&lt;AdjustHeaderMapper, Adj
48 } 54 }
49 55
50 /** 56 /**
51 - * 删除  
52 - * 空缺 57 + * 调整主单删除
53 * @param id 58 * @param id
54 * @return 59 * @return
55 */ 60 */
  61 + @Transactional
56 @Override 62 @Override
57 - public AjaxResult delete(Integer id) { 63 + public AjaxResult deleteHeader(Integer id) {
58 AdjustHeader adjustHeader = this.getById(id); 64 AdjustHeader adjustHeader = this.getById(id);
59 if(adjustHeader == null){ 65 if(adjustHeader == null){
60 return AjaxResult.error("id为"+id.toString()+"的调整单不存在出,操作中止"); 66 return AjaxResult.error("id为"+id.toString()+"的调整单不存在出,操作中止");
61 } 67 }
62 -  
63 - //批量删除子单据 68 + //判断该主单下有没又存在子单,没有直接删除主单,有则不能删除
64 AdjustDetail temp = new AdjustDetail(); 69 AdjustDetail temp = new AdjustDetail();
65 temp.setAdjustCode(adjustHeader.getCode()); 70 temp.setAdjustCode(adjustHeader.getCode());
  71 + temp.setCompanyCode(adjustHeader.getCompanyCode());
  72 + temp.setWarehouseCode(adjustHeader.getWarehouseCode());
  73 + LambdaQueryWrapper<AdjustDetail> lambdaQueryWrapper = Wrappers.lambdaQuery(temp);
  74 + List<AdjustDetail> adjustDetails = adjustDetailService.list(lambdaQueryWrapper);
  75 + if(adjustDetails.size() > 0){
  76 + throw new SecurityException("该主单存在明细,无法删除,操作失败!");
  77 + }
66 78
  79 + adjustHeaderMapper.deleteById(id); //直接删主单
67 return AjaxResult.success("删除成功"); 80 return AjaxResult.success("删除成功");
68 } 81 }
69 82
src/main/java/com/huaheng/pc/inventory/cycleCountDetail/controller/CycleCountDetailController.java
@@ -58,9 +58,10 @@ public class CycleCountDetailController extends BaseController { @@ -58,9 +58,10 @@ public class CycleCountDetailController extends BaseController {
58 58
59 59
60 60
61 -  
62 private String prefix = "inventory/cycleCountDetail"; 61 private String prefix = "inventory/cycleCountDetail";
63 62
  63 +
  64 + @RequiresPermissions("inventory:cyclecountDetail:view")
64 @GetMapping() 65 @GetMapping()
65 public String cyclecountHeader() 66 public String cyclecountHeader()
66 { 67 {
@@ -70,7 +71,7 @@ public class CycleCountDetailController extends BaseController { @@ -70,7 +71,7 @@ public class CycleCountDetailController extends BaseController {
70 /** 71 /**
71 * 查询盘点单主列表 72 * 查询盘点单主列表
72 */ 73 */
73 - //@RequiresPermissions("inventory:cycleCount:list") 74 + @RequiresPermissions("inventory:cycleCountDetail:list")
74 @PostMapping("/list") 75 @PostMapping("/list")
75 @Log(title = "库存-盘点",operating = "查看盘点明细", action = BusinessType.GRANT) 76 @Log(title = "库存-盘点",operating = "查看盘点明细", action = BusinessType.GRANT)
76 @ResponseBody 77 @ResponseBody
@@ -143,19 +144,22 @@ public class CycleCountDetailController extends BaseController { @@ -143,19 +144,22 @@ public class CycleCountDetailController extends BaseController {
143 /** 144 /**
144 * 新增保存盘点明细 145 * 新增保存盘点明细
145 */ 146 */
146 - //@RequiresPermissions("inventory:cyclecountDetail:add") 147 + @RequiresPermissions("inventory:cyclecountDetail:add")
147 @Log(title = "库存-盘点", operating = "新增盘点补货明细", action = BusinessType.INSERT) 148 @Log(title = "库存-盘点", operating = "新增盘点补货明细", action = BusinessType.INSERT)
148 @PostMapping("/add") 149 @PostMapping("/add")
149 @ResponseBody 150 @ResponseBody
150 - public AjaxResult addSave(String cycleCountHeadCode, Integer[] inventoryDetailIdIds) 151 + public AjaxResult addSave(String cycleCountHeadCode, Integer[] inventoryDetailIds)
151 { 152 {
152 - return cycleCountDetailService.addDetails(cycleCountHeadCode,inventoryDetailIdIds); 153 + if(inventoryDetailIds == null){
  154 + return AjaxResult.error("盘点的库存ID不能为空!");
  155 + }
  156 + return cycleCountDetailService.addDetails(cycleCountHeadCode,inventoryDetailIds);
153 } 157 }
154 158
155 /** 159 /**
156 * 删除盘点明细 160 * 删除盘点明细
157 */ 161 */
158 - //@RequiresPermissions("inventory:cyclecountDetail:remove") 162 + @RequiresPermissions("inventory:cyclecountDetail:remove")
159 @Log(title = "库存-盘点", operating = "删除盘点明细", action = BusinessType.DELETE) 163 @Log(title = "库存-盘点", operating = "删除盘点明细", action = BusinessType.DELETE)
160 @PostMapping( "/remove") 164 @PostMapping( "/remove")
161 @ResponseBody 165 @ResponseBody
@@ -194,7 +198,7 @@ public class CycleCountDetailController extends BaseController { @@ -194,7 +198,7 @@ public class CycleCountDetailController extends BaseController {
194 } 198 }
195 199
196 /**生成全部盘点任务*/ 200 /**生成全部盘点任务*/
197 - //@RequiresPermissions("inventory:cyclecountDetail:createTask") 201 + @RequiresPermissions("inventory:cyclecountDetail:createTask")
198 @PostMapping("/createCycleCountTaskByHeadId") 202 @PostMapping("/createCycleCountTaskByHeadId")
199 @ResponseBody 203 @ResponseBody
200 public AjaxResult createCycleCountTaskByHeadId(String cycleCountHeadCode){ 204 public AjaxResult createCycleCountTaskByHeadId(String cycleCountHeadCode){
@@ -205,7 +209,7 @@ public class CycleCountDetailController extends BaseController { @@ -205,7 +209,7 @@ public class CycleCountDetailController extends BaseController {
205 } 209 }
206 210
207 /**生成单条盘点任务*/ 211 /**生成单条盘点任务*/
208 - //@RequiresPermissions("inventory:cyclecountDetail:createTask") 212 + @RequiresPermissions("inventory:cyclecountDetail:createTask")
209 @PostMapping("/createCycleCoutTaskByDetailId") 213 @PostMapping("/createCycleCoutTaskByDetailId")
210 @ResponseBody 214 @ResponseBody
211 public AjaxResult createCycleCoutTaskByDetailId(Integer cycleCoutdetailId){ 215 public AjaxResult createCycleCoutTaskByDetailId(Integer cycleCoutdetailId){
@@ -221,10 +225,11 @@ public class CycleCountDetailController extends BaseController { @@ -221,10 +225,11 @@ public class CycleCountDetailController extends BaseController {
221 * @param qty 225 * @param qty
222 * @return 226 * @return
223 */ 227 */
224 - //@RequiresPermissions("inventory:cyclecountDetail:confirm") 228 + @RequiresPermissions("inventory:cyclecountDetail:confirm")
225 @PostMapping("/confirmGapQty") 229 @PostMapping("/confirmGapQty")
226 @ResponseBody 230 @ResponseBody
227 public AjaxResult confirmGapQty(Integer detailId, BigDecimal qty){ 231 public AjaxResult confirmGapQty(Integer detailId, BigDecimal qty){
  232 +
228 return cycleCountDetailService.confirmGapQty(detailId,qty); 233 return cycleCountDetailService.confirmGapQty(detailId,qty);
229 } 234 }
230 235
@@ -233,11 +238,13 @@ public class CycleCountDetailController extends BaseController { @@ -233,11 +238,13 @@ public class CycleCountDetailController extends BaseController {
233 * @param cycleCountHeadCode 238 * @param cycleCountHeadCode
234 * @return 239 * @return
235 */ 240 */
236 - //@RequiresPermissions("inventory:cyclecountDetail:cyclecountRepeat") 241 + @RequiresPermissions("inventory:cyclecountDetail:cyclecountRepeat")
237 @PostMapping("/createCyclecountWithGapQty") 242 @PostMapping("/createCyclecountWithGapQty")
238 @ResponseBody 243 @ResponseBody
239 public AjaxResult createCyclecountWithGapQty(String cycleCountHeadCode){ 244 public AjaxResult createCyclecountWithGapQty(String cycleCountHeadCode){
240 - 245 + if(StringUtils.isEmpty(cycleCountHeadCode)){
  246 + return AjaxResult.error("需要复盘的盘点单编码不能为空!");
  247 + }
241 return cycleCountDetailService.createCyclecountWithGapQty(cycleCountHeadCode); 248 return cycleCountDetailService.createCyclecountWithGapQty(cycleCountHeadCode);
242 } 249 }
243 250
src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailServiceImpl.java
@@ -48,10 +48,6 @@ public class CycleCountDetailServiceImpl extends ServiceImpl&lt;CycleCountDetailMap @@ -48,10 +48,6 @@ public class CycleCountDetailServiceImpl extends ServiceImpl&lt;CycleCountDetailMap
48 48
49 49
50 50
51 -  
52 -  
53 -  
54 -  
55 /** 51 /**
56 * 执行任务修改状态为10 52 * 执行任务修改状态为10
57 * @param detailid 53 * @param detailid
@@ -131,7 +127,7 @@ public class CycleCountDetailServiceImpl extends ServiceImpl&lt;CycleCountDetailMap @@ -131,7 +127,7 @@ public class CycleCountDetailServiceImpl extends ServiceImpl&lt;CycleCountDetailMap
131 ccd.setCompanyCode(inventoryDetail.getCompanyCode()); 127 ccd.setCompanyCode(inventoryDetail.getCompanyCode());
132 ccd.setInventorySts(inventoryDetail.getInventorySts()); 128 ccd.setInventorySts(inventoryDetail.getInventorySts());
133 ccd.setCountId(inventoryDetail.getId()); 129 ccd.setCountId(inventoryDetail.getId());
134 - ccd.setEnableStatus(5); 130 + //ccd.setEnableStatus(1);
135 ccd.setLocationCode(inventoryDetail.getLocationCode()); 131 ccd.setLocationCode(inventoryDetail.getLocationCode());
136 ccd.setContainerCode(inventoryDetail.getContainerCode()); 132 ccd.setContainerCode(inventoryDetail.getContainerCode());
137 ccd.setMaterialCode(inventoryDetail.getMaterialCode()); 133 ccd.setMaterialCode(inventoryDetail.getMaterialCode());
@@ -226,10 +222,10 @@ public class CycleCountDetailServiceImpl extends ServiceImpl&lt;CycleCountDetailMap @@ -226,10 +222,10 @@ public class CycleCountDetailServiceImpl extends ServiceImpl&lt;CycleCountDetailMap
226 LambdaQueryWrapper<Location> lambdaQueryWrapper = Wrappers.lambdaQuery(temp); 222 LambdaQueryWrapper<Location> lambdaQueryWrapper = Wrappers.lambdaQuery(temp);
227 Location loc = locationService.getOne(lambdaQueryWrapper); 223 Location loc = locationService.getOne(lambdaQueryWrapper);
228 if(!loc.getStatus().equals("empty")){ 224 if(!loc.getStatus().equals("empty")){
229 - return AjaxResult.error(cycleCountDetail.getLocationCode()+"状态非空闲,操作失败"); 225 + return AjaxResult.error(cycleCountDetail.getLocationCode()+"库位不在空闲状态,请先完成其他任务,操作失败!");
230 } 226 }
231 if(StringUtils.isEmpty(loc.getContainerCode())){ 227 if(StringUtils.isEmpty(loc.getContainerCode())){
232 - return AjaxResult.error(cycleCountDetail.getLocationCode()+"没有托盘,操作失败"); 228 + return AjaxResult.error(cycleCountDetail.getLocationCode()+"库位中没有容器,操作失败!");
233 } 229 }
234 230
235 //查询任务头和明细有相同容器,没有就新增任务头和明细 231 //查询任务头和明细有相同容器,没有就新增任务头和明细
@@ -363,9 +359,9 @@ public class CycleCountDetailServiceImpl extends ServiceImpl&lt;CycleCountDetailMap @@ -363,9 +359,9 @@ public class CycleCountDetailServiceImpl extends ServiceImpl&lt;CycleCountDetailMap
363 if (inventoryDetail == null) { 359 if (inventoryDetail == null) {
364 return AjaxResult.error("没有对应库存信息,请重建盘点单"); 360 return AjaxResult.error("没有对应库存信息,请重建盘点单");
365 } 361 }
366 - if(qty.compareTo(inventoryDetail.getTaskQty()) < 0){ 362 + /*if(qty.compareTo(inventoryDetail.getTaskQty()) < 0){
367 return AjaxResult.error("登记数量不能小于任务分配数量"); 363 return AjaxResult.error("登记数量不能小于任务分配数量");
368 - } 364 + }*/
369 } 365 }
370 cyclecountDetail.setCountedQty(qty); 366 cyclecountDetail.setCountedQty(qty);
371 cyclecountDetail.setGapQty(qty.subtract(cyclecountDetail.getSystemQty())); 367 cyclecountDetail.setGapQty(qty.subtract(cyclecountDetail.getSystemQty()));
@@ -390,7 +386,6 @@ public class CycleCountDetailServiceImpl extends ServiceImpl&lt;CycleCountDetailMap @@ -390,7 +386,6 @@ public class CycleCountDetailServiceImpl extends ServiceImpl&lt;CycleCountDetailMap
390 public AjaxResult createCyclecountWithGapQty(String cycleCountHeaderCode) { 386 public AjaxResult createCyclecountWithGapQty(String cycleCountHeaderCode) {
391 /*找出实盘登记中数量有差异的,重新生成盘点单*/ 387 /*找出实盘登记中数量有差异的,重新生成盘点单*/
392 388
393 -  
394 CycleCountHeader cycleCountHeader = new CycleCountHeader(); 389 CycleCountHeader cycleCountHeader = new CycleCountHeader();
395 cycleCountHeader.setWarehouseCode(ShiroUtils.getWarehouseCode()); 390 cycleCountHeader.setWarehouseCode(ShiroUtils.getWarehouseCode());
396 cycleCountHeader.setCode(cycleCountHeaderCode); 391 cycleCountHeader.setCode(cycleCountHeaderCode);
@@ -409,22 +404,30 @@ public class CycleCountDetailServiceImpl extends ServiceImpl&lt;CycleCountDetailMap @@ -409,22 +404,30 @@ public class CycleCountDetailServiceImpl extends ServiceImpl&lt;CycleCountDetailMap
409 if(countHeader != null){ 404 if(countHeader != null){
410 return AjaxResult.error("该单据已生成复盘单,请勿重复生成!"); 405 return AjaxResult.error("该单据已生成复盘单,请勿重复生成!");
411 } 406 }
  407 + //没有盘点明细或明细都没有差异时不生成复盘单
  408 +
412 CycleCountDetail cycleCountDetail = new CycleCountDetail(); 409 CycleCountDetail cycleCountDetail = new CycleCountDetail();
413 - cycleCountDetail.setTaskHeaderId(cycleCountHeader.getId()); 410 + cycleCountDetail.setCycleCountHeadCode(cycleCountHeaderCode);
414 cycleCountDetail.setWarehouseCode(cycleCountHeader.getWarehouseCode()); 411 cycleCountDetail.setWarehouseCode(cycleCountHeader.getWarehouseCode());
415 cycleCountDetail.setCompanyCode(cycleCountHeader.getCompanyCode()); 412 cycleCountDetail.setCompanyCode(cycleCountHeader.getCompanyCode());
416 - LambdaQueryWrapper<CycleCountDetail> cycleCountDetailLambdaQueryWrapper = Wrappers.lambdaQuery(); 413 + LambdaQueryWrapper<CycleCountDetail> cycleCountDetailLambdaQueryWrapper = Wrappers.lambdaQuery(cycleCountDetail);
417 List<CycleCountDetail> cycleCountDetails = this.list(cycleCountDetailLambdaQueryWrapper);//明细 414 List<CycleCountDetail> cycleCountDetails = this.list(cycleCountDetailLambdaQueryWrapper);//明细
418 if(cycleCountDetails.size() == 0){ 415 if(cycleCountDetails.size() == 0){
419 - throw new SecurityException("没有明细!"); 416 + throw new SecurityException("没有盘点明细条目,操作失败!");
420 } 417 }
421 //生成复盘盘点主单 418 //生成复盘盘点主单
422 - cycleCountHeader.setCode(cycleCountHeaderService.createCode());  
423 - cycleCountHeader.setRound(cycleCountHeader.getRound() + 1);//盘点轮次+1  
424 - cycleCountHeader.setCreated(new Date());  
425 - cycleCountHeader.setCreatedBy(ShiroUtils.getLoginName());  
426 - cycleCountHeader.setSourceCode(cycleCountHeaderCode);//源盘点单号  
427 - if(!cycleCountHeaderService.saveOrUpdate(cycleCountHeader)){ 419 + CycleCountHeader cycleCountHeader1 = new CycleCountHeader();
  420 + String cycleCountHeaderCode1 = cycleCountHeaderService.createCode();
  421 + cycleCountHeader1.setCode(cycleCountHeaderCode1);
  422 + cycleCountHeader1.setCompanyCode(cycleCountHeader.getCompanyCode());
  423 + cycleCountHeader1.setWarehouseCode(cycleCountHeader.getWarehouseCode());
  424 + cycleCountHeader1.setRound(cycleCountHeader.getRound() + 1);//盘点轮次+1
  425 + cycleCountHeader1.setCountType(cycleCountHeader.getCountType());
  426 + cycleCountHeader1.setCreated(new Date());
  427 + cycleCountHeader1.setCreatedBy(ShiroUtils.getLoginName());
  428 + cycleCountHeader1.setLastUpdatedBy(ShiroUtils.getLoginName());
  429 + cycleCountHeader1.setSourceCode(cycleCountHeaderCode);//源盘点单号
  430 + if(!cycleCountHeaderService.saveOrUpdate(cycleCountHeader1)){
428 throw new ServiceException("复盘主单生成失败!"); 431 throw new ServiceException("复盘主单生成失败!");
429 } 432 }
430 //获取差异数量不为零的子单重新再生成盘点单 433 //获取差异数量不为零的子单重新再生成盘点单
@@ -433,20 +436,23 @@ public class CycleCountDetailServiceImpl extends ServiceImpl&lt;CycleCountDetailMap @@ -433,20 +436,23 @@ public class CycleCountDetailServiceImpl extends ServiceImpl&lt;CycleCountDetailMap
433 //getGapQty不能为null默认值为0 436 //getGapQty不能为null默认值为0
434 int f = item.getGapQty().compareTo(BigDecimal.ZERO); 437 int f = item.getGapQty().compareTo(BigDecimal.ZERO);
435 if(f > 0){ 438 if(f > 0){
  439 + item.setCycleCountHeadCode(cycleCountHeaderCode1);
436 item.setCountedQty(null); 440 item.setCountedQty(null);
437 item.setGapQty(BigDecimal.ZERO); 441 item.setGapQty(BigDecimal.ZERO);
  442 + item.setEnableStatus(1);
438 item.setCreatedBy(ShiroUtils.getLoginName()); 443 item.setCreatedBy(ShiroUtils.getLoginName());
439 item.setCreated(new Date()); 444 item.setCreated(new Date());
440 cycleCountDetailList.add(item); 445 cycleCountDetailList.add(item);
441 } 446 }
442 -  
443 } 447 }
444 if(cycleCountDetailList.size() == 0){ 448 if(cycleCountDetailList.size() == 0){
445 - throw new SecurityException("该单据没有符合复盘条件的明细!"); 449 + throw new SecurityException("该单据没有符合复盘条件的明细!");
446 } 450 }
447 - if(!this.saveBatch(cycleCountDetailList)){ 451 + Boolean j = this.saveBatch(cycleCountDetailList);
  452 + if(j == false ){
448 throw new ServiceException("复盘明细子单生成失败"); 453 throw new ServiceException("复盘明细子单生成失败");
449 } 454 }
  455 +
450 return AjaxResult.success("生成复盘单成功!"); 456 return AjaxResult.success("生成复盘单成功!");
451 } 457 }
452 458
src/main/java/com/huaheng/pc/inventory/cycleCountHeader/controller/CycleCountHeaderController.java
@@ -44,15 +44,12 @@ public class CycleCountHeaderController extends BaseController { @@ -44,15 +44,12 @@ public class CycleCountHeaderController extends BaseController {
44 private CycleCountHeaderService cycleCountHeaderService; 44 private CycleCountHeaderService cycleCountHeaderService;
45 @Resource 45 @Resource
46 private CycleCountDetailService cycleCountDetailService; 46 private CycleCountDetailService cycleCountDetailService;
47 - @Resource  
48 - private AdjustHeaderService adjustHeaderService;  
49 -  
50 47
51 48
52 private String prefix = "inventory/cycleCountHeader"; 49 private String prefix = "inventory/cycleCountHeader";
53 50
54 51
55 - //@RequiresPermissions("inventory:cycleCount:view") 52 + @RequiresPermissions("inventory:cycleCountHeader:view")
56 @GetMapping() 53 @GetMapping()
57 public String cyclecountHeader() 54 public String cyclecountHeader()
58 { 55 {
@@ -62,7 +59,7 @@ public class CycleCountHeaderController extends BaseController { @@ -62,7 +59,7 @@ public class CycleCountHeaderController extends BaseController {
62 /** 59 /**
63 * 查询盘点单主列表 60 * 查询盘点单主列表
64 */ 61 */
65 - //@RequiresPermissions("inventory:cycleCount:list") 62 + @RequiresPermissions("inventory:cycleCountHeader:list")
66 @PostMapping("/list") 63 @PostMapping("/list")
67 @Log(title = "库存-盘点",operating = "查看盘点主单", action = BusinessType.GRANT) 64 @Log(title = "库存-盘点",operating = "查看盘点主单", action = BusinessType.GRANT)
68 @ResponseBody 65 @ResponseBody
@@ -95,6 +92,9 @@ public class CycleCountHeaderController extends BaseController { @@ -95,6 +92,9 @@ public class CycleCountHeaderController extends BaseController {
95 } 92 }
96 93
97 } 94 }
  95 +
  96 +
  97 +
98 /** 98 /**
99 * 新增盘点单主 99 * 新增盘点单主
100 */ 100 */
@@ -107,7 +107,7 @@ public class CycleCountHeaderController extends BaseController { @@ -107,7 +107,7 @@ public class CycleCountHeaderController extends BaseController {
107 /** 107 /**
108 * 新增保存盘点单主 108 * 新增保存盘点单主
109 */ 109 */
110 - //@RequiresPermissions("inventory:cycleCount:add") 110 + @RequiresPermissions("inventory:cycleCountHeader:add")
111 @Log(title = "库存-盘点",operating = "新增盘点主单", action = BusinessType.INSERT) 111 @Log(title = "库存-盘点",operating = "新增盘点主单", action = BusinessType.INSERT)
112 @PostMapping("/add") 112 @PostMapping("/add")
113 @ResponseBody 113 @ResponseBody
@@ -137,7 +137,7 @@ public class CycleCountHeaderController extends BaseController { @@ -137,7 +137,7 @@ public class CycleCountHeaderController extends BaseController {
137 /** 137 /**
138 * 修改保存盘点单主 138 * 修改保存盘点单主
139 */ 139 */
140 - //@RequiresPermissions("inventory:cycleCount:edit") 140 + @RequiresPermissions("inventory:cycleCountHeader:edit")
141 @Log(title = "库存-盘点",operating = "修改盘点主单", action = BusinessType.UPDATE) 141 @Log(title = "库存-盘点",operating = "修改盘点主单", action = BusinessType.UPDATE)
142 @PostMapping("/edit") 142 @PostMapping("/edit")
143 @ResponseBody 143 @ResponseBody
@@ -151,7 +151,7 @@ public class CycleCountHeaderController extends BaseController { @@ -151,7 +151,7 @@ public class CycleCountHeaderController extends BaseController {
151 /** 151 /**
152 * 删除盘点单主 152 * 删除盘点单主
153 */ 153 */
154 - //@RequiresPermissions("inventory:cycleCount:remove") 154 + @RequiresPermissions("inventory:cycleCountHeader:remove")
155 @Log(title = "库存-盘点",operating = "删除盘点主单", action = BusinessType.DELETE) 155 @Log(title = "库存-盘点",operating = "删除盘点主单", action = BusinessType.DELETE)
156 @PostMapping( "/remove") 156 @PostMapping( "/remove")
157 @ResponseBody 157 @ResponseBody
@@ -173,7 +173,7 @@ public class CycleCountHeaderController extends BaseController { @@ -173,7 +173,7 @@ public class CycleCountHeaderController extends BaseController {
173 * 173 *
174 * 生成调整单 174 * 生成调整单
175 * */ 175 * */
176 - //@RequiresPermissions("inventory:cyclecountHead:addAdjust") 176 + @RequiresPermissions("inventory:cyclecountHead:addAdjust")
177 @Log(title = "库存-盘点", operating = "新增盘点差异调整单", action = BusinessType.INSERT) 177 @Log(title = "库存-盘点", operating = "新增盘点差异调整单", action = BusinessType.INSERT)
178 @PostMapping("/goAdjust") 178 @PostMapping("/goAdjust")
179 @ResponseBody 179 @ResponseBody
@@ -187,7 +187,7 @@ public class CycleCountHeaderController extends BaseController { @@ -187,7 +187,7 @@ public class CycleCountHeaderController extends BaseController {
187 * 盘点单报表打印 187 * 盘点单报表打印
188 * @return 188 * @return
189 */ 189 */
190 - //@RequiresPermissions("inventory:cycleCount:report") 190 + @RequiresPermissions("inventory:cycleCountHeader:report")
191 @GetMapping("/report/{id}") 191 @GetMapping("/report/{id}")
192 public String report(@PathVariable("id") Integer id, ModelMap mmap) 192 public String report(@PathVariable("id") Integer id, ModelMap mmap)
193 { 193 {
src/main/java/com/huaheng/pc/inventory/cycleCountHeader/service/CycleCountHeaderServiceImpl.java
@@ -169,12 +169,10 @@ public class CycleCountHeaderServiceImpl extends ServiceImpl&lt;CycleCountHeaderMap @@ -169,12 +169,10 @@ public class CycleCountHeaderServiceImpl extends ServiceImpl&lt;CycleCountHeaderMap
169 169
170 //查询该条盘点单头 id 170 //查询该条盘点单头 id
171 CycleCountHeader cyclecountHeader = cycleCountHeaderMapper.selectById(id); 171 CycleCountHeader cyclecountHeader = cycleCountHeaderMapper.selectById(id);
172 -  
173 - if(cyclecountHeader.getStatusCyc() >= 35){ 172 + if(cyclecountHeader.getStatusCyc() < 100){
174 //查询是否已生成差异单 173 //查询是否已生成差异单
175 - throw new ServiceException("该条盘点单无法生成调整单,请检查状态!"); 174 + throw new ServiceException("该条盘点单无法生成调整单,必须为盘点任务完成,请检查状态!");
176 } 175 }
177 -  
178 AdjustHeader adjustHeader = new AdjustHeader(); 176 AdjustHeader adjustHeader = new AdjustHeader();
179 adjustHeader.setWarehouseCode(ShiroUtils.getWarehouseCode());//仓库 177 adjustHeader.setWarehouseCode(ShiroUtils.getWarehouseCode());//仓库
180 adjustHeader.setCode(adjustHeaderService.createCode());//生成差异单号 178 adjustHeader.setCode(adjustHeaderService.createCode());//生成差异单号
@@ -197,6 +195,7 @@ public class CycleCountHeaderServiceImpl extends ServiceImpl&lt;CycleCountHeaderMap @@ -197,6 +195,7 @@ public class CycleCountHeaderServiceImpl extends ServiceImpl&lt;CycleCountHeaderMap
197 //AdjustHeader adjust = adjustHeaderService.getById(adjustHeader.getId()); 195 //AdjustHeader adjust = adjustHeaderService.getById(adjustHeader.getId());
198 //循环明细条目,查找符合条件的数据写入调整单明细 196 //循环明细条目,查找符合条件的数据写入调整单明细
199 AdjustDetail adjustDetail = new AdjustDetail(); 197 AdjustDetail adjustDetail = new AdjustDetail();
  198 + List<AdjustDetail> adjustDetails = new ArrayList<>();
200 for(CycleCountDetail item:cycleCountDetailList){ 199 for(CycleCountDetail item:cycleCountDetailList){
201 //BigDecimal的比较 .compareTo(BigDecimal.ZERO) != 0 200 //BigDecimal的比较 .compareTo(BigDecimal.ZERO) != 0
202 201
@@ -224,14 +223,16 @@ public class CycleCountHeaderServiceImpl extends ServiceImpl&lt;CycleCountHeaderMap @@ -224,14 +223,16 @@ public class CycleCountHeaderServiceImpl extends ServiceImpl&lt;CycleCountHeaderMap
224 adjustDetail.setCreated(new Date()); 223 adjustDetail.setCreated(new Date());
225 adjustDetail.setCreatedBy(ShiroUtils.getLoginName()); 224 adjustDetail.setCreatedBy(ShiroUtils.getLoginName());
226 //adjustDetail.setStatus(0);//状态 225 //adjustDetail.setStatus(0);//状态
227 -  
228 - adjustDetailService.save(adjustDetail); 226 + adjustDetails.add(adjustDetail);
  227 + //adjustDetailService.save(adjustDetail);
229 } 228 }
230 -  
231 } 229 }
232 - 230 + if(adjustDetails.size() == 0 ){
  231 + throw new SecurityException("该盘点单没有差异数据条目,无法生成调整单!");
  232 + }
  233 + adjustDetailService.saveBatch(adjustDetails);
233 //修改盘点主单状态为已生成差异单 234 //修改盘点主单状态为已生成差异单
234 - cyclecountHeader.setStatusCyc(35); 235 + cyclecountHeader.setStatusCyc(101);
235 this.saveOrUpdate(cyclecountHeader); 236 this.saveOrUpdate(cyclecountHeader);
236 237
237 return AjaxResult.success("差异调整及明细单生成完毕!"); 238 return AjaxResult.success("差异调整及明细单生成完毕!");
src/main/java/com/huaheng/pc/receipt/receiptContainerDetail/service/ReceiptContainerDetailServiceImpl.java
@@ -59,6 +59,9 @@ public class ReceiptContainerDetailServiceImpl extends ServiceImpl&lt;ReceiptContai @@ -59,6 +59,9 @@ public class ReceiptContainerDetailServiceImpl extends ServiceImpl&lt;ReceiptContai
59 ReceiptDetail receiptDetail = receiptDetailService.getById(receiptContainerDetail.getReceiptDetailId()); 59 ReceiptDetail receiptDetail = receiptDetailService.getById(receiptContainerDetail.getReceiptDetailId());
60 receiptDetail.setOpenQty(receiptDetail.getOpenQty().subtract(receiptContainerDetail.getQty())); 60 receiptDetail.setOpenQty(receiptDetail.getOpenQty().subtract(receiptContainerDetail.getQty()));
61 61
  62 + //如果为临时容器,则删除
  63 + receiptContainerDetail.getContainerCode();
  64 +
62 if (!receiptDetailService.updateById(receiptDetail)){throw new SecurityException("回滚入库单明细失败");} 65 if (!receiptDetailService.updateById(receiptDetail)){throw new SecurityException("回滚入库单明细失败");}
63 //删除组盘明细 66 //删除组盘明细
64 if (!this.removeById(id)){ throw new ServiceException("回滚入库组盘失败");} 67 if (!this.removeById(id)){ throw new ServiceException("回滚入库组盘失败");}
@@ -70,12 +73,15 @@ public class ReceiptContainerDetailServiceImpl extends ServiceImpl&lt;ReceiptContai @@ -70,12 +73,15 @@ public class ReceiptContainerDetailServiceImpl extends ServiceImpl&lt;ReceiptContai
70 throw new ServiceException("删除入库组盘头失败"); 73 throw new ServiceException("删除入库组盘头失败");
71 } 74 }
72 } 75 }
  76 +
73 //查询入库头表 77 //查询入库头表
74 LambdaQueryWrapper<ReceiptContainerDetail> containerDetailLambda = Wrappers.lambdaQuery(); 78 LambdaQueryWrapper<ReceiptContainerDetail> containerDetailLambda = Wrappers.lambdaQuery();
75 containerDetailLambda.eq(ReceiptContainerDetail::getReceiptId, receiptContainerDetail.getReceiptId()); 79 containerDetailLambda.eq(ReceiptContainerDetail::getReceiptId, receiptContainerDetail.getReceiptId());
76 List<ReceiptContainerDetail> containerDetailList = this.list(containerDetailLambda); 80 List<ReceiptContainerDetail> containerDetailList = this.list(containerDetailLambda);
  81 +
  82 +
77 //如果入库组盘没有该入库单的组盘信息,回滚入库单状态 83 //如果入库组盘没有该入库单的组盘信息,回滚入库单状态
78 - if (containerDetailList == null){ 84 + if (containerDetailList.size() == 0){
79 ReceiptHeader receiptHeader = new ReceiptHeader(); 85 ReceiptHeader receiptHeader = new ReceiptHeader();
80 receiptHeader.setId(receiptContainerDetail.getReceiptId()); 86 receiptHeader.setId(receiptContainerDetail.getReceiptId());
81 receiptHeader.setFirstStatus(200); 87 receiptHeader.setFirstStatus(200);
src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/service/ReceiptContainerHeaderServiceImpl.java
@@ -72,6 +72,7 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl&lt;ReceiptContai @@ -72,6 +72,7 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl&lt;ReceiptContai
72 //检查容器编码合法性 72 //检查容器编码合法性
73 Integer taskType = checkContainer(containerCode, detail.getMaterialCode()); 73 Integer taskType = checkContainer(containerCode, detail.getMaterialCode());
74 if (taskType == 1){ 74 if (taskType == 1){
  75 + //创建临时容器
75 containerCode = createContainer(); 76 containerCode = createContainer();
76 taskType = 100; 77 taskType = 100;
77 }else { 78 }else {
@@ -97,6 +98,8 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl&lt;ReceiptContai @@ -97,6 +98,8 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl&lt;ReceiptContai
97 receiptContainerHeader.setWarehouseCode(ShiroUtils.getWarehouseCode()); 98 receiptContainerHeader.setWarehouseCode(ShiroUtils.getWarehouseCode());
98 receiptContainerHeader.setCompanyCode(receiptDetail.getCompanyCode()); 99 receiptContainerHeader.setCompanyCode(receiptDetail.getCompanyCode());
99 receiptContainerHeader.setContainerCode(containerCode); 100 receiptContainerHeader.setContainerCode(containerCode);
  101 + Container container = containerService.findAllByCode(containerCode);
  102 + receiptContainerHeader.setContainerType(container.getContainerType());
100 receiptContainerHeader.setTaskType(String.valueOf(taskType)); 103 receiptContainerHeader.setTaskType(String.valueOf(taskType));
101 receiptContainerHeader.setProjectNo(receiptDetail.getProjectNo()); 104 receiptContainerHeader.setProjectNo(receiptDetail.getProjectNo());
102 receiptContainerHeader.setToLocation(locationCode); 105 receiptContainerHeader.setToLocation(locationCode);
@@ -128,6 +131,11 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl&lt;ReceiptContai @@ -128,6 +131,11 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl&lt;ReceiptContai
128 receiptContainerDetailAdd(receiptContainerHeaders.get(0).getId(), receiptDetail, qty, containerCode, locationCode); 131 receiptContainerDetailAdd(receiptContainerHeaders.get(0).getId(), receiptDetail, qty, containerCode, locationCode);
129 //如果单据数量等于已收数量,更新入库详情状态和入库单状态 132 //如果单据数量等于已收数量,更新入库详情状态和入库单状态
130 if (receiptDetail.getTotalQty() == receiptDetail.getOpenQty()){ 133 if (receiptDetail.getTotalQty() == receiptDetail.getOpenQty()){
  134 + receiptDetail.setProcessStamp("200");
  135 + if (!receiptDetailService.updateById(receiptDetail)){
  136 + throw new ServiceException("更新入库详情处理标记失败");
  137 + }
  138 +
131 ReceiptDetail receiptDetail1 = receiptDetailService.queryflow(receiptDetail); 139 ReceiptDetail receiptDetail1 = receiptDetailService.queryflow(receiptDetail);
132 if (!receiptDetailService.updateById(receiptDetail1)){ 140 if (!receiptDetailService.updateById(receiptDetail1)){
133 throw new ServiceException("更新入库详情下一流程失败"); 141 throw new ServiceException("更新入库详情下一流程失败");
@@ -182,7 +190,9 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl&lt;ReceiptContai @@ -182,7 +190,9 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl&lt;ReceiptContai
182 } 190 }
183 } 191 }
184 //删除入库组盘头表 192 //删除入库组盘头表
185 - this.removeById(id); 193 + if (!this.removeById(id)){
  194 + throw new ServiceException("删除入库组盘头表失败");
  195 + }
186 } else { 196 } else {
187 throw new ServiceException("已生成任务不允许取消"); 197 throw new ServiceException("已生成任务不允许取消");
188 } 198 }
src/main/java/com/huaheng/pc/receipt/receiptDetail/domain/ReceiptDetail.java
@@ -6,6 +6,8 @@ import io.swagger.annotations.ApiModelProperty; @@ -6,6 +6,8 @@ import io.swagger.annotations.ApiModelProperty;
6 import java.io.Serializable; 6 import java.io.Serializable;
7 import java.math.BigDecimal; 7 import java.math.BigDecimal;
8 import java.util.Date; 8 import java.util.Date;
  9 +
  10 +import io.swagger.annotations.ApiParam;
9 import lombok.Data; 11 import lombok.Data;
10 12
11 @ApiModel(value = "com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail") 13 @ApiModel(value = "com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail")
@@ -341,4 +343,11 @@ public class ReceiptDetail implements Serializable { @@ -341,4 +343,11 @@ public class ReceiptDetail implements Serializable {
341 @ApiModelProperty(value = "是否删除") 343 @ApiModelProperty(value = "是否删除")
342 private Boolean deleted; 344 private Boolean deleted;
343 345
  346 + /**
  347 + * 流程编码
  348 + */
  349 + @TableField(value = "statusFlowCode")
  350 + @ApiModelProperty(value = "流程编码")
  351 + private String statusFlowCode;
  352 +
344 } 353 }
345 \ No newline at end of file 354 \ No newline at end of file
src/main/java/com/huaheng/pc/receipt/receiptDetail/service/ReceiptDetailServiceImpl.java
@@ -7,6 +7,10 @@ import com.huaheng.common.support.Convert; @@ -7,6 +7,10 @@ import com.huaheng.common.support.Convert;
7 import com.huaheng.common.utils.StringUtils; 7 import com.huaheng.common.utils.StringUtils;
8 import com.huaheng.common.utils.security.ShiroUtils; 8 import com.huaheng.common.utils.security.ShiroUtils;
9 import com.huaheng.framework.web.domain.AjaxResult; 9 import com.huaheng.framework.web.domain.AjaxResult;
  10 +import com.huaheng.pc.check.checkHeader.domain.CheckHeader;
  11 +import com.huaheng.pc.check.checkHeader.service.CheckHeaderService;
  12 +import com.huaheng.pc.config.configValue.domain.ConfigValue;
  13 +import com.huaheng.pc.config.configValue.service.ConfigValueService;
10 import com.huaheng.pc.config.material.domain.Material; 14 import com.huaheng.pc.config.material.domain.Material;
11 import com.huaheng.pc.config.material.service.MaterialService; 15 import com.huaheng.pc.config.material.service.MaterialService;
12 import com.huaheng.pc.config.materialType.domain.MaterialType; 16 import com.huaheng.pc.config.materialType.domain.MaterialType;
@@ -19,6 +23,7 @@ import com.huaheng.pc.config.statusFlow.domain.StatusFlowDetail; @@ -19,6 +23,7 @@ import com.huaheng.pc.config.statusFlow.domain.StatusFlowDetail;
19 import com.huaheng.pc.config.statusFlow.service.StatusFlowDetailService; 23 import com.huaheng.pc.config.statusFlow.service.StatusFlowDetailService;
20 import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader; 24 import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader;
21 import com.huaheng.pc.receipt.receiptHeader.service.ReceiptHeaderService; 25 import com.huaheng.pc.receipt.receiptHeader.service.ReceiptHeaderService;
  26 +import com.huaheng.pc.system.config.domain.Config;
22 import com.huaheng.pc.system.dict.domain.DictData; 27 import com.huaheng.pc.system.dict.domain.DictData;
23 import com.huaheng.pc.system.dict.service.IDictDataService; 28 import com.huaheng.pc.system.dict.service.IDictDataService;
24 import org.aspectj.weaver.loadtime.Aj; 29 import org.aspectj.weaver.loadtime.Aj;
@@ -48,6 +53,10 @@ public class ReceiptDetailServiceImpl extends ServiceImpl&lt;ReceiptDetailMapper, R @@ -48,6 +53,10 @@ public class ReceiptDetailServiceImpl extends ServiceImpl&lt;ReceiptDetailMapper, R
48 private ReceiptPreferenceService receiptPreferenceService; 53 private ReceiptPreferenceService receiptPreferenceService;
49 @Resource 54 @Resource
50 private IDictDataService dictDataService; 55 private IDictDataService dictDataService;
  56 + @Resource
  57 + private CheckHeaderService checkHeaderService;
  58 + @Resource
  59 + private ConfigValueService configValueService;
51 60
52 /** 61 /**
53 * 新增入库明细 62 * 新增入库明细
@@ -163,6 +172,18 @@ public class ReceiptDetailServiceImpl extends ServiceImpl&lt;ReceiptDetailMapper, R @@ -163,6 +172,18 @@ public class ReceiptDetailServiceImpl extends ServiceImpl&lt;ReceiptDetailMapper, R
163 return receiptDetail; 172 return receiptDetail;
164 } 173 }
165 174
  175 + //如果入库明细绑定了入库流程则从入库明细中选择流程
  176 + if ( StringUtils.isNotEmpty(receiptDetail.getStatusFlowCode())){
  177 + List<StatusFlowDetail> statusFlowDetails = statusFlowDetailService.queryStatusFlowDetail(receiptDetail.getStatusFlowCode());
  178 + String status = nextStatusFlow(statusFlowDetails, receiptDetail.getProcessStamp());
  179 + //在状态到达时候是判断是否要质检
  180 + if ("200".equals(status) && inspection(receiptDetail)){
  181 + receiptDetail.setProcessStamp("180");
  182 + } else {
  183 + receiptDetail.setProcessStamp(status);
  184 + }
  185 + return receiptDetail;
  186 + }
166 //查询头表信息 187 //查询头表信息
167 LambdaQueryWrapper<ReceiptHeader> lambdaReceiptHeader = Wrappers.lambdaQuery(); 188 LambdaQueryWrapper<ReceiptHeader> lambdaReceiptHeader = Wrappers.lambdaQuery();
168 lambdaReceiptHeader.eq(ReceiptHeader::getCode, receiptDetail.getReceiptCode()); 189 lambdaReceiptHeader.eq(ReceiptHeader::getCode, receiptDetail.getReceiptCode());
@@ -183,13 +204,23 @@ public class ReceiptDetailServiceImpl extends ServiceImpl&lt;ReceiptDetailMapper, R @@ -183,13 +204,23 @@ public class ReceiptDetailServiceImpl extends ServiceImpl&lt;ReceiptDetailMapper, R
183 //物料是否有入库流程 204 //物料是否有入库流程
184 List<StatusFlowDetail> statusFlowDetails = statusFlowDetailService.queryStatusFlowDetail(receiptType.getReceiptFlow()); 205 List<StatusFlowDetail> statusFlowDetails = statusFlowDetailService.queryStatusFlowDetail(receiptType.getReceiptFlow());
185 String status = nextStatusFlow(statusFlowDetails, receiptDetail.getProcessStamp()); 206 String status = nextStatusFlow(statusFlowDetails, receiptDetail.getProcessStamp());
186 - receiptDetail.setProcessStamp(status); 207 + //在状态到达时候是判断是否要质检
  208 + if ("200".equals(status) && inspection(receiptDetail)){
  209 + receiptDetail.setProcessStamp("180");
  210 + } else {
  211 + receiptDetail.setProcessStamp(status);
  212 + }
187 return receiptDetail; 213 return receiptDetail;
188 } else if (material.getReceivingFlow() != null){ 214 } else if (material.getReceivingFlow() != null){
189 //物料是否有入库流程 215 //物料是否有入库流程
190 List<StatusFlowDetail> statusFlowDetails = statusFlowDetailService.queryStatusFlowDetail(material.getReceivingFlow()); 216 List<StatusFlowDetail> statusFlowDetails = statusFlowDetailService.queryStatusFlowDetail(material.getReceivingFlow());
191 String status = nextStatusFlow(statusFlowDetails, receiptDetail.getProcessStamp()); 217 String status = nextStatusFlow(statusFlowDetails, receiptDetail.getProcessStamp());
192 - receiptDetail.setProcessStamp(status); 218 + //在状态到达时候是判断是否要质检
  219 + if ("200".equals(status) && inspection(receiptDetail)){
  220 + receiptDetail.setProcessStamp("180");
  221 + } else {
  222 + receiptDetail.setProcessStamp(status);
  223 + }
193 return receiptDetail; 224 return receiptDetail;
194 } else { 225 } else {
195 //该物料类别是否有入库流程 226 //该物料类别是否有入库流程
@@ -199,16 +230,31 @@ public class ReceiptDetailServiceImpl extends ServiceImpl&lt;ReceiptDetailMapper, R @@ -199,16 +230,31 @@ public class ReceiptDetailServiceImpl extends ServiceImpl&lt;ReceiptDetailMapper, R
199 if (materialType.getReceivingFlow() != null) { 230 if (materialType.getReceivingFlow() != null) {
200 List<StatusFlowDetail> statusFlowDetails = statusFlowDetailService.queryStatusFlowDetail(materialType.getReceivingFlow()); 231 List<StatusFlowDetail> statusFlowDetails = statusFlowDetailService.queryStatusFlowDetail(materialType.getReceivingFlow());
201 String status = nextStatusFlow(statusFlowDetails, receiptDetail.getProcessStamp()); 232 String status = nextStatusFlow(statusFlowDetails, receiptDetail.getProcessStamp());
202 - receiptDetail.setProcessStamp(status); 233 + //在状态到达时候是判断是否要质检
  234 + if ("200".equals(status) && inspection(receiptDetail)){
  235 + receiptDetail.setProcessStamp("180");
  236 + } else {
  237 + receiptDetail.setProcessStamp(status);
  238 + }
203 return receiptDetail; 239 return receiptDetail;
204 } else { 240 } else {
  241 + //查询系统参数配置中绑定的入库首选项A
  242 + LambdaQueryWrapper<ConfigValue> lambdaQueryWrapper = Wrappers.lambdaQuery();
  243 + lambdaQueryWrapper.eq(ConfigValue::getModuleType, "receipt");
  244 + ConfigValue configValue = configValueService.getOne(lambdaQueryWrapper);
  245 +
205 //以上都没有的情况下查询入库首选项中的入库流程 246 //以上都没有的情况下查询入库首选项中的入库流程
206 LambdaQueryWrapper<ReceiptPreference> lambda = Wrappers.lambdaQuery(); 247 LambdaQueryWrapper<ReceiptPreference> lambda = Wrappers.lambdaQuery();
207 - lambda.last("Limit 1"); 248 + lambda.eq(ReceiptPreference::getCode, configValue.getValue());
208 ReceiptPreference receiptPreference = receiptPreferenceService.getOne(lambda); 249 ReceiptPreference receiptPreference = receiptPreferenceService.getOne(lambda);
209 List<StatusFlowDetail> statusFlowDetails = statusFlowDetailService.queryStatusFlowDetail(receiptPreference.getReceivingFlow()); 250 List<StatusFlowDetail> statusFlowDetails = statusFlowDetailService.queryStatusFlowDetail(receiptPreference.getReceivingFlow());
210 String status = nextStatusFlow(statusFlowDetails, receiptDetail.getProcessStamp()); 251 String status = nextStatusFlow(statusFlowDetails, receiptDetail.getProcessStamp());
211 - receiptDetail.setProcessStamp(status); 252 + //在状态到达时候是判断是否要质检
  253 + if ("200".equals(status) && inspection(receiptDetail)){
  254 + receiptDetail.setProcessStamp("180");
  255 + } else {
  256 + receiptDetail.setProcessStamp(status);
  257 + }
212 return receiptDetail; 258 return receiptDetail;
213 } 259 }
214 } 260 }
@@ -308,4 +354,20 @@ public class ReceiptDetailServiceImpl extends ServiceImpl&lt;ReceiptDetailMapper, R @@ -308,4 +354,20 @@ public class ReceiptDetailServiceImpl extends ServiceImpl&lt;ReceiptDetailMapper, R
308 } 354 }
309 return AjaxResult.success("审核完成"); 355 return AjaxResult.success("审核完成");
310 } 356 }
  357 +
  358 + /**
  359 + * 判断明细中是否质检
  360 + */
  361 + public boolean inspection(ReceiptDetail receiptDetail){
  362 + //如果明细中需要质检,则判断是否已经生成质检单
  363 + if ("0".equals(receiptDetail.getQcCheck())){
  364 + LambdaQueryWrapper<CheckHeader> lambda = Wrappers.lambdaQuery();
  365 + lambda.eq(CheckHeader::getReferCode, receiptDetail.getReceiptCode());
  366 + CheckHeader checkHeader = checkHeaderService.getOne(lambda);
  367 + if (checkHeader == null){
  368 + return true;
  369 + }
  370 + }
  371 + return false;
  372 + }
311 } 373 }
src/main/java/com/huaheng/pc/receipt/receiptHeader/controller/ReceiptHeaderController.java
@@ -137,7 +137,8 @@ public class ReceiptHeaderController extends BaseController { @@ -137,7 +137,8 @@ public class ReceiptHeaderController extends BaseController {
137 @PostMapping("/edit") 137 @PostMapping("/edit")
138 @ResponseBody 138 @ResponseBody
139 public AjaxResult editSave(ReceiptHeader receiptHeader) { 139 public AjaxResult editSave(ReceiptHeader receiptHeader) {
140 - if (receiptHeader.getFirstStatus() >100 | receiptHeader.getLastStatus()>100){ 140 + ReceiptHeader receiptHeader1 = receiptHeaderService.getById(receiptHeader.getId());
  141 + if (receiptHeader1.getFirstStatus() >100 | receiptHeader1.getLastStatus()>100){
141 return AjaxResult.error("已进入订单池,不允许修改"); 142 return AjaxResult.error("已进入订单池,不允许修改");
142 } 143 }
143 receiptHeader.setLastUpdatedBy(ShiroUtils.getLoginName()); 144 receiptHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
@@ -160,7 +161,7 @@ public class ReceiptHeaderController extends BaseController { @@ -160,7 +161,7 @@ public class ReceiptHeaderController extends BaseController {
160 * 审核入库单 161 * 审核入库单
161 */ 162 */
162 @ApiOperation(value="审核入库单", notes="审核入库单", httpMethod = "POST") 163 @ApiOperation(value="审核入库单", notes="审核入库单", httpMethod = "POST")
163 - @RequiresPermissions("receipt:receiptHeader:approval") 164 + @RequiresPermissions("receipt:receiptHeader:review")
164 @Log(title = "入库-入库单 ",operating = "审核入库单 ", action = BusinessType.UPDATE) 165 @Log(title = "入库-入库单 ",operating = "审核入库单 ", action = BusinessType.UPDATE)
165 @PostMapping("/approval") 166 @PostMapping("/approval")
166 @ResponseBody 167 @ResponseBody
@@ -223,7 +224,7 @@ public class ReceiptHeaderController extends BaseController { @@ -223,7 +224,7 @@ public class ReceiptHeaderController extends BaseController {
223 */ 224 */
224 @ApiOperation(value="保存入库预约", notes="保存入库预约", httpMethod = "POST") 225 @ApiOperation(value="保存入库预约", notes="保存入库预约", httpMethod = "POST")
225 @RequiresPermissions("receipt:receiptHeader:reservation") 226 @RequiresPermissions("receipt:receiptHeader:reservation")
226 - @Log(title = "入库-入库单 ",operating = "入库单到货", action = BusinessType.UPDATE) 227 + @Log(title = "入库-入库单 ",operating = "入库单预约", action = BusinessType.UPDATE)
227 @PostMapping("/arrival") 228 @PostMapping("/arrival")
228 @ResponseBody 229 @ResponseBody
229 public AjaxResult reservation(ReceiptHeader receiptHeader) { 230 public AjaxResult reservation(ReceiptHeader receiptHeader) {
@@ -287,4 +288,34 @@ public class ReceiptHeaderController extends BaseController { @@ -287,4 +288,34 @@ public class ReceiptHeaderController extends BaseController {
287 } 288 }
288 return AjaxResult.success(receiptHeaderService.getById(id)); 289 return AjaxResult.success(receiptHeaderService.getById(id));
289 } 290 }
  291 +
  292 + /**
  293 + * 到货通知
  294 + */
  295 + @ApiOperation(value="到货通知 ", notes="到货通知 ", httpMethod = "POST")
  296 + @RequiresPermissions("receipt:receiptDetail:add")
  297 + @Log(title = "入库-入库单 ",operating = "到货通知 ", action = BusinessType.OTHER)
  298 + @PostMapping("/arrivalNotice")
  299 + @ResponseBody
  300 + public AjaxResult arrivalNotice(String id) {
  301 + if (StringUtils.isEmpty(id)){
  302 + return AjaxResult.success("");
  303 + }
  304 + return AjaxResult.success(receiptHeaderService.arrivalNotice(id));
  305 + }
  306 +
  307 + /**
  308 + * 加入订单池
  309 + */
  310 + @ApiOperation(value="加入订单池 ", notes="加入订单池 ", httpMethod = "POST")
  311 + @RequiresPermissions("receipt:receiptHeader:addPool")
  312 + @Log(title = "入库-入库单 ",operating = "加入订单池 ", action = BusinessType.OTHER)
  313 + @PostMapping("/addPool")
  314 + @ResponseBody
  315 + public AjaxResult addPool(String ids) {
  316 + if (StringUtils.isEmpty(ids)){
  317 + return AjaxResult.error("id不能为空");
  318 + }
  319 + return AjaxResult.success(receiptHeaderService.addPool(ids));
  320 + }
290 } 321 }
src/main/java/com/huaheng/pc/receipt/receiptHeader/service/ReceiptHeaderService.java
@@ -15,6 +15,7 @@ import com.huaheng.pc.check.checkHeader.domain.CheckHeader; @@ -15,6 +15,7 @@ import com.huaheng.pc.check.checkHeader.domain.CheckHeader;
15 import com.huaheng.pc.check.checkHeader.service.CheckHeaderService; 15 import com.huaheng.pc.check.checkHeader.service.CheckHeaderService;
16 import com.huaheng.pc.config.receiptType.domain.ReceiptType; 16 import com.huaheng.pc.config.receiptType.domain.ReceiptType;
17 import com.huaheng.pc.config.receiptType.service.ReceiptTypeService; 17 import com.huaheng.pc.config.receiptType.service.ReceiptTypeService;
  18 +import com.huaheng.pc.config.sendMail.service.SendMailService;
18 import com.huaheng.pc.config.statusFlow.domain.StatusFlowDetail; 19 import com.huaheng.pc.config.statusFlow.domain.StatusFlowDetail;
19 import com.huaheng.pc.config.statusFlow.service.StatusFlowDetailService; 20 import com.huaheng.pc.config.statusFlow.service.StatusFlowDetailService;
20 import com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail; 21 import com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail;
@@ -27,6 +28,7 @@ import org.springframework.stereotype.Service; @@ -27,6 +28,7 @@ import org.springframework.stereotype.Service;
27 import javax.annotation.Resource; 28 import javax.annotation.Resource;
28 import java.lang.ref.WeakReference; 29 import java.lang.ref.WeakReference;
29 import java.text.SimpleDateFormat; 30 import java.text.SimpleDateFormat;
  31 +import java.util.Arrays;
30 import java.util.Date; 32 import java.util.Date;
31 import java.util.List; 33 import java.util.List;
32 34
@@ -41,6 +43,8 @@ public class ReceiptHeaderService extends ServiceImpl&lt;ReceiptHeaderMapper, Recei @@ -41,6 +43,8 @@ public class ReceiptHeaderService extends ServiceImpl&lt;ReceiptHeaderMapper, Recei
41 private CheckHeaderService checkHeaderService; 43 private CheckHeaderService checkHeaderService;
42 @Resource 44 @Resource
43 private CheckDetailService checkDetailService; 45 private CheckDetailService checkDetailService;
  46 + @Resource
  47 + private SendMailService sendMailService;
44 48
45 /** 49 /**
46 * 保存入库单 50 * 保存入库单
@@ -155,6 +159,13 @@ public class ReceiptHeaderService extends ServiceImpl&lt;ReceiptHeaderMapper, Recei @@ -155,6 +159,13 @@ public class ReceiptHeaderService extends ServiceImpl&lt;ReceiptHeaderMapper, Recei
155 receiptDetailLambda.eq(ReceiptDetail::getReceiptId, id); 159 receiptDetailLambda.eq(ReceiptDetail::getReceiptId, id);
156 List<ReceiptDetail> receiptDetails = receiptDetailService.list(receiptDetailLambda); 160 List<ReceiptDetail> receiptDetails = receiptDetailService.list(receiptDetailLambda);
157 161
  162 + //判断是否已经生成了质检单
  163 + LambdaQueryWrapper<CheckHeader> checkHeaderLambdaQueryWrapper = Wrappers.lambdaQuery();
  164 + checkHeaderLambdaQueryWrapper.eq(CheckHeader::getReferCode, receiptHeader.getCode());
  165 + CheckHeader checkHeaderQuery = checkHeaderService.getOne(checkHeaderLambdaQueryWrapper);
  166 + if (checkHeaderQuery != null){
  167 + throw new ServiceException("质检表已生成");
  168 + }
158 //创建质检头表 169 //创建质检头表
159 CheckHeader checkHeader = new CheckHeader(); 170 CheckHeader checkHeader = new CheckHeader();
160 checkHeader.setCode(receiptHeader.getCode()); 171 checkHeader.setCode(receiptHeader.getCode());
@@ -167,7 +178,7 @@ public class ReceiptHeaderService extends ServiceImpl&lt;ReceiptHeaderMapper, Recei @@ -167,7 +178,7 @@ public class ReceiptHeaderService extends ServiceImpl&lt;ReceiptHeaderMapper, Recei
167 checkHeader.setLastUpdatedBy(ShiroUtils.getLoginName()); 178 checkHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
168 179
169 if (!checkHeaderService.save(checkHeader)){ 180 if (!checkHeaderService.save(checkHeader)){
170 - throw new ServiceException("添加质检头表发送错误"); 181 + throw new ServiceException("添加质检头表错误");
171 } 182 }
172 183
173 //查询保存后的质检头表 184 //查询保存后的质检头表
@@ -223,4 +234,54 @@ public class ReceiptHeaderService extends ServiceImpl&lt;ReceiptHeaderMapper, Recei @@ -223,4 +234,54 @@ public class ReceiptHeaderService extends ServiceImpl&lt;ReceiptHeaderMapper, Recei
223 } 234 }
224 return AjaxResult.success("提交审核成功"); 235 return AjaxResult.success("提交审核成功");
225 } 236 }
  237 +
  238 + /**
  239 + * 到货通知
  240 + * @param id
  241 + * @return
  242 + */
  243 + public AjaxResult arrivalNotice(String id){
  244 + LambdaQueryWrapper<ReceiptDetail> lambda = Wrappers.lambdaQuery();
  245 + lambda.eq(ReceiptDetail::getReceiptId, id);
  246 + List<ReceiptDetail> receiptDetails = receiptDetailService.list(lambda);
  247 + for (ReceiptDetail receiptDetail : receiptDetails) {
  248 + receiptDetail.setProcessStamp(String.valueOf(150));
  249 + receiptDetailService.updateById(receiptDetail);
  250 + if (!receiptDetailService.updateById(receiptDetailService.queryflow(receiptDetail))){
  251 + throw new ServiceException("更新入库明细处理标记出错");
  252 + }
  253 + receiptDetailService.updateReceiptHeaderLastStatus(receiptDetail.getReceiptId());
  254 + }
  255 + return AjaxResult.success("");
  256 + }
  257 +
  258 + /**
  259 + * 加入订单池
  260 + * @param ids 头表id字符串
  261 + * @return
  262 + */
  263 + public AjaxResult addPool(String ids){
  264 + List<Integer> idList = Arrays.asList(Convert.toIntArray(ids));
  265 + for (Integer id : idList){
  266 + LambdaQueryWrapper<ReceiptDetail> lambdaQueryWrapper = Wrappers.lambdaQuery();
  267 + lambdaQueryWrapper.eq(ReceiptDetail::getReceiptId, id);
  268 + List<ReceiptDetail> list = receiptDetailService.list(lambdaQueryWrapper);
  269 + if (list.size() != 0){
  270 + for (ReceiptDetail receiptDetail : list){
  271 + if (Integer.parseInt(receiptDetail.getProcessStamp()) < 100){
  272 + receiptDetail.setProcessStamp("100");
  273 + ReceiptDetail receiptDetail1 = receiptDetailService.queryflow(receiptDetail);
  274 + if (!receiptDetailService.updateById(receiptDetail1)){
  275 + throw new ServiceException("更新入库明细状态失败");
  276 + }
  277 + } else {
  278 + throw new ServiceException("已有入库明细进入订单池");
  279 + }
  280 + }
  281 + }
  282 + //更新头表状态
  283 + receiptDetailService.updateReceiptHeaderLastStatus(id);
  284 + }
  285 + return AjaxResult.success("");
  286 + }
226 } 287 }
src/main/java/com/huaheng/pc/receipt/receiptHeaderHistory/service/ReceiptHeaderHistoryService.java
@@ -63,16 +63,19 @@ public class ReceiptHeaderHistoryService extends ServiceImpl&lt;ReceiptHeaderHistor @@ -63,16 +63,19 @@ public class ReceiptHeaderHistoryService extends ServiceImpl&lt;ReceiptHeaderHistor
63 if (!receiptHeaderService.removeById(receiptHeader.getId())){ 63 if (!receiptHeaderService.removeById(receiptHeader.getId())){
64 throw new ServiceException("删除头表失败"); 64 throw new ServiceException("删除头表失败");
65 } 65 }
66 - //删除入库明细  
67 - List<Integer> ids = new ArrayList<>();  
68 - for (int i=0; i<receiptDetailHistoryList.size();i++){  
69 - receiptDetailHistoryList.get(i).setLastUpdatedBy(ShiroUtils.getLoginName());  
70 - ids.add(receiptDetailHistoryList.get(i).getId());  
71 - }  
72 - if (!receiptDetailService.removeByIds(ids)) {  
73 - throw new ServiceException("删除明细表失败"); 66 + // 当存在明细时删除
  67 + if (list.size()!= 0){
  68 + //删除入库明细
  69 + List<Integer> ids = new ArrayList<>();
  70 + for (int i=0; i<receiptDetailHistoryList.size();i++){
  71 + receiptDetailHistoryList.get(i).setLastUpdatedBy(ShiroUtils.getLoginName());
  72 + ids.add(receiptDetailHistoryList.get(i).getId());
  73 + }
  74 + if (!receiptDetailService.removeByIds(ids)) {
  75 + throw new ServiceException("删除明细表失败");
  76 + }
  77 + receiptDetailHistoryService.saveBatch(receiptDetailHistoryList);
74 } 78 }
75 - receiptDetailHistoryService.saveBatch(receiptDetailHistoryList);  
76 this.save(receiptHeaderHistory); 79 this.save(receiptHeaderHistory);
77 }else { 80 }else {
78 return AjaxResult.success("入库单没有完成,无法删除"); 81 return AjaxResult.success("入库单没有完成,无法删除");
src/main/java/com/huaheng/pc/receipt/receiving/controller/ReceivingController.java
1 package com.huaheng.pc.receipt.receiving.controller; 1 package com.huaheng.pc.receipt.receiving.controller;
2 2
3 -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;  
4 -import com.baomidou.mybatisplus.core.toolkit.Wrappers;  
5 -import com.huaheng.common.utils.security.ShiroUtils;  
6 import com.huaheng.framework.aspectj.lang.annotation.Log; 3 import com.huaheng.framework.aspectj.lang.annotation.Log;
7 import com.huaheng.framework.aspectj.lang.constant.BusinessType; 4 import com.huaheng.framework.aspectj.lang.constant.BusinessType;
8 import com.huaheng.framework.web.controller.BaseController; 5 import com.huaheng.framework.web.controller.BaseController;
@@ -10,8 +7,6 @@ import com.huaheng.framework.web.domain.AjaxResult; @@ -10,8 +7,6 @@ import com.huaheng.framework.web.domain.AjaxResult;
10 import com.huaheng.pc.receipt.receiptContainerDetail.service.ReceiptContainerDetailService; 7 import com.huaheng.pc.receipt.receiptContainerDetail.service.ReceiptContainerDetailService;
11 import com.huaheng.pc.receipt.receiptContainerHeader.service.ReceiptContainerHeaderService; 8 import com.huaheng.pc.receipt.receiptContainerHeader.service.ReceiptContainerHeaderService;
12 import com.huaheng.pc.receipt.receiving.service.ReceivingService; 9 import com.huaheng.pc.receipt.receiving.service.ReceivingService;
13 -import com.huaheng.pc.task.taskHeader.domain.TaskHeader;  
14 -import com.huaheng.pc.task.taskHeader.service.TaskHeaderService;  
15 import io.swagger.annotations.ApiOperation; 10 import io.swagger.annotations.ApiOperation;
16 import io.swagger.annotations.ApiParam; 11 import io.swagger.annotations.ApiParam;
17 import org.apache.shiro.authz.annotation.RequiresPermissions; 12 import org.apache.shiro.authz.annotation.RequiresPermissions;
src/main/java/com/huaheng/pc/receipt/receiving/service/ReceivingService.java
@@ -182,16 +182,17 @@ public class ReceivingService { @@ -182,16 +182,17 @@ public class ReceivingService {
182 throw new ServiceException("组盘已生成任务不能取消定位"); 182 throw new ServiceException("组盘已生成任务不能取消定位");
183 } 183 }
184 //将入库组盘头表中的而库位编码赋值null 184 //将入库组盘头表中的而库位编码赋值null
185 - receiptContainerHeader.setToLocation(null); 185 + receiptContainerHeader.setToLocation("");
186 if (!receiptContainerHeaderService.updateById(receiptContainerHeader)){ 186 if (!receiptContainerHeaderService.updateById(receiptContainerHeader)){
187 throw new ServiceException("回滚入库组盘头失败"); 187 throw new ServiceException("回滚入库组盘头失败");
188 } 188 }
189 189
  190 + //将入库组盘明细的库位修改为空
190 LambdaQueryWrapper<ReceiptContainerDetail> lambdaQueryWrapper = Wrappers.lambdaQuery(); 191 LambdaQueryWrapper<ReceiptContainerDetail> lambdaQueryWrapper = Wrappers.lambdaQuery();
191 lambdaQueryWrapper.eq(ReceiptContainerDetail::getReceiptContainerId, receiptContainerDetail.getReceiptContainerId()); 192 lambdaQueryWrapper.eq(ReceiptContainerDetail::getReceiptContainerId, receiptContainerDetail.getReceiptContainerId());
192 List<ReceiptContainerDetail> receiptContainerDetailList = receiptContainerDetailService.list(lambdaQueryWrapper); 193 List<ReceiptContainerDetail> receiptContainerDetailList = receiptContainerDetailService.list(lambdaQueryWrapper);
193 for (ReceiptContainerDetail receiptContainerDetail2 : receiptContainerDetailList) { 194 for (ReceiptContainerDetail receiptContainerDetail2 : receiptContainerDetailList) {
194 - receiptContainerDetail2.setLocationCode(null); 195 + receiptContainerDetail2.setLocationCode("");
195 if (!receiptContainerDetailService.updateById(receiptContainerDetail2)){ 196 if (!receiptContainerDetailService.updateById(receiptContainerDetail2)){
196 throw new ServiceException("回滚入库组盘明细失败"); 197 throw new ServiceException("回滚入库组盘明细失败");
197 } 198 }
src/main/resources/mybatis/config/ContainerMapper.xml
@@ -52,4 +52,7 @@ @@ -52,4 +52,7 @@
52 UPDATE container set `status`=#{status}, locationCode=#{locationCode} WHERE warehouseCode=#{warehouseCode} AND `code`=#{containerCode} 52 UPDATE container set `status`=#{status}, locationCode=#{locationCode} WHERE warehouseCode=#{warehouseCode} AND `code`=#{containerCode}
53 </update> 53 </update>
54 54
  55 + <select id="findAllByCode" resultMap="BaseResultMap" parameterType="java.lang.String">
  56 + SELECT * FROM container WHERE code = #{code,jdbcType=VARCHAR}
  57 + </select>
55 </mapper> 58 </mapper>
56 \ No newline at end of file 59 \ No newline at end of file
src/main/resources/templates/config/configValue/edit.html
@@ -64,7 +64,7 @@ @@ -64,7 +64,7 @@
64 </div> 64 </div>
65 <div th:include="include::footer"></div> 65 <div th:include="include::footer"></div>
66 <script type="text/javascript"> 66 <script type="text/javascript">
67 - var prefix = ctx + "config/configvalue"; 67 + var prefix = ctx + "config/configValue";
68 $("#form-configValue-edit").validate({ 68 $("#form-configValue-edit").validate({
69 rules:{ 69 rules:{
70 moduleType:{ 70 moduleType:{
src/main/resources/templates/config/filterConfigHeader/add.html
@@ -5,18 +5,14 @@ @@ -5,18 +5,14 @@
5 <body class="white-bg"> 5 <body class="white-bg">
6 <div class="wrapper wrapper-content animated fadeInRight ibox-content"> 6 <div class="wrapper wrapper-content animated fadeInRight ibox-content">
7 <form class="form-horizontal m" id="form-filterConfigHeader-add"> 7 <form class="form-horizontal m" id="form-filterConfigHeader-add">
8 - <div class="form-group">  
9 - <label class="col-sm-3 control-label">模块:</label>  
10 - <div class="col-sm-8">  
11 - <select class="form-control" name="moduleType" th:with="moduleType=${@dict.getType('moduleType')}">  
12 - <option th:each="item : ${moduleType}" th:text="${item['dictLabel']}" th:value="${item['dictValue']}"></option>  
13 - </select>  
14 - </div>  
15 - </div> 8 + <input name="moduleType" th:value="${moduleType}" hidden>
16 <div class="form-group"> 9 <div class="form-group">
17 <label class="col-sm-3 control-label">类型:</label> 10 <label class="col-sm-3 control-label">类型:</label>
18 <div class="col-sm-8"> 11 <div class="col-sm-8">
19 - <select id="recordType" name="recordType" class="form-control" th:with="recordType=${@dict.getType('recordType')}"> 12 + <select id="recordType" name="recordType" class="form-control" th:if="${moduleType == 'receipt'}" th:with="recordType=${@dict.getType('receiptRuleType')}">
  13 + <option th:each="item : ${recordType}" th:text="${item['dictLabel']}" th:value="${item['dictValue']}"></option>
  14 + </select>
  15 + <select id="recordType" name="recordType" class="form-control" th:if="${moduleType != 'receipt'}" th:with="recordType=${@dict.getType('shipmentRuleType')}">
20 <option th:each="item : ${recordType}" th:text="${item['dictLabel']}" th:value="${item['dictValue']}"></option> 16 <option th:each="item : ${recordType}" th:text="${item['dictLabel']}" th:value="${item['dictValue']}"></option>
21 </select> 17 </select>
22 </div> 18 </div>
src/main/resources/templates/config/filterConfigHeader/filterConfigHeader.html
@@ -79,7 +79,7 @@ @@ -79,7 +79,7 @@
79 $(function() { 79 $(function() {
80 var options = { 80 var options = {
81 url: prefix + "/list", 81 url: prefix + "/list",
82 - createUrl: prefix + "/add", 82 + createUrl: prefix + "/add/"+[[${moduleType}]],
83 updateUrl: prefix + "/edit/{id}", 83 updateUrl: prefix + "/edit/{id}",
84 removeUrl: prefix + "/remove", 84 removeUrl: prefix + "/remove",
85 modalName: "规则配置主表", 85 modalName: "规则配置主表",
src/main/resources/templates/config/receiptPreference/add.html
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <div class="form-group"> 20 <div class="form-group">
21 <label class="col-sm-3 control-label">入库流程:</label> 21 <label class="col-sm-3 control-label">入库流程:</label>
22 <div class="col-sm-8"> 22 <div class="col-sm-8">
23 - <select id="receiptFlow" name="receiptFlow" class="form-control" th:with="statusFlowList=${@StatusFlow.flowList('入库单')}"> 23 + <select id="receiptFlow" name="receiptFlow" class="form-control" th:with="statusFlowList=${@StatusFlow.flowList('receivingFlow')}">
24 <option th:each="flow : ${statusFlowList}" th:text="${flow['name']}" th:value="${flow['code']}"></option> 24 <option th:each="flow : ${statusFlowList}" th:text="${flow['name']}" th:value="${flow['code']}"></option>
25 </select> 25 </select>
26 </div> 26 </div>
src/main/resources/templates/config/receiptPreference/receiptPreference.html
@@ -139,6 +139,7 @@ @@ -139,6 +139,7 @@
139 { 139 {
140 field : 'manuallyBuildLPN', 140 field : 'manuallyBuildLPN',
141 title : '人工组盘', 141 title : '人工组盘',
  142 + align : "center",
142 formatter : function(value, row, index) { 143 formatter : function(value, row, index) {
143 return $.table.selectWhetherLabel(value); 144 return $.table.selectWhetherLabel(value);
144 }, 145 },
src/main/resources/templates/config/receiptType/add.html
@@ -46,7 +46,8 @@ @@ -46,7 +46,8 @@
46 <div class="form-group"> 46 <div class="form-group">
47 <label class="col-sm-3 control-label">入库流程:</label> 47 <label class="col-sm-3 control-label">入库流程:</label>
48 <div class="col-sm-8"> 48 <div class="col-sm-8">
49 - <select id="receiptFlow" name="receiptFlow" class="form-control" th:with="statusFlowList=${@StatusFlow.flowList('入库单')}"> 49 + <select id="receiptFlow" name="receiptFlow" class="form-control" th:with="statusFlowList=${@StatusFlow.flowList('receivingFlow')}">
  50 + <option value="">请选择</option>
50 <option th:each="flow : ${statusFlowList}" th:text="${flow['name']}" th:value="${flow['code']}"></option> 51 <option th:each="flow : ${statusFlowList}" th:text="${flow['name']}" th:value="${flow['code']}"></option>
51 </select> 52 </select>
52 </div> 53 </div>
src/main/resources/templates/config/receiptType/edit.html
@@ -48,7 +48,8 @@ @@ -48,7 +48,8 @@
48 <div class="form-group"> 48 <div class="form-group">
49 <label class="col-sm-3 control-label">入库流程:</label> 49 <label class="col-sm-3 control-label">入库流程:</label>
50 <div class="col-sm-8"> 50 <div class="col-sm-8">
51 - <select id="receiptFlow" name="receiptFlow" class="form-control" th:with="statusFlowList=${@StatusFlow.flowList('入库单')}" th:field="*{receiptFlow}"> 51 + <select id="receiptFlow" name="receiptFlow" class="form-control" th:with="statusFlowList=${@StatusFlow.flowList('receivingFlow')}" th:field="*{receiptFlow}">
  52 + <option value="">请选择</option>
52 <option th:each="flow : ${statusFlowList}" th:text="${flow['name']}" th:value="${flow['code']}"></option> 53 <option th:each="flow : ${statusFlowList}" th:text="${flow['name']}" th:value="${flow['code']}"></option>
53 </select> 54 </select>
54 </div> 55 </div>
src/main/resources/templates/config/statusFlowDetail/add.html
@@ -16,9 +16,7 @@ @@ -16,9 +16,7 @@
16 <div class="form-group"> 16 <div class="form-group">
17 <label class="col-sm-3 control-label">模块:</label> 17 <label class="col-sm-3 control-label">模块:</label>
18 <div class="col-sm-8"> 18 <div class="col-sm-8">
19 - <select id="moduleType" name="moduleType" class="form-control" th:with="moduleType=${@dict.getType('moduleType')}">  
20 - <option th:each="item : ${moduleType}" th:text="${item['dictLabel']}" th:value="${item['dictValue']}"></option>  
21 - </select> 19 + <input id="moduleType" name="moduleType" class="form-control" type="text" th:value="${moduleType}" readonly="readonly">
22 </div> 20 </div>
23 </div> 21 </div>
24 <div class="form-group"> 22 <div class="form-group">
src/main/resources/templates/config/statusFlowHeader/add.html
@@ -5,6 +5,7 @@ @@ -5,6 +5,7 @@
5 <body class="white-bg"> 5 <body class="white-bg">
6 <div class="wrapper wrapper-content animated fadeInRight ibox-content"> 6 <div class="wrapper wrapper-content animated fadeInRight ibox-content">
7 <form class="form-horizontal m" id="form-statusFlowHeader-add"> 7 <form class="form-horizontal m" id="form-statusFlowHeader-add">
  8 + <input id="moduleType" name="moduleType" hidden th:value="${moduleType}">
8 <div class="form-group"> 9 <div class="form-group">
9 <label class="col-sm-3 control-label">编码:</label> 10 <label class="col-sm-3 control-label">编码:</label>
10 <div class="col-sm-8"> 11 <div class="col-sm-8">
@@ -17,22 +18,7 @@ @@ -17,22 +18,7 @@
17 <input id="name" name="name" class="form-control" type="text"> 18 <input id="name" name="name" class="form-control" type="text">
18 </div> 19 </div>
19 </div> 20 </div>
20 - <div class="form-group">  
21 - <label class="col-sm-3 control-label">模块:</label>  
22 - <div class="col-sm-8">  
23 - <select id="moduleType" name="moduleType" class="form-control" th:with="moduleType=${@dict.getType('moduleType')}">  
24 - <option th:each="item : ${moduleType}" th:text="${item['dictLabel']}" th:value="${item['dictValue']}"></option>  
25 - </select>  
26 - </div>  
27 - </div>  
28 - <div class="form-group">  
29 - <label class="col-sm-3 control-label">类型:</label>  
30 - <div class="col-sm-8">  
31 - <select id="recordType" name="recordType" class="form-control" th:with="recordType=${@dict.getType('recordType')}">  
32 - <option th:each="item : ${recordType}" th:text="${item['dictLabel']}" th:value="${item['dictValue']}"></option>  
33 - </select>  
34 - </div>  
35 - </div> 21 + <input id="recordType" name="recordType" class="form-control" type="hidden" th:value="${moduleType} == 'receipt'? 'receivingFlow':'shippingFlow'">
36 <!--<div class="form-group">--> 22 <!--<div class="form-group">-->
37 <!-- <label class="col-sm-3 control-label">数据版本:</label>--> 23 <!-- <label class="col-sm-3 control-label">数据版本:</label>-->
38 <!-- <div class="col-sm-8">--> 24 <!-- <div class="col-sm-8">-->
src/main/resources/templates/config/statusFlowHeader/statusFlowHeader.html
@@ -82,7 +82,7 @@ @@ -82,7 +82,7 @@
82 $(function() { 82 $(function() {
83 var options = { 83 var options = {
84 url: prefix + "/list", 84 url: prefix + "/list",
85 - createUrl: prefix + "/add", 85 + createUrl: prefix + "/add/"+[[${moduleType}]],
86 updateUrl: prefix + "/edit/{id}", 86 updateUrl: prefix + "/edit/{id}",
87 removeUrl: prefix + "/remove", 87 removeUrl: prefix + "/remove",
88 modalName: "流程", 88 modalName: "流程",
src/main/resources/templates/inventory/adjustDetail/adjustDetail.html
@@ -91,14 +91,16 @@ @@ -91,14 +91,16 @@
91 </div> 91 </div>
92 </div> 92 </div>
93 <div class="btn-group hidden-xs" id="toolbar" role="group"> 93 <div class="btn-group hidden-xs" id="toolbar" role="group">
94 - <a class="btn btn-outline btn-success btn-rounded" onclick="add()"> 94 + <a class="btn btn-outline btn-success btn-rounded" onclick="add()"
  95 + shiro:hasPermission="inventory:adjustDetail:add" >
95 <i class="fa fa-plus"></i> 新增 96 <i class="fa fa-plus"></i> 新增
96 </a> 97 </a>
97 - <a class="btn btn-outline btn-primary btn-rounded" onclick="agree()"> 98 + <a class="btn btn-outline btn-primary btn-rounded" onclick="agree()"
  99 + shiro:hasPermission="inventory:adjustDetail:adjustAgree" >
98 <i class="fa fa-edit"></i> 审批 100 <i class="fa fa-edit"></i> 审批
99 </a> 101 </a>
100 - <a class="btn btn-outline btn-danger btn-rounded" onclick="addAdjust()"/>  
101 - <!--shiro:hasPermission="inventory:cyclecountAdjustDetail:addAdjust"--> 102 + <a class="btn btn-outline btn-danger btn-rounded" onclick="addAdjust()"
  103 + shiro:hasPermission="inventory:adjustDetail:addAdjust">
102 <i class="fa fa-vcard"></i>调整 104 <i class="fa fa-vcard"></i>调整
103 </a> 105 </a>
104 <!--<a class="btn btn-outline btn-success btn-rounded" onclick="$.table.refresh()"> 106 <!--<a class="btn btn-outline btn-success btn-rounded" onclick="$.table.refresh()">
@@ -112,6 +114,7 @@ @@ -112,6 +114,7 @@
112 <script th:inline="javascript"> 114 <script th:inline="javascript">
113 var prefix = ctx + "inventory/adjustDetail"; 115 var prefix = ctx + "inventory/adjustDetail";
114 var prefix_head = ctx + "inventory/adjustHeader"; 116 var prefix_head = ctx + "inventory/adjustHeader";
  117 + var removes= [[${@permission.hasPermi('inventory:adjustDetail:remove')}]];
115 var type2 = [[${@dict.getType('adjustType')}]]; 118 var type2 = [[${@dict.getType('adjustType')}]];
116 var adjustStatus = [[${@dict.getType('adjustStatus')}]]; 119 var adjustStatus = [[${@dict.getType('adjustStatus')}]];
117 var inventoryStatus = [[${@dict.getType('inventoryStatus')}]]; 120 var inventoryStatus = [[${@dict.getType('inventoryStatus')}]];
@@ -353,7 +356,7 @@ @@ -353,7 +356,7 @@
353 align: 'center', 356 align: 'center',
354 formatter: function (value, row, index) { 357 formatter: function (value, row, index) {
355 var actions = []; 358 var actions = [];
356 - actions.push('<a class="btn btn-danger btn-xs" href="#" onclick="remove(\'' + row.id + '\')"><i class="fa fa-trash-o"></i>删除</a> '); 359 + actions.push('<a class="btn btn-danger btn-xs ' + removes + ' " href="#" onclick="remove(\'' + row.id + '\')"><i class="fa fa-trash-o"></i>删除</a> ');
357 return actions.join(''); 360 return actions.join('');
358 } 361 }
359 } 362 }
src/main/resources/templates/inventory/adjustHeader/adjustHeader.html
@@ -69,13 +69,13 @@ @@ -69,13 +69,13 @@
69 </div> 69 </div>
70 <div class="btn-group hidden-xs" id="toolbar" role="group"> 70 <div class="btn-group hidden-xs" id="toolbar" role="group">
71 <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.add()" 71 <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.add()"
72 - shiro:hasPermission="inventory:cycleCount:add"> 72 + shiro:hasPermission="inventory:adjustHeader:add">
73 <i class="fa fa-plus"></i> 新增 73 <i class="fa fa-plus"></i> 新增
74 </a> 74 </a>
75 - <!--<a class="btn btn-outline btn-danger btn-rounded" onclick="$.operate.batRemove()"  
76 - shiro:hasPermission="inventory:cycleCount:remove">  
77 - <i class="fa fa-trash-o"></i> 删除  
78 - </a>--> 75 + <a class="btn btn-outline btn-danger btn-rounded" onclick="$.operate.batRemove()"
  76 + shiro:hasPermission="inventory:adjustHeader:remove">
  77 + <i class="fa fa-trash-o"></i> 删除
  78 + </a>
79 </div> 79 </div>
80 <table id="bootstrap-table" data-mobile-responsive="true" 80 <table id="bootstrap-table" data-mobile-responsive="true"
81 class="table table-bordered table-hover"></table> 81 class="table table-bordered table-hover"></table>
@@ -90,7 +90,7 @@ @@ -90,7 +90,7 @@
90 <script th:inline="javascript"> 90 <script th:inline="javascript">
91 var prefix = ctx + "inventory/adjustHeader"; 91 var prefix = ctx + "inventory/adjustHeader";
92 var upload = [[${@permission.hasPermi('inventoryHeader:adjustHeader:upload')}]]; 92 var upload = [[${@permission.hasPermi('inventoryHeader:adjustHeader:upload')}]];
93 - var report = [[${@permission.hasPermi('inventoryHeader:adjustHeader:report')}]]; 93 + var report = [[${@permission.hasPermi('inventory:adjustHeader:report')}]];
94 var datas = [[${@dict.getType('sys_normal_disable')}]]; 94 var datas = [[${@dict.getType('sys_normal_disable')}]];
95 var type2 = [[${@dict.getType('adjustType')}]]; 95 var type2 = [[${@dict.getType('adjustType')}]];
96 96
@@ -180,8 +180,8 @@ @@ -180,8 +180,8 @@
180 align: 'center', 180 align: 'center',
181 formatter: function (value, row, index) { 181 formatter: function (value, row, index) {
182 var actions = []; 182 var actions = [];
183 - /* actions.push('<a class="btn btn-success btn-xs " href="#" onclick="adjustPrint(\'' + row.id + '\')"><i class="fa fa-print"></i>打印</a> ');  
184 - actions.push('<a class="btn btn-info btn-xs ' + upload + ' " href="#" onclick="upLoad(\'' + row.code + '\',\'' + row.sourceCode + '\')"><i class="fa fa-edit"></i>上传</a> '); 183 + actions.push('<a class="btn btn-success btn-xs " href="#" onclick="adjustPrint(\'' + row.id + '\')"><i class="fa fa-print"></i>打印</a> ');
  184 + /* actions.push('<a class="btn btn-info btn-xs ' + upload + ' " href="#" onclick="upLoad(\'' + row.code + '\',\'' + row.sourceCode + '\')"><i class="fa fa-edit"></i>上传</a> ');
185 actions.push('<a class="btn btn-danger btn-xs " href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-trash-o"></i>删除</a> ');*/ 185 actions.push('<a class="btn btn-danger btn-xs " href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-trash-o"></i>删除</a> ');*/
186 actions.push('<a style="background: #b5bdc0" class="btn btn-default btn-xs " href="#" onclick="detail(\'' + row.id + '\',\'' + row.code + '\')"><i class="fa fa-list-ul"></i>明细</a>'); 186 actions.push('<a style="background: #b5bdc0" class="btn btn-default btn-xs " href="#" onclick="detail(\'' + row.id + '\',\'' + row.code + '\')"><i class="fa fa-list-ul"></i>明细</a>');
187 return actions.join(''); 187 return actions.join('');
src/main/resources/templates/inventory/cycleCountDetail/add.html
@@ -11,7 +11,6 @@ @@ -11,7 +11,6 @@
11 <input type="hidden" id="cycleCountHeadCode" name="cycleCountHeadCode" th:value="${cycleCountHeadCode}"> 11 <input type="hidden" id="cycleCountHeadCode" name="cycleCountHeadCode" th:value="${cycleCountHeadCode}">
12 <div class="select-list"> 12 <div class="select-list">
13 <ul> 13 <ul>
14 - <ul>  
15 <li> 14 <li>
16 库存头ID:<input id="inventoryHeaderId" type="text" name="inventoryHeaderId"/> 15 库存头ID:<input id="inventoryHeaderId" type="text" name="inventoryHeaderId"/>
17 </li> 16 </li>
@@ -79,12 +78,14 @@ @@ -79,12 +78,14 @@
79 <a id="search" class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a> 78 <a id="search" class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
80 <!--<a class="btn btn-success btn-rounded btn-sm" onclick="$.table.exportExcel()" shiro:hasPermission="general:inventoryHeader:export"><i class="fa fa-download"></i>&nbsp;导出</a>--> 79 <!--<a class="btn btn-success btn-rounded btn-sm" onclick="$.table.exportExcel()" shiro:hasPermission="general:inventoryHeader:export"><i class="fa fa-download"></i>&nbsp;导出</a>-->
81 </li> 80 </li>
82 - </ul> 81 + </ul>
83 </div> 82 </div>
84 </form> 83 </form>
85 </div> 84 </div>
86 <div class="col-sm-12 select-info"> 85 <div class="col-sm-12 select-info">
87 - <a class="btn btn-success btn-sm" onclick="addDetails()" style="float: left; margin-top: 12px" shiro:hasPermission="inventory:cyclecountDetail:add"><i class="fa fa-edit" ></i>&nbsp;批量添加盘点明细</a> 86 + <a class="btn btn-success btn-sm" onclick="addDetails()" style="float: left; margin-top: 12px"
  87 + shiro:hasPermission="inventory:cyclecountDetail:add">
  88 + <i class="fa fa-edit" ></i>&nbsp;添加盘点明细</a>
88 <table id="bootstrap-table" data-mobile-responsive="true" class="table table-bordered table-hover"></table> 89 <table id="bootstrap-table" data-mobile-responsive="true" class="table table-bordered table-hover"></table>
89 </div> 90 </div>
90 </div> 91 </div>
@@ -94,7 +95,7 @@ @@ -94,7 +95,7 @@
94 <div th:include="include::footer"></div> 95 <div th:include="include::footer"></div>
95 96
96 <script th:inline="javascript"> 97 <script th:inline="javascript">
97 - var addFlag = [[${@permission.hasPermi('inventoryHeader:cycleCountDetail:add')}]]; 98 + var addFlag = [[${@permission.hasPermi('inventory:cyclecountDetail:add')}]];
98 // var removeFlag = [[${@permission.hasPermi('inventoryHeader:inventoryHeader:remove')}]]; 99 // var removeFlag = [[${@permission.hasPermi('inventoryHeader:inventoryHeader:remove')}]];
99 var prefix = ctx + "inventory/inventoryDetail"; 100 var prefix = ctx + "inventory/inventoryDetail";
100 var prefix_cycleDetails = ctx + "inventory/cycleCountDetail"; 101 var prefix_cycleDetails = ctx + "inventory/cycleCountDetail";
@@ -132,7 +133,7 @@ @@ -132,7 +133,7 @@
132 { 133 {
133 checkbox: true 134 checkbox: true
134 }, 135 },
135 - { 136 + /*{
136 title: '操作', 137 title: '操作',
137 align: 'center', 138 align: 'center',
138 formatter: function(value, row, index) { 139 formatter: function(value, row, index) {
@@ -141,10 +142,10 @@ @@ -141,10 +142,10 @@
141 // actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>'); 142 // actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
142 return actions.join(''); 143 return actions.join('');
143 } 144 }
144 - }, 145 + },*/
145 { 146 {
146 field: 'id', 147 field: 'id',
147 - title: '明细ID', 148 + title: '库存明细ID',
148 sortable: true 149 sortable: true
149 }, 150 },
150 { 151 {
@@ -315,14 +316,18 @@ @@ -315,14 +316,18 @@
315 316
316 }); 317 });
317 318
318 - /*function addDetail(cycleCountHeadId) {  
319 - addInner($('cycleCountHeadId').val(),cycleCountHeadId);  
320 - }*/ 319 + function addDetail(id) {
  320 + /*var ids =[];
  321 + rows.forEach(function (item) {
  322 + ids.push(item.id);
  323 + });*/
  324 + addInner($('#cycleCountHeadCode').val(),id);
  325 + }
321 326
322 function addDetails() { 327 function addDetails() {
323 var rows=$("#bootstrap-table").bootstrapTable('getSelections'); 328 var rows=$("#bootstrap-table").bootstrapTable('getSelections');
324 if (rows.length < 1) { 329 if (rows.length < 1) {
325 - $.modal.alertWarning("请先选择记录"); 330 + $.modal.alertWarning("请选择库存明细!");
326 return; 331 return;
327 } 332 }
328 var ids =[]; 333 var ids =[];
@@ -339,7 +344,7 @@ @@ -339,7 +344,7 @@
339 url : prefix_cycleDetails + "/add", 344 url : prefix_cycleDetails + "/add",
340 data:{ 345 data:{
341 cycleCountHeadCode:cycleCountHeadCode, 346 cycleCountHeadCode:cycleCountHeadCode,
342 - inventoryDetailIdIds:ids 347 + inventoryDetailIds:ids
343 }, 348 },
344 async : false, 349 async : false,
345 error : function(request) { 350 error : function(request) {
src/main/resources/templates/inventory/cycleCountDetail/cycleCountDetail.html
@@ -85,7 +85,7 @@ @@ -85,7 +85,7 @@
85 </div> 85 </div>
86 <div class="btn-group hidden-xs" id="toolbar" role="group"> 86 <div class="btn-group hidden-xs" id="toolbar" role="group">
87 <a class="btn btn-outline btn-success btn-rounded" onclick="add()" 87 <a class="btn btn-outline btn-success btn-rounded" onclick="add()"
88 - shiro:hasPermission="inventory:cycleCountDetail:add"> 88 + shiro:hasPermission="inventory:cyclecountDetail:add">
89 <i class="fa fa-plus"></i> 新增 89 <i class="fa fa-plus"></i> 新增
90 </a> 90 </a>
91 <a class="btn btn-outline btn-danger btn-rounded" onclick="createCyclecountWithGapQty()" 91 <a class="btn btn-outline btn-danger btn-rounded" onclick="createCyclecountWithGapQty()"
@@ -98,7 +98,7 @@ @@ -98,7 +98,7 @@
98 </a> 98 </a>
99 <a class="btn btn-outline btn-danger btn-rounded" onclick="batRemove()" 99 <a class="btn btn-outline btn-danger btn-rounded" onclick="batRemove()"
100 shiro:hasPermission="inventory:cyclecountDetail:remove"> 100 shiro:hasPermission="inventory:cyclecountDetail:remove">
101 - <i class="fa fa-trash-o"></i> 批量删除 101 + <i class="fa fa-trash-o"></i> 删除
102 </a> 102 </a>
103 <a class="btn btn-outline btn-success btn-rounded" onclick="$.table.refresh()"> 103 <a class="btn btn-outline btn-success btn-rounded" onclick="$.table.refresh()">
104 <i class="fa fa-refresh"></i> 刷新 104 <i class="fa fa-refresh"></i> 刷新
@@ -109,10 +109,10 @@ @@ -109,10 +109,10 @@
109 </div> 109 </div>
110 <div th:include="include :: footer"></div> 110 <div th:include="include :: footer"></div>
111 <script th:inline="javascript"> 111 <script th:inline="javascript">
112 - var editFlag = [[${@permission.hasPermi('inventoryHeader:cycleCountDetail:edit')}]];  
113 - var removeFlag = [[${@permission.hasPermi('inventoryHeader:cycleCountDetail:remove')}]];  
114 - var confirmFlag=[[${@permission.hasPermi('inventoryHeader:cycleCountDetail:confirm')}]];  
115 - var createTaskFalg=[[${@permission.hasPermi('inventoryHeader:cycleCountDetail:createTask')}]]; 112 + //var editFlag = [[${@permission.hasPermi('inventory:cyclecountDetail:edit')}]];
  113 + var removeFlag = [[${@permission.hasPermi('inventory:cyclecountDetail:remove')}]];
  114 + var confirmFlag = [[${@permission.hasPermi('inventory:cyclecountDetail:confirm')}]];
  115 + var createTaskFalg = [[${@permission.hasPermi('inventory:cyclecountDetail:createTask')}]];
116 var prefix = ctx + "inventory/cycleCountDetail"; 116 var prefix = ctx + "inventory/cycleCountDetail";
117 var prefix_head = ctx + "inventory/cycleCountHeader"; 117 var prefix_head = ctx + "inventory/cycleCountHeader";
118 var remove_url= prefix + "/remove"; 118 var remove_url= prefix + "/remove";
@@ -318,12 +318,13 @@ @@ -318,12 +318,13 @@
318 align: 'center', 318 align: 'center',
319 formatter: function (value, row, index) { 319 formatter: function (value, row, index) {
320 var actions = []; 320 var actions = [];
321 -  
322 - actions.push('<a class="btn btn-success btn-xs " href="#" onclick="confirmGapQty(\'' + row.id + '\')"><i class="fa fa-comment"></i>实盘登记</a> ');  
323 -  
324 - actions.push('<a class="btn btn-primary btn-xs " href="#" onclick="outcheck(\'' + row.id + '\')"><i class="fa fa-gbp"></i>生成盘点任务</a> ');  
325 -  
326 - actions.push('<a class="btn btn-danger btn-xs " href="#" onclick="remove(\'' + row.id + '\')" ><i class="fa fa-trash-o"></i>删除</a>'); 321 + if(row.enableStatus >= 10 && row.enableStatus < 100){
  322 + actions.push('<a class="btn btn-success btn-xs ' + confirmFlag + '" href="#" onclick="confirmGapQty(\'' + row.id + '\')"><i class="fa fa-comment"></i>实盘登记</a> ');
  323 + }
  324 + if(row.enableStatus === 1 ){
  325 + actions.push('<a class="btn btn-primary btn-xs ' + createTaskFalg + '" href="#" onclick="outcheck(\'' + row.id + '\')"><i class="fa fa-gbp"></i>生成盘点任务</a> ');
  326 + }
  327 + actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="remove(\'' + row.id + '\')" ><i class="fa fa-trash-o"></i>删除</a>');
327 return actions.join(''); 328 return actions.join('');
328 } 329 }
329 }] 330 }]
src/main/resources/templates/inventory/cycleCountHeader/cycleCountHeader.html
@@ -70,13 +70,13 @@ @@ -70,13 +70,13 @@
70 </div> 70 </div>
71 <div class="btn-group hidden-xs" id="toolbar" role="group"> 71 <div class="btn-group hidden-xs" id="toolbar" role="group">
72 <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.add()" 72 <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.add()"
73 - shiro:hasPermission="inventory:cycleCount:add"> 73 + shiro:hasPermission="inventory:cycleCountHeader:add">
74 <i class="fa fa-plus"></i> 新增 74 <i class="fa fa-plus"></i> 新增
75 </a> 75 </a>
76 - <a class="btn btn-outline btn-danger btn-rounded" onclick="$.operate.batRemove()"  
77 - shiro:hasPermission="inventory:cycleCount:remove"> 76 + <!--<a class="btn btn-outline btn-danger btn-rounded" onclick="$.operate.batRemove()"
  77 + shiro:hasPermission="inventory:cycleCountHeader:remove">
78 <i class="fa fa-trash-o"></i> 删除 78 <i class="fa fa-trash-o"></i> 删除
79 - </a> 79 + </a>-->
80 </div> 80 </div>
81 <table id="bootstrap-table" data-mobile-responsive="true" 81 <table id="bootstrap-table" data-mobile-responsive="true"
82 class="table table-bordered table-hover"></table> 82 class="table table-bordered table-hover"></table>
@@ -89,10 +89,10 @@ @@ -89,10 +89,10 @@
89 </div> 89 </div>
90 <div th:include="include :: footer"></div> 90 <div th:include="include :: footer"></div>
91 <script th:inline="javascript"> 91 <script th:inline="javascript">
92 - var reportFlag = [[${@permission.hasPermi('inventoryHeader:cycleCount:report')}]];  
93 - var editFlag = [[${@permission.hasPermi('inventoryHeader:cycleCount:edit')}]];  
94 - var addAdjust = [[${@permission.hasPermi('inventoryHeader:cyclecountHead:addAdjust')}]];  
95 - var removeFlag = [[${@permission.hasPermi('inventoryHeader:cycleCount:remove')}]]; 92 + var reportFlag = [[${@permission.hasPermi('inventory:cycleCountHeader:report')}]];
  93 + //var editFlag = [[${@permission.hasPermi('inventory:cycleCountHeader:edit')}]];
  94 + var addAdjust = [[${@permission.hasPermi('inventory:cyclecountHead:addAdjust')}]];
  95 + var removeFlag = [[${@permission.hasPermi('inventory:cycleCount:remove')}]];
96 var prefix = ctx + "inventory/cycleCountHeader"; 96 var prefix = ctx + "inventory/cycleCountHeader";
97 var datas = [[${@dict.getType('sys_normal_disable')}]]; 97 var datas = [[${@dict.getType('sys_normal_disable')}]];
98 var types = [[${@dict.getType('cyclecountType')}]]; 98 var types = [[${@dict.getType('cyclecountType')}]];
@@ -137,6 +137,11 @@ @@ -137,6 +137,11 @@
137 title: '货主编码' 137 title: '货主编码'
138 }, 138 },
139 { 139 {
  140 + field: 'round',
  141 + title: ' 盘点轮次',
  142 + visible: false
  143 + },
  144 + {
140 field: 'sourceCode', 145 field: 'sourceCode',
141 title: '源盘点单' 146 title: '源盘点单'
142 }, 147 },
@@ -274,12 +279,12 @@ @@ -274,12 +279,12 @@
274 align: 'center', 279 align: 'center',
275 formatter: function (value, row, index) { 280 formatter: function (value, row, index) {
276 var actions = []; 281 var actions = [];
277 - actions.push('<a class="btn btn-success btn-xs " href="#" onclick="cyclecountPrint(\'' + row.id + '\')"><i class="fa fa-print"></i>打印</a> ');  
278 -  
279 - actions.push('<a class="btn btn-warning btn-xs " href="#" onclick="goAdjust(\'' + row.id + '\')"><i class="fa fa-gbp"></i>生成调整单</a> ');  
280 -  
281 - //actions.push('<a class="btn btn-info btn-xs " href="#" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');  
282 - actions.push('<a class="btn btn-danger btn-xs " href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-trash-o"></i>删除</a> '); 282 + actions.push('<a class="btn btn-success btn-xs ' + reportFlag + '" href="#" onclick="cyclecountPrint(\'' + row.id + '\')"><i class="fa fa-print"></i>打印</a> ');
  283 + if(row.statusCyc === 100){
  284 + actions.push('<a class="btn btn-warning btn-xs ' + addAdjust + '" href="#" onclick="goAdjust(\'' + row.id + '\')"><i class="fa fa-gbp"></i>生成调整单</a> ');
  285 + }
  286 + //actions.push('<a class="btn btn-info btn-xs ' + editFlag + '" href="#" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
  287 + actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-trash-o"></i>删除</a> ');
283 return actions.join(''); 288 return actions.join('');
284 } 289 }
285 }] 290 }]
src/main/resources/templates/inventory/inventoryDetail/inventoryDetail.html
@@ -86,7 +86,7 @@ @@ -86,7 +86,7 @@
86 shiro:hasPermission="inventory:inventoryHeader:seeOut"> 86 shiro:hasPermission="inventory:inventoryHeader:seeOut">
87 <i class="fa fa-eye"></i> 出库查看 87 <i class="fa fa-eye"></i> 出库查看
88 </a> 88 </a>
89 - <a class="btn btn-outline btn-primary btn-rounded" onclick="check()" 89 + <a class="btn btn-outline btn-danger btn-rounded" onclick="check()"
90 shiro:hasPermission="inventory:inventoryDetail:detailCheckTask"> 90 shiro:hasPermission="inventory:inventoryDetail:detailCheckTask">
91 <i class="fa fa-eye"></i> 在库质检 91 <i class="fa fa-eye"></i> 在库质检
92 </a> 92 </a>
@@ -305,7 +305,9 @@ @@ -305,7 +305,9 @@
305 visible: false 305 visible: false
306 } 306 }
307 ] 307 ]
308 - },url = location.search.substr(1); 308 + },
  309 +
  310 + url = location.search.substr(1);
309 let strs = url.split("&"); 311 let strs = url.split("&");
310 $("#inventoryHeaderId").val(strs[0]); 312 $("#inventoryHeaderId").val(strs[0]);
311 $("#locationCode").val(strs[1]); 313 $("#locationCode").val(strs[1]);
src/main/resources/templates/receipt/receiptDetail/add.html
@@ -52,7 +52,10 @@ @@ -52,7 +52,10 @@
52 <div class="form-group"> 52 <div class="form-group">
53 <label class="col-sm-3 control-label">是否质检:</label> 53 <label class="col-sm-3 control-label">是否质检:</label>
54 <div class="col-sm-8"> 54 <div class="col-sm-8">
55 - <input id="qcCheck" name="qcCheck" class="form-control" type="text"> 55 + <select id="qcCheck" name="qcCheck" class="form-control">
  56 + <option value="1">否</option>
  57 + <option value="0">是</option>
  58 + </select>
56 </div> 59 </div>
57 </div> 60 </div>
58 <div class="form-group"> 61 <div class="form-group">
@@ -70,7 +73,7 @@ @@ -70,7 +73,7 @@
70 <div class="form-group"> 73 <div class="form-group">
71 <label class="col-sm-3 control-label">库存状态:</label> 74 <label class="col-sm-3 control-label">库存状态:</label>
72 <div class="col-sm-8"> 75 <div class="col-sm-8">
73 - <select id="inventorySts" name="inventorySts" class="form-control" th:with="inventoryStatus=${@dict.getType('inventoryStatus')}"> 76 + <select id="inventorySts" name="inventorySts" class="form-control" th:with="inventoryStatus=${@dict.getType('inventorySts')}">
74 <option th:each="dict : ${inventoryStatus}" th:text="${dict['dictLabel']}" th:value="${dict['dictValue']}"></option> 77 <option th:each="dict : ${inventoryStatus}" th:text="${dict['dictLabel']}" th:value="${dict['dictValue']}"></option>
75 </select> 78 </select>
76 </div> 79 </div>
@@ -84,12 +87,21 @@ @@ -84,12 +87,21 @@
84 <div class="form-group"> 87 <div class="form-group">
85 <label class="col-sm-3 control-label">定位规则:</label> 88 <label class="col-sm-3 control-label">定位规则:</label>
86 <div class="col-sm-8"> 89 <div class="col-sm-8">
87 - <select id="locatingRule" name="locatingRule" class="form-control" th:with="list=${@FilterConfigDetailService.queryFilterConfigDetail('入库')}"> 90 + <select id="locatingRule" name="locatingRule" class="form-control" th:with="list=${@FilterConfigDetailService.queryFilterConfigDetail('locationRule')}">
88 <option value="">请选择</option> 91 <option value="">请选择</option>
89 <option th:each="item : ${list}" th:text="${item['description']}" th:value="${item['code']}"></option> 92 <option th:each="item : ${list}" th:text="${item['description']}" th:value="${item['code']}"></option>
90 </select> 93 </select>
91 </div> 94 </div>
92 </div> 95 </div>
  96 + <div class="form-group">
  97 + <label class="col-sm-3 control-label">入库流程:</label>
  98 + <div class="col-sm-8">
  99 + <select id="statusFlowCode" name="statusFlowCode" class="form-control" th:with="statusFlowList=${@StatusFlow.flowList('receivingFlow')}">
  100 + <option value="">请选择</option>
  101 + <option th:each="flow : ${statusFlowList}" th:text="${flow['name']}" th:value="${flow['code']}"></option>
  102 + </select>
  103 + </div>
  104 + </div>
93 <!-- <div class="form-group">--> 105 <!-- <div class="form-group">-->
94 <!-- <label class="col-sm-3 control-label">标价:</label>--> 106 <!-- <label class="col-sm-3 control-label">标价:</label>-->
95 <!-- <div class="col-sm-8">--> 107 <!-- <div class="col-sm-8">-->
@@ -150,6 +162,7 @@ @@ -150,6 +162,7 @@
150 submitHandler: function(form) { 162 submitHandler: function(form) {
151 var tableValue = $("#form-receiptDetail-add").serialize(); 163 var tableValue = $("#form-receiptDetail-add").serialize();
152 tableValue = formValueReplace(tableValue, "inventorySts", $("#inventorySts option:selected").val()); 164 tableValue = formValueReplace(tableValue, "inventorySts", $("#inventorySts option:selected").val());
  165 + tableValue = formValueReplace(tableValue, "qcCheck", $("#qcCheck option:selected").val());
153 $.operate.save(prefix + "/add", tableValue); 166 $.operate.save(prefix + "/add", tableValue);
154 } 167 }
155 }); 168 });
src/main/resources/templates/receipt/receiptDetail/edit.html
@@ -53,7 +53,10 @@ @@ -53,7 +53,10 @@
53 <div class="form-group"> 53 <div class="form-group">
54 <label class="col-sm-3 control-label">是否质检:</label> 54 <label class="col-sm-3 control-label">是否质检:</label>
55 <div class="col-sm-8"> 55 <div class="col-sm-8">
56 - <input id="qcCheck" name="qcCheck" class="form-control" type="text" th:field="*{qcCheck}"> 56 + <select id="qcCheck" name="qcCheck" class="form-control" th:field="*{qcCheck}">
  57 + <option value="1">否</option>
  58 + <option value="0">是</option>
  59 + </select>
57 </div> 60 </div>
58 </div> 61 </div>
59 <div class="form-group"> 62 <div class="form-group">
@@ -72,7 +75,7 @@ @@ -72,7 +75,7 @@
72 <label class="col-sm-3 control-label">库存状态:</label> 75 <label class="col-sm-3 control-label">库存状态:</label>
73 <div class="col-sm-8"> 76 <div class="col-sm-8">
74 <select id="inventorySts" name="inventorySts" class="form-control" 77 <select id="inventorySts" name="inventorySts" class="form-control"
75 - th:with="inventoryStatus=${@dict.getType('inventoryStatus')}" th:field="*{inventorySts}"> 78 + th:with="inventoryStatus=${@dict.getType('inventorySts')}" th:field="*{inventorySts}">
76 <option th:each="dict : ${inventoryStatus}" th:text="${dict['dictLabel']}" th:value="${dict['dictValue']}"></option> 79 <option th:each="dict : ${inventoryStatus}" th:text="${dict['dictLabel']}" th:value="${dict['dictValue']}"></option>
77 </select> 80 </select>
78 </div> 81 </div>
@@ -86,7 +89,11 @@ @@ -86,7 +89,11 @@
86 <div class="form-group"> 89 <div class="form-group">
87 <label class="col-sm-3 control-label">定位规则:</label> 90 <label class="col-sm-3 control-label">定位规则:</label>
88 <div class="col-sm-8"> 91 <div class="col-sm-8">
89 - <input id="locatingRule" name="locatingRule" class="form-control" type="text" th:field="*{locatingRule}"> 92 + <select id="locatingRule" name="locatingRule" class="form-control"
  93 + th:with="list=${@FilterConfigDetailService.queryFilterConfigDetail('locationRule')}" th:field="*{locatingRule}">
  94 + <option value="">请选择</option>
  95 + <option th:each="item : ${list}" th:text="${item['description']}" th:value="${item['code']}"></option>
  96 + </select>
90 </div> 97 </div>
91 </div> 98 </div>
92 <div class="form-group"> 99 <div class="form-group">
@@ -101,6 +108,16 @@ @@ -101,6 +108,16 @@
101 <input id="itemNetPrice" name="itemNetPrice" class="form-control" type="text" th:field="*{itemNetPrice}"> 108 <input id="itemNetPrice" name="itemNetPrice" class="form-control" type="text" th:field="*{itemNetPrice}">
102 </div> 109 </div>
103 </div> 110 </div>
  111 + <div class="form-group">
  112 + <label class="col-sm-3 control-label">入库流程:</label>
  113 + <div class="col-sm-8">
  114 + <select id="statusFlowCode" name="statusFlowCode" class="form-control"
  115 + th:with="statusFlowList=${@StatusFlow.flowList('receivingFlow')}" th:field="*{statusFlowCode}">
  116 + <option value="">请选择</option>
  117 + <option th:each="flow : ${statusFlowList}" th:text="${flow['name']}" th:value="${flow['code']}"></option>
  118 + </select>
  119 + </div>
  120 + </div>
104 <!--<div class="form-group">--> 121 <!--<div class="form-group">-->
105 <!--<label class="col-sm-3 control-label">自定义字段1:</label>--> 122 <!--<label class="col-sm-3 control-label">自定义字段1:</label>-->
106 <!--<div class="col-sm-8">--> 123 <!--<div class="col-sm-8">-->
src/main/resources/templates/receipt/receiptHeader/edit.html
@@ -54,9 +54,6 @@ @@ -54,9 +54,6 @@
54 }, 54 },
55 companyCode:{ 55 companyCode:{
56 required:true, 56 required:true,
57 - },  
58 - scheduledArriveDate:{  
59 - required:true,  
60 } 57 }
61 }, 58 },
62 submitHandler: function(form) { 59 submitHandler: function(form) {
src/main/resources/templates/receipt/receiptHeader/receiptHeader.html
@@ -82,12 +82,15 @@ @@ -82,12 +82,15 @@
82 <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.add()" shiro:hasPermission="receipt:receiptHeader:add"> 82 <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.add()" shiro:hasPermission="receipt:receiptHeader:add">
83 <i class="fa fa-plus"></i> 新增 83 <i class="fa fa-plus"></i> 新增
84 </a> 84 </a>
85 - <a class="btn btn-outline btn-default btn-rounded" onclick="submitReview()" shiro:hasPermission="receipt:receiptHeader:add"> 85 + <a class="btn btn-outline btn-default btn-rounded" onclick="submitReview()" shiro:hasPermission="receipt:receiptHeader:approval">
86 <i class="fa fa-fighter-jet"></i> 提交审核 86 <i class="fa fa-fighter-jet"></i> 提交审核
87 </a> 87 </a>
88 - <a class="btn btn-outline btn-primary btn-rounded" onclick="approval()" shiro:hasPermission="receipt:receiptHeader:add"> 88 + <a class="btn btn-outline btn-primary btn-rounded" onclick="approval()" shiro:hasPermission="receipt:receiptHeader:review">
89 <i class="fa fa-level-up"></i> 审核通过 89 <i class="fa fa-level-up"></i> 审核通过
90 </a> 90 </a>
  91 + <a class="btn btn-outline btn-primary btn-rounded" onclick="addPool()" shiro:hasPermission="receipt:receiptHeader:addPool">
  92 + <i class="fa fa-check-circle"></i> 加入订单池
  93 + </a>
91 <a class="btn btn-outline btn-danger btn-rounded" onclick="$.operate.batRemove()" shiro:hasPermission="receipt:receiptHeader:remove"> 94 <a class="btn btn-outline btn-danger btn-rounded" onclick="$.operate.batRemove()" shiro:hasPermission="receipt:receiptHeader:remove">
92 <i class="fa fa-trash-o"></i> 删除 95 <i class="fa fa-trash-o"></i> 删除
93 </a> 96 </a>
@@ -389,7 +392,7 @@ @@ -389,7 +392,7 @@
389 actions.push('<a class="btn btn-info btn-xs ' + editFlag + '" href="#" onclick="arrival(\'' + row.id + '\')" ><i class="fa fa-edit"></i>入库预约</a> '); 392 actions.push('<a class="btn btn-info btn-xs ' + editFlag + '" href="#" onclick="arrival(\'' + row.id + '\')" ><i class="fa fa-edit"></i>入库预约</a> ');
390 } 393 }
391 if (row.firstStatus ==150 || row.lastStatus == 150 ){ 394 if (row.firstStatus ==150 || row.lastStatus == 150 ){
392 - actions.push('<a class="btn btn-info btn-xs ' + editFlag + '" href="#" onclick="$.operate.edit(\'' + row.id + '\')" ><i class="fa fa-edit"></i>到货通知</a> '); 395 + actions.push('<a class="btn btn-info btn-xs ' + editFlag + '" href="#" onclick="arrivalNotice(\'' + row.id + '\')" ><i class="fa fa-edit"></i>到货通知</a> ');
393 } 396 }
394 if (row.firstStatus ==180 || row.lastStatus == 180 ){ 397 if (row.firstStatus ==180 || row.lastStatus == 180 ){
395 actions.push('<a class="btn btn-info btn-xs ' + editFlag + '" href="#" onclick="check(\'' + row.id + '\')" ><i class="fa fa-edit"></i>质检</a> '); 398 actions.push('<a class="btn btn-info btn-xs ' + editFlag + '" href="#" onclick="check(\'' + row.id + '\')" ><i class="fa fa-edit"></i>质检</a> ');
@@ -474,7 +477,17 @@ @@ -474,7 +477,17 @@
474 }, 477 },
475 { 478 {
476 field : 'qcCheck', 479 field : 'qcCheck',
477 - title : '是否质检' 480 + title : '是否质检',
  481 + align : "center",
  482 + formatter: function(value, row, index) {
  483 + var actions = [];
  484 + if (value == 0) {
  485 + actions.push("<span class='badge badge-info'>是</span>");
  486 + } else {
  487 + actions.push("<span class='badge badge-info'>否</span>");
  488 + }
  489 + return actions.join('');
  490 + }
478 }, 491 },
479 { 492 {
480 field : 'projectNo', 493 field : 'projectNo',
@@ -541,8 +554,13 @@ @@ -541,8 +554,13 @@
541 visible:false 554 visible:false
542 }, 555 },
543 { 556 {
  557 + field : 'statusFlowCode',
  558 + title : '流程编码'
  559 + },
  560 + {
544 field : 'isVirtualBom', 561 field : 'isVirtualBom',
545 title : '是否虚拟套件', 562 title : '是否虚拟套件',
  563 + align : "center",
546 formatter: function(value, row, index) { 564 formatter: function(value, row, index) {
547 return $.table.selectDictLabel(isVirtualBoms, value); 565 return $.table.selectDictLabel(isVirtualBoms, value);
548 } 566 }
@@ -807,6 +825,27 @@ @@ -807,6 +825,27 @@
807 var data = { "id": id }; 825 var data = { "id": id };
808 $.operate.submit(url, "post", "json", data); 826 $.operate.submit(url, "post", "json", data);
809 } 827 }
  828 +
  829 + function arrivalNotice(id) {
  830 + var url = prefix+"/arrivalNotice";
  831 + var data = { "id": id };
  832 + $.operate.submit(url, "post", "json", data);
  833 + }
  834 +
  835 + function addPool() {
  836 + var rows=$("#bootstrap-table").bootstrapTable('getSelections');
  837 + if (rows.length == 0) {
  838 + $.modal.alertWarning("请至少选择一条记录");
  839 + return;
  840 + }
  841 + var url = prefix+"/addPool";
  842 + var ids = "";
  843 + for(var i=0; i<rows.length; i++) {
  844 + ids = ids + rows[i].id + ","
  845 + }
  846 + var data = { "ids": ids.substring(0, ids.length-1),"approval": 100 };
  847 + $.operate.submit(url, "post", "json", data);
  848 + }
810 </script> 849 </script>
811 </body> 850 </body>
812 </html> 851 </html>
813 \ No newline at end of file 852 \ No newline at end of file
src/main/resources/templates/receipt/receiving/receiving.html
@@ -189,15 +189,11 @@ @@ -189,15 +189,11 @@
189 updateUrl: prefix + "/edit/{id}", 189 updateUrl: prefix + "/edit/{id}",
190 removeUrl: prefix + "/remove", 190 removeUrl: prefix + "/remove",
191 contentType: "application/x-www-form-urlencoded", 191 contentType: "application/x-www-form-urlencoded",
192 - // search: true, //搜索  
193 - // showRefresh: true,//刷新  
194 - // showToggle:true, //视图切换  
195 clickToSelect: true, 192 clickToSelect: true,
196 - // showColumns:true, //列选择  
197 - // detailView:true,  
198 - // showExport: true, //导出  
199 - // exportDataType: "all", //导出类型basic', 'all', 'selected'.当前页、所有数据、选中数据  
200 modalName: "收货", 193 modalName: "收货",
  194 + onRefresh: function(){
  195 +
  196 + },
201 columns: [ 197 columns: [
202 { 198 {
203 field:'work', 199 field:'work',
@@ -367,6 +363,7 @@ @@ -367,6 +363,7 @@
367 } 363 }
368 localStorage.removeItem("receiving_code"); 364 localStorage.removeItem("receiving_code");
369 } 365 }
  366 +
370 receiving_refresh(); 367 receiving_refresh();
371 368
372 function remove(id) { 369 function remove(id) {
@@ -390,7 +387,18 @@ @@ -390,7 +387,18 @@
390 ids += ","; 387 ids += ",";
391 } 388 }
392 var data = { "ids": ids }; 389 var data = { "ids": ids };
393 - $.operate.submit(url, "post", "json", data); 390 + $.modal.loading("正在处理中,请稍后...");
  391 + var config = {
  392 + url: url,
  393 + type: "post",
  394 + dataType: "json",
  395 + data: data,
  396 + success: function(result) {
  397 + $.operate.ajaxSuccess(result);
  398 + list_receiptInfo($("#code").val());
  399 + }
  400 + };
  401 + $.ajax(config)
394 } 402 }
395 403
396 function cancelPositioning() { 404 function cancelPositioning() {
@@ -406,7 +414,20 @@ @@ -406,7 +414,20 @@
406 ids += ","; 414 ids += ",";
407 } 415 }
408 var data = { "ids": ids }; 416 var data = { "ids": ids };
409 - $.operate.submit(url, "post", "json", data); 417 +
  418 + $.modal.loading("正在处理中,请稍后...");
  419 + var config = {
  420 + url: url,
  421 + type: "post",
  422 + dataType: "json",
  423 + data: data,
  424 + success: function(result) {
  425 + $.operate.ajaxSuccess(result);
  426 + list_receiptInfo($("#code").val());
  427 + }
  428 + };
  429 + $.ajax(config)
  430 +
410 } 431 }
411 432
412 function batRemove() { 433 function batRemove() {
@@ -418,11 +439,22 @@ @@ -418,11 +439,22 @@
418 var url = ctx+"receipt/receiptContainerDetail/remove"; 439 var url = ctx+"receipt/receiptContainerDetail/remove";
419 var ids = ""; 440 var ids = "";
420 for (var i = 0; i<rows.length; i++){ 441 for (var i = 0; i<rows.length; i++){
421 - ids += rows[i].receiptContainerId; 442 + ids += rows[i].id;
422 ids += ","; 443 ids += ",";
423 } 444 }
424 var data = { "ids": ids }; 445 var data = { "ids": ids };
425 - $.operate.submit(url, "post", "json", data); 446 + var config = {
  447 + url: url,
  448 + type: "post",
  449 + dataType: "json",
  450 + data: data,
  451 + success: function(result) {
  452 + $.operate.ajaxSuccess(result);
  453 + list_receiptInfo($("#code").val());
  454 + list_select($("#code").val());
  455 + }
  456 + };
  457 + $.ajax(config)
426 } 458 }
427 </script> 459 </script>
428 </body> 460 </body>