From fa5b8238f31749cc4b0469df317b5849da08a419 Mon Sep 17 00:00:00 2001 From: verou <857149855@qq.com> Date: 星期日, 30 三月 2025 14:53:15 +0800 Subject: [PATCH] Merge branch 'devlop' of http://47.97.1.152:5880/r/wms-master into devlop --- rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WaitPakinController.java | 24 ++++ rsf-server/src/main/java/com/vincent/rsf/server/system/constant/SerialRuleCode.java | 5 + rsf-server/src/main/java/com/vincent/rsf/server/api/controller/MobileController.java | 2 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java | 30 ++++-- rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/PakinItem.java | 2 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java | 1 rsf-server/src/main/java/com/vincent/rsf/server/api/entity/enums/TaskStsType.java | 56 +++++++++++ rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java | 50 ++++++++++ /dev/null | 31 ------ rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Task.java | 3 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WaitPakinItem.java | 1 rsf-server/src/main/resources/application.yml | 2 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/TaskService.java | 5 + rsf-server/src/main/java/com/vincent/rsf/server/api/entity/enums/TaskType.java | 29 +++++ 14 files changed, 193 insertions(+), 48 deletions(-) diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/MobileController.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/MobileController.java index 3de8e21..bfa87a9 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/MobileController.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/MobileController.java @@ -129,7 +129,7 @@ if (StringUtils.isBlank(code)) { return R.error("缂栫爜涓嶈兘涓虹┖锛侊紒"); } - return R.ok(mobileService.getDeltByCode(code)); + return mobileService.getDeltByCode(code); } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/enums/TaskStsType.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/enums/TaskStsType.java new file mode 100644 index 0000000..53568c0 --- /dev/null +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/enums/TaskStsType.java @@ -0,0 +1,56 @@ +package com.vincent.rsf.server.api.entity.enums; + +public enum TaskStsType { + + GENERATE_IN(1L, "鍒涘缓鍏ュ簱浠诲姟"), + WCS_EXECUTE_IN(2L, "RCS浠诲姟宸蹭笅鍙�"), + WCS_CONTAINER_RECEIVE(3L, "RCS瀹瑰櫒鍒拌揪"), + + WCS_CONVEYOR_START(4L, "RCS瀹瑰櫒娴佸姩浠诲姟宸蹭笅鍙�"), + + WCS_TOTE_LOAD(5L, "RCS鍙栫瀹屾垚"), + + WCS_TOTE_UNLOAD(6L, "RCS鏀剧瀹屾垚"), + + WCS_PUTAWAY_SUCESS(7L, "RCS浠诲姟瀹屾垚"), + +// WCS_PUTAWAY_FAILED(11L, "浠诲姟澶辫触"), +// +// WCS_PUTAWAY_CANCEL(12L, "浠诲姟鍙栨秷"), +// +// WCS_PUTAWAY_SUSPEND(13L, "鍏ュ簱浠诲姟鎸傝捣"), + + COMPLETE_IN(99L, "鍏ュ簱瀹屾垚"), + + UPDATED_IN(100L, "搴撳瓨鏇存柊瀹屾垚"), + + GENERATE_OUT(101L, "鍒涘缓鍑哄簱浠诲姟"), + + WCS_EXECUTE_OUT(102L, "RCS鍑哄簱浠诲姟宸蹭笅鍙�"), + + WCS_EXECUTE_OUT_TOTE_LOAD(103L, "RCS鍙栫瀹屾垚"), + + WCS_EXECUTE_OUT_TOTE_UNLOAD(104L, "RCS鏀剧瀹屾垚"), + + WCS_EXECUTE_OUT_TASK_DONE(105L, "RCS浠诲姟瀹屾垚"), + + WCS_EXECUTE_OUT_ARRIVED(106L, "RCS瀹瑰櫒宸插埌杈�"), + + WCS_EXECUTE_OUT_CONVEYOR(107L, "RCS瀹瑰櫒娴佸姩浠诲姟宸蹭笅鍙�"), + + GENERATE_WAVE_SEED(197L, "绛夊緟瀹瑰櫒鍒拌揪"), + WAVE_SEED(198L, "鎾涓�"), + + COMPLETE_OUT(199L, "鍑哄簱瀹屾垚"), + UPDATED_OUT(200L, "搴撳瓨鏇存柊瀹屾垚"), + ; + + public Long id; + public String desc; + + TaskStsType(Long id, String desc) { + this.id = id; + this.desc = desc; + } + +} diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/enums/TaskType.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/enums/TaskType.java new file mode 100644 index 0000000..7d80e4b --- /dev/null +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/enums/TaskType.java @@ -0,0 +1,29 @@ +package com.vincent.rsf.server.api.entity.enums; + +/** + * @author Ryan + * @version 1.0 + * @title TaskType + * @description + * @create 2025/3/29 17:02 + */ +public enum TaskType { + TASK_TYPE_EMPITY_IN(10L, "绌烘澘鍏ュ簱"), + TASK_TYPE_LOC_MOVE(11L, "搴撴牸绉昏浇"), + TASK_TYPE_PICK_IN(53L, "鎷f枡鍐嶅叆搴�"), + TASK_TYPE_MERGE_IN(54L, "骞舵澘鍐嶅叆搴�"), + TASK_TYPE_CHECK_IN(57L, "鐩樼偣鍐嶅叆搴�"), + TASK_TYPE_OUT(101L, "鍑哄簱"), + TASK_TYPE_PICK_AGAIN_IN(103L, "鎷f枡鍏ュ簱"), + TASK_TYPE_MERGE_OUT(104L, "骞舵澘鍑哄簱"), + TASK_TYPE_CHECK_OUT(107L, "鐩樼偣鍑哄簱"), + TASK_TYPE_EMPITY_OUT(110L, "绌烘澘鍑哄簱"), + ; + public Long type; + public String desc; + + TaskType(Long type, String desc) { + this.type = type; + this.desc = desc; + } +} diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java index ec32e23..4d4d0c4 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java @@ -414,7 +414,6 @@ @Override public WaitPakin unBind(WaitPakinParam param) { - return waitPakinService.unBind(param); } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WaitPakinController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WaitPakinController.java index b1175b6..9bc3c5d 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WaitPakinController.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WaitPakinController.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.vincent.rsf.framework.common.Cools; import com.vincent.rsf.framework.common.R; +import com.vincent.rsf.framework.exception.CoolException; import com.vincent.rsf.server.common.utils.ExcelUtil; import com.vincent.rsf.server.common.annotation.OperationLog; import com.vincent.rsf.server.common.domain.BaseParam; @@ -11,6 +12,7 @@ import com.vincent.rsf.server.common.domain.PageParam; import com.vincent.rsf.server.manager.controller.params.WaitPakinParam; import com.vincent.rsf.server.manager.entity.WaitPakin; +import com.vincent.rsf.server.manager.service.TaskService; import com.vincent.rsf.server.manager.service.WaitPakinService; import com.vincent.rsf.server.system.controller.BaseController; import io.swagger.annotations.Api; @@ -29,6 +31,9 @@ @Autowired private WaitPakinService waitPakinService; + + @Autowired + private TaskService taskService; @PreAuthorize("hasAuthority('manager:waitPakin:list')") @PostMapping("/waitPakin/page") @@ -61,9 +66,14 @@ @PostMapping("/waitPakin/save") public R save(@RequestBody WaitPakin waitPakin) { waitPakin.setCreateBy(getLoginUserId()); - waitPakin.setCreateTime(new Date()); waitPakin.setUpdateBy(getLoginUserId()); - waitPakin.setUpdateTime(new Date()); + if (Objects.isNull(waitPakin.getBarcode()) || StringUtils.isBlank(waitPakin.getBarcode())) { + return R.error("鎷栫洏鐮佷笉鑳戒负绌猴紒锛�"); + } + List<WaitPakin> list = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, waitPakin.getBarcode())); + if (!list.isEmpty()) { + return R.error("鎷栫洏宸茬粍鎷栵紒锛�"); + } if (!waitPakinService.save(waitPakin)) { return R.error("Save Fail"); } @@ -113,4 +123,14 @@ } + @PreAuthorize("hasAuthority('manager:waitPakin:update')") + @ApiOperation("鐢熸垚浠诲姟鍒楄〃") + @PostMapping("/waitPakin/merge") + public R generateTask(@RequestBody List<WaitPakin> waitPakin) { + if (Objects.isNull(waitPakin) || waitPakin.isEmpty()) { + throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒"); + } + return taskService.generateTasks(waitPakin); + } + } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/PakinItem.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/PakinItem.java index 7537545..1c3760a 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/PakinItem.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/PakinItem.java @@ -14,6 +14,6 @@ private Long matnrId; - private Double qty; + private Double receiptQty; } \ No newline at end of file diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Task.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Task.java index d43295f..6fe7559 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Task.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Task.java @@ -2,6 +2,8 @@ import java.text.SimpleDateFormat; import java.util.Date; + +import lombok.experimental.Accessors; import org.springframework.format.annotation.DateTimeFormat; import java.text.SimpleDateFormat; import java.util.Date; @@ -26,6 +28,7 @@ import java.util.Date; @Data +@Accessors(chain = true) @TableName("man_task") public class Task implements Serializable { diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WaitPakinItem.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WaitPakinItem.java index 8b8a3d3..af39e02 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WaitPakinItem.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WaitPakinItem.java @@ -131,7 +131,6 @@ * 鏄惁鍒犻櫎 1: 鏄� 0: 鍚� */ @ApiModelProperty(value= "鏄惁鍒犻櫎 1: 鏄� 0: 鍚� ") - @TableLogic private Integer deleted; /** diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/TaskService.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/TaskService.java index 24be116..c48d0e6 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/TaskService.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/TaskService.java @@ -1,8 +1,13 @@ package com.vincent.rsf.server.manager.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.vincent.rsf.framework.common.R; import com.vincent.rsf.server.manager.entity.Task; +import com.vincent.rsf.server.manager.entity.WaitPakin; + +import java.util.List; public interface TaskService extends IService<Task> { + R generateTasks(List<WaitPakin> waitPakin); } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java index 3cfa531..cbe445e 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java @@ -1,12 +1,62 @@ package com.vincent.rsf.server.manager.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.vincent.rsf.server.api.entity.enums.TaskStsType; +import com.vincent.rsf.framework.common.R; +import com.vincent.rsf.framework.exception.CoolException; +import com.vincent.rsf.server.manager.entity.WaitPakin; +import com.vincent.rsf.server.manager.entity.WaitPakinItem; import com.vincent.rsf.server.manager.mapper.TaskMapper; import com.vincent.rsf.server.manager.entity.Task; import com.vincent.rsf.server.manager.service.TaskService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.vincent.rsf.server.manager.service.WaitPakinItemService; +import com.vincent.rsf.server.manager.service.WaitPakinService; +import com.vincent.rsf.server.system.constant.SerialRuleCode; +import com.vincent.rsf.server.system.utils.SerialRuleUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; @Service("taskService") public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements TaskService { + @Autowired + private WaitPakinService waitPakinService; + + @Autowired + private WaitPakinItemService waitPakinItemService; + + /** + * @author Ryan + * @description 鐢熸垚浠诲姟鍒楄〃 + * @param + * @return + * @time 2025/3/29 15:59 + */ + @Override + public R generateTasks(List<WaitPakin> waitPakin) { + if (Objects.isNull(waitPakin) || waitPakin.isEmpty()) { + throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒"); + } + /**鑾峰彇缁勬嫋*/ + List<Long> ids = waitPakin.stream().map(WaitPakin::getId).collect(Collectors.toList()); + List<WaitPakin> waitPakins = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().in(WaitPakin::getId, ids)); + if (waitPakins.isEmpty()) { + throw new CoolException("缁勬嫋淇℃伅涓嶅瓨鍦紒锛�"); + } + /**鑾峰彇缁勬嫋鏄庣粏**/ + List<WaitPakinItem> waitPakinItems = waitPakinItemService.list(new LambdaQueryWrapper<WaitPakinItem>().eq(WaitPakinItem::getPakinId, ids)); + if (waitPakinItems.isEmpty()) { + throw new CoolException("鏁版嵁閿欒锛氱粍鎷栨槑缁嗕笉瀛樺湪"); + } + Task task = new Task(); + String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_TASK_CODE, null); + task.setTaskCode(ruleCode).setTaskStatus(TaskStsType.GENERATE_IN.id.shortValue()); + + return null; + } } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java index 4a42f57..81875e9 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java @@ -31,20 +31,22 @@ @Service("waitPakinService") public class WaitPakinServiceImpl extends ServiceImpl<WaitPakinMapper, WaitPakin> implements WaitPakinService { - @Autowired - private AsnOrderItemService asnOrderItemService; + @Autowired private AsnOrderService asnOrderService; - + @Autowired + private AsnOrderItemService asnOrderItemService; @Autowired private WaitPakinService waitPakinService; @Autowired private WaitPakinItemService waitPakinItemService; /** - * 鍗曟嵁缁勬嫋 - * @param waitPakin + * @author Ryan + * @description 缁勬嫋 + * @param * @return + * @time 2025/3/29 14:42 */ @Override @Transactional(rollbackFor = Exception.class) @@ -56,7 +58,7 @@ throw new CoolException("鍙傛暟閿欒锛氭墭鐩樼爜涓虹┖锛侊紒"); } - double sum = waitPakin.getItems().stream().mapToDouble(PakinItem::getQty).sum(); + double sum = waitPakin.getItems().stream().mapToDouble(PakinItem::getReceiptQty).sum(); WaitPakin pakin = new WaitPakin(); @@ -100,9 +102,9 @@ .setMatnrCode(item.getMatnrCode()); for (PakinItem waitPakinItem : waitPakin.getItems()) { if (waitPakinItem.getTrackCode().equals(item.getTrackCode())) { - Double v = item.getWorkQty() + waitPakinItem.getQty(); + Double v = item.getWorkQty() + waitPakinItem.getReceiptQty(); pakinItem.setWorkQty(v) - .setAnfme(waitPakinItem.getQty()) + .setAnfme(waitPakinItem.getReceiptQty()) .setTrackCode(waitPakinItem.getTrackCode()); /**鏇存柊鍗曟嵁鎵ц涓簱瀛�*/ if (v.compareTo(item.getAnfme()) > 0) {throw new CoolException("鎵ц涓暟閲忓ぇ浜庢敹璐ф暟閲忥紒锛�");} @@ -120,6 +122,13 @@ return pakin; } + /** + * @author Ryan + * @description 缁勬嫋瑙g粦 + * @param + * @return + * @time 2025/3/29 14:42 + */ @Override public WaitPakin unBind(WaitPakinParam param) { String barcode = param.getBarcode(); @@ -135,11 +144,12 @@ List<Long> list = paramItems.stream().map(PakinItem::getMatnrId).collect(Collectors.toList()); List<WaitPakinItem> pakinItems = waitPakinItemService.list(new LambdaQueryWrapper<WaitPakinItem>() .eq(WaitPakinItem::getPakinId, waitPakins.getId()) - .eq(WaitPakinItem::getMatnrId, list)); + .in(WaitPakinItem::getMatnrId, list)); if (pakinItems.isEmpty()) { throw new CoolException("鏁版嵁閿欒锛氱粍鎷栨槑缁嗕笉瀛樺湪锛侊紒"); } - if (!waitPakinItemService.removeByIds(pakinItems)) { + List<Long> ids = pakinItems.stream().map(WaitPakinItem::getId).collect(Collectors.toList()); + if (!waitPakinItemService.removeByIds(ids)) { throw new CoolException("缁勬嫋鏄庣粏瑙g粦澶辫触锛侊紒"); } return waitPakins; diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/SerialRuleCode.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/SerialRuleCode.java index 4e1985d..47ca82d 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/SerialRuleCode.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/SerialRuleCode.java @@ -43,4 +43,9 @@ * 缁勬嫋缂栫爜鐢熸垚瑙勫垯 */ public final static String SYS_WAIT_PAKIN_CODE = "sys_wait_pakin_code"; + + /** + * 浠诲姟缂栫爜鐢熸垚瑙勫垯 + */ + public final static String SYS_TASK_CODE = "sys_task_code"; } diff --git a/rsf-server/src/main/java/waitPakinItem.sql b/rsf-server/src/main/java/waitPakinItem.sql deleted file mode 100644 index 543f992..0000000 --- a/rsf-server/src/main/java/waitPakinItem.sql +++ /dev/null @@ -1,31 +0,0 @@ --- save waitPakinItem record --- mysql -insert into `sys_menu` ( `name`, `parent_id`, `route`, `component`, `type`, `sort`, `tenant_id`, `status`) values ( 'menu.waitPakinItem', '0', '/manager/waitPakinItem', 'waitPakinItem', '0' , '0', '1' , '1'); - -insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Query 缁勬嫋妗f槑缁�', '', '1', 'manager:waitPakinItem:list', '0', '1', '1'); -insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Create 缁勬嫋妗f槑缁�', '', '1', 'manager:waitPakinItem:save', '1', '1', '1'); -insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Update 缁勬嫋妗f槑缁�', '', '1', 'manager:waitPakinItem:update', '2', '1', '1'); -insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Delete 缁勬嫋妗f槑缁�', '', '1', 'manager:waitPakinItem:remove', '3', '1', '1'); - --- locale menu name -waitPakinItem: 'WaitPakinItem', - --- locale field -waitPakinItem: { - pakinId: "pakinId", - maktx: "maktx", - matnrId: "matnrId", - matnrCode: "matnrCode", - anfme: "anfme", - workQty: "workQty", - unit: "unit", - fieldsIndex: "fieldsIndex", - qty: "qty", - batch: "batch", -}, - --- ResourceContent -import waitPakinItem from './waitPakinItem'; - -case 'waitPakinItem': - return waitPakinItem; diff --git a/rsf-server/src/main/resources/application.yml b/rsf-server/src/main/resources/application.yml index a844729..4a03079 100644 --- a/rsf-server/src/main/resources/application.yml +++ b/rsf-server/src/main/resources/application.yml @@ -23,7 +23,7 @@ # global-config: # field-strategy: 0 configuration: -# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl map-underscore-to-camel-case: true cache-enabled: true call-setters-on-nulls: true -- Gitblit v1.9.1