From d5420a8fef6d680e5bdce86b36cb8e90d7e22419 Mon Sep 17 00:00:00 2001
From: Houjie <714924425@qq.com>
Date: 星期六, 16 八月 2025 09:49:25 +0800
Subject: [PATCH] 安灯发起-工单-飞书发送消息(一级响应/二级响应/三级响应) 飞书安灯消息模板相关代码
---
src/main/java/org/jeecg/modules/mes/service/impl/MesWorkReportingServiceImpl.java | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 117 insertions(+), 0 deletions(-)
diff --git a/src/main/java/org/jeecg/modules/mes/service/impl/MesWorkReportingServiceImpl.java b/src/main/java/org/jeecg/modules/mes/service/impl/MesWorkReportingServiceImpl.java
index a20f621..3dde504 100644
--- a/src/main/java/org/jeecg/modules/mes/service/impl/MesWorkReportingServiceImpl.java
+++ b/src/main/java/org/jeecg/modules/mes/service/impl/MesWorkReportingServiceImpl.java
@@ -1,10 +1,35 @@
package org.jeecg.modules.mes.service.impl;
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.exception.JeecgBootException;
+import org.jeecg.modules.base.entity.Factory;
+import org.jeecg.modules.base.entity.LineSideWarehouse;
+import org.jeecg.modules.base.entity.Shift;
+import org.jeecg.modules.base.service.IFactoryService;
+import org.jeecg.modules.base.service.ILineSideWarehouseService;
+import org.jeecg.modules.base.service.IShiftService;
+import org.jeecg.modules.lsw.entity.LswMaterial;
+import org.jeecg.modules.lsw.entity.LswMaterialInbound;
+import org.jeecg.modules.lsw.enums.MaterialCategory;
+import org.jeecg.modules.lsw.service.ILswMaterialInboundService;
+import org.jeecg.modules.lsw.service.ILswMaterialService;
+import org.jeecg.modules.mes.entity.MesProductionWorkOrder;
import org.jeecg.modules.mes.entity.MesWorkReporting;
import org.jeecg.modules.mes.mapper.MesWorkReportingMapper;
+import org.jeecg.modules.mes.service.IMesProductionWorkOrderService;
import org.jeecg.modules.mes.service.IMesWorkReportingService;
+import org.jeecg.modules.mes.utils.CommonUtils;
+import org.jeecg.modules.system.service.ISysBusinessCodeRuleService;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+import java.util.Optional;
/**
* @Description: 宸ュ崟鎶ュ伐
@@ -15,4 +40,96 @@
@Service
public class MesWorkReportingServiceImpl extends ServiceImpl<MesWorkReportingMapper, MesWorkReporting> implements IMesWorkReportingService {
+ @Autowired
+ private IMesProductionWorkOrderService mesProductionWorkOrderService;
+ @Autowired
+ private ILswMaterialService lswMaterialService;
+ @Autowired
+ private IFactoryService factoryService;
+ @Autowired
+ private IShiftService shiftService;
+ @Autowired
+ private ILineSideWarehouseService lineSideWarehouseService;
+ @Autowired
+ private ILswMaterialInboundService lswMaterialInboundService;
+ @Autowired
+ private ISysBusinessCodeRuleService sysBusinessCodeRuleService;
+
+ @Override
+ public List<MesWorkReporting> queryWorkReportingByWorkOrderId(String workOrderId) {
+ return baseMapper.queryWorkReportingByWorkOrderId(workOrderId);
+ }
+
+ @Override
+ public List<MesWorkReporting> queryWorkReportingByOrderId(String orderId) {
+ return baseMapper.queryWorkReportingByOrderId(orderId);
+ }
+
+ @Override
+ public void addReporting(MesWorkReporting mesWorkReporting) {
+ MesProductionWorkOrder workOrder = mesProductionWorkOrderService.getById(mesWorkReporting.getWorkOrderId());
+ if (workOrder == null) {
+ throw new JeecgBootException("宸ュ崟涓嶅瓨鍦紒");
+ }
+ LswMaterial material = lswMaterialService.list(new LambdaQueryWrapper<LswMaterial>()
+ .eq(LswMaterial::getMaterialNumber, workOrder.getMaterialNumber())
+ .eq(LswMaterial::getDelFlag, CommonConstant.DEL_FLAG_0)).stream()
+ .findAny().orElse(null);
+ if (material == null) {
+ throw new JeecgBootException("鐗╂枡涓嶅瓨鍦紒");
+ }
+ MaterialCategory materialCategory = MaterialCategory.fromName(material.getMaterialCategory());
+ if (materialCategory == null) {
+ throw new JeecgBootException("鏈煡鐨勭墿鏂欑被鍨嬶紒");
+ }
+ //鐢熶骇鎵规鍙�
+ String batchNumber = sysBusinessCodeRuleService.generateBusinessCodeSeq("WorkReportingBatchNumber");
+ mesWorkReporting.setBatchNumber(batchNumber);
+ LineSideWarehouse lineSideWarehouse = lineSideWarehouseService.list(new LambdaQueryWrapper<LineSideWarehouse>()
+ .eq(LineSideWarehouse::getFactoryId, mesWorkReporting.getFactoryId())
+ .eq(LineSideWarehouse::getDelFlag, CommonConstant.DEL_FLAG_0))
+ .stream().findAny().orElse(null);
+ if (lineSideWarehouse == null) {
+ throw new JeecgBootException("绾胯竟浠撳簱涓嶅瓨鍦紒");
+ }
+ mesWorkReporting.setWarehouseId(lineSideWarehouse.getId());
+ mesWorkReporting.setReporter(Objects.requireNonNull(CommonUtils.getCurrentUser()).getUsername());
+ mesWorkReporting.setReportTime(new Date());
+ String date = DateUtil.format(new Date(), "yyMMdd");
+ switch (materialCategory) {
+ case FINISHED:
+ //鎴愬搧鎶ュ伐閫昏緫
+ String palletNumber4 = sysBusinessCodeRuleService.generateBusinessCodeSeq("WorkReportingPalletNumber4");
+ String finishedPalletNumber = material.getMaterialNumber() + date + palletNumber4;
+ mesWorkReporting.setPalletNumber(finishedPalletNumber);
+ //todo 鎵e噺鍐呮硶鍏帮紙瀵瑰簲鏈哄姞鍐呮硶鍏扮嚎杈瑰簱锛夈�佸娉曞叞锛堝搴旀満鍔犲娉曞叞绾胯竟搴擄級銆佸皬鍐呭湀锛堝搴旇閰嶇嚎杈瑰簱锛夊簱瀛橈紝璋冪敤SAP鎶曟枡鎺ュ彛
+ //todo 璋冪敤SAP宸ュ簭鎶ュ伐
+ //todo 鎵撳嵃鎴愬搧鎵樻爣绛俱�佹楠屾爣璇嗗崱銆佺Щ搴撳崟銆佸畬宸ユ楠屽伐鍗曪紱鍒ゆ柇鐢熶骇璁㈠崟鏄惁闇�瑕佸叧闂紙鍚堟牸鏁伴噺 = 璁㈠崟鏁伴噺锛�
+ break;
+ case HALF:
+ case RAW:
+ //鍗婃垚鍝佹姤宸ラ�昏緫
+ Factory factory = factoryService.getById(mesWorkReporting.getFactoryId());
+ Shift shift = shiftService.getById(workOrder.getShiftId());
+ String palletNumber6 = sysBusinessCodeRuleService.generateBusinessCodeSeq("WorkReportingPalletNumber6");
+ //鎷兼帴鍗婃垚鍝佹姤宸ユ墭鍙�
+ String halfPalletNumber = factory.getFactoryCode() + material.getMaterialNumber() + date + shift.getShiftCode() + palletNumber6;
+ mesWorkReporting.setPalletNumber(halfPalletNumber);
+ //todo 鎵e噺瀵瑰簲绾胯竟搴擄紙澶栨硶鍏版瘺鍧�佸唴娉曞叞姣涘澂锛夊簱瀛樺悗锛岃皟鐢⊿AP鎶曟枡鎺ュ彛
+ //todo 璋冪敤SAP宸ュ簭鎶ュ伐
+ break;
+ case PARTS:
+ break;
+ }
+ save(mesWorkReporting);
+ //绾胯竟搴撳叆搴撻�昏緫
+ LswMaterialInbound lswMaterialInbound = new LswMaterialInbound()
+ .setFactoryId(mesWorkReporting.getFactoryId())
+ .setMaterialNumber(material.getMaterialNumber())
+ .setMaterialName(material.getMaterialName())
+ .setBatchNumber(batchNumber)
+ .setQuantity(mesWorkReporting.getQuantity())
+ .setWarehouseId(lineSideWarehouse.getId());
+ lswMaterialInboundService.save(lswMaterialInbound);
+ }
}
--
Gitblit v1.9.3