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 d957514c..e99b2396 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 @@ -53,13 +53,15 @@ public enum AcsTaskEnum { TASK_Engrave_CALL("24","刻字机上料"), TASK_Engrave_EMPTY("25","刻字输送线-空框送回"), - TASK_STRUCT_HR_IN("26","入库-海柔半成品-生产入库"), - TASK_STRUCT_HR_OUT("27","出库-海柔半成品-生产出库"), + TASK_STRUCT_HR_IN("26","入库-海柔半成品-单据入库"), + TASK_STRUCT_HR_OUT("27","出库-海柔半成品-单据出库"), TASK_STRUCT_HR_CHECK("28","海柔半成品-盘点"), TASK_STRUCT_HR_EMP_IN("29","入库-海柔半成品-空托盘"), TASK_STRUCT_HR_EMP_OUT("30","出库-海柔半成品-空托盘"), + TASK_STRUCT_HR_PRODUCT_IN("31","入库-海柔半成品-生产入库"), + TASK_STRUCT_HR_PRODUCT_OUT("32","出库-海柔半成品-生产出库"), TASK_STRUCT_HR_TRANSPORT_IN("35","搬运任务-海柔半成品库入库点"), - TASK_STRUCT_HR_TRANSPORT_OUT("36","搬运任务-海柔半成品库入库点"), + TASK_STRUCT_HR_TRANSPORT_OUT("36","搬运任务-海柔半成品库出库点"), TASK_WASH_FEEDING_JG("40","激光清洗机上料"), TASK_WASH_FEEDING_FH("41","发黑清洗机上料"), TASK_WASH_FEEDING_ZD("42","振动清洗机上料"), @@ -94,6 +96,7 @@ public enum AcsTaskEnum { ACS_TASK_TYPE_NOBLE_SINGLE_TASK("2","诺宝单工任务"), ACS_TASK_TYPE_NOBLE_SINGLE_ENTRY_TASK("3","诺宝单入-单任务"), ACS_TASK_TYPE_NOBLE_DOUBLE_ENTRY_TASK("4","诺宝双入-双任务"), + ACS_TASK_TYPE_HR_TASK("14","海柔任务"), ACS_TASK_TYPE_NOBLE_POINT_POINT_TASK("5","诺宝点对点任务"), diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/event/TaskEvent2.java b/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/event/TaskEvent2.java new file mode 100644 index 00000000..33af3096 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/event/TaskEvent2.java @@ -0,0 +1,26 @@ +package org.nl.common.publish.event; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; +import org.nl.wms.scheduler_manage.service.extendtask.manage.TaskStatusEnum; + +import java.util.Map; + + +/* + * @author ZZQ + * @Date 2023/4/28 13:50 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class TaskEvent2 extends PublishEvent { + + private TaskStatusEnum status; + private String task_id; + private Map extParam; + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/modules/wql/WQLCore.java b/mes/hd/nladmin-system/src/main/java/org/nl/modules/wql/WQLCore.java index 22e50fcc..1711fa2c 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/modules/wql/WQLCore.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/modules/wql/WQLCore.java @@ -141,7 +141,7 @@ public class WQLCore { //开始加载系统默认wql根目录 - isSuccess = loadWQL(WQLCore.ROOT); + isSuccess = true;//loadWQL(WQLCore.ROOT); return isSuccess; diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext_manage/acs/service/listener/TaskListener.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext_manage/acs/service/listener/TaskListener.java new file mode 100644 index 00000000..6d0e8fca --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext_manage/acs/service/listener/TaskListener.java @@ -0,0 +1,69 @@ +package org.nl.wms.ext_manage.acs.service.listener; + +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import org.apache.commons.lang3.StringUtils; +import org.nl.common.publish.AbstraceListener; +import org.nl.common.publish.event.TaskEvent; +import org.nl.common.publish.event.TaskEvent2; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.wql.util.SpringContextHolder; +import org.nl.wms.ext_manage.acs.service.WmsToAcsService; +import org.nl.wms.scheduler_manage.service.extendtask.manage.TaskStatusEnum; +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.semimanage.TASKEnum; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Map; + +@Service +public class TaskListener extends AbstraceListener { + + @Autowired + private ISchBaseTaskService taskService; + + @Override + protected String doEvent(TaskEvent2 event) { + TaskStatusEnum status = event.getStatus(); + if (StringUtils.isNotEmpty(event.getTask_id())){ + SchBaseTask task = taskService.getById(event.getTask_id()); + + switch (status){ + case CREATED: + //下发 + JSONArray param = new JSONArray(); + param.add(JSON.parseObject(JSONUtil.toJsonStr(task))); + WmsToAcsService bean = SpringContextHolder.getBean(WmsToAcsService.class); + Map result = bean.issueTaskToAcs4(param); + if (!ObjectUtil.equal(MapUtil.getStr(result, "status"),"200")) { + taskService.update(new UpdateWrapper() + .set("remark","下发acs失败"+MapUtil.getStr(result, "message")) + .set("task_status",TaskStatusEnum.SURE_START_ERROR.getCode()) + .eq("task_id",task.getTask_id())); + }else { + taskService.update(new UpdateWrapper() + .set("task_status",TaskStatusEnum.EXECUTING.getCode()) + .eq("task_id",task.getTask_id())); + } + + break; + case EXECUTING: + break; + case FINISHED: + break; + case CANCEL: + break; + default: + } + } + + return null; + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext_manage/bigScreen/service/impl/BigScreenServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext_manage/bigScreen/service/impl/BigScreenServiceImpl.java index 468742c4..db193a7c 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext_manage/bigScreen/service/impl/BigScreenServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext_manage/bigScreen/service/impl/BigScreenServiceImpl.java @@ -185,8 +185,7 @@ public class BigScreenServiceImpl implements BigScreenService, ApplicationAutoIn List arr4 = deviceService.repairList(ids); //故障曲线 List collect = arr4.stream().filter(map -> { - Object date_time = map.get("date_time"); - if (date_time != null) { + if (map.get("date_time") != null) { return map.get("date_time").equals(DateUtil.today()); } return false; @@ -201,9 +200,8 @@ public class BigScreenServiceImpl implements BigScreenService, ApplicationAutoIn } //周工单情况 ScrapRateQuery query = new ScrapRateQuery(); - DateTime dateTime = DateUtil.offsetWeek(new Date(), -1); - query.setWorkprocedure_ids(ids);//统计月 - query.setStart_time(DateFormatUtils.format(dateTime, "yyyy-MM-dd")); + query.setWorkprocedure_ids(ids); + query.setStart_time(DateFormatUtils.format(DateUtil.offsetWeek(new Date(), -1), "yyyy-MM-dd")); List scrapRate = workorderService.scrapRate(query); Map map = scrapRate.get(0); Map jo3 = MapOf.of("sumfinishproduce_qty", map.get("real_qty"), diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/a3wash/CacheConveyorContorller.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/a3wash/CacheConveyorContorller.java index ea010f7f..8cf3cd00 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/a3wash/CacheConveyorContorller.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/a3wash/CacheConveyorContorller.java @@ -6,8 +6,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.extern.slf4j.Slf4j; import org.nl.common.TableDataInfo; import org.nl.common.anno.Log; +import org.nl.wms.scheduler_manage.service.cacheline.CachelinePositionService; import org.nl.wms.staging_manage.service.conveyor.dao.SchConveyorPosition; import org.nl.wms.storage_manage.semimanage.service.structIvt.dao.StIvtStructivtBcp; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -23,15 +25,19 @@ import java.util.List; @Slf4j @SaIgnore public class CacheConveyorContorller { + + @Autowired + private CachelinePositionService cachelinePositionService; + /** - * 半成品数据库:/api/bcp/hr/bypda - * @param param + * 缓存线物料查询接口:/getCacheLineMaterialInfo" + * @param bcpIvt * @return */ @PostMapping("/call") @Log("缓存线叫料") - public ResponseEntity conveyor(@RequestBody StIvtStructivtBcp param,@RequestParam("target") String target){ + public ResponseEntity conveyor(@RequestBody JSONObject bcpIvt){ StIvtStructivtBcp bcp = new StIvtStructivtBcp(); return new ResponseEntity<>(HttpStatus.OK); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/a3wash/FhWashController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/a3wash/FhWashController.java index eca448ef..82ad70a5 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/a3wash/FhWashController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/a3wash/FhWashController.java @@ -95,10 +95,10 @@ public class FhWashController { } @PostMapping("/blanking") @Log("清洗下料") - public ResponseEntity blanking(@RequestBody JSONObject params){ + public ResponseEntity blanking(@RequestBody JSONArray params,String vechile_code){ //创建半成品入库任务 pointService.queryPointMaterial(null); - fhWashService.blanking(params); + fhWashService.blanking(params,vechile_code); return new ResponseEntity<>(HttpStatus.OK); } //退火区 diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/a3wash/ZdWashController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/a3wash/ZdWashController.java index d773741b..ec99891e 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/a3wash/ZdWashController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/a3wash/ZdWashController.java @@ -18,7 +18,9 @@ import org.nl.common.enums.StatusEnum; import org.nl.common.utils.SecurityUtils; import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleextService; import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleext; +import org.nl.wms.scheduler_manage.service.cacheline.CachelinePositionService; import org.nl.wms.scheduler_manage.service.extendtask.a3.FHWash.FhWashService; +import org.nl.wms.scheduler_manage.service.extendtask.a3.HBWash.ZdWashService; import org.nl.wms.scheduler_manage.service.point.ISchBasePointService; import org.nl.wms.scheduler_manage.service.point.PointQuery; import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint; @@ -26,6 +28,7 @@ import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService; import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; import org.nl.wms.staging_manage.service.conveyor.ISchConveyorPositionService; import org.nl.wms.staging_manage.service.conveyor.dao.SchConveyorPosition; +import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.impl.HrBcpProjectOutService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -45,30 +48,32 @@ import java.util.Map; @SaIgnore public class ZdWashController { private static String CONVEYOR = ""; - @Autowired - private ISchConveyorPositionService schConveyorPositionService; + @Autowired - private FhWashService fhWashService; + private ZdWashService zdWashService; @Autowired private ISchBaseTaskService taskService; @Autowired private ISchBasePointService pointService; @Autowired private IMdPbStoragevehicleextService storagevehicleextService; + @Autowired + private HrBcpProjectOutService hrBcpProjectOutService; - - @PostMapping("/conveyor") - @Log("查询输送线") - public ResponseEntity conveyor(@RequestBody JSONObject param){ - List list = schConveyorPositionService.list(new QueryWrapper() - .eq("position_code", CONVEYOR)); - return new ResponseEntity<>(TableDataInfo.build(list),HttpStatus.OK); + @PostMapping("/callMaterial") + @Log("半成品库叫料") + public ResponseEntity callMaterial(@RequestBody JSONObject bcpIvt){ + hrBcpProjectOutService.create(bcpIvt); + return new ResponseEntity<>(HttpStatus.OK); } + + // * 缓存线物料查询接口:/getCacheLineMaterialInfo" @PostMapping("/feeding") @Log("激光清洗机上料") public ResponseEntity feeding(@RequestBody JSONArray params){ - fhWashService.feeding(params); + //缓存线叫料" + zdWashService.feeding(params); return new ResponseEntity<>(HttpStatus.OK); } @@ -76,7 +81,7 @@ public class ZdWashController { @Log("清洗中物料") public ResponseEntity washing(){ List list = taskService.list(new QueryWrapper() - .eq("task_type", AcsTaskEnum.TASK_WASH_FEEDING_JG.getCode()) + .eq("task_type", AcsTaskEnum.TASK_WASH_FEEDING_ZD.getCode()) .eq("task_status", StatusEnum.TASK_RUNNING.getCode()) .eq("is_delete", Boolean.FALSE) .orderByAsc("task_code")); @@ -99,37 +104,7 @@ public class ZdWashController { @Log("清洗下料") public ResponseEntity blanking(@RequestBody JSONObject params){ //创建半成品入库任务 - pointService.queryPointMaterial(null); - fhWashService.blanking(params); - return new ResponseEntity<>(HttpStatus.OK); - } - //退火区 - @RequestMapping("/staging") - @Log("查询退火暂存区") - public ResponseEntity staging(PointQuery query, PageQuery page){ - //创建半成品入库任务 - List maps = pointService.queryVechileMaterial(query); - return new ResponseEntity<>(TableDataInfo.build(maps),HttpStatus.OK); - } - - @PostMapping("/release") - @Log("点位释放") - public ResponseEntity release(@RequestBody List ids){ - pointService.update(new UpdateWrapper() - .set("vehicle_code","").in("point_id",ids)); - return new ResponseEntity<>(HttpStatus.OK); - } - @PostMapping("/place") - @Log("点位放置") - public ResponseEntity place(@RequestBody JSONObject param){ - //更新点位 - pointService.update(new UpdateWrapper() - .set("vehicle_code",param.getString("vehicle_code")) - .eq("point_code",param.getString("point_code"))); - //更新载具物料信息为清洗 - storagevehicleextService.update(new UpdateWrapper() - .set("is_need_clean",true) - .eq("storagevehicle_code",param.getString("vehicle_code"))); + zdWashService.blanking(params); return new ResponseEntity<>(HttpStatus.OK); } @PostMapping("/vechileRelease") diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/CachelinePositionService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/CachelinePositionService.java index 9c1ab0bf..ff2cfad6 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/CachelinePositionService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/CachelinePositionService.java @@ -1,5 +1,6 @@ package org.nl.wms.scheduler_manage.service.cacheline; +import com.alibaba.fastjson.JSONArray; import org.nl.wms.scheduler_manage.service.cacheline.dto.CachelinePositionDto; import org.springframework.data.domain.Pageable; @@ -61,4 +62,11 @@ public interface CachelinePositionService { */ void deleteAll(String[] ids); + /** + * 缓存线叫料出箱 + * @param materials:缓存线物料,料箱信息 + * @param handleClass:业务类 + */ + void callOut(JSONArray materials,String handleClass); + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/impl/CachelinePositionServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/impl/CachelinePositionServiceImpl.java index 64d3a778..6f853bf8 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/impl/CachelinePositionServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/impl/CachelinePositionServiceImpl.java @@ -2,20 +2,29 @@ package org.nl.wms.scheduler_manage.service.cacheline.impl; import com.alibaba.fastjson.JSON; import lombok.RequiredArgsConstructor; +import org.nl.common.enums.AcsTaskEnum; +import org.nl.common.enums.StatusEnum; +import org.nl.common.publish.BussEventMulticaster; +import org.nl.common.publish.event.TaskEvent2; +import org.nl.common.utils.IdUtil; import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.system.util.CodeUtil; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.WqlUtil; import org.nl.wms.scheduler_manage.service.cacheline.CachelinePositionService; import org.nl.wms.scheduler_manage.service.cacheline.dto.CachelinePositionDto; +import org.nl.wms.scheduler_manage.service.extendtask.manage.TaskStatusEnum; +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.data.domain.Pageable; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONArray; @@ -35,6 +44,9 @@ import cn.hutool.core.util.ObjectUtil; @Slf4j public class CachelinePositionServiceImpl implements CachelinePositionService { + @Autowired + private ISchBaseTaskService taskService; + @Override public Map queryAll(Map whereJson, Pageable page){ HashMap param = new HashMap(); @@ -112,4 +124,36 @@ public class CachelinePositionServiceImpl implements CachelinePositionService { } } + @Override + public void callOut(JSONArray materials,String handleClass) { + List list = new ArrayList<>(); + if (materials!=null && materials.size()>0){ + for (Object material : materials) { + JSONObject cacheVehile = (JSONObject) material; + String cacheVehile1 = cacheVehile.getString("cacheVehile"); + list.add(cacheVehile1); + } + } + /** + * 创建缓存线出箱任务起点是缓存线,终点是缓存线对接位 + */ + SchBaseTask task = new SchBaseTask(); + task.setTask_id(IdUtil.getStringId()); + task.setTask_code(CodeUtil.getNewCode("task_code")); + task.setPoint_code1("缓存线编号"); + task.setPoint_code3("缓存线编号"); + task.setTask_status(StatusEnum.TASK_CREATE.getCode()); + task.setIs_send(true); + task.setBarcodeArr(list.stream().collect(Collectors.joining(","))); + task.setCreate_time(new Date()); + task.setCreate_name(SecurityUtils.getCurrentNickName()); + task.setCreate_id(SecurityUtils.getCurrentUserId()); + task.setHandle_class(handleClass); + taskService.save(task); + // 2.2 生成任务 + BussEventMulticaster.Publish(TaskEvent2.builder() + .status(TaskStatusEnum.CREATED) + .task_id(task.getTask_id()) + .build()); + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/a3/FHWash/FhWashService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/a3/FHWash/FhWashService.java index 2c2ac404..f342cd3b 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/a3/FHWash/FhWashService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/a3/FHWash/FhWashService.java @@ -7,6 +7,7 @@ package org.nl.wms.scheduler_manage.service.extendtask.a3.FHWash; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import lombok.extern.slf4j.Slf4j; @@ -16,6 +17,8 @@ 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.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleextService; +import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleext; import org.nl.wms.scheduler_manage.service.extendtask.a3.HrTransportTask; import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService; import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; @@ -27,6 +30,9 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; @Slf4j @Service @@ -38,6 +44,8 @@ public class FhWashService { private ISchConveyorPositionService conveyorPositionService; @Autowired private HrTransportTask transportTask; + @Autowired + protected IMdPbStoragevehicleextService storagevehicleextService; public String feeding(JSONArray params){ if (params!=null && params.size()>0){ @@ -64,17 +72,33 @@ public class FhWashService { return null; }; - public String blanking(JSONObject params){ + public String blanking(JSONArray params,String storagevehicle_code){ /** * 校验:完成清洗任务 * 绑定载具物料关系 */ - taskService.update(new UpdateWrapper() - .set("task_status",StatusEnum.TASK_FINISH.getCode()) - .set("update_name",SecurityUtils.getCurrentNickName()) - .set("update_time", DateUtil.now()) - .eq("task_id",params.getString("task_id"))); - + if (params!=null && params.size()>0){ + List tasks = params.toJavaList(SchBaseTask.class); + Map> groupBy = tasks.stream().collect(Collectors.groupingBy(item -> item.getMaterial_id() + item.getWorkprocedure_id())); + if (groupBy.size()>1){ + throw new BadRequestException("清洗下料,只能选择同工序同物料的清洗中物料"); + } + List collect = tasks.stream().map(SchBaseTask::getTask_id).collect(Collectors.toList()); + taskService.update(new UpdateWrapper() + .set("task_status",StatusEnum.TASK_FINISH.getCode()) + .set("update_name",SecurityUtils.getCurrentNickName()) + .set("update_time", DateUtil.now()) + .in("task_id",collect)); + int qty = tasks.stream().mapToInt(a -> a.getMaterial_qty().intValue()).sum(); + //跟新载具物料关系 + MdPbStoragevehicleext vehicleMaterial = new MdPbStoragevehicleext(); + vehicleMaterial.setStoragevehicle_code(storagevehicle_code); + vehicleMaterial.setQty(qty); + vehicleMaterial.setMaterial_id(tasks.get(0).getMaterial_id()); + vehicleMaterial.setWorkprocedure_id(tasks.get(0).getWorkprocedure_id()); + vehicleMaterial.setUpdate_time(DateUtil.now()); + storagevehicleextService.saveOrUpdate(vehicleMaterial); + } return null; }; } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/a3/HBWash/ZdWashService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/a3/HBWash/ZdWashService.java new file mode 100644 index 00000000..9e253ba0 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/a3/HBWash/ZdWashService.java @@ -0,0 +1,138 @@ +package org.nl.wms.scheduler_manage.service.extendtask.a3.HBWash; +/* + * @author ZZQ + * @Date 2023/7/12 21:13 + */ + +import cn.hutool.core.date.DateUtil; +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.publish.BussEventMulticaster; +import org.nl.common.publish.event.TaskEvent2; +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.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleextService; +import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleext; +import org.nl.wms.scheduler_manage.service.cacheline.CachelinePositionService; +import org.nl.wms.scheduler_manage.service.cacheline.ISchCachelineVehicleService; +import org.nl.wms.scheduler_manage.service.cacheline.ISchCachelineVehilematerialService; +import org.nl.wms.scheduler_manage.service.cacheline.dao.SchCachelineVehicle; +import org.nl.wms.scheduler_manage.service.cacheline.dao.SchCachelineVehilematerial; +import org.nl.wms.scheduler_manage.service.extendtask.a3.HrTransportTask; +import org.nl.wms.scheduler_manage.service.extendtask.manage.TaskStatusEnum; +import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService; +import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; +import org.nl.wms.staging_manage.service.conveyor.ISchConveyorPositionService; +import org.nl.wms.staging_manage.service.conveyor.dao.SchConveyorPosition; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.*; +import java.util.stream.Collectors; + +@Slf4j +@Service +public class ZdWashService { + + @Autowired + private ISchBaseTaskService taskService; + @Autowired + protected IMdPbStoragevehicleextService storagevehicleextService; + @Autowired + private CachelinePositionService cachelinePositionService; + @Autowired + private ISchCachelineVehilematerialService cachelineVehicleService; + + + + public String feeding(JSONArray params){ + if (params!=null && params.size()>0){ + cachelinePositionService.callOut(params,this.getClass().getName()); + } + //创建任务 + return null; + }; + + public String blanking(JSONObject params){ + JSONArray data = params.getJSONArray("data"); + /** + * 校验:完成清洗任务 + * 绑定载具物料关系 + */ + if (data!=null && data.size()>0){ + List tasks = data.toJavaList(SchBaseTask.class); + Map> groupBy = tasks.stream().collect(Collectors.groupingBy(item -> item.getMaterial_id() + item.getWorkprocedure_id())); + if (groupBy.size()>1){ + throw new BadRequestException("清洗下料,只能选择同工序同物料的清洗中物料"); + } + List collect = tasks.stream().map(SchBaseTask::getTask_id).collect(Collectors.toList()); + taskService.update(new UpdateWrapper() + .set("task_status",StatusEnum.TASK_FINISH.getCode()) + .set("update_name",SecurityUtils.getCurrentNickName()) + .set("update_time", DateUtil.now()) + .in("task_id",collect)); + int qty = tasks.stream().mapToInt(a -> a.getMaterial_qty().intValue()).sum(); + //跟新载具物料关系 + MdPbStoragevehicleext vehicleMaterial = new MdPbStoragevehicleext(); + vehicleMaterial.setStoragevehicle_code(params.getString("vehicle_code")); + vehicleMaterial.setQty(qty); + vehicleMaterial.setMaterial_id(tasks.get(0).getMaterial_id()); + vehicleMaterial.setWorkprocedure_id(tasks.get(0).getWorkprocedure_id()); + vehicleMaterial.setUpdate_time(DateUtil.now()); + storagevehicleextService.saveOrUpdate(vehicleMaterial); + } + return null; + }; + + public void taskOperate(JSONObject form) { + String task_id = form.getString("task_id"); + String status = form.getString("status"); + SchBaseTask callOut = taskService.getById(task_id); + if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) { + //生成清洗任务; + String barcodeArr = callOut.getBarcodeArr(); + String[] split = barcodeArr.split(","); + List cachelineVehicles = cachelineVehicleService.list(new QueryWrapper() + .in("vehicle_code", split)); + if (!CollectionUtils.isEmpty(cachelineVehicles)){ + Map collect = cachelineVehicles.stream().collect(HashMap::new, (k, v) -> k.put(v.getVehicle_code(), v), HashMap::putAll); + List tasks = new ArrayList<>(); + for (String storagevehicle_code : split) { + //查询物料信息 + SchCachelineVehilematerial vehilematerial = collect.get(storagevehicle_code); + SchBaseTask task = new SchBaseTask(); + task.setTask_id(IdUtil.getStringId()); + task.setTask_name(AcsTaskEnum.TASK_WASH_FEEDING_ZD.getDesc()); + task.setTask_type(AcsTaskEnum.TASK_WASH_FEEDING_ZD.getCode()); + task.setTask_code(CodeUtil.getNewCode("TASK_CODE")); + task.setMaterial_id(vehilematerial.getMaterial_id()); + task.setMaterial_qty(vehilematerial.getQuantity()); + task.setWorkprocedure_id(vehilematerial.getWorkprocedure_id()); + task.setIs_delete(Boolean.FALSE); + task.setCreate_id(SecurityUtils.getCurrentUserId()); + task.setCreate_name(SecurityUtils.getCurrentNickName()); + task.setCreate_time(new Date()); + task.setTask_status(StatusEnum.TASK_RUNNING.getCode()); + tasks.add(task); + } + taskService.saveBatch(tasks); + } + + } else if (status.equals(AcsTaskEnum.STATUS_START.getCode())) { + + } else if(status.equals(AcsTaskEnum.STATUS_CANNEL.getCode())) { + taskService.update( + new UpdateWrapper().lambda() + .set(SchBaseTask::getTask_status,TaskStatusEnum.CANCEL.getCode()) + .eq(SchBaseTask::getTask_id,task_id )); + } + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/a3/JGWash/JgWashService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/a3/JGWash/JgWashService.java index bc663c61..9a51a3e0 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/a3/JGWash/JgWashService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/a3/JGWash/JgWashService.java @@ -51,6 +51,8 @@ public class JgWashService { task.setTask_type(AcsTaskEnum.TASK_WASH_FEEDING_JG.getCode()); task.setTask_code(CodeUtil.getNewCode("TASK_CODE")); task.setMaterial_id(position.getMaterila_id()); + task.setMaterial_qty(position.getQty()); + task.setWorkprocedure_id(position.getWrokprocedure_id()); task.setIs_delete(Boolean.FALSE); task.setCreate_id(SecurityUtils.getCurrentUserId()); task.setCreate_name(SecurityUtils.getCurrentNickName()); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/dao/SchBaseTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/dao/SchBaseTask.java index 958ea399..2a543fda 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/dao/SchBaseTask.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/dao/SchBaseTask.java @@ -162,7 +162,7 @@ public class SchBaseTask implements Serializable { /** * 任务完成类型 */ - private String finished_type; + private String finished_type = "1"; /** * agv任务类型 diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/TASKEnum.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/TASKEnum.java index d5de08c6..7d6a8475 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/TASKEnum.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/TASKEnum.java @@ -21,6 +21,7 @@ import org.nl.wms.storage_manage.semimanagehr.service.check.IStIvtCheckmstHrBcpS import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.IStIvtIostorinvEmpBcpService; import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.IStIvtIostorinvHrBcpInService; import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.IStIvtIostorinvHrBcpOutService; +import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.impl.HrBcpProjectOutService; import org.nl.wms.storage_manage.semimanagehr.service.moveInv.IStIvtMoveinvHrBcpService; import java.util.function.Consumer; @@ -107,6 +108,11 @@ public enum TASKEnum implements FunctionStrategy { bean.taskOperate(form); }), + HR_BCP_TRANSPORT_OUT_TASK(type -> AcsTaskEnum.TASK_STRUCT_HR_PRODUCT_OUT.getCode().equals(type), form -> { + HrBcpProjectOutService bean = SpringContextHolder.getBean(HrBcpProjectOutService.class); + bean.taskOperate(form); + }), + ; private final Predicate predicate; diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/controller/structLvt/StIvtStructivtHrBcpController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/controller/structLvt/StIvtStructivtHrBcpController.java index d9c82f64..f4458078 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/controller/structLvt/StIvtStructivtHrBcpController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/controller/structLvt/StIvtStructivtHrBcpController.java @@ -31,7 +31,7 @@ import java.util.Map; * @since 2023-05-10 */ @RestController -@RequestMapping("cc") +@RequestMapping("/api/bcp/hr") public class StIvtStructivtHrBcpController { @Autowired diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/impl/HrBcpProjectOutService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/impl/HrBcpProjectOutService.java new file mode 100644 index 00000000..b564ff31 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/impl/HrBcpProjectOutService.java @@ -0,0 +1,216 @@ +package org.nl.wms.storage_manage.semimanagehr.service.iostorInv.impl; + +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 com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import io.jsonwebtoken.lang.Assert; +import org.nl.common.enums.AcsTaskEnum; +import org.nl.common.publish.BussEventMulticaster; +import org.nl.common.publish.event.TaskEvent2; +import org.nl.common.utils.IdUtil; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.system.util.CodeUtil; +import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleextService; +import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleext; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; +import org.nl.wms.scheduler_manage.service.extendtask.manage.TaskStatusEnum; +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.pda.PDAEnum; +import org.nl.wms.storage_manage.productmanage.util.ChangeIvtUtil; +import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.IStIvtIostorinvOrderService; +import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.dao.StIvtIostorinvOrder; +import org.nl.wms.storage_manage.semimanagehr.service.structIvt.IStIvtStructivtHrBcpService; +import org.nl.wms.storage_manage.semimanagehr.service.structIvt.IStIvtStructivtflowHrService; +import org.nl.wms.storage_manage.semimanagehr.service.structIvt.dao.StIvtStructivtHrBcp; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + + +/** + * 海柔生产出库 + */ +@Service +public class HrBcpProjectOutService { + + @Autowired + private IStIvtStructivtHrBcpService structivtBcpService; // 海柔半成品服务 + @Autowired + private IStIvtStructattrService structattrService; // 仓位服务 + @Autowired + private ISchBaseTaskService iSchBaseTaskService; // 任务服务 + @Autowired + private IStIvtStructivtflowHrService iStIvtStructivtflowService; // 海柔库存变动服务 + @Autowired + protected IMdPbStoragevehicleextService iMdPbStoragevehicleextService; // 载具扩展属性信息表服务 + @Autowired + private IStIvtIostorinvOrderService iStIvtIostorinvOrderService; // 出入库顺序服务 + + + public void create(JSONObject form) { +// "workshop_id": "A3", +// "workprocedure_id": "1694243108683911168", +// "is_active": true, +// "qty_unit_id": "16", +// "canuse_qty": 11.000, +// "stor_id": "15286279952695336963", +// "is_pick": true, +// "unit_name": "个\\只", +// "sect_code": "HKQ001", +// "material_spec": "45CCL1 5/8-DWV", +// "instorage_time": "2024-02-20 10:08:01", +// "quality_scode": "01", +// "stor_name": "紫铜三线半成品仓库", +// "storagevehicle_code": "A000000833", +// "struct_id": "179999804806716689", +// "struct_name": "\t05排19列05层", +// "material_id": "1684111111695790000", +// "pcsn": "2024-02-20", +// "sect_name": "三线半成品库区", +// "unit_weight": 4.000, +// "lock_type": "0", +// "struct_code": "B05-19-05", +// "material_name": "A345度等径承插口弯头45CCL1 5/8-DWVUSNA0131027", +// "material_code": "24011401S" + Assert.notNull(form, "参数不能为空"); + /** + * 1.校验任务是否存在 + * 2.创建任务 + * 3.发布任务事件:是否下发 + */ + int count = iSchBaseTaskService.count(new QueryWrapper() + .eq("task_type", AcsTaskEnum.TASK_STRUCT_HR_PRODUCT_OUT.getCode()) + .le("task_status", TaskStatusEnum.FINISHED.getCode())); + if (count>4){//海柔会自己判断不会允许它放货 + throw new BadRequestException("当前出库任务过多,稍后再试"); + } + SchBaseTask schBaseTask = new SchBaseTask(); + schBaseTask.setTask_id(IdUtil.getStringId()); + schBaseTask.setTask_code(CodeUtil.getNewCode("TASK_CODE")); + schBaseTask.setTask_type(AcsTaskEnum.TASK_STRUCT_HR_PRODUCT_OUT.getCode()); + schBaseTask.setTask_name(AcsTaskEnum.TASK_STRUCT_HR_PRODUCT_OUT.getDesc()); + schBaseTask.setAcs_task_type(AcsTaskEnum.ACS_TASK_TYPE_HR_TASK.getCode()); + schBaseTask.setTask_status(TaskStatusEnum.CREATED.getCode()); + schBaseTask.setPoint_code1(form.getString("struct_code")); + schBaseTask.setPoint_code3(PDAEnum.REGION_CODE.code("海柔半成品出库区域")); + schBaseTask.setVehicle_code(form.getString("storagevehicle_code")); + schBaseTask.setProduct_area(form.getString("workshop_id")); + schBaseTask.setMaterial_id(form.getString("material_id")); + schBaseTask.setMaterial_qty(form.getBigDecimal("canuse_qty")); + schBaseTask.setHandle_class(this.getClass().getName()); + schBaseTask.setWorkprocedure_id(form.getString("workprocedure_id")); + schBaseTask.setAgv_system_type(AcsTaskEnum.AGV_SYSTEM_HR.getCode()); + schBaseTask.setTask_step(1); + schBaseTask.setTable_fk(form.getString("target"));//终点 + iSchBaseTaskService.save(schBaseTask); + // 2.2 生成任务 + BussEventMulticaster.Publish(TaskEvent2.builder() + .status(TaskStatusEnum.CREATED) + .task_id(schBaseTask.getTask_id()) + .build()); + } + public void taskOperate(JSONObject form) { + String task_id = form.getString("task_id"); + String status = form.getString("status"); + SchBaseTask task = iSchBaseTaskService.getById(task_id); + if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) { + /** + * 更新任务 + * 更新仓位跟出入库记录表 + * 生成关联任务:下发acs + */ + this.confirm(task); + iSchBaseTaskService.update( + new UpdateWrapper().lambda() + .set(SchBaseTask::getTask_status,TaskStatusEnum.FINISHED.getCode()) + .eq(SchBaseTask::getTask_id,task_id )); + + SchBaseTask schBaseTask = new SchBaseTask(); + schBaseTask.setTask_id(IdUtil.getStringId()); + schBaseTask.setTask_code(CodeUtil.getNewCode("TASK_CODE")); + schBaseTask.setTask_type(AcsTaskEnum.TASK_STRUCT_HR_TRANSPORT_OUT.getCode()); + schBaseTask.setTask_name(AcsTaskEnum.TASK_STRUCT_HR_TRANSPORT_OUT.getDesc()); + schBaseTask.setAcs_task_type(AcsTaskEnum.ACS_TASK_TYPE_HR_TASK.getCode()); + schBaseTask.setTask_status(TaskStatusEnum.CREATED.getCode()); + schBaseTask.setPoint_code1(task.getPoint_code3()); + schBaseTask.setPoint_code3(task.getTable_fk()); + schBaseTask.setVehicle_code(task.getVehicle_code()); + schBaseTask.setProduct_area(task.getProduct_area()); + schBaseTask.setMaterial_id(task.getMaterial_id()); + schBaseTask.setMaterial_qty(task.getMaterial_qty()); + schBaseTask.setWorkprocedure_id(task.getWorkprocedure_id()); + schBaseTask.setAgv_system_type(AcsTaskEnum.AGV_SYSTEM_NB.getCode()); + schBaseTask.setTask_step(2); + schBaseTask.setTable_fk_id(task.getTask_id()); + iSchBaseTaskService.save(schBaseTask); + + BussEventMulticaster.Publish(TaskEvent2.builder() + .status(TaskStatusEnum.CREATED) + .task_id(schBaseTask.getTask_id()) + .build()); + } else if (status.equals(AcsTaskEnum.STATUS_START.getCode())) { + + } else if(status.equals(AcsTaskEnum.STATUS_CANNEL.getCode())) { + iSchBaseTaskService.update( + new UpdateWrapper().lambda() + .set(SchBaseTask::getTask_status,TaskStatusEnum.CANCEL.getCode()) + .eq(SchBaseTask::getTask_id,task_id )); + } + } + + + public String confirm(SchBaseTask task) { + StIvtStructivtHrBcp ivtDao = structivtBcpService.getOne(new QueryWrapper() + .eq("struct_code",task.getPoint_code1())); + //删除库存 + if (ivtDao!=null){ + structivtBcpService.remove(new QueryWrapper() + .eq("struct_id", ivtDao.getStruct_id())); + // 插入库存变动记录 + JSONObject param = JSONObject.parseObject(JSON.toJSONString(ivtDao)); + param.put("change_type", ChangeIvtUtil.SUBFROZEN_SUBIVT_QTY); + param.put("change_qty", ivtDao.getCanuse_qty()); + param.put("result_qty", 0); + param.put("bill_code",task.getTask_code()); + param.put("inv_id",task.getTask_id()); + iStIvtStructivtflowService.insetIvtChange(param); + //更新仓位 + structattrService.update(new UpdateWrapper().lambda() + .eq(StIvtStructattr::getStruct_code, task.getPoint_code1()) + .set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")) + .set(StIvtStructattr::getTask_code, "") + .set(StIvtStructattr::getInv_code,"") + .set(StIvtStructattr::getStoragevehicle_code, "")); + // 更新载具扩展属性 - 释放载具对应物料关系 清空数量 + iMdPbStoragevehicleextService.update( + new MdPbStoragevehicleext() + .setMaterial_id("") + .setQty(0), + new QueryWrapper().lambda() + .eq(MdPbStoragevehicleext::getStoragevehicle_code,task.getVehicle_code()) + ); + // 插入出入库顺序表 + StIvtIostorinvOrder dao = new StIvtIostorinvOrder(); + dao.setOrder_id(IdUtil.getStringId()); + dao.setWorkshop_id(PDAEnum.WORKSHOP_ID.code("智能三线车间")); + dao.setStor_id(PDAEnum.STOR_ID.code("紫铜三线半成品仓库")); + dao.setOut_device(task.getPoint_code3()); + dao.setBar_code(task.getVehicle_code()); + dao.setMaterial_id(task.getMaterial_id()); + dao.setSale_id(""); + dao.setWeight(task.getMaterial_qty()); + dao.setQty(task.getMaterial_qty()); + dao.setType(IOSEnum.IO_TYPE.code("出库")); + dao.setIs_delete(false); + dao.setCreate_time(DateUtil.now()); + dao.setBiz_date(DateUtil.today()); + dao.setWorkprocedure_id(task.getWorkprocedure_id()); + iStIvtIostorinvOrderService.save(dao); + } + return null; + } +} diff --git a/mes/hd/nladmin-system/src/main/resources/logback-spring.xml b/mes/hd/nladmin-system/src/main/resources/logback-spring.xml index 463071cd..2af1330c 100644 --- a/mes/hd/nladmin-system/src/main/resources/logback-spring.xml +++ b/mes/hd/nladmin-system/src/main/resources/logback-spring.xml @@ -79,8 +79,8 @@ - - + + diff --git a/mes/hd/nladmin-system/src/main/resources/sql/工单看板.sql b/mes/hd/nladmin-system/src/main/resources/sql/工单看板.sql new file mode 100644 index 00000000..a3a0ed74 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/resources/sql/工单看板.sql @@ -0,0 +1,7 @@ +ALTER TABLE sys_param + MODIFY COLUMN remark text DEFAULT NULL; +INSERT INTO `sys_param`(`id`, `code`, `name`, `value`, `remark`, `is_active`, `is_delete`, `create_id`, `create_name`, `create_time`, `update_id`, `update_name`, `update_time`) VALUES ('1762307123028561920', 'BIGSCREEN_ORDER', '工单大屏虚拟数据', '0', '{\"1\":{\"jo6\":{\"sumfinishproduce_orderqty\":\"2\",\"sumproducing_orderqty\":\"3\",\"sumproduce_orderqty\":\"1\"},\"arr5\":[[\"product\",\"累计\",\"今日\"],[\"无屑下料\",0,0],[\"三通拉伸\",0,0],[\"镗孔一体机\",0,0]],\"screenname\":\"看板配置信息\",\"arr2\":[{\"finishproduce_qty\":110,\"produceorder_code\":\"230609001\",\"sysdic_name\":\"无屑下料\",\"waiting_qty\":13,\"produce_qty\":123,\"progress_qty\":110,\"workprocedure_name\":\"无屑下料\"},{\"finishproduce_qty\":11,\"produceorder_code\":\"230608544\",\"sysdic_name\":\"无屑下料\",\"waiting_qty\":4489,\"produce_qty\":4500,\"progress_qty\":11,\"workprocedure_name\":\"无屑下料\"},{\"finishproduce_qty\":55,\"produceorder_code\":\"230608574\",\"sysdic_name\":\"无屑下料\",\"waiting_qty\":4445,\"produce_qty\":4500,\"progress_qty\":55,\"workprocedure_name\":\"无屑下料\"}],\"arr1\":[{\"device_runningnum\":8,\"device_errornum\":0,\"device_num\":1,\"shutdownnum\":0,\"device_waitingnum\":0,\"workprocedure_name\":\"无屑下料\"},{\"device_runningnum\":12,\"device_errornum\":0,\"device_num\":15,\"shutdownnum\":3,\"device_waitingnum\":3,\"workprocedure_name\":\"三通拉伸\"},{\"device_runningnum\":26,\"device_errornum\":0,\"device_num\":16,\"shutdownnum\":0,\"device_waitingnum\":0,\"workprocedure_name\":\"镗孔一体机\"}],\"arr4\":[],\"jo3\":{\"sumproducing_qty\":49623,\"sumfinishproduce_qty\":502,\"sumproduce_qty\":49121,\"sumweek_qty\":502}},\"1\":{\"jo6\":{\"sumfinishproduce_orderqty\":\"2\",\"sumproducing_orderqty\":\"3\",\"sumproduce_orderqty\":\"1\"},\"arr5\":[[\"product\",\"累计\",\"今日\"],[\"无屑下料\",0,0],[\"三通拉伸\",0,0],[\"镗孔一体机\",0,0]],\"screenname\":\"看板配置信息\",\"arr2\":[{\"finishproduce_qty\":110,\"produceorder_code\":\"230609001\",\"sysdic_name\":\"无屑下料\",\"waiting_qty\":13,\"produce_qty\":123,\"progress_qty\":110,\"workprocedure_name\":\"无屑下料\"},{\"finishproduce_qty\":11,\"produceorder_code\":\"230608544\",\"sysdic_name\":\"无屑下料\",\"waiting_qty\":4489,\"produce_qty\":4500,\"progress_qty\":11,\"workprocedure_name\":\"无屑下料\"},{\"finishproduce_qty\":55,\"produceorder_code\":\"230608574\",\"sysdic_name\":\"无屑下料\",\"waiting_qty\":4445,\"produce_qty\":4500,\"progress_qty\":55,\"workprocedure_name\":\"无屑下料\"}],\"arr1\":[{\"device_runningnum\":8,\"device_errornum\":0,\"device_num\":1,\"shutdownnum\":0,\"device_waitingnum\":0,\"workprocedure_name\":\"无屑下料\"},{\"device_runningnum\":12,\"device_errornum\":0,\"device_num\":15,\"shutdownnum\":3,\"device_waitingnum\":3,\"workprocedure_name\":\"三通拉伸\"},{\"device_runningnum\":26,\"device_errornum\":0,\"device_num\":16,\"shutdownnum\":0,\"device_waitingnum\":0,\"workprocedure_name\":\"镗孔一体机\"}],\"arr4\":[],\"jo3\":{\"sumproducing_qty\":49623,\"sumfinishproduce_qty\":502,\"sumproduce_qty\":49121,\"sumweek_qty\":502}},\"2\":{\"jo6\":{\"sumfinishproduce_orderqty\":\"2\",\"sumproducing_orderqty\":\"3\",\"sumproduce_orderqty\":\"1\"},\"arr5\":[[\"product\",\"累计\",\"今日\"],[\"无屑下料\",0,0],[\"三通拉伸\",0,0],[\"镗孔一体机\",0,0]],\"screenname\":\"看板配置信息\",\"arr2\":[{\"finishproduce_qty\":110,\"produceorder_code\":\"230609001\",\"sysdic_name\":\"无屑下料\",\"waiting_qty\":13,\"produce_qty\":123,\"progress_qty\":110,\"workprocedure_name\":\"无屑下料\"},{\"finishproduce_qty\":11,\"produceorder_code\":\"230608544\",\"sysdic_name\":\"无屑下料\",\"waiting_qty\":4489,\"produce_qty\":4500,\"progress_qty\":11,\"workprocedure_name\":\"无屑下料\"},{\"finishproduce_qty\":55,\"produceorder_code\":\"230608574\",\"sysdic_name\":\"无屑下料\",\"waiting_qty\":4445,\"produce_qty\":4500,\"progress_qty\":55,\"workprocedure_name\":\"无屑下料\"}],\"arr1\":[{\"device_runningnum\":8,\"device_errornum\":0,\"device_num\":1,\"shutdownnum\":0,\"device_waitingnum\":0,\"workprocedure_name\":\"无屑下料\"},{\"device_runningnum\":12,\"device_errornum\":0,\"device_num\":15,\"shutdownnum\":3,\"device_waitingnum\":3,\"workprocedure_name\":\"三通拉伸\"},{\"device_runningnum\":26,\"device_errornum\":0,\"device_num\":16,\"shutdownnum\":0,\"device_waitingnum\":0,\"workprocedure_name\":\"镗孔一体机\"}],\"arr4\":[],\"jo3\":{\"sumproducing_qty\":49623,\"sumfinishproduce_qty\":502,\"sumproduce_qty\":49121,\"sumweek_qty\":502}},\"3\":{\"jo6\":{\"sumfinishproduce_orderqty\":\"2\",\"sumproducing_orderqty\":\"3\",\"sumproduce_orderqty\":\"1\"},\"arr5\":[[\"product\",\"累计\",\"今日\"],[\"无屑下料\",0,0],[\"三通拉伸\",0,0],[\"镗孔一体机\",0,0]],\"screenname\":\"看板配置信息\",\"arr2\":[{\"finishproduce_qty\":110,\"produceorder_code\":\"230609001\",\"sysdic_name\":\"无屑下料\",\"waiting_qty\":13,\"produce_qty\":123,\"progress_qty\":110,\"workprocedure_name\":\"无屑下料\"},{\"finishproduce_qty\":11,\"produceorder_code\":\"230608544\",\"sysdic_name\":\"无屑下料\",\"waiting_qty\":4489,\"produce_qty\":4500,\"progress_qty\":11,\"workprocedure_name\":\"无屑下料\"},{\"finishproduce_qty\":55,\"produceorder_code\":\"230608574\",\"sysdic_name\":\"无屑下料\",\"waiting_qty\":4445,\"produce_qty\":4500,\"progress_qty\":55,\"workprocedure_name\":\"无屑下料\"}],\"arr1\":[{\"device_runningnum\":8,\"device_errornum\":0,\"device_num\":1,\"shutdownnum\":0,\"device_waitingnum\":0,\"workprocedure_name\":\"无屑下料\"},{\"device_runningnum\":12,\"device_errornum\":0,\"device_num\":15,\"shutdownnum\":3,\"device_waitingnum\":3,\"workprocedure_name\":\"三通拉伸\"},{\"device_runningnum\":26,\"device_errornum\":0,\"device_num\":16,\"shutdownnum\":0,\"device_waitingnum\":0,\"workprocedure_name\":\"镗孔一体机\"}],\"arr4\":[],\"jo3\":{\"sumproducing_qty\":49623,\"sumfinishproduce_qty\":502,\"sumproduce_qty\":49121,\"sumweek_qty\":502}}}', '1', '0', '1740177213497675776', '管理员', '2024-02-27 10:42:14.877', '1740177213497675776', '管理员', '2024-02-27 14:11:23.27'); +INSERT INTO `sys_dict`(`dict_id`, `code`, `name`, `label`, `value`, `dict_sort`, `dict_type`, `para1`, `para2`, `para3`, `create_id`, `create_name`, `create_time`, `update_id`, `update_name`, `update_time`) VALUES ('1761953572787982336', 'WEB_FLAG', '看板配置信息', '1', '车间推弯工段看板', 1, NULL, '1535143737330634752', '1535144427977314304', '', '1740177213497675776', '管理员', '2024-02-26 11:17:21', '1740177213497675776', '管理员', '2024-02-26 13:28:56'); +INSERT INTO `sys_dict`(`dict_id`, `code`, `name`, `label`, `value`, `dict_sort`, `dict_type`, `para1`, `para2`, `para3`, `create_id`, `create_name`, `create_time`, `update_id`, `update_name`, `update_time`) VALUES ('1761954411338403840', 'WEB_FLAG', '看板配置信息', '2', '车间三通工段看板', 2, NULL, '1535144117946945536', '1535144290030850048', '1535144356586065920', '1740177213497675776', '管理员', '2024-02-26 11:20:41', '1740177213497675776', '管理员', '2024-02-26 11:22:29'); +INSERT INTO `sys_dict`(`dict_id`, `code`, `name`, `label`, `value`, `dict_sort`, `dict_type`, `para1`, `para2`, `para3`, `create_id`, `create_name`, `create_time`, `update_id`, `update_name`, `update_time`) VALUES ('1761954829003001856', 'WEB_FLAG', '看板配置信息', '3', '车间综合工段看板', 3, NULL, '1535143882327724032', '1535144356586165920', NULL, '1740177213497675776', '管理员', '2024-02-26 11:22:21', '1740177213497675776', '管理员', '2024-02-26 11:22:21'); +INSERT INTO `sys_dict`(`dict_id`, `code`, `name`, `label`, `value`, `dict_sort`, `dict_type`, `para1`, `para2`, `para3`, `create_id`, `create_name`, `create_time`, `update_id`, `update_name`, `update_time`) VALUES ('1761955065217814528', 'WEB_FLAG', '看板配置信息', '4', '车间包装工段看板', 4, NULL, '1535144822984282112', NULL, NULL, '1740177213497675776', '管理员', '2024-02-26 11:23:17', '1740177213497675776', '管理员', '2024-02-26 11:23:17');