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 7ecef895c..029d4d16b 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 @@ -23,7 +23,9 @@ public interface BstIvtShafttubeivtMapper extends BaseMapper * @param location 位置(上下) * @return / */ - List getNotTaskShaftCache(String qzzSize, String specification, String location); + List getNotTaskShaftCache(@Param("qzzSize") String qzzSize, + @Param("specification") String specification, + @Param("location") String location); /** * 获取空气胀轴的气胀轴暂存位 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 1d497c5ad..b8225bd44 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 @@ -29,7 +29,9 @@ WHERE b.have_qzz = '1' AND b.point_type = '6' AND b.qzz_size = #{qzzSize} - AND b.qzz_generation = #{specification} + + AND b.qzz_generation = #{specification} + AND b.point_location = #{location} AND 0 = (SELECT COUNT(*) FROM sch_base_task t WHERE t.task_status '07' AND t.point_code1 = b.point_code) ORDER BY b.sort_seq DESC diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/SlitterPdaController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/SlitterPdaController.java index e2b0970db..ea6d5c7bf 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/SlitterPdaController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/SlitterPdaController.java @@ -81,7 +81,7 @@ public class SlitterPdaController { } @PostMapping("/toCleanCutCacheInventory") - @Log("清理分切缓存到内包间") + @Log("清理分切缓存") @SaIgnore public ResponseEntity toCleanCutCacheInventory(@RequestBody JSONObject param) { return new ResponseEntity<>(slitterDevices.toCleanCutCacheInventory(param), HttpStatus.OK); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/IPdmBiSlittingproductionplanService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/IPdmBiSlittingproductionplanService.java index 42aa1309e..3a2d9a6a4 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/IPdmBiSlittingproductionplanService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/IPdmBiSlittingproductionplanService.java @@ -1,5 +1,6 @@ package org.nl.b_lms.pdm.bi.slittingproductionplan.service; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import org.nl.b_lms.sch.tasks.slitter.mapper.dto.SlitterPlanDistinctDto; import org.nl.common.domain.query.PageQuery; @@ -77,4 +78,10 @@ public interface IPdmBiSlittingproductionplanService extends IService workorderId = SlitterTaskUtil.getAllStringByName(data, "workorder_id"); + if (ObjectUtil.isNotEmpty(upOrDown)) { + // 设置上下轴 + PdmBiSlittingproductionplan demo = new PdmBiSlittingproductionplan(); + demo.setUp_or_down(upOrDown); + TaskUtils.updateOptMessageBySlitterPlan(demo); + this.saveOrUpdate(demo, new LambdaQueryWrapper() + .in(PdmBiSlittingproductionplan::getWorkorder_id, workorderId)); + } + if (ObjectUtil.isNotEmpty(leftOrRight)) { + // 设置上下轴 + PdmBiSlittingproductionplan demo = new PdmBiSlittingproductionplan(); + demo.setLeft_or_right(leftOrRight); + TaskUtils.updateOptMessageBySlitterPlan(demo); + this.saveOrUpdate(demo, new LambdaQueryWrapper() + .in(PdmBiSlittingproductionplan::getWorkorder_id, workorderId)); + } + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.xml index b92899986..1b25e5058 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.xml @@ -84,7 +84,7 @@ WHERE b.point_status = '3' AND b.ivt_status = '3' AND a.sale_order_name = #{sale_order_name} - ORDER BY box_group DESC + ORDER BY box_group diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java index 7991d78c9..7306f0f6f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java @@ -295,8 +295,11 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl containerNameList = packagerelationList.stream() .map(PdmBiSubpackagerelation::getContainer_name) .collect(Collectors.toSet()); - BigDecimal totalWeight; List planList = iPdmBiSlittingproductionplanService.list(new LambdaQueryWrapper().in(PdmBiSlittingproductionplan::getContainer_name, containerNameList)); + if (CollectionUtils.isEmpty(planList)) { + throw new BadRequestException("该箱号不存在分切计划"); + } + BigDecimal totalWeight; totalWeight = planList.stream() .map(PdmBiSlittingproductionplan::getWeight) .filter(Objects::nonNull) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/controller/BstIvtPackageinfoivtController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/controller/BstIvtPackageinfoivtController.java index fb0fd0c6a..d9d4325c5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/controller/BstIvtPackageinfoivtController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/controller/BstIvtPackageinfoivtController.java @@ -1,21 +1,25 @@ package org.nl.b_lms.sch.point.controller; -import java.util.Set; - import cn.dev33.satoken.annotation.SaIgnore; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; -import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; -import org.nl.modules.common.exception.BadRequestException; -import org.springframework.web.bind.annotation.*; import lombok.RequiredArgsConstructor; - -import javax.annotation.Resource; - import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; +import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; +import org.nl.common.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.logging.annotation.Log; +import org.nl.wms.pdm.ivt.service.dto.DeliveryPointIvtDto; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.Map; +import java.util.Set; /** @@ -35,6 +39,19 @@ public class BstIvtPackageinfoivtController { private IbstIvtPackageinfoivtService bstIvtPackageinfoivtService; + /** + * 分页查询 + * + * @param whereJson 查询条件 + * @param page 分页参数 + */ + @GetMapping + @Log("查询点位库存") + public ResponseEntity query(@RequestParam Map whereJson, PageQuery page) { + return new ResponseEntity<>(TableDataInfo.build(bstIvtPackageinfoivtService.queryAll(whereJson, page)), HttpStatus.OK); + } + + /** * 一楼装箱区点位二次分配 * @@ -53,10 +70,7 @@ public class BstIvtPackageinfoivtController { return new ResponseEntity<>(bstIvtPackageinfoivtService.secondaryAllocationPoint(taskCode, actionType), HttpStatus.OK); } - /** - * agv二次分配类型(1、普通任务 2、取货二次分配 3、防货二次分配 4、取放货二次分配) - */ - private String agv_action_type; + /** * 新增数据 @@ -65,12 +79,28 @@ public class BstIvtPackageinfoivtController { * @return 新增结果 */ @PostMapping + @Log("修改点位库存") public ResponseEntity create(@RequestBody BstIvtPackageinfoivt params) { bstIvtPackageinfoivtService.create(params); return new ResponseEntity<>(HttpStatus.OK); } + /** + * 修改数据 + * @param params 实体对象 + * @return 修改结果 + */ + @PutMapping + @Log("修改点位库存") + //@SaCheckPermission("@el.check('deliverypointivt:edit')") + public ResponseEntity update(@Validated @RequestBody BstIvtPackageinfoivt params) { + bstIvtPackageinfoivtService.update(params); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + + /** * 删除数据 * diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/IbstIvtPackageinfoivtService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/IbstIvtPackageinfoivtService.java index 9b2f475c2..0ccba5603 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/IbstIvtPackageinfoivtService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/IbstIvtPackageinfoivtService.java @@ -75,6 +75,15 @@ public interface IbstIvtPackageinfoivtService extends IService queryAll(Map whereJson, PageQuery page) { - return bstIvtPackageinfoivtMapper.selectPage(new Page<>(page.getPage() + 1, page.getSize()), new QueryWrapper() - .lambda()); + LambdaQueryWrapper queryWrapper = new QueryWrapper().lambda(); + String isUsed = MapUtil.getStr(whereJson, "is_used"); + String pointCode = MapUtil.getStr(whereJson, "point_code"); + String packageInfoArea = MapUtil.getStr(whereJson, "packageinfo_area"); + String ivtStatus = MapUtil.getStr(whereJson, "ivt_status"); + if (StringUtils.isNotEmpty(isUsed)) { + queryWrapper.eq(BstIvtPackageinfoivt::getIs_used, isUsed); + } + if (StringUtils.isNotEmpty(pointCode)) { + queryWrapper.like(BstIvtPackageinfoivt::getPoint_code, pointCode); + } + if (StringUtils.isNotEmpty(packageInfoArea)) { + queryWrapper.eq(BstIvtPackageinfoivt::getPoint_status, packageInfoArea); + } + if (StringUtils.isNotEmpty(ivtStatus)) { + queryWrapper.eq(BstIvtPackageinfoivt::getIvt_status, ivtStatus); + } + return bstIvtPackageinfoivtMapper.selectPage(new Page<>(page.getPage() + 1, page.getSize()), queryWrapper); } @Override @@ -82,6 +97,9 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl taskList; Set pointSets; if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务")) || pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"))) { @@ -90,9 +108,9 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl() .eq(SchBaseTask::getTask_code, taskCode) + .eq(SchBaseTask::getIs_delete, IOSEnum.IS_SEND.code("否")) .eq(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode())); if (baseTask == null) { throw new BadRequestException("该任务未执行或不存在!"); @@ -277,9 +296,13 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl kzjIvtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"), null, null, PackageInfoIvtEnum.SORT_TYPE.code("降序"), ""); + BigDecimal sortSeq = kzjIvtList.stream().filter(r -> r.getPoint_code().equals(pointCode)).collect(Collectors.toList()).get(0).getSort_seq(); + return kzjIvtList.stream() + .anyMatch(r -> r.getSort_seq().compareTo(sortSeq) < 0 && + r.getIvt_status().equals(PackageInfoIvtEnum.IVT_STATUS.code("空载具"))); + } + private BstIvtPackageinfoivt getBstIvtPackageinfoivt(String actionType, String taskPointType, SchBaseTask baseTask) { BstIvtPackageinfoivt newPoint; //1取货任务2放货任务 @@ -350,6 +385,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false); - if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) return; + if (TaskUtil.checkParams(schBaseTask, THIS_CLASS)) return; + TaskUtils.updateOptMessageByTask(schBaseTask); if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { // 更新任务状态为执行中 schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode()); } if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { + log.info("任务编号为:" + schBaseTask.getTask_code() + "的任务完成接口在" + schBaseTask.getUpdate_time() + "被调用---------------------------------------------"); //1.更改任务状态为完成 schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode()); //2.改变起点点位状态,二次分配,取货完成就改起点库存 @@ -106,24 +107,21 @@ public class DjqTask extends AbstractAcsTask { //清除首次分配目标点位 schBaseTask.setPoint_code3(""); //4.判断是否存在确定起点的输送线->满轴缓存位任务,存在就下发任务 - List taskList = taskService.list(new LambdaQueryWrapper() - //确定起点未下发 - .eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_START.getCode()) - .eq(SchBaseTask::getPoint_code1, "NBJ1002") - .eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位")) - .eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")) - ); - if (CollectionUtils.isNotEmpty(taskList)) { - SchBaseTask task = taskList.get(0); - task.setPoint_code2(schBaseTask.getPoint_code1()); - task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); - task.setUpdate_time(DateUtil.now()); - task.setUpdate_optid(SecurityUtils.getCurrentUserId()); - task.setUpdate_optname(SecurityUtils.getCurrentNickName()); - taskService.update(task); - //任务下发 - mzhcwTask.immediateNotifyAcs(task.getTask_id().toString()); - } + // List taskList = taskService.list(new LambdaQueryWrapper() + // //确定起点未下发 + // .eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_START.getCode()) + // .eq(SchBaseTask::getPoint_code1, "NBJ1002") + // .eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位")) + // .eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")) + // ); + // if (CollectionUtils.isNotEmpty(taskList)) { + // SchBaseTask task = taskList.get(0); + // task.setPoint_code2(schBaseTask.getPoint_code1()); + // task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); + // taskService.update(task); + // //任务下发 + // mzhcwTask.immediateNotifyAcs(task.getTask_id().toString()); + // } //5搬运装箱区 //sendDjqToZxq(schBaseTask); } @@ -134,10 +132,9 @@ public class DjqTask extends AbstractAcsTask { } //任务被标记为取消 schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); + schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setRemark("任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。"); } - schBaseTask.setUpdate_time(DateUtil.now()); - schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); - schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName()); taskService.update(schBaseTask); } @@ -225,11 +222,10 @@ public class DjqTask extends AbstractAcsTask { if (schBaseTask == null) { throw new BadRequestException("满轴缓存位 -> 待检区取消接口任务号为空!"); } - schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + TaskUtils.updateOptMessageByTask(schBaseTask); schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); - schBaseTask.setUpdate_time(DateUtil.now()); - schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); - schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName()); + schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setRemark("任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。"); taskService.update(schBaseTask); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqToKzjhcwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqToKzjhcwTask.java index 1fdca90f7..f710727d7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqToKzjhcwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqToKzjhcwTask.java @@ -6,13 +6,10 @@ import cn.hutool.core.util.BooleanUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.StringUtils; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; import org.nl.b_lms.sch.task.dao.SchBaseTask; @@ -21,6 +18,7 @@ import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.common.utils.SecurityUtils; +import org.nl.common.utils.TaskUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; @@ -33,7 +31,6 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; /** @@ -92,11 +89,13 @@ public class DjqToKzjhcwTask extends AbstractAcsTask { public void updateTaskStatus(JSONObject taskObj, String status) { SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false); if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) return; + TaskUtils.updateOptMessageByTask(schBaseTask); if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { // 更新任务状态为执行中 schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode()); } - if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { + if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { + log.info("任务编号为:"+schBaseTask.getTask_code()+"的任务完成接口在"+schBaseTask.getUpdate_time()+"被调用---------------------------------------------"); //1.更改任务状态为完成 schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode()); //2.改变起点点位状态 @@ -106,23 +105,20 @@ public class DjqToKzjhcwTask extends AbstractAcsTask { //更新库存记录 packageinfoivtService.update(new UpdateWrapper().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空载具")).eq("point_code", schBaseTask.getPoint_code2())); //3.待检区或管制区搬运空载具到空载具缓存位完毕,判断是否存在确定终点的空载具缓存位->输送线任务,存在就下发任务 - List taskList = taskService.list(new LambdaQueryWrapper() - //确定终点未下发 - .eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_END.getCode()) - .eq(SchBaseTask::getPoint_code2, "NBJ1002") - .eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)")).eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")) - ); - if (CollectionUtils.isNotEmpty(taskList)) { - SchBaseTask task = taskList.get(0); - task.setPoint_code1(schBaseTask.getPoint_code2()); - task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); - task.setUpdate_time(DateUtil.now()); - task.setUpdate_optid(SecurityUtils.getCurrentUserId()); - task.setUpdate_optname(SecurityUtils.getCurrentNickName()); - taskService.update(task); - //任务下发 - ssxDjwTask.immediateNotifyAcs(task.getTask_id().toString()); - } + // List taskList = taskService.list(new LambdaQueryWrapper() + // //确定终点未下发 + // .eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_END.getCode()) + // .eq(SchBaseTask::getPoint_code2, "NBJ1002") + // .eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)")).eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")) + // ); + // if (CollectionUtils.isNotEmpty(taskList)) { + // SchBaseTask task = taskList.get(0); + // task.setPoint_code1(schBaseTask.getPoint_code2()); + // task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); + // taskService.update(task); + // //任务下发 + // ssxDjwTask.immediateNotifyAcs(task.getTask_id().toString()); + // } } // 取消 if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { @@ -130,12 +126,10 @@ public class DjqToKzjhcwTask extends AbstractAcsTask { throw new BadRequestException("任务已执行不能取消"); } //任务被标记为取消 - schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); + schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setRemark("任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。"); } - schBaseTask.setUpdate_time(DateUtil.now()); - schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); - schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName()); taskService.update(schBaseTask); } @@ -207,11 +201,10 @@ public class DjqToKzjhcwTask extends AbstractAcsTask { if (schBaseTask == null) { throw new BadRequestException("待检区->空载具缓存位取消接口任务号为空!"); } - schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + TaskUtils.updateOptMessageByTask(schBaseTask); schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); - schBaseTask.setUpdate_time(DateUtil.now()); - schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); - schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName()); + schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setRemark("任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。"); taskService.update(schBaseTask); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqTask.java index bf00f8ee2..e31991ab5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqTask.java @@ -6,12 +6,10 @@ import cn.hutool.core.util.BooleanUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections4.CollectionUtils; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; import org.nl.b_lms.sch.task.dao.SchBaseTask; @@ -20,6 +18,7 @@ import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.common.utils.SecurityUtils; +import org.nl.common.utils.TaskUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; @@ -88,11 +87,13 @@ public class GzqTask extends AbstractAcsTask { public void updateTaskStatus(JSONObject taskObj, String status) { SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false); if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) return; + TaskUtils.updateOptMessageByTask(schBaseTask); if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { // 更新任务状态为执行中 schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode()); } - if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { + if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { + log.info("任务编号为:"+schBaseTask.getTask_code()+"的任务完成接口在"+schBaseTask.getUpdate_time()+"被调用---------------------------------------------"); //1.更改任务状态为完成 schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode()); //2.改变起点点位状态 @@ -100,24 +101,21 @@ public class GzqTask extends AbstractAcsTask { //更新库存记录 packageinfoivtService.update(new UpdateWrapper().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("有子卷")).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2())); //3.判断是否存在确定起点的输送线->满轴缓存位任务,存在就下发任务 - List taskList = taskService.list(new LambdaQueryWrapper() - //确定起点未下发 - .eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_START.getCode()) - .eq(SchBaseTask::getPoint_code1, "NBJ1002") - .eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位")) - .eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")) - ); - if (CollectionUtils.isNotEmpty(taskList)) { - SchBaseTask task = taskList.get(0); - task.setPoint_code2(schBaseTask.getPoint_code1()); - task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); - task.setUpdate_time(DateUtil.now()); - task.setUpdate_optid(SecurityUtils.getCurrentUserId()); - task.setUpdate_optname(SecurityUtils.getCurrentNickName()); - taskService.update(task); - //任务下发 - mzhcwTask.immediateNotifyAcs(task.getTask_id().toString()); - } + // List taskList = taskService.list(new LambdaQueryWrapper() + // //确定起点未下发 + // .eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_START.getCode()) + // .eq(SchBaseTask::getPoint_code1, "NBJ1002") + // .eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位")) + // .eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")) + // ); + // if (CollectionUtils.isNotEmpty(taskList)) { + // SchBaseTask task = taskList.get(0); + // task.setPoint_code2(schBaseTask.getPoint_code1()); + // task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); + // taskService.update(task); + // //任务下发 + // mzhcwTask.immediateNotifyAcs(task.getTask_id().toString()); + // } } // 取消 if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { @@ -125,12 +123,10 @@ public class GzqTask extends AbstractAcsTask { throw new BadRequestException("任务已执行不能取消"); } //任务被标记为取消 - schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); + schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setRemark("任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。"); } - schBaseTask.setUpdate_time(DateUtil.now()); - schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); - schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName()); taskService.update(schBaseTask); } @@ -201,11 +197,10 @@ public class GzqTask extends AbstractAcsTask { if (schBaseTask == null) { throw new BadRequestException("满轴缓存位 -> 管制区取消接口任务号为空!"); } - schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + TaskUtils.updateOptMessageByTask(schBaseTask); schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); - schBaseTask.setUpdate_time(DateUtil.now()); - schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); - schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName()); + schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setRemark("任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。"); taskService.update(schBaseTask); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqToKzjhcwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqToKzjhcwTask.java index ceb7a4833..8339d89e4 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqToKzjhcwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqToKzjhcwTask.java @@ -6,13 +6,10 @@ import cn.hutool.core.util.BooleanUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.StringUtils; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; import org.nl.b_lms.sch.task.dao.SchBaseTask; @@ -21,6 +18,7 @@ import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.common.utils.SecurityUtils; +import org.nl.common.utils.TaskUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; @@ -33,7 +31,6 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; /** @@ -91,12 +88,14 @@ public class GzqToKzjhcwTask extends AbstractAcsTask { @Transactional(rollbackFor = Exception.class) public void updateTaskStatus(JSONObject taskObj, String status) { SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false); - if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) return; + if (TaskUtil.checkParams(schBaseTask, THIS_CLASS)) return; + TaskUtils.updateOptMessageByTask(schBaseTask); if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { // 更新任务状态为执行中 schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode()); } - if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { + if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { + log.info("任务编号为:"+schBaseTask.getTask_code()+"的任务完成接口在"+schBaseTask.getUpdate_time()+"被调用---------------------------------------------"); //1.更改任务状态为完成 schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode()); //2.改变起点点位状态 @@ -106,23 +105,20 @@ public class GzqToKzjhcwTask extends AbstractAcsTask { //更新库存记录 packageinfoivtService.update(new UpdateWrapper().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空载具")).eq("point_code", schBaseTask.getPoint_code2())); //3.待检区或管制区搬运空载具到空载具缓存位完毕,判断是否存在确定终点的空载具缓存位->输送线任务,存在就下发任务 - List taskList = taskService.list(new LambdaQueryWrapper() - //确定终点未下发 - .eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_END.getCode()) - .eq(SchBaseTask::getPoint_code2, "NBJ1002") - .eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)")).eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")) - ); - if (CollectionUtils.isNotEmpty(taskList)) { - SchBaseTask task = taskList.get(0); - task.setPoint_code1(schBaseTask.getPoint_code2()); - task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); - task.setUpdate_time(DateUtil.now()); - task.setUpdate_optid(SecurityUtils.getCurrentUserId()); - task.setUpdate_optname(SecurityUtils.getCurrentNickName()); - taskService.update(task); - //任务下发 - ssxDjwTask.immediateNotifyAcs(task.getTask_id().toString()); - } + // List taskList = taskService.list(new LambdaQueryWrapper() + // //确定终点未下发 + // .eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_END.getCode()) + // .eq(SchBaseTask::getPoint_code2, "NBJ1002") + // .eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)")).eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")) + // ); + // if (CollectionUtils.isNotEmpty(taskList)) { + // SchBaseTask task = taskList.get(0); + // task.setPoint_code1(schBaseTask.getPoint_code2()); + // task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); + // taskService.update(task); + // //任务下发 + // ssxDjwTask.immediateNotifyAcs(task.getTask_id().toString()); + // } } // 取消 if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { @@ -130,12 +126,10 @@ public class GzqToKzjhcwTask extends AbstractAcsTask { throw new BadRequestException("任务已执行不能取消"); } //任务被标记为取消 - schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); + schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setRemark("任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。"); } - schBaseTask.setUpdate_time(DateUtil.now()); - schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); - schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName()); taskService.update(schBaseTask); } @@ -207,11 +201,10 @@ public class GzqToKzjhcwTask extends AbstractAcsTask { if (schBaseTask == null) { throw new BadRequestException("管制区->空载具缓存位取消接口任务号为空!"); } - schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + TaskUtils.updateOptMessageByTask(schBaseTask); schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); - schBaseTask.setUpdate_time(DateUtil.now()); - schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); - schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName()); + schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setRemark("任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。"); taskService.update(schBaseTask); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/MzhcwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/MzhcwTask.java index 38a4f0b52..59b4d5c1e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/MzhcwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/MzhcwTask.java @@ -23,6 +23,7 @@ import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.common.enums.ContainerLevelEnum; import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.common.utils.SecurityUtils; +import org.nl.common.utils.TaskUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; @@ -109,13 +110,15 @@ public class MzhcwTask extends AbstractAcsTask { public void updateTaskStatus(JSONObject taskObj, String status) { SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false); if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) return; + TaskUtils.updateOptMessageByTask(schBaseTask); // 执行中 if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { // 更新任务状态为执行中 schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode()); } // 完成 - if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { + if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { + log.info("任务编号为:"+schBaseTask.getTask_code()+"的任务完成接口在"+schBaseTask.getUpdate_time()+"被调用---------------------------------------------"); //1.更改任务状态为完成 schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode()); //2.更新库存记录 @@ -135,15 +138,13 @@ public class MzhcwTask extends AbstractAcsTask { toSsxTask.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务")); toSsxTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)")); toSsxTask.put("vehicle_code", schBaseTask.getVehicle_code()); - //判断空载具缓存位是否有空载具库存,有就叫桁架去任一位置搬空载具 + //判断空载具缓存位是否有空载具库存,有就叫桁架去任一位置搬空载具,如果暂时没有空载具,定时任务会不断判断是否有空载具 if (CollectionUtils.isNotEmpty(kzjPointList)) { //直接创建搬运空载具任务 toSsxTask.put("point_code1", kzjPointList.get(0).getPoint_code()); //终点为输送线点位 toSsxTask.put("point_code2", schBaseTask.getPoint_code1()); ssxDjwTask.createTask(toSsxTask); - } else { - //sendVehicle(schBaseTask); } } else { //四个点任务,改变pointCode3点位状态 @@ -156,12 +157,11 @@ public class MzhcwTask extends AbstractAcsTask { throw new BadRequestException("任务已执行不能取消"); } // 更新任务表删除字段 - schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); + schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setRemark("任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。"); + } - schBaseTask.setUpdate_time(DateUtil.now()); - schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); - schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName()); taskService.update(schBaseTask); } @@ -357,11 +357,10 @@ public class MzhcwTask extends AbstractAcsTask { if (schBaseTask == null) { throw new BadRequestException("输送线点位 -> 满轴缓存位取消接口任务号为空!"); } - schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + TaskUtils.updateOptMessageByTask(schBaseTask); schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); - schBaseTask.setUpdate_time(DateUtil.now()); - schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); - schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName()); + schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setRemark("任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。"); taskService.update(schBaseTask); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendDjqKzjTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendDjqKzjTask.java index 4db51c7d2..61c116723 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendDjqKzjTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendDjqKzjTask.java @@ -18,6 +18,7 @@ import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.common.utils.SecurityUtils; +import org.nl.common.utils.TaskUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; @@ -82,11 +83,13 @@ public class SendDjqKzjTask extends AbstractAcsTask { public void updateTaskStatus(JSONObject taskObj, String status) { SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false); if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) return; + TaskUtils.updateOptMessageByTask(schBaseTask); if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { // 更新任务状态为执行中 schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode()); } - if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { + if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { + log.info("任务编号为:"+schBaseTask.getTask_code()+"的任务完成接口在"+schBaseTask.getUpdate_time()+"被调用---------------------------------------------"); //1.更改任务状态为完成 schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode()); //2.改变起点点位状态 @@ -100,12 +103,10 @@ public class SendDjqKzjTask extends AbstractAcsTask { throw new BadRequestException("任务已执行不能取消"); } //任务被标记为取消 - schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); + schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setRemark("任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。"); } - schBaseTask.setUpdate_time(DateUtil.now()); - schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); - schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName()); taskService.update(schBaseTask); } @@ -177,11 +178,10 @@ public class SendDjqKzjTask extends AbstractAcsTask { if (schBaseTask == null) { throw new BadRequestException("装箱区->待检区送空载具取消接口任务号为空!"); } - schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + TaskUtils.updateOptMessageByTask(schBaseTask); schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); - schBaseTask.setUpdate_time(DateUtil.now()); - schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); - schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName()); + schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setRemark("任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。"); taskService.update(schBaseTask); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendGzqKzjTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendGzqKzjTask.java index 129a0ff98..035eea245 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendGzqKzjTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SendGzqKzjTask.java @@ -18,6 +18,7 @@ import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.common.utils.SecurityUtils; +import org.nl.common.utils.TaskUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; @@ -81,12 +82,14 @@ public class SendGzqKzjTask extends AbstractAcsTask { @Transactional(rollbackFor = Exception.class) public void updateTaskStatus(JSONObject taskObj, String status) { SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false); - if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) return; + if (TaskUtil.checkParams(schBaseTask, THIS_CLASS)) return; + TaskUtils.updateOptMessageByTask(schBaseTask); if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { // 更新任务状态为执行中 schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode()); } - if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { + if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { + log.info("任务编号为:"+schBaseTask.getTask_code()+"的任务完成接口在"+schBaseTask.getUpdate_time()+"被调用---------------------------------------------"); //1.更改任务状态为完成 schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode()); //2.改变起点点位状态 @@ -100,12 +103,10 @@ public class SendGzqKzjTask extends AbstractAcsTask { throw new BadRequestException("任务已执行不能取消"); } //任务被标记为取消 - schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); + schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setRemark("任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。"); } - schBaseTask.setUpdate_time(DateUtil.now()); - schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); - schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName()); taskService.update(schBaseTask); } @@ -177,11 +178,10 @@ public class SendGzqKzjTask extends AbstractAcsTask { if (schBaseTask == null) { throw new BadRequestException("装箱区->管制区送空载具取消接口任务号为空!"); } - schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + TaskUtils.updateOptMessageByTask(schBaseTask); schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); - schBaseTask.setUpdate_time(DateUtil.now()); - schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); - schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName()); + schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setRemark("任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。"); taskService.update(schBaseTask); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SsxDjwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SsxDjwTask.java index 4305ce66b..3b1475089 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SsxDjwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SsxDjwTask.java @@ -18,6 +18,7 @@ import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.common.utils.SecurityUtils; +import org.nl.common.utils.TaskUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; @@ -85,11 +86,13 @@ public class SsxDjwTask extends AbstractAcsTask { public void updateTaskStatus(JSONObject taskObj, String status) { SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false); if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) return; + TaskUtils.updateOptMessageByTask(schBaseTask); if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { // 更新任务状态为执行中 schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode()); } - if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { + if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { + log.info("任务编号为:"+schBaseTask.getTask_code()+"的任务完成接口在"+schBaseTask.getUpdate_time()+"被调用---------------------------------------------"); //1.更改任务状态为完成 schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode()); //2.改变起点点位状态 @@ -117,14 +120,10 @@ public class SsxDjwTask extends AbstractAcsTask { throw new BadRequestException("任务已执行不能取消"); } //任务被标记为取消 - schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); - schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); + schBaseTask.setRemark("任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。"); } - schBaseTask.setUpdate_time(DateUtil.now()); - schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); - schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName()); taskService.update(schBaseTask); } @@ -194,11 +193,10 @@ public class SsxDjwTask extends AbstractAcsTask { if (schBaseTask == null) { throw new BadRequestException("空载具缓存位 -> 输送线取消接口任务号为空!"); } - schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + TaskUtils.updateOptMessageByTask(schBaseTask); schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); - schBaseTask.setUpdate_time(DateUtil.now()); - schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); - schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName()); + schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setRemark("任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。"); taskService.update(schBaseTask); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java index aad21b5dc..56348cb13 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java @@ -26,6 +26,7 @@ import org.nl.b_lms.storage_manage.database.service.dao.mapper.BstIvtBoxinfoMapp import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.common.utils.SecurityUtils; +import org.nl.common.utils.TaskUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; @@ -103,11 +104,13 @@ public class ZxDjwTask extends AbstractAcsTask { public void updateTaskStatus(JSONObject taskObj, String status) { SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false); if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) return; + TaskUtils.updateOptMessageByTask(schBaseTask); if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { // 更新任务状态为执行中 schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode()); } - if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { + if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { + log.info("任务编号为:"+schBaseTask.getTask_code()+"的任务完成接口在"+schBaseTask.getUpdate_time()+"被调用---------------------------------------------"); PdmBiSlittingproductionplan containerInfo = productionPlanService.getOne(new LambdaUpdateWrapper() .eq(PdmBiSlittingproductionplan::getContainer_name, schBaseTask.getVehicle_code())); if (containerInfo == null) { @@ -149,13 +152,10 @@ public class ZxDjwTask extends AbstractAcsTask { throw new BadRequestException("任务已执行不能取消"); } //任务被标记为取消 - schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); - schBaseTask.setRemark("任务被强制取消,不执行任何逻辑!"); + schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setRemark("任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。"); } - schBaseTask.setUpdate_time(DateUtil.now()); - schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); - schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName()); taskService.update(schBaseTask); } @@ -228,12 +228,10 @@ public class ZxDjwTask extends AbstractAcsTask { if (schBaseTask == null) { throw new BadRequestException("装箱区 -> 装箱对接位取消接口任务号为空!"); } - schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + TaskUtils.updateOptMessageByTask(schBaseTask); schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); - schBaseTask.setUpdate_time(DateUtil.now()); - schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); - schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName()); - schBaseTask.setRemark("任务被强制取消,不执行任何逻辑!"); + schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setRemark("任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。"); taskService.update(schBaseTask); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java index 5e587ed3a..69c7a397b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java @@ -26,6 +26,7 @@ import org.nl.b_lms.storage_manage.database.service.dao.mapper.BstIvtBoxinfoMapp import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.common.utils.SecurityUtils; +import org.nl.common.utils.TaskUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.system.service.param.ISysParamService; import org.nl.wms.sch.AcsTaskDto; @@ -33,7 +34,6 @@ import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.TaskStatusEnum; import org.nl.wms.util.TaskUtil; import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -114,19 +114,21 @@ public class ZxqTask extends AbstractAcsTask { @Transactional(rollbackFor = Exception.class) public void updateTaskStatus(JSONObject taskObj, String status) { SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false); - if (TaskUtil.checkParams(schBaseTask,THIS_CLASS)) return; + if (TaskUtil.checkParams(schBaseTask, THIS_CLASS)) return; + TaskUtils.updateOptMessageByTask(schBaseTask); if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { // 更新任务状态为执行中 schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode()); } if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { -// PdmBiSlittingproductionplan containerInfo = productionPlanService.getOne(new LambdaUpdateWrapper() -// .eq(PdmBiSlittingproductionplan::getContainer_name, schBaseTask.getVehicle_code())); -// if (containerInfo == null) { -// throw new BadRequestException("该子卷信息不存在!"); -// } else if (StrUtil.isEmpty(containerInfo.getContainer_name())) { -// throw new BadRequestException("子卷号不能为空!"); -// } + log.info("任务编号为:" + schBaseTask.getTask_code() + "的任务完成接口在" + schBaseTask.getUpdate_time() + "被调用---------------------------------------------"); + // PdmBiSlittingproductionplan containerInfo = productionPlanService.getOne(new LambdaUpdateWrapper() + // .eq(PdmBiSlittingproductionplan::getContainer_name, schBaseTask.getVehicle_code())); + // if (containerInfo == null) { + // throw new BadRequestException("该子卷信息不存在!"); + // } else if (StrUtil.isEmpty(containerInfo.getContainer_name())) { + // throw new BadRequestException("子卷号不能为空!"); + // } //1.更改任务状态为完成 schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode()); //2.改变起点点位状态 @@ -142,12 +144,10 @@ public class ZxqTask extends AbstractAcsTask { throw new BadRequestException("任务已执行不能取消"); } //任务被标记为取消 - schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); + schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setRemark("任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。"); } - schBaseTask.setUpdate_time(DateUtil.now()); - schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); - schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName()); taskService.update(schBaseTask); } @@ -300,11 +300,10 @@ public class ZxqTask extends AbstractAcsTask { if (schBaseTask == null) { throw new BadRequestException("待检区 -> 装箱区取消接口任务号为空!"); } - schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + TaskUtils.updateOptMessageByTask(schBaseTask); schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); - schBaseTask.setUpdate_time(DateUtil.now()); - schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); - schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName()); + schBaseTask.setTask_status(TaskStatusEnum.CANCEL.getCode()); + schBaseTask.setRemark("任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + schBaseTask.getUpdate_time() + "强制取消。"); taskService.update(schBaseTask); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoExecuteWaitTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoExecuteWaitTask.java index 8b4ee434d..65523ca45 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoExecuteWaitTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoExecuteWaitTask.java @@ -1,6 +1,5 @@ package org.nl.b_lms.sch.tasks.first_floor_area.auto; -import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import lombok.RequiredArgsConstructor; @@ -10,7 +9,6 @@ import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; 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.first_floor_area.DjqTask; import org.nl.b_lms.sch.tasks.first_floor_area.MzhcwTask; import org.nl.b_lms.sch.tasks.first_floor_area.SsxDjwTask; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; @@ -22,9 +20,7 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.time.LocalDate; import java.time.format.DateTimeFormatter; -import java.util.Comparator; import java.util.List; -import java.util.stream.Collectors; @Slf4j 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 d20d04be2..a767381ad 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 @@ -301,30 +301,37 @@ public class AutoCallAirShaftTask { throw new BadRequestException("气胀轴库找不到[" + qzzSize + "]规格的气涨轴"); } BstIvtShafttubeivt shafttubeivt = shafttubeivts.get(0); - // todo: 访问acs判断有无气涨轴 - JSONArray acsParam = new JSONArray(); - JSONObject acsQzz = new JSONObject(); - acsQzz.put("device_code", shafttubeivt.getPoint_code()); - acsQzz.put("code", "to_command"); - acsQzz.put("value", "1"); - acsQzz.put("product_area", SlitterConstant.SLITTER_TASK_AREA); - acsParam.add(acsQzz); - wmsToAcsService.action(acsParam); + // 访问acs判断有无气涨轴 + JSONArray array = new JSONArray(); + JSONObject device = new JSONObject(); + device.put("device_code", shafttubeivt.getPoint_code()); + array.add(device); + JSONObject pointStatus = wmsToAcsService.getPointStatus(array); + if (pointStatus.getInteger("qty") == 0) { + // 没有货 + toCreatShaftCacheTask(qzzSize, location, empty); + } else { + JSONArray acsParam = new JSONArray(); + JSONObject acsQzz = new JSONObject(); + acsQzz.put("device_code", shafttubeivt.getPoint_code()); + acsQzz.put("code", "to_command"); + acsQzz.put("value", "1"); + acsQzz.put("product_area", SlitterConstant.SLITTER_TASK_AREA); + acsParam.add(acsQzz); + wmsToAcsService.action(acsParam); + } } /** - * todo: 预留 * 创建气涨轴缓存的桁架任务 * * @param qzzSize 气涨轴尺寸 - * @param specification 标箔、锂电(1,2) * @param location 位置:上半部分还是下半部分 * @param empty 套拔轴点位 */ - @Deprecated - private void toCreatShaftCacheTask(String qzzSize, String specification, String location, BstIvtShafttubeivt empty) { + private void toCreatShaftCacheTask(String qzzSize, String location, BstIvtShafttubeivt empty) { // 获取气涨轴缓存没有任务的点位 - List shafttubeivts = bstIvtShafttubeivtService.getNotTaskShaftCache(qzzSize, specification, location); + List shafttubeivts = bstIvtShafttubeivtService.getNotTaskShaftCache(qzzSize, empty.getQzz_generation(), location); if (shafttubeivts.size() == 0) { throw new BadRequestException("未找到气涨轴规格「" + qzzSize + "」的暂存位"); } 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 a662e75e1..36e4cbdab 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 @@ -44,6 +44,13 @@ public interface SlitterService { */ JSONObject acsSendShaftToCache(JSONObject param); + /** + * ACS申请从气涨轴暂存位呼叫气胀轴 + * @param param / + * @return / + */ + JSONObject acsCallShaftFromCache(JSONObject param); + /** * 分切机下料 * @param param @@ -142,7 +149,7 @@ public interface SlitterService { JSONArray getCutCacheAgvPoints(); /** - * 清理分切缓存到内包间 + * 清理分切缓 * @param param / * @return / */ 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 983070e1d..42890437d 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 @@ -26,6 +26,8 @@ import org.nl.b_lms.bst.ivt.stockingivt.service.IBstIvtStockingivtService; import org.nl.b_lms.bst.ivt.stockingivt.service.dao.BstIvtStockingivt; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.IPdmBiSlittingproductionplanService; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan; +import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; +import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService; import org.nl.b_lms.sch.point.dao.StIvtCutpointivt; import org.nl.b_lms.sch.point.service.IstIvtCutpointivtService; import org.nl.b_lms.sch.task.dao.SchBaseTask; @@ -111,6 +113,8 @@ public class SlitterServiceImpl implements SlitterService { private ISysParamService paramService; @Autowired private SendNBJExceptionPointTask sendNBJExceptionPointTask; + @Autowired + private IpdmBiSubpackagerelationService subpackagerelationService; @Override @@ -395,6 +399,40 @@ public class SlitterServiceImpl implements SlitterService { return res; } + @Override + public JSONObject acsCallShaftFromCache(JSONObject param) { + log.info("ACS申请从气涨轴暂存位呼叫气胀轴的输入参数为:{}", param); + JSONObject res = new JSONObject(); + String deviceCode = param.getString("device_code"); + String qzzSize = param.getString("size"); + // 判断是否有未完成的任务 + List list = taskService.list(new LambdaQueryWrapper() + .eq(SchBaseTask::getPoint_code1, deviceCode) + .lt(SchBaseTask::getTask_status, "07")); + if (list.size() > 0) { + throw new BadRequestException("点位[" + deviceCode + "]存在未完成得任务!"); + } + BstIvtShafttubeivt startPoint = shafttubeivtService.getByPointCode(deviceCode, false); + // 获取气涨轴缓存没有任务的点位 + List shafttubeivts = shafttubeivtService.getNotTaskShaftCache(qzzSize, + startPoint.getQzz_generation(), startPoint.getPoint_location()); + if (shafttubeivts.size() == 0) { + throw new BadRequestException("未找到气涨轴规格「" + qzzSize + "」的暂存位"); + } + BstIvtShafttubeivt shafttubeivt = shafttubeivts.get(0); + JSONObject taskParam = new JSONObject(); + taskParam.put("point_code1", shafttubeivt.getPoint_code()); + taskParam.put("point_code2", startPoint.getPoint_code()); + taskParam.put("is_bushing", SlitterConstant.SLITTER_YES); + taskParam.put("task_type", SlitterEnum.TASK_TYPE.code("穿拔轴位<>气胀轴缓存位")); + taskParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA); + taskParam.put("qzz_size", qzzSize); + trussCallShaftCacheTask.createTask(taskParam); + res.put("status", HttpStatus.HTTP_OK); + res.put("message", "请求成功"); + return res; + } + @SneakyThrows @Override // @Transactional(rollbackFor = Exception.class) @@ -691,6 +729,7 @@ public class SlitterServiceImpl implements SlitterService { if (ObjectUtil.isEmpty(plan.getLevel())) { throw new BadRequestException("子卷[" + plan.getContainer_name() + "]对应的级别不能为空"); } + plan.setLevel("4"); String point_type = "5".equals(plan.getLevel()) ? "5" : "4"; // 查找终点 确认是废箔还是成品: 根据分切计划的子卷等级来区分,5为报废 BstIvtShafttubeivt one = shafttubeivtService.getOne(new LambdaQueryWrapper() @@ -999,10 +1038,16 @@ public class SlitterServiceImpl implements SlitterService { } try { if (openLock) { - BstIvtCutpointivt agvCode = bcutpointivtService.getPintByAgvCode(pointCode, false); - agvCode.setQzz_no1(""); - agvCode.setQzz_no2(""); - agvCode.setPoint_status("1"); + BstIvtCutpointivt agvCode = bcutpointivtService.getPintByTrussCode(pointCode, false); + if (agvCode.getTruss_point_code1().equals(pointCode)) { + agvCode.setQzz_no1(""); + } + if (agvCode.getTruss_point_code2().equals(pointCode)) { + agvCode.setQzz_no2(""); + } + if (ObjectUtil.isEmpty(agvCode.getQzz_no1()) && ObjectUtil.isEmpty(agvCode.getQzz_no2())) { + agvCode.setPoint_status("1"); + } TaskUtils.updateOptMessageByBCutPoint(agvCode); bcutpointivtService.updateById(agvCode); } else { @@ -1036,12 +1081,19 @@ public class SlitterServiceImpl implements SlitterService { TaskUtils.updateOptMessageBySlitterPlan(outPlan); List collect = Stream.of(outPlan, inPlan).collect(Collectors.toList()); slittingproductionplanService.updateBatchById(collect); + // 删除子卷包装关系 + subpackagerelationService.remove(new LambdaQueryWrapper() + .eq(PdmBiSubpackagerelation::getContainer_name, insideContainerName)); if (SlitterConstant.SLITTER_YES.equals(carrierStatus)) { List cons = Stream.of(outPlan.getQzzno()).collect(Collectors.toList()); // 调接口创建任务 JSONObject taskParam = new JSONObject(); taskParam.put("container", cons); - mesSlittingMachineSendMaterial(taskParam); + try { + mesSlittingMachineSendMaterial(taskParam); + } catch (Exception e) { + log.error(e.getMessage(), e); + } } return null; } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/util/SlitterTaskUtil.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/util/SlitterTaskUtil.java index 48bbb2d7e..d632a7315 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/util/SlitterTaskUtil.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/util/SlitterTaskUtil.java @@ -2,12 +2,14 @@ package org.nl.b_lms.sch.tasks.slitter.util; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import org.nl.b_lms.bst.ivt.papervehicle.service.dao.MdPbPapervehicle; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan; import org.nl.b_lms.sch.tasks.slitter.constant.SlitterConstant; import org.nl.modules.common.exception.BadRequestException; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -243,4 +245,19 @@ public class SlitterTaskUtil { param.put("to_qty", String.join(",", qtysStr)); param.put("device_code", material_specs); } + + /** + * 传入JSONArray返回筛选字符串 + * @param array / + * @param name / + * @return / + */ + public static List getAllStringByName(JSONArray array, String name) { + List res = new ArrayList<>(); + for (int i = 0; i < array.size(); i++) { + JSONObject jsonObject = array.getJSONObject(i); + res.add(jsonObject.getString(name)); + } + return res; + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java index 99555408f..2fa1a0d5c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java @@ -1102,6 +1102,8 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl list = (ArrayList) whereJson.get("tableMater"); @@ -520,13 +522,20 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl executeArr = WQLObject.getWQLObject("SCH_BASE_Task") .query("handle_class = '" + TwoOutHeapTask.class.getName() + "' and task_status IN ('05','06') and is_delete = '0' " ) @@ -223,6 +226,13 @@ public class LashManageServiceImpl implements LashManageService { next_device_code = IOSEnum.OUT_HANGER.code("行架位2"); } + // 查询木箱对应的载具 + JSONObject jsonVeExt = extTab.query("pcsn = '" + whereJson.getString("vehicle_code") + "'") + .uniqueResult(0); + if (ObjectUtil.isEmpty(jsonVeExt)) { + throw new BadRequestException("此木箱没有绑定托盘号!"+whereJson.getString("vehicle_code")); + } + // 创建任务并下发 JSONObject jsonTaskParam = new JSONObject(); jsonTaskParam.put("task_type", "010720"); @@ -231,6 +241,7 @@ public class LashManageServiceImpl implements LashManageService { jsonTaskParam.put("task_group_id", whereJson.getString("task_group_id")); jsonTaskParam.put("point_code2", next_device_code); jsonTaskParam.put("vehicle_code", whereJson.getString("vehicle_code")); + jsonTaskParam.put("vehicle_code2", jsonVeExt.getString("storagevehicle_code")); jsonTaskParam.put("request_param", whereJson); TwoOutHeapTask bean = SpringContextHolder.getBean(TwoOutHeapTask.class); @@ -264,18 +275,27 @@ public class LashManageServiceImpl implements LashManageService { result.put("height", boxDao.getBox_high()); result.put("case", boxDao.getMaterial_code()); // 是否捆扎 + if (ObjectUtil.isEmpty(boxTypeDao.getNeed_lash_one())) { + throw new BadRequestException("第一次是否捆扎不能为空!"); + } result.put("isBinding", boxTypeDao.getNeed_lash_one()); // TODO 是否贴标 result.put("isLabeling", IOSEnum.IS_SEND.code("否")); // TODO 贴标模版 result.put("labelingTemplate", boxDao.getLash_num()); // 捆扎模板 + if (ObjectUtil.isEmpty(boxTypeDao.getLash_num())) { + throw new BadRequestException("捆扎模版不能为空!"); + } result.put("bindingTemplate", boxTypeDao.getLash_num()); // TODO 打印机 result.put("printDevice", "1"); // TODO 贴标数量 result.put("printQty", "1"); // 第一次捆扎次数 + if (ObjectUtil.isEmpty(boxTypeDao.getLash_num_one())) { + throw new BadRequestException("第一次捆扎数量不能为空!"); + } result.put("bundleTimes", boxTypeDao.getLash_num_one()); return result; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java index cf87b5822..9c94ad794 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java @@ -71,6 +71,9 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { WQLObject schBasePointService = WQLObject.getWQLObject("sch_base_point"); // 仓位表 WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr"); + // 载具扩展属性表 + WQLObject veExtTab = WQLObject.getWQLObject("md_pb_storagevehicleext"); + whereJson.put("stor_id", IOSEnum.STOR_ID.code("二期")); whereJson.put("sect_id", RegionTypeEnum.TWO_BZC01.getId()); @@ -92,13 +95,20 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { throw new BadRequestException("没有符合规格的木箱!"); } + // 查询木箱对应的托盘号 + JSONObject jsonVeExt = veExtTab.query("pcsn = '" + jsonAttr.getString("storagevehicle_code") + "'") + .uniqueResult(0); + if (ObjectUtil.isEmpty(jsonVeExt)) { + throw new BadRequestException("此木箱没有绑定托盘号!"+jsonAttr.getString("storagevehicle_code")); + } + // 生成任务 JSONObject jsonTaskParam = new JSONObject(); jsonTaskParam.put("task_type", "010704"); jsonTaskParam.put("start_device_code", jsonAttr.getString("struct_code")); jsonTaskParam.put("next_device_code", whereJson.getString("device_code")); jsonTaskParam.put("vehicle_code", jsonAttr.getString("storagevehicle_code")); - + jsonTaskParam.put("vehicle_code2", jsonVeExt.getString("storagevehicle_code")); jsonTaskParam.put("task_group_id", jsonAttr.getString("task_group_id")); JSONObject request_param = new JSONObject(); request_param.put("containerType", jsonAttr.getString("storagevehicle_type")); @@ -534,6 +544,8 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { */ private String createBoxMove(JSONObject jsonObject) { WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr"); + // 载具扩展属性表 + WQLObject extTab = WQLObject.getWQLObject("md_pb_storagevehicleext"); // 找一个空的仓位 JSONObject paramIn = new JSONObject(); @@ -557,12 +569,20 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { jsonAttr.put("lock_type", IOSEnum.LOCK_TYPE.code("移入锁")); attrTab.update(jsonAttr); + // 查询木箱对应的载具 + JSONObject jsonVeExt = extTab.query("pcsn = '" + jsonObject.getString("storagevehicle_code") + "'") + .uniqueResult(0); + if (ObjectUtil.isEmpty(jsonVeExt)) { + throw new BadRequestException("此木箱没有绑定托盘号!"+jsonObject.getString("storagevehicle_code")); + } + // 生成任务 JSONObject jsonTaskParam = new JSONObject(); - jsonTaskParam.put("task_type", "010505"); + jsonTaskParam.put("task_type", "010709"); jsonTaskParam.put("start_device_code", jsonObject.getString("struct_code")); jsonTaskParam.put("next_device_code", jsonAttr.getString("struct_code")); jsonTaskParam.put("vehicle_code", jsonObject.getString("storagevehicle_code")); + jsonTaskParam.put("vehicle_code2", jsonVeExt.getString("storagevehicle_code")); jsonTaskParam.put("task_group_id", IdUtil.getLongId()); TwoMoveBoxTask taskBan = new TwoMoveBoxTask(); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBussManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBussManageServiceImpl.java index 3385a6513..34d4f5775 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBussManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBussManageServiceImpl.java @@ -341,6 +341,8 @@ public class OutBussManageServiceImpl implements OutBussManageService { //物料表 WQLObject materTab = WQLObject.getWQLObject("md_me_materialbase"); + // 载具扩展属性表 + WQLObject extTab = WQLObject.getWQLObject("md_pb_storagevehicleext"); // 获取子卷包装集合 String vehilcle_in = list.stream() @@ -445,10 +447,18 @@ public class OutBussManageServiceImpl implements OutBussManageService { jsonMoveDtl.put("turnin_struct_code", jsonMove.getString("struct_code")); jsonMoveDtl.put("turnin_struct_name", jsonMove.getString("struct_name")); + // 查询木箱对应的载具 + JSONObject jsonVeExt = extTab.query("pcsn = '" + json.getString("storagevehicle_code") + "'") + .uniqueResult(0); + if (ObjectUtil.isEmpty(jsonVeExt)) { + throw new BadRequestException("此木箱没有绑定托盘号!"+json.getString("storagevehicle_code")); + } + // 生成任务 JSONObject param2 = new JSONObject(); param2.put("task_type", "010709"); param2.put("vehicle_code", json.getString("storagevehicle_code")); + param2.put("vehicle_code2", jsonVeExt.getString("storagevehicle_code")); param2.put("point_code1", json.getString("struct_code")); param2.put("point_code2", jsonMove.getString("struct_code")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/InBoxManageService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/InBoxManageService.java index 04332288a..b21ac6d2d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/InBoxManageService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/InBoxManageService.java @@ -46,6 +46,13 @@ public interface InBoxManageService { */ JSONObject taskExceptional(JSONObject jsonObject); + /** + * 成品退货入库 + * @param whereJson ; { + * box_no: 木箱号 + * vehicle_code: 载具号 + * } + */ void returnIn(JSONObject whereJson); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/OutBoxManageService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/OutBoxManageService.java index fee13efa1..e83e0ff68 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/OutBoxManageService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/OutBoxManageService.java @@ -20,6 +20,7 @@ public interface OutBoxManageService { * box_width: 宽 * box_high: 高 * num: 子卷数 + * @return String:木箱号 * } */ String outBox(JSONObject whereJson); diff --git a/lms/nladmin-system/src/main/java/org/nl/common/enums/PackageInfoIvtEnum.java b/lms/nladmin-system/src/main/java/org/nl/common/enums/PackageInfoIvtEnum.java index 4faa6c0a8..bc6ab7623 100644 --- a/lms/nladmin-system/src/main/java/org/nl/common/enums/PackageInfoIvtEnum.java +++ b/lms/nladmin-system/src/main/java/org/nl/common/enums/PackageInfoIvtEnum.java @@ -63,7 +63,7 @@ public enum PackageInfoIvtEnum { POINT_LOCATION(MapOf.of("上", "0", "下", "1")), //库存状态 - IVT_STATUS(MapOf.of("空", "0", "空载具", "1", "有子卷", "2", "合格品", "3", "管制品", "4")); + IVT_STATUS(MapOf.of("空", "0", "空载具", "1", "有子卷", "2", "合格品", "3", "管制品", "4")); private Map code; 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 c6b46e373..58ee6a3ea 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 @@ -47,8 +47,6 @@ public class TaskUtils { /** * 根据任务维护分切点位库存 - * @param taskObj 任务 - * @param endPointObj 点位 * @param status 状态 */ public static void pointMaintenanceInventory(SchBaseTask task, BstIvtCutpointivt target, String status) { diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/menu/impl/SysMenuServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/system/service/menu/impl/SysMenuServiceImpl.java index d3590e2cd..02bab8ea9 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/menu/impl/SysMenuServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/menu/impl/SysMenuServiceImpl.java @@ -495,7 +495,7 @@ public class SysMenuServiceImpl extends ServiceImpl impl roleTree.add(row); } res.put("sonTree", roleTree); - result.put("rf_menu" + i, res); + result.put("rf_menu" + ("188".equals(res.getString("menu_id"))?1:0), res); } returnjo.put("code", "1"); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index dc486ab5d..2f3ce485d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -1796,7 +1796,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { // 如果满轴位没有可用的空点位,先创建一个桁架任务但是不下发,等这边空出来点位,判断是否有这种桁架任务然后补发; // 这个情况是有agv任务在搬去待检区或管制区的路上,还没有更新任务状态;需要查询是否有这种任务,等这个任务更新完后, // 再补发之前创建的输送线到满轴缓存位任务; - log.info("二楼到一楼,成品子卷到达一楼输送线,sendProductToFirstFloor--------------------------:" + whereJson.toString()); + log.info("二楼到一楼,成品子卷到达一楼输送线接口sendProductToFirstFloor被调用--------------------------:" + whereJson.toString()); if (StringUtils.isBlank(whereJson.getString("device_code")) || StringUtils.isBlank(whereJson.getString("material_barcode"))) { throw new BadRequestException("接口sendProductToFirstFloor,目标站点或子卷号参数为空!"); } @@ -1859,15 +1859,16 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { result.put("message", "满轴缓存位暂无空位!"); } } else { - log.info("二楼到一楼,成品子卷到达一楼输送线,异常,任务正在创建中"); + log.info("二楼到一楼成品子卷到达一楼输送线任务正在创建被锁住。"); result.put("status", HttpStatus.BAD_REQUEST.value()); - result.put("message", "任务正在创建中!"); + result.put("message", "二楼到一楼成品子卷到达一楼输送线任务正在创建被锁住。"); } } finally { if (tryLock) { lock.unlock(); } } + log.info("二楼到一楼,成品子卷到达一楼输送线接口sendProductToFirstFloor调用成功--------------------------:" + result.toString()); return result; } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/rest/DeliveryPointIvtController.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/rest/DeliveryPointIvtController.java index aea178a94..e05427f54 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/rest/DeliveryPointIvtController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/rest/DeliveryPointIvtController.java @@ -46,7 +46,6 @@ public class DeliveryPointIvtController { @PutMapping @Log("修改分切输送线") - //@SaCheckPermission("@el.check('deliverypointivt:edit')") public ResponseEntity update(@Validated @RequestBody DeliveryPointIvtDto dto) { deliverypointivtService.update(dto); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rest/SlittingproductionplanController.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rest/SlittingproductionplanController.java index 68b787224..d3627290d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rest/SlittingproductionplanController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rest/SlittingproductionplanController.java @@ -4,6 +4,7 @@ package org.nl.wms.pdm.rest; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.pdm.bi.slittingproductionplan.service.IPdmBiSlittingproductionplanService; import org.nl.modules.logging.annotation.Log; import org.nl.wms.pdm.service.SlittingproductionplanService; import org.nl.wms.pdm.service.dto.SlittingproductionplanDto; @@ -28,6 +29,8 @@ public class SlittingproductionplanController { private final SlittingproductionplanService slittingproductionplanService; + private final IPdmBiSlittingproductionplanService biSlittingproductionplanService; + @GetMapping @Log("查询分切计划") @@ -102,4 +105,10 @@ public class SlittingproductionplanController { slittingproductionplanService.compelFinish(whereJson); return new ResponseEntity<>(HttpStatus.OK); } + @Log("修改子卷放置方向") + @PostMapping("/setDirection") + public ResponseEntity setDirection(@RequestBody JSONObject whereJson) { + biSlittingproductionplanService.setDirection(whereJson); + return new ResponseEntity<>(HttpStatus.OK); + } } 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 deaac2df6..65bdc0158 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 @@ -134,7 +134,7 @@ public class TaskServiceImpl implements TaskService { taskObj.put("update_optid", SecurityUtils.getCurrentUserId()); taskObj.put("update_optname", SecurityUtils.getCurrentUsername()); taskObj.put("update_time", DateUtil.now()); - taskObj.put("remark", "任务被强制完成,不执行任何逻辑!"); + taskObj.put("remark", "任务被用户:" + SecurityUtils.getCurrentUsername() + "在:" + DateUtil.now() + "强制完成。"); WQLObject.getWQLObject("SCH_BASE_Task").update(taskObj); } else { // 任务处理类 diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/task/HandMoveStorAcsTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/task/HandMoveStorAcsTask.java index 5c593cfd7..fa713cb72 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/task/HandMoveStorAcsTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/task/HandMoveStorAcsTask.java @@ -60,6 +60,12 @@ public class HandMoveStorAcsTask extends AbstractAcsTask { .dtl_type(String.valueOf(dtl_type)) .remark(json.getString("remark")) .build(); + + // 如果是二期转库任务则下发托盘 + if (json.getString("task_type").equals("010709")) { + dto.setVehicle_code(json.getString("vehicle_code2")); + } + resultList.add(dto); json.put("task_status", TaskStatusEnum.ISSUE.getCode()); WQLObject.getWQLObject("SCH_BASE_Task").update(json); @@ -130,6 +136,7 @@ public class HandMoveStorAcsTask extends AbstractAcsTask { json.put("task_type", form.getString("task_type")); json.put("vehicle_code", form.getString("vehicle_code")); + json.put("vehicle_code2", form.getString("vehicle_code2")); json.put("task_name", form.getString("task_name")); json.put("point_code1", form.getString("point_code1")); json.put("point_code2", form.getString("point_code2")); diff --git a/lms/nladmin-system/src/main/resources/config/application-dev.yml b/lms/nladmin-system/src/main/resources/config/application-dev.yml index e06af5d9b..bec993619 100644 --- a/lms/nladmin-system/src/main/resources/config/application-dev.yml +++ b/lms/nladmin-system/src/main/resources/config/application-dev.yml @@ -1,5 +1,5 @@ server: - port: 8010 + port: 9999 #配置数据源 spring: datasource: @@ -7,10 +7,10 @@ spring: db-type: com.alibaba.druid.pool.DruidDataSource driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy # url: jdbc:log4jdbc:mysql://${DB_HOST:10.1.3.91}:${DB_PORT:3306}/${DB_NAME:lzhl_lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true - url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:lms_xc}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true + url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:lzhl_two_test}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true username: ${DB_USER:root} # password: ${DB_PWD:NLABC&hl123} - password: ${DB_PWD:root} + password: ${DB_PWD:12356} # 初始连接数 initial-size: 5 # 最小连接数 diff --git a/lms/nladmin-system/src/test/java/org/nl/init/EventTest.java b/lms/nladmin-system/src/test/java/org/nl/init/EventTest.java index fa0744316..47fa86d64 100644 --- a/lms/nladmin-system/src/test/java/org/nl/init/EventTest.java +++ b/lms/nladmin-system/src/test/java/org/nl/init/EventTest.java @@ -9,6 +9,8 @@ import org.apache.commons.lang3.StringUtils; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; +import org.nl.b_lms.bst.ivt.shafttubeivt.service.dao.BstIvtShafttubeivt; +import org.nl.b_lms.bst.ivt.shafttubeivt.service.dao.mapper.BstIvtShafttubeivtMapper; import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; import org.nl.b_lms.pdm.subpackagerelation.dao.mapper.PdmBiSubpackagerelationMapper; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; @@ -19,6 +21,7 @@ import org.nl.common.enums.ContainerLevelEnum; import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.modules.common.exception.BadRequestException; import org.nl.system.service.param.ISysParamService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit.jupiter.SpringExtension; @@ -29,8 +32,8 @@ import java.util.stream.Stream; @Slf4j @ExtendWith(SpringExtension.class) -@SpringBootTest @DisplayName("event test") +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) public class EventTest { @Resource @@ -57,6 +60,14 @@ public class EventTest { @Resource private PdmBiSubpackagerelationMapper pdmBiSubpackagerelationMapper; + @Autowired + private BstIvtShafttubeivtMapper bstIvtShafttubeivtMapper; + + @Test + public void sl() { + List notTaskShaftCache = bstIvtShafttubeivtMapper.getNotTaskShaftCache("3", "4", "0"); + System.out.println(notTaskShaftCache); + } /** * 装箱区->空载具缓存位补空 diff --git a/lms/nladmin-ui/.env.development b/lms/nladmin-ui/.env.development index e37a9a4f0..3e1472584 100644 --- a/lms/nladmin-ui/.env.development +++ b/lms/nladmin-ui/.env.development @@ -1,8 +1,8 @@ ENV = 'development' # 接口地址 -VUE_APP_BASE_API = 'http://localhost:8011' -VUE_APP_WS_API = 'ws://localhost:8011' +VUE_APP_BASE_API = 'http://localhost:9999' +VUE_APP_WS_API = 'ws://localhost:9999' # 是否启用 babel-plugin-dynamic-import-node插件 VUE_CLI_BABEL_TRANSPILE_MODULES = true diff --git a/lms/nladmin-ui/src/views/wms/pdm/ivt/packageinfoivt/index.vue b/lms/nladmin-ui/src/views/wms/pdm/ivt/packageinfoivt/index.vue new file mode 100644 index 000000000..f6662abeb --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/pdm/ivt/packageinfoivt/index.vue @@ -0,0 +1,248 @@ + + + + + diff --git a/lms/nladmin-ui/src/views/wms/pdm/ivt/packageinfoivt/packageinfoivt.js b/lms/nladmin-ui/src/views/wms/pdm/ivt/packageinfoivt/packageinfoivt.js new file mode 100644 index 000000000..f2ca94964 --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/pdm/ivt/packageinfoivt/packageinfoivt.js @@ -0,0 +1,27 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/bstIvtPackageInfoIvt', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/bstIvtPackageInfoIvt', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/bstIvtPackageInfoIvt', + method: 'put', + data + }) +} + +export default { add, edit, del } diff --git a/lms/nladmin-ui/src/views/wms/pdm/order/slittingplan/index.vue b/lms/nladmin-ui/src/views/wms/pdm/order/slittingplan/index.vue index 9747e545f..9ddecdf35 100644 --- a/lms/nladmin-ui/src/views/wms/pdm/order/slittingplan/index.vue +++ b/lms/nladmin-ui/src/views/wms/pdm/order/slittingplan/index.vue @@ -111,9 +111,7 @@ - - - + @@ -217,7 +215,7 @@ - + @@ -279,6 +277,50 @@ > 强制完成 + + 设置上轴 + + + 设置下轴 + + + 设置左卷 + + + 设置右卷 + @@ -286,144 +328,144 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -434,42 +476,58 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -674,6 +732,28 @@ export default { }, formatChildCallName(row) { return this.dict.label.IS_OR_NOT[row.is_call] + }, + setUpOrDown(flag) { + const _selectData = this.$refs.table.selection + const param = { + 'data': _selectData, + 'up_or_down': flag + } + crudSlittingproductionplan.setDirection(param).then(() => { + this.crud.toQuery() + this.crud.notify('设置成功', CRUD.NOTIFICATION_TYPE.SUCCESS) + }) + }, + setLeftOrRight(flag) { + const _selectData = this.$refs.table.selection + const param = { + 'data': _selectData, + 'left_or_right': flag + } + crudSlittingproductionplan.setDirection(param).then(() => { + this.crud.toQuery() + this.crud.notify('设置成功', CRUD.NOTIFICATION_TYPE.SUCCESS) + }) } } } diff --git a/lms/nladmin-ui/src/views/wms/pdm/order/slittingplan/slittingproductionplan.js b/lms/nladmin-ui/src/views/wms/pdm/order/slittingplan/slittingproductionplan.js index 0e4a6f863..bbd09d1b4 100644 --- a/lms/nladmin-ui/src/views/wms/pdm/order/slittingplan/slittingproductionplan.js +++ b/lms/nladmin-ui/src/views/wms/pdm/order/slittingplan/slittingproductionplan.js @@ -64,4 +64,12 @@ export function compelFinish(data) { }) } -export default { add, edit, del, upMaterFinish, caseFinish, sendFinish, inFinish, compelFinish } +export function setDirection(data) { + return request({ + url: 'api/slittingproductionplan/setDirection', + method: 'post', + data + }) +} + +export default { add, edit, del, upMaterFinish, caseFinish, sendFinish, inFinish, compelFinish, setDirection } diff --git a/lms/nladmin-ui/src/views/wms/pdm/sub/DivDialog.vue b/lms/nladmin-ui/src/views/wms/pdm/sub/DivDialog.vue index 75fcde62e..43420a03e 100644 --- a/lms/nladmin-ui/src/views/wms/pdm/sub/DivDialog.vue +++ b/lms/nladmin-ui/src/views/wms/pdm/sub/DivDialog.vue @@ -380,6 +380,9 @@ export default { if (this.currentSelection.length > 0 && this.$refs.dis_table.selection.length > 0) { debugger const descriptionList = this.currentSelection.filter(item => item.paper_tube_description !== null && item.paper_tube_description !== '') + if (descriptionList.length === 0) { + this.crud.notify('未查询到该子卷的规格信息,请检查子卷的分切计划信息!', CRUD.NOTIFICATION_TYPE.WARNING) + } const paper_tube_description = descriptionList[0].paper_tube_description const descriptionsAreSame = this.currentSelection.every(item => item.paper_tube_description === paper_tube_description) if (descriptionsAreSame) {