From f0c1387064e34fb77df005690dec346cd654d805 Mon Sep 17 00:00:00 2001 From: zhangzhiqiang Date: Tue, 25 Apr 2023 19:38:44 +0800 Subject: [PATCH] =?UTF-8?q?rev:=E6=8E=A5=E5=8F=A3=E8=81=94=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/nl/common/enums/AcsTaskEnum.java | 4 +- .../org/nl/common/utils/OptionRecord.java | 55 +++ .../controller/ql/PdmQlOptionController.java | 21 ++ .../service/ql/IPdmQlOptionService.java | 16 + .../nl/system/service/ql/dao/PdmQlOption.java | 71 ++++ .../ql/dao/mapper/PdmQlOptionMapper.java | 16 + .../ql/dao/mapper/PdmQlOptionMapper.xml | 5 + .../ql/impl/PdmQlOptionServiceImpl.java | 20 ++ .../wms/ext/acs/rest/AcsToWmsController.java | 11 +- .../acs/service/impl/AcsToWmsServiceImpl.java | 36 +- .../ext/acs/service/impl/AgvInstService.java | 38 +-- .../mps/rest/ProduceWorkorderController.java | 2 +- .../impl/ProduceshiftorderServiceImpl.java | 36 +- .../nl/wms/sch/tasks/SpeMachineryTask.java | 5 +- mes/qd/src/views/wms/mps/produce/index.vue | 2 +- .../wms/ql/materialInspection/AddDialog.vue | 320 ------------------ .../views/wms/ql/materialInspection/index.vue | 142 -------- .../materialInspectionpoint.js | 35 -- 18 files changed, 282 insertions(+), 553 deletions(-) create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/common/utils/OptionRecord.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/system/controller/ql/PdmQlOptionController.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/system/service/ql/IPdmQlOptionService.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/system/service/ql/dao/PdmQlOption.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/system/service/ql/dao/mapper/PdmQlOptionMapper.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/system/service/ql/dao/mapper/PdmQlOptionMapper.xml create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/system/service/ql/impl/PdmQlOptionServiceImpl.java delete mode 100644 mes/qd/src/views/wms/ql/materialInspection/AddDialog.vue delete mode 100644 mes/qd/src/views/wms/ql/materialInspection/index.vue delete mode 100644 mes/qd/src/views/wms/ql/materialInspection/materialInspectionpoint.js 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 c17cfef7..f1027a42 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 @@ -40,8 +40,8 @@ public enum AcsTaskEnum { STATUS_FINISH("2","完成"), STATUS_CANNEL("3","取消"), //专机请求 - REQUEST_CALLTYPE_FULL("1","专机满料请求"), - REQUEST_CALLTYPE_EMP("2","专机缺料请求"), + REQUEST_CALLTYPE_FULL("2","专机满料请求"), + REQUEST_CALLTYPE_EMP("1","专机缺料请求"), REQUEST_PLOTTER_SEND_FULL("3","刻字满料请求"), REQUEST_PLOTTER_CALL_EMP("4","刻字缺空框请求"), REQUEST_WARP_CALL_FULL("5","包装缺料请求"), 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 new file mode 100644 index 00000000..dd2c6e11 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/common/utils/OptionRecord.java @@ -0,0 +1,55 @@ +package org.nl.common.utils; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import lombok.AllArgsConstructor; +import lombok.Getter; +import org.nl.config.thread.ThreadPoolExecutorUtil; +import org.nl.modules.wql.util.SpringContextHolder; +import org.nl.system.service.ql.IPdmQlOptionService; +import org.nl.system.service.ql.dao.PdmQlOption; + +import java.util.Date; +import java.util.Map; +import java.util.concurrent.ThreadPoolExecutor; + +/* + * @author ZZQ + * @Date 2023/4/25 15:40 + */ +public class OptionRecord { + + private final static ThreadPoolExecutor EXECUTOR = ThreadPoolExecutorUtil.getPoll(); + + public static void record(OptionEnum type, Buss classname, String order, Map option){ + EXECUTOR.execute(()->{ + IPdmQlOptionService bean = SpringContextHolder.getBean(IPdmQlOptionService.class); + PdmQlOption qlOption = new PdmQlOption(); + if (option !=null){ + qlOption.setOptionDate(JSON.toJSONString(option)); + } + qlOption.setOrderno(order); + qlOption.setType(type.name()); + qlOption.setCreateTime(new Date()); + qlOption.setCreateId(SecurityUtils.getCurrentUserId()); + qlOption.setCreateId(SecurityUtils.getCurrentNickName()); + qlOption.setBussclass(classname.name()); + bean.save(qlOption); + }); + } + + @Getter + @AllArgsConstructor + public enum OptionEnum{ + ADDOP, + DELETEOP, + UPDATEOP, + } + @Getter + @AllArgsConstructor + public enum Buss{ + WORKORDER, + MATERIAL, + VECHILE, + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/system/controller/ql/PdmQlOptionController.java b/mes/hd/nladmin-system/src/main/java/org/nl/system/controller/ql/PdmQlOptionController.java new file mode 100644 index 00000000..6096aad2 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/system/controller/ql/PdmQlOptionController.java @@ -0,0 +1,21 @@ +package org.nl.system.controller.ql; + + +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * 操作记录表 前端控制器 + *

+ * + * @author generator + * @since 2023-04-25 + */ +@RestController +@RequestMapping("/pdmQlOption") +public class PdmQlOptionController { + +} + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/system/service/ql/IPdmQlOptionService.java b/mes/hd/nladmin-system/src/main/java/org/nl/system/service/ql/IPdmQlOptionService.java new file mode 100644 index 00000000..44dfe7d5 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/system/service/ql/IPdmQlOptionService.java @@ -0,0 +1,16 @@ +package org.nl.system.service.ql; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.system.service.ql.dao.PdmQlOption; + +/** + *

+ * 操作记录表 服务类 + *

+ * + * @author generator + * @since 2023-04-25 + */ +public interface IPdmQlOptionService extends IService { + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/system/service/ql/dao/PdmQlOption.java b/mes/hd/nladmin-system/src/main/java/org/nl/system/service/ql/dao/PdmQlOption.java new file mode 100644 index 00000000..539b7d90 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/system/service/ql/dao/PdmQlOption.java @@ -0,0 +1,71 @@ +package org.nl.system.service.ql.dao; + +import com.baomidou.mybatisplus.annotation.TableName; +import java.time.LocalDateTime; +import java.io.Serializable; +import java.util.Date; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * 操作记录表 + *

+ * + * @author generator + * @since 2023-04-25 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("pdm_ql_option") +public class PdmQlOption implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 项目id + */ + private String optionId; + + /** + * 检测类型 + */ + private String type; + + /** + * 单据 + */ + private String orderno; + + /** + * 数据 + */ + private String optionDate; + /** + * 业务类 + */ + private String bussclass; + + /** + * 创建人姓名 + */ + private String createName; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 创建人 + */ + private String createId; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/system/service/ql/dao/mapper/PdmQlOptionMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/system/service/ql/dao/mapper/PdmQlOptionMapper.java new file mode 100644 index 00000000..bef30b5e --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/system/service/ql/dao/mapper/PdmQlOptionMapper.java @@ -0,0 +1,16 @@ +package org.nl.system.service.ql.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.system.service.ql.dao.PdmQlOption; + +/** + *

+ * 操作记录表 Mapper 接口 + *

+ * + * @author generator + * @since 2023-04-25 + */ +public interface PdmQlOptionMapper extends BaseMapper { + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/system/service/ql/dao/mapper/PdmQlOptionMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/system/service/ql/dao/mapper/PdmQlOptionMapper.xml new file mode 100644 index 00000000..59e9f798 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/system/service/ql/dao/mapper/PdmQlOptionMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/system/service/ql/impl/PdmQlOptionServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/system/service/ql/impl/PdmQlOptionServiceImpl.java new file mode 100644 index 00000000..9ee94dc5 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/system/service/ql/impl/PdmQlOptionServiceImpl.java @@ -0,0 +1,20 @@ +package org.nl.system.service.ql.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.nl.system.service.ql.IPdmQlOptionService; +import org.nl.system.service.ql.dao.PdmQlOption; +import org.nl.system.service.ql.dao.mapper.PdmQlOptionMapper; +import org.springframework.stereotype.Service; + +/** + *

+ * 操作记录表 服务实现类 + *

+ * + * @author generator + * @since 2023-04-25 + */ +@Service +public class PdmQlOptionServiceImpl extends ServiceImpl implements IPdmQlOptionService { + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java index be2d0252..c34bbfab 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java @@ -18,6 +18,7 @@ import org.nl.wms.pda.service.CacheLineHandService; import org.nl.wms.sch.tasks.SpeMachineryTask; import org.nl.wms.sch.tasks.TaskScheduleService; import org.nl.wms.sch.tasks.WashMachineryTask; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -30,7 +31,6 @@ import java.util.Map; * @date 2021-07-21 **/ @RestController -@RequiredArgsConstructor @Api(tags = "acs接收wms") @RequestMapping("/api/acsToWms/task") @Slf4j @@ -71,7 +71,7 @@ public class AcsToWmsController { @Log("ACS给WMS下发工单完成状态") @ApiOperation("ACS给WMS下发工单完成状态") @SaIgnore - public ResponseEntity orderFinish(@RequestBody JSONObject param) { + public ResponseEntity orderStatus(@RequestBody JSONObject param) { return new ResponseEntity<>(acsToWmsService.orderStatus(param), HttpStatus.OK); } @@ -133,4 +133,11 @@ public class AcsToWmsController { washMachineryTask.createTask(new JSONObject(MapOf.of("device_code","QX03"))); return null; } + @PostMapping("/taskPublish") + @Log("向wms反实施数量") + @ApiOperation("向wms反订单实施数量") + @SaIgnore + public void taskScheduleService(){ + taskScheduleService.taskPublish(); + } } 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 f76559c5..0482a961 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 @@ -14,6 +14,7 @@ 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.RedissonUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.wql.core.bean.WQLObject; @@ -32,7 +33,9 @@ import org.nl.wms.sch.tasks.WashMachineryTask; import org.redisson.api.RLock; import org.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.http.HttpStatus; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -54,6 +57,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ public static Map Task_Collent = new HashMap<>(); @Autowired + @Lazy private TaskService taskService; @Autowired private CacheLineHandService cacheLineHandService; @@ -214,21 +218,17 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ public Map orderStatus(JSONObject orderJson) { JSONObject result = new JSONObject(); try { - String workorder_id = orderJson.getString("workorder_id"); - String order_status = orderJson.getString("status"); - String real_qty = orderJson.getString("real_qty"); - WQLObject wo = WQLObject.getWQLObject("PDM_produce_workOrder"); JSONObject map = new JSONObject(); - map.put("workorder_id", workorder_id); - map.put("order_status", order_status); - map.put("update_id", 1001001); - map.put("real_qty", real_qty); + map.put("workorder_id", orderJson.getString("workorder_id")); + map.put("workorder_status", orderJson.getString("status")); + map.put("update_id", "1"); + map.put("real_qty", orderJson.getString("real_qty")); map.put("current_device_code", ""); map.put("update_name", "acs"); map.put("update_time", DateUtil.now()); map.put("realproduceend_date", DateUtil.now()); - wo.update(map, "workorder_id = '" + workorder_id + "'"); - + WQLObject.getWQLObject("PDM_produce_workOrder").update(map, "workorder_id = '" + orderJson.getString("workorder_id") + "'"); + OptionRecord.record(OptionRecord.OptionEnum.UPDATEOP, OptionRecord.Buss.WORKORDER,orderJson.getString("workorder_id"),MapOf.of("workorder_status", orderJson.getString("status"))); } catch (Exception e){ result.put("status", 400); result.put("message", e.getMessage()); @@ -250,7 +250,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ String workorder_code = param.getString("workorder_code"); String status_type = param.getString("status_type"); String start_time = param.getString("start_time"); - String err_status_id = param.getString("err_status_id"); + String err_status_id = param.getString("error_code");//关联pdm_bi_devicerunerrorlink获取异常信息 JSONObject lastRecord = devRecordTab.query("device_code = '" + device_code + "' order by order_num desc limit 1").uniqueResult(0); if (lastRecord!=null){ lastRecord.put("end_time",DateUtil.now()); @@ -263,6 +263,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ } @Override + @Async public void feedDevQty(Map param) { WQLObject deviceTab = WQLObject.getWQLObject("pdm_bi_device"); if (CollectionUtils.isEmpty(param)){ @@ -271,8 +272,10 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ Iterator iterator = param.keySet().iterator(); while (iterator.hasNext()){ String deviceCode = (String)iterator.next(); - String qty = String.valueOf(param.get(deviceCode)); - deviceTab.update(MapOf.of("deviceinstor_qty",qty),"device_code = '"+deviceCode+"'"); + if (!StringUtils.isEmpty(deviceCode)){ + String qty = String.valueOf(param.get(deviceCode)); + deviceTab.update(MapOf.of("deviceinstor_qty",qty),"device_code = '"+deviceCode+"'"); + } } } @@ -304,6 +307,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ } @Override + @Async public void feedOrderRealQty(JSONObject param) { WQLObject wo = WQLObject.getWQLObject("pdm_produce_workorder"); if (CollectionUtils.isEmpty(param)){ @@ -311,9 +315,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ } Iterator iterator = param.keySet().iterator(); while (iterator.hasNext()){ - String workorder_id = iterator.next(); - String real_qty = param.getString(workorder_id); - wo.update(MapOf.of("real_qty",real_qty),"workorder_id = '"+workorder_id+"'"); + String workorderCode = iterator.next(); + String real_qty = param.getString(workorderCode); + wo.update(MapOf.of("real_qty",real_qty),"workorder_code = '"+workorderCode+"'"); } } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AgvInstService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AgvInstService.java index 89edd4b5..57522e89 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AgvInstService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AgvInstService.java @@ -50,23 +50,23 @@ public class AgvInstService { //4.有则创建agv指令, // 没有则创建缓存架任务 public void fullMaster(JSONObject task){ - final String OPT_NAME = "满料请求:"; - WQLObject basePoint = WQLObject.getWQLObject("sch_base_point"); WQLObject taskTab = WQLObject.getWQLObject("sch_base_task"); WQLObject cacheLineSearch = WQLObject.getWQLObject("SCH_cacheLine_region_relation"); String point_code = task.getString("start_point_code"); String quantity = task.getString("quantity"); - JSONObject devicePoint = basePoint.query("point_code = '" + point_code + "' and is_delete = 0 and is_used = 1").uniqueResult(0); + JSONObject devicePoint = WQLObject.getWQLObject("sch_base_point").query("point_code = '" + point_code + "' and is_delete = 0 and is_used = 1").uniqueResult(0); String nextPoint; //判断缓存线是不是去深坑清洗:深坑区域15个点:判断空的物料坑位: String cacheVehile = ""; if (devicePoint.getString("next_region_code").equals(ConstantParam.SK_REGION)){ - JSONArray nextPointList = WQL.getWO("sch_point").addParamMap(MapOf.of("flag","7","region_code", devicePoint.getString("next_region_code"),"qty",quantity)).process().getResultJSONArray(0); + //查询生坑重量是否超限:深坑需要乘以系数 + JSONArray nextPointList = WQL.getWO("sch_point").addParamMap(MapOf.of("flag","7","region_code", devicePoint.getString("next_region_code"),"qty",Integer.valueOf(quantity)*ConstantParam.MATERAIL_RATIO)).process().getResultJSONArray(0); if (nextPointList.size() == 0){ - throw new BadRequestException(OPT_NAME+"深坑区域:"+devicePoint.getString("next_region_code")+"无可用点位"); + throw new BadRequestException("深坑清洗储料仓:"+devicePoint.getString("next_region_code")+"无可用点位"); } nextPoint = nextPointList.getJSONObject(0).getString("point_code"); }else { + //专机的话:需要判断专机上料口物料是否满足数量 JSONArray nextPointList = WQL.getWO("sch_point").addParamMap(MapOf.of("flag","3","region_code", devicePoint.getString("next_region_code"),"qty",quantity)).process().getResultJSONArray(0); if (nextPointList.size() == 0){ JSONObject cacheLine = cacheLineSearch.query("region_code = '"+devicePoint.getString("region_code")+"'").uniqueResult(0); @@ -74,16 +74,16 @@ public class AgvInstService { //满料请求:查询缓存线空载具列表 cacheVehile = getEmpCacheVehile(nextPoint, null); if (StringUtils.isBlank(cacheVehile)) { - throw new BadRequestException(OPT_NAME+"缓存线:"+nextPoint+"没有可用空载具"); + throw new BadRequestException("缓存线:"+nextPoint+"没有可用空载具"); } }else { nextPoint = nextPointList.getJSONObject(0).getString("point_code"); } } if (StringUtils.isBlank(nextPoint)){ - throw new BadRequestException(OPT_NAME+"设备:"+point_code+"没有可用点位"); + throw new BadRequestException("设备:"+point_code+"没有可用点位"); } - basePoint.update(MapOf.of("lock_type",StatusEnum.LOCK_ON.getCode(),"point_code = '"+nextPoint+"'")); + WQLObject.getWQLObject("sch_base_point").update(MapOf.of("task_id",task.getString("task_id"),"lock_type",StatusEnum.LOCK_ON.getCode(),"point_code = '"+nextPoint+"'")); task.put("vehicle_code",cacheVehile); task.put("next_point_code",nextPoint); task.put("task_status",StatusEnum.TASK_START_END_P.getCode()); @@ -95,35 +95,29 @@ public class AgvInstService { //2.根据当前设备绑定的物料id,从缓存线中获取相同物料对应载具列表 //3.agv根据对应载具列表行进扫码匹配:匹配到对应物料则创建点对点任务 public void callMatter(JSONObject task){ - final String OPT_NAME = "专机缺料请求:"; - WQLObject basePointTable = WQLObject.getWQLObject("SCH_BASE_Point"); - WQLObject cacheLineTable = WQLObject.getWQLObject("SCH_cacheLine_region_relation"); - WQLObject taskTable = WQLObject.getWQLObject("SCH_base_task"); //参数 String material_id = task.getString("material_id"); - - JSONObject devicePoint = basePointTable.query("point_code = '" + task.getString("next_point_code") + "' and is_delete = 0 and is_used = 1").uniqueResult(0); - - JSONObject cacheLine = cacheLineTable.query("region_code = '"+devicePoint.getString("region_code")+"' and is_active = '"+StatusEnum.STATUS_TRUE.getCode()+"'").uniqueResult(0); - Assert.notNull(cacheLine, String.format(OPT_NAME+"区域%s对应缓存线信息不存在", devicePoint.getString("region_code"))); + JSONObject devicePoint = WQLObject.getWQLObject("SCH_BASE_Point").query("point_code = '" + targetDevice + "' and is_delete = 0 and is_used = 1").uniqueResult(0); + JSONObject cacheLine = WQLObject.getWQLObject("SCH_cacheLine_region_relation").query("region_code = '"+devicePoint.getString("region_code")+"' and is_active = '"+StatusEnum.STATUS_TRUE.getCode()+"'").uniqueResult(0); + Assert.notNull(cacheLine, String.format("区域%s对应缓存线信息不存在", devicePoint.getString("region_code"))); //缓存线位置编码 :缺料请求获取缓存线满载具列表 String startPoint = cacheLine.getString("cacheline_code"); String cacheVehile = getEmpCacheVehile(startPoint, material_id); if (StringUtils.isBlank(cacheVehile)) { - throw new BadRequestException(OPT_NAME+"缓存线:"+startPoint+"没有可用载具"); + throw new BadRequestException("缓存线:"+startPoint+"没有物料"+material_id+"对应可用载具"); } //判断当前物料载具已经任务分配数量:如果>物料已经分配任务。说明满了,不允许再分配 - JSONArray allocateTask = taskTable.query("point_code1 = '" + startPoint + "' and material_id = '" + material_id + "' and task_status <" + StatusEnum.TASK_FINISH.getCode()).getResultJSONArray(0); + JSONArray allocateTask = WQLObject.getWQLObject("SCH_base_task").query("point_code1 = '" + startPoint + "' and material_id = '" + material_id + "' and task_status <" + StatusEnum.TASK_FINISH.getCode()).getResultJSONArray(0); if (allocateTask.size()>=cacheVehile.split(",").length){ - log.error(OPT_NAME+"callMatter 缓存线:{}上含有物料:{}的载具分配完,任务id:{}",startPoint,material_id,allocateTask.stream().map(o-> ((JSONObject)o).getString("task_id")).collect(Collectors.joining(","))); - throw new BadRequestException(String.format(OPT_NAME+"缓存线%s上含物料%s的载具已分配完",startPoint,material_id)); + log.error("callMatter 缓存线:{}上含有物料:{}的载具分配完,任务id:{}",startPoint,material_id,allocateTask.stream().map(o-> ((JSONObject)o).getString("task_id")).collect(Collectors.joining(","))); + throw new BadRequestException(String.format("缓存线%s上含物料%s的载具已分配完",startPoint,material_id)); } task.put("vehicle_code",cacheVehile); task.put("start_point_code",startPoint); task.put("return_point_code",startPoint); task.put("task_status",StatusEnum.TASK_START_END_P.getCode()); task.put("update_time", DateUtil.now()); - taskTable.update(task); + WQLObject.getWQLObject("SCH_base_task").update(task); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/rest/ProduceWorkorderController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/rest/ProduceWorkorderController.java index a74fd217..c27a263f 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/rest/ProduceWorkorderController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/rest/ProduceWorkorderController.java @@ -48,7 +48,7 @@ public class ProduceWorkorderController { produceWorkorderService.create(dto); return new ResponseEntity<>(HttpStatus.CREATED); } - @PostMapping("/submits") + @PostMapping("/create") @Log("新增工单管理") @ApiOperation("新增工单管理") //@PreAuthorize("@el.check('produceWorkorder:add')") diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/impl/ProduceshiftorderServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/impl/ProduceshiftorderServiceImpl.java index 43dd4c7f..c25b0c46 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/impl/ProduceshiftorderServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/impl/ProduceshiftorderServiceImpl.java @@ -14,9 +14,11 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.jetbrains.annotations.NotNull; 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.api.CommonResult; import org.nl.common.utils.api.RestBusinessTemplate; import org.nl.modules.common.exception.BadRequestException; @@ -323,28 +325,44 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService{ @Override @Transactional(rollbackFor = Exception.class) public CommonResult> openStart(JSONObject param) { - String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - WQLObject wo = WQLObject.getWQLObject("pdm_produce_workorder"); //获取前台传入的开工的工单信息 String workorder_id = param.getString("workorder_id"); - String device_code = param.getString("device_code"); //1-创建、2-下发、3-生产中、4-暂停、5-完成 - JSONObject result = wo.query("current_device_code = '" + device_code + "' and workorder_status in ('2','3','4') and workorder_id != '" + workorder_id + "'").uniqueResult(0); + JSONObject result = WQLObject.getWQLObject("pdm_produce_workorder").query("current_device_code = '" + param.getString("device_code") + "' and workorder_status in ('2','3','4') and workorder_id != '" + workorder_id + "'").uniqueResult(0); //判断该工单状态 if(ObjectUtil.isNotEmpty(result)) { throw new BadRequestException("已有工单选择该设备开工,请更换开工设备!"); } - //TODO:开工时修改生产班次工单表 生产设备、以及工单状态 - wo.update(MapOf.of("workorder_id", workorder_id, "workorder_status", WorkerOrderEnum.SEND.getCode(), "update_id", currentUserId, "update_name", nickName, "update_time", DateUtil.now())); JSONArray array = new JSONArray(); - JSONObject order = new JSONObject(MapOf.of("workorder_id", workorder_id, "type", WorkerOrderEnum.SEND.getCode())); + JSONObject order = packageForm(workorder_id); array.add(order); //下发acs - Map resp = wmsToAcsService.orderStatusUpdate(array); + WQLObject.getWQLObject("pdm_produce_workorder").update(MapOf.of("workorder_id", workorder_id, "workorder_status", WorkerOrderEnum.SEND.getCode(), "update_id", SecurityUtils.getCurrentUserId(), "update_name", SecurityUtils.getCurrentNickName(), "update_time", DateUtil.now())); + Map resp = wmsToAcsService.order(array); + //TODO:记录表记录操作 + OptionRecord.record(OptionRecord.OptionEnum.UPDATEOP, OptionRecord.Buss.WORKORDER,workorder_id,MapOf.of("workorder_status", WorkerOrderEnum.SEND.getCode())); return RestBusinessTemplate.execute(() -> resp); } + @NotNull + private JSONObject packageForm(String workorder_id) { + JSONObject workOrder = WQLObject.getWQLObject("pdm_produce_workorder").query(" workorder_id = '" + workorder_id + "'").uniqueResult(0); + JSONObject form = new JSONObject(); + JSONObject material = WQLObject.getWQLObject("md_me_materialbase").query("material_id = '" + workOrder.getString("material_id") + "'").uniqueResult(0); + JSONObject device_code = WQLObject.getWQLObject("pdm_bi_device").query("device_code = '" +workOrder.getString("current_device_code")+ "'").uniqueResult(0); + form.put("workorder_id",workOrder.get("workorder_id")); + form.put("workorder_code",workOrder.get("workorder_code")); + form.put("qty", workOrder.getString("plan_qty")); + form.put("outupperlimit_qty",device_code.getString("outupperlimit_qty")); + form.put("material_id",workOrder.get("material_id")); + form.put("material_name",material.get("material_name")); + form.put("material_code",material.get("material_code")); + form.put("material_spec",material.get("material_spec")); + form.put("device_code",workOrder.getString("current_device_code")); + form.put("is_needmove",workOrder.getString("is_needmove")); + return form; + } + /** * 报工操作 * diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/tasks/SpeMachineryTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/tasks/SpeMachineryTask.java index 9af11adc..06d3d36a 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/tasks/SpeMachineryTask.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/tasks/SpeMachineryTask.java @@ -109,9 +109,8 @@ public class SpeMachineryTask extends AbstractAcsTask { task.put("material_id", reqestPram.getString("material_id")); task.put("handle_class", this.getClass().getName()); task.put("finished_type", "1"); - task.put("is_delete", "0"); - String currentUserId = SecurityUtils.getCurrentUserId(); - task.put("create_id", currentUserId); + task.put("is_delete", StatusEnum.LOCK_OFF.getCode()); + task.put("create_id", SecurityUtils.getCurrentUserId()); task.put("create_name", SecurityUtils.getCurrentNickName()); task.put("update_id", currentUserId); task.put("update_name", SecurityUtils.getCurrentNickName()); diff --git a/mes/qd/src/views/wms/mps/produce/index.vue b/mes/qd/src/views/wms/mps/produce/index.vue index 3d02b76c..5be2b692 100644 --- a/mes/qd/src/views/wms/mps/produce/index.vue +++ b/mes/qd/src/views/wms/mps/produce/index.vue @@ -754,7 +754,7 @@ export default { var orders = [] console.log(rows) rows.forEach((item) => { - orders.push(item.workprocedure_id) + orders.push(item.workorder_id) }) crudProduceshiftorder.submits(orders).then(res => { this.crud.notify('下发成功', CRUD.NOTIFICATION_TYPE.SUCCESS) diff --git a/mes/qd/src/views/wms/ql/materialInspection/AddDialog.vue b/mes/qd/src/views/wms/ql/materialInspection/AddDialog.vue deleted file mode 100644 index 766b36bf..00000000 --- a/mes/qd/src/views/wms/ql/materialInspection/AddDialog.vue +++ /dev/null @@ -1,320 +0,0 @@ - - - - - diff --git a/mes/qd/src/views/wms/ql/materialInspection/index.vue b/mes/qd/src/views/wms/ql/materialInspection/index.vue deleted file mode 100644 index a6ca8f03..00000000 --- a/mes/qd/src/views/wms/ql/materialInspection/index.vue +++ /dev/null @@ -1,142 +0,0 @@ - - - - - diff --git a/mes/qd/src/views/wms/ql/materialInspection/materialInspectionpoint.js b/mes/qd/src/views/wms/ql/materialInspection/materialInspectionpoint.js deleted file mode 100644 index 8e2d1eef..00000000 --- a/mes/qd/src/views/wms/ql/materialInspection/materialInspectionpoint.js +++ /dev/null @@ -1,35 +0,0 @@ -import request from '@/utils/request' - -export function add(data) { - return request({ - url: '/api/materialInspection/create', - method: 'post', - data - }) -} - -export function del(ids) { - return request({ - url: '/api/materialInspection/delete', - method: 'post', - data: ids - }) -} - -export function edit(data) { - return request({ - url: '/api/materialInspection/update', - method: 'post', - data - }) -} - -export function edit(data) { - return request({ - url: '/api/materialInspection/update', - method: 'post', - data - }) -} - -export default { add, edit, del }