From 128272a27d0e99e1d3ec684f737e8a46d153fc38 Mon Sep 17 00:00:00 2001 From: zhangzhiqiang Date: Mon, 3 Jul 2023 14:28:32 +0800 Subject: [PATCH] =?UTF-8?q?rev:=E5=88=BB=E5=AD=97=E5=90=8E=E7=AB=AF?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mes/hd/nladmin-system/pom.xml | 20 +-- .../java/org/nl/common/enums/AcsTaskEnum.java | 19 ++- .../java/org/nl/common/utils/StringUtils.java | 20 +-- .../java/org/nl/config/ConventConfig.java | 5 +- .../nl/modules/common/utils/StringUtils.java | 14 +- .../logging/service/impl/LogServiceImpl.java | 2 +- .../rest/WorkProcedureController.java | 86 ---------- .../service/WorkProcedureService.java | 87 ---------- .../service/dto/WorkProcedureDto.java | 64 ------- .../impl/WorkProcedureServiceImpl.java | 159 ------------------ .../PdmBiWorkprocedureController.java | 6 - .../tasks/callEmpty/PlotterCallEmptyTask.java | 10 +- .../callMaterial/EngraveCallMaterialTask.java | 32 ---- .../callMaterial/WrapCallMaterialTask.java | 124 ++++++++------ .../tasks/sendEmpty/WrapSendEmptyTask.java | 51 ++++-- .../WashSendMaterialTask.java} | 109 ++++++------ .../workorder/dao/PdmProduceWorkorder.java | 2 +- .../dao/PdmProduceWorkorderrecord.java | 4 +- .../impl/IPdmProduceWorkorderServiceImpl.java | 25 ++- .../impl/PdmBiWorkprocedureServiceImpl.java | 3 - .../scheduler/EngraveScheduleService.java | 14 +- .../impl/StIvtIostorinvCpServiceImpl.java | 1 - mes/qd/src/layout/components/Sidebar/Logo.vue | 2 +- mes/qd/src/views/login.vue | 2 +- .../product_manage/workorder/ViewDialog.vue | 4 +- .../wms/product_manage/workorder/index.vue | 40 ++++- .../product_manage/workorder/reportDialog.vue | 4 +- .../workorder/reportDialog3.vue | 4 +- 28 files changed, 277 insertions(+), 636 deletions(-) delete mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份pdm/rest/WorkProcedureController.java delete mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份pdm/service/WorkProcedureService.java delete mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份pdm/service/dto/WorkProcedureDto.java delete mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份pdm/service/impl/WorkProcedureServiceImpl.java delete mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/callMaterial/EngraveCallMaterialTask.java rename mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/{callMaterial/PlotterCallMaterialTask.java => sendMaterial/WashSendMaterialTask.java} (68%) diff --git a/mes/hd/nladmin-system/pom.xml b/mes/hd/nladmin-system/pom.xml index 242486c9..d94cd6b5 100644 --- a/mes/hd/nladmin-system/pom.xml +++ b/mes/hd/nladmin-system/pom.xml @@ -281,17 +281,17 @@ - - nl.basjes.parse.useragent - yauaa - 5.23 - + + + + + - - eu.bitwalker - UserAgentUtils - 1.21 - + + + + + 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 3c965083..b4c9a807 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 @@ -28,9 +28,8 @@ public enum AcsTaskEnum { TASK_PRODUCT_WASH("3","专机-深坑任务"), //3个点,任务编号,缓存线满料载具列表 TASK_CACHELINE_OUT("4","缓存线-专机缺料任务"), - TASK_PLOTTER_MAC("5","刻字机-满料入库"), - TASK_PLOTTER_EMPTY("6","刻字机-呼叫空框"), - TASK_PLOTTER_CALL_MATERIAL("14","刻字机-叫料请求"), + TASK_PLOTTER_MAC("5","刻字机-满料入库"),//判断是否铁料框(否的话: 不处理人工处理跟acs反馈sucess): + TASK_PLOTTER_EMPTY("6","刻字机-呼叫空框"),//判断是否铁料框(否的话: 不处理人工处理跟acs反馈sucess):一体机加一个呼叫空框请求功能 TASK_WARP_MAC("7","包装机-叫料出库"), TASK_WARP_EMPTY("8","包装机-送空框"), TASK_STRUCT_IN("9","入库-半成品-生产入库"), @@ -41,7 +40,11 @@ public enum AcsTaskEnum { TASK_STRUCT_BCP_EMPOUT("17","半成品-空托盘出库"), TASK_STRUCT_CP_IN("11","入库-成品-生产入库"), TASK_STRUCT_CP_OUT("12","出库-成品-生产出库"), - TASK_STRUCT_CP_CHECK("13","成品-盘点"), + TASK_STRUCT_CP_CHECK("13","-盘点"), + TASK_WASH_LACK("20","清洗机-缺料请求"), + TASK_WASH_EMP("21","清洗机-空叫空框"), + TASK_WASH_FULL_AUTO("22","清洗机-满料请求自动"),//去半成品入库:参数不全也去异常处理位 + TASK_WASH_FULL_QZ("23","清洗机-满料请求强制"),//去异常位: //回调状态 STATUS_START("1","执行中"), @@ -52,11 +55,13 @@ public enum AcsTaskEnum { REQUEST_CALLTYPE_EMP("1","专机缺料请求"), REQUEST_PLOTTER_SEND_FULL("3","刻字满料请求"), REQUEST_PLOTTER_CALL_EMP("4","刻字空框请求"), - REQUEST_PLOTTER_CALL_MATERIAL("9","刻字叫料请求"),//由mes下发 REQUEST_WARP_CALL_FULL("5","包装缺料请求"), REQUEST_WARP_SEND_EMP("6","包装送空框请求"), - REQUEST_WASH_EMP("7","清洗机器缺料请求"), - REQUEST_WASH_FULL("8","清洗机器满料请求"), + REQUEST_WASH_LACK("7","清洗机器缺料请求"),//深坑->清洗:相同物料的重量<150公斤; + REQUEST_WASH_EMP("8","清洗机器空框请求"),//清洗机下料位 + REQUEST_WASH_FULL("9","清洗机器满料请求"),//清洗机满料请求 + REQUEST_WASH_FULL_ERROR("10","清洗机-满料异常请求"),//去半成品入库 + // diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/common/utils/StringUtils.java b/mes/hd/nladmin-system/src/main/java/org/nl/common/utils/StringUtils.java index 924486d5..b2c94e27 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/common/utils/StringUtils.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/common/utils/StringUtils.java @@ -19,11 +19,8 @@ import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import lombok.extern.slf4j.Slf4j; -import nl.basjes.parse.useragent.UserAgent; -import nl.basjes.parse.useragent.UserAgentAnalyzer; import org.nl.modules.common.config.ElAdminProperties; import org.nl.modules.common.utils.ElAdminConstant; -import org.nl.modules.wql.util.SpringContextHolder; import javax.servlet.http.HttpServletRequest; import java.net.InetAddress; @@ -47,12 +44,12 @@ public class StringUtils { * 注入bean */ - private static final UserAgentAnalyzer USER_AGENT_ANALYZER = UserAgentAnalyzer - .newBuilder() - .hideMatcherLoadStats() - .withCache(10000) - .withField(UserAgent.AGENT_NAME_VERSION) - .build(); +// private static final UserAgentAnalyzer USER_AGENT_ANALYZER = UserAgentAnalyzer +// .newBuilder() +// .hideMatcherLoadStats() +// .withCache(10000) +// .withField(UserAgent.AGENT_NAME_VERSION) +// .build(); /** * 驼峰命名法工具 @@ -198,8 +195,9 @@ public class StringUtils { public static String getBrowser(HttpServletRequest request) { - UserAgent.ImmutableUserAgent userAgent = USER_AGENT_ANALYZER.parse(request.getHeader("User-Agent")); - return userAgent.get(UserAgent.AGENT_NAME_VERSION).getValue(); +// UserAgent.ImmutableUserAgent userAgent = USER_AGENT_ANALYZER.parse(request.getHeader("User-Agent")); +// return userAgent.get(UserAgent.AGENT_NAME_VERSION).getValue(); + return "default"; } /** 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 e986224f..6a055b31 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 @@ -11,7 +11,6 @@ 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.callMaterial.WrapCallMaterialTask; import org.nl.wms.product_manage.sch.tasks.sendEmpty.WrapSendEmptyTask; -import org.nl.wms.product_manage.sch.tasks.callMaterial.PlotterCallMaterialTask; import org.nl.wms.product_manage.sch.tasks.sendMaterial.PlotterSendMaterialTask; import org.springframework.context.SmartLifecycle; import org.springframework.context.annotation.Configuration; @@ -25,10 +24,10 @@ public class ConventConfig implements SmartLifecycle { public void start() { AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_CALLTYPE_FULL, SpringContextHolder.getBean(SpeFullTask.class)); AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_CALLTYPE_EMP, SpringContextHolder.getBean(SpeEmpTask.class)); - AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_WASH_EMP, SpringContextHolder.getBean(WashMachineryTask.class)); + AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_WASH_LACK, SpringContextHolder.getBean(WashMachineryTask.class)); AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_PLOTTER_SEND_FULL, SpringContextHolder.getBean(PlotterSendMaterialTask.class)); AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_PLOTTER_CALL_EMP, SpringContextHolder.getBean(PlotterCallEmptyTask.class)); - AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_PLOTTER_CALL_MATERIAL, SpringContextHolder.getBean(PlotterCallMaterialTask.class)); +// AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_PLOTTER_CALL_MATERIAL, SpringContextHolder.getBean(EngraveCallMaterialTask.class)); AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_WARP_CALL_FULL, SpringContextHolder.getBean(WrapCallMaterialTask.class)); AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_WARP_SEND_EMP, SpringContextHolder.getBean(WrapSendEmptyTask.class)); System.out.println("初始化Task_Collent完成777"+AcsToWmsServiceImpl.Task_Collent.size()); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/modules/common/utils/StringUtils.java b/mes/hd/nladmin-system/src/main/java/org/nl/modules/common/utils/StringUtils.java index e7343094..4c607be0 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/modules/common/utils/StringUtils.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/modules/common/utils/StringUtils.java @@ -16,18 +16,15 @@ package org.nl.modules.common.utils; import cn.hutool.http.HttpUtil; +import cn.hutool.http.useragent.UserAgent; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import lombok.extern.slf4j.Slf4j; -import nl.basjes.parse.useragent.UserAgent; -import nl.basjes.parse.useragent.UserAgentAnalyzer; import org.nl.modules.common.config.ElAdminProperties; -import org.nl.modules.wql.util.SpringContextHolder; import javax.servlet.http.HttpServletRequest; import java.net.InetAddress; import java.net.NetworkInterface; -import java.net.UnknownHostException; import java.util.Calendar; import java.util.Date; import java.util.Enumeration; @@ -47,12 +44,6 @@ public class StringUtils { */ - private static final UserAgentAnalyzer USER_AGENT_ANALYZER = UserAgentAnalyzer - .newBuilder() - .hideMatcherLoadStats() - .withCache(10000) - .withField(UserAgent.AGENT_NAME_VERSION) - .build(); /** * 驼峰命名法工具 @@ -188,8 +179,7 @@ public class StringUtils { public static String getBrowser(HttpServletRequest request) { - UserAgent.ImmutableUserAgent userAgent = USER_AGENT_ANALYZER.parse(request.getHeader("User-Agent")); - return userAgent.get(UserAgent.AGENT_NAME_VERSION).getValue(); + return "default"; } /** diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/modules/logging/service/impl/LogServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/modules/logging/service/impl/LogServiceImpl.java index bae180cc..89d06147 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/modules/logging/service/impl/LogServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/modules/logging/service/impl/LogServiceImpl.java @@ -102,7 +102,7 @@ public class LogServiceImpl implements LogService { logDto.setMethod(methodName); logDto.setUsername(username); logDto.setParams(getParameter(method, joinPoint.getArgs())); - logDto.setBrowser(browser); + logDto.setBrowser("default"); logRepository.save(logDto); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份pdm/rest/WorkProcedureController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份pdm/rest/WorkProcedureController.java deleted file mode 100644 index 26e3b3d5..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份pdm/rest/WorkProcedureController.java +++ /dev/null @@ -1,86 +0,0 @@ - -package org.nl.wms.masterdata_manage.备份pdm.rest; - - -import io.swagger.annotations.ApiOperation; - import lombok.RequiredArgsConstructor; -import org.nl.common.anno.Log; -import lombok.extern.slf4j.Slf4j; -import org.nl.wms.masterdata_manage.备份pdm.service.WorkProcedureService; -import org.nl.wms.masterdata_manage.备份pdm.service.dto.WorkProcedureDto; -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-12-19 - **/ -//@RestController -@RequiredArgsConstructor -//@Api(tags = "工序管理") -//@RequestMapping("/api/workProcedure") -@Slf4j -public class WorkProcedureController { - - - private final WorkProcedureService workProcedureService; - - @GetMapping - @Log("查询工序") - @ApiOperation("查询工序") - //@PreAuthorize("@el.check('WorkProcedure:list')") - - public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { - return new ResponseEntity<>(workProcedureService.queryAll(whereJson, page), HttpStatus.OK); - } - - @PostMapping - @Log("新增工序") - @ApiOperation("新增工序") - //@PreAuthorize("@el.check('WorkProcedure:add')") - - public ResponseEntity create(@Validated @RequestBody WorkProcedureDto dto) { - workProcedureService.create(dto); - return new ResponseEntity<>(HttpStatus.CREATED); - } - - @PutMapping - @Log("修改工序") - @ApiOperation("修改工序") - //@PreAuthorize("@el.check('WorkProcedure:edit')") - - public ResponseEntity update(@Validated @RequestBody WorkProcedureDto dto) { - workProcedureService.update(dto); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); - } - - @Log("删除工序") - @ApiOperation("删除工序") - //@PreAuthorize("@el.check('WorkProcedure:del')") - @DeleteMapping - public ResponseEntity delete(@RequestBody Long[] ids) { - workProcedureService.deleteAll(ids); - return new ResponseEntity<>(HttpStatus.OK); - } - - @GetMapping("/downSelect") - @Log("查询工序下拉列表") - @ApiOperation("查询工序下拉列表") - public ResponseEntity downSelect() { - return new ResponseEntity<>(workProcedureService.downSelect(), HttpStatus.OK); - } - @GetMapping("/queryWorkprocedure") - @Log("查询生产工序") - @ApiOperation("查询生产工序") - //@PreAuthorize("@el.check('workprocedure:list')") - public ResponseEntity queryWorkprocedure() { - return new ResponseEntity<>(workProcedureService.queryWorkprocedure(), HttpStatus.OK); - } - -} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份pdm/service/WorkProcedureService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份pdm/service/WorkProcedureService.java deleted file mode 100644 index f5db0477..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份pdm/service/WorkProcedureService.java +++ /dev/null @@ -1,87 +0,0 @@ - -package org.nl.wms.masterdata_manage.备份pdm.service; - -import com.alibaba.fastjson.JSONArray; -import org.nl.wms.masterdata_manage.备份pdm.service.dto.WorkProcedureDto; -import org.springframework.data.domain.Pageable; - -import java.util.List; -import java.util.Map; - -/** - * @author ldjun - * @description 服务接口 - * @date 2021-12-19 - **/ -public interface WorkProcedureService { - /** - * 查询数据分页 - * - * @param whereJson 条件 - * @param page 分页参数 - * @return Map - */ - Map queryAll(Map whereJson, Pageable page); - - /** - * 查询所有数据不分页 - * - * @param whereJson 条件参数 - * @return List - */ - List queryAll(Map whereJson); - - /** - * 根据ID查询 - * - * @param workProcedure_id ID - * @return WorkProcedure - */ - WorkProcedureDto findById(String workProcedure_id); - - /** - * 根据编码查询 - * - * @param code code - * @return WorkProcedure - */ - WorkProcedureDto findByCode(String code); - - - /** - * 创建 - * - * @param dto / - */ - void create(WorkProcedureDto dto); - - - /** - * 多选删除 - * - * @param ids / - */ - void deleteAll(Long[] ids); - - /** - * 编辑 - * - * @param dto / - */ - void update(WorkProcedureDto dto); - - - /** - * 获取下拉选列表 - * - * @return - */ - JSONArray downSelect(); - /** - * 查询所有数据不分页 - * @param - * @return List - */ - List queryWorkprocedure(); - -} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份pdm/service/dto/WorkProcedureDto.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份pdm/service/dto/WorkProcedureDto.java deleted file mode 100644 index d3ca29a1..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份pdm/service/dto/WorkProcedureDto.java +++ /dev/null @@ -1,64 +0,0 @@ -package org.nl.wms.masterdata_manage.备份pdm.service.dto; - -import lombok.Data; - - -import java.io.Serializable; - -/** - * @author ldjun - * @description / - * @date 2021-12-19 - **/ -@Data -public class WorkProcedureDto implements Serializable { - - /** 工序标识 */ - private String workprocedure_id; - - /** 生产区域 */ - private String product_area; - - /** 工序编码 */ - private String workprocedure_code; - - /** 工序名称 */ - private String workprocedure_name; - - /** 对应工段 */ - private String worksection_type_scode; - - /** 分段计算类型 */ - private String burst_type_scode; - - /** 是否关键工序 */ - private String is_keyworkprocedure; - - /** 是否首道工序 */ - private String is_first; - - /** 是否启用 */ - private String is_used; - - /** 备注 */ - private String remark; - - /** 创建人 */ - private String create_id; - - /** 创建人姓名 */ - private String create_name; - - /** 创建时间 */ - private String create_time; - - /** 修改人 */ - private String update_id; - - /** 修改人姓名 */ - private String update_name; - - /** 修改时间 */ - private String update_time; -} - diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份pdm/service/impl/WorkProcedureServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份pdm/service/impl/WorkProcedureServiceImpl.java deleted file mode 100644 index 628bff14..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份pdm/service/impl/WorkProcedureServiceImpl.java +++ /dev/null @@ -1,159 +0,0 @@ - -package org.nl.wms.masterdata_manage.备份pdm.service.impl; - - -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.nl.modules.common.exception.BadRequestException; - - import org.nl.common.utils.SecurityUtils; -import org.nl.modules.wql.core.bean.ResultBean; -import org.nl.modules.wql.core.bean.WQLObject; -import org.nl.modules.wql.util.WqlUtil; -import org.nl.wms.system_manage.service.user.dto.CurrentUser; -import org.nl.wms.masterdata_manage.备份pdm.service.WorkProcedureService; -import org.nl.wms.masterdata_manage.备份pdm.service.dto.WorkProcedureDto; - - - -import org.springframework.data.domain.Pageable; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.util.List; -import java.util.Map; - -/** - * @author ldjun - * @description 服务实现 - * @date 2021-12-19 - **/ -@Service -@RequiredArgsConstructor -@Slf4j -public class WorkProcedureServiceImpl implements WorkProcedureService { - - @Override - public Map queryAll(Map whereJson, Pageable page) { - String where = ""; - WQLObject wo = WQLObject.getWQLObject("pdm_bi_workprocedure"); - String search = (String) whereJson.get("search"); - String product_area = (String) whereJson.get("product_area"); - if (!StrUtil.isEmpty(search)) { - where += " AND (workprocedure_code like '%" + search + "%' OR workprocedure_name like '%" + search + "%' )"; - } - if(!StrUtil.isEmpty(product_area)) { - where += " AND product_area = '" + product_area + "'"; - } - ResultBean rb = wo.pagequery(WqlUtil.getHttpContext(page), "is_used = '1' " + where, "workprocedure_code"); - final JSONObject json = rb.pageResult(); - return json; - } - - @Override - public List queryAll(Map whereJson) { - WQLObject wo = WQLObject.getWQLObject("pdm_bi_workProcedure"); - JSONArray arr = wo.query().getResultJSONArray(0); - List list = arr.toJavaList(WorkProcedureDto.class); - return list; - } - - @Override - public WorkProcedureDto findById(String workProcedure_id) { - WQLObject wo = WQLObject.getWQLObject("pdm_bi_workProcedure"); - JSONObject json = wo.query("workProcedure_id =" + workProcedure_id + "").uniqueResult(0); - if (ObjectUtil.isEmpty(json)) return null; - final WorkProcedureDto obj = json.toJavaObject(WorkProcedureDto.class); - return obj; - } - - @Override - public WorkProcedureDto findByCode(String code) { - WQLObject wo = WQLObject.getWQLObject("pdm_bi_workProcedure"); - JSONObject json = wo.query("workprocedure_code ='" + code + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(json)) return null; - final WorkProcedureDto obj = json.toJavaObject(WorkProcedureDto.class); - return obj; - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void create(WorkProcedureDto dto) { - //判断编码是否存在 - String workprocedure_code = dto.getWorkprocedure_code(); - WorkProcedureDto byCode = this.findByCode(workprocedure_code); - if (ObjectUtil.isNotEmpty(byCode)) throw new BadRequestException("编码已存在!"); - CurrentUser currentUser = SecurityUtils.getCurrentUser(); - String currentUserId = currentUser.getId(); - String nickName = SecurityUtils.getCurrentNickName(); - - dto.setWorkprocedure_id(IdUtil.getSnowflake(1, 1).nextIdStr()); - dto.setCreate_id(currentUserId); - dto.setCreate_name(nickName); - dto.setUpdate_id(currentUserId); - dto.setUpdate_name(nickName); - dto.setUpdate_time(DateUtil.now()); - dto.setCreate_time(DateUtil.now()); - - WQLObject wo = WQLObject.getWQLObject("pdm_bi_workProcedure"); - JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto)); - wo.insert(json); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void update(WorkProcedureDto dto) { - WorkProcedureDto entity = this.findById(dto.getWorkprocedure_id()); - if (entity == null) throw new BadRequestException("被删除或无权限,操作失败!"); - - String workprocedure_code = entity.getWorkprocedure_code(); - WorkProcedureDto byCode = this.findByCode(workprocedure_code); - if (ObjectUtil.isNotEmpty(byCode) && !dto.getWorkprocedure_id().equals(byCode.getWorkprocedure_id())) - throw new BadRequestException("存在相同的编码!"); - - String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - - - dto.setUpdate_time(DateUtil.now()); - dto.setUpdate_id(currentUserId); - dto.setUpdate_name(nickName); - - WQLObject wo = WQLObject.getWQLObject("pdm_bi_workProcedure"); - JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto)); - wo.update(json); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void deleteAll(Long[] ids) { - WQLObject wo = WQLObject.getWQLObject("pdm_bi_workProcedure"); - for (Long workProcedure_id : ids) { - wo.delete("workProcedure_id = '" + workProcedure_id + "'"); - } - } - - @Override - public JSONArray downSelect() { - //工序表【PDM_BI_WorkProcedure】 - WQLObject workProcedureTab = WQLObject.getWQLObject("PDM_BI_WorkProcedure"); - JSONArray resultJSONArray = workProcedureTab.query("is_used ='1'", "workprocedure_code").getResultJSONArray(0); - return resultJSONArray; - } - - @Override - public List queryWorkprocedure() { - WQLObject wo = WQLObject.getWQLObject("pdm_bi_workprocedure"); - //只查清洗 跟仓储 - JSONArray arr = wo.query(" is_used = '1' and workprocedure_code in ('12','08')").getResultJSONArray(0); - if (ObjectUtil.isNotEmpty(arr)) return arr.toJavaList(WorkProcedureDto.class); - return null; - } -} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/workprocedure/PdmBiWorkprocedureController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/workprocedure/PdmBiWorkprocedureController.java index a3db2172..c4a4b82a 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/workprocedure/PdmBiWorkprocedureController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/workprocedure/PdmBiWorkprocedureController.java @@ -11,15 +11,9 @@ import lombok.extern.slf4j.Slf4j; import org.nl.common.TableDataInfo; import org.nl.common.anno.Log; import org.nl.common.domain.query.PageQuery; -import org.nl.modules.wql.core.bean.ResultBean; -import org.nl.modules.wql.core.bean.WQLObject; -import org.nl.modules.wql.util.WqlUtil; -import org.nl.wms.masterdata_manage.备份pdm.service.WorkProcedureService; -import org.nl.wms.masterdata_manage.备份pdm.service.dto.WorkProcedureDto; import org.nl.wms.product_manage.service.workprocedure.IPdmBiWorkprocedureService; import org.nl.wms.product_manage.service.workprocedure.dao.PdmBiWorkprocedure; import org.nl.wms.product_manage.service.workprocedure.dto.WorkprocedureQuery; -import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; 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/callEmpty/PlotterCallEmptyTask.java index 0a58917d..be5aec2c 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/callEmpty/PlotterCallEmptyTask.java @@ -90,7 +90,7 @@ public class PlotterCallEmptyTask extends AbstractAcsTask { @Override @Transactional(rollbackFor = Exception.class) public String createTask(JSONObject param) { - String start_point_code = param.getString("device_code"); + String end_point_code = param.getString("device_code"); PdmProduceWorkorder order = workorderService.getOne(new QueryWrapper() .eq("workorder_code", param.getString("workorder_code")) .eq("is_delete", false) @@ -111,13 +111,13 @@ public class PlotterCallEmptyTask extends AbstractAcsTask { 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_MAC.getDesc()); - task.put("task_type", AcsTaskEnum.TASK_PLOTTER_MAC.getCode()); + 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_code1", start_point_code); + 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(); @@ -181,7 +181,7 @@ public class PlotterCallEmptyTask extends AbstractAcsTask { .eq("point_code",map.get("point_code"))); // 设置点位 taskObj.put("update_time", DateUtil.now()); - taskObj.put("point_code2",map.get("point_code")); + taskObj.put("point_code1",map.get("point_code")); SchBaseTask schBaseTask = taskObj.toJavaObject(SchBaseTask.class); schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode()); schBaseTask.setUpdate_time(new Date()); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/callMaterial/EngraveCallMaterialTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/callMaterial/EngraveCallMaterialTask.java deleted file mode 100644 index b116868b..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/callMaterial/EngraveCallMaterialTask.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.nl.wms.product_manage.sch.tasks.callMaterial; - -import com.alibaba.fastjson.JSONObject; -import org.nl.wms.product_manage.sch.manage.AbstractAcsTask; -import org.springframework.stereotype.Service; - -/* - * @author ZZQ - * @Date 2023/6/16 08:40 - */ -@Service -public class EngraveCallMaterialTask extends AbstractAcsTask { - @Override - public void updateTaskStatus(JSONObject taskObj, String status) { - - } - - @Override - public String createTask(JSONObject param) { - return null; - } - - @Override - public void cancel(String task_id) { - - } - - @Override - public void pointConfirm(JSONObject param) { - - } -} 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/callMaterial/WrapCallMaterialTask.java index 7982ca51..10bd1f18 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/callMaterial/WrapCallMaterialTask.java @@ -1,14 +1,20 @@ package org.nl.wms.product_manage.sch.tasks.callMaterial; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; +import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; 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.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.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.system.util.CodeUtil; @@ -16,9 +22,21 @@ import org.nl.modules.wql.core.bean.WQLObject; 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.workorder.IPdmProduceWorkorderService; +import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder; +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.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * @Author: lyd @@ -28,7 +46,12 @@ import org.springframework.transaction.annotation.Transactional; @Slf4j @Service public class WrapCallMaterialTask extends AbstractAcsTask { - private static final String OPT_NAME = "包装机#"; + @Autowired + private IPdmProduceWorkorderService workorderService; + @Autowired + private ISchBaseTaskService taskService; + @Autowired + private ISchBasePointService pointService; @Autowired private WmsToAcsService wms; @Override @@ -94,64 +117,54 @@ public class WrapCallMaterialTask extends AbstractAcsTask { @Override @Transactional(rollbackFor = Exception.class) public String createTask(JSONObject param) { - WQLObject workOrderTab = WQLObject.getWQLObject("PDM_produce_workOrder"); - WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); - String end_point_code = param.getString("device_code"); - String workorder = param.getString("workorder_code"); - if(StrUtil.isEmpty(end_point_code)) { - throw new BadRequestException("终点不能为空!"); - } - if(StrUtil.isEmpty(workorder)) { - throw new BadRequestException("工单不能为空!"); - } - // 判断当前点是否有未完成的任务 - JSONObject taskObj = taskTab.query("is_delete='0' and point_code2 = '" + end_point_code + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(taskObj)) { - throw new BadRequestException("当前点位" + end_point_code + "存在未完成的任务"); - } - // 判断工单 - JSONObject workOrderObj = workOrderTab.query("workorder_code = '" + workorder + "' and workorder_status <> '" + StatusEnum.TASK_FINISH.getCode() + "' and is_delete ='0'").uniqueResult(0); - if (ObjectUtil.isEmpty(workOrderObj)){ - throw new BadRequestException("下发工单不存在未完成工单:"+workorder); + PdmProduceWorkorder order = workorderService.getOne(new QueryWrapper() + .eq("workorder_code", param.getString("workorder_code")) + .eq("is_delete", false) + .lt("workorder_status", WorkerOrderEnum.COMPLETE.getCode())); + Assert.notNull(order, String.format("下发工单%s不存在未完成工单", param.getString("workorder_code"))); + //?刻字满料请求:可以存在多个任务? + List list = taskService.list(new QueryWrapper() + .eq("point_code2", param.getString("device_code")).lt("task_status", StatusEnum.TASK_FINISH.getCode()) + ); + if (!CollectionUtils.isEmpty(list)){ + 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).nextIdStr(); JSONObject task = new JSONObject(); - task.put("task_id", taskdtl_id); + 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", end_point_code); + 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("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()); - WQLObject.getWQLObject("SCH_BASE_Task").insert(task); + task.put("table_fk_id",order.getWorkorder_code()); + 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); } catch (Exception ex) { - // 未找到 - task.put("remark", ex.getMessage()); - task.put("task_status", StatusEnum.TASK_START_ERROR.getCode()); - task.put("update_time", DateUtil.now()); - taskTab.update(task); + log.error("刻字请求异常,error:{}",ex); + schBaseTask.setRemark(ex.getMessage()); + schBaseTask.setUpdate_time(new Date()); + schBaseTask.setUpdate_name("acs"); + schBaseTask.setTask_status(StatusEnum.TASK_START_ERROR.getCode()); + taskService.save(schBaseTask); } - return taskdtl_id; + return task.getString("task_id"); } @Override @@ -161,26 +174,29 @@ public class WrapCallMaterialTask extends AbstractAcsTask { @Override public void pointConfirm(JSONObject taskObj) { - log.info(OPT_NAME+"callMaterial param:{}",JSONObject.toJSONString(taskObj)); - WQLObject pointTab = WQLObject.getWQLObject("sch_base_point"); - WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); - // 去刻字缓存区找物料 - JSONObject point = pointTab.query("region_code = 'A1_KZHC' AND point_status = '" + - StatusEnum.POINT_STATUS_FULL.getCode() + "' AND lock_type = '" + StatusEnum.LOCK_OFF.getCode() + - "' AND is_used = '" + StatusEnum.STATUS_TRUE.getCode() + "' AND is_delete = '" + - StatusEnum.STATUS_FLASE.getCode() + "'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(point)) { - // 找到位置 - // 点位上锁 - point.put("lock_type", StatusEnum.LOCK_ON.getCode()); - pointTab.update(point); - // 任务修改 - taskObj.put("point_code1", point.getString("point_code")); - taskObj.put("task_status", StatusEnum.TASK_START_END_P.getCode()); + // 去刻字缓存区寻找空位 + 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("刻字缓存区没有可用货位."); + } + pointService.update(new UpdateWrapper() + .set("lock_type",StatusEnum.LOCK_ON.getCode()) + .eq("point_code",map.get("point_code"))); + // 设置点位 taskObj.put("update_time", DateUtil.now()); - taskTab.update(taskObj); + taskObj.put("point_code1",map.get("point_code")); + SchBaseTask schBaseTask = taskObj.toJavaObject(SchBaseTask.class); + schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode()); + schBaseTask.setUpdate_time(new Date()); + taskService.updateById(schBaseTask); } else { - throw new BadRequestException("刻字缓存区没有可用空框."); + throw new BadRequestException("刻字缓存区没有可用货位."); } } } 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/sendEmpty/WrapSendEmptyTask.java index 434cf31c..388ac3b2 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/sendEmpty/WrapSendEmptyTask.java @@ -6,6 +6,7 @@ import cn.hutool.core.util.ObjectUtil; 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 lombok.extern.slf4j.Slf4j; import org.nl.common.enums.AcsTaskEnum; import org.nl.common.enums.StatusEnum; @@ -15,10 +16,18 @@ import org.nl.modules.system.util.CodeUtil; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.wms.ext.acs.service.WmsToAcsService; import org.nl.wms.product_manage.sch.manage.AbstractAcsTask; +import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService; +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.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.Date; +import java.util.List; + /** * @Author: lyd * @Description: 包装机送空框 @@ -27,7 +36,12 @@ import org.springframework.transaction.annotation.Transactional; @Slf4j @Service public class WrapSendEmptyTask extends AbstractAcsTask { - private static final String OPT_NAME = "包装机#"; + @Autowired + private IPdmProduceWorkorderService workorderService; + @Autowired + private ISchBaseTaskService taskService; + @Autowired + private ISchBasePointService pointService; @Autowired private WmsToAcsService wms; @Override @@ -148,27 +162,28 @@ public class WrapSendEmptyTask extends AbstractAcsTask { } @Override - public void pointConfirm(JSONObject taskObj) { - log.info(OPT_NAME+"sendEmptyVehicle param:{}",JSONObject.toJSONString(taskObj)); - WQLObject pointTab = WQLObject.getWQLObject("sch_base_point"); - WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); - // 去刻字缓存区找空位 - JSONObject point = pointTab.query("region_code = 'A1_KZHC' AND point_status = '" + - StatusEnum.POINT_STATUS_EMPTY.getCode() + "' AND lock_type = '" + StatusEnum.LOCK_OFF.getCode() + - "' AND is_used = '" + StatusEnum.STATUS_TRUE.getCode() + "' AND is_delete = '" + - StatusEnum.STATUS_FLASE.getCode() + "'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(point)) { + public void pointConfirm(JSONObject task) { + // 去刻字缓存区寻找空位 + List list = pointService.list(new QueryWrapper().isNull("vehicle_code") + .eq("is_used", "1") + .eq("region_code","A1_KZHC") + .eq("lock_type", StatusEnum.LOCK_OFF.getCode())); + + if (ObjectUtil.isNotEmpty(list)) { // 找到位置 // 点位上锁 - point.put("lock_type", StatusEnum.LOCK_ON.getCode()); - pointTab.update(point); + SchBasePoint point = list.get(0); + point.setLock_type(StatusEnum.LOCK_ON.getCode()); + pointService.updateById(point); // 设置点位 - taskObj.put("point_code2", point.getString("point_code")); - taskObj.put("task_status", StatusEnum.TASK_START_END_P.getCode()); - taskObj.put("update_time", DateUtil.now()); - taskTab.update(taskObj); + task.put("update_time", DateUtil.now()); + task.put("point_code2",point.getPoint_code()); + SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class); + schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode()); + schBaseTask.setUpdate_time(new Date()); + taskService.updateById(schBaseTask); } else { - throw new BadRequestException("刻字缓存区没有可用货位."); + throw new BadRequestException("刻字缓存区没有可用货位."); } } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/callMaterial/PlotterCallMaterialTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/sendMaterial/WashSendMaterialTask.java similarity index 68% rename from mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/callMaterial/PlotterCallMaterialTask.java rename to mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/sendMaterial/WashSendMaterialTask.java index 0b51d7d6..92c15c7c 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/callMaterial/PlotterCallMaterialTask.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/sendMaterial/WashSendMaterialTask.java @@ -1,51 +1,59 @@ -package org.nl.wms.product_manage.sch.tasks.callMaterial; +package org.nl.wms.product_manage.sch.tasks.sendMaterial; 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; 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.MapOf; +import org.nl.common.utils.IdUtil; 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.wms.ext.acs.service.WmsToAcsService; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtSectattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtSectattr; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; import org.nl.wms.product_manage.sch.manage.AbstractAcsTask; +import org.nl.wms.product_manage.sch.manage.TaskStatusEnum; import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService; import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder; import org.nl.wms.scheduler_manage.service.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.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; import java.util.ArrayList; import java.util.Date; import java.util.List; -import java.util.Map; import java.util.stream.Collectors; -/** - * @Author: lyd - * @Description: 刻字机送料 - * @Date: 2023/4/3 +/* + * @author ZZQ + * @Date 2023/6/16 08:40 */ -@Slf4j @Service -public class PlotterCallMaterialTask extends AbstractAcsTask { +@Slf4j +public class WashSendMaterialTask extends AbstractAcsTask { + + @Autowired + private DivRuleCpService divRuleCpService; + @Autowired + private IStIvtSectattrService sectattrService; @Autowired private IPdmProduceWorkorderService workorderService; @Autowired @@ -55,14 +63,15 @@ public class PlotterCallMaterialTask extends AbstractAcsTask { @Autowired private WmsToAcsService wms; @Override + @Transactional(rollbackFor = Exception.class) public void updateTaskStatus(JSONObject param, String status) { SchBaseTask task = taskService.getById(param.getString("task_id")); if (status.equals(AcsTaskEnum.STATUS_START.getCode())) { taskService.update(new UpdateWrapper() - .set("task_status",StatusEnum.TASK_RUNNING.getCode()) + .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.getTask_id())); } if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) { // 完成 @@ -75,6 +84,7 @@ public class PlotterCallMaterialTask extends AbstractAcsTask { .in("point_code",task.getPoint_code1(),task.getPoint_code2(),task.getPoint_code3())); } if (status.equals(AcsTaskEnum.STATUS_CANNEL.getCode())) { + // 完成 taskService.update(new UpdateWrapper() .set("task_status",StatusEnum.TASK_CANNEL.getCode()) .set("update_name","acs") @@ -96,32 +106,34 @@ public class PlotterCallMaterialTask extends AbstractAcsTask { Assert.notNull(order, String.format("下发工单%s不存在未完成工单", param.getString("workorder_code"))); //?刻字满料请求:可以存在多个任务? List list = taskService.list(new QueryWrapper() - .eq("point_code1", param.getString("device_code")).lt("task_status", StatusEnum.TASK_FINISH.getCode()) + .lt("task_status", StatusEnum.TASK_FINISH.getCode()) + .and(wa->wa + .eq("point_code1", param.getString("device_code")) + .or() + .eq("point_code2", 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"))); } // 查找任务状态 - String taskdtl_id = IdUtil.getSnowflake(1, 1).nextId() + ""; + String taskdtl_id = IdUtil.getStringId(); JSONObject task = new JSONObject(); task.put("task_id", taskdtl_id); - task.put("task_name", AcsTaskEnum.TASK_PLOTTER_MAC.getDesc()); - task.put("task_type", AcsTaskEnum.TASK_PLOTTER_MAC.getCode()); + task.put("task_name", AcsTaskEnum.REQUEST_WASH_FULL.getDesc()); + task.put("task_type", AcsTaskEnum.REQUEST_WASH_FULL.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("task_status", TaskStatusEnum.CREATED.getCode()); task.put("point_code1", start_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("finished_type", "1"); task.put("agv_system_type", AcsTaskEnum.AGV_SYSTEM_XC.getCode()); task.put("table_fk_id",order.getWorkorder_code()); SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class); @@ -134,7 +146,8 @@ public class PlotterCallMaterialTask extends AbstractAcsTask { // 下发 wms.issueTaskToAcs2(data); } catch (Exception ex) { - log.error("刻字请求异常,error:{}",ex); + // 未找到 + log.error("刻字满料请求异常,error:{}",ex); schBaseTask.setRemark(ex.getMessage()); schBaseTask.setUpdate_time(new Date()); schBaseTask.setUpdate_name("acs"); @@ -155,34 +168,32 @@ public class PlotterCallMaterialTask extends AbstractAcsTask { /** * 满料请求 * 从刻字机满料缓存区中获取空位放入就行 - * @param taskObj: 任务对象 */ @Override - public void pointConfirm(JSONObject taskObj) { + @Transactional(timeout=TransactionDefinition.ISOLATION_READ_UNCOMMITTED) + 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("刻字缓存区没有可用货位."); - } - pointService.update(new UpdateWrapper() - .set("lock_type",StatusEnum.LOCK_ON.getCode()) - .eq("point_code",map.get("point_code"))); - // 设置点位 - taskObj.put("update_time", DateUtil.now()); - taskObj.put("point_code2",map.get("point_code")); - SchBaseTask schBaseTask = taskObj.toJavaObject(SchBaseTask.class); - schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode()); - schBaseTask.setUpdate_time(new Date()); - taskService.updateById(schBaseTask); - } else { - throw new BadRequestException("刻字缓存区没有可用货位."); + //分配货位。下发任务,更新主单据状态。更新明细任务 + StIvtSectattr sect = sectattrService.getOne(new QueryWrapper().eq("sect_name", "半成品库区")); + JSONObject jo = new JSONObject(); + jo.put("sect_id", sect.getSect_id()); + jo.put("stor_id", sect.getStor_id()); + jo.put("rule_type", RuleUtil.PRODUCTION_IN_1); + StIvtStructattr stIvtStructattr = divRuleCpService.divRuleIn(jo); + //少出入库记录 + if (ObjectUtil.isEmpty(stIvtStructattr)) { + throw new BadRequestException("无可分配货位"); } + stIvtStructattr.setLock_type(IOSEnum.LOCK_TYPE.code("入库锁")); + stIvtStructattr.setInv_code(task.getString("task_code")); + // 设置点位 + task.put("update_time", DateUtil.now()); + task.put("point_code2",stIvtStructattr.getStruct_code()); + SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class); + schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode()); + schBaseTask.setUpdate_time(new Date()); + schBaseTask.setTask_type(AcsTaskEnum.TASK_STRUCT_IN.getCode()); + taskService.updateById(schBaseTask); } @Override @@ -190,7 +201,7 @@ public class PlotterCallMaterialTask extends AbstractAcsTask { ArrayList Merge = new ArrayList<>(); if (!CollectionUtils.isEmpty(tasks)){ for (SchBaseTask task : tasks) { - task.setTask_group_id(org.nl.common.utils.IdUtil.getStringId()); + task.setTask_group_id(IdUtil.getStringId()); Merge.add(task); } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/PdmProduceWorkorder.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/PdmProduceWorkorder.java index 07d0b6e8..e3363294 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/PdmProduceWorkorder.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/PdmProduceWorkorder.java @@ -224,6 +224,6 @@ public class PdmProduceWorkorder implements Serializable { /** * 是否删除 */ - private Boolean is_used_fxx = false; + private String package_ext; } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/PdmProduceWorkorderrecord.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/PdmProduceWorkorderrecord.java index e646f345..785617e2 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/PdmProduceWorkorderrecord.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/PdmProduceWorkorderrecord.java @@ -91,12 +91,12 @@ public class PdmProduceWorkorderrecord implements Serializable { private BigDecimal person_finish_qty; /** - * 开工时间 + * 开始时间 */ private String operatetime_start; /** - * 完工时间 + * 结束时间 */ private String operatetime_end; 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 8b719567..6e9d071f 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 @@ -128,7 +128,10 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl().eq("workorder_id", param.getString("workorder_id"))); -// if (workorder.getWorkorder_status().equals(WorkerOrderEnum.COMPLETE.getCode()) || workorder.getWorkorder_status().equals(WorkerOrderEnum.FORCE_COMPLETE.getCode())) { + 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") + "当前工单已经完工不允许报工"); // } - Assert.notNull(workorder, "当前工单不存在"); PdmProduceWorkorderrecord one = reportRecordService.getOne(new QueryWrapper() .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()) { workorder.setWorkorder_status(WorkerOrderEnum.COMPLETE.getCode()); - JSONArray array = new JSONArray(); - JSONObject map = new JSONObject(); - map.put("workorder_id", workorder.getWorkorder_id()); - map.put("type", WorkerOrderEnum.COMPLETE.getCode()); - array.add(map); - wmsToAcsService.orderStatusUpdate(array); + }else { + workorder.setWorkorder_status(WorkerOrderEnum.STOP.getCode()); } + JSONArray array = new JSONArray(); + JSONObject map = new JSONObject(); + map.put("workorder_id", workorder.getWorkorder_id()); + map.put("type", WorkerOrderEnum.COMPLETE.getCode()); + array.add(map); + wmsToAcsService.orderStatusUpdate(array); + workorder.setReal_qty(null); this.updateById(workorder); reportRecordService.update(new UpdateWrapper() .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(); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workprocedure/impl/PdmBiWorkprocedureServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workprocedure/impl/PdmBiWorkprocedureServiceImpl.java index 5421354a..f2d1f078 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workprocedure/impl/PdmBiWorkprocedureServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workprocedure/impl/PdmBiWorkprocedureServiceImpl.java @@ -11,12 +11,9 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; -import org.nl.modules.wql.core.bean.WQLObject; -import org.nl.wms.masterdata_manage.备份pdm.service.dto.WorkProcedureDto; import org.nl.wms.product_manage.service.workprocedure.IPdmBiWorkprocedureService; import org.nl.wms.product_manage.service.workprocedure.dao.PdmBiWorkprocedure; import org.nl.wms.product_manage.service.workprocedure.dao.mapper.PdmBiWorkprocedureMapper; -import org.nl.wms.system_manage.service.user.dto.CurrentUser; import org.springframework.stereotype.Service; import java.util.List; 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 e57583e3..891ce732 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 @@ -5,18 +5,16 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; import org.nl.common.enums.WorkerOrderEnum; import org.nl.common.utils.BaseCode; import org.nl.common.utils.IdUtil; 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.callMaterial.EngraveCallMaterialTask; +import org.nl.wms.product_manage.sch.tasks.sendMaterial.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; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -24,13 +22,16 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.math.BigDecimal; -import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /* - * @author ZZQ + * @author ZZQ "' + * //一体机加一个从入库点到刻字机的搬运任务; + * //一体机加一个刻字机到空框回库 + * //一体机加一个手动打开气缸按钮 + * //一体机加预料上完:上到刻字机14号设备(虚拟设备) * @Date 2023/6/16 09:21 */ @Service @@ -45,7 +46,7 @@ public class EngraveScheduleService { @Autowired private IStIvtIostorinvBcpOutService stIvtIostorinvBcpOutService; @Autowired - private EngraveCallMaterialTask engraveCallMaterialTask; + private WashSendMaterialTask engraveCallMaterialTask; @Autowired private IMdMeMaterialbaseService materialbaseService; @@ -61,6 +62,7 @@ public class EngraveScheduleService { public void EngravePublish(){ /** * 1.查询当前正在执行的刻字工单数组 + * 3. * 2.获取相同物料的工单:查询半成品库存物料:有的话则进行半成品出库:出到对接位 * 3.半成品出库完成后:触发刻字机叫料任务: * 4。根据物料获取工单对应设备:生成刻字机叫料任务 diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpServiceImpl.java index f98368b1..699887e7 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpServiceImpl.java @@ -453,7 +453,6 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl