From 5cedf30537162d626abb774fd555d4183e3265f5 Mon Sep 17 00:00:00 2001 From: psh Date: Wed, 28 Feb 2024 14:21:59 +0800 Subject: [PATCH] fix --- .../wms/pda/service/impl/PdaServiceImpl.java | 3 +- .../controller/MaterialController.java | 68 +++ .../material/service/IMaterialService.java | 35 ++ .../sch/material/service/dao/Material.java | 56 +++ .../service/dao/mapper/MaterialMapper.java | 17 + .../service/dao/mapper/MaterialMapper.xml | 6 + .../sch/material/service/dto/MaterialDto.java | 44 ++ .../material/service/dto/MaterialQuery.java | 21 + .../service/impl/MaterialServiceImpl.java | 56 +++ .../sch/point/service/dao/SchBasePoint.java | 3 + .../wms/sch/task/service/dao/SchBaseTask.java | 2 + .../sch/task_manage/task/tasks/POINTTask.java | 53 ++- .../sch/task_manage/task/tasks/YCLCKTask.java | 64 +-- .../sch/task_manage/task/tasks/YCLRKTask.java | 75 ++-- .../task/tasks/mapper/PointMapper.xml | 2 +- .../src/views/wms/sch/group/index.vue | 18 +- .../views/wms/sch/material/MaterialDialog.vue | 166 +++++++ .../wms/sch/material/WorkOrderDialog.vue | 153 +++++++ .../src/views/wms/sch/material/index.vue | 409 ++++++++++++++++++ .../src/views/wms/sch/material/material.js | 35 ++ .../src/views/wms/sch/point/index.vue | 6 +- 21 files changed, 1206 insertions(+), 86 deletions(-) create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/material/controller/MaterialController.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/material/service/IMaterialService.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/material/service/dao/Material.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/material/service/dao/mapper/MaterialMapper.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/material/service/dao/mapper/MaterialMapper.xml create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/material/service/dto/MaterialDto.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/material/service/dto/MaterialQuery.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/material/service/impl/MaterialServiceImpl.java create mode 100644 lms/nladmin-ui/src/views/wms/sch/material/MaterialDialog.vue create mode 100644 lms/nladmin-ui/src/views/wms/sch/material/WorkOrderDialog.vue create mode 100644 lms/nladmin-ui/src/views/wms/sch/material/index.vue create mode 100644 lms/nladmin-ui/src/views/wms/sch/material/material.js diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java index 88d3ee6..4c762e6 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java @@ -68,8 +68,9 @@ public class PdaServiceImpl implements PdaService { @Override public PdaResponseVo task(JSONObject param) { - param.put("request_medthod_code", "PONITTask"); + param.put("request_medthod_code", "POINTTask"); param.put("request_medthod_name", "点对点任务"); + param.put("device_code",param.getString("start_point")); acsToWmsService.acsApply(param); return PdaResponseVo.pdaResultOk("任务生成成功"); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/material/controller/MaterialController.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/material/controller/MaterialController.java new file mode 100644 index 0000000..1337922 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/material/controller/MaterialController.java @@ -0,0 +1,68 @@ +package org.nl.wms.sch.material.controller; + +import com.alibaba.fastjson.JSONObject; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.base.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.logging.annotation.Log; +import org.nl.wms.sch.material.service.IMaterialService; +import org.nl.wms.sch.material.service.dao.Material; +import org.nl.wms.sch.material.service.dto.MaterialQuery; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Set; + +/** +* @author lyd +* @date 2023-05-16 +**/ +@Slf4j +@RestController +@Api(tags = "组盘信息管理管理") +@RequestMapping("/api/material") +public class MaterialController { + + @Autowired + private IMaterialService materialService; + + @GetMapping + @Log("查询组盘信息管理") + @ApiOperation("查询组盘信息管理") + //@SaCheckPermission("@el.check('material:list')") + public ResponseEntity query(MaterialQuery whereJson, PageQuery page){ + return new ResponseEntity<>(TableDataInfo.build(materialService.queryAll(whereJson,page)),HttpStatus.OK); + } + + @PostMapping + @Log("新增组盘信息管理") + @ApiOperation("新增组盘信息管理") + //@SaCheckPermission("@el.check('material:add')") + public ResponseEntity create(@Validated @RequestBody Material entity){ + materialService.create(entity); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + + + @Log("删除组盘信息管理") + @ApiOperation("删除组盘信息管理") + //@SaCheckPermission("@el.check('material:del')") + @DeleteMapping + public ResponseEntity delete(@RequestBody Set ids) { + materialService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/material/service/IMaterialService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/material/service/IMaterialService.java new file mode 100644 index 0000000..e446114 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/material/service/IMaterialService.java @@ -0,0 +1,35 @@ +package org.nl.wms.sch.material.service; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.sch.material.service.dao.Material; +import org.nl.wms.sch.material.service.dto.MaterialQuery; + +import java.util.Set; + + +public interface IMaterialService extends IService { + + /** + * 查询数据分页 + * @param whereJson 条件 + * @param pageable 分页参数 + * @return IPage + */ + IPage queryAll(MaterialQuery whereJson, PageQuery pageable); + + /** + * 创建 + * @param entity / + */ + void create(Material entity); + + + /** + * 多选删除 + * @param ids / + */ + void deleteAll(Set ids); +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/material/service/dao/Material.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/material/service/dao/Material.java new file mode 100644 index 0000000..04074a9 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/material/service/dao/Material.java @@ -0,0 +1,56 @@ +package org.nl.wms.sch.material.service.dao; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.math.BigDecimal; + +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("sch_base_material") +public class Material implements Serializable { + private static final long serialVersionUID = 1L; + @ApiModelProperty(value = "入库单号") + private String simtOrderNo; + @ApiModelProperty(value = "场地") + private String locationCode; + @ApiModelProperty(value = "入库类型") + private String simtType; + @ApiModelProperty(value = "到货单号") + private String deliveryNo; + @ApiModelProperty(value = "扫描库位") + private String whlCode; + @ApiModelProperty(value = "托盘号") + private String palletSN; + @ApiModelProperty(value = "物料条码号") + private String lotSN; + @ApiModelProperty(value = "物料编码") + private String productName; + @ApiModelProperty(value = "物料名称") + private String productDescription; + @ApiModelProperty(value = "供应商编码") + private String supplierCode; + @ApiModelProperty(value = "供应商名称") + private String supplierName; + @ApiModelProperty(value = "规格") + private String specification; + @ApiModelProperty(value = "批次号") + private String batch; + @ApiModelProperty(value = "数量") + private String qty; + @ApiModelProperty(value = "来料长度") + private String incomingLength; + @ApiModelProperty(value = "来料重量") + private String incomingWeight; + @ApiModelProperty(value = "来料缺陷长度") + private String incomingchipping; + @ApiModelProperty(value = "绑定状态") + private String group_bind_material_status; + +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/material/service/dao/mapper/MaterialMapper.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/material/service/dao/mapper/MaterialMapper.java new file mode 100644 index 0000000..fa28dc9 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/material/service/dao/mapper/MaterialMapper.java @@ -0,0 +1,17 @@ +package org.nl.wms.sch.material.service.dao.mapper; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; +import org.nl.wms.sch.group.service.dto.SchBaseVehiclematerialgroupQuery; +import org.nl.wms.sch.material.service.dao.Material; +import org.nl.wms.sch.material.service.dto.MaterialQuery; + +/** +* @author lyd +* @date 2023-05-16 +**/ +public interface MaterialMapper extends BaseMapper { + +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/material/service/dao/mapper/MaterialMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/material/service/dao/mapper/MaterialMapper.xml new file mode 100644 index 0000000..41a0d9f --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/material/service/dao/mapper/MaterialMapper.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/material/service/dto/MaterialDto.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/material/service/dto/MaterialDto.java new file mode 100644 index 0000000..4120edc --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/material/service/dto/MaterialDto.java @@ -0,0 +1,44 @@ +package org.nl.wms.sch.material.service.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +@Data +public class MaterialDto implements Serializable { + /** 入库单号 */ + private String simtOrderNo; + /** 场地 */ + private String locationCode; + /** 入库类型 */ + private String simtType; + /** 到货单号 */ + private String deliveryNo; + /** 扫描库位 */ + private String whlCode; + /** 托盘号 */ + private String palletSN; + /** 物料条码号 */ + private String lotSN; + /** 物料编码 */ + private String productName; + /** 物料名称 */ + private String productDescription; + /** 供应商编码 */ + private String supplierCode; + /** 供应商名称 */ + private String supplierName; + /** 规格 */ + private String specification; + /** 批次号 */ + private String batch; + /** 数量 */ + private String qty; + /** 来料长度 */ + private String incomingLength; + /** 来料重量 */ + private String incomingWeight; + /** 来料缺陷长度 */ + private String incomingchipping; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/material/service/dto/MaterialQuery.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/material/service/dto/MaterialQuery.java new file mode 100644 index 0000000..2407d61 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/material/service/dto/MaterialQuery.java @@ -0,0 +1,21 @@ +package org.nl.wms.sch.material.service.dto; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class MaterialQuery implements Serializable { + //托盘号 + private String palletSN; + //物料条码号 + private String lotSN; + //物料名称 + private String productName; + //供应商编码 + private String productDescription; + //供应商名称 + private String supplierCode; + //绑定状态 + private String group_bind_material_status; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/material/service/impl/MaterialServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/material/service/impl/MaterialServiceImpl.java new file mode 100644 index 0000000..7ac3267 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/material/service/impl/MaterialServiceImpl.java @@ -0,0 +1,56 @@ +package org.nl.wms.sch.material.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.utils.SecurityUtils; +import org.nl.wms.sch.material.service.IMaterialService; +import org.nl.wms.sch.material.service.dao.Material; +import org.nl.wms.sch.material.service.dao.mapper.MaterialMapper; +import org.nl.wms.sch.material.service.dto.MaterialQuery; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Set; + +@Slf4j +@Service +public class MaterialServiceImpl extends ServiceImpl implements IMaterialService { + + @Autowired + private MaterialMapper materialMapper; + + @Override + public IPage queryAll(MaterialQuery whereJson, PageQuery page){ + IPage pages = new Page<>(page.getPage() + 1, page.getSize()); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.like(StringUtils.isNotBlank(whereJson.getPalletSN()),Material::getPalletSN,whereJson.getPalletSN()); + wrapper.like(StringUtils.isNotBlank(whereJson.getLotSN()),Material::getLotSN,whereJson.getLotSN()); + wrapper.like(StringUtils.isNotBlank(whereJson.getProductName()),Material::getProductName,whereJson.getProductName()); + wrapper.like(StringUtils.isNotBlank(whereJson.getSupplierCode()),Material::getSupplierCode,whereJson.getSupplierCode()); + wrapper.like(StringUtils.isNotBlank(whereJson.getProductDescription()),Material::getProductDescription,whereJson.getProductDescription()); + wrapper.like(StringUtils.isNotBlank(whereJson.getGroup_bind_material_status()),Material::getGroup_bind_material_status,whereJson.getGroup_bind_material_status()); + pages = materialMapper.selectPage(pages, wrapper); + return pages; + } + + @Override + public void create(Material entity) { + materialMapper.insert(entity); + } + + + @Override + public void deleteAll(Set ids) { + // 真删除 + materialMapper.deleteBatchIds(ids); + } + + +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/SchBasePoint.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/SchBasePoint.java index b2073d0..5b727c7 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/SchBasePoint.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/SchBasePoint.java @@ -58,6 +58,9 @@ public class SchBasePoint implements Serializable { @ApiModelProperty(value = "载具编码") private String vehicle_code; + @ApiModelProperty(value = "载具编码2") + private String vehicle_code2; + @ApiModelProperty(value = "载具数量") private Integer vehicle_qty; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/dao/SchBaseTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/dao/SchBaseTask.java index 25c8b13..5db1dab 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/dao/SchBaseTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/dao/SchBaseTask.java @@ -62,6 +62,8 @@ public class SchBaseTask implements Serializable { @ApiModelProperty(value = "载具编码") private String vehicle_code; + @ApiModelProperty(value = "载具编码2") + private String vehicle_code2; @ApiModelProperty(value = "处理状态") private String handle_status; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/POINTTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/POINTTask.java index 5f296ee..6962348 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/POINTTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/POINTTask.java @@ -73,6 +73,10 @@ public class POINTTask extends AbstractTask { task.setTask_status(TaskStatus.CREATED.getCode()); task.setRemark(""); + SchBasePoint schBasePoint= pointService.getOne(new LambdaQueryWrapper() + .eq(SchBasePoint::getPoint_code, task.getPoint_code1())); + task.setVehicle_code(schBasePoint.getVehicle_code()); + task.setVehicle_code2(schBasePoint.getVehicle_code2()); taskService.update(task); //发起任务时先把点位占用,防止发起重复任务 @@ -119,8 +123,8 @@ public class POINTTask extends AbstractTask { taskObj.setRemark("执行中"); } if (status.equals(TaskStatus.FINISHED)) { // 完成 - List vehicleCodeList = Arrays.stream(startPointObj.getVehicle_code().split(",")).collect(Collectors.toList()); - String vehicleCode=vehicleCodeList.get(vehicleCodeList.size()-1); + String vehicleCode=taskObj.getVehicle_code(); + String vehicleCode2= taskObj.getVehicle_code2(); SchBaseVehiclematerialgroup one = vehiclematerialgroupService.getOne(new LambdaQueryWrapper() .eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode) .eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, @@ -138,25 +142,37 @@ public class POINTTask extends AbstractTask { one.setUpdate_time(DateUtil.now()); vehiclematerialgroupService.updateById(one); } - // 起点清空 - if (vehicleCodeList.size()==1) { - startPointObj.setVehicle_code(""); - }else{ - StringBuilder vehicle_code=new StringBuilder(); - for(int i=0;i<=vehicleCodeList.size()-2;i++){ - vehicle_code.append(vehicleCodeList.get(i)).append(','); - } - startPointObj.setVehicle_code(vehicle_code.toString()); - } - if (!startPointObj.getPoint_code().startsWith("ZJBDJW")) { - startPointObj.setVehicle_qty(startPointObj.getVehicle_qty() - 1); + one = vehiclematerialgroupService.getOne(new LambdaQueryWrapper() + .eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode2) + .eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, + GroupBindMaterialStatusEnum.UNBOUND.getValue())); + if (ObjectUtil.isNotEmpty(one)) { +// throw new BadRequestException(vehicleCode + " => " + startPointObj.getVehicle_type() + "的组盘信息未找到"); +// } + one.setTask_code(taskObj.getTask_code()); + one.setPoint_code(endPointObj.getPoint_code()); // 当前位置 + one.setPoint_name(endPointObj.getPoint_name()); + one.setMove_way(one.getMove_way() == null ? "" : (one.getMove_way() + " -> ") + endPointObj.getPoint_code()); + one.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue()); + one.setUpdate_id(GeneralDefinition.ACS_ID); + one.setUpdate_name(GeneralDefinition.ACS_NAME); + one.setUpdate_time(DateUtil.now()); + vehiclematerialgroupService.updateById(one); } + // 终点解锁 + endPointObj.setIng_task_code(""); + endPointObj.setVehicle_code(taskObj.getVehicle_code()); + endPointObj.setVehicle_code2(taskObj.getVehicle_code2()); + endPointObj.setVehicle_qty(1); + pointService.update(endPointObj); + // 起点清空 + startPointObj.setVehicle_code(""); + startPointObj.setVehicle_code2(""); + startPointObj.setVehicle_qty(0); startPointObj.setIng_task_code(""); startPointObj.setUpdate_time(DateUtil.now()); pointService.updateById(startPointObj); - //包片上料完毕后,整排打上记号只允许包片上料 - pointMapper.updatePointType(endPointObj.getPoint_code().substring(0,endPointObj.getPoint_code().length()-2),"1"); - // 任务完成 + // 任务完成 taskObj.setTask_status(TaskStatus.FINISHED.getCode()); taskObj.setGroup_id(one.getGroup_id()); taskObj.setRemark("任务完成"); @@ -170,9 +186,6 @@ public class POINTTask extends AbstractTask { // 起点解锁 if (ObjectUtil.isNotEmpty(startPointObj)) { startPointObj.setIng_task_code(""); - if (startPointObj.getPoint_code().startsWith("ZJBDJW")) { - startPointObj.setVehicle_qty(startPointObj.getVehicle_qty() + 1); - } pointService.update(endPointObj); } taskObj.setRemark("任务取消"); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/YCLCKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/YCLCKTask.java index 80b145e..dd9ced1 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/YCLCKTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/YCLCKTask.java @@ -85,9 +85,13 @@ public class YCLCKTask extends AbstractTask { continue; } // 设置起点并修改创建成功状态 - task.setPoint_code1(point.getPoint_code()); + task.setPoint_code2(point.getPoint_code()); task.setTask_status(TaskStatus.CREATED.getCode()); task.setRemark(""); + SchBasePoint schBasePoint= pointService.getOne(new LambdaQueryWrapper() + .eq(SchBasePoint::getPoint_code, task.getPoint_code1())); + task.setVehicle_code(schBasePoint.getVehicle_code()); + task.setVehicle_code2(schBasePoint.getVehicle_code2()); taskService.update(task); //发起任务时先把点位占用,防止发起重复任务 @@ -109,14 +113,13 @@ public class YCLCKTask extends AbstractTask { */ private SchBasePoint findNextPoint(SchBaseTask task) { String regionCode = "HW"; - List schBasePointList = pointMapper.findPointByRegion(regionCode,"1"); - for(int i=schBasePointList.size()-1;i>=0;i--){ - SchBasePoint schBasePoint=schBasePointList.get(i); + List schBasePointList = pointMapper.findPointByRegion(regionCode,"0"); + for (SchBasePoint schBasePoint : schBasePointList) { //已锁定直接返回 if(task.getTask_code().equals(schBasePoint.getIng_task_code())){ return schBasePoint; } - if ("2".equals(schBasePoint.getPoint_status()) + if (schBasePoint.getIs_used() && schBasePoint.getVehicle_qty() ==0) { log.info("原材料出库任务找到当前符合条件的缓存区位置{}",schBasePoint.getPoint_code()); return schBasePoint; @@ -149,8 +152,8 @@ public class YCLCKTask extends AbstractTask { taskObj.setRemark("执行中"); } if (status.equals(TaskStatus.FINISHED)) { // 完成 - List vehicleCodeList = Arrays.stream(startPointObj.getVehicle_code().split(",")).collect(Collectors.toList()); - String vehicleCode=vehicleCodeList.get(vehicleCodeList.size()-1); + String vehicleCode=taskObj.getVehicle_code(); + String vehicleCode2= taskObj.getVehicle_code2(); SchBaseVehiclematerialgroup one = vehiclematerialgroupService.getOne(new LambdaQueryWrapper() .eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode) .eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, @@ -162,30 +165,42 @@ public class YCLCKTask extends AbstractTask { one.setPoint_code(endPointObj.getPoint_code()); // 当前位置 one.setPoint_name(endPointObj.getPoint_name()); one.setMove_way(one.getMove_way() == null ? "" : (one.getMove_way() + " -> ") + endPointObj.getPoint_code()); - one.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue()); + one.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue()); one.setUpdate_id(GeneralDefinition.ACS_ID); one.setUpdate_name(GeneralDefinition.ACS_NAME); one.setUpdate_time(DateUtil.now()); vehiclematerialgroupService.updateById(one); } - // 起点清空 - if (vehicleCodeList.size()==1) { - startPointObj.setVehicle_code(""); - }else{ - StringBuilder vehicle_code=new StringBuilder(); - for(int i=0;i<=vehicleCodeList.size()-2;i++){ - vehicle_code.append(vehicleCodeList.get(i)).append(','); - } - startPointObj.setVehicle_code(vehicle_code.toString()); - } - if (!startPointObj.getPoint_code().startsWith("ZJBDJW")) { - startPointObj.setVehicle_qty(startPointObj.getVehicle_qty() - 1); + one = vehiclematerialgroupService.getOne(new LambdaQueryWrapper() + .eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode2) + .eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, + GroupBindMaterialStatusEnum.BOUND.getValue())); + if (ObjectUtil.isNotEmpty(one)) { +// throw new BadRequestException(vehicleCode + " => " + startPointObj.getVehicle_type() + "的组盘信息未找到"); +// } + one.setTask_code(taskObj.getTask_code()); + one.setPoint_code(endPointObj.getPoint_code()); // 当前位置 + one.setPoint_name(endPointObj.getPoint_name()); + one.setMove_way(one.getMove_way() == null ? "" : (one.getMove_way() + " -> ") + endPointObj.getPoint_code()); + one.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue()); + one.setUpdate_id(GeneralDefinition.ACS_ID); + one.setUpdate_name(GeneralDefinition.ACS_NAME); + one.setUpdate_time(DateUtil.now()); + vehiclematerialgroupService.updateById(one); } + // 终点解锁 + endPointObj.setIng_task_code(""); + endPointObj.setVehicle_code(taskObj.getVehicle_code()); + endPointObj.setVehicle_code2(taskObj.getVehicle_code2()); + endPointObj.setVehicle_qty(1); + endPointObj.setUpdate_time(DateUtil.now()); + pointService.update(endPointObj); + // 起点清空 + startPointObj.setVehicle_code(""); + startPointObj.setVehicle_code2(""); startPointObj.setIng_task_code(""); startPointObj.setUpdate_time(DateUtil.now()); pointService.updateById(startPointObj); - //包片上料完毕后,整排打上记号只允许包片上料 - pointMapper.updatePointType(endPointObj.getPoint_code().substring(0,endPointObj.getPoint_code().length()-2),"1"); // 任务完成 taskObj.setTask_status(TaskStatus.FINISHED.getCode()); taskObj.setGroup_id(one.getGroup_id()); @@ -205,10 +220,7 @@ public class YCLCKTask extends AbstractTask { // 起点解锁 if (ObjectUtil.isNotEmpty(startPointObj)) { startPointObj.setIng_task_code(""); - if (startPointObj.getPoint_code().startsWith("ZJBDJW")) { - startPointObj.setVehicle_qty(startPointObj.getVehicle_qty() + 1); - } - pointService.update(endPointObj); + pointService.update(startPointObj); } taskObj.setRemark("任务取消"); taskObj.setTask_status(TaskStatus.CANCELED.getCode()); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/YCLRKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/YCLRKTask.java index 2143c53..7388377 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/YCLRKTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/YCLRKTask.java @@ -95,6 +95,7 @@ public class YCLRKTask extends AbstractTask { task.setPoint_code2(point.getPoint_code()); task.setTask_status(TaskStatus.CREATED.getCode()); task.setVehicle_code(jsonObject.getString("mother_tray")); + task.setVehicle_code2(jsonObject.getString("sub_tray")); task.setRemark(""); taskService.update(task); @@ -117,7 +118,7 @@ public class YCLRKTask extends AbstractTask { String regionCode = "YL"; List schBasePointList = pointMapper.findPointByRegion(regionCode, "0"); for (SchBasePoint schBasePoint : schBasePointList) { - if ("0".equals(schBasePoint.getPoint_status()) + if (schBasePoint.getIs_used() && schBasePoint.getVehicle_qty() ==0) { log.info("原材料入库找到当前符合条件的点位{}", schBasePoint.getPoint_code()); return schBasePoint; @@ -141,10 +142,6 @@ public class YCLRKTask extends AbstractTask { JSONObject extGroupData = ObjectUtil.isNotEmpty(taskObj.getExt_group_data()) ? JSONObject.parseObject(taskObj.getExt_group_data()) : null; - // 载具编码:没有就创建一个 - String vehicle_code = ObjectUtil.isNotEmpty(taskObj.getVehicle_code()) - ? taskObj.getVehicle_code() - : IdUtil.getSnowflake(1, 1).nextIdStr(); PdmBdWorkorder workorderCode = null; if (extGroupData != null) { workorderCode = ObjectUtil.isNotEmpty(extGroupData.getString("workorder_code")) @@ -168,39 +165,19 @@ public class YCLRKTask extends AbstractTask { } // 终点解锁 endPointObj.setIng_task_code(""); - endPointObj.setVehicle_code(ObjectUtil.isEmpty(endPointObj.getVehicle_code()) ? vehicle_code + "," : endPointObj.getVehicle_code() + vehicle_code + ","); + endPointObj.setVehicle_code(taskObj.getVehicle_code()); + endPointObj.setVehicle_code2(taskObj.getVehicle_code2()); endPointObj.setVehicle_qty(1); pointService.update(endPointObj); // 要把数据存到组盘表 -> 改造公共方法,返回id - //todo 组盘表需要关联外部mes晶棒数据,一对多 - SchBaseVehiclematerialgroup groupEntity = new SchBaseVehiclematerialgroup(); + //组盘表需要关联外部mes晶棒数据,一对多 + SchBaseVehiclematerialgroup groupEntity = getSchBaseVehiclematerialgroup(taskObj, extGroupData, workorderCode, startPoint, startPointObj); + groupEntity.setVehicle_code(taskObj.getVehicle_code()); + groupEntity.setVehicle_type("0"); + vehiclematerialgroupService.save(groupEntity); groupEntity.setGroup_id(IdUtil.getSnowflake(1, 1).nextIdStr()); - groupEntity.setCreate_id("2"); - groupEntity.setCreate_name("ACS"); - groupEntity.setCreate_time(DateUtil.now()); - groupEntity.setMaterial_id(ObjectUtil.isNotEmpty(workorderCode) - ? workorderCode.getMaterial_id() - : ""); - groupEntity.setStanding_time(ObjectUtil.isNotEmpty(workorderCode) - ? workorderCode.getStanding_time() - : 0); - groupEntity.setMaterial_weight(ObjectUtil.isNotEmpty(extGroupData) - ? extGroupData.getBigDecimal("material_qty") - : BigDecimal.valueOf(0)); - groupEntity.setWorkorder_code(ObjectUtil.isNotEmpty(workorderCode) - ? workorderCode.getWorkorder_code() - : ""); - groupEntity.setVehicle_code(vehicle_code); - groupEntity.setVehicle_type(taskObj.getVehicle_type()); - groupEntity.setPoint_code(startPoint); - groupEntity.setPoint_name(startPointObj.getPoint_name()); - groupEntity.setPcsn(DateUtil.format(DateUtil.date(), "yyyyMMdd")); - groupEntity.setInstorage_time(DateUtil.now()); - groupEntity.setTask_code(taskObj.getTask_code()); - groupEntity.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue()); // 绑定 - groupEntity.setGroup_status(GroupStatusEnum.IN_STORAGE.getType()); // 暂时不维护。 - groupEntity.setIs_delete(false); - groupEntity.setMove_way(startPoint); + groupEntity.setVehicle_code(taskObj.getVehicle_code2()); + groupEntity.setVehicle_type("1"); vehiclematerialgroupService.save(groupEntity); // 任务完成 taskObj.setTask_status(TaskStatus.FINISHED.getCode()); @@ -225,6 +202,36 @@ public class YCLRKTask extends AbstractTask { taskService.update(taskObj); } + private static SchBaseVehiclematerialgroup getSchBaseVehiclematerialgroup(SchBaseTask taskObj, JSONObject extGroupData, PdmBdWorkorder workorderCode, String startPoint, SchBasePoint startPointObj) { + SchBaseVehiclematerialgroup groupEntity = new SchBaseVehiclematerialgroup(); + groupEntity.setGroup_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + groupEntity.setCreate_id("2"); + groupEntity.setCreate_name("ACS"); + groupEntity.setCreate_time(DateUtil.now()); + groupEntity.setMaterial_id(ObjectUtil.isNotEmpty(workorderCode) + ? workorderCode.getMaterial_id() + : ""); + groupEntity.setStanding_time(ObjectUtil.isNotEmpty(workorderCode) + ? workorderCode.getStanding_time() + : 0); + groupEntity.setMaterial_weight(ObjectUtil.isNotEmpty(extGroupData) + ? extGroupData.getBigDecimal("material_qty") + : BigDecimal.valueOf(0)); + groupEntity.setWorkorder_code(ObjectUtil.isNotEmpty(workorderCode) + ? workorderCode.getWorkorder_code() + : ""); + groupEntity.setPoint_code(startPoint); + groupEntity.setPoint_name(startPointObj.getPoint_name()); + groupEntity.setPcsn(DateUtil.format(DateUtil.date(), "yyyyMMdd")); + groupEntity.setInstorage_time(DateUtil.now()); + groupEntity.setTask_code(taskObj.getTask_code()); + groupEntity.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue()); // 绑定 + groupEntity.setGroup_status(GroupStatusEnum.IN_STORAGE.getType()); // 暂时不维护。 + groupEntity.setIs_delete(false); + groupEntity.setMove_way(startPoint); + return groupEntity; + } + @Override public void forceFinish(String task_code) { this.updateStatus(task_code, TaskStatus.FINISHED); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/mapper/PointMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/mapper/PointMapper.xml index 979d1c9..407844d 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/mapper/PointMapper.xml +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/mapper/PointMapper.xml @@ -7,7 +7,7 @@ FROM `sch_base_point` p WHERE p.region_code like CONCAT('%', #{regionCode}, '%') - and p.point_status = #{point_status} and p.is_used = 1 + and p.is_used = #{point_status} and p.is_used = 1 ORDER BY region_code diff --git a/lms/nladmin-ui/src/views/wms/sch/group/index.vue b/lms/nladmin-ui/src/views/wms/sch/group/index.vue index 9d23a3b..6c4fcc7 100644 --- a/lms/nladmin-ui/src/views/wms/sch/group/index.vue +++ b/lms/nladmin-ui/src/views/wms/sch/group/index.vue @@ -77,8 +77,14 @@ - + + + + 子托盘 + 母托盘 + - + + + + @@ -294,6 +305,7 @@ import crudSchBaseRegion from '@/views/wms/sch/region/schBaseRegion' const defaultForm = { group_id: null, vehicle_code: null, + vehicle_type: null, material_id: null, child_vehicle_code: null, source_vehicle_code: null, @@ -325,7 +337,7 @@ const defaultForm = { } export default { name: 'VehicleMaterialGroup', - dicts: ['group_status', 'group_bind_material_status'], + dicts: ['group_status', 'group_bind_material_status', 'vehicle_type'], components: { WorkOrderDialog, MaterialDialog, pagination, crudOperation, rrOperation, udOperation }, mixins: [presenter(), header(), form(defaultForm), crud()], cruds() { diff --git a/lms/nladmin-ui/src/views/wms/sch/material/MaterialDialog.vue b/lms/nladmin-ui/src/views/wms/sch/material/MaterialDialog.vue new file mode 100644 index 0000000..60f663b --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/sch/material/MaterialDialog.vue @@ -0,0 +1,166 @@ + + + + + diff --git a/lms/nladmin-ui/src/views/wms/sch/material/WorkOrderDialog.vue b/lms/nladmin-ui/src/views/wms/sch/material/WorkOrderDialog.vue new file mode 100644 index 0000000..f1e0a47 --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/sch/material/WorkOrderDialog.vue @@ -0,0 +1,153 @@ + + + + + diff --git a/lms/nladmin-ui/src/views/wms/sch/material/index.vue b/lms/nladmin-ui/src/views/wms/sch/material/index.vue new file mode 100644 index 0000000..4709d1e --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/sch/material/index.vue @@ -0,0 +1,409 @@ + + + + + diff --git a/lms/nladmin-ui/src/views/wms/sch/material/material.js b/lms/nladmin-ui/src/views/wms/sch/material/material.js new file mode 100644 index 0000000..e61f352 --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/sch/material/material.js @@ -0,0 +1,35 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/material', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/material/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/material', + method: 'put', + data + }) +} + +export function getGroup(data) { + return request({ + url: 'api/material/getGroup', + method: 'post', + data + }) +} + +export default { add, edit, del, getGroup } diff --git a/lms/nladmin-ui/src/views/wms/sch/point/index.vue b/lms/nladmin-ui/src/views/wms/sch/point/index.vue index 78afd17..a0e1a28 100644 --- a/lms/nladmin-ui/src/views/wms/sch/point/index.vue +++ b/lms/nladmin-ui/src/views/wms/sch/point/index.vue @@ -214,6 +214,9 @@ + + + - + +