diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LogMessageConstant.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LogMessageConstant.java index 1b80bef..e407f84 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LogMessageConstant.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LogMessageConstant.java @@ -42,5 +42,5 @@ public class LogMessageConstant { public final static String BACKGROUND_YELLOW = "\u001B[43m"; /** 索引路径 */ - public final static String INDEX_DIR = "E:\\lucene\\index"; + public final static String INDEX_DIR = "D:\\lucene\\index"; } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/controller/CockPitController.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/controller/CockPitController.java new file mode 100644 index 0000000..aa15ae1 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/controller/CockPitController.java @@ -0,0 +1,37 @@ +package org.nl.wms.cockpit.controller; + +import cn.dev33.satoken.annotation.SaIgnore; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.logging.annotation.Log; +import org.nl.wms.cockpit.service.CockpitService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Author: lyd + * @Description: 看板 + * @Date: 2023/9/25 + */ +@Slf4j +@RestController +@Api(tags = "看板接口") +@RequestMapping("/api/cockpit") +@SaIgnore +public class CockPitController { + + @Autowired + private CockpitService cockpitService; + + @PostMapping("/press") + @Log("压制看板") + @ApiOperation("压制看板") + public ResponseEntity PressedMonitor(){ + return new ResponseEntity<>(cockpitService.PressedMonitor(), HttpStatus.OK); + } +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/CockpitService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/CockpitService.java new file mode 100644 index 0000000..807aecf --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/CockpitService.java @@ -0,0 +1,16 @@ +package org.nl.wms.cockpit.service; + +import java.util.concurrent.ConcurrentHashMap; + +/** + * @Author: lyd + * @Description: 看板 + * @Date: 2023/9/25 + */ +public interface CockpitService { + /** + * 压制看板 + * @return + */ + ConcurrentHashMap PressedMonitor(); +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/PersonnelMonthlyProductionVo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/PersonnelMonthlyProductionVo.java new file mode 100644 index 0000000..b215e26 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/PersonnelMonthlyProductionVo.java @@ -0,0 +1,14 @@ +package org.nl.wms.cockpit.service.dao; + +import lombok.Data; + +/** + * @Author: lyd + * @Description: 月生产总值 + * @Date: 2023/9/25 + */ +@Data +public class PersonnelMonthlyProductionVo { + private String operator; + private String real_qty; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/PressProductHeaderVo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/PressProductHeaderVo.java new file mode 100644 index 0000000..7fcb7af --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/PressProductHeaderVo.java @@ -0,0 +1,16 @@ +package org.nl.wms.cockpit.service.dao; + +import lombok.Data; + +/** + * @Author: lyd + * @Description: 当前班次、计划生产、已生产、不合格产品数 + * @Date: 2023/9/25 + */ +@Data +public class PressProductHeaderVo { + private String plan_qty; + private String real_qty; + private String unqualified_qty; + private String qualified_qty; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/ProductTaskVo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/ProductTaskVo.java new file mode 100644 index 0000000..87fd72c --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/ProductTaskVo.java @@ -0,0 +1,25 @@ +package org.nl.wms.cockpit.service.dao; + +import lombok.Data; + +/** + * @Author: lyd + * @Description: 生产任务 + * @Date: 2023/9/25 + */ +@Data +public class ProductTaskVo { + private String device; + private String workorder_code; + private String team; + private String material_name; + private String planproducestart_date; + private String plan_qty; + private String real_qty; + private String unqualified_qty; + private String qualified_rate; + private String workorder_status; + private String operator; + private String realproducestart_date; + private String realproduceend_date; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/ShiftProductionVo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/ShiftProductionVo.java new file mode 100644 index 0000000..cc59486 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/ShiftProductionVo.java @@ -0,0 +1,16 @@ +package org.nl.wms.cockpit.service.dao; + +import lombok.Data; + +/** + * @Author: lyd + * @Description: 当班生产VO + * @Date: 2023/9/25 + */ +@Data +public class ShiftProductionVo { + private String column_name; + private String qualified_qty; + private String unqualified_qty; + private String total_difference; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/impl/CockpitServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/impl/CockpitServiceImpl.java new file mode 100644 index 0000000..436b3a6 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/impl/CockpitServiceImpl.java @@ -0,0 +1,90 @@ +package org.nl.wms.cockpit.service.impl; + +import lombok.extern.slf4j.Slf4j; +import org.nl.config.thread.ThreadPoolExecutorUtil; +import org.nl.wms.cockpit.service.CockpitService; +import org.nl.wms.cockpit.service.dao.PersonnelMonthlyProductionVo; +import org.nl.wms.cockpit.service.dao.PressProductHeaderVo; +import org.nl.wms.cockpit.service.dao.ProductTaskVo; +import org.nl.wms.cockpit.service.dao.ShiftProductionVo; +import org.nl.wms.cockpit.service.mapper.CockPitMapper; +import org.nl.wms.util.CommonUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ThreadPoolExecutor; + +/** + * @Author: lyd + * @Description: + * @Date: 2023/9/25 + */ +@Slf4j +@Service +public class CockpitServiceImpl implements CockpitService { + @Autowired + private CockPitMapper cockPitMapper; + @Override + public ConcurrentHashMap PressedMonitor() { + ThreadPoolExecutor pool = ThreadPoolExecutorUtil.getPoll(); + ConcurrentHashMap map = new ConcurrentHashMap<>(); + // 1、当前班次、计划生产、已生产、不合格产品数 + String dayShift = CommonUtils.getDayShift(); // 白班、晚班 + map.put("DayShift", dayShift); + CompletableFuture> listCompletableFuture = CompletableFuture.supplyAsync( + () -> cockPitMapper.getPressProductHeaderList(dayShift), pool); + listCompletableFuture.thenAccept(result -> { + map.put("DayShiftList", result); + }).exceptionally((e) -> { + log.error("获取当班信息: {}", e.getMessage(), e); + map.put("DayShiftList", null); + return null; + }); + // 2、当班生产 + CompletableFuture> listShiftProductionFuture = CompletableFuture.supplyAsync( + () -> cockPitMapper.getShiftProductionList(dayShift), pool); + listShiftProductionFuture.thenAccept(result -> { + map.put("ShiftProductionList", result); + }).exceptionally((e) -> { + log.error("当班生产: {}", e.getMessage(), e); + map.put("ShiftProductionList", null); + return null; + }); + // 3、人员月生产 + CompletableFuture> listPersonnelMonthlyProductionFuture = CompletableFuture.supplyAsync( + () -> cockPitMapper.getPersonnelMonthlyProductionList(dayShift), pool); + listPersonnelMonthlyProductionFuture.thenAccept(result -> { + map.put("PersonnelMonthlyProduction", result); + }).exceptionally((e) -> { + log.error("人员月生产: {}", e.getMessage(), e); + map.put("PersonnelMonthlyProduction", null); + return null; + }); + // 4、生产任务 + CompletableFuture> listProductionTaskFuture = CompletableFuture.supplyAsync( + () -> cockPitMapper.getProductionTaskList(), pool); + listProductionTaskFuture.thenAccept(result -> { + map.put("ProductionTask", result); + }).exceptionally((e) -> { + log.error("生产任务: {}", e.getMessage(), e); + map.put("ProductionTask", null); + return null; + }); + // 提交 + CompletableFuture allQuery = CompletableFuture.allOf( + listCompletableFuture, + listShiftProductionFuture, + listPersonnelMonthlyProductionFuture, + listProductionTaskFuture); + CompletableFuture> future + = allQuery.thenApply((result) -> map).exceptionally((e) -> { + log.error(e.getMessage(), e); + return null; + }); + future.join(); + return map; + } +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/mapper/CockPitMapper.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/mapper/CockPitMapper.java new file mode 100644 index 0000000..182da07 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/mapper/CockPitMapper.java @@ -0,0 +1,23 @@ +package org.nl.wms.cockpit.service.mapper; + +import org.nl.wms.cockpit.service.dao.PersonnelMonthlyProductionVo; +import org.nl.wms.cockpit.service.dao.PressProductHeaderVo; +import org.nl.wms.cockpit.service.dao.ProductTaskVo; +import org.nl.wms.cockpit.service.dao.ShiftProductionVo; + +import java.util.List; + +/** + * @Author: lyd + * @Description: + * @Date: 2023/9/25 + */ +public interface CockPitMapper { + List getPressProductHeaderList(String dayShift); + + List getShiftProductionList(String dayShift); + + List getPersonnelMonthlyProductionList(String dayShift); + + List getProductionTaskList(); +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/mapper/CockPitMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/mapper/CockPitMapper.xml new file mode 100644 index 0000000..8f01a97 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/mapper/CockPitMapper.xml @@ -0,0 +1,65 @@ + + + + + + + + diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/brick/service/IMdBaseBrickInfoService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/brick/service/IMdBaseBrickInfoService.java index c2964c3..aaedcef 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/brick/service/IMdBaseBrickInfoService.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/brick/service/IMdBaseBrickInfoService.java @@ -53,4 +53,18 @@ public interface IMdBaseBrickInfoService extends IService { * @param deviceCode : 放砖位置-压制对接位 */ void setGroupByCurrentAllBrick(String deviceCode, String groupId); + + /** + * 工单合格数量 + * @param workorderCode + * @return + */ + int getCountQualifiedQty(String workorderCode); + + /** + * 工单不合格数量 + * @param workorderCode + * @return + */ + int getCountUnqualifiedQty(String workorderCode); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/brick/service/dao/mapper/MdBaseBrickInfoMapper.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/brick/service/dao/mapper/MdBaseBrickInfoMapper.java index da08666..1407cca 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/brick/service/dao/mapper/MdBaseBrickInfoMapper.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/brick/service/dao/mapper/MdBaseBrickInfoMapper.java @@ -9,4 +9,12 @@ import org.nl.wms.database.brick.service.dao.MdBaseBrickInfo; **/ public interface MdBaseBrickInfoMapper extends BaseMapper { + /** + * 合格数 + * @param workorderCode + * @return + */ + int getCountQualifiedQty(String workorderCode); + + int getCountUnqualifiedQty(String workorderCode); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/brick/service/dao/mapper/MdBaseBrickInfoMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/brick/service/dao/mapper/MdBaseBrickInfoMapper.xml index af568a1..01f21c2 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/brick/service/dao/mapper/MdBaseBrickInfoMapper.xml +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/brick/service/dao/mapper/MdBaseBrickInfoMapper.xml @@ -2,4 +2,18 @@ + + diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/brick/service/impl/MdBaseBrickInfoServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/brick/service/impl/MdBaseBrickInfoServiceImpl.java index b1a1690..5136335 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/brick/service/impl/MdBaseBrickInfoServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/brick/service/impl/MdBaseBrickInfoServiceImpl.java @@ -78,6 +78,16 @@ public class MdBaseBrickInfoServiceImpl extends ServiceImpl list = wmsToMesService.getAllWaitIntoGdyInfos(); + AtomicInteger successNum = new AtomicInteger(); + long startTime = System.currentTimeMillis(); + // 存入表中 + list.forEach(mesGdyInfoWaitDto -> { + mesGdyInfoWaitDto.setMSGID(IdUtil.getSnowflake(1,1).nextIdStr()); + mesGdyInfoWaitDto.setSEND_TM(DateUtil.now()); + mesGdyInfoWaitDto.setPRO_SUBUNIT("块"); + mesGdyInfoWaitDto.setCREATE_TM(DateUtil.now()); + mesGdyInfoWaitDto.setOP_FLAG(GeneralDefinition.NO); + // 插入 + try { + mesRequestMapper.insertGdyMaterialWait(mesGdyInfoWaitDto); + successNum.incrementAndGet(); + } catch (Exception e) { + log.error("插入窑前失败的数据: {}", mesGdyInfoWaitDto); + log.error("插入窑前失败的信息:{}", e.getMessage()); + // notice通知 + noticeService.createNotice(e.getMessage(), "窑前数据同步失败" + mesGdyInfoWaitDto.getMSGID(), NoticeTypeEnum.NOTIFICATION.getCode()); + } + }); + long endTime = System.currentTimeMillis(); + log.info("窑前数据有" + list.size() + "条,成功" + successNum.get() + "条, 消耗时长:" + (endTime - startTime) + "ms"); + } +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/WmsToMesService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/WmsToMesService.java index f4f7239..265d7a0 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/WmsToMesService.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/WmsToMesService.java @@ -1,6 +1,8 @@ package org.nl.wms.ext.mes.service; +import org.nl.wms.ext.mes.autotask.AutoSaveWaitGdyInfo; import org.nl.wms.ext.mes.service.dto.MesGdyInfoDto; +import org.nl.wms.ext.mes.service.dto.MesGdyInfoWaitDto; import org.nl.wms.ext.mes.service.dto.MesMudConsumptionDto; import org.nl.wms.ext.mes.service.dto.MesSemiProductionInfo; import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder; @@ -67,4 +69,10 @@ public interface WmsToMesService { * @param workorderCode */ void reportPressUnusedMaterial(PdmBdWorkorder workorderCode); + + /** + * 获取所有待入窑数据 + * @return + */ + List getAllWaitIntoGdyInfos(); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/dao/mapper/MesRequestMapper.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/dao/mapper/MesRequestMapper.java index d8f481a..7b70e43 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/dao/mapper/MesRequestMapper.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/dao/mapper/MesRequestMapper.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.dynamic.datasource.annotation.DS; import org.apache.ibatis.annotations.Param; import org.nl.wms.database.material.service.dao.MdBaseMaterial; +import org.nl.wms.ext.mes.autotask.AutoSaveWaitGdyInfo; import org.nl.wms.ext.mes.service.dto.*; import java.util.List; @@ -48,4 +49,8 @@ public interface MesRequestMapper { int countFPNumber(String workorderCode, String pointCode); @DS("oracle") void insertMesUnusedInfo(MesUnusedDto mesUnusedDto); + @DS("mysql") + List getAllWaitIntoGdyInfos(); + @DS("oracle") + void insertGdyMaterialWait(MesGdyInfoWaitDto mesGdyInfoWaitDto); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/dao/mapper/MesRequestMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/dao/mapper/MesRequestMapper.xml index 54f34ca..e108afc 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/dao/mapper/MesRequestMapper.xml +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/dao/mapper/MesRequestMapper.xml @@ -64,6 +64,12 @@ VALUES (#{MSGID}, #{FORDER_NO}, #{PWORKSCHE_ID}, #{FPRODUCT_MATERIAL_ID}, #{FPRODUCT_MATERIAL_NAME}, #{FMATSPEC} , #{FMATMODEL}, #{BATCHNO}, #{PRESSUNIT}, #{FTEAM}, #{FPSUBNUM}, #{FP_SUBUNIT}, #{PRODATE}, #{CREATE_TM}, #{OP_FLAG}) + + INSERT INTO "LMSTELCOM"."RECEIVE_GDY_MATWAIT"(MSGID, SEND_TM, TRAY_NO, FPRODUCT_MATERIAL_ID, FPRODUCT_MATERIAL_NAME + , FMATSPEC, FMATMODEL, BATCHNO, PRESSUNIT, PRO_SUBNUM, PRO_SUBUNIT, CREATE_TM, OP_FLAG) + VALUES (#{MSGID}, #{SEND_TM}, #{TRAY_NO}, #{FPRODUCT_MATERIAL_ID}, #{FPRODUCT_MATERIAL_NAME}, #{FMATSPEC} + , #{FMATMODEL}, #{BATCHNO}, #{PRESSUNIT}, #{PRO_SUBNUM}, #{PRO_SUBUNIT}, #{CREATE_TM}, #{OP_FLAG}) + UPDATE "LMSTELCOM"."SEND_POP_SCHEDULE_PRESS" SET OP_FLAG = '1' @@ -177,4 +183,24 @@ `md_base_brick_info` mi WHERE mi.workorder_code = #{workorderCode} AND mi.get_station = #{pointCode} AND mi.put_station LIKE 'YZBHGW%' + diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/dto/MesGdyInfoWaitDto.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/dto/MesGdyInfoWaitDto.java new file mode 100644 index 0000000..a0f67a0 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/dto/MesGdyInfoWaitDto.java @@ -0,0 +1,47 @@ +package org.nl.wms.ext.mes.service.dto; + +import lombok.Data; + +/** + * @Author: lyd + * @Description: 带入窑实体 + * @Date: 2023/9/22 + * 二维码 + * 发送时间 + * 托盘编号 + * 物料编码 + * 物料名称 + * 规格 + * 型号 + * 批次号 + * 压机号 + * 重量 + * 重量单位 + * 数量 + * 数量单位 + * 单位转换率 + * 写入时间 + * 读取标志,0未读取,1已读取 + * 读取时间 + */ +@Data +public class MesGdyInfoWaitDto { + private String MSGID; + private String SEND_TM; + private String TRAY_NO; + private String FPRODUCT_MATERIAL_ID; + private String FPRODUCT_MATERIAL_NAME; + private String FMATSPEC; + private String FMATMODEL; + private String BATCHNO; + private String PRESSUNIT; + private String PRO_NUM; + private String PRO_UNIT; + private String PRO_SUBNUM; + private String PRO_SUBUNIT; + private String FCONVERTRATE; + private String CREATE_TM; + private String OP_FLAG; + private String OP_TM; + +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/impl/WmsToMesServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/impl/WmsToMesServiceImpl.java index 0c446a9..243d5dd 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/impl/WmsToMesServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/impl/WmsToMesServiceImpl.java @@ -10,6 +10,7 @@ import lombok.extern.slf4j.Slf4j; import org.nl.system.service.notice.ISysNoticeService; import org.nl.wms.database.material.service.IMdBaseMaterialService; import org.nl.wms.database.material.service.dao.MdBaseMaterial; +import org.nl.wms.ext.mes.autotask.AutoSaveWaitGdyInfo; import org.nl.wms.ext.mes.service.WmsToMesService; import org.nl.wms.ext.mes.service.dao.mapper.MesRequestMapper; import org.nl.wms.ext.mes.service.dto.*; @@ -147,7 +148,7 @@ public class WmsToMesServiceImpl implements WmsToMesService { @Override public void reportSemiProductionInfoIn(String groupId) { - log.info("物料入滚筒线"); + log.info("半成品入库"); // 获取组盘信息 SchBaseVehiclematerialgroup vehiclematerialgroup = vehiclematerialgroupService.getById(groupId); String workorderCode = vehiclematerialgroup.getWorkorder_code(); @@ -175,21 +176,21 @@ public class WmsToMesServiceImpl implements WmsToMesService { semiProductionInfoInDto.setPRODATE(workorder.getProduce_date()); semiProductionInfoInDto.setCREATE_TM(DateUtil.now()); semiProductionInfoInDto.setOP_FLAG(GeneralDefinition.NO); - log.info("入滚筒线返给MES的数据:{}", semiProductionInfoInDto); + log.info("半成品入库返给MES的数据:{}", semiProductionInfoInDto); // 插入mes数据库 try { mesRequestMapper.insertSemiProductInfo(semiProductionInfoInDto); } catch (Exception e) { - log.error("入滚筒线插入mes数据库失败:{}", e.getMessage()); + log.error("半成品入库插入mes数据库失败:{}", e.getMessage()); // todo:发送通知 - noticeService.createNotice("入滚筒线插入mes数据库失败", "入滚筒线" + semiProductionInfoInDto.getMSGID(), + noticeService.createNotice("半成品入库插入mes数据库失败", "半成品入库" + semiProductionInfoInDto.getMSGID(), NoticeTypeEnum.EXCEPTION.getCode()); } } @Override public void reportSemiProductionInfoOut(String groupId) { - log.info("物料出滚筒线"); + log.info("半成品出库"); // 获取组盘信息 SchBaseVehiclematerialgroup vehiclematerialgroup = vehiclematerialgroupService.getById(groupId); String workorderCode = vehiclematerialgroup.getWorkorder_code(); @@ -214,14 +215,14 @@ public class WmsToMesServiceImpl implements WmsToMesService { semiProductionInfoOutDto.setOUTTYPE("成品出库"); semiProductionInfoOutDto.setCREATE_TM(DateUtil.now()); semiProductionInfoOutDto.setOP_FLAG(GeneralDefinition.NO); - log.info("出滚筒线返给MES的数据:{}", semiProductionInfoOutDto); + log.info("半成品出库返给MES的数据:{}", semiProductionInfoOutDto); // 插入mes数据库 try { mesRequestMapper.insertSemiProductOutInfo(semiProductionInfoOutDto); } catch (Exception e) { - log.error("出滚筒线插入mes数据库失败:{}", e.getMessage()); + log.error("半成品出库插入mes数据库失败:{}", e.getMessage()); // todo:发送通知 - noticeService.createNotice("入滚筒线插入mes数据库失败", "入滚筒线" + semiProductionInfoOutDto.getMSGID(), + noticeService.createNotice("半成品出库插入mes数据库失败", "半成品出库" + semiProductionInfoOutDto.getMSGID(), NoticeTypeEnum.EXCEPTION.getCode()); } } @@ -354,6 +355,11 @@ public class WmsToMesServiceImpl implements WmsToMesService { } } + @Override + public List getAllWaitIntoGdyInfos() { + return mesRequestMapper.getAllWaitIntoGdyInfos(); + } + public List toWorkOrderList(List mesWorkOrderInfos) { List list = new CopyOnWriteArrayList<>(); mesWorkOrderInfos.forEach(mesWorkOrderDto -> { diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/controller/PdaController.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/controller/PdaController.java index cd54d40..1d88f3d 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/controller/PdaController.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/controller/PdaController.java @@ -1,5 +1,6 @@ package org.nl.wms.pda.controller; +import cn.dev33.satoken.annotation.SaIgnore; import com.alibaba.fastjson.JSONObject; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -10,6 +11,8 @@ import org.nl.wms.das.device.check.service.dao.DasDeviceCheckRecord; import org.nl.wms.das.device.operation.service.IDasDeviceOperationRecordService; import org.nl.wms.das.device.operation.service.dao.DasDeviceOperationRecord; import org.nl.wms.pda.service.PdaService; +import org.nl.wms.pda.service.dao.dto.BlendingMoveDto; +import org.nl.wms.pda.service.dao.dto.ForcedRestingDto; import org.nl.wms.pda.service.dao.dto.ManualGroupDto; import org.nl.wms.pda.service.dao.vo.PdaResponseVo; import org.nl.wms.pdm.workorder.service.IPdmBdWorkorderService; @@ -32,6 +35,7 @@ import org.springframework.web.bind.annotation.RestController; @RestController @Api(tags = "手持接口") @RequestMapping("/api/pda") +@SaIgnore public class PdaController { @Autowired private IDasDeviceCheckRecordService deviceCheckRecordService; @@ -85,10 +89,18 @@ public class PdaController { return new ResponseEntity<>(pdaService.getDeviceInfo(), HttpStatus.OK); } + @PostMapping("/group/getVehicleType") + @Log("获取载具类型") + @ApiOperation("获取载具类型") + public ResponseEntity getVehicleType(){ + return new ResponseEntity<>(pdaService.getVehicleType(), HttpStatus.OK); + } + @PostMapping("/group/getPressWorkOrder") - @Log("获取压机编码") - @ApiOperation("获取压机编码") - public ResponseEntity getPressWorkOrder(JSONObject param){ + @Log("获取工单编码") + @ApiOperation("获取工单编码") + @Deprecated + public ResponseEntity getPressWorkOrder(@RequestBody JSONObject param){ return new ResponseEntity<>(workorderService.getDeviceProductionTask(param.getString("point_code")), HttpStatus.OK); } @@ -96,6 +108,35 @@ public class PdaController { @Log("人工组盘") @ApiOperation("人工组盘") public ResponseEntity manualDiskAssembly(@Validated @RequestBody ManualGroupDto entity){ - return new ResponseEntity<>(vehiclematerialgroupService.manualCreateByPda(entity), HttpStatus.OK); + return new ResponseEntity<>(pdaService.manualCreateByPda(entity), HttpStatus.OK); } + + @PostMapping("/move/getBlendingCode") + @Log("获取混碾机编码") + @ApiOperation("获取混碾机编码") + public ResponseEntity getBlendingCode(){ + return new ResponseEntity<>(pdaService.getBlendingCode(), HttpStatus.OK); + } + + @PostMapping("/move/sendTask") + @Log("生成混碾->压机任务") + @ApiOperation("生成混碾->压机任务") + public ResponseEntity sendTask(@Validated @RequestBody BlendingMoveDto blendingMoveDto){ + return new ResponseEntity<>(pdaService.sendTask(blendingMoveDto), HttpStatus.OK); + } + + @PostMapping("/forcedResting/show") + @Log("显示静置时长") + @ApiOperation("显示静置时长") + public ResponseEntity forcedRestingShow(){ + return new ResponseEntity<>(pdaService.forcedRestingShow(), HttpStatus.OK); + } + + @PostMapping("/forcedResting/submit") + @Log("强制静置") + @ApiOperation("强制静置") + public ResponseEntity forcedResting(@Validated @RequestBody ForcedRestingDto forcedRestingDto){ + return new ResponseEntity<>(pdaService.forcedResting(forcedRestingDto), HttpStatus.OK); + } + } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/PdaService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/PdaService.java index a1f4441..ea35a79 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/PdaService.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/PdaService.java @@ -1,6 +1,11 @@ package org.nl.wms.pda.service; +import org.nl.wms.pda.service.dao.dto.BlendingMoveDto; +import org.nl.wms.pda.service.dao.dto.ForcedRestingDto; +import org.nl.wms.pda.service.dao.dto.ManualGroupDto; import org.nl.wms.pda.service.dao.vo.DropdownListVo; +import org.nl.wms.pda.service.dao.vo.PdaResponseVo; +import org.nl.wms.pda.service.dao.vo.StandTimeShowVo; import java.util.List; @@ -15,4 +20,17 @@ public interface PdaService { List getDeviceStatus(); List deviceAction(); + + PdaResponseVo manualCreateByPda(ManualGroupDto entity); + + List getBlendingCode(); + + PdaResponseVo sendTask(BlendingMoveDto blendingMoveDto); + + PdaResponseVo forcedResting(ForcedRestingDto forcedRestingDto); + + + List forcedRestingShow(); + + List getVehicleType(); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/dto/BlendingMoveDto.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/dto/BlendingMoveDto.java new file mode 100644 index 0000000..8dce18c --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/dto/BlendingMoveDto.java @@ -0,0 +1,18 @@ +package org.nl.wms.pda.service.dao.dto; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @Author: lyd + * @Description: 混碾搬运参数 + * @Date: 2023/9/21 + */ +@Data +public class BlendingMoveDto { + private String vehicle_code; + private String start_point_code; + private String end_point_code; + private BigDecimal material_weight; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/dto/ForcedRestingDto.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/dto/ForcedRestingDto.java new file mode 100644 index 0000000..987a165 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/dto/ForcedRestingDto.java @@ -0,0 +1,14 @@ +package org.nl.wms.pda.service.dao.dto; + +import lombok.Data; + +/** + * @Author: lyd + * @Description: 强制静置实体 + * @Date: 2023/9/25 + */ +@Data +public class ForcedRestingDto { + private Integer stand_time; // 静置时间 + private String group_id; // 组盘标识 +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/dto/ManualGroupDto.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/dto/ManualGroupDto.java index 63eae95..22d7f0d 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/dto/ManualGroupDto.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/dto/ManualGroupDto.java @@ -14,6 +14,6 @@ public class ManualGroupDto { private String vehicle_code; private String vehicle_type; private String point_code; - private String order_code; + private String order_code; // 不需要 private BigDecimal material_weight; } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/mapper/PdaMapper.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/mapper/PdaMapper.java index 8ebdfc7..0ae562e 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/mapper/PdaMapper.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/mapper/PdaMapper.java @@ -1,6 +1,8 @@ package org.nl.wms.pda.service.dao.mapper; import org.nl.wms.pda.service.dao.vo.DropdownListVo; +import org.nl.wms.pda.service.dao.vo.StandTimeShowVo; +import org.nl.wms.sch.point.service.dao.SchBasePoint; import java.util.List; @@ -13,4 +15,21 @@ public interface PdaMapper { List getDeviceInfo(); List getDictByCode(String code); + + /** + * 根据区域编码和点位名称获取信息 + * @param device + * @param type + * @return + */ + List getDeviceInfos(String device, String type); + + /** + * 获取压机对应可用的满盅位 + * @param endPointCode + * @return + */ + SchBasePoint findKLXPoint(String endPointCode); + + List forcedRestingShow(); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/mapper/PdaMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/mapper/PdaMapper.xml index af79ffd..e9815c3 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/mapper/PdaMapper.xml +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/mapper/PdaMapper.xml @@ -18,4 +18,38 @@ `sys_dict` WHERE `code` = #{code} + + + diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/StandTimeShowVo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/StandTimeShowVo.java new file mode 100644 index 0000000..7f96a4c --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/StandTimeShowVo.java @@ -0,0 +1,19 @@ +package org.nl.wms.pda.service.dao.vo; + +import lombok.Data; + +/** + * @Author: lyd + * @Description: 显示静置时间 + * @Date: 2023/9/25 + */ +@Data +public class StandTimeShowVo { + private String group_id; + private String point_code; + private String device_code; + private Integer standing_time; + private double timeDifferenceMinutes; // 剩余时间 + // 格式化预计完成时间为字符串 + private String estimatedCompletionTimeString; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java index 3fb133b..e3413dd 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java @@ -1,9 +1,31 @@ package org.nl.wms.pda.service.impl; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; import lombok.extern.slf4j.Slf4j; +import org.nl.common.exception.BadRequestException; +import org.nl.common.utils.SecurityUtils; +import org.nl.wms.database.material.service.IMdBaseMaterialService; +import org.nl.wms.database.material.service.dao.MdBaseMaterial; import org.nl.wms.pda.service.PdaService; +import org.nl.wms.pda.service.dao.dto.BlendingMoveDto; +import org.nl.wms.pda.service.dao.dto.ForcedRestingDto; +import org.nl.wms.pda.service.dao.dto.ManualGroupDto; import org.nl.wms.pda.service.dao.mapper.PdaMapper; import org.nl.wms.pda.service.dao.vo.DropdownListVo; +import org.nl.wms.pda.service.dao.vo.PdaResponseVo; +import org.nl.wms.pda.service.dao.vo.StandTimeShowVo; +import org.nl.wms.pdm.workorder.service.IPdmBdWorkorderService; +import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder; +import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; +import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; +import org.nl.wms.sch.point.service.ISchBasePointService; +import org.nl.wms.sch.point.service.dao.SchBasePoint; +import org.nl.wms.sch.task.service.dao.SchBaseTask; +import org.nl.wms.sch.task_manage.GeneralDefinition; +import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum; +import org.nl.wms.sch.task_manage.enums.GroupStatusEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -19,6 +41,14 @@ import java.util.List; public class PdaServiceImpl implements PdaService { @Autowired private PdaMapper pdaMapper; + @Autowired + private IPdmBdWorkorderService workorderService; + @Autowired + private ISchBasePointService pointService; + @Autowired + private IMdBaseMaterialService materialService; + @Autowired + private ISchBaseVehiclematerialgroupService vehiclematerialgroupService; @Override public List getDeviceInfo() { // 暂定压机区域 @@ -34,4 +64,94 @@ public class PdaServiceImpl implements PdaService { public List deviceAction() { return pdaMapper.getDictByCode("device_action"); } + + @Override + public PdaResponseVo manualCreateByPda(ManualGroupDto entity) { + if (ObjectUtil.isEmpty(entity)) { + throw new BadRequestException("组盘不能为空"); + } + SchBaseVehiclematerialgroup groupInfo = vehiclematerialgroupService.getGroupInfo(entity.getVehicle_code(), + entity.getVehicle_type(), GroupBindMaterialStatusEnum.BOUND.getValue()); + if (ObjectUtil.isNotEmpty(groupInfo)) { + throw new BadRequestException("组盘信息已存在"); + } + // 获取压机工单 + PdmBdWorkorder bdWorkorder = workorderService.getDeviceProductionTask(entity.getPoint_code()); +// PdmBdWorkorder bdWorkorder = workorderService.getByCode(entity.getOrder_code()); + // 获取点位 + SchBasePoint basePoint = pointService.getById(entity.getPoint_code()); + // 获取物料 + MdBaseMaterial material = materialService.getById(bdWorkorder.getMaterial_id()); + SchBaseVehiclematerialgroup group = new SchBaseVehiclematerialgroup(); + group.setGroup_id(IdUtil.getSnowflake(1,1).nextIdStr()); + group.setVehicle_type(entity.getVehicle_type()); + group.setVehicle_code(entity.getVehicle_code()); + group.setMaterial_id(bdWorkorder.getMaterial_id()); + group.setRedundance_material_code(bdWorkorder.getRaw_material_code()); + group.setSource_vehicle_code(entity.getPoint_code()); + group.setPoint_code(entity.getPoint_code()); + group.setPoint_name(basePoint.getPoint_name()); + group.setInstorage_time(DateUtil.now()); + group.setStanding_time(material.getStanding_time()); + group.setMaterial_weight(entity.getMaterial_weight()); + group.setWorkorder_code(bdWorkorder.getWorkorder_code()); + group.setGroup_status(GroupStatusEnum.IN_STORAGE.getType()); + group.setMove_way(basePoint.getPoint_code()); + group.setBuss_move_id(IdUtil.getSnowflake(1,1).nextIdStr()); + group.setCreate_id(SecurityUtils.getCurrentUserId()); + group.setCreate_name(SecurityUtils.getCurrentNickName()); + group.setCreate_time(DateUtil.now()); + vehiclematerialgroupService.save(group); + return PdaResponseVo.pdaResultOk("组盘成功"); + } + + @Override + public List getBlendingCode() { + return pdaMapper.getDeviceInfos("HL", GeneralDefinition.DOCKING_POINT); + } + + @Override + // todo + public PdaResponseVo sendTask(BlendingMoveDto blendingMoveDto) { + if (ObjectUtil.isEmpty(blendingMoveDto.getStart_point_code())) { + throw new BadRequestException("混碾位不能为空"); + } + if (ObjectUtil.isEmpty(blendingMoveDto.getEnd_point_code())) { + throw new BadRequestException("目标压机位不能为空"); + } + // 获取压机对应的困料线、空位、无任务 + SchBasePoint point = pdaMapper.findKLXPoint(blendingMoveDto.getEnd_point_code()); + if (ObjectUtil.isEmpty(point)) { + throw new BadRequestException("创建失败,已有搬运到【" + blendingMoveDto.getEnd_point_code() + "】的任务, 请稍后在试!"); + } + // 获取压机当前工单 + PdmBdWorkorder workorder = workorderService.getDeviceProductionTask(blendingMoveDto.getEnd_point_code()); + // 组盘 + + // 创建任务 + SchBaseTask task = new SchBaseTask(); // 任务实体 + + return null; + } + + @Override + public PdaResponseVo forcedResting(ForcedRestingDto forcedRestingDto) { + if (ObjectUtil.isEmpty(forcedRestingDto.getGroup_id())) { + throw new BadRequestException("请选择需要设置静置的料盅!"); + } + SchBaseVehiclematerialgroup vehiclematerialgroup = vehiclematerialgroupService.getById(forcedRestingDto.getGroup_id()); + vehiclematerialgroup.setStanding_time(forcedRestingDto.getStand_time()); + vehiclematerialgroupService.updateById(vehiclematerialgroup); + return PdaResponseVo.pdaResultOk("设置静置时长完成"); + } + + @Override + public List forcedRestingShow() { + return pdaMapper.forcedRestingShow(); + } + + @Override + public List getVehicleType() { + return pdaMapper.getDictByCode("vehicle_type"); + } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/PdmBdWorkorder.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/PdmBdWorkorder.java index ba27fbf..c1c6261 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/PdmBdWorkorder.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/PdmBdWorkorder.java @@ -128,6 +128,12 @@ public class PdmBdWorkorder implements Serializable { @ApiModelProperty(value = "是否加急") private Boolean is_urgent; + @ApiModelProperty(value = "开工人") + private String operator; + @ApiModelProperty(value = "合格数") + private Integer qualified_qty; + @ApiModelProperty(value = "不合格数") + private Integer unqualified_qty; @TableField(exist = false) private String material_name; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/impl/PdmBdWorkorderServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/impl/PdmBdWorkorderServiceImpl.java index 59cea79..8f2d418 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/impl/PdmBdWorkorderServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/impl/PdmBdWorkorderServiceImpl.java @@ -137,9 +137,8 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl list = new CopyOnWriteArrayList<>(); // 重装数据回ACS,重新根据id找一遍,省的改动以上代码 AcsWorkOrderVo acsWorkOrderVo = pdmBdWorkorderMapper.toAcsWorkOrderById(pdmBdWorkorder.getWorkorder_id()); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/ISchBaseVehiclematerialgroupService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/ISchBaseVehiclematerialgroupService.java index 8bb9233..2803a59 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/ISchBaseVehiclematerialgroupService.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/ISchBaseVehiclematerialgroupService.java @@ -79,6 +79,4 @@ public interface ISchBaseVehiclematerialgroupService extends IService ORDER BY r.create_time - SELECT p.*, p2.point_code AS device_code diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yao/GZYQLTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yao/GZYQLTask.java index 55d7b43..a8dc5de 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yao/GZYQLTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yao/GZYQLTask.java @@ -171,8 +171,6 @@ public class GZYQLTask extends AbstractTask { } if (status.equals(TaskStatus.FINISHED)) { // 完成 this.finishTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); - // todo 上传mes出滚筒线 - wmsToMesService.reportSemiProductionInfoOut(taskObj.getGroup_id()); // todo 记录入窑数据 wmsToMesService.reportGdyMaterialInfoIn(taskObj.getGroup_id()); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSKTask.java index 29c63e2..902a6a1 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSKTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSKTask.java @@ -3,6 +3,7 @@ package org.nl.wms.sch.task_manage.task.tasks.yz; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.extern.slf4j.Slf4j; import org.nl.common.exception.BadRequestException; import org.nl.system.service.notice.ISysNoticeService; import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; @@ -36,6 +37,7 @@ import java.util.stream.Collectors; * @Description: 压制送空盅任务 * @Date: 2023/5/25 */ +@Slf4j @Component @TaskType("LZKLXSKTask") public class YZSKTask extends AbstractTask { @@ -69,6 +71,7 @@ public class YZSKTask extends AbstractTask { NoticeTypeEnum.WARN.getCode()); throw new BadRequestException("送空盅任务未找到混料机空位!"); } + log.warn("送空盅找到点位的信息:{}", point); // 设置终点并修改创建成功状态 task.setPoint_code2(point.getPoint_code()); task.setTask_status(TaskStatus.CREATED.getCode()); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/CommonUtils.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/CommonUtils.java index 5b82196..1377a0a 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/CommonUtils.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/CommonUtils.java @@ -8,6 +8,7 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.Duration; import java.time.LocalDateTime; +import java.time.LocalTime; import java.time.format.DateTimeFormatter; import java.util.Date; import java.util.HashMap; @@ -53,19 +54,42 @@ public class CommonUtils { // 计算距离静置完成还有多少毫秒 long timeDifferenceMillis = inputDate.getTime() + (staticDurationMinutes * 60 * 1000) - currentDate.getTime(); // 将毫秒转换为分钟 - long timeDifferenceMinutes = timeDifferenceMillis / (60 * 1000); + double timeDifferenceMinutes = (double) timeDifferenceMillis / (60 * 1000); // System.out.println("距离静置完成还有 " + timeDifferenceMinutes + " 分钟"); // 计算预计完成时间 Date estimatedCompletionTime = new Date(currentDate.getTime() + timeDifferenceMillis); // 格式化预计完成时间为字符串 String estimatedCompletionTimeString = dateFormat.format(estimatedCompletionTime); - return "距离静置完成还有 " + timeDifferenceMinutes + " 分钟" + ", 预计完成时间为:" + estimatedCompletionTimeString; + return "距离静置完成还有 " + String.format("%.2f", timeDifferenceMinutes) + " 分钟" + ", 预计完成时间为:" + estimatedCompletionTimeString; } catch (ParseException e) { e.printStackTrace(); } return null; } + /** + * 获取当前时间是白晚班 + * @return + */ + public static String getDayShift() { + // 获取当前时间 + LocalTime currentTime = LocalTime.now(); + // 设置白班和晚班的时间范围 + LocalTime dayShiftStart = LocalTime.of(8, 0); // 白班开始时间:8:00 AM + LocalTime dayShiftEnd = LocalTime.of(17, 0); // 白班结束时间:5:00 PM + LocalTime nightShiftStart = LocalTime.of(17, 0); // 晚班开始时间:5:00 PM + LocalTime nightShiftEnd = LocalTime.of(23, 59); // 晚班结束时间:11:59 PM + + // 检查当前时间属于哪个班次 + if (currentTime.isAfter(dayShiftStart) && currentTime.isBefore(dayShiftEnd)) { + return "白班"; + } else if (currentTime.isAfter(nightShiftStart) || currentTime.isBefore(dayShiftStart)) { + return "晚班"; + } else { + return "白班"; + } + } + public static T toJavaObject(String objectString, Class clazz) { JSONObject jsonObject = JSONObject.parseObject(objectString); return jsonObject.toJavaObject(clazz); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/DatabaseBackup.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/DatabaseBackup.java new file mode 100644 index 0000000..ff1b7db --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/DatabaseBackup.java @@ -0,0 +1,57 @@ +package org.nl.wms.util; + +import java.io.IOException; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import java.util.Arrays; +import java.util.List; + +/** + * @Author: lyd + * @Description: 备份数据库 + * @Date: 2023/9/25 + */ +public class DatabaseBackup { + public static void main(String[] args) { + String jdbcUrl = "jdbc:mysql://localhost:3306/rtmg_lms"; + String username = "root"; + String password = "12356"; + + try { + Connection connection = DriverManager.getConnection(jdbcUrl, username, password); + // 在这里执行备份操作 + String backupPath = "D:\\backup.sql"; // 备份文件保存的路径 + // 构建备份命令 + List command = Arrays.asList( + "mysqldump", + "--host=localhost", + "--port=3306", + "--user=" + username, + "--password=" + password, + "--result-file=" + backupPath, + "--databases", "rtmg_lms", + "--force" + ); + // 执行备份命令 + ProcessBuilder processBuilder = new ProcessBuilder(command); + Process process = processBuilder.start(); + int exitCode = process.waitFor(); + + if (exitCode == 0) { + System.out.println("备份成功!"); + } else { + System.out.println("备份失败!"); + } + connection.close(); + } catch (SQLException e) { + e.printStackTrace(); + } catch (IOException e) { + throw new RuntimeException(e); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + + } +} + diff --git a/lms/nladmin-system/nlsso-server/src/main/resources/config/application.yml b/lms/nladmin-system/nlsso-server/src/main/resources/config/application.yml index a37104c..7e2aa7b 100644 --- a/lms/nladmin-system/nlsso-server/src/main/resources/config/application.yml +++ b/lms/nladmin-system/nlsso-server/src/main/resources/config/application.yml @@ -42,7 +42,7 @@ spring: freemarker: check-template-location: false profiles: - active: prod + active: dev jackson: time-zone: GMT+8 data: diff --git a/lms/nladmin-system/nlsso-server/src/test/java/org/nl/point/test.java b/lms/nladmin-system/nlsso-server/src/test/java/org/nl/point/test.java index 1a6f940..755afd2 100644 --- a/lms/nladmin-system/nlsso-server/src/test/java/org/nl/point/test.java +++ b/lms/nladmin-system/nlsso-server/src/test/java/org/nl/point/test.java @@ -112,4 +112,10 @@ public class test { System.out.println("2"); } + public static void main(String[] args) { + String f = "14070300003423092216085408190002"; + System.out.println(f.substring(0, 12)); + System.out.println(f.substring(18, f.length())); + } + }