Commit 9b5aefe32e46ff44a1fc0cb616d2d7000a7d8610

Authored by mahuandong
2 parents dfc929f6 48d04c07

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

# Conflicts:
#	.idea/workspace.xml
Showing 34 changed files with 788 additions and 836 deletions
.idea/WMSV1.iml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<module type="JAVA_MODULE" version="4">
  3 + <component name="FacetManager">
  4 + <facet type="Spring" name="Spring">
  5 + <configuration />
  6 + </facet>
  7 + <facet type="web" name="Web">
  8 + <configuration>
  9 + <webroots />
  10 + <sourceRoots>
  11 + <root url="file://$MODULE_DIR$/src/main/java" />
  12 + <root url="file://$MODULE_DIR$/src/main/resources" />
  13 + </sourceRoots>
  14 + </configuration>
  15 + </facet>
  16 + </component>
  17 +</module>
0 18 \ No newline at end of file
... ...
src/main/java/com/huaheng/pc/config/shipmentPreference/controller/ShipmentPreferenceController.java
... ... @@ -114,7 +114,7 @@ public class ShipmentPreferenceController extends BaseController {
114 114 */
115 115 @ApiOperation(value="修改出库首选项", notes="修改出库首选项", httpMethod = "POST")
116 116 @RequiresPermissions("config:shipmentPreference:edit")
117   - @Log(title = "通用-出库首选项", operating = "修改出库首选项", action = BusinessType.UPDATE)
  117 + @Log(title = "配置-出库首选项", operating = "修改出库首选项", action = BusinessType.UPDATE)
118 118 @PostMapping("/edit")
119 119 @ResponseBody
120 120 public AjaxResult editSave(
... ... @@ -128,7 +128,7 @@ public class ShipmentPreferenceController extends BaseController {
128 128 */
129 129 @ApiOperation(value="删除出库首选项", notes="根据id批量删除入库首选项,参数示例1,2,3", httpMethod = "POST")
130 130 @RequiresPermissions("config:shipmentPreference:remove")
131   - @Log(title = "通用-出库首选项", operating = "删除出库首选项", action = BusinessType.DELETE)
  131 + @Log(title = "配置-出库首选项", operating = "删除出库首选项", action = BusinessType.DELETE)
132 132 @PostMapping( "/remove")
133 133 @ResponseBody
134 134 public AjaxResult remove(String ids) {
... ...
src/main/java/com/huaheng/pc/shipment/wave/controller/WaveController.java renamed to src/main/java/com/huaheng/pc/config/wave/controller/WaveController.java
1   -package com.huaheng.pc.shipment.wave.controller;
  1 +package com.huaheng.pc.config.wave.controller;
2 2  
3 3  
4 4 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
5 5 import com.baomidou.mybatisplus.core.metadata.IPage;
6 6 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
7 7 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  8 +import com.huaheng.common.support.Convert;
8 9 import com.huaheng.common.utils.StringUtils;
9 10 import com.huaheng.common.utils.security.ShiroUtils;
10 11 import com.huaheng.framework.aspectj.lang.annotation.Log;
11 12 import com.huaheng.framework.aspectj.lang.constant.BusinessType;
12 13 import com.huaheng.framework.web.controller.BaseController;
  14 +import com.huaheng.framework.web.domain.AjaxResult;
13 15 import com.huaheng.framework.web.page.PageDomain;
14 16 import com.huaheng.framework.web.page.TableDataInfo;
15 17 import com.huaheng.framework.web.page.TableSupport;
16   -import com.huaheng.pc.shipment.wave.domain.Wave;
17   -import com.huaheng.pc.shipment.wave.service.WaveService;
  18 +import com.huaheng.pc.config.wave.domain.Wave;
  19 +import com.huaheng.pc.config.wave.service.WaveService;
18 20 import io.swagger.annotations.Api;
  21 +import io.swagger.annotations.ApiOperation;
  22 +import io.swagger.annotations.ApiParam;
19 23 import org.apache.shiro.authz.annotation.RequiresPermissions;
20 24 import org.springframework.beans.factory.annotation.Autowired;
21 25 import org.springframework.stereotype.Controller;
22   -import org.springframework.web.bind.annotation.GetMapping;
23   -import org.springframework.web.bind.annotation.PostMapping;
24   -import org.springframework.web.bind.annotation.RequestMapping;
25   -import org.springframework.web.bind.annotation.ResponseBody;
  26 +import org.springframework.ui.ModelMap;
  27 +import org.springframework.web.bind.annotation.*;
26 28  
  29 +import java.util.ArrayList;
27 30 import java.util.List;
28 31  
29 32 /**
... ... @@ -50,7 +53,7 @@ public class WaveController extends BaseController {
50 53 }
51 54  
52 55 /**
53   - * 查询订单分析结果
  56 + * 查询波次
54 57 */
55 58 @RequiresPermissions("shipment:wave:list")
56 59 @Log(title = "出库-波次", operating="查看波次", action = BusinessType.GRANT)
... ... @@ -63,14 +66,14 @@ public class WaveController extends BaseController {
63 66 Integer pageNum = pageDomain.getPageNum();
64 67 Integer pageSize = pageDomain.getPageSize();
65 68  
66   - lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin),Wave::getCreated, createdBegin)
  69 + lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin), Wave::getCreated, createdBegin)
67 70 .le(StringUtils.isNotEmpty(createdEnd), Wave::getCreated, createdEnd)
68 71 .eq(Wave::getWarehouseCode, ShiroUtils.getWarehouseCode())
69 72 .eq(StringUtils.isNotEmpty(wave.getWaveMode()
70   - ),Wave::getWaveMode,wave.getWaveMode())
71   - .eq(wave.getStatus()!=null,Wave::getStatus,wave.getStatus())
  73 + ), Wave::getWaveMode,wave.getWaveMode())
  74 + .eq(wave.getStatus()!=null, Wave::getStatus,wave.getStatus())
72 75 .like(StringUtils.isNotEmpty(wave.getWaveName()
73   - ),Wave::getWaveName,wave.getWaveName());
  76 + ), Wave::getWaveName,wave.getWaveName());
74 77  
75 78 if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){
76 79 /**
... ... @@ -85,5 +88,66 @@ public class WaveController extends BaseController {
85 88 }
86 89 }
87 90  
  91 + /**
  92 + * 新增波次
  93 + */
  94 + @GetMapping("/add")
  95 + public String add() {
  96 + return prefix + "/add";
  97 + }
  98 +
  99 + /**
  100 + * 新增波次
  101 + */
  102 + @RequiresPermissions("config:wave:add")
  103 + @Log(title = "配置-波次", operating = "新增波次", action = BusinessType.INSERT)
  104 + @PostMapping("/add")
  105 + @ResponseBody
  106 + public AjaxResult addSave(Wave wave){
  107 + wave.setWarehouseCode(ShiroUtils.getWarehouseCode());
  108 + wave.setCreatedBy(ShiroUtils.getLoginName());
  109 + wave.setLastUpdatedBy(ShiroUtils.getLoginName());
  110 + return toAjax(waveService.save(wave));
  111 + }
  112 +
  113 + /**
  114 + * 修改波次
  115 + */
  116 + @GetMapping("/edit/{id}")
  117 + public String edit(@PathVariable("id") Integer id, ModelMap mmap) {
  118 + mmap.put("wave", waveService.getById(id));
  119 + return prefix + "/edit";
  120 + }
  121 +
  122 + /**
  123 + * 修改波次
  124 + */
  125 + @RequiresPermissions("config:wave:edit")
  126 + @Log(title = "通用-波次", operating = "修改波次", action = BusinessType.UPDATE)
  127 + @PostMapping("/edit")
  128 + @ResponseBody
  129 + public AjaxResult editSave(Wave wave) {
  130 + wave.setLastUpdatedBy(ShiroUtils.getLoginName());
  131 + return toAjax(waveService.updateById(wave));
  132 + }
  133 +
  134 + /**
  135 + * 删除波次
  136 + */
  137 + @RequiresPermissions("config:wave:remove")
  138 + @Log(title = "配置-波次", operating = "删除波次", action = BusinessType.DELETE)
  139 + @PostMapping( "/remove")
  140 + @ResponseBody
  141 + public AjaxResult remove(String ids) {
  142 + if (StringUtils.isEmpty(ids)){
  143 + return AjaxResult.error("id不能为空");
  144 + }
  145 + List<Integer> list = new ArrayList<>();
  146 + for (Integer id : Convert.toIntArray(ids)) {
  147 + list.add(id);
  148 + }
  149 + return toAjax(waveService.removeByIds(list));
  150 + }
  151 +
88 152  
89 153 }
... ...
src/main/java/com/huaheng/pc/shipment/wave/domain/Wave.java renamed to src/main/java/com/huaheng/pc/config/wave/domain/Wave.java
1   -package com.huaheng.pc.shipment.wave.domain;
  1 +package com.huaheng.pc.config.wave.domain;
2 2  
3 3 import com.baomidou.mybatisplus.annotation.IdType;
4 4 import com.baomidou.mybatisplus.annotation.TableField;
... ... @@ -6,9 +6,10 @@ import com.baomidou.mybatisplus.annotation.TableId;
6 6 import com.baomidou.mybatisplus.annotation.TableName;
7 7 import io.swagger.annotations.ApiModel;
8 8 import io.swagger.annotations.ApiModelProperty;
  9 +import lombok.Data;
  10 +
9 11 import java.io.Serializable;
10 12 import java.util.Date;
11   -import lombok.Data;
12 13  
13 14 @ApiModel(value="com.huaheng.pc.shipment.wave.domain.Wave")
14 15 @Data
... ...
src/main/java/com/huaheng/pc/shipment/wave/mapper/WaveMapper.java renamed to src/main/java/com/huaheng/pc/config/wave/mapper/WaveMapper.java
1   -package com.huaheng.pc.shipment.wave.mapper;
  1 +package com.huaheng.pc.config.wave.mapper;
2 2  
3 3 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4   -import com.huaheng.pc.shipment.wave.domain.Wave;
  4 +import com.huaheng.pc.config.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/shipment/wave/service/WaveService.java renamed to src/main/java/com/huaheng/pc/config/wave/service/WaveService.java
1   -package com.huaheng.pc.shipment.wave.service;
  1 +package com.huaheng.pc.config.wave.service;
2 2  
3   -import org.springframework.stereotype.Service;
4   -import javax.annotation.Resource;
5   -import java.util.List;
6 3 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
7   -import com.huaheng.pc.shipment.wave.mapper.WaveMapper;
8   -import com.huaheng.pc.shipment.wave.domain.Wave;
  4 +import com.huaheng.pc.config.wave.domain.Wave;
  5 +import com.huaheng.pc.config.wave.mapper.WaveMapper;
  6 +import org.springframework.stereotype.Service;
  7 +
9 8 @Service
10 9 public class WaveService extends ServiceImpl<WaveMapper, Wave> {
11 10  
... ...
src/main/java/com/huaheng/pc/shipment/waveFlowDetail/controller/WaveFlowDetailController.java renamed to src/main/java/com/huaheng/pc/config/waveFlowDetail/controller/WaveFlowDetailController.java
1   -package com.huaheng.pc.shipment.waveFlowDetail.controller;
  1 +package com.huaheng.pc.config.waveFlowDetail.controller;
2 2  
3 3  
4 4 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
5 5 import com.baomidou.mybatisplus.core.metadata.IPage;
6 6 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
7 7 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  8 +import com.huaheng.common.support.Convert;
8 9 import com.huaheng.common.utils.StringUtils;
9 10 import com.huaheng.common.utils.security.ShiroUtils;
10 11 import com.huaheng.framework.aspectj.lang.annotation.Log;
11 12 import com.huaheng.framework.aspectj.lang.constant.BusinessType;
12 13 import com.huaheng.framework.web.controller.BaseController;
  14 +import com.huaheng.framework.web.domain.AjaxResult;
13 15 import com.huaheng.framework.web.page.PageDomain;
14 16 import com.huaheng.framework.web.page.TableDataInfo;
15 17 import com.huaheng.framework.web.page.TableSupport;
16   -import com.huaheng.pc.shipment.waveFlowDetail.domain.WaveFlowDetail;
17   -import com.huaheng.pc.shipment.waveFlowDetail.service.WaveFlowDetailService;
  18 +import com.huaheng.pc.config.waveFlowDetail.domain.WaveFlowDetail;
  19 +import com.huaheng.pc.config.waveFlowDetail.service.WaveFlowDetailService;
18 20 import io.swagger.annotations.Api;
19 21 import org.apache.shiro.authz.annotation.RequiresPermissions;
20 22 import org.springframework.beans.factory.annotation.Autowired;
21 23 import org.springframework.stereotype.Controller;
22   -import org.springframework.web.bind.annotation.GetMapping;
23   -import org.springframework.web.bind.annotation.PostMapping;
24   -import org.springframework.web.bind.annotation.RequestMapping;
25   -import org.springframework.web.bind.annotation.ResponseBody;
  24 +import org.springframework.ui.ModelMap;
  25 +import org.springframework.web.bind.annotation.*;
26 26  
  27 +import java.util.ArrayList;
27 28 import java.util.List;
28 29  
29 30 /**
... ... @@ -50,7 +51,7 @@ public class WaveFlowDetailController extends BaseController {
50 51 }
51 52  
52 53 /**
53   - * 查询订单分析结果
  54 + * 查询波次流明细
54 55 */
55 56 @RequiresPermissions("shipment:waveFlowDetail:list")
56 57 @Log(title = "出库-波次流明细", operating="查看波次流明细", action = BusinessType.GRANT)
... ... @@ -63,7 +64,7 @@ public class WaveFlowDetailController extends BaseController {
63 64 Integer pageNum = pageDomain.getPageNum();
64 65 Integer pageSize = pageDomain.getPageSize();
65 66  
66   - lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin),WaveFlowDetail::getCreated, createdBegin)
  67 + lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin), WaveFlowDetail::getCreated, createdBegin)
67 68 .le(StringUtils.isNotEmpty(createdEnd), WaveFlowDetail::getCreated, createdEnd)
68 69 .eq(WaveFlowDetail::getWarehouseCode, ShiroUtils.getWarehouseCode());
69 70  
... ... @@ -80,5 +81,65 @@ public class WaveFlowDetailController extends BaseController {
80 81 }
81 82 }
82 83  
  84 + /**
  85 + * 新增波次流明细
  86 + */
  87 + @GetMapping("/add")
  88 + public String add() {
  89 + return prefix + "/add";
  90 + }
  91 +
  92 + /**
  93 + * 新增波次流明细
  94 + */
  95 + @RequiresPermissions("config:wave:add")
  96 + @Log(title = "配置-波次流明细", operating = "新增波次流明细", action = BusinessType.INSERT)
  97 + @PostMapping("/add")
  98 + @ResponseBody
  99 + public AjaxResult addSave(WaveFlowDetail waveFlowDetail){
  100 + waveFlowDetail.setWarehouseCode(ShiroUtils.getWarehouseCode());
  101 + waveFlowDetail.setCreatedBy(ShiroUtils.getLoginName());
  102 + waveFlowDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
  103 + return toAjax(waveFlowDetailService.save(waveFlowDetail));
  104 + }
  105 +
  106 + /**
  107 + * 修改波次流明细
  108 + */
  109 + @GetMapping("/edit/{id}")
  110 + public String edit(@PathVariable("id") Integer id, ModelMap mmap) {
  111 + mmap.put("wave", waveFlowDetailService.getById(id));
  112 + return prefix + "/edit";
  113 + }
  114 +
  115 + /**
  116 + * 修改波次流明细
  117 + */
  118 + @RequiresPermissions("config:wave:edit")
  119 + @Log(title = "通用-波次流明细", operating = "修改波次流明细", action = BusinessType.UPDATE)
  120 + @PostMapping("/edit")
  121 + @ResponseBody
  122 + public AjaxResult editSave(WaveFlowDetail waveFlowDetail) {
  123 + waveFlowDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
  124 + return toAjax(waveFlowDetailService.updateById(waveFlowDetail));
  125 + }
  126 +
  127 + /**
  128 + * 删除波次流明细
  129 + */
  130 + @RequiresPermissions("config:wave:remove")
  131 + @Log(title = "配置-波次流明细", operating = "删除波次流明细", action = BusinessType.DELETE)
  132 + @PostMapping( "/remove")
  133 + @ResponseBody
  134 + public AjaxResult remove(String ids) {
  135 + if (StringUtils.isEmpty(ids)){
  136 + return AjaxResult.error("id不能为空");
  137 + }
  138 + List<Integer> list = new ArrayList<>();
  139 + for (Integer id : Convert.toIntArray(ids)) {
  140 + list.add(id);
  141 + }
  142 + return toAjax(waveFlowDetailService.removeByIds(list));
  143 + }
83 144  
84 145 }
... ...
src/main/java/com/huaheng/pc/shipment/waveFlowDetail/domain/WaveFlowDetail.java renamed to src/main/java/com/huaheng/pc/config/waveFlowDetail/domain/WaveFlowDetail.java
1   -package com.huaheng.pc.shipment.waveFlowDetail.domain;
  1 +package com.huaheng.pc.config.waveFlowDetail.domain;
2 2  
3 3 import com.baomidou.mybatisplus.annotation.IdType;
4 4 import com.baomidou.mybatisplus.annotation.TableField;
... ... @@ -6,9 +6,10 @@ import com.baomidou.mybatisplus.annotation.TableId;
6 6 import com.baomidou.mybatisplus.annotation.TableName;
7 7 import io.swagger.annotations.ApiModel;
8 8 import io.swagger.annotations.ApiModelProperty;
  9 +import lombok.Data;
  10 +
9 11 import java.io.Serializable;
10 12 import java.util.Date;
11   -import lombok.Data;
12 13  
13 14 @ApiModel(value="com.huaheng.pc.shipment.waveFlowDetail.domain.WaveFlowDetail")
14 15 @Data
... ...
src/main/java/com/huaheng/pc/shipment/waveFlowDetail/mapper/WaveFlowDetailMapper.java renamed to src/main/java/com/huaheng/pc/config/waveFlowDetail/mapper/WaveFlowDetailMapper.java
1   -package com.huaheng.pc.shipment.waveFlowDetail.mapper;
  1 +package com.huaheng.pc.config.waveFlowDetail.mapper;
2 2  
3 3 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4   -import com.huaheng.pc.shipment.waveFlowDetail.domain.WaveFlowDetail;
  4 +import com.huaheng.pc.config.waveFlowDetail.domain.WaveFlowDetail;
5 5  
6 6 public interface WaveFlowDetailMapper extends BaseMapper<WaveFlowDetail> {
7 7 }
8 8 \ No newline at end of file
... ...
src/main/java/com/huaheng/pc/shipment/waveFlowDetail/service/WaveFlowDetailService.java renamed to src/main/java/com/huaheng/pc/config/waveFlowDetail/service/WaveFlowDetailService.java
1   -package com.huaheng.pc.shipment.waveFlowDetail.service;
  1 +package com.huaheng.pc.config.waveFlowDetail.service;
2 2  
3   -import org.springframework.stereotype.Service;
4   -import javax.annotation.Resource;
5   -import java.util.List;
6 3 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
7   -import com.huaheng.pc.shipment.waveFlowDetail.domain.WaveFlowDetail;
8   -import com.huaheng.pc.shipment.waveFlowDetail.mapper.WaveFlowDetailMapper;
  4 +import com.huaheng.pc.config.waveFlowDetail.domain.WaveFlowDetail;
  5 +import com.huaheng.pc.config.waveFlowDetail.mapper.WaveFlowDetailMapper;
  6 +import org.springframework.stereotype.Service;
  7 +
9 8 @Service
10 9 public class WaveFlowDetailService extends ServiceImpl<WaveFlowDetailMapper, WaveFlowDetail> {
11 10  
... ...
src/main/java/com/huaheng/pc/shipment/waveFlowHeader/controller/WaveFlowHeaderController.java renamed to src/main/java/com/huaheng/pc/config/waveFlowHeader/controller/WaveFlowHeaderController.java
1   -package com.huaheng.pc.shipment.waveFlowHeader.controller;
  1 +package com.huaheng.pc.config.waveFlowHeader.controller;
2 2  
3 3  
4 4 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
5 5 import com.baomidou.mybatisplus.core.metadata.IPage;
6 6 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
7 7 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  8 +import com.huaheng.common.support.Convert;
8 9 import com.huaheng.common.utils.StringUtils;
9 10 import com.huaheng.common.utils.security.ShiroUtils;
10 11 import com.huaheng.framework.aspectj.lang.annotation.Log;
11 12 import com.huaheng.framework.aspectj.lang.constant.BusinessType;
12 13 import com.huaheng.framework.web.controller.BaseController;
  14 +import com.huaheng.framework.web.domain.AjaxResult;
13 15 import com.huaheng.framework.web.page.PageDomain;
14 16 import com.huaheng.framework.web.page.TableDataInfo;
15 17 import com.huaheng.framework.web.page.TableSupport;
16   -import com.huaheng.pc.shipment.waveFlowHeader.domain.WaveFlowHeader;
17   -import com.huaheng.pc.shipment.waveFlowHeader.service.WaveFlowHeaderService;
  18 +import com.huaheng.pc.config.waveFlowHeader.domain.WaveFlowHeader;
  19 +import com.huaheng.pc.config.waveFlowHeader.service.WaveFlowHeaderService;
18 20 import io.swagger.annotations.Api;
19 21 import org.apache.shiro.authz.annotation.RequiresPermissions;
20 22 import org.springframework.beans.factory.annotation.Autowired;
21 23 import org.springframework.stereotype.Controller;
22   -import org.springframework.web.bind.annotation.GetMapping;
23   -import org.springframework.web.bind.annotation.PostMapping;
24   -import org.springframework.web.bind.annotation.RequestMapping;
25   -import org.springframework.web.bind.annotation.ResponseBody;
  24 +import org.springframework.ui.ModelMap;
  25 +import org.springframework.web.bind.annotation.*;
26 26  
  27 +import java.util.ArrayList;
27 28 import java.util.List;
28 29  
29 30 /**
... ... @@ -50,7 +51,7 @@ public class WaveFlowHeaderController extends BaseController {
50 51 }
51 52  
52 53 /**
53   - * 查询订单分析结果
  54 + * 查询波次流头表
54 55 */
55 56 @RequiresPermissions("shipment:waveFlowHeader:list")
56 57 @Log(title = "出库-波次流头表", operating="查看波次流头表", action = BusinessType.GRANT)
... ... @@ -63,11 +64,11 @@ public class WaveFlowHeaderController extends BaseController {
63 64 Integer pageNum = pageDomain.getPageNum();
64 65 Integer pageSize = pageDomain.getPageSize();
65 66  
66   - lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin),WaveFlowHeader::getCreated, createdBegin)
  67 + lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin), WaveFlowHeader::getCreated, createdBegin)
67 68 .le(StringUtils.isNotEmpty(createdEnd), WaveFlowHeader::getCreated, createdEnd)
68 69 .eq(WaveFlowHeader::getWarehouseCode, ShiroUtils.getWarehouseCode())
69 70 .eq(StringUtils.isNotEmpty(waveFlowHeader.getCode()
70   - ),WaveFlowHeader::getCode,waveFlowHeader.getCode());
  71 + ), WaveFlowHeader::getCode,waveFlowHeader.getCode());
71 72  
72 73 if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){
73 74 /**
... ... @@ -83,4 +84,66 @@ public class WaveFlowHeaderController extends BaseController {
83 84 }
84 85  
85 86  
  87 + /**
  88 + * 新增波次流头表
  89 + */
  90 + @GetMapping("/add")
  91 + public String add() {
  92 + return prefix + "/add";
  93 + }
  94 +
  95 + /**
  96 + * 新增波次流头表
  97 + */
  98 + @RequiresPermissions("config:waveFlowHeader:add")
  99 + @Log(title = "配置-波次流头表", operating = "新增波次流头表", action = BusinessType.INSERT)
  100 + @PostMapping("/add")
  101 + @ResponseBody
  102 + public AjaxResult addSave(WaveFlowHeader waveFlowHeader){
  103 + waveFlowHeader.setWarehouseCode(ShiroUtils.getWarehouseCode());
  104 + waveFlowHeader.setCreatedBy(ShiroUtils.getLoginName());
  105 + waveFlowHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
  106 + return toAjax(waveFlowHeaderService.save(waveFlowHeader));
  107 + }
  108 +
  109 + /**
  110 + * 修改波次流头表
  111 + */
  112 + @GetMapping("/edit/{id}")
  113 + public String edit(@PathVariable("id") Integer id, ModelMap mmap) {
  114 + mmap.put("waveFlowHeader", waveFlowHeaderService.getById(id));
  115 + return prefix + "/edit";
  116 + }
  117 +
  118 + /**
  119 + * 修改波次流头表
  120 + */
  121 + @RequiresPermissions("config:waveFlowHeader:edit")
  122 + @Log(title = "通用-波次流头表", operating = "修改波次流头表", action = BusinessType.UPDATE)
  123 + @PostMapping("/edit")
  124 + @ResponseBody
  125 + public AjaxResult editSave(WaveFlowHeader waveFlowHeader) {
  126 + waveFlowHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
  127 + return toAjax(waveFlowHeaderService.updateById(waveFlowHeader));
  128 + }
  129 +
  130 + /**
  131 + * 删除波次流头表
  132 + */
  133 + @RequiresPermissions("config:waveFlowHeader:remove")
  134 + @Log(title = "配置-波次流头表", operating = "删除波次流头表", action = BusinessType.DELETE)
  135 + @PostMapping( "/remove")
  136 + @ResponseBody
  137 + public AjaxResult remove(String ids) {
  138 + if (StringUtils.isEmpty(ids)){
  139 + return AjaxResult.error("id不能为空");
  140 + }
  141 + List<Integer> list = new ArrayList<>();
  142 + for (Integer id : Convert.toIntArray(ids)) {
  143 + list.add(id);
  144 + }
  145 + return toAjax(waveFlowHeaderService.removeByIds(list));
  146 + }
  147 +
  148 +
86 149 }
... ...
src/main/java/com/huaheng/pc/shipment/waveFlowHeader/domain/WaveFlowHeader.java renamed to src/main/java/com/huaheng/pc/config/waveFlowHeader/domain/WaveFlowHeader.java
1   -package com.huaheng.pc.shipment.waveFlowHeader.domain;
  1 +package com.huaheng.pc.config.waveFlowHeader.domain;
2 2  
3 3 import com.baomidou.mybatisplus.annotation.IdType;
4 4 import com.baomidou.mybatisplus.annotation.TableField;
... ... @@ -6,9 +6,10 @@ import com.baomidou.mybatisplus.annotation.TableId;
6 6 import com.baomidou.mybatisplus.annotation.TableName;
7 7 import io.swagger.annotations.ApiModel;
8 8 import io.swagger.annotations.ApiModelProperty;
  9 +import lombok.Data;
  10 +
9 11 import java.io.Serializable;
10 12 import java.util.Date;
11   -import lombok.Data;
12 13  
13 14 @ApiModel(value="com.huaheng.pc.shipment.waveFlowHeader.domain.WaveFlowHeader")
14 15 @Data
... ...
src/main/java/com/huaheng/pc/shipment/waveFlowHeader/mapper/WaveFlowHeaderMapper.java renamed to src/main/java/com/huaheng/pc/config/waveFlowHeader/mapper/WaveFlowHeaderMapper.java
1   -package com.huaheng.pc.shipment.waveFlowHeader.mapper;
  1 +package com.huaheng.pc.config.waveFlowHeader.mapper;
2 2  
3 3 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4   -import com.huaheng.pc.shipment.waveFlowHeader.domain.WaveFlowHeader;
  4 +import com.huaheng.pc.config.waveFlowHeader.domain.WaveFlowHeader;
5 5  
6 6 public interface WaveFlowHeaderMapper extends BaseMapper<WaveFlowHeader> {
7 7 }
8 8 \ No newline at end of file
... ...
src/main/java/com/huaheng/pc/shipment/waveFlowHeader/service/WaveFlowHeaderService.java renamed to src/main/java/com/huaheng/pc/config/waveFlowHeader/service/WaveFlowHeaderService.java
1   -package com.huaheng.pc.shipment.waveFlowHeader.service;
  1 +package com.huaheng.pc.config.waveFlowHeader.service;
2 2  
3   -import org.springframework.stereotype.Service;
4   -import javax.annotation.Resource;
5   -import java.util.List;
6 3 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
7   -import com.huaheng.pc.shipment.waveFlowHeader.mapper.WaveFlowHeaderMapper;
8   -import com.huaheng.pc.shipment.waveFlowHeader.domain.WaveFlowHeader;
  4 +import com.huaheng.pc.config.waveFlowHeader.domain.WaveFlowHeader;
  5 +import com.huaheng.pc.config.waveFlowHeader.mapper.WaveFlowHeaderMapper;
  6 +import org.springframework.stereotype.Service;
  7 +
9 8 @Service
10 9 public class WaveFlowHeaderService extends ServiceImpl<WaveFlowHeaderMapper, WaveFlowHeader> {
11 10  
... ...
src/main/java/com/huaheng/pc/shipment/waveMaster/controller/WaveMasterController.java renamed to src/main/java/com/huaheng/pc/config/waveMaster/controller/WaveMasterController.java
1   -package com.huaheng.pc.shipment.waveMaster.controller;
  1 +package com.huaheng.pc.config.waveMaster.controller;
2 2  
3 3  
4 4 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
5 5 import com.baomidou.mybatisplus.core.metadata.IPage;
6 6 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
7 7 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  8 +import com.huaheng.common.support.Convert;
8 9 import com.huaheng.common.utils.StringUtils;
9 10 import com.huaheng.common.utils.security.ShiroUtils;
10 11 import com.huaheng.framework.aspectj.lang.annotation.Log;
11 12 import com.huaheng.framework.aspectj.lang.constant.BusinessType;
12 13 import com.huaheng.framework.web.controller.BaseController;
  14 +import com.huaheng.framework.web.domain.AjaxResult;
13 15 import com.huaheng.framework.web.page.PageDomain;
14 16 import com.huaheng.framework.web.page.TableDataInfo;
15 17 import com.huaheng.framework.web.page.TableSupport;
16   -import com.huaheng.pc.shipment.wave.domain.Wave;
17   -import com.huaheng.pc.shipment.waveMaster.domain.WaveMaster;
18   -import com.huaheng.pc.shipment.waveMaster.service.WaveMasterService;
  18 +import com.huaheng.pc.config.waveMaster.domain.WaveMaster;
  19 +import com.huaheng.pc.config.waveMaster.service.WaveMasterService;
19 20 import io.swagger.annotations.Api;
20 21 import org.apache.shiro.authz.annotation.RequiresPermissions;
21 22 import org.springframework.beans.factory.annotation.Autowired;
22 23 import org.springframework.stereotype.Controller;
23   -import org.springframework.web.bind.annotation.GetMapping;
24   -import org.springframework.web.bind.annotation.PostMapping;
25   -import org.springframework.web.bind.annotation.RequestMapping;
26   -import org.springframework.web.bind.annotation.ResponseBody;
  24 +import org.springframework.ui.ModelMap;
  25 +import org.springframework.web.bind.annotation.*;
27 26  
  27 +import java.util.ArrayList;
28 28 import java.util.List;
29 29  
30 30 /**
... ... @@ -51,7 +51,7 @@ public class WaveMasterController extends BaseController {
51 51 }
52 52  
53 53 /**
54   - * 查询订单分析结果
  54 + * 查询波次主表
55 55 */
56 56 @RequiresPermissions("shipment:waveMaster:list")
57 57 @Log(title = "出库-波次主表", operating="查看波次主表", action = BusinessType.GRANT)
... ... @@ -64,13 +64,13 @@ public class WaveMasterController extends BaseController {
64 64 Integer pageNum = pageDomain.getPageNum();
65 65 Integer pageSize = pageDomain.getPageSize();
66 66  
67   - lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin),WaveMaster::getCreated, createdBegin)
  67 + lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin), WaveMaster::getCreated, createdBegin)
68 68 .le(StringUtils.isNotEmpty(createdEnd), WaveMaster::getCreated, createdEnd)
69 69 .eq(WaveMaster::getWarehouseCode, ShiroUtils.getWarehouseCode())
70 70 .eq(StringUtils.isNotEmpty(waveMaster.getCode()
71   - ),WaveMaster::getCode,waveMaster.getCode())
  71 + ), WaveMaster::getCode,waveMaster.getCode())
72 72 .like(StringUtils.isNotEmpty(waveMaster.getShipmentFilterCode()
73   - ),WaveMaster::getShipmentFilterCode,waveMaster.getShipmentFilterCode());
  73 + ), WaveMaster::getShipmentFilterCode,waveMaster.getShipmentFilterCode());
74 74  
75 75 if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){
76 76 /**
... ... @@ -86,4 +86,67 @@ public class WaveMasterController extends BaseController {
86 86 }
87 87  
88 88  
  89 + /**
  90 + * 新增波次主表
  91 + */
  92 + @GetMapping("/add")
  93 + public String add() {
  94 + return prefix + "/add";
  95 + }
  96 +
  97 + /**
  98 + * 新增波次主表
  99 + */
  100 + @RequiresPermissions("config:waveMaster:add")
  101 + @Log(title = "配置-波次主表", operating = "新增波次主表", action = BusinessType.INSERT)
  102 + @PostMapping("/add")
  103 + @ResponseBody
  104 + public AjaxResult addSave(WaveMaster waveMaster){
  105 + waveMaster.setWarehouseCode(ShiroUtils.getWarehouseCode());
  106 + waveMaster.setCreatedBy(ShiroUtils.getLoginName());
  107 + waveMaster.setLastUpdatedBy(ShiroUtils.getLoginName());
  108 + return toAjax(waveMasterService.save(waveMaster));
  109 + }
  110 +
  111 + /**
  112 + * 修改波次
  113 + */
  114 + @GetMapping("/edit/{id}")
  115 + public String edit(@PathVariable("id") Integer id, ModelMap mmap) {
  116 + mmap.put("waveMaster", waveMasterService.getById(id));
  117 + return prefix + "/edit";
  118 + }
  119 +
  120 + /**
  121 + * 修改波次
  122 + */
  123 + @RequiresPermissions("config:waveMaster:edit")
  124 + @Log(title = "通用-波次主表", operating = "修改波次主表", action = BusinessType.UPDATE)
  125 + @PostMapping("/edit")
  126 + @ResponseBody
  127 + public AjaxResult editSave(WaveMaster waveMaster) {
  128 + waveMaster.setLastUpdatedBy(ShiroUtils.getLoginName());
  129 + return toAjax(waveMasterService.updateById(waveMaster));
  130 + }
  131 +
  132 + /**
  133 + * 删除波次
  134 + */
  135 + @RequiresPermissions("config:waveMaster:remove")
  136 + @Log(title = "配置-波次主表", operating = "删除波次主表", action = BusinessType.DELETE)
  137 + @PostMapping( "/remove")
  138 + @ResponseBody
  139 + public AjaxResult remove(String ids) {
  140 + if (StringUtils.isEmpty(ids)){
  141 + return AjaxResult.error("id不能为空");
  142 + }
  143 + List<Integer> list = new ArrayList<>();
  144 + for (Integer id : Convert.toIntArray(ids)) {
  145 + list.add(id);
  146 + }
  147 + return toAjax(waveMasterService.removeByIds(list));
  148 + }
  149 +
  150 +
  151 +
89 152 }
... ...
src/main/java/com/huaheng/pc/shipment/waveMaster/domain/WaveMaster.java renamed to src/main/java/com/huaheng/pc/config/waveMaster/domain/WaveMaster.java
1   -package com.huaheng.pc.shipment.waveMaster.domain;
  1 +package com.huaheng.pc.config.waveMaster.domain;
2 2  
3 3 import com.baomidou.mybatisplus.annotation.IdType;
4 4 import com.baomidou.mybatisplus.annotation.TableField;
... ... @@ -6,9 +6,10 @@ import com.baomidou.mybatisplus.annotation.TableId;
6 6 import com.baomidou.mybatisplus.annotation.TableName;
7 7 import io.swagger.annotations.ApiModel;
8 8 import io.swagger.annotations.ApiModelProperty;
  9 +import lombok.Data;
  10 +
9 11 import java.io.Serializable;
10 12 import java.util.Date;
11   -import lombok.Data;
12 13  
13 14 @ApiModel(value="com.huaheng.pc.shipment.waveMaster.domain.WaveMaster")
14 15 @Data
... ...
src/main/java/com/huaheng/pc/shipment/waveMaster/mapper/WaveMasterMapper.java renamed to src/main/java/com/huaheng/pc/config/waveMaster/mapper/WaveMasterMapper.java
1   -package com.huaheng.pc.shipment.waveMaster.mapper;
  1 +package com.huaheng.pc.config.waveMaster.mapper;
2 2  
3 3 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4   -import com.huaheng.pc.shipment.waveMaster.domain.WaveMaster;
  4 +import com.huaheng.pc.config.waveMaster.domain.WaveMaster;
5 5  
6 6 public interface WaveMasterMapper extends BaseMapper<WaveMaster> {
7 7 }
8 8 \ No newline at end of file
... ...
src/main/java/com/huaheng/pc/shipment/waveMaster/service/WaveMasterService.java renamed to src/main/java/com/huaheng/pc/config/waveMaster/service/WaveMasterService.java
1   -package com.huaheng.pc.shipment.waveMaster.service;
  1 +package com.huaheng.pc.config.waveMaster.service;
2 2  
3   -import org.springframework.stereotype.Service;
4   -import javax.annotation.Resource;
5   -import java.util.List;
6 3 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
7   -import com.huaheng.pc.shipment.waveMaster.mapper.WaveMasterMapper;
8   -import com.huaheng.pc.shipment.waveMaster.domain.WaveMaster;
  4 +import com.huaheng.pc.config.waveMaster.domain.WaveMaster;
  5 +import com.huaheng.pc.config.waveMaster.mapper.WaveMasterMapper;
  6 +import org.springframework.stereotype.Service;
  7 +
9 8 @Service
10 9 public class WaveMasterService extends ServiceImpl<WaveMasterMapper, WaveMaster> {
11 10  
... ...
src/main/java/com/huaheng/pc/inventory/cycleCountDetail/controller/CycleCountDetailController.java
... ... @@ -9,21 +9,31 @@ import com.huaheng.common.utils.security.ShiroUtils;
9 9 import com.huaheng.framework.aspectj.lang.annotation.Log;
10 10 import com.huaheng.framework.aspectj.lang.constant.BusinessType;
11 11 import com.huaheng.framework.web.controller.BaseController;
  12 +import com.huaheng.framework.web.domain.AjaxResult;
12 13 import com.huaheng.framework.web.page.PageDomain;
13 14 import com.huaheng.framework.web.page.TableDataInfo;
14 15 import com.huaheng.framework.web.page.TableSupport;
15 16 import com.huaheng.pc.inventory.cycleCountDetail.domain.CycleCountDetail;
16 17 import com.huaheng.pc.inventory.cycleCountDetail.service.CycleCountDetailService;
17 18 import com.huaheng.pc.inventory.cycleCountDetail.service.CycleCountDetailServiceImpl;
  19 +import com.huaheng.pc.inventory.cycleCountHeader.domain.CycleCountHeader;
18 20 import com.huaheng.pc.inventory.cycleCountHeader.service.CycleCountHeaderService;
19 21 import com.huaheng.pc.inventory.cycleCountHeader.service.CycleCountHeaderServiceImpl;
  22 +import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail;
  23 +import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService;
  24 +import com.huaheng.pc.task.taskDetail.service.TaskDetailService;
  25 +import com.huaheng.pc.task.taskHeader.service.TaskHeaderService;
  26 +import io.swagger.models.auth.In;
  27 +import org.apache.shiro.authz.annotation.RequiresPermissions;
20 28 import org.springframework.stereotype.Controller;
  29 +import org.springframework.ui.ModelMap;
21 30 import org.springframework.web.bind.annotation.GetMapping;
22 31 import org.springframework.web.bind.annotation.PostMapping;
23 32 import org.springframework.web.bind.annotation.RequestMapping;
24 33 import org.springframework.web.bind.annotation.ResponseBody;
25 34  
26 35 import javax.annotation.Resource;
  36 +import java.util.Collections;
27 37 import java.util.List;
28 38  
29 39  
... ... @@ -35,10 +45,13 @@ import java.util.List;
35 45 public class CycleCountDetailController extends BaseController {
36 46  
37 47  
38   - @Resource
39   - private CycleCountHeaderService cycleCountHeaderService;
  48 +
  49 +
40 50 @Resource
41 51 private CycleCountDetailService cycleCountDetailService;
  52 + @Resource
  53 + private CycleCountHeaderService cycleCountHeaderService;
  54 +
42 55  
43 56  
44 57  
... ... @@ -63,7 +76,8 @@ public class CycleCountDetailController extends BaseController {
63 76 PageDomain pageDomain = TableSupport.buildPageRequest();
64 77 Integer pageNum = pageDomain.getPageNum();
65 78 Integer pageSize = pageDomain.getPageSize();
66   -
  79 + //没有主单ID传入则直接返回空list
  80 + if(cycleCountDetail.getCycleCountHeadId() != null){
67 81 lambdaQueryWrapper.ge(
68 82 StringUtils.isNotEmpty(createdBegin), CycleCountDetail::getCreated, createdBegin)
69 83 .le(StringUtils.isNotEmpty(createdEnd), CycleCountDetail::getCreated, createdEnd)//创建时间范围
... ... @@ -95,16 +109,42 @@ public class CycleCountDetailController extends BaseController {
95 109 List<CycleCountDetail> list = cycleCountDetailService.list(lambdaQueryWrapper);
96 110 return getDataTable(list);
97 111 }
98   -
  112 + }
99 113 //空List
100   - //return getDataTable(Collections.emptyList());
  114 + return getDataTable(Collections.emptyList());
101 115  
102 116 }
103 117  
104 118  
  119 + /**
  120 + * 新增盘点明细
  121 + */
  122 + @GetMapping("/add")
  123 + public String add(Integer cycleCountHeadId,String companyCode, ModelMap m)
  124 + {
  125 + if(cycleCountHeadId == null){
  126 + throw new SecurityException("盘点头ID不能为空!");
  127 + }
  128 + //相同货主才能盘点,取出盘点头的货主
  129 + CycleCountHeader cycleCountHeader = cycleCountHeaderService.getById(cycleCountHeadId);
  130 + companyCode = cycleCountHeader.getCompanyCode();
  131 + m.put("companyCode",companyCode);
  132 + m.put("cycleCountHeadId",cycleCountHeadId);
105 133  
  134 + return prefix + "/add";
  135 + }
106 136  
107   -
  137 + /**
  138 + * 新增保存盘点明细
  139 + */
  140 + //@RequiresPermissions("inventory:cyclecountDetail:add")
  141 + @Log(title = "库存-盘点", operating = "新增盘点补货明细", action = BusinessType.INSERT)
  142 + @PostMapping("/add")
  143 + @ResponseBody
  144 + public AjaxResult addSave(Integer cycleCountHeadId, Integer[] inventoryDetailIdIds)
  145 + {
  146 + return cycleCountDetailService.addDetails(cycleCountHeadId,inventoryDetailIdIds);
  147 + }
108 148  
109 149  
110 150  
... ...
src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailService.java
1 1 package com.huaheng.pc.inventory.cycleCountDetail.service;
2 2  
3 3 import com.baomidou.mybatisplus.extension.service.IService;
  4 +import com.huaheng.framework.web.domain.AjaxResult;
4 5 import com.huaheng.pc.inventory.cycleCountDetail.domain.CycleCountDetail;
5   -import com.huaheng.pc.inventory.cycleCountHeader.domain.CycleCountHeader;
  6 +
6 7  
7 8  
8 9 public interface CycleCountDetailService extends IService<CycleCountDetail> {
9 10  
10 11  
  12 + AjaxResult addDetails(Integer cycleCountHeadId, Integer[] inventoryDetailIdIds);
  13 +
  14 +
  15 +
  16 +
  17 +
  18 +
11 19  
12 20 }
13 21  
... ...
src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailServiceImpl.java
1 1 package com.huaheng.pc.inventory.cycleCountDetail.service;
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.web.domain.AjaxResult;
  7 +import com.huaheng.pc.inventory.cycleCountHeader.domain.CycleCountHeader;
  8 +import com.huaheng.pc.inventory.cycleCountHeader.service.CycleCountHeaderService;
  9 +import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail;
  10 +import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService;
  11 +import com.huaheng.pc.task.taskHeader.service.TaskHeaderService;
3 12 import org.springframework.stereotype.Service;
4 13 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
5 14 import com.huaheng.pc.inventory.cycleCountDetail.mapper.CycleCountDetailMapper;
6 15 import com.huaheng.pc.inventory.cycleCountDetail.domain.CycleCountDetail;
  16 +import org.springframework.transaction.annotation.Transactional;
  17 +
  18 +import javax.annotation.Resource;
  19 +import java.math.BigDecimal;
  20 +import java.util.ArrayList;
  21 +import java.util.Date;
  22 +import java.util.List;
  23 +
7 24 @Service
8 25 public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMapper, CycleCountDetail> implements CycleCountDetailService {
9 26  
10 27  
11 28  
  29 + @Resource
  30 + private CycleCountHeaderService cycleCountHeaderService;
  31 + @Resource
  32 + private InventoryDetailService inventoryDetailService;
  33 + @Resource
  34 + private TaskHeaderService taskHeaderService;
  35 +
  36 +
  37 +
  38 +
  39 + /**
  40 + * 新增盘点明细
  41 + * */
  42 + @Override
  43 + @Transactional
  44 + public AjaxResult addDetails(Integer cycleCountHeadId, Integer[] inventoryDetailIdIds) {
  45 +
  46 + CycleCountHeader cyclecountHeader = cycleCountHeaderService.getById(cycleCountHeadId);
  47 + //可能存在并发删除的情况
  48 + if(cyclecountHeader==null){
  49 + return AjaxResult.error("盘点主单据不存在");
  50 + }
  51 + if(cyclecountHeader.getStatusCyc() > 1){
  52 + return AjaxResult.error("盘点单非新建状态,无法再添加明细");
  53 + }
  54 + //获取已经存在的明细
  55 + CycleCountDetail cycleCountDetail = new CycleCountDetail();
  56 + cycleCountDetail.setWarehouseCode(cyclecountHeader.getWarehouseCode());
  57 + cycleCountDetail.setCompanyCode(cyclecountHeader.getCompanyCode());
  58 + cycleCountDetail.setCycleCountHeadId(cycleCountHeadId);
  59 + LambdaQueryWrapper<CycleCountDetail> cycleCountDetailLambd = Wrappers.lambdaQuery(cycleCountDetail);
  60 + List<CycleCountDetail> cyclecountDetailList = this.list(cycleCountDetailLambd);
  61 + if(cyclecountDetailList == null){
  62 + cyclecountDetailList = new ArrayList<>();
  63 + }
  64 + for(int inventoryDetailId : inventoryDetailIdIds){
  65 + //当前有盘点明细时验证是否已经生成盘点细单,生成则跳出该条循环
  66 + if(cyclecountDetailList.stream().anyMatch(t -> t.getInventoryDetailId()!=null && t.getInventoryDetailId() == inventoryDetailId)){
  67 + continue;
  68 + }
  69 + //查询该条库存明细
  70 + InventoryDetail inventoryDetail = inventoryDetailService.getById(inventoryDetailId);
  71 +
  72 + //写入盘点明细
  73 + CycleCountDetail ccd = new CycleCountDetail();
  74 + ccd.setCycleCountHeadId(cycleCountHeadId);
  75 + ccd.setInventoryDetailId(inventoryDetailId);
  76 + ccd.setWarehouseCode(inventoryDetail.getWarehouseCode());
  77 + ccd.setCompanyCode(inventoryDetail.getCompanyCode());
  78 + ccd.setInventorySts(inventoryDetail.getInventorySts());
  79 + ccd.setCountId(inventoryDetail.getId());
  80 + ccd.setEnableStatus(1);
  81 + ccd.setLocationCode(inventoryDetail.getLocationCode());
  82 + ccd.setContainerCode(inventoryDetail.getContainerCode());
  83 + ccd.setMaterialCode(inventoryDetail.getMaterialCode());
  84 + ccd.setMaterialName(inventoryDetail.getMaterialName());
  85 + ccd.setMaterialSpec(inventoryDetail.getMaterialSpec());
  86 + ccd.setMaterialUnit(inventoryDetail.getMaterialUnit());
  87 + ccd.setSystemQty(inventoryDetail.getQty());
  88 +
  89 + ccd.setCountedBy(cyclecountHeader.getCreatedBy());
  90 + ccd.setCountedAt(cyclecountHeader.getCreated());
  91 + ccd.setCreated(new Date());
  92 + ccd.setCreatedBy(ShiroUtils.getLoginName());
  93 + ccd.setLastUpdated(new Date());
  94 + ccd.setLastUpdatedBy(ShiroUtils.getLoginName());
  95 + this.save(ccd);
  96 +
  97 + }
  98 + return AjaxResult.success("生成盘点明细成功");
  99 + }
12 100  
13 101  
14 102  
15 103 }
  104 +
... ...
src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/domain/ReceiptContainerHeader.java
... ... @@ -269,8 +269,8 @@ public class ReceiptContainerHeader implements Serializable {
269 269 *
270 270 * @return id - ID
271 271 */
272   - public Integer getId() {
273   - return id;
  272 + public Integer getId() {
  273 + return this.id;
274 274 }
275 275  
276 276 /**
... ...
src/main/java/com/huaheng/pc/task/taskHeader/controller/TaskHeaderController.java
... ... @@ -119,5 +119,21 @@ public class TaskHeaderController extends BaseController {
119 119 }
120 120  
121 121  
  122 + /**
  123 + * 删除立库任务
  124 + */
  125 + @RequiresPermissions("task:taskHeader:remove")
  126 + @Log(title = "任务-任务管理", operating = "删除立库任务", action = BusinessType.DELETE)
  127 + @PostMapping( "/remove")
  128 + @ResponseBody
  129 + public AjaxResult remove(String ids)
  130 + {
  131 + if (StringUtils.isEmpty(ids))
  132 + return AjaxResult.error("taskId不能为空");
  133 + AjaxResult ajaxResult = taskHeaderService.cancelTask(Convert.toIntArray(ids));
  134 + return ajaxResult;
  135 + }
  136 +
  137 +
122 138  
123 139 }
... ...
src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.java
... ... @@ -35,5 +35,7 @@ public interface TaskHeaderService extends IService&lt;TaskHeader&gt;{
35 35  
36 36 Integer UncompleteCount(String containerCode);
37 37  
  38 + AjaxResult cancelTask(Integer[] taskIds) ;
  39 +
38 40  
39 41 }
... ...
src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java
... ... @@ -12,6 +12,7 @@ import com.huaheng.pc.config.container.domain.Container;
12 12 import com.huaheng.pc.config.container.service.ContainerService;
13 13 import com.huaheng.pc.config.location.domain.Location;
14 14 import com.huaheng.pc.config.location.service.LocationService;
  15 +import com.huaheng.pc.inventory.cycleCountHeader.domain.CycleCountHeader;
15 16 import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail;
16 17 import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService;
17 18 import com.huaheng.pc.inventory.inventoryHeader.domain.InventoryHeader;
... ... @@ -88,7 +89,6 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
88 89 private ShipmentDetailService shipmentDetailService;
89 90  
90 91  
91   -
92 92 @Resource
93 93 private ReceiptContainerHeaderService receiptContainerHeaderService;
94 94 @Resource
... ... @@ -96,9 +96,6 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
96 96  
97 97  
98 98  
99   -
100   -
101   -
102 99 /**
103 100 * 查询容器有无任务
104 101 */
... ... @@ -107,6 +104,64 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
107 104 return taskHeaderMapper.UncompleteCount(ContainerCode, ShiroUtils.getWarehouseCode());
108 105 }
109 106  
  107 +
  108 + /**
  109 + * 取消任务
  110 + * */
  111 +
  112 + @Override
  113 + public AjaxResult cancelTask(Integer[] taskIds) {
  114 + for(int taskId : taskIds){
  115 + TaskHeader taskHeader = taskHeaderService.getById(taskId);
  116 + if(taskHeader==null){
  117 + return AjaxResult.error("任务"+taskId+"未找到,操作中止");
  118 + }
  119 + if(taskHeader.getStatus() > 9){
  120 + return AjaxResult.error("存在任务"+taskHeader.getId()+"已下发或执行,操作中止");
  121 + }
  122 + //删除子任务
  123 + LambdaQueryWrapper<TaskDetail> lambdaQueryWrapper = Wrappers.lambdaQuery();
  124 + lambdaQueryWrapper.eq(TaskDetail::getTaskId,taskHeader.getId());
  125 + taskDetailService.remove(lambdaQueryWrapper);
  126 + //删除主任务
  127 + taskHeaderService.removeById(taskHeader.getId());
  128 + // 更改库位状态(整盘入库任务除外)
  129 + if(taskHeader.getInternalTaskType() == 100 )
  130 + {
  131 + ReceiptContainerHeader record =new ReceiptContainerHeader();
  132 + record.setStatus((short)0);
  133 + record.setId(taskHeader.getAllocationHeadId());
  134 + receiptContainerHeaderService.updateById(record);
  135 + }
  136 + //根据任务类型来更新货箱状态
  137 + //修改关联的货箱状态
  138 + if(taskHeader.getInternalTaskType() == 200) {
  139 + ShipmentContainerHeader shipmentContainerHeader = new ShipmentContainerHeader();
  140 + shipmentContainerHeader.setId(taskHeader.getAllocationHeadId());
  141 + shipmentContainerHeader.setStatus(0);
  142 + shipmentContainerHeaderService.updateById(shipmentContainerHeader);
  143 + }
  144 +// if(taskHeader.getInternalTaskType() == 700) {
  145 +// CycleCountHeader cycleCountHeader = new CycleCountHeader();
  146 +// cycleCountHeader.setId(task.getAllocationHeadId());
  147 +// cycleCountHeader.setLastUpdated(new Date());
  148 +// cycleCountHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
  149 +// cyclecountDetailService.updateByModel(cyclecountDetail);
  150 +// }
  151 + if(taskHeader.getInternalTaskType()==100||taskHeader.getInternalTaskType()==200){
  152 + if(taskHeader.getToLocation()!=null){
  153 + //更新托盘、库位状态
  154 + locationService.updateStatus(taskHeader.getToLocation(), "empty");
  155 + }
  156 + }
  157 +// if(task.getType()==900){
  158 +// //出库查看任务没有关联的货箱,不做处理
  159 +// }
  160 + }
  161 +
  162 + return AjaxResult.success("取消任务成功!");
  163 + }
  164 +
110 165 /**
111 166 * 生成出库任务
112 167 *
... ... @@ -215,7 +270,6 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
215 270 ShipmentContainerHeader record = new ShipmentContainerHeader();
216 271 record.setId(shipmentContainerHeaderId);
217 272 record.setStatus(10);
218   - record.setStatus(task.getTaskType());//实际出库类型
219 273 shipmentContainerHeaderService.saveOrUpdate(record);
220 274 return AjaxResult.success(task.getId());
221 275  
... ... @@ -238,39 +292,64 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
238 292 return AjaxResult.error("任务" + taskId + "已经下发,请不要重复下发,操作中止");
239 293 }
240 294 //修改任务头表
  295 + task.setId(taskId);
241 296 task.setStatus(10);
242 297 task.setStartPickDateTime(new Date()); //生成时间
243 298 task.setLastUpdated(new Date());
244 299 task.setLastUpdatedBy(ShiroUtils.getLoginName());
245   - LambdaUpdateWrapper<TaskHeader> HeaderUpdateWrapper = Wrappers.lambdaUpdate();
246   - HeaderUpdateWrapper.eq(TaskHeader::getId, taskId);
247   - if (!taskHeaderService.update(task, HeaderUpdateWrapper))
248   - throw new ServiceException("更新任务头失败");
  300 + taskHeaderService.saveOrUpdate(task);
249 301 //修改任务明细状态
250 302 TaskDetail record = new TaskDetail();
251 303 record.setStatus(10);
252 304 record.setLastUpdated(new Date());
253 305 record.setLastUpdatedBy(ShiroUtils.getLoginName());
  306 + record.setProcessStamp("100");
  307 + taskDetailService.updateById(record);
254 308 LambdaUpdateWrapper<TaskDetail> lambdaUpdateWrapper = Wrappers.lambdaUpdate();
255 309 lambdaUpdateWrapper.eq(TaskDetail::getTaskId, task.getId());
256 310 if (!taskDetailService.update(record, lambdaUpdateWrapper)){
257 311 throw new ServiceException("更新任务明细失败");
258 312 }
259   - //修改入库明细
260   - ReceiptDetail receiptDetail = receiptDetailService.queryflow(receiptDetailService.getById(record.getId()));
261   - if (!receiptDetailService.updateById(receiptDetail)){
262   - throw new ServiceException("更新状态失败");
263   - }
264   - receiptDetailService.updateReceiptHeaderLastStatus(receiptDetail.getReceiptId());
265   - //修改组盘表状态为20
266   - ReceiptContainerDetail receiptContainerDetail = new ReceiptContainerDetail();
267   - receiptContainerDetail.setStatus(20);
268   - receiptContainerDetail.setLastUpdated(new Date());
269   - receiptContainerDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
270   - LambdaUpdateWrapper<ReceiptContainerDetail> receiptContainerDetailLambdaUpdateWrapper = Wrappers.lambdaUpdate();
271   - receiptContainerDetailLambdaUpdateWrapper.eq(ReceiptContainerDetail::getReceiptId,receiptDetail.getReceiptId());
272   - if (! receiptContainerDetailService.update(receiptContainerDetail, receiptContainerDetailLambdaUpdateWrapper))
273   - throw new ServiceException("更新组盘状态失败");
  313 +// //修改入库明细
  314 +// if (task.getInternalTaskType()==100){
  315 +// ReceiptDetail receiptDetail = receiptDetailService.queryflow(receiptDetailService.getById(record.getId()));
  316 +// if (!receiptDetailService.updateById(receiptDetail)){
  317 +// throw new ServiceException("更新状态失败");
  318 +// }
  319 +// receiptDetailService.updateReceiptHeaderLastStatus(receiptDetail.getReceiptId());
  320 +//
  321 +// //修改组盘表状态为20
  322 +// ReceiptContainerDetail receiptContainerDetail = new ReceiptContainerDetail();
  323 +// receiptContainerDetail.setStatus(20);
  324 +// receiptContainerDetail.setLastUpdated(new Date());
  325 +// receiptContainerDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
  326 +// LambdaUpdateWrapper<ReceiptContainerDetail> receiptContainerDetailLambdaUpdateWrapper = Wrappers.lambdaUpdate();
  327 +// receiptContainerDetailLambdaUpdateWrapper.eq(ReceiptContainerDetail::getReceiptId,receiptDetail.getReceiptId());
  328 +// if (! receiptContainerDetailService.update(receiptContainerDetail, receiptContainerDetailLambdaUpdateWrapper))
  329 +// throw new ServiceException("更新组盘状态失败");
  330 +// }
  331 +//
  332 +// //修改出库单状态
  333 +// if (task.getInternalTaskType()==200){
  334 +// LambdaQueryWrapper<TaskDetail> taskDetailLambdaQueryWrapper = Wrappers.lambdaQuery();
  335 +// taskDetailLambdaQueryWrapper.eq(TaskDetail::getTaskId,task.getId());
  336 +// List<TaskDetail> taskDetailList = taskDetailService.list(taskDetailLambdaQueryWrapper);
  337 +//
  338 +// for (TaskDetail taskDeatails: taskDetailList) {
  339 +// LambdaQueryWrapper<ShipmentDetail> shipmentDetailLambdaQueryWrapper = Wrappers.lambdaQuery();
  340 +// shipmentDetailLambdaQueryWrapper.eq(ShipmentDetail::getId,taskDeatails.getBillDetailId());
  341 +//
  342 +// ShipmentHeader shipmentHeader =new ShipmentHeader();
  343 +// shipmentHeader.setId(shipmentDetailService.getOne(shipmentDetailLambdaQueryWrapper).getShipmentId());
  344 +// shipmentHeader.setFirstStatus(100);
  345 +// shipmentHeader.setLastStatus(100);
  346 +// shipmentHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
  347 +// shipmentHeader.setLastUpdated(new Date());
  348 +// shipmentHeaderService.updateById(shipmentHeader);
  349 +// }
  350 +// }
  351 +
  352 +
274 353 }
275 354 return AjaxResult.success("下发任务成功", task);
276 355 }
... ... @@ -491,12 +570,37 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
491 570 receiptContainerDetailLambdaUpdateWrapper.eq(ReceiptContainerDetail::getReceiptId, DataUtils.getInteger(map.get("receiptId")));
492 571 if (! receiptContainerDetailService.update(receiptContainerDetail, receiptContainerDetailLambdaUpdateWrapper))
493 572 throw new ServiceException("更新组盘状态失败");
494   - //修改入库明细
495   - ReceiptDetail receiptDetail = receiptDetailService.queryflow(receiptDetailService.getById(DataUtils.getInteger(map.get("receiptDetailId"))));
496   - if (!receiptDetailService.updateById(receiptDetail)){
497   - throw new ServiceException("更新状态失败");
  573 +
  574 + if (task.getInternalTaskType()==100){
  575 + //修改入库明细
  576 + ReceiptDetail receiptDetail = receiptDetailService.queryflow(receiptDetailService.getById(DataUtils.getInteger(map.get("receiptDetailId"))));
  577 + if (!receiptDetailService.updateById(receiptDetail)){
  578 + throw new ServiceException("更新状态失败");
  579 + }
  580 + receiptDetailService.updateReceiptHeaderLastStatus(receiptDetail.getReceiptId());
  581 + }
  582 +
  583 + //修改出库单明细
  584 + if (task.getInternalTaskType()==200){
  585 + LambdaQueryWrapper<TaskDetail> taskDetailLambdaQueryWrapper = Wrappers.lambdaQuery();
  586 + taskDetailLambdaQueryWrapper.eq(TaskDetail::getTaskId,task.getId());
  587 + List<TaskDetail> taskDetailList = taskDetailService.list(taskDetailLambdaQueryWrapper);
  588 +
  589 + for (TaskDetail taskDeatails: taskDetailList) {
  590 + LambdaQueryWrapper<ShipmentDetail> shipmentDetailLambdaQueryWrapper = Wrappers.lambdaQuery();
  591 + shipmentDetailLambdaQueryWrapper.eq(ShipmentDetail::getId,taskDeatails.getBillDetailId());
  592 +
  593 + ShipmentHeader shipmentHeader =new ShipmentHeader();
  594 + shipmentHeader.setId(shipmentDetailService.getOne(shipmentDetailLambdaQueryWrapper).getShipmentId());
  595 + shipmentHeader.setFirstStatus(100);
  596 + shipmentHeader.setLastStatus(100);
  597 + shipmentHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
  598 + shipmentHeader.setLastUpdated(new Date());
  599 + shipmentHeaderService.updateById(shipmentHeader);
  600 + }
498 601 }
499   - receiptDetailService.updateReceiptHeaderLastStatus(receiptDetail.getReceiptId());
  602 +
  603 +
500 604 }
501 605  
502 606 }
... ...
src/main/resources/mybatis/shipment/WaveFlowDetailMapper.xml renamed to src/main/resources/mybatis/config/WaveFlowDetailMapper.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.shipment.waveFlowDetail.mapper.WaveFlowDetailMapper">
4   - <resultMap id="BaseResultMap" type="com.huaheng.pc.shipment.waveFlowDetail.domain.WaveFlowDetail">
  3 +<mapper namespace="com.huaheng.pc.config.waveFlowDetail.mapper.WaveFlowDetailMapper">
  4 + <resultMap id="BaseResultMap" type="com.huaheng.pc.config.waveFlowDetail.domain.WaveFlowDetail">
5 5 <!--@mbg.generated-->
6 6 <id column="id" jdbcType="INTEGER" property="id" />
7 7 <result column="headerId" jdbcType="INTEGER" property="headerId" />
... ... @@ -23,16 +23,12 @@
23 23 <result column="userDef2" jdbcType="VARCHAR" property="userDef2" />
24 24 <result column="userDef3" jdbcType="VARCHAR" property="userDef3" />
25 25 <result column="userDef4" jdbcType="VARCHAR" property="userDef4" />
26   - <result column="userDef5" jdbcType="VARCHAR" property="userDef5" />
27   - <result column="userDef6" jdbcType="VARCHAR" property="userDef6" />
28   - <result column="userDef7" jdbcType="VARCHAR" property="userDef7" />
29   - <result column="userDef8" jdbcType="VARCHAR" property="userDef8" />
30 26 <result column="processStamp" jdbcType="VARCHAR" property="processStamp" />
31 27 </resultMap>
32 28 <sql id="Base_Column_List">
33 29 <!--@mbg.generated-->
34 30 id, headerId, waveFlowCode, warehouseCode, `sequence`, waveStepCode, waveStepName,
35 31 value1, value2, value3, value4, created, createdBy, lastUpdated, lastUpdatedBy, version,
36   - userDef1, userDef2, userDef3, userDef4, userDef5, userDef6, userDef7, userDef8, processStamp
  32 + userDef1, userDef2, userDef3, userDef4, processStamp
37 33 </sql>
38 34 </mapper>
39 35 \ No newline at end of file
... ...
src/main/resources/mybatis/shipment/WaveFlowHeaderMapper.xml renamed to src/main/resources/mybatis/config/WaveFlowHeaderMapper.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.shipment.waveFlowHeader.mapper.WaveFlowHeaderMapper">
4   - <resultMap id="BaseResultMap" type="com.huaheng.pc.shipment.waveFlowHeader.domain.WaveFlowHeader">
  3 +<mapper namespace="com.huaheng.pc.config.waveFlowHeader.mapper.WaveFlowHeaderMapper">
  4 + <resultMap id="BaseResultMap" type="com.huaheng.pc.config.waveFlowHeader.domain.WaveFlowHeader">
5 5 <!--@mbg.generated-->
6 6 <id column="id" jdbcType="INTEGER" property="id" />
7 7 <result column="code" jdbcType="VARCHAR" property="code" />
... ... @@ -15,15 +15,11 @@
15 15 <result column="userDef2" jdbcType="VARCHAR" property="userDef2" />
16 16 <result column="userDef3" jdbcType="VARCHAR" property="userDef3" />
17 17 <result column="userDef4" jdbcType="VARCHAR" property="userDef4" />
18   - <result column="userDef5" jdbcType="VARCHAR" property="userDef5" />
19   - <result column="userDef6" jdbcType="VARCHAR" property="userDef6" />
20   - <result column="userDef7" jdbcType="VARCHAR" property="userDef7" />
21   - <result column="userDef8" jdbcType="VARCHAR" property="userDef8" />
22 18 <result column="processStamp" jdbcType="VARCHAR" property="processStamp" />
23 19 </resultMap>
24 20 <sql id="Base_Column_List">
25 21 <!--@mbg.generated-->
26 22 id, code, warehouseCode, created, createdBy, lastUpdated, lastUpdatedBy, version,
27   - userDef1, userDef2, userDef3, userDef4, userDef5, userDef6, userDef7, userDef8, processStamp
  23 + userDef1, userDef2, userDef3, userDef4, processStamp
28 24 </sql>
29 25 </mapper>
30 26 \ No newline at end of file
... ...
src/main/resources/mybatis/shipment/WaveMapper.xml renamed to src/main/resources/mybatis/config/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.shipment.wave.mapper.WaveMapper">
4   - <resultMap id="BaseResultMap" type="com.huaheng.pc.shipment.wave.domain.Wave">
  3 +<mapper namespace="com.huaheng.pc.config.wave.mapper.WaveMapper">
  4 + <resultMap id="BaseResultMap" type="com.huaheng.pc.config.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" />
8 8 <result column="waveName" jdbcType="VARCHAR" property="waveName" />
9 9 <result column="masterCode" jdbcType="VARCHAR" property="masterCode" />
10   - <result column="enable" jdbcType="INTEGER" property="enable" />
  10 + <result column="status" jdbcType="INTEGER" property="status" />
11 11 <result column="currentWaveStep" jdbcType="VARCHAR" property="currentWaveStep" />
12 12 <result column="lastWaveStep" jdbcType="VARCHAR" property="lastWaveStep" />
13 13 <result column="totalShipments" jdbcType="INTEGER" property="totalShipments" />
... ... @@ -32,10 +32,6 @@
32 32 <result column="userDef2" jdbcType="VARCHAR" property="userDef2" />
33 33 <result column="userDef3" jdbcType="VARCHAR" property="userDef3" />
34 34 <result column="userDef4" jdbcType="VARCHAR" property="userDef4" />
35   - <result column="userDef5" jdbcType="VARCHAR" property="userDef5" />
36   - <result column="userDef6" jdbcType="VARCHAR" property="userDef6" />
37   - <result column="userDef7" jdbcType="VARCHAR" property="userDef7" />
38   - <result column="userDef8" jdbcType="VARCHAR" property="userDef8" />
39 35 <result column="processStamp" jdbcType="VARCHAR" property="processStamp" />
40 36 <result column="closed" jdbcType="INTEGER" property="closed" />
41 37 <result column="closedBy" jdbcType="VARCHAR" property="closedBy" />
... ... @@ -44,10 +40,10 @@
44 40 </resultMap>
45 41 <sql id="Base_Column_List">
46 42 <!--@mbg.generated-->
47   - id, warehouseCode, waveName, masterCode, `enable`, currentWaveStep, lastWaveStep,
  43 + id, warehouseCode, waveName, masterCode, `status`, currentWaveStep, lastWaveStep,
48 44 totalShipments, totalLines, totalQty, startedAt, completedAt, waveMode, errorMessage,
49 45 locked, replenishmentReqd, messageId, runBy, releasedBy, releasedAt, created, createdBy,
50   - lastUpdated, lastUpdatedBy, version, userDef1, userDef2, userDef3, userDef4, userDef5,
51   - userDef6, userDef7, userDef8, processStamp, closed, closedBy, closedAt, released
  46 + lastUpdated, lastUpdatedBy, version, userDef1, userDef2, userDef3, userDef4, processStamp,
  47 + closed, closedBy, closedAt, released
52 48 </sql>
53 49 </mapper>
54 50 \ No newline at end of file
... ...
src/main/resources/mybatis/shipment/WaveMasterMapper.xml renamed to src/main/resources/mybatis/config/WaveMasterMapper.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.shipment.waveMaster.mapper.WaveMasterMapper">
4   - <resultMap id="BaseResultMap" type="com.huaheng.pc.shipment.waveMaster.domain.WaveMaster">
  3 +<mapper namespace="com.huaheng.pc.config.waveMaster.mapper.WaveMasterMapper">
  4 + <resultMap id="BaseResultMap" type="com.huaheng.pc.config.waveMaster.domain.WaveMaster">
5 5 <!--@mbg.generated-->
6 6 <id column="id" jdbcType="INTEGER" property="id" />
7 7 <result column="code" jdbcType="VARCHAR" property="code" />
... ... @@ -33,10 +33,6 @@
33 33 <result column="userDef2" jdbcType="VARCHAR" property="userDef2" />
34 34 <result column="userDef3" jdbcType="VARCHAR" property="userDef3" />
35 35 <result column="userDef4" jdbcType="VARCHAR" property="userDef4" />
36   - <result column="userDef5" jdbcType="VARCHAR" property="userDef5" />
37   - <result column="userDef6" jdbcType="VARCHAR" property="userDef6" />
38   - <result column="userDef7" jdbcType="VARCHAR" property="userDef7" />
39   - <result column="userDef8" jdbcType="VARCHAR" property="userDef8" />
40 36 <result column="processStamp" jdbcType="VARCHAR" property="processStamp" />
41 37 </resultMap>
42 38 <sql id="Base_Column_List">
... ...
src/main/resources/templates/inventory/cycleCountDetail/add.html
... ... @@ -4,11 +4,11 @@
4 4 <head th:include="include :: header"></head>
5 5 <body class="white-bg">
6 6 <div class="container-div">
7   - <!--<div class="wrapper wrapper-content animated fadeInRight ibox-content">-->
8   - <input type="hidden" id="headId" name="headId" th:value="${headId}">
  7 + <!--<input type="hidden" id="cycleCountHeadId" name="cycleCountHeadId" th:value="${cycleCountHeadId}">-->
9 8 <div class="row">
10 9 <div class="col-sm-12 select-info">
11 10 <form id="inventory-form">
  11 + <input type="hidden" id="cycleCountHeadId" name="cycleCountHeadId" th:value="${cycleCountHeadId}">
12 12 <div class="select-list">
13 13 <ul>
14 14 <li>
... ... @@ -29,24 +29,18 @@
29 29 <!--<li>
30 30 物料规格:<input type="text" name="materialSpec"/>
31 31 </li>-->
32   - <li>
33   - 物料类型:
34   - <select id="materialType" name="materialType" th:with="type=${@dict.getType('materialType')}">
35   - <option value="">所有</option>
36   - <option th:each="e : ${type}" th:text="${e['dictLabel']}" th:value="${e['dictValue']}"></option>
37   - </select>
38   - </li>
  32 +
39 33  
40 34 <li>
41 35 &nbsp;&nbsp;供 应 商:<input type="text" name="supplierCode"/>
42 36 </li>
43   - <li>
  37 + <!--<li>
44 38 库存状态:
45 39 <select id="status" name="status" th:with="inventoryStatus=${@dict.getType('inventoryStatus')}">
46 40 <option value="">所有</option>
47 41 <option th:each="e : ${inventoryStatus}" th:text="${e['dictLabel']}" th:value="${e['dictValue']}"></option>
48 42 </select>
49   - </li>
  43 + </li>-->
50 44 <li>
51 45 &nbsp;&nbsp;&nbsp;项 目 号:<input type="text" id="project" name="project"/>
52 46 </li>
... ... @@ -77,12 +71,12 @@
77 71 <script th:inline="javascript">
78 72 var addFlag = [[${@permission.hasPermi('inventoryHeader:cycleCountDetail:add')}]];
79 73 // var removeFlag = [[${@permission.hasPermi('inventoryHeader:inventoryHeader:remove')}]];
80   - var prefix = ctx + "inventory/inventory";
81   - var prefix_cycleDetails = ctx + "inventory/cyclecountDetail";
  74 + var prefix = ctx + "inventory/inventoryDetail";
  75 + var prefix_cycleDetails = ctx + "inventory/cycleCountDetail";
82 76 var inventoryStatus=[[${@dict.getType('inventoryStatus')}]];
83 77 $(function() {
84 78 $("#bootstrap-table").bootstrapTable({
85   - url: prefix + "/list",
  79 + url: prefix + "/inventoryDetailLook",
86 80 method:"post",
87 81 contentType: "application/x-www-form-urlencoded",
88 82 cache: false, // 是否使用缓存
... ... @@ -124,359 +118,182 @@
124 118 }
125 119 },
126 120 {
127   - field : 'id',
128   - title : 'id号'
  121 + field: 'id',
  122 + title: '明细ID',
  123 + sortable: true
129 124 },
130 125 {
131   - field : 'locationId',
132   - title : '库位id' ,
133   - visible:false
  126 + field: 'inventoryHeaderId',
  127 + title: '库存头ID'
134 128 },
135 129 {
136   - field : 'locationCode',
137   - title : '库位编号'
  130 + field: 'locationCode',
  131 + title: '库位编号'
138 132 },
139 133 {
140   - field : 'containerCode',
141   - title : '容器编号'
  134 + field: 'containerCode',
  135 + title: '容器编号'
142 136 },
  137 +
143 138 {
144   - field : 'sourceCode',
145   - title : '上游系统单号',
146   - visible:false
  139 + field: 'materialCode',
  140 + title: '存货编码'
147 141 },
  142 +
148 143 {
149   - field : 'sourceLine',
150   - title : '上游系统行号',
151   - visible:false
  144 + field: 'materialName',
  145 + title: '物料名称'
152 146 },
153 147 {
154   - field : 'companyId',
155   - title : '货主id',
156   - visible:false
  148 + field: 'materialSpec',
  149 + title: '物料规格'
157 150 },
158 151 {
159   - field : 'companyCode',
160   - title : '货主编码'
  152 + field: 'materialUnit',
  153 + title: '物料单位'
161 154 },
162 155 {
163   - field : 'materialId',
164   - title : '物料Id' ,
165   - visible:false
  156 + field: 'qty',
  157 + title: '数量'
166 158 },
167 159 {
168   - field : 'materialCode',
169   - title : '存货编码'
  160 + field: 'taskQty',
  161 + title: '预定执行数量'
170 162 },
171 163 {
172   - field : 'materialName',
173   - title : '物料名称'
  164 + field: 'lockedQty',
  165 + title: '冻结数量'
174 166 },
175 167 {
176   - field : 'materialSpec',
177   - title : '物料规格'
  168 + field: 'companyCode',
  169 + title: '货主编码'
178 170 },
179 171 {
180   - field : 'supplierCode',
181   - title : '供应商'
  172 + field: 'receiptCode',
  173 + title: '入库单编码'
182 174 },
183 175 {
184   - field : 'receiptId',
185   - title : '入库单id' ,
186   - visible:false
  176 + field: 'receiptDetailId',
  177 + title: '入库单明细ID',
  178 + visible: true
187 179 },
188 180 {
189   - field : 'status',
190   - title : '库存状态' ,
191   - align: 'center',
192   - formatter: function(value, row, index) {
193   - return $.table.selectDictLabel(inventoryStatus, value);
194   - }
  181 + field: 'batch',
  182 + title: '批次',
  183 + sortable: false,
  184 + visible: false
  185 + },
  186 + {
  187 + field: 'lot',
  188 + title: '批号',
  189 + sortable: false,
  190 + visible: false
195 191 },
196 192 {
197   - field : 'qty',
198   - title : '数量'
  193 + field: 'projectNo',
  194 + title: '项目号',
  195 + sortable: true
199 196 },
200 197 {
201   - field : 'taskQty',
202   - title : '执行预定数量'
  198 + field: 'supplierCode',
  199 + title: '供应商编码',
  200 + visible: true
203 201 },
204 202 {
205   - field : 'receiptCode',
206   - title : '入库单编码'
  203 + field: 'manufactureDate',
  204 + title: '生产日期',
  205 + sortable: true,
  206 + visible: false
207 207 },
208 208 {
209   - field : 'receiptDetailId',
210   - title : '入库单明细id',
211   - visible:false
  209 + field: 'expirationDate',
  210 + title: '失效日期',
  211 + sortable: true,
  212 + visible: false
212 213 },
213 214 {
214   - field : 'batch',
215   - title : '批次',
216   - visible:false
  215 + field: 'inventorySts',
  216 + title: '库存状态',
  217 + align: 'center',
  218 + formatter: function (value, row, index) {
  219 + return $.table.selectDictLabel(inventoryStatus, value);
  220 + }
217 221 },
  222 +
218 223 {
219   - field : 'lot',
220   - title : '批号',
221   - visible:false
  224 + field: 'referCode',
  225 + title: '上游单号'
222 226 },
223 227 {
224   - field : 'project',
225   - title : '项目号',
226   - visible:false
  228 + field: 'referDetailId',
  229 + title: '上游单号行号'
227 230 },
228 231 {
229   - field : 'manufactureDate',
230   - title : '生产日期' ,
231   - visible:false
  232 + field: 'qcCheck',
  233 + title: '质检'
232 234 },
233 235 {
234   - field : 'expirationDate',
235   - title : '失效日期' ,
236   - visible:false
  236 + field: 'weight',
  237 + title: '重量'
237 238 },
238 239 {
239   - field : 'costPrice',
240   - title : '成本' ,
241   - visible:false
  240 + field: 'attributeId',
  241 + title: '属性号',
  242 + visible: false
242 243 },
243 244 {
244   - field : 'listPrice',
245   - title : '标价' ,
246   - visible:false
  245 + field: 'attribute1',
  246 + title: '属性1',
  247 + visible: false
247 248 },
248 249 {
249   - field : 'netPrice',
250   - title : '净价' ,
251   - visible:false
  250 + field: 'attribute2',
  251 + title: '属性2',
  252 + visible: false
252 253 },
253 254 {
254   - field : 'created',
255   - title : '入库时间'
  255 + field: 'attribute3',
  256 + title: '属性3',
  257 + visible: false
256 258 },
257 259 {
258   - field : 'createdBy',
259   - title : '创建用户' ,
260   - visible:false
  260 + field: 'lockCode',
  261 + title: '锁',
261 262 },
262 263 {
263   - field : 'lastUpdated',
264   - title : '最后修改时间'
  264 + field: 'lastCycleCountDate',
  265 + title: '上次盘点日期',
  266 + visible: false,
  267 + sortable: true
265 268 },
266 269 {
267   - field : 'lastUpdatedBy',
268   - title : '更新用户'
  270 + field: 'created',
  271 + title: '入库日期',
  272 + sortable: true
269 273 },
270 274 {
271   - field : 'userDef1',
272   - title : '自定义字段1' ,
273   - visible:false
  275 + field: 'createdBy',
  276 + title: '创建用户',
  277 + visible: false
274 278 },
275 279 {
276   - field : 'userDef2',
277   - title : '自定义字段2' ,
278   - visible:false
  280 + field: 'lastUpdated',
  281 + title: '最后修改时间',
  282 + sortable: true
279 283 },
280 284 {
281   - field : 'userDef3',
282   - title : '自定义字段3' ,
283   - visible:false
284   - }
  285 + field: 'lastUpdatedBy',
  286 + title: '更新用户'
  287 + },
285 288 ]
286 289 });
287 290  
288   - // var options = {
289   - // url: prefix + "/list",
290   - // createUrl: prefix + "/add",
291   - // updateUrl: prefix + "/edit/{id}",
292   - // removeUrl: prefix + "/remove",
293   - // queryParams: queryParams,
294   - // modalName: "库存",
295   - // search: false,
296   - // sortName: "id",
297   - // sortOrder: "desc",
298   - // columns: [
299   - // {
300   - // checkbox: true
301   - // },
302   - // {
303   - // title: '操作',
304   - // align: 'center',
305   - // formatter: function(value, row, index) {
306   - // var actions = [];
307   - // actions.push('<a class="btn btn-success btn-xs ' + addFlag + '" href="#" onclick="addDetail(\'' + row.id + '\')"><i class="fa fa-edit"></i>添加盘点明细</a> ');
308   - // // actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
309   - // return actions.join('');
310   - // }
311   - // },
312   - // {
313   - // field : 'id',
314   - // title : 'id号'
315   - // },
316   - // {
317   - // field : 'locationId',
318   - // title : '库位id' ,
319   - // visible:false
320   - // },
321   - // {
322   - // field : 'locationCode',
323   - // title : '库位编号'
324   - // },
325   - // {
326   - // field : 'containerCode',
327   - // title : '容器编号'
328   - // },
329   - // {
330   - // field : 'sourceCode',
331   - // title : '上游系统单号',
332   - // visible:false
333   - // },
334   - // {
335   - // field : 'sourceLine',
336   - // title : '上游系统行号',
337   - // visible:false
338   - // },
339   - // {
340   - // field : 'companyId',
341   - // title : '货主id',
342   - // visible:false
343   - // },
344   - // {
345   - // field : 'companyCode',
346   - // title : '货主编码'
347   - // },
348   - // {
349   - // field : 'materialId',
350   - // title : '物料Id' ,
351   - // visible:false
352   - // },
353   - // {
354   - // field : 'materialCode',
355   - // title : '存货编码'
356   - // },
357   - // {
358   - // field : 'materialName',
359   - // title : '物料名称'
360   - // },
361   - // {
362   - // field : 'materialSpec',
363   - // title : '物料规格'
364   - // },
365   - // {
366   - // field : 'supplierCode',
367   - // title : '供应商'
368   - // },
369   - // {
370   - // field : 'receiptId',
371   - // title : '入库单id' ,
372   - // visible:false
373   - // },
374   - // {
375   - // field : 'status',
376   - // title : '库存状态' ,
377   - // align: 'center',
378   - // formatter: function(value, row, index) {
379   - // return $.table.selectDictLabel(inventoryStatus, value);
380   - // }
381   - // },
382   - // {
383   - // field : 'qty',
384   - // title : '数量'
385   - // },
386   - // {
387   - // field : 'taskQty',
388   - // title : '执行预定数量'
389   - // },
390   - // {
391   - // field : 'receiptCode',
392   - // title : '入库单编码'
393   - // },
394   - // {
395   - // field : 'receiptDetailId',
396   - // title : '入库单明细id',
397   - // visible:false
398   - // },
399   - // {
400   - // field : 'batch',
401   - // title : '批次',
402   - // visible:false
403   - // },
404   - // {
405   - // field : 'lot',
406   - // title : '批号',
407   - // visible:false
408   - // },
409   - // {
410   - // field : 'project',
411   - // title : '项目号',
412   - // visible:false
413   - // },
414   - // {
415   - // field : 'manufactureDate',
416   - // title : '生产日期' ,
417   - // visible:false
418   - // },
419   - // {
420   - // field : 'expirationDate',
421   - // title : '失效日期' ,
422   - // visible:false
423   - // },
424   - // {
425   - // field : 'costPrice',
426   - // title : '成本' ,
427   - // visible:false
428   - // },
429   - // {
430   - // field : 'listPrice',
431   - // title : '标价' ,
432   - // visible:false
433   - // },
434   - // {
435   - // field : 'netPrice',
436   - // title : '净价' ,
437   - // visible:false
438   - // },
439   - // {
440   - // field : 'created',
441   - // title : '入库时间'
442   - // },
443   - // {
444   - // field : 'createdBy',
445   - // title : '创建用户' ,
446   - // visible:false
447   - // },
448   - // {
449   - // field : 'lastUpdated',
450   - // title : '最后修改时间'
451   - // },
452   - // {
453   - // field : 'lastUpdatedBy',
454   - // title : '更新用户'
455   - // },
456   - // {
457   - // field : 'userDef1',
458   - // title : '自定义字段1' ,
459   - // visible:false
460   - // },
461   - // {
462   - // field : 'userDef2',
463   - // title : '自定义字段2' ,
464   - // visible:false
465   - // },
466   - // {
467   - // field : 'userDef3',
468   - // title : '自定义字段3' ,
469   - // visible:false
470   - // }
471   - // ]
472   - // };
473   - // $.table.init(options);
474   - // $("#search").click();
475 291 });
476 292  
477   - function addDetail(id) {
478   - addInner($('#headId').val(),id);
479   - }
  293 + /*function addDetail(cycleCountHeadId) {
  294 + addInner($('cycleCountHeadId').val(),cycleCountHeadId);
  295 + }*/
  296 +
480 297 function addDetails() {
481 298 var rows=$("#bootstrap-table").bootstrapTable('getSelections');
482 299 if (rows.length < 1) {
... ... @@ -487,17 +304,17 @@
487 304 rows.forEach(function (item) {
488 305 ids.push(item.id);
489 306 });
490   - addInner($('#headId').val(),ids.join(','));
  307 + addInner($('#cycleCountHeadId').val(),ids.join(','));
491 308 }
492 309  
493   - function addInner(headId,ids) {
  310 + function addInner(cycleCountHeadId,ids) {
494 311 $.ajax({
495 312 cache : true,
496 313 type : "post",
497 314 url : prefix_cycleDetails + "/add",
498 315 data:{
499   - headId:headId,
500   - inventoryIds:ids
  316 + cycleCountHeadId:cycleCountHeadId,
  317 + inventoryDetailIdIds:ids
501 318 },
502 319 async : false,
503 320 error : function(request) {
... ...
src/main/resources/templates/inventory/cycleCountDetail/addGoods.html deleted
1   -<!DOCTYPE HTML>
2   -<html lang="zh" xmlns:th="http://www.thymeleaf.org">
3   -<meta charset="utf-8">
4   -<head th:include="include :: header"></head>
5   -<body class="white-bg">
6   - <div class="wrapper wrapper-content animated fadeInRight ibox-content">
7   - <p style="color:#BEBEBE">*&nbsp;&nbsp;该页面只适用于盘点时货架上有货,库存单据中无货,盘点时需要补货的情况。系统数量默认为0!</p>
8   - <form class="form-horizontal m" id="form-cyclecountDetail-addGoods" >
9   - <input type="hidden" id="headId" name="headId" th:value="${headId}">
10   - <div class="form-group">
11   - <label class="col-sm-3 control-label">盘点单编号:</label>
12   - <div class="col-sm-8">
13   -
14   - <input id="code" name="code" th:value="${code}" class="form-control" type="text" readonly="readonly">
15   - </div>
16   - </div>
17   - <div class="form-group">
18   - <label class="col-sm-3 control-label">货主编码:</label>
19   - <div class="col-sm-8">
20   - <!--<input id="companyId" name="companyId" type="hidden" th:value="*{companyId}"> -->
21   - <input id="companyCode" name="companyCode" th:value="${companyCode}" class="form-control" type="text" readonly="readonly">
22   - </div>
23   - </div>
24   - <div class="form-group">
25   - <label class="col-sm-3 control-label">存货编码:</label>
26   - <div class="col-sm-8">
27   - <input id="materialCode" name="materialCode" class="form-control" type="text" onkeyup="this.value=this.value.replace(/(^\s*)|(\s*$)/g,'')">
28   - </div>
29   - </div>
30   - <div class="form-group">
31   - <label class="col-sm-3 control-label">库位编码:</label>
32   - <div class="col-sm-8">
33   - <input id="locationCode" name="locationCode" class="form-control" type="text" onkeyup="this.value=this.value.replace(/(^\s*)|(\s*$)/g,'')">
34   - </div>
35   - </div>
36   - <div class="form-group">
37   - <label class="col-sm-3 control-label">容器编号:</label>
38   - <div class="col-sm-8">
39   - <input id="containerCode" name="containerCode" class="form-control" type="text" onkeyup="this.value=this.value.replace(/(^\s*)|(\s*$)/g,'')">
40   - </div>
41   - </div>
42   - <div class="form-group">
43   - <label class="col-sm-3 control-label">库存状态:</label>
44   - <div class="col-sm-8">
45   - <select id="inventoryStatus" name="inventoryStatus" class="form-control m-b" th:with="inventoryStatus=${@dict.getType('inventoryStatus')}">
46   - <option th:each="dict : ${inventoryStatus}" th:text="${dict['dictLabel']}" th:value="${dict['dictValue']}"></option>
47   - </select>
48   - </div>
49   - </div>
50   - <div class="form-group">
51   - <label class="col-sm-3 control-label">批次:</label>
52   - <div class="col-sm-8">
53   - <input id="batch" name="batch" class="form-control" type="text" onkeyup="this.value=this.value.replace(/(^\s*)|(\s*$)/g,'')">
54   - </div>
55   - </div>
56   - <div class="form-group">
57   - <label class="col-sm-3 control-label">批号:</label>
58   - <div class="col-sm-8">
59   - <input id="lot" name="lot" class="form-control" type="text" onkeyup="this.value=this.value.replace(/(^\s*)|(\s*$)/g,'')">
60   - </div>
61   - </div>
62   - <div class="form-group">
63   - <label class="col-sm-3 control-label">项目号:</label>
64   - <div class="col-sm-8">
65   - <input id="project" name="project" class="form-control" type="text" onkeyup="this.value=this.value.replace(/(^\s*)|(\s*$)/g,'')">
66   - </div>
67   - </div>
68   - <div class="form-group">
69   - <label class="col-sm-3 control-label">生产日期:</label>
70   - <div class="col-sm-8">
71   - <input id="manufactureDate" name="manufactureDate" class="form-control" type="text" >
72   - </div>
73   - </div>
74   - <div class="form-group">
75   - <label class="col-sm-3 control-label">失效日期:</label>
76   - <div class="col-sm-8">
77   - <input id="expirationDate" name="expirationDate" class="form-control" type="text">
78   - </div>
79   - </div>
80   -
81   - <div class="form-group">
82   - <label class="col-sm-3 control-label">系统数量:</label>
83   - <div class="col-sm-8">
84   - <input id="systemQty" name="systemQty" value="0" class="form-control" type="text" onkeyup="this.value=this.value.replace(/(^\s*)|(\s*$)/g,'')" readonly="readonly">
85   - </div>
86   - </div>
87   - <div class="form-group">
88   - <div class="form-control-static col-sm-offset-9">
89   - <button type="submit" class="btn btn-primary">提交</button>
90   - <button onclick="$.modal.close()" class="btn btn-danger" type="button">关闭</button>
91   - </div>
92   - </div>
93   - </form>
94   - </div>
95   - <div th:include="include::footer"></div>
96   - <script type="text/javascript">
97   - var prefix = ctx + "inventory/cyclecountDetail"
98   - $("#form-cyclecountDetail-addGoods").validate({
99   - rules:{
100   - materialCode:{
101   - required:true,
102   - },
103   - containerCode:{
104   - required:true,
105   - },
106   - locationCode:{
107   - required:true,
108   - },
109   - //必须填值判定
110   - },
111   - submitHandler: function(form) {
112   - $.operate.save(prefix + "/addGoods", $('#form-cyclecountDetail-addGoods').serialize());
113   - }
114   - });
115   - /*时间弹框*/
116   - $(function () {
117   - layui.use('laydate', function() {
118   - var laydate = layui.laydate;
119   - laydate.render({ elem: '#manufactureDate',max: 0, theme: 'molv' ,type: 'datetime'});
120   - laydate.render({ elem: '#expirationDate',min: 0, theme: 'molv' ,type: 'datetime'});
121   - });
122   - })
123   - /*function addDetail(id) {
124   - addInner($('#headId').val(),id);
125   - }
126   - function addDetails() {
127   - var rows=$("#bootstrap-table").bootstrapTable('getSelections');
128   - if (rows.length < 1) {
129   - $.modal.alertWarning("请先选择记录");
130   - return;
131   - }
132   - var ids =[];
133   - rows.forEach(function (item) {
134   - ids.push(item.id);
135   - });
136   - addInner($('#headId').val(),ids.join(','));
137   - }
138   -
139   - function addInner(headId,ids) {
140   - $.ajax({
141   - cache : true,
142   - type : "post",
143   - url : prefix_cycleDetails + "/add",
144   - data:{
145   - headId:headId,
146   - inventoryIds:ids
147   - },
148   - async : false,
149   - error : function(request) {
150   - $.modal.alertError("请求失败!");
151   - },
152   - success : function(data) {
153   - if(data.code=="200"){
154   - $.modal.alertSuccess("成功");
155   - parent.update();
156   - }else{
157   - $.modal.alertError(data.msg)
158   - }
159   - }
160   - })
161   - }
162   -
163   - function isFloat( str ) {
164   - for(i=0;i<str.length;i++) {
165   - if ((str.charAt(i)<"0" || str.charAt(i)>"9")&& str.charAt(i) != '.'){
166   - return false;
167   - }
168   - }
169   - return true;
170   - }*/
171   - </script>
172   -</body>
173   -</html>
src/main/resources/templates/inventory/cycleCountDetail/cycleCountDetail.html
... ... @@ -10,7 +10,7 @@
10 10 <ul>
11 11 <li>
12 12 <form id="cycleHeader-form">
13   - 盘点主ID:<input type="text" id="cycleCountHeadId" name="cycleCountHeadId" />
  13 + 盘点主ID:<input type="text" id="cycleCountHeadId" name="cycleCountHeadId" readonly="readonly" />
14 14 </form>
15 15 </li>
16 16 <li>
... ... @@ -350,8 +350,8 @@
350 350 function add() {
351 351 var cycleCountHeadId = $('#cycleCountHeadId').val();
352 352 var companyCode = $('#companyCode').val();
353   - if(cycleCountHeadId !=null && cycleCountHeadId!="" && cycleCountHeadId!=undefined && companyCode !=null && companyCode!="" && companyCode!=undefined ){
354   - open("添加盘点明细", prefix+"/add?cycleCountHeadId=" + cycleCountHeadId + "&companyCode=" + companyCode);
  353 + if(cycleCountHeadId !=null && cycleCountHeadId!="" && cycleCountHeadId!=undefined){
  354 + open("添加盘点明细", prefix+"/add?cycleCountHeadId=" + cycleCountHeadId);
355 355 }
356 356 }
357 357 function remove(id) {
... ... @@ -374,16 +374,8 @@
374 374 })
375 375 });
376 376 }
377   - /**盘点补货*/
378   - function addGoods() {
379   - var headId = $('#cycleCountHeadId').val();
380   - var companyCode = $('#companyCode').val();
381   - //var code = $('#code').val();
382   - // var url = prefix+"/addGoods";
383   - $.modal.open("盘点补货",prefix+"/addGoods?headId=" + cycleCountHeadId + "&companyCode=" + companyCode );
384   - }
385   - //
386 377  
  378 + //
387 379 function open(title, url, width, height){
388 380 if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {
389 381 width = 'auto';
... ... @@ -553,20 +545,13 @@
553 545 /*
554 546 剩余无差异确认
555 547 */
556   - function comfirmRemainWithNoGapQty() {
  548 +/* function comfirmRemainWithNoGapQty() {
557 549 $.modal.confirm("确认剩余无差异登记么?", function() {
558 550 var url = prefix + "/comfirmRemainWithNoGapQty";
559 551 var data = { "cycleCountHeadId": $('#cycleCountHeadId').val() };
560 552 postInner(url, data);
561 553 });
562   - }
563   -
564   - /*
565   - 生成调整单
566   - */
567   - function createAdjust() {
568   -
569   - }
  554 + }*/
570 555  
571 556 /*
572 557 差异复盘
... ...
src/main/resources/templates/inventory/cycleCountDetail/edit.html deleted
1   -<!DOCTYPE HTML>
2   -<html lang="zh" xmlns:th="http://www.thymeleaf.org">
3   -<meta charset="utf-8">
4   -<head th:include="include :: header"></head>
5   -<body class="white-bg">
6   - <div class="wrapper wrapper-content animated fadeInRight ibox-content">
7   - <form class="form-horizontal m" id="form-cyclecountDetail-edit" th:object="${cyclecountDetail}">
8   - <input id="id" name="id" th:field="*{id}" type="hidden">
9   - <div class="form-group">
10   - <label class="col-sm-3 control-label">盘点单编码:</label>
11   - <div class="col-sm-8">
12   - <input id="inventoryCode" name="inventoryCode" th:field="*{inventoryCode}" class="form-control" type="text">
13   - </div>
14   - </div>
15   - <div class="form-group">
16   - <label class="col-sm-3 control-label">公司id:</label>
17   - <div class="col-sm-8">
18   - <input id="companyId" name="companyId" th:field="*{companyId}" class="form-control" type="text">
19   - </div>
20   - </div>
21   - <div class="form-group">
22   - <label class="col-sm-3 control-label">库位id:</label>
23   - <div class="col-sm-8">
24   - <input id="locationId" name="locationId" th:field="*{locationId}" class="form-control" type="text">
25   - </div>
26   - </div>
27   - <div class="form-group">
28   - <label class="col-sm-3 control-label">库位编码:</label>
29   - <div class="col-sm-8">
30   - <input id="locationCode" name="locationCode" th:field="*{locationCode}" class="form-control" type="text">
31   - </div>
32   - </div>
33   - <div class="form-group">
34   - <label class="col-sm-3 control-label">物料Id:</label>
35   - <div class="col-sm-8">
36   - <input id="materialId" name="materialId" th:field="*{materialId}" class="form-control" type="text">
37   - </div>
38   - </div>
39   - <div class="form-group">
40   - <label class="col-sm-3 control-label">存货编码:</label>
41   - <div class="col-sm-8">
42   - <input id="materialCode" name="materialCode" th:field="*{materialCode}" class="form-control" type="text">
43   - </div>
44   - </div>
45   - <div class="form-group">
46   - <label class="col-sm-3 control-label">入库单编码:</label>
47   - <div class="col-sm-8">
48   - <input id="receiptCode" name="receiptCode" th:field="*{receiptCode}" class="form-control" type="text">
49   - </div>
50   - </div>
51   - <div class="form-group">
52   - <label class="col-sm-3 control-label">入库单id:</label>
53   - <div class="col-sm-8">
54   - <input id="receiptId" name="receiptId" th:field="*{receiptId}" class="form-control" type="text">
55   - </div>
56   - </div>
57   - <div class="form-group">
58   - <label class="col-sm-3 control-label">入库单明细id:</label>
59   - <div class="col-sm-8">
60   - <input id="receiptDetailId" name="receiptDetailId" th:field="*{receiptDetailId}" class="form-control" type="text">
61   - </div>
62   - </div>
63   - <div class="form-group">
64   - <label class="col-sm-3 control-label">批次:</label>
65   - <div class="col-sm-8">
66   - <input id="batch" name="batch" th:field="*{batch}" class="form-control" type="text">
67   - </div>
68   - </div>
69   - <div class="form-group">
70   - <label class="col-sm-3 control-label">批号:</label>
71   - <div class="col-sm-8">
72   - <input id="lot" name="lot" th:field="*{lot}" class="form-control" type="text">
73   - </div>
74   - </div>
75   - <div class="form-group">
76   - <label class="col-sm-3 control-label">项目号:</label>
77   - <div class="col-sm-8">
78   - <input id="project" name="project" th:field="*{project}" class="form-control" type="text">
79   - </div>
80   - </div>
81   - <div class="form-group">
82   - <label class="col-sm-3 control-label">生产日期:</label>
83   - <div class="col-sm-8">
84   - <input id="manufactureDate" name="manufactureDate" th:field="*{manufactureDate}" class="form-control" type="text">
85   - </div>
86   - </div>
87   - <div class="form-group">
88   - <label class="col-sm-3 control-label">失效日期:</label>
89   - <div class="col-sm-8">
90   - <input id="expirationDate" name="expirationDate" th:field="*{expirationDate}" class="form-control" type="text">
91   - </div>
92   - </div>
93   - <div class="form-group">
94   - <label class="col-sm-3 control-label">库存状态:</label>
95   - <div class="col-sm-8">
96   - <input id="inventoryStatus" name="inventoryStatus" th:field="*{inventoryStatus}" class="form-control" type="text">
97   - </div>
98   - </div>
99   - <div class="form-group">
100   - <label class="col-sm-3 control-label">系统数量:</label>
101   - <div class="col-sm-8">
102   - <input id="systemQty" name="systemQty" th:field="*{systemQty}" class="form-control" type="text">
103   - </div>
104   - </div>
105   - <div class="form-group">
106   - <label class="col-sm-3 control-label">实际盘点数量:</label>
107   - <div class="col-sm-8">
108   - <input id="countedQty" name="countedQty" th:field="*{countedQty}" class="form-control" type="text">
109   - </div>
110   - </div>
111   - <div class="form-group">
112   - <label class="col-sm-3 control-label">差异数量:</label>
113   - <div class="col-sm-8">
114   - <input id="gapQty" name="gapQty" th:field="*{gapQty}" class="form-control" type="text">
115   - </div>
116   - </div>
117   - <div class="form-group">
118   - <label class="col-sm-3 control-label">创建时间:</label>
119   - <div class="col-sm-8">
120   - <input id="created" name="created" th:field="*{created}" class="form-control" type="text">
121   - </div>
122   - </div>
123   - <div class="form-group">
124   - <label class="col-sm-3 control-label">创建用户:</label>
125   - <div class="col-sm-8">
126   - <input id="createdBy" name="createdBy" th:field="*{createdBy}" class="form-control" type="text">
127   - </div>
128   - </div>
129   - <div class="form-group">
130   - <label class="col-sm-3 control-label">更新时间:</label>
131   - <div class="col-sm-8">
132   - <input id="lastUpdated" name="lastUpdated" th:field="*{lastUpdated}" class="form-control" type="text">
133   - </div>
134   - </div>
135   - <div class="form-group">
136   - <label class="col-sm-3 control-label">更新用户:</label>
137   - <div class="col-sm-8">
138   - <input id="lastUpdatedBy" name="lastUpdatedBy" th:field="*{lastUpdatedBy}" class="form-control" type="text">
139   - </div>
140   - </div>
141   - <div class="form-group">
142   - <label class="col-sm-3 control-label">是否有效:</label>
143   - <div class="col-sm-8">
144   - <input id="enable" name="enable" th:field="*{enable}" class="form-control" type="text">
145   - </div>
146   - </div>
147   - <div class="form-group">
148   - <label class="col-sm-3 control-label">自定义字段1:</label>
149   - <div class="col-sm-8">
150   - <input id="userDef1" name="userDef1" th:field="*{userDef1}" class="form-control" type="text">
151   - </div>
152   - </div>
153   - <div class="form-group">
154   - <label class="col-sm-3 control-label">自定义字段2:</label>
155   - <div class="col-sm-8">
156   - <input id="userDef2" name="userDef2" th:field="*{userDef2}" class="form-control" type="text">
157   - </div>
158   - </div>
159   - <div class="form-group">
160   - <label class="col-sm-3 control-label">自定义字段3:</label>
161   - <div class="col-sm-8">
162   - <input id="userDef3" name="userDef3" th:field="*{userDef3}" class="form-control" type="text">
163   - </div>
164   - </div>
165   - <div class="form-group">
166   - <div class="form-control-static col-sm-offset-9">
167   - <button type="submit" class="btn btn-primary">提交</button>
168   - <button onclick="$.modal.close()" class="btn btn-danger" type="button">关闭</button>
169   - </div>
170   - </div>
171   - </form>
172   - </div>
173   - <div th:include="include::footer"></div>
174   - <script type="text/javascript">
175   - var prefix = ctx + "inventory/cyclecountDetail"
176   - $("#form-cyclecountDetail-edit").validate({
177   - rules:{
178   - xxxx:{
179   - required:true,
180   - },
181   - },
182   - submitHandler: function(form) {
183   - $.operate.save(prefix + "/edit", $('#form-cyclecountDetail-edit').serialize());
184   - }
185   - });
186   - </script>
187   -</body>
188   -</html>
src/main/resources/templates/inventory/cycleCountHeader/cycleCountHeader.html
... ... @@ -272,7 +272,7 @@
272 272 var actions = [];
273 273 actions.push('<a class="btn btn-success btn-xs " href="#" onclick="cyclecountPrint(\'' + row.id + '\')"><i class="fa fa-print"></i>打印</a> ');
274 274  
275   - actions.push('<a class="btn btn-warning btn-xs " href="#" onclick="goAdjust(\'' + row.id + '\')"><i class="fa fa-gbp"></i>生成差异单</a> ');
  275 + actions.push('<a class="btn btn-warning btn-xs " href="#" onclick="goAdjust(\'' + row.id + '\')"><i class="fa fa-gbp"></i>生成调整单</a> ');
276 276  
277 277 //actions.push('<a class="btn btn-info btn-xs " href="#" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
278 278 actions.push('<a class="btn btn-danger btn-xs " href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-trash-o"></i>删除</a> ');
... ...