From de907520a043bd7f0dda5ce3b6c9bad55747d200 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=93=B2=E5=A5=87?= <13840175730@139.com> Date: Tue, 2 Apr 2024 11:51:35 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=A2=9E=E5=8A=A0=E5=85=B3=E8=81=94=E5=B0=8F?= =?UTF-8?q?=E6=B1=A0=E6=9B=B4=E6=96=B04=E3=80=815=E3=80=816=E5=9E=AE?= =?UTF-8?q?=E5=88=87=E5=89=B2=E5=B7=A5=E5=8D=95=E6=89=A7=E8=A1=8C=E6=83=85?= =?UTF-8?q?=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/dsic/gj_erp/bean/xiaochi/CutPlan.java | 58 +++++++++++++++++ .../com/dsic/gj_erp/bean/xiaochi/Device.java | 28 ++++++++ .../com/dsic/gj_erp/bean/xiaochi/User.java | 28 ++++++++ .../controller/xiaochi/XiaoChiController.java | 6 ++ .../service/xiaochi/XiaoChiService.java | 65 +++++++++++++++++++ 5 files changed, 185 insertions(+) create mode 100644 src/main/java/com/dsic/gj_erp/bean/xiaochi/CutPlan.java create mode 100644 src/main/java/com/dsic/gj_erp/bean/xiaochi/Device.java create mode 100644 src/main/java/com/dsic/gj_erp/bean/xiaochi/User.java create mode 100644 src/main/java/com/dsic/gj_erp/controller/xiaochi/XiaoChiController.java create mode 100644 src/main/java/com/dsic/gj_erp/service/xiaochi/XiaoChiService.java diff --git a/src/main/java/com/dsic/gj_erp/bean/xiaochi/CutPlan.java b/src/main/java/com/dsic/gj_erp/bean/xiaochi/CutPlan.java new file mode 100644 index 0000000..418cb88 --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/bean/xiaochi/CutPlan.java @@ -0,0 +1,58 @@ +package com.dsic.gj_erp.bean.xiaochi; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Getter; +import lombok.Setter; + +/** + * 切割计划及执行情况 + */ +@Getter +@Setter +@TableName("tbl_nest_mast") +public class CutPlan extends Model { + @TableId(type = IdType.AUTO) + private Integer nestId; + + private String nestName; + + private String nestNameSub1;//套料图号 + + private String nestItaatu;//厚 + + private String nestSizeY;//长 + + private String nestSizeX;//宽 + + private String nestCutHo;//设备id + + private String nestKakuyakuDate;//开始日期 + + private String nestKakuyakuTime;//开始时间 + + private String nestTumikomiDate;//结束日期 + + private String nestTumikomiTime;//结束时间 + + private String nestSintyoku;//加工状态(1:计划 3:正在加工 5:完成) + + private String nestExtC02;//船号 + + private String nestExtC03;//跨位 + + private String nestExtC04;//批 + + private String nestExtC05;//操作人 + + public String getQgkssj(){ + return StrUtil.isAllNotEmpty(this.nestKakuyakuDate,this.nestKakuyakuTime)?this.nestKakuyakuDate+" "+this.nestKakuyakuTime:""; + } + + public String getQgjssj(){ + return StrUtil.isNotEmpty(this.nestTumikomiTime)?this.nestTumikomiDate+" "+this.nestTumikomiTime:""; + } +} diff --git a/src/main/java/com/dsic/gj_erp/bean/xiaochi/Device.java b/src/main/java/com/dsic/gj_erp/bean/xiaochi/Device.java new file mode 100644 index 0000000..cf20a5a --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/bean/xiaochi/Device.java @@ -0,0 +1,28 @@ +package com.dsic.gj_erp.bean.xiaochi; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Getter; +import lombok.Setter; + +/** + * 小池设备表 + */ +@Getter +@Setter +@TableName("iot_m_machine") +public class Device { + + @TableId(type = IdType.AUTO) + private Integer id; + private String machineId;//设备id + + private String machineName;//设备名称 + + private String serialNumber;//序列号 + + private String machinemodelName;//设备型号 + + private String torchType;//割枪类型 +} diff --git a/src/main/java/com/dsic/gj_erp/bean/xiaochi/User.java b/src/main/java/com/dsic/gj_erp/bean/xiaochi/User.java new file mode 100644 index 0000000..d52e63f --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/bean/xiaochi/User.java @@ -0,0 +1,28 @@ +package com.dsic.gj_erp.bean.xiaochi; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Getter; +import lombok.Setter; + +/** + * 小池人员表 + */ +@Getter +@Setter +@TableName("iot_m_employee") +public class User extends Model { + @TableId(type = IdType.AUTO) + private Integer id; + + private String employeeNumber; + + private String name; + + private String department; + + private String position; + +} diff --git a/src/main/java/com/dsic/gj_erp/controller/xiaochi/XiaoChiController.java b/src/main/java/com/dsic/gj_erp/controller/xiaochi/XiaoChiController.java new file mode 100644 index 0000000..4063a6a --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/controller/xiaochi/XiaoChiController.java @@ -0,0 +1,6 @@ +package com.dsic.gj_erp.controller.xiaochi; + +import org.springframework.web.bind.annotation.RestController; + +public class XiaoChiController { +} diff --git a/src/main/java/com/dsic/gj_erp/service/xiaochi/XiaoChiService.java b/src/main/java/com/dsic/gj_erp/service/xiaochi/XiaoChiService.java new file mode 100644 index 0000000..58fbc71 --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/service/xiaochi/XiaoChiService.java @@ -0,0 +1,65 @@ +package com.dsic.gj_erp.service.xiaochi; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.cron.CronUtil; +import cn.hutool.cron.task.Task; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.dsic.gj_erp.bean.pgd.PgdQgjh; +import com.dsic.gj_erp.bean.xiaochi.CutPlan; +import com.dsic.gj_erp.bean.xiaochi.User; +import com.dsic.gj_erp.service.pgd.PgdQgjhService; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.*; + +@Service +@AllArgsConstructor +public class XiaoChiService{ + + private final PgdQgjhService qgjhService; + + //fixme 小池查询逻辑有出入,暂时不启用 +// @PostConstruct + public void handler(){ + List users = new User().selectAll(); + Map userMap=new HashMap<>(); + users.forEach(item->{ + userMap.put(item.getEmployeeNumber(),item); + }); + //CronUtil默认为分钟,目前未使用CronUtil.setMatchSecond(true)启动秒级任务,以下表示每30分钟执行一次 + //每30分钟执行一次,获取小池今日加工并且未更新切割计划派工单的数据去更新派工单 + CronUtil.schedule("*/30 * * * * *", (Task) () -> { + List cutPlans = new CutPlan().selectList(Wrappers.lambdaQuery() + .eq(CutPlan::getNestKakuyakuDate, DateUtil.today()) + .notExists("select b.czbh as nest_ext_c02,b.kw as nest_ext_c03 ,b.pl as nest_ext_c04 from pgd_qgjh b where b.czbh=tbl_nest_mast.nest_ext_c02 and b.tlth=tbl_nest_mast.nest_name_sub1 and b.kw=tbl_nest_mast.nest_ext_c03 and b.pl=tbl_nest_mast.nest_ext_c04 and (b.qgksrq is null or qgjsrq is null )") + ); + List list=new ArrayList<>(); + cutPlans.forEach(item->{ + PgdQgjh one = qgjhService.getOne(Wrappers.lambdaQuery() + .eq(PgdQgjh::getCzbh, item.getNestExtC02()) + .eq(PgdQgjh::getTlth, item.getNestNameSub1()) + .eq(PgdQgjh::getKw, item.getNestExtC03()) + .eq(PgdQgjh::getPl, item.getNestExtC04()) + ); + if (ObjectUtil.isNotEmpty(one)){ + PgdQgjh _item=new PgdQgjh(); + _item.setId(one.getId()); + Optional.of(userMap.get(item.getNestExtC05())) + .ifPresent(user-> _item.setFkry(userMap.get(item.getNestExtC05()).getName())); + _item.setFkrq(DateUtil.format(DateUtil.date(), "yyyy/MM/dd HH:mm:ss")); + _item.setQgksrq(item.getQgkssj()); + if (StrUtil.isNotEmpty(item.getQgjssj())){ + _item.setQgjsrq(item.getQgjssj()); + _item.setZt("09"); + } + list.add(_item); + } + }); + qgjhService.updateBatchById(list,500); + }); + CronUtil.start(); + } +}