This commit is contained in:
psh
2024-02-28 14:21:59 +08:00
parent 87e8219b96
commit 5cedf30537
21 changed files with 1206 additions and 86 deletions

View File

@@ -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("任务生成成功");
}

View File

@@ -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);
}
}

View File

@@ -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);
}

View File

@@ -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;
}

View File

@@ -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> {
}

View File

@@ -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>

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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);
}
}

View File

@@ -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;

View File

@@ -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;

View File

@@ -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("任务取消");

View File

@@ -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());

View File

@@ -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);

View File

@@ -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>