diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/common/enums/AcsTaskEnum.java b/mes/hd/nladmin-system/src/main/java/org/nl/common/enums/AcsTaskEnum.java index f1027a42..ece8922b 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/common/enums/AcsTaskEnum.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/common/enums/AcsTaskEnum.java @@ -24,10 +24,10 @@ public enum AcsTaskEnum { TASK_PRODUCT_MAC("1","专机-专机满料任务"), //3个点,任务编号,缓存线空载具列表 TASK_PRODUCT_CACHE("2","专机-缓存线满料任务"), - //3个点,任务编号,缓存线满料载具列表 - TASK_CACHELINE_OUT("3","缓存线-专机出库任务"), //专机到深坑任务:深坑业务单独处理 - TASK_PRODUCT_WASH("4","专机-深坑任务"), + TASK_PRODUCT_WASH("3","专机-深坑任务"), + //3个点,任务编号,缓存线满料载具列表 + TASK_CACHELINE_OUT("4","缓存线-专机出库任务"), TASK_PLOTTER_MAC("5","刻字机-满料入库"), TASK_PLOTTER_EMPTY("6","刻字机-呼叫空框"), TASK_WARP_MAC("7","包装机-叫料出库"), @@ -56,8 +56,8 @@ public enum AcsTaskEnum { ACS_TASK_TYPE_NOBLE_DOUBLE_TASK("1","诺宝双工任务"), ACS_TASK_TYPE_NOBLE_SINGLE_TASK("2","诺宝单工任务"), - ACS_TASK_TYPE_NOBLE_SINGLE_ENTRY_TASK("3","诺宝单入-单任务"), - ACS_TASK_TYPE_NOBLE_DOUBLE_ENTRY_TASK("4","诺宝双入-双任务"), + ACS_TASK_TYPE_NOBLE_DOUBLE_ENTRY_TASK("3","诺宝双入-双任务"), + ACS_TASK_TYPE_NOBLE_SINGLE_ENTRY_TASK("4","诺宝单入-单任务"), ACS_TASK_TYPE_NOBLE_POINT_POINT_TASK("5","诺宝点对点任务"), ACS_TASK_TYPE_WEIGHING_TASK_OF_PS20("6","PS20称重任务(刻字-包装)"), ACS_TASK_TYPE_NON_WEIGHING_TASK_OF_PS20("7","PS20不称重任务(刻字-包装)"), diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/common/enums/StatusEnum.java b/mes/hd/nladmin-system/src/main/java/org/nl/common/enums/StatusEnum.java index 69e439a3..ca174ce5 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/common/enums/StatusEnum.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/common/enums/StatusEnum.java @@ -15,65 +15,66 @@ import java.util.Arrays; @AllArgsConstructor public enum StatusEnum { //枚举状态 - STATUS_TRUE("1","是",""), - STATUS_FLASE("0","否",""), + STATUS_TRUE("1","是","",null), + STATUS_FLASE("0","否","",null), //锁状态 - LOCK_OFF("0","否",""), - LOCK_ON("1","是",""), + LOCK_OFF("0","否","",null), + LOCK_ON("1","是","",null), //缓存线点位异常情况 - CACHE_POINT_NORMAL("0","正常",""), - CACHE_POINT_ERROR("1","异常盘点",""), - CACHE_POINT_SCAN_ERROR("2","异常扫码",""), + CACHE_POINT_NORMAL("0","正常","",null), + CACHE_POINT_ERROR("1","异常盘点","",null), + CACHE_POINT_SCAN_ERROR("2","异常扫码","",null), //缓存线载具状态 1-空位、2-绿色空箱、3-黄色满箱、4-红色异常、5不显示 - CACHE_VEL_NORMAL("0","正常",""), - CACHE_VEL_NULL("1","空位",""), - CACHE_VEL_EMT("2","绿色空箱",""), - CACHE_VEL_FULL("3","黄色满箱",""), - CACHE_VEL_ERR("4","红色异常",""), - CACHE_VEL_DIS("5","不显示",""), + CACHE_VEL_NORMAL("0","正常","",null), + CACHE_VEL_NULL("1","空位","",null), + CACHE_VEL_EMT("2","绿色空箱","",null), + CACHE_VEL_FULL("3","黄色满箱","",null), + CACHE_VEL_ERR("4","红色异常","",null), + CACHE_VEL_DIS("5","不显示","",null), //任务状态 - TASK_CREATE("1","生成",""), - TASK_START_ERROR("2","点位确认异常",""), + TASK_CREATE("1","生成","",1), + TASK_START_ERROR("2","点位确认异常","",1<<2), //TASK_END_P("3","确定终点",""), - TASK_START_END_P("4","起点和终点确认",""), - TASK_PUBLISH("5","下发",""), - TASK_RUNNING("6","运行",""), - TASK_FINISH("7","完成",""), - TASK_CANNEL("8","取消",""), + TASK_START_END_P("4","起点和终点确认","",1<<3), + TASK_PUBLISH("5","下发","",1<<4), + TASK_RUNNING("6","运行","",1<<5), + TASK_FINISH("7","完成","",1<<6), + TASK_CANNEL("8","取消","",1<<7), //点位表位置状态 - POINT_LOCATION_EMP("1","空料位",""), - POINT_LOCATION_REC("2","接料位",""), - POINT_LOCATION_FULL("3","满料位",""), - POINT_LOCATION_IN("4","上料位",""), + POINT_LOCATION_EMP("1","空料位","",null), + POINT_LOCATION_REC("2","接料位","",null), + POINT_LOCATION_FULL("3","满料位","",null), + POINT_LOCATION_IN("4","上料位","",null), //出入料箱 - IN_VEHICLE("1","入箱",""), - OUT_VEHICLE("2","出箱",""), + IN_VEHICLE("1","入箱","",null), + OUT_VEHICLE("2","出箱","",null), //出入料箱 - PAUSE_CACHELINE("1","暂停",""), - START_CACHELINE("2","启动",""), + PAUSE_CACHELINE("1","暂停","",null), + START_CACHELINE("2","启动","",null), //设备状态枚举1-关机、2-开机、3-生产中、4-待机、5-故障 - DEVICE_STATUS_OFF("1","关机",""), - DEVICE_STATUS_ON("2","开机",""), - DEVICE_STATUS_RUNING("3","生产中",""), - DEVICE_STATUS_WAITING("4","待机",""), - DEVICE_STATUS_ERROR("5","故障",""), + DEVICE_STATUS_OFF("1","关机","",null), + DEVICE_STATUS_ON("2","开机","",null), + DEVICE_STATUS_RUNING("3","生产中","",null), + DEVICE_STATUS_WAITING("4","待机","",null), + DEVICE_STATUS_ERROR("5","故障","",null), // 点位表点位状态 - POINT_STATUS_EMPTY("1", "空位", ""), - POINT_STATUS_FULL("2", "有料", ""), - POINT_STATUS_EMPTY_VEHICLE("3", "空载具", ""), + POINT_STATUS_EMPTY("1", "空位", "",null), + POINT_STATUS_FULL("2", "有料", "",null), + POINT_STATUS_EMPTY_VEHICLE("3", "空载具", "",null), // 出入库分配明细状态 - IOS_NOCREATE("00","未生成",""), - IOS_CREATE("01","生成",""), - IOS_RUNNING("02","执行中",""), - IOS_FINISH("99","完成",""), + IOS_NOCREATE("00","未生成","",null), + IOS_CREATE("01","生成","",null), + IOS_RUNNING("02","执行中","",null), + IOS_FINISH("99","完成","",null), ; private String code; private String desc; private String ext; + private Integer bit; } 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 8145063d..07476391 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 @@ -9,6 +9,7 @@ import org.apache.commons.lang3.StringUtils; import lombok.extern.slf4j.Slf4j; import org.nl.common.enums.AcsTaskEnum; import org.nl.common.enums.StatusEnum; +import org.nl.common.enums.WorkerOrderEnum; import org.nl.common.utils.IdUtil; import org.nl.common.utils.MapOf; import org.nl.common.utils.OptionRecord; @@ -22,6 +23,8 @@ import org.nl.wms.product_manage.sch.manage.AbstractAcsTask; import org.nl.wms.product_manage.sch.service.TaskService; import org.nl.wms.product_manage.sch.service.dto.TaskDto; import org.nl.wms.product_manage.sch.tasks.WashMachineryTask; +import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService; +import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.http.HttpStatus; @@ -47,6 +50,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ private TaskService taskService; @Autowired private CacheLineHandService cacheLineHandService; + @Autowired + private IPdmProduceWorkorderService workorderService; @@ -70,40 +75,34 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ return result; } - public static void main(String[] args) { - ArrayList list = new ArrayList<>(); - list.forEach(a->{ - a.getClass(); - }); - } - /** - * 更新缓存线的点位实时任务信息 - * ACS给WMS发送缓存线的实时任务编号 - * @param jsonObject position_code:缓存线点位编码 task_code:任务编号 - */ - @Override - public JSONObject receiveTaskIdToCacheLine(JSONObject jsonObject) { - JSONObject result = new JSONObject(); - HashMap json = new HashMap<>(2); - try { - String task_code = jsonObject.getString("task_code"); - String positionCode = jsonObject.getString("position_code"); - //缓存线位置表 - WQLObject positionTab = WQLObject.getWQLObject("sch_cacheline_position"); - json.put("position_code", positionCode); - json.put("task_code", task_code); - //更新缓存线的点位实时任务信息 - positionTab.update(json); - } - catch(Exception e) { - result.put("status", 400); - result.put("message", e.getMessage()); - } - result.put("status", HttpStatus.OK.value()); - result.put("message", "设备状态反馈成功"); - return result; - } + /** + * 更新缓存线的点位实时任务信息 + * ACS给WMS发送缓存线的实时任务编号 + * @param jsonObject position_code:缓存线点位编码 task_code:任务编号 + */ + @Override + public JSONObject receiveTaskIdToCacheLine(JSONObject jsonObject) { + JSONObject result = new JSONObject(); + HashMap json = new HashMap<>(2); + try { + String task_code = jsonObject.getString("task_code"); + String positionCode = jsonObject.getString("position_code"); + //缓存线位置表 + WQLObject positionTab = WQLObject.getWQLObject("sch_cacheline_position"); + json.put("position_code", positionCode); + json.put("task_code", task_code); + //更新缓存线的点位实时任务信息 + positionTab.update(json); + } + catch(Exception e) { + result.put("status", 400); + result.put("message", e.getMessage()); + } + result.put("status", HttpStatus.OK.value()); + result.put("message", "设备状态反馈成功"); + return result; + } /** * task_uuid:任务标识 @@ -138,9 +137,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ } // 任务处理类 try { - Class clz = Class.forName(processing_class); - Object obj = clz.newInstance(); - // 调用每个任务类的forceFinishInst()强制结束方法 + Object obj = SpringContextHolder.getBean(Class.forName(processing_class)); Method m = obj.getClass().getDeclaredMethod("updateTaskStatus", JSONObject.class, String.class); m.invoke(obj, row, status); } catch (InvocationTargetException e) { @@ -203,17 +200,19 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ public Map orderStatus(JSONObject orderJson) { JSONObject result = new JSONObject(); try { - JSONObject map = new JSONObject(); - map.put("workorder_id", orderJson.getString("workorder_id")); - map.put("workorder_status", orderJson.getString("status")); - map.put("update_id", "1"); - map.put("real_qty", orderJson.getString("real_qty")); - map.put("device_code", ""); - map.put("update_name", "acs"); - map.put("update_time", DateUtil.now()); - map.put("realproduceend_date", DateUtil.now()); - WQLObject.getWQLObject("PDM_produce_workOrder").update(map, "workorder_id = '" + orderJson.getString("workorder_id") + "'"); - //OptionRecord.record(OptionRecord.OptionEnum.UPDATEOP, OptionRecord.Buss.WORKORDER,orderJson.getString("workorder_id"),MapOf.of("workorder_status", orderJson.getString("status"))); + PdmProduceWorkorder workorder = new PdmProduceWorkorder(); + workorder.setWorkorder_id(orderJson.getString("workorder_id")); + workorder.setWorkorder_status(orderJson.getString("status")); + if (orderJson.getBigDecimal("real_qty") != null){ + workorder.setDq_real_qty(orderJson.getBigDecimal("real_qty")); + } + if (orderJson.getString("status").equals(WorkerOrderEnum.PRODUCTING.getCode())){ + workorder.setRealproducestart_date(DateUtil.now()); + } + if (orderJson.getString("status").equals(WorkerOrderEnum.COMPLETE.getCode())){ + workorder.setRealproduceend_date(DateUtil.now()); + } + workorderService.updateById(workorder); } catch (Exception e){ result.put("status", 400); result.put("message", e.getMessage()); 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 b91a647c..c80ef419 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 @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.nl.common.enums.AcsTaskEnum; import org.nl.common.enums.StatusEnum; import org.nl.common.utils.MapOf; import org.nl.modules.common.exception.BadRequestException; @@ -28,6 +29,7 @@ import org.springframework.util.CollectionUtils; import java.util.Date; import java.util.List; import java.util.Map; +import java.util.function.Predicate; import java.util.stream.Collectors; /* @@ -51,8 +53,14 @@ 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"; + int i = a.lastIndexOf("_"); + System.out.println(a.substring(0, i)); + } //满料请求点位确认 //1.判断当前设备路由表是否配置下一道路由设备,如果不是则说明直接到清洗 @@ -63,40 +71,64 @@ public class AgvInstService { public void fullMaster(JSONObject task){ String quantity = task.getString("material_qty"); //获取当前生产工序下一道工序 - Map workprodure = basePointService.findDeviceWorkprodure(task.getString("point_code")); - FlowElement next = getFlowElement(task,workprodure).next(); - String nextPoint = null; + Map workprodure = basePointService.findDeviceWorkprodure(task.getString("point_code1")); + FlowElement currentFlow = getFlowElement(task, workprodure); + FlowElement next = currentFlow.next(); + Map query = MapOf.of("workprocedure_id", basePointService.getWorkprodureByCode(next.getId()).get("workprocedure_id") + , "qty", quantity,"spec",workprodure.get("spec")); //判断缓存线是不是去深坑清洗:深坑区域15个点:判断空的物料坑位: - String cacheVehile = ""; - Map query = MapOf.of("workprocedure_id", workprodure.get("workprocedure_id") - , "qty", quantity); if (next.getName().equals("深坑清洗")){ query.put("material_id",task.getString("material_id")); +// query.put("qty",quantity) 深坑物料需要转重量 + task.put("task_type",AcsTaskEnum.TASK_PRODUCT_WASH.getCode()); } - List> list = deviceService.workproceduceDevices(query); - + List> collect = deviceService.workproceduceDevices(query); + List> list = collect.stream().filter(stringStringMap -> stringStringMap.get("tasks") == null || stringStringMap.get("materials").contains(task.getString("material_id"))).collect(Collectors.toList()); + task.put("acs_task_type",AcsTaskEnum.ACS_TASK_TYPE_NOBLE_SINGLE_TASK.getCode()); + task.put("is_send","1"); + String nextPoint = null; + String cacheVehile = ""; if (!CollectionUtils.isEmpty(list)){ nextPoint = list.get(0).get("point_code"); }else { - if (next.getParams().get("cacheLine") == null){ + if (currentFlow.getParams().get("cacheLine") == null){ throw new BadRequestException("当前任务下一道工序无可用设备"); } - nextPoint = next.getParams().get("cacheLine"); + nextPoint = getParamByXml(workprodure, currentFlow, nextPoint); + task.put("task_type",AcsTaskEnum.TASK_PRODUCT_CACHE.getCode()); + task.put("acs_task_type",AcsTaskEnum.ACS_TASK_TYPE_NOBLE_SINGLE_ENTRY_TASK.getCode()); cacheVehile = getCacheVehile(nextPoint, null); } - if (StringUtils.isBlank(nextPoint)){ - throw new BadRequestException("逻辑非配错误,请检查代码"); + + 结果校验:{ + if (StringUtils.isBlank(nextPoint)) { + throw new BadRequestException("逻辑非配错误,请检查代码"); + } } - basePointService.update(new UpdateWrapper() - .set("lock_type",StatusEnum.LOCK_ON.getCode()).set("task_id",task.getString("task_id")).eq("point_code",nextPoint)); +// basePointService.update(new UpdateWrapper() +// .set("lock_type",StatusEnum.LOCK_ON.getCode()).set("task_id",task.getString("task_id")).eq("point_code",nextPoint)); SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class); - schBaseTask.setVehicle_code(cacheVehile); + schBaseTask.setBarcodeArr(cacheVehile); schBaseTask.setPoint_code2(nextPoint); schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode()); schBaseTask.setUpdate_time(new Date()); taskService.updateById(schBaseTask); - }; + } + + private String getParamByXml(Map workprodure, FlowElement next, String nextPoint) { + Object cacheLine = next.getParams().get("cacheLine"); + if (cacheLine instanceof String){ + nextPoint = (String) cacheLine; + } + if (cacheLine instanceof Map){ + //缓存线根据系列区分 + nextPoint = ((Map) cacheLine).get(workprodure.get("spec")); + } + return nextPoint; + } + + ; public FlowElement getFlowElement(JSONObject task,Map workprodure){ if (CollectionUtils.isEmpty(workprodure)){ @@ -109,7 +141,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()); } @@ -126,29 +158,22 @@ public class AgvInstService { //3.agv根据对应载具列表行进扫码匹配:匹配到对应物料则创建点对点任务 public void empMatter(JSONObject task){ //参数 - String targetDevice = task.getString("next_point_code"); - 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); + schBaseTask.setBarcodeArr(cacheVehile); schBaseTask.setPoint_code1(startPoint); + schBaseTask.setIs_send(true); + schBaseTask.setAcs_task_type(AcsTaskEnum.ACS_TASK_TYPE_NOBLE_SINGLE_ENTRY_TASK.getCode()); schBaseTask.setPoint_code3(startPoint); schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode()); schBaseTask.setUpdate_time(new Date()); @@ -157,12 +182,14 @@ public class AgvInstService { } public String getCacheVehile(String cacheLine,String materialId){ - int count = taskService.count(new QueryWrapper().eq("point_code2", cacheLine).lt("task_status", StatusEnum.TASK_FINISH.getCode())); - String status = StringUtils.isBlank(materialId) ? StatusEnum.CACHE_VEL_EMT.getCode() : StatusEnum.CACHE_VEL_FULL.getCode(); - List vehicle = cachelineVehicleService.getCachelineVehicle(MapOf.of("vehicle_status", status, "material_id", materialId)); - if (vehicle.size()>0){ - if (vehicle.size()>count){ - return vehicle.stream().map(SchCachelineVehicle::getVehicle_code).collect(Collectors.joining(",")); + if (StringUtils.isNotEmpty(cacheLine)){ + int count = taskService.count(new QueryWrapper().eq("point_code2", cacheLine).lt("task_status", StatusEnum.TASK_FINISH.getCode())); + String status = StringUtils.isBlank(materialId) ? StatusEnum.CACHE_VEL_EMT.getCode() : StatusEnum.CACHE_VEL_FULL.getCode(); + List vehicle = cachelineVehicleService.getCachelineVehicle(MapOf.of("vehicle_status", status, "material_id", materialId)); + if (vehicle.size()>0){ + if (vehicle.size()>count){ + return vehicle.stream().map(SchCachelineVehicle::getVehicle_code).collect(Collectors.joining(",")); + } } } return ""; diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/master/service/classstandard/impl/MdPbClassstandardServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/master/service/classstandard/impl/MdPbClassstandardServiceImpl.java index 23f29f8a..75142505 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/master/service/classstandard/impl/MdPbClassstandardServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/master/service/classstandard/impl/MdPbClassstandardServiceImpl.java @@ -22,7 +22,10 @@ import org.nl.wms.masterdata_manage.master.service.classstandard.IMdPbClassstand import org.nl.wms.masterdata_manage.master.service.classstandard.dao.MdPbClassstandard; import org.nl.wms.masterdata_manage.master.service.classstandard.dto.MdPbClassstandardTree; import org.nl.wms.masterdata_manage.service.master.dao.mapper.MdPbClassstandardMapper; +import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService; +import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase; import org.nl.wms.masterdata_manage.备份master.service.dto.ClassstandardDto; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -41,7 +44,8 @@ import java.util.stream.Collectors; @Service public class MdPbClassstandardServiceImpl extends ServiceImpl implements IMdPbClassstandardService { - + @Autowired + private IMdMeMaterialbaseService materialbaseService; @Override public List dropdownList(Map whereJson) { Assert.notNull(whereJson,"参数不能为空"); @@ -110,9 +114,12 @@ public class MdPbClassstandardServiceImpl extends ServiceImpl queryClassById(Map whereJson) { - QueryWrapper query = new QueryWrapper<>(); query.eq("1","1"); + if (ObjectUtil.isNotEmpty(whereJson.get("material_id"))) { + MdMeMaterialbase one = materialbaseService.getOne(new QueryWrapper().eq("material_id", whereJson.get("material_id"))); + whereJson.put("class_idStr",one.getMaterial_type_id()); + } if (ObjectUtil.isNotEmpty(whereJson.get("whereStr"))) { query.last((String) whereJson.get("whereStr")); } @@ -120,8 +127,9 @@ public class MdPbClassstandardServiceImpl extends ServiceImpl 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/ReportRecordStatus.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/ReportRecordStatus.java deleted file mode 100644 index b201d2f7..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/ReportRecordStatus.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.nl.wms.product_manage; - -import lombok.AllArgsConstructor; -import lombok.Getter; - -/* - * @author ZZQ - * @Date 2023/5/17 12:26 - */ -@AllArgsConstructor -@Getter -public enum ReportRecordStatus { - - CREATE("1","生成"), - REPORT("2","报工"), - FINISH("3","审核完成"); - - private String code; - private String desc; - -} 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..b5cf33bd 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 @@ -1,6 +1,7 @@ package org.nl.wms.product_manage.controller.workorder; +import cn.dev33.satoken.annotation.SaIgnore; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -15,6 +16,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; @@ -92,9 +94,6 @@ public class PdmProduceWorkorderController { if (ids != null && ids.length > 0){ iPdmProduceWorkorderService.update(new UpdateWrapper() .set("is_delete",true) - .set("update_id", SecurityUtils.getCurrentUserId()) - .set("update_name",SecurityUtils.getCurrentNickName()) - .set("update_time",new Date()) .in("workorder_id", Arrays.asList(ids))); } return new ResponseEntity<>(HttpStatus.OK); @@ -146,5 +145,16 @@ public class PdmProduceWorkorderController { } + @PostMapping("/reportQuery") + @Log("报工数修改") + @ApiOperation("报工数修改") + @SaIgnore + public ResponseEntity reportQuery(@RequestBody ReportQuery param) { + return new ResponseEntity<>(TableDataInfo.build(iPdmProduceWorkorderService.reportQuery(param)),HttpStatus.OK); + } + + + + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/workorder/ProduceshiftorderController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/workorder/ProduceshiftorderController.java index cb6bbbeb..553634df 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/workorder/ProduceshiftorderController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/workorder/ProduceshiftorderController.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; +import org.nl.common.TableDataInfo; import org.nl.common.anno.Log; import lombok.extern.slf4j.Slf4j; import org.nl.common.utils.api.ResultCode; @@ -72,6 +73,21 @@ public class ProduceshiftorderController{ return new ResponseEntity<>(produceshiftorderService.getOrderList(param, page), HttpStatus.OK); } + @PostMapping("/getOrderList2") + @Log("一体机-工单作业清单") + @ApiOperation("工单作业清单") + public ResponseEntity getOrderList2(@RequestBody Map param, Pageable page) { + log.info("海亮一体机服务 [工单管理列表] 接口被请求, 请求参数-{}", param); + if(null == param) { + throw new BizCoreException(ResultCode.VALIDATE_FAILED); + } + /** @see org.nl.common.enums.WorkerOrderEnum */ + param.put("workorder_status","'2','3','4'"); + List list = iPdmProduceWorkorderService.getOrderList(param, page); + return new ResponseEntity<>(TableDataInfo.build(list), HttpStatus.OK); + } + + @PostMapping("/openStart") @Log("看板开工") @ApiOperation("看板开工") diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/manage/AbstractAcsTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/manage/AbstractAcsTask.java index 5544c51f..ce1d8d77 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/manage/AbstractAcsTask.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/manage/AbstractAcsTask.java @@ -4,6 +4,10 @@ package org.nl.wms.product_manage.sch.manage; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; +import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; + +import java.util.ArrayList; +import java.util.List; /** @@ -25,15 +29,15 @@ public abstract class AbstractAcsTask { public abstract String createTask(JSONObject param); - public abstract void cancel(String task_id); - public abstract void pointConfirm(JSONObject param); public void notifyAcs(JSONArray param){}; - + public List schedulerTask(List tasks){ + return new ArrayList<>(); + }; } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/rest/TaskController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/rest/TaskController.java index e988fe7b..0450d061 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/rest/TaskController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/rest/TaskController.java @@ -1,20 +1,20 @@ - -package org.nl.wms.product_manage.sch.rest; - +package org.nl.wms.scheduler_manage.controller.task; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; - import lombok.RequiredArgsConstructor; +import lombok.RequiredArgsConstructor; import org.nl.common.anno.Log; import lombok.extern.slf4j.Slf4j; +import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService; import org.nl.wms.system_manage.service.dict.ISysDictService; import org.nl.wms.system_manage.service.dict.dao.Dict; import org.nl.wms.product_manage.sch.manage.FinishTypeEnum; import org.nl.wms.product_manage.sch.service.TaskService; import org.nl.wms.product_manage.sch.service.dto.TaskDto; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -22,7 +22,6 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.Map; - /** * @author ldjun * @date 2021-08-19 @@ -36,6 +35,8 @@ public class TaskController { private final TaskService taskService; private final ISysDictService dictService; + @Autowired + private ISchBaseTaskService baseTaskService; @GetMapping @Log("查询任务") @@ -113,7 +114,8 @@ public class TaskController { @ApiOperation("任务操作") //@PreAuthorize("@el.check('task:edit')") public ResponseEntity update(@RequestBody Map map) { - taskService.operation(map); + baseTaskService.operation(map); return new ResponseEntity<>(HttpStatus.NO_CONTENT); } } + 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 73754f30..d213bd48 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 @@ -207,6 +207,14 @@ public class TaskServiceImpl implements TaskService { cancel.add(res2); acsToWmsService.receiveTaskStatusAcs(JSON.toJSONString(cancel)); break; + case "delete": + JSONArray delete = new JSONArray(); + JSONObject res3 = new JSONObject(); + res3.put("task_id", task_id); + res3.put("status", AcsTaskEnum.STATUS_CANNEL.getCode()); + delete.add(res3); + acsToWmsService.receiveTaskStatusAcs(JSON.toJSONString(delete)); + break; default: break; } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/TaskScheduleService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/TaskScheduleService.java index 4d7cb4d6..f0d37294 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/TaskScheduleService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/TaskScheduleService.java @@ -2,22 +2,33 @@ package org.nl.wms.product_manage.sch.tasks; import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; import org.nl.common.enums.AcsTaskEnum; import org.nl.common.enums.StatusEnum; +import org.nl.common.utils.BaseCode; import org.nl.common.utils.IdUtil; import org.nl.common.utils.MapOf; import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.common.utils.StringUtils; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.modules.wql.util.SpringContextHolder; import org.nl.wms.ext.acs.service.WmsToAcsService; +import org.nl.wms.product_manage.sch.manage.AbstractAcsTask; +import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService; +import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; +import org.slf4j.MDC; import org.springframework.http.HttpStatus; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; import java.lang.reflect.Method; import java.util.*; @@ -34,118 +45,67 @@ import java.util.stream.Collectors; public class TaskScheduleService { private ReentrantLock lock = new ReentrantLock(); - private final WmsToAcsService wmsToAcsService; - @Scheduled(cron = "0/30 * * * * ?") + private final WmsToAcsService wmsToAcsService; + private final ISchBaseTaskService taskService; + + + public void run(){ + MDC.put("requestMethod","TaskScheduleService#taskPublish"); + MDC.put("requestIp", "127.0.0.1"); + MDC.put("traceId", BaseCode.intToChars(IdUtil.getLongId())); + MDC.put("requestTime", DateUtil.now()); + this.taskPublish(); + } + @SneakyThrows +// @Scheduled(cron = "0/30 * * * * ?") + @Transactional(rollbackFor = Exception.class) public void taskPublish(){ boolean islock = lock.tryLock(); try { if (islock){ - WQLObject taskTable = WQLObject.getWQLObject("sch_base_task"); //查询所有自动下发的任务 - JSONArray all = taskTable.query("is_auto_issue = '1' and task_status < '" + StatusEnum.TASK_PUBLISH.getCode() + "'").getResultJSONArray(0); + List pointConfirmList = taskService.list(new QueryWrapper().eq("is_auto_issue", "1").eq("is_delete",false).lt("task_status", StatusEnum.TASK_START_END_P.getCode())); //进行起点终点确认: - if (all.size() == 0){ - return; - } - log.info("TaskScheduleService#taskPublish all_task:{}",all.size()); - Iterator iterator = all.iterator(); - while (iterator.hasNext()){ - JSONObject task = (JSONObject)iterator.next(); - if (task.getString("task_status").equals(StatusEnum.TASK_START_END_P.getCode())){ - continue; - } - try { - Class clz = Class.forName(task.getString("handle_class")); - Object obj = clz.newInstance(); - // 调用每个任务类的forceFinishInst()强制结束方法 - Method m = obj.getClass().getDeclaredMethod("pointConfirm", JSONObject.class, String.class); - m.invoke(obj,task); - task.put("task_type", StatusEnum.TASK_START_END_P.getCode()); - }catch (Exception ex){ - task.put("task_type", StatusEnum.TASK_START_ERROR.getCode()); - task.put("remark",ex.getMessage()); - task.put("update_time",DateUtil.now()); - taskTable.update(task); - iterator.remove(); + if (pointConfirmList.size() > 0){ + log.info("定时调度——1111——确认点位:{}",pointConfirmList.stream().map(SchBaseTask::getTask_id).collect(Collectors.joining(","))); + Iterator iterator = pointConfirmList.iterator(); + while (iterator.hasNext()){ + SchBaseTask task =iterator.next(); + try { + AbstractAcsTask taskHandler = (AbstractAcsTask)SpringContextHolder.getBean(Class.forName(task.getHandle_class())); + taskHandler.pointConfirm((JSONObject) JSONObject.toJSON(task)); + task.setTask_type(StatusEnum.TASK_START_END_P.getCode()); + }catch (Exception ex){ + task.setTask_type(StatusEnum.TASK_START_ERROR.getCode()); + task.setRemark(ex.getMessage()); + task.setUpdate_time(new Date()); + taskService.updateById(task); + } } } + List all = taskService.list(new QueryWrapper().eq("is_auto_issue", "1").eq("is_delete",false).eq("task_status", StatusEnum.TASK_START_END_P.getCode())); //分区域:不同区域调用不同acs接口 - Map> areaCollent = all.stream().collect(Collectors.groupingBy(o -> ((JSONObject) o).getString("product_area"))); + log.info("定时调度——2222——准备下发任务:{}", JSON.toJSONString(all.stream().map(a->a.getTask_id()+"__"+a.getPoint_code1()+a.getPoint_code2()+a.getPoint_code3()).collect(Collectors.toList()))); + Map> areaCollent = all.stream().collect(Collectors.groupingBy(SchBaseTask::getProduct_area)); for (String area : areaCollent.keySet()) { - List array = areaCollent.get(area); - if (array.size()>0){ - String pointCollect = array.stream().map(o -> ((JSONObject) o).getString("point_code1") + "','" + ((JSONObject) o).getString("point_code2")).collect(Collectors.joining("','")); - JSONArray needMergeCollect = WQL.getWO("sch_point").addParamMap(MapOf.of("flag", "5", "point_codes", "'" + pointCollect + "'")).process().getResultJSONArray(0); - //区域编号对应point_code - Map> pointRegionCollent = needMergeCollect.stream().collect(Collectors.groupingBy(o -> ((JSONObject) o).getString("point_code"))); - Set mergePointCollent = needMergeCollect.stream().map(item -> ((JSONObject) item).getString("point_code")).collect(Collectors.toSet()); - //合并下发的任务 - List notMerge = new ArrayList<>();//单独下发的任务 - List Merge = new ArrayList<>();//单独下发的任务 - List waitingTask = new ArrayList<>();//可合并,但是只有单条任务 - Map taskGroupMap = array.stream().filter(a-> StringUtils.isNotEmpty(((JSONObject)a).getString("task_group_id"))).collect(HashMap::new, (k, v) -> k.put(((JSONObject)v).getString("task_id"), ((JSONObject)v).getString("task_group_id")), HashMap::putAll); - - for (Object o : array) { - String taskGroupId = IdUtil.getStringId(); - JSONObject task = (JSONObject) o; - String taskId = task.getString("task_id"); - task.put("is_send","1"); - if (taskGroupMap.get(taskId) != null){ - task.put("task_group_id",taskGroupMap.get(taskId)); - task.put("is_send","0"); - Merge.add(task); - continue; - } - String start = task.getString("point_code1"); - String end = task.getString("point_code2"); - taskGroupMap.put(taskId,taskGroupId); - task.put("task_group_id",taskGroupId); - //如果点位不属于查询出来可以合并点位集合:则单独下发集合 - if (!mergePointCollent.contains(start) && !mergePointCollent.contains(end)){ - notMerge.add(task); - continue; - } - //起点点位是否有多个合并任务点,如果没有则判断终点是否有多个合并任务点;都没有则说明当前起点终点对应区域只有一个任务:放入等待下发集合中 - List collect = taskGroupMap.keySet().stream().collect(Collectors.toList()); - collect.add(taskId); - String mergeTargetId = getMergePoint(pointRegionCollent, start,end,array,collect); - if (mergeTargetId == null){ - waitingTask.add(task); - continue; - } - //查询到相同区域可以合并的点位集合 - taskGroupMap.put(mergeTargetId,taskGroupId); - Merge.add(task); - } - //开始下发:处理waitingTask:如果创建时间>2分钟:则改单独下发 - if (waitingTask.size()>0){ - List needPublish = waitingTask.stream().filter(a -> DateUtil.between(new Date(),DateUtil.parseDateTime(((JSONObject)a).getString("create_time") ), DateUnit.MINUTE) >2 ).collect(Collectors.toList()); - notMerge.addAll(needPublish); - } - String notMergeID = notMerge.stream().map(a -> ((JSONObject) a).getString("task_id")).collect(Collectors.joining(",")); - String waitingTaskId = waitingTask.stream().map(a -> ((JSONObject) a).getString("task_id")).collect(Collectors.joining(",")); - String MergeId = Merge.stream().map(a -> ((JSONObject) a).getString("task_id")).collect(Collectors.joining(",")); - log.info("TaskScheduleService#taskPublish notMerge:{},waitingTask:{},merge:{}",notMergeID,waitingTaskId,MergeId); - notMerge.forEach(a->{ - ((JSONObject)a).put("acs_task_type", AcsTaskEnum.ACS_TASK_TYPE_NOBLE_SINGLE_TASK.getCode()); - }); - Merge.addAll(notMerge); - JSONArray jsonArray = new JSONArray(Merge); - //批量更新任务状态,is_send,task_group_id - for (Object task : Merge) { - JSONObject task1 = (JSONObject) task; - task1.put("update_name","schedule"); - task1.put("update_time",DateUtil.now()); - taskTable.update(task1,"task_id = '"+task1.getString("task_id")+"'"); - } - //缓存线任务待确认是否生成多个 - Map resp = wmsToAcsService.issueTaskToAcs(jsonArray); -// if (((int)resp.get("status")) == (HttpStatus.BAD_REQUEST.value())){ -// Object errArr = resp.get("errArr"); -// throw new BadRequestException(String.valueOf(resp.get("message"))); -// } + Map> listMap = areaCollent.get(area).stream().collect(Collectors.groupingBy(SchBaseTask::getHandle_class)); + List Merge = new ArrayList<>(); + for (Map.Entry> array : listMap.entrySet()) { + //调用不同实现 + AbstractAcsTask taskHandler = (AbstractAcsTask)SpringContextHolder.getBean(Class.forName(array.getKey())); + Merge.addAll(taskHandler.schedulerTask(array.getValue())); } + JSONArray arr = new JSONArray(); + for (SchBaseTask task : Merge) { + task.setUpdate_name("schedule"); + task.setUpdate_time(new Date()); + task.setTask_status(StatusEnum.TASK_PUBLISH.getCode()); + taskService.updateById(task); + arr.add(JSONObject.toJSON(task)); + } + log.info("定时调度——3333——下发任务:{}", JSON.toJSONString(Merge)); + Map resp = wmsToAcsService.issueTaskToAcs(arr); } } }finally { @@ -156,27 +116,4 @@ public class TaskScheduleService { } - private String getMergePoint(Map> pointRegionCollent, String start,String end,List tasks,List taskIds) { - String findpoint = findpoint(pointRegionCollent, start, tasks, taskIds); - if (findpoint == null){ - findpoint = findpoint(pointRegionCollent, end, tasks, taskIds); - } - return findpoint; - } - - private String findpoint(Map> pointRegionCollent, String start, List tasks, List taskIds) { - List objects = pointRegionCollent.get(start); - JSONObject startPointInfo = (JSONObject) objects.get(0); - String startPointCollent = startPointInfo.getString("pointcollent"); - String[] split = startPointCollent.split(","); - for (String s : split) { - Optional any = tasks.stream().filter(a -> ((JSONObject) a).getString("point_code1").equals(s) && !taskIds.contains(((JSONObject) a).getString("task_id"))).findAny(); - if (any.isPresent()){ - return ((JSONObject)any.get()).getString("task_id"); - } - } - return null; - } - - } 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 fa038379..538b6401 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 @@ -11,7 +11,7 @@ WHERE device.is_delete = '0' - device.workprocedure_id = #{workprocedure_id} + and device.workprocedure_id = #{workprocedure_id} and device.device_code not in ( select o.device_code as device_code @@ -23,16 +23,16 @@ 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 where - sch_base_point.point_type = '4' - and workprocedure_id = #{workprocedure_id} - - and pdm_bi_device.material_id = #{material_id} - + sch_base_point.point_type = '4' and pdm_bi_device.is_used = true and sch_base_point.lock_type = '0' + and workprocedure_id = #{workprocedure_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..f64326d4 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,13 +4,13 @@ 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.data.domain.Pageable; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; -import java.util.HashMap; import java.util.List; import java.util.Map; @@ -90,6 +90,15 @@ public interface IPdmProduceWorkorderService extends IService getOrderList(Map param, Pageable page); /** * 开工操作 * @@ -107,6 +116,9 @@ 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..633c389e 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 reportQuery(ReportQuery query); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/PdmProduceWorkorderrecord.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/PdmProduceWorkorderrecord.java index e6dfd78a..e646f345 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/PdmProduceWorkorderrecord.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/PdmProduceWorkorderrecord.java @@ -139,10 +139,10 @@ public class PdmProduceWorkorderrecord implements Serializable { private String confirm_time; - /** - * 校验状态唯一性 - */ - private String md5; +// /** +// * 校验状态唯一性 +// */ +// private String md5; } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderMapper.java index 794348f7..d3122bc4 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderMapper.java @@ -25,4 +25,6 @@ public interface PdmProduceWorkorderMapper extends BaseMapper event, @Param("workorder_id")String workorder_id); + List orderList(Map qeury); + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderMapper.xml index 56ec0f9e..282e0718 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderMapper.xml @@ -10,7 +10,7 @@ material.material_spec, pro.workprocedure_code, pro.workprocedure_name, - user.person_name + user.person_name as current_produce_person_name FROM PDM_produce_workOrder ShiftOrder left join md_me_materialbase material on material.material_id = ShiftOrder.material_id @@ -21,8 +21,8 @@ and ShiftOrder.workorder_code = #{query.workorder_code} - - and find_in_set(ShiftOrder.workorder_status, #{query.workorder_status}) + + and find_in_set(ShiftOrder.workorder_status, #{query.order_status}) and ShiftOrder.shift_type_scode = #{query.shift_type_scode} @@ -71,6 +71,40 @@ order by record.seq_number + update PDM_produce_workOrder set 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..abc1b051 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 reportQuery(@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..41c4e8a8 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,32 @@ + 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 index d7e4f514..58993dec 100644 --- 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 @@ -18,8 +18,11 @@ public class ReportQuery { private String device_code; private String workorder_code; + private String workorder_id; private String report; private String start_time; private String end_time; + private Boolean is_report =false; + private String report_status; } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dto/WorkorderQuery.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dto/WorkorderQuery.java index 9a15a8b1..019065eb 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dto/WorkorderQuery.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dto/WorkorderQuery.java @@ -19,7 +19,7 @@ public class WorkorderQuery extends BaseQuery { private String workorder_code; private String material; - private String workorder_status; + private String order_status; private String workprocedure_code; private String sale_id; private String shift_type_scode; 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 df9e9713..5372e036 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 @@ -14,6 +14,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import io.jsonwebtoken.lang.Assert; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.NotNull; import org.nl.common.TableDataInfo; @@ -29,7 +30,7 @@ import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService; import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase; import org.nl.wms.mps.service.WorkOrderImportEnum; import org.nl.wms.mps.service.dto.ProduceshiftorderDto; -import org.nl.wms.product_manage.ReportRecordStatus; +import org.nl.wms.product_manage.ReportEnum; 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.workorder.IPdmProduceWorkorderService; @@ -38,10 +39,13 @@ 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; +import org.redisson.misc.Hash; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -63,6 +67,7 @@ import java.util.stream.Collectors; * @since 2023-04-26 */ @Service +@Slf4j public class IPdmProduceWorkorderServiceImpl extends ServiceImpl implements IPdmProduceWorkorderService { @Autowired private IMdPbClassstandardService classstandardService; @@ -86,7 +91,11 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize()); + if (!StringUtils.isEmpty(query.getOrder_status()) && query.getOrder_status().contains("-1")){ + query.setOrder_status(query.getOrder_status().replaceAll("-1","1,2,3,4")); + + } + Page page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize()).setOrderBy("ShiftOrder.workorder_code desc"); List result = pdmProduceWorkorderMapper.pageQuery(query); TableDataInfo build = TableDataInfo.build(result); build.setTotalElements(page.getTotal()); @@ -179,9 +188,9 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl() .set("workorder_status", WorkerOrderEnum.FORCE_COMPLETE.getCode()) - .set("update_id", SecurityUtils.getCurrentUserId()) - .set("update_name", SecurityUtils.getCurrentNickName()) - .set("update_time", new Date()) + .set("confirm_id", SecurityUtils.getCurrentUserId()) + .set("confirm_name", SecurityUtils.getCurrentNickName()) + .set("confirm_time", new Date()) .in("workorder_id", workorder_id)); JSONArray array = new JSONArray(); JSONObject map = new JSONObject(); @@ -190,7 +199,7 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl result = wmsToAcsService.orderStatusUpdate(array); if (!HttpStatus.OK.equals(result.get("status"))) { - throw new BadRequestException((String) result.get("message")); + log.error((String) result.get("message")); } this.recordWorkOrder(OptionRecord.OptionEnum.UPDATE, workorder_id); } @@ -509,7 +518,7 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl() .eq("device_code", param.getString("device_code")) - .in("workorder_status", "2", "3", "4") + .in("workorder_status", "3", "4") .ne("workorder_id", param.getString("workorder_id"))); if (ObjectUtil.isNotEmpty(result)) { throw new BadRequestException("已有工单选择该设备开工,请更换开工设备!"); @@ -519,18 +528,38 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl resp = wmsToAcsService.order(array); + PdmProduceWorkorder workOrder = this.getOne(new QueryWrapper().eq("workorder_id", param.getString("workorder_id"))); workOrder.setWorkorder_status(WorkerOrderEnum.PRODUCTING.getCode()); - if (((int) resp.get("status")) == (HttpStatus.BAD_REQUEST.value())) { - throw new BadRequestException(String.valueOf(resp.get("message"))); - } + workOrder.setRealproducestart_date(DateUtil.now()); + workOrder.setReal_qty(null); this.update(workOrder, new QueryWrapper().eq("workorder_id", param.getString("workorder_id"))); - this.recordWorkOrder(OptionRecord.OptionEnum.UPDATE, result.getWorkorder_id()); + PdmProduceWorkorderrecord workorderrecord = packageRecordForm(workOrder); + reportRecordService.save(workorderrecord); + + Map resp = wmsToAcsService.order(array); + if (HttpStatus.BAD_REQUEST.equals(resp.get("status"))) { + throw new BadRequestException(resp.get("message")!=null?String.valueOf(resp.get("message")):"acs反馈异常"); + } return RestBusinessTemplate.execute(() -> resp); } + @NotNull + private PdmProduceWorkorderrecord packageRecordForm(PdmProduceWorkorder workOrder) { + PdmProduceWorkorderrecord workorderrecord = new PdmProduceWorkorderrecord(); + workorderrecord.setMacoperate_id(IdUtil.getStringId()); + workorderrecord.setWorkorder_id(workOrder.getWorkorder_id()); + workorderrecord.setWorkprocedure_id(workOrder.getWorkprocedure_id()); + workorderrecord.setDevice_code(workOrder.getDevice_code()); + workorderrecord.setProduct_area(workOrder.getProduct_area()); + workorderrecord.setReport_status(ReportEnum.REPORT_STATUS.code("生成")); + workorderrecord.setProduce_person_id(SecurityUtils.getCurrentUserId()); + workorderrecord.setOperatetime_start(DateUtil.now()); + workorderrecord.setShift_type_scode(workOrder.getShift_type_scode()); + return workorderrecord; + } + @NotNull private JSONObject packageForm(JSONObject param) { PdmProduceWorkorder workOrder = this.getOne(new QueryWrapper().eq("workorder_id", param.getString("workorder_id"))); @@ -563,7 +592,7 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl() - .eq("workorder_id", param.getString("workorder_id")).eq("report_status", ReportRecordStatus.CREATE.getCode())); + .eq("workorder_id", param.getString("workorder_id")).eq("report_status", ReportEnum.REPORT_STATUS.code("生成"))); if (one == null) { throw new BadRequestException(param.getString("workorder_id") + "当前工单没有生成状态的报工记录"); } @@ -573,13 +602,14 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl() .set("report_qty", param.getBigDecimal("report_qty")) .set("nok_qty", param.getBigDecimal("nok_qty")) .set("repare_qty", param.getBigDecimal("repare_qty")) - .set("needproduct_qty", workorder.getPlan_qty().doubleValue() - workorder.getReport_qty().doubleValue()) + .set("needproduct_qty", Math.max(0,workorder.getPlan_qty().intValue() - workorder.getReport_qty().intValue())) .eq("macoperate_id", one.getMacoperate_id())); return one.getMacoperate_id(); } @@ -597,10 +627,11 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl> entry : collect.entrySet()) { List itemRecord = entry.getValue(); itemRecord.forEach(item -> { - item.setReport_status(ReportRecordStatus.FINISH.getCode()); + item.setReport_status(ReportEnum.REPORT_STATUS.code("报工审核")); item.setConfirm_id(SecurityUtils.getCurrentUserId()); item.setConfirm_name(SecurityUtils.getCurrentNickName()); item.setConfirm_time(DateUtil.now()); + item.setSeq_number(null); }); List list = packageWorkorderQty(record, itemRecord); this.baseMapper.batchUpdateByParam(list, entry.getKey()); @@ -613,13 +644,13 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl packageWorkorderQty(List record, List itemRecord) { List ids = itemRecord.stream().map(PdmProduceWorkorderrecord::getMacoperate_id).collect(Collectors.toList()); List oldRecord = record.stream().filter(item -> ids.contains(item.getMacoperate_id())).collect(Collectors.toList()); - long old_nok_qty = oldRecord.stream().map(PdmProduceWorkorderrecord::getNok_qty).count(); - long new_nok_qty = itemRecord.stream().map(PdmProduceWorkorderrecord::getNok_qty).count(); - long old_repare_qty = oldRecord.stream().map(PdmProduceWorkorderrecord::getRepare_qty).count(); - long new_repare_qty = itemRecord.stream().map(PdmProduceWorkorderrecord::getRepare_qty).count(); - long old_report_qty = itemRecord.stream().map(PdmProduceWorkorderrecord::getReport_qty).count(); - long new_report_qty = itemRecord.stream().map(PdmProduceWorkorderrecord::getReport_qty).count(); - List list = new ArrayList<>(); + long old_nok_qty = oldRecord.stream().mapToLong(a->a.getNok_qty().longValue()).sum(); + long new_nok_qty = itemRecord.stream().mapToLong(a->a.getNok_qty().longValue()).sum(); + long old_repare_qty = oldRecord.stream().mapToLong(a->a.getRepare_qty().longValue()).sum(); + long new_repare_qty = itemRecord.stream().mapToLong(a->a.getRepare_qty().longValue()).sum(); + long old_report_qty = oldRecord.stream().mapToLong(a->a.getReport_qty().longValue()).sum(); + long new_report_qty = itemRecord.stream().mapToLong(a->a.getReport_qty().longValue()).sum(); + List list = new ArrayList<>(); Map nok_qty = new HashMap<>(); nok_qty.put("field", "nok_qty"); nok_qty.put("value", Math.abs(new_nok_qty - old_nok_qty)); @@ -637,7 +668,7 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl reportQuery(ReportQuery query) { + Assert.notNull(query,"参数不能为空"); + if (query.getIs_report()){ + query.setReport_status("'1','2'"); + } + List list = reportRecordService.reportQuery(query); + Map hashMap = new HashMap<>(); + int i =0; + for (Map map : list) { + String code = (String)map.get("workorder_code"); + if (hashMap.get(code)==null){ + hashMap.put(code,code); + i =0; + } + i++; + map.put("seq_number",i); + } + return list; + } + + + @Override + public List getOrderList(Map param, Pageable page) { + return this.baseMapper.orderList(param); + } + + @Override + public void updateReport(JSONObject param) { + Assert.notNull(param,"参数不能为空"); + PdmProduceWorkorderrecord record = reportRecordService.getOne(new QueryWrapper() + .eq("macoperate_id", param.getString("macoperate_id"))); + PdmProduceWorkorder workorder = this.getOne(new QueryWrapper() + .eq("workorder_id", record.getWorkorder_id())); + if (!workorder.getIs_canupdate_update()){ + throw new BadRequestException("当前工单设置为不允许修改报工记录"); + } + reportRecordService.update(new UpdateWrapper() + .set("nok_qty",param.getBigDecimal("nok_qty")) + .set("repare_qty",param.getBigDecimal("repare_qty")) + .set("report_qty",param.getBigDecimal("report_qty")) + .eq("macoperate_id", param.getString("macoperate_id"))); + } } 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..7223c3e9 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,17 @@ package org.nl.wms.product_manage.service.workorder.impl; +import com.alibaba.fastjson.JSON; +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 +23,8 @@ import org.springframework.stereotype.Service; @Service public class PdmProduceWorkorderrecordServiceImpl extends ServiceImpl implements IPdmProduceWorkorderrecordService { + @Override + public List reportQuery(ReportQuery query) { + return this.baseMapper.reportQuery(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 f2ebbdaf..25fed213 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 @@ -1,18 +1,16 @@ - - 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..a22b5cdc 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 @@ -7,6 +7,7 @@ import org.nl.wms.product_manage.sch.service.dto.PointDto; import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint; import org.springframework.data.domain.Pageable; +import java.util.List; import java.util.Map; /** @@ -46,4 +47,7 @@ public interface ISchBasePointService extends IService { */ Map findDeviceWorkprodure(String point_code); + + Map getWorkprodureById(String id); + Map getWorkprodureByCode(String id); } 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..940ab74b 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,7 @@ 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 c4030f11..820f9b00 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..e7d99441 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,19 @@ 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..898e07a0 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/task/ISchBaseTaskService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/ISchBaseTaskService.java index bdae63ce..df6f158b 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,8 @@ 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.Map; + /** *

* 任务表 服务类 @@ -13,4 +15,10 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface ISchBaseTaskService extends IService { + /** + * 任务操作 + * + * @param param + */ + void operation(Map param); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/dao/SchBaseTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/dao/SchBaseTask.java index 4a6eb419..25867d37 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/dao/SchBaseTask.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/dao/SchBaseTask.java @@ -237,6 +237,10 @@ public class SchBaseTask implements Serializable { * 修改时间 */ private Date update_time; + /** + * 修改时间 + */ + private String barcodeArr; } 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 03766996..f7c6945d 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 @@ -1,11 +1,29 @@ package org.nl.wms.scheduler_manage.service.task.impl; +import cn.hutool.core.map.MapUtil; +import com.alibaba.fastjson.JSON; +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.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.wms.ext.acs.service.AcsToWmsService; +import org.nl.wms.ext.acs.service.impl.WmsToAcsServiceImpl; +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; import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.nl.wms.storage_manage.CHANGE_BILL_TYPE_ENUM; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; +import java.util.Map; + /** *

* 任务表 服务实现类 @@ -17,4 +35,58 @@ import org.springframework.stereotype.Service; @Service public class SchBaseTaskServiceImpl extends ServiceImpl implements ISchBaseTaskService { + @Autowired + @Lazy + private AcsToWmsService acsToWmsService; + + @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("任务已完成!"); + + switch (method_name) { // forceFinish, cancel + case "immediateNotifyAcs": + JSONArray array = new JSONArray(); + array.add(taskObj); + wms.issueTaskToAcs(array); + break; + case "forceFinish": + JSONArray finish = new JSONArray(); + JSONObject res = new JSONObject(); + res.put("task_id", task_id); + res.put("status", AcsTaskEnum.STATUS_FINISH.getCode()); + res.put("finished_type", AcsTaskEnum.MANUAL_TASK_FINISHED_TYPE.getCode()); // 手动完成 + finish.add(res); + acsToWmsService.receiveTaskStatusAcs(JSON.toJSONString(finish)); + break; + case "cancel": + JSONArray cancel = new JSONArray(); + JSONObject res2 = new JSONObject(); + res2.put("task_id", task_id); + res2.put("status", AcsTaskEnum.STATUS_CANNEL.getCode()); + cancel.add(res2); + acsToWmsService.receiveTaskStatusAcs(JSON.toJSONString(cancel)); + break; + case "delete": + SchBaseTask one = getOne(new QueryWrapper().eq("task_id", task_id)); + int status = Integer.valueOf(one.getTask_status()); + //判断如果在3个状态之内,更新操作 + int tag = 1 << StatusEnum.TASK_CANNEL.getBit() + | 1 << StatusEnum.TASK_CREATE.getBit() + | 1 << StatusEnum.TASK_START_ERROR.getBit() + | 1 << StatusEnum.TASK_START_END_P.getBit(); + if ((tag &~ 1 << status) != tag){ + this.update(new UpdateWrapper() + .set("is_delete",true) + .eq("task_id", task_id)); + }else { + throw new BadRequestException("任务已经下发不允许直接删除"); + } + break; + default: break; + } + } } diff --git a/mes/hd/nladmin-system/src/main/resources/scheduler.xml b/mes/hd/nladmin-system/src/main/resources/scheduler.xml index cde694e2..62cc0d57 100644 --- a/mes/hd/nladmin-system/src/main/resources/scheduler.xml +++ b/mes/hd/nladmin-system/src/main/resources/scheduler.xml @@ -1,26 +1,26 @@ - - - - + + + + + + + - - + - - - - + + - - + + diff --git a/mes/qd/src/views/wms/product_manage/workorder/ViewDialog.vue b/mes/qd/src/views/wms/product_manage/workorder/ViewDialog.vue index 03a686ed..de156ed8 100644 --- a/mes/qd/src/views/wms/product_manage/workorder/ViewDialog.vue +++ b/mes/qd/src/views/wms/product_manage/workorder/ViewDialog.vue @@ -12,21 +12,8 @@ - - - - + + @@ -99,6 +86,7 @@ clearable filterable placeholder="请选择" + @change="crud.toQuery" > - - + + - - {{ item.label }} - + + + + -                         - {{ item.label }} - + style="width: 200px" + clearable + filterable + > + +

- 工单生产记录详情 + 工单报工记录详情 @@ -161,20 +143,30 @@ :highlight-current-row="true" :header-cell-style="{background:'#f5f7fa',color:'#606266'}" > - + - + + + - - - - - - + + + + + - + + + + + + 取 消 @@ -187,14 +179,13 @@ import { crud } from '@crud/crud' import crudWorkProcedure from '@/api/wms/basedata/pdm/workProcedure' import crudProduceshiftorder from '@/views/wms/product_manage/workorder/produceshiftorder' -import Treeselect, { LOAD_CHILDREN_OPTIONS } from '@riophae/vue-treeselect' -import '@riophae/vue-treeselect/dist/vue-treeselect.css' import crudClassstandard from '@/api/wms/basedata/master/classstandard' +import '@riophae/vue-treeselect/dist/vue-treeselect.css' export default { name: 'ViewDialog', - components: { Treeselect }, - dicts: ['PDM_BI_SHIFTTYPE', 'MPS_BD_ORDERSTATUS', 'is_used', 'PDM_BI_ORDERTYPE', 'IS_OR_NOT'], + components: { }, + dicts: ['PDM_BI_SHIFTTYPE', 'MPS_BD_ORDERSTATUS', 'PDM_BI_ORDERTYPE' ], mixins: [crud()], props: { dialogShow: { @@ -211,9 +202,11 @@ export default { data() { return { dialogVisible: false, - classes3: [], + trueorfalse:[{value: true, label: '是' }, {value: false, label: '否'}], + reportStatus:[{value: '1', label: '创建记录' }, {value: '2', label: '报工完成'}, {value: '3', label: '审核完成'}], form: { sale_id: null, + class_name: null, workorder_id: null, workorder_code: null, producedeviceorder_code: null, @@ -263,77 +256,27 @@ export default { methods: { open() { this.getworkprocedure() - this.initClass3() - this.is_null() - crudProduceshiftorder.getDtl({ workorder_id: this.form.workorder_id }).then(res => { - this.tableData = res + this.getMaterialClass() + crudProduceshiftorder.reportQuery({ workorder_id: this.form.workorder_id }).then(res => { + this.tableData = res.content }) }, - is_null() { - // 物料系列为空,新增 - if (!this.form.product_series) { - this.form.product_series = null // 必须为null,否则会出现unknown - } else { // 更新 - this.getSubTypes('03', this.form.product_series) + formatBoolean: function(row, column) { + alert(row) + var ret = '' + if (row[column.property] === true) { + ret = '是' // 根据自己的需求设定 + } else { + ret = '否' } + return ret }, - getSubTypes(type, id) { - const that = this - crudClassstandard.getClassSuperior(id).then(res => { - const data = res.content - that.buildTree(data) - if (type === '03') { - that.classes3 = data - } - }) - }, - queryClassId() { + getMaterialClass() { const param = { - 'class_idStr': this.class_idStr + 'material_id': this.form.material_id } crudClassstandard.queryClassById(param).then(res => { - this.classes = res.content.map(obj => { - if (obj.hasChildren) { - obj.children = null - } - return obj - }) - }) - }, - buildTree(classes) { - classes.forEach(data => { - if (data.children) { - this.buildTree(data.children) - } - if (data.hasChildren && !data.children) { - data.children = null // 重点代码 - } - }) - }, - // 获取子节点数据 - loadChildNodes({ action, parentNode, callback }) { - if (action === LOAD_CHILDREN_OPTIONS) { - crudClassstandard.getClass({ pid: parentNode.id }).then(res => { - parentNode.children = res.content.map(function(obj) { - if (obj.hasChildren) { - obj.children = null - } - return obj - }) - setTimeout(() => { - callback() - }, 100) - }) - } - }, - initClass3() { - const param = { - parent_class_code: '07' - } - crudClassstandard.getClassType(param).then(res => { - const data = res.content - this.buildTree(data) - this.classes3 = data + this.form.class_name = res.content[0].class_name }) }, getworkprocedure() { diff --git a/mes/qd/src/views/wms/product_manage/workorder/index.vue b/mes/qd/src/views/wms/product_manage/workorder/index.vue index 3cb7ca57..e46700b5 100644 --- a/mes/qd/src/views/wms/product_manage/workorder/index.vue +++ b/mes/qd/src/views/wms/product_manage/workorder/index.vue @@ -99,7 +99,7 @@ /> - + 导入 - - 打印 - 报工审核 @@ -386,15 +376,17 @@ {{ scope.row.workorder_code }} - + - + + + @@ -406,19 +398,12 @@ - + + + + - - - - - - @@ -426,17 +411,16 @@ {{ dict.label.WORKORDER_CREATE_TYPE[scope.row.create_type] }} - - - + + - - + + + +