Commit 6d43f89e6ed46e92e901220bdaf49078ab14046a

Authored by lector
1 parent 989a35a2

白皮书内容更新

src/main/java/com/huaheng/HuaHengApplication.java
... ... @@ -10,7 +10,7 @@ import org.springframework.context.annotation.Bean;
10 10  
11 11 /**
12 12 * 启动程序
13   - *
  13 + *
14 14 * @author huaheng
15 15 */
16 16 @MapperScan({"com.huaheng.pc.**.**.mapper"})
... ... @@ -31,20 +31,41 @@ public class HuaHengApplication
31 31 SpringApplication.run(HuaHengApplication.class, args);
32 32 System.out.println("*************** 华恒WMS启动成功JAR ***************\n" +
33 33 " >>> WMS启动成功JAR! <<< \n"+
34   - "   へ     /|▓\n"+
35   - "   /\7   ∠_/\n"+
36   - "  / │   / /\n"+
37   - "  │ Z _,< /  〈ヽ\n"+
38   - "  │ `   ヽ   / 〉\n"+
39   - "   Y     `/  / 〉\n"+
40   - "  ( ●  ヽ  ● /. 〈 /\n"+
41   - "  () (  | \ 〈 \\n"+
42   - "   >_ ' _ . '│ //\n"+
43   - "  /へ   / )<| \\\n"+
44   - "  ヽ_)  (_/  │//\n"+
45   - "   7       | /\n"+
46   - " >―r` ̄ ̄` `―_' \n"
  34 + " ▀▄▄ ▀▄▄\n" +
  35 + " ▄▄▄▄▄▄▓▌ ▐██▄ ▓█▄ ▀▄\n" +
  36 + " ░▓▓███████▀ ▄████▌▐██▌ ▐▓\n" +
  37 + " ▄▄▄▄▄▄ ▄ █▀██████▓░▄▓█████▄███▓ ░█▌▄▄▄ ▄ ▄▄▄▄▄▄\n" +
  38 + " █ ▐▌▐▌▐██████▌▐████████████▌ █▌ ▐▌ █\n" +
  39 + " █ ▓ ▓███████▄████████████▌▐██ ▓ █\n" +
  40 + " █ ▄ ▐▌ ▐▓███████████████████▄███ ▐▌ ▄ █\n" +
  41 + " █ ▐▌▐█ ▀▀▀▀▀▓▓█████████▀▀▀ ▓▓░ █▌▐▌ █\n" +
  42 + " █ █░▓▌ ▄▓▄ █████░ ░█▌ ▐▓░█ █\n" +
  43 + " ▌▄ ▐▌ ▐█ ▀ ▓▓▄▄▄▄▓▓ █▄▄██████▌ ▀ █▌ ▐▌ ▄▐\n" +
  44 + " ▐▌ ▓▄ ▀▓▄ ███████ ███████▓▓ ▄▓▀ ▄▓ ▐▌\n" +
  45 + " ▌▀▄ ▀▀▄▄░▀▄ ▀▀▓▓███▌ ▐█░▄▄▄▄ ▀▀ ▄▀░▄▄▀▀ ▄▀▐\n" +
  46 + " ▄ █ ▀▀▄▄ ▀▀▄▀▄ ███▀▀▀▀▀▀ ▓███░ ▄▀▄▀▀ ▄▄▀▀ █\n" +
  47 + " ▐▌ █ ▀▓▓▄ ▐▌▐▌ ▄▄▄ ▐███▌ ▐██▓▌▐▌▐▌ ▄▓▀ █ ▄ ▄\n" +
  48 + " ▄▀ █ ▄ ▐██▌░█▓ ▐█▓▌ ░▓██▓ ▓█░▐█▄ █ ▐▌ ▐▌\n" +
  49 + " ▄▀▄▄▀ █ ▐▌ ██▐▓▄▀ ▄▄▀▀▀██▄▄ ▀▄▓▌▐▌ ▀▄▄█░ ▄▀\n" +
  50 + " ▐▌▓█▌ ▀ ▄▄█░▐█▓▀ ▄███ ██▓▓ ▓▀ ▄▓██▀ ▄▀▄▄▀\n" +
  51 + " ▓███▓ ▄▓██▀ ██▌ ▓▓██▌ ▐████▌ ▄▀▄▄▀ ▐███▌ ▐▌▓█▌\n" +
  52 + " ▐████▌ ▐███▌ ▐▓▓ ▐████ █████ ▐▌▓█▌ ░▓███ ▓███▓\n" +
  53 + " █████ ░▓███ ░██▌ ▄▄▄▄████████ ▐████▌ ▓███▓ ▄▄███▓░ ▐████▌\n" +
  54 + " ░█████ ▄▄███▓▐██▌ ░███▓▓▀ ▀████▌ █████ ▐████▌░██████▀ ▐███████▓\n" +
  55 + " ▓▓█▌ ▐████▌▓▓███▀ ███ ▓▓███ ▄████████████▓▓██████▓▐█████▌ ▐███░█████\n" +
  56 + " ████ █████████▌ ░███ ▐████▌ ▓▓████▌ ▐████████░██████████ ▐█▓▓ ▐████▓\n" +
  57 + " ████ ▐████████ ▐███░▐████▌ ▐███████ ▓███████ ▐█████████▌ ███▌ █████▌\n" +
  58 + " ████▌▄█████████▌ ▐███▌▓▓███ ██████▓▓ ▀▀▓▓██▌ ██████████▄▄███▌ ▐████▓\n" +
  59 + " ▐███████▓▓▀▓████▄▓▓████████ █████▌ ░███▌ ▐████▓ ▀▀▀▓▓███▌ ▄█████▌\n" +
  60 + " ▐███▓▓███▄▄▄░░▀▀▀██████████▄▄▄███▓▓▀ ▐███▌ ▄█████▌ █ ▐████████▓▓▀\n" +
  61 + " ████ ▀▀▀████▄▄▄▄▄░░ ▀▀▀▀▀ ▐████████▓▓▀ █ ▐▓▓████▀▀▀\n" +
  62 + " ▀▀▀▀ ▄▀▀▀██████ ▐▓▓████▀▀▀ █\n" +
  63 + " █ ▓▓██ █\n" +
  64 + " █ █\n" +
  65 + " █ ▄▀▀█ ▄▀▀ ▓ ▄▀▀▄ ▄▀▀▄ ▄▀▄ ▄▀▀ ▄▀▄ █\n" +
  66 + " █▄▄▄ █▀▓ ▓▀ ▄ █ █ ▓ █▀▀▓ ▓ █ ▓▀ ▄ █ ▓ ▄▄▄█\n" +
  67 + " █ ▀▀▀▀ ▀▀▀ ▀▀ ▀ ▀▀▀ ▀▀▀▀ ▀▀▀\n"
47 68  
48 69 );
49 70 }
50   -}
51 71 \ No newline at end of file
  72 +}
... ...
src/main/java/com/huaheng/api/general/controller/BasicDataApi.java
1 1 package com.huaheng.api.general.controller;
2 2  
  3 +import com.huaheng.api.general.domain.ContainerTypeDomain;
  4 +import com.huaheng.api.general.domain.InventoryQueryDomain;
3 5 import com.huaheng.api.general.service.BasicDataApiService;
4 6 import com.huaheng.framework.aspectj.lang.annotation.ApiLogger;
5 7 import com.huaheng.framework.aspectj.lang.annotation.Log;
... ... @@ -7,11 +9,13 @@ import com.huaheng.framework.aspectj.lang.constant.BusinessType;
7 9 import com.huaheng.framework.web.controller.BaseController;
8 10 import com.huaheng.framework.web.domain.AjaxResult;
9 11 import com.huaheng.pc.config.containerCapacity.domain.ContainerCapacity;
  12 +import com.huaheng.pc.config.containerType.domain.ContainerType;
10 13 import com.huaheng.pc.config.customer.domain.Customer;
11 14 import com.huaheng.pc.config.material.domain.Material;
12 15 import com.huaheng.pc.config.supplier.domain.Supplier;
13 16 import com.huaheng.pc.config.warehouse.domain.Warehouse;
14 17 import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail;
  18 +import com.huaheng.pc.inventory.inventoryHeader.domain.InventoryHeader;
15 19 import com.huaheng.pc.system.dept.domain.Dept;
16 20 import com.huaheng.pc.system.dict.domain.DictData;
17 21 import com.huaheng.pc.system.user.domain.User;
... ... @@ -20,6 +24,8 @@ import io.swagger.annotations.ApiOperation;
20 24 import org.springframework.beans.factory.annotation.Autowired;
21 25 import org.springframework.web.bind.annotation.*;
22 26  
  27 +import java.util.List;
  28 +
23 29 @RestController
24 30 @RequestMapping("/api/basicData")
25 31 @Api(tags = {"基础数据接口"}, value = "基础数据接口basicData")
... ... @@ -54,6 +60,17 @@ public class BasicDataApi extends BaseController {
54 60 return ajaxResult;
55 61 }
56 62  
  63 + @Log(title = "库存查询", action = BusinessType.INSERT)
  64 + @PostMapping("/queryInventory")
  65 + @ApiOperation("库存查询公共接口")
  66 + @ResponseBody
  67 + @ApiLogger(apiName = "查询物料", from="ERP")
  68 + public AjaxResult QueryInventoryApi(@RequestBody InventoryQueryDomain inventoryQueryDomain)
  69 + {
  70 +// AjaxResult ajaxResult = basicDataApiService.queryMaterial(material);
  71 + return null;
  72 + }
  73 +
57 74 /**
58 75 * 同步字典
59 76 */
... ... @@ -151,6 +168,19 @@ public class BasicDataApi extends BaseController {
151 168 }
152 169  
153 170 /**
  171 + * 同步容器类型
  172 + */
  173 + @Log(title = "同步容器类型", action = BusinessType.INSERT)
  174 + @PostMapping("/containerType")
  175 + @ApiOperation("同步容器类型")
  176 + @ResponseBody
  177 + @ApiLogger(apiName = "同步容器类型", from="ERP")
  178 + public AjaxResult containerTypeApi(@RequestBody ContainerTypeDomain containerTypeDomain){
  179 + AjaxResult ajaxResult = basicDataApiService.containerType(containerTypeDomain);
  180 + return ajaxResult;
  181 + }
  182 +
  183 + /**
154 184 * 同步供应商档案
155 185 */
156 186 @Log(title = "供应商档案添加", action = BusinessType.INSERT)
... ...
src/main/java/com/huaheng/api/general/controller/ReceiptApi.java
1 1 package com.huaheng.api.general.controller;
2 2  
3 3  
  4 +import com.alibaba.fastjson.JSON;
  5 +import com.alibaba.fastjson.JSONObject;
4 6 import com.huaheng.api.general.domain.Receipt;
5 7 import com.huaheng.api.general.domain.ReceiptDomain;
6 8 import com.huaheng.api.general.service.ReceiptApiService;
... ... @@ -17,6 +19,7 @@ import org.apache.shiro.authz.annotation.RequiresPermissions;
17 19 import org.springframework.web.bind.annotation.*;
18 20  
19 21 import javax.annotation.Resource;
  22 +import java.util.List;
20 23  
21 24 @RestController
22 25 @RequestMapping("/api/receiptApi")
... ... @@ -65,11 +68,23 @@ public class ReceiptApi {
65 68 @PostMapping("/remove")
66 69 @ResponseBody
67 70 @ApiLogger(apiName = "取消入库单", from="ERP")
68   - public AjaxResult remove(@RequestBody Integer[] ids){
69   - if (StringUtils.isNull(ids)){
70   - return AjaxResult.error("id为空");
  71 + public AjaxResult remove(@RequestBody List<String> receiptCodeList){
  72 + if (receiptCodeList==null&&receiptCodeList.size()<1){
  73 + return AjaxResult.error("单号列表为空");
71 74 }
72   - return receiptApiService.remove(ids);
  75 + return receiptApiService.remove(receiptCodeList);
73 76 }
74 77  
  78 + /**
  79 + * 入库单查询
  80 + */
  81 + @Log(title = "入库-入库单 ",operating = "入库单删除", action = BusinessType.UPDATE)
  82 + @GetMapping("/search")
  83 + @ResponseBody
  84 + @ApiLogger(apiName = "取消入库单", from="ERP")
  85 + public AjaxResult search(@RequestParam String receiptCode,
  86 + @RequestParam String companyCode,
  87 + @RequestParam String warehouseCode){
  88 + return receiptApiService.search(receiptCode,companyCode,warehouseCode);
  89 + }
75 90 }
... ...
src/main/java/com/huaheng/api/general/controller/ShipmentApi.java
1 1 package com.huaheng.api.general.controller;
2 2  
3 3  
  4 +import com.alibaba.fastjson.JSON;
  5 +import com.alibaba.fastjson.JSONObject;
4 6 import com.huaheng.api.general.domain.ShipmentDomain;
5 7 import com.huaheng.api.general.service.ShipmentApiService;
  8 +import com.huaheng.common.utils.StringUtils;
6 9 import com.huaheng.framework.aspectj.lang.annotation.ApiLogger;
7 10 import com.huaheng.framework.aspectj.lang.annotation.Log;
8 11 import com.huaheng.framework.aspectj.lang.constant.BusinessType;
... ... @@ -12,6 +15,7 @@ import io.swagger.annotations.ApiOperation;
12 15 import org.springframework.web.bind.annotation.*;
13 16  
14 17 import javax.annotation.Resource;
  18 +import java.util.List;
15 19  
16 20 @RestController
17 21 @RequestMapping("/api/shipmentApi")
... ... @@ -34,4 +38,31 @@ public class ShipmentApi {
34 38 AjaxResult ajaxResult = shipmentApiService.shipment(shipmentDomain);
35 39 return ajaxResult;
36 40 }
  41 +
  42 + /**
  43 + * 取消出库单
  44 + */
  45 + @Log(title = "出库-出库单 ",operating = "出库单删除", action = BusinessType.UPDATE)
  46 + @PostMapping("/remove")
  47 + @ResponseBody
  48 + @ApiLogger(apiName = "取消出库单", from="ERP")
  49 + public AjaxResult remove(@RequestBody List<String> shipmentCodeList){
  50 + if (shipmentCodeList==null&&shipmentCodeList.size()<1){
  51 + return AjaxResult.error("出库单号列表为空");
  52 + }
  53 + return shipmentApiService.remove(shipmentCodeList);
  54 + }
  55 +
  56 + /**
  57 + * 出库单查询
  58 + */
  59 + @Log(title = "出库-出库单 ",operating = "出库单删除", action = BusinessType.UPDATE)
  60 + @GetMapping("/search")
  61 + @ResponseBody
  62 + @ApiLogger(apiName = "取消入库单", from="ERP")
  63 + public AjaxResult search(@RequestParam String shipmentCode,
  64 + @RequestParam String companyCode,
  65 + @RequestParam String warehouseCode){
  66 + return shipmentApiService.search(shipmentCode,companyCode,warehouseCode);
  67 + }
37 68 }
... ...
src/main/java/com/huaheng/api/general/domain/ContainerTypeDomain.java 0 → 100644
  1 +package com.huaheng.api.general.domain;
  2 +
  3 +import com.huaheng.pc.config.containerType.domain.ContainerType;
  4 +import lombok.Data;
  5 +
  6 +import java.util.List;
  7 +
  8 +@Data
  9 +public class ContainerTypeDomain {
  10 + private List<ContainerType> containerTypeList;
  11 +
  12 + private String code;
  13 +}
... ...
src/main/java/com/huaheng/api/general/domain/InventoryQueryDomain.java 0 → 100644
  1 +package com.huaheng.api.general.domain;
  2 +
  3 +import lombok.Data;
  4 +
  5 +@Data
  6 +public class InventoryQueryDomain {
  7 +
  8 + private String warehouseCode;
  9 +
  10 + private String companyCode;
  11 +
  12 + private String materialCode;
  13 +
  14 + private String containerCode;
  15 +
  16 + private String locationCode;
  17 +
  18 +}
... ...
src/main/java/com/huaheng/api/general/service/BasicDataApiService.java
... ... @@ -2,7 +2,9 @@ package com.huaheng.api.general.service;
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.ContainerTypeDomain;
5 6 import com.huaheng.api.general.domain.InventoryDomain;
  7 +import com.huaheng.api.general.domain.InventoryQueryDomain;
6 8 import com.huaheng.common.exception.service.ServiceException;
7 9 import com.huaheng.common.utils.StringUtils;
8 10 import com.huaheng.framework.web.domain.AjaxResult;
... ... @@ -34,6 +36,8 @@ import com.huaheng.pc.system.dict.service.IDictDataService;
34 36 import com.huaheng.pc.system.dict.service.IDictTypeService;
35 37 import com.huaheng.pc.system.user.domain.User;
36 38 import com.huaheng.pc.system.user.service.IUserService;
  39 +import org.slf4j.Logger;
  40 +import org.slf4j.LoggerFactory;
37 41 import org.springframework.beans.factory.annotation.Autowired;
38 42 import org.springframework.stereotype.Component;
39 43 import org.springframework.transaction.annotation.Transactional;
... ... @@ -86,6 +90,9 @@ public class BasicDataApiService {
86 90 @Autowired
87 91 private ContainerCapacityService containerCapacityService;
88 92  
  93 + private static final Logger logger = LoggerFactory.getLogger("base-api");
  94 +
  95 +
89 96 //检查仓库
90 97 public Warehouse checkWarehouse(String code) {
91 98 LambdaQueryWrapper<Warehouse> warehouseLam = Wrappers.lambdaQuery();
... ... @@ -630,6 +637,36 @@ public class BasicDataApiService {
630 637 return AjaxResult.success("新增容器容量成功");
631 638 }
632 639  
  640 + public AjaxResult containerType(ContainerTypeDomain containerTypeDomain){
  641 + if ("0".equals(containerTypeDomain.getCode())){
  642 + if (!containerTypeService.saveBatch(containerTypeDomain.getContainerTypeList())){
  643 + logger.error("erp初始化容器类型失败,失败原因:无法插入数据");
  644 + return AjaxResult.error("初始化容器类型失败");
  645 + }
  646 + return AjaxResult.success("容器类型初始化成功");
  647 + }else {
  648 + LambdaQueryWrapper<ContainerType> lambdaQuery;
  649 + for (ContainerType containerType : containerTypeDomain.getContainerTypeList()) {
  650 + lambdaQuery = Wrappers.lambdaQuery();
  651 + lambdaQuery.eq(ContainerType::getCode,containerType.getCode());
  652 + ContainerType srcContainerType = containerTypeService.getOne(lambdaQuery);
  653 + if (srcContainerType ==null){
  654 + if (!containerTypeService.save(containerType)){
  655 + logger.error("erp更新容器类型失败,失败原因:无法插入数据");
  656 + return AjaxResult.error("插入容器类型失败");
  657 + }
  658 + }else {
  659 + containerType.setId(srcContainerType.getId());
  660 + if (!containerTypeService.updateById(containerType)){
  661 + logger.error("erp更新容器类型失败,失败原因:无法更新数据");
  662 + return AjaxResult.error("更新容器类型失败");
  663 + }
  664 + }
  665 + }
  666 + return AjaxResult.success("容器类型更新成功");
  667 + }
  668 + }
  669 +
633 670  
634 671  
635 672 /**
... ... @@ -665,7 +702,35 @@ public class BasicDataApiService {
665 702 }
666 703  
667 704  
668   -
  705 + public AjaxResult queryInventory(InventoryQueryDomain queryDomain){
  706 + if (StringUtils.isEmpty(queryDomain.getWarehouseCode())){
  707 + return AjaxResult.error("仓库编码不能为空");
  708 + }
  709 + if (StringUtils.isEmpty(queryDomain.getCompanyCode())){
  710 + return AjaxResult.error("货主编码不能为空");
  711 + }
  712 + if (StringUtils.isEmpty(queryDomain.getContainerCode())&&StringUtils.isEmpty(queryDomain.getLocationCode())&&StringUtils.isEmpty(queryDomain.getMaterialCode())){
  713 + return AjaxResult.error("容器、库位与物料至少一样不为空");
  714 + }
  715 + LambdaQueryWrapper<InventoryDetail> queryWrapper = Wrappers.lambdaQuery();
  716 + queryWrapper.eq(InventoryDetail::getWarehouseCode,queryDomain.getWarehouseCode())
  717 + .eq(InventoryDetail::getCompanyCode,queryDomain.getCompanyCode());
  718 + ArrayList<InventoryDetail> inventoryDetails = new ArrayList<>();
  719 + if (StringUtils.isNotEmpty(queryDomain.getContainerCode())){
  720 + queryWrapper.eq(InventoryDetail::getContainerCode,queryDomain.getContainerCode());
  721 + }
  722 + if (StringUtils.isNotEmpty(queryDomain.getLocationCode())){
  723 + queryWrapper.eq(InventoryDetail::getLocationCode,queryDomain.getLocationCode());
  724 + }
  725 + if (StringUtils.isNotEmpty(queryDomain.getMaterialCode())){
  726 + queryWrapper.eq(InventoryDetail::getMaterialCode,queryDomain.getMaterialCode());
  727 + }
  728 + List<InventoryDetail> list = inventoryDetailService.list(queryWrapper);
  729 + if (list==null){
  730 + return AjaxResult.error("没有符合条件的库存");
  731 + }
  732 + return AjaxResult.success("获取成功",list);
  733 + }
669 734  
670 735  
671 736  
... ...
src/main/java/com/huaheng/api/general/service/ReceiptApiService.java
... ... @@ -2,15 +2,11 @@ package com.huaheng.api.general.service;
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.controller.ReceiptApi;
6 5 import com.huaheng.api.general.domain.ReceiptDomain;
7 6 import com.huaheng.common.constant.QuantityConstant;
8 7 import com.huaheng.common.exception.service.ServiceException;
9   -import com.huaheng.common.support.Convert;
10 8 import com.huaheng.common.utils.StringUtils;
11 9 import com.huaheng.common.utils.security.ShiroUtils;
12   -import com.huaheng.common.exception.service.ServiceException;
13   -import com.huaheng.common.utils.StringUtils;
14 10 import com.huaheng.framework.web.domain.AjaxResult;
15 11 import com.huaheng.pc.config.FilterConfigDetail.domain.FilterConfigDetail;
16 12 import com.huaheng.pc.config.FilterConfigDetail.service.FilterConfigDetailService;
... ... @@ -34,15 +30,12 @@ import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader;
34 30 import com.huaheng.pc.receipt.receiptHeader.service.ReceiptHeaderService;
35 31 import com.huaheng.pc.receipt.receiptHeaderHistory.domain.ReceiptHeaderHistory;
36 32 import com.huaheng.pc.receipt.receiptHeaderHistory.service.ReceiptHeaderHistoryService;
37   -import org.apache.commons.beanutils.BeanUtils;
38 33 import org.springframework.stereotype.Component;
39 34 import org.springframework.transaction.annotation.Transactional;
40 35  
41 36 import javax.annotation.Resource;
42   -import java.lang.reflect.InvocationTargetException;
43 37 import java.math.BigDecimal;
44 38 import java.util.ArrayList;
45   -import java.util.Arrays;
46 39 import java.util.List;
47 40  
48 41 @Component
... ... @@ -70,43 +63,45 @@ public class ReceiptApiService {
70 63 private ReceiptHeaderHistoryService receiptHeaderHistoryService;
71 64 @Resource
72 65 private ReceiptDetailHistoryService receiptDetailHistoryService;
  66 +
73 67 /**
74 68 * 入库单下发
  69 + *
75 70 * @param receipt 入库单
76 71 * @return 是否下发成功
77 72 */
78 73 @Transactional(rollbackFor = Exception.class)
79   - public AjaxResult receipt(ReceiptDomain receipt){
  74 + public AjaxResult receipt(ReceiptDomain receipt) {
80 75  
81 76 /* 0.step 获取入库头表,获取入库明细*/
82 77 ReceiptHeader receiptHeader = receipt.getReceiptHeader();
83 78 List<ReceiptDetail> receiptDetails = receipt.getReceiptDetails();
84 79 /* 1.step 校验入库单是否为空*/
85   - if (receiptHeader == null || receiptDetails.isEmpty()){
  80 + if (receiptHeader == null || receiptDetails.isEmpty()) {
86 81 throw new ServiceException("入库主单或入库子单为空");
87 82 }
88 83 /* 2.step 检查入库头表合法性*/
89 84 AjaxResult checkReceiptHeaderResult = checkReceiptHeader(receiptHeader);
90   - if (checkReceiptHeaderResult.hasErr() ){
  85 + if (checkReceiptHeaderResult.hasErr()) {
91 86 return AjaxResult.error(checkReceiptHeaderResult.getMsg());
92 87 }
93 88  
94 89 /* 3.step 检查入库明细合法性*/
95 90 AjaxResult checkReceiptDetailResult = checkReceiptDetail(receiptDetails);
96   - if (checkReceiptDetailResult.hasErr() ){
  91 + if (checkReceiptDetailResult.hasErr()) {
97 92 return AjaxResult.error(checkReceiptDetailResult.getMsg());
98 93 }
99 94  
100 95 /* 4.step 计算入库明细总行数、总数量*/
101 96 BigDecimal totalQty = new BigDecimal(0);
102   - for (ReceiptDetail receiptDetail: receiptDetails) {
  97 + for (ReceiptDetail receiptDetail : receiptDetails) {
103 98 totalQty.add(receiptDetail.getTotalQty());
104 99 }
105 100 receiptHeader.setTotalLines(receiptDetails.size());
106 101 receiptHeader.setTotalQty(totalQty);
107 102  
108 103 /* 5.step 保存的入库头表*/
109   - if (!receiptHeaderService.save(receiptHeader)){
  104 + if (!receiptHeaderService.save(receiptHeader)) {
110 105 throw new ServiceException("保存入库头表失败");
111 106 }
112 107  
... ... @@ -115,7 +110,7 @@ public class ReceiptApiService {
115 110 lambda.eq(ReceiptHeader::getWarehouseCode, receiptHeader.getWarehouseCode())
116 111 .eq(ReceiptHeader::getCode, receiptHeader.getCode());
117 112 receiptHeader = receiptHeaderService.getOne(lambda);
118   - List<ReceiptDetail> jsonListDetail= new ArrayList<ReceiptDetail>();
  113 + List<ReceiptDetail> jsonListDetail = new ArrayList<ReceiptDetail>();
119 114 for (ReceiptDetail receiptDetail : receiptDetails) {
120 115 receiptDetail.setReceiptId(receiptHeader.getId());
121 116 receiptDetail.setReceiptCode(receiptHeader.getCode());
... ... @@ -125,14 +120,14 @@ public class ReceiptApiService {
125 120 receiptDetail.setMaterialName(material.getName());
126 121 receiptDetail.setMaterialSpec(material.getSpec());
127 122 receiptDetail.setMaterialUnit(material.getUnit());
128   - if (!receiptDetailService.save(receiptDetail)){
  123 + if (!receiptDetailService.save(receiptDetail)) {
129 124 throw new ServiceException("保存入库明细失败");
130 125 }
131   - jsonListDetail.add(receiptDetail);
  126 + jsonListDetail.add(receiptDetail);
132 127  
133 128 }
134 129 /* 6.step回传入库单和入库明细单 */
135   - ReceiptDomain receiptDomain =new ReceiptDomain();
  130 + ReceiptDomain receiptDomain = new ReceiptDomain();
136 131 receiptDomain.setReceiptHeader(receiptHeader);
137 132 receiptDomain.setReceiptDetails(jsonListDetail);
138 133  
... ... @@ -141,42 +136,43 @@ public class ReceiptApiService {
141 136  
142 137 /**
143 138 * 检查入库头表合法性
  139 + *
144 140 * @param receiptHeader 入库头表
145 141 * @return 检查结果
146 142 */
147   - private AjaxResult checkReceiptHeader(ReceiptHeader receiptHeader){
  143 + private AjaxResult checkReceiptHeader(ReceiptHeader receiptHeader) {
148 144 /* 0.step 必填项是否为空*/
149 145 if (StringUtils.isEmpty(receiptHeader.getCode()) || StringUtils.isEmpty(receiptHeader.getCompanyCode()) ||
150   - StringUtils.isEmpty(receiptHeader.getWarehouseCode()) || StringUtils.isEmpty(receiptHeader.getReceiptType())){
  146 + StringUtils.isEmpty(receiptHeader.getWarehouseCode()) || StringUtils.isEmpty(receiptHeader.getReceiptType())) {
151 147 return AjaxResult.error("入库主单字段有误");
152 148 }
153 149  
154 150 /* 1.step 查询该单据编码是否已存在*/
155 151 LambdaQueryWrapper<ReceiptHeader> receiptHeaderLambda = Wrappers.lambdaQuery(receiptHeader);
156   - if (receiptHeaderService.getOne(receiptHeaderLambda) != null){
157   - return AjaxResult.error("该单据已存在:"+receiptHeader.getCode());
  152 + if (receiptHeaderService.getOne(receiptHeaderLambda) != null) {
  153 + return AjaxResult.error("该单据已存在:" + receiptHeader.getCode());
158 154 }
159 155  
160 156 /* 2.step 判断入库类型是否匹配*/
161 157 LambdaQueryWrapper<ReceiptType> receiptTypeLambda = Wrappers.lambdaQuery();
162 158 receiptTypeLambda.eq(ReceiptType::getCode, receiptHeader.getReceiptType())
163   - .eq(ReceiptType::getWarehouseCode,receiptHeader.getWarehouseCode())
164   - .eq(ReceiptType::getCompanyCode,receiptHeader.getCompanyCode());
165   - if (receiptTypeService.getOne(receiptTypeLambda) == null){
  159 + .eq(ReceiptType::getWarehouseCode, receiptHeader.getWarehouseCode())
  160 + .eq(ReceiptType::getCompanyCode, receiptHeader.getCompanyCode());
  161 + if (receiptTypeService.getOne(receiptTypeLambda) == null) {
166 162 return AjaxResult.error("没有对应的入库单类型");
167 163 }
168 164  
169 165 /* 3.step 判断仓库是否存在*/
170 166 LambdaQueryWrapper<Warehouse> warehouseLambda = Wrappers.lambdaQuery();
171 167 warehouseLambda.eq(Warehouse::getCode, receiptHeader.getWarehouseCode());
172   - if (warehouseService.getOne(warehouseLambda) == null){
  168 + if (warehouseService.getOne(warehouseLambda) == null) {
173 169 return AjaxResult.error("该仓库不存在");
174 170 }
175 171  
176 172 /* 4.step 判断货主是否存在*/
177 173 LambdaQueryWrapper<Company> companyLambda = Wrappers.lambdaQuery();
178 174 companyLambda.eq(Company::getCode, receiptHeader.getCompanyCode());
179   - if (companyService.getOne(companyLambda) == null){
  175 + if (companyService.getOne(companyLambda) == null) {
180 176 return AjaxResult.error("该货主不存在");
181 177 }
182 178  
... ... @@ -185,21 +181,22 @@ public class ReceiptApiService {
185 181  
186 182 /**
187 183 * 检查入库明细合法性
  184 + *
188 185 * @param receiptDetails 入库明细
189 186 * @return 检查结果
190 187 */
191   - private AjaxResult checkReceiptDetail(List<ReceiptDetail> receiptDetails){
  188 + private AjaxResult checkReceiptDetail(List<ReceiptDetail> receiptDetails) {
192 189  
193   - for (ReceiptDetail receiptDetail: receiptDetails) {
  190 + for (ReceiptDetail receiptDetail : receiptDetails) {
194 191 /* 0.step 判断必填字段是否为空且总数量不能为0*/
195 192 if (receiptDetail.getMaterialCode() == null ||
196 193 new BigDecimal(0).compareTo(receiptDetail.getTotalQty() != null ?
197   - receiptDetail.getTotalQty() : new BigDecimal(0)) == 0 ){
  194 + receiptDetail.getTotalQty() : new BigDecimal(0)) == 0) {
198 195 return AjaxResult.error("入库明细字段有误");
199 196 }
200 197  
201 198 /* 1.step 判断供应商是否存在*/
202   - if (receiptDetail.getSupplierCode() != null){
  199 + if (receiptDetail.getSupplierCode() != null) {
203 200 LambdaQueryWrapper<Supplier> supplierLambda = Wrappers.lambdaQuery();
204 201 supplierLambda.eq(Supplier::getCode, receiptDetail.getSupplierCode());
205 202 if (supplierService.getOne(supplierLambda) == null) {
... ... @@ -208,26 +205,26 @@ public class ReceiptApiService {
208 205 }
209 206  
210 207 /* 2.step 判断定位规则是否存在*/
211   - if (receiptDetail.getLocatingRule() != null){
  208 + if (receiptDetail.getLocatingRule() != null) {
212 209 LambdaQueryWrapper<FilterConfigDetail> filterConfigDetailLambda = Wrappers.lambdaQuery();
213 210 filterConfigDetailLambda.eq(FilterConfigDetail::getCode, receiptDetail.getLocatingRule())
214 211 .eq(FilterConfigDetail::getModuleType, "receipt")
215 212 .eq(FilterConfigDetail::getRecordType, "locationRule");
216 213 FilterConfigDetail filterConfigDetail = filterConfigDetailService.getOne(filterConfigDetailLambda);
217   - if (filterConfigDetail == null){
218   - return AjaxResult.error(receiptDetail.getLocatingRule()+"定位规则不存在");
  214 + if (filterConfigDetail == null) {
  215 + return AjaxResult.error(receiptDetail.getLocatingRule() + "定位规则不存在");
219 216 }
220 217 }
221 218  
222 219 /* 3.step 判断流程编码是否存在*/
223   - if (receiptDetail.getStatusFlowCode() != null){
  220 + if (receiptDetail.getStatusFlowCode() != null) {
224 221 LambdaQueryWrapper<StatusFlowHeader> statusFlowHeaderLambda = Wrappers.lambdaQuery();
225 222 statusFlowHeaderLambda.eq(StatusFlowHeader::getCode, receiptDetail.getStatusFlowCode())
226 223 .eq(StatusFlowHeader::getModuleType, "receipt")
227 224 .eq(StatusFlowHeader::getRecordType, "receivingFlow");
228 225 StatusFlowHeader statusFlowHeader = statusFlowHeaderService.getOne(statusFlowHeaderLambda);
229   - if (statusFlowHeader == null){
230   - return AjaxResult.error(receiptDetail.getLocatingRule()+"该流程不存在");
  226 + if (statusFlowHeader == null) {
  227 + return AjaxResult.error(receiptDetail.getLocatingRule() + "该流程不存在");
231 228 }
232 229 }
233 230 }
... ... @@ -237,47 +234,45 @@ public class ReceiptApiService {
237 234  
238 235  
239 236 @Transactional
240   - public AjaxResult remove(Integer[] ids){
241   - List<Integer> idList = Arrays.asList(ids);
242   - for (Integer id : idList) {
243   - ReceiptHeader receiptHeader = receiptHeaderService.getById(id);
244   - if (receiptHeader == null) {
  237 + public AjaxResult remove(List<String> receiptCodeList) {
  238 + LambdaQueryWrapper<ReceiptHeader> headerQueryWrapper;
  239 + for (String receiptCode : receiptCodeList) {
  240 + headerQueryWrapper = Wrappers.lambdaQuery();
  241 + headerQueryWrapper.eq(ReceiptHeader::getCode,receiptCode);
  242 + ReceiptHeader receiptHeader = receiptHeaderService.getOne(headerQueryWrapper);
  243 + if (receiptHeader == null) {
245 244 return AjaxResult.success("");
246 245 }
247   - if((receiptHeader.getFirstStatus()>= QuantityConstant.RECEIPT_HEADER_POSTING && receiptHeader.getLastStatus()>=QuantityConstant.RECEIPT_HEADER_POSTING)||
248   - (receiptHeader.getFirstStatus()<QuantityConstant.RECEIPT_HEADER_POOL &receiptHeader.getLastStatus()<QuantityConstant.RECEIPT_HEADER_POOL)){
  246 + if ((receiptHeader.getFirstStatus() >= QuantityConstant.RECEIPT_HEADER_POSTING && receiptHeader.getLastStatus() >= QuantityConstant.RECEIPT_HEADER_POSTING) ||
  247 + (receiptHeader.getFirstStatus() < QuantityConstant.RECEIPT_HEADER_POOL & receiptHeader.getLastStatus() < QuantityConstant.RECEIPT_HEADER_POOL)) {
249 248 ReceiptHeaderHistory receiptHeaderHistory = new ReceiptHeaderHistory();
250 249 List<ReceiptDetailHistory> receiptDetailHistoryList = new ArrayList<>();
251 250 //查询入库单明细
252 251 LambdaQueryWrapper<ReceiptDetail> lambdaQueryWrapper = Wrappers.lambdaQuery();
253   - lambdaQueryWrapper.eq(ReceiptDetail::getReceiptId, id);
  252 + lambdaQueryWrapper.eq(ReceiptDetail::getReceiptCode, receiptCode);
254 253 List<ReceiptDetail> list = receiptDetailService.list(lambdaQueryWrapper);
255   - try {
256   - //复制到入库历史实体
257   - BeanUtils.copyProperties(receiptHeaderHistory, receiptHeader);
258   - for (ReceiptDetail receiptDetail: list) {
259   - ReceiptDetailHistory receiptDetailHistory = new ReceiptDetailHistory();
260   - BeanUtils.copyProperties(receiptDetailHistory, receiptDetail);
261   - receiptDetailHistoryList.add(receiptDetailHistory);
262   - }
263   - } catch (IllegalAccessException e) {
264   - e.printStackTrace();
265   - } catch (InvocationTargetException e) {
266   - e.printStackTrace();
  254 +
  255 + //复制到入库历史实体
  256 + com.huaheng.common.utils.bean.BeanUtils.copyBeanProp(receiptHeaderHistory, receiptHeader);
  257 + for (ReceiptDetail receiptDetail : list) {
  258 + ReceiptDetailHistory receiptDetailHistory = new ReceiptDetailHistory();
  259 + com.huaheng.common.utils.bean.BeanUtils.copyBeanProp(receiptDetailHistory, receiptDetail);
  260 + receiptDetailHistoryList.add(receiptDetailHistory);
267 261 }
268 262  
  263 +
269 264 receiptHeaderHistory.setLastUpdatedBy(ShiroUtils.getLoginName());
270   - if (!receiptHeaderService.removeById(receiptHeader.getId())){
  265 + if (!receiptHeaderService.removeById(receiptHeader.getId())) {
271 266 throw new ServiceException("删除头表失败");
272 267 }
273   - if(!receiptHeaderHistoryService.save(receiptHeaderHistory)){
  268 + if (!receiptHeaderHistoryService.save(receiptHeaderHistory)) {
274 269 throw new ServiceException("新增历史入库单失败");
275 270 }
276 271 // 当存在明细时删除
277   - if (list.size()!= 0){
  272 + if (list.size() != 0) {
278 273 //删除入库明细
279 274 List<Integer> receiptDetailIds = new ArrayList<>();
280   - for (int i=0; i<receiptDetailHistoryList.size();i++){
  275 + for (int i = 0; i < receiptDetailHistoryList.size(); i++) {
281 276 receiptDetailHistoryList.get(i).setLastUpdatedBy(ShiroUtils.getLoginName());
282 277 receiptDetailHistoryList.get(i).setReceiptId(receiptHeaderHistory.getId());
283 278 receiptDetailIds.add(receiptDetailHistoryList.get(i).getId());
... ... @@ -285,14 +280,37 @@ public class ReceiptApiService {
285 280 if (!receiptDetailService.removeByIds(receiptDetailIds)) {
286 281 throw new ServiceException("删除明细表失败");
287 282 }
288   - if (!receiptDetailHistoryService.saveBatch(receiptDetailHistoryList)){
  283 + if (!receiptDetailHistoryService.saveBatch(receiptDetailHistoryList)) {
289 284 throw new ServiceException("新增明细失败");
290   - } }
291   -
292   - }else {
  285 + }
  286 + }
  287 + } else {
293 288 return AjaxResult.success("入库单没有完成,无法删除");
294 289 }
295 290 }
296 291 return AjaxResult.success("删除成功");
297 292 }
  293 +
  294 + public AjaxResult search(String receiptCode, String companyCode, String warehouseCode) {
  295 + if (companyCode == null) {
  296 + return AjaxResult.error("货主编码不能为空");
  297 + }
  298 + if (warehouseCode == null) {
  299 + return AjaxResult.error("仓库编码不能为空");
  300 + }
  301 + ReceiptDomain receiptDomain = new ReceiptDomain();
  302 + LambdaQueryWrapper<ReceiptHeader> headerLambdaQuery = Wrappers.lambdaQuery();
  303 + LambdaQueryWrapper<ReceiptDetail> detailLambdaQuery = Wrappers.lambdaQuery();
  304 + headerLambdaQuery.eq(ReceiptHeader::getWarehouseCode, warehouseCode)
  305 + .eq(ReceiptHeader::getCompanyCode, companyCode)
  306 + .eq(ReceiptHeader::getCode, receiptCode);
  307 + detailLambdaQuery.eq(ReceiptDetail::getWarehouseCode, warehouseCode)
  308 + .eq(ReceiptDetail::getCompanyCode, companyCode)
  309 + .eq(ReceiptDetail::getReceiptCode, receiptCode);
  310 + ReceiptHeader receiptHeader = receiptHeaderService.getOne(headerLambdaQuery);
  311 + List<ReceiptDetail> receiptDetailList = receiptDetailService.list(detailLambdaQuery);
  312 + receiptDomain.setReceiptHeader(receiptHeader);
  313 + receiptDomain.setReceiptDetails(receiptDetailList);
  314 + return AjaxResult.success("查询成功", receiptDomain);
  315 + }
298 316 }
... ...
src/main/java/com/huaheng/api/general/service/ShipmentApiService.java
... ... @@ -3,6 +3,7 @@ package com.huaheng.api.general.service;
3 3 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
4 4 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
5 5 import com.huaheng.api.general.domain.ShipmentDomain;
  6 +import com.huaheng.common.constant.QuantityConstant;
6 7 import com.huaheng.common.exception.service.ServiceException;
7 8 import com.huaheng.common.utils.StringUtils;
8 9 import com.huaheng.common.utils.security.ShiroUtils;
... ... @@ -19,12 +20,17 @@ import com.huaheng.pc.config.warehouse.domain.Warehouse;
19 20 import com.huaheng.pc.config.warehouse.service.WarehouseService;
20 21 import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail;
21 22 import com.huaheng.pc.shipment.shipmentDetail.service.ShipmentDetailService;
  23 +import com.huaheng.pc.shipment.shipmentDetailHistory.domain.ShipmentDetailHistory;
  24 +import com.huaheng.pc.shipment.shipmentDetailHistory.service.ShipmentDetailHistoryService;
22 25 import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader;
23 26 import com.huaheng.pc.shipment.shipmentHeader.service.ShipmentHeaderService;
  27 +import com.huaheng.pc.shipment.shipmentHeaderHistory.domain.ShipmentHeaderHistory;
  28 +import com.huaheng.pc.shipment.shipmentHeaderHistory.service.ShipmentHeaderHistoryService;
24 29 import org.springframework.beans.factory.annotation.Autowired;
25 30 import org.springframework.stereotype.Component;
26 31 import org.springframework.transaction.annotation.Transactional;
27 32  
  33 +import javax.annotation.Resource;
28 34 import java.math.BigDecimal;
29 35 import java.util.ArrayList;
30 36 import java.util.List;
... ... @@ -61,6 +67,12 @@ public class ShipmentApiService {
61 67 @Autowired
62 68 private MaterialService materialService;
63 69  
  70 + @Resource
  71 + private ShipmentHeaderHistoryService shipmentHeaderHistoryService;
  72 +
  73 + @Resource
  74 + private ShipmentDetailHistoryService shipmentDetailHistoryService;
  75 +
64 76 /**
65 77 * 出库单下发
66 78 *
... ... @@ -225,4 +237,85 @@ public class ShipmentApiService {
225 237 }
226 238 return shipmentDetails;
227 239 }
  240 +
  241 + @Transactional
  242 + public AjaxResult remove(List<String> shipmentCodeList) {
  243 + LambdaQueryWrapper<ShipmentHeader> headerQueryWrapper;
  244 + for (String shipmentCode : shipmentCodeList) {
  245 + headerQueryWrapper = Wrappers.lambdaQuery();
  246 + headerQueryWrapper.eq(ShipmentHeader::getCode,shipmentCode);
  247 + ShipmentHeader shipmentHeader = shipmentHeaderService.getOne(headerQueryWrapper);
  248 + if (shipmentHeader == null) {
  249 + return AjaxResult.success("");
  250 + }
  251 + if ((shipmentHeader.getFirstStatus() >= QuantityConstant.SHIPMENT_HEADER_RETURN && shipmentHeader.getLastStatus() >= QuantityConstant.SHIPMENT_HEADER_RETURN) ||
  252 + (shipmentHeader.getFirstStatus() < QuantityConstant.SHIPMENT_HEADER_POOL & shipmentHeader.getLastStatus() < QuantityConstant.SHIPMENT_HEADER_POOL)) {
  253 + ShipmentHeaderHistory shipmentHeaderHistory = new ShipmentHeaderHistory();
  254 + List<ShipmentDetailHistory> shipmentDetailHistoryList = new ArrayList<>();
  255 + //查询入库单明细
  256 + LambdaQueryWrapper<ShipmentDetail> lambdaQueryWrapper = Wrappers.lambdaQuery();
  257 + lambdaQueryWrapper.eq(ShipmentDetail::getShipmentCode, shipmentCode);
  258 + List<ShipmentDetail> list = shipmentDetailService.list(lambdaQueryWrapper);
  259 +
  260 + //复制到入库历史实体
  261 + com.huaheng.common.utils.bean.BeanUtils.copyBeanProp(shipmentHeaderHistory, shipmentHeader);
  262 + for (ShipmentDetail shipmentDetail : list) {
  263 + ShipmentDetailHistory shipmentDetailHistory = new ShipmentDetailHistory();
  264 + com.huaheng.common.utils.bean.BeanUtils.copyBeanProp(shipmentDetailHistory, shipmentDetail);
  265 + shipmentDetailHistoryList.add(shipmentDetailHistory);
  266 + }
  267 +
  268 +
  269 + shipmentHeaderHistory.setLastUpdatedBy(ShiroUtils.getLoginName());
  270 + if (!shipmentHeaderService.removeById(shipmentHeader.getId())) {
  271 + throw new ServiceException("删除头表失败");
  272 + }
  273 + if (!shipmentHeaderHistoryService.save(shipmentHeaderHistory)) {
  274 + throw new ServiceException("新增历史出库单失败");
  275 + }
  276 + // 当存在明细时删除
  277 + if (list.size() != 0) {
  278 + //删除入库明细
  279 + List<Integer> shipmentDetailIds = new ArrayList<>();
  280 + for (int i = 0; i < shipmentDetailHistoryList.size(); i++) {
  281 + shipmentDetailHistoryList.get(i).setLastUpdatedBy(ShiroUtils.getLoginName());
  282 + shipmentDetailHistoryList.get(i).setShipmentId(shipmentHeaderHistory.getId());
  283 + shipmentDetailIds.add(shipmentDetailHistoryList.get(i).getId());
  284 + }
  285 + if (!shipmentDetailService.removeByIds(shipmentDetailIds)) {
  286 + throw new ServiceException("删除明细表失败");
  287 + }
  288 + if (!shipmentDetailHistoryService.saveBatch(shipmentDetailHistoryList)) {
  289 + throw new ServiceException("新增明细失败");
  290 + }
  291 + }
  292 + } else {
  293 + return AjaxResult.success("出库单没有完成,无法删除");
  294 + }
  295 + }
  296 + return AjaxResult.success("删除成功");
  297 + }
  298 +
  299 + public AjaxResult search(String shipmentCode,String companyCode,String warehouseCode){
  300 + if (companyCode==null){
  301 + return AjaxResult.error("货主编码不能为空");
  302 + }
  303 + if (warehouseCode==null){
  304 + return AjaxResult.error("仓库编码不能为空");
  305 + }
  306 + ShipmentDomain shipmentDomain = new ShipmentDomain();
  307 + LambdaQueryWrapper<ShipmentHeader> headerLambdaQuery = Wrappers.lambdaQuery();
  308 + LambdaQueryWrapper<ShipmentDetail> detailLambdaQuery = Wrappers.lambdaQuery();
  309 + headerLambdaQuery.eq(ShipmentHeader::getWarehouseCode,warehouseCode)
  310 + .eq(ShipmentHeader::getCompanyCode,companyCode)
  311 + .eq(ShipmentHeader::getCode,shipmentCode);
  312 + detailLambdaQuery.eq(ShipmentDetail::getWarehouseCode,warehouseCode)
  313 + .eq(ShipmentDetail::getCompanyCode,companyCode)
  314 + .eq(ShipmentDetail::getShipmentCode,shipmentCode);
  315 + ShipmentHeader shipmentHeader = shipmentHeaderService.getOne(headerLambdaQuery);
  316 + List<ShipmentDetail> shipmentDetailList = shipmentDetailService.list(detailLambdaQuery);
  317 + shipmentDomain.setShipmentHeader(shipmentHeader);
  318 + shipmentDomain.setShipmentDetails(shipmentDetailList);
  319 + return AjaxResult.success("查询成功",shipmentDomain);
  320 + }
228 321 }
... ...
src/main/resources/templates/task/taskHeader/taskHeader.html
... ... @@ -165,7 +165,7 @@
165 165 actions.push('<a class="btn btn-info btn-xs " href="#" onclick="detail(\'' + row.id + '\')"><i class="fa fa-list-ul"></i>明细</a> ');
166 166 if (row.status < 10) {
167 167 if(row.taskType == 300 || row.taskType == 400) {
168   - actions.push('<a class="btn btn-success btn-xs ' + executeFlag + '" href="#" onclick="chooseStation(\'' + row.id + '\')"><i class="fa fa-send" style="padding-right: 1px;"></i>执行</a> ');
  168 + actions.push('<a class="btn btn-success btn-xs ' + executeFlag + '" href="#" onclick="chooseStation(\'' + row.id + '\')"><i class="fa fa-send" style="padding-right: 1px;"></i>选择站台</a> ');
169 169 } else {
170 170 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> ');
171 171 }
... ... @@ -210,7 +210,7 @@
210 210 visible:true
211 211 },
212 212 {
213   - field : 'containerCode',
  213 + field : 'containerCode',
214 214 title : '容器号' ,
215 215 sortable: true
216 216 },
... ... @@ -248,30 +248,30 @@
248 248 sortable: true
249 249 },
250 250 {
251   - field : 'createdBy',
252   - title : '任务下达人'
  251 + field : 'createdBy',
  252 + title : '任务下达人'
253 253 },
254 254 {
255   - field : 'lastUpdated',
  255 + field : 'lastUpdated',
256 256 title : '修改时间' ,
257 257 sortable: true,
258 258 },
259 259 {
260   - field : 'lastUpdatedBy',
261   - title : '更新用户'
  260 + field : 'lastUpdatedBy',
  261 + title : '更新用户'
262 262 },
263 263 {
264   - field : 'userDef1',
  264 + field : 'userDef1',
265 265 title : '自定义字段1' ,
266 266 visible:false
267 267 },
268 268 {
269   - field : 'userDef2',
  269 + field : 'userDef2',
270 270 title : '自定义字段2' ,
271 271 visible:false
272 272 },
273 273 {
274   - field : 'userDef3',
  274 + field : 'userDef3',
275 275 title : '自定义字段3' ,
276 276 visible:false
277 277 }
... ... @@ -559,4 +559,4 @@
559 559 }
560 560 </script>
561 561 </body>
562   -</html>
563 562 \ No newline at end of file
  563 +</html>
... ...