diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AgvInstService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AgvInstService.java index 648b2e8b..5d663f2c 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AgvInstService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AgvInstService.java @@ -51,6 +51,8 @@ public class AgvInstService { private ISchBaseTaskService taskService; @Autowired private ISchCachelineVehicleService cachelineVehicleService; + @Autowired + private ISchCachelineVehicleService cachelineVe3hicleService; public static void main(String[] args) { String a= "A1_DC_15_6"; @@ -67,18 +69,19 @@ public class AgvInstService { public void fullMaster(JSONObject task){ String quantity = task.getString("material_qty"); //获取当前生产工序下一道工序 - Map workprodure = basePointService.findDeviceWorkprodure(task.getString("point_code")); + Map workprodure = basePointService.findDeviceWorkprodure(task.getString("point_code1")); FlowElement next = getFlowElement(task,workprodure).next(); - String nextPoint = null; - //判断缓存线是不是去深坑清洗:深坑区域15个点:判断空的物料坑位: - String cacheVehile = ""; - Map query = MapOf.of("workprocedure_id", workprodure.get("workprocedure_id") + + Map query = MapOf.of("workprocedure_id", basePointService.getWorkprodureByCode(next.getId()).get("workprocedure_id") , "qty", quantity); + //判断缓存线是不是去深坑清洗:深坑区域15个点:判断空的物料坑位: if (next.getName().equals("深坑清洗")){ query.put("material_id",task.getString("material_id")); } List> list = deviceService.workproceduceDevices(query); + String nextPoint = null; + String cacheVehile = ""; if (!CollectionUtils.isEmpty(list)){ nextPoint = list.get(0).get("point_code"); }else { @@ -129,7 +132,7 @@ public class AgvInstService { .eq("is_delete", "0") .eq("is_used", "1") ); - SchProcessRoute processRoute = schProcessRouteService.findByMaterialId(material_id,devicePoint.getRegion_code()); + SchProcessRoute processRoute = schProcessRouteService.findByMaterialId(devicePoint.getRegion_code()); if (processRoute == null){ throw new BadRequestException("当前没有配置对应工序调度线路:"+material_id+"/"+devicePoint.getRegion_code()); } @@ -146,25 +149,16 @@ public class AgvInstService { //3.agv根据对应载具列表行进扫码匹配:匹配到对应物料则创建点对点任务 public void empMatter(JSONObject task){ //参数 - String targetDevice = task.getString("point_code2"); - String material_id = task.getString("material_id"); - SchBasePoint devicePoint = basePointService.getOne(new QueryWrapper() - .eq("point_code", targetDevice) - .eq("is_delete", "0") - .eq("is_used", "1")); - JSONObject cacheLine = WQLObject.getWQLObject("SCH_cacheLine_region_relation").query("region_code = '"+devicePoint.getRegion_code()+"' and is_active = '"+StatusEnum.STATUS_TRUE.getCode()+"'").uniqueResult(0); - Assert.notNull(cacheLine, String.format("区域%s对应缓存线信息不存在", devicePoint.getRegion_code())); - //缓存线位置编码 :缺料请求获取缓存线满载具列表 - String startPoint = cacheLine.getString("cacheline_code"); - String cacheVehile = getCacheVehile(startPoint, material_id); + String startPoint = task.getString("cacheLine"); + String cacheVehile = getCacheVehile(startPoint, task.getString("material_id")); if (StringUtils.isBlank(cacheVehile)) { - throw new BadRequestException("缓存线:"+startPoint+"没有物料"+material_id+"对应可用载具"); + throw new BadRequestException("缓存线:"+startPoint+"没有物料"+task.getString("material_id")+"对应可用载具"); } //判断当前物料载具已经任务分配数量:如果>物料已经分配任务。说明满了,不允许再分配 - List allocateTask = taskService.list(new QueryWrapper().eq("point_code1", startPoint).eq("material_id", material_id).lt("task_status", StatusEnum.TASK_FINISH.getCode())); + List allocateTask = taskService.list(new QueryWrapper().eq("point_code1", startPoint).eq("material_id", task.getString("material_id")).lt("task_status", StatusEnum.TASK_FINISH.getCode())); if (allocateTask.size()>=cacheVehile.split(",").length){ - log.error("callMatter 缓存线:{}上含有物料:{}的载具分配完,任务id:{}",startPoint,material_id,allocateTask.stream().map(SchBaseTask::getTask_id).collect(Collectors.joining(","))); - throw new BadRequestException(String.format("缓存线%s上含物料%s的载具已分配完",startPoint,material_id)); + log.error("callMatter 缓存线:{}上含有物料:{}的载具分配完,任务id:{}",startPoint,task.getString("material_id"),allocateTask.stream().map(SchBaseTask::getTask_id).collect(Collectors.joining(","))); + throw new BadRequestException(String.format("缓存线%s上含物料%s的载具已分配完",startPoint,task.getString("material_id"))); } SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class); schBaseTask.setVehicle_code(cacheVehile); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/rest/CacheLineHandController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/rest/CacheLineHandController.java index 61ee34bf..0b83c159 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/rest/CacheLineHandController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/rest/CacheLineHandController.java @@ -8,6 +8,7 @@ import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.nl.common.TableDataInfo; import org.nl.common.anno.Log; import org.nl.common.utils.api.ResultCode; import org.nl.modules.common.exception.BizCoreException; @@ -246,7 +247,7 @@ public class CacheLineHandController { public ResponseEntity check(@RequestBody JSONObject param) { log.info("海亮缓存线手持服务 [盘点] 接口被请求, 请求参数-{}", param); cacheLineHandService.check(param); - return new ResponseEntity<>(HttpStatus.OK); + return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK); } @PostMapping("/checkEnd") @@ -255,7 +256,7 @@ public class CacheLineHandController { public ResponseEntity checkEnd(@RequestBody JSONObject param) { log.info("海亮缓存线手持服务 [盘点] 接口被请求, 请求参数-{}", param); cacheLineHandService.check(param); - return new ResponseEntity<>(HttpStatus.OK); + return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK); } @PostMapping("/agvInBoxExceptionQuery") diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/service/impl/CacheLineHandServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/service/impl/CacheLineHandServiceImpl.java index a8217424..60d4bfa6 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/service/impl/CacheLineHandServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/service/impl/CacheLineHandServiceImpl.java @@ -671,7 +671,6 @@ public class CacheLineHandServiceImpl implements CacheLineHandService { //载具编码 String vehicle_code = param.getString("vehicle_code"); //缓存线位置编码 - String position_code = param.getString("position_code"); // 封装给acs的数据 JSONArray jsonArray = new JSONArray(); JSONObject jsonObject = new JSONObject(); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/device/PdmBiDeviceController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/device/PdmBiDeviceController.java index c9ca3d46..9d288bff 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/device/PdmBiDeviceController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/device/PdmBiDeviceController.java @@ -1,15 +1,20 @@ package org.nl.wms.product_manage.controller.device; +import cn.dev33.satoken.annotation.SaIgnore; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; 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.SecurityUtils; import org.nl.wms.product_manage.service.device.IPdmBiDeviceService; import org.nl.wms.product_manage.service.device.dao.PdmBiDevice; +import org.nl.wms.product_manage.service.device.dto.DeviceQuery; import org.nl.wms.product_manage.备份pdm.service.DeviceService; import org.nl.wms.product_manage.备份pdm.service.dto.DeviceDto; import org.springframework.beans.factory.annotation.Autowired; @@ -19,6 +24,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.util.List; import java.util.Map; /** @@ -38,9 +44,19 @@ public class PdmBiDeviceController { @GetMapping @Log("查询生产设备") @ApiOperation("查询生产设备") - //@PreAuthorize("@el.check('device:list')") - public ResponseEntity query(@RequestParam Map whereJson, Pageable page){ - return new ResponseEntity<>(deviceService.queryAll(whereJson,page),HttpStatus.OK); + @SaIgnore + public ResponseEntity query(DeviceQuery query, PageQuery page){ + Page result = iDeviceService.page(page.build(PdmBiDevice.class), query.build()); + return new ResponseEntity<>(TableDataInfo.build(result),HttpStatus.OK); + } + + @GetMapping("/list") + @Log("查询生产设备列表") + @ApiOperation("查询生产设备列表") + @SaIgnore + public ResponseEntity queryList(DeviceQuery query){ + List> list = iDeviceService.listMaps(query.build().select("device_code", "device_name")); + return new ResponseEntity<>(TableDataInfo.build(list),HttpStatus.OK); } @PostMapping 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 2a25fcb6..161f45b8 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 @@ -15,6 +15,7 @@ import org.nl.common.utils.SecurityUtils; import org.nl.wms.product_manage.service.device.IPdmBiDeviceService; import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService; import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder; +import org.nl.wms.product_manage.service.workorder.dto.ReportQuery; import org.nl.wms.product_manage.service.workorder.dto.WorkorderQuery; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -145,6 +146,14 @@ public class PdmProduceWorkorderController { return new ResponseEntity<>(HttpStatus.OK); } + @GetMapping("/reportQuery") + @Log("报工查询") + @ApiOperation("报工查询") + public ResponseEntity reportQuery(ReportQuery query) { + return new ResponseEntity<>(TableDataInfo.build(iPdmProduceWorkorderService.reportQuery(query)),HttpStatus.OK); + } + + } 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 1a3ff0f1..2df27ebd 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 @@ -8,6 +8,8 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.jetbrains.annotations.Nullable; import org.nl.common.enums.AcsTaskEnum; import org.nl.common.enums.InterfaceLogType; import org.nl.common.enums.StatusEnum; @@ -21,6 +23,12 @@ import org.nl.wms.product_manage.sch.manage.AbstractAcsTask; import org.nl.wms.product_manage.sch.manage.TaskStatusEnum; import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService; import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder; +import org.nl.wms.scheduler_manage.service.cacheline.ISchCachelineVehilematerialService; +import org.nl.wms.scheduler_manage.service.cacheline.dao.SchCachelineVehilematerial; +import org.nl.wms.scheduler_manage.service.point.ISchBasePointService; +import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint; +import org.nl.wms.scheduler_manage.service.scheduler.ISchProcessRouteService; +import org.nl.wms.scheduler_manage.service.scheduler.labelConverter.impl.FlowElement; import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService; import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; import org.springframework.beans.factory.annotation.Autowired; @@ -43,14 +51,20 @@ public class SpeEmpTask extends AbstractAcsTask { @Autowired private ISchBaseTaskService taskService; @Autowired - AgvInstService agvInstService; + private AgvInstService agvInstService; + @Autowired + private ISchBasePointService basePointService; + @Autowired + private ISchCachelineVehilematerialService cacheLineVechileService; + + @Autowired + private ISchProcessRouteService schProcessRouteService; + private final Map SpeHandles= new HashMap<>(); private static String OPT_NAME = "ACS回调# "; public SpeEmpTask() { - SpeHandles.put(AcsTaskEnum.TASK_PRODUCT_MAC.name() ,new Spe2Spe()); - SpeHandles.put(AcsTaskEnum.TASK_PRODUCT_CACHE.name() ,new Spe2Cache()); SpeHandles.put(AcsTaskEnum.TASK_CACHELINE_OUT.name() ,new Cache2Spe()); } @@ -73,27 +87,26 @@ public class SpeEmpTask extends AbstractAcsTask { @Transactional public String createTask(JSONObject param) { //{"workorder_code":230523019,"device_code":"A1_TW_15_6_D","type":"1"} - String point_code = param.getString("device_code"); - String quantity = param.getString("quantity"); - String type = param.getString("type"); + String cahceLine = getRouteXmlFlowByWorkprodure(param); + if (cahceLine == null) { return null; } PdmProduceWorkorder one = workorderService.getOne(new QueryWrapper() .eq("workorder_code", param.getString("workorder_code")) .lt("workorder_status", StatusEnum.TASK_FINISH.getCode())); Assert.notNull(one, String.format("下发工单%s不存在未完成工单", param.getString("workorder_code"))); List list = taskService.list(new QueryWrapper() - .eq("point_code2", point_code).lt("task_status", StatusEnum.TASK_FINISH.getCode()) + .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"))); } JSONObject form = new JSONObject(MapOf.of("start_point_code","", - "next_point_code",point_code,"return_point_code", "","vehicle_code", - "","product_area",one.getProduct_area(),"quantity", quantity,"type",type,"material_id", one.getMaterial_id())); + "next_point_code",param.getString("device_code"),"return_point_code", "","vehicle_code", + "","product_area",one.getProduct_area(),"quantity", param.getString("quantity"),"type",param.getString("type"),"material_id", one.getMaterial_id())); String taskId = IdUtil.getSnowflake(1, 1).nextId() + ""; JSONObject task = packageParam(form, taskId); taskService.save(task.toJavaObject(SchBaseTask.class)); - + task.put("cacheLine",cahceLine); try { pointConfirm(task); //下发 @@ -106,6 +119,35 @@ public class SpeEmpTask extends AbstractAcsTask { return taskId; } + @Nullable + private String getRouteXmlFlowByWorkprodure(JSONObject param) { + Map workprodure = basePointService.findDeviceWorkprodure(param.getString("device_code")); + SchBasePoint devicePoint = basePointService.getOne(new QueryWrapper() + .eq("point_code", param.getString("device_code")) + .eq("is_delete", "0") + .eq("is_used", "1") + ); + FlowElement flowElement = schProcessRouteService.checkWorkprodure(workprodure.get("workprocedure_code"), devicePoint.getRegion_code()); + if (flowElement == null){ + log.error("SpeEmpTask#createTask 没有对应路由线路{},{}",workprodure.get("workprocedure_code"),devicePoint.getRegion_code()); + throw new BadRequestException("缺料请求没有配置对应路由线路"+workprodure.get("workprocedure_code")+"——"+devicePoint.getRegion_code()); + } + FlowElement pre = flowElement.pre(); + if (pre == null || ObjectUtil.isEmpty(pre.getParams().get("cacheLine"))){ + log.error("SpeEmpTask#createTask 没有配置缓存线{},{}",workprodure.get("workprocedure_code"),devicePoint.getRegion_code()); + return null; + } + Object tmp_cahceLine = pre.getParams().get("cacheLine"); + String cahceLine = null; + if (tmp_cahceLine instanceof String){ + cahceLine = (String) tmp_cahceLine; + } + if (tmp_cahceLine instanceof Map){ + cahceLine = ((Map) tmp_cahceLine).get(workprodure.get("spec")); + } + return cahceLine; + } + private JSONObject packageParam(JSONObject form, String task_id) { JSONObject task = new JSONObject(); 参数封装:{ @@ -149,72 +191,6 @@ public class SpeEmpTask extends AbstractAcsTask { interface SpeStatusHandler{ void handle(JSONObject param,String status,JSONObject task); } - class Spe2Spe implements SpeStatusHandler{ - @Override - public void handle(JSONObject param, String sta,JSONObject task) { - AcsTaskEnum status = AcsTaskEnum.getType(sta,"status_"); - WQLObject taskTable = WQLObject.getWQLObject("sch_base_task"); - WQLObject pointTable = WQLObject.getWQLObject("SCH_BASE_Point"); - WQLObject deviceTable = WQLObject.getWQLObject("pdm_bi_device"); - - switch (status){ - case STATUS_START: - taskTable.update(MapOf.of("task_status",StatusEnum.TASK_RUNNING.getCode(),"update_name","acs","update_time", DateUtil.now()),"task_id = '"+task.getString("task_id")+"'"); - break; - case STATUS_FINISH: - taskTable.update(MapOf.of("task_status",StatusEnum.TASK_FINISH.getCode(),"update_name","acs","update_time", DateUtil.now()),"task_id = '"+task.getString("task_id")+"'"); - //到专机:更新设备上料位物料数量 - String point_code2 = task.getString("point_code2"); - JSONObject pointInfo = pointTable.query("point_code = '" + point_code2 + "'").uniqueResult(0); - JSONObject device = deviceTable.query("device_code = '" + pointInfo.getString("device_code") + "'").uniqueResult(0); - task.getDouble("material_qty"); - double currentQty = device.getDouble("deviceinstor_qty") + task.getDouble("material_qty"); - deviceTable.update(MapOf.of("deviceinstor_qty", String.valueOf(currentQty)), "device_code = '" + pointInfo.getString("device_code") + "'"); - break; - case STATUS_CANNEL: - cancel(param.getString("task_id")); - break; - default: - log.error(OPT_NAME+"未定义任务状态:{}",sta); - throw new BadRequestException(OPT_NAME+"未定义任务状态:"+sta); - } - } - } - class Spe2Cache implements SpeStatusHandler{ - @Override - public void handle(JSONObject param, String sta,JSONObject task) { - AcsTaskEnum status = AcsTaskEnum.getType(sta,"status_"); - WQLObject taskTable = WQLObject.getWQLObject("sch_base_task"); - WQLObject cacheVehTable = WQLObject.getWQLObject("sch_cacheline_vehilematerial"); - String workprocedureCode = param.getString("workorder_code"); - String inboxtxm = param.getString("inboxtxm"); - String outboxtxm = param.getString("outboxtxm"); - switch (status){ - case STATUS_START: - taskTable.update(MapOf.of("task_status",StatusEnum.TASK_RUNNING.getCode(),"update_name","acs","update_time", DateUtil.now()),"task_id = '"+task.getString("task_id")+"'"); - cacheVehTable.delete("vehicle_code = '" + outboxtxm + "'"); - break; - case STATUS_FINISH: - taskTable.update(MapOf.of("task_status",StatusEnum.TASK_FINISH.getCode(),"update_name","acs","update_time", DateUtil.now()),"task_id = '"+task.getString("task_id")+"'"); - cacheVehTable.insert(MapOf.of("quantity", task.getString("material_qty"), - "material_id", task.getString("material_id"), - "vehicle_code", inboxtxm, - "vehicle_status", StatusEnum.CACHE_VEL_FULL.getCode(), - //工单,工序? - "workorder_code", workprocedureCode, - "create_time", DateUtil.now(), - "update_time", DateUtil.now() - //物料规格,物料名称 从物料信息表关联查询 - )); - break; - case STATUS_CANNEL: - cancel(param.getString("task_id")); - break; - default: - throw new BadRequestException(OPT_NAME+"未定义任务状态:"+sta); - } - } - } class Cache2Spe implements SpeStatusHandler{ @Override public void handle(JSONObject param, String sta,JSONObject task) { @@ -223,12 +199,10 @@ public class SpeEmpTask extends AbstractAcsTask { WQLObject cacheVehTable = WQLObject.getWQLObject("sch_cacheline_vehilematerial"); WQLObject pointTable = WQLObject.getWQLObject("SCH_BASE_Point"); WQLObject deviceTable = WQLObject.getWQLObject("pdm_bi_device"); - String outboxtxm = param.getString("outboxtxm"); switch (status){ case STATUS_START: taskTable.update(MapOf.of("task_status",StatusEnum.TASK_RUNNING.getCode(),"update_name","acs","update_time", DateUtil.now()),"task_id = '"+task.getString("task_id")+"'"); - cacheVehTable.delete("vehicle_code = '" + outboxtxm + "'"); break; case STATUS_FINISH: taskTable.update(MapOf.of("task_status",StatusEnum.TASK_FINISH.getCode(),"update_name","acs","update_time", DateUtil.now()),"task_id = '"+task.getString("task_id")+"'"); 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 5ddcdb9e..bb62bc4d 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 @@ -2,15 +2,14 @@ package org.nl.wms.product_manage.sch.tasks.SpeMachinery; import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Assert; -import cn.hutool.core.util.IdUtil; -import cn.hutool.core.util.ObjectUtil; -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 lombok.extern.slf4j.Slf4j; import org.nl.common.enums.AcsTaskEnum; import org.nl.common.enums.InterfaceLogType; import org.nl.common.enums.StatusEnum; +import org.nl.common.utils.IdUtil; import org.nl.common.utils.MapOf; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; @@ -22,6 +21,10 @@ import org.nl.wms.product_manage.sch.manage.AbstractAcsTask; import org.nl.wms.product_manage.sch.manage.TaskStatusEnum; import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService; import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder; +import org.nl.wms.scheduler_manage.service.cacheline.ISchCachelineVehilematerialService; +import org.nl.wms.scheduler_manage.service.cacheline.dao.SchCachelineVehilematerial; +import org.nl.wms.scheduler_manage.service.point.ISchBasePointService; +import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint; import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService; import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; import org.springframework.beans.factory.annotation.Autowired; @@ -44,7 +47,11 @@ public class SpeFullTask extends AbstractAcsTask { @Autowired private ISchBaseTaskService taskService; @Autowired - AgvInstService agvInstService; + private ISchBasePointService pointService; + @Autowired + private ISchCachelineVehilematerialService cacheLineVechileService; + @Autowired + private AgvInstService agvInstService; private final Map SpeHandles= new HashMap<>(); private static String OPT_NAME = "ACS回调# "; @@ -53,16 +60,16 @@ public class SpeFullTask extends AbstractAcsTask { public SpeFullTask() { SpeHandles.put(AcsTaskEnum.TASK_PRODUCT_MAC.name() ,new Spe2Spe()); SpeHandles.put(AcsTaskEnum.TASK_PRODUCT_CACHE.name() ,new Spe2Cache()); - SpeHandles.put(AcsTaskEnum.TASK_CACHELINE_OUT.name() ,new Cache2Spe()); } @Override + @Transactional public void updateTaskStatus(JSONObject param,String status) { WQLObject taskTable = WQLObject.getWQLObject("sch_base_task"); log.info(InterfaceLogType.ACS_TO_LMS.getDesc()); // 指令执行中 - JSONObject task = taskTable.query("task_id = '" + param.getString("task_id") + "'").uniqueResult(0); - AcsTaskEnum taskType = AcsTaskEnum.getType(task.getString("task_type"),"TASK_"); + SchBaseTask task = taskService.getById(param.getString("task_id")); + AcsTaskEnum taskType = AcsTaskEnum.getType(task.getTask_type(),"TASK_"); try { SpeHandles.get(taskType.name()).handle(param,status,task); }catch (Exception ex){ @@ -74,7 +81,6 @@ public class SpeFullTask extends AbstractAcsTask { @Override @Transactional public String createTask(JSONObject param) { - //{"quantity":5,"workorder_code":230523019,"device_code":"A1_TW_15_6_M","type":"2"} String point_code = param.getString("device_code"); String quantity = param.getString("quantity"); String type = param.getString("type"); @@ -92,9 +98,9 @@ public class SpeFullTask extends AbstractAcsTask { 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, "next_point_code","","return_point_code", empPoint.getString("point_code"),"vehicle_code", - "","product_area",order.getProduct_area(),"quantity", quantity,"type",type,"material_id", order.getProduct_area())); + "","product_area",order.getProduct_area(),"quantity", quantity,"type",type,"material_id", order.getMaterial_id())); - String taskId = IdUtil.getSnowflake(1, 1).nextId() + ""; + String taskId = IdUtil.getStringId(); JSONObject task = packageParam(form, taskId); taskService.save(task.toJavaObject(SchBaseTask.class)); try { @@ -149,29 +155,38 @@ public class SpeFullTask extends AbstractAcsTask { } interface SpeStatusHandler{ - void handle(JSONObject param,String status,JSONObject task); + void handle(JSONObject param,String status,SchBaseTask task); } class Spe2Spe implements SpeStatusHandler{ @Override - public void handle(JSONObject param, String sta,JSONObject task) { + public void handle(JSONObject param, String sta,SchBaseTask task) { AcsTaskEnum status = AcsTaskEnum.getType(sta,"status_"); - WQLObject taskTable = WQLObject.getWQLObject("sch_base_task"); - WQLObject pointTable = WQLObject.getWQLObject("SCH_BASE_Point"); - WQLObject deviceTable = WQLObject.getWQLObject("pdm_bi_device"); - switch (status){ case STATUS_START: - taskTable.update(MapOf.of("task_status",StatusEnum.TASK_RUNNING.getCode(),"update_name","acs","update_time", DateUtil.now()),"task_id = '"+task.getString("task_id")+"'"); + taskService.update(new UpdateWrapper() + .set("task_status",StatusEnum.TASK_RUNNING.getCode()) + .set("update_name","acs") + .set("update_time",DateUtil.now()).eq("task_id",task.getTask_id())); + Map extParam = (Map)param.get("ext_param"); + if (extParam.get("put_finish") != null){ + pointService.update(new UpdateWrapper() + .set("vehicle_code",task.getVehicle_code2()) + .eq("point_code",task.getPoint_code3())); + } + if (extParam.get("take_finish") != null){ + pointService.update(new UpdateWrapper() + .set("vehicle_code","") + .eq("point_code",task.getPoint_code3())); + pointService.update(new UpdateWrapper() + .set("vehicle_code",task.getVehicle_code2()) + .eq("point_code",task.getPoint_code1())); + } break; case STATUS_FINISH: - taskTable.update(MapOf.of("task_status",StatusEnum.TASK_FINISH.getCode(),"update_name","acs","update_time", DateUtil.now()),"task_id = '"+task.getString("task_id")+"'"); - //到专机:更新设备上料位物料数量 - String point_code2 = task.getString("point_code2"); - JSONObject pointInfo = pointTable.query("point_code = '" + point_code2 + "'").uniqueResult(0); - JSONObject device = deviceTable.query("device_code = '" + pointInfo.getString("device_code") + "'").uniqueResult(0); - task.getDouble("material_qty"); - double currentQty = device.getDouble("deviceinstor_qty") + task.getDouble("material_qty"); - deviceTable.update(MapOf.of("deviceinstor_qty", String.valueOf(currentQty)), "device_code = '" + pointInfo.getString("device_code") + "'"); + taskService.update(new UpdateWrapper() + .set("task_status",StatusEnum.TASK_FINISH.getCode()) + .set("update_name","acs") + .set("update_time",DateUtil.now()).eq("task_id",task.getTask_id())); break; case STATUS_CANNEL: cancel(param.getString("task_id")); @@ -184,63 +199,36 @@ public class SpeFullTask extends AbstractAcsTask { } class Spe2Cache implements SpeStatusHandler{ @Override - public void handle(JSONObject param, String sta,JSONObject task) { + public void handle(JSONObject param, String sta,SchBaseTask task) { AcsTaskEnum status = AcsTaskEnum.getType(sta,"status_"); - WQLObject taskTable = WQLObject.getWQLObject("sch_base_task"); - WQLObject cacheVehTable = WQLObject.getWQLObject("sch_cacheline_vehilematerial"); - String workprocedureCode = param.getString("workorder_code"); - String inboxtxm = param.getString("inboxtxm"); - String outboxtxm = param.getString("outboxtxm"); switch (status){ case STATUS_START: - taskTable.update(MapOf.of("task_status",StatusEnum.TASK_RUNNING.getCode(),"update_name","acs","update_time", DateUtil.now()),"task_id = '"+task.getString("task_id")+"'"); - cacheVehTable.delete("vehicle_code = '" + outboxtxm + "'"); + Map extParam = (Map)param.get("ext_param"); + UpdateWrapper wrapper = new UpdateWrapper() + .set("task_status", StatusEnum.TASK_RUNNING.getCode()) + .set("update_name", "acs") + .set("update_time", DateUtil.now()).eq("task_id", task.getTask_id()); + + if (extParam.get("outboxt")!= null){ wrapper.set("vehicle_code2",extParam.get("outboxt")); } + taskService.update(wrapper); + + if (extParam.get("inboxt") != null){ + SchCachelineVehilematerial vehilematerial = new SchCachelineVehilematerial(); + vehilematerial.setVehmaterial_id(IdUtil.getStringId()); + vehilematerial.setVehicle_code(extParam.get("inboxt")); + vehilematerial.setMaterial_id(task.getMaterial_id()); + vehilematerial.setErr_type("0"); + vehilematerial.setCreate_time(DateUtil.now()); + vehilematerial.setQuantity(task.getMaterial_qty()); + cacheLineVechileService.save(vehilematerial); + } + break; case STATUS_FINISH: - taskTable.update(MapOf.of("task_status",StatusEnum.TASK_FINISH.getCode(),"update_name","acs","update_time", DateUtil.now()),"task_id = '"+task.getString("task_id")+"'"); - cacheVehTable.insert(MapOf.of("quantity", task.getString("material_qty"), - "material_id", task.getString("material_id"), - "vehicle_code", inboxtxm, - "vehicle_status", StatusEnum.CACHE_VEL_FULL.getCode(), - //工单,工序? - "workorder_code", workprocedureCode, - "create_time", DateUtil.now(), - "update_time", DateUtil.now() - //物料规格,物料名称 从物料信息表关联查询 - )); - break; - case STATUS_CANNEL: - cancel(param.getString("task_id")); - break; - default: - throw new BadRequestException(OPT_NAME+"未定义任务状态:"+sta); - } - } - } - class Cache2Spe implements SpeStatusHandler{ - @Override - public void handle(JSONObject param, String sta,JSONObject task) { - AcsTaskEnum status = AcsTaskEnum.getType(sta,"status_"); - WQLObject taskTable = WQLObject.getWQLObject("sch_base_task"); - WQLObject cacheVehTable = WQLObject.getWQLObject("sch_cacheline_vehilematerial"); - WQLObject pointTable = WQLObject.getWQLObject("SCH_BASE_Point"); - WQLObject deviceTable = WQLObject.getWQLObject("pdm_bi_device"); - String outboxtxm = param.getString("outboxtxm"); - - switch (status){ - case STATUS_START: - taskTable.update(MapOf.of("task_status",StatusEnum.TASK_RUNNING.getCode(),"update_name","acs","update_time", DateUtil.now()),"task_id = '"+task.getString("task_id")+"'"); - cacheVehTable.delete("vehicle_code = '" + outboxtxm + "'"); - break; - case STATUS_FINISH: - taskTable.update(MapOf.of("task_status",StatusEnum.TASK_FINISH.getCode(),"update_name","acs","update_time", DateUtil.now()),"task_id = '"+task.getString("task_id")+"'"); - - String point_code2 = task.getString("point_code2"); - JSONObject pointInfo = pointTable.query("point_code = '" + point_code2 + "'").uniqueResult(0); - JSONObject device = deviceTable.query("device_code = '" + pointInfo.getString("device_code") + "'").uniqueResult(0); - task.getDouble("material_qty"); - double currentQty = device.getDouble("deviceinstor_qty") + task.getDouble("material_qty"); - deviceTable.update(MapOf.of("deviceinstor_qty", String.valueOf(currentQty)), "device_code = '" + pointInfo.getString("device_code") + "'"); + taskService.update(new UpdateWrapper() + .set("task_status",StatusEnum.TASK_FINISH.getCode()) + .set("update_name","acs") + .set("update_time",DateUtil.now()).eq("task_id",task.getTask_id())); break; case STATUS_CANNEL: cancel(param.getString("task_id")); @@ -254,6 +242,5 @@ public class SpeFullTask extends AbstractAcsTask { @Override public void pointConfirm(JSONObject param) { agvInstService.fullMaster(param); - } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/PdmBiDevice.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/PdmBiDevice.java index 43aa1b40..9e3e4f69 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/PdmBiDevice.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/PdmBiDevice.java @@ -29,6 +29,11 @@ public class PdmBiDevice implements Serializable { @TableId(value = "device_code") private String device_code; + /** + * 设备系列TW_15/TW_22:25/22 + */ + private String spec; + /** * 设备名称 */ diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/mapper/PdmBiDeviceMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/mapper/PdmBiDeviceMapper.xml index 3fccb0be..17efe475 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/mapper/PdmBiDeviceMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/mapper/PdmBiDeviceMapper.xml @@ -23,7 +23,7 @@ GROUP_CONCAT(sch_base_task.task_id), pdm_bi_device.inupperlimit_qty - ifnull( sum( sch_base_task.material_qty ), 0 ) - pdm_bi_device.deviceinstor_qty AS currentQty, pdm_bi_device.device_code, - sch_base_point.point_code, + sch_base_point.point_code from sch_base_point left join pdm_bi_device on pdm_bi_device.device_code = sch_base_point.device_code left JOIN sch_base_task ON sch_base_point.point_code = point_code2 and '7' > task_status @@ -31,7 +31,7 @@ sch_base_point.point_type = '4' and workprocedure_id = #{workprocedure_id} - and pdm_bi_device.material_id = #{material_id} + and (pdm_bi_device.material_id = #{material_id} or pdm_bi_device.material_id is null ) GROUP BY pdm_bi_device.device_code HAVING currentQty > #{qty} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dto/DeviceQuery.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dto/DeviceQuery.java new file mode 100644 index 00000000..a9dffddc --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dto/DeviceQuery.java @@ -0,0 +1,29 @@ +package org.nl.wms.product_manage.service.device.dto; + +import lombok.Data; +import org.nl.common.domain.query.BaseQuery; +import org.nl.common.domain.query.QParam; +import org.nl.common.enums.QueryTEnum; +import org.nl.wms.product_manage.service.device.dao.PdmBiDevice; +import org.nl.wms.system_manage.service.dept.dao.SysDept; + +import java.util.List; + +/* + * @author ZZQ + * @Date 2022/12/15 4:20 下午 + */ +@Data +public class DeviceQuery extends BaseQuery { + private String search; + + private String workprocedure_id; + + private String product_area; + + + @Override + public void paramMapping() { + super.doP.put("search", QParam.builder().k(new String[]{"device_code"}).type(QueryTEnum.LK).build()); + } +} 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 6bb5e166..2c403b12 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 @@ -4,8 +4,8 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.IService; import org.nl.common.domain.query.PageQuery; -import org.nl.common.utils.OptionRecord; import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder; +import org.nl.wms.product_manage.service.workorder.dto.ReportQuery; import org.nl.wms.product_manage.service.workorder.dto.WorkorderQuery; import org.springframework.web.multipart.MultipartFile; @@ -115,4 +115,6 @@ public interface IPdmProduceWorkorderService extends IService reportQuery(ReportQuery query); + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/IPdmProduceWorkorderrecordService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/IPdmProduceWorkorderrecordService.java index 2f95ec1f..c8b62eba 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/IPdmProduceWorkorderrecordService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/IPdmProduceWorkorderrecordService.java @@ -2,6 +2,10 @@ package org.nl.wms.product_manage.service.workorder; import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorderrecord; import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.wms.product_manage.service.workorder.dto.ReportQuery; + +import java.util.List; +import java.util.Map; /** *

@@ -13,4 +17,5 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface IPdmProduceWorkorderrecordService extends IService { + List getWorkorderRecordDtl(ReportQuery query); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/PdmProduceWorkorder.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/PdmProduceWorkorder.java index 128ff135..9d43749c 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/PdmProduceWorkorder.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/PdmProduceWorkorder.java @@ -220,6 +220,10 @@ public class PdmProduceWorkorder implements Serializable { * 完工时间 */ private String confirm_time; + /** + * 自增序号 + */ + private Integer seq_number; } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderrecordMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderrecordMapper.java index 7fb66f71..ae7c714f 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderrecordMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderrecordMapper.java @@ -1,7 +1,12 @@ package org.nl.wms.product_manage.service.workorder.dao.mapper; +import org.apache.ibatis.annotations.Param; import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorderrecord; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.wms.product_manage.service.workorder.dto.ReportQuery; + +import java.util.List; +import java.util.Map; /** *

@@ -13,4 +18,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface PdmProduceWorkorderrecordMapper extends BaseMapper { + List getWorkorderRecordDtl(@Param("query")ReportQuery query); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/xml/PdmProduceWorkorderrecordMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/xml/PdmProduceWorkorderrecordMapper.xml index ac1a9b89..0b782794 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/xml/PdmProduceWorkorderrecordMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/xml/PdmProduceWorkorderrecordMapper.xml @@ -2,4 +2,29 @@ + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dto/ReportQuery.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dto/ReportQuery.java new file mode 100644 index 00000000..f7216905 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dto/ReportQuery.java @@ -0,0 +1,21 @@ +package org.nl.wms.product_manage.service.workorder.dto; + +import lombok.Data; +import org.nl.common.domain.query.BaseQuery; +import org.nl.common.domain.query.QParam; +import org.nl.common.enums.QueryTEnum; +import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder; +import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorderrecord; + +/* + * @author ZZQ + * @Date 2023/4/26 11:05 + */ +@Data +public class ReportQuery extends BaseQuery { + + private String device_code; + private String workorder_code; + private String report; + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java index 227eebf0..fb20ee9f 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java @@ -39,6 +39,7 @@ import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder; import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorderrecord; import org.nl.wms.product_manage.service.workorder.dao.WorkorderRecord; import org.nl.wms.product_manage.service.workorder.dao.mapper.PdmProduceWorkorderMapper; +import org.nl.wms.product_manage.service.workorder.dto.ReportQuery; import org.nl.wms.product_manage.service.workorder.dto.WorkorderQuery; import org.nl.wms.system_manage.service.user.ISysUserService; import org.nl.wms.system_manage.service.user.dao.SysUser; @@ -639,7 +640,7 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl reportQuery(ReportQuery query) { + return reportRecordService.getWorkorderRecordDtl(query); + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/PdmProduceWorkorderrecordServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/PdmProduceWorkorderrecordServiceImpl.java index 06bac38a..1a7582cb 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/PdmProduceWorkorderrecordServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/PdmProduceWorkorderrecordServiceImpl.java @@ -1,11 +1,16 @@ package org.nl.wms.product_manage.service.workorder.impl; +import lombok.var; import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorderrecord; import org.nl.wms.product_manage.service.workorder.dao.mapper.PdmProduceWorkorderrecordMapper; import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderrecordService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.nl.wms.product_manage.service.workorder.dto.ReportQuery; import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Map; + /** *

* 生产设备报工记录表 服务实现类 @@ -17,4 +22,8 @@ import org.springframework.stereotype.Service; @Service public class PdmProduceWorkorderrecordServiceImpl extends ServiceImpl implements IPdmProduceWorkorderrecordService { + @Override + public List getWorkorderRecordDtl(ReportQuery query) { + return this.baseMapper.getWorkorderRecordDtl(query); + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/controller/scheduler/SchedulerController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/controller/scheduler/SchedulerController.java index 07b3f1ad..e8b8baa2 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/controller/scheduler/SchedulerController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/controller/scheduler/SchedulerController.java @@ -58,7 +58,7 @@ public class SchedulerController { .or() .like("process_name", blurry) .or() - .like("material_spec", blurry); + .like("rule_code", blurry); } List list = processRouteService.list(query); return new ResponseEntity<>(TableDataInfo.build(list), HttpStatus.OK); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/dao/mapper/xml/SchCachelineVehicleMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/dao/mapper/xml/SchCachelineVehicleMapper.xml index 0a847f3f..8a6b1e39 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/dao/mapper/xml/SchCachelineVehicleMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/dao/mapper/xml/SchCachelineVehicleMapper.xml @@ -12,7 +12,7 @@ WHERE p.vehicle_code ]]> '' and v.vehicle_status = #{vehicle_status} - v.material_id = #{material_id} + and v.material_id = #{material_id} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/ISchBasePointService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/ISchBasePointService.java index f0168faa..a1cdfd4b 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/ISchBasePointService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/ISchBasePointService.java @@ -41,9 +41,16 @@ public interface ISchBasePointService extends IService { /** * 根据设备点位查询设备对应工序 + * r.workprocedure_code,r.workprocedure_id,p.device_code * @param point_code * @return */ Map findDeviceWorkprodure(String point_code); + + Map getWorkprodureById(String id); + Map getWorkprodureByCode(String code); + + + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/dao/mapper/SchBasePointMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/dao/mapper/SchBasePointMapper.java index fb07e862..e2e42ea3 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/dao/mapper/SchBasePointMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/dao/mapper/SchBasePointMapper.java @@ -1,6 +1,7 @@ package org.nl.wms.scheduler_manage.service.point.dao.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint; import java.util.List; @@ -30,4 +31,5 @@ public interface SchBasePointMapper extends BaseMapper { List selectPoint(Map map); Map getDeviceWorkprodure(String pointCode); + Map getWorkprodure(@Param("workprodureId") String workprodureId,@Param("workprodureCode") String workprodureCode); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/dao/mapper/SchBasePointMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/dao/mapper/SchBasePointMapper.xml index e7034ae8..335e0521 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/dao/mapper/SchBasePointMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/dao/mapper/SchBasePointMapper.xml @@ -91,9 +91,19 @@ + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/impl/SchBasePointServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/impl/SchBasePointServiceImpl.java index e6fda177..a1740613 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/impl/SchBasePointServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/impl/SchBasePointServiceImpl.java @@ -148,4 +148,18 @@ public class SchBasePointServiceImpl extends ServiceImpl @@ -13,5 +14,7 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface ISchProcessRouteService extends IService { - SchProcessRoute findByMaterialId(String materialId,String regionCode); + SchProcessRoute findByMaterialId(String ruleCode); + + FlowElement checkWorkprodure(String workprodureCode,String ruleCode); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/impl/SchProcessRouteServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/impl/SchProcessRouteServiceImpl.java index 52464bd3..99d51dc5 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/impl/SchProcessRouteServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/impl/SchProcessRouteServiceImpl.java @@ -2,14 +2,19 @@ package org.nl.wms.scheduler_manage.service.scheduler.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.apache.commons.lang3.StringUtils; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint; +import org.nl.wms.scheduler_manage.service.scheduler.SchedulerService; import org.nl.wms.scheduler_manage.service.scheduler.dao.SchProcessRoute; import org.nl.wms.scheduler_manage.service.scheduler.dao.mapper.SchProcessRouteMapper; import org.nl.wms.scheduler_manage.service.scheduler.ISchProcessRouteService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.nl.wms.scheduler_manage.service.scheduler.labelConverter.impl.FlowElement; import org.nl.wms.system_manage.service.param.ISysParamService; import org.nl.wms.system_manage.service.param.dao.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; /** *

@@ -23,18 +28,26 @@ import org.springframework.stereotype.Service; public class SchProcessRouteServiceImpl extends ServiceImpl implements ISchProcessRouteService { @Autowired - ISysParamService iSysParamService; + private ISysParamService iSysParamService; + @Autowired + private SchedulerService schedulerService; @Override - public SchProcessRoute findByMaterialId(String materialId, String regionCode) { + public SchProcessRoute findByMaterialId(String ruleCode) { Param one = iSysParamService.getOne(new QueryWrapper().eq("code", "process_route")); String value = one.getValue(); if (value.equals("1")){ - return this.getOne(new QueryWrapper().eq("rule_code",regionCode)); + return this.getOne(new QueryWrapper().eq("rule_code",ruleCode)); }else { - if (StringUtils.isNotEmpty(materialId)){ - return this.baseMapper.findByMaterialId(materialId); - } + return this.baseMapper.findByMaterialId(ruleCode); + } + } + + @Override + public FlowElement checkWorkprodure(String workprodureCode,String ruleCode) { + SchProcessRoute processRoute = this.findByMaterialId(ruleCode); + if (processRoute != null){ + return schedulerService.currentFlow(processRoute.getProcess_id(), workprodureCode); } return null; } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/labelConverter/impl/ParamConverter.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/labelConverter/impl/ParamConverter.java index 2f2c7e8b..4ea5da71 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/labelConverter/impl/ParamConverter.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/labelConverter/impl/ParamConverter.java @@ -30,7 +30,7 @@ public class ParamConverter implements BaseConverter { break; } if (XMLStreamConstants.START_ELEMENT == xtr.next()){ - element.getItem().put(xtr.getAttributeValue(null,"id"),xtr.getAttributeValue(null,"value")); + element.getItem().put(xtr.getAttributeValue(null,"spec"),xtr.getAttributeValue(null,"value")); i++; } } diff --git a/mes/hd/nladmin-system/src/main/resources/scheduler.xml b/mes/hd/nladmin-system/src/main/resources/scheduler.xml index 1eee0673..87f97807 100644 --- a/mes/hd/nladmin-system/src/main/resources/scheduler.xml +++ b/mes/hd/nladmin-system/src/main/resources/scheduler.xml @@ -4,11 +4,11 @@ - - + + - +