diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java index 9527822f..5b91a24d 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java @@ -105,7 +105,7 @@ public class AcsToWmsController { @SaIgnore @Log("反馈深坑数量") public ResponseEntity feedDeviceRealQty2(@RequestBody Map param) { - acsToWmsService.feedDevQty(param); + acsToWmsService.feedDevQty2(param); return new ResponseEntity<>(HttpStatus.OK); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java index a721fa7b..3992c8a4 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java @@ -60,6 +60,7 @@ public interface AcsToWmsService { * @return */ void feedDevQty(Map param); + void feedDevQty2(Map param); /** * ACS给WMS反馈设备状态状态 diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index 2e198fc8..7243ee12 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -79,7 +79,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ RedissonUtils.lock(()->{ //业务处理 Task_Collent.get(taskEnum).createTask(param); - },param.getString("type"),5); }catch (Exception ex){ log.error("acs申请任务失败:ex:{}",ex.getMessage()); @@ -282,6 +281,28 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ } } } + @Override + public void feedDevQty2(Map param) { + if (CollectionUtils.isEmpty(param)){ + return; + } + log.info("反馈设备数量接口:{}", JSONObject.toJSONString(param)); + Iterator iterator = param.keySet().iterator(); + while (iterator.hasNext()){ + String deviceCode = (String)iterator.next(); + if (!StringUtils.isEmpty(deviceCode)){ + Map item = (Map)param.get(deviceCode); + Object qty = item.get("qty"); + Object weight = item.get("weight"); + UpdateWrapper wrapper = new UpdateWrapper<>(); + if (weight!=null){ + wrapper.set("deviceinstor_weight",weight); + wrapper.eq("device_code",deviceCode); + deviceService.update(wrapper); + } + } + } + } @Override public void feedcachelineVe(JSONObject param) { diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/device/SpecialDeviceController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/device/SpecialDeviceController.java index 0873e11b..04845b9c 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/device/SpecialDeviceController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/device/SpecialDeviceController.java @@ -75,7 +75,7 @@ public class SpecialDeviceController { .set("deviceinstor_weight",query.getBigDecimal("deviceinstor_weight")) .eq("device_code",device_code)); } - return new ResponseEntity<>(HttpStatus.OK); + return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK); } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/workorder/PdmProduceWorkorderController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/workorder/PdmProduceWorkorderController.java index e81e0302..eb1d1716 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/workorder/PdmProduceWorkorderController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/workorder/PdmProduceWorkorderController.java @@ -12,6 +12,7 @@ import lombok.extern.slf4j.Slf4j; import org.nl.common.TableDataInfo; import org.nl.common.anno.Log; import org.nl.common.domain.query.PageQuery; +import org.nl.common.utils.RedissonUtils; import org.nl.common.utils.SecurityUtils; import org.nl.wms.product_manage.service.device.IPdmBiDeviceService; import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService; @@ -26,8 +27,8 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.util.Arrays; -import java.util.Date; import java.util.List; /** @@ -117,8 +118,10 @@ public class PdmProduceWorkorderController { @PostMapping("/excelImport") @Log("excel导入") @ApiOperation("excel导入") - public ResponseEntity excelImport(@RequestParam("file") MultipartFile file, HttpServletRequest request) { - iPdmProduceWorkorderService.excelImport(file,request); + public ResponseEntity excelImport(@RequestParam("file") MultipartFile file, HttpServletRequest request, HttpServletResponse response) { + RedissonUtils.lock(()->{ + iPdmProduceWorkorderService.excelImport(file,request, response); + },"工单导入",null); return new ResponseEntity<>(HttpStatus.OK); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/service/impl/TaskServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/service/impl/TaskServiceImpl.java index aa52ee08..5c3c1507 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/service/impl/TaskServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/service/impl/TaskServiceImpl.java @@ -60,13 +60,14 @@ public class TaskServiceImpl implements TaskService { } if (StrUtil.isNotEmpty(whereJson.getString("task_code"))) { - map.put("task_code", "%" + whereJson.getString("task_code") + "%"); + if (whereJson.getString("task_code").length()>13){ + map.put("task_id", whereJson.getString("task_code")); + }else { + map.put("task_code", "%" + whereJson.getString("task_code") + "%"); + } } - if (StrUtil.isNotEmpty(whereJson.getString("point_code1"))) { - map.put("point_code1", "%" + whereJson.getString("point_code1") + "%"); - } - if (StrUtil.isNotEmpty(whereJson.getString("point_code2"))) { - map.put("point_code2", "%" + whereJson.getString("point_code2") + "%"); + if (StrUtil.isNotEmpty(whereJson.getString("point_code"))) { + map.put("point_code", "%" + whereJson.getString("point_code1") + "%"); } if (StrUtil.isNotEmpty(whereJson.getString("vehicle_code"))) { map.put("vehicle_code", "%" + whereJson.getString("vehicle_code") + "%"); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeEmpTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeEmpTask.java index c3a1ea7a..f1abcfa2 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeEmpTask.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeEmpTask.java @@ -105,7 +105,7 @@ public class SpeEmpTask extends AbstractAcsTask { .eq("point_code2", param.getString("device_code")).lt("task_status", StatusEnum.TASK_FINISH.getCode()) ); if (!CollectionUtils.isEmpty(list)){ - throw new BadRequestException(String.format("设备%s存在未完成任务", param.getString("device_code"))); + throw new BadRequestException(String.format("设备%s存在未完成任务:"+list.stream().map(SchBaseTask::getTask_id).collect(Collectors.toList()).toString(), param.getString("device_code"))); } JSONObject form = new JSONObject(MapOf.of("start_point_code",cahceLine, diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeFullTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeFullTask.java index e118633d..d652b1af 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeFullTask.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeFullTask.java @@ -102,7 +102,7 @@ public class SpeFullTask extends AbstractAcsTask { .eq("point_code1", point_code).lt("task_status", StatusEnum.TASK_FINISH.getCode()) ); if (!CollectionUtils.isEmpty(list)){ - throw new BadRequestException(String.format("设备%s存在未完成任务", param.getString("device_code"))); + throw new BadRequestException(String.format("设备%s存在未完成任务"+list.stream().map(SchBaseTask::getTask_id).collect(Collectors.toList()).toString(), param.getString("device_code"))); } JSONObject empPoint = WQL.getWO("sch_point").addParamMap(MapOf.of("flag", "2", "point_code", point_code, "point_type", StatusEnum.POINT_LOCATION_EMP.getCode())).process().uniqueResult(0); JSONObject form = new JSONObject(MapOf.of("start_point_code",point_code, @@ -265,6 +265,7 @@ public class SpeFullTask extends AbstractAcsTask { if (!("fall_finish"+task.getTask_id()).equals(one.getRemark())){ deviceService.update(new UpdateWrapper() .set("material_id", task.getMaterial_id()) + .set("deviceinstor_qty",one.getDeviceinstor_qty().add(task.getMaterial_qty())) .set("remark","fall_finish"+task.getTask_id()) .eq("device_code", task.getPoint_code2())); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/wql/QSCH_TASK_01.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/wql/QSCH_TASK_01.wql index cb9520f5..0100f0f5 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/wql/QSCH_TASK_01.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/wql/QSCH_TASK_01.wql @@ -14,12 +14,14 @@ ## 表字段对应输入参数 ################################################# 输入.flag TYPEAS s_string - 输入.task_status TYPEAS s_string + 输入.task_status TYPEAS s_string 输入.finished_type TYPEAS s_string 输入.task_type TYPEAS s_string - 输入.point_code1 TYPEAS s_string - 输入.point_code2 TYPEAS s_string + 输入.point_code1 TYPEAS s_string + 输入.point_code TYPEAS s_string + 输入.point_code2 TYPEAS s_string 输入.task_code TYPEAS s_string + 输入.task_id TYPEAS s_string 输入.product_area TYPEAS s_string 输入.vehicle_code TYPEAS s_string 输入.begin_time TYPEAS s_string @@ -95,6 +97,9 @@ OPTION 输入.product_area <> "" task.product_area = 输入.product_area ENDOPTION + OPTION 输入.point_code <> "" + ( task.point_code1 = 输入.product_area or task.point_code2 = 输入.product_area) + ENDOPTION OPTION 输入.unFinish <> "" task.task_status <> '7' ENDOPTION @@ -107,6 +112,9 @@ OPTION 输入.task_code <> "" (task.task_code like 输入.task_code) ENDOPTION + OPTION 输入.task_id <> "" + (task.task_id = 输入.task_code) + ENDOPTION OPTION 输入.point_code <> "" (task.point_code1 like 输入.point_code1) ENDOPTION diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/IPdmProduceWorkorderService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/IPdmProduceWorkorderService.java index 0c76a243..300519fb 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/IPdmProduceWorkorderService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/IPdmProduceWorkorderService.java @@ -11,6 +11,7 @@ import org.springframework.data.domain.Pageable; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.List; import java.util.Map; @@ -87,8 +88,9 @@ public interface IPdmProduceWorkorderService extends IService> read = excelReader.read(); - String produce_date = ""; // 循环获取的数据 List data = new ArrayList<>(); - Map errorMap = new HashMap(); + List errlist = new ArrayList<>(); row: - for (int i = 0; i < read.size(); i++) { - List list = read.get(i); - if (ObjectUtil.isEmpty(list)) { - continue; - } - //获取每列 - JSONObject param = new JSONObject(); - //按照列获取 - param.put("workorder_id", IdUtil.getStringId()); - param.put("workorder_code", CodeUtil.getNewCode("PDM_SHIFTORDER")); - param.put("workorder_status", WorkerOrderEnum.CREATE.getCode()); - param.put("shift_type_scode", StatusEnum.DAYSHIFT.getCode()); // 默认白班 - String error_message = ""; - PdmProduceWorkorder workorder = new PdmProduceWorkorder(); - workorder.setWorkorder_id(IdUtil.getStringId()); - workorder.setWorkorder_code(CodeUtil.getNewCode("PDM_SHIFTORDER")); - workorder.setWorkorder_status(WorkerOrderEnum.CREATE.getCode()); - workorder.setIs_needmove(true); - workorder.setIs_canupdate_update(true); - workorder.setCreate_time(DateUtil.now()); - workorder.setCreate_id(SecurityUtils.getCurrentUserId()); - workorder.setCreate_name("导入订单"); - workorder.setCreate_type(StatusEnum.EXCELINTO.getCode()); - - for (int j = 0; j < list.size(); j++) { - String col = String.valueOf(list.get(j)); - 解析cell:{ //如果是第一行 为生产日期 - if (i == 0 && j == 0) { - continue row; - } - //如果第一列包含规格二字 则为表头 结束内循环列 - if (j == 0 && col.contains("班次")) { - continue row; - } - if (j == 0) { - //物料 - workorder.setShift_type_scode(col.equals("晚上") ? "2" : "1"); - } - if (j == 1) { - //物料 - workorder.setPlanproduceend_date(col.substring(0,col.indexOf(" "))+" 18:30:00"); - workorder.setPlanproducestart_date(col.substring(0,col.indexOf(" "))+" 07:30:00"); - } - if (j == 2) { - //物料 - List material_specs = materialbaseService.list(new QueryWrapper().eq("material_spec", col)); - if (CollectionUtils.isEmpty(material_specs)) { - errorMap.put("第" + i + "行" + col, "物料规格对应物料信息不存在"); - error_message = error_message + col + "物料规格对应物料信息不存在,"; - } else { - Optional first = material_specs.stream().filter(mdMeMaterialbase -> mdMeMaterialbase.getMaterial_code().contains("S") - && Pattern.matches("^[0-9]*$", mdMeMaterialbase.getMaterial_name().substring(mdMeMaterialbase.getMaterial_name().length() - 1)) - ).findFirst(); - if (!first.isPresent()) { - errorMap.put("第" + i + "行" + col, "物料规格对应物料信息不存在"); - } - workorder.setMaterial_id(first.get().getMaterial_id()); + for (int i = 0; i < read.size(); i++) { + Map errorMap = new HashMap(); + List list = read.get(i); + if (ObjectUtil.isEmpty(list)) {continue;} + PdmProduceWorkorder workorder = new PdmProduceWorkorder(); + packageForm(workorder); + for (int j = 0; j < list.size(); j++) { + String col = String.valueOf(list.get(j)); + 解析cell:{ //如果是第一行 为生产日期 + if (i == 0 && j == 0) { + continue row; + } + //如果第一列包含规格二字 则为表头 结束内循环列 + if (j == 0 && col.contains("班次")) { + continue row; + } + if (j == 0) { + //物料 + workorder.setShift_type_scode(col.equals("晚班") ? "2" : "1"); + } + if (j == 1) { + //物料 + workorder.setPlanproduceend_date(col.substring(0,col.indexOf(" "))+" 18:30:00"); + workorder.setPlanproducestart_date(col.substring(0,col.indexOf(" "))+" 07:30:00"); + } + if (j == 2) { + //物料 + List material_specs = materialbaseService.list(new QueryWrapper().eq("material_spec", col)); + if (CollectionUtils.isEmpty(material_specs)) { + errorMap.put("第" + j + "行", col+"物料规格对应物料信息不存在"); + } else { + Optional first = material_specs.stream().filter(mdMeMaterialbase -> mdMeMaterialbase.getMaterial_code().contains("S") + && Pattern.matches("^[0-9]*$", mdMeMaterialbase.getMaterial_name().substring(mdMeMaterialbase.getMaterial_name().length() - 1)) + ).findFirst(); + if (!first.isPresent()) { + errorMap.put("第" + j + "行", col+"物料规格对应物料信息不存在"); } - } - if (j == 3) { - PdmBiWorkprocedure workprocedure = workprocedureService.getOne(new QueryWrapper().eq("workprocedure_name", col)); - if (ObjectUtil.isEmpty(workprocedure)) { - errorMap.put("第" + i + "行" + col, "工序名称是否正确"); - } else { - workorder.setWorkprocedure_id(workprocedure.getWorkprocedure_id()); - } - } - if (j == 4) { - //设备 A1_TW_ - workorder.setDevice_code("A1_TW_" + col); - } - if (j == 7) { - //单重 - BigDecimal bigDecimal = BigDecimal.valueOf(Double.valueOf(col) * 1000); - workorder.setMaterial_weight(bigDecimal.setScale(3, RoundingMode.HALF_UP)); - } - if (j == 8) { - //操作工 - SysUser user = userService.getOne(new QueryWrapper().eq("person_name", col)); - if (ObjectUtil.isEmpty(user)) { - errorMap.put("第" + i + "行" + col, " 操作工没有账号"); - } else { - workorder.setCurrent_produce_person_id(user.getUser_id()); - } - } - if (j == 9) { - workorder.setPlan_qty(new BigDecimal(Long.valueOf(col))); + workorder.setMaterial_id(first.get().getMaterial_id()); } } - } - if (CollectionUtils.isEmpty(errorMap)){ - data.add(workorder); - }else { - throw new BadRequestException(JSON.toJSONString(errorMap)); + if (j == 3) { + PdmBiWorkprocedure workprocedure = workprocedureService.getOne(new QueryWrapper().eq("workprocedure_name", col)); + if (ObjectUtil.isEmpty(workprocedure)) { + errorMap.put("第" + j + "行", col+"工序名称是否正确"); + } else { + workorder.setWorkprocedure_id(workprocedure.getWorkprocedure_id()); + } + } + if (j == 4) { + //设备 A1_TW_ + workorder.setDevice_code("A1_TW_" + col.replaceAll("-", "_")); + } + if (j == 7) { + //单重 + BigDecimal bigDecimal = BigDecimal.valueOf(Double.valueOf(col) * 1000); + workorder.setMaterial_weight(bigDecimal.setScale(3, RoundingMode.HALF_UP)); + } + if (j == 8) { + //操作工 + SysUser user = userService.getOne(new QueryWrapper().eq("person_name", col)); + if (ObjectUtil.isEmpty(user)) { + errorMap.put("第" + j + "行", col+" 操作工没有账号"); + } else { + workorder.setCurrent_produce_person_id(user.getUser_id()); + } + } + if (j == 9) { + workorder.setPlan_qty(new BigDecimal(Long.valueOf(col))); + } } } - this.saveBatch(data); - + if (CollectionUtils.isEmpty(errorMap)){ + data.add(workorder); + }else { errlist.add(errorMap); }; + } + if (!CollectionUtils.isEmpty(errlist)){ + throw new BadRequestException(JSON.toJSONString(errlist)); + }else { + this.saveBatch(data); + } } catch (Exception e) { e.printStackTrace(); throw new BadRequestException(e.getMessage()); @@ -364,6 +346,18 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl query(@RequestParam Map whereJson, Pageable page) { - return new ResponseEntity<>(taskService.queryAll(whereJson, page), HttpStatus.OK); + public ResponseEntity query(@RequestParam Map query, PageQuery pageQuery) { + Page page = PageHelper.startPage(pageQuery.getPage()+1, pageQuery.getSize()); + page.setOrderBy("task_code desc"); + List list = baseTaskService.queryAll(query); + TableDataInfo build = TableDataInfo.build(list); + build.setTotalElements(page.getTotal()); + return new ResponseEntity<>(build, HttpStatus.OK); + } + + + @GetMapping("/undo") + @Log("查询任务") + @ApiOperation("查询任务") + public ResponseEntity undo() { + int count = baseTaskService.count(new QueryWrapper().lt("task_status", StatusEnum.TASK_FINISH.getCode())); + return new ResponseEntity<>(count, HttpStatus.OK); } @PostMapping diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/ISchBaseTaskService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/ISchBaseTaskService.java index df6f158b..7ac39cac 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/ISchBaseTaskService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/ISchBaseTaskService.java @@ -3,6 +3,7 @@ package org.nl.wms.scheduler_manage.service.task; import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; import java.util.Map; /** @@ -21,4 +22,6 @@ public interface ISchBaseTaskService extends IService { * @param param */ void operation(Map param); + + List queryAll(Map query); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/dao/mapper/SchBaseTaskMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/dao/mapper/SchBaseTaskMapper.java index b7630924..268641d6 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/dao/mapper/SchBaseTaskMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/dao/mapper/SchBaseTaskMapper.java @@ -17,5 +17,7 @@ import java.util.Map; */ public interface SchBaseTaskMapper extends BaseMapper { - List getTaskInfo (@Param("map") Map map); + List getTaskInfo (Map map); + + List queryAll (Map map); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/dao/mapper/xml/SchBaseTaskMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/dao/mapper/xml/SchBaseTaskMapper.xml index 68475c66..f8933dd0 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/dao/mapper/xml/SchBaseTaskMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/dao/mapper/xml/SchBaseTaskMapper.xml @@ -21,7 +21,6 @@ LEFT JOIN sch_base_point point1 ON task.point_code1 = point1.point_code LEFT JOIN sch_base_point point2 ON task.point_code2 = point2.point_code LEFT JOIN md_me_materialbase mater ON task.material_id = mater.material_id - LEFT JOIN md_pb_classstandard class ON task.task_type = class.class_id LEFT JOIN sys_dict dict ON dict.`value` = task.task_status AND dict.`code` = 'task_status' task.is_delete = '0' @@ -31,4 +30,64 @@ + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/dto/TaskQuery.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/dto/TaskQuery.java new file mode 100644 index 00000000..8530eb67 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/dto/TaskQuery.java @@ -0,0 +1,12 @@ +package org.nl.wms.scheduler_manage.service.task.dto; + +import org.nl.common.domain.query.BaseQuery; +import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; + +/* + * @author ZZQ + * @Date 2023/6/9 15:49 + */ +public class TaskQuery extends BaseQuery { + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/impl/SchBaseTaskServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/impl/SchBaseTaskServiceImpl.java index 0147ca52..91f30a18 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/impl/SchBaseTaskServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/impl/SchBaseTaskServiceImpl.java @@ -6,12 +6,15 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import org.apache.commons.lang3.StringUtils; import org.nl.common.enums.AcsTaskEnum; import org.nl.common.enums.StatusEnum; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.modules.wql.util.SpringContextHolder; import org.nl.wms.ext.acs.service.AcsToWmsService; import org.nl.wms.ext.acs.service.impl.WmsToAcsServiceImpl; +import org.nl.wms.product_manage.sch.manage.AbstractAcsTask; import org.nl.wms.product_manage.sch.manage.TaskStatusEnum; import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; import org.nl.wms.scheduler_manage.service.task.dao.mapper.SchBaseTaskMapper; @@ -22,6 +25,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; +import java.util.Date; +import java.util.List; import java.util.Map; /** @@ -39,19 +44,40 @@ public class SchBaseTaskServiceImpl extends ServiceImpl queryAll(Map query) { + if (query.get("task_status") != null && ((String)query.get("task_status")).contains("-1")){ + query.put("task_status",((String)query.get("task_status")).replaceAll("-1","1,4,5")); + } + List maps = this.baseMapper.queryAll(query); + return maps; + } + @Override public void operation(Map map) { WmsToAcsServiceImpl wms = new WmsToAcsServiceImpl(); String task_id = MapUtil.getStr(map, "task_id"); String method_name = MapUtil.getStr(map, "method_name"); - JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0); - if (taskObj.getString("task_status").equals(TaskStatusEnum.FINISHED.getCode())) throw new BadRequestException("任务已完成!"); - + SchBaseTask taskObj = this.getOne(new QueryWrapper().eq("task_id", task_id)); + if (taskObj.getTask_status().equals(TaskStatusEnum.FINISHED.getCode())) { + throw new BadRequestException("任务已完成!不允许下发"); + } switch (method_name) { // forceFinish, cancel case "immediateNotifyAcs": - JSONArray array = new JSONArray(); - array.add(taskObj); - wms.issueTaskToAcs(array); + if (!taskObj.getTask_status().equals(TaskStatusEnum.START_AND_POINT.getCode())){ + try { + AbstractAcsTask taskHandler = (AbstractAcsTask) SpringContextHolder.getBean(Class.forName(taskObj.getHandle_class())); + taskHandler.pointConfirm((JSONObject) JSONObject.toJSON(taskObj)); + JSONArray array = new JSONArray(); + array.add(taskObj); + wms.issueTaskToAcs(array); + }catch (Exception ex){ + taskObj.setTask_status(StatusEnum.TASK_START_ERROR.getCode()); + taskObj.setRemark(ex.getMessage()); + taskObj.setUpdate_time(new Date()); + this.updateById(taskObj); + } + } break; case "forceFinish": JSONArray finish = new JSONArray(); diff --git a/mes/hd/nladmin-system/src/main/resources/config/application.yml b/mes/hd/nladmin-system/src/main/resources/config/application.yml index 29361ef8..cdab71b2 100644 --- a/mes/hd/nladmin-system/src/main/resources/config/application.yml +++ b/mes/hd/nladmin-system/src/main/resources/config/application.yml @@ -2,7 +2,7 @@ spring: freemarker: check-template-location: false profiles: - active: dev3 + active: prod jackson: time-zone: GMT+8 data: diff --git a/mes/qd/src/views/wms/scheduler_manage/task/index.vue b/mes/qd/src/views/wms/scheduler_manage/task/index.vue index eec68927..69a2965c 100644 --- a/mes/qd/src/views/wms/scheduler_manage/task/index.vue +++ b/mes/qd/src/views/wms/scheduler_manage/task/index.vue @@ -127,19 +127,20 @@ /> - - - - + + 未完成数: + 任务调度 + + { this.taskTypeList = res }) + crudTask.undo().then(res => { + this.undo = res + }) crudTask.getAcsTaskType().then(res => { this.acsTaskTypeList = res }) diff --git a/mes/qd/src/views/wms/scheduler_manage/task/task.js b/mes/qd/src/views/wms/scheduler_manage/task/task.js index 4b534246..b6623abd 100644 --- a/mes/qd/src/views/wms/scheduler_manage/task/task.js +++ b/mes/qd/src/views/wms/scheduler_manage/task/task.js @@ -43,6 +43,12 @@ export function getAcsTaskType() { method: 'get' }) } +export function undo() { + return request({ + url: 'api/task//undo', + method: 'get' + }) +} export function getFinishType() { return request({ @@ -74,5 +80,6 @@ export default { getTaskType, getAcsTaskType, getFinishType, - scheduler + scheduler, + undo }