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 b4c9a807..c0faffcd 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 @@ -45,6 +45,7 @@ public enum AcsTaskEnum { TASK_WASH_EMP("21","清洗机-空叫空框"), TASK_WASH_FULL_AUTO("22","清洗机-满料请求自动"),//去半成品入库:参数不全也去异常处理位 TASK_WASH_FULL_QZ("23","清洗机-满料请求强制"),//去异常位: + TASK_POINT_TO_POINT("99","点对点搬运"),//去异常位: //回调状态 STATUS_START("1","执行中"), @@ -53,18 +54,17 @@ public enum AcsTaskEnum { //专机请求 REQUEST_CALLTYPE_FULL("2","专机满料请求"), REQUEST_CALLTYPE_EMP("1","专机缺料请求"), - REQUEST_PLOTTER_SEND_FULL("3","刻字满料请求"), - REQUEST_PLOTTER_CALL_EMP("4","刻字空框请求"), - REQUEST_WARP_CALL_FULL("5","包装缺料请求"), - REQUEST_WARP_SEND_EMP("6","包装送空框请求"), + REQUEST_PLOTTER_SEND_FULL("3","刻字满料请求"),//ok + REQUEST_PLOTTER_CALL_EMP("4","刻字空框请求"),//ok + REQUEST_WARP_CALL_FULL("5","包装缺料请求"),//ok + REQUEST_WARP_SEND_EMP("6","包装送空框请求"),//ok REQUEST_WASH_LACK("7","清洗机器缺料请求"),//深坑->清洗:相同物料的重量<150公斤; - REQUEST_WASH_EMP("8","清洗机器空框请求"),//清洗机下料位 - REQUEST_WASH_FULL("9","清洗机器满料请求"),//清洗机满料请求 - REQUEST_WASH_FULL_ERROR("10","清洗机-满料异常请求"),//去半成品入库 + REQUEST_WASH_FULL("8","清洗机器满料请求"),//清洗机满料请求//去半成品入库 + REQUEST_WASH_EMP("10","清洗机器空框请求"),//清洗机下料位 + REQUEST_WASH_FULL_ERROR("11","清洗机-满料异常请求"),//去半成品入库 异常位 + REQUEST_WASH_PLOTTER_EMP("12","刻字上料空框回库"), - - - // + ///api/dict/dictDetail/api/dict/dictDetail/api/dict/dictDetail AGV_SYSTEM_NB("1","诺宝机器人任务"), AGV_SYSTEM_XC("2","叉车任务"), 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 2a910cac..726eb91a 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 @@ -33,7 +33,7 @@ public enum StatusEnum { CACHE_VEL_DIS("5","不显示","",null), //任务状态 TASK_CREATE("1","生成","",1), - TASK_START_ERROR("2","点位确认异常","",1<<2), + TASK_START_ERROR("2","任务异常","",1<<2), //TASK_END_P("3","确定终点",""), TASK_START_END_P("4","起点和终点确认","",1<<3), TASK_PUBLISH("5","下发","",1<<4), diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/common/utils/AcsUtil.java b/mes/hd/nladmin-system/src/main/java/org/nl/common/utils/AcsUtil.java index 2828483b..db1cd620 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/common/utils/AcsUtil.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/common/utils/AcsUtil.java @@ -48,19 +48,16 @@ public class AcsUtil { } catch (Exception e) { log.info("ACS反馈异常----------------------------------------+"+api+",---"+e.getMessage()); - String msg = e.getMessage(); - //ConnectException: Connection refused: connect - //网络不通 - result.put("status", HttpStatus.BAD_REQUEST); + result.put("status", "400"); result.put("message", "网络不通,操作失败!"); result.put("data", new JSONObject()); - result.put("error", msg); + result.put("error", e.getMessage()); } //acs抛异常这里 if (api.equals("api/wms/task")){ List errorList = new ArrayList(); if (!StrUtil.equals(result.getString("status"), "200")) { - result.put("status", HttpStatus.BAD_REQUEST); + result.put("status", "400"); JSONArray errorArr = result.getJSONArray("result"); if (errorArr !=null && errorArr.size()>0){ errorList = errorArr.stream().map(a -> ((JSONObject) a).getString("task_id")).collect(Collectors.toList()); @@ -93,15 +90,13 @@ public class AcsUtil { String isConnect = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("IS_CONNECT_ACS").getValue(); JSONObject result = new JSONObject(); if (StrUtil.equals(StatusEnum.STATUS_FLASE.getCode(), isConnect)) { - result.put("status", HttpStatus.OK.value()); + result.put("status", "200"); result.put("message", "下发成功,但未连接ACS!"); result.put("data", new JSONObject()); return result; } - //ACS地址:127.0.0.1:8010 String acsUrl = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("acs_url").getValue(); - String url = acsUrl + api; try { String resultMsg = HttpRequest.post(url) @@ -113,13 +108,16 @@ public class AcsUtil { } catch (Exception e) { log.info("ACS反馈异常----------------------------------------+"+api+",---"+e.getMessage()); String msg = e.getMessage(); - //ConnectException: Connection refused: connect - //网络不通 - result.put("status", HttpStatus.BAD_REQUEST); + result.put("status", "400"); result.put("message", "网络不通,操作失败!"); result.put("data", new JSONObject()); result.put("error", msg); } + if (!StrUtil.equals(result.getString("status"), "200")) { + result.put("status", "400"); + result.put("message", result.getString("message")); + result.put("data", new JSONObject()); + } return result; } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/common/utils/OptionRecord.java b/mes/hd/nladmin-system/src/main/java/org/nl/common/utils/OptionRecord.java index 89cee50c..6f770ee5 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/common/utils/OptionRecord.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/common/utils/OptionRecord.java @@ -3,15 +3,25 @@ package org.nl.common.utils; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.AllArgsConstructor; import lombok.Getter; import org.apache.commons.lang3.StringUtils; +import org.apache.poi.ss.formula.functions.T; +import org.nl.common.publish.event.PublishEvent; +import org.nl.config.thread.ThreadPoolExecutorUtil; import org.nl.modules.wql.util.SpringContextHolder; import org.nl.wms.system_manage.service.ql.IPdmQlOptionService; import org.nl.wms.system_manage.service.ql.dao.PdmQlOption; import org.nl.wms.system_manage.service.ql.dto.OptionRecordQuery; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; + +import javax.annotation.Resource; import java.util.ArrayList; +import java.util.Date; import java.util.List; +import java.util.Map; import java.util.concurrent.ThreadPoolExecutor; /* @@ -27,9 +37,9 @@ public class OptionRecord { qlOption.setOptiod_date(JSON.toJSONString(option)); } qlOption.setOrderno(order); + qlOption.setOption_id(IdUtil.getStringId()); qlOption.setType(type.name()); - qlOption.setCreate_id(DateUtil.now()); - qlOption.setCreate_time(SecurityUtils.getCurrentUserId()); + qlOption.setCreate_time(DateUtil.now()); qlOption.setCreate_name(SecurityUtils.getCurrentNickName()); qlOption.setBussclass(classname.name()); qlOption.setStatus(status); @@ -68,5 +78,6 @@ public class OptionRecord { WORKORDER, MATERIAL, VECHILE, + POINT, } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/config/ConventConfig.java b/mes/hd/nladmin-system/src/main/java/org/nl/config/ConventConfig.java index fa22b523..7652fb26 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/config/ConventConfig.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/config/ConventConfig.java @@ -8,12 +8,12 @@ import org.nl.wms.ext.acs.service.impl.AcsToWmsServiceImpl; import org.nl.wms.product_manage.sch.tasks.SpeMachinery.SpeEmpTask; import org.nl.wms.product_manage.sch.tasks.SpeMachinery.SpeFullTask; import org.nl.wms.product_manage.sch.tasks.WashMachineryTask; -import org.nl.wms.product_manage.sch.tasks.callEmpty.PlotterCallEmptyTask; -import org.nl.wms.product_manage.sch.tasks.callEmpty.WashCallEmptyTask; -import org.nl.wms.product_manage.sch.tasks.callMaterial.WrapCallMaterialTask; -import org.nl.wms.product_manage.sch.tasks.sendEmpty.WrapSendEmptyTask; -import org.nl.wms.product_manage.sch.tasks.sendMaterial.PlotterSendMaterialTask; -import org.nl.wms.product_manage.sch.tasks.sendMaterial.WashSendMaterialTask; +import org.nl.wms.product_manage.sch.tasks.plotter.PlotterCallEmptyTask; +import org.nl.wms.product_manage.sch.tasks.wash.WashCallEmptyTask; +import org.nl.wms.product_manage.sch.tasks.packageWrap.WrapCallMaterialTask; +import org.nl.wms.product_manage.sch.tasks.packageWrap.WrapSendEmptyTask; +import org.nl.wms.product_manage.sch.tasks.plotter.PlotterSendMaterialTask; +import org.nl.wms.product_manage.sch.tasks.wash.WashSendMaterialTask; import org.springframework.context.SmartLifecycle; import org.springframework.context.annotation.Configuration; diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/modules/logging/aspect/LogAspect.java b/mes/hd/nladmin-system/src/main/java/org/nl/modules/logging/aspect/LogAspect.java index c5d20a69..67085b57 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/modules/logging/aspect/LogAspect.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/modules/logging/aspect/LogAspect.java @@ -71,7 +71,6 @@ public class LogAspect { MethodSignature signature = (MethodSignature) joinPoint.getSignature(); Method method = signature.getMethod(); - String methodName = joinPoint.getTarget().getClass().getName() + "." + signature.getName() + "()"; String params = getParameter(method, joinPoint.getArgs()); HttpServletRequest request = RequestHolder.getHttpServletRequest(); String url = request.getRequestURI(); @@ -92,29 +91,6 @@ public class LogAspect { Log log = new Log("INFO", System.currentTimeMillis() - comming); logService.save(getUsername(), StringUtils.getBrowser(request), requestIp, joinPoint, log); } - if (logInfo.isInterfaceLog()) { - try { - WQLObject interfaceLog = WQLObject.getWQLObject("sys_interface_log"); - JSONObject json = new JSONObject(); - json.put("log_id", IdUtil.getStringId()); - json.put("description", logInfo.value()); - json.put("log_type", logInfo.interfaceLogType().getDesc()); - json.put("log_level", "1"); - json.put("method", methodName); - json.put("params", getParameter(method, joinPoint.getArgs())); - json.put("request_ip", StringUtils.getIp(request)); - json.put("time", System.currentTimeMillis() - comming); - json.put("username", getUsername()); - json.put("address", StringUtils.getCityInfo(requestIp)); - json.put("browser", StringUtils.getBrowser(request)); - json.put("exception_detail", IdUtil.getStringId()); - json.put("create_time", DateUtil.now()); - Object parse = JSONObject.parse(result.toString()); - json.put("return_result", parse); - interfaceLog.insert(json); - } catch (Exception e) { - } - } }catch (Exception ex){ StringBuffer errorStack = new StringBuffer(); errorStack.append("
【异常堆栈:"); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/WmsToAcsService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/WmsToAcsService.java index f9f44952..77f08514 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/WmsToAcsService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/WmsToAcsService.java @@ -65,4 +65,12 @@ public interface WmsToAcsService { * @return */ Map action(JSONArray arr); + + /** + * 目标请求 + * @param arr + * @param url + * @return + */ + JSONObject request(JSONObject arr,String url); } 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 826f7a55..669ac300 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 @@ -71,7 +71,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ @Override public Map apply(JSONObject param) { - Assert.notNull(param,"请求参数不能为空"); + Assert.notNull(param,"请求参数不能为空");//{"workorder_code":230704889,"device_code":"A1_BZJ_1","type":"5"} Map result = MapOf.of("status", HttpStatus.OK.value(), "message", "ACS向WMS申请任务成功!"); AcsTaskEnum taskEnum = AcsTaskEnum.getType(param.getString("type"), "REQUEST_"); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java index bb05fa5b..d5084f9b 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java @@ -135,5 +135,9 @@ public class WmsToAcsServiceImpl implements WmsToAcsService{ return AcsUtil.notifyAcs(api, arr); } + @Override + public JSONObject request(JSONObject arr, String url) { + return AcsUtil.notifyAcs(url, arr); + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/TmpKZController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/TmpKZController.java index a61d2e19..ce5dbc14 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/TmpKZController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/TmpKZController.java @@ -7,46 +7,126 @@ package org.nl.wms.pda_manage.pda.controller; */ import cn.dev33.satoken.annotation.SaIgnore; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import io.swagger.annotations.Api; 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.modules.common.exception.BadRequestException; +import org.nl.wms.ext.acs.service.WmsToAcsService; +import org.nl.wms.product_manage.sch.tasks.plotter.PlotterCallEmptyTask; +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; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.Map; + @RestController -@Api(tags = "成品手持服务") +@Api(tags = "一体机刻字服务") @RequestMapping("/api/pda") @Slf4j @SaIgnore public class TmpKZController { + @Autowired + private WmsToAcsService wmsToAcsService; + @Autowired + private ISchBasePointService basePointService; + @Autowired + private PlotterCallEmptyTask plotterCallEmptyTask; + @Autowired + private ISchBaseTaskService taskService; + /** + * + * @param param + * @return + */ @RequestMapping("deviceinstorQty") + @SaIgnore public ResponseEntity deviceinstorQty(@RequestBody JSONObject param){ - + SchBasePoint one = basePointService.getOne(new QueryWrapper() + .eq("device_code", param.getString("device_code")) + .eq("point_type", StatusEnum.POINT_LOCATION_IN.getCode())); + if (one==null){ + throw new BadRequestException("当前设备无倒料点"); + } + JSONObject jo = new JSONObject(); + jo.put("device_code", one.getPoint_code()); + jo.put("qty", param.getString("qty")); + JSONObject result = wmsToAcsService.request(jo, "api/wms/handPour"); + if (!StrUtil.equals(result.getString("status"), "200")) { + throw new BadRequestException((String)result.get("message")); + } return new ResponseEntity<>( HttpStatus.OK); } @RequestMapping("callVechile") + @SaIgnore public ResponseEntity callVechile(@RequestBody JSONObject param){ + plotterCallEmptyTask.callEmpVechile(param.getString("device_code")); return new ResponseEntity<>( HttpStatus.OK); } + + //鞋料 @RequestMapping("kzunload") - public ResponseEntity kzunload(@RequestBody JSONObject param){ + @SaIgnore + public ResponseEntity kzunload(@RequestBody JSONObject param) { + JSONObject jo = new JSONObject(); + jo.put("device_code", "A1_KZ_SL"); + JSONObject result = wmsToAcsService.request(jo, "api/wms/startDischarge"); + if (!StrUtil.equals(result.getString("status"), "200")) { + throw new BadRequestException((String)result.get("message")); + } return new ResponseEntity<>( HttpStatus.OK); } @RequestMapping("kzresidue") + @SaIgnore public ResponseEntity kzresidue(@RequestBody JSONObject param){ + JSONObject jo = new JSONObject(); + jo.put("next_point_code", param.getString("device_code")); + jo.put("start_point_code", param.getString("A1_KZ_SL")); + jo.put("weight", param.getString("qty")); + JSONObject result = wmsToAcsService.request(jo, "api/wms/putOver"); + if (!StrUtil.equals(result.getString("status"), "200")) { + throw new BadRequestException((String)result.get("message")); + } return new ResponseEntity<>( HttpStatus.OK); } @RequestMapping("tmpcallVechile") + @SaIgnore public ResponseEntity tmpcallVechile(@RequestBody JSONObject param){ + JSONObject moveTask =taskService.createMoveTask("", "", AcsTaskEnum.TASK_POINT_TO_POINT, AcsTaskEnum.ACS_TASK_TYPE_NON_WEIGHING_TASK_OF_PS20); + JSONArray data = new JSONArray(); + data.add(moveTask); + Map result = wmsToAcsService.issueTaskToAcs2(data); + if (StrUtil.equals((String)result.get("status"), "400")) { + throw new BadRequestException((String)result.get("message")); + } + taskService.save(moveTask.toJavaObject(SchBaseTask.class)); return new ResponseEntity<>( HttpStatus.OK); } @RequestMapping("tmpsendVechile") + @SaIgnore public ResponseEntity tmpsendVechile(@RequestBody JSONObject param){ + JSONObject moveTask = taskService.createMoveTask("", "", AcsTaskEnum.TASK_POINT_TO_POINT, AcsTaskEnum.ACS_TASK_TYPE_NON_WEIGHING_TASK_OF_PS20); + JSONArray data = new JSONArray(); + data.add(moveTask); + Map result = wmsToAcsService.issueTaskToAcs2(data); + if (StrUtil.equals((String)result.get("status"), "400")) { + throw new BadRequestException((String)result.get("message")); + } + taskService.save(moveTask.toJavaObject(SchBaseTask.class)); return new ResponseEntity<>( HttpStatus.OK); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/device/SpecialDeviceController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/device/SpecialDeviceController.java index 04845b9c..bf849976 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/device/SpecialDeviceController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/device/SpecialDeviceController.java @@ -56,6 +56,7 @@ public class SpecialDeviceController { for (Map pdmBiDevice : list.getRecords()) { MdMeMaterialbase materialbase = materialMap.get(pdmBiDevice.get("material_id")); pdmBiDevice.put("material_name",materialbase!=null?materialbase.getMaterial_name():""); + pdmBiDevice.put("material_code",materialbase!=null?materialbase.getMaterial_code():""); pdmBiDevice.put("material_spec",materialbase!=null?materialbase.getMaterial_spec():""); } } @@ -77,5 +78,20 @@ public class SpecialDeviceController { } return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK); } + @PostMapping("/setEmp") + @Log("设置空点位") + @ApiOperation("设置空点位") + @SaIgnore + public ResponseEntity setEmp (@RequestBody String[]ids){ + if (ids.length>0){ + iDeviceService.update(new UpdateWrapper() + .set("material_id","") + .set("deviceinstor_qty",0) + .set("deviceinstor_weight",0) + .set("remark","") + .in("device_code",ids)); + } + return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK); + } } 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 ce1d8d77..2101e562 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 @@ -36,7 +36,7 @@ public abstract class AbstractAcsTask { public void notifyAcs(JSONArray param){}; public List schedulerTask(List tasks){ - return new ArrayList<>(); + return tasks; }; diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/manage/TaskStatusEnum.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/manage/TaskStatusEnum.java index e71b7799..7659b6b7 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/manage/TaskStatusEnum.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/manage/TaskStatusEnum.java @@ -5,7 +5,7 @@ package org.nl.wms.product_manage.sch.manage; */ public enum TaskStatusEnum { CREATED("1", "生成"), - SURE_START_ERROR("2", "点位确认异常"), + SURE_START_ERROR("2", "任务异常"), //SURE_END("3", "确定终点"), START_AND_POINT("4", "起点终点确认"), ISSUE("5", "下发"), diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/rest/PointController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/rest/PointController.java deleted file mode 100644 index 64d156ec..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/rest/PointController.java +++ /dev/null @@ -1,114 +0,0 @@ - -package org.nl.wms.product_manage.sch.rest; - - -import com.alibaba.fastjson.JSONObject; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.nl.common.anno.Log; -import org.nl.wms.product_manage.sch.service.PointService; -import org.nl.wms.product_manage.sch.service.dto.PointDto; -import org.springframework.data.domain.Pageable; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.Map; - -/** - * @author ldjun - * @date 2021-08-19 - **/ -//@RestController -@RequiredArgsConstructor -//@Api(tags = "点位管理") -//@RequestMapping("/api/point") -//@Slf4j -public class PointController { - - private final PointService pointService; - - @GetMapping - @Log("查询点位") - @ApiOperation("查询点位") - //@SaCheckPermission("point:list") - public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { - return new ResponseEntity<>(pointService.queryAll(whereJson, page), HttpStatus.OK); - } - - @PostMapping - @Log("新增点位") - @ApiOperation("新增点位") - //@SaCheckPermission("point:add") - public ResponseEntity create(@Validated @RequestBody PointDto dto) { - pointService.create(dto); - return new ResponseEntity<>(HttpStatus.CREATED); - } - - @PutMapping - @Log("修改点位") - @ApiOperation("修改点位") - //@SaCheckPermission("point:edit") - public ResponseEntity update(@Validated @RequestBody PointDto dto) { - pointService.update(dto); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); - } - - @Log("删除点位") - @ApiOperation("删除点位") - //@SaCheckPermission("point:del") - @DeleteMapping - public ResponseEntity delete(@RequestBody Long[] ids) { - pointService.deleteAll(ids); - return new ResponseEntity<>(HttpStatus.OK); - } - @PutMapping("/changeActive") - @Log("修改点位启用状态") - @ApiOperation("修改点位启用状态") - //@SaCheckPermission("store:edit") - public ResponseEntity update(@RequestBody JSONObject json) { - pointService.changeActive(json); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); - } - - @PostMapping("/getPoint") - @Log("查询点位下拉框") - @ApiOperation("查询点位下拉框") - //@SaCheckPermission("materialtype:list") - public ResponseEntity queryPoint(@RequestBody Map whereJson) { - return new ResponseEntity<>(pointService.getPoint(whereJson), HttpStatus.OK); - } - - @GetMapping("/selectPoint") - @Log("查询点位管理") - @ApiOperation("查询点位管理") - //@SaCheckPermission("Point:list") - public ResponseEntity selectPoint(@RequestParam Map whereJson, Pageable page){ - return new ResponseEntity<>(pointService.selectPoint(whereJson,page),HttpStatus.OK); - } - @GetMapping("/getRegion") - @Log("获取区域") - @ApiOperation("获取区域") - public ResponseEntity getRegion(){ - return new ResponseEntity<>(pointService.getRegion(),HttpStatus.OK); - } - - @Log("启动与禁用") - @PostMapping("/changeUsed") - @ApiOperation("启动与禁用") - public ResponseEntity changeUsedOn(@RequestBody JSONObject jsonObject) { - pointService.changeUsed(jsonObject); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); - } - - @Log("锁定与解锁") - @PostMapping("/changeLock") - @ApiOperation("锁定与解锁") - public ResponseEntity changeLock(@RequestBody JSONObject jsonObject) { - pointService.changeLock(jsonObject); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); - } -} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/rest/RegionController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/rest/RegionController.java deleted file mode 100644 index 663b1cb7..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/rest/RegionController.java +++ /dev/null @@ -1,99 +0,0 @@ -package org.nl.wms.product_manage.sch.rest; - -import com.alibaba.fastjson.JSONObject; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.nl.common.anno.Log; -import org.nl.wms.product_manage.sch.service.RegionService; -import org.nl.wms.product_manage.sch.service.dto.RegionDto; -import org.springframework.data.domain.Pageable; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.Map; - -/** -* @author lyd -* @date 2023-03-17 -**/ -//@RestController -@RequiredArgsConstructor -//@Api(tags = "区域管理管理") -//@RequestMapping("/api/region") -//@Slf4j -public class RegionController { - - private final RegionService regionService; - - @GetMapping - @Log("查询区域管理") - @ApiOperation("查询区域管理") - //@SaCheckPermission("region:list") - public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { - return new ResponseEntity<>(regionService.queryAll(whereJson, page), HttpStatus.OK); - } - - @GetMapping("/getPointQuery") - @Log("获取可用点位") - @ApiOperation("获取可用点位") - //@SaCheckPermission("region:list") - public ResponseEntity getPointQuery(@RequestParam Map whereJson, Pageable page) { - return new ResponseEntity<>(regionService.getPointQuery(whereJson, page), HttpStatus.OK); - } - - @PostMapping - @Log("新增区域管理") - @ApiOperation("新增区域管理") - //@SaCheckPermission("region:add") - public ResponseEntity create(@Validated @RequestBody RegionDto dto) { - regionService.create(dto); - return new ResponseEntity<>(HttpStatus.CREATED); - } - - @PutMapping - @Log("修改区域管理") - @ApiOperation("修改区域管理") - //@SaCheckPermission("region:edit") - public ResponseEntity update(@Validated @RequestBody RegionDto dto) { - regionService.update(dto); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); - } - - @Log("删除区域管理") - @ApiOperation("删除区域管理") - //@SaCheckPermission("region:del") - @DeleteMapping - public ResponseEntity delete(@RequestBody String[] codes) { - regionService.deleteAll(codes); - return new ResponseEntity<>(HttpStatus.OK); - } - - @PostMapping("/getPointStatusSelectByCode") - @Log("获取点位状态下拉框") - @ApiOperation("获取点位状态下拉框") - //@SaCheckPermission("region:add") - public ResponseEntity getPointStatusSelectByCode(@RequestBody String region_code) { - return new ResponseEntity<>(regionService.getPointStatusSelectByCode(region_code), HttpStatus.CREATED); - } - - @PostMapping("/getPointTypeSelectByCode") - @Log("获取点位类型下拉框") - @ApiOperation("获取点位类型下拉框") - //@SaCheckPermission("region:add") - public ResponseEntity getPointTypeSelectByCode(@RequestBody String region_code) { - return new ResponseEntity<>(regionService.getPointTypeSelectByCode(region_code), HttpStatus.CREATED); - } - - @PostMapping("/getRegionSelect") - @Log("获取区域下拉框") - @ApiOperation("获取区域下拉框") - public ResponseEntity getRegionSelect(@RequestBody JSONObject whereJson) { - return new ResponseEntity<>(regionService.getRegionSelect(whereJson), HttpStatus.CREATED); - } - -} - diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/callMaterial/WrapCallMaterialTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/packageWrap/WrapCallMaterialTask.java similarity index 54% rename from mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/callMaterial/WrapCallMaterialTask.java rename to mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/packageWrap/WrapCallMaterialTask.java index 10bd1f18..1165e252 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/callMaterial/WrapCallMaterialTask.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/packageWrap/WrapCallMaterialTask.java @@ -1,4 +1,4 @@ -package org.nl.wms.product_manage.sch.tasks.callMaterial; +package org.nl.wms.product_manage.sch.tasks.packageWrap; import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Assert; @@ -10,11 +10,13 @@ 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.jetbrains.annotations.NotNull; 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; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.system.util.CodeUtil; @@ -33,6 +35,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; @@ -57,61 +60,45 @@ public class WrapCallMaterialTask extends AbstractAcsTask { @Override @Transactional(rollbackFor = Exception.class) public void updateTaskStatus(JSONObject task, String status) { - WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); - WQLObject pointTab = WQLObject.getWQLObject("sch_base_point"); - JSONObject taskObj = taskTab.query("task_id = '" + task.getString("task_id") + "' " + - "and task_status <> '" + StatusEnum.TASK_FINISH.getCode() + "' " + - "and task_status <> '" + StatusEnum.TASK_CANNEL.getCode() + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(taskObj)) { + SchBaseTask one = taskService.getOne(new QueryWrapper() + .eq("task_id", task.getString("task_id"))); + if (one.getTask_status().equals(StatusEnum.TASK_FINISH.getCode())||one.getTask_status().equals(StatusEnum.TASK_CANNEL.getCode())) { throw new BadRequestException("任务已完成,不可取消!"); } - String pointCode1 = taskObj.getString("point_code1"); - JSONObject pointObj = null; - if (ObjectUtil.isNotEmpty(pointCode1)) { - pointObj = pointTab.query("point_code = '" + pointCode1 + "'").uniqueResult(0); - } if (status.equals(AcsTaskEnum.STATUS_START.getCode())) { // 执行中 - // 任务执行中 - taskObj.put("task_status", StatusEnum.TASK_RUNNING.getCode()); - taskObj.put("update_time", DateUtil.now()); - taskTab.update(taskObj); - } else if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) { - // 完成 - if (ObjectUtil.isNotEmpty(pointObj)) { - // 释放点位并赋值 - pointObj.put("lock_type", StatusEnum.LOCK_OFF.getCode()); - pointObj.put("point_status", StatusEnum.POINT_STATUS_EMPTY.getCode()); - pointObj.put("material_id", taskObj.getString("material_id")); - pointObj.put("update_time", DateUtil.now()); - pointTab.update(pointObj); - } - // 2任务完成 - taskObj.put("task_status", StatusEnum.TASK_FINISH.getCode()); - taskObj.put("update_time", DateUtil.now()); - taskObj.put("finished_type", ObjectUtil.isNotEmpty(task.getString("finished_type"))? - task.getString("finished_type"):AcsTaskEnum.AUTO_TASK_FINISHED_TYPE.getCode()); - taskTab.update(taskObj); - } else { - /** - * 取消任务 - * 1、点位恢复 - * 2、任务状态修改 - */ - // 2点位恢复 - if (ObjectUtil.isNotEmpty(pointObj)) { - // 释放点位 - pointObj.put("lock_type", StatusEnum.LOCK_OFF.getCode()); - pointObj.put("update_time", DateUtil.now()); - pointTab.update(pointObj); - } - // 2任务取消 - taskObj.put("task_status", StatusEnum.TASK_CANNEL.getCode()); - taskObj.put("update_time", DateUtil.now()); - taskObj.put("finished_type", ObjectUtil.isNotEmpty(task.getString("finished_type"))? - task.getString("finished_type"):AcsTaskEnum.AUTO_TASK_FINISHED_TYPE.getCode()); - taskTab.update(taskObj); + taskService.update(new UpdateWrapper() + .set("task_status",StatusEnum.TASK_RUNNING.getCode()).set("update_time",new Date()) + .eq("task_id",one.getTask_id())); } + if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) { + // 完成 + pointService.update(new UpdateWrapper().set("lock_type",StatusEnum.LOCK_OFF.getCode()) + .set("point_status",StatusEnum.POINT_STATUS_EMPTY.getCode()) + .set("material_id","").set("qty",0) + .set("task_id","") + .set("point_status", StatusEnum.POINT_STATUS_EMPTY.getCode()) + .eq("point_code",one.getPoint_code1())); + taskService.update(new UpdateWrapper() + .set("task_status",StatusEnum.TASK_FINISH.getCode()).set("update_time",new Date()) + .eq("task_id",task.getString("task_id"))); + } + if (status.equals(AcsTaskEnum.STATUS_CANNEL.getCode())) { + // 完成 + pointService.update(new UpdateWrapper() + .set("lock_type",StatusEnum.LOCK_OFF.getCode()) + .set("task_id","") + .eq("point_code",one.getPoint_code1())); + taskService.update(new UpdateWrapper() + .set("task_status",StatusEnum.TASK_CANNEL.getCode()) + .set("update_time",new Date()) + .eq("task_id",task.getString("task_id"))); + } + OptionRecord.recordAsync(OptionRecord.OptionEnum.UPDATE, + status, + OptionRecord.Buss.POINT, + one.getPoint_code1(), MapOf.of("start",one.getPoint_code1(),"end",one.getPoint_code3(),"time",DateUtil.now(),"order",one.getTask_id())); + } @Override @@ -130,23 +117,7 @@ public class WrapCallMaterialTask extends AbstractAcsTask { throw new BadRequestException(String.format("设备%s存在未完成任务"+list.stream().map(SchBaseTask::getTask_id).collect(Collectors.toList()).toString(), param.getString("device_code"))); } // 查找任务状态 - JSONObject task = new JSONObject(); - task.put("task_id", IdUtil.getStringId()); - task.put("task_name", AcsTaskEnum.TASK_WARP_MAC.getDesc()); - task.put("task_type", AcsTaskEnum.TASK_WARP_MAC.getCode()); - task.put("task_code", CodeUtil.getNewCode("TASK_CODE")); - task.put("acs_task_type", AcsTaskEnum.ACS_TASK_TYPE_NON_WEIGHING_TASK_OF_PS20.getCode()); - task.put("task_status", StatusEnum.TASK_CREATE.getCode()); - task.put("point_code2", param.getString("device_code")); - task.put("handle_class", this.getClass().getName()); - task.put("is_delete", StatusEnum.STATUS_FLASE.getCode()); - String currentUserId = SecurityUtils.getCurrentUserId(); - task.put("create_id", currentUserId); - task.put("create_name", SecurityUtils.getCurrentNickName()); - task.put("create_time", DateUtil.now()); - task.put("priority", "1"); - task.put("agv_system_type", AcsTaskEnum.AGV_SYSTEM_XC.getCode()); - task.put("table_fk_id",order.getWorkorder_code()); + JSONObject task = packageTask(param, order); SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class); taskService.save(schBaseTask); // 找终点 @@ -155,48 +126,93 @@ public class WrapCallMaterialTask extends AbstractAcsTask { JSONArray data = new JSONArray(); data.add(task); // 下发 - wms.issueTaskToAcs2(data); + wms.issueTaskToAcs(data); } catch (Exception ex) { - log.error("刻字请求异常,error:{}",ex); + pointService.update(new UpdateWrapper() + .set("lock_type",StatusEnum.LOCK_OFF.getCode()) + .in("point_code",schBaseTask.getPoint_code1(),schBaseTask.getPoint_code2())); schBaseTask.setRemark(ex.getMessage()); schBaseTask.setUpdate_time(new Date()); schBaseTask.setUpdate_name("acs"); schBaseTask.setTask_status(StatusEnum.TASK_START_ERROR.getCode()); - taskService.save(schBaseTask); + taskService.updateById(schBaseTask); } return task.getString("task_id"); } + @NotNull + private JSONObject packageTask(JSONObject param, PdmProduceWorkorder order) { + JSONObject task = new JSONObject(); + task.put("task_id", IdUtil.getStringId()); + task.put("task_name", AcsTaskEnum.TASK_WARP_MAC.getDesc()); + task.put("task_type", AcsTaskEnum.TASK_WARP_MAC.getCode()); + task.put("task_code", CodeUtil.getNewCode("TASK_CODE")); + task.put("acs_task_type", AcsTaskEnum.ACS_TASK_TYPE_NON_WEIGHING_TASK_OF_PS20.getCode()); + task.put("task_status", StatusEnum.TASK_CREATE.getCode()); + task.put("point_code3", param.getString("device_code")); + task.put("handle_class", this.getClass().getName()); + task.put("is_delete", StatusEnum.STATUS_FLASE.getCode()); + task.put("is_send", true); + String currentUserId = SecurityUtils.getCurrentUserId(); + task.put("create_id", currentUserId); + task.put("create_name", SecurityUtils.getCurrentNickName()); + task.put("create_time", DateUtil.now()); + task.put("finished_type", "1"); + task.put("priority", "1"); + task.put("material_id",order.getMaterial_id()); + task.put("agv_system_type", AcsTaskEnum.AGV_SYSTEM_XC.getCode()); + task.put("table_fk_id", order.getWorkorder_code()); + return task; + } + @Override public void cancel(String task_id) { } @Override - public void pointConfirm(JSONObject taskObj) { + public void pointConfirm(JSONObject task) { // 去刻字缓存区寻找空位 - List> points = pointService.queryVehicle( - MapOf.of("is_used", "1", - "lock_type", StatusEnum.LOCK_OFF.getCode(), - "region_code", "A1_KZHC", - "material_id", taskObj.getString("material_id"))); - if (ObjectUtil.isNotEmpty(points)) { - Map map = points.get(0); - if (CollectionUtils.isEmpty(map)|| StringUtils.isEmpty(map.get("point_code"))){ - throw new BadRequestException("刻字缓存区没有可用货位."); - } + List list = pointService.list(new QueryWrapper() + .eq("region_code", "A1_KZHC") + .eq("lock_type", StatusEnum.LOCK_OFF.getCode()) + .eq("is_used", "1") + .eq("point_status", StatusEnum.POINT_STATUS_FULL.getCode()) + .eq("material_id", task.getString("material_id")) + .gt("qty", 0)); + if (ObjectUtil.isNotEmpty(list)) { + SchBasePoint schBasePoint = list.get(0); pointService.update(new UpdateWrapper() .set("lock_type",StatusEnum.LOCK_ON.getCode()) - .eq("point_code",map.get("point_code"))); + .set("task_id",task.getString("task_id")) + .eq("point_code",schBasePoint.getPoint_code())); // 设置点位 - taskObj.put("update_time", DateUtil.now()); - taskObj.put("point_code1",map.get("point_code")); - SchBaseTask schBaseTask = taskObj.toJavaObject(SchBaseTask.class); + task.put("update_time", DateUtil.now()); + task.put("point_code1",schBasePoint.getPoint_code()); + SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class); schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode()); schBaseTask.setUpdate_time(new Date()); + schBaseTask.setTask_group_id(org.nl.common.utils.IdUtil.getStringId()); taskService.updateById(schBaseTask); + OptionRecord.recordAsync(OptionRecord.OptionEnum.ADD, + WorkerOrderEnum.CREATE.getCode(), + OptionRecord.Buss.POINT, + task.getString("point_code1"), MapOf.of("start",task.getString("point_code1"),"end",task.getString("point_code3"),"time",DateUtil.now(),"order",task.getString("task_id"))); + } else { throw new BadRequestException("刻字缓存区没有可用货位."); } } + + @Override + public List schedulerTask(List tasks) { + ArrayList Merge = new ArrayList<>(); + if (!CollectionUtils.isEmpty(tasks)){ + for (SchBaseTask task : tasks) { + task.setTask_group_id(org.nl.common.utils.IdUtil.getStringId()); + Merge.add(task); + } + } + return Merge; + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/sendEmpty/WrapSendEmptyTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/packageWrap/WrapSendEmptyTask.java similarity index 61% rename from mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/sendEmpty/WrapSendEmptyTask.java rename to mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/packageWrap/WrapSendEmptyTask.java index 388ac3b2..41a4dab1 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/sendEmpty/WrapSendEmptyTask.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/packageWrap/WrapSendEmptyTask.java @@ -1,4 +1,4 @@ -package org.nl.wms.product_manage.sch.tasks.sendEmpty; +package org.nl.wms.product_manage.sch.tasks.packageWrap; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; @@ -7,9 +7,13 @@ import cn.hutool.core.util.StrUtil; 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.StatusEnum; +import org.nl.common.enums.WorkerOrderEnum; +import org.nl.common.utils.MapOf; +import org.nl.common.utils.OptionRecord; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.system.util.CodeUtil; @@ -47,60 +51,46 @@ public class WrapSendEmptyTask extends AbstractAcsTask { @Override @Transactional(rollbackFor = Exception.class) public void updateTaskStatus(JSONObject task, String status) { - WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); - WQLObject pointTab = WQLObject.getWQLObject("sch_base_point"); - JSONObject taskObj = taskTab.query("task_id = '" + task.getString("task_id") + "' " + - "AND task_status <> '" + StatusEnum.TASK_FINISH.getCode() + "' " + - "AND task_status <> '" + StatusEnum.TASK_CANNEL.getCode() + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(taskObj)) { + SchBaseTask one = taskService.getOne(new QueryWrapper() + .eq("task_id", task.getString("task_id"))); + if (one.getTask_status().equals(StatusEnum.TASK_FINISH.getCode())||one.getTask_status().equals(StatusEnum.TASK_CANNEL.getCode())) { throw new BadRequestException("任务已完成,不可取消!"); } - String pointCode2 = taskObj.getString("point_code2"); - JSONObject pointObj = null; - if (ObjectUtil.isNotEmpty(pointCode2)) { - pointObj = pointTab.query("point_code = '" + pointCode2 + "'").uniqueResult(0); - } if (status.equals(AcsTaskEnum.STATUS_START.getCode())) { // 执行中 - // 任务执行中 - taskObj.put("task_status", StatusEnum.TASK_RUNNING.getCode()); - taskObj.put("update_time", DateUtil.now()); - taskTab.update(taskObj); - } else if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) { - // 完成 - if (ObjectUtil.isNotEmpty(pointObj)) { - // 释放点位并赋值 - pointObj.put("lock_type", StatusEnum.LOCK_OFF.getCode()); - pointObj.put("point_status", StatusEnum.POINT_STATUS_EMPTY_VEHICLE.getCode()); - pointObj.put("update_time", DateUtil.now()); - pointTab.update(pointObj); - } - // 2任务完成 - taskObj.put("task_status", StatusEnum.TASK_FINISH.getCode()); - taskObj.put("update_time", DateUtil.now()); - taskObj.put("finished_type", ObjectUtil.isNotEmpty(task.getString("finished_type"))? - task.getString("finished_type"):AcsTaskEnum.AUTO_TASK_FINISHED_TYPE.getCode()); - taskTab.update(taskObj); - } else { - /** - * 取消任务 - * 1、点位恢复 - * 2、任务状态修改 - */ - // 2点位恢复 - if (ObjectUtil.isNotEmpty(pointObj)) { - // 释放点位 - pointObj.put("lock_type", StatusEnum.LOCK_OFF.getCode()); - pointObj.put("update_time", DateUtil.now()); - pointTab.update(pointObj); - } - // 2任务取消 - taskObj.put("task_status", StatusEnum.TASK_CANNEL.getCode()); - taskObj.put("update_time", DateUtil.now()); - taskObj.put("finished_type", ObjectUtil.isNotEmpty(task.getString("finished_type"))? - task.getString("finished_type"):AcsTaskEnum.AUTO_TASK_FINISHED_TYPE.getCode()); - taskTab.update(taskObj); + taskService.update(new UpdateWrapper() + .set("task_status",StatusEnum.TASK_RUNNING.getCode()).set("update_time",new Date()) + .eq("task_id",task.getString("task_id"))); + } + if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) { + // 完成 + pointService.update(new UpdateWrapper().set("lock_type",StatusEnum.LOCK_OFF.getCode()) + .set("point_status",StatusEnum.POINT_STATUS_EMPTY_VEHICLE.getCode()) + .set("material_id","") + .set("task_id","") + .set("qty",0) + .eq("point_code",one.getPoint_code3())); + taskService.update(new UpdateWrapper() + .set("task_status",StatusEnum.TASK_FINISH.getCode()).set("update_time",new Date()) + .eq("task_id",task.getString("task_id"))); + } + if (status.equals(AcsTaskEnum.STATUS_CANNEL.getCode())) { + // 完成 + pointService.update(new UpdateWrapper() + .set("lock_type",StatusEnum.LOCK_OFF.getCode()) + .set("point_status",StatusEnum.POINT_STATUS_EMPTY.getCode()) + .set("material_id","").set("qty",0) + .eq("point_code",one.getPoint_code3())); + taskService.update(new UpdateWrapper() + .set("task_status",StatusEnum.TASK_CANNEL.getCode()).set("update_time",new Date()) + .eq("task_id",task.getString("task_id"))); + } + OptionRecord.recordAsync(OptionRecord.OptionEnum.UPDATE, + status, + OptionRecord.Buss.POINT, + one.getPoint_code1(), MapOf.of("start",one.getPoint_code1(),"end",one.getPoint_code3(),"time",DateUtil.now(),"order",one.getTask_id())); + } @Override @@ -130,6 +120,7 @@ public class WrapSendEmptyTask extends AbstractAcsTask { task.put("is_delete", StatusEnum.STATUS_FLASE.getCode()); String currentUserId = SecurityUtils.getCurrentUserId(); task.put("create_id", currentUserId); + task.put("is_send", true); task.put("create_name", SecurityUtils.getCurrentNickName()); task.put("update_id", currentUserId); task.put("update_name", SecurityUtils.getCurrentNickName()); @@ -137,20 +128,20 @@ public class WrapSendEmptyTask extends AbstractAcsTask { task.put("update_time", DateUtil.now()); task.put("priority", "1"); task.put("agv_system_type", AcsTaskEnum.AGV_SYSTEM_XC.getCode()); - WQLObject.getWQLObject("SCH_BASE_Task").insert(task); + SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class); + taskService.save(schBaseTask); // 找终点 try { pointConfirm(task); JSONArray data = new JSONArray(); - JSONObject result = taskTab.query("task_id = '" + taskdtl_id + "'").uniqueResult(0); - data.add(result); + data.add(task); // 下发 - wms.issueTaskToAcs2(data); + wms.issueTaskToAcs(data); } catch (Exception ex) { // 未找到 task.put("remark", ex.getMessage()); task.put("update_time", DateUtil.now()); - task.put("task_status", StatusEnum.TASK_START_END_P.getCode()); + task.put("task_status", StatusEnum.TASK_START_ERROR.getCode()); taskTab.update(task); } return taskdtl_id; @@ -164,23 +155,32 @@ public class WrapSendEmptyTask extends AbstractAcsTask { @Override public void pointConfirm(JSONObject task) { // 去刻字缓存区寻找空位 - List list = pointService.list(new QueryWrapper().isNull("vehicle_code") + List list = pointService.list(new QueryWrapper() .eq("is_used", "1") .eq("region_code","A1_KZHC") - .eq("lock_type", StatusEnum.LOCK_OFF.getCode())); + .eq("point_status", StatusEnum.POINT_STATUS_EMPTY.getCode()) + .eq("lock_type", StatusEnum.LOCK_OFF.getCode()) + .last("and (material_id is null or material_id = '')") + ); if (ObjectUtil.isNotEmpty(list)) { // 找到位置 // 点位上锁 SchBasePoint point = list.get(0); point.setLock_type(StatusEnum.LOCK_ON.getCode()); + point.setTask_id(task.getString("task_id")); pointService.updateById(point); // 设置点位 task.put("update_time", DateUtil.now()); - task.put("point_code2",point.getPoint_code()); + task.put("point_code3",point.getPoint_code()); SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class); schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode()); schBaseTask.setUpdate_time(new Date()); + schBaseTask.setTask_group_id(org.nl.common.utils.IdUtil.getStringId()); + OptionRecord.recordAsync(OptionRecord.OptionEnum.ADD, + WorkerOrderEnum.CREATE.getCode(), + OptionRecord.Buss.POINT, + task.getString("point_code1"), MapOf.of("start",task.getString("point_code1"),"end",task.getString("point_code3"),"time",DateUtil.now(),"order",task.getString("task_id"))); taskService.updateById(schBaseTask); } else { throw new BadRequestException("刻字缓存区没有可用货位."); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/callEmpty/PlotterCallEmptyTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/plotter/PlotterCallEmptyTask.java similarity index 63% rename from mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/callEmpty/PlotterCallEmptyTask.java rename to mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/plotter/PlotterCallEmptyTask.java index be5aec2c..7f65d191 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/callEmpty/PlotterCallEmptyTask.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/plotter/PlotterCallEmptyTask.java @@ -1,8 +1,7 @@ -package org.nl.wms.product_manage.sch.tasks.callEmpty; +package org.nl.wms.product_manage.sch.tasks.plotter; 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 cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; @@ -11,10 +10,13 @@ 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.jetbrains.annotations.NotNull; 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; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.system.util.CodeUtil; @@ -58,33 +60,46 @@ public class PlotterCallEmptyTask extends AbstractAcsTask { private WmsToAcsService wms; @Override @Transactional(rollbackFor = Exception.class) - public void updateTaskStatus(JSONObject param, String status) { - SchBaseTask task = taskService.getById(param.getString("task_id")); + public void updateTaskStatus(JSONObject task, String status) { + SchBaseTask one = taskService.getById(task.getString("task_id")); + if (one.getTask_status().equals(StatusEnum.TASK_FINISH.getCode())||one.getTask_status().equals(StatusEnum.TASK_CANNEL.getCode())) { + throw new BadRequestException("任务已完成,不可取消!"); + } if (status.equals(AcsTaskEnum.STATUS_START.getCode())) { 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())); + .set("update_time",DateUtil.now()).eq("task_id",task.getString("task_id"))); } if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) { // 完成 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())); - pointService.update(new UpdateWrapper() - .set("lock_type",StatusEnum.LOCK_OFF.getCode()) - .in("point_code",task.getPoint_code1(),task.getPoint_code2(),task.getPoint_code3())); + .set("update_time",DateUtil.now()).eq("task_id",task.getString("task_id"))); + pointService.update(new UpdateWrapper().set("lock_type",StatusEnum.LOCK_OFF.getCode()) + .set("point_status",StatusEnum.POINT_STATUS_EMPTY.getCode()) + .set("material_id","").set("qty",0) + .set("task_id","") + .eq("point_code",one.getPoint_code1())); + } if (status.equals(AcsTaskEnum.STATUS_CANNEL.getCode())) { taskService.update(new UpdateWrapper() .set("task_status",StatusEnum.TASK_CANNEL.getCode()) .set("update_name","acs") - .set("update_time",DateUtil.now()).eq("task_id",task.getTask_id())); + .set("update_time",DateUtil.now()).eq("task_id",task.getString("task_id"))); pointService.update(new UpdateWrapper() .set("lock_type",StatusEnum.LOCK_OFF.getCode()) - .in("point_code",task.getPoint_code1(),task.getPoint_code2(),task.getPoint_code3())); + .set("task_id","") + .eq("point_code",one.getPoint_code1())); } + OptionRecord.recordAsync(OptionRecord.OptionEnum.UPDATE, + status, + OptionRecord.Buss.POINT, + one.getPoint_code1(), MapOf.of("start",one.getPoint_code1(),"end",one.getPoint_code3(),"time",DateUtil.now(),"order",one.getTask_id())); + + } @Override @@ -108,28 +123,7 @@ public class PlotterCallEmptyTask extends AbstractAcsTask { throw new BadRequestException(String.format("设备%s存在未完成任务"+list.stream().map(SchBaseTask::getTask_id).collect(Collectors.toList()).toString(), param.getString("device_code"))); } // 查找任务状态 - String taskdtl_id = IdUtil.getSnowflake(1, 1).nextId() + ""; - JSONObject task = new JSONObject(); - task.put("task_id", taskdtl_id); - task.put("task_name", AcsTaskEnum.TASK_PLOTTER_EMPTY.getDesc()); - task.put("task_type", AcsTaskEnum.TASK_PLOTTER_EMPTY.getCode()); - task.put("task_code", CodeUtil.getNewCode("TASK_CODE")); - task.put("acs_task_type", AcsTaskEnum.ACS_TASK_TYPE_NON_WEIGHING_TASK_OF_PS20.getCode()); - task.put("material_id", order.getMaterial_id()); - task.put("task_status", StatusEnum.TASK_CREATE.getCode()); - task.put("point_code2", end_point_code); - task.put("handle_class", this.getClass().getName()); - task.put("is_delete", StatusEnum.STATUS_FLASE.getCode()); - String currentUserId = SecurityUtils.getCurrentUserId(); - task.put("create_id", currentUserId); - task.put("create_name", SecurityUtils.getCurrentNickName()); - task.put("update_id", currentUserId); - task.put("update_name", SecurityUtils.getCurrentNickName()); - task.put("create_time", DateUtil.now()); - task.put("update_time", DateUtil.now()); - task.put("priority", "1"); - task.put("agv_system_type", AcsTaskEnum.AGV_SYSTEM_XC.getCode()); - task.put("table_fk_id",order.getWorkorder_code()); + JSONObject task = packageTask(end_point_code, order.getMaterial_id(),order.getWorkorder_code()); SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class); taskService.save(schBaseTask); // 找终点 @@ -147,7 +141,33 @@ public class PlotterCallEmptyTask extends AbstractAcsTask { schBaseTask.setTask_status(StatusEnum.TASK_START_ERROR.getCode()); taskService.save(schBaseTask); } - return taskdtl_id; + return task.getString("task_id"); + } + + @NotNull + private JSONObject packageTask(String end_point_code, String material_id,String fk) { + JSONObject task = new JSONObject(); + task.put("task_id", IdUtil.getStringId()); + task.put("task_name", AcsTaskEnum.TASK_PLOTTER_EMPTY.getDesc()); + task.put("task_type", AcsTaskEnum.TASK_PLOTTER_EMPTY.getCode()); + task.put("task_code", CodeUtil.getNewCode("TASK_CODE")); + task.put("acs_task_type", AcsTaskEnum.ACS_TASK_TYPE_NON_WEIGHING_TASK_OF_PS20.getCode()); + task.put("material_id", material_id); + task.put("task_status", StatusEnum.TASK_CREATE.getCode()); + task.put("point_code3", end_point_code); + task.put("handle_class", this.getClass().getName()); + task.put("is_delete", StatusEnum.STATUS_FLASE.getCode()); + String currentUserId = SecurityUtils.getCurrentUserId(); + task.put("create_id", currentUserId); + task.put("create_name", SecurityUtils.getCurrentNickName()); + task.put("update_id", currentUserId); + task.put("update_name", SecurityUtils.getCurrentNickName()); + task.put("create_time", DateUtil.now()); + task.put("update_time", DateUtil.now()); + task.put("priority", "1"); + task.put("agv_system_type", AcsTaskEnum.AGV_SYSTEM_XC.getCode()); + task.put("table_fk_id", fk); + return task; } @Override @@ -161,29 +181,29 @@ public class PlotterCallEmptyTask extends AbstractAcsTask { /** * 满料请求 * 从刻字机满料缓存区中获取空位放入就行 - * @param taskObj: 任务对象 + * @param : 任务对象 */ @Override - public void pointConfirm(JSONObject taskObj) { - // 去刻字缓存区寻找空框 TODO:空箱 - List> points = pointService.queryVehicle( - MapOf.of("is_used", "1", - "lock_type", StatusEnum.LOCK_OFF.getCode(), - "region_code", "A1_KZHC", - "material_null", "material_null")); - if (ObjectUtil.isNotEmpty(points)) { - Map map = points.get(0); - if (CollectionUtils.isEmpty(map)|| StringUtils.isEmpty(map.get("point_code"))){ - throw new BadRequestException("刻字缓存区没有可用货位."); - } - pointService.update(new UpdateWrapper() - .set("lock_type",StatusEnum.LOCK_ON.getCode()) - .eq("point_code",map.get("point_code"))); + public void pointConfirm(JSONObject task) { + // 去刻字缓存区寻找空位 + List list = pointService.list(new QueryWrapper() + .eq("is_used", "1") + .eq("region_code","A1_KZHC") + .eq("point_status", StatusEnum.POINT_STATUS_EMPTY_VEHICLE.getCode()) + .eq("lock_type", StatusEnum.LOCK_OFF.getCode()) + .last("and (material_id is null or material_id = '')") + ); + if (ObjectUtil.isNotEmpty(list)) { + SchBasePoint point = list.get(0); + point.setLock_type(StatusEnum.LOCK_ON.getCode()); + point.setTask_id(task.getString("task_id")); + pointService.updateById(point); // 设置点位 - taskObj.put("update_time", DateUtil.now()); - taskObj.put("point_code1",map.get("point_code")); - SchBaseTask schBaseTask = taskObj.toJavaObject(SchBaseTask.class); + task.put("update_time", DateUtil.now()); + task.put("point_code1",point.getPoint_code()); + SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class); schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode()); + schBaseTask.setTask_group_id(org.nl.common.utils.IdUtil.getStringId()); schBaseTask.setUpdate_time(new Date()); taskService.updateById(schBaseTask); } else { @@ -202,4 +222,38 @@ public class PlotterCallEmptyTask extends AbstractAcsTask { } return Merge; } + + @Transactional + public void callEmpVechile(String device_code) { + List list = pointService.list(new QueryWrapper() + .eq("is_used", "1") + .eq("region_code","A1_KZHC") + .eq("point_status", StatusEnum.POINT_STATUS_EMPTY_VEHICLE.getCode()) + .eq("lock_type", StatusEnum.LOCK_OFF.getCode()) + .last("and (material_id is null or material_id = '')") + ); + if (ObjectUtil.isNotEmpty(list)) { + SchBasePoint point = list.get(0); + JSONObject task = packageTask(device_code, null, null); + point.setLock_type(StatusEnum.LOCK_ON.getCode()); + point.setTask_id(task.getString("task_id")); + pointService.updateById(point); + // 设置点位 + task.put("update_time", DateUtil.now()); + task.put("point_code1",point.getPoint_code()); + task.put("task_status",StatusEnum.TASK_START_END_P.getCode()); + task.put("task_group_id",IdUtil.getStringId()); + SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class); + taskService.save(schBaseTask); + JSONArray data = new JSONArray(); + data.add(task); + // 下发 + Map result = wms.issueTaskToAcs2(data); + if (!StrUtil.equals((String)result.get("status"), "200")) { + throw new BadRequestException((String)result.get("message")); + } + } else { + throw new BadRequestException("刻字缓存区没有可用货位."); + } + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/sendMaterial/PlotterSendMaterialTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/plotter/PlotterSendMaterialTask.java similarity index 71% rename from mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/sendMaterial/PlotterSendMaterialTask.java rename to mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/plotter/PlotterSendMaterialTask.java index 254e015a..9c50851b 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/sendMaterial/PlotterSendMaterialTask.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/plotter/PlotterSendMaterialTask.java @@ -1,4 +1,4 @@ -package org.nl.wms.product_manage.sch.tasks.sendMaterial; +package org.nl.wms.product_manage.sch.tasks.plotter; import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; @@ -10,10 +10,13 @@ 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.apache.commons.lang3.StringUtils; 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; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.system.util.CodeUtil; @@ -22,6 +25,7 @@ import org.nl.wms.ext.acs.service.WmsToAcsService; 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.device.IPdmBiDeviceService; +import org.nl.wms.product_manage.service.device.dao.PdmBiDevice; 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.point.ISchBasePointService; @@ -52,37 +56,59 @@ public class PlotterSendMaterialTask extends AbstractAcsTask { private ISchBasePointService pointService; @Autowired private WmsToAcsService wms; - @Override + @Override @Transactional(rollbackFor = Exception.class) public void updateTaskStatus(JSONObject param, String status) { - SchBaseTask task = taskService.getById(param.getString("task_id")); + SchBaseTask one = taskService.getById(param.getString("task_id")); + if (one.getTask_status().equals(StatusEnum.TASK_FINISH.getCode())||one.getTask_status().equals(StatusEnum.TASK_CANNEL.getCode())) { + throw new BadRequestException("任务已完成,不可取消!"); + } if (status.equals(AcsTaskEnum.STATUS_START.getCode())) { - 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())); + UpdateWrapper updateWrapper = new UpdateWrapper() + .set("task_status", StatusEnum.TASK_RUNNING.getCode()) + .set("update_name", "acs") + .set("update_time", DateUtil.now()).eq("task_id", one.getTask_id()); + if (!("fall_finish"+one.getTask_id()).equals(one.getRemark())){ + updateWrapper.set("remark","fall_finish"+one.getTask_id()); + Map extParam = (Map)param.get("ext_param"); + String weight = extParam.get("weight"); + if (StringUtils.isNotEmpty(weight) && Integer.valueOf(weight)>0){ + updateWrapper.set("material_qty",weight); + } + } + taskService.update(updateWrapper); } if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) { // 完成 taskService.update(new UpdateWrapper() .set("task_status",StatusEnum.TASK_FINISH.getCode()) + .set("point_status",StatusEnum.POINT_STATUS_FULL.getCode()) .set("update_name","acs") - .set("update_time",DateUtil.now()).eq("task_id",task.getTask_id())); + .set("update_time",DateUtil.now()).eq("task_id",one.getTask_id())); pointService.update(new UpdateWrapper() .set("lock_type",StatusEnum.LOCK_OFF.getCode()) - .in("point_code",task.getPoint_code1(),task.getPoint_code2(),task.getPoint_code3())); + .set("point_status",StatusEnum.POINT_STATUS_FULL.getCode()) + .set("material_id",one.getMaterial_id()) + .set("qty",one.getMaterial_qty()) + .eq("point_code",one.getPoint_code3())); } if (status.equals(AcsTaskEnum.STATUS_CANNEL.getCode())) { // 完成 taskService.update(new UpdateWrapper() .set("task_status",StatusEnum.TASK_CANNEL.getCode()) .set("update_name","acs") - .set("update_time",DateUtil.now()).eq("task_id",task.getTask_id())); + .set("update_time",DateUtil.now()).eq("task_id",one.getTask_id())); pointService.update(new UpdateWrapper() .set("lock_type",StatusEnum.LOCK_OFF.getCode()) - .in("point_code",task.getPoint_code1(),task.getPoint_code2(),task.getPoint_code3())); + .set("point_status",StatusEnum.POINT_STATUS_EMPTY.getCode()) + .eq("point_code",one.getPoint_code3())); } + OptionRecord.recordAsync(OptionRecord.OptionEnum.UPDATE, + status, + OptionRecord.Buss.POINT, + one.getPoint_code1(), MapOf.of("start",one.getPoint_code1(),"end",one.getPoint_code3(),"time",DateUtil.now(),"order",one.getTask_id())); + } @Override @@ -100,7 +126,7 @@ public class PlotterSendMaterialTask extends AbstractAcsTask { .and(wa->wa .eq("point_code1", param.getString("device_code")) .or() - .eq("point_code2", param.getString("device_code"))) + .eq("point_code3", param.getString("device_code"))) ); if (!CollectionUtils.isEmpty(list)){ throw new BadRequestException(String.format("设备%s存在未完成任务"+list.stream().map(SchBaseTask::getTask_id).collect(Collectors.toList()).toString(), param.getString("device_code"))); @@ -112,7 +138,7 @@ public class PlotterSendMaterialTask extends AbstractAcsTask { task.put("task_name", AcsTaskEnum.TASK_PLOTTER_MAC.getDesc()); task.put("task_type", AcsTaskEnum.TASK_PLOTTER_MAC.getCode()); task.put("task_code", CodeUtil.getNewCode("TASK_CODE")); - task.put("acs_task_type", AcsTaskEnum.ACS_TASK_TYPE_NON_WEIGHING_TASK_OF_PS20.getCode()); + task.put("acs_task_type", AcsTaskEnum.ACS_TASK_TYPE_WEIGHING_TASK_OF_PS20.getCode()); task.put("material_id", order.getMaterial_id()); task.put("task_status", TaskStatusEnum.CREATED.getCode()); task.put("point_code1", start_point_code); @@ -120,6 +146,7 @@ public class PlotterSendMaterialTask extends AbstractAcsTask { task.put("is_delete", StatusEnum.STATUS_FLASE.getCode()); String currentUserId = SecurityUtils.getCurrentUserId(); task.put("create_id", currentUserId); + task.put("is_send", true); task.put("create_name", SecurityUtils.getCurrentNickName()); task.put("create_time", DateUtil.now()); task.put("priority", "1"); @@ -134,7 +161,7 @@ public class PlotterSendMaterialTask extends AbstractAcsTask { JSONArray data = new JSONArray(); data.add(task); // 下发 - wms.issueTaskToAcs2(data); + wms.issueTaskToAcs(data); } catch (Exception ex) { // 未找到 log.error("刻字满料请求异常,error:{}",ex); @@ -142,7 +169,7 @@ public class PlotterSendMaterialTask extends AbstractAcsTask { schBaseTask.setUpdate_time(new Date()); schBaseTask.setUpdate_name("acs"); schBaseTask.setTask_status(StatusEnum.TASK_START_ERROR.getCode()); - taskService.save(schBaseTask); + taskService.updateById(schBaseTask); } return taskdtl_id; } @@ -162,24 +189,33 @@ public class PlotterSendMaterialTask extends AbstractAcsTask { @Override public void pointConfirm(JSONObject task) { // 去刻字缓存区寻找空位 - List list = pointService.list(new QueryWrapper().isNull("vehicle_code") + List list = pointService.list(new QueryWrapper() .eq("is_used", "1") .eq("region_code","A1_KZHC") - .eq("lock_type", StatusEnum.LOCK_OFF.getCode())); - + .eq("point_status", StatusEnum.POINT_STATUS_EMPTY.getCode()) + .eq("lock_type", StatusEnum.LOCK_OFF.getCode()) + .last("and (material_id is null or material_id = '')") + ); if (ObjectUtil.isNotEmpty(list)) { // 找到位置 // 点位上锁 SchBasePoint point = list.get(0); point.setLock_type(StatusEnum.LOCK_ON.getCode()); + point.setTask_id(task.getString("task_id")); pointService.updateById(point); // 设置点位 task.put("update_time", DateUtil.now()); - task.put("point_code2",point.getPoint_code()); + task.put("point_code3",point.getPoint_code()); SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class); schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode()); schBaseTask.setUpdate_time(new Date()); + schBaseTask.setTask_group_id(org.nl.common.utils.IdUtil.getStringId()); taskService.updateById(schBaseTask); + OptionRecord.recordAsync(OptionRecord.OptionEnum.ADD, + WorkerOrderEnum.CREATE.getCode(), + OptionRecord.Buss.POINT, + task.getString("point_code1"), MapOf.of("start",task.getString("point_code1"),"end",task.getString("point_code3"),"time",DateUtil.now(),"order",task.getString("task_id"))); + } else { throw new BadRequestException("刻字缓存区没有可用货位."); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/callEmpty/WashCallEmptyTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/wash/WashCallEmptyTask.java similarity index 96% rename from mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/callEmpty/WashCallEmptyTask.java rename to mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/wash/WashCallEmptyTask.java index da59ae24..b9f03745 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/callEmpty/WashCallEmptyTask.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/wash/WashCallEmptyTask.java @@ -1,4 +1,4 @@ -package org.nl.wms.product_manage.sch.tasks.callEmpty; +package org.nl.wms.product_manage.sch.tasks.wash; import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Assert; @@ -112,7 +112,7 @@ public class WashCallEmptyTask extends AbstractAcsTask { task.put("acs_task_type", AcsTaskEnum.ACS_TASK_TYPE_NON_WEIGHING_TASK_OF_PS20.getCode()); task.put("material_id", order.getMaterial_id()); task.put("task_status", StatusEnum.TASK_CREATE.getCode()); - task.put("point_code2", end_point_code); + task.put("point_code3", end_point_code); task.put("handle_class", this.getClass().getName()); task.put("is_delete", StatusEnum.STATUS_FLASE.getCode()); String currentUserId = SecurityUtils.getCurrentUserId(); @@ -140,7 +140,7 @@ public class WashCallEmptyTask extends AbstractAcsTask { schBaseTask.setUpdate_time(new Date()); schBaseTask.setUpdate_name("acs"); schBaseTask.setTask_status(StatusEnum.TASK_START_ERROR.getCode()); - taskService.save(schBaseTask); + taskService.updateById(schBaseTask); } return taskdtl_id; } @@ -154,13 +154,13 @@ public class WashCallEmptyTask extends AbstractAcsTask { } /** - * 满料请求 - * 从刻字机满料缓存区中获取空位放入就行 + * 空框请求 + * 从半成品区中获取空位放入就行 * @param taskObj: 任务对象 */ @Override public void pointConfirm(JSONObject taskObj) { - // 去刻字缓存区寻找空框 TODO:空箱 + //TODO:从半成品区中获取空位放入就行 List> points = pointService.queryVehicle( MapOf.of("is_used", "1", "lock_type", StatusEnum.LOCK_OFF.getCode(), diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/sendMaterial/WashSendMaterialQZTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/wash/WashSendMaterialQZTask.java similarity index 98% rename from mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/sendMaterial/WashSendMaterialQZTask.java rename to mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/wash/WashSendMaterialQZTask.java index 086e083f..3cd17b65 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/sendMaterial/WashSendMaterialQZTask.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/wash/WashSendMaterialQZTask.java @@ -1,4 +1,4 @@ -package org.nl.wms.product_manage.sch.tasks.sendMaterial; +package org.nl.wms.product_manage.sch.tasks.wash; import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Assert; @@ -154,7 +154,7 @@ public class WashSendMaterialQZTask extends AbstractAcsTask { schBaseTask.setUpdate_time(new Date()); schBaseTask.setUpdate_name("acs"); schBaseTask.setTask_status(StatusEnum.TASK_START_ERROR.getCode()); - taskService.save(schBaseTask); + taskService.updateById(schBaseTask); } return taskdtl_id; } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/sendMaterial/WashSendMaterialTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/wash/WashSendMaterialTask.java similarity index 97% rename from mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/sendMaterial/WashSendMaterialTask.java rename to mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/wash/WashSendMaterialTask.java index b470c9ec..52b0e210 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/sendMaterial/WashSendMaterialTask.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/wash/WashSendMaterialTask.java @@ -1,4 +1,4 @@ -package org.nl.wms.product_manage.sch.tasks.sendMaterial; +package org.nl.wms.product_manage.sch.tasks.wash; import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Assert; @@ -30,13 +30,10 @@ 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.nl.wms.storage_manage.IOSEnum; import org.nl.wms.storage_manage.productmanage.util.DivRuleCpService; import org.nl.wms.storage_manage.productmanage.util.RuleUtil; -import org.nl.wms.storage_manage.semimanage.service.structIvt.dao.StIvtStructivtBcp; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.transaction.TransactionDefinition; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/processroute/dao/PdmBiProcessroute.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/processroute/dao/PdmBiProcessroute.java index a75ff4ca..a369fb83 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/processroute/dao/PdmBiProcessroute.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/processroute/dao/PdmBiProcessroute.java @@ -1,6 +1,8 @@ package org.nl.wms.product_manage.service.processroute.dao; import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import lombok.Data; @@ -24,6 +26,7 @@ public class PdmBiProcessroute implements Serializable { /** * 工艺路线标识 */ + @TableId(value = "processroute_id") private String processroute_id; /** diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/processroute/impl/PdmBiProcessrouteServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/processroute/impl/PdmBiProcessrouteServiceImpl.java index aa86317e..32c77a9a 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/processroute/impl/PdmBiProcessrouteServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/processroute/impl/PdmBiProcessrouteServiceImpl.java @@ -89,7 +89,7 @@ public class PdmBiProcessrouteServiceImpl extends ServiceImpl1){ + processroutedtl.setNextworkprocedure_id(dataArr.getJSONObject(i + 1).getString("workprocedure_id")); + } } else if ( i == dataArr.size() - 1) { processroutedtl.setPreworkprocedure_id(dataArr.getJSONObject(i - 1).getString("workprocedure_id")); processroutedtl.setNextworkprocedure_id(" "); 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 4a92b47c..9ac912ba 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 @@ -25,6 +25,9 @@ and wr.workorder_id = #{query.workorder_id} + + and wr.workorder_code = #{query.workorder_code} + and wr.shift_type_scode = #{query.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 e4017e7e..869cc3ef 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 @@ -1,8 +1,9 @@ package org.nl.wms.product_manage.service.workorder.impl; - +import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import cn.hutool.poi.excel.ExcelReader; import cn.hutool.poi.excel.ExcelUtil; import com.alibaba.fastjson.JSON; @@ -14,11 +15,12 @@ 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.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; - - +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; import org.jetbrains.annotations.NotNull; import org.nl.common.TableDataInfo; import org.nl.common.domain.query.PageQuery; @@ -33,6 +35,8 @@ import org.nl.wms.ext.acs.service.WmsToAcsService; import org.nl.wms.masterdata_manage.master.service.classstandard.IMdPbClassstandardService; 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.ProduceWorkorderDto; import org.nl.wms.mps.service.dto.ProduceshiftorderDto; import org.nl.wms.product_manage.ReportEnum; import org.nl.wms.product_manage.service.device.IPdmBiDeviceService; @@ -49,6 +53,7 @@ import org.nl.wms.product_manage.service.workprocedure.IPdmBiWorkprocedureServic import org.nl.wms.product_manage.service.workprocedure.dao.PdmBiWorkprocedure; 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; @@ -65,6 +70,7 @@ import java.io.InputStream; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.*; +import java.util.function.Predicate; import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -78,7 +84,7 @@ import java.util.stream.Collectors; */ @Service @Slf4j -public class IPdmProduceWorkorderServiceImpl extends ServiceImpl implements IPdmProduceWorkorderService{ +public class IPdmProduceWorkorderServiceImpl extends ServiceImpl implements IPdmProduceWorkorderService { @Autowired private IMdPbClassstandardService classstandardService; @Autowired @@ -100,7 +106,7 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl().eq("workorder_id", form.getString("workorder_id"))); - if(one == null) { - throw new BadRequestException("被删除或无权限,操作失败!"); + PdmProduceWorkorder one = this.getOne(new QueryWrapper() + .eq("workorder_id", form.getString("workorder_id")) + .in("workorder_status", "1","2","4")); + if (one == null) { + throw new BadRequestException("工单状态非生产状态下不允许修改"); } - PdmProduceWorkorder newEntity = form.toJavaObject(PdmProduceWorkorder.class); - PdmProduceWorkorder pdmProduceWorkorder = PdmProduceWorkorder - .builder() - .workorder_id(newEntity.getWorkorder_id()) - .product_area(newEntity.getProduct_area()) - .workprocedure_id(newEntity.getWorkprocedure_id()) - .material_id(newEntity.getMaterial_id()) - .material_weight(newEntity.getMaterial_weight()) - .plan_qty(newEntity.getPlan_qty()) - .planproducestart_date(newEntity.getPlanproducestart_date()) - .planproduceend_date(newEntity.getPlanproduceend_date()) - .report_qty(newEntity.getReport_qty()) - .shift_type_scode(newEntity.getShift_type_scode()) - .sale_id(newEntity.getSale_id()) - .is_needmove(newEntity.getIs_needmove()) - .is_canupdate_update(newEntity.getIs_canupdate_update()) - .down_time(DateUtil.now()) - .down_id(SecurityUtils.getCurrentUserId()) - .down_name(SecurityUtils.getCurrentNickName()) - .build(); - this.updateById(pdmProduceWorkorder); - this.recordWorkOrder(OptionRecord.OptionEnum.UPDATE, pdmProduceWorkorder.getWorkorder_id()); + PdmProduceWorkorder entity = form.toJavaObject(PdmProduceWorkorder.class); + entity.setDown_time(DateUtil.now()); + entity.setDown_id(SecurityUtils.getCurrentUserId()); + entity.setDown_name(SecurityUtils.getCurrentNickName()); + entity.setReal_qty(null); + this.updateById(entity); + + this.recordWorkOrder(OptionRecord.OptionEnum.UPDATE, entity.getWorkorder_id()); } @Override @@ -175,9 +170,8 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl ids) { - if(ids == null || ids.size() == 0) { + if (ids == null || ids.size() == 0) { return; } List workorders = this.list(new QueryWrapper().in("workorder_id", ids).lt("workorder_status",WorkerOrderEnum.AUTO_COMPLETE.getCode())); @@ -205,44 +199,27 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl workorders = this.list(new QueryWrapper().in("workorder_id", ids)); - for(PdmProduceWorkorder one : workorders) { - WorkorderRecord record = WorkorderRecord - .builder() - .workorder_id(one.getWorkorder_id()) - .device_code(one.getDevice_code()) - .dq_init_qty(one.getReal_qty()) - .dq_finish_qty(one.getReal_qty()) - .operatetime_start(one.getCreate_time()) - .workprocedure_id(one.getWorkprocedure_id()) - .operatetime_end(DateUtil.now()) - .shift_type_scode(one.getShift_type_scode()) - .product_area(one.getProduct_area()) - .build(); - OptionRecord.recordAsync(optionEnum, one.getWorkorder_status(), OptionRecord.Buss.WORKORDER, one.getWorkorder_id(), record); - } } @Override public void unDown(List ids) { - if(ids == null || ids.size() == 0) { + if (ids == null || ids.size() == 0) { return; } List list = this.list(new QueryWrapper() - .ne("workorder_status", WorkerOrderEnum.SEND.getCode()) - .in("workorder_id", ids)); - if(list.size() > 0) { + .ne("workorder_status", WorkerOrderEnum.SEND.getCode()) + .in("workorder_id", ids)); + if (list.size() > 0) { throw new BadRequestException("只有下发状态的工单才能取消下发"); } this.update(new UpdateWrapper() - .set("workorder_status", WorkerOrderEnum.CREATE.getCode()) - .set("down_id", SecurityUtils.getCurrentUserId()) - .set("down_name", SecurityUtils.getCurrentNickName()) - .set("down_time", new Date()) - .in("workorder_id", ids)); + .set("workorder_status", WorkerOrderEnum.CREATE.getCode()) + .set("down_id", SecurityUtils.getCurrentUserId()) + .set("down_name", SecurityUtils.getCurrentNickName()) + .set("down_time", new Date()) + .in("workorder_id", ids)); + this.recordWorkOrder(OptionRecord.OptionEnum.UPDATE, ids.toArray(new String[0])); } @@ -250,44 +227,42 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl() - .set("workorder_status", WorkerOrderEnum.FORCE_COMPLETE.getCode()) - .set("confirm_id", SecurityUtils.getCurrentUserId()) - .set("confirm_name", SecurityUtils.getCurrentNickName()) - .set("confirm_time", new Date()) - .in("workorder_id", workorder_id)); + .set("workorder_status", WorkerOrderEnum.FORCE_COMPLETE.getCode()) + .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(); map.put("workorder_id", workorder_id); map.put("type", WorkerOrderEnum.COMPLETE.getCode()); array.add(map); - Map result = wmsToAcsService.orderStatusUpdate(array); - if(!HttpStatus.OK.equals(result.get("status"))) { + Map result = wmsToAcsService.orderStatusUpdate(array); + if (!HttpStatus.OK.equals(result.get("status"))) { log.error((String) result.get("message")); } this.recordWorkOrder(OptionRecord.OptionEnum.UPDATE, workorder_id); } - //public void recordWorkOrder(OptionRecord.OptionEnum optionEnum, String... ids) { - // List workorders = this.list(new QueryWrapper().in("workorder_id", ids)); - // for (PdmProduceWorkorder one : workorders) { - // WorkorderRecord record = WorkorderRecord.builder() - // .workorder_id(one.getWorkorder_id()) - // .device_code(one.getDevice_code()) - // .dq_init_qty(one.getReal_qty()) - // .dq_finish_qty(one.getReal_qty()) - // .operatetime_start(one.getCreate_time()) - // .workprocedure_id(one.getWorkprocedure_id()) - // .operatetime_end(DateUtil.now()) - // .shift_type_scode(one.getShift_type_scode()) - // .product_area(one.getProduct_area()).build(); - // OptionRecord.recordAsync(optionEnum, one.getWorkorder_status(), OptionRecord.Buss.WORKORDER, one.getWorkorder_id(), record); - // } - // } + public void recordWorkOrder(OptionRecord.OptionEnum optionEnum, String... ids) { +// List workorders = this.list(new QueryWrapper().in("workorder_id", ids)); +// for (PdmProduceWorkorder one : workorders) { +// WorkorderRecord record = WorkorderRecord.builder() +// .workorder_id(one.getWorkorder_id()) +// .device_code(one.getDevice_code()) +// .dq_init_qty(one.getReal_qty()) +// .dq_finish_qty(one.getReal_qty()) +// .operatetime_start(one.getCreate_time()) +// .workprocedure_id(one.getWorkprocedure_id()) +// .operatetime_end(DateUtil.now()) +// .shift_type_scode(one.getShift_type_scode()) +// .product_area(one.getProduct_area()).build(); +// OptionRecord.recordAsync(optionEnum, one.getWorkorder_status(), OptionRecord.Buss.WORKORDER, one.getWorkorder_id(), record); +// } + } @Override @Transactional(rollbackFor = Exception.class) @@ -423,8 +398,8 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl first = mdMeMaterialbases.stream().filter(mdMeMaterialbase -> mdMeMaterialbase.getMaterial_code().contains("S") - && Pattern.matches("^[0-9]*$", mdMeMaterialbase.getMaterial_name().substring(mdMeMaterialbase.getMaterial_name().length() - 1)) - ).findFirst(); + && Pattern.matches("^[0-9]*$", mdMeMaterialbase.getMaterial_name().substring(mdMeMaterialbase.getMaterial_name().length() - 1)) + ).findFirst(); if (first.isPresent()){ workorder.setMaterial_id(first.get().getMaterial_id()); }else { @@ -545,8 +520,8 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl first = mdMeMaterialbases.stream().filter(mdMeMaterialbase -> mdMeMaterialbase.getMaterial_code().contains("S") - && Pattern.matches("^[0-9]*$", mdMeMaterialbase.getMaterial_name().substring(mdMeMaterialbase.getMaterial_name().length() - 1)) - ).findFirst(); + && Pattern.matches("^[0-9]*$", mdMeMaterialbase.getMaterial_name().substring(mdMeMaterialbase.getMaterial_name().length() - 1)) + ).findFirst(); if (first.isPresent()){ workorder.setMaterial_id(first.get().getMaterial_id()); }else { @@ -562,8 +537,8 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl workprocedures = data.stream().map(PdmProduceWorkorder::getWorkprocedure_id).collect(Collectors.toList()); List list = deviceService.list(new QueryWrapper() - .in("workprocedure_id", workprocedures) - ); + .in("workprocedure_id", workprocedures) + ); Map> listMap = list.stream().collect(Collectors.groupingBy(PdmBiDevice::getWorkprocedure_id)); for (int i = 0; i < data.size(); i++) { PdmProduceWorkorder item = data.get(i); @@ -616,9 +591,10 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl() - .eq("device_code", param.getString("device_code")) - .in("workorder_status", "3", "4") - .ne("workorder_id", param.getString("workorder_id"))); + .eq("device_code", param.getString("device_code")) + .in("workorder_status", "3", "4") + .eq("is_delete",false) + .ne("workorder_id", param.getString("workorder_id"))); if (ObjectUtil.isNotEmpty(result)) { throw new BadRequestException("已有工单选择该设备开工,请更换开工设备!"); } @@ -626,9 +602,9 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl() - // .set("spec",order.getString("material_spec")) - // .eq("device_code",order.getString("device_code"))); +// deviceService.update(new UpdateWrapper() +// .set("spec",order.getString("material_spec")) +// .eq("device_code",order.getString("device_code"))); array.add(order); //下发acs PdmProduceWorkorder workOrder = this.getOne(new QueryWrapper().eq("workorder_id", param.getString("workorder_id"))); @@ -643,7 +619,8 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl resp = wmsToAcsService.order(array); - if (HttpStatus.BAD_REQUEST.value() == (int)resp.get("status")) { + String status = String.valueOf(resp.get("status")); + if (!status.equals("200")) { throw new BadRequestException(resp.get("message") != null ? String.valueOf(resp.get("message")) : "acs反馈异常"); } return RestBusinessTemplate.execute(() -> resp); @@ -694,11 +671,11 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl().eq("workorder_id", param.getString("workorder_id"))); Assert.notNull(workorder, "当前工单不存在"); - // if (workorder.getWorkorder_status().equals(WorkerOrderEnum.AUTO_COMPLETE.getCode()) || workorder.getWorkorder_status().equals(WorkerOrderEnum.COMPLETE.getCode()) || workorder.getWorkorder_status().equals(WorkerOrderEnum.FORCE_COMPLETE.getCode())) { - // throw new BadRequestException(param.getString("workorder_id") + "当前工单已经完工不允许报工"); - // } +// if (workorder.getWorkorder_status().equals(WorkerOrderEnum.AUTO_COMPLETE.getCode()) || workorder.getWorkorder_status().equals(WorkerOrderEnum.COMPLETE.getCode()) || workorder.getWorkorder_status().equals(WorkerOrderEnum.FORCE_COMPLETE.getCode())) { +// throw new BadRequestException(param.getString("workorder_id") + "当前工单已经完工不允许报工"); +// } PdmProduceWorkorderrecord one = reportRecordService.getOne(new QueryWrapper() - .eq("workorder_id", param.getString("workorder_id")).eq("report_status", ReportEnum.REPORT_STATUS.code("生成"))); + .eq("workorder_id", param.getString("workorder_id")).eq("report_status", ReportEnum.REPORT_STATUS.code("生成"))); Assert.notNull(one, param.getString("workorder_id") + "当前工单没有生成状态的报工记录"); workorder.setReport_qty(workorder.getReport_qty().add(param.getBigDecimal("report_qty"))); if (workorder.getPlan_qty().doubleValue() <= workorder.getReport_qty().doubleValue()) { @@ -716,11 +693,11 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl() - .set("report_qty", param.getBigDecimal("report_qty")) - .set("report_status", ReportEnum.REPORT_STATUS.code("报工")) - .set("operatetime_end",DateUtil.now()) - .set("needproduct_qty", Math.max(0, workorder.getPlan_qty().intValue() - workorder.getReport_qty().intValue())) - .eq("macoperate_id", one.getMacoperate_id())); + .set("report_qty", param.getBigDecimal("report_qty")) + .set("report_status", ReportEnum.REPORT_STATUS.code("报工")) + .set("operatetime_end",DateUtil.now()) + .set("needproduct_qty", Math.max(0, workorder.getPlan_qty().intValue() - workorder.getReport_qty().intValue())) + .eq("macoperate_id", one.getMacoperate_id())); return one.getMacoperate_id(); } @@ -845,8 +822,9 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl getOrderList(Map param, Pageable page) { + public List getOrderList(Map param, Pageable page) { return this.baseMapper.orderList(param); } @@ -854,9 +832,9 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl() - .eq("macoperate_id", param.getString("macoperate_id"))); + .eq("macoperate_id", param.getString("macoperate_id"))); PdmProduceWorkorder workorder = this.getOne(new QueryWrapper() - .eq("workorder_id", record.getWorkorder_id())); + .eq("workorder_id", record.getWorkorder_id())); if (!workorder.getIs_canupdate_update()) { throw new BadRequestException("当前工单设置为不允许修改报工记录"); } @@ -869,6 +847,6 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl queryVehicle(@RequestParam Map whereJson, PageQuery page) { - return new ResponseEntity<>(basePointService.queryVehicle(whereJson,page), HttpStatus.OK); + return new ResponseEntity<>(basePointService.queryPointMaterial(whereJson,page), HttpStatus.OK); + } + + @PostMapping("/setEmp") + @Log("设置点位为空") + @ApiOperation("设置点位为空") + public ResponseEntity setEmp(@RequestBody Long[] ids) { + if (ids.length>0){ + basePointService.update(new UpdateWrapper() + .set("lock_type","0") + .set("material_id","") + .set("point_status", StatusEnum.POINT_STATUS_EMPTY.getCode()) + .set("qty",0) + .in("point_id",ids)); + } + return new ResponseEntity<>(HttpStatus.OK); } } 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 0b922e6c..fffae357 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 @@ -22,10 +22,12 @@ public interface ISchBasePointService extends IService { Object queryAll(Map whereJson, PageQuery page); - Object queryVehicle(Map whereJson, PageQuery page); + Object queryPointMaterial(Map whereJson, PageQuery page); List> queryVehicle(Map query); + List> queryPointMaterial(Map query); + /** * * 获取点位 diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/dao/SchBasePoint.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/dao/SchBasePoint.java index f6a192aa..7bd80c52 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/dao/SchBasePoint.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/dao/SchBasePoint.java @@ -78,7 +78,11 @@ public class SchBasePoint implements Serializable { /** * 物料标识 */ - private Long material_id; + private String material_id; + /** + * 物料数量 + */ + private BigDecimal qty; /** * 设备编码 @@ -158,7 +162,7 @@ public class SchBasePoint implements Serializable { /** * 在执行的任务标识 */ - private Long task_id; + private String task_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 3d0f3013..35feb50a 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 @@ -24,6 +24,7 @@ public interface SchBasePointMapper extends BaseMapper { List queryAll(Map map); List queryVehicle(Map map); + List queryPointMaterial(Map map); /** * 点位管理页面查询 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 d218c09d..84664f85 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 @@ -209,4 +209,63 @@ + 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 751c9e17..52152609 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 @@ -99,19 +99,10 @@ public class SchBasePointServiceImpl extends ServiceImpl page = PageHelper.startPage(pageQuery.getPage()+1, pageQuery.getSize()); page.setOrderBy("point_code asc"); - List> list = this.queryVehicle(whereJson); - list.forEach(a->{ - a.put("point_status", StatusEnum.POINT_STATUS_EMPTY.getCode()); - if (a.get("vehicle_code")!=null){ - a.put("point_status",StatusEnum.POINT_STATUS_EMPTY_VEHICLE.getCode()); - }; - if (a.get("material_spec")!=null){ - a.put("point_status",StatusEnum.POINT_STATUS_FULL.getCode()); - }; - }); + List> list = this.queryPointMaterial(whereJson); TableDataInfo build = TableDataInfo.build(list); build.setTotalElements(page.getTotal()); return build; @@ -122,6 +113,11 @@ public class SchBasePointServiceImpl extends ServiceImpl> queryPointMaterial(Map query) { + return schBasePointMapper.queryPointMaterial(query); + } + @Override public Object selectPoint(Map query, PageQuery pageQuery) { Page page = PageHelper.startPage(pageQuery.getPage()+1, pageQuery.getSize()); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/EngraveScheduleService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/EngraveScheduleService.java index 41bd0ad0..5b86bb2c 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/EngraveScheduleService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/EngraveScheduleService.java @@ -8,13 +8,11 @@ import lombok.extern.slf4j.Slf4j; import org.nl.common.enums.WorkerOrderEnum; import org.nl.common.utils.BaseCode; import org.nl.common.utils.IdUtil; -import org.nl.common.utils.RedissonUtils; import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService; import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase; -import org.nl.wms.product_manage.sch.tasks.sendMaterial.WashSendMaterialTask; +import org.nl.wms.product_manage.sch.tasks.wash.WashSendMaterialTask; import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService; import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder; -import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp; import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvBcpOutService; import org.nl.wms.storage_manage.semimanage.service.structIvt.dao.StIvtStructivtBcp; import org.slf4j.MDC; 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 7ac39cac..cf76b23e 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 @@ -1,5 +1,7 @@ package org.nl.wms.scheduler_manage.service.task; +import com.alibaba.fastjson.JSONObject; +import org.nl.common.enums.AcsTaskEnum; import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; import com.baomidou.mybatisplus.extension.service.IService; @@ -24,4 +26,6 @@ public interface ISchBaseTaskService extends IService { void operation(Map param); List queryAll(Map query); + + JSONObject createMoveTask(String start, String end, AcsTaskEnum taskEnum, AcsTaskEnum acstype); } 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 a8cfd726..09c6c3a6 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,26 +1,31 @@ package org.nl.wms.scheduler_manage.service.task.impl; +import cn.hutool.core.date.DateUtil; 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.apache.commons.lang3.StringUtils; import org.nl.common.enums.AcsTaskEnum; 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; +import org.nl.modules.system.util.CodeUtil; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.SpringContextHolder; import org.nl.wms.ext.acs.service.AcsToWmsService; import org.nl.wms.ext.acs.service.impl.WmsToAcsServiceImpl; import org.nl.wms.product_manage.sch.manage.AbstractAcsTask; import org.nl.wms.product_manage.sch.manage.TaskStatusEnum; +import org.nl.wms.scheduler_manage.service.point.ISchBasePointService; +import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint; 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; @@ -40,6 +45,8 @@ import java.util.Map; @Service public class SchBaseTaskServiceImpl extends ServiceImpl implements ISchBaseTaskService { + @Autowired + private ISchBasePointService pointService; @Autowired @Lazy private AcsToWmsService acsToWmsService; @@ -59,23 +66,28 @@ public class SchBaseTaskServiceImpl extends ServiceImpl().eq("task_id", task_id)); - if (taskObj.getTask_status().equals(TaskStatusEnum.FINISHED.getCode())) { - throw new BadRequestException("任务已完成!不允许下发"); - } + switch (method_name) { // forceFinish, cancel case "immediateNotifyAcs": - if (!taskObj.getTask_status().equals(TaskStatusEnum.START_AND_POINT.getCode())){ + if (Integer.valueOf(taskObj.getTask_status())().eq("task_id", task_id)); JSONArray array = new JSONArray(); array.add(JSON.toJSON(task)); - wms.issueTaskToAcs(array); + Map result = wms.issueTaskToAcs(array); + String status = String.valueOf(result.get("status")); + if (!status.equals("200")) { + throw new BadRequestException(result.get("message") != null ? String.valueOf(result.get("message")) : "acs反馈异常"); + } }catch (Exception ex){ taskObj.setTask_status(StatusEnum.TASK_START_ERROR.getCode()); taskObj.setRemark(ex.getMessage()); taskObj.setUpdate_time(new Date()); + pointService.update(new UpdateWrapper() + .set("lock_type",StatusEnum.LOCK_OFF.getCode()) + .in("point_code",taskObj.getPoint_code1(),taskObj.getPoint_code2())); this.updateById(taskObj); } } @@ -93,12 +105,18 @@ public class SchBaseTaskServiceImpl extends ServiceImpl().eq("task_id", task_id)); @@ -119,4 +137,34 @@ public class SchBaseTaskServiceImpl extends ServiceImpl query(@RequestParam Map whereJson, PageQuery pageable){ return new ResponseEntity<>(TableDataInfo.build(dictService.queryAll(whereJson,pageable)), HttpStatus.OK); } @@ -49,7 +47,6 @@ public class SysDictController { @Log("新增字典") @PostMapping @ApiOperation("新增字典") -// @SaCheckPermission("dict:add") public ResponseEntity create(@RequestBody Dict dict){ dictService.create(dict); return new ResponseEntity<>(HttpStatus.CREATED); @@ -112,13 +109,11 @@ public class SysDictController { @Log("删除字典详情") @ApiOperation("删除字典详情") @DeleteMapping(value = "/dictDetail/{id}") -// @SaCheckPermission("dict:del") public ResponseEntity deleteDetail(@PathVariable String id){ dictService.deleteDetail(id); return new ResponseEntity<>(HttpStatus.OK); } - @Log("查询字典详情") @ApiOperation("查询字典详情") @PostMapping("/dictDetailByCode") @SaIgnore diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/service/dict/impl/SysDictServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/service/dict/impl/SysDictServiceImpl.java index a94366da..b1e443e7 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/service/dict/impl/SysDictServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/service/dict/impl/SysDictServiceImpl.java @@ -22,6 +22,7 @@ import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.stream.Collectors; /** *

@@ -96,14 +97,13 @@ public class SysDictServiceImpl extends ServiceImpl impleme } @Override - @Transactional(rollbackFor = Exception.class) public void deleteBatchByIds(Set ids) { // 查找code删除 - ids.forEach(id -> { - String code = sysDictMapper.selectById(id).getCode(); - sysDictMapper.delete(new LambdaQueryWrapper().eq(Dict::getCode, code)); - }); - } + if (ids.size()>0){ + List dicts = this.list(new QueryWrapper().in("dict_id", ids)); + this.remove(new QueryWrapper().in("code",dicts.stream().map(Dict::getCode).collect(Collectors.toSet()))); + } + } @Override public IPage queryAllDetail(DictQuery criteria, PageQuery page) { diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/service/ql/dao/PdmQlOption.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/service/ql/dao/PdmQlOption.java index 20dc7a4a..4adf3a9f 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/service/ql/dao/PdmQlOption.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/service/ql/dao/PdmQlOption.java @@ -61,10 +61,6 @@ public class PdmQlOption implements Serializable { */ private String create_time; - /** - * 创建人 - */ - private String create_id; /** * 备注 diff --git a/mes/hd/nladmin-system/src/main/resources/config/application-dev3.yml b/mes/hd/nladmin-system/src/main/resources/config/application-dev3.yml new file mode 100644 index 00000000..4d5422ea --- /dev/null +++ b/mes/hd/nladmin-system/src/main/resources/config/application-dev3.yml @@ -0,0 +1,203 @@ +server: + port: 8011 +#配置数据源 +spring: + data: + elasticsearch: + repositories: + enabled: true + client: + reactive: + #endpoints: 172.31.185.110:8200,172.31.154.9:8200 #内网 + # endpoints: 47.96.133.178:8200 #外网 + endpoints: http://127.0.0.1:9200 #外网 + elasticsearch: + rest: + #uris: 172.31.185.110:8200,172.31.154.9:8200 #内网 + # uris: 47.96.133.178:8200 #外网 + uris: http://127.0.0.1:9200 #外网 + # username: elastic + # password: 123456 + datasource: + druid: + db-type: com.alibaba.druid.pool.DruidDataSource + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + # url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.46.5}:${DB_PORT:3306}/${DB_NAME:hl_one_mes_test}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false + # url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.46.5}:${DB_PORT:3306}/${DB_NAME:hl_one_mes}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false + url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:hl_one_mes}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false + username: ${DB_USER:root} + # password: ${DB_PWD:123456} + password: ${DB_PWD:942464Yy} + + # 初始连接数 + initial-size: 5 + # 最小连接数 + min-idle: 15 + # 最大连接数 + max-active: 30 + # 是否自动回收超时连接 + remove-abandoned: true + # 超时时间(以秒数为单位) + remove-abandoned-timeout: 180 + # 获取连接超时时间 + max-wait: 3000 + # 连接有效性检测时间 + time-between-eviction-runs-millis: 60000 + # 连接在池中最小生存的时间 + min-evictable-idle-time-millis: 300000 + # 连接在池中最大生存的时间 + max-evictable-idle-time-millis: 900000 + # 指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除 + test-while-idle: true + # 指明是否在从池中取出连接前进行检验,如果检验失败, 则从池中去除连接并尝试取出另一个 + test-on-borrow: true + # 是否在归还到池中前进行检验 + test-on-return: false + # 检测连接是否有效 + validation-query: select 1 + # 配置监控统计 + webStatFilter: + enabled: true + stat-view-servlet: + enabled: true + url-pattern: /druid/* + reset-enable: false + filters: + DruidFilter,stat + + redis: + #数据库索引 + database: ${REDIS_DB:1} + #host: ${REDIS_HOST:127.0.0.1} + host: ${REDIS_HOST:localhost} + port: ${REDIS_PORT:6379} + password: ${REDIS_PWD:} + #连接超时时间 + timeout: 5000 + redisson: + config: | + threads: 4 + nettyThreads: 4 + singleServerConfig: + connectionMinimumIdleSize: 8 + connectionPoolSize: 8 + address: redis://127.0.0.1:6379 + idleConnectionTimeout: 10000 + timeout: 3000 +# 登录相关配置 +login: + # 登录缓存 + cache-enable: true + # 是否限制单用户登录 + single-login: false + # 验证码 + login-code: + # 验证码类型配置 查看 LoginProperties 类 + code-type: arithmetic + # 登录图形验证码有效时间/分钟 + expiration: 2 + # 验证码高度 + width: 111 + # 验证码宽度 + heigth: 36 + # 内容长度 + length: 2 + # 字体名称,为空则使用默认字体 + font-name: + # 字体大小 + font-size: 25 + +#jwt +jwt: + header: Authorization + # 令牌前缀 + token-start-with: Bearer + # 必须使用最少88位的Base64对该令牌进行编码 + base64-secret: ZmQ0ZGI5NjQ0MDQwY2I4MjMxY2Y3ZmI3MjdhN2ZmMjNhODViOTg1ZGE0NTBjMGM4NDA5NzYxMjdjOWMwYWRmZTBlZjlhNGY3ZTg4Y2U3YTE1ODVkZDU5Y2Y3OGYwZWE1NzUzNWQ2YjFjZDc0NGMxZWU2MmQ3MjY1NzJmNTE0MzI= + # 令牌过期时间 此处单位/毫秒 ,默认4小时,可在此网站生成 https://www.convertworld.com/zh-hans/time/milliseconds.html + token-validity-in-seconds: 14400000 + # 在线用户key + online-key: online-token- + # 验证码 + code-key: code-key- + # token 续期检查时间范围(默认30分钟,单位毫秒),在token即将过期的一段时间内用户操作了,则给用户的token续期 + detect: 1800000 + # 续期时间范围,默认1小时,单位毫秒 + renew: 3600000 + +#是否允许生成代码,生产环境设置为false +generator: + enabled: true + +#是否开启 swagger-ui +swagger: + enabled: true + +# IP 本地解析 +ip: + local-parsing: true + +# 文件存储路径 +file: + mac: + path: ~/file/ + avatar: ~/avatar/ + linux: + path: /home/eladmin/file/ + avatar: /home/eladmin/avatar/ + windows: + path: C:\eladmin\file\ + avatar: C:\eladmin\avatar\ + # 文件大小 /M + maxSize: 100 + avatarMaxSize: 5 + +sa-token: + # token 名称 (同时也是cookie名称) + token-name: Authorization + # token 有效期,单位s 默认30天, -1代表永不过期 + timeout: 2592000 + # token 临时有效期 (指定时间内无操作就视为token过期) 单位: 秒 + activity-timeout: -1 + # 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录) + is-concurrent: true + # 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token) + is-share: false + # token风格 + token-style: random-128 + # 是否输出操作日志 + is-log: false + jwt-secret-key: opsjajisdnnca0sdkksdfaaasdfwwq + # token 前缀 + token-prefix: + cookie: + # 配置 Cookie 作用域:根据二级域名实现sso登入如lms.sso.com;acs.sso.com + domain: + is-read-cookie: false + +#jetcache: +# defaultCacheType: LOCAL +# statIntervalMinutes: 15 +# areaInCacheName: false +# hiddenPackages: com.yb +# local: +# default: +# type: caffeine +# limit: 100 +# keyConvertor: fastjson +# expireAfterWriteInMillis: 60000 +# remote: +# default: +# type: redis.lettuce +# keyConvertor: fastjson +# valueEncoder: kryo +# valueDecoder: kryo +# poolConfig: +# minIdle: 5 +# maxIdle: 200 +# maxTotal: 1000 +# uri: +# - redis://127.0.0.1:6379 +es: + index: mes_log +schedulerFile: /Users/mima0000/Desktop/scheduler.xml diff --git a/mes/qd/src/views/system/dict/dictDetail.vue b/mes/qd/src/views/system/dict/dictDetail.vue index 503b4519..eaa5dd0f 100644 --- a/mes/qd/src/views/system/dict/dictDetail.vue +++ b/mes/qd/src/views/system/dict/dictDetail.vue @@ -106,7 +106,7 @@ import pagination from '@crud/Pagination' import rrOperation from '@crud/RR.operation' import udOperation from '@crud/UD.operation' -const defaultForm = { dict_id: null, name: null, label: null, value: null, dictSort: null, dictType: null, para1: null, para2: null, para3: null, createId: null, createName: null, createTime: null, updateId: null, updateName: null, updateTime: null } +const defaultForm = { dict_id: null, name: null, label: null, value: null, dict_sort: null, dict_type: null, para1: null, para2: null, para3: null, create_id: null, create_name: null, create_time: null, update_id: null, update_name: null, update_time: null } export default { components: { pagination, rrOperation, udOperation }, diff --git a/mes/qd/src/views/system/dict/index.vue b/mes/qd/src/views/system/dict/index.vue index 76bbe736..b51e32b8 100644 --- a/mes/qd/src/views/system/dict/index.vue +++ b/mes/qd/src/views/system/dict/index.vue @@ -86,14 +86,14 @@ import pagination from '@crud/Pagination' import rrOperation from '@crud/RR.operation' import udOperation from '@crud/UD.operation' -const defaultForm = { dictId: null, code: null, name: null, label: null, value: null, dictSort: null, dictType: null, para1: null, para2: null, para3: null, createId: null, createName: null, createTime: null, updateId: null, updateName: null, updateTime: null } +const defaultForm = { dict_id: null, code: null, name: null, label: null, value: null, dict_sort: null, dict_type: null, para1: null, para2: null, para3: null, create_id: null, create_name: null, create_time: null, update_id: null, update_name: null, update_time: null } export default { name: 'Dict', components: { crudOperation, pagination, rrOperation, udOperation, dictDetail }, cruds() { return [ - CRUD({ title: '字典', url: 'api/dict', idField: 'dictId', crudMethod: { ...crudDict }}) + CRUD({ title: '字典', url: 'api/dict', idField: 'dict_id', crudMethod: { ...crudDict }}) ] }, mixins: [presenter(), header(), form(defaultForm)], diff --git a/mes/qd/src/views/wms/device_manage/deviceMaterial/deviceMaterial.js b/mes/qd/src/views/wms/device_manage/deviceMaterial/deviceMaterial.js index 18bf01ee..5fa1e0b5 100644 --- a/mes/qd/src/views/wms/device_manage/deviceMaterial/deviceMaterial.js +++ b/mes/qd/src/views/wms/device_manage/deviceMaterial/deviceMaterial.js @@ -14,6 +14,12 @@ export function edit(data) { method: 'post', data }) +}export function setEmp(data) { + return request({ + url: 'api/specialDevice/setEmp', + method: 'post', + data + }) } -export default { query, edit } +export default { query, setEmp, edit } diff --git a/mes/qd/src/views/wms/device_manage/deviceMaterial/index.vue b/mes/qd/src/views/wms/device_manage/deviceMaterial/index.vue index 769f3f85..d9de8bf2 100644 --- a/mes/qd/src/views/wms/device_manage/deviceMaterial/index.vue +++ b/mes/qd/src/views/wms/device_manage/deviceMaterial/index.vue @@ -39,14 +39,55 @@ @keyup.enter.native="crud.toQuery" /> - + - + + + 设置空位 + + + + + + + + + + + + + + + + + +

+ - - - - + + - - - - - - + + @@ -98,13 +132,13 @@ diff --git a/mes/qd/src/views/wms/scheduler_manage/task/index.vue b/mes/qd/src/views/wms/scheduler_manage/task/index.vue index 7af393d4..4468477f 100644 --- a/mes/qd/src/views/wms/scheduler_manage/task/index.vue +++ b/mes/qd/src/views/wms/scheduler_manage/task/index.vue @@ -161,12 +161,12 @@ - - + + - - + + diff --git a/mes/qd/src/views/wms/staging_manage/staging/kzStaging/index.vue b/mes/qd/src/views/wms/staging_manage/staging/kzStaging/index.vue index 7be83973..6489153b 100644 --- a/mes/qd/src/views/wms/staging_manage/staging/kzStaging/index.vue +++ b/mes/qd/src/views/wms/staging_manage/staging/kzStaging/index.vue @@ -57,7 +57,7 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - +