diff --git a/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java b/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java index 7fd0f38d..e3dc1cce 100644 --- a/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java +++ b/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java @@ -12,9 +12,9 @@ public interface LauncherConstant { /** * nacos 命名空间 */ - String NACOS_NAMESPACE = "feaf627f-a847-463b-8b73-24a0538f526e"; +// String NACOS_NAMESPACE = "feaf627f-a847-463b-8b73-24a0538f526e"; // 生产环境 -// String NACOS_NAMESPACE = "db3f4da1-ae19-4104-8c17-6d9b8f069401"; + String NACOS_NAMESPACE = "db3f4da1-ae19-4104-8c17-6d9b8f069401"; // 测试环境 // String NACOS_NAMESPACE = "6cdd0310-0d61-4f54-891a-7fb06224d9b8"; diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/dashboard/feign/IPartClient.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/dashboard/feign/IPartClient.java index 388d3d8e..5b0de2be 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/dashboard/feign/IPartClient.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/dashboard/feign/IPartClient.java @@ -26,6 +26,8 @@ public interface IPartClient { String REWORK_TASK = API_PREFIX + "/reworkTask"; + String SYNC_PART = API_PREFIX + "/syncPart"; + /** * 获取零件信息 * @param partCode 零件号 @@ -56,4 +58,10 @@ public interface IPartClient { */ @GetMapping(REWORK_TASK) void reworkTask(); + + /** + * 零件同步 + */ + @GetMapping(SYNC_PART) + void syncPart(); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsPartController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsPartController.java index 5e25ca36..6211bad6 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsPartController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsPartController.java @@ -33,6 +33,7 @@ import lombok.AllArgsConstructor; import jakarta.validation.Valid; import org.apache.commons.lang3.StringUtils; +import org.springblade.core.log.annotation.ApiLog; import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.annotation.IsAdmin; import org.springblade.core.mp.support.Condition; @@ -115,8 +116,9 @@ public class DsPartController extends BladeController { @PostMapping("/save") @ApiOperationSupport(order = 4) @Operation(summary = "新增", description = "传入dsPart") - public R syncPDMPart(@Valid @RequestBody DsPartEntity dsPart) { - return R.status(dsPartService.syncPdmPart(dsPart)); + @ApiLog(value = "零件信息表 同步零件信息") + public R syncPDMPart() { + return R.status(dsPartService.syncPart()); } /** diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsTaskBillController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsTaskBillController.java index bb827b01..7dc87cf0 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsTaskBillController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsTaskBillController.java @@ -40,6 +40,7 @@ import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springblade.desk.dashboard.pojo.dto.DsTaskBillDTO; import org.springblade.desk.dashboard.pojo.entity.BsFillingDetailEntity; +import org.springblade.desk.dashboard.service.IBsFillingDetailService; import org.springframework.web.bind.annotation.*; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -70,6 +71,8 @@ public class DsTaskBillController extends BladeController { private final IDsTaskBillService dsTaskBillService; + private final IBsFillingDetailService bsFillingDetailService; + /** * 任务单表 详情 */ @@ -177,7 +180,7 @@ public class DsTaskBillController extends BladeController { * 任务单表 新增 */ @PostMapping("/handleDsTaskBill") - @ApiOperationSupport(order = 4) + @ApiOperationSupport(order = 11) @Operation(summary = "处理特殊工艺任务") public R handleDsTaskBill(@Valid @RequestBody DsTaskBillDTO dto) { Long tbId = dto.getTbId(); @@ -188,4 +191,15 @@ public class DsTaskBillController extends BladeController { return R.status(dsTaskBillService.handleDsTaskBill(tbId,fillMemo,fillingDetailList,deleteIds)); } + + /** + * 任务单表 详情 + */ + @GetMapping("/listFillingDetail") + @ApiOperationSupport(order = 12) + @Operation(summary = "详情", description = "传入dsTaskBill") + public R listFillingDetail(@RequestParam Long busId) { + return R.data(bsFillingDetailService.listFillingDetail(busId,BsFillingDetailEntity.DS_TASK_BILL)); + } + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/feign/PartClient.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/feign/PartClient.java index a0690453..7426b9b1 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/feign/PartClient.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/feign/PartClient.java @@ -45,5 +45,10 @@ public class PartClient implements IPartClient { public void reworkTask() { taskingService.reworkTask(); } + + @Override + public void syncPart() { + partService.syncPart(); + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/BsFillingDetailMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/BsFillingDetailMapper.java index 824d1247..a6e06994 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/BsFillingDetailMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/BsFillingDetailMapper.java @@ -45,4 +45,5 @@ import java.util.List; public interface BsFillingDetailMapper extends BaseMapper { + List listFillingDetail(@Param("busId")Long busId, @Param("busType")String busType); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/DsPartMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/DsPartMapper.java index 32d80437..2614a79a 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/DsPartMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/DsPartMapper.java @@ -35,6 +35,7 @@ import org.apache.ibatis.annotations.Param; import java.time.LocalDate; import java.util.ArrayList; +import java.util.Date; import java.util.List; /** @@ -145,4 +146,6 @@ public interface DsPartMapper extends BaseMapper { DsPartEntity selectByPartCodeAndVersion(@Param("partCode") String partCode, @Param("version")String version); List selectDsPartVersionByIds(@Param("ids") List idList); + + List selectPartByDate(@Param("startDate") Date startDate,@Param("endDate") Date endDate); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/FillingDetailMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/FillingDetailMapper.xml index e6be6ccb..07861118 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/FillingDetailMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/FillingDetailMapper.xml @@ -19,9 +19,11 @@ - - - + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/PartMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/PartMapper.xml index 647f1b24..438b0647 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/PartMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/PartMapper.xml @@ -375,6 +375,11 @@ AND p.is_deleted = 0 + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IBsFillingDetailService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IBsFillingDetailService.java index c39f5fc6..c6fb073c 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IBsFillingDetailService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IBsFillingDetailService.java @@ -43,4 +43,11 @@ import java.util.List; */ public interface IBsFillingDetailService extends BaseService { + /** + * 查询填报明细 + * @param busId + * @param busType + * @return + */ + List listFillingDetail(Long busId, String busType); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsPartService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsPartService.java index c5613301..0267ab5e 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsPartService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsPartService.java @@ -93,10 +93,9 @@ public interface IDsPartService extends BaseService { /** * 同步零件信息 - * @param dsPart * @return */ - boolean syncPdmPart(DsPartEntity dsPart); + boolean syncPart(); /** diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/BsFillingDetailServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/BsFillingDetailServiceImpl.java index cb47a8fa..4186bd48 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/BsFillingDetailServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/BsFillingDetailServiceImpl.java @@ -29,8 +29,11 @@ import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.desk.dashboard.mapper.BsFillingDetailMapper; import org.springblade.desk.dashboard.pojo.entity.BsFillingDetailEntity; import org.springblade.desk.dashboard.service.IBsFillingDetailService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; + /** * 填报明细表 服务实现类 * @@ -40,6 +43,11 @@ import org.springframework.stereotype.Service; @Service public class BsFillingDetailServiceImpl extends BaseServiceImpl implements IBsFillingDetailService { + @Autowired + BsFillingDetailMapper bsFillingDetailMapper; - + @Override + public List listFillingDetail(Long busId, String busType) { + return bsFillingDetailMapper.listFillingDetail(busId,busType); + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsPartServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsPartServiceImpl.java index 2fa64a6b..3dba27d5 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsPartServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsPartServiceImpl.java @@ -16,6 +16,7 @@ import org.springblade.desk.dashboard.mapper.DsPartMapper; import org.springblade.desk.dashboard.pojo.entity.*; import org.springblade.desk.dashboard.pojo.vo.*; import org.springblade.desk.dashboard.service.*; +import org.springblade.desk.dashboard.utils.DateUtils; import org.springblade.erpdata.feign.IErpDataPartClient; import org.springblade.erpdata.feign.IErpDataSearchClient; import org.springblade.erpdata.pojo.dto.AllocationDTO; @@ -192,52 +193,11 @@ public class DsPartServiceImpl extends BaseServiceImpl platingTypeAssignEntityList = platingTypeAssignService.selectBsPlatingTypeAssignByPlateType(bsPlatingEntity.getPlateType()); - if(null == platingTypeAssignEntityList){ - //暂无工艺员 任务分派 - } - - //排序 - List collect = platingTypeAssignEntityList.stream().sorted(Comparator.comparing(BsPlatingTypeAssignEntity::getCurrentTaskCount)) - .collect(Collectors.toList()); - - //工艺员 - technician = collect.get(0).getUserName(); - - - try { - //信息数据匹配 - // 工艺员 technician - // 分配状态 TaskingConstant.TASK_STATUS_ALREADY 已分配 - - } catch (Exception e) { - e.printStackTrace(); - } - - - }else { - //任务分派 直接入库 - // 没有工艺员 TaskingConstant.TASK_STATUS_WAIT 待分配 - } - - //零件入库 - dsPart.setTechnician(technician); - dsPartMapper.insert(dsPart); + public boolean syncPart() { + // 查询零件信息 + Date startDate = DateUtils.getPreviousDayStartDate(1); + Date endDate = DateUtils.getPreviousDayEndDate(1); + List partList = dsPartMapper.selectPartByDate(startDate,endDate); return true; diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/controller/PipelineController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/controller/PipelineController.java new file mode 100644 index 00000000..e9ce9ced --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/controller/PipelineController.java @@ -0,0 +1,166 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.desk.logistics.controller; + +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import org.apache.commons.lang3.StringUtils; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.tool.api.R; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import java.math.BigDecimal; + + +/** + * 输送线 控制器 + * + * @author BladeX + * @since 2026-02-28 + */ +@RestController +@AllArgsConstructor +@RequestMapping("/pipeline") +@Tag(name = "输送线", description = "输送线接口") +public class PipelineController extends BladeController { + + + /** + * 根据物料箱号查询已绑定预估重量 + */ + @GetMapping("/estimated-weight") + @ApiOperationSupport(order = 1) + @Operation(summary = "根据物料箱号查询已绑定预估重量", description = "传入箱条码") + public R estimatedWeight(@RequestParam String boxBarcode) { + // 1.参数校验 + if (StringUtils.isEmpty(boxBarcode)) { + throw new ServiceException("箱条码不能为空"); + } + + // todo 2.查询箱信息 +// //Box box = boxMapper.selectByBarcode(boxBarcode); +// if (box == null) { +// throw new ServiceException("箱号不存在: " + boxBarcode); +// } +// +// // 3.检查是否已绑定 +// if (!box.getBound()) { +// throw new ServiceException("该箱号未绑定预估重量"); +// } + BigDecimal estimatedWeight = new BigDecimal(50); + return R.data(estimatedWeight); + } + + + @GetMapping("/verifyConveyorBoxWeighing") + @ApiOperationSupport(order = 2) + @Operation( + summary = "验证输送箱实际重量", + description = "传入箱条码与实际重量,校验是否超重;若超重则解绑物料箱并指令放回输送线" + ) + public R getBoundEstimatedWeight( + @Parameter(description = "物料箱条码", required = true) + @RequestParam String boxBarcode, + @Parameter(description = "实际称重重量(单位:kg)", required = true) + @RequestParam BigDecimal actualWeight) { + + // 1.参数合法性校验 + if (boxBarcode == null || boxBarcode.trim().isEmpty()) { + return R.fail("箱条码不能为空"); + } + if (actualWeight == null || actualWeight.compareTo(BigDecimal.ZERO) < 0) { + return R.fail("实际重量必须为非负数"); + } + + try { + // 2.根据箱条码查询物料箱基础信息 + + // 3.判断是否超重 + BigDecimal ratedWeight = new BigDecimal(50); + int weightCompare = actualWeight.compareTo(ratedWeight); + if (weightCompare > 0) { + // 4.超重:执行解绑操作 + 指令放回输送线 + + // 超重处理完成返回 + return R.data( + false,"物料箱[" + boxBarcode + "]超重(实际:" + actualWeight + "kg,额定:" + ratedWeight + "kg),已解绑并放回输送线" + ); + } else { + // 5.未超重:正常返回 + return R.data( + true,"物料箱[" + boxBarcode + "]重量校验通过(实际:" + actualWeight + "kg,额定:" + ratedWeight + "kg)" + ); + } + + } catch (Exception e) { + return R.fail("物料箱重量校验处理异常:" + e.getMessage()); + } + } + + + /** + * 接收物料箱到达输送线末尾信息 + */ + @GetMapping("/receiveBoxArriveConveyorEnd") + @ApiOperationSupport(order = 3) + @Operation(summary = "接收物料箱", description = "传入箱条码") + public R receiveBoxArriveConveyorEnd(@RequestParam String boxBarcode) { + // 1.参数校验 + if (StringUtils.isEmpty(boxBarcode)) { + throw new ServiceException("箱条码不能为空"); + } + + return R.data(true); + } + + + /** + * 接收空物料箱到输送线通知 + */ + @GetMapping("/recordEmptyBoxArriveConveyor") + @ApiOperationSupport(order = 4) + @Operation(summary = "接收物料箱", description = "传入箱条码") + public R recordEmptyBoxArriveConveyor(@RequestParam String boxBarcode) { + // 1.参数校验 + if (StringUtils.isEmpty(boxBarcode)) { + throw new ServiceException("箱条码不能为空"); + } + + return R.data(true); + } + + + + + + +}