Commit 4a4a19cc48e157ad7c2a0b360f441938eb52b2b3

Authored by xqs
2 parents 3b0ad2e2 7b149a9a

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

Showing 33 changed files with 244 additions and 140 deletions
.idea/workspace.xml
... ... @@ -2,18 +2,17 @@
2 2 <project version="4">
3 3 <component name="ChangeListManager">
4 4 <list default="true" id="baeae966-16bb-4f97-a411-22fe5a65cefd" name="Default Changelist" comment="">
5   - <change afterPath="$PROJECT_DIR$/src/main/resources/templates/check/checkingRegister/checkingRegister.html" afterDir="false" />
6   - <change beforePath="$PROJECT_DIR$/.idea/compiler.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/compiler.xml" afterDir="false" />
7 5 <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
8   - <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkDetail/controller/CheckDetailController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkDetail/controller/CheckDetailController.java" afterDir="false" />
9   - <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkDetail/service/CheckDetailService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/check/checkDetail/service/CheckDetailService.java" afterDir="false" />
10   - <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" />
  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" />
11 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" />
12   - <change beforePath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptHeader/service/ReceiptHeaderService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/huaheng/pc/receipt/receiptHeader/service/ReceiptHeaderService.java" afterDir="false" />
13   - <change beforePath="$PROJECT_DIR$/src/main/resources/templates/check/checkDetail/checkComplete.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/check/checkDetail/checkComplete.html" 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" />
14 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" />
15   - <change beforePath="$PROJECT_DIR$/src/main/resources/templates/check/checkHeader/checkHeader.html" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/templates/check/checkHeader/checkHeader.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" />
16 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" />
17 16 </list>
18 17 <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
19 18 <option name="SHOW_DIALOG" value="false" />
... ... @@ -53,7 +52,7 @@
53 52 <item name="@172.16.29.45" type="feb32156:DbDataSourceImpl" />
54 53 <item name="schemas" type="d4e8921:DatabaseStructure$FamilyGroup" />
55 54 <item name="wms_v2: schema" type="76f4a085:MysqlImplModel$Schema" />
56   - <item name="task_detail: table" type="285a2a93:MysqlImplModel$Table" />
  55 + <item name="receipt_header: table" type="285a2a93:MysqlImplModel$Table" />
57 56 </path>
58 57 <path>
59 58 <item name="Database" type="3277223f:DatabaseStructure$DbRootGroup" />
... ... @@ -92,8 +91,8 @@
92 91 <list>
93 92 <option value="Interface" />
94 93 <option value="Class" />
95   - <option value="HTML File" />
96 94 <option value="Enum" />
  95 + <option value="HTML File" />
97 96 </list>
98 97 </option>
99 98 </component>
... ... @@ -101,6 +100,9 @@
101 100 <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
102 101 </component>
103 102 <component name="ProjectId" id="1QOzUtfkdeRmYuw3MIDHXXMLsFH" />
  103 + <component name="ProjectLevelVcsManager">
  104 + <OptionsSetting value="false" id="Update" />
  105 + </component>
104 106 <component name="PropertiesComponent">
105 107 <property name="DefaultHtmlFileTemplate" value="HTML File" />
106 108 <property name="RequestMappingsPanelOrder0" value="0" />
... ... @@ -220,7 +222,9 @@
220 222 <workItem from="1568094783772" duration="3618000" />
221 223 <workItem from="1568102171954" duration="179000" />
222 224 <workItem from="1568102802104" duration="132000" />
223   - <workItem from="1568108585629" duration="1883000" />
  225 + <workItem from="1568108585629" duration="2016000" />
  226 + <workItem from="1568162278389" duration="3299000" />
  227 + <workItem from="1568170378983" duration="10947000" />
224 228 </task>
225 229 <task id="LOCAL-00001" summary="修改添加物料时使用物料类别生成物料编码">
226 230 <created>1567664306836</created>
... ... @@ -243,7 +247,28 @@
243 247 <option name="project" value="LOCAL" />
244 248 <updated>1568025230030</updated>
245 249 </task>
246   - <option name="localTasksCounter" value="4" />
  250 + <task id="LOCAL-00004" summary="修改质检页面、添加完成质检">
  251 + <created>1568110494128</created>
  252 + <option name="number" value="00004" />
  253 + <option name="presentableId" value="LOCAL-00004" />
  254 + <option name="project" value="LOCAL" />
  255 + <updated>1568110494128</updated>
  256 + </task>
  257 + <task id="LOCAL-00005" summary="修复入库质检请求地址冲突">
  258 + <created>1568162392627</created>
  259 + <option name="number" value="00005" />
  260 + <option name="presentableId" value="LOCAL-00005" />
  261 + <option name="project" value="LOCAL" />
  262 + <updated>1568162392627</updated>
  263 + </task>
  264 + <task id="LOCAL-00006" summary="添加入库单打印">
  265 + <created>1568174134623</created>
  266 + <option name="number" value="00006" />
  267 + <option name="presentableId" value="LOCAL-00006" />
  268 + <option name="project" value="LOCAL" />
  269 + <updated>1568174134623</updated>
  270 + </task>
  271 + <option name="localTasksCounter" value="7" />
247 272 <servers />
248 273 </component>
249 274 <component name="TypeScriptGeneratedFilesManager">
... ... @@ -265,7 +290,9 @@
265 290 <component name="VcsManagerConfiguration">
266 291 <MESSAGE value="修改添加物料时使用物料类别生成物料编码" />
267 292 <MESSAGE value="修改质检页面、添加完成质检" />
268   - <option name="LAST_COMMIT_MESSAGE" value="修改质检页面、添加完成质检" />
  293 + <MESSAGE value="修复入库质检请求地址冲突" />
  294 + <MESSAGE value="添加入库单打印" />
  295 + <option name="LAST_COMMIT_MESSAGE" value="添加入库单打印" />
269 296 </component>
270 297 <component name="XDebuggerManager">
271 298 <breakpoint-manager>
... ... @@ -285,6 +312,16 @@
285 312 <line>45</line>
286 313 <option name="timeStamp" value="9" />
287 314 </line-breakpoint>
  315 + <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" />
  319 + </line-breakpoint>
  320 + <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" />
  324 + </line-breakpoint>
288 325 </breakpoints>
289 326 </breakpoint-manager>
290 327 </component>
... ...
src/main/java/com/huaheng/pc/config/FilterConfigDetail/service/FilterConfigDetailService.java
... ... @@ -15,12 +15,13 @@ import java.util.Map;
15 15 public class FilterConfigDetailService extends ServiceImpl<FilterConfigDetailMapper, FilterConfigDetail> {
16 16  
17 17 /**
18   - * 查询定位自定义sql,供前端页面选择使用
  18 + * 查询入库定位自定义sql,供前端页面选择使用
19 19 * @return
20 20 */
21 21 public List<Map<String, Object>> queryFilterConfigDetail(){
22 22 LambdaQueryWrapper<FilterConfigDetail> lambdaQueryWrapper = Wrappers.lambdaQuery();
23 23 lambdaQueryWrapper.select(FilterConfigDetail::getCode, FilterConfigDetail::getDescription)
  24 + .eq(FilterConfigDetail::getModuleType,"入库")
24 25 .eq(FilterConfigDetail::getWarehouseCode, ShiroUtils.getWarehouseCode());
25 26 return this.listMaps(lambdaQueryWrapper);
26 27 }
... ...
src/main/java/com/huaheng/pc/inventory/inventoryDetail/mapper/InventoryDetailMapper.java
... ... @@ -3,10 +3,13 @@ package com.huaheng.pc.inventory.inventoryDetail.mapper;
3 3 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 4 import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail;
5 5  
  6 +import java.math.BigDecimal;
6 7 import java.util.List;
7 8  
8 9 public interface InventoryDetailMapper extends BaseMapper<InventoryDetail> {
9 10  
10 11 List<InventoryDetail> selectBysql(String sql);
11 12  
  13 + BigDecimal getSumQty(InventoryDetail inventoryDetail);
  14 +
12 15 }
13 16 \ No newline at end of file
... ...
src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailService.java
... ... @@ -6,6 +6,7 @@ import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail;
6 6 import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail;
7 7  
8 8 import java.lang.reflect.InvocationTargetException;
  9 +import java.math.BigDecimal;
9 10 import java.util.List;
10 11  
11 12 public interface InventoryDetailService extends IService<InventoryDetail> {
... ... @@ -18,6 +19,9 @@ public interface InventoryDetailService extends IService&lt;InventoryDetail&gt; {
18 19  
19 20 AjaxResult detailCheckTask (Integer[] ids) throws InvocationTargetException, IllegalAccessException;
20 21  
  22 + //求一种物料的库存之和
  23 + BigDecimal getSumQty(InventoryDetail inventoryDetail);
  24 +
21 25 }
22 26  
23 27  
... ...
src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailServiceImpl.java
... ... @@ -34,6 +34,7 @@ import org.springframework.transaction.annotation.Transactional;
34 34  
35 35 import javax.annotation.Resource;
36 36 import java.lang.reflect.InvocationTargetException;
  37 +import java.math.BigDecimal;
37 38 import java.text.SimpleDateFormat;
38 39 import java.util.*;
39 40  
... ... @@ -233,6 +234,11 @@ public class InventoryDetailServiceImpl extends ServiceImpl&lt;InventoryDetailMappe
233 234 }
234 235  
235 236  
  237 + @Override
  238 + public BigDecimal getSumQty(InventoryDetail inventoryDetail) {
  239 + return inventoryDetailMapper.getSumQty(inventoryDetail);
  240 + }
  241 +
236 242 }
237 243  
238 244  
... ...
src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/service/ReceiptContainerHeaderServiceImpl.java
... ... @@ -184,6 +184,13 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl&lt;ReceiptContai
184 184 if (StringUtils.isEmpty(containerCode))
185 185 throw new ServiceException("容器不能为空");
186 186  
  187 + LambdaQueryWrapper<Container> lambda = Wrappers.lambdaQuery();
  188 + lambda.eq(Container::getCode, containerCode);
  189 + Container container = containerService.getOne(lambda);
  190 + if (container == null){
  191 + throw new ServiceException("该容器编号不存在");
  192 + }
  193 +
187 194 //检查该容器编码是否已存任务
188 195 LambdaQueryWrapper<TaskHeader> lambdaQueryWrapper = Wrappers.lambdaQuery();
189 196 lambdaQueryWrapper.eq(TaskHeader::getContainerCode, containerCode)
... ...
src/main/java/com/huaheng/pc/receipt/receiptHeader/controller/ReceiptHeaderController.java
... ... @@ -82,7 +82,8 @@ public class ReceiptHeaderController extends BaseController {
82 82 .eq(StringUtils.isNotNull(receiptHeader.getFirstStatus()),
83 83 ReceiptHeader::getFirstStatus, receiptHeader.getFirstStatus())
84 84 .eq(StringUtils.isNotNull(receiptHeader.getLastStatus()),
85   - ReceiptHeader::getLastStatus, receiptHeader.getLastStatus());
  85 + ReceiptHeader::getLastStatus, receiptHeader.getLastStatus())
  86 + .orderByDesc(ReceiptHeader::getCreated);
86 87  
87 88 if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){
88 89 /**
... ... @@ -249,8 +250,7 @@ public class ReceiptHeaderController extends BaseController {
249 250 @ApiOperation(value="打印入库单报表", notes="打印入库单报表", httpMethod = "POST")
250 251 @RequiresPermissions("receipt:receiptHeader:check")
251 252 @Log(title = "入库-入库单",operating = "打印入库单报表", action = BusinessType.OTHER)
252   - @PostMapping("/report/{id}")
253   - @ResponseBody
  253 + @GetMapping("/report/{id}")
254 254 public String report(@ApiParam(name = "id", value = "入库头表id")
255 255 @PathVariable("id") Integer id, ModelMap mmap){
256 256 ReceiptHeader receiptHeader = receiptHeaderService.getById(id);
... ...
src/main/java/com/huaheng/pc/receipt/receiving/service/ReceivingService.java
... ... @@ -80,7 +80,7 @@ public class ReceivingService {
80 80 public Boolean position(ReceiptContainerDetail receiptContainerDetail){
81 81 ReceiptContainerHeader receiptContainerHeader = receiptContainerHeaderService.getById(receiptContainerDetail.getReceiptContainerId());
82 82  
83   - //如果入库组盘表中有目标库位说已经指定
  83 + //如果入库组盘表中有目标库位说已经指定
84 84 if (StringUtils.isNotEmpty(receiptContainerHeader.getToLocation())){return true;}
85 85 String locatingRule = receiptContainerHeader.getLocatingRule(); //定位规则
86 86 if (StringUtils.isNotEmpty(locatingRule)){
... ...
src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java
... ... @@ -254,14 +254,14 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl&lt;ShipmentCont
254 254 }
255 255  
256 256 //
257   - if(shipmentContainerHeader.getStatus()<=10){
  257 + if(shipmentContainerHeader.getStatus()>=10 && shipmentContainerHeader.getStatus()<30){
258 258 LambdaQueryWrapper<TaskHeader> taskHeaderLambdaQueryWrapper=Wrappers.lambdaQuery();
259 259 taskHeaderLambdaQueryWrapper.eq(TaskHeader::getWarehouseCode,shipmentContainerHeader.getWarehouseCode())
260 260 .eq(TaskHeader::getInternalTaskType,200)
261 261 .eq(TaskHeader::getAllocationHeadId,shipmentContainerHeader.getId());
262 262 TaskHeader taskHeader=taskHeaderService.getOne(taskHeaderLambdaQueryWrapper);
263 263 if(taskHeader==null){
264   - throw new ServiceException("找不到相应的任务头");
  264 + throw new ServiceException("有相同的组盘头,但找不到相应的任务头");
265 265 }
266 266 TaskDetail taskDetail = new TaskDetail();
267 267 taskDetail.setTaskId(taskHeader.getId());
... ...
src/main/java/com/huaheng/pc/shipment/shipmentDetail/controller/ShipmentDetailController.java
... ... @@ -13,6 +13,8 @@ import com.huaheng.framework.web.domain.AjaxResult;
13 13 import com.huaheng.framework.web.page.PageDomain;
14 14 import com.huaheng.framework.web.page.TableDataInfo;
15 15 import com.huaheng.framework.web.page.TableSupport;
  16 +import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail;
  17 +import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService;
16 18 import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail;
17 19 import com.huaheng.pc.shipment.shipmentDetail.service.ShipmentDetailService;
18 20 import org.apache.shiro.authz.annotation.RequiresPermissions;
... ... @@ -37,8 +39,11 @@ public class ShipmentDetailController extends BaseController
37 39  
38 40 @Autowired
39 41 private ShipmentDetailService shipmentDetailService;
  42 + @Autowired
  43 + private InventoryDetailService inventoryDetailService;
  44 +
  45 +
40 46  
41   -
42 47 @RequiresPermissions("shipment:bill:view")
43 48 @GetMapping("/{shipmentId}/{shipmentCode}")
44 49 public String shipmentDetail(@PathVariable("shipmentId") String shipmentId, @PathVariable("shipmentCode") String shipmentCode,@PathVariable("inventoryStatus") String inventoryStatus, ModelMap mmap)
... ... @@ -79,6 +84,12 @@ public class ShipmentDetailController extends BaseController
79 84 return getMpDataTable(iPage.getRecords(),iPage.getTotal());
80 85 } else {
81 86 List<ShipmentDetail> list = shipmentDetailService.list(lambdaQueryWrapper);
  87 + list.forEach(t->{
  88 + InventoryDetail inventory=new InventoryDetail();
  89 + inventory.setWarehouseCode(t.getWarehouseCode());
  90 + inventory.setMaterialCode(t.getMaterialCode());
  91 + t.setInventoryQty(inventoryDetailService.getSumQty(inventory));
  92 + });
82 93 return getDataTable(list);
83 94 }
84 95 }
... ...
src/main/java/com/huaheng/pc/shipment/shipmentDetail/domain/ShipmentDetail.java
... ... @@ -41,6 +41,10 @@ public class ShipmentDetail implements Serializable {
41 41 @ApiModelProperty(value="货主")
42 42 private String companyCode;
43 43  
  44 +
  45 + @TableField(exist = false)
  46 + private BigDecimal inventoryQty;
  47 +
44 48 /**
45 49 * 出库单号
46 50 */
... ... @@ -1091,4 +1095,13 @@ public class ShipmentDetail implements Serializable {
1091 1095 public void setProcessStamp(String processStamp) {
1092 1096 this.processStamp = processStamp;
1093 1097 }
  1098 +
  1099 +
  1100 + public BigDecimal getInventoryQty() {
  1101 + return inventoryQty;
  1102 + }
  1103 +
  1104 + public void setInventoryQty(BigDecimal inventoryQty) {
  1105 + this.inventoryQty = inventoryQty;
  1106 + }
1094 1107 }
1095 1108 \ No newline at end of file
... ...
src/main/java/com/huaheng/pc/config/wave/controller/WaveController.java renamed to src/main/java/com/huaheng/pc/shipment/wave/controller/WaveController.java
1   -package com.huaheng.pc.config.wave.controller;
  1 +package com.huaheng.pc.shipment.wave.controller;
2 2  
3 3  
4 4 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
... ... @@ -15,11 +15,9 @@ import com.huaheng.framework.web.domain.AjaxResult;
15 15 import com.huaheng.framework.web.page.PageDomain;
16 16 import com.huaheng.framework.web.page.TableDataInfo;
17 17 import com.huaheng.framework.web.page.TableSupport;
18   -import com.huaheng.pc.config.wave.domain.Wave;
19   -import com.huaheng.pc.config.wave.service.WaveService;
  18 +import com.huaheng.pc.shipment.wave.domain.Wave;
  19 +import com.huaheng.pc.shipment.wave.service.WaveService;
20 20 import io.swagger.annotations.Api;
21   -import io.swagger.annotations.ApiOperation;
22   -import io.swagger.annotations.ApiParam;
23 21 import org.apache.shiro.authz.annotation.RequiresPermissions;
24 22 import org.springframework.beans.factory.annotation.Autowired;
25 23 import org.springframework.stereotype.Controller;
... ... @@ -38,15 +36,15 @@ import java.util.List;
38 36  
39 37 @Api(tags={"波次"})
40 38 @Controller
41   -@RequestMapping("/config/wave")
  39 +@RequestMapping("/shipment/wave")
42 40 public class WaveController extends BaseController {
43 41  
44   - private String prefix = "config/wave";
  42 + private String prefix = "shipment/wave";
45 43  
46 44 @Autowired
47 45 private WaveService waveService;
48 46  
49   - @RequiresPermissions("config:wave:view")
  47 + @RequiresPermissions("shipment:wave:view")
50 48 @GetMapping()
51 49 public String wave() {
52 50 return prefix + "/wave";
... ... @@ -55,7 +53,7 @@ public class WaveController extends BaseController {
55 53 /**
56 54 * 查询波次
57 55 */
58   - @RequiresPermissions("config:wave:list")
  56 + @RequiresPermissions("shipment:wave:list")
59 57 @Log(title = "出库-波次", operating="查看波次", action = BusinessType.GRANT)
60 58 @PostMapping("/list")
61 59 @ResponseBody
... ... @@ -99,8 +97,8 @@ public class WaveController extends BaseController {
99 97 /**
100 98 * 新增波次
101 99 */
102   - @RequiresPermissions("config:wave:add")
103   - @Log(title = "配置-波次", operating = "新增波次", action = BusinessType.INSERT)
  100 + @RequiresPermissions("shipment:wave:add")
  101 + @Log(title = "出库-波次", operating = "新增波次", action = BusinessType.INSERT)
104 102 @PostMapping("/add")
105 103 @ResponseBody
106 104 public AjaxResult addSave(Wave wave){
... ... @@ -122,8 +120,8 @@ public class WaveController extends BaseController {
122 120 /**
123 121 * 修改波次
124 122 */
125   - @RequiresPermissions("config:wave:edit")
126   - @Log(title = "通用-波次", operating = "修改波次", action = BusinessType.UPDATE)
  123 + @RequiresPermissions("shipment:wave:edit")
  124 + @Log(title = "出库-波次", operating = "修改波次", action = BusinessType.UPDATE)
127 125 @PostMapping("/edit")
128 126 @ResponseBody
129 127 public AjaxResult editSave(Wave wave) {
... ... @@ -134,8 +132,8 @@ public class WaveController extends BaseController {
134 132 /**
135 133 * 删除波次
136 134 */
137   - @RequiresPermissions("config:wave:remove")
138   - @Log(title = "配置-波次", operating = "删除波次", action = BusinessType.DELETE)
  135 + @RequiresPermissions("shipment:wave:remove")
  136 + @Log(title = "出库-波次", operating = "删除波次", action = BusinessType.DELETE)
139 137 @PostMapping( "/remove")
140 138 @ResponseBody
141 139 public AjaxResult remove(String ids) {
... ...
src/main/java/com/huaheng/pc/config/wave/domain/Wave.java renamed to src/main/java/com/huaheng/pc/shipment/wave/domain/Wave.java
1   -package com.huaheng.pc.config.wave.domain;
  1 +package com.huaheng.pc.shipment.wave.domain;
2 2  
3 3 import com.baomidou.mybatisplus.annotation.IdType;
4 4 import com.baomidou.mybatisplus.annotation.TableField;
... ...
src/main/java/com/huaheng/pc/config/wave/mapper/WaveMapper.java renamed to src/main/java/com/huaheng/pc/shipment/wave/mapper/WaveMapper.java
1   -package com.huaheng.pc.config.wave.mapper;
  1 +package com.huaheng.pc.shipment.wave.mapper;
2 2  
3 3 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4   -import com.huaheng.pc.config.wave.domain.Wave;
  4 +import com.huaheng.pc.shipment.wave.domain.Wave;
5 5  
6 6 public interface WaveMapper extends BaseMapper<Wave> {
7 7 }
8 8 \ No newline at end of file
... ...
src/main/java/com/huaheng/pc/config/wave/service/WaveService.java renamed to src/main/java/com/huaheng/pc/shipment/wave/service/WaveService.java
1   -package com.huaheng.pc.config.wave.service;
  1 +package com.huaheng.pc.shipment.wave.service;
2 2  
3 3 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4   -import com.huaheng.pc.config.wave.domain.Wave;
5   -import com.huaheng.pc.config.wave.mapper.WaveMapper;
  4 +import com.huaheng.pc.shipment.wave.domain.Wave;
  5 +import com.huaheng.pc.shipment.wave.mapper.WaveMapper;
6 6 import org.springframework.stereotype.Service;
7 7  
8 8 @Service
... ...
src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java
... ... @@ -555,18 +555,18 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
555 555 Location location = new Location();
556 556 location.setContainerCode(task.getContainerCode());
557 557 location.setStatus("empty");
558   - LambdaUpdateWrapper<Location> locationLambdaUpdateWrapper = Wrappers.lambdaUpdate(location);
  558 + LambdaUpdateWrapper<Location> locationLambdaUpdateWrapper = Wrappers.lambdaUpdate();
559 559 locationLambdaUpdateWrapper.eq(Location::getCode, task.getToLocation());
560   - if (!locationService.update(locationLambdaUpdateWrapper))
  560 + if (!locationService.update(location,locationLambdaUpdateWrapper))
561 561 throw new ServiceException("更新库位失败");
562 562  
563 563 //修改容器状态和对应的库位
564 564 Container container = new Container();
565 565 container.setLocationCode(task.getToLocation());
566 566 container.setStatus("some");
567   - LambdaUpdateWrapper<Container> containerLambdaUpdateWrapper = Wrappers.lambdaUpdate(container);
  567 + LambdaUpdateWrapper<Container> containerLambdaUpdateWrapper = Wrappers.lambdaUpdate();
568 568 containerLambdaUpdateWrapper.eq(Container::getCode, task.getContainerCode());
569   - if (!containerService.update(containerLambdaUpdateWrapper)){
  569 + if (!containerService.update(container, containerLambdaUpdateWrapper)){
570 570 throw new ServiceException("更新容器失败");
571 571 }
572 572 //修改组盘表状态为20
... ... @@ -580,33 +580,23 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
580 580 if (! receiptContainerDetailService.update(receiptContainerDetail, receiptContainerDetailLambdaUpdateWrapper))
581 581 throw new ServiceException("更新组盘状态失败");
582 582  
583   - if (task.getInternalTaskType()==100){
584   - //修改入库明细
585   - ReceiptDetail receiptDetail = receiptDetailService.queryflow(receiptDetailService.getById(DataUtils.getInteger(map.get("receiptDetailId"))));
586   - if (!receiptDetailService.updateById(receiptDetail)){
587   - throw new ServiceException("更新状态失败");
588   - }
589   - receiptDetailService.updateReceiptHeaderLastStatus(receiptDetail.getReceiptId());
590   - }
591   -
592   - //修改出库单明细
593   -// if (task.getInternalTaskType()==200){
594   -//// LambdaQueryWrapper<TaskDetail> taskDetailLambdaQueryWrapper = Wrappers.lambdaQuery();
595   -//// taskDetailLambdaQueryWrapper.eq(TaskDetail::getTaskId,task.getId());
596   -//// List<TaskDetail> taskDetailList = taskDetailService.list(taskDetailLambdaQueryWrapper);
597   -//
598   -//// for (TaskDetail taskDeatails: taskDetailList) {
599   -//// LambdaQueryWrapper<ShipmentDetail> shipmentDetailLambdaQueryWrapper = Wrappers.lambdaQuery();
600   -//// shipmentDetailLambdaQueryWrapper.eq(ShipmentDetail::getId,taskDeatails.getBillDetailId());
601   -////
602   -//// ShipmentHeader shipmentHeader =new ShipmentHeader();
603   -//// shipmentHeader.setId(shipmentDetailService.getOne(shipmentDetailLambdaQueryWrapper).getShipmentId());
604   -//// shipmentHeader.setFirstStatus(100);
605   -//// shipmentHeader.setLastStatus(100);
606   -//// shipmentHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
607   -//// shipmentHeader.setLastUpdated(new Date());
608   -//// shipmentHeaderService.updateById(shipmentHeader);
609   -//// }
  583 + //修改入库单状态
  584 + ReceiptHeader receiptHeader = new ReceiptHeader();
  585 + receiptHeader.setFirstStatus(300);
  586 + receiptHeader.setLastStatus(300);
  587 + receiptHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
  588 + receiptHeader.setLastUpdated(new Date());
  589 + LambdaUpdateWrapper<ReceiptHeader> receiptHeaderLambdaUpdateWrapper = Wrappers.lambdaUpdate();
  590 + receiptHeaderLambdaUpdateWrapper.eq(ReceiptHeader::getId,DataUtils.getInteger(map.get("receiptId")));
  591 + if (! receiptHeaderService.update(receiptHeader, receiptHeaderLambdaUpdateWrapper))
  592 + throw new ServiceException("更新入库状态失败");
  593 +// if (task.getInternalTaskType()==100){
  594 +// //修改入库明细
  595 +// ReceiptDetail receiptDetail = receiptDetailService.queryflow(receiptDetailService.getById(DataUtils.getInteger(map.get("receiptDetailId"))));
  596 +// if (!receiptDetailService.updateById(receiptDetail)){
  597 +// throw new ServiceException("更新状态失败");
  598 +// }
  599 +// receiptDetailService.updateReceiptHeaderLastStatus(receiptDetail.getReceiptId());
610 600 // }
611 601  
612 602  
... ...
src/main/resources/mybatis/inventory/InventoryDetailMapper.xml
... ... @@ -59,4 +59,9 @@
59 59 <select id="selectBysql" parameterType="String" resultType="com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail">
60 60 ${value}
61 61 </select>
  62 +
  63 +
  64 + <select id="getSumQty" resultType="java.math.BigDecimal">
  65 + SELECT ifnull(sum(qty),0) qty from inventory_detail where materialCode=#{materialCode} and warehouseCode=#{warehouseCode}
  66 + </select>
62 67 </mapper>
63 68 \ No newline at end of file
... ...
src/main/resources/mybatis/config/WaveMapper.xml renamed to src/main/resources/mybatis/shipment/WaveMapper.xml
1 1 <?xml version="1.0" encoding="UTF-8"?>
2 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3   -<mapper namespace="com.huaheng.pc.config.wave.mapper.WaveMapper">
4   - <resultMap id="BaseResultMap" type="com.huaheng.pc.config.wave.domain.Wave">
  3 +<mapper namespace="com.huaheng.pc.shipment.wave.mapper.WaveMapper">
  4 + <resultMap id="BaseResultMap" type="com.huaheng.pc.shipment.wave.domain.Wave">
5 5 <!--@mbg.generated-->
6 6 <id column="id" jdbcType="INTEGER" property="id" />
7 7 <result column="warehouseCode" jdbcType="VARCHAR" property="warehouseCode" />
... ...
src/main/resources/templates/check/checkDetail/checkDetail.html
... ... @@ -151,7 +151,7 @@
151 151 align: 'center',
152 152 formatter: function(value, row, index) {
153 153 var actions = [];
154   - if (row.status == 10) {
  154 + if (row.status == 0) {
155 155 actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="complete(\'' + row.id + '\')"><i class="fa fa-edit"></i>质检完成</a> ');
156 156 }
157 157 actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
... ...
src/main/resources/templates/config/waveFlowHeader/add.html
... ... @@ -4,7 +4,7 @@
4 4 <head th:include="include :: header"></head>
5 5 <body class="white-bg">
6 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-waveFlowHeader-add">
8 8 <div class="form-group">
9 9 <label class="col-sm-3 control-label">流程名称:</label>
10 10 <div class="col-sm-8">
... ... @@ -21,8 +21,8 @@
21 21 </div>
22 22 <div th:include="include::footer"></div>
23 23 <script type="text/javascript">
24   - var prefix = ctx + "config/filterConfigHeader";
25   - $("#form-filterConfigHeader-add").validate({
  24 + var prefix = ctx + "config/waveFlowHeader";
  25 + $("#form-waveFlowHeader-add").validate({
26 26 rules: {
27 27 code: {
28 28 required: true,
... ... @@ -30,7 +30,7 @@
30 30 },
31 31 submitHandler: function (form) {
32 32 // $.operate.save(prefix + "/add", $('#form-locationType-add').serialize());
33   - var tableValue = $.common.getTableValue("#form-filterConfigHeader-add");
  33 + var tableValue = $.common.getTableValue("#form-waveFlowHeader-add");
34 34 $.operate.save(prefix + "/add", tableValue);
35 35 }
36 36 });
... ...
src/main/resources/templates/receipt/receiptDetail/add.html
... ... @@ -87,18 +87,18 @@
87 87 <input id="locatingRule" name="locatingRule" class="form-control" type="text">
88 88 </div>
89 89 </div>
90   - <div class="form-group">
91   - <label class="col-sm-3 control-label">标价:</label>
92   - <div class="col-sm-8">
93   - <input id="itemListPrice" name="itemListPrice" class="form-control" type="text">
94   - </div>
95   - </div>
96   - <div class="form-group">
97   - <label class="col-sm-3 control-label">净价:</label>
98   - <div class="col-sm-8">
99   - <input id="itemNetPrice" name="itemNetPrice" class="form-control" type="text">
100   - </div>
101   - </div>
  90 +<!-- <div class="form-group">-->
  91 +<!-- <label class="col-sm-3 control-label">标价:</label>-->
  92 +<!-- <div class="col-sm-8">-->
  93 +<!-- <input id="itemListPrice" name="itemListPrice" class="form-control" type="text">-->
  94 +<!-- </div>-->
  95 +<!-- </div>-->
  96 +<!-- <div class="form-group">-->
  97 +<!-- <label class="col-sm-3 control-label">净价:</label>-->
  98 +<!-- <div class="col-sm-8">-->
  99 +<!-- <input id="itemNetPrice" name="itemNetPrice" class="form-control" type="text">-->
  100 +<!-- </div>-->
  101 +<!-- </div>-->
102 102 <!--<div class="form-group">-->
103 103 <!--<label class="col-sm-3 control-label">自定义字段1:</label>-->
104 104 <!--<div class="col-sm-8">-->
... ... @@ -139,6 +139,10 @@
139 139 materialCode:{
140 140 required:true
141 141 },
  142 + totalQty:{
  143 + required:true,
  144 + number: true
  145 + }
142 146 },
143 147 submitHandler: function(form) {
144 148 var tableValue = $("#form-receiptDetail-add").serialize();
... ...
src/main/resources/templates/receipt/receiptDetail/receiptDetail.html
... ... @@ -37,7 +37,7 @@
37 37 <a class="btn btn-outline btn-success btn-rounded" onclick="add()" shiro:hasPermission="receipt:receiptDetail:add">
38 38 <i class="fa fa-plus"></i> 新增
39 39 </a>
40   - <a class="btn btn-outline btn-success btn-rounded" onclick="add()" shiro:hasPermission="receipt:receiptDetail:add">
  40 + <a class="btn btn-outline btn-success btn-rounded" onclick="batchArrival()" shiro:hasPermission="receipt:receiptDetail:arrival">
41 41 <i class="fa fa-plus"></i> 到货
42 42 </a>
43 43 <a class="btn btn-outline btn-danger btn-rounded" onclick="$.operate.batRemove()" shiro:hasPermission="receipt:receiptDetail:remove">
... ... @@ -55,6 +55,7 @@
55 55 var editFlag = [[${@permission.hasPermi('receipt:receiptDetail:edit')}]];
56 56 var removeFlag = [[${@permission.hasPermi('receipt:receiptDetail:remove')}]];
57 57 var approvalFlag = [[${@permission.hasPermi('receipt:receiptHeader:approval')}]]
  58 + var arrivalFlag = [[${@permission.hasPermi('receipt:receiptDetail:arrival')}]]
58 59 var prefix = ctx + "receipt/receiptDetail";
59 60 var datas = [[${@dict.getType('isVirtualBom')}]];
60 61 $(function() {
... ... @@ -231,8 +232,8 @@
231 232 actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
232 233 actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-trash-o"></i>删除</a>');
233 234 }
234   - if (row.processStamp >120 && row.processStamp < 200){
235   - actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="arrival(\'' + row.id + '\')"><i class="fa fa-edit"></i>到货</a> ');
  235 + if (row.processStamp >120 && row.processStamp < 180){
  236 + actions.push('<a class="btn btn-success btn-xs ' + arrivalFlag + '" href="#" onclick="arrival(\'' + row.id + '\')"><i class="fa fa-edit"></i>到货</a> ');
236 237 }
237 238 return actions.join('');
238 239 }
... ... @@ -263,6 +264,17 @@
263 264 var data = { "ids": id };
264 265 $.operate.submit(url, "post", "json", data);
265 266 }
  267 +
  268 + function batchArrival() {
  269 + var rows = $.common.isEmpty($.table._option.id) ? $.table.selectFirstColumns() : $.table.selectColumns($.table._option.id);
  270 + if (rows.length == 0) {
  271 + $.modal.alertWarning("请至少选择一条记录");
  272 + return;
  273 + }
  274 + var url = prefix+"/arrival";
  275 + var data = { "ids": rows.join() };
  276 + $.operate.submit(url, "post", "json", data);
  277 + }
266 278 </script>
267 279 </body>
268 280 </html>
269 281 \ No newline at end of file
... ...
src/main/resources/templates/receipt/receiptHeader/receiptHeader.html
... ... @@ -57,6 +57,22 @@
57 57 shiro:hasPermission="receipt:receiptHeader:add">
58 58 <i class="fa fa-plus"></i> 新增
59 59 </a>
  60 + <a class="btn btn-outline btn-default btn-rounded" onclick="$.operate.add()"
  61 + shiro:hasPermission="receipt:receiptHeader:add">
  62 + <i class="fa fa-space-shuttle"></i> 提交审核
  63 + </a>
  64 + <a class="btn btn-outline btn-primary btn-rounded" onclick="$.operate.add()"
  65 + shiro:hasPermission="receipt:receiptDetail:approval">
  66 + <i class="fa fa-plus"></i> 审核通过
  67 + </a>
  68 + <a class="btn btn-outline btn-warning btn-rounded" onclick="$.operate.add()"
  69 + shiro:hasPermission="receipt:receiptDetail:approval">
  70 + <i class="fa fa-reply"></i> 驳回
  71 + </a>
  72 + <a class="btn btn-outline btn-danger btn-rounded" onclick="$.operate.add()"
  73 + shiro:hasPermission="receipt:receiptDetail:approval">
  74 + <i class="fa fa-plus"></i> 作废
  75 + </a>
60 76 <a class="btn btn-outline btn-danger btn-rounded" onclick="$.operate.batRemove()"
61 77 shiro:hasPermission="receipt:receiptHeader:remove">
62 78 <i class="fa fa-trash-o"></i> 删除
... ... @@ -145,7 +161,8 @@
145 161 },
146 162 {
147 163 field : 'scheduledArriveDate',
148   - title : '预计到达日期'
  164 + title : '预计到达日期',
  165 + sortable:true
149 166 },
150 167 {
151 168 field : 'actualArriveDate',
... ... @@ -269,13 +286,13 @@
269 286 actions.push('<a class="btn btn-info btn-xs ' + editFlag + '" href="#" onclick="$.operate.edit(\'' + row.id + '\')" ><i class="fa fa-edit"></i>编辑</a> ');
270 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>');
271 288 }
272   - if ((row.firstStatus >= 100 && row.firstStatus < 200) | (row.lastStatus >= 100 && row.firstStatus < 200)){
  289 + if ((row.firstStatus >= 100 && row.firstStatus < 180) | (row.lastStatus >= 100 && row.firstStatus < 180)){
273 290 actions.push('<a class="btn btn-info btn-xs ' + editFlag + '" href="#" onclick="arrival(\'' + row.id + '\')" ><i class="fa fa-edit"></i>入库预约</a> ');
274 291 }
275 292 if (row.firstStatus == 180 || row.lastStatus == 180) {
276 293 actions.push('<a class="btn btn-info btn-xs ' + checkFlag + '" href="#" onclick="check(\'' + row.id + '\')" ><i class="fa fa-edit"></i>入库质检</a> ');
277 294 }
278   - if (row.lastStatus <= 200){
  295 + if ((row.lastStatus >= 100 && row.lastStatus <200) || (row.firstStatus>=100 && row.firstStatus<200)){
279 296 actions.push('<a class="btn btn-primary btn-xs to-receive" ' +addFlag+ ' onclick="Toreceiving(\''+ row.code + '\')"><i class="fa fa-cart-plus"></i>收货</a> ');
280 297 }
281 298 if (row.lastStatus >= 900){
... ...
src/main/resources/templates/receipt/receiptHeader/report.html
... ... @@ -16,7 +16,6 @@
16 16 </tr>
17 17 <tr style="padding:15px 0 5px 0;border-bottom:1px solid #606060">
18 18 <td colspan="7">
19   - <div style="width:40%; float:left;">供应商编码:<span th:text="${receiptHeader['supplierCode']}"></span></div>
20 19 <div style="width:50%; float:right; text-align:right">
21 20 <span>明细条数:<span th:text="${receiptHeader['totalLines']}"></span></span>
22 21 <span style="padding-left:20px;">明细总数:<span th:text="${receiptHeader['totalQty']}"></span></span>
... ... @@ -40,8 +39,8 @@
40 39 <td th:text="${row.materialName}"></td>
41 40 <td th:text="${row.batch}"></td>
42 41 <td th:text="${row.lot}"></td>
43   - <td th:text="${row.project}"></td>
44   - <td th:text="${row.qty}"></td>
  42 + <td th:text="${row.projectNo}"></td>
  43 + <td th:text="${row.totalQty}"></td>
45 44 <td><img></img></td>
46 45 </tr>
47 46 </tbody>
... ...
src/main/resources/templates/receipt/receiving/add.html
... ... @@ -71,23 +71,11 @@
71 71 <label class="col-sm-3 control-label">定位规则:</label>
72 72 <div class="col-sm-8">
73 73 <select id="locatingRule" name="locatingRule" class="form-control" th:with="list=${@FilterConfigDetailService.queryFilterConfigDetail()}">
  74 + <option value="">请选择</option>
74 75 <option th:each="item : ${list}" th:text="${item['description']}" th:value="${item['code']}"></option>
75 76 </select>
76 77 </div>
77 78 </div>
78   - <div class="form-group">
79   - <label class="col-sm-3 control-label">入库方式:</label>
80   - <div class="col-sm-8">
81   - <div class="radio radio-info radio-inline" style="transform: scale(1.3, 1.3);">
82   - <input type="radio" id="taskType1" name="taskType" value="100" checked="checked" class="radio_select">
83   - <label for="taskType1">整盘入库</label>
84   - </div>
85   - <div class="radio radio-danger radio-inline " style="transform: scale(1.3, 1.3);">
86   - <input type="radio" id="taskType2" name="taskType" value="200">
87   - <label for="taskType2">补充入库</label>
88   - </div>
89   - </div>
90   - </div>
91 79 <div class="form-group">
92 80 <div class="form-control-static col-sm-offset-9">
93 81 <button type="submit" class="btn btn-primary">提交</button>
... ... @@ -107,6 +95,13 @@
107 95 },
108 96 receiptContainerCode:{
109 97 required:true
  98 + },
  99 + qty:{
  100 + required:true,
  101 + number:true
  102 + },
  103 + containerCode:{
  104 + required:true
110 105 }
111 106 },
112 107 submitHandler: function(form) {
... ... @@ -121,7 +116,7 @@
121 116 "taskType": $("input[name='taskType']:checked").val(),
122 117 "locationCode": $("input[name='locationCode']").val(),
123 118 "qty": $("input[name='qty']").val(),
124   - "locatingRule":$("input[name='locatingRule']").val()
  119 + "locatingRule":$("#locatingRule option:selected").val()
125 120 },
126 121 async : false,
127 122 error : function(request) {
... ...
src/main/resources/templates/shipment/shipmentDetail/add.html
... ... @@ -131,7 +131,7 @@
131 131 required:false,
132 132 digits:true
133 133 },
134   - qty:{
  134 + shipQty:{
135 135 required:true,
136 136 min:0
137 137 },
... ...
src/main/resources/templates/shipment/shipmentHeader/add.html
... ... @@ -22,7 +22,7 @@
22 22 </div>
23 23 </div>
24 24 <div class="form-group">
25   - <label class="col-sm-3 control-label">erp订单号:</label>
  25 + <label class="col-sm-3 control-label">上游订单号:</label>
26 26 <div class="col-sm-8">
27 27 <input id="referCode" name="referCode" class="form-control" type="text">
28 28 </div>
... ...
src/main/resources/templates/shipment/shipmentHeader/edit.html
... ... @@ -21,7 +21,7 @@
21 21 </div>
22 22 </div>
23 23 <div class="form-group">
24   - <label class="col-sm-3 control-label">erp订单号:</label>
  24 + <label class="col-sm-3 control-label">上游订单号:</label>
25 25 <div class="col-sm-8">
26 26 <input id="referCode" name="referCode" th:field="*{referCode}" class="form-control" type="text" readonly="readonly">
27 27 </div>
... ...
src/main/resources/templates/shipment/shipmentHeader/report.html
... ... @@ -16,7 +16,7 @@
16 16 </tr>
17 17 <tr style="padding:15px 0 5px 0;border-bottom:1px solid #606060">
18 18 <td colspan="7">
19   - <div style="width:40%; float:left;">客户编码:<span th:text="${shipmentHeader['shipTo']}"></span></div>
  19 + <div style="width:40%; float:left;">客户名称:<span th:text="${shipmentHeader['customerName']}"></span></div>
20 20 <div style="width:50%; float:right; text-align:right">
21 21 <span>明细条数:<span th:text="${shipmentHeader['totalLines']}"></span></span>
22 22 <span style="padding-left:20px;">明细总数:<span th:text="${shipmentHeader['totalQty']}"></span></span>
... ... @@ -27,9 +27,10 @@
27 27 <tr>
28 28 <th width="18%">存货编码</th>
29 29 <th width="22%">物料名称</th>
30   - <th width="10%">批次</th>
31   - <th width="9%">批号</th>
32   - <th width="11%">项目号</th>
  30 + <th width="15%">物料规格</th>
  31 + <th width="5%">批次</th>
  32 + <th width="5%">批号</th>
  33 + <th width="5%">项目号</th>
33 34 <th width="9%">数量</th>
34 35 <th width="21%">条码</th>
35 36 </tr>
... ... @@ -38,10 +39,11 @@
38 39 <tr th:each="row,rowStat : ${details}">
39 40 <td th:text="${row.materialCode}"></td>
40 41 <td th:text="${row.materialName}"></td>
  42 + <td th:text="${row.materialSpec}"></td>
41 43 <td th:text="${row.batch}"></td>
42 44 <td th:text="${row.lot}"></td>
43   - <td th:text="${row.project}"></td>
44   - <td th:text="${row.qty}"></td>
  45 + <td th:text="${row.projectNo}"></td>
  46 + <td th:text="${row.shipQty}"></td>
45 47 <td><img></img></td>
46 48 </tr>
47 49 </tbody>
... ...
src/main/resources/templates/shipment/shipmentHeader/shipmentHeader.html
... ... @@ -35,10 +35,10 @@
35 35 </select>
36 36 </li>
37 37 <li>
38   - erp单号:<input type="text" name="referCode"/>
  38 + 上游单号:<input type="text" name="referCode"/>
39 39 </li>
40 40 <li>
41   - erp订单类型:<input type="text" name="referCodeType"/>
  41 + 上游订单类型:<input type="text" name="referCodeType"/>
42 42 </li>
43 43 <li>
44 44 客户编码:<input type="text" name="sourceCode"/>
... ... @@ -87,10 +87,10 @@
87 87 shiro:hasPermission="shipment:bill:remove">
88 88 <i class="fa fa-trash-o"></i> 删除
89 89 </a>
90   - <a class="btn btn-outline btn-success btn-rounded" onclick="analysis()"
91   - shiro:hasPermission="shipment:bill:analysis">
92   - <i class="fa fa-plus"></i> 订单分析
93   - </a>
  90 + <!--<a class="btn btn-outline btn-success btn-rounded" onclick="analysis()"-->
  91 + <!--shiro:hasPermission="shipment:bill:analysis">-->
  92 + <!--<i class="fa fa-plus"></i> 订单分析-->
  93 + <!--</a>-->
94 94 </div>
95 95 <table id="bootstrap-table" data-mobile-responsive="true" class="table table-bordered table-hover"></table>
96 96 </div>
... ... @@ -114,7 +114,7 @@
114 114 <li>仓库编码:<input type="text" name="shipmentWarehouseCode" id="shipmentWarehouseCode"></li>
115 115 <input type="hidden" name="shipmentCompanyId" id="shipmentCompanyId">
116 116 <li>货主:<input type="text" name="shipmentCompanyCode" id="shipmentCompanyCode"></li>
117   - <li>erp订单号:<input type="text" name="shipmentSourceCode" id="shipmentSourceCode"></li>
  117 + <li>上游订单号:<input type="text" name="shipmentSourceCode" id="shipmentSourceCode"></li>
118 118 <li>订单平台:<input type="text" name="shipmentSourcePlatform" id="shipmentSourcePlatform"></li>
119 119 <li>出库单类型:<input type="text" name="shipmentType" id = "shipmentType"></li>
120 120 <li>总数量:<input type="text" name="shipmentTotalQty" id="shipmentTotalQty"></li>
... ... @@ -247,12 +247,12 @@
247 247 },
248 248 {
249 249 field: 'referCode',
250   - title: 'erp订单号',
  250 + title: '上游订单号',
251 251 sortable:true
252 252 },
253 253 {
254 254 field: 'referCodeType',
255   - title: 'erp订单内部号',
  255 + title: '上游订单内部号',
256 256 sortable:true,
257 257 visible:false
258 258 },
... ...
src/main/resources/templates/config/wave/add.html renamed to src/main/resources/templates/shipment/wave/add.html
... ... @@ -146,7 +146,7 @@
146 146 </div>
147 147 <div th:include="include::footer"></div>
148 148 <script type="text/javascript">
149   - var prefix = ctx + "config/wave";
  149 + var prefix = ctx + "shipment/wave";
150 150 $("#form-wave-add").validate({
151 151 rules:{
152 152 waveName:{
... ...
src/main/resources/templates/config/wave/edit.html renamed to src/main/resources/templates/shipment/wave/edit.html
... ... @@ -147,7 +147,7 @@
147 147 </div>
148 148 <div th:include="include::footer"></div>
149 149 <script type="text/javascript">
150   - var prefix = ctx + "config/wave";
  150 + var prefix = ctx + "shipment/wave";
151 151 $("#form-wave-edit").validate({
152 152 rules:{
153 153 waveName:{
... ...
src/main/resources/templates/config/wave/wave.html renamed to src/main/resources/templates/shipment/wave/wave.html
... ... @@ -30,10 +30,10 @@
30 30 </form>
31 31 </div>
32 32 <div class="btn-group hidden-xs" id="toolbar" role="group">
33   - <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.add()" shiro:hasPermission="config:wave:add">
  33 + <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.add()" shiro:hasPermission="shipment:wave:add">
34 34 <i class="fa fa-plus"></i> 新增
35 35 </a>
36   - <a class="btn btn-outline btn-danger btn-rounded" onclick="$.operate.batRemove()" shiro:hasPermission="config:wave:remove">
  36 + <a class="btn btn-outline btn-danger btn-rounded" onclick="$.operate.batRemove()" shiro:hasPermission="shipment:wave:remove">
37 37 <i class="fa fa-trash-o"></i> 删除
38 38 </a>
39 39 </div>
... ... @@ -45,9 +45,9 @@
45 45 </div>
46 46 <div th:include="include :: footer"></div>
47 47 <script th:inline="javascript">
48   - var editFlag = [[${@permission.hasPermi('config:wave:edit')}]];
49   - var removeFlag = [[${@permission.hasPermi('config:wave:remove')}]];
50   - var prefix = ctx + "config/wave";
  48 + var editFlag = [[${@permission.hasPermi('shipment:wave:edit')}]];
  49 + var removeFlag = [[${@permission.hasPermi('shipment:wave:remove')}]];
  50 + var prefix = ctx + "shipment/wave";
51 51 var datas = [[${@dict.getType('sys_normal_disable')}]];
52 52 $(function() {
53 53 var options = {
... ...