diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.xml index 72ad3dda7..654a7090d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.xml @@ -31,6 +31,6 @@ FROM `bst_ivt_cutpointivt` bc LEFT JOIN pdm_bi_slittingproductionplan pp ON pp.qzzno = bc.qzz_no1 OR pp.qzzno = bc.qzz_no2 - WHERE bc.point_type = #{type} AND pp.shaft_size = #{size} AND bc.is_used = '1' AND bc.point_status = '3' + WHERE bc.point_type = #{type} AND pp.qzz_size = #{size} AND bc.is_used = '1' AND bc.point_status = '3' diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/shafttubeivt/service/dao/mapper/BstIvtShafttubeivtMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/shafttubeivt/service/dao/mapper/BstIvtShafttubeivtMapper.java index 2a725e6f5..e15a674ff 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/shafttubeivt/service/dao/mapper/BstIvtShafttubeivtMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/shafttubeivt/service/dao/mapper/BstIvtShafttubeivtMapper.java @@ -11,4 +11,5 @@ import java.util.List; **/ public interface BstIvtShafttubeivtMapper extends BaseMapper { + List getAllShaftPointsByConditions(String type, String location, String have); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/shafttubeivt/service/dao/mapper/BstIvtShafttubeivtMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/shafttubeivt/service/dao/mapper/BstIvtShafttubeivtMapper.xml index 8d6e60d25..014660c2a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/shafttubeivt/service/dao/mapper/BstIvtShafttubeivtMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/shafttubeivt/service/dao/mapper/BstIvtShafttubeivtMapper.xml @@ -2,4 +2,15 @@ + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/shafttubeivt/service/impl/BstIvtShafttubeivtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/shafttubeivt/service/impl/BstIvtShafttubeivtServiceImpl.java index 74b725c89..094bd10a8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/shafttubeivt/service/impl/BstIvtShafttubeivtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/shafttubeivt/service/impl/BstIvtShafttubeivtServiceImpl.java @@ -92,7 +92,7 @@ public class BstIvtShafttubeivtServiceImpl extends ServiceImpl - SELECT p.resource_name, p.parent_container_name, p.split_group, p.up_or_down, COALESCE(count_table.num, 0) AS num - FROM `pdm_bi_slittingproductionplan` p + SELECT + p.resource_name, + p.parent_container_name, + p.split_group, + p.up_or_down, + COALESCE ( count_table.num, 0 ) num, + COALESCE ( ct1.cn, 0 ) AS cn, + COALESCE ( ct2.cnn, 0 ) AS cnn + FROM + `pdm_bi_slittingproductionplan` p LEFT JOIN ( - SELECT pp.resource_name, COUNT(*) AS num - FROM pdm_bi_slittingproductionplan pp - WHERE pp.qzzno IN (SELECT IF(LENGTH(bc.qzz_no1)>0,bc.qzz_no1,bc.qzz_no2) FROM bst_ivt_cutpointivt bc) - AND pp.`status` '09' AND pp.is_child_tz_ok = '1' - GROUP BY pp.resource_name ) AS count_table - ON p.resource_name = count_table.resource_name - WHERE p.`status` = '01' + SELECT + pp.resource_name, + COUNT(*) AS num + FROM + pdm_bi_slittingproductionplan pp + WHERE + pp.qzzno IN ( SELECT IF ( LENGTH( bc.qzz_no1 )> 0, bc.qzz_no1, bc.qzz_no2 ) FROM bst_ivt_cutpointivt bc ) + AND pp.`status` '09' + AND pp.is_child_tz_ok = '1' + GROUP BY pp.resource_name + ) AS count_table ON p.resource_name = count_table.resource_name + LEFT JOIN ( + SELECT + pp.resource_name, + COUNT(*) AS cn + FROM + pdm_bi_slittingproductionplan pp + WHERE + pp.qzzno IN ( SELECT IF ( LENGTH( tc.up_qzzno )> 0, tc.up_qzzno, tc.down_qzzno ) FROM st_ivt_cutpointivt tc ) + AND pp.`status` = '05' + GROUP BY pp.resource_name + ) AS ct1 ON p.resource_name = ct1.resource_name + LEFT JOIN ( + SELECT + pp.resource_name, + pp.parent_container_name, + pp.split_group, + pp.up_or_down, + COUNT(*) AS cnn + FROM + pdm_bi_slittingproductionplan pp + WHERE + pp.`status` = '01' + AND pp.is_child_tz_ok = '1' + GROUP BY + pp.resource_name, + pp.parent_container_name, + pp.split_group, + pp.up_or_down + ) AS ct2 ON p.resource_name = ct2.resource_name + AND p.parent_container_name = ct2.parent_container_name + AND p.split_group = ct2.split_group + AND p.up_or_down ]]> ct2.up_or_down + WHERE + p.`status` = '01' AND p.is_child_tz_ok = '0' AND p.is_paper_ok = '1' AND p.is_delete = '0' AND p.manufacture_date = '2024-01-05' - AND LEFT(p.resource_name, 2) IN ('B2') + AND LEFT ( p.resource_name, 2 ) IN ( 'B2' ) AND p.up_or_down IS NOT NULL AND p.left_or_right IS NOT NULL - GROUP BY p.resource_name, p.parent_container_name, p.split_group, p.up_or_down, num - ORDER BY num, p.resource_name, p.parent_container_name, p.split_group, p.up_or_down + GROUP BY + p.resource_name, + p.parent_container_name, + p.split_group, + p.up_or_down, + num, + cn, + cnn + ORDER BY + cnn DESC, + num, + cn, + p.resource_name, + p.parent_container_name, + p.split_group, + p.up_or_down diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtCutpointivt.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtCutpointivt.java index 78fa446f0..d5523936c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtCutpointivt.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtCutpointivt.java @@ -1,13 +1,12 @@ package org.nl.b_lms.sch.point.dao; -import java.math.BigDecimal; -import java.io.Serializable; - +import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.extension.activerecord.Model; import lombok.Data; import lombok.EqualsAndHashCode; -import com.baomidou.mybatisplus.annotation.*; -import com.baomidou.mybatisplus.annotation.TableName; -import com.baomidou.mybatisplus.extension.activerecord.Model; + +import java.io.Serializable; +import java.math.BigDecimal; /** @@ -22,13 +21,12 @@ import com.baomidou.mybatisplus.extension.activerecord.Model; public class StIvtCutpointivt extends Model { private static final long serialVersionUID = -7739291296662381393L; - //@TableId(value = "id", type = IdType.NONE) - /** * 库存记录标识 */ - private Long ivt_id; + @TableId(value = "ivt_id", type = IdType.NONE) + private String ivt_id; /** diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendAirShaftAgvTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendAirShaftAgvTask.java index 8bbf59da6..d1ce97043 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendAirShaftAgvTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SendAirShaftAgvTask.java @@ -90,7 +90,7 @@ public class SendAirShaftAgvTask extends AbstractAcsTask { BstIvtCutpointivt startPointObj = bcutpointivtService.getPintByAgvCode(startPoint, false); String endPoint = task.getPoint_code2(); BstIvtCutpointivt endPointObj = bcutpointivtService.getPintByAgvCode(endPoint, false); - TaskUtils.pointExchangeResources(startPointObj, endPointObj, "3"); + TaskUtils.pointExchangeResources(startPointObj, endPointObj, "2"); bcutpointivtService.updateById(startPointObj); bcutpointivtService.updateById(endPointObj); // 分切计划状态修改02->03 @@ -98,9 +98,7 @@ public class SendAirShaftAgvTask extends AbstractAcsTask { .filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList()); PdmBiSlittingproductionplan p = new PdmBiSlittingproductionplan(); p.setStatus("03"); - p.setUpdate_optid("3"); - p.setUpdate_optname("ACS"); - p.setUpdate_time(DateUtil.now()); + TaskUtils.updateOptMessageBySlitterPlan(p); slittingproductionplanService.update(p, new LambdaQueryWrapper() .in(PdmBiSlittingproductionplan::getQzzno, collect)); } @@ -127,6 +125,7 @@ public class SendAirShaftAgvTask extends AbstractAcsTask { task.setPoint_code1(form.getString("point_code1")); task.setPoint_code2(form.getString("point_code2")); task.setVehicle_code(form.getString("vehicle_code1")); + task.setVehicle_code2(form.getString("vehicle_code2")); task.setAcs_task_type("6"); task.setIs_delete("0"); task.setRequest_param(form.toJSONString()); @@ -149,12 +148,10 @@ public class SendAirShaftAgvTask extends AbstractAcsTask { .filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList()); PdmBiSlittingproductionplan p = new PdmBiSlittingproductionplan(); p.setStatus("02"); - p.setUpdate_optid("3"); - p.setUpdate_optname("ACS"); - p.setUpdate_time(DateUtil.now()); + TaskUtils.updateOptMessageBySlitterPlan(p); slittingproductionplanService.update(p, new LambdaQueryWrapper() .in(PdmBiSlittingproductionplan::getQzzno, collect)); - this.immediateNotifyAcs(null); +// this.immediateNotifyAcs(null); return task.getTask_id(); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java index 8249b6674..6f648a519 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/SlitterDownTrussTask.java @@ -17,6 +17,7 @@ import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.common.utils.SecurityUtils; +import org.nl.common.utils.TaskUtils; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.wms.sch.AcsTaskDto; @@ -99,9 +100,7 @@ public class SlitterDownTrussTask extends AbstractAcsTask { // 下来的分切计划状态:06 -> 09 PdmBiSlittingproductionplan p = new PdmBiSlittingproductionplan(); p.setStatus("09"); - p.setUpdate_optid("3"); - p.setUpdate_optname("ACS"); - p.setUpdate_time(DateUtil.now()); + TaskUtils.updateOptMessageBySlitterPlan(p); List downQzzNos = Stream.of(tmpUpQzzNo, tmpDownQzzNo) .filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList()); slittingproductionplanService.update(p, new LambdaQueryWrapper() @@ -110,8 +109,10 @@ public class SlitterDownTrussTask extends AbstractAcsTask { p.setStatus("05"); List upQzzNos = Stream.of(point2.getQzz_no1(), point2.getQzz_no2()) .filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList()); - slittingproductionplanService.update(p, new LambdaQueryWrapper() - .in(PdmBiSlittingproductionplan::getQzzno, upQzzNos)); + if (upQzzNos.size() > 0) { + slittingproductionplanService.update(p, new LambdaQueryWrapper() + .in(PdmBiSlittingproductionplan::getQzzno, upQzzNos)); + } // 点位数据更新 point1.setUp_qzzno(point2.getQzz_no1()); point1.setDown_qzzno(point2.getQzz_no2()); @@ -121,9 +122,7 @@ public class SlitterDownTrussTask extends AbstractAcsTask { point2.setQzz_no1(tmpUpQzzNo); point2.setQzz_no2(tmpDownQzzNo); point2.setPoint_status("3"); - point2.setUpdate_optid("3"); - point2.setUpdate_optname("ACS"); - point2.setUpdate_time(DateUtil.now()); + TaskUtils.updateOptMessageByBCutPoint(point2); cutpointivtService.updateById(point1); bcutpointivtService.updateById(point2); } @@ -148,7 +147,10 @@ public class SlitterDownTrussTask extends AbstractAcsTask { task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); task.setPoint_code1(form.getString("point_code1")); task.setPoint_code2(form.getString("point_code2")); + task.setPoint_code3(form.getString("point_code3")); + task.setPoint_code4(form.getString("point_code4")); task.setVehicle_code(form.getString("vehicle_code1")); + task.setVehicle_code2(form.getString("vehicle_code2")); task.setAcs_task_type("6"); task.setIs_delete("0"); task.setRequest_param(form.toJSONString()); @@ -166,7 +168,7 @@ public class SlitterDownTrussTask extends AbstractAcsTask { task.setPriority(priority_jo.getString("value")); } taskService.save(task); - this.immediateNotifyAcs(null); +// this.immediateNotifyAcs(null); return task.getTask_id(); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallAirShaftTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallAirShaftTask.java index 082b8cf4e..d660e961c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallAirShaftTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussCallAirShaftTask.java @@ -19,6 +19,7 @@ import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.b_lms.sch.tasks.slitter.mapper.dto.SlitterPlanDistinctDto; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.common.utils.SecurityUtils; +import org.nl.common.utils.TaskUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; @@ -134,17 +135,13 @@ public class TrussCallAirShaftTask extends AbstractAcsTask { } endPointObj.setHave_qzz("1"); endPointObj.setQzz_size(extGroupData.getString("qzz_size")); - endPointObj.setUpdate_optid("3"); - endPointObj.setUpdate_optname("ACS"); - endPointObj.setUpdate_time(DateUtil.now()); + TaskUtils.updateOptMessageByBShaftPoint(endPointObj); shafttubeivtService.updateById(endPointObj); // 起点清空 startPointObj.setQzz_no1(""); startPointObj.setQzz_no2(""); startPointObj.setPoint_status("1"); - startPointObj.setUpdate_optid("3"); - startPointObj.setUpdate_optname("ACS"); - startPointObj.setUpdate_time(DateUtil.now()); + TaskUtils.updateOptMessageByBCutPoint(startPointObj); bcutpointivtService.updateById(startPointObj); } @@ -185,7 +182,7 @@ public class TrussCallAirShaftTask extends AbstractAcsTask { task.setPriority(priority_jo.getString("value")); } taskService.save(task); - this.immediateNotifyAcs(null); +// this.immediateNotifyAcs(null); return task.getTask_id(); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussSendAirShaftTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussSendAirShaftTask.java index 43ace4f89..51cf0222a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussSendAirShaftTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/TrussSendAirShaftTask.java @@ -15,6 +15,7 @@ import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.common.utils.SecurityUtils; +import org.nl.common.utils.TaskUtils; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.wms.sch.AcsTaskDto; @@ -95,12 +96,10 @@ public class TrussSendAirShaftTask extends AbstractAcsTask { endPointObj.setQzz_no1(task.getVehicle_code()); } else { // 下轴 - endPointObj.setQzz_no2(task.getVehicle_code()); + endPointObj.setQzz_no2(task.getVehicle_code2()); } endPointObj.setPoint_status("2"); - endPointObj.setUpdate_optid("3"); - endPointObj.setUpdate_optname("ACS"); - endPointObj.setUpdate_time(DateUtil.now()); + TaskUtils.updateOptMessageByBCutPoint(endPointObj); bcutpointivtService.updateById(endPointObj); // 起点清空 startPointObj.setQzz_size(""); @@ -111,9 +110,7 @@ public class TrussSendAirShaftTask extends AbstractAcsTask { startPointObj.setContainer_name1(""); startPointObj.setContainer_name2(""); startPointObj.setHave_qzz("0"); - startPointObj.setUpdate_optid("3"); - startPointObj.setUpdate_optname("ACS"); - startPointObj.setUpdate_time(DateUtil.now()); + TaskUtils.updateOptMessageByBShaftPoint(startPointObj); shafttubeivtService.updateById(startPointObj); } // 取消 @@ -121,7 +118,7 @@ public class TrussSendAirShaftTask extends AbstractAcsTask { task.setTask_status(TaskStatusEnum.FINISHED.getCode()); // todo: 是否需要回退分切计划套轴完成? } - task.setUpdate_time(DateUtil.now()); + TaskUtils.updateOptMessageByTask(task); taskService.updateById(task); } @@ -136,7 +133,8 @@ public class TrussSendAirShaftTask extends AbstractAcsTask { task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); task.setPoint_code1(form.getString("point_code1")); task.setPoint_code2(form.getString("point_code2")); - task.setVehicle_code(form.getString("vehicle_code")); + task.setVehicle_code(form.getString("vehicle_code1")); + task.setVehicle_code2(form.getString("vehicle_code2")); task.setAcs_task_type("6"); task.setIs_delete("0"); task.setRequest_param(form.toJSONString()); @@ -154,7 +152,7 @@ public class TrussSendAirShaftTask extends AbstractAcsTask { task.setPriority(priority_jo.getString("value")); } taskService.save(task); - this.immediateNotifyAcs(null); +// this.immediateNotifyAcs(null); return task.getTask_id(); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/UpShaftTrussTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/UpShaftTrussTask.java index da7d05f27..900363ff1 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/UpShaftTrussTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/UpShaftTrussTask.java @@ -17,6 +17,7 @@ import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.common.utils.SecurityUtils; +import org.nl.common.utils.TaskUtils; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.wms.sch.AcsTaskDto; @@ -80,6 +81,7 @@ public class UpShaftTrussTask extends AbstractAcsTask { } @Override + @Transactional(rollbackFor = Exception.class) public void updateTaskStatus(JSONObject taskObj, String status) { SchBaseTask task = taskService.getById(taskObj.getString("task_id")); if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { @@ -98,25 +100,21 @@ public class UpShaftTrussTask extends AbstractAcsTask { // 交换数据 point2.setUp_qzzno(point1.getQzz_no1()); point2.setDown_qzzno(point1.getQzz_no2()); - point2.setUpdate_optid(3L); - point2.setUpdate_optname("ACS"); + point2.setUpdate_optid(Long.valueOf(SecurityUtils.getCurrentUserId())); + point2.setUpdate_optname(SecurityUtils.getCurrentUsername()); point2.setUpdate_time(DateUtil.now()); cutpointivtService.updateById(point2); point1.setQzz_no1(""); point1.setQzz_no2(""); point1.setPoint_status("1"); - point1.setUpdate_optid("3"); - point1.setUpdate_optname("ACS"); - point1.setUpdate_time(DateUtil.now()); + TaskUtils.updateOptMessageByBCutPoint(point1); bcutpointivtService.updateById(point1); // 分切计划修改状态04->05 List collect = Stream.of(task.getVehicle_code(), task.getVehicle_code2()) .filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList()); PdmBiSlittingproductionplan p = new PdmBiSlittingproductionplan(); p.setStatus("05"); - p.setUpdate_optid("3"); - p.setUpdate_optname("ACS"); - p.setUpdate_time(DateUtil.now()); + TaskUtils.updateOptMessageBySlitterPlan(p); slittingproductionplanService.update(p, new LambdaQueryWrapper() .in(PdmBiSlittingproductionplan::getQzzno, collect)); } @@ -124,7 +122,7 @@ public class UpShaftTrussTask extends AbstractAcsTask { if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { task.setTask_status(TaskStatusEnum.FINISHED.getCode()); } - task.setUpdate_time(DateUtil.now()); + TaskUtils.updateOptMessageByTask(task); taskService.updateById(task); } @@ -140,7 +138,10 @@ public class UpShaftTrussTask extends AbstractAcsTask { task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); task.setPoint_code1(form.getString("point_code1")); task.setPoint_code2(form.getString("point_code2")); + task.setPoint_code3(form.getString("point_code3")); + task.setPoint_code4(form.getString("point_code4")); task.setVehicle_code(form.getString("vehicle_code1")); + task.setVehicle_code2(form.getString("vehicle_code2")); task.setAcs_task_type("6"); task.setIs_delete("0"); task.setRequest_param(form.toJSONString()); @@ -163,12 +164,10 @@ public class UpShaftTrussTask extends AbstractAcsTask { .filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList()); PdmBiSlittingproductionplan p = new PdmBiSlittingproductionplan(); p.setStatus("04"); - p.setUpdate_optid("3"); - p.setUpdate_optname("ACS"); - p.setUpdate_time(DateUtil.now()); + TaskUtils.updateOptMessageBySlitterPlan(p); slittingproductionplanService.update(p, new LambdaQueryWrapper() .in(PdmBiSlittingproductionplan::getQzzno, collect)); - this.immediateNotifyAcs(null); +// this.immediateNotifyAcs(null); return task.getTask_id(); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java index 2dcba4e44..8b7f5eb67 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java @@ -46,7 +46,7 @@ public class AutoCallAirShaftTask { @Transactional(rollbackFor = Exception.class) public void run() { - // 1、获取空的插拔轴位 + // 1、获取空的插拔轴位(无任务) List emptyPoints = bstIvtShafttubeivtService.getAllShaftPointsByConditions("2","0","0"); emptyPoints.forEach(empty -> { // 2、获取分切计划数据,todo:暂时不考虑区域 @@ -127,7 +127,7 @@ public class AutoCallAirShaftTask { }); } - private static void saveCutPlanMessage(BstIvtShafttubeivt empty, List needPlans, String qzzSize) { + private void saveCutPlanMessage(BstIvtShafttubeivt empty, List needPlans, String qzzSize) { empty.setHave_qzz("1"); empty.setQzz_size(qzzSize); empty.setUpdate_optid(SecurityUtils.getCurrentUserId()); @@ -156,6 +156,14 @@ public class AutoCallAirShaftTask { empty.setContainer_name2(plan.getContainer_name()); } } + bstIvtShafttubeivtService.updateById(empty); + // 分切计划 + // 将分切计划is_paper_ok 1 -> 2 + needPlans.forEach(p -> { + p.setIs_paper_ok("2"); + TaskUtils.updateOptMessageBySlitterPlan(p); + }); + slittingproductionplanService.updateBatchById(needPlans); } private void makePullShaft(BstIvtShafttubeivt empty) { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java index aa1efb684..67122c48a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java @@ -11,6 +11,7 @@ import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingprodu import org.nl.b_lms.sch.point.dao.StIvtCutpointivt; import org.nl.b_lms.sch.point.service.IstIvtCutpointivtService; import org.nl.b_lms.sch.tasks.slitter.SendAirShaftAgvTask; +import org.nl.b_lms.sch.tasks.slitter.mapper.SlitterMapper; import org.nl.modules.common.exception.BadRequestException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -35,6 +36,8 @@ public class AutoSendAirShaftAgvTask { private IPdmBiSlittingproductionplanService slittingproductionplanService; @Autowired private SendAirShaftAgvTask sendAirShaftAgvTask; + @Autowired + private SlitterMapper slitterMapper; public void run() { // 获取套轴对接位有气涨轴没任务的点位 @@ -67,12 +70,8 @@ public class AutoSendAirShaftAgvTask { } } // 如果两个气涨轴编码则表示一组满了 - // 查找分切对接的空位 todo: (校验任务) - List emptyPoint = bcutpointivtService.list(new LambdaQueryWrapper() - .eq(BstIvtCutpointivt::getPoint_type, "3") - .eq(BstIvtCutpointivt::getPoint_status, "1") - .eq(BstIvtCutpointivt::getIs_used, "1") - .last("ORDER BY ABS(sort_seq - " + deviceCut.getSort_seq() + ")")); + // 查找分切对接没任务的空位 + List emptyPoint = slitterMapper.getEmptyCutPointNotTask(deviceCut.getSort_seq()); if (emptyPoint.size() == 0) { log.warn("找不到对应的位置!"); return; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSlitterDownAgvTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSlitterDownAgvTask.java index 744366c0d..bcdccd2c7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSlitterDownAgvTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSlitterDownAgvTask.java @@ -52,16 +52,6 @@ public class AutoSlitterDownAgvTask { // 获取满轴数据 todo: 先不考虑区域,后期添加 List cutPointIvts = slitterMapper.getAreaFullVolume(); cutPointIvts.forEach(cut -> { - // 校验任务 - List collect = Stream.of(cut.getPoint_code(), cut.getTruss_point_code1(), cut.getTruss_point_code2()) - .collect(Collectors.toList()); - List list = taskService.list(new LambdaQueryWrapper() - .le(SchBaseTask::getTask_status, "07") - .in(SchBaseTask::getPoint_code1, collect).in(SchBaseTask::getPoint_code2, collect) - .in(SchBaseTask::getPoint_code3, collect).in(SchBaseTask::getPoint_code4, collect)); - if (list.size() > 0) { - return; - } // cut是起点 // 1、先去对应的套轴对接位,没有气涨轴(空位),没有任务的点位 List areaEmptyNotTaskPoint = cutpointivtService.getAreaNotTaskPointByStatus("1", "1", "2"); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoUpShaftTrussTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoUpShaftTrussTask.java index 4d8ab0469..57849ead6 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoUpShaftTrussTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoUpShaftTrussTask.java @@ -13,9 +13,9 @@ import org.nl.b_lms.sch.point.service.IstIvtCutpointivtService; import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.b_lms.sch.tasks.slitter.UpShaftTrussTask; +import org.nl.b_lms.sch.tasks.slitter.mapper.SlitterMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.stream.Collectors; @@ -40,6 +40,8 @@ public class AutoUpShaftTrussTask { private UpShaftTrussTask upShaftTrussTask; @Autowired private IschBaseTaskService taskService; + @Autowired + private SlitterMapper slitterMapper; public void run() { // 获取没有气涨轴的分切机点位 @@ -51,17 +53,25 @@ public class AutoUpShaftTrussTask { // 校验任务 List collect = Stream.of(device.getUp_point_code(), device.getDown_point_code()).collect(Collectors.toList()); List list = taskService.list(new LambdaQueryWrapper() - .le(SchBaseTask::getTask_status, "07") + .lt(SchBaseTask::getTask_status, "07") .in(SchBaseTask::getPoint_code1, collect).in(SchBaseTask::getPoint_code2, collect) .in(SchBaseTask::getPoint_code3, collect).in(SchBaseTask::getPoint_code4, collect)); if (list.size() > 0) { return; } + // 获取备好轴的对接点位 + List cutPointList = slitterMapper.getReadyShaftPoint(device.getExt_code()); + if (cutPointList.size() == 0) { + log.warn("分切机【" + device.getExt_code() + "】未找到套好纸管的气涨轴"); + // 下个分切机 + return; + } + BstIvtCutpointivt newCutPoint = cutPointList.get(0); // 获取当前分切机的下一组分切计划(最多四条分切计划) + List qzzNos = Stream.of(newCutPoint.getQzz_no1(), newCutPoint.getQzz_no2()) + .filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList()); List nextPlans = slittingproductionplanService.list(new LambdaQueryWrapper() - .eq(PdmBiSlittingproductionplan::getResource_name, device.getExt_code()) - .eq(PdmBiSlittingproductionplan::getStatus, "03") - .eq(PdmBiSlittingproductionplan::getIs_delete, "0")); + .in(PdmBiSlittingproductionplan::getQzzno, qzzNos)); if (nextPlans.size() == 0) { log.warn("分切机【" + device.getExt_code() + "】未找到套好轴的分切计划"); // 下个分切机 @@ -71,17 +81,6 @@ public class AutoUpShaftTrussTask { // 筛选上下轴各一条 PdmBiSlittingproductionplan nextUpPlan = nextPlans.stream().filter(p -> "1".equals(p.getUp_or_down())).findFirst().orElse(null); PdmBiSlittingproductionplan nextDownPlan = nextPlans.stream().filter(p -> "2".equals(p.getUp_or_down())).findFirst().orElse(null); - LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); - lam.eq(BstIvtCutpointivt::getPoint_type, "3") - .eq(BstIvtCutpointivt::getPoint_status, "2") - .eq(BstIvtCutpointivt::getIs_used, "1"); - if (ObjectUtil.isNotEmpty(nextUpPlan)) { - lam.eq(BstIvtCutpointivt::getQzz_no1, nextUpPlan.getQzzno()); - } - if (ObjectUtil.isNotEmpty(nextDownPlan)) { - lam.eq(BstIvtCutpointivt::getQzz_no2, nextDownPlan.getQzzno()); - } - BstIvtCutpointivt newCutPoint = bcutpointivtService.getOne(lam, false); // 查找对应的分切对接位 if (ObjectUtil.isNotEmpty(nextUpPlan) && ObjectUtil.isNotEmpty(nextDownPlan)) { // 双轴任务 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/controller/SlitterController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/controller/SlitterController.java index e69de29bb..618fb6616 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/controller/SlitterController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/controller/SlitterController.java @@ -0,0 +1,50 @@ +package org.nl.b_lms.sch.tasks.slitter.controller; + +import cn.dev33.satoken.annotation.SaIgnore; +import com.alibaba.fastjson.JSONObject; +import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.sch.tasks.slitter.service.SlitterService; +import org.nl.modules.logging.annotation.Log; +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.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * @Author: lyd + * @Description: + * @Date: 2024/2/29 + */ +@Slf4j +@RestController +@SaIgnore +@RequestMapping("/api/wms/apply") +public class SlitterController { + @Autowired + private SlitterService slitterService; + + @PostMapping("/test1") + @Log("1111") + public ResponseEntity create(@RequestBody JSONObject entity){ + return new ResponseEntity<>(slitterService.acsRequestShaftPluckTube(entity), HttpStatus.CREATED); + } + @PostMapping("/test2") + @Log("1111") + public ResponseEntity create2(@RequestBody JSONObject entity){ + return new ResponseEntity<>(slitterService.acsFinishLoadShaft(entity), HttpStatus.CREATED); + } + @PostMapping("/test3") + @Log("1111") + public ResponseEntity create3(@RequestBody JSONObject entity){ + List collect = Stream.of("B2382401020202A1").collect(Collectors.toList()); + entity.put("container", collect); + return new ResponseEntity<>(slitterService.mesSlittingMachineSendMaterial(entity), HttpStatus.CREATED); + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.java index c1b1b0955..abde7834e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.java @@ -3,6 +3,7 @@ package org.nl.b_lms.sch.tasks.slitter.mapper; import org.nl.b_lms.bst.ivt.cutpointivt.service.dao.BstIvtCutpointivt; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan; +import java.math.BigDecimal; import java.util.List; /** @@ -31,4 +32,18 @@ public interface SlitterMapper { * @return / */ List getAreaFullVolume(); + + /** + * 获取分切机下料位没任务的点位 + * @param sortSeq + * @return + */ + List getEmptyCutPointNotTask(BigDecimal sortSeq); + + /** + * 获取分切机下一组分切计划对应的点位 + * @param extCode + * @return + */ + List getReadyShaftPoint(String extCode); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml index a47316ac0..7b3f09349 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml @@ -11,6 +11,7 @@ LEFT JOIN pdm_bi_slittingproductionplan p ON p.qzzno = bct.qzz_no1 OR p.qzzno = bct.qzz_no2 WHERE bct.point_status = '2' AND p.parent_container_name = #{parent_container_name} AND p.split_group = #{split_group} AND (bct.qzz_no1 IS NULL OR bct.qzz_no1 = '' OR bct.qzz_no2 IS NULL OR bct.qzz_no2 = '') + LIMIT 1 + + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java index 9502b7e81..2317442ab 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java @@ -8,6 +8,13 @@ import com.alibaba.fastjson.JSONObject; * @date 2024-02-26 **/ public interface SlitterService { + /** + * acs申请套轴 + * @param param + * @return + */ + JSONObject acsRequestShaftPluckTube(JSONObject param); + /** * acs申请拔轴完毕 * @param param diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index 8aa3bd33c..c983a37ba 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -28,6 +28,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -57,6 +58,20 @@ public class SlitterServiceImpl implements SlitterService { @Autowired private SlitterDownTrussTask slitterDownTrussTask; + @Override + public JSONObject acsRequestShaftPluckTube(JSONObject param) { + JSONObject res = new JSONObject(); + JSONObject con = new JSONObject(); + String deviceCode = param.getString("device_code"); + BstIvtShafttubeivt point = shafttubeivtService.getByPointCode(deviceCode, false); + res.put("code", HttpStatus.HTTP_OK); + res.put("device_code", deviceCode); + res.put("data", con); + con.put("left", point.getTube_code1()); + con.put("right", point.getTube_code2()); + return res; + } + @Override public JSONObject acsFinishShaftPluckTube(JSONObject param) { JSONObject res = new JSONObject(); @@ -96,9 +111,15 @@ public class SlitterServiceImpl implements SlitterService { public JSONObject acsFinishLoadShaft(JSONObject param) { JSONObject res = new JSONObject(); String deviceCode = param.getString("device_code"); - // todo: 判断是否有未完成的任务 + // 判断是否有未完成的任务 BstIvtShafttubeivt startPoint = shafttubeivtService.getOne(new LambdaQueryWrapper() .eq(BstIvtShafttubeivt::getPoint_code, deviceCode)); + List list = taskService.list(new LambdaQueryWrapper() + .eq(SchBaseTask::getPoint_code1, startPoint.getPoint_code()) + .lt(SchBaseTask::getTask_status, "07")); + if (list.size() > 0) { + throw new BadRequestException("点位[" + deviceCode + "]存在未完成得任务!"); + } // 获取分切计划 List collect = Stream.of(startPoint.getContainer_name1(), startPoint.getContainer_name2()) .filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList()); @@ -133,17 +154,16 @@ public class SlitterServiceImpl implements SlitterService { plans.forEach(plan -> { plan.setIs_child_tz_ok("1"); plan.setQzzno(qzzNo); - plan.setUpdate_optid("3"); - plan.setUpdate_optname("ACS"); - plan.setUpdate_time(DateUtil.now()); + TaskUtils.updateOptMessageBySlitterPlan(plan); }); slittingproductionplanService.updateBatchById(plans); // 创建任务 JSONObject taskParam = new JSONObject(); taskParam.put("point_code1", startPoint.getPoint_code()); - taskParam.put("point_code2", ObjectUtil.isEmpty(cutPoint.getTruss_point_code1()) + taskParam.put("point_code2", "1".equals(demoPlan.getUp_or_down()) ? cutPoint.getTruss_point_code1() : cutPoint.getTruss_point_code2()); - taskParam.put("vehicle_code", qzzNo); + taskParam.put("vehicle_code1", "1".equals(demoPlan.getUp_or_down()) ? qzzNo : ""); + taskParam.put("vehicle_code2", "2".equals(demoPlan.getUp_or_down()) ? qzzNo : ""); taskParam.put("task_type", "6"); taskParam.put("product_area", "Test"); trussSendAirShaftTask.createTask(taskParam); @@ -166,7 +186,11 @@ public class SlitterServiceImpl implements SlitterService { } // 获取分切计划,最多4个需要出站的任务 List currentPlans = slittingproductionplanService.list(new LambdaQueryWrapper() - .in(PdmBiSlittingproductionplan::getContainer_name, containerList)); + .in(PdmBiSlittingproductionplan::getContainer_name, containerList) + .eq(PdmBiSlittingproductionplan::getStatus, "05")); + if (currentPlans.size() == 0) { + throw new BadRequestException("当前子卷已经出卷或者不存在!"); + } // 获取上轴分切计划和下轴分切计划,各一条 PdmBiSlittingproductionplan currentUpPlan = currentPlans.stream().filter(p -> "1".equals(p.getUp_or_down())).findFirst().orElse(null); PdmBiSlittingproductionplan currentDownPlan = currentPlans.stream().filter(p -> "2".equals(p.getUp_or_down())).findFirst().orElse(null); @@ -187,12 +211,8 @@ public class SlitterServiceImpl implements SlitterService { JSONObject taskParam = new JSONObject(); if (timePlans.size() == 0) { // 如果没有下一组分切计划,就只做下卷任务(判断下单/下双) - // 获取分切对接位没任务的空位置 todo: 校验任务未作 - List emptyPoints = bcutpointivtService.list(new LambdaQueryWrapper() - .eq(BstIvtCutpointivt::getPoint_type, "3") - .eq(BstIvtCutpointivt::getPoint_status, "1") - .eq(BstIvtCutpointivt::getIs_used, "1") - .last("ORDER BY ABS(sort_seq - " + device.getSort_seq() + ")")); + // 获取分切对接位没任务的空位置 + List emptyPoints = slitterMapper.getEmptyCutPointNotTask(device.getSort_seq()); if (emptyPoints.size() == 0) { throw new BadRequestException("分切机【" + device.getExt_code() + "】找不到对应的对接位!"); } @@ -219,10 +239,10 @@ public class SlitterServiceImpl implements SlitterService { // 分切计划修改状态 05 -> 06 currentPlans.forEach(plan -> { plan.setStatus("06"); - plan.setUpdate_optid("3"); - plan.setUpdate_optname("ACS"); - plan.setUpdate_time(DateUtil.now()); + TaskUtils.updateOptMessageBySlitterPlan(plan); }); + // 创建任务 + slitterDownTrussTask.createTask(taskParam); slittingproductionplanService.updateBatchById(currentPlans); return res; } @@ -234,7 +254,7 @@ public class SlitterServiceImpl implements SlitterService { // 筛选上下轴各一条 PdmBiSlittingproductionplan nextUpPlan = nextPlans.stream().filter(p -> "1".equals(p.getUp_or_down())).findFirst().orElse(null); PdmBiSlittingproductionplan nextDownPlan = nextPlans.stream().filter(p -> "2".equals(p.getUp_or_down())).findFirst().orElse(null); - // 找到该分切计划的点位 todo: 应该校验没任务 + // 找到该分切计划的点位 LambdaQueryWrapper newCutLam = new QueryWrapper().lambda(); newCutLam.eq(BstIvtCutpointivt::getPoint_type, "3").eq(BstIvtCutpointivt::getPoint_status, "1") .eq(BstIvtCutpointivt::getIs_used, "1"); @@ -298,19 +318,18 @@ public class SlitterServiceImpl implements SlitterService { // 下来的分切计划修改状态:05 -> 06 currentPlans.forEach(plan -> { plan.setStatus("06"); - plan.setUpdate_optid("3"); - plan.setUpdate_optname("ACS"); - plan.setUpdate_time(DateUtil.now()); + TaskUtils.updateOptMessageBySlitterPlan(plan); }); - slittingproductionplanService.updateBatchById(currentPlans); +// slittingproductionplanService.updateBatchById(currentPlans); // 上去的分切计划修改状态:03 -> 04 nextPlans.forEach(plan -> { plan.setStatus("04"); - plan.setUpdate_optid("3"); - plan.setUpdate_optname("ACS"); - plan.setUpdate_time(DateUtil.now()); + TaskUtils.updateOptMessageBySlitterPlan(plan); }); - slittingproductionplanService.updateBatchById(nextPlans); + List mergedList = new ArrayList<>(); + mergedList.addAll(currentPlans); + mergedList.addAll(nextPlans); + slittingproductionplanService.updateBatchById(mergedList); return res; } } diff --git a/lms/nladmin-system/src/main/java/org/nl/common/utils/TaskUtils.java b/lms/nladmin-system/src/main/java/org/nl/common/utils/TaskUtils.java index 92eac9641..cc6ee8bad 100644 --- a/lms/nladmin-system/src/main/java/org/nl/common/utils/TaskUtils.java +++ b/lms/nladmin-system/src/main/java/org/nl/common/utils/TaskUtils.java @@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import lombok.extern.slf4j.Slf4j; import org.nl.b_lms.bst.ivt.cutpointivt.service.dao.BstIvtCutpointivt; +import org.nl.b_lms.bst.ivt.shafttubeivt.service.dao.BstIvtShafttubeivt; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan; import org.nl.b_lms.sch.task.dao.SchBaseTask; @@ -22,18 +23,21 @@ public class TaskUtils { * @param status 目标状态 */ public static void pointExchangeResources(BstIvtCutpointivt source, BstIvtCutpointivt target, String status) { + String currentUserId = SecurityUtils.getCurrentUserId(); + String currentUsername = SecurityUtils.getCurrentUsername(); + String now = DateUtil.now(); target.setQzz_no1(source.getQzz_no1()); target.setQzz_no2(source.getQzz_no2()); target.setPoint_status(status); - target.setUpdate_optid("3"); - target.setUpdate_optname("ACS"); - target.setUpdate_time(DateUtil.now()); + target.setUpdate_optid(currentUserId); + target.setUpdate_optname(currentUsername); + target.setUpdate_time(now); source.setQzz_no1(""); source.setQzz_no2(""); source.setPoint_status("1"); - source.setUpdate_optid("3"); - source.setUpdate_optname("ACS"); - source.setUpdate_time(DateUtil.now()); + source.setUpdate_optid(currentUserId); + source.setUpdate_optname(currentUsername); + source.setUpdate_time(now); } /** @@ -78,4 +82,24 @@ public class TaskUtils { task.setUpdate_optname(SecurityUtils.getCurrentUsername()); task.setUpdate_time(DateUtil.now()); } + + /** + * 赋值任务的修改时间、人等信息 + * @param point 任务 + */ + public static void updateOptMessageByBCutPoint(BstIvtCutpointivt point) { + point.setUpdate_optid(SecurityUtils.getCurrentUserId()); + point.setUpdate_optname(SecurityUtils.getCurrentUsername()); + point.setUpdate_time(DateUtil.now()); + } + + /** + * 赋值任务的修改时间、人等信息 + * @param point 任务 + */ + public static void updateOptMessageByBShaftPoint(BstIvtShafttubeivt point) { + point.setUpdate_optid(SecurityUtils.getCurrentUserId()); + point.setUpdate_optname(SecurityUtils.getCurrentUsername()); + point.setUpdate_time(DateUtil.now()); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/TaskServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/TaskServiceImpl.java index 307e224e1..3414572b7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/TaskServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/TaskServiceImpl.java @@ -15,6 +15,7 @@ import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.modules.wql.util.SpringContextHolder; import org.nl.modules.wql.util.WqlUtil; import org.nl.wms.basedata.master.service.ClassstandardService; import org.nl.wms.basedata.master.service.dto.ClassstandardDto; @@ -98,7 +99,7 @@ public class TaskServiceImpl implements TaskService { UserAreaServiceImpl userAreaService = new UserAreaServiceImpl(); String in_area_id = userAreaService.getInArea(); if (ObjectUtil.isNotEmpty(in_area_id)) { - map.put("in_area_id", in_area_id); +// map.put("in_area_id", in_area_id); } JSONObject json = WQL.getWO("QSCH_TASK_01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "update_time desc"); JSONArray content = json.getJSONArray("content"); @@ -139,8 +140,7 @@ public class TaskServiceImpl implements TaskService { String processing_class = taskObj.getString("handle_class"); String message = ""; try { - Class clz = Class.forName(processing_class); - Object obj = clz.newInstance(); + Object obj = SpringContextHolder.getBean(Class.forName(processing_class)); // 调用每个任务类的method_name()强制结束方法 Method m = obj.getClass().getMethod(method_name, String.class); JSONObject result = (JSONObject) m.invoke(obj, task_id);