Commit 11bd56cad70c20fcae86e62b545d6994128ea71b
Merge remote-tracking branch 'origin/develop' into develop
Showing
35 changed files
with
321 additions
and
225 deletions
src/main/java/com/huaheng/pc/config/company/controller/CompanyController.java
... | ... | @@ -60,7 +60,8 @@ public class CompanyController extends BaseController { |
60 | 60 | lambdaQueryWrapper.gt(StringUtils.isNotEmpty(createdBegin), Company::getCreated, createdBegin) |
61 | 61 | .lt(StringUtils.isNotEmpty(createdEnd), Company::getCreated, createdEnd) |
62 | 62 | .eq(StringUtils.isNotEmpty(company.getCode()), Company::getCode, company.getCode()) |
63 | - .eq(StringUtils.isNotEmpty(company.getName()), Company::getName, company.getName()) | |
63 | + .like(StringUtils.isNotEmpty(company.getName()), Company::getName, company.getName()) | |
64 | + .eq(Company::getDeleted,false) | |
64 | 65 | .orderByDesc(Company::getCreated); |
65 | 66 | |
66 | 67 | if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){ |
... | ... |
src/main/java/com/huaheng/pc/config/company/service/CompanyServiceImpl.java
... | ... | @@ -91,7 +91,6 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl |
91 | 91 | { |
92 | 92 | record.setCompanyId(company.getId()); |
93 | 93 | record.setCompanyCode(company.getCode()); |
94 | - record.setWarehouseId(Integer.valueOf(warehouse[i])); | |
95 | 94 | record.setWarehouseCode(warehouse[i+1]); |
96 | 95 | warehouseCompanyService.save(record); |
97 | 96 | } |
... | ... |
src/main/java/com/huaheng/pc/config/container/controller/ContainerController.java
... | ... | @@ -71,7 +71,8 @@ public class ContainerController extends BaseController { |
71 | 71 | .eq(StringUtils.isNotEmpty(container.getWarehouseCode()), Container::getWarehouseCode, container.getWarehouseCode()) |
72 | 72 | .eq(StringUtils.isNotEmpty(container.getLocationCode()), Container::getLocationCode, container.getLocationCode()) |
73 | 73 | .eq(Container::getWarehouseCode, ShiroUtils.getWarehouseCode()) |
74 | - .orderByDesc(Container::getCreated); | |
74 | + .eq(Container::getEnable,true) | |
75 | + .orderByDesc(Container::getId); | |
75 | 76 | |
76 | 77 | if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){ |
77 | 78 | /*使用分页查询*/ |
... | ... | @@ -147,7 +148,7 @@ public class ContainerController extends BaseController { |
147 | 148 | for (Integer id : Convert.toIntArray(ids)) { |
148 | 149 | Container container = containerService.getById(id); |
149 | 150 | if (container.getStatus().equals("empty") && StringUtils.isEmpty(container.getLocationCode())) { |
150 | - container.setDeleted(true); | |
151 | + container.setEnable(false); | |
151 | 152 | container.setLastUpdatedBy(ShiroUtils.getLoginName()); |
152 | 153 | containerService.updateById(container); |
153 | 154 | } else { |
... | ... |
src/main/java/com/huaheng/pc/config/container/domain/Container.java
... | ... | @@ -106,7 +106,7 @@ public class Container implements Serializable { |
106 | 106 | @TableField(value = "enable") |
107 | 107 | @ApiModelProperty(value="启用;0—禁用") |
108 | 108 | @Excel(name = "是否启用", prompt = "启用;0 禁用:1") |
109 | - private Integer enable; | |
109 | + private Boolean enable; | |
110 | 110 | |
111 | 111 | /** |
112 | 112 | * 打印次数 |
... | ... | @@ -185,10 +185,7 @@ public class Container implements Serializable { |
185 | 185 | @ApiModelProperty(value="处理标记") |
186 | 186 | private String processStamp; |
187 | 187 | |
188 | - @TableField(value = "deleted") | |
189 | - @ApiModelProperty(value = "是否删除") | |
190 | - @TableLogic | |
191 | - private Boolean deleted; | |
188 | + | |
192 | 189 | |
193 | 190 | private static final long serialVersionUID = 1L; |
194 | 191 | |
... | ... |
src/main/java/com/huaheng/pc/config/container/service/ContainerServiceImpl.java
... | ... | @@ -41,8 +41,7 @@ public class ContainerServiceImpl extends ServiceImpl<ContainerMapper, Container |
41 | 41 | container.setCreatedBy(ShiroUtils.getLoginName()); |
42 | 42 | container.setLastUpdated(null); |
43 | 43 | container.setLastUpdatedBy(null); |
44 | - container.setEnable(0); | |
45 | - container.setDeleted(false); | |
44 | + container.setEnable(true); | |
46 | 45 | container.setCompanyCode(ShiroUtils.getCompanyCodeList().get(0)); |
47 | 46 | container.setWarehouseCode(ShiroUtils.getWarehouseCode()); |
48 | 47 | this.save(container); |
... | ... | @@ -60,7 +59,7 @@ public class ContainerServiceImpl extends ServiceImpl<ContainerMapper, Container |
60 | 59 | Container container = containerMapper.selectOne(lambda); |
61 | 60 | |
62 | 61 | //如果指定类型的最后的code存在,那么 code = 容器类型 + (排序号 + 1) |
63 | - if (container.getCode() != null) { | |
62 | + if (container!=null && container.getCode() != null) { | |
64 | 63 | Integer number = Integer.valueOf(container.getCode().substring(container.getCode().length() - 5, container.getCode().length())); |
65 | 64 | return number; |
66 | 65 | } else { |
... | ... |
src/main/java/com/huaheng/pc/config/location/controller/LocationController.java
... | ... | @@ -72,9 +72,10 @@ public class LocationController extends BaseController { |
72 | 72 | .eq(StringUtils.isNotNull(location.getIColumn()), Location::getIColumn, location.getIColumn()) |
73 | 73 | .eq(StringUtils.isNotNull(location.getIGrid()), Location::getIGrid, location.getIGrid()) |
74 | 74 | .eq(StringUtils.isNotNull(location.getILayer()), Location::getILayer, location.getILayer()) |
75 | + .eq(StringUtils.isNotEmpty(location.getStatus()),Location::getStatus,location.getStatus()) | |
75 | 76 | .eq(StringUtils.isNotEmpty(location.getLocationType()), Location::getLocationType, location.getLocationType()) |
76 | 77 | .eq(Location::getDeleted,false) |
77 | - .orderByDesc(Location::getCreated); | |
78 | + .orderByDesc(Location::getId); | |
78 | 79 | |
79 | 80 | if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){ |
80 | 81 | /*使用分页查询*/ |
... | ... | @@ -104,8 +105,8 @@ public class LocationController extends BaseController { |
104 | 105 | @PostMapping("/add") |
105 | 106 | @ResponseBody |
106 | 107 | public AjaxResult addSave(Location location) { |
107 | - Boolean result = locationService.save(location); | |
108 | - return toAjax(result); | |
108 | + AjaxResult result = locationService.addsave(location); | |
109 | + return result; | |
109 | 110 | } |
110 | 111 | |
111 | 112 | |
... | ... |
src/main/java/com/huaheng/pc/config/location/service/LocationService.java
1 | 1 | package com.huaheng.pc.config.location.service; |
2 | 2 | |
3 | +import com.huaheng.framework.web.domain.AjaxResult; | |
3 | 4 | import com.huaheng.pc.config.location.domain.Location; |
4 | 5 | import com.baomidou.mybatisplus.extension.service.IService; |
5 | 6 | public interface LocationService extends IService<Location>{ |
6 | 7 | |
8 | + AjaxResult addsave(Location location); | |
9 | + | |
7 | 10 | boolean insertLocation(Location location); |
8 | 11 | |
9 | 12 | void updateStatus(String locationCode, String status); |
... | ... |
src/main/java/com/huaheng/pc/config/location/service/LocationServiceImpl.java
... | ... | @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
6 | 6 | import com.huaheng.common.exception.service.ServiceException; |
7 | 7 | import com.huaheng.common.utils.StringUtils; |
8 | 8 | import com.huaheng.common.utils.security.ShiroUtils; |
9 | +import com.huaheng.framework.web.domain.AjaxResult; | |
9 | 10 | import com.huaheng.pc.config.locationType.domain.LocationType; |
10 | 11 | import com.huaheng.pc.config.locationType.service.LocationTypeService; |
11 | 12 | import com.huaheng.pc.config.zone.domain.Zone; |
... | ... | @@ -33,6 +34,45 @@ public class LocationServiceImpl extends ServiceImpl<LocationMapper, Location> i |
33 | 34 | @Resource |
34 | 35 | private LocationMapper locationMapper; |
35 | 36 | |
37 | + | |
38 | + //新增库位,需要建立code,并判断是否重复 | |
39 | + @Override | |
40 | + public AjaxResult addsave(Location location){ | |
41 | + | |
42 | + //库区与库位类型的匹配判断 | |
43 | + if(!location.getZoneCode().equals(location.getLocationType())){ | |
44 | + throw new ServiceException(location.getLocationType()+"的库位类型与"+location.getZoneCode()+"库区不匹配"); | |
45 | + } | |
46 | + | |
47 | + //创建库位编码code | |
48 | + String prefix = location.getLocationType().substring(1); | |
49 | + String code = MessageFormat.format("{0}{1}-{2}-{3}-{4}", | |
50 | + prefix, | |
51 | + String.format("%02d", location.getIRow()), | |
52 | + String.format("%02d", location.getIColumn()), | |
53 | + String.format("%02d", location.getILayer()), | |
54 | + String.format("%02d", location.getIGrid())); | |
55 | + | |
56 | + | |
57 | + //判断code是否重复 | |
58 | + LambdaQueryWrapper<Location> lam = Wrappers.lambdaQuery(); | |
59 | + lam.eq(Location::getWarehouseCode,ShiroUtils.getWarehouseCode()) | |
60 | + .eq(Location::getCode,code); | |
61 | + if(this.getOne(lam)!=null){ | |
62 | + return AjaxResult.error("该位置已有库位生成,请重新输入位置"); | |
63 | + } | |
64 | + | |
65 | + //插入数据库 | |
66 | + location.setCode(code); | |
67 | + location.setWarehouseCode(ShiroUtils.getWarehouseCode()); | |
68 | + location.setCreatedBy(ShiroUtils.getLoginName()); | |
69 | + Boolean flag=this.save(location); | |
70 | + if(flag == false){ | |
71 | + return AjaxResult.error("新增库位失败,插入数据库时失败"); | |
72 | + } | |
73 | + return AjaxResult.success("新增库位成功"); | |
74 | + } | |
75 | + | |
36 | 76 | @Override |
37 | 77 | public boolean insertLocation(Location location) { |
38 | 78 | /* 判断库位类型编码是否存在*/ |
... | ... | @@ -54,6 +94,9 @@ public class LocationServiceImpl extends ServiceImpl<LocationMapper, Location> i |
54 | 94 | throw new ServiceException("库区编码不存在"); |
55 | 95 | } |
56 | 96 | |
97 | + if(!location.getZoneCode().equals(location.getLocationType())){ | |
98 | + throw new ServiceException(location.getLocationType()+"的库位类型与"+location.getZoneCode()+"库区不匹配"); | |
99 | + } | |
57 | 100 | String prefix = location.getLocationType().substring(1); |
58 | 101 | List<Location> locations = new ArrayList<>(); |
59 | 102 | for (int i=1; i<=location.getIRow().intValue(); i++) { |
... | ... | @@ -78,18 +121,14 @@ public class LocationServiceImpl extends ServiceImpl<LocationMapper, Location> i |
78 | 121 | String.format("%02d", j), |
79 | 122 | String.format("%02d", k), |
80 | 123 | String.format("%02d", m)); |
81 | - QueryWrapper<Location> queryWrapper = new QueryWrapper<>(); | |
82 | - List<Location> locationList = locationService.list(queryWrapper.eq("code", code)); | |
83 | - if (locationList.size() != 0){ | |
84 | - return true; | |
85 | - } else { | |
124 | + LambdaQueryWrapper<Location> queryWrapper = Wrappers.lambdaQuery(); | |
125 | + queryWrapper.eq(Location::getCode,code) | |
126 | + .eq(Location::getWarehouseCode,ShiroUtils.getWarehouseCode()); | |
127 | + List<Location> locationList = locationService.list(queryWrapper); | |
128 | + if (locationList.size() == 0) { | |
86 | 129 | param.setCode(code); |
87 | - location.setWarehouseCode(ShiroUtils.getWarehouseCode()); | |
88 | - location.setCreatedBy(ShiroUtils.getLoginName()); | |
89 | - location.setLastUpdatedBy(ShiroUtils.getLoginName()); | |
130 | + locations.add(param); | |
90 | 131 | } |
91 | - param.setCode(code); | |
92 | - locations.add(param); | |
93 | 132 | } |
94 | 133 | } |
95 | 134 | } |
... | ... |
src/main/java/com/huaheng/pc/config/locationType/service/LocationTypeServiceImpl.java
... | ... | @@ -17,7 +17,6 @@ public class LocationTypeServiceImpl extends ServiceImpl<LocationTypeMapper, Loc |
17 | 17 | public List<Map<String, Object>> getLocationPrefix(){ |
18 | 18 | LambdaQueryWrapper<LocationType> lambdaQueryWrapper = Wrappers.lambdaQuery(); |
19 | 19 | lambdaQueryWrapper.eq(LocationType::getWarehouseCode, ShiroUtils.getWarehouseCode()) |
20 | - .eq(LocationType::getEnable, false) | |
21 | 20 | .eq(LocationType::getEnable, true); |
22 | 21 | return this.listMaps(lambdaQueryWrapper); |
23 | 22 | } |
... | ... |
src/main/java/com/huaheng/pc/config/material/service/MaterialServiceImpl.java
... | ... | @@ -144,7 +144,11 @@ public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, Material> i |
144 | 144 | material.setWarehouseCode(ShiroUtils.getWarehouseCode()); |
145 | 145 | material.setCreatedBy(ShiroUtils.getLoginName()); |
146 | 146 | material.setLastUpdatedBy(ShiroUtils.getLoginName()); |
147 | - return null; | |
147 | + Boolean flag=this.save(material); | |
148 | + if(flag==false){ | |
149 | + return AjaxResult.error("新增物料失败,存入数据库时报错"); | |
150 | + } | |
151 | + return AjaxResult.success("新增物料成功"); | |
148 | 152 | } |
149 | 153 | |
150 | 154 | /** |
... | ... |
src/main/java/com/huaheng/pc/config/materialUnit/controller/MaterialUnitController.java
... | ... | @@ -66,10 +66,11 @@ public class MaterialUnitController extends BaseController { |
66 | 66 | lambdaQueryWrapper.gt(StringUtils.isNotEmpty(createdBegin), MaterialUnit::getCreated, createdBegin) |
67 | 67 | .lt(StringUtils.isNotEmpty(createdEnd), MaterialUnit::getCreated, createdEnd) |
68 | 68 | .eq(StringUtils.isNotEmpty(materialUnit.getMaterialCode()), MaterialUnit::getMaterialCode, materialUnit.getMaterialCode()) |
69 | - .eq(StringUtils.isNotEmpty(materialUnit.getMaterialName()), MaterialUnit::getMaterialName, materialUnit.getMaterialName()) | |
69 | + .like(StringUtils.isNotEmpty(materialUnit.getMaterialName()), MaterialUnit::getMaterialName, materialUnit.getMaterialName()) | |
70 | 70 | .eq(StringUtils.isNotEmpty(materialUnit.getUnit()), MaterialUnit::getUnit, materialUnit.getUnit()) |
71 | 71 | .in(MaterialUnit::getCompanyCode, ShiroUtils.getCompanyCodeList()) |
72 | - .eq(MaterialUnit::getWarehouseCode, ShiroUtils.getWarehouseCode()); | |
72 | + .eq(MaterialUnit::getWarehouseCode, ShiroUtils.getWarehouseCode()) | |
73 | + .orderByDesc(MaterialUnit::getId); | |
73 | 74 | |
74 | 75 | if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){ |
75 | 76 | /*使用分页查询*/ |
... | ... |
src/main/java/com/huaheng/pc/config/warehouse/controller/WareHouseController.java
... | ... | @@ -67,9 +67,9 @@ public class WareHouseController extends BaseController { |
67 | 67 | lambdaQueryWrapper.gt(StringUtils.isNotEmpty(createdBegin), Warehouse::getCreated, createdBegin) |
68 | 68 | .lt(StringUtils.isNotEmpty(createdEnd), Warehouse::getCreated, createdEnd) |
69 | 69 | .eq(StringUtils.isNotEmpty(warehouse.getCode()), Warehouse::getCode, warehouse.getCode()) |
70 | - .eq(StringUtils.isNotEmpty(warehouse.getName()), Warehouse::getName,warehouse.getName()) | |
71 | - .orderByDesc(Warehouse::getCreated) | |
72 | - .eq(Warehouse::getDeleted,0); | |
70 | + .like(StringUtils.isNotEmpty(warehouse.getName()), Warehouse::getName,warehouse.getName()) | |
71 | + .eq(Warehouse::getDeleted,false) | |
72 | + .orderByDesc(Warehouse::getCreated); | |
73 | 73 | /** |
74 | 74 | * 使用分页查询 |
75 | 75 | */ |
... | ... | @@ -149,9 +149,10 @@ public class WareHouseController extends BaseController { |
149 | 149 | if (count != 0) { |
150 | 150 | return AjaxResult.error("仓库编码(" + warehouse.getCode() +")还有库存,不能删除!"); |
151 | 151 | } |
152 | + warehouse.setCode(code); | |
152 | 153 | warehouse.setLastUpdatedBy(ShiroUtils.getLoginName()); |
153 | 154 | warehouse.setDeleted(true); |
154 | - warehouseService.updateById(warehouse); | |
155 | + warehouseService.saveOrUpdate(warehouse); | |
155 | 156 | dictDataService.deleteDictDataByWarehouseCode(code); |
156 | 157 | dictTypeService.deleteDictTypeByWarehouseCode(code); |
157 | 158 | } |
... | ... |
src/main/java/com/huaheng/pc/config/warehouseCompany/domain/WarehouseCompany.java
... | ... | @@ -17,11 +17,6 @@ public class WarehouseCompany implements Serializable { |
17 | 17 | @TableId(value = "id", type = IdType.AUTO) |
18 | 18 | private Integer id; |
19 | 19 | |
20 | - /** | |
21 | - * 仓库id | |
22 | - */ | |
23 | - @TableField(value = "warehouseId") | |
24 | - private Integer warehouseId; | |
25 | 20 | |
26 | 21 | /** |
27 | 22 | * 仓库编码 |
... | ... |
src/main/java/com/huaheng/pc/inventory/cycleCountDetail/controller/CycleCountDetailController.java
... | ... | @@ -77,7 +77,7 @@ public class CycleCountDetailController extends BaseController { |
77 | 77 | PageDomain pageDomain = TableSupport.buildPageRequest(); |
78 | 78 | Integer pageNum = pageDomain.getPageNum(); |
79 | 79 | Integer pageSize = pageDomain.getPageSize(); |
80 | - //没有主单ID传入则直接返回空list | |
80 | + //没有主单Code传入则直接返回空list | |
81 | 81 | if(cycleCountDetail.getCycleCountHeadCode() != null){ |
82 | 82 | lambdaQueryWrapper.ge( |
83 | 83 | StringUtils.isNotEmpty(createdBegin), CycleCountDetail::getCreated, createdBegin) |
... | ... | @@ -121,17 +121,20 @@ public class CycleCountDetailController extends BaseController { |
121 | 121 | * 新增盘点明细 |
122 | 122 | */ |
123 | 123 | @GetMapping("/add") |
124 | - public String add(Integer cycleCountHeadId,String companyCode, ModelMap m) | |
124 | + public String add(String cycleCountHeadCode,String companyCode, ModelMap m) | |
125 | 125 | { |
126 | - if(cycleCountHeadId == null){ | |
126 | + if(cycleCountHeadCode == null){ | |
127 | 127 | throw new SecurityException("盘点头ID不能为空!"); |
128 | 128 | } |
129 | 129 | //相同货主才能盘点,取出盘点头的货主 |
130 | - CycleCountHeader cycleCountHeader = cycleCountHeaderService.getById(cycleCountHeadId); | |
130 | + CycleCountHeader cycleCountHeader = new CycleCountHeader(); | |
131 | + cycleCountHeader.setCode(cycleCountHeadCode); | |
132 | + cycleCountHeader.setWarehouseCode(ShiroUtils.getWarehouseCode()); | |
133 | + LambdaQueryWrapper<CycleCountHeader> lamd = Wrappers.lambdaQuery(cycleCountHeader); | |
134 | + cycleCountHeader = cycleCountHeaderService.getOne(lamd); | |
131 | 135 | companyCode = cycleCountHeader.getCompanyCode(); |
132 | 136 | m.put("companyCode",companyCode); |
133 | - m.put("cycleCountHeadId",cycleCountHeadId); | |
134 | - | |
137 | + m.put("cycleCountHeadCode",cycleCountHeadCode); | |
135 | 138 | return prefix + "/add"; |
136 | 139 | } |
137 | 140 | |
... | ... | @@ -160,15 +163,16 @@ public class CycleCountDetailController extends BaseController { |
160 | 163 | return AjaxResult.error("删除的明细id不能为空"); |
161 | 164 | Integer[] detailsIds = Convert.toIntArray(ids); |
162 | 165 | CycleCountDetail cyclecountDetail = cycleCountDetailService.getById(detailsIds[0]); |
163 | - String masterCode = cyclecountDetail.getCycleCountHeadCode(); | |
164 | 166 | CycleCountHeader ch = new CycleCountHeader(); |
165 | - ch.setMasterCode(masterCode); | |
167 | + ch.setCode(cyclecountDetail.getCycleCountHeadCode()); | |
168 | + ch.setWarehouseCode(cyclecountDetail.getWarehouseCode()); | |
169 | + ch.setCompanyCode(cyclecountDetail.getCompanyCode()); | |
166 | 170 | LambdaQueryWrapper<CycleCountHeader> la = Wrappers.lambdaQuery(ch); |
167 | 171 | CycleCountHeader cyclecountHeader = cycleCountHeaderService.getOne(la); |
168 | - if(cyclecountHeader==null){ | |
172 | + if(cyclecountHeader == null){ | |
169 | 173 | return AjaxResult.error("主单据不存在"); |
170 | 174 | } |
171 | - if(cyclecountHeader.getStatusCyc() > 29){ | |
175 | + if(cyclecountHeader.getStatusCyc() > 5){ | |
172 | 176 | return AjaxResult.error("主单据状态不允许删除"); |
173 | 177 | } |
174 | 178 | for (Integer id : detailsIds) |
... | ... |
src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailServiceImpl.java
... | ... | @@ -53,8 +53,11 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap |
53 | 53 | @Transactional |
54 | 54 | public AjaxResult addDetails(String cycleCountHeadCode, Integer[] inventoryDetailIdIds) { |
55 | 55 | |
56 | + if(cycleCountHeadCode == null){ | |
57 | + throw new ServiceException("盘点主单编码不能为空!"); | |
58 | + } | |
56 | 59 | CycleCountHeader cyclecountHeader =new CycleCountHeader(); |
57 | - cyclecountHeader.setMasterCode(cycleCountHeadCode); | |
60 | + cyclecountHeader.setCode(cycleCountHeadCode); | |
58 | 61 | LambdaQueryWrapper<CycleCountHeader> ch = Wrappers.lambdaQuery(cyclecountHeader); |
59 | 62 | cyclecountHeader = cycleCountHeaderService.getOne(ch); |
60 | 63 | //可能存在并发删除的情况 |
... | ... | @@ -68,7 +71,7 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap |
68 | 71 | CycleCountDetail cycleCountDetail = new CycleCountDetail(); |
69 | 72 | cycleCountDetail.setWarehouseCode(cyclecountHeader.getWarehouseCode()); |
70 | 73 | cycleCountDetail.setCompanyCode(cyclecountHeader.getCompanyCode()); |
71 | - cycleCountDetail.setCycleCountHeadCode(cyclecountHeader.getMasterCode()); | |
74 | + cycleCountDetail.setCycleCountHeadCode(cyclecountHeader.getCode()); | |
72 | 75 | LambdaQueryWrapper<CycleCountDetail> cycleCountDetailLambd = Wrappers.lambdaQuery(cycleCountDetail); |
73 | 76 | List<CycleCountDetail> cyclecountDetailList = this.list(cycleCountDetailLambd); |
74 | 77 | if(cyclecountDetailList == null){ |
... | ... | @@ -84,7 +87,7 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap |
84 | 87 | |
85 | 88 | //写入盘点明细 |
86 | 89 | CycleCountDetail ccd = new CycleCountDetail(); |
87 | - ccd.setCycleCountHeadCode(cyclecountHeader.getMasterCode()); | |
90 | + ccd.setCycleCountHeadCode(cyclecountHeader.getCode()); | |
88 | 91 | ccd.setInventoryDetailId(inventoryDetailId); |
89 | 92 | ccd.setWarehouseCode(inventoryDetail.getWarehouseCode()); |
90 | 93 | ccd.setCompanyCode(inventoryDetail.getCompanyCode()); |
... | ... | @@ -125,14 +128,14 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap |
125 | 128 | @Transactional |
126 | 129 | public AjaxResult createCycleCountTaskByHeadId(String cycleCountHeadCode) { |
127 | 130 | CycleCountHeader cyclecountHeader =new CycleCountHeader(); |
128 | - cyclecountHeader.setMasterCode(cycleCountHeadCode); | |
131 | + cyclecountHeader.setCode(cycleCountHeadCode); | |
129 | 132 | LambdaQueryWrapper<CycleCountHeader> cych = Wrappers.lambdaQuery(cyclecountHeader); |
130 | - cyclecountHeader = cycleCountHeaderService.getById(cych); | |
133 | + cyclecountHeader = cycleCountHeaderService.getOne(cych); | |
131 | 134 | if(cyclecountHeader == null){ |
132 | 135 | return AjaxResult.error("盘点单不存在"); |
133 | 136 | } |
134 | 137 | CycleCountDetail temp = new CycleCountDetail(); |
135 | - temp.setCycleCountHeadCode(cyclecountHeader.getMasterCode()); | |
138 | + temp.setCycleCountHeadCode(cyclecountHeader.getCode()); | |
136 | 139 | temp.setWarehouseCode(cyclecountHeader.getWarehouseCode()); |
137 | 140 | temp.setCompanyCode(cyclecountHeader.getCompanyCode()); |
138 | 141 | LambdaQueryWrapper<CycleCountDetail> lambdaQueryWrapper = Wrappers.lambdaQuery(temp); |
... | ... | @@ -172,8 +175,9 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap |
172 | 175 | @Override |
173 | 176 | @Transactional |
174 | 177 | public AjaxResult createCycleCoutTaskByDetailId(Integer cycleCoutdetailId) { |
175 | - /*任务主表中存在库位,在盘点明细中生成任务时,不同的库位需要生成不同的主任务*/ | |
176 | - | |
178 | + /*任务主表中存在库位,在盘点明细中生成任务时,不同的容器生成不同的主任务*/ | |
179 | + //在盘点单生成任务并执行后,同一容器的物料仍然可以生成任务,否则任务已完成则无法添加任务100 | |
180 | + //检查状态不为100的任务,在有和下发的盘点单容器相同的任务时,把该条明细的任务写入到当前相同容器的任务里 | |
177 | 181 | |
178 | 182 | CycleCountDetail cycleCountDetail = this.getById(cycleCoutdetailId); |
179 | 183 | if(cycleCountDetail == null ){ |
... | ... | @@ -190,29 +194,67 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap |
190 | 194 | if(StringUtils.isEmpty(loc.getContainerCode())){ |
191 | 195 | return AjaxResult.error(cycleCountDetail.getLocationCode()+"没有托盘,操作失败"); |
192 | 196 | } |
197 | + | |
198 | + //查询任务头和明细有相同容器,没有就新增任务头和明细 | |
199 | + | |
200 | + LambdaQueryWrapper<TaskHeader> taskHeaderLambdaQueryWrapper = Wrappers.lambdaQuery(); | |
201 | + taskHeaderLambdaQueryWrapper | |
202 | + .lt(TaskHeader::getStatus,100) | |
203 | + .eq(TaskHeader::getWarehouseCode,ShiroUtils.getWarehouseCode()) | |
204 | + .eq(TaskHeader::getCompanyCode,cycleCountDetail.getCompanyCode()) | |
205 | + .eq(TaskHeader::getInternalTaskType,700) | |
206 | + .eq(TaskHeader::getTaskType,700) | |
207 | + .eq(TaskHeader::getContainerCode,cycleCountDetail.getContainerCode());//容器 | |
208 | + List<TaskHeader> taskHeaderList = taskHeaderService.list(taskHeaderLambdaQueryWrapper); | |
209 | + | |
210 | + | |
193 | 211 | TaskHeader task = new TaskHeader(); |
194 | - task.setWarehouseCode(ShiroUtils.getWarehouseCode()); | |
195 | - task.setCompanyCode(cycleCountDetail.getCompanyCode()); | |
196 | - task.setInternalTaskType(700); | |
197 | - task.setTaskType(700); | |
198 | - task.setContainerCode(cycleCountDetail.getContainerCode()); | |
199 | - task.setStatus(0); | |
200 | - task.setFromLocation(cycleCountDetail.getLocationCode()); | |
201 | - task.setToLocation(cycleCountDetail.getLocationCode()); | |
202 | - task.setCreated(new Date()); | |
203 | - task.setCreatedBy(ShiroUtils.getLoginName()); | |
204 | - task.setLastUpdatedBy(ShiroUtils.getLoginName()); | |
205 | - task.setLastUpdated(new Date()); | |
206 | - if(taskHeaderService.save(task)){ | |
207 | - //锁定库位状态 | |
208 | - locationService.updateStatus(loc.getContainerCode(),"lock"); | |
212 | + TaskDetail taskDetail = new TaskDetail(); | |
213 | + | |
214 | + if(taskHeaderList.size() <= 0){ | |
215 | + | |
216 | + //存在相同容器的主任务直接加入该条主任务的明细 | |
217 | + task.setWarehouseCode(ShiroUtils.getWarehouseCode()); | |
218 | + task.setCompanyCode(cycleCountDetail.getCompanyCode()); | |
219 | + task.setInternalTaskType(700); | |
220 | + task.setTaskType(700); | |
221 | + task.setContainerCode(cycleCountDetail.getContainerCode()); | |
222 | + task.setStatus(0); | |
223 | + task.setFromLocation(cycleCountDetail.getLocationCode()); | |
224 | + task.setToLocation(cycleCountDetail.getLocationCode()); | |
225 | + task.setCreated(new Date()); | |
226 | + task.setCreatedBy(ShiroUtils.getLoginName()); | |
227 | + task.setLastUpdatedBy(ShiroUtils.getLoginName()); | |
228 | + task.setLastUpdated(new Date()); | |
229 | + if(taskHeaderService.save(task)){ | |
230 | + //锁定库位状态 | |
231 | + locationService.updateStatus(loc.getContainerCode(),"lock"); | |
232 | + }else{ | |
233 | + throw new ServiceException("盘点任务主表生成失败!"); | |
234 | + } | |
235 | + //写入任务细表 | |
236 | + taskDetail.setTaskId(task.getId());//主单ID | |
237 | + taskDetail.setTaskType(task.getTaskType()); | |
238 | + taskDetail.setFromLocation(task.getFromLocation()); | |
239 | + taskDetail.setToLocation(task.getToLocation()); | |
240 | + taskDetail.setContainerCode(task.getContainerCode()); | |
241 | + taskDetail.setInternalTaskType(task.getTaskType()); | |
242 | + taskDetail.setWarehouseCode(task.getWarehouseCode()); | |
243 | + cycleCountDetail.setTaskHeaderId(task.getId()); //盘点明细修改状态task数据源 | |
209 | 244 | }else{ |
210 | - throw new ServiceException("盘点任务主表生成失败!"); | |
245 | + | |
246 | + //取其中一条主单即可 | |
247 | + TaskHeader taskHeader = taskHeaderList.get(0); | |
248 | + taskDetail.setTaskId(taskHeader.getId());//主单ID | |
249 | + taskDetail.setTaskType(taskHeader.getTaskType()); | |
250 | + taskDetail.setFromLocation(taskHeader.getFromLocation()); | |
251 | + taskDetail.setToLocation(taskHeader.getToLocation()); | |
252 | + taskDetail.setContainerCode(taskHeader.getContainerCode()); | |
253 | + taskDetail.setInternalTaskType(taskHeader.getTaskType()); | |
254 | + taskDetail.setWarehouseCode(taskHeader.getWarehouseCode()); | |
255 | + cycleCountDetail.setTaskHeaderId(taskHeader.getId());//盘点明细修改状态taskHeader数据源 | |
211 | 256 | } |
212 | - //写入任务细表 | |
213 | - TaskDetail taskDetail = new TaskDetail(); | |
214 | - taskDetail.setTaskId(task.getId());//主单ID | |
215 | - taskDetail.setTaskType(task.getTaskType()); | |
257 | + | |
216 | 258 | taskDetail.setBillCode(cycleCountDetail.getCycleCountHeadCode()); |
217 | 259 | taskDetail.setBillDetailId(cycleCountDetail.getId()); |
218 | 260 | taskDetail.setMaterialCode(cycleCountDetail.getMaterialCode()); |
... | ... | @@ -223,34 +265,31 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap |
223 | 265 | taskDetail.setFromInventoryId(cycleCountDetail.getInventoryDetailId()); |
224 | 266 | taskDetail.setLot(cycleCountDetail.getLot()); |
225 | 267 | taskDetail.setProjectNo(cycleCountDetail.getProjectNo()); |
226 | - taskDetail.setInternalTaskType(task.getTaskType()); | |
227 | - taskDetail.setWarehouseCode(task.getWarehouseCode()); | |
228 | 268 | taskDetail.setCompanyCode(cycleCountDetail.getCompanyCode()); |
229 | - taskDetail.setFromLocation(task.getFromLocation()); | |
230 | - taskDetail.setToLocation(task.getToLocation()); | |
231 | - taskDetail.setContainerCode(task.getContainerCode()); | |
232 | 269 | taskDetail.setCreated(new Date()); |
233 | 270 | taskDetail.setCreatedBy(ShiroUtils.getLoginName()); |
234 | 271 | taskDetail.setLastUpdated(new Date()); |
235 | 272 | taskDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); |
236 | 273 | if(taskDetailService.save(taskDetail) == false){ |
237 | 274 | throw new ServiceException("盘点任务明细生成失败!"); |
238 | - } | |
275 | + } | |
276 | + | |
239 | 277 | //修改细单状态 |
240 | 278 | cycleCountDetail.setTaskHeaderId(taskDetail.getId()); |
241 | - cycleCountDetail.setTaskHeaderId(task.getId()); | |
279 | + //cycleCountDetail.setTaskHeaderId(task.getId()); | |
242 | 280 | cycleCountDetail.setLastUpdated(new Date()); |
243 | 281 | cycleCountDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); |
244 | 282 | cycleCountDetail.setEnableStatus(5); |
245 | 283 | this.saveOrUpdate(cycleCountDetail); |
284 | + | |
246 | 285 | //修改主单状态 |
247 | 286 | CycleCountHeader cycleCountHeader = new CycleCountHeader(); |
248 | - cycleCountHeader.setMasterCode(cycleCountDetail.getCycleCountHeadCode()); | |
287 | + cycleCountHeader.setCode(cycleCountDetail.getCycleCountHeadCode()); | |
249 | 288 | cycleCountHeader.setWarehouseCode(cycleCountDetail.getWarehouseCode()); |
250 | 289 | cycleCountHeader.setCompanyCode(cycleCountDetail.getCompanyCode()); |
251 | 290 | LambdaQueryWrapper<CycleCountHeader> lamb = Wrappers.lambdaQuery(cycleCountHeader); |
252 | 291 | cycleCountHeader = cycleCountHeaderService.getOne(lamb); |
253 | - cycleCountHeader.setStatusCyc(10); | |
292 | + cycleCountHeader.setStatusCyc(5); | |
254 | 293 | cycleCountHeaderService.saveOrUpdate(cycleCountHeader); |
255 | 294 | return AjaxResult.success("盘点任务生成成功"); |
256 | 295 | } |
... | ... |
src/main/java/com/huaheng/pc/inventory/cycleCountHeader/controller/CycleCountHeaderController.java
... | ... | @@ -78,7 +78,7 @@ public class CycleCountHeaderController extends BaseController { |
78 | 78 | .eq(CycleCountHeader::getWarehouseCode, ShiroUtils.getWarehouseCode()) //仓库 |
79 | 79 | .eq(StringUtils.isNotEmpty(cycleCountHeader.getSourceCode()),CycleCountHeader::getSourceCode,cycleCountHeader.getSourceCode())//源盘点单号 |
80 | 80 | .eq(cycleCountHeader.getId() != null, CycleCountHeader::getId,cycleCountHeader.getId())//ID |
81 | - .eq(StringUtils.isNotEmpty(cycleCountHeader.getMasterCode()),CycleCountHeader::getMasterCode, cycleCountHeader.getMasterCode())//盘点主表编号 | |
81 | + .eq(StringUtils.isNotEmpty(cycleCountHeader.getCode()),CycleCountHeader::getCode, cycleCountHeader.getCode())//盘点主表编号 | |
82 | 82 | .eq(cycleCountHeader.getCountOrderId() != null, CycleCountHeader::getCountOrderId, cycleCountHeader.getCountOrderId())//原始盘点ID |
83 | 83 | .eq(cycleCountHeader.getStatusCyc() != null, CycleCountHeader::getStatusCyc, cycleCountHeader.getStatusCyc()) //盘点单状态 |
84 | 84 | .eq(cycleCountHeader.getCountType() != null ,CycleCountHeader::getCountType, cycleCountHeader.getCountType())//盘点类型 |
... | ... | @@ -119,7 +119,7 @@ public class CycleCountHeaderController extends BaseController { |
119 | 119 | //cycleCountHeader.setRound(cycleCountHeader.getRound());//盘点轮次 |
120 | 120 | cycleCountHeader.setCreated(new Date()); |
121 | 121 | cycleCountHeader.setCreatedBy(ShiroUtils.getLoginName()); |
122 | - cycleCountHeader.setMasterCode(cycleCountHeaderService.createCode()); | |
122 | + cycleCountHeader.setCode(cycleCountHeaderService.createCode()); | |
123 | 123 | return toAjax(cycleCountHeaderService.save(cycleCountHeader)); |
124 | 124 | } |
125 | 125 | |
... | ... | @@ -171,7 +171,7 @@ public class CycleCountHeaderController extends BaseController { |
171 | 171 | |
172 | 172 | /** |
173 | 173 | * |
174 | - * 生成差异调整单 | |
174 | + * 生成调整单 | |
175 | 175 | * */ |
176 | 176 | //@RequiresPermissions("inventory:cyclecountHead:addAdjust") |
177 | 177 | @Log(title = "库存-盘点", operating = "新增盘点差异调整单", action = BusinessType.INSERT) |
... | ... | @@ -195,7 +195,7 @@ public class CycleCountHeaderController extends BaseController { |
195 | 195 | mmap.put("cyclecountHeader", cyclecountHeader); |
196 | 196 | |
197 | 197 | CycleCountDetail condition = new CycleCountDetail(); |
198 | - condition.setCycleCountHeadCode(cyclecountHeader.getMasterCode()); | |
198 | + condition.setCycleCountHeadCode(cyclecountHeader.getCode()); | |
199 | 199 | condition.setWarehouseCode(ShiroUtils.getWarehouseCode()); |
200 | 200 | LambdaQueryWrapper lambda = Wrappers.lambdaQuery(condition); |
201 | 201 | List<CycleCountDetail> details = cycleCountDetailService.list(lambda); |
... | ... |
src/main/java/com/huaheng/pc/inventory/cycleCountHeader/domain/CycleCountHeader.java
... | ... | @@ -36,9 +36,9 @@ public class CycleCountHeader implements Serializable { |
36 | 36 | /** |
37 | 37 | * 盘点主表编号 |
38 | 38 | */ |
39 | - @TableField(value = "masterCode") | |
39 | + @TableField(value = "code") | |
40 | 40 | @ApiModelProperty(value="盘点主表编号") |
41 | - private String masterCode; | |
41 | + private String code; | |
42 | 42 | |
43 | 43 | /** |
44 | 44 | * 仓库编码 |
... | ... | @@ -293,17 +293,17 @@ public class CycleCountHeader implements Serializable { |
293 | 293 | * |
294 | 294 | * @return masterCode - 盘点主表编号 |
295 | 295 | */ |
296 | - public String getMasterCode() { | |
297 | - return masterCode; | |
296 | + public String getCode() { | |
297 | + return code; | |
298 | 298 | } |
299 | 299 | |
300 | 300 | /** |
301 | 301 | * 设置盘点主表编号 |
302 | 302 | * |
303 | - * @param masterCode 盘点主表编号 | |
303 | + * @param code 盘点主表编号 | |
304 | 304 | */ |
305 | - public void setMasterCode(String masterCode) { | |
306 | - this.masterCode = masterCode; | |
305 | + public void setCode(String code) { | |
306 | + this.code = code; | |
307 | 307 | } |
308 | 308 | |
309 | 309 | /** |
... | ... |
src/main/java/com/huaheng/pc/inventory/cycleCountHeader/service/CycleCountHeaderServiceImpl.java
... | ... | @@ -53,13 +53,13 @@ public class CycleCountHeaderServiceImpl extends ServiceImpl<CycleCountHeaderMap |
53 | 53 | //完成时在全部单据都完成后才能修改主单状态为完成 |
54 | 54 | |
55 | 55 | CycleCountHeader cyclecountHeader = new CycleCountHeader(); |
56 | - cyclecountHeader.setMasterCode(cycleCountHeaderCode); | |
56 | + cyclecountHeader.setCode(cycleCountHeaderCode); | |
57 | 57 | cyclecountHeader.setWarehouseCode(ShiroUtils.getWarehouseCode()); |
58 | 58 | LambdaQueryWrapper<CycleCountHeader> lamb = Wrappers.lambdaQuery(cyclecountHeader); |
59 | 59 | cyclecountHeader = this.getOne(lamb); |
60 | 60 | |
61 | 61 | CycleCountDetail temp = new CycleCountDetail(); |
62 | - temp.setCycleCountHeadCode(cyclecountHeader.getMasterCode()); | |
62 | + temp.setCycleCountHeadCode(cyclecountHeader.getCode()); | |
63 | 63 | temp.setWarehouseCode(cyclecountHeader.getWarehouseCode()); |
64 | 64 | temp.setCompanyCode(cyclecountHeader.getCompanyCode()); |
65 | 65 | LambdaQueryWrapper<CycleCountDetail> lam = Wrappers.lambdaQuery(temp); |
... | ... | @@ -144,12 +144,12 @@ public class CycleCountHeaderServiceImpl extends ServiceImpl<CycleCountHeaderMap |
144 | 144 | return AjaxResult.error("id为"+id.toString()+"的盘点单不存在出,操作中止"); |
145 | 145 | } |
146 | 146 | if(cyclecountHeader.getStatusCyc() > 0){ |
147 | - return AjaxResult.error("盘点单:"+cyclecountHeader.getMasterCode()+"非新建状态,无法删除,操作中止"); | |
147 | + return AjaxResult.error("盘点单:"+cyclecountHeader.getCode()+"非新建状态,无法删除,操作中止"); | |
148 | 148 | } |
149 | 149 | //批量删除子单据 |
150 | 150 | CycleCountDetail temp = new CycleCountDetail(); |
151 | 151 | temp.setWarehouseCode(ShiroUtils.getWarehouseCode()); |
152 | - temp.setCycleCountHeadCode(cyclecountHeader.getMasterCode()); | |
152 | + temp.setCycleCountHeadCode(cyclecountHeader.getCode()); | |
153 | 153 | LambdaQueryWrapper lm = Wrappers.lambdaQuery(temp); |
154 | 154 | cycleCountDetailService.remove(lm); |
155 | 155 | cycleCountHeaderMapper.deleteById(id); |
... | ... | @@ -179,7 +179,7 @@ public class CycleCountHeaderServiceImpl extends ServiceImpl<CycleCountHeaderMap |
179 | 179 | adjustHeader.setWarehouseCode(ShiroUtils.getWarehouseCode());//仓库 |
180 | 180 | adjustHeader.setCode(adjustHeaderService.createCode());//生成差异单号 |
181 | 181 | adjustHeader.setProblemType("盘点调整"); |
182 | - adjustHeader.setCycleCountCode(cyclecountHeader.getMasterCode()); | |
182 | + adjustHeader.setCycleCountCode(cyclecountHeader.getCode()); | |
183 | 183 | adjustHeader.setCompanyCode(cyclecountHeader.getCompanyCode()); |
184 | 184 | adjustHeader.setCreated(new Date()); |
185 | 185 | adjustHeader.setCreatedBy(ShiroUtils.getLoginName()); |
... | ... | @@ -189,7 +189,7 @@ public class CycleCountHeaderServiceImpl extends ServiceImpl<CycleCountHeaderMap |
189 | 189 | |
190 | 190 | //根据盘点单查询明细并写入调整单 |
191 | 191 | CycleCountDetail cycleCountDetail = new CycleCountDetail(); |
192 | - cycleCountDetail.setCycleCountHeadCode(cyclecountHeader.getMasterCode()); | |
192 | + cycleCountDetail.setCycleCountHeadCode(cyclecountHeader.getCode()); | |
193 | 193 | cycleCountDetail.setWarehouseCode(cyclecountHeader.getWarehouseCode()); |
194 | 194 | LambdaQueryWrapper lam = Wrappers.lambdaQuery(cycleCountDetail); |
195 | 195 | List<CycleCountDetail> cycleCountDetailList = cycleCountDetailService.list(lam); |
... | ... | @@ -206,7 +206,7 @@ public class CycleCountHeaderServiceImpl extends ServiceImpl<CycleCountHeaderMap |
206 | 206 | adjustDetail.setCompanyCode(adjustHeader.getCompanyCode()); |
207 | 207 | adjustDetail.setLocationCode(item.getLocationCode()); |
208 | 208 | adjustDetail.setContainerCode(item.getContainerCode()); |
209 | - adjustDetail.setCycleCountCode(cyclecountHeader.getMasterCode()); | |
209 | + adjustDetail.setCycleCountCode(cyclecountHeader.getCode()); | |
210 | 210 | adjustDetail.setMaterialCode(item.getMaterialCode()); |
211 | 211 | adjustDetail.setMaterialName(item.getMaterialName()); |
212 | 212 | adjustDetail.setMaterialSpec(item.getMaterialSpec()); |
... | ... |
src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.java
... | ... | @@ -27,7 +27,9 @@ public interface TaskHeaderService extends IService<TaskHeader>{ |
27 | 27 | |
28 | 28 | AjaxResult createCheckOutTask(String[] ids); |
29 | 29 | |
30 | - AjaxResult completeCycleCountOrSeeOutTask(TaskHeader taskHeader); | |
30 | + AjaxResult completeSeeOutTask(TaskHeader taskHeader); | |
31 | + | |
32 | + AjaxResult completeCycleCountTask(TaskHeader taskHeader); | |
31 | 33 | |
32 | 34 | AjaxResult createReceiptTask(List<Integer> ids); |
33 | 35 | |
... | ... |
src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java
... | ... | @@ -52,6 +52,8 @@ import java.util.Date; |
52 | 52 | import java.util.List; |
53 | 53 | import java.util.Map; |
54 | 54 | import java.util.*; |
55 | +import java.util.concurrent.CopyOnWriteArrayList; | |
56 | + | |
55 | 57 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
56 | 58 | import com.huaheng.pc.task.taskHeader.domain.TaskHeader; |
57 | 59 | import com.huaheng.pc.task.taskHeader.mapper.TaskHeaderMapper; |
... | ... | @@ -419,27 +421,31 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
419 | 421 | @Transactional |
420 | 422 | public void completeTask(TaskHeader task) { |
421 | 423 | //区分任务类型 |
422 | - if (task.getInternalTaskType() == 100) { | |
424 | + if (task.getTaskType() == 100) { | |
423 | 425 | //入库任务 |
424 | 426 | completeReceiptTask(task); |
425 | 427 | } |
426 | - if (task.getInternalTaskType() == 200) { | |
428 | + if (task.getTaskType() == 200) { | |
427 | 429 | // 出库任务 |
428 | 430 | completeShipmentTask(task); |
429 | 431 | } |
430 | - // 700 盘点 900 出库查看,包过空托出库查看 | |
431 | - if (task.getInternalTaskType() == 700 || task.getInternalTaskType() == 900) { | |
432 | - completeCycleCountOrSeeOutTask(task); | |
432 | + // 900 出库查看,包过空托出库查看 | |
433 | + if ( task.getTaskType() == 900) { | |
434 | + completeSeeOutTask(task); | |
435 | + } | |
436 | + // 700 盘点 | |
437 | + if ( task.getTaskType() == 700) { | |
438 | + completeCycleCountTask(task); | |
433 | 439 | } |
434 | - if (task.getInternalTaskType() == 800) { | |
440 | + if (task.getTaskType() == 800) { | |
435 | 441 | // //移库 |
436 | 442 | completeTransferTask(task); |
437 | 443 | } |
438 | - if (task.getInternalTaskType() == 500) { | |
444 | + if (task.getTaskType() == 500) { | |
439 | 445 | //空托盘入库 |
440 | 446 | completeEmptyIn(task); |
441 | 447 | } |
442 | - if (task.getInternalTaskType() == 600) { | |
448 | + if (task.getTaskType() == 600) { | |
443 | 449 | //空托盘出库 |
444 | 450 | completeEmptyOut(task); |
445 | 451 | } |
... | ... | @@ -863,7 +869,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
863 | 869 | TaskHeader taskHeader = new TaskHeader(); |
864 | 870 | taskHeader.setWarehouseCode(inventoryHeader.getWarehouseCode()); |
865 | 871 | taskHeader.setCompanyCode(inventoryHeader.getCompanyCode());//货主 |
866 | - taskHeader.setInternalTaskType(200); | |
872 | + taskHeader.setInternalTaskType(400); | |
867 | 873 | taskHeader.setTaskType(900); |
868 | 874 | taskHeader.setContainerCode(inventoryHeader.getContainerCode()); |
869 | 875 | taskHeader.setStatus(1); |
... | ... | @@ -906,12 +912,12 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
906 | 912 | |
907 | 913 | /** |
908 | 914 | * 完成 |
909 | - * 盘点,出库查看 | |
915 | + * 出库查看 | |
910 | 916 | * 更新状态即可 |
911 | 917 | */ |
912 | 918 | @Transactional |
913 | 919 | @Override |
914 | - public AjaxResult completeCycleCountOrSeeOutTask(TaskHeader taskHeader) { | |
920 | + public AjaxResult completeSeeOutTask(TaskHeader taskHeader) { | |
915 | 921 | taskHeader.setStatus(100); |
916 | 922 | taskHeader.setLastUpdatedBy(ShiroUtils.getLoginName()); //更新用户 |
917 | 923 | taskHeader.setLastUpdated(new Date()); //更新时间 |
... | ... | @@ -922,45 +928,39 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
922 | 928 | taskDetail.setTaskId(taskHeader.getId()); |
923 | 929 | LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery(taskDetail); |
924 | 930 | List<TaskDetail> taskDetailList = taskDetailService.list(lambdaQueryWrapper);//查询子单 |
925 | - List<CycleCountDetail> cycleCountDetailList = new ArrayList<>(); | |
926 | - for (TaskDetail item : taskDetailList) { | |
931 | + List<TaskDetail> list = new CopyOnWriteArrayList<>(); | |
932 | + for(TaskDetail item:taskDetailList){ | |
927 | 933 | item.setStatus(100); |
928 | 934 | item.setLastUpdatedBy(ShiroUtils.getLoginName()); //更新用户 |
929 | 935 | item.setLastUpdated(new Date()); //更新时间 |
930 | - taskDetailList.add(item); | |
931 | - //盘点完成时,修改盘点详细中的状态为100,库存解锁 | |
932 | - if (taskDetail.getTaskType() == 700) { | |
933 | - //盘点明细的条目由任务明细的数值取出,修改盘点明细状态, | |
934 | - // 并判断主单的明细是否已全部完成,然后再修改主单状态 | |
935 | - CycleCountDetail cycleCountDetail = cycleCountDetailService.getById(item.getBillDetailId()); | |
936 | - cycleCountDetail.setEnableStatus(100); | |
937 | - cycleCountDetail.setCompletedAt(new Date()); | |
938 | - cycleCountDetail.setCompletedBy(ShiroUtils.getLoginName()); | |
939 | - cycleCountDetailList.add(cycleCountDetail); | |
940 | - //释放库位状态 | |
941 | - locationService.updateStatus(cycleCountDetail.getLocationCode(), "empty"); | |
942 | - //更新盘点主单状态 | |
943 | - if(taskHeader.getTaskType() == 700){ | |
944 | - cycleCountHeaderService.updataHeaderStatus(cycleCountDetail.getCycleCountHeadCode()); | |
945 | - } | |
946 | - } | |
947 | - | |
936 | + list.add(item); | |
948 | 937 | } |
949 | - if (taskDetailService.saveOrUpdateBatch(taskDetailList) == false || taskHeaderService.saveOrUpdate(taskHeader) == false) { | |
938 | + if (taskDetailService.saveOrUpdateBatch(list) == false || taskHeaderService.saveOrUpdate(taskHeader) == false) { | |
950 | 939 | throw new ServiceException("任务单据状态更新失败!"); |
951 | 940 | } |
952 | - if (cycleCountDetailService.saveOrUpdateBatch(cycleCountDetailList) == false){ | |
953 | - throw new ServiceException("盘点明细单状态更新失败!"); | |
954 | - } | |
955 | - | |
956 | - //出库查看释放库位状态 | |
957 | - if(taskHeader.getTaskType() == 900){ | |
958 | - locationService.updateStatus(taskHeader.getFromLocation(), "empty"); | |
959 | - } | |
941 | + //释放库位状态 | |
942 | + locationService.updateStatus(taskHeader.getFromLocation(), "empty"); | |
960 | 943 | return AjaxResult.success("完成出库查看任务"); |
961 | 944 | } |
962 | 945 | |
963 | 946 | /** |
947 | + * 盘点完成 | |
948 | + * @param taskHeader | |
949 | + * @return | |
950 | + */ | |
951 | + @Transactional | |
952 | + @Override | |
953 | + public AjaxResult completeCycleCountTask(TaskHeader taskHeader){ | |
954 | + /*盘点完成,传入任务主单,查出任务明细,通过任务明细查找盘点的明细单,完成任务同时,修改盘点细单和主单的状态*/ | |
955 | + | |
956 | + | |
957 | + | |
958 | + | |
959 | + | |
960 | + return null; | |
961 | + } | |
962 | + | |
963 | + /** | |
964 | 964 | * 完成空托盘入库任务 |
965 | 965 | * @param taskHeader |
966 | 966 | */ |
... | ... |
src/main/resources/mybatis/inventory/CycleCountHeaderMapper.xml
... | ... | @@ -6,7 +6,7 @@ |
6 | 6 | <id column="id" jdbcType="INTEGER" property="id" /> |
7 | 7 | <result column="countOrderId" jdbcType="INTEGER" property="countOrderId" /> |
8 | 8 | <result column="round" jdbcType="INTEGER" property="round" /> |
9 | - <result column="masterCode" jdbcType="VARCHAR" property="masterCode" /> | |
9 | + <result column="masterCode" jdbcType="VARCHAR" property="code" /> | |
10 | 10 | <result column="warehouseCode" jdbcType="VARCHAR" property="warehouseCode" /> |
11 | 11 | <result column="companyCode" jdbcType="VARCHAR" property="companyCode" /> |
12 | 12 | <result column="countType" jdbcType="VARCHAR" property="countType" /> |
... | ... | @@ -36,14 +36,14 @@ |
36 | 36 | </resultMap> |
37 | 37 | <sql id="Base_Column_List"> |
38 | 38 | <!--@mbg.generated--> |
39 | - id, countOrderId, round, masterCode, warehouseCode, companyCode, countType, statusCyc, | |
39 | + id, countOrderId, round, code, warehouseCode, companyCode, countType, statusCyc, | |
40 | 40 | countAttribute, remark, totalLocs, totalItems, zoneCode, locationFilter, releasedBy, |
41 | 41 | releasedAt, closedBy, closedAt, created, createdBy, lastUpdated, lastUpdatedBy, version, |
42 | 42 | userDef1, userDef2, userDef3, verifyBy, sourceCode, uploadTime, uploadStatus |
43 | 43 | </sql> |
44 | 44 | |
45 | 45 | <select id="getLastCode" resultType="java.lang.String"> |
46 | - SELECT masterCode FROM cycle_count_header ORDER BY id DESC LIMIT 1 | |
46 | + SELECT code FROM cycle_count_header ORDER BY id DESC LIMIT 1 | |
47 | 47 | </select> |
48 | 48 | |
49 | 49 | |
... | ... |
src/main/resources/static/file/物料.xls deleted
1 | -ÎïÁÏ code |
src/main/resources/templates/config/company/edit.html
... | ... | @@ -18,14 +18,14 @@ |
18 | 18 | <input id="name" name="name" th:field="*{name}" class="form-control" type="text"> |
19 | 19 | </div> |
20 | 20 | </div> |
21 | - <div class="form-group"> | |
22 | - <label class="col-sm-3 control-label">仓库:</label> | |
23 | - <div class="col-sm-8"> | |
24 | - <select id="warehouseCode" name="warehouseCode" class="form-control" > | |
25 | - <option th:each="item : ${warehouseList}" th:text="${item['name']}" th:value="${item['code']}" th:attr = " code = ${item['name']}"></option> | |
26 | - </select> | |
27 | - </div> | |
28 | - </div> | |
21 | + <!--<div class="form-group">--> | |
22 | + <!--<label class="col-sm-3 control-label">仓库:</label>--> | |
23 | + <!--<div class="col-sm-8">--> | |
24 | + <!--<select id="warehouseCode" name="warehouseCode" class="form-control" >--> | |
25 | + <!--<option th:each="item : ${warehouseList}" th:text="${item['name']}" th:value="${item['code']}" th:attr = " code = ${item['name']}"></option>--> | |
26 | + <!--</select>--> | |
27 | + <!--</div>--> | |
28 | + <!--</div>--> | |
29 | 29 | <div class="form-group"> |
30 | 30 | <label class="col-sm-3 control-label">地址1:</label> |
31 | 31 | <div class="col-sm-8"> |
... | ... |
src/main/resources/templates/config/container/container.html
... | ... | @@ -24,7 +24,7 @@ |
24 | 24 | <li> |
25 | 25 | 容器类型:<select name="containerType" th:with="containerType = ${@containerType.getCode()}"> |
26 | 26 | <option value="">所有</option> |
27 | - <option th:each="item : ${containerType}" th:text="${item['name']}" th:value="${item['prefix']}"></option> | |
27 | + <option th:each="item : ${containerType}" th:text="${item['name']}" th:value="${item['code']}"></option> | |
28 | 28 | </select> |
29 | 29 | </li> |
30 | 30 | <li class="time"> |
... | ... | @@ -102,10 +102,10 @@ |
102 | 102 | { |
103 | 103 | field : 'containerType', |
104 | 104 | title : '容器类型', |
105 | - align: 'center', | |
106 | - formatter: function(value, row, index) { | |
107 | - return $.table.selectPrefixToName(containerTypes, value); | |
108 | - } | |
105 | + // align: 'center', | |
106 | + // formatter: function(value, row, index) { | |
107 | + // return $.table.selectPrefixToName(containerTypes, value); | |
108 | + // } | |
109 | 109 | }, |
110 | 110 | { |
111 | 111 | field : 'locationCode', |
... | ... |
src/main/resources/templates/config/location/add.html
... | ... | @@ -33,7 +33,7 @@ |
33 | 33 | <label class="col-sm-3 control-label">库位类型:</label> |
34 | 34 | <div class="col-sm-8"> |
35 | 35 | <select id="locationType" name="locationType" class="form-control" th:with="locationType=${@locationType.getLocationPrefix()}"> |
36 | - <option th:each="item : ${locationType}" th:text="${item['name']}" th:value="${item['prefix']}"></option> | |
36 | + <option th:each="item : ${locationType}" th:text="${item['name']}" th:value="${item['code']}"></option> | |
37 | 37 | </select> |
38 | 38 | </div> |
39 | 39 | </div> |
... | ... | @@ -48,8 +48,8 @@ |
48 | 48 | <div class="form-group"> |
49 | 49 | <label class="col-sm-3 control-label">库位状态:</label> |
50 | 50 | <div class="col-sm-8"> |
51 | - <select id="status" name="status" class="form-control" th:with="statusList=${@dict.getType('locationStatus')}"> | |
52 | - <option th:each="item : ${statusList}" th:text="${item['dictLabel']}" th:value="${item['dictValue']}"></option> | |
51 | + <select id="status" name="status" class="form-control" th:with="status=${@dict.getType('locationStatus')}"> | |
52 | + <option th:each="item : ${status}" th:text="${item['dictLabel']}" th:value="${item['dictValue']}"></option> | |
53 | 53 | </select> |
54 | 54 | </div> |
55 | 55 | </div> |
... | ... | @@ -66,30 +66,22 @@ |
66 | 66 | var prefix = ctx + "config/location" |
67 | 67 | $("#form-location-add").validate({ |
68 | 68 | rules:{ |
69 | - row:{ | |
69 | + iRow:{ | |
70 | 70 | required:true, |
71 | 71 | digits:true |
72 | 72 | }, |
73 | - line:{ | |
73 | + iColumn:{ | |
74 | 74 | required:true, |
75 | 75 | digits:true |
76 | 76 | }, |
77 | - layer:{ | |
77 | + iLayer:{ | |
78 | 78 | required:true, |
79 | 79 | digits:true |
80 | 80 | }, |
81 | - grid:{ | |
81 | + iGrid:{ | |
82 | 82 | required:true, |
83 | 83 | digits:true |
84 | - }, | |
85 | - rowIndex:{ | |
86 | - required:true, | |
87 | - range:[1,4] | |
88 | - }, | |
89 | - roadway:{ | |
90 | - required:true, | |
91 | - min:0 | |
92 | - }, | |
84 | + } | |
93 | 85 | }, |
94 | 86 | submitHandler: function(form) { |
95 | 87 | $.ajax({ |
... | ... | @@ -101,9 +93,9 @@ |
101 | 93 | "iColumn": $("input[name='iColumn']").val(), |
102 | 94 | "iLayer": $("input[name='iLayer']").val(), |
103 | 95 | "iGrid": $("input[name='iGrid']").val(), |
104 | - "locationType": $("#type option:selected").val(), | |
96 | + "locationType": $("#locationType option:selected").val(), | |
105 | 97 | "zoneCode": $("#zoneCode option:selected").attr("code"), |
106 | - "enable" : $("input[name='enable']").is(':checked'), | |
98 | + "status" : $("#status option:selected").val(), | |
107 | 99 | }, |
108 | 100 | async : false, |
109 | 101 | error : function(request) { |
... | ... |
src/main/resources/templates/config/location/addBatch.html
... | ... | @@ -29,12 +29,12 @@ |
29 | 29 | <input id="iGrid" name="iGrid" class="form-control" type="text"> |
30 | 30 | </div> |
31 | 31 | </div> |
32 | - <div class="form-group"> | |
32 | + <div class="form-group"> | |
33 | 33 | <label class="col-sm-3 control-label">库位类型:</label> |
34 | 34 | <div class="col-sm-8"> |
35 | - <select id="locationType" class="form-control" th:with="locationType=${@locationType.getLocationPrefix()}"> | |
36 | - <option th:each="item : ${locationType}" th:text="${item['name']}" th:value="${item['code']}"></option> | |
37 | - </select> | |
35 | + <select id="locationType" name="locationType" class="form-control" th:with="locationType=${@locationType.getLocationPrefix()}"> | |
36 | + <option th:each="item : ${locationType}" th:text="${item['name']}" th:value="${item['code']}"></option> | |
37 | + </select> | |
38 | 38 | </div> |
39 | 39 | </div> |
40 | 40 | <div class="form-group"> |
... | ... | @@ -48,8 +48,8 @@ |
48 | 48 | <div class="form-group"> |
49 | 49 | <label class="col-sm-3 control-label">库位状态:</label> |
50 | 50 | <div class="col-sm-8"> |
51 | - <select id="status" name="status" class="form-control" th:with="statusList=${@dict.getType('locationStatus')}"> | |
52 | - <option th:each="item : ${statusList}" th:text="${item['dictLabel']}" th:value="${item['dictValue']}"></option> | |
51 | + <select id="status" name="status" class="form-control" th:with="status=${@dict.getType('locationStatus')}"> | |
52 | + <option th:each="item : ${status}" th:text="${item['dictLabel']}" th:value="${item['dictValue']}"></option> | |
53 | 53 | </select> |
54 | 54 | </div> |
55 | 55 | </div> |
... | ... | @@ -66,22 +66,33 @@ |
66 | 66 | var prefix = ctx + "config/location" |
67 | 67 | $("#form-location-add").validate({ |
68 | 68 | rules:{ |
69 | - row:{ | |
69 | + iRow:{ | |
70 | 70 | required:true, |
71 | 71 | digits:true |
72 | 72 | }, |
73 | - line:{ | |
73 | + iColumn:{ | |
74 | 74 | required:true, |
75 | 75 | digits:true |
76 | 76 | }, |
77 | - layer:{ | |
77 | + iLayer:{ | |
78 | 78 | required:true, |
79 | 79 | digits:true |
80 | 80 | }, |
81 | - grid:{ | |
81 | + iGrid:{ | |
82 | 82 | required:true, |
83 | 83 | digits:true |
84 | - } | |
84 | + }, | |
85 | + zoneCode:{ | |
86 | + required:true, | |
87 | + digits:true | |
88 | + }, | |
89 | + locationType:{ | |
90 | + required:true | |
91 | + }, | |
92 | + // status:{ | |
93 | + // required:true, | |
94 | + // digits:true | |
95 | + // } | |
85 | 96 | }, |
86 | 97 | submitHandler: function(form) { |
87 | 98 | $.ajax({ |
... | ... | @@ -95,7 +106,7 @@ |
95 | 106 | "iGrid": $("input[name='iGrid']").val(), |
96 | 107 | "locationType": $("#locationType option:selected").val(), |
97 | 108 | "zoneCode": $("#zone option:selected").attr("code"), |
98 | - "enable" : $("input[name='enable']").is(':checked'), | |
109 | + "status" : $("#status option:selected").val(), | |
99 | 110 | }, |
100 | 111 | async : false, |
101 | 112 | error : function(request) { |
... | ... |
src/main/resources/templates/config/location/location.html
... | ... | @@ -25,25 +25,25 @@ |
25 | 25 | 库区编码:<input type="text" name="zoneCode"/> |
26 | 26 | </li> |
27 | 27 | <li> |
28 | - 行:<input type="text" name="row"/> | |
28 | + 行:<input type="text" name="iRow"/> | |
29 | 29 | </li> |
30 | 30 | <li> |
31 | - 列:<input type="text" name="line"/> | |
31 | + 列:<input type="text" name="iColumn"/> | |
32 | 32 | </li> |
33 | 33 | <li> |
34 | - 层:<input type="text" name="layer"/> | |
34 | + 层:<input type="text" name="iLayer"/> | |
35 | 35 | </li> |
36 | 36 | <li> |
37 | - 格:<input type="text" name="grid"/> | |
38 | - </li> | |
39 | - <li> | |
40 | - 巷道:<input type="text" name="roadway"/> | |
37 | + 格:<input type="text" name="iGrid"/> | |
41 | 38 | </li> |
42 | 39 | <!--<li>--> |
40 | + <!--巷道:<input type="text" name="roadway"/>--> | |
41 | + <!--</li>--> | |
42 | + <!--<li>--> | |
43 | 43 | <!--名称:<input type="text" name="name"/>--> |
44 | 44 | <!--</li>--> |
45 | 45 | <li> |
46 | - 库位类型:<select name="type" th:with="locationTypes = ${@locationType.getLocationPrefix()}"> | |
46 | + 库位类型:<select name="locationType" th:with="locationTypes = ${@locationType.getLocationPrefix()}"> | |
47 | 47 | <option value="">所有</option> |
48 | 48 | <option th:each="e : ${locationTypes}" th:text="${e['name']}" th:value="${e['code']}"></option> |
49 | 49 | </select> |
... | ... |
src/main/resources/templates/config/locationType/locationType.html
... | ... | @@ -10,7 +10,7 @@ |
10 | 10 | <div class="select-list"> |
11 | 11 | <ul> |
12 | 12 | <li> |
13 | - 编码:<input type="text" name="code"/> | |
13 | + 货位类型:<input type="text" name="code"/> | |
14 | 14 | </li> |
15 | 15 | <li> |
16 | 16 | 名称:<input type="text" name="name"/> |
... | ... | @@ -107,10 +107,6 @@ |
107 | 107 | title : '校验位' |
108 | 108 | }, |
109 | 109 | { |
110 | - field : 'checkDigit', | |
111 | - title : '校验位' | |
112 | - }, | |
113 | - { | |
114 | 110 | field : 'maxMaterials', |
115 | 111 | title : '最多混放物料数' |
116 | 112 | }, |
... | ... |
src/main/resources/templates/config/material/material.html
... | ... | @@ -29,9 +29,9 @@ |
29 | 29 | </li> |
30 | 30 | <li class="time"> |
31 | 31 | <label>创建时间: </label> |
32 | - <input type="text" class="time-input" id="startTime" placeholder="开始时间" name="params[createdBegin]"/> | |
32 | + <input type="text" class="time-input" id="startTime" placeholder="开始时间" name="createdBegin"/> | |
33 | 33 | <span>-</span> |
34 | - <input type="text" class="time-input" id="endTime" placeholder="结束时间" name="params[createdEnd]"/> | |
34 | + <input type="text" class="time-input" id="endTime" placeholder="结束时间" name="createdEnd"/> | |
35 | 35 | </li> |
36 | 36 | <li> |
37 | 37 | <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i> 搜索</a> |
... | ... | @@ -206,7 +206,7 @@ |
206 | 206 | align: 'center', |
207 | 207 | formatter: function(value, row, index) { |
208 | 208 | var actions = []; |
209 | - actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> '); | |
209 | + // actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> '); | |
210 | 210 | actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-trash-o"></i>删除</a>'); |
211 | 211 | return actions.join(''); |
212 | 212 | } |
... | ... |
src/main/resources/templates/config/warehouse/warehouse.html
... | ... | @@ -213,7 +213,7 @@ |
213 | 213 | formatter: function(value, row, index) { |
214 | 214 | var actions = []; |
215 | 215 | actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick= edit(\''+row.code+'\')><i class="fa fa-edit"></i>编辑</a> '); |
216 | - actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="$.operate.remove(' + row.code + ')"><i class="fa fa-trash-o"></i>删除</a>'); | |
216 | + actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick=removes(\''+row.code+'\')><i class="fa fa-trash-o"></i>删除</a>'); | |
217 | 217 | return actions.join(''); |
218 | 218 | } |
219 | 219 | }] |
... | ... | @@ -225,6 +225,15 @@ |
225 | 225 | var url = prefix + "/edit/"+code; |
226 | 226 | $.modal.open("修改" + $.table._option.modalName, url); |
227 | 227 | } |
228 | + | |
229 | + // 删除信息 | |
230 | + function removes(code) { | |
231 | + $.modal.confirm("确定删除该条" + $.table._option.modalName + "信息吗?", function() { | |
232 | + var url = $.common.isEmpty(code) ? $.table._option.removeUrl : $.table._option.removeUrl.replace("{code}", code); | |
233 | + var data = { "codes": code }; | |
234 | + $.operate.submit(url, "post", "json", data); | |
235 | + }); | |
236 | + } | |
228 | 237 | </script> |
229 | 238 | </body> |
230 | 239 | </html> |
231 | 240 | \ No newline at end of file |
... | ... |
src/main/resources/templates/config/zoneCapacity/zoneCapacity.html
... | ... | @@ -10,13 +10,10 @@ |
10 | 10 | <div class="select-list"> |
11 | 11 | <ul> |
12 | 12 | <li> |
13 | - 编码:<input type="text" name="code"/> | |
13 | + 商品编码:<input type="text" name="materialCode"/> | |
14 | 14 | </li> |
15 | 15 | <li> |
16 | - 名称:<input type="text" name="name"/> | |
17 | - </li> | |
18 | - <li> | |
19 | - 存货编码:<input type="text" name="materialId"/> | |
16 | + 商品名称:<input type="text" name="materialName"/> | |
20 | 17 | </li> |
21 | 18 | </li> |
22 | 19 | <li> |
... | ... |
src/main/resources/templates/inventory/cycleCountDetail/add.html
... | ... | @@ -8,7 +8,7 @@ |
8 | 8 | <div class="row"> |
9 | 9 | <div class="col-sm-12 select-info"> |
10 | 10 | <form id="inventory-form"> |
11 | - <input type="hidden" id="cycleCountHeadId" name="cycleCountHeadId" th:value="${cycleCountHeadId}"> | |
11 | + <input type="hidden" id="cycleCountHeadCode" name="cycleCountHeadCode" th:value="${cycleCountHeadCode}"> | |
12 | 12 | <div class="select-list"> |
13 | 13 | <ul> |
14 | 14 | <ul> |
... | ... | @@ -329,16 +329,16 @@ |
329 | 329 | rows.forEach(function (item) { |
330 | 330 | ids.push(item.id); |
331 | 331 | }); |
332 | - addInner($('#cycleCountHeadId').val(),ids.join(',')); | |
332 | + addInner($('#cycleCountHeadCode').val(),ids.join(',')); | |
333 | 333 | } |
334 | 334 | |
335 | - function addInner(cycleCountHeadId,ids) { | |
335 | + function addInner(cycleCountHeadCode,ids) { | |
336 | 336 | $.ajax({ |
337 | 337 | cache : true, |
338 | 338 | type : "post", |
339 | 339 | url : prefix_cycleDetails + "/add", |
340 | 340 | data:{ |
341 | - cycleCountHeadId:cycleCountHeadId, | |
341 | + cycleCountHeadCode:cycleCountHeadCode, | |
342 | 342 | inventoryDetailIdIds:ids |
343 | 343 | }, |
344 | 344 | async : false, |
... | ... |
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="cycleCountHeadCode" name="cycleCountHeadCode" readonly="readonly" /> | |
13 | + 盘点主单编码:<input type="text" id="cycleCountHeadCode" name="cycleCountHeadCode" readonly="readonly" /> | |
14 | 14 | </form> |
15 | 15 | </li> |
16 | 16 | <li> |
... | ... |
src/main/resources/templates/inventory/cycleCountHeader/add.html
... | ... | @@ -33,9 +33,12 @@ |
33 | 33 | <div class="form-group"> |
34 | 34 | <label class="col-sm-3 control-label">货主:</label> |
35 | 35 | <div class="col-sm-8"> |
36 | - <input id="companyCode" name="companyCode" class="form-control" type="text"> | |
36 | + <select id="companyCode" name="companyCode" class="form-control" th:with="list=${@companyService.getCode()}"> | |
37 | + <option th:each="item : ${list}" th:text="${item['name']}" th:value="${item['code']}" th:attr = " code = ${item['code']}"></option> | |
38 | + </select> | |
37 | 39 | </div> |
38 | 40 | </div> |
41 | + | |
39 | 42 | <div class="form-group"> |
40 | 43 | <label class="col-sm-3 control-label">总货位数:</label> |
41 | 44 | <div class="col-sm-8"> |
... | ... |
src/main/resources/templates/inventory/cycleCountHeader/cycleCountHeader.html
... | ... | @@ -31,7 +31,7 @@ |
31 | 31 | 源盘点单号:<input type="text" name="sourceCode"/> |
32 | 32 | </li> |
33 | 33 | <li> |
34 | - 盘点主表编号:<input type="text" name="masterCode"/> | |
34 | + 盘点单编码:<input type="text" name="code"/> | |
35 | 35 | </li> |
36 | 36 | <li> |
37 | 37 | 原始盘点ID:<input type="text" name="countOrderId"/> |
... | ... | @@ -108,9 +108,13 @@ |
108 | 108 | sortName: "created", |
109 | 109 | sortOrder: "desc", |
110 | 110 | search: false, |
111 | + | |
111 | 112 | // onDblClickRow: function (row) { |
112 | 113 | // showDetail(row.id,row.code); |
113 | 114 | // }, |
115 | + onDblClickRow:function(row){ | |
116 | + detail(row.id,row.masterCode); | |
117 | + }, | |
114 | 118 | columns: [{ |
115 | 119 | checkbox: true |
116 | 120 | }, |
... | ... | @@ -120,8 +124,8 @@ |
120 | 124 | sortable: true |
121 | 125 | }, |
122 | 126 | { |
123 | - field: 'masterCode', | |
124 | - title: '盘点单号' | |
127 | + field: 'code', | |
128 | + title: '盘点单编码' | |
125 | 129 | }, |
126 | 130 | { |
127 | 131 | field: 'warehouseCode', |
... | ... | @@ -288,10 +292,10 @@ |
288 | 292 | }); |
289 | 293 | }); |
290 | 294 | |
291 | - function detail(id) { | |
295 | + function detail(id,code) { | |
292 | 296 | let url = ctx + "inventory/cycleCountDetail"; |
293 | - if (id) { | |
294 | - url = ctx + "inventory/cycleCountDetail?id=" + id; | |
297 | + if (code) { | |
298 | + url = ctx + "inventory/cycleCountDetail?cycleCountHeadCode=" + code; | |
295 | 299 | } |
296 | 300 | $("#tabDetail").children().remove(); |
297 | 301 | $("#myTab li").removeClass("active"); |
... | ... |