fix
This commit is contained in:
@@ -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("任务生成成功");
|
||||
}
|
||||
|
||||
@@ -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<Object> 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<Object> create(@Validated @RequestBody Material entity){
|
||||
materialService.create(entity);
|
||||
return new ResponseEntity<>(HttpStatus.CREATED);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Log("删除组盘信息管理")
|
||||
@ApiOperation("删除组盘信息管理")
|
||||
//@SaCheckPermission("@el.check('material:del')")
|
||||
@DeleteMapping
|
||||
public ResponseEntity<Object> delete(@RequestBody Set<String> ids) {
|
||||
materialService.deleteAll(ids);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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<Material> {
|
||||
|
||||
/**
|
||||
* 查询数据分页
|
||||
* @param whereJson 条件
|
||||
* @param pageable 分页参数
|
||||
* @return IPage<Material>
|
||||
*/
|
||||
IPage<Material> queryAll(MaterialQuery whereJson, PageQuery pageable);
|
||||
|
||||
/**
|
||||
* 创建
|
||||
* @param entity /
|
||||
*/
|
||||
void create(Material entity);
|
||||
|
||||
|
||||
/**
|
||||
* 多选删除
|
||||
* @param ids /
|
||||
*/
|
||||
void deleteAll(Set<String> ids);
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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<Material> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.nl.wms.sch.material.service.dao.mapper.MaterialMapper">
|
||||
|
||||
|
||||
</mapper>
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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<MaterialMapper, Material> implements IMaterialService {
|
||||
|
||||
@Autowired
|
||||
private MaterialMapper materialMapper;
|
||||
|
||||
@Override
|
||||
public IPage<Material> queryAll(MaterialQuery whereJson, PageQuery page){
|
||||
IPage<Material> pages = new Page<>(page.getPage() + 1, page.getSize());
|
||||
LambdaQueryWrapper<Material> 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<String> ids) {
|
||||
// 真删除
|
||||
materialMapper.deleteBatchIds(ids);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -73,6 +73,10 @@ public class POINTTask extends AbstractTask {
|
||||
|
||||
task.setTask_status(TaskStatus.CREATED.getCode());
|
||||
task.setRemark("");
|
||||
SchBasePoint schBasePoint= pointService.getOne(new LambdaQueryWrapper<SchBasePoint>()
|
||||
.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<String> 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<SchBaseVehiclematerialgroup>()
|
||||
.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);
|
||||
}
|
||||
one = vehiclematerialgroupService.getOne(new LambdaQueryWrapper<SchBaseVehiclematerialgroup>()
|
||||
.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);
|
||||
// 起点清空
|
||||
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);
|
||||
}
|
||||
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("任务取消");
|
||||
|
||||
@@ -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<SchBasePoint>()
|
||||
.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<SchBasePoint> schBasePointList = pointMapper.findPointByRegion(regionCode,"1");
|
||||
for(int i=schBasePointList.size()-1;i>=0;i--){
|
||||
SchBasePoint schBasePoint=schBasePointList.get(i);
|
||||
List<SchBasePoint> 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<String> 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<SchBaseVehiclematerialgroup>()
|
||||
.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);
|
||||
}
|
||||
one = vehiclematerialgroupService.getOne(new LambdaQueryWrapper<SchBaseVehiclematerialgroup>()
|
||||
.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);
|
||||
// 起点清空
|
||||
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);
|
||||
}
|
||||
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());
|
||||
|
||||
@@ -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<SchBasePoint> 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);
|
||||
|
||||
@@ -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
|
||||
</select>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user