From 774009ed54933cb49ec824f94685ae88526c6d05 Mon Sep 17 00:00:00 2001 From: "bbl\\baobl" Date: Mon, 11 Mar 2024 13:47:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E5=85=A5=E5=BA=93=EF=BC=8C?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=87=BA=E5=BA=93=E5=8D=95=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basicdata/repository/PointRepository.java | 4 +- .../basicdata/rest/PointController.java | 7 + .../basicdata/service/PointService.java | 1 + .../service/impl/PointServiceImpl.java | 2 +- .../businessdata/domain/Inventory.java | 4 - .../youchain/businessdata/domain/Pick.java | 116 +++++++++++++++++ .../youchain/businessdata/domain/Task.java | 4 + .../repository/PickRepository.java | 28 ++++ .../repository/TaskRepository.java | 11 +- .../rest/AsnDetailController.java | 8 -- .../rest/InterfaceController.java | 43 +++++++ .../businessdata/rest/PickController.java | 87 +++++++++++++ .../businessdata/rest/TaskController.java | 11 +- .../service/AsnDetailService.java | 5 +- .../service/PickDetailService.java | 9 ++ .../businessdata/service/PickService.java | 83 ++++++++++++ .../businessdata/service/TaskService.java | 13 +- .../businessdata/service/dto/PickDto.java | 84 ++++++++++++ .../service/dto/PickQueryCriteria.java | 35 +++++ .../service/impl/AgvTaskServiceImpl.java | 62 +++++---- .../service/impl/PickDetailServiceImpl.java | 14 ++ .../service/impl/PickServiceImpl.java | 120 ++++++++++++++++++ .../service/impl/TaskServiceImpl.java | 54 +++++++- .../service/mapstruct/PickMapper.java | 32 +++++ .../java/com/youchain/utils/BizStatus.java | 13 +- .../main/java/com/youchain/utils/UrlApi.java | 4 +- 26 files changed, 795 insertions(+), 59 deletions(-) create mode 100644 youchain-system/src/main/java/com/youchain/businessdata/domain/Pick.java create mode 100644 youchain-system/src/main/java/com/youchain/businessdata/repository/PickRepository.java create mode 100644 youchain-system/src/main/java/com/youchain/businessdata/rest/InterfaceController.java create mode 100644 youchain-system/src/main/java/com/youchain/businessdata/rest/PickController.java create mode 100644 youchain-system/src/main/java/com/youchain/businessdata/service/PickService.java create mode 100644 youchain-system/src/main/java/com/youchain/businessdata/service/dto/PickDto.java create mode 100644 youchain-system/src/main/java/com/youchain/businessdata/service/dto/PickQueryCriteria.java create mode 100644 youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickServiceImpl.java create mode 100644 youchain-system/src/main/java/com/youchain/businessdata/service/mapstruct/PickMapper.java diff --git a/youchain-system/src/main/java/com/youchain/basicdata/repository/PointRepository.java b/youchain-system/src/main/java/com/youchain/basicdata/repository/PointRepository.java index 58c96e2..0355ed9 100644 --- a/youchain-system/src/main/java/com/youchain/basicdata/repository/PointRepository.java +++ b/youchain-system/src/main/java/com/youchain/basicdata/repository/PointRepository.java @@ -29,8 +29,8 @@ import java.util.Map; * @date 2023-07-26 **/ public interface PointRepository extends JpaRepository, JpaSpecificationExecutor { - @Query(value = "SELECT u.id,u.code FROM base_point p WHERE p.enabled=1 and p.status='FREE'", nativeQuery = true) - public List> getKyPointList(); + @Query(value = "SELECT p.* FROM base_point p WHERE p.enabled=1 and p.status='FREE'", nativeQuery = true) + List getKyPointList(); @Query(value = "SELECT p FROM Point p WHERE p.area.code=?1 and p.enabled=true and p.storageType is not null") List findByAreaCode(String areaCode); @Query(value = "SELECT p FROM Point p WHERE p.code=?1 and p.enabled=true") diff --git a/youchain-system/src/main/java/com/youchain/basicdata/rest/PointController.java b/youchain-system/src/main/java/com/youchain/basicdata/rest/PointController.java index 471f1b0..1b68388 100644 --- a/youchain-system/src/main/java/com/youchain/basicdata/rest/PointController.java +++ b/youchain-system/src/main/java/com/youchain/basicdata/rest/PointController.java @@ -23,6 +23,7 @@ import com.youchain.annotation.AnonymousAccess; import com.youchain.annotation.Log; import com.youchain.basicdata.domain.Area; import com.youchain.basicdata.domain.Point; +import com.youchain.basicdata.repository.PointRepository; import com.youchain.basicdata.service.AreaService; import com.youchain.basicdata.service.PointService; import com.youchain.basicdata.service.dto.AreaDto; @@ -66,6 +67,7 @@ import static org.springframework.http.HttpStatus.BAD_REQUEST; public class PointController { private final PointService pointService; + private final PointRepository pointRepository; private final AreaService areaService; @@ -182,6 +184,11 @@ public class PointController { public ResponseEntity queryPointList(PointQueryCriteria criteria) { return new ResponseEntity<>(pointService.queryAll(criteria), HttpStatus.OK); } + @PostMapping(value = "/getPointList") + @AnonymousAccess + public ResponseEntity getPointList() { + return new ResponseEntity<>(pointRepository.getKyPointList(), HttpStatus.OK); + } @GetMapping(value = "/queryKyPointList") @Log("查询可用空闲的点位point") diff --git a/youchain-system/src/main/java/com/youchain/basicdata/service/PointService.java b/youchain-system/src/main/java/com/youchain/basicdata/service/PointService.java index f025b31..89011e9 100644 --- a/youchain-system/src/main/java/com/youchain/basicdata/service/PointService.java +++ b/youchain-system/src/main/java/com/youchain/basicdata/service/PointService.java @@ -160,4 +160,5 @@ public interface PointService { * 前后桶根据设置的小库区存储类型,未设置的混放 */ Point getPointByFreeQH(String areaName,String goodType); + } diff --git a/youchain-system/src/main/java/com/youchain/basicdata/service/impl/PointServiceImpl.java b/youchain-system/src/main/java/com/youchain/basicdata/service/impl/PointServiceImpl.java index 529ed17..7610cb3 100644 --- a/youchain-system/src/main/java/com/youchain/basicdata/service/impl/PointServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/basicdata/service/impl/PointServiceImpl.java @@ -82,7 +82,7 @@ public class PointServiceImpl implements PointService { @Override public List queryKyPointList() { - List> maps = pointRepository.getKyPointList(); + List maps = pointRepository.getKyPointList(); String irsStr = JSON.toJSONString(maps); List evaUserResps = JSON.parseArray(irsStr, PointSmallDto.class); return evaUserResps; diff --git a/youchain-system/src/main/java/com/youchain/businessdata/domain/Inventory.java b/youchain-system/src/main/java/com/youchain/businessdata/domain/Inventory.java index df98bc2..924214c 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/domain/Inventory.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/domain/Inventory.java @@ -126,10 +126,6 @@ public class Inventory extends BaseEntity implements Serializable { @NotNull @ApiModelProperty(value = "仓库") private Dept dept; - @OneToMany - private List tasks; - - public void copy(Inventory source){ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); diff --git a/youchain-system/src/main/java/com/youchain/businessdata/domain/Pick.java b/youchain-system/src/main/java/com/youchain/businessdata/domain/Pick.java new file mode 100644 index 0000000..653606e --- /dev/null +++ b/youchain-system/src/main/java/com/youchain/businessdata/domain/Pick.java @@ -0,0 +1,116 @@ +/* +* Copyright 2019-2020 Zheng Jie +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +package com.youchain.businessdata.domain; + +import com.youchain.base.BaseEntity; +import lombok.Data; +import cn.hutool.core.bean.BeanUtil; +import io.swagger.annotations.ApiModelProperty; +import cn.hutool.core.bean.copier.CopyOptions; +import javax.persistence.*; +import javax.validation.constraints.*; +import java.sql.Timestamp; +import java.io.Serializable; + +/** +* @website https://eladmin.vip +* @description / +* @author hjl +* @date 2024-03-11 +**/ +@Entity +@Data +@Table(name="data_pick") +public class Pick extends BaseEntity implements Serializable { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "`id`") + @ApiModelProperty(value = "ID") + private Long id; + + @Column(name = "`dept_id`") + @ApiModelProperty(value = "仓库ID") + private Long deptId; + + @Column(name = "`bill_type_id`") + @ApiModelProperty(value = "单据类型ID") + private String billTypeId; + + @Column(name = "`order_origin`") + @ApiModelProperty(value = "订单来源") + private Long orderOrigin; + + @Column(name = "`priority`") + @ApiModelProperty(value = "优先级") + private Long priority; + + @Column(name = "`owner`") + @ApiModelProperty(value = "货主") + private String owner; + + @Column(name = "`related_bill1`") + @ApiModelProperty(value = "系统单号") + private String relatedBill1; + + @Column(name = "`related_bill2`") + @ApiModelProperty(value = "客户订单号") + private String relatedBill2; + + @Column(name = "`source_name`") + @ApiModelProperty(value = "来源名称") + private String sourceName; + + @Column(name = "`status`") + @ApiModelProperty(value = "订单状态") + private String status; + + @Column(name = "`address`") + @ApiModelProperty(value = "合并或分阶段处理的地点") + private String address; + + @Column(name = "`dispatch_date`") + @ApiModelProperty(value = "发货时间") + private Long dispatchDate; + + @Column(name = "`er_time`") + @ApiModelProperty(value = "操作时间") + private Long erTime; + + @Column(name = "`create_by`") + @ApiModelProperty(value = "创建人") + private String createBy; + + @Column(name = "`update_by`") + @ApiModelProperty(value = "修改人") + private String updateBy; + + @Column(name = "`create_time`") + @ApiModelProperty(value = "创建时间") + private Timestamp createTime; + + @Column(name = "`update_time`") + @ApiModelProperty(value = "修改时间") + private Timestamp updateTime; + + @Column(name = "`order_date`") + @ApiModelProperty(value = "订单时间") + private Timestamp orderDate; + + public void copy(Pick source){ + BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); + } +} diff --git a/youchain-system/src/main/java/com/youchain/businessdata/domain/Task.java b/youchain-system/src/main/java/com/youchain/businessdata/domain/Task.java index 7f99fed..36dabe4 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/domain/Task.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/domain/Task.java @@ -25,6 +25,9 @@ import lombok.Data; import cn.hutool.core.bean.BeanUtil; import io.swagger.annotations.ApiModelProperty; import cn.hutool.core.bean.copier.CopyOptions; +import org.hibernate.annotations.NotFound; +import org.hibernate.annotations.NotFoundAction; + import javax.persistence.*; import javax.validation.constraints.*; import java.sql.Timestamp; @@ -149,6 +152,7 @@ public class Task extends BaseEntity implements Serializable { @JoinColumn(name="inv_id") @ApiModelProperty(value = "库存ID") @ManyToOne + @NotFound(action= NotFoundAction.IGNORE) private Inventory inventory; @OneToOne @JoinColumn(name = "dept_id") diff --git a/youchain-system/src/main/java/com/youchain/businessdata/repository/PickRepository.java b/youchain-system/src/main/java/com/youchain/businessdata/repository/PickRepository.java new file mode 100644 index 0000000..98e64ee --- /dev/null +++ b/youchain-system/src/main/java/com/youchain/businessdata/repository/PickRepository.java @@ -0,0 +1,28 @@ +/* +* Copyright 2019-2020 Zheng Jie +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +package com.youchain.businessdata.repository; + +import com.youchain.businessdata.domain.Pick; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.JpaSpecificationExecutor; + +/** +* @website https://eladmin.vip +* @author hjl +* @date 2024-03-11 +**/ +public interface PickRepository extends JpaRepository, JpaSpecificationExecutor { +} \ No newline at end of file diff --git a/youchain-system/src/main/java/com/youchain/businessdata/repository/TaskRepository.java b/youchain-system/src/main/java/com/youchain/businessdata/repository/TaskRepository.java index 276cacc..75f1025 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/repository/TaskRepository.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/repository/TaskRepository.java @@ -32,8 +32,15 @@ import java.util.Map; public interface TaskRepository extends JpaRepository, JpaSpecificationExecutor { @Query(value = "SELECT u.id FROM data_task u WHERE u.asn_detail_id=?1", nativeQuery = true) public List> getAsnTask(Long id); - @Query(value = " select sum(move_qty) qty,GROUP_CONCAT(id) taskIds,item_key_id ikID,dst_point_id pointId from data_task where agv_task_id=?1 and task_type='ASN' and task_status='RECEIVING' group by item_key_id ",nativeQuery = true) - List> findByAgvTask(Integer agvTaskId); + /** + * 查询出入库相关的AGV任务 + * @param agvTaskId + * @param type ASN + * @param agvFlag 是否AGV任务 + * @return + */ + @Query(value = " select sum(move_qty) qty,GROUP_CONCAT(id) taskIds,item_key_id ikID,dst_point_id pointId from data_task where if((?1 !='' or ?1 is not null),agv_task_id=?1,1=1) and task_type=?2 and be_skip=?3 and task_status='RECEIVING' group by item_key_id ",nativeQuery = true) + List> findByAgvTask(Integer agvTaskId,String type,Long agvFlag); /** * 根据出库单明细查询未完成的Task集合 diff --git a/youchain-system/src/main/java/com/youchain/businessdata/rest/AsnDetailController.java b/youchain-system/src/main/java/com/youchain/businessdata/rest/AsnDetailController.java index 72753b3..bf132f7 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/rest/AsnDetailController.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/rest/AsnDetailController.java @@ -533,12 +533,4 @@ public class AsnDetailController { obj.putAll(map); return new ResponseEntity<>(ApiResult.success("",obj), HttpStatus.OK); } - @PostMapping("/importAsnApi") - @Log("接收SAP入库单") - @ApiOperation("接收SAP入库单") - @AnonymousAccess - public ResponseEntity importAsnApi(@RequestBody JSONObject jsonObject) { - asnDetailService.importAsnApi(jsonObject); - return new ResponseEntity<>(ApiResult.success("",""), HttpStatus.OK); - } } diff --git a/youchain-system/src/main/java/com/youchain/businessdata/rest/InterfaceController.java b/youchain-system/src/main/java/com/youchain/businessdata/rest/InterfaceController.java new file mode 100644 index 0000000..93df271 --- /dev/null +++ b/youchain-system/src/main/java/com/youchain/businessdata/rest/InterfaceController.java @@ -0,0 +1,43 @@ +package com.youchain.businessdata.rest; + +import com.alibaba.fastjson.JSONObject; +import com.youchain.annotation.AnonymousAccess; +import com.youchain.annotation.Log; +import com.youchain.businessdata.service.AsnDetailService; +import com.youchain.businessdata.service.PickDetailService; +import com.youchain.exception.handler.ApiResult; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +@Api(tags = "接口日志") +@RequestMapping("/synq/resources") +public class InterfaceController { + private final AsnDetailService asnDetailService; + private final PickDetailService pickDetailService; + @PostMapping("/importAsnApi") + @Log("接收SAP入库单") + @ApiOperation("接收SAP入库单") + @AnonymousAccess + public ResponseEntity importAsnApi(@RequestBody JSONObject jsonObject) { + asnDetailService.importAsnApi(jsonObject); + return new ResponseEntity<>(ApiResult.success("",""), HttpStatus.OK); + } + @PostMapping("/importPtApi") + @Log("接收SAP入库单") + @ApiOperation("接收SAP入库单") + @AnonymousAccess + public ResponseEntity importPtApi(@RequestBody JSONObject jsonObject) { + ApiResult apiResult = pickDetailService.importPtApi(jsonObject); + return new ResponseEntity<>(apiResult, HttpStatus.valueOf(apiResult.getStatus())); + } +} diff --git a/youchain-system/src/main/java/com/youchain/businessdata/rest/PickController.java b/youchain-system/src/main/java/com/youchain/businessdata/rest/PickController.java new file mode 100644 index 0000000..409d5c5 --- /dev/null +++ b/youchain-system/src/main/java/com/youchain/businessdata/rest/PickController.java @@ -0,0 +1,87 @@ +/* +* Copyright 2019-2020 Zheng Jie +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +package com.youchain.businessdata.rest; + +import com.youchain.annotation.Log; +import com.youchain.businessdata.domain.Pick; +import com.youchain.businessdata.service.PickService; +import com.youchain.businessdata.service.dto.PickQueryCriteria; +import org.springframework.data.domain.Pageable; +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import io.swagger.annotations.*; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; + +/** +* @website https://eladmin.vip +* @author hjl +* @date 2024-03-11 +**/ +@RestController +@RequiredArgsConstructor +@Api(tags = "pick管理") +@RequestMapping("/api/pick") +public class PickController { + + private final PickService pickService; + + @Log("导出数据") + @ApiOperation("导出数据") + @GetMapping(value = "/download") + @PreAuthorize("@el.check('pick:list')") + public void exportPick(HttpServletResponse response, PickQueryCriteria criteria) throws IOException { + pickService.download(pickService.queryAll(criteria), response); + } + + @GetMapping + @Log("查询pick") + @ApiOperation("查询pick") + @PreAuthorize("@el.check('pick:list')") + public ResponseEntity queryPick(PickQueryCriteria criteria, Pageable pageable){ + return new ResponseEntity<>(pickService.queryAll(criteria,pageable),HttpStatus.OK); + } + + @PostMapping + @Log("新增pick") + @ApiOperation("新增pick") + @PreAuthorize("@el.check('pick:add')") + public ResponseEntity createPick(@Validated @RequestBody Pick resources){ + return new ResponseEntity<>(pickService.create(resources),HttpStatus.CREATED); + } + + @PutMapping + @Log("修改pick") + @ApiOperation("修改pick") + @PreAuthorize("@el.check('pick:edit')") + public ResponseEntity updatePick(@Validated @RequestBody Pick resources){ + pickService.update(resources); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @DeleteMapping + @Log("删除pick") + @ApiOperation("删除pick") + @PreAuthorize("@el.check('pick:del')") + public ResponseEntity deletePick(@RequestBody Long[] ids) { + pickService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } +} \ No newline at end of file diff --git a/youchain-system/src/main/java/com/youchain/businessdata/rest/TaskController.java b/youchain-system/src/main/java/com/youchain/businessdata/rest/TaskController.java index 860a6c4..a5760c1 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/rest/TaskController.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/rest/TaskController.java @@ -68,6 +68,14 @@ public class TaskController { public ResponseEntity queryTask(TaskQueryCriteria criteria, Pageable pageable){ return new ResponseEntity<>(taskService.queryAll(criteria,pageable),HttpStatus.OK); } + @PostMapping("/manualReceiving") + @Log("人工入库") + @ApiOperation("人工入库") + @AnonymousAccess + public ResponseEntity manualReceiving(@RequestBody JSONObject request){ + ApiResult apiResult = taskService.manualReceiving(request); + return new ResponseEntity<>(ApiResult.success(apiResult.getMessage(),apiResult.getData()), HttpStatus.valueOf(apiResult.getStatus())); + } @GetMapping(value = "/queryAsnTask") @@ -118,7 +126,8 @@ public class TaskController { @AnonymousAccess public ResponseEntity readRfid(@RequestBody JSONObject body) { String rfid=body.getString("rfid"); - ApiResult apiResult = taskService.readRfid(rfid); + String type=body.getString("type"); + ApiResult apiResult = taskService.readRfid(rfid,type); return new ResponseEntity<>(apiResult, HttpStatus.valueOf(apiResult.getStatus())); } } diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/AsnDetailService.java b/youchain-system/src/main/java/com/youchain/businessdata/service/AsnDetailService.java index 5a308c8..62361a4 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/AsnDetailService.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/AsnDetailService.java @@ -16,13 +16,10 @@ package com.youchain.businessdata.service; import com.alibaba.fastjson.JSONObject; -import com.youchain.basicdata.domain.Item; -import com.youchain.basicdata.domain.Point; -import com.youchain.basicdata.domain.Stock; -import com.youchain.basicdata.service.dto.StockDto; import com.youchain.businessdata.domain.AsnDetail; import com.youchain.businessdata.service.dto.AsnDetailDto; import com.youchain.businessdata.service.dto.AsnDetailQueryCriteria; +import com.youchain.exception.handler.ApiResult; import org.springframework.data.domain.Pageable; import java.util.Map; import java.util.List; diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/PickDetailService.java b/youchain-system/src/main/java/com/youchain/businessdata/service/PickDetailService.java index 979eab3..89d2da4 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/PickDetailService.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/PickDetailService.java @@ -15,6 +15,7 @@ */ package com.youchain.businessdata.service; +import com.alibaba.fastjson.JSONObject; import com.youchain.basicdata.domain.Box; import com.youchain.basicdata.domain.Item; import com.youchain.basicdata.domain.Point; @@ -22,6 +23,7 @@ import com.youchain.basicdata.service.dto.BoxDto; import com.youchain.businessdata.domain.PickDetail; import com.youchain.businessdata.service.dto.PickDetailDto; import com.youchain.businessdata.service.dto.PickDetailQueryCriteria; +import com.youchain.exception.handler.ApiResult; import org.springframework.data.domain.Pageable; import java.util.Map; import java.util.List; @@ -119,4 +121,11 @@ public interface PickDetailService { PickDetail toEntity(PickDetailDto pickDetailDto); PickDetail createPickDetail(Item item,String po); + + /** + * 出库单接收 + * @param jsonObject + * @return + */ + ApiResult importPtApi(JSONObject jsonObject); } diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/PickService.java b/youchain-system/src/main/java/com/youchain/businessdata/service/PickService.java new file mode 100644 index 0000000..ebcf668 --- /dev/null +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/PickService.java @@ -0,0 +1,83 @@ +/* +* Copyright 2019-2020 Zheng Jie +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +package com.youchain.businessdata.service; + +import com.youchain.businessdata.domain.Pick; +import com.youchain.businessdata.service.dto.PickDto; +import com.youchain.businessdata.service.dto.PickQueryCriteria; +import org.springframework.data.domain.Pageable; +import java.util.Map; +import java.util.List; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; + +/** +* @website https://eladmin.vip +* @description 服务接口 +* @author hjl +* @date 2024-03-11 +**/ +public interface PickService { + + /** + * 查询数据分页 + * @param criteria 条件 + * @param pageable 分页参数 + * @return Map + */ + Map queryAll(PickQueryCriteria criteria, Pageable pageable); + + /** + * 查询所有数据不分页 + * @param criteria 条件参数 + * @return List + */ + List queryAll(PickQueryCriteria criteria); + + /** + * 根据ID查询 + * @param id ID + * @return PickDto + */ + PickDto findById(Long id); + + /** + * 创建 + * @param resources / + * @return PickDto + */ + PickDto create(Pick resources); + + /** + * 编辑 + * @param resources / + */ + void update(Pick resources); + + /** + * 多选删除 + * @param ids / + */ + void deleteAll(Long[] ids); + + /** + * 导出数据 + * @param all 待导出的数据 + * @param response / + * @throws IOException / + */ + void download(List all, HttpServletResponse response) throws IOException; +} \ No newline at end of file diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/TaskService.java b/youchain-system/src/main/java/com/youchain/businessdata/service/TaskService.java index b27e4a3..86ff08d 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/TaskService.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/TaskService.java @@ -15,6 +15,8 @@ */ package com.youchain.businessdata.service; +import com.alibaba.fastjson.JSONObject; +import com.youchain.basicdata.domain.Point; import com.youchain.businessdata.ReturnJson.RPTaskList; import com.youchain.businessdata.domain.AgvTask; import com.youchain.businessdata.domain.Task; @@ -129,5 +131,14 @@ public interface TaskService { List findByPointCode(Long boxId); - ApiResult readRfid(String rfid); + /** + * 读取RFID生成Task任务 + * @param rfid + * @param type + * @return + */ + ApiResult readRfid(String rfid,String type); + + ApiResult manualReceiving(JSONObject request); + ApiResult getAsnTask(Point point, Task task); } diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/dto/PickDto.java b/youchain-system/src/main/java/com/youchain/businessdata/service/dto/PickDto.java new file mode 100644 index 0000000..87576cd --- /dev/null +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/dto/PickDto.java @@ -0,0 +1,84 @@ +/* +* Copyright 2019-2020 Zheng Jie +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +package com.youchain.businessdata.service.dto; + +import lombok.Data; +import java.sql.Timestamp; +import java.io.Serializable; + +/** +* @website https://eladmin.vip +* @description / +* @author hjl +* @date 2024-03-11 +**/ +@Data +public class PickDto implements Serializable { + + /** ID */ + private Long id; + + /** 仓库ID */ + private Long deptId; + + /** 单据类型ID */ + private String billTypeId; + + /** 订单来源 */ + private Long orderOrigin; + + /** 优先级 */ + private Long priority; + + /** 货主 */ + private String owner; + + /** 系统单号 */ + private String relatedBill1; + + /** 客户订单号 */ + private String relatedBill2; + + /** 来源名称 */ + private String sourceName; + + /** 订单状态 */ + private String status; + + /** 合并或分阶段处理的地点 */ + private String address; + + /** 发货时间 */ + private Long dispatchDate; + + /** 操作时间 */ + private Long erTime; + + /** 创建人 */ + private String createBy; + + /** 修改人 */ + private String updateBy; + + /** 创建时间 */ + private Timestamp createTime; + + /** 修改时间 */ + private Timestamp updateTime; + + /** 订单时间 */ + private Timestamp orderDate; +} \ No newline at end of file diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/dto/PickQueryCriteria.java b/youchain-system/src/main/java/com/youchain/businessdata/service/dto/PickQueryCriteria.java new file mode 100644 index 0000000..1de2895 --- /dev/null +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/dto/PickQueryCriteria.java @@ -0,0 +1,35 @@ +/* +* Copyright 2019-2020 Zheng Jie +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +package com.youchain.businessdata.service.dto; + +import lombok.Data; +import java.util.List; +import com.youchain.annotation.Query; + +/** +* @website https://eladmin.vip +* @author hjl +* @date 2024-03-11 +**/ +@Data +public class PickQueryCriteria{ + /** BETWEEN */ + @Query(type = Query.Type.BETWEEN) + private List dispatchDate; + /** BETWEEN */ + @Query(type = Query.Type.BETWEEN) + private List erTime; +} \ No newline at end of file diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/AgvTaskServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/AgvTaskServiceImpl.java index 4feaddf..0fe388a 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/AgvTaskServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/AgvTaskServiceImpl.java @@ -159,26 +159,48 @@ public class AgvTaskServiceImpl implements AgvTaskService { } /** - * @param agvTasks + * @param agvTask * @return */ @Override - public synchronized String sendAgvTaskImpl(AgvTask agvTasks) { + public synchronized String sendAgvTaskImpl(AgvTask agvTask) { JSONObject jsonObject = new JSONObject(new LinkedHashMap<>()); - - String resultJson = HttpPostUtil.sendPostReq(UrlApi.submitMission, jsonObject.toString());//返回ResponseJson*/ + String api=""; + if (agvTask.getType().equals(BizStatus.AGV)) { + //搬运任务 + jsonObject.put("requestId", agvTask.getId()); + jsonObject.put("missionCode", agvTask.getId()); + jsonObject.put("priority", agvTask.getJobPriority()); + jsonObject.put("containerModeCode", agvTask.getStockTypeCode()); + jsonObject.put("startPosition", agvTask.getStartSlotCode()); + jsonObject.put("endPosition", agvTask.getEndSlotCode()); + api=UrlApi.submitMission; + } + if (agvTask.getType().equals(BizStatus.AGV_R)){ + jsonObject.put("requestId", agvTask.getId()); + jsonObject.put("containerModeCode", agvTask.getStockTypeCode()); +// jsonObject.put("containerCode", agvTask.getStockTypeCode()); + jsonObject.put("position", agvTask.getEndSlotCode()); + api=UrlApi.containerIn; + } + if (agvTask.getType().equals(BizStatus.AGV_C)){ + jsonObject.put("requestId", agvTask.getId()); + jsonObject.put("position", agvTask.getEndSlotCode()); + api=UrlApi.containerOut; + } + String resultJson = HttpPostUtil.sendPostReq(api, jsonObject.toString());//返回ResponseJson*/ JSONObject resulObject = JSON.parseObject(resultJson); String code = resulObject.getString("code") == null ? "" : resulObject.getString("code"); if (code.equals("0")) { - agvTasks.setStatus(BizStatus.ATCALL); - agvTasks.setJobMessage(resultJson); - agvTasks.setReqMessage(jsonObject.toString()); - agvTasks.setStartTime(new Timestamp(new Date().getTime())); - update(agvTasks); + agvTask.setStatus(BizStatus.ATCALL); + agvTask.setJobMessage(resultJson); + agvTask.setReqMessage(jsonObject.toString()); + agvTask.setStartTime(new Timestamp(new Date().getTime())); + update(agvTask); } else { - agvTasks.setJobMessage(resultJson); - agvTasks.setReqMessage(jsonObject.toString()); - update(agvTasks); + agvTask.setJobMessage(resultJson); + agvTask.setReqMessage(jsonObject.toString()); + update(agvTask); } return resultJson; } @@ -443,7 +465,7 @@ public class AgvTaskServiceImpl implements AgvTaskService { AgvTask agvTask=agvTaskRepository.getById(Integer.valueOf(taskCode)); // task库存任务 // List tasks=taskRepository.getAgvTaskList(agvTask.getId(),BizStatus.ASN); - List> taskMapList=taskRepository.findByAgvTask(agvTask.getId()); + List> taskMapList=taskRepository.findByAgvTask(agvTask.getId(),"ASN",1l); Point startPoint=null; Point endPoint=null; if (status.equals("1")){ @@ -612,7 +634,7 @@ public class AgvTaskServiceImpl implements AgvTaskService { if (!endPoint.getStatus().equals(BaseStatus.FREE)){ return endPoint.getCode()+":被任务占用"; } - AgvTask agvTask = addAgvTask(BizStatus.AGV_F, startPoint.getStorageType(), startPoint.getCode(),endPoint.getCode() , BizStatus.OPEN, BizStatus.ASN); + AgvTask agvTask = addAgvTask(BizStatus.AGV, startPoint.getStorageType(), startPoint.getCode(),endPoint.getCode() , BizStatus.OPEN, BizStatus.ASN); }else { return pointEndCode+":目标点错误"; } @@ -657,15 +679,9 @@ public class AgvTaskServiceImpl implements AgvTaskService { List taskList=taskRepository.findByItemType(BizStatus.RECEIVING,1,"SMGS"); for (int i = 0; i < taskList.size(); i++) { Task task=taskList.get(i); - task.setDstPoint(point); - task.setMoveQty(task.getPlanQty()); - List asnDetailList=asnDetailRepository.findByAsnAndItem(task.getBillCode(),task.getItemKey().getItem().getCode()); - if (asnDetailList.size()>0){ - AsnDetail asnDetail=asnDetailList.get(0); - asnDetailService.receivingAsnDetail(asnDetail,task.getMoveQty()); - }else { - return ApiResult.success(500, "收货单异常!!", ""); - } + //跟新Task任务 + ApiResult success = taskService.getAsnTask(point, task); + if (success != null) return success; AgvTask agvTask=addAgvTask("叉车搬运", "半成品托盘", task.getSrcPoint().getCode(), point.getCode(), BizStatus.OPEN, "ASN2"); task.setAgvTask(agvTask); taskRepository.save(task); diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickDetailServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickDetailServiceImpl.java index fe37e40..122828f 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickDetailServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickDetailServiceImpl.java @@ -15,6 +15,8 @@ */ package com.youchain.businessdata.service.impl; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.youchain.basicdata.domain.Box; import com.youchain.basicdata.domain.Item; import com.youchain.basicdata.domain.Point; @@ -408,4 +410,16 @@ public class PickDetailServiceImpl implements PickDetailService { return d; } + @Override + public ApiResult importPtApi(JSONObject jsonObject) { + JSONArray orders=jsonObject.getJSONArray("order"); + for (int i = 0; i < orders.size(); i++) { + PickDetail pickDetail = new PickDetail(); + + JSONObject order=orders.getJSONObject(i); + + } + return null; + } + } diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickServiceImpl.java new file mode 100644 index 0000000..86eaf91 --- /dev/null +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickServiceImpl.java @@ -0,0 +1,120 @@ +/* +* Copyright 2019-2020 Zheng Jie +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +package com.youchain.businessdata.service.impl; + +import com.youchain.businessdata.domain.Pick; +import com.youchain.utils.FileUtil; +import com.youchain.utils.PageUtil; +import com.youchain.utils.QueryHelp; +import com.youchain.utils.ValidationUtil; +import lombok.RequiredArgsConstructor; +import com.youchain.businessdata.repository.PickRepository; +import com.youchain.businessdata.service.PickService; +import com.youchain.businessdata.service.dto.PickDto; +import com.youchain.businessdata.service.dto.PickQueryCriteria; +import com.youchain.businessdata.service.mapstruct.PickMapper; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import java.util.List; +import java.util.Map; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.LinkedHashMap; + +/** +* @website https://eladmin.vip +* @description 服务实现 +* @author hjl +* @date 2024-03-11 +**/ +@Service +@RequiredArgsConstructor +public class PickServiceImpl implements PickService { + + private final PickRepository pickRepository; + private final PickMapper pickMapper; + + @Override + public Map queryAll(PickQueryCriteria criteria, Pageable pageable){ + Page page = pickRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); + return PageUtil.toPage(page.map(pickMapper::toDto)); + } + + @Override + public List queryAll(PickQueryCriteria criteria){ + return pickMapper.toDto(pickRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder))); + } + + @Override + @Transactional + public PickDto findById(Long id) { + Pick pick = pickRepository.findById(id).orElseGet(Pick::new); + ValidationUtil.isNull(pick.getId(),"Pick","id",id); + return pickMapper.toDto(pick); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public PickDto create(Pick resources) { + return pickMapper.toDto(pickRepository.save(resources)); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(Pick resources) { + Pick pick = pickRepository.findById(resources.getId()).orElseGet(Pick::new); + ValidationUtil.isNull( pick.getId(),"Pick","id",resources.getId()); + pick.copy(resources); + pickRepository.save(pick); + } + + @Override + public void deleteAll(Long[] ids) { + for (Long id : ids) { + pickRepository.deleteById(id); + } + } + + @Override + public void download(List all, HttpServletResponse response) throws IOException { + List> list = new ArrayList<>(); + for (PickDto pick : all) { + Map map = new LinkedHashMap<>(); + map.put("仓库ID", pick.getDeptId()); + map.put("单据类型ID", pick.getBillTypeId()); + map.put("订单来源", pick.getOrderOrigin()); + map.put("优先级", pick.getPriority()); + map.put("货主", pick.getOwner()); + map.put("系统单号", pick.getRelatedBill1()); + map.put("客户订单号", pick.getRelatedBill2()); + map.put("来源名称", pick.getSourceName()); + map.put("订单状态", pick.getStatus()); + map.put("合并或分阶段处理的地点", pick.getAddress()); + map.put("发货时间", pick.getDispatchDate()); + map.put("操作时间", pick.getErTime()); + map.put("创建人", pick.getCreateBy()); + map.put("修改人", pick.getUpdateBy()); + map.put("创建时间", pick.getCreateTime()); + map.put("修改时间", pick.getUpdateTime()); + map.put("订单时间", pick.getOrderDate()); + list.add(map); + } + FileUtil.downloadExcel(list, response); + } +} \ No newline at end of file diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/TaskServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/TaskServiceImpl.java index eb52b88..89ba761 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/TaskServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/TaskServiceImpl.java @@ -29,15 +29,12 @@ import com.youchain.businessdata.ReturnJson.RPTaskList; import com.youchain.businessdata.domain.*; import com.youchain.businessdata.inputJson.IPTask; import com.youchain.businessdata.repository.*; -import com.youchain.businessdata.service.AsnService; -import com.youchain.businessdata.service.InventoryLogService; -import com.youchain.businessdata.service.ItemKeyService; +import com.youchain.businessdata.service.*; import com.youchain.businessdata.service.dto.InventoryDto; import com.youchain.exception.handler.ApiResult; import com.youchain.modules.system.domain.Dept; import com.youchain.utils.*; import lombok.RequiredArgsConstructor; -import com.youchain.businessdata.service.TaskService; import com.youchain.businessdata.service.dto.TaskDto; import com.youchain.businessdata.service.dto.TaskQueryCriteria; import com.youchain.businessdata.service.mapstruct.TaskMapper; @@ -66,13 +63,17 @@ import javax.servlet.http.HttpServletResponse; @Service @RequiredArgsConstructor @Slf4j +@Transactional public class TaskServiceImpl implements TaskService { private final TaskRepository taskRepository; private final TaskMapper taskMapper; private final AsnRepository asnRepository; private final InventoryRepository inventoryRepository; + private final InventoryService inventoryService; private final PickDetailRepository pickDetailRepository; + private final AsnDetailRepository asnDetailRepository; + private final AsnDetailService asnDetailService; private final InventoryLogService inventoryLogService; private final EntityManager entityMapper; private final StockRepository stockRepository; @@ -278,7 +279,7 @@ public class TaskServiceImpl implements TaskService { @Override @Transactional - public ApiResult readRfid(String rfid) { + public ApiResult readRfid(String rfid,String type) { String[] rfids=rfid.split("\\|"); String itemCode=rfids[0]+""; String propC1=rfids[1]+""; @@ -332,7 +333,11 @@ public class TaskServiceImpl implements TaskService { task.setPlanQty(1d); task.setDept(UserUtils.getDept()); task.setTaskStatus(BizStatus.RECEIVING); - task.setBeSkip(1); + if (type.equals("AGV")) { + task.setBeSkip(1); + } else if (type.equals("RG")) { + task.setBeSkip(0); + } task.setPutCode(lsh[i]); task.setBillCode(propC3); task.setTaskType(BizStatus.ASN); @@ -343,6 +348,30 @@ public class TaskServiceImpl implements TaskService { return ApiResult.result(200, "操作成功", ""); } + @Override + public ApiResult manualReceiving(JSONObject request) { + String rfid=request.getString("RFID"); + Point point= pointRepository.getById(request.getLong("pointId")); + System.out.println("rfid:"+rfid); + // 读取RFID生成Task + ApiResult apiResult = readRfid(rfid, "RG"); + if (apiResult.getStatus()!=200){ + return apiResult; + } + // 分配Task库位 + List taskList=taskRepository.findByItemType(BizStatus.RECEIVING,0,BizStatus.SMGS); + for (int i = 0; i < taskList.size(); i++) { + Task task=taskList.get(i); + getAsnTask(point, task); + taskRepository.save(task); + } + // 生成库存 + List> taskMapList=taskRepository.findByAgvTask(null,"ASN",0l); + Inventory inventory = inventoryService.asnAddInventory(taskMapList); + + return ApiResult.result(200, "操作成功", ""); + } + public List queryAreaMonth(String type) { List taskList=null; String hql = ""; @@ -379,4 +408,17 @@ public class TaskServiceImpl implements TaskService { taskList = query.getResultList(); return taskList; } + + public ApiResult getAsnTask(Point point, Task task) { + task.setDstPoint(point); + task.setMoveQty(task.getPlanQty()); + List asnDetailList=asnDetailRepository.findByAsnAndItem(task.getBillCode(), task.getItemKey().getItem().getCode()); + if (asnDetailList.size()>0){ + AsnDetail asnDetail=asnDetailList.get(0); + asnDetailService.receivingAsnDetail(asnDetail, task.getMoveQty()); + }else { + return ApiResult.success(500, "收货单异常!!", ""); + } + return null; + } } diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/mapstruct/PickMapper.java b/youchain-system/src/main/java/com/youchain/businessdata/service/mapstruct/PickMapper.java new file mode 100644 index 0000000..a56cad4 --- /dev/null +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/mapstruct/PickMapper.java @@ -0,0 +1,32 @@ +/* +* Copyright 2019-2020 Zheng Jie +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +package com.youchain.businessdata.service.mapstruct; + +import com.youchain.base.BaseMapper; +import com.youchain.businessdata.domain.Pick; +import com.youchain.businessdata.service.dto.PickDto; +import org.mapstruct.Mapper; +import org.mapstruct.ReportingPolicy; + +/** +* @website https://eladmin.vip +* @author hjl +* @date 2024-03-11 +**/ +@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE) +public interface PickMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/youchain-system/src/main/java/com/youchain/utils/BizStatus.java b/youchain-system/src/main/java/com/youchain/utils/BizStatus.java index 332194c..bbfe67e 100644 --- a/youchain-system/src/main/java/com/youchain/utils/BizStatus.java +++ b/youchain-system/src/main/java/com/youchain/utils/BizStatus.java @@ -208,9 +208,12 @@ public interface BizStatus { */ public static String EMPTY_OUT = "EMPTY_OUT"; - /** AGV叉车任务*/ - public static String AGV_F="AGV_F"; - - /** AGV潜伏车任务*/ - public static String AGV_R="AGV_R"; + /** AGV_搬运任务*/ + public static String AGV="AGV"; + /** AGV_容器入场*/ + String AGV_R="AGV_R"; + /** AGV_容器出场*/ + String AGV_C="AGV_C"; + /** 半成品入库*/ + String SMGS="SMGS"; } diff --git a/youchain-system/src/main/java/com/youchain/utils/UrlApi.java b/youchain-system/src/main/java/com/youchain/utils/UrlApi.java index 3bcdd73..da9c597 100644 --- a/youchain-system/src/main/java/com/youchain/utils/UrlApi.java +++ b/youchain-system/src/main/java/com/youchain/utils/UrlApi.java @@ -9,12 +9,12 @@ public class UrlApi { /** * 容器入场 */ - public static String containerIn = "http://10.177.202.230:10870/interfaces/api/amr/containerIn"; + public static String containerIn = "http://localhost:8000/interfaces/api/amr/containerIn"; /** * 容器相关操作,出场 */ - public static String containerOut = "http://10.177.202.230:10870/interfaces/api/amr/containerOut"; + public static String containerOut = "http://localhost:8000/interfaces/api/amr/containerOut"; /** * 容器相关操作,查询容器信息