Commit 4ea4f617f6a813f16a74cca970cf40e5bd7045a7
Merge remote-tracking branch 'origin/develop' into develop
# Conflicts: # src/main/java/com/huaheng/pc/config/container/service/ContainerServiceImpl.java # src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/service/ReceiptContainerHeaderServiceImpl.java # src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java
Showing
99 changed files
with
985 additions
and
393 deletions
README.md
1 | 1 | 版本说明 |
2 | 2 | WMS_v2 |
3 | - 1. 入库 | |
4 | - 单据新建-0 | |
5 | - | |
3 | + | |
4 | + /*** | |
5 | + * 1.差异单页面 | |
6 | + * 盘点有差异之后生成差异单,差异单不做操作,展示,和生成调整单 | |
7 | + * | |
8 | + * 2.实盘登记页面, | |
9 | + * 做到盘点任务明细后面, | |
10 | + * 当员工确定容器,扫码物料,弹出选中已经生成的任务进行盘点登记, | |
11 | + * 可以扫码容器选中任务 | |
12 | + * 新增盘有按钮,可以新增一条盘点明细 | |
13 | + * | |
14 | + * | |
15 | + * 3.配置 | |
16 | + * 根据 容器多选,库位多选,巷道,物料多选,库存时间段,呆滞时间 | |
17 | + * 根据配置条件自动生成盘点单 | |
18 | + * 在盘点单下发任务时,重新查询库存,同步变更库存物料数量 | |
19 | + * 给一个自动生成盘点单按钮,定时扫描是否开启 | |
20 | + * | |
21 | + * | |
22 | + * 4.下发任务至WCS时做校验,是否同库位同容器已经有任务在执行 | |
23 | + * | |
24 | + * */ | |
6 | 25 | |
7 | 26 | \ No newline at end of file |
... | ... |
src/main/java/com/huaheng/HuaHengServletInitializer.java
... | ... | @@ -34,7 +34,7 @@ public class HuaHengServletInitializer extends SpringBootServletInitializer |
34 | 34 | |
35 | 35 | public static void main(String[] args) |
36 | 36 | { |
37 | - SpringApplication.run(HuaHengApplication.class, args); | |
37 | + //SpringApplication.run(HuaHengServletInitializer.class, args); | |
38 | 38 | System.out.println("*************** 华恒WMS启动成功WAR ***************\n" + |
39 | 39 | " >>> WMS_Servlet启动成功! <<< \n"+ |
40 | 40 | " へ /|▓\n"+ |
... | ... |
src/main/java/com/huaheng/api/acs/controller/StateInfoUp.java
... | ... | @@ -15,7 +15,7 @@ import javax.annotation.Resource; |
15 | 15 | |
16 | 16 | @RestController |
17 | 17 | @RequestMapping("/api/ACS/v1") |
18 | -@Api(tags = {"ACS"}, description = "登陆接口") | |
18 | +@Api(tags = {"ACS信息上传接口"}, value = "ACS信息上传接口") | |
19 | 19 | public class StateInfoUp extends BaseController { |
20 | 20 | @Resource |
21 | 21 | private AcsService acsService; |
... | ... |
src/main/java/com/huaheng/api/acs/controller/TaskConfirm.java
... | ... | @@ -15,7 +15,7 @@ import javax.annotation.Resource; |
15 | 15 | |
16 | 16 | @RestController |
17 | 17 | @RequestMapping("/api/ACS/v1") |
18 | -@Api(tags = {"ACS"}, description = "登陆接口") | |
18 | +@Api(tags = {"ACS任务回传接口"}, value = "ACS任务回传接口") | |
19 | 19 | public class TaskConfirm extends BaseController { |
20 | 20 | @Resource |
21 | 21 | private AcsService acsService; |
... | ... |
src/main/java/com/huaheng/api/general/controller/AdjustApi.java
src/main/java/com/huaheng/api/general/controller/BasicDataApi.java
... | ... | @@ -21,7 +21,7 @@ import org.springframework.web.bind.annotation.*; |
21 | 21 | |
22 | 22 | @RestController |
23 | 23 | @RequestMapping("/api/basicData") |
24 | -@Api(tags = {"basicData"}, description = "基础数据接口") | |
24 | +@Api(tags = {"基础数据接口"}, value = "基础数据接口basicData") | |
25 | 25 | public class BasicDataApi extends BaseController { |
26 | 26 | |
27 | 27 | @Autowired |
... | ... |
src/main/java/com/huaheng/api/general/controller/CycleCountApi.java
... | ... | @@ -18,7 +18,7 @@ import javax.annotation.Resource; |
18 | 18 | |
19 | 19 | @RestController |
20 | 20 | @RequestMapping("/api/cycleCountApi") |
21 | -@Api(tags = {"cycleCount"}, description = "盘点单接口") | |
21 | +@Api(tags = {"盘点单接口"}, value = "盘点单接口cycleCount") | |
22 | 22 | public class CycleCountApi { |
23 | 23 | |
24 | 24 | @Resource |
... | ... |
src/main/java/com/huaheng/api/general/controller/LoginApi.java
... | ... | @@ -19,7 +19,7 @@ import java.util.Map; |
19 | 19 | |
20 | 20 | @RestController |
21 | 21 | @RequestMapping("/api") |
22 | -@Api(tags = {"Login"}, description = "登陆接口") | |
22 | +@Api(tags = {"登陆接口"}, value = "登陆接口Login") | |
23 | 23 | public class LoginApi extends BaseController { |
24 | 24 | |
25 | 25 | @Autowired |
... | ... | @@ -29,12 +29,15 @@ public class LoginApi extends BaseController { |
29 | 29 | @ApiOperation("登陆接口") |
30 | 30 | public AjaxResult login(@RequestBody @ApiParam(value="登陆的Map集合") Map<String, String> param) |
31 | 31 | { |
32 | - if (param.get("username") == null) | |
32 | + if (param.get("username") == null) { | |
33 | 33 | throw new JSONException("username(用户名)不能为空"); |
34 | - if (param.get("password") == null) | |
34 | + } | |
35 | + if (param.get("password") == null) { | |
35 | 36 | throw new JSONException("password(密码)不能为空"); |
36 | - if (param.get("warehouseCode") == null) | |
37 | + } | |
38 | + if (param.get("warehouseCode") == null) { | |
37 | 39 | throw new JSONException("warehouseCode(仓库编码)不能为空"); |
40 | + } | |
38 | 41 | String username = param.get("username"); |
39 | 42 | String password = param.get("password"); |
40 | 43 | String warehouseCode = param.get("warehouseCode"); |
... | ... |
src/main/java/com/huaheng/api/general/controller/ReceiptApi.java
src/main/java/com/huaheng/api/general/controller/ReceiptController.java
... | ... | @@ -17,7 +17,7 @@ import javax.annotation.Resource; |
17 | 17 | */ |
18 | 18 | @RestController |
19 | 19 | @RequestMapping("/api/receipt") |
20 | -@Api(tags = {"basicData"}, description = "入库接口") | |
20 | +@Api(tags = {"入库接口"}, value = "入库接口receiptApi") | |
21 | 21 | public class ReceiptController { |
22 | 22 | |
23 | 23 | @Resource |
... | ... |
src/main/java/com/huaheng/api/general/controller/ShipmentApi.java
src/main/java/com/huaheng/api/general/service/AdjustService.java
src/main/java/com/huaheng/api/wcs/service/overrideHandle/OverrideHandleServiceImpl.java
... | ... | @@ -104,7 +104,7 @@ public class OverrideHandleServiceImpl implements OverrideHandleService { |
104 | 104 | Location newlocation =new Location(); |
105 | 105 | String code=ShiroUtils.getWarehouseCode(); |
106 | 106 | //重入的库位由wcs提供 |
107 | - if(!taskFinishDomain.getRedirectionLocationCode().equals("0")) { | |
107 | + if(!"0".equals(taskFinishDomain.getRedirectionLocationCode())) { | |
108 | 108 | LambdaQueryWrapper<Location> locationLa = Wrappers.lambdaQuery(); |
109 | 109 | locationLa.eq(Location::getCode, taskFinishDomain.getRedirectionLocationCode()) |
110 | 110 | .eq(Location::getStatus,"empty") |
... | ... |
src/main/java/com/huaheng/common/jasper/DocTypeUtil.java
... | ... | @@ -20,21 +20,21 @@ public class DocTypeUtil { |
20 | 20 | DocType type = DocType.PDF; |
21 | 21 | docType = docType.toUpperCase(); |
22 | 22 | |
23 | - if(docType.equals("DOC")){ | |
23 | + if("DOC".equals(docType)){ | |
24 | 24 | type =DocType.DOC; |
25 | - } else if (docType.equals("XLS")) { | |
25 | + } else if ("XLS".equals(docType)) { | |
26 | 26 | type = DocType.XLS; |
27 | - } else if(docType.equals("XLSX")) { | |
27 | + } else if("XLSX".equals(docType)) { | |
28 | 28 | type = DocType.XLSX; |
29 | - }else if (docType.equals("XML")) { | |
29 | + }else if ("XML".equals(docType)) { | |
30 | 30 | type = DocType.XML; |
31 | - } else if (docType.equals("RTF")) { | |
31 | + } else if ("RTF".equals(docType)) { | |
32 | 32 | type = DocType.RTF; |
33 | - } else if (docType.equals("CSV")) { | |
33 | + } else if ("CSV".equals(docType)) { | |
34 | 34 | type = DocType.CSV; |
35 | - } else if (docType.equals("HTML")) { | |
35 | + } else if ("HTML".equals(docType)) { | |
36 | 36 | type = DocType.HTML; |
37 | - } else if (docType.equals("TXT")) { | |
37 | + } else if ("TXT".equals(docType)) { | |
38 | 38 | type = DocType.TXT; |
39 | 39 | } |
40 | 40 | return type; |
... | ... |
src/main/java/com/huaheng/common/jasper/JasperreportUtils.java
1 | 1 | package com.huaheng.common.jasper; |
2 | 2 | |
3 | +import com.huaheng.common.exception.service.ServiceException; | |
3 | 4 | import net.sf.jasperreports.engine.*; |
4 | 5 | import net.sf.jasperreports.engine.export.*; |
5 | 6 | import net.sf.jasperreports.engine.export.ooxml.JRXlsxExporter; |
... | ... | @@ -138,6 +139,9 @@ public class JasperreportUtils { |
138 | 139 | case DOC: |
139 | 140 | contentType = "application/msword"; |
140 | 141 | break; |
142 | + default: | |
143 | + throw new ServiceException("格式错误!"); | |
144 | + | |
141 | 145 | } |
142 | 146 | return contentType; |
143 | 147 | } |
... | ... | @@ -192,7 +196,6 @@ public class JasperreportUtils { |
192 | 196 | * @param docType |
193 | 197 | * @return |
194 | 198 | */ |
195 | - @SuppressWarnings("deprecation") | |
196 | 199 | public JRAbstractExporter getJRExporter(DocType docType) { |
197 | 200 | JRAbstractExporter exporter = null; |
198 | 201 | switch (docType) { |
... | ... | @@ -223,6 +226,8 @@ public class JasperreportUtils { |
223 | 226 | case TXT: |
224 | 227 | exporter = new JRTextExporter(); |
225 | 228 | break; |
229 | + default: | |
230 | + throw new ServiceException("格式错误!"); | |
226 | 231 | } |
227 | 232 | return exporter; |
228 | 233 | } |
... | ... | @@ -251,7 +256,7 @@ public class JasperreportUtils { |
251 | 256 | |
252 | 257 | |
253 | 258 | // 3、判断资源类型 |
254 | - if (ext.equals("xls")) { | |
259 | + if ("xls".equals(ext)) { | |
255 | 260 | SimpleXlsReportConfiguration configuration = new SimpleXlsReportConfiguration(); |
256 | 261 | // 删除记录最下面的空行 |
257 | 262 | configuration.setRemoveEmptySpaceBetweenRows(Boolean.TRUE); |
... | ... | @@ -261,7 +266,7 @@ public class JasperreportUtils { |
261 | 266 | configuration.setWhitePageBackground(Boolean.FALSE); |
262 | 267 | exporter.setConfiguration(configuration); |
263 | 268 | } |
264 | - if(ext.equals("xlsx")) { | |
269 | + if("xlsx".equals(ext)) { | |
265 | 270 | SimpleXlsxReportConfiguration configuration = new SimpleXlsxReportConfiguration(); |
266 | 271 | configuration.setRemoveEmptySpaceBetweenRows(Boolean.TRUE); |
267 | 272 | configuration.setRemoveEmptySpaceBetweenColumns(Boolean.TRUE); |
... | ... | @@ -270,7 +275,7 @@ public class JasperreportUtils { |
270 | 275 | configuration.setDetectCellType(Boolean.TRUE); |
271 | 276 | exporter.setConfiguration(configuration); |
272 | 277 | } |
273 | - if (ext.equals("txt")) { | |
278 | + if ("txt".equals(ext)) { | |
274 | 279 | SimpleTextReportConfiguration configuration = new SimpleTextReportConfiguration(); |
275 | 280 | configuration.setCharWidth((float)8); |
276 | 281 | configuration.setCharHeight((float)15); |
... | ... | @@ -297,17 +302,17 @@ public class JasperreportUtils { |
297 | 302 | |
298 | 303 | // 7、解决中文乱码问题 |
299 | 304 | response.setCharacterEncoding("UTF-8"); |
300 | - if (ext.equals("csv") || ext.equals("doc") || ext.equals("rtf") || ext.equals("txt")) { | |
305 | + if ("csv".equals(ext) || "doc".equals(ext) || "rtf".equals(ext) || "txt".equals(ext)) { | |
301 | 306 | outWriter = response.getWriter(); |
302 | 307 | SimpleWriterExporterOutput outPut = new SimpleWriterExporterOutput(outWriter); |
303 | 308 | exporter.setExporterOutput(outPut); |
304 | 309 | //exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, outWriter); |
305 | 310 | } else { |
306 | - if(ext.equals("xml")) { | |
311 | + if("xml".equals(ext)) { | |
307 | 312 | outWriter = response.getWriter(); |
308 | 313 | XmlExporterOutput outPut = new SimpleXmlExporterOutput(outWriter); |
309 | 314 | exporter.setExporterOutput(outPut); |
310 | - }else if(ext.equals("html")){ | |
315 | + }else if("html".equals(ext)){ | |
311 | 316 | outWriter = response.getWriter(); |
312 | 317 | HtmlExporterOutput outPut = new SimpleHtmlExporterOutput(outWriter); |
313 | 318 | exporter.setExporterOutput(outPut); |
... | ... | @@ -457,7 +462,7 @@ public class JasperreportUtils { |
457 | 462 | } |
458 | 463 | if (null != val) { |
459 | 464 | if (type.endsWith("String")) { |
460 | - if (val.equals("0")) { | |
465 | + if ("0".equals(val)) { | |
461 | 466 | f.set(obj, "--"); |
462 | 467 | } else { |
463 | 468 | /* |
... | ... |
src/main/java/com/huaheng/common/utils/DataUtils.java
... | ... | @@ -40,8 +40,11 @@ public class DataUtils { |
40 | 40 | */ |
41 | 41 | public static String getString(Object object) |
42 | 42 | { |
43 | - if (object == null) return null; | |
44 | - else return object.toString(); | |
43 | + if (object == null) { | |
44 | + return null; | |
45 | + } else { | |
46 | + return object.toString(); | |
47 | + } | |
45 | 48 | } |
46 | 49 | |
47 | 50 | /** |
... | ... | @@ -51,8 +54,11 @@ public class DataUtils { |
51 | 54 | */ |
52 | 55 | public static Integer getInteger(Object object) |
53 | 56 | { |
54 | - if (object == null) return null; | |
55 | - else return Integer.valueOf(object.toString()); | |
57 | + if (object == null) { | |
58 | + return null; | |
59 | + } else { | |
60 | + return Integer.valueOf(object.toString()); | |
61 | + } | |
56 | 62 | } |
57 | 63 | |
58 | 64 | /** |
... | ... | @@ -62,8 +68,11 @@ public class DataUtils { |
62 | 68 | */ |
63 | 69 | public static BigDecimal getBigDecimal(Object object) |
64 | 70 | { |
65 | - if (object == null) return null; | |
66 | - else return new BigDecimal(object.toString()); | |
71 | + if (object == null) { | |
72 | + return null; | |
73 | + } else { | |
74 | + return new BigDecimal(object.toString()); | |
75 | + } | |
67 | 76 | } |
68 | 77 | |
69 | 78 | /** |
... | ... | @@ -73,8 +82,11 @@ public class DataUtils { |
73 | 82 | */ |
74 | 83 | public static Double getDouble(Object object) |
75 | 84 | { |
76 | - if (object == null) return null; | |
77 | - else return new Double(object.toString()); | |
85 | + if (object == null) { | |
86 | + return null; | |
87 | + } else { | |
88 | + return new Double(object.toString()); | |
89 | + } | |
78 | 90 | } |
79 | 91 | |
80 | 92 | /** |
... | ... |
src/main/java/com/huaheng/common/utils/YamlUtil.java
src/main/java/com/huaheng/common/utils/http/HttpUtils.java
... | ... | @@ -192,7 +192,7 @@ public class HttpUtils |
192 | 192 | String ret = ""; |
193 | 193 | while ((ret = br.readLine()) != null) |
194 | 194 | { |
195 | - if (ret != null && !ret.trim().equals("")) | |
195 | + if (ret != null && !"".equals(ret.trim())) | |
196 | 196 | { |
197 | 197 | result.append(new String(ret.getBytes("ISO-8859-1"), "utf-8")); |
198 | 198 | } |
... | ... |
src/main/java/com/huaheng/common/utils/poi/ExcelUtil.java
... | ... | @@ -35,9 +35,9 @@ public class ExcelUtil<T> |
35 | 35 | private static final Logger log = LoggerFactory.getLogger(ExcelUtil.class); |
36 | 36 | |
37 | 37 | /** |
38 | - * Excel sheet最大行数,默认65536 | |
38 | + * Excel sheet最大行数,默认65535 | |
39 | 39 | */ |
40 | - public static final int sheetSize = 65536; | |
40 | + public static final int Sheet_Size = 65535; | |
41 | 41 | |
42 | 42 | /** |
43 | 43 | * 工作表名称 |
... | ... | @@ -292,7 +292,7 @@ public class ExcelUtil<T> |
292 | 292 | try |
293 | 293 | { |
294 | 294 | // 取出一共有多少个sheet. |
295 | - double sheetNo = Math.ceil(list.size() / sheetSize); | |
295 | + double sheetNo = Math.ceil(list.size() / Sheet_Size); | |
296 | 296 | for (int index = 0; index <= sheetNo; index++) |
297 | 297 | { |
298 | 298 | createSheet(sheetNo, index); |
... | ... | @@ -353,12 +353,12 @@ public class ExcelUtil<T> |
353 | 353 | * |
354 | 354 | * @param index 序号 |
355 | 355 | * @param row 单元格行 |
356 | - * @param cell 类型单元格 | |
356 | + * | |
357 | 357 | */ |
358 | 358 | public void fillExcelData(int index, Row row) |
359 | 359 | { |
360 | - int startNo = index * sheetSize; | |
361 | - int endNo = Math.min(startNo + sheetSize, list.size()); | |
360 | + int startNo = index * Sheet_Size; | |
361 | + int endNo = Math.min(startNo + Sheet_Size, list.size()); | |
362 | 362 | for (int i = startNo; i < endNo; i++) |
363 | 363 | { |
364 | 364 | row = sheet.createRow(i + 1 - startNo); |
... | ... |
src/main/java/com/huaheng/mobile/download/ApkController.java
... | ... | @@ -24,10 +24,12 @@ public class ApkController { |
24 | 24 | @ApiOperation("获取apk更新信息") |
25 | 25 | public AjaxResult getUpdateApkInfo(@RequestBody Map<String, String> param) { |
26 | 26 | System.out.println("getUpdateApkInfo pkgName:" + param.get("pkgName")); |
27 | - if (param.get("pkgName") == null) | |
27 | + if (param.get("pkgName") == null) { | |
28 | 28 | throw new JSONException("pkgName不能为空"); |
29 | - if (param.get("versionCode") == null) | |
29 | + } | |
30 | + if (param.get("versionCode") == null) { | |
30 | 31 | throw new JSONException("versionCode不能为空"); |
32 | + } | |
31 | 33 | List<ApkInfo> apkinfos = apkMapper.getApkInfoByPkgName(param.get("pkgName")); |
32 | 34 | if(apkinfos == null || apkinfos.size() <= 0) { |
33 | 35 | return AjaxResult.error("当前已经是最新版本"); |
... | ... | @@ -64,16 +66,21 @@ public class ApkController { |
64 | 66 | @ApiOperation("插入apk更新信息") |
65 | 67 | public ApkInfo insertApkInfo(@RequestBody Map<String, String> param) { |
66 | 68 | System.out.println("insertApkInfo pkgName:" + param.get("pkgName")); |
67 | - if (param.get("pkgName") == null) | |
69 | + if (param.get("pkgName") == null) { | |
68 | 70 | throw new JSONException("pkgName不能为空"); |
69 | - if (param.get("versionCode") == null) | |
71 | + } | |
72 | + if (param.get("versionCode") == null) { | |
70 | 73 | throw new JSONException("versionCode不能为空"); |
71 | - if (param.get("versionName") == null) | |
74 | + } | |
75 | + if (param.get("versionName") == null) { | |
72 | 76 | throw new JSONException("versionName"); |
73 | - if (param.get("url") == null) | |
77 | + } | |
78 | + if (param.get("url") == null) { | |
74 | 79 | throw new JSONException("url"); |
75 | - if (param.get("md5") == null) | |
80 | + } | |
81 | + if (param.get("md5") == null) { | |
76 | 82 | throw new JSONException("md5"); |
83 | + } | |
77 | 84 | ApkInfo apkInfo = buildApkInfo(param); |
78 | 85 | try { |
79 | 86 | apkMapper.insertApkInfo(apkInfo.getPkgName(), apkInfo.getVersionCode(), apkInfo.getVersionName(), apkInfo.getUrl(), apkInfo.getMd5()); |
... | ... |
src/main/java/com/huaheng/mobile/general/MobileUserController.java
... | ... | @@ -40,7 +40,7 @@ import java.util.stream.Collectors; |
40 | 40 | */ |
41 | 41 | @RestController |
42 | 42 | @RequestMapping("/mobile/") |
43 | -@Api(tags = {"MobileUserController"}, description = "移动端用户信息") | |
43 | +@Api(tags = {"移动端用户信息"}, value = "移动端用户信息MobileUserController") | |
44 | 44 | public class MobileUserController extends BaseController { |
45 | 45 | |
46 | 46 | @Resource |
... | ... |
src/main/java/com/huaheng/mobile/invenory/InventoryDomain.java
0 → 100644
1 | +package com.huaheng.mobile.invenory; | |
2 | + | |
3 | +import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; | |
4 | +import com.huaheng.pc.inventory.inventoryHeader.domain.InventoryHeader; | |
5 | + | |
6 | +import java.util.List; | |
7 | + | |
8 | +public class InventoryDomain { | |
9 | + | |
10 | + private InventoryHeader inventoryHeader; | |
11 | + private List<InventoryDetail> inventoryDetails; | |
12 | + | |
13 | + public InventoryHeader getInventoryHeader() { | |
14 | + return inventoryHeader; | |
15 | + } | |
16 | + | |
17 | + public void setInventoryHeader(InventoryHeader inventoryHeader) { | |
18 | + this.inventoryHeader = inventoryHeader; | |
19 | + } | |
20 | + | |
21 | + public List<InventoryDetail> getInventoryDetails() { | |
22 | + return inventoryDetails; | |
23 | + } | |
24 | + | |
25 | + public void setInventoryDetails(List<InventoryDetail> inventoryDetails) { | |
26 | + this.inventoryDetails = inventoryDetails; | |
27 | + } | |
28 | +} | |
... | ... |
src/main/java/com/huaheng/mobile/invenory/MobileInventoryController.java
... | ... | @@ -11,14 +11,19 @@ import com.huaheng.common.utils.security.ShiroUtils; |
11 | 11 | import com.huaheng.framework.aspectj.lang.annotation.Log; |
12 | 12 | import com.huaheng.framework.aspectj.lang.constant.BusinessType; |
13 | 13 | import com.huaheng.framework.web.domain.AjaxResult; |
14 | +import com.huaheng.mobile.task.TaskDomain; | |
14 | 15 | import com.huaheng.pc.config.container.domain.Container; |
15 | 16 | import com.huaheng.pc.config.container.service.ContainerService; |
16 | 17 | import com.huaheng.pc.config.location.domain.Location; |
17 | 18 | import com.huaheng.pc.config.location.service.LocationService; |
18 | 19 | import com.huaheng.pc.inventory.cycleCountDetail.service.CycleCountDetailService; |
20 | +import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; | |
21 | +import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService; | |
19 | 22 | import com.huaheng.pc.inventory.inventoryHeader.service.InventoryHeaderService; |
20 | 23 | import com.huaheng.pc.report.excelReport.mapper.ExcelReportMapper; |
21 | 24 | import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail; |
25 | +import com.huaheng.pc.task.taskDetail.domain.TaskDetail; | |
26 | +import com.huaheng.pc.task.taskHeader.domain.TaskHeader; | |
22 | 27 | import com.huaheng.pc.task.taskHeader.service.TaskHeaderService; |
23 | 28 | import io.swagger.annotations.Api; |
24 | 29 | import io.swagger.annotations.ApiOperation; |
... | ... | @@ -27,6 +32,7 @@ import org.springframework.web.bind.annotation.*; |
27 | 32 | |
28 | 33 | import javax.annotation.Resource; |
29 | 34 | import java.math.BigDecimal; |
35 | +import java.text.SimpleDateFormat; | |
30 | 36 | import java.util.*; |
31 | 37 | |
32 | 38 | /** |
... | ... | @@ -37,12 +43,14 @@ import java.util.*; |
37 | 43 | @CrossOrigin |
38 | 44 | @RestController |
39 | 45 | @RequestMapping("/mobile/inventory") |
40 | -@Api(tags = {"MobileInventoryController"}, description = "手机立体库库存相关") | |
46 | +@Api(tags = {"手机立体库库存相关"}, value = "手机立体库库存相关MobileInventoryController") | |
41 | 47 | public class MobileInventoryController { |
42 | 48 | |
43 | 49 | @Resource |
44 | 50 | private InventoryHeaderService inventoryService; |
45 | 51 | @Resource |
52 | + private InventoryDetailService inventoryDetailService; | |
53 | + @Resource | |
46 | 54 | private TaskHeaderService taskService; |
47 | 55 | @Resource |
48 | 56 | private LocationService locationService; |
... | ... | @@ -386,15 +394,6 @@ public class MobileInventoryController { |
386 | 394 | public AjaxResult getEmptyContainerInLocation(@RequestBody Map<String, String> param) { |
387 | 395 | String warehouCOde = ShiroUtils.getWarehouseCode(); |
388 | 396 | List<Location> list = containerService.getEmptyContainerInLocation(null,null,ShiroUtils.getWarehouseCode()); |
389 | - List<Location> removeList = new ArrayList<>(); | |
390 | - for(Location location : list) { | |
391 | - String containerCode = location.getContainerCode(); | |
392 | - Integer taskCount = taskService.UncompleteCount(containerCode); | |
393 | - if (taskCount != null && taskCount.intValue() > 0) { | |
394 | - removeList.add(location); | |
395 | - } | |
396 | - } | |
397 | - list.removeAll(removeList); | |
398 | 397 | return AjaxResult.success(list); |
399 | 398 | } |
400 | 399 | |
... | ... | @@ -410,7 +409,7 @@ public class MobileInventoryController { |
410 | 409 | for(Location location : locations) { |
411 | 410 | for(Container container : containers) { |
412 | 411 | if(container.getCode().equals(location.getContainerCode())) { |
413 | - if(container.getStatus().equals("some")) { | |
412 | + if("some".equals(container.getStatus())) { | |
414 | 413 | location.setStatus("some"); |
415 | 414 | } |
416 | 415 | } |
... | ... | @@ -418,4 +417,73 @@ public class MobileInventoryController { |
418 | 417 | } |
419 | 418 | return AjaxResult.success(locations); |
420 | 419 | } |
420 | + | |
421 | + @PostMapping("/searchInventory") | |
422 | + @ApiOperation("移动端查询库存") | |
423 | + @Log(title = "移动端查询库存", action = BusinessType.OTHER) | |
424 | + public AjaxResult searchInventory(@RequestBody @ApiParam(value = "物料号") Map<String, String> param){ | |
425 | + String companyCode = param.get("companyCode"); | |
426 | + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | |
427 | + String now = df.format(new Date()); | |
428 | + Calendar c = Calendar.getInstance(); | |
429 | + c.setTime(new Date()); | |
430 | + c.add(Calendar.DATE, -7); | |
431 | + Date first = c.getTime(); | |
432 | + String start = df.format(first);//前一天 | |
433 | + LambdaQueryWrapper<InventoryDetail> inventoryQueryWrapper = Wrappers.lambdaQuery(); | |
434 | + inventoryQueryWrapper.eq(InventoryDetail::getCompanyCode, companyCode) | |
435 | + .eq(InventoryDetail::getWarehouseCode, ShiroUtils.getWarehouseCode()) | |
436 | + .orderByDesc(InventoryDetail::getCreated); | |
437 | + List<InventoryDetail> inventoryDetailList = inventoryDetailService.list(inventoryQueryWrapper); | |
438 | + return AjaxResult.success(inventoryDetailList); | |
439 | + } | |
440 | + | |
441 | + @PostMapping("/searchInventoryInLocation") | |
442 | + @ApiOperation("移动端查询库存") | |
443 | + @Log(title = "移动端查询库存", action = BusinessType.OTHER) | |
444 | + public AjaxResult searchInventoryInLocation(@RequestBody @ApiParam(value = "物料号") Map<String, String> param){ | |
445 | + String companyCode = param.get("companyCode"); | |
446 | + String containerCode = param.get("containerCode"); | |
447 | + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | |
448 | + String now = df.format(new Date()); | |
449 | + Calendar c = Calendar.getInstance(); | |
450 | + c.setTime(new Date()); | |
451 | + c.add(Calendar.DATE, -7); | |
452 | + Date first = c.getTime(); | |
453 | + String start = df.format(first);//前一天 | |
454 | + LambdaQueryWrapper<InventoryDetail> inventoryQueryWrapper = Wrappers.lambdaQuery(); | |
455 | + inventoryQueryWrapper.eq(InventoryDetail::getCompanyCode, companyCode) | |
456 | + .eq(InventoryDetail::getWarehouseCode, ShiroUtils.getWarehouseCode()) | |
457 | + .orderByDesc(InventoryDetail::getCreated); | |
458 | + List<InventoryDetail> inventoryDetailList = inventoryDetailService.list(inventoryQueryWrapper); | |
459 | + return AjaxResult.success(inventoryDetailList); | |
460 | + } | |
461 | + | |
462 | + | |
463 | + @PostMapping("/findInventory") | |
464 | + @ApiOperation("移动端查询库存详情") | |
465 | + @Log(title = "移动端查询库存详情", action = BusinessType.OTHER) | |
466 | + public AjaxResult findInventory(@RequestBody @ApiParam(value = "物料号") Map<String, String> param){ | |
467 | + String inventoryDetailId = param.get("inventoryDetailId"); | |
468 | + String companyCode = param.get("companyCode"); | |
469 | + String materialCode = param.get("materialCode"); | |
470 | + String materialName = param.get("materialName"); | |
471 | + String materialSpec = param.get("materialSpec"); | |
472 | + String shipper = param.get("shipper"); //货主 | |
473 | + if (StringUtils.isNull(inventoryDetailId)){ | |
474 | + return AjaxResult.error("任务id为空"); | |
475 | + } else if (StringUtils.isNull(companyCode)){ | |
476 | + return AjaxResult.error("公司编码为空"); | |
477 | + } | |
478 | + | |
479 | + /* 查询入库单,如果数据库中不存在,则调用ERP接口拉取单据,成功后再次查询返回结果*/ | |
480 | + LambdaQueryWrapper<InventoryDetail> inventoryQueryWrapper = Wrappers.lambdaQuery(); | |
481 | + inventoryQueryWrapper.eq(InventoryDetail::getId, inventoryDetailId) | |
482 | + .eq(InventoryDetail::getCompanyCode, companyCode); | |
483 | + InventoryDetail inventoryDetail = inventoryDetailService.getOne(inventoryQueryWrapper); | |
484 | + if(inventoryDetail == null) { | |
485 | + return AjaxResult.error("没有找到库存详情"); | |
486 | + } | |
487 | + return AjaxResult.success(inventoryDetail); | |
488 | + } | |
421 | 489 | } |
... | ... |
src/main/java/com/huaheng/mobile/receipt/MobileBatchReceiptController.java
... | ... | @@ -21,6 +21,8 @@ import com.huaheng.pc.config.location.domain.Location; |
21 | 21 | import com.huaheng.pc.config.location.service.LocationService; |
22 | 22 | import com.huaheng.pc.config.material.domain.Material; |
23 | 23 | import com.huaheng.pc.config.material.service.MaterialService; |
24 | +import com.huaheng.pc.config.receiptType.domain.ReceiptType; | |
25 | +import com.huaheng.pc.config.receiptType.service.ReceiptTypeService; | |
24 | 26 | import com.huaheng.pc.receipt.receiptContainerDetail.service.ReceiptContainerDetailService; |
25 | 27 | import com.huaheng.pc.receipt.receiptContainerDetail.domain.ReceiptContainerDetail; |
26 | 28 | import com.huaheng.pc.receipt.receiptContainerDetail.service.ReceiptContainerDetailService; |
... | ... | @@ -56,7 +58,7 @@ import java.util.*; |
56 | 58 | @CrossOrigin |
57 | 59 | @RestController |
58 | 60 | @RequestMapping("/mobile/receipt/batch") |
59 | -@Api(tags = {"MobileBatchReceiptController"}, description = "移动端收货") | |
61 | +@Api(tags = {"移动端收货"}, value = "移动端收货MobileBatchReceiptController") | |
60 | 62 | public class MobileBatchReceiptController { |
61 | 63 | |
62 | 64 | @Resource |
... | ... | @@ -81,6 +83,8 @@ public class MobileBatchReceiptController { |
81 | 83 | private CompanyService companyService; |
82 | 84 | @Resource |
83 | 85 | private IDictDataService dictDataService; |
86 | + @Resource | |
87 | + private ReceiptTypeService receiptTypeService; | |
84 | 88 | |
85 | 89 | |
86 | 90 | @PostMapping("/scanContainer") |
... | ... | @@ -101,10 +105,10 @@ public class MobileBatchReceiptController { |
101 | 105 | if (container == null) { |
102 | 106 | return AjaxResult.error("托盘编码错误"); |
103 | 107 | } |
104 | - if (!container.getStatus().equals("empty")) { | |
108 | + if (!"empty".equals(container.getStatus())) { | |
105 | 109 | return AjaxResult.error("托盘状态不为空"); |
106 | 110 | } |
107 | - if (!container.getLocationCode().equals("")) { | |
111 | + if (!"".equals(container.getLocationCode())) { | |
108 | 112 | return AjaxResult.error(""); |
109 | 113 | } |
110 | 114 | return result; |
... | ... | @@ -149,7 +153,7 @@ public class MobileBatchReceiptController { |
149 | 153 | return AjaxResult.success(materials); |
150 | 154 | } |
151 | 155 | |
152 | - @PostMapping("/getLatestReceipt") | |
156 | + @PostMapping("/getLatestReceipt") | |
153 | 157 | @ApiOperation("移动端获取入库单") |
154 | 158 | @Log(title = "移动端获取入库单", action = BusinessType.OTHER) |
155 | 159 | public AjaxResult getLatestReceipt(@RequestBody @ApiParam(value = "物料号") Map<String, String> param) throws Exception { |
... | ... | @@ -359,7 +363,7 @@ public class MobileBatchReceiptController { |
359 | 363 | throw new JSONException("不存在这个托盘"); |
360 | 364 | } |
361 | 365 | |
362 | - if(!location.getStatus().equals("empty")) { | |
366 | + if(!"empty".equals(location.getStatus())) { | |
363 | 367 | throw new JSONException("库位状态不是空闲"); |
364 | 368 | } |
365 | 369 | } |
... | ... | @@ -380,6 +384,9 @@ public class MobileBatchReceiptController { |
380 | 384 | |
381 | 385 | List<ReceiptContainerView> receiptContainerViewList = new ArrayList<>(); |
382 | 386 | for(ReceiptBill receiptBill : receiptBills) { |
387 | + if(receiptBill.getQty().compareTo(BigDecimal.ZERO) == 0) { | |
388 | + continue; | |
389 | + } | |
383 | 390 | ReceiptContainerView receiptContainerView = new ReceiptContainerView(); |
384 | 391 | receiptContainerView.setLocationCode(receiptBill.getLocationCode()); |
385 | 392 | receiptContainerView.setCompanyCode(receiptBill.getCompanyCode()); |
... | ... | @@ -458,7 +465,7 @@ public class MobileBatchReceiptController { |
458 | 465 | if (loc == null) { |
459 | 466 | return AjaxResult.error("目标库位不存在"); |
460 | 467 | } |
461 | - if (!loc.getStatus().equals("empty")) { | |
468 | + if (!"empty".equals(loc.getStatus())) { | |
462 | 469 | return AjaxResult.error("目标库位非空闲"); |
463 | 470 | } |
464 | 471 | } |
... | ... | @@ -516,7 +523,8 @@ public class MobileBatchReceiptController { |
516 | 523 | receiptHeaderQueryWrapper.eq(ReceiptHeader::getCompanyCode, companyCode) |
517 | 524 | .eq(ReceiptHeader::getWarehouseCode, ShiroUtils.getWarehouseCode()) |
518 | 525 | .le(ReceiptHeader::getCreated, now) |
519 | - .gt(ReceiptHeader::getCreated, start); | |
526 | + .gt(ReceiptHeader::getCreated, start) | |
527 | + .orderByDesc(ReceiptHeader::getCreated); | |
520 | 528 | List<ReceiptHeader> receiptHeaderList = receiptHeaderService.list(receiptHeaderQueryWrapper); |
521 | 529 | return AjaxResult.success(receiptHeaderList); |
522 | 530 | } |
... | ... | @@ -530,5 +538,13 @@ public class MobileBatchReceiptController { |
530 | 538 | return AjaxResult.success(dictDataList); |
531 | 539 | } |
532 | 540 | |
541 | + @PostMapping("/getReceiptType") | |
542 | + @ApiOperation("移动端查询入库类型") | |
543 | + @Log(title = "移动端查询字典信息", action = BusinessType.OTHER) | |
544 | + public AjaxResult getReceiptType(@RequestBody @ApiParam(value = "物料号") Map<String, String> param){ | |
545 | + LambdaQueryWrapper<ReceiptType> receiptTypeLambda = Wrappers.lambdaQuery(); | |
546 | + List<ReceiptType> receiptType = receiptTypeService.list(receiptTypeLambda); | |
547 | + return AjaxResult.success(receiptType); | |
548 | + } | |
533 | 549 | |
534 | 550 | } |
... | ... |
src/main/java/com/huaheng/mobile/receipt/MobileOneByOneReceiptController.java
... | ... | @@ -23,7 +23,7 @@ import java.math.BigDecimal; |
23 | 23 | @CrossOrigin |
24 | 24 | @RestController |
25 | 25 | @RequestMapping("/mobile/receipt/oneByOne") |
26 | -@Api(tags = {"MobileOneByOneReceiptController"}, description = "移动端逐件收货") | |
26 | +@Api(tags = {"移动端逐件收货"}, value = "移动端逐件收货MobileOneByOneReceiptController") | |
27 | 27 | public class MobileOneByOneReceiptController { |
28 | 28 | |
29 | 29 | @Resource |
... | ... |
src/main/java/com/huaheng/mobile/receipt/MobilePutawayController.java
... | ... | @@ -30,7 +30,7 @@ import java.util.Map; |
30 | 30 | */ |
31 | 31 | @RestController |
32 | 32 | @RequestMapping("/mobile/putaway/execute") |
33 | -@Api(tags = {"MobilePutawayController"}, description = "手机收货上架") | |
33 | +@Api(tags = {"手机收货上架"}, value = "手机收货上架MobilePutawayController") | |
34 | 34 | public class MobilePutawayController { |
35 | 35 | |
36 | 36 | @Resource |
... | ... | @@ -62,7 +62,7 @@ public class MobilePutawayController { |
62 | 62 | .eq(Location::getContainerCode, param.get("containerCode")); |
63 | 63 | Location location = locationService.getOne(queryWrapper); |
64 | 64 | if(location == null) { |
65 | - AjaxResult.error("没有该库位"); | |
65 | + return AjaxResult.error("没有该库位"); | |
66 | 66 | } |
67 | 67 | return AjaxResult.success("获取成功",location.getCode()); |
68 | 68 | } |
... | ... |
src/main/java/com/huaheng/mobile/shipment/MobileShipmentController.java
... | ... | @@ -2,6 +2,8 @@ package com.huaheng.mobile.shipment; |
2 | 2 | |
3 | 3 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
4 | 4 | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
5 | +import com.huaheng.api.general.domain.ReceiptDomain; | |
6 | +import com.huaheng.api.general.domain.ShipmentDomain; | |
5 | 7 | import com.huaheng.common.exception.BusinessException; |
6 | 8 | import com.huaheng.common.utils.StringUtils; |
7 | 9 | import com.huaheng.common.utils.security.ShiroUtils; |
... | ... | @@ -12,6 +14,11 @@ import com.huaheng.framework.web.domain.AjaxResult; |
12 | 14 | import com.huaheng.mobile.invenory.TaskIds; |
13 | 15 | import com.huaheng.pc.config.company.domain.Company; |
14 | 16 | import com.huaheng.pc.config.company.service.CompanyService; |
17 | +import com.huaheng.pc.config.receiptType.domain.ReceiptType; | |
18 | +import com.huaheng.pc.config.shipmentType.domain.ShipmentType; | |
19 | +import com.huaheng.pc.config.shipmentType.service.ShipmentTypeService; | |
20 | +import com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail; | |
21 | +import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader; | |
15 | 22 | import com.huaheng.pc.shipment.shipmentContainerHeader.service.ShipmentContainerHeaderService; |
16 | 23 | import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail; |
17 | 24 | import com.huaheng.pc.shipment.shipmentDetail.service.ShipmentDetailService; |
... | ... | @@ -19,15 +26,16 @@ import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader; |
19 | 26 | import com.huaheng.pc.shipment.shipmentHeader.service.ShipmentHeaderService; |
20 | 27 | import com.huaheng.pc.task.taskHeader.domain.ShipmentTaskCreateModel; |
21 | 28 | import com.huaheng.pc.task.taskHeader.service.TaskHeaderService; |
29 | +import io.swagger.annotations.ApiOperation; | |
22 | 30 | import io.swagger.annotations.ApiParam; |
23 | 31 | import org.springframework.beans.factory.annotation.Autowired; |
24 | 32 | import org.springframework.transaction.annotation.Transactional; |
25 | 33 | import org.springframework.web.bind.annotation.*; |
26 | 34 | |
27 | 35 | import javax.annotation.Resource; |
28 | -import java.util.ArrayList; | |
29 | -import java.util.List; | |
30 | -import java.util.Map; | |
36 | +import java.text.SimpleDateFormat; | |
37 | +import java.util.*; | |
38 | +import java.util.stream.Collectors; | |
31 | 39 | |
32 | 40 | /** |
33 | 41 | * @author mahua |
... | ... | @@ -49,6 +57,8 @@ public class MobileShipmentController extends BaseController { |
49 | 57 | private CompanyService companyService; |
50 | 58 | @Autowired |
51 | 59 | private TaskHeaderService taskHeaderService; |
60 | + @Autowired | |
61 | + private ShipmentTypeService shipmentTypeService; | |
52 | 62 | |
53 | 63 | /** |
54 | 64 | * 自动组盘 |
... | ... | @@ -57,7 +67,8 @@ public class MobileShipmentController extends BaseController { |
57 | 67 | */ |
58 | 68 | @PostMapping("/autoCombination") |
59 | 69 | @ResponseBody |
60 | - public AjaxResult autoCombination(String shipmentCode){ | |
70 | + public AjaxResult autoCombination(@RequestBody Map<String, String> param){ | |
71 | + String shipmentCode = param.get("shipmentCode"); | |
61 | 72 | AjaxResult ajaxResult = shipmentContainerHeaderService.autoCombination(shipmentCode); |
62 | 73 | return ajaxResult; |
63 | 74 | } |
... | ... | @@ -85,11 +96,6 @@ public class MobileShipmentController extends BaseController { |
85 | 96 | ShipmentHeader shipmentHeader = shipmentHeaderService.getOne(lambdaQueryWrapper); |
86 | 97 | |
87 | 98 | if (shipmentHeader == null) { |
88 | -// LambdaQueryWrapper<Company> lambdaQueryWrapper1 = Wrappers.lambdaQuery(); | |
89 | -// lambdaQueryWrapper1.eq(Company::getCode, param.get("companyCode")); | |
90 | -// Company company = companyService.getOne(lambdaQueryWrapper1); | |
91 | -// shipmentHeaderService.findErpShipment(String.valueOf(company.getId()), param.get("shipmentType"), param.get("referCode")); | |
92 | -// shipmentHeader = shipmentHeaderService.getOne(lambdaQueryWrapper); | |
93 | 99 | return AjaxResult.error("没有找到出库单"); |
94 | 100 | } |
95 | 101 | LambdaQueryWrapper<ShipmentDetail> detailLambdaQueryWrapper = Wrappers.lambdaQuery(); |
... | ... | @@ -101,6 +107,7 @@ public class MobileShipmentController extends BaseController { |
101 | 107 | return AjaxResult.success(shipment); |
102 | 108 | } |
103 | 109 | |
110 | + | |
104 | 111 | /** |
105 | 112 | * 根据出库单号生成出库任务 |
106 | 113 | */ |
... | ... | @@ -108,10 +115,15 @@ public class MobileShipmentController extends BaseController { |
108 | 115 | @ResponseBody |
109 | 116 | @Transactional(rollbackFor = Exception.class) |
110 | 117 | public AjaxResult createShipmentTask(@RequestBody List<TaskIds> taskDetails){ |
118 | + List<Integer> ids = new ArrayList<>(); | |
119 | + for (TaskIds task : taskDetails) { | |
120 | + ids.add(task.getTaskId()); | |
121 | + } | |
122 | + List<Integer> listWithoutDuplicates = ids.stream().distinct().collect(Collectors.toList()); | |
111 | 123 | ShipmentTaskCreateModel shipmentTask = new ShipmentTaskCreateModel(); |
112 | 124 | List<Integer> taskIds = new ArrayList<>(); |
113 | - for (TaskIds task : taskDetails) { | |
114 | - shipmentTask.setShipmentContainerHeaderIds(task.getTaskId()); | |
125 | + for (Integer id : listWithoutDuplicates) { | |
126 | + shipmentTask.setShipmentContainerHeaderIds(id); | |
115 | 127 | AjaxResult ajaxResult = taskHeaderService.createTaskFromShipmentContainers(shipmentTask); |
116 | 128 | if(ajaxResult.hasErr()){ |
117 | 129 | return ajaxResult; |
... | ... | @@ -121,4 +133,65 @@ public class MobileShipmentController extends BaseController { |
121 | 133 | } |
122 | 134 | return AjaxResult.success(taskIds); |
123 | 135 | } |
136 | + | |
137 | + @PostMapping("/findShipment") | |
138 | + @ApiOperation("移动端查询出库单") | |
139 | + @Log(title = "移动端查询出库单", action = BusinessType.OTHER) | |
140 | + public AjaxResult findShipment(@RequestBody @ApiParam(value = "物料号") Map<String, String> param){ | |
141 | + String shipmentCode = param.get("shipmentCode"); | |
142 | + String companyCode = param.get("companyCode"); | |
143 | + if (StringUtils.isNull(shipmentCode)){ | |
144 | + return AjaxResult.error("上游系统关联单号为空"); | |
145 | + } else if (StringUtils.isNull(companyCode)){ | |
146 | + return AjaxResult.error("公司编码为空"); | |
147 | + } | |
148 | + | |
149 | + /* 查询入库单,如果数据库中不存在,则调用ERP接口拉取单据,成功后再次查询返回结果*/ | |
150 | + LambdaQueryWrapper<ShipmentHeader> shipmentLambdaQueryWrapper = Wrappers.lambdaQuery(); | |
151 | + shipmentLambdaQueryWrapper.eq(ShipmentHeader::getCode, shipmentCode) | |
152 | + .eq(ShipmentHeader::getCompanyCode, companyCode); | |
153 | + ShipmentHeader shipmentHeader = shipmentHeaderService.getOne(shipmentLambdaQueryWrapper); | |
154 | + if(shipmentHeader == null) { | |
155 | + return AjaxResult.error("没有找到出库单"); | |
156 | + } | |
157 | + ShipmentDomain shipment = new ShipmentDomain(); | |
158 | + shipment.setShipmentHeader(shipmentHeader); | |
159 | + | |
160 | + LambdaQueryWrapper<ShipmentDetail> shipmentDetailQueryWrapper = Wrappers.lambdaQuery(); | |
161 | + shipmentDetailQueryWrapper.eq(ShipmentDetail::getShipmentId, shipmentHeader.getId()); | |
162 | + List<ShipmentDetail> shipmentDetailList = shipmentDetailService.list(shipmentDetailQueryWrapper); | |
163 | + shipment.setShipmentDetails(shipmentDetailList); | |
164 | + return AjaxResult.success(shipment); | |
165 | + } | |
166 | + | |
167 | + @PostMapping("/searchShipment") | |
168 | + @ApiOperation("移动端查询出库单") | |
169 | + @Log(title = "移动端查询出库单", action = BusinessType.OTHER) | |
170 | + public AjaxResult searchShipment(@RequestBody @ApiParam(value = "物料号") Map<String, String> param){ | |
171 | + String companyCode = param.get("companyCode"); | |
172 | + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | |
173 | + String now = df.format(new Date()); | |
174 | + Calendar c = Calendar.getInstance(); | |
175 | + c.setTime(new Date()); | |
176 | + c.add(Calendar.DATE, -7); | |
177 | + Date first = c.getTime(); | |
178 | + String start = df.format(first);//前一天 | |
179 | + LambdaQueryWrapper<ShipmentHeader> shipmentHeaderQueryWrapper = Wrappers.lambdaQuery(); | |
180 | + shipmentHeaderQueryWrapper.eq(ShipmentHeader::getCompanyCode, companyCode) | |
181 | + .eq(ShipmentHeader::getWarehouseCode, ShiroUtils.getWarehouseCode()) | |
182 | + .le(ShipmentHeader::getCreated, now) | |
183 | + .gt(ShipmentHeader::getCreated, start) | |
184 | + .orderByDesc(ShipmentHeader::getCreated); | |
185 | + List<ShipmentHeader> receiptHeaderList = shipmentHeaderService.list(shipmentHeaderQueryWrapper); | |
186 | + return AjaxResult.success(receiptHeaderList); | |
187 | + } | |
188 | + | |
189 | + @PostMapping("/getShipmentType") | |
190 | + @ApiOperation("移动端查询入库类型") | |
191 | + @Log(title = "移动端查询字典信息", action = BusinessType.OTHER) | |
192 | + public AjaxResult getShipmentType(@RequestBody @ApiParam(value = "物料号") Map<String, String> param){ | |
193 | + LambdaQueryWrapper<ShipmentType> shipmentTypeLambda = Wrappers.lambdaQuery(); | |
194 | + List<ShipmentType> shipmentTypes = shipmentTypeService.list(shipmentTypeLambda); | |
195 | + return AjaxResult.success(shipmentTypes); | |
196 | + } | |
124 | 197 | } |
... | ... |
src/main/java/com/huaheng/mobile/shipment/MobileTaskForASRSController.java
... | ... | @@ -24,7 +24,7 @@ import java.util.Map; |
24 | 24 | @CrossOrigin |
25 | 25 | @RestController |
26 | 26 | @RequestMapping("/mobile/task/taskForASRS") |
27 | -@Api(tags = {"MobileTaskForASRSController"}, description = "手机立体库任务拣货相关") | |
27 | +@Api(tags = {"手机立体库任务拣货相关"}, value = "手机立体库任务拣货相关MobileTaskForASRSController") | |
28 | 28 | public class MobileTaskForASRSController { |
29 | 29 | |
30 | 30 | |
... | ... |
src/main/java/com/huaheng/mobile/task/MobileTaskController.java
0 → 100644
1 | +package com.huaheng.mobile.task; | |
2 | + | |
3 | +import com.alibaba.fastjson.JSONException; | |
4 | +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |
5 | +import com.baomidou.mybatisplus.core.toolkit.Wrappers; | |
6 | +import com.huaheng.api.general.domain.ShipmentDomain; | |
7 | +import com.huaheng.common.utils.StringUtils; | |
8 | +import com.huaheng.common.utils.security.ShiroUtils; | |
9 | +import com.huaheng.framework.aspectj.lang.annotation.Log; | |
10 | +import com.huaheng.framework.aspectj.lang.constant.BusinessType; | |
11 | +import com.huaheng.framework.web.domain.AjaxResult; | |
12 | +import com.huaheng.pc.inventory.inventoryTransaction.domain.InventoryTransaction; | |
13 | +import com.huaheng.pc.inventory.inventoryTransaction.service.InventoryTransactionService; | |
14 | +import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader; | |
15 | +import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail; | |
16 | +import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader; | |
17 | +import com.huaheng.pc.task.taskDetail.domain.TaskDetail; | |
18 | +import com.huaheng.pc.task.taskDetail.service.TaskDetailService; | |
19 | +import com.huaheng.pc.task.taskHeader.domain.TaskHeader; | |
20 | +import com.huaheng.pc.task.taskHeader.service.TaskHeaderService; | |
21 | +import io.swagger.annotations.Api; | |
22 | +import io.swagger.annotations.ApiOperation; | |
23 | +import io.swagger.annotations.ApiParam; | |
24 | +import org.springframework.beans.factory.annotation.Autowired; | |
25 | +import org.springframework.web.bind.annotation.*; | |
26 | + | |
27 | +import java.text.SimpleDateFormat; | |
28 | +import java.util.Calendar; | |
29 | +import java.util.Date; | |
30 | +import java.util.List; | |
31 | +import java.util.Map; | |
32 | + | |
33 | +/** | |
34 | + * | |
35 | + * @author Enzo Cotter | |
36 | + * @date 2019/12/15 | |
37 | + */ | |
38 | +@CrossOrigin | |
39 | +@RestController | |
40 | +@RequestMapping("/mobile/task") | |
41 | +@Api(tags = {"手持立体库库存相关"}, value = "手持立体库库存相关") | |
42 | +public class MobileTaskController { | |
43 | + | |
44 | + @Autowired | |
45 | + private TaskHeaderService taskHeaderService; | |
46 | + @Autowired | |
47 | + private TaskDetailService taskDetailService; | |
48 | + @Autowired | |
49 | + private InventoryTransactionService inventoryTransactionService; | |
50 | + @PostMapping("/searchTask") | |
51 | + @ApiOperation("移动端查询任务") | |
52 | + @Log(title = "移动端查询任务", action = BusinessType.OTHER) | |
53 | + public AjaxResult searchTask(@RequestBody @ApiParam(value = "物料号") Map<String, String> param){ | |
54 | + String companyCode = param.get("companyCode"); | |
55 | + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | |
56 | + String now = df.format(new Date()); | |
57 | + Calendar c = Calendar.getInstance(); | |
58 | + c.setTime(new Date()); | |
59 | + c.add(Calendar.DATE, -7); | |
60 | + Date first = c.getTime(); | |
61 | + String start = df.format(first);//前一天 | |
62 | + LambdaQueryWrapper<TaskHeader> taskHeaderQueryWrapper = Wrappers.lambdaQuery(); | |
63 | + taskHeaderQueryWrapper.eq(TaskHeader::getCompanyCode, companyCode) | |
64 | + .eq(TaskHeader::getWarehouseCode, ShiroUtils.getWarehouseCode()) | |
65 | + .le(TaskHeader::getCreated, now) | |
66 | + .gt(TaskHeader::getCreated, start) | |
67 | + .orderByDesc(TaskHeader::getCreated); | |
68 | + List<TaskHeader> taslHeaderList = taskHeaderService.list(taskHeaderQueryWrapper); | |
69 | + return AjaxResult.success(taslHeaderList); | |
70 | + } | |
71 | + | |
72 | + @PostMapping("/findTask") | |
73 | + @ApiOperation("移动端查询任务详情") | |
74 | + @Log(title = "移动端查询任务详情", action = BusinessType.OTHER) | |
75 | + public AjaxResult findTask(@RequestBody @ApiParam(value = "物料号") Map<String, String> param){ | |
76 | + String taskHeadId = param.get("taskHeadId"); | |
77 | + String companyCode = param.get("companyCode"); | |
78 | + if (StringUtils.isNull(taskHeadId)){ | |
79 | + return AjaxResult.error("任务id为空"); | |
80 | + } else if (StringUtils.isNull(companyCode)){ | |
81 | + return AjaxResult.error("公司编码为空"); | |
82 | + } | |
83 | + | |
84 | + /* 查询入库单,如果数据库中不存在,则调用ERP接口拉取单据,成功后再次查询返回结果*/ | |
85 | + LambdaQueryWrapper<TaskHeader> taskHeaderLambdaQueryWrapper = Wrappers.lambdaQuery(); | |
86 | + taskHeaderLambdaQueryWrapper.eq(TaskHeader::getId, taskHeadId) | |
87 | + .eq(TaskHeader::getCompanyCode, companyCode); | |
88 | + TaskHeader taskHeader = taskHeaderService.getOne(taskHeaderLambdaQueryWrapper); | |
89 | + if(taskHeader == null) { | |
90 | + return AjaxResult.error("没有找到任务"); | |
91 | + } | |
92 | + TaskDomain taskDomain = new TaskDomain(); | |
93 | + taskDomain.setTaskHeader(taskHeader); | |
94 | + | |
95 | + LambdaQueryWrapper<TaskDetail> taskDetailQueryWrapper = Wrappers.lambdaQuery(); | |
96 | + taskDetailQueryWrapper.eq(TaskDetail::getTaskId, taskHeader.getId()); | |
97 | + List<TaskDetail> taskDetailList = taskDetailService.list(taskDetailQueryWrapper); | |
98 | + taskDomain.setTaskDetails(taskDetailList); | |
99 | + return AjaxResult.success(taskDomain); | |
100 | + } | |
101 | + | |
102 | + @PostMapping("/searchTodayInfo") | |
103 | + @ApiOperation("移动端查询今天信息") | |
104 | + @Log(title = "移动端查询今天信息", action = BusinessType.OTHER) | |
105 | + public AjaxResult searchTodayInfo(@RequestBody @ApiParam(value = "物料号") Map<String, String> param){ | |
106 | + TodayInfo todayInfo = new TodayInfo(); | |
107 | + String companyCode = param.get("companyCode"); | |
108 | + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); | |
109 | + String now = df.format(new Date()); | |
110 | + now = now + " 23:59:59"; | |
111 | + Calendar c = Calendar.getInstance(); | |
112 | + c.setTime(new Date()); | |
113 | + c.add(Calendar.DATE, 0); | |
114 | + Date first = c.getTime(); | |
115 | + String start = df.format(first);//前一天 | |
116 | + start = start + " 00:00:00"; | |
117 | + LambdaQueryWrapper<TaskHeader> taskHeaderQueryWrapper = Wrappers.lambdaQuery(); | |
118 | + taskHeaderQueryWrapper.eq(TaskHeader::getCompanyCode, companyCode) | |
119 | + .eq(TaskHeader::getWarehouseCode, ShiroUtils.getWarehouseCode()) | |
120 | + .le(TaskHeader::getCreated, now) | |
121 | + .gt(TaskHeader::getCreated, start) | |
122 | + .orderByDesc(TaskHeader::getCreated); | |
123 | + List<TaskHeader> taslHeaderList = taskHeaderService.list(taskHeaderQueryWrapper); | |
124 | + todayInfo.setTodayTAask(taslHeaderList.size()); | |
125 | + | |
126 | + LambdaQueryWrapper<InventoryTransaction> inventoryTransactionLambdaQueryWrapperQuery = Wrappers.lambdaQuery(); | |
127 | + inventoryTransactionLambdaQueryWrapperQuery.eq(InventoryTransaction::getCompanyCode, companyCode) | |
128 | + .eq(InventoryTransaction::getWarehouseCode, ShiroUtils.getWarehouseCode()) | |
129 | + .le(InventoryTransaction::getCreated, now) | |
130 | + .gt(InventoryTransaction::getCreated, start) | |
131 | + .orderByDesc(InventoryTransaction::getCreated); | |
132 | + int todayReceipt = 0, todayShipment = 0; | |
133 | + List<InventoryTransaction> inventoryTransactionList = inventoryTransactionService.list(inventoryTransactionLambdaQueryWrapperQuery); | |
134 | + if(inventoryTransactionList != null) { | |
135 | + for (InventoryTransaction inventoryTransaction : inventoryTransactionList) { | |
136 | + if(inventoryTransaction.getTransactionType() == 10) { | |
137 | + todayReceipt = todayReceipt + inventoryTransaction.getTaskQty().intValue(); | |
138 | + } else if(inventoryTransaction.getTransactionType() == 20) { | |
139 | + todayShipment = todayShipment + inventoryTransaction.getTaskQty().intValue(); | |
140 | + } | |
141 | + } | |
142 | + } | |
143 | + todayInfo.setTodayReceipt(todayReceipt); | |
144 | + todayInfo.setTodayShipment(todayShipment); | |
145 | + return AjaxResult.success(todayInfo); | |
146 | + } | |
147 | + | |
148 | +} | |
... | ... |
src/main/java/com/huaheng/mobile/task/TaskDomain.java
0 → 100644
1 | +package com.huaheng.mobile.task; | |
2 | + | |
3 | +import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail; | |
4 | +import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader; | |
5 | +import com.huaheng.pc.task.taskDetail.domain.TaskDetail; | |
6 | +import com.huaheng.pc.task.taskHeader.domain.TaskHeader; | |
7 | +import lombok.Data; | |
8 | + | |
9 | +import java.util.List; | |
10 | + | |
11 | +@Data | |
12 | +public class TaskDomain { | |
13 | + | |
14 | + private TaskHeader taskHeader; | |
15 | + | |
16 | + private List<TaskDetail> taskDetails; | |
17 | +} | |
... | ... |
src/main/java/com/huaheng/mobile/task/TodayInfo.java
0 → 100644
1 | +package com.huaheng.mobile.task; | |
2 | + | |
3 | +public class TodayInfo { | |
4 | + | |
5 | + private Integer todayTAask; | |
6 | + private Integer todayReceipt; | |
7 | + private Integer todayShipment; | |
8 | + | |
9 | + public Integer getTodayTAask() { | |
10 | + return todayTAask; | |
11 | + } | |
12 | + | |
13 | + public void setTodayTAask(Integer todayTAask) { | |
14 | + this.todayTAask = todayTAask; | |
15 | + } | |
16 | + | |
17 | + public Integer getTodayReceipt() { | |
18 | + return todayReceipt; | |
19 | + } | |
20 | + | |
21 | + public void setTodayReceipt(Integer todayReceipt) { | |
22 | + this.todayReceipt = todayReceipt; | |
23 | + } | |
24 | + | |
25 | + public Integer getTodayShipment() { | |
26 | + return todayShipment; | |
27 | + } | |
28 | + | |
29 | + public void setTodayShipment(Integer todayShipment) { | |
30 | + this.todayShipment = todayShipment; | |
31 | + } | |
32 | +} | |
... | ... |
src/main/java/com/huaheng/pc/config/company/service/CompanyServiceImpl.java
... | ... | @@ -48,7 +48,7 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl |
48 | 48 | { |
49 | 49 | for (UserCompany userCompanyItem : userCompanys) |
50 | 50 | { |
51 | - if (companyItem.getId() == userCompanyItem.getCompanyId()) | |
51 | + if (companyItem.getId().equals(userCompanyItem.getCompanyId())) | |
52 | 52 | { |
53 | 53 | companyItem.setFlag(true); |
54 | 54 | break; |
... | ... |
src/main/java/com/huaheng/pc/config/configValue/controller/ConfigValueController.java
... | ... | @@ -101,7 +101,7 @@ public class ConfigValueController extends BaseController { |
101 | 101 | @ResponseBody |
102 | 102 | public AjaxResult addSave(ConfigValue configValue) { |
103 | 103 | //检测盘点首选项是否停用 |
104 | - if(configValue.getRecordType().equals("cycleCountPreference")){ | |
104 | + if("cycleCountPreference".equals(configValue.getRecordType())){ | |
105 | 105 | CycleCountPreference cycleCountPreferenceTemp = new CycleCountPreference(); |
106 | 106 | cycleCountPreferenceTemp.setCode(configValue.getIdentifier()); |
107 | 107 | cycleCountPreferenceTemp.setWarehouseCode(configValue.getWarehouseCode()); |
... | ... |
src/main/java/com/huaheng/pc/config/configWarning/service/ConfigWarningService.java
... | ... | @@ -104,7 +104,7 @@ public class ConfigWarningService extends ServiceImpl<ConfigWarningMapper, Confi |
104 | 104 | |
105 | 105 | /** |
106 | 106 | * 物料预警 |
107 | - * @param map 任务明细 | |
107 | + * @param materialCode,materialName 任务明细 | |
108 | 108 | */ |
109 | 109 | public void materialWarning(String materialCode, String materialName){ |
110 | 110 | /* 查询预警配置*/ |
... | ... |
src/main/java/com/huaheng/pc/config/container/controller/ContainerController.java
... | ... | @@ -149,7 +149,7 @@ public class ContainerController extends BaseController { |
149 | 149 | |
150 | 150 | for (Integer id : Convert.toIntArray(ids)) { |
151 | 151 | Container container = containerService.getById(id); |
152 | - if (container.getStatus().equals("empty") && StringUtils.isEmpty(container.getLocationCode())) { | |
152 | + if ("empty".equals(container.getStatus()) && StringUtils.isEmpty(container.getLocationCode())) { | |
153 | 153 | container.setEnable(false); |
154 | 154 | container.setLastUpdatedBy(ShiroUtils.getLoginName()); |
155 | 155 | containerService.updateById(container); |
... | ... |
src/main/java/com/huaheng/pc/config/container/service/ContainerServiceImpl.java
... | ... | @@ -20,8 +20,6 @@ import com.huaheng.pc.config.container.domain.Container; |
20 | 20 | import com.huaheng.pc.config.container.mapper.ContainerMapper; |
21 | 21 | import org.springframework.transaction.annotation.Transactional; |
22 | 22 | |
23 | -import static com.huaheng.framework.web.domain.AjaxResult.error; | |
24 | - | |
25 | 23 | @Service |
26 | 24 | public class ContainerServiceImpl extends ServiceImpl<ContainerMapper, Container> implements ContainerService{ |
27 | 25 | |
... | ... | @@ -32,14 +30,9 @@ public class ContainerServiceImpl extends ServiceImpl<ContainerMapper, Container |
32 | 30 | |
33 | 31 | @Override |
34 | 32 | public AjaxResult<List<Container>> insertContainer(String type, Integer quantity) { |
35 | - List<Container> containerList = new ArrayList<>();// 新增托盘总数 | |
36 | - List<Container> containers =new ArrayList<>();// 每次插入的托盘数 | |
37 | - int result=0;//插入的结果 | |
33 | + List<Container> containerList = new ArrayList<>(); | |
34 | + List<Container> containers =new ArrayList<>(); | |
38 | 35 | Integer number = getNumber(type); |
39 | - if(quantity>99999) | |
40 | - { | |
41 | - return AjaxResult.error("托盘编码对应的流水码不能大于99999",containerList); | |
42 | - } | |
43 | 36 | for(int i=0; i<quantity; i++) { |
44 | 37 | number++; |
45 | 38 | Container container = new Container(); |
... | ... | @@ -53,31 +46,19 @@ public class ContainerServiceImpl extends ServiceImpl<ContainerMapper, Container |
53 | 46 | container.setEnable(true); |
54 | 47 | container.setCompanyCode(ShiroUtils.getCompanyCodeList().get(0)); |
55 | 48 | container.setWarehouseCode(ShiroUtils.getWarehouseCode()); |
56 | - containers.add(container);// 每1000个 新增一次 | |
57 | - if( i>0 && i%1000==1 ){ | |
58 | - result= containerMapper.addList(containers); | |
59 | - if(result<=0){ | |
60 | - return AjaxResult.error("插入数据出错,请核对",containerList); | |
61 | - } | |
62 | - containerList.addAll(containers); | |
49 | + containers.add(container); | |
50 | + if( i>0 && (i%1000==0 || i == quantity-1)){ | |
51 | + containerMapper.addList(containers); | |
63 | 52 | containers = new ArrayList<>(); |
64 | 53 | } |
65 | 54 | } |
66 | - if(!containers.isEmpty()){ | |
67 | - result= containerMapper.addList(containers);// 不够1000的 | |
68 | - if(result<=0){ | |
69 | - return AjaxResult.error("插入数据出错,请核对",containerList); | |
70 | - } | |
71 | - containerList.addAll(containers); | |
72 | - } | |
73 | - return AjaxResult.success(containerList); | |
55 | + return AjaxResult.success(containers); | |
74 | 56 | } |
75 | -/** | |
76 | - 根据托盘类型获取托盘的最大编码值 如果没有则返回0 流水码最大为5位 99999 | |
77 | - **/ | |
57 | + | |
78 | 58 | private Integer getNumber(String type) { |
79 | - if (!containerTypeService.checkConfig(type)) | |
59 | + if (!containerTypeService.checkConfig(type)) { | |
80 | 60 | throw new ServiceException("容器类型编码不存在"); |
61 | + } | |
81 | 62 | LambdaQueryWrapper<Container> lambda = Wrappers.lambdaQuery(); |
82 | 63 | lambda.select(Container::getCode).eq(Container::getContainerType, type) |
83 | 64 | .orderByDesc(Container::getId).last("Limit 1"); |
... | ... | @@ -92,14 +73,8 @@ public class ContainerServiceImpl extends ServiceImpl<ContainerMapper, Container |
92 | 73 | } |
93 | 74 | } |
94 | 75 | |
95 | - /** | |
96 | - * 托盘导入 | |
97 | - * @param containerList | |
98 | - * @param updateSupport TODO:这个参数没有使用 ?? | |
99 | - * @param operName | |
100 | - * @return | |
101 | - */ | |
102 | - public String importContainer(List<Container> containerList, Boolean updateSupport, String operName){ | |
76 | + @Override | |
77 | + public String importMaterial(List<Container> containerList, Boolean updateSupport, String operName){ | |
103 | 78 | if (StringUtils.isNull(containerList) || containerList.size() == 0) { |
104 | 79 | throw new BusinessException("导入数据不能为空!"); |
105 | 80 | } |
... | ... | @@ -113,10 +88,11 @@ public class ContainerServiceImpl extends ServiceImpl<ContainerMapper, Container |
113 | 88 | lambdaQueryWrapper.eq(Container::getCode, container.getCode()); |
114 | 89 | // 验证是否存在这个容器 |
115 | 90 | Container m = this.getOne(lambdaQueryWrapper); |
91 | + | |
116 | 92 | if (StringUtils.isNull(m)) { |
117 | - System.out.println(operName); | |
118 | - container.setCreatedBy(operName); | |
119 | - container.setLastUpdatedBy(operName); | |
93 | + System.out.println(ShiroUtils.getLoginName()); | |
94 | + container.setCreatedBy(ShiroUtils.getUser().getLoginName()); | |
95 | + container.setLastUpdatedBy(ShiroUtils.getLoginName()); | |
120 | 96 | this.save(container); |
121 | 97 | successNum++; |
122 | 98 | successMsg.append("<br/>" + successNum + "、编码 " + container.getCode() + " 导入成功"); |
... | ... | @@ -150,12 +126,13 @@ public class ContainerServiceImpl extends ServiceImpl<ContainerMapper, Container |
150 | 126 | } |
151 | 127 | |
152 | 128 | /** |
153 | - * 修改容器表container的对应的库位和状态 | |
129 | + * 修改容器库位和状态 | |
154 | 130 | * */ |
155 | 131 | @Override |
156 | 132 | public void updateLocationCodeAndStatus(String containerCode, String locationCode, String status) { |
157 | - if (StringUtils.isNotEmpty(containerCode) || StringUtils.isNotEmpty(locationCode)) | |
133 | + if (StringUtils.isNotEmpty(containerCode) || StringUtils.isNotEmpty(locationCode)) { | |
158 | 134 | containerMapper.updateLocationCodeAndStatus(ShiroUtils.getWarehouseCode(), containerCode, locationCode, status); |
135 | + } | |
159 | 136 | } |
160 | 137 | |
161 | 138 | /** |
... | ... | @@ -164,6 +141,7 @@ public class ContainerServiceImpl extends ServiceImpl<ContainerMapper, Container |
164 | 141 | * @param containerCode 容器编码 |
165 | 142 | * @return |
166 | 143 | */ |
144 | + @Override | |
167 | 145 | @Transactional |
168 | 146 | public void removeContainer(String containerType, String containerCode) { |
169 | 147 | if ("LS".equals(containerType)) { |
... | ... |
src/main/java/com/huaheng/pc/config/containerCapacity/controller/ContainerCapacityController.java
... | ... | @@ -142,8 +142,9 @@ public class ContainerCapacityController extends BaseController { |
142 | 142 | @ResponseBody |
143 | 143 | public AjaxResult remove(String ids) |
144 | 144 | { |
145 | - if (StringUtils.isEmpty(ids)) | |
145 | + if (StringUtils.isEmpty(ids)) { | |
146 | 146 | return AjaxResult.error("id不能为空"); |
147 | + } | |
147 | 148 | for (Integer id : Convert.toIntArray(ids)) |
148 | 149 | { |
149 | 150 | |
... | ... |
src/main/java/com/huaheng/pc/config/containerType/controller/ContainerTypeController.java
... | ... | @@ -137,8 +137,9 @@ public class ContainerTypeController extends BaseController |
137 | 137 | @ResponseBody |
138 | 138 | public AjaxResult remove(String ids) |
139 | 139 | { |
140 | - if (StringUtils.isEmpty(ids)) | |
141 | - return AjaxResult.error("id不能为空"); | |
140 | + if (StringUtils.isEmpty(ids)) { | |
141 | + return AjaxResult.error("id不能为空"); | |
142 | + } | |
142 | 143 | for (Integer id : Convert.toIntArray(ids)) |
143 | 144 | { |
144 | 145 | containerTypeService.removeById(id); |
... | ... |
src/main/java/com/huaheng/pc/config/excelTemplate/service/ExcelTemplateServiceImpl.java
... | ... | @@ -14,6 +14,7 @@ import java.util.Map; |
14 | 14 | @Service("excelService") |
15 | 15 | public class ExcelTemplateServiceImpl extends ServiceImpl<ExcelTemplateMapper, ExcelTemplate> implements ExcelTemplateService{ |
16 | 16 | |
17 | + @Override | |
17 | 18 | public List<Map<String, Object>> getList(){ |
18 | 19 | LambdaQueryWrapper<ExcelTemplate> lambdaQueryWrapper = Wrappers.lambdaQuery(); |
19 | 20 | lambdaQueryWrapper.eq(ExcelTemplate::getWarehouseCode, ShiroUtils.getWarehouseCode()) |
... | ... |
src/main/java/com/huaheng/pc/config/location/controller/LocationController.java
... | ... | @@ -258,7 +258,7 @@ public class LocationController extends BaseController { |
258 | 258 | List<String> batchList = inventoryDetails.stream().map(InventoryDetail::getBatch).collect(Collectors.toList()); |
259 | 259 | List<String> materialCodeList = inventoryDetails.stream().map(InventoryDetail::getMaterialCode).collect(Collectors.toList()); |
260 | 260 | List<BigDecimal> qtyList = inventoryDetails.stream().map(InventoryDetail::getQty).collect(Collectors.toList()); |
261 | - if (status.equals("empty")) { | |
261 | + if ("empty".equals(status)) { | |
262 | 262 | if(StringUtils.isEmpty(containerCode)) { |
263 | 263 | userDef3 = LocationStatus.IDLE_EMPTY_LOCATION; |
264 | 264 | } else { |
... | ... | @@ -272,7 +272,7 @@ public class LocationController extends BaseController { |
272 | 272 | userDef3 = LocationStatus.IDLE_FULL_CONTAINER; |
273 | 273 | } |
274 | 274 | } |
275 | - } else if(status.equals("lock")) { | |
275 | + } else if("lock".equals(status)) { | |
276 | 276 | if(StringUtils.isEmpty(containerCode)) { |
277 | 277 | userDef3 = LocationStatus.LOCK_EMPTY_LOCATION; |
278 | 278 | } else { |
... | ... |
src/main/java/com/huaheng/pc/config/locationType/controller/LocationTypeController.java
... | ... | @@ -153,8 +153,9 @@ public class LocationTypeController extends BaseController |
153 | 153 | @ResponseBody |
154 | 154 | public AjaxResult remove(String ids) |
155 | 155 | { |
156 | - if (StringUtils.isEmpty(ids)) | |
157 | - return AjaxResult.error("id不能为空"); | |
156 | + if (StringUtils.isEmpty(ids)) { | |
157 | + return AjaxResult.error("id不能为空"); | |
158 | + } | |
158 | 159 | for (Integer id : Convert.toIntArray(ids)) |
159 | 160 | { |
160 | 161 | locationTypeService.removeById(id); |
... | ... |
src/main/java/com/huaheng/pc/config/shipmentType/service/ShipmentTypeService.java
src/main/java/com/huaheng/pc/config/shipmentType/service/ShipmentTypeServiceImpl.java
... | ... | @@ -9,6 +9,7 @@ import com.huaheng.pc.config.receiptType.domain.ReceiptType; |
9 | 9 | import com.huaheng.pc.config.shipmentPreference.domain.ShipmentPreference; |
10 | 10 | import com.huaheng.pc.config.shipmentType.domain.ShipmentType; |
11 | 11 | import com.huaheng.pc.config.shipmentType.mapper.ShipmentTypeMapper; |
12 | +import com.huaheng.pc.system.dict.domain.DictData; | |
12 | 13 | import org.springframework.stereotype.Service; |
13 | 14 | import org.springframework.transaction.annotation.Transactional; |
14 | 15 | |
... | ... | @@ -53,10 +54,26 @@ public class ShipmentTypeServiceImpl extends ServiceImpl<ShipmentTypeMapper, Shi |
53 | 54 | } |
54 | 55 | } |
55 | 56 | |
57 | + @Override | |
56 | 58 | public List<Map<String, Object>> getType(){ |
57 | 59 | LambdaQueryWrapper<ShipmentType> lambdaQueryWrapper = Wrappers.lambdaQuery(); |
58 | 60 | lambdaQueryWrapper.eq(StringUtils.isNotEmpty(ShiroUtils.getWarehouseCode()),ShipmentType::getWarehouseCode, ShiroUtils.getWarehouseCode()) |
59 | 61 | .in(StringUtils.isNotEmpty(ShiroUtils.getCompanyCodeList()),ShipmentType::getCompanyCode, ShiroUtils.getCompanyCodeList()); |
60 | 62 | return this.listMaps(lambdaQueryWrapper); |
61 | 63 | } |
64 | + | |
65 | + @Override | |
66 | + public Boolean checkCode(String code) { | |
67 | + LambdaQueryWrapper<ShipmentType> lambdaQueryWrapper = Wrappers.lambdaQuery(); | |
68 | + lambdaQueryWrapper.eq(StringUtils.isNotEmpty(ShiroUtils.getWarehouseCode()),ShipmentType::getWarehouseCode, ShiroUtils.getWarehouseCode()) | |
69 | + .in(StringUtils.isNotEmpty(ShiroUtils.getCompanyCodeList()),ShipmentType::getCompanyCode, ShiroUtils.getCompanyCodeList()); | |
70 | + List<ShipmentType> shipmentTypeList = this.list(lambdaQueryWrapper); | |
71 | + for(ShipmentType shipmentType : shipmentTypeList) { | |
72 | + String shipmentCode = shipmentType.getCode(); | |
73 | + if(shipmentCode.equals(code)) { | |
74 | + return true; | |
75 | + } | |
76 | + } | |
77 | + return false; | |
78 | + } | |
62 | 79 | } |
... | ... |
src/main/java/com/huaheng/pc/config/supplier/controller/SupplierController.java
... | ... | @@ -139,8 +139,9 @@ public class SupplierController extends BaseController { |
139 | 139 | @PostMapping( "/remove") |
140 | 140 | @ResponseBody |
141 | 141 | public AjaxResult remove(String ids) { |
142 | - if (StringUtils.isEmpty(ids)) | |
142 | + if (StringUtils.isEmpty(ids)) { | |
143 | 143 | return AjaxResult.error("id不能为空"); |
144 | + } | |
144 | 145 | for (Integer id : Convert.toIntArray(ids)) { |
145 | 146 | Supplier supplier = supplierService.getById(id); |
146 | 147 | |
... | ... |
src/main/java/com/huaheng/pc/config/supplier/service/SupplierService.java
... | ... | @@ -2,7 +2,13 @@ package com.huaheng.pc.config.supplier.service; |
2 | 2 | |
3 | 3 | import com.huaheng.pc.config.supplier.domain.Supplier; |
4 | 4 | import com.baomidou.mybatisplus.extension.service.IService; |
5 | + | |
6 | +import java.util.List; | |
7 | +import java.util.Map; | |
8 | + | |
5 | 9 | public interface SupplierService extends IService<Supplier>{ |
6 | 10 | |
11 | + List<Map<String, Object>> getCode(); | |
12 | + | |
7 | 13 | |
8 | 14 | } |
... | ... |
src/main/java/com/huaheng/pc/config/supplier/service/SupplierServiceImpl.java
1 | 1 | package com.huaheng.pc.config.supplier.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; | |
3 | 6 | import org.springframework.stereotype.Service; |
4 | 7 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
5 | 8 | import com.huaheng.pc.config.supplier.mapper.SupplierMapper; |
6 | 9 | import com.huaheng.pc.config.supplier.domain.Supplier; |
7 | 10 | |
8 | -@Service | |
11 | +import java.util.List; | |
12 | +import java.util.Map; | |
13 | + | |
14 | +@Service("SupplierService") | |
9 | 15 | public class SupplierServiceImpl extends ServiceImpl<SupplierMapper, Supplier> implements SupplierService{ |
10 | 16 | |
17 | + @Override | |
18 | + public List<Map<String, Object>> getCode(){ | |
19 | + LambdaQueryWrapper<Supplier> lambda = Wrappers.lambdaQuery(); | |
20 | + lambda.select(Supplier::getCode, Supplier::getId, Supplier::getName) | |
21 | + .eq(Supplier::getWarehouseCode, ShiroUtils.getWarehouseCode()); | |
22 | + return this.listMaps(lambda); | |
23 | + } | |
11 | 24 | } |
... | ... |
src/main/java/com/huaheng/pc/config/warehouse/controller/WareHouseController.java
... | ... | @@ -136,8 +136,9 @@ public class WareHouseController extends BaseController { |
136 | 136 | @PostMapping( "/remove") |
137 | 137 | @ResponseBody |
138 | 138 | public AjaxResult remove(String codes) { |
139 | - if (StringUtils.isEmpty(codes)) | |
139 | + if (StringUtils.isEmpty(codes)) { | |
140 | 140 | return AjaxResult.error("id不能为空"); |
141 | + } | |
141 | 142 | for (String code : Convert.toStrArray(codes)) { |
142 | 143 | Warehouse warehouse = new Warehouse(); |
143 | 144 | InventoryHeader inventory = new InventoryHeader(); |
... | ... |
src/main/java/com/huaheng/pc/config/zone/controller/ZoneController.java
... | ... | @@ -138,8 +138,9 @@ public class ZoneController extends BaseController { |
138 | 138 | @ResponseBody |
139 | 139 | public AjaxResult remove(String ids) |
140 | 140 | { |
141 | - if (StringUtils.isEmpty(ids)) | |
141 | + if (StringUtils.isEmpty(ids)) { | |
142 | 142 | return AjaxResult.error("id不能为空"); |
143 | + } | |
143 | 144 | for (Integer id : Convert.toIntArray(ids)) |
144 | 145 | { |
145 | 146 | Zone record = new Zone(); |
... | ... |
src/main/java/com/huaheng/pc/config/zoneCapacity/controller/ZoneCapacityController.java
... | ... | @@ -137,8 +137,9 @@ public class ZoneCapacityController extends BaseController |
137 | 137 | @ResponseBody |
138 | 138 | public AjaxResult remove(String ids) |
139 | 139 | { |
140 | - if (StringUtils.isEmpty(ids)) | |
141 | - return AjaxResult.error("id不能为空"); | |
140 | + if (StringUtils.isEmpty(ids)) { | |
141 | + return AjaxResult.error("id不能为空"); | |
142 | + } | |
142 | 143 | for (Integer id : Convert.toIntArray(ids)) |
143 | 144 | { |
144 | 145 | zoneCapacityService.removeById(id); |
... | ... |
src/main/java/com/huaheng/pc/inventory/adjustDetail/service/AdjustDetailServiceImpl.java
... | ... | @@ -182,7 +182,7 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj |
182 | 182 | location.setWarehouseCode(inventoryDetail.getWarehouseCode()); |
183 | 183 | LambdaQueryWrapper<Location> lambdaQueryWrapper = Wrappers.lambdaQuery(location); |
184 | 184 | location = locationService.getOne(lambdaQueryWrapper); |
185 | - if (!location.getStatus().equals("empty")) { | |
185 | + if (!"empty".equals(location.getStatus())) { | |
186 | 186 | return AjaxResult.error (inventoryDetail.getId() + "库存非空闲,请等待其他任务完成再进行调整!"); |
187 | 187 | } |
188 | 188 | //判断调整库存状态还是数量 |
... | ... |
src/main/java/com/huaheng/pc/inventory/adjustHeader/controller/adjustHeaderController.java
... | ... | @@ -120,8 +120,9 @@ public class adjustHeaderController extends BaseController { |
120 | 120 | @ResponseBody |
121 | 121 | public AjaxResult remove(String ids) |
122 | 122 | { |
123 | - if (StringUtils.isEmpty(ids)) | |
123 | + if (StringUtils.isEmpty(ids)) { | |
124 | 124 | return AjaxResult.error("id不能为空"); |
125 | + } | |
125 | 126 | for (Integer id : Convert.toIntArray(ids)) |
126 | 127 | { |
127 | 128 | AjaxResult result = adjustHeaderService.deleteHeader(id); |
... | ... |
src/main/java/com/huaheng/pc/inventory/adjustHeader/service/AdjustHeaderServiceImpl.java
... | ... | @@ -97,11 +97,14 @@ public class AdjustHeaderServiceImpl extends ServiceImpl<AdjustHeaderMapper, Adj |
97 | 97 | throw new SecurityException("选择单据类型为质检调整时,质检单编码不能为空!"); |
98 | 98 | } |
99 | 99 | break; |
100 | - case "adjust": //盘点调整 | |
100 | + case "cyclecountAdjust": //盘点调整 | |
101 | 101 | if(StringUtils.isEmpty(adjustHeader.getCycleCountCode())){ |
102 | 102 | throw new SecurityException("选择单据类型为盘点调整时,盘点单编码不能为空!"); |
103 | 103 | } |
104 | 104 | break; |
105 | + //除质检和调整需要前置单据,其他不需要 | |
106 | + default: | |
107 | + break; | |
105 | 108 | } |
106 | 109 | |
107 | 110 | adjustHeader.setCreated(new Date()); |
... | ... |
src/main/java/com/huaheng/pc/inventory/cycleCountDetail/controller/CycleCountDetailController.java
... | ... | @@ -169,8 +169,9 @@ public class CycleCountDetailController extends BaseController { |
169 | 169 | @ResponseBody |
170 | 170 | public AjaxResult remove(String ids){ |
171 | 171 | |
172 | - if (StringUtils.isEmpty(ids)) | |
172 | + if (StringUtils.isEmpty(ids)) { | |
173 | 173 | return AjaxResult.error("删除的明细id不能为空"); |
174 | + } | |
174 | 175 | Integer[] detailsIds = Convert.toIntArray(ids); |
175 | 176 | CycleCountDetail cyclecountDetail = cycleCountDetailService.getById(detailsIds[0]); |
176 | 177 | CycleCountHeader ch = new CycleCountHeader(); |
... | ... |
src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailServiceImpl.java
... | ... | @@ -240,7 +240,7 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap |
240 | 240 | temp.setWarehouseCode(ShiroUtils.getWarehouseCode()); |
241 | 241 | LambdaQueryWrapper<Location> lambdaQueryWrapper = Wrappers.lambdaQuery(temp); |
242 | 242 | Location loc = locationService.getOne(lambdaQueryWrapper); |
243 | - if(!loc.getStatus().equals("empty")){ | |
243 | + if(!"empty".equals(loc.getStatus())){ | |
244 | 244 | return AjaxResult.error(cycleCountDetail.getLocationCode()+"库位不在空闲状态,请先完成其他任务,操作失败!"); |
245 | 245 | } |
246 | 246 | if(StringUtils.isEmpty(loc.getContainerCode())){ |
... | ... | @@ -358,12 +358,12 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap |
358 | 358 | LambdaQueryWrapper<CycleCountHeader> cycleCountHeaderLambdaQueryWrapper = Wrappers.lambdaQuery(cycleCountHeader); |
359 | 359 | cycleCountHeader = cycleCountHeaderService.getOne(cycleCountHeaderLambdaQueryWrapper); //主单 |
360 | 360 | //任务执行后再实盘登记 |
361 | - if(cyclecountDetail.getEnableStatus() < QuantityConstant.CYCLECOUNT_STATUS_EXECUTING){ | |
361 | + /*if(cyclecountDetail.getEnableStatus() < QuantityConstant.CYCLECOUNT_STATUS_EXECUTING){ | |
362 | 362 | return AjaxResult.error("盘点任务未执行不能登记数量!"); |
363 | 363 | } |
364 | 364 | if(cyclecountDetail.getEnableStatus() == QuantityConstant.CYCLECOUNT_STATUS_COMPLETED){ |
365 | 365 | return AjaxResult.error("盘点任务完成后不能再登记数量!"); |
366 | - } | |
366 | + }*/ | |
367 | 367 | if(cycleCountHeader == null){ |
368 | 368 | return AjaxResult.error("主单据不存在"); |
369 | 369 | } |
... | ... |
src/main/java/com/huaheng/pc/inventory/cycleCountHeader/controller/CycleCountHeaderController.java
... | ... | @@ -157,8 +157,9 @@ public class CycleCountHeaderController extends BaseController { |
157 | 157 | @ResponseBody |
158 | 158 | public AjaxResult remove(String ids) |
159 | 159 | { |
160 | - if (StringUtils.isEmpty(ids)) | |
160 | + if (StringUtils.isEmpty(ids)) { | |
161 | 161 | return AjaxResult.error("id不能为空"); |
162 | + } | |
162 | 163 | for (Integer id : Convert.toIntArray(ids)) |
163 | 164 | { |
164 | 165 | AjaxResult result = cycleCountHeaderService.delete(id); |
... | ... |
src/main/java/com/huaheng/pc/inventory/cycleCountHeader/service/CycleCountHeaderServiceImpl.java
... | ... | @@ -67,7 +67,7 @@ public class CycleCountHeaderServiceImpl extends ServiceImpl<CycleCountHeaderMap |
67 | 67 | List<CycleCountDetail> list = cycleCountDetailService.list(lam); |
68 | 68 | //当有子单的状态为100时触发主单的完成状态 |
69 | 69 | //100状态只有全部完成才写入主单 |
70 | - long count100 = list.stream().filter(t->t.getEnableStatus() == QuantityConstant.CYCLECOUNT_STATUS_COMPLETED).count(); //明细已完成的条数 | |
70 | + long count100 = list.stream().filter(t-> t.getEnableStatus().equals(QuantityConstant.CYCLECOUNT_STATUS_COMPLETED)).count(); //明细已完成的条数 | |
71 | 71 | if(count100 == list.size() ){ |
72 | 72 | cyclecountHeader.setStatusCyc(QuantityConstant.CYCLECOUNT_STATUS_COMPLETED); |
73 | 73 | this.saveOrUpdate(cyclecountHeader); |
... | ... | @@ -141,6 +141,7 @@ public class CycleCountHeaderServiceImpl extends ServiceImpl<CycleCountHeaderMap |
141 | 141 | /** |
142 | 142 | * 新增盘点差异调整单 |
143 | 143 | * */ |
144 | + @Override | |
144 | 145 | @Transactional |
145 | 146 | public AjaxResult insertByAdjust(Integer id) { |
146 | 147 | |
... | ... |
src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailServiceImpl.java
... | ... | @@ -83,7 +83,7 @@ public class InventoryDetailServiceImpl extends ServiceImpl<InventoryDetailMappe |
83 | 83 | if(loc == null){ |
84 | 84 | throw new ServiceException("库存没有库位!"); |
85 | 85 | } |
86 | - if(!loc.getStatus().equals("empty")){ | |
86 | + if(!"empty".equals(loc.getStatus())){ | |
87 | 87 | throw new ServiceException(inventoryDetail.getLocationCode()+"状态非空闲,操作失败"); |
88 | 88 | } |
89 | 89 | if(StringUtils.isEmpty(loc.getContainerCode())){ |
... | ... | @@ -157,7 +157,7 @@ public class InventoryDetailServiceImpl extends ServiceImpl<InventoryDetailMappe |
157 | 157 | } |
158 | 158 | |
159 | 159 | //查找未质检的 |
160 | - if(inventoryDetail.getQcCheck().equals("2")) { | |
160 | + if("2".equals(inventoryDetail.getQcCheck())) { | |
161 | 161 | codeSet.add(inventoryDetail.getReceiptCode()); |
162 | 162 | } |
163 | 163 | } |
... | ... | @@ -167,7 +167,7 @@ public class InventoryDetailServiceImpl extends ServiceImpl<InventoryDetailMappe |
167 | 167 | //对库存分类,已入库单划分 |
168 | 168 | for(Integer id : ids){ |
169 | 169 | InventoryDetail inventoryDetail=this.getById(id); |
170 | - if(inventoryDetail.getReceiptCode().equals(code) && inventoryDetail.getQcCheck().equals("2")){ | |
170 | + if(inventoryDetail.getReceiptCode().equals(code) && "2".equals(inventoryDetail.getQcCheck())){ | |
171 | 171 | inventoryDetails.add(inventoryDetail); |
172 | 172 | } |
173 | 173 | } |
... | ... |
src/main/java/com/huaheng/pc/inventory/inventoryHeader/domain/InventoryHeader.java
... | ... | @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableName; |
7 | 7 | import io.swagger.annotations.ApiModel; |
8 | 8 | import io.swagger.annotations.ApiModelProperty; |
9 | 9 | import java.io.Serializable; |
10 | +import java.math.BigDecimal; | |
10 | 11 | import java.util.Date; |
11 | 12 | import lombok.Data; |
12 | 13 | |
... | ... | @@ -75,7 +76,7 @@ public class InventoryHeader implements Serializable { |
75 | 76 | */ |
76 | 77 | @TableField(value = "totalQty") |
77 | 78 | @ApiModelProperty(value="总数量") |
78 | - private Integer totalQty; | |
79 | + private BigDecimal totalQty; | |
79 | 80 | |
80 | 81 | /** |
81 | 82 | * 总行量 |
... | ... |
src/main/java/com/huaheng/pc/inventory/inventoryHeader/service/InventoryHeaderServiceImpl.java
... | ... | @@ -119,7 +119,7 @@ public class InventoryHeaderServiceImpl extends ServiceImpl<InventoryHeaderMappe |
119 | 119 | if (StringUtils.isNotEmpty(loc.getContainerCode())) { |
120 | 120 | return AjaxResult.error("目标库位已存在托盘"); |
121 | 121 | } |
122 | - if (!loc.getStatus().equals("empty")) { | |
122 | + if (!"empty".equals(loc.getStatus())) { | |
123 | 123 | return AjaxResult.error("目标库位非空闲"); |
124 | 124 | } |
125 | 125 | } |
... | ... | @@ -212,7 +212,7 @@ public class InventoryHeaderServiceImpl extends ServiceImpl<InventoryHeaderMappe |
212 | 212 | if(StringUtils.isEmpty(loc.getContainerCode())){ |
213 | 213 | return AjaxResult.error("源货位没有托盘"); |
214 | 214 | } |
215 | - if(!loc.getStatus().equals("empty")){ | |
215 | + if(!"empty".equals(loc.getStatus())){ | |
216 | 216 | return AjaxResult.error("源货位非空闲"); |
217 | 217 | } |
218 | 218 | //判断托盘是否已经存在任务 |
... | ... | @@ -291,7 +291,7 @@ public class InventoryHeaderServiceImpl extends ServiceImpl<InventoryHeaderMappe |
291 | 291 | if(StringUtils.isEmpty(loc.getContainerCode())){ |
292 | 292 | return AjaxResult.error("源货位没有托盘"); |
293 | 293 | } |
294 | - if(!loc.getStatus().equals("empty")){ | |
294 | + if(!"empty".equals(loc.getStatus())){ | |
295 | 295 | return AjaxResult.error("源货位非空闲"); |
296 | 296 | } |
297 | 297 | //创建任务 |
... | ... |
src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/service/ReceiptContainerHeaderServiceImpl.java
... | ... | @@ -10,11 +10,13 @@ import com.huaheng.common.utils.security.ShiroUtils; |
10 | 10 | import com.huaheng.framework.web.domain.AjaxResult; |
11 | 11 | import com.huaheng.mobile.receipt.ReceiptBill; |
12 | 12 | import com.huaheng.pc.config.container.domain.Container; |
13 | +import com.huaheng.pc.config.container.domain.ContainerStatus; | |
13 | 14 | import com.huaheng.pc.config.container.service.ContainerService; |
14 | 15 | import com.huaheng.pc.config.location.domain.Location; |
15 | 16 | import com.huaheng.pc.config.location.service.LocationService; |
16 | 17 | import com.huaheng.pc.config.material.domain.Material; |
17 | 18 | import com.huaheng.pc.config.material.service.MaterialService; |
19 | +import com.huaheng.pc.config.warehouse.domain.Warehouse; | |
18 | 20 | import com.huaheng.pc.receipt.receiptContainerDetail.domain.ReceiptContainerDetail; |
19 | 21 | import com.huaheng.pc.receipt.receiptContainerDetail.service.ReceiptContainerDetailService; |
20 | 22 | import com.huaheng.pc.receipt.receiptContainerHeader.domain.ReceiptContainerHeader; |
... | ... | @@ -26,9 +28,12 @@ import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader; |
26 | 28 | import com.huaheng.pc.receipt.receiptHeader.service.ReceiptHeaderService; |
27 | 29 | import com.huaheng.pc.task.taskHeader.domain.TaskHeader; |
28 | 30 | import com.huaheng.pc.task.taskHeader.service.TaskHeaderService; |
31 | +import io.swagger.models.auth.In; | |
29 | 32 | import org.springframework.stereotype.Service; |
30 | 33 | import org.springframework.transaction.annotation.Transactional; |
34 | + | |
31 | 35 | import javax.annotation.Resource; |
36 | +import java.io.PushbackInputStream; | |
32 | 37 | import java.math.BigDecimal; |
33 | 38 | import java.text.MessageFormat; |
34 | 39 | import java.util.Calendar; |
... | ... | @@ -64,7 +69,7 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai |
64 | 69 | */ |
65 | 70 | @Override |
66 | 71 | @Transactional |
67 | - public AjaxResult saveContainer(String receiptCode, String containerCode, Integer receiptDetailId, | |
72 | + public AjaxResult saveCountain(String receiptCode, String containerCode, Integer receiptDetailId, | |
68 | 73 | String locationCode, Integer qty, String locatingRule) { |
69 | 74 | ReceiptDetail detail = receiptDetailService.getById(receiptDetailId); |
70 | 75 | //检查容器编码合法性 |
... | ... | @@ -77,7 +82,7 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai |
77 | 82 | if (taskType == 0){ throw new ServiceException("容器状态未知"); } |
78 | 83 | } |
79 | 84 | //检查库位编码合法性 |
80 | - if (checkLocationCode(locationCode, containerCode, taskType)) { | |
85 | + if (checkLocationCode(locationCode, containerCode, taskType) == true) { | |
81 | 86 | locationService.updateStatus(locationCode, "lock"); |
82 | 87 | } |
83 | 88 | |
... | ... | @@ -235,12 +240,12 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai |
235 | 240 | throw new ServiceException("收货明细是空!"); |
236 | 241 | } |
237 | 242 | checkContainer(list.get(0)); |
238 | - if (checkLocationCode(list.get(0).getLocationCode(), list.get(0).getLocationCode(), Integer.valueOf(list.get(0).getTaskType()))) { | |
239 | - locationService.updateStatus(list.get(0).getLocationCode(), "lock"); | |
240 | - } | |
243 | +// if (checkLocationCode(list.get(0).getLocationCode(), list.get(0).getLocationCode(), Integer.valueOf(list.get(0).getTaskType())) == true) { | |
244 | +// locationService.updateStatus(list.get(0).getLocationCode(), "lock"); | |
245 | +// } | |
241 | 246 | AjaxResult ajaxResult = null; |
242 | 247 | for (ReceiptContainerView receiptContainerView : list) { |
243 | - ajaxResult = saveContainer(receiptContainerView.getReceiptCode(), receiptContainerView.getReceiptContainerCode(), | |
248 | + ajaxResult = saveCountain(receiptContainerView.getReceiptCode(), receiptContainerView.getReceiptContainerCode(), | |
244 | 249 | receiptContainerView.getReceiptDetailId(), receiptContainerView.getLocationCode(), receiptContainerView.getQty().intValue(), null); |
245 | 250 | } |
246 | 251 | return ajaxResult; |
... | ... |
src/main/java/com/huaheng/pc/receipt/receiptDetail/service/ReceiptDetailServiceImpl.java
... | ... | @@ -178,6 +178,7 @@ public class ReceiptDetailServiceImpl extends ServiceImpl<ReceiptDetailMapper, R |
178 | 178 | * @param receiptDetail |
179 | 179 | * @return |
180 | 180 | */ |
181 | + @Override | |
181 | 182 | @Transactional |
182 | 183 | public ReceiptDetail queryflow(ReceiptDetail receiptDetail){ |
183 | 184 | //当单据状态为驳回或作废时不更新状态 |
... | ... |
src/main/java/com/huaheng/pc/receipt/receiptHeader/domain/ReceiptHeader.java
... | ... | @@ -76,6 +76,13 @@ public class ReceiptHeader implements Serializable { |
76 | 76 | private Integer referId; |
77 | 77 | |
78 | 78 | /** |
79 | + * 供应商编码 | |
80 | + */ | |
81 | + @TableField(value = "supplierCode") | |
82 | + @ApiModelProperty(value="供应商编码") | |
83 | + private String supplierCode; | |
84 | + | |
85 | + /** | |
79 | 86 | * 关联订单类型 |
80 | 87 | */ |
81 | 88 | @TableField(value = "referType") |
... | ... |
src/main/java/com/huaheng/pc/report/excelReport/controller/ExcelReportController.java
... | ... | @@ -101,8 +101,9 @@ public class ExcelReportController extends BaseController { |
101 | 101 | @PostMapping( "/remove") |
102 | 102 | @ResponseBody |
103 | 103 | public AjaxResult remove(String ids) { |
104 | - if (StringUtils.isEmpty(ids)) | |
104 | + if (StringUtils.isEmpty(ids)) { | |
105 | 105 | return AjaxResult.error("id不能为空"); |
106 | + } | |
106 | 107 | for (Integer id : Convert.toIntArray(ids)) |
107 | 108 | { |
108 | 109 | int i = mapper.delete(id); |
... | ... |
src/main/java/com/huaheng/pc/shipment/shipmentContainerDetail/controller/ShipmentContainerDetailController.java
... | ... | @@ -108,8 +108,9 @@ public class ShipmentContainerDetailController extends BaseController |
108 | 108 | @ResponseBody |
109 | 109 | public AjaxResult remove(String ids) |
110 | 110 | { |
111 | - if (StringUtils.isEmpty(ids)) | |
112 | - return AjaxResult.error("id不能为空"); | |
111 | + if (StringUtils.isEmpty(ids)) { | |
112 | + return AjaxResult.error("id不能为空"); | |
113 | + } | |
113 | 114 | return shipmentContainerHeaderService.cancelCombinationDetail(Arrays.asList((Convert.toIntArray(ids)))); |
114 | 115 | } |
115 | 116 | } |
... | ... |
src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/controller/ShipmentContainerHeaderController.java
... | ... | @@ -141,8 +141,9 @@ public class ShipmentContainerHeaderController extends BaseController |
141 | 141 | @ResponseBody |
142 | 142 | public AjaxResult remove(String ids) |
143 | 143 | { |
144 | - if (StringUtils.isEmpty(ids)) | |
145 | - return AjaxResult.error("id不能为空"); | |
144 | + if (StringUtils.isEmpty(ids)) { | |
145 | + return AjaxResult.error("id不能为空"); | |
146 | + } | |
146 | 147 | List<Integer> IdList = Arrays.asList(Convert.toIntArray(ids)); |
147 | 148 | return shipmentContainerHeaderService.cancelCombination(IdList); |
148 | 149 | |
... | ... | @@ -158,8 +159,9 @@ public class ShipmentContainerHeaderController extends BaseController |
158 | 159 | public AjaxResult createTask(String ids) |
159 | 160 | { |
160 | 161 | AjaxResult ajaxResult=new AjaxResult(); |
161 | - if (StringUtils.isEmpty(ids)) | |
162 | + if (StringUtils.isEmpty(ids)) { | |
162 | 163 | return AjaxResult.error("id不能为空"); |
164 | + } | |
163 | 165 | List<Integer> idList = Arrays.asList(Convert.toIntArray(ids)); |
164 | 166 | for (Integer id : idList) { |
165 | 167 | //获取表头 |
... | ... |
src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java
... | ... | @@ -137,7 +137,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont |
137 | 137 | inventoryDetail.setTaskQty(inventoryDetail.getTaskQty().add(shipmentCombinationModel.getShipQty())); |
138 | 138 | inventoryDetailService.saveOrUpdate(inventoryDetail); |
139 | 139 | //获取库位,然后锁定 |
140 | - if(location.getStatus().equals("empty")) { | |
140 | + if("empty".equals(location.getStatus())) { | |
141 | 141 | location.setStatus("lock"); |
142 | 142 | locationService.saveOrUpdate(location); |
143 | 143 | } |
... | ... | @@ -346,7 +346,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont |
346 | 346 | taskDetail.setWaveId(shipmentContainerDetaill.getWaveId()); |
347 | 347 | taskDetail.setBatch(shipmentContainerDetaill.getBatch()); |
348 | 348 | taskDetail.setProjectNo(shipmentContainerDetail.getProjectNo()); |
349 | - if (shipmentContainerHeader.getStatus() == QuantityConstant.SHIPMENT_CONTAINER_TASK) { | |
349 | + if (shipmentContainerHeader.getStatus().equals(QuantityConstant.SHIPMENT_CONTAINER_TASK)) { | |
350 | 350 | taskDetail.setStatus(QuantityConstant.TASK_STATUS_BUILD); |
351 | 351 | } else { |
352 | 352 | taskDetail.setStatus(QuantityConstant.TASK_STATUS_RELEASE); |
... | ... | @@ -481,6 +481,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont |
481 | 481 | |
482 | 482 | |
483 | 483 | //出库自动组盘 |
484 | + @Override | |
484 | 485 | public AjaxResult autoCombination(List<ShipmentDetail> shipmentDetailList){ |
485 | 486 | int num = 0; |
486 | 487 | List<Integer> list=new ArrayList<>(); |
... | ... |
src/main/java/com/huaheng/pc/shipment/shipmentDetail/controller/ShipmentDetailController.java
... | ... | @@ -199,8 +199,9 @@ public class ShipmentDetailController extends BaseController |
199 | 199 | @ResponseBody |
200 | 200 | public AjaxResult remove(String ids) |
201 | 201 | { |
202 | - if (StringUtils.isEmpty(ids)) | |
203 | - return AjaxResult.error("id不能为空"); | |
202 | + if (StringUtils.isEmpty(ids)) { | |
203 | + return AjaxResult.error("id不能为空"); | |
204 | + } | |
204 | 205 | for (Integer id : Convert.toIntArray(ids)) |
205 | 206 | { |
206 | 207 | ShipmentDetail shipmentDetail=shipmentDetailService.getById(id); |
... | ... |
src/main/java/com/huaheng/pc/shipment/shipmentDetail/service/ShipmentDetailServiceImpl.java
... | ... | @@ -111,8 +111,9 @@ public class ShipmentDetailServiceImpl extends ServiceImpl<ShipmentDetailMapper, |
111 | 111 | shipmentHeaderService.saveOrUpdate(shipmentHeader); |
112 | 112 | return AjaxResult.success("新增单据明细成功"); |
113 | 113 | } |
114 | - else | |
114 | + else { | |
115 | 115 | return AjaxResult.error("新增单据明细失败"); |
116 | + } | |
116 | 117 | } |
117 | 118 | |
118 | 119 | |
... | ... | @@ -125,8 +126,9 @@ public class ShipmentDetailServiceImpl extends ServiceImpl<ShipmentDetailMapper, |
125 | 126 | @Override |
126 | 127 | @Transactional |
127 | 128 | public AjaxResult deleteDetail(String id) { |
128 | - if (StringUtils.isEmpty(id)) | |
129 | + if (StringUtils.isEmpty(id)) { | |
129 | 130 | return AjaxResult.error("id不能为空"); |
131 | + } | |
130 | 132 | String[] ids = id.split(","); |
131 | 133 | List<Map<String,Integer>> list = shipmentDetailMapper.SelectFirstStatus(id); |
132 | 134 | if (list.size() < 1) { |
... | ... | @@ -155,8 +157,9 @@ public class ShipmentDetailServiceImpl extends ServiceImpl<ShipmentDetailMapper, |
155 | 157 | } |
156 | 158 | return AjaxResult.success("删除单据明细成功"); |
157 | 159 | } |
158 | - else | |
160 | + else { | |
159 | 161 | return AjaxResult.error("删除单据明细失败"); |
162 | + } | |
160 | 163 | } |
161 | 164 | |
162 | 165 | @Override |
... | ... |
src/main/java/com/huaheng/pc/shipment/shipmentDetailHistory/service/ShipmentDetailHistoryServiceImpl.java
... | ... | @@ -37,8 +37,9 @@ public class ShipmentDetailHistoryServiceImpl extends ServiceImpl<ShipmentDetail |
37 | 37 | @Override |
38 | 38 | @Transactional |
39 | 39 | public AjaxResult deleteDetail(String id) { |
40 | - if (StringUtils.isEmpty(id)) | |
40 | + if (StringUtils.isEmpty(id)) { | |
41 | 41 | return AjaxResult.error("id不能为空"); |
42 | + } | |
42 | 43 | String[] ids = id.split(","); |
43 | 44 | List<Map<String,Integer>> list = shipmentDetailHistoryMapper.SelectFirstStatus(id); |
44 | 45 | if (list.size() < 1) { |
... | ... | @@ -67,7 +68,8 @@ public class ShipmentDetailHistoryServiceImpl extends ServiceImpl<ShipmentDetail |
67 | 68 | } |
68 | 69 | return AjaxResult.success("删除单据明细成功"); |
69 | 70 | } |
70 | - else | |
71 | + else { | |
71 | 72 | return AjaxResult.error("删除单据明细失败"); |
73 | + } | |
72 | 74 | } |
73 | 75 | } |
... | ... |
src/main/java/com/huaheng/pc/shipment/shipmentHeader/mapper/ShipmentHeaderMapper.java
1 | 1 | package com.huaheng.pc.shipment.shipmentHeader.mapper; |
2 | 2 | |
3 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
4 | +import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader; | |
4 | 5 | import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader; |
5 | 6 | |
6 | 7 | import java.util.List; |
... | ... | @@ -15,4 +16,10 @@ public interface ShipmentHeaderMapper extends BaseMapper<ShipmentHeader> { |
15 | 16 | |
16 | 17 | List<ShipmentHeader> selectListByCreated(); |
17 | 18 | |
19 | + /** | |
20 | + * 获得最新出库单 | |
21 | + * @return | |
22 | + */ | |
23 | + List<ShipmentHeader> getLatestShipment(); | |
24 | + | |
18 | 25 | } |
19 | 26 | \ No newline at end of file |
... | ... |
src/main/java/com/huaheng/pc/shipment/shipmentHeader/service/ShipmentHeaderService.java
src/main/java/com/huaheng/pc/shipment/shipmentHeader/service/ShipmentHeaderServiceImpl.java
... | ... | @@ -13,6 +13,8 @@ import com.huaheng.pc.config.company.service.CompanyService; |
13 | 13 | import com.huaheng.pc.config.customer.domain.Customer; |
14 | 14 | import com.huaheng.pc.config.customer.service.CustomerServiceImpl; |
15 | 15 | import com.huaheng.pc.config.material.service.MaterialService; |
16 | +import com.huaheng.pc.config.shipmentType.service.ShipmentTypeService; | |
17 | +import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader; | |
16 | 18 | import com.huaheng.pc.shipment.shipmentContainerHeader.service.ShipmentContainerHeaderService; |
17 | 19 | import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail; |
18 | 20 | import com.huaheng.pc.shipment.shipmentDetail.service.ShipmentDetailService; |
... | ... | @@ -57,11 +59,14 @@ public class ShipmentHeaderServiceImpl extends ServiceImpl<ShipmentHeaderMapper, |
57 | 59 | private CustomerServiceImpl customerService; |
58 | 60 | @Resource |
59 | 61 | private MaterialService materialService; |
62 | + @Resource | |
63 | + private ShipmentTypeService shipmentTypeService; | |
60 | 64 | |
61 | 65 | //新增出库主单 |
62 | 66 | @Override |
63 | 67 | public AjaxResult<Boolean> saveHeader(ShipmentHeader shipmentHeader) { |
64 | - if(dictDataService.checkConfig("shipmentType", shipmentHeader.getShipmentType()) == false) | |
68 | + | |
69 | + if(shipmentTypeService.checkCode(shipmentHeader.getShipmentType()) == false) | |
65 | 70 | { |
66 | 71 | return AjaxResult.error("没有对应的出库单类型"); |
67 | 72 | } |
... | ... | @@ -259,4 +264,10 @@ public class ShipmentHeaderServiceImpl extends ServiceImpl<ShipmentHeaderMapper, |
259 | 264 | return shipmentHeaderMapper.selectListByCreated(); |
260 | 265 | } |
261 | 266 | |
267 | + @Override | |
268 | + @Transactional(rollbackFor = Exception.class) | |
269 | + public List<ShipmentHeader> getLatestShipment() { | |
270 | + return shipmentHeaderMapper.getLatestShipment(); | |
271 | + } | |
272 | + | |
262 | 273 | } |
... | ... |
src/main/java/com/huaheng/pc/shipment/shipmentHeaderHistory/controller/ShipmentHeaderHistoryController.java
... | ... | @@ -101,8 +101,9 @@ public class ShipmentHeaderHistoryController extends BaseController |
101 | 101 | @PostMapping( "/remove") |
102 | 102 | @ResponseBody |
103 | 103 | public AjaxResult remove(String ids) { |
104 | - if (StringUtils.isEmpty(ids)) | |
105 | - return AjaxResult.error("id不能为空"); | |
104 | + if (StringUtils.isEmpty(ids)) { | |
105 | + return AjaxResult.error("id不能为空"); | |
106 | + } | |
106 | 107 | for (Integer id : Convert.toIntArray(ids)) |
107 | 108 | { |
108 | 109 | boolean result=shipmentHeaderHistoryService.removeById(id); |
... | ... |
src/main/java/com/huaheng/pc/shipment/shippingCombination/controller/ShippingCombinationController.java
... | ... | @@ -2,6 +2,7 @@ package com.huaheng.pc.shipment.shippingCombination.controller; |
2 | 2 | |
3 | 3 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
4 | 4 | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
5 | +import com.huaheng.common.constant.QuantityConstant; | |
5 | 6 | import com.huaheng.common.exception.service.ServiceException; |
6 | 7 | import com.huaheng.common.utils.StringUtils; |
7 | 8 | import com.huaheng.common.utils.security.ShiroUtils; |
... | ... | @@ -19,6 +20,7 @@ import com.huaheng.pc.shipment.shipmentDetail.service.ShipmentDetailServiceImpl; |
19 | 20 | import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader; |
20 | 21 | import com.huaheng.pc.shipment.shipmentHeader.service.ShipmentHeaderService; |
21 | 22 | import com.huaheng.pc.shipment.shippingCombination.service.ShippingCombinationService; |
23 | +import com.huaheng.pc.task.taskHeader.domain.ShipmentTaskCreateModel; | |
22 | 24 | import com.huaheng.pc.task.taskHeader.service.TaskHeaderService; |
23 | 25 | import org.apache.shiro.authz.annotation.RequiresPermissions; |
24 | 26 | import org.springframework.beans.factory.annotation.Autowired; |
... | ... | @@ -161,6 +163,12 @@ public class ShippingCombinationController extends BaseController { |
161 | 163 | @ResponseBody |
162 | 164 | public AjaxResult Addcombination(ShipmentCombinationModel shipmentCombinationModel){ |
163 | 165 | ShipmentContainerHeader shipmentContainerHeader= shipmentContainerHeaderService.combination(shipmentCombinationModel); |
166 | + ShipmentTaskCreateModel shipmentTask = new ShipmentTaskCreateModel(); | |
167 | + shipmentTask.setShipmentContainerHeaderIds(shipmentContainerHeader.getId()); | |
168 | + AjaxResult ajaxResult = taskHeaderService.createTaskFromShipmentContainers(shipmentTask); | |
169 | + if (ajaxResult.hasErr()){ | |
170 | + throw new ServiceException("任务生成失败"); | |
171 | + } | |
164 | 172 | return AjaxResult.success(shipmentContainerHeader.getId()); |
165 | 173 | } |
166 | 174 | |
... | ... | @@ -174,6 +182,17 @@ public class ShippingCombinationController extends BaseController { |
174 | 182 | @ResponseBody |
175 | 183 | public AjaxResult autoCombination(String shipmentCode){ |
176 | 184 | AjaxResult ajaxResult = shipmentContainerHeaderService.autoCombination(shipmentCode); |
185 | + LambdaQueryWrapper<ShipmentContainerHeader> shipmentContainerHeader=Wrappers.lambdaQuery(); | |
186 | + shipmentContainerHeader.eq(ShipmentContainerHeader::getStatus, QuantityConstant.SHIPMENT_CONTAINER_BUILD); | |
187 | + List<ShipmentContainerHeader> shipmentContainerHeaders=shipmentContainerHeaderService.list(shipmentContainerHeader); | |
188 | + for(ShipmentContainerHeader item: shipmentContainerHeaders){ | |
189 | + ShipmentTaskCreateModel shipmentTask = new ShipmentTaskCreateModel(); | |
190 | + shipmentTask.setShipmentContainerHeaderIds(item.getId()); | |
191 | + AjaxResult ajaxResults = taskHeaderService.createTaskFromShipmentContainers(shipmentTask); | |
192 | + if (ajaxResults.hasErr()){ | |
193 | + throw new ServiceException("任务生成失败"); | |
194 | + } | |
195 | + } | |
177 | 196 | return ajaxResult; |
178 | 197 | } |
179 | 198 | |
... | ... |
src/main/java/com/huaheng/pc/shipment/wave/service/WaveService.java
... | ... | @@ -123,8 +123,8 @@ public class WaveService extends ServiceImpl<WaveMapper, Wave> { |
123 | 123 | return AjaxResult.error("id为"+id+"的波次不存在"); |
124 | 124 | } |
125 | 125 | |
126 | - if(wave.getCurrentWaveStep() != QuantityConstant.WAVE_STEP_BUILD && | |
127 | - wave.getCurrentWaveStep()!=QuantityConstant.WAVE_STEP_ERROR){ | |
126 | + if(!wave.getCurrentWaveStep().equals(QuantityConstant.WAVE_STEP_BUILD) && | |
127 | + !wave.getCurrentWaveStep().equals(QuantityConstant.WAVE_STEP_ERROR)){ | |
128 | 128 | return AjaxResult.error("id为"+id+"的波次已执行,无法剔除单据"); |
129 | 129 | } |
130 | 130 | |
... | ... | @@ -169,7 +169,7 @@ public class WaveService extends ServiceImpl<WaveMapper, Wave> { |
169 | 169 | return AjaxResult.error("id为"+id+"的波次不存在"); |
170 | 170 | } |
171 | 171 | |
172 | - if(wave.getCurrentWaveStep() != QuantityConstant.WAVE_STEP_START){ | |
172 | + if(!wave.getCurrentWaveStep().equals(QuantityConstant.WAVE_STEP_START)){ | |
173 | 173 | return AjaxResult.error("id为"+id+"的波次未执行,无法完成"); |
174 | 174 | } |
175 | 175 | |
... | ... | @@ -186,7 +186,7 @@ public class WaveService extends ServiceImpl<WaveMapper, Wave> { |
186 | 186 | //找到未生成出库任务的组盘头 |
187 | 187 | List<Integer> idList =new ArrayList<>(); |
188 | 188 | for(ShipmentContainerHeader item : shipmentContainerHeaders){ |
189 | - if(item.getStatus() == QuantityConstant.SHIPMENT_CONTAINER_BUILD){ | |
189 | + if(item.getStatus().equals(QuantityConstant.SHIPMENT_CONTAINER_BUILD)){ | |
190 | 190 | idList.add(item.getId()); |
191 | 191 | } |
192 | 192 | } |
... | ... | @@ -231,7 +231,7 @@ public class WaveService extends ServiceImpl<WaveMapper, Wave> { |
231 | 231 | |
232 | 232 | //1、查看此波次是否可以释放 |
233 | 233 | Wave wave = this.getById(id); |
234 | - if(wave == null || wave.getStatus() == QuantityConstant.WAVE_STATUS_START){ | |
234 | + if(wave == null || wave.getStatus().equals(QuantityConstant.WAVE_STATUS_START)){ | |
235 | 235 | return AjaxResult.error(id+"波次不可释放,正在执行中"); |
236 | 236 | } |
237 | 237 | |
... | ... | @@ -285,7 +285,7 @@ public class WaveService extends ServiceImpl<WaveMapper, Wave> { |
285 | 285 | } |
286 | 286 | } |
287 | 287 | |
288 | - if(wave.getCurrentWaveStep() == QuantityConstant.WAVE_STEP_END) { | |
288 | + if(wave.getCurrentWaveStep().equals(QuantityConstant.WAVE_STEP_END)) { | |
289 | 289 | //成功释放——找到此波次的未执行的子任务列表 |
290 | 290 | LambdaQueryWrapper<TaskHeader> lam = Wrappers.lambdaQuery(); |
291 | 291 | lam.eq(TaskHeader::getWarehouseCode, ShiroUtils.getWarehouseCode()) |
... | ... | @@ -299,20 +299,20 @@ public class WaveService extends ServiceImpl<WaveMapper, Wave> { |
299 | 299 | for(TaskHeader item :taskHeaders){ |
300 | 300 | taskIds.add(item.getId()); |
301 | 301 | } |
302 | - taskHeaderService.sendTaskToWcs((Integer[])taskIds.toArray()); | |
302 | + taskHeaderService.sendTaskToWcs(taskIds.toArray(new Integer[taskIds.size()])); | |
303 | 303 | } |
304 | 304 | |
305 | 305 | //修改波次状态 |
306 | - if(wave.getCurrentWaveStep() == QuantityConstant.WAVE_STEP_END) { | |
306 | + if(wave.getCurrentWaveStep().equals(QuantityConstant.WAVE_STEP_END)) { | |
307 | 307 | wave.setStatus(QuantityConstant.WAVE_STATUS_END); |
308 | 308 | wave.setCurrentWaveStep(QuantityConstant.WAVE_STEP_FREED); |
309 | 309 | wave.setLastWaveStep(QuantityConstant.WAVE_STEP_END); |
310 | 310 | } |
311 | - if(wave.getCurrentWaveStep() == QuantityConstant.WAVE_STATUS_BUILD){ | |
311 | + if(wave.getCurrentWaveStep().equals(QuantityConstant.WAVE_STATUS_BUILD)){ | |
312 | 312 | wave.setCurrentWaveStep(QuantityConstant.WAVE_STEP_FREED); |
313 | 313 | wave.setLastWaveStep(QuantityConstant.WAVE_STEP_BUILD); |
314 | 314 | } |
315 | - if(wave.getCurrentWaveStep() == QuantityConstant.WAVE_STATUS_ERROR){ | |
315 | + if(wave.getCurrentWaveStep().equals(QuantityConstant.WAVE_STATUS_ERROR)){ | |
316 | 316 | wave.setCurrentWaveStep(QuantityConstant.WAVE_STEP_FREED); |
317 | 317 | wave.setLastWaveStep(QuantityConstant.WAVE_STEP_ERROR); |
318 | 318 | } |
... | ... |
src/main/java/com/huaheng/pc/system/dict/service/DictDataServiceImpl.java
... | ... | @@ -31,8 +31,9 @@ public class DictDataServiceImpl implements IDictDataService |
31 | 31 | @Override |
32 | 32 | public List<DictData> selectDictDataList(DictData dictData) |
33 | 33 | { |
34 | - if (dictData.getWarehouseCode() == null) | |
34 | + if (dictData.getWarehouseCode() == null) { | |
35 | 35 | dictData.setWarehouseCode(ShiroUtils.getWarehouseCode()); |
36 | + } | |
36 | 37 | return dictDataMapper.selectDictDataList(dictData); |
37 | 38 | } |
38 | 39 | |
... | ... | @@ -106,8 +107,9 @@ public class DictDataServiceImpl implements IDictDataService |
106 | 107 | @Override |
107 | 108 | public int insertDictData(DictData dictData) |
108 | 109 | { |
109 | - if (dictData.getWarehouseCode() == null) | |
110 | + if (dictData.getWarehouseCode() == null) { | |
110 | 111 | dictData.setWarehouseCode(ShiroUtils.getWarehouseCode()); |
112 | + } | |
111 | 113 | dictData.setCreateBy(ShiroUtils.getLoginName()); |
112 | 114 | return dictDataMapper.insertDictData(dictData); |
113 | 115 | } |
... | ... | @@ -139,10 +141,11 @@ public class DictDataServiceImpl implements IDictDataService |
139 | 141 | dictData.setDictType(type); |
140 | 142 | dictData.setDictValue(dictValue); |
141 | 143 | Integer id = dictDataMapper.checkConfig(dictData); |
142 | - if (id == null) | |
144 | + if (id == null) { | |
143 | 145 | return false; |
144 | - else | |
146 | + } else { | |
145 | 147 | return true; |
148 | + } | |
146 | 149 | } |
147 | 150 | |
148 | 151 | |
... | ... | @@ -151,6 +154,7 @@ public class DictDataServiceImpl implements IDictDataService |
151 | 154 | * @param warehouseCode |
152 | 155 | * @return |
153 | 156 | */ |
157 | + @Override | |
154 | 158 | public int deleteDictDataByWarehouseCode(String warehouseCode){ |
155 | 159 | return dictDataMapper.deleteDictDataByWarehouseCode(warehouseCode); |
156 | 160 | } |
... | ... | @@ -160,8 +164,9 @@ public class DictDataServiceImpl implements IDictDataService |
160 | 164 | { |
161 | 165 | List<DictData> dictDataList=new ArrayList<>(); |
162 | 166 | for(DictData dictData: dictDatas) { |
163 | - if (dictData.getWarehouseCode() == null) | |
167 | + if (dictData.getWarehouseCode() == null) { | |
164 | 168 | dictData.setWarehouseCode(ShiroUtils.getWarehouseCode()); |
169 | + } | |
165 | 170 | dictData.setCreateBy(ShiroUtils.getLoginName()); |
166 | 171 | dictDataList.add(dictData); |
167 | 172 | } |
... | ... |
src/main/java/com/huaheng/pc/system/dict/service/DictTypeServiceImpl.java
... | ... | @@ -39,8 +39,9 @@ public class DictTypeServiceImpl implements IDictTypeService |
39 | 39 | @Override |
40 | 40 | public List<DictType> selectDictTypeList(DictType dictType) |
41 | 41 | { |
42 | - if (dictType.getWarehouseCode() == null) | |
42 | + if (dictType.getWarehouseCode() == null) { | |
43 | 43 | dictType.setWarehouseCode(ShiroUtils.getWarehouseCode()); |
44 | + } | |
44 | 45 | return dictTypeMapper.selectDictTypeList(dictType); |
45 | 46 | } |
46 | 47 | |
... | ... | @@ -103,8 +104,9 @@ public class DictTypeServiceImpl implements IDictTypeService |
103 | 104 | @Override |
104 | 105 | public int insertDictType(DictType dictType) |
105 | 106 | { |
106 | - if (dictType.getWarehouseCode() == null) | |
107 | + if (dictType.getWarehouseCode() == null) { | |
107 | 108 | dictType.setWarehouseCode(ShiroUtils.getWarehouseCode()); |
109 | + } | |
108 | 110 | dictType.setCreateBy(ShiroUtils.getLoginName()); |
109 | 111 | return dictTypeMapper.insertDictType(dictType); |
110 | 112 | } |
... | ... | @@ -170,8 +172,9 @@ public class DictTypeServiceImpl implements IDictTypeService |
170 | 172 | { |
171 | 173 | List<DictType> dictTypeList=new ArrayList<>(); |
172 | 174 | for(DictType dictType:dictTypes){ |
173 | - if (dictType.getWarehouseCode() == null) | |
175 | + if (dictType.getWarehouseCode() == null) { | |
174 | 176 | dictType.setWarehouseCode(ShiroUtils.getWarehouseCode()); |
177 | + } | |
175 | 178 | dictType.setCreateBy(ShiroUtils.getLoginName()); |
176 | 179 | dictTypeList.add(dictType); |
177 | 180 | } |
... | ... |
src/main/java/com/huaheng/pc/system/user/controller/HomeController.java
... | ... | @@ -102,7 +102,7 @@ public class HomeController extends BaseController { |
102 | 102 | @ResponseBody |
103 | 103 | public AjaxResult getInventoryStatus(String type){ |
104 | 104 | List<Map<String, Object>> list=new ArrayList<>(); |
105 | - if(type.equals("1")) { | |
105 | + if("1".equals(type)) { | |
106 | 106 | Warehouse warehouse=new Warehouse(); |
107 | 107 | List<Warehouse> warehouseList=warehouseService.selectListEntityByEqual(warehouse); |
108 | 108 | for(Warehouse item:warehouseList) { |
... | ... | @@ -171,15 +171,15 @@ public class HomeController extends BaseController { |
171 | 171 | List<TaskDetail> receiptDetails=new ArrayList<>(); |
172 | 172 | List<TaskDetail> shipmentDetails=new ArrayList<>(); |
173 | 173 | Map map=new ModelMap(); |
174 | - if(type.equals("1")) { | |
174 | + if("1".equals(type)) { | |
175 | 175 | receiptDetails = receiptDetailService.getReceiptQtyLast7Days(); |
176 | 176 | shipmentDetails = shipmentDetailService.getShipmentQtyLast7Days(); |
177 | 177 | } |
178 | - if(type.equals("2")){ | |
178 | + if("2".equals(type)){ | |
179 | 179 | receiptDetails =receiptDetailService.getWarehouseReceipt(); |
180 | 180 | shipmentDetails=shipmentDetailService.getWarehouseShipment(); |
181 | 181 | } |
182 | - if(type.equals("3")){ | |
182 | + if("3".equals(type)){ | |
183 | 183 | receiptDetails =receiptDetailService.getCompanyReceipt(); |
184 | 184 | shipmentDetails=shipmentDetailService.getCompanyShipment(); |
185 | 185 | } |
... | ... | @@ -193,7 +193,7 @@ public class HomeController extends BaseController { |
193 | 193 | @ResponseBody |
194 | 194 | public AjaxResult getInventoryProp(String type){ |
195 | 195 | List<Map<String, Object>> list=new ArrayList<>(); |
196 | - if(type.equals("1")) { | |
196 | + if("1".equals(type)) { | |
197 | 197 | Warehouse warehouse=new Warehouse(); |
198 | 198 | List<Warehouse> warehouseList=warehouseService.selectListEntityByEqual(warehouse); |
199 | 199 | for(Warehouse item:warehouseList) { |
... | ... |
src/main/java/com/huaheng/pc/system/user/controller/IndexController.java
... | ... | @@ -78,7 +78,7 @@ public class IndexController extends BaseController |
78 | 78 | for(LinkedHashMap<String, Object> item : results){ |
79 | 79 | ChartData chartData = new ChartData(); |
80 | 80 | for(Map.Entry<String, Object> entries : item.entrySet()){ |
81 | - if(entries.getKey().equals("状态")){ | |
81 | + if("状态".equals(entries.getKey())){ | |
82 | 82 | option.legend().getData().add(entries.getValue()); |
83 | 83 | chartData.setName(entries.getValue().toString()); |
84 | 84 | }else{ |
... | ... |
src/main/java/com/huaheng/pc/system/user/controller/UserController.java
... | ... | @@ -160,8 +160,9 @@ public class UserController extends BaseController |
160 | 160 | } |
161 | 161 | AjaxResult ajaxResult = toAjax(userService.updateUser(user)); |
162 | 162 | |
163 | - if (ShiroUtils.getLoginName().equals(user.getUserName())) | |
163 | + if (ShiroUtils.getLoginName().equals(user.getUserName())) { | |
164 | 164 | ShiroUtils.logout(); |
165 | + } | |
165 | 166 | |
166 | 167 | return ajaxResult; |
167 | 168 | } |
... | ... |
src/main/java/com/huaheng/pc/system/user/domain/User.java
src/main/java/com/huaheng/pc/system/user/service/UserServiceImpl.java
... | ... | @@ -417,7 +417,7 @@ public class UserServiceImpl implements IUserService |
417 | 417 | { |
418 | 418 | Integer userId = StringUtils.isNull(user.getId()) ? -1 : user.getId(); |
419 | 419 | User info = userMapper.checkPhoneUnique(user.getPhoneNumber()); |
420 | - if (StringUtils.isNotNull(info) && info.getId() != userId) | |
420 | + if (StringUtils.isNotNull(info) && !info.getId().equals(userId)) | |
421 | 421 | { |
422 | 422 | return UserConstants.USER_PHONE_NOT_UNIQUE; |
423 | 423 | } |
... | ... | @@ -435,7 +435,7 @@ public class UserServiceImpl implements IUserService |
435 | 435 | { |
436 | 436 | Integer userId = StringUtils.isNull(user.getId()) ? -1 : user.getId(); |
437 | 437 | User info = userMapper.checkEmailUnique(user.getEmail()); |
438 | - if (StringUtils.isNotNull(info) && info.getId() != userId) | |
438 | + if (StringUtils.isNotNull(info) && !info.getId().equals(userId)) | |
439 | 439 | { |
440 | 440 | return UserConstants.USER_EMAIL_NOT_UNIQUE; |
441 | 441 | } |
... | ... | @@ -502,8 +502,9 @@ public class UserServiceImpl implements IUserService |
502 | 502 | else |
503 | 503 | { |
504 | 504 | list = userMapper.getWarehouseByUserName(loginName); |
505 | - if (list.size()==1) | |
505 | + if (list.size()==1) { | |
506 | 506 | list=userMapper.getWarehouseByUserCode(loginName); |
507 | + } | |
507 | 508 | |
508 | 509 | |
509 | 510 | } |
... | ... |
src/main/java/com/huaheng/pc/task/taskHeader/controller/TaskHeaderController.java
... | ... | @@ -108,8 +108,9 @@ public class TaskHeaderController extends BaseController { |
108 | 108 | @ResponseBody |
109 | 109 | public AjaxResult execute(String taskId) |
110 | 110 | { |
111 | - if (StringUtils.isEmpty(taskId)) | |
111 | + if (StringUtils.isEmpty(taskId)){ | |
112 | 112 | return AjaxResult.error("taskId不能为空"); |
113 | + } | |
113 | 114 | AjaxResult ajaxResult = taskHeaderService.sendTaskToWcs(Convert.toIntArray(taskId)); |
114 | 115 | return ajaxResult; |
115 | 116 | } |
... | ... | @@ -122,8 +123,9 @@ public class TaskHeaderController extends BaseController { |
122 | 123 | @PostMapping( "/completeTaskByWMS") |
123 | 124 | @ResponseBody |
124 | 125 | public AjaxResult completeTaskByWMS(String taskId){ |
125 | - if (StringUtils.isEmpty(taskId)) | |
126 | + if (StringUtils.isEmpty(taskId)){ | |
126 | 127 | return AjaxResult.error("taskId不能为空"); |
128 | + } | |
127 | 129 | return taskHeaderService.completeTaskByWMS(Convert.toIntArray(taskId), null); |
128 | 130 | } |
129 | 131 | |
... | ... | @@ -152,10 +154,12 @@ public class TaskHeaderController extends BaseController { |
152 | 154 | @PostMapping("/setLocationCode") |
153 | 155 | @ResponseBody |
154 | 156 | public AjaxResult setLocationCode( Integer taskId, Integer high){ |
155 | - if (taskId == null) | |
157 | + if (taskId == null){ | |
156 | 158 | return AjaxResult.error("任务id不能为空"); |
157 | - if (high == null) | |
159 | + } | |
160 | + if (high == null){ | |
158 | 161 | return AjaxResult.error("高库位标识不能为空"); |
162 | + } | |
159 | 163 | return taskHeaderService.setLocationCode(taskId, high); |
160 | 164 | } |
161 | 165 | |
... | ... |
src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.java
... | ... | @@ -92,7 +92,7 @@ public interface TaskHeaderService extends IService<TaskHeader>{ |
92 | 92 | |
93 | 93 | AjaxResult createAutoEmptyOut(String warehouseCode); |
94 | 94 | |
95 | - AjaxResult<String> getLocationCode(Integer taskId,String warehouseCode,String weight); | |
95 | + String getLocationCode(Integer taskId,String warehouseCode,String weight); | |
96 | 96 | |
97 | 97 | AjaxResult setLocationCode(Integer taskId, Integer high); |
98 | 98 | |
... | ... |
src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java
... | ... | @@ -124,7 +124,6 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
124 | 124 | * @param taskHeaderList |
125 | 125 | * @return |
126 | 126 | */ |
127 | - @Transactional | |
128 | 127 | @Override |
129 | 128 | public List<TaskHeader> preferenceRealize(List<TaskHeader> taskHeaderList) { |
130 | 129 | //盘点任务头,默认不显示库位,容器。 |
... | ... | @@ -151,7 +150,8 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
151 | 150 | * @throws Exception |
152 | 151 | */ |
153 | 152 | @Override |
154 | - public AjaxResult completeTask(String locationCode) throws Exception { | |
153 | + @Transactional(rollbackFor = Exception.class) | |
154 | + public AjaxResult completeTask(String locationCode) { | |
155 | 155 | LambdaQueryWrapper<TaskHeader> taskQueryWrapper = Wrappers.lambdaQuery(); |
156 | 156 | taskQueryWrapper.eq(TaskHeader::getToLocation, locationCode); |
157 | 157 | List<TaskHeader> list = this.list(taskQueryWrapper); |
... | ... | @@ -170,6 +170,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
170 | 170 | } |
171 | 171 | |
172 | 172 | @Override |
173 | + @Transactional(rollbackFor = Exception.class) | |
173 | 174 | public AjaxResult createReplenishTask(String containerCode, Short taskStatus) { |
174 | 175 | LambdaQueryWrapper<ReceiptContainerHeader> headerQueryWrapper = Wrappers.lambdaQuery(); |
175 | 176 | headerQueryWrapper.eq(ReceiptContainerHeader::getContainerCode, containerCode) |
... | ... | @@ -200,8 +201,8 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
200 | 201 | } |
201 | 202 | List<Integer> ids = new ArrayList<>(); |
202 | 203 | ids.add(containerHeader.getId()); |
203 | - createReceiptTask(ids); | |
204 | - return null; | |
204 | + this.createReceiptTask(ids); | |
205 | + return AjaxResult.success("成功!"); | |
205 | 206 | } |
206 | 207 | |
207 | 208 | /** |
... | ... | @@ -210,6 +211,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
210 | 211 | * @return |
211 | 212 | */ |
212 | 213 | @Override |
214 | + @Transactional(rollbackFor = Exception.class) | |
213 | 215 | public List<MobileTask> mobileFindTransferTask(String containerCode) { |
214 | 216 | /* 查询该容器未完成的盘点任务明细*/ |
215 | 217 | LambdaQueryWrapper<TaskDetail> detailLambdaQueryWrapper = Wrappers.lambdaQuery(); |
... | ... | @@ -249,7 +251,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
249 | 251 | * 取消任务 |
250 | 252 | */ |
251 | 253 | @Override |
252 | - @Transactional | |
254 | + @Transactional(rollbackFor = Exception.class) | |
253 | 255 | public AjaxResult cancelTask(Integer[] taskIds) { |
254 | 256 | for (int taskId : taskIds) { |
255 | 257 | TaskHeader taskHeader = taskHeaderService.getById(taskId); |
... | ... | @@ -289,7 +291,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
289 | 291 | shipmentContainerHeaderService.updateById(shipmentContainerHeader); |
290 | 292 | } |
291 | 293 | //盘点取消任务,恢复明细状态为1 |
292 | - if (taskHeader.getInternalTaskType() == QuantityConstant.TASK_INTENERTYPE_CYCLECOUNT) { | |
294 | + if (taskHeader.getInternalTaskType().equals(QuantityConstant.TASK_INTENERTYPE_CYCLECOUNT)) { | |
293 | 295 | |
294 | 296 | CycleCountDetail cycleCountDetail = new CycleCountDetail(); |
295 | 297 | cycleCountDetail.setCompanyCode(taskDetail.getCompanyCode()); |
... | ... | @@ -310,7 +312,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
310 | 312 | } |
311 | 313 | |
312 | 314 | } |
313 | - if (taskHeader.getInternalTaskType() == QuantityConstant.TASK_INTENERTYPE_SHELF || taskHeader.getInternalTaskType() == QuantityConstant.TASK_INTENERTYPE_PICKING) { | |
315 | + if (taskHeader.getInternalTaskType().equals(QuantityConstant.TASK_INTENERTYPE_SHELF) || taskHeader.getInternalTaskType().equals(QuantityConstant.TASK_INTENERTYPE_PICKING)) { | |
314 | 316 | if (taskHeader.getToLocation() != null) { |
315 | 317 | //更新托盘、库位状态 |
316 | 318 | locationService.updateStatus(taskHeader.getToLocation(), "empty"); |
... | ... | @@ -344,6 +346,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
344 | 346 | * @return |
345 | 347 | */ |
346 | 348 | @Override |
349 | + @Transactional(rollbackFor = Exception.class) | |
347 | 350 | public AjaxResult createQuickTask(String containerCode) { |
348 | 351 | LambdaQueryWrapper<ReceiptContainerHeader> queryWrapper = Wrappers.lambdaQuery(); |
349 | 352 | queryWrapper.eq(ReceiptContainerHeader::getContainerCode, containerCode) |
... | ... | @@ -408,7 +411,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
408 | 411 | * @return |
409 | 412 | */ |
410 | 413 | @Override |
411 | - @Transactional | |
414 | + @Transactional(rollbackFor = Exception.class) | |
412 | 415 | public AjaxResult createTaskFromShipmentContainers(ShipmentTaskCreateModel shipmentTaskCreateModel) { |
413 | 416 | Boolean flag = true; |
414 | 417 | Integer shipmentContainerHeaderId = shipmentTaskCreateModel.getShipmentContainerHeaderIds(); |
... | ... | @@ -512,7 +515,6 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
512 | 515 | if (flag == false) { |
513 | 516 | throw new ServiceException("新建任务明细失败,sql报错"); |
514 | 517 | } |
515 | - | |
516 | 518 | shipmentContainerDetail.setStatus(QuantityConstant.SHIPMENT_CONTAINER_TASK); |
517 | 519 | } |
518 | 520 | //更新货位状态 |
... | ... | @@ -527,7 +529,6 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
527 | 529 | throw new ServiceException("修改组盘明细状态明细失败,sql报错"); |
528 | 530 | } |
529 | 531 | return AjaxResult.success(task.getId()); |
530 | - | |
531 | 532 | } |
532 | 533 | |
533 | 534 | /** |
... | ... | @@ -535,7 +536,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
535 | 536 | * 执行任务 |
536 | 537 | */ |
537 | 538 | @Override |
538 | - @Transactional | |
539 | + @Transactional(rollbackFor = Exception.class) | |
539 | 540 | public AjaxResult<TaskHeader> sendTaskToWcs(Integer[] taskIds) { |
540 | 541 | TaskHeader task = null; |
541 | 542 | for (Integer taskId : taskIds) { |
... | ... | @@ -618,43 +619,41 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
618 | 619 | } |
619 | 620 | |
620 | 621 | @Override |
621 | - @Transactional | |
622 | - public AjaxResult completeTaskByWMS(Integer[] taskIds, String[] weight) { | |
622 | + @Transactional(rollbackFor = Exception.class) | |
623 | + public AjaxResult completeTaskByWMS(Integer[] taskIds, String[] weightConvert) { | |
623 | 624 | for (int i = 0;i<taskIds.length;i++) { |
624 | 625 | TaskHeader task = taskHeaderService.getById(taskIds[i]); |
626 | + | |
625 | 627 | if (task == null) { |
626 | 628 | throw new ServiceException("任务" + taskIds[i] + "未找到,执行中止"); |
627 | 629 | } |
628 | - | |
630 | + //任务写入重量 | |
631 | + String weight = ""; | |
632 | + if (StringUtils.isNotNull(weightConvert)) { | |
633 | + weight = weightConvert[i]; | |
634 | + } | |
635 | + task.setWeight(weight); | |
629 | 636 | //如果已完成则不管 |
630 | 637 | if (task.getStatus().equals(QuantityConstant.TASK_STATUS_COMPLETED)) { |
631 | 638 | return AjaxResult.success("任务(" + taskIds[i] + ")任务已经是完成的!"); |
632 | 639 | |
633 | 640 | } |
634 | - | |
635 | 641 | //整盘入库,空托入库库位自动分配 |
636 | 642 | //整盘入库手动完成分配库位,已分配则略过 |
637 | 643 | if(task.getTaskType().equals(QuantityConstant.TASK_TYPE_WHOLERECEIPT) || task.getTaskType().equals(QuantityConstant.TASK_TYPE_EMPTYRECEIPT)){ |
638 | 644 | if(StringUtils.isEmpty(task.getToLocation())){ |
639 | 645 | //自动分配库位 |
640 | - AjaxResult ajaxResult = this.getLocationCode(task.getId(),ShiroUtils.getWarehouseCode(),null); | |
641 | - String locationCode = (String )ajaxResult.getData(); | |
642 | - task.setToLocation(locationCode); | |
646 | + String result = this.getLocationCode(task.getId(),ShiroUtils.getWarehouseCode(),weight); | |
647 | + task.setToLocation(result); | |
643 | 648 | } |
644 | 649 | } |
645 | - | |
646 | 650 | //如果没有库位不能完成 |
647 | 651 | if (StringUtils.isEmpty(task.getFromLocation()) && StringUtils.isEmpty(task.getToLocation())) { |
648 | 652 | throw new ServiceException("任务" + task.getId() + "没有库位,执行中止"); |
649 | 653 | } |
650 | 654 | |
651 | - if (StringUtils.isNotNull(weight)) { | |
652 | - task.setWeight(weight[i]); | |
653 | - } | |
654 | - | |
655 | 655 | this.completeTask(task); |
656 | 656 | } |
657 | - | |
658 | 657 | return AjaxResult.success("完成任务成功!"); |
659 | 658 | } |
660 | 659 | |
... | ... | @@ -663,6 +662,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
663 | 662 | * |
664 | 663 | * @param task |
665 | 664 | */ |
665 | + @Transactional(rollbackFor = Exception.class) | |
666 | 666 | public void completeTask(TaskHeader task) { |
667 | 667 | //区分任务类型 |
668 | 668 | if (task.getInternalTaskType().equals(QuantityConstant.TASK_INTENERTYPE_SHELF) ) { |
... | ... | @@ -701,7 +701,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
701 | 701 | * 完成入库任务 |
702 | 702 | */ |
703 | 703 | @Override |
704 | - @Transactional | |
704 | + @Transactional(rollbackFor = Exception.class) | |
705 | 705 | public AjaxResult completeReceiptTask(TaskHeader task) { |
706 | 706 | List<Map<String, Object>> taskReceiptContainerDetail = taskHeaderMapper.getReceiptTask(task.getId()); |
707 | 707 | if (taskReceiptContainerDetail.size() < 1) { |
... | ... | @@ -724,7 +724,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
724 | 724 | header.setContainerCode(DataUtils.getString(map.get("containerCode")));//容器号 |
725 | 725 | header.setContainerStatus("some"); |
726 | 726 | header.setLocationCode(task.getToLocation()); |
727 | - header.setTotalQty(DataUtils.getInteger(map.get("totalQty")));//总数量 | |
727 | + header.setTotalQty(DataUtils.getBigDecimal(map.get("totalQty")));//总数量 | |
728 | 728 | header.setLocking(1); |
729 | 729 | header.setEnable(1); |
730 | 730 | header.setTotalWeight(task.getWeight()); |
... | ... | @@ -755,6 +755,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
755 | 755 | // detail.setManufactureDate(new SimpleDateFormat("yyyy-MM-dd").parse(map.get("manufactureDate").toString()));//生产日期 |
756 | 756 | // detail.setExpirationDate(new SimpleDateFormat("yyyy-MM-dd").parse(map.get("expirationDate").toString()));//失效日期 |
757 | 757 | detail.setQty(DataUtils.getBigDecimal(map.get("qty")));//数量 |
758 | + detail.setLockedQty(DataUtils.getBigDecimal(0)); | |
758 | 759 | detail.setTaskQty(DataUtils.getBigDecimal(0)); |
759 | 760 | detail.setCreatedBy(ShiroUtils.getLoginName());//创建人 |
760 | 761 | detail.setLastUpdatedBy(ShiroUtils.getLoginName());//创建时间 |
... | ... | @@ -766,9 +767,9 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
766 | 767 | detail.setLastUpdatedBy(ShiroUtils.getLoginName()); |
767 | 768 | LambdaUpdateWrapper<InventoryDetail> lambdaUpdateWrapper = Wrappers.lambdaUpdate(); |
768 | 769 | lambdaUpdateWrapper.eq(InventoryDetail::getId, DataUtils.getInteger(map.get("receiptDetailId"))); |
769 | - if (!inventoryDetailService.update(detail, lambdaUpdateWrapper)) | |
770 | + if (!inventoryDetailService.update(detail, lambdaUpdateWrapper)){ | |
770 | 771 | throw new ServiceException("更新入库单明细失败"); |
771 | - | |
772 | + } | |
772 | 773 | } |
773 | 774 | //记录库存交易记录 |
774 | 775 | InventoryTransaction inventoryTransaction = new InventoryTransaction(); |
... | ... | @@ -811,18 +812,18 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
811 | 812 | task.setLastUpdated(new Date()); |
812 | 813 | LambdaUpdateWrapper<TaskHeader> taskHeaderLambdaUpdateWrapper = Wrappers.lambdaUpdate(); |
813 | 814 | taskHeaderLambdaUpdateWrapper.eq(TaskHeader::getId, task.getId()); |
814 | - if (!taskHeaderService.update(task, taskHeaderLambdaUpdateWrapper)) | |
815 | + if (!taskHeaderService.update(task, taskHeaderLambdaUpdateWrapper)){ | |
815 | 816 | throw new ServiceException("更新任务主表失败"); |
816 | - | |
817 | + } | |
817 | 818 | //修改库位状态和对应的容器 |
818 | 819 | Location location = new Location(); |
819 | 820 | location.setContainerCode(task.getContainerCode()); |
820 | 821 | location.setStatus("empty"); |
821 | 822 | LambdaUpdateWrapper<Location> locationLambdaUpdateWrapper = Wrappers.lambdaUpdate(); |
822 | 823 | locationLambdaUpdateWrapper.eq(Location::getCode, task.getToLocation()); |
823 | - if (!locationService.update(location, locationLambdaUpdateWrapper)) | |
824 | + if (!locationService.update(location, locationLambdaUpdateWrapper)){ | |
824 | 825 | throw new ServiceException("更新库位失败"); |
825 | - | |
826 | + } | |
826 | 827 | //修改容器状态和对应的库位 |
827 | 828 | Container container = new Container(); |
828 | 829 | container.setLocationCode(task.getToLocation()); |
... | ... | @@ -840,9 +841,9 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
840 | 841 | receiptContainerDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); |
841 | 842 | LambdaUpdateWrapper<ReceiptContainerDetail> receiptContainerDetailLambdaUpdateWrapper = Wrappers.lambdaUpdate(); |
842 | 843 | receiptContainerDetailLambdaUpdateWrapper.eq(ReceiptContainerDetail::getReceiptId, DataUtils.getInteger(map.get("receiptId"))); |
843 | - if (!receiptContainerDetailService.update(receiptContainerDetail, receiptContainerDetailLambdaUpdateWrapper)) | |
844 | + if (!receiptContainerDetailService.update(receiptContainerDetail, receiptContainerDetailLambdaUpdateWrapper)){ | |
844 | 845 | throw new ServiceException("更新组盘状态失败"); |
845 | - | |
846 | + } | |
846 | 847 | |
847 | 848 | //修改入库组盘头表状态 |
848 | 849 | |
... | ... | @@ -880,6 +881,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
880 | 881 | * @return |
881 | 882 | */ |
882 | 883 | @Override |
884 | + @Transactional(rollbackFor = Exception.class) | |
883 | 885 | public AjaxResult mobileCreateReceiptTask(String containerCode, String sourceLocation) { |
884 | 886 | LambdaQueryWrapper<ReceiptContainerHeader> queryWrapper = Wrappers.lambdaQuery(); |
885 | 887 | queryWrapper.eq(ReceiptContainerHeader::getContainerCode, containerCode) |
... | ... | @@ -907,8 +909,8 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
907 | 909 | * 生成 |
908 | 910 | * 立库移库 |
909 | 911 | */ |
910 | - @Transactional | |
911 | 912 | @Override |
913 | + @Transactional(rollbackFor = Exception.class) | |
912 | 914 | public AjaxResult createTransferTask(String sourceLocation, String destinationLocation) { |
913 | 915 | |
914 | 916 | //源库位校验 |
... | ... | @@ -921,7 +923,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
921 | 923 | if (loc1 == null) { |
922 | 924 | return AjaxResult.error("源库位:" + sourceLocation + "未找到"); |
923 | 925 | } |
924 | - if (!loc1.getStatus().equals("empty")) { | |
926 | + if (!"empty".equals(loc1.getStatus())) { | |
925 | 927 | return AjaxResult.error("源库位:" + sourceLocation + "状态非空闲"); |
926 | 928 | } |
927 | 929 | if (StringUtils.isEmpty(loc1.getContainerCode())) { |
... | ... | @@ -946,7 +948,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
946 | 948 | if (loc2 == null) { |
947 | 949 | return AjaxResult.error("目标库位:" + destinationLocation + "未找到"); |
948 | 950 | } |
949 | - if (!loc2.getStatus().equals("empty")) { | |
951 | + if (!"empty".equals(loc2.getStatus())) { | |
950 | 952 | return AjaxResult.error("目标库位:" + destinationLocation + "状态非空闲"); |
951 | 953 | } |
952 | 954 | if (StringUtils.isNotEmpty(loc2.getContainerCode())) { |
... | ... | @@ -1127,7 +1129,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
1127 | 1129 | * 任务 |
1128 | 1130 | */ |
1129 | 1131 | @Override |
1130 | - @Transactional | |
1132 | + @Transactional(rollbackFor = Exception.class) | |
1131 | 1133 | public AjaxResult createCheckOutTask(String[] ids) { |
1132 | 1134 | |
1133 | 1135 | for (String id : ids) { |
... | ... | @@ -1142,7 +1144,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
1142 | 1144 | if (loc == null) { |
1143 | 1145 | throw new ServiceException("库存没有库位!"); |
1144 | 1146 | } |
1145 | - if (!loc.getStatus().equals("empty")) { | |
1147 | + if (!"empty".equals(loc.getStatus())) { | |
1146 | 1148 | throw new ServiceException(inventoryHeader.getLocationCode() + "状态非空闲,操作失败"); |
1147 | 1149 | } |
1148 | 1150 | if (StringUtils.isEmpty(loc.getContainerCode())) { |
... | ... | @@ -1207,8 +1209,8 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
1207 | 1209 | * 出库查看 |
1208 | 1210 | * 更新状态,解锁库存 |
1209 | 1211 | */ |
1210 | - @Transactional | |
1211 | 1212 | @Override |
1213 | + @Transactional(rollbackFor = Exception.class) | |
1212 | 1214 | public AjaxResult completeSeeOutTask(TaskHeader taskHeader) { |
1213 | 1215 | taskHeader.setStatus(QuantityConstant.TASK_STATUS_COMPLETED); |
1214 | 1216 | taskHeader.setLastUpdatedBy(ShiroUtils.getLoginName()); //更新用户 |
... | ... | @@ -1252,8 +1254,8 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
1252 | 1254 | * @param taskHeader |
1253 | 1255 | * @return |
1254 | 1256 | */ |
1255 | - @Transactional | |
1256 | 1257 | @Override |
1258 | + @Transactional(rollbackFor = Exception.class) | |
1257 | 1259 | public AjaxResult completeCycleCountTask(TaskHeader taskHeader) { |
1258 | 1260 | /*盘点完成,传入任务主单,查出任务明细,通过任务明细查找盘点的明细单, |
1259 | 1261 | 完成任务同时,修改盘点细单和主单的状态,完成后库存锁复位*/ |
... | ... | @@ -1305,7 +1307,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
1305 | 1307 | * |
1306 | 1308 | * @param taskHeader |
1307 | 1309 | */ |
1308 | - @Transactional | |
1310 | + @Transactional(rollbackFor = Exception.class) | |
1309 | 1311 | public void completeEmptyIn(TaskHeader taskHeader) { |
1310 | 1312 | |
1311 | 1313 | //完成任务,修改主单和明细状态 |
... | ... | @@ -1343,7 +1345,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
1343 | 1345 | inventoryHeader.setCompanyCode(taskHeader.getCompanyCode()); |
1344 | 1346 | inventoryHeader.setMaterialSkuQty("0"); |
1345 | 1347 | inventoryHeader.setTotalWeight("0"); |
1346 | - inventoryHeader.setTotalQty(0); | |
1348 | + inventoryHeader.setTotalQty(new BigDecimal(0)); | |
1347 | 1349 | inventoryHeader.setTotalLines(0); |
1348 | 1350 | inventoryHeader.setProjectNos(""); |
1349 | 1351 | inventoryHeader.setBatchs(""); |
... | ... | @@ -1365,8 +1367,8 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
1365 | 1367 | * |
1366 | 1368 | * @param taskHeader |
1367 | 1369 | */ |
1368 | - @Transactional | |
1369 | 1370 | @Override |
1371 | + @Transactional(rollbackFor = Exception.class) | |
1370 | 1372 | public AjaxResult completeEmptyOut(TaskHeader taskHeader) { |
1371 | 1373 | |
1372 | 1374 | taskHeader.setStatus(QuantityConstant.TASK_STATUS_COMPLETED); |
... | ... | @@ -1412,7 +1414,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
1412 | 1414 | * @return |
1413 | 1415 | */ |
1414 | 1416 | @Override |
1415 | - @Transactional | |
1417 | + @Transactional(rollbackFor = Exception.class) | |
1416 | 1418 | public AjaxResult createReceiptTask(List<Integer> ids) { |
1417 | 1419 | for (Integer id : ids) { |
1418 | 1420 | ReceiptContainerHeader receiptContainerHeader = receiptContainerHeaderService.getById(id); |
... | ... | @@ -1557,7 +1559,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
1557 | 1559 | BigDecimal orignalQty = inventoryDetail.getQty(); |
1558 | 1560 | //减扣库存单 |
1559 | 1561 | InventoryHeader inventoryHeader = inventoryHeaderService.getById(inventoryDetail.getInventoryHeaderId()); |
1560 | - inventoryHeader.setTotalQty(inventoryDetail.getQty().subtract(taskDetail.getQty()).intValue()); | |
1562 | + inventoryHeader.setTotalQty(inventoryDetail.getQty().subtract(taskDetail.getQty())); | |
1561 | 1563 | //扣减库存明细 |
1562 | 1564 | inventoryDetail.setTaskQty(inventoryDetail.getTaskQty().subtract(taskDetail.getQty())); |
1563 | 1565 | inventoryDetail.setQty(inventoryDetail.getQty().subtract(taskDetail.getQty())); |
... | ... | @@ -1606,9 +1608,9 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
1606 | 1608 | // shipmentHeaderService.updateShipmentStatus(shipmentHeader.getId()); |
1607 | 1609 | } |
1608 | 1610 | /* 物料预警*/ |
1609 | - configWarningService.materialWarning(taskDetail.getMaterialCode(), taskDetail.getMaterialName()); | |
1610 | - /* 空库位剩余数量预警*/ | |
1611 | - configWarningService.emptyLocationWarning(); | |
1611 | +// configWarningService.materialWarning(taskDetail.getMaterialCode(), taskDetail.getMaterialName()); | |
1612 | +// /* 空库位剩余数量预警*/ | |
1613 | +// configWarningService.emptyLocationWarning(); | |
1612 | 1614 | } |
1613 | 1615 | //设置主任务为已执行 |
1614 | 1616 | task.setStatus(QuantityConstant.TASK_STATUS_COMPLETED); |
... | ... | @@ -1637,7 +1639,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
1637 | 1639 | throw new ServiceException("系统无此容器"); |
1638 | 1640 | } |
1639 | 1641 | if (task.getTaskType().equals(QuantityConstant.TASK_TYPE_WHOLESHIPMENT)) { |
1640 | - if (ctn.getContainerType().equals("LS")) { | |
1642 | + if ("LS".equals(ctn.getContainerType())) { | |
1641 | 1643 | Boolean flag = containerService.removeById(ctn.getId()); |
1642 | 1644 | if (flag == false) { |
1643 | 1645 | throw new ServiceException("删除临时容器失败"); |
... | ... | @@ -1710,10 +1712,10 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
1710 | 1712 | Map<String, Integer> status = shipmentDetailService.selectStatus(shipmentHeader.getId()); |
1711 | 1713 | Integer maxStatus = status.get("maxStatus"); |
1712 | 1714 | Integer minStatus = status.get("minStatus"); |
1713 | - if (maxStatus == QuantityConstant.SHIPMENT_HEADER_COMPLETED) { | |
1715 | + if (maxStatus.equals(QuantityConstant.SHIPMENT_HEADER_COMPLETED)) { | |
1714 | 1716 | shipmentHeader.setFirstStatus(QuantityConstant.SHIPMENT_HEADER_COMPLETED); |
1715 | 1717 | } |
1716 | - if (minStatus == QuantityConstant.SHIPMENT_HEADER_COMPLETED) { | |
1718 | + if (minStatus.equals(QuantityConstant.SHIPMENT_HEADER_COMPLETED)) { | |
1717 | 1719 | shipmentHeader.setLastStatus(QuantityConstant.SHIPMENT_HEADER_COMPLETED); |
1718 | 1720 | } |
1719 | 1721 | shipmentHeader.setLastUpdatedBy(ShiroUtils.getLoginName()); |
... | ... | @@ -1727,6 +1729,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
1727 | 1729 | * 自动空托出库 |
1728 | 1730 | * */ |
1729 | 1731 | @Override |
1732 | + @Transactional(rollbackFor = Exception.class) | |
1730 | 1733 | public AjaxResult createAutoEmptyOut(String warehouseCode){ |
1731 | 1734 | /*先查询容器表,选中空托盘,再查询库存核实*/ |
1732 | 1735 | //该容器中有库位信息,并且状态是空 |
... | ... | @@ -1751,20 +1754,19 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
1751 | 1754 | } |
1752 | 1755 | |
1753 | 1756 | /** |
1754 | - * 自动分配库位 | |
1757 | + * 任务自动分配库位 | |
1755 | 1758 | * |
1756 | 1759 | * */ |
1757 | 1760 | @Override |
1758 | 1761 | @Transactional(rollbackFor = Exception.class) |
1759 | - public synchronized AjaxResult<String> getLocationCode(Integer taskId,String warehouseCode,String weight){ | |
1760 | - | |
1762 | + public String getLocationCode(Integer taskId,String warehouseCode,String weight){ | |
1761 | 1763 | |
1762 | 1764 | TaskHeader task = this.getById(taskId); |
1763 | 1765 | if (task == null) { |
1764 | 1766 | throw new ServiceException("找不到id为"+ taskId +"的任务"); |
1765 | 1767 | } |
1766 | 1768 | if (StringUtils.isNotEmpty(task.getToLocation())) { |
1767 | - return AjaxResult.error("任务已经有目的库位"); | |
1769 | + throw new ServiceException("任务已经有目的库位"); | |
1768 | 1770 | } |
1769 | 1771 | if(!warehouseCode.equals(task.getWarehouseCode())){ |
1770 | 1772 | throw new ServiceException("仓库错误!"); |
... | ... | @@ -1849,7 +1851,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
1849 | 1851 | //task.setFromLocation(location.getCode()); |
1850 | 1852 | //LambdaQueryWrapper<TaskHeader> taskHeaderLambdaQueryWrapper = Wrappers.lambdaQuery(task); |
1851 | 1853 | this.saveOrUpdate(task); |
1852 | - return AjaxResult.success("分配库位成功", location.getCode()); | |
1854 | + return location.getCode(); | |
1853 | 1855 | } |
1854 | 1856 | |
1855 | 1857 | |
... | ... | @@ -1877,7 +1879,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
1877 | 1879 | // location.setZoneCode(taskHeader.getz()); |
1878 | 1880 | location.setStatus("empty"); |
1879 | 1881 | location.setDeleted(false); |
1880 | - if(taskHeader.getContainerCode().substring(0,1).equals("M")){ | |
1882 | + if("M".equals(taskHeader.getContainerCode().substring(0,1))){ | |
1881 | 1883 | if (high.intValue() == 1) { |
1882 | 1884 | location.setILayer(5); |
1883 | 1885 | } |
... | ... |
src/main/resources/mybatis/config/ContainerMapper.xml
... | ... | @@ -35,17 +35,15 @@ |
35 | 35 | </sql> |
36 | 36 | |
37 | 37 | <select id="getEmptyContainerInLocation" resultType="com.huaheng.pc.config.location.domain.Location"> |
38 | - SELECT t.id, t.code, t.warehouseCode, t.zoneCode, t.locationType, t.containerCode, t.iRow, t.iColumn, t.iLayer, | |
39 | - t.iGrid, t.roadway, t.status, t.`name`, t.lastCycleCountDate, t.created, t.createdBy, t.lastUpdated, t.lastUpdatedBy, | |
40 | - t.version, t.userDef1, t.userDef2, t.userDef3, t.userDef4, t.userDef5, t.userDef6, t.userDef7, t.userDef8, | |
41 | - t.systemCreated | |
38 | + SELECT * | |
42 | 39 | FROM location t |
43 | 40 | <where> |
44 | - t.locationType = 'LK' | |
41 | + t.locationType = 'L' | |
45 | 42 | AND t.warehouseCode = #{warehouseCode} |
46 | 43 | AND t.status='empty' |
47 | 44 | AND t.containerCode !='' |
48 | 45 | AND t.containerCode is not NULL |
46 | + AND t.containerCode NOT in (SELECT h.containerCode from task_header h WHERE status < 100 AND warehouseCode=#{warehouseCode}) | |
49 | 47 | AND t.`code` NOT in (SELECT b.locationCode FROM inventory_detail b WHERE b.warehouseCode = #{warehouseCode} ) |
50 | 48 | <if test="containerCode != null and containerCode !=''"> |
51 | 49 | and t.containerCode = #{containerCode} |
... | ... |
src/main/resources/mybatis/config/LocationMapper.xml
... | ... | @@ -97,10 +97,7 @@ |
97 | 97 | </select> |
98 | 98 | |
99 | 99 | <select id="pickLocation" resultType="com.huaheng.pc.config.location.domain.Location"> |
100 | - select id, code, warehouseCode, zoneCode, locationType, containerCode, iRow, iColumn, iLayer, | |
101 | - iGrid, roadway, status, `name`, lastCycleCountDate, created, createdBy, lastUpdated, lastUpdatedBy, | |
102 | - version, userDef1, userDef2, userDef3, userDef4, userDef5, userDef6, userDef7, userDef8, | |
103 | - systemCreated from location | |
100 | + select * from location | |
104 | 101 | where containerCode != '' and status = 'empty' |
105 | 102 | </select> |
106 | 103 | |
... | ... |
src/main/resources/mybatis/shipment/ShipmentHeaderMapper.xml
... | ... | @@ -75,4 +75,8 @@ |
75 | 75 | inner join task_detail t on t.billCode=s.code and |
76 | 76 | t.status>700 and DATEDIFF(NOW(), t.lastUpdated)=0 GROUP BY s.code |
77 | 77 | </select> |
78 | + | |
79 | + <select id="getLatestShipment" resultType="com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader"> | |
80 | + select * from shipment_header order by id desc limit 10 | |
81 | + </select> | |
78 | 82 | </mapper> |
79 | 83 | \ No newline at end of file |
... | ... |
src/main/resources/templates/config/waveMaster/add.html
... | ... | @@ -65,30 +65,30 @@ |
65 | 65 | <input id="shipmentGroupSize" name="shipmentGroupSize" class="form-control" type="text"> |
66 | 66 | </div> |
67 | 67 | </div> |
68 | - <div class="form-group"> | |
69 | - <label class="col-sm-3 control-label">是否补货:</label> | |
70 | - <div class="col-sm-8"> | |
71 | - <div class="onoffswitch"> | |
72 | - <input type="checkbox" th:checked="true" class="onoffswitch-checkbox" id="needReplenishment" name="needReplenishment"> | |
73 | - <label class="onoffswitch-label" for="needReplenishment"> | |
74 | - <span class="onoffswitch-inner"></span> | |
75 | - <span class="onoffswitch-switch"></span> | |
76 | - </label> | |
77 | - </div> | |
78 | - </div> | |
79 | - </div> | |
80 | - <div class="form-group"> | |
81 | - <label class="col-sm-3 control-label">取消波次时保留补货任务:</label> | |
82 | - <div class="col-sm-8"> | |
83 | - <div class="onoffswitch"> | |
84 | - <input type="checkbox" th:checked="true" class="onoffswitch-checkbox" id="holdRplnTask" name="holdRplnTask"> | |
85 | - <label class="onoffswitch-label" for="holdRplnTask"> | |
86 | - <span class="onoffswitch-inner"></span> | |
87 | - <span class="onoffswitch-switch"></span> | |
88 | - </label> | |
89 | - </div> | |
90 | - </div> | |
91 | - </div> | |
68 | + <!--<div class="form-group">--> | |
69 | + <!--<label class="col-sm-3 control-label">是否补货:</label>--> | |
70 | + <!--<div class="col-sm-8">--> | |
71 | + <!--<div class="onoffswitch">--> | |
72 | + <!--<input type="checkbox" th:checked="true" class="onoffswitch-checkbox" id="needReplenishment" name="needReplenishment">--> | |
73 | + <!--<label class="onoffswitch-label" for="needReplenishment">--> | |
74 | + <!--<span class="onoffswitch-inner"></span>--> | |
75 | + <!--<span class="onoffswitch-switch"></span>--> | |
76 | + <!--</label>--> | |
77 | + <!--</div>--> | |
78 | + <!--</div>--> | |
79 | + <!--</div>--> | |
80 | + <!--<div class="form-group">--> | |
81 | + <!--<label class="col-sm-3 control-label">取消波次时保留补货任务:</label>--> | |
82 | + <!--<div class="col-sm-8">--> | |
83 | + <!--<div class="onoffswitch">--> | |
84 | + <!--<input type="checkbox" th:checked="true" class="onoffswitch-checkbox" id="holdRplnTask" name="holdRplnTask">--> | |
85 | + <!--<label class="onoffswitch-label" for="holdRplnTask">--> | |
86 | + <!--<span class="onoffswitch-inner"></span>--> | |
87 | + <!--<span class="onoffswitch-switch"></span>--> | |
88 | + <!--</label>--> | |
89 | + <!--</div>--> | |
90 | + <!--</div>--> | |
91 | + <!--</div>--> | |
92 | 92 | <!--<div class="form-group"> |
93 | 93 | <label class="col-sm-3 control-label">数据版本:</label> |
94 | 94 | <div class="col-sm-8"> |
... | ... | @@ -211,12 +211,12 @@ |
211 | 211 | shipmentGroupSize: { |
212 | 212 | required: true, |
213 | 213 | }, |
214 | - holdRplnTask: { | |
215 | - required: true, | |
216 | - }, | |
217 | - needReplenishment: { | |
218 | - required: true, | |
219 | - } | |
214 | + // holdRplnTask: { | |
215 | + // required: true, | |
216 | + // }, | |
217 | + // needReplenishment: { | |
218 | + // required: true, | |
219 | + // } | |
220 | 220 | }, |
221 | 221 | submitHandler: function(form) { |
222 | 222 | var tableValue = $.common.getTableValue("#form-waveMaster-add"); |
... | ... |
src/main/resources/templates/inventory/cycleCountDetail/cycleCountDetail.html
... | ... | @@ -322,7 +322,7 @@ |
322 | 322 | align: 'center', |
323 | 323 | formatter: function (value, row, index) { |
324 | 324 | var actions = []; |
325 | - if(row.enableStatus >= 10 && row.enableStatus < 100){ | |
325 | + if(row.enableStatus >= 1 && row.enableStatus < 110){ | |
326 | 326 | actions.push('<a class="btn btn-success btn-xs ' + confirmFlag + '" href="#" onclick="confirmGapQty(\'' + row.id + '\')"><i class="fa fa-comment"></i>实盘登记</a> '); |
327 | 327 | } |
328 | 328 | if(row.enableStatus === 1 ){ |
... | ... |
src/main/resources/templates/inventory/inventoryDetail/inventoryDetail.html
... | ... | @@ -102,6 +102,7 @@ |
102 | 102 | var prefix = ctx + "inventory/inventoryDetail"; |
103 | 103 | var inventoryStatus = [[${@dict.getType('inventorySts')}]]; |
104 | 104 | var inventoryLock = [[${@dict.getType('inventoryLock')}]]; |
105 | + var company =[[${@companyService.getCode()}]]; | |
105 | 106 | $(function () { |
106 | 107 | update(); |
107 | 108 | }); |
... | ... | @@ -180,7 +181,18 @@ |
180 | 181 | }, |
181 | 182 | { |
182 | 183 | field: 'companyCode', |
183 | - title: '货主编码' | |
184 | + title: '货主', | |
185 | + align: 'center', | |
186 | + formatter: function(value, row, index) { | |
187 | + var actions = []; | |
188 | + $.each(company, function(index, dict) { | |
189 | + if (dict.code == value) { | |
190 | + actions.push("<span class='badge badge-info'>" + dict.name + "</span>"); | |
191 | + return false; | |
192 | + } | |
193 | + }); | |
194 | + return actions.join(''); | |
195 | + } | |
184 | 196 | }, |
185 | 197 | { |
186 | 198 | field: 'receiptCode', |
... | ... |
src/main/resources/templates/monitor/locationstatus/locationstatus.html
... | ... | @@ -51,7 +51,7 @@ |
51 | 51 | <ul id="select_info"> |
52 | 52 | <li> |
53 | 53 | <select id="locationType" name="locationType" style="width: 100px"> |
54 | - <option value="LK" selected>立库库位</option> | |
54 | + <option value="L" selected>立库库位</option> | |
55 | 55 | <option value="Q">钱柜库位</option> |
56 | 56 | <option value="DM">地面库位</option> |
57 | 57 | </select> |
... | ... |
src/main/resources/templates/receipt/receiptDetail/add.html
... | ... | @@ -25,6 +25,12 @@ |
25 | 25 | </div> |
26 | 26 | </div> |
27 | 27 | <div class="form-group"> |
28 | + <label class="col-sm-3 control-label">总数量:</label> | |
29 | + <div class="col-sm-8"> | |
30 | + <input id="totalQty" name="totalQty" class="form-control" type="text"> | |
31 | + </div> | |
32 | + </div> | |
33 | + <div class="form-group"> | |
28 | 34 | <label class="col-sm-3 control-label">供应商编码:</label> |
29 | 35 | <div class="col-sm-8"> |
30 | 36 | <input id="supplierCode" name="supplierCode" class="form-control" type="text"> |
... | ... | @@ -79,12 +85,6 @@ |
79 | 85 | </div> |
80 | 86 | </div> |
81 | 87 | <div class="form-group"> |
82 | - <label class="col-sm-3 control-label">总数量:</label> | |
83 | - <div class="col-sm-8"> | |
84 | - <input id="totalQty" name="totalQty" class="form-control" type="text"> | |
85 | - </div> | |
86 | - </div> | |
87 | - <div class="form-group"> | |
88 | 88 | <label class="col-sm-3 control-label">定位规则:</label> |
89 | 89 | <div class="col-sm-8"> |
90 | 90 | <select id="locatingRule" name="locatingRule" class="form-control" th:with="list=${@FilterConfigDetailService.queryFilterConfigDetail('locationRule')}"> |
... | ... |
src/main/resources/templates/receipt/receiptHeader/add.html
... | ... | @@ -22,6 +22,12 @@ |
22 | 22 | </div> |
23 | 23 | </div> |
24 | 24 | <div class="form-group"> |
25 | + <label class="col-sm-3 control-label">供应商:</label> | |
26 | + <div class="col-sm-8"> | |
27 | + <input id="supplierCode" name="supplierCode" class="form-control" type="text"> | |
28 | + </div> | |
29 | + </div> | |
30 | + <div class="form-group"> | |
25 | 31 | <label class="col-sm-3 control-label">入库单备注:</label> |
26 | 32 | <div class="col-sm-8"> |
27 | 33 | <input id="receiptNote" name="receiptNote" class="form-control" type="text"> |
... | ... | @@ -62,6 +68,7 @@ |
62 | 68 | data : { |
63 | 69 | "receiptType": $("#receiptType option:selected").val(), |
64 | 70 | "companyCode": $("#companyCode option:selected").val(), |
71 | + "supplierCode": $("input[name='supplierCode']").val(), | |
65 | 72 | "receiptNote": $("input[name='receiptNote']").val(), |
66 | 73 | "scheduledArriveDate": $("input[name='scheduledArriveDate']").val(), |
67 | 74 | }, |
... | ... |
src/main/resources/templates/receipt/receiptHeader/receiptHeader.html
... | ... | @@ -103,7 +103,7 @@ |
103 | 103 | <form id = "receiptDetail" > |
104 | 104 | <ul id="tabHead" class="nav nav-tabs"> |
105 | 105 | <li class="active"><a href="#tabBase" data-toggle="tab">基础数据</a></li> |
106 | - <li role="presentation" ><a href="#tabCustomer" data-toggle="tab">客户信息</a></li> | |
106 | + <li role="presentation" ><a href="#tabSupplierCode" data-toggle="tab">供应商信息</a></li> | |
107 | 107 | <li><a href="#tabExcute" data-toggle="tab">执行信息</a></li> |
108 | 108 | <li><a href="#tabOther" data-toggle="tab">其他信息</a></li> |
109 | 109 | <li><a href="#tabSystem" data-toggle="tab">系统信息</a></li> |
... | ... | @@ -205,6 +205,8 @@ |
205 | 205 | var receiptTypes = [[${@receiptTypeService.getType()}]]; |
206 | 206 | var receiptHeaderStatus = [[${@dict.getType('receiptHeaderStatus')}]]; |
207 | 207 | var uploadStatus = [[${@dict.getType('uploadStatus')}]]; |
208 | + var company =[[${@companyService.getCode()}]]; | |
209 | + var supplier =[[${@SupplierService.getCode()}]]; | |
208 | 210 | var detailCreateUrl = detailPrefix+"/add"; |
209 | 211 | var detailUpdateUrl = detailPrefix + "/edit/{id}"; |
210 | 212 | var detailRemoveUrl = detailPrefix+"/remove"; |
... | ... | @@ -236,23 +238,33 @@ |
236 | 238 | title : '创建用户', |
237 | 239 | sortable:true |
238 | 240 | }, |
239 | - { | |
240 | - field : 'referCode', | |
241 | - title : '关联单号', | |
242 | - sortable:true | |
243 | - }, | |
244 | - { | |
245 | - field : 'referType', | |
246 | - title : '关联订单类型' | |
247 | - }, | |
241 | + // { | |
242 | + // field : 'referType', | |
243 | + // title : '关联订单类型' | |
244 | + // }, | |
248 | 245 | { |
249 | 246 | field : 'code', |
250 | 247 | title : '入库单号', |
251 | 248 | }, |
252 | 249 | { |
253 | - field : 'companyCode', | |
254 | - title : '货主编码', | |
255 | - visible: [[${@table.getVisible('p')}]] | |
250 | + field: 'companyCode', | |
251 | + title: '货主', | |
252 | + align: 'center', | |
253 | + formatter: function(value, row, index) { | |
254 | + var actions = []; | |
255 | + $.each(company, function(index, dict) { | |
256 | + if (dict.code == value) { | |
257 | + actions.push("<span class='badge badge-info'>" + dict.name + "</span>"); | |
258 | + return false; | |
259 | + } | |
260 | + }); | |
261 | + return actions.join(''); | |
262 | + } | |
263 | + }, | |
264 | + { | |
265 | + field : 'referCode', | |
266 | + title : '上游单号', | |
267 | + sortable:true | |
256 | 268 | }, |
257 | 269 | { |
258 | 270 | field : 'warehouseCode', |
... | ... | @@ -275,6 +287,21 @@ |
275 | 287 | } |
276 | 288 | }, |
277 | 289 | { |
290 | + field : 'supplierCode', | |
291 | + title : '供应商', | |
292 | + align: 'center', | |
293 | + formatter: function(value, row, index) { | |
294 | + var actions = []; | |
295 | + $.each(supplier, function(index, dict) { | |
296 | + if (dict.code == value) { | |
297 | + actions.push("<span class='badge badge-info'>" + dict.name + "</span>"); | |
298 | + return false; | |
299 | + } | |
300 | + }); | |
301 | + return actions.join(''); | |
302 | + } | |
303 | + }, | |
304 | + { | |
278 | 305 | field : 'scheduledArriveDate', |
279 | 306 | title : '预计到达日期', |
280 | 307 | sortable:true, |
... | ... |
src/main/resources/templates/receipt/receiving/add.html
... | ... | @@ -7,7 +7,7 @@ |
7 | 7 | <form class="form-horizontal m" id="form-receiving-add"> |
8 | 8 | <input id="receiptId" name="receiptId" type="hidden" readonly="readonly"> |
9 | 9 | <input id="receiptDetailId" name="receiptDetailId" type="hidden" readonly="readonly"> |
10 | - <div class="form-group"> | |
10 | + <div class="form-group"> | |
11 | 11 | <label class="col-sm-3 control-label">收货单编码:</label> |
12 | 12 | <div class="col-sm-8"> |
13 | 13 | <input id="receiptCode" name="receiptCode" class="form-control" type="text" readonly="readonly"> |
... | ... | @@ -31,7 +31,7 @@ |
31 | 31 | <input id="inventorySts" name="inventorySts" class="form-control" type="text" readonly="readonly"> |
32 | 32 | </div> |
33 | 33 | </div> |
34 | - <div class="form-group"> | |
34 | + <div class="form-group"> | |
35 | 35 | <label class="col-sm-3 control-label">单据数量:</label> |
36 | 36 | <div class="col-sm-8"> |
37 | 37 | <input id="totalQty" name="totalQty" class="form-control" type="text" readonly="readonly"> |
... | ... |
src/main/resources/templates/shipment/shipmentHeader/shipmentHeader.html
... | ... | @@ -248,7 +248,13 @@ |
248 | 248 | }, |
249 | 249 | { |
250 | 250 | field: 'id', |
251 | - title: '出库单id' | |
251 | + title: '出库单id', | |
252 | + sortable:true | |
253 | + }, | |
254 | + { | |
255 | + field: 'createdBy', | |
256 | + title: '创建用户', | |
257 | + sortable:true | |
252 | 258 | }, |
253 | 259 | { |
254 | 260 | field: 'code', |
... | ... | @@ -259,6 +265,7 @@ |
259 | 265 | field: 'companyCode', |
260 | 266 | title: '货主', |
261 | 267 | align: 'center', |
268 | + sortable:true, | |
262 | 269 | formatter: function(value, row, index) { |
263 | 270 | var actions = []; |
264 | 271 | $.each(company, function(index, dict) { |
... | ... | @@ -283,8 +290,9 @@ |
283 | 290 | }, |
284 | 291 | { |
285 | 292 | field: 'shipmentType', |
286 | - title: '类型', | |
293 | + title: '出库类型', | |
287 | 294 | align: 'center', |
295 | + sortable:true, | |
288 | 296 | formatter: function(value, row, index) { |
289 | 297 | var actions = []; |
290 | 298 | $.each(shipmentTypes, function(index, dict) { |
... | ... | @@ -313,11 +321,13 @@ |
313 | 321 | }, |
314 | 322 | { |
315 | 323 | field: 'priority', |
316 | - title: '优先级' | |
324 | + title: '优先级', | |
325 | + visible:false | |
317 | 326 | }, |
318 | 327 | { |
319 | 328 | field: 'route', |
320 | 329 | title: '路线', |
330 | + visible:false, | |
321 | 331 | sortable:true |
322 | 332 | }, |
323 | 333 | { |
... | ... | @@ -354,10 +364,6 @@ |
354 | 364 | sortable: true |
355 | 365 | }, |
356 | 366 | { |
357 | - field: 'createdBy', | |
358 | - title: '创建用户' | |
359 | - }, | |
360 | - { | |
361 | 367 | field: 'lastUpdated', |
362 | 368 | title: '最后修改时间', |
363 | 369 | visible:false |
... | ... |
src/main/resources/templates/task/task/task.html
... | ... | @@ -152,6 +152,28 @@ |
152 | 152 | checkbox: true |
153 | 153 | }, |
154 | 154 | { |
155 | + title: '操作', | |
156 | + align: 'center', | |
157 | + formatter: function(value, row, index) { | |
158 | + var actions = []; | |
159 | + // actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> '); | |
160 | + actions.push('<a class="btn btn-info btn-xs " href="#" onclick="detail(\'' + row.id + '\')"><i class="fa fa-list-ul"></i>明细</a> '); | |
161 | + if (row.lastStatus < 10) { | |
162 | + if(row.zoneCode != "AGV"){ | |
163 | + actions.push('<a class="btn btn-success btn-xs ' + executeFlag + '" href="#" onclick="execute(\'' + row.id + '\')"><i class="fa fa-send" style="padding-right: 1px;"></i>执行</a> '); | |
164 | + } | |
165 | + actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>取消</a> '); | |
166 | + if(row.zoneCode != "AGV"){ | |
167 | + actions.push('<a class="btn btn-primary btn-xs ' + completeFlag + '" href="#" onclick="complete(\'' + row.id + '\')"><i class="fa fa-check"></i>完成</a>'); | |
168 | + } | |
169 | + } | |
170 | + if(row.lastStatus < 10 && row.zoneCode == "AGV"){ | |
171 | + actions.push('<a style="background-color: #f59e00;border: #f59e00" class="btn btn-primary btn-xs ' + agvFlag + '" href="#" onclick="complete(\'' + row.id + '\')"><i class="fa fa-check"></i>AGV完成</a>'); | |
172 | + } | |
173 | + return actions.join(''); | |
174 | + } | |
175 | + }, | |
176 | + { | |
155 | 177 | field : 'id', |
156 | 178 | title : '任务id' , |
157 | 179 | sortable: true |
... | ... | @@ -271,29 +293,7 @@ |
271 | 293 | field : 'userDef3', |
272 | 294 | title : '自定义字段3' , |
273 | 295 | visible:false |
274 | - }, | |
275 | - { | |
276 | - title: '操作', | |
277 | - align: 'center', | |
278 | - formatter: function(value, row, index) { | |
279 | - var actions = []; | |
280 | - // actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> '); | |
281 | - actions.push('<a class="btn btn-info btn-xs " href="#" onclick="detail(\'' + row.id + '\')"><i class="fa fa-list-ul"></i>明细</a> '); | |
282 | - if (row.lastStatus < 10) { | |
283 | - if(row.zoneCode != "AGV"){ | |
284 | - actions.push('<a class="btn btn-success btn-xs ' + executeFlag + '" href="#" onclick="execute(\'' + row.id + '\')"><i class="fa fa-send" style="padding-right: 1px;"></i>执行</a> '); | |
285 | - } | |
286 | - actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>取消</a> '); | |
287 | - if(row.zoneCode != "AGV"){ | |
288 | - actions.push('<a class="btn btn-primary btn-xs ' + completeFlag + '" href="#" onclick="complete(\'' + row.id + '\')"><i class="fa fa-check"></i>完成</a>'); | |
289 | - } | |
290 | - } | |
291 | - if(row.lastStatus < 10 && row.zoneCode == "AGV"){ | |
292 | - actions.push('<a style="background-color: #f59e00;border: #f59e00" class="btn btn-primary btn-xs ' + agvFlag + '" href="#" onclick="complete(\'' + row.id + '\')"><i class="fa fa-check"></i>AGV完成</a>'); | |
293 | - } | |
294 | - return actions.join(''); | |
295 | - } | |
296 | - } | |
296 | + } | |
297 | 297 | ] |
298 | 298 | }; |
299 | 299 | $.table.init(options); |
... | ... |
src/main/resources/templates/task/taskHeader/taskHeader.html
... | ... | @@ -155,7 +155,24 @@ |
155 | 155 | checkbox: true |
156 | 156 | }, |
157 | 157 | { |
158 | - field : 'id', | |
158 | + title: '操作', | |
159 | + align: 'center', | |
160 | + formatter: function(value, row, index) { | |
161 | + var actions = []; | |
162 | + actions.push('<a class="btn btn-info btn-xs " href="#" onclick="detail(\'' + row.id + '\')"><i class="fa fa-list-ul"></i>明细</a> '); | |
163 | + if (row.status < 10) { | |
164 | + actions.push('<a class="btn btn-success btn-xs ' + executeFlag + '" href="#" onclick="execute(\'' + row.id + '\')"><i class="fa fa-send" style="padding-right: 1px;"></i>执行</a> '); | |
165 | + actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>取消</a> '); | |
166 | + actions.push('<a class="btn btn-primary btn-xs ' + completeFlag + '" href="#" onclick="complete(\'' + row.id + '\')"><i class="fa fa-check"></i>完成</a>'); | |
167 | + } | |
168 | + if (row.status >= 10 && row.status < 100) { | |
169 | + actions.push('<a class="btn btn-primary btn-xs ' + completeFlag + '" href="#" onclick="complete(\'' + row.id + '\')"><i class="fa fa-check"></i>完成</a>'); | |
170 | + } | |
171 | + return actions.join(''); | |
172 | + } | |
173 | + }, | |
174 | + { | |
175 | + field : 'id', | |
159 | 176 | title : '任务id' , |
160 | 177 | sortable: true |
161 | 178 | }, |
... | ... | @@ -241,24 +258,7 @@ |
241 | 258 | field : 'userDef3', |
242 | 259 | title : '自定义字段3' , |
243 | 260 | visible:false |
244 | - }, | |
245 | - { | |
246 | - title: '操作', | |
247 | - align: 'center', | |
248 | - formatter: function(value, row, index) { | |
249 | - var actions = []; | |
250 | - actions.push('<a class="btn btn-info btn-xs " href="#" onclick="detail(\'' + row.id + '\')"><i class="fa fa-list-ul"></i>明细</a> '); | |
251 | - if (row.status < 10) { | |
252 | - actions.push('<a class="btn btn-success btn-xs ' + executeFlag + '" href="#" onclick="execute(\'' + row.id + '\')"><i class="fa fa-send" style="padding-right: 1px;"></i>执行</a> '); | |
253 | - actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>取消</a> '); | |
254 | - actions.push('<a class="btn btn-primary btn-xs ' + completeFlag + '" href="#" onclick="complete(\'' + row.id + '\')"><i class="fa fa-check"></i>完成</a>'); | |
255 | - } | |
256 | - if (row.status >= 10 && row.status < 100) { | |
257 | - actions.push('<a class="btn btn-primary btn-xs ' + completeFlag + '" href="#" onclick="complete(\'' + row.id + '\')"><i class="fa fa-check"></i>完成</a>'); | |
258 | - } | |
259 | - return actions.join(''); | |
260 | - } | |
261 | - } | |
261 | + } | |
262 | 262 | ] |
263 | 263 | }; |
264 | 264 | $.table.init(options); |
... | ... | @@ -453,7 +453,7 @@ |
453 | 453 | $.modal.confirm("确认要执行选中的" + rows.length + "条数据吗?", function() { |
454 | 454 | var url = ctx + 'task/taskHeader/execute'; |
455 | 455 | var ids = ""; |
456 | - for(var i=rows.length-1; i < 0; i--) { | |
456 | + for(var i=rows.length-1; i >= 0; i--) { | |
457 | 457 | ids = ids + rows[i].id + "," |
458 | 458 | } |
459 | 459 | var data = { "taskId": ids.substring(0, ids.length-1) }; |
... | ... |