feat: 分切上料

This commit is contained in:
2024-08-13 13:46:26 +08:00
parent f6ce731385
commit 2b16f760d0
36 changed files with 904 additions and 60 deletions

View File

@@ -41,6 +41,13 @@ public class AcsToWmsController {
return new ResponseEntity<>(acsToWmsService.apply(whereJson), HttpStatus.OK);
}
@PostMapping("/outHotTaskApply")
@Log(value = "申请出烘箱任务", isInterfaceLog = true, interfaceLogType = InterfaceLogType.ACS_TO_LMS)
@SaIgnore
public ResponseEntity<Object> outHotTaskApply(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(acsToWmsService.outHotTaskApply(whereJson), HttpStatus.OK);
}
@PostMapping("/againApply")
@Log(value = "二次申请任务", isInterfaceLog = true, interfaceLogType = InterfaceLogType.ACS_TO_LMS)
@SaIgnore

View File

@@ -118,4 +118,11 @@ public interface AcsToWmsService {
* @return /
*/
JSONObject actionFinishRequest2(JSONObject param);
/**
* 出烘箱
* @param whereJson /
* @return /
*/
JSONObject outHotTaskApply(JSONObject whereJson);
}

View File

@@ -10,6 +10,7 @@ import org.nl.wms.sch.task.service.dao.SchBaseTask;
import org.nl.wms.sch.task_manage.AbstractTask;
import org.nl.wms.sch.task_manage.TaskFactory;
import org.nl.wms.sch.task_manage.TaskStatus;
import org.nl.wms.sch.task_manage.service.BakingOperationService;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
@@ -29,6 +30,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
private ISchBaseTaskService taskService;
@Autowired
private TaskFactory taskFactory;
@Autowired
private BakingOperationService bakingOperationService;
@Override
public Map<String, Object> receiveTaskStatusAcs(String string) throws InterruptedException {
log.info("acs向lms反馈任务状态请求参数--------------------------------------" + string);
@@ -159,4 +162,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
public JSONObject actionFinishRequest2(JSONObject param) {
return null;
}
@Override
public JSONObject outHotTaskApply(JSONObject whereJson) {
return bakingOperationService.acsRequestOutHotTask(whereJson);
}
}

View File

@@ -4,7 +4,7 @@ import cn.dev33.satoken.annotation.SaIgnore;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.logging.annotation.Log;
import org.nl.wms.pda.mps.service.BakingService;
import org.nl.wms.pda.mps.service.BakingPdaService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -22,14 +22,14 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/api/pda/baking")
@Slf4j
@SaIgnore
public class BakingController {
public class BakingPdaController {
@Autowired
private BakingService bakingService;
private BakingPdaService bakingPdaService;
@PostMapping("/bakingQuality")
@Log("烘烤质检")
public ResponseEntity<Object> bakingQuality(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(bakingService.bakingQuality(whereJson), HttpStatus.OK);
return new ResponseEntity<>(bakingPdaService.bakingQuality(whereJson), HttpStatus.OK);
}
}

View File

@@ -0,0 +1,54 @@
package org.nl.wms.pda.mps.controller;
import cn.dev33.satoken.annotation.SaIgnore;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.logging.annotation.Log;
import org.nl.wms.pda.mps.service.SlitterPdaService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @Author: lyd
* @Description: 分切
* @Date: 2024/8/12
*/
@RestController
@RequestMapping("/api/pda/slitter")
@Slf4j
@SaIgnore
public class SlitterPdaController {
@Autowired
private SlitterPdaService slitterPdaService;
/**
* 获取生箔工单信息
* @param whereJson /
* @return /
*/
@PostMapping("/queryOrderInfo")
public ResponseEntity<Object> queryOrderInfo(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(slitterPdaService.queryOrderInfo(whereJson), HttpStatus.OK);
}
@PostMapping("/callSlitterRoll")
@Log("呼叫母卷")
public ResponseEntity<Object> callSlitterRoll(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(slitterPdaService.callSlitterRoll(whereJson), HttpStatus.OK);
}
@PostMapping("/allowCoiling")
@Log("允许上卷")
public ResponseEntity<Object> allowCoiling(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(slitterPdaService.allowCoiling(whereJson), HttpStatus.OK);
}
@PostMapping("/vehicleReturn")
@Log("空轴送回")
public ResponseEntity<Object> vehicleReturn(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(slitterPdaService.vehicleReturn(whereJson), HttpStatus.OK);
}
}

View File

@@ -7,7 +7,7 @@ import com.alibaba.fastjson.JSONObject;
* @Description:
* @Date: 2024/8/12
*/
public interface BakingService {
public interface BakingPdaService {
/**
* 质检
* @param param /

View File

@@ -0,0 +1,38 @@
package org.nl.wms.pda.mps.service;
import com.alibaba.fastjson.JSONObject;
/**
* @Author: lyd
* @Description:
* @Date: 2024/8/12
*/
public interface SlitterPdaService {
/**
* 查询烘烤区域的母卷信息
* @param param /
* @return /
*/
JSONObject queryOrderInfo(JSONObject param);
/**
* 呼叫母卷 - 分切上料或者送空上轴
* @param param /
* @return /
*/
JSONObject callSlitterRoll(JSONObject param);
/**
* 允许上卷
* @param param /
* @return /
*/
JSONObject allowCoiling(JSONObject param);
/**
* 空轴送回
* @param param /
* @return /
*/
JSONObject vehicleReturn(JSONObject param);
}

View File

@@ -5,7 +5,7 @@ import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.exception.BadRequestException;
import org.nl.wms.pda.mps.service.BakingService;
import org.nl.wms.pda.mps.service.BakingPdaService;
import org.nl.wms.pdm.bi.dao.PdmBiRawfoilworkorder;
import org.nl.wms.pdm.bi.service.IpdmBiRawfoilworkorderService;
import org.nl.wms.sch.point.service.ISchBasePointService;
@@ -23,7 +23,7 @@ import java.util.List;
*/
@Service
@Slf4j
public class BakingServiceImpl implements BakingService {
public class BakingPdaServiceImpl implements BakingPdaService {
@Autowired
private ISchBasePointService pointService;

View File

@@ -0,0 +1,133 @@
package org.nl.wms.pda.mps.service.impl;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.exception.BadRequestException;
import org.nl.wms.ext.acs.service.WmsToAcsService;
import org.nl.wms.pda.mps.service.SlitterPdaService;
import org.nl.wms.pdm.bi.dao.PdmBiRawfoilworkorder;
import org.nl.wms.pdm.bi.service.IpdmBiRawfoilworkorderService;
import org.nl.wms.pdm.ivt.dao.StIvtCutpointivt;
import org.nl.wms.pdm.ivt.service.IstIvtCutpointivtService;
import org.nl.wms.sch.task.service.ISchBaseTaskService;
import org.nl.wms.sch.task.service.dao.SchBaseTask;
import org.nl.wms.sch.task_manage.core.constant.GeneralDefinition;
import org.nl.wms.sch.task_manage.tasks.slitter.SlitterSendRollAGVTask;
import org.nl.wms.sch.task_manage.tasks.slitter.SlitterUpTrussTask;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @Author: lyd
* @Description:
* @Date: 2024/8/12
*/
@Slf4j
@Service
public class SlitterPdaServiceImpl implements SlitterPdaService {
@Autowired
private IpdmBiRawfoilworkorderService rawfoilworkorderService;
@Autowired
private ISchBaseTaskService taskService;
@Autowired
private SlitterUpTrussTask slitterUpTrussTask;
@Autowired
private WmsToAcsService wmsToAcsService;
@Autowired
private SlitterSendRollAGVTask slitterSendRollAGVTask;
@Autowired
private IstIvtCutpointivtService cutpointivtService;
@Override
public JSONObject queryOrderInfo(JSONObject param) {
List<PdmBiRawfoilworkorder> orders = rawfoilworkorderService.getAllUsedRawPlanOnZc();
JSONObject result = new JSONObject();
result.put("data", orders);
result.put("message", "操作成功!");
return result;
}
@Override
public JSONObject callSlitterRoll(JSONObject param) {
log.info("手持呼叫母卷:{}", param);
// param: workorder_id, zc_point, point_code, vehicle_code
String workorderId = param.getString("workorder_id");
// 分切机满料位
String pointCode = param.getString("point_code");
String vehicleCode = param.getString("vehicle_code");
Assert.notBlank(workorderId, "请选择母卷!");
Assert.notBlank(pointCode, "点位不能为空!");
// 判断是否呼叫过任务
List<SchBaseTask> schBaseTasks = taskService.checkHaveTask(pointCode);
if (schBaseTasks.size() > 0) {
throw new BadRequestException("点位[" + pointCode + "]已经创建过任务!");
}
param.put("config_code", "SlitterUpTrussTask");
param.put("device_code", pointCode);
param.put("create_mode", GeneralDefinition.PDA_CREATION);
// 标记一下, 0: 只做呼叫母卷1呼叫母卷还要送空辊
param.put("is_flag", ObjectUtil.isEmpty(vehicleCode) ? "0" : "1");
slitterUpTrussTask.apply(param);
JSONObject result = new JSONObject();
result.put("message", "操作成功!");
return result;
}
@Override
public JSONObject allowCoiling(JSONObject param) {
log.info("手持分切准备就绪, {}", param);
// point_code
String pointCode = param.getString("point_code");
// 获取对应任务
SchBaseTask task = taskService.getTaskByPointCodeX(null, pointCode, null, null);
if (ObjectUtil.isEmpty(task)) {
log.error("该点查不到任务!");
throw new BadRequestException("该点查不到任务!");
}
//下发ACS执行AGV动作
JSONArray paramArr = new JSONArray();
JSONObject acsParam = new JSONObject();
acsParam.put("device_code", pointCode);
acsParam.put("task_code", task.getTask_code());
acsParam.put("product_area", task.getProduct_area());
acsParam.put("option", "1");
paramArr.add(acsParam);
JSONObject jsonObject = wmsToAcsService.updateTask(paramArr);
log.info("分切下发ACS执行AGV动作请求参数{},返回结果:{}", paramArr, jsonObject);
JSONObject result = new JSONObject();
result.put("status", HttpStatus.OK.value());
result.put("message", "请求成功!");
result.put("data", new JSONObject());
return result;
}
@Override
public JSONObject vehicleReturn(JSONObject param) {
log.info("手持空轴送回, {}", param);
// param: point_code, vehicle_code
String pointCode = param.getString("point_code");
String vehicleCode = param.getString("vehicle_code");
Assert.notBlank(vehicleCode, "载具编码不能为空!");
StIvtCutpointivt cutPoint = cutpointivtService.getByFullCode(pointCode, false);
// 校验是否有任务
List<SchBaseTask> schBaseTasks = taskService.checkHaveTask(cutPoint.getEmpty_point_code());
if (schBaseTasks.size() > 0) {
throw new BadRequestException("点位[" + pointCode + "]已经存在任务!");
}
// todo: 载具类型没有获取
param.put("device_code", cutPoint.getEmpty_point_code());
param.put("config_code", "SlitterSendRollAGVTask");
param.put("create_mode", GeneralDefinition.PDA_CREATION);
slitterSendRollAGVTask.apply(param);
JSONObject result = new JSONObject();
result.put("status", HttpStatus.OK.value());
result.put("message", "请求成功!");
result.put("data", new JSONObject());
return result;
}
}

View File

@@ -179,6 +179,9 @@ public class PdmBiRawfoilworkorder extends Model<PdmBiRawfoilworkorder> {
/** 烘烤温度 */
private String baking_temperature;
@TableField(exist = false)
private String zc_point;
}

View File

@@ -23,8 +23,6 @@ public class PdmBiSlittingproductionplan extends Model<PdmBiSlittingproductionpl
private static final long serialVersionUID = -7739291296662381393L;
/**
* 分切计划标识
*/
@@ -239,13 +237,13 @@ public class PdmBiSlittingproductionplan extends Model<PdmBiSlittingproductionpl
/**
* 部门ID
*/
private Long sysdeptid;
private String sysdeptid;
/**
* 公司ID
*/
private Long syscompanyid;
private String syscompanyid;
/**
@@ -301,17 +299,6 @@ public class PdmBiSlittingproductionplan extends Model<PdmBiSlittingproductionpl
*/
private String level;
/**
* 获取主键值
*
* @return 主键值
*/
@Override
protected Serializable pkVal() {
return this.workorder_id;
}
}

View File

@@ -3,6 +3,8 @@ package org.nl.wms.pdm.bi.dao.mapper;
import org.nl.wms.pdm.bi.dao.PdmBiRawfoilworkorder;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
/**
* {@code @Description:} 生箔工序工单(PdmBiRawfoilworkorder)数据持久层
* {@code @Author:} gbx
@@ -12,4 +14,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface PdmBiRawfoilworkorderMapper extends BaseMapper<PdmBiRawfoilworkorder> {
List<PdmBiRawfoilworkorder> getAllUsedRawPlanOnZc();
}

View File

@@ -0,0 +1,15 @@
<?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.pdm.bi.dao.mapper.PdmBiRawfoilworkorderMapper">
<select id="getAllUsedRawPlanOnZc" resultType="org.nl.wms.pdm.bi.dao.PdmBiRawfoilworkorder">
SELECT p.point_code as zc_point,
w.*
FROM sch_base_point p
LEFT JOIN pdm_bi_rawfoilworkorder w ON w.workorder_id = p.source_id
WHERE p.region_code = 'A1-HXZC'
AND p.point_status = '4'
AND IFNULL(w.workorder_id, '') <![CDATA[ <> ]]> ''
</select>
</mapper>

View File

@@ -1,6 +0,0 @@
<?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.pdm.bi.dao.mapper.PdmBiRawfoilworkorderMapper">
</mapper>

View File

@@ -80,6 +80,12 @@ public interface IpdmBiRawfoilworkorderService extends IService<PdmBiRawfoilwork
* @return /
*/
List<PdmBiRawfoilworkorder> getOrderByVehicleAndStatus(String vehicleCode, String status);
/**
* 获取烘箱暂存的母卷信息
* @return /
*/
List<PdmBiRawfoilworkorder> getAllUsedRawPlanOnZc();
}

View File

@@ -30,6 +30,7 @@ import org.nl.wms.sch.task.service.dao.mapper.SchBaseTaskMapper;
import org.nl.wms.sch.task_manage.TaskStatus;
import org.nl.wms.storage_manage.ios.enums.IOSEnum;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -52,7 +53,7 @@ import static org.nl.common.enums.WorkOrderStatusEnum.PRODUCT_STATUS;
@Service
public class PdmBiRawfoilworkorderServiceImpl extends ServiceImpl<PdmBiRawfoilworkorderMapper, PdmBiRawfoilworkorder> implements IpdmBiRawfoilworkorderService {
@Resource
@Autowired
private PdmBiRawfoilworkorderMapper pdmBiRawfoilworkorderMapper;
@Resource
@@ -242,5 +243,10 @@ public class PdmBiRawfoilworkorderServiceImpl extends ServiceImpl<PdmBiRawfoilwo
return list(lam);
}
@Override
public List<PdmBiRawfoilworkorder> getAllUsedRawPlanOnZc() {
return pdmBiRawfoilworkorderMapper.getAllUsedRawPlanOnZc();
}
}

View File

@@ -22,13 +22,13 @@ import com.baomidou.mybatisplus.extension.activerecord.Model;
public class StIvtCutpointivt extends Model<StIvtCutpointivt> {
private static final long serialVersionUID = -7739291296662381393L;
//@TableId(type = IdType.ASSIGN_ID)
/**
* 库存记录标识
*/
private Long ivt_id;
@TableId(type = IdType.ASSIGN_ID)
private String ivt_id;
/**
@@ -124,7 +124,7 @@ public class StIvtCutpointivt extends Model<StIvtCutpointivt> {
/**
* 创建人
*/
private Long create_id;
private String create_id;
/**
@@ -136,14 +136,13 @@ public class StIvtCutpointivt extends Model<StIvtCutpointivt> {
/**
* 创建时间
*/
@TableField(fill = FieldFill.INSERT)
private String create_time;
/**
* 修改人
*/
private Long update_optid;
private String update_optid;
/**
@@ -155,7 +154,6 @@ public class StIvtCutpointivt extends Model<StIvtCutpointivt> {
/**
* 修改时间
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private String update_time;
@@ -188,17 +186,6 @@ public class StIvtCutpointivt extends Model<StIvtCutpointivt> {
*/
private String qzz_generation;
/**
* 获取主键值
*
* @return 主键值
*/
@Override
protected Serializable pkVal() {
return this.ivt_id;
}
}

View File

@@ -60,6 +60,20 @@ public interface IstIvtCutpointivtService extends IService<StIvtCutpointivt> {
void deleteAll(Set<String> ids);
/**
* 获取分切数据
* @param fullCode 满轴位
* @param flag 是否校验禁用
* @return /
*/
StIvtCutpointivt getByFullCode(String fullCode, boolean flag);
/**
* 根据点位编码/满轴位/空轴位查找对应点位
* @param code 编码
* @return /
*/
StIvtCutpointivt getOneByCode(String code);
}

View File

@@ -15,6 +15,7 @@ import org.nl.common.utils.SecurityUtils;
import org.nl.common.utils.IdUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.nl.common.domain.query.PageQuery;
@@ -35,7 +36,7 @@ import java.util.List;
public class StIvtCutpointivtServiceImpl extends ServiceImpl<StIvtCutpointivtMapper, StIvtCutpointivt> implements IstIvtCutpointivtService {
@Resource
@Autowired
private StIvtCutpointivtMapper stIvtCutpointivtMapper;
@@ -115,6 +116,25 @@ public class StIvtCutpointivtServiceImpl extends ServiceImpl<StIvtCutpointivtMap
stIvtCutpointivtMapper.update(null, updateWrapper);
}
@Override
public StIvtCutpointivt getByFullCode(String fullCode, boolean flag) {
LambdaQueryWrapper<StIvtCutpointivt> lam = new QueryWrapper<StIvtCutpointivt>().lambda();
lam.eq(StIvtCutpointivt::getFull_point_code, fullCode)
.eq(flag, StIvtCutpointivt::getIs_used, "1");
return getOne(lam);
}
@Override
public StIvtCutpointivt getOneByCode(String code) {
LambdaQueryWrapper<StIvtCutpointivt> lam = new QueryWrapper<StIvtCutpointivt>().lambda();
lam.eq(StIvtCutpointivt::getFull_point_code, code)
.or()
.eq(StIvtCutpointivt::getEmpty_point_code, code)
.or()
.eq(StIvtCutpointivt::getPoint_code, code);
return getOne(lam);
}
/**
* 获取实体基础信息

View File

@@ -78,7 +78,7 @@ public interface ISchBasePointService extends IService<SchBasePoint> {
List<SchBasePoint> getWindRollNotTaskPoints(String vehicleType);
/**
* 根据条件获取点位
* 根据条件获取点位 (纯找点,没有校验任务!!!)
* @param area 生产区域(车间)
* @param region 区域
* @param pointType 点位类型
@@ -97,4 +97,15 @@ public interface ISchBasePointService extends IService<SchBasePoint> {
* @return /
*/
List<SchBasePoint> getHotNotTaskPoint(String area, String region, String pointType, String pointStatus);
/**
* 从点位查找以下条件可用的没任务点位
* @param area 生产区域
* @param region 区域
* @param pointType 点位类型
* @param pointStatus 点位状态
* @param vehicleType 载具类型
* @return /
*/
List<SchBasePoint> getAllBusinessNotTaskPoint(String area, String region, String pointType, String pointStatus, String vehicleType);
}

View File

@@ -34,4 +34,6 @@ public interface SchBasePointMapper extends BaseMapper<SchBasePoint> {
* @return /
*/
List<SchBasePoint> getHotNotTaskPoint(String area, String region, String pointType, String pointStatus);
List<SchBasePoint> getAllBusinessNotTaskPoint(String area, String region, String pointType, String pointStatus, String vehicleType);
}

View File

@@ -36,4 +36,26 @@
AND 0 = (SELECT COUNT(*) FROM sch_base_task t WHERE t.task_status <![CDATA[<]]> '07'
AND (t.point_code1 = p.point_code OR t.point_code2 = p.point_code OR t.point_code4 = p.point_code))
</select>
<select id="getAllBusinessNotTaskPoint" resultType="org.nl.wms.sch.point.service.dao.SchBasePoint">
SELECT p.*
FROM sch_base_point p
WHERE p.is_used = TRUE
<if test="region != null">
AND p.region_code = #{region}
</if>
<if test="pointType != null">
AND p.point_type = #{pointType}
</if>
<if test="area != null">
AND p.product_area = #{area}
</if>
<if test="pointStatus != null">
AND p.point_status = #{pointStatus}
</if>
<if test="vehicleType != null">
AND p.vehicle_type = #{vehicleType}
</if>
AND 0 = (SELECT COUNT(*) FROM sch_base_task t WHERE t.point_code1 = p.point_code AND t.task_status <![CDATA[<]]> '07')
ORDER BY p.in_order_seq
</select>
</mapper>

View File

@@ -230,4 +230,9 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
return pointMapper.getHotNotTaskPoint(area, region, pointType, pointStatus);
}
@Override
public List<SchBasePoint> getAllBusinessNotTaskPoint(String area, String region, String pointType, String pointStatus, String vehicleType) {
return pointMapper.getAllBusinessNotTaskPoint(area, region, pointType, pointStatus, vehicleType);
}
}

View File

@@ -251,7 +251,7 @@ public abstract class AbstractTask {
}
/**
* 申请任务 - 暂时不用
* 申请任务
* <p>创建task的总入口会根据自定义的子类去执行创建方法。</p>
* @param param 请求任务的参数可以是只确定了单个点也可以是4个点都确定了
* @throws BadRequestException 如果创建失败

View File

@@ -120,7 +120,7 @@ public class AutoInHotTrussTask extends AbstractTask {
String endPointCode = taskObj.getPoint_code2();
SchBasePoint startPoint = pointService.getById(startPointCode);
StIvtHotpointivt endPoint = hotpointivtService.getPointByCode(endPointCode, false);
String orderId = startPoint.getGroup_id();
String orderId = startPoint.getSource_id();
PdmBiRawfoilworkorder order = rawfoilworkorderService.getById(orderId);
// 烘箱位,状态为02烘烤中
endPoint.setContainer_name(order.getContainer_name());

View File

@@ -146,7 +146,7 @@ public class InHotTrussTask extends AbstractTask {
hotDjwPoint.setVehicle_code(taskObj.getVehicle_code());
hotDjwPoint.setPoint_status("1".equals(order.getIs_baking()) ? "2" : "4");
// 此字段存放工单号
hotDjwPoint.setGroup_id(workorderId);
hotDjwPoint.setSource_id(workorderId);
setUpdateByType(hotDjwPoint, taskFinishedType);
pointService.update(hotDjwPoint);
} else {

View File

@@ -72,19 +72,23 @@ public class OutHotTrussTask extends AbstractTask {
@Transactional(rollbackFor = Exception.class)
public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
checkTaskOptionStatus(taskObj);
// 出烘箱后,终点状态应改成04待分切
// 出烘箱后终点状态应改成4待分切
String startPointCode = taskObj.getPoint_code1();
String endPointCode = taskObj.getPoint_code2();
StIvtHotpointivt startPoint = hotpointivtService.getPointByCode(startPointCode, false);
SchBasePoint endPoint = pointService.getById(endPointCode);
// 终点设置值
endPoint.setVehicle_code(startPoint.getFull_vehicle_code());
endPoint.setGroup_id(startPoint.getWorkorder_id());
endPoint.setPoint_status("04");
endPoint.setSource_id(startPoint.getWorkorder_id());
endPoint.setPoint_status("4");
setUpdateByType(endPoint, taskFinishedType);
pointService.updateById(endPoint);
// 起点清空
hotClearPoint(startPoint, taskFinishedType);
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskObj.setFinished_type(taskFinishedType.getCode());
setUpdateByType(taskObj, taskFinishedType);
taskService.updateById(taskObj);
}
@Override

View File

@@ -0,0 +1,109 @@
package org.nl.wms.sch.task_manage.tasks.slitter;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.exception.BadRequestException;
import org.nl.wms.pdm.ivt.dao.StIvtCutpointivt;
import org.nl.wms.pdm.ivt.service.IstIvtCutpointivtService;
import org.nl.wms.sch.point.service.ISchBasePointService;
import org.nl.wms.sch.point.service.dao.SchBasePoint;
import org.nl.wms.sch.task.service.ISchBaseTaskService;
import org.nl.wms.sch.task.service.dao.SchBaseTask;
import org.nl.wms.sch.task_manage.AbstractTask;
import org.nl.wms.sch.task_manage.TaskStatus;
import org.nl.wms.sch.task_manage.core.constant.GeneralDefinition;
import org.nl.wms.sch.task_manage.core.enums.TaskFinishedTypeEnum;
import org.nl.wms.util.PointUtils;
import org.nl.wms.util.TaskUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import static org.nl.wms.util.TaskUtils.checkTaskOptionStatus;
import static org.nl.wms.util.TaskUtils.setUpdateByPC;
/**
* @Author: lyd
* @Description: 分切收卷辊单独入库任务
* @Date: 2024/8/13
*/
@Slf4j
@Component(value = "SlitterSendRollAGVTask")
public class SlitterSendRollAGVTask extends AbstractTask {
private final String THIS_CLASS = SlitterSendRollAGVTask.class.getName();
@Autowired
private ISchBaseTaskService taskService;
@Autowired
private ISchBasePointService pointService;
@Autowired
private IstIvtCutpointivtService cutpointivtService;
@Autowired
private SlitterSendRollTrussTask slitterSendRollTrussTask;
@Override
public void create() throws BadRequestException {
}
@Override
public void createCompletion(SchBaseTask task) {
// 查找终点:获取收卷辊入口
// 终点为入口,不校验是否占用
List<SchBasePoint> endPoints = pointService.getPointByConditions("A1",
"A1-SJGK", "1", null, true);
if (endPoints.size() == 0) {
throw new BadRequestException("收卷辊出口查询失败!");
}
SchBasePoint point = endPoints.get(0);
task.setPoint_code2(point.getPoint_code());
// 创建任务
task.setHandle_class(THIS_CLASS);
task.setTask_status(TaskStatus.START_AND_POINT.getCode());
setUpdateByPC(task);
taskService.save(task);
log.info("任务创建成功:{}", task);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
checkTaskOptionStatus(taskObj);
// 起点清除
String startPointCode = taskObj.getPoint_code1();
StIvtCutpointivt startPoint = cutpointivtService.getOneByCode(startPointCode);
startPoint.setContainer_name("");
startPoint.setFull_point_status("01");
startPoint.setFull_vehicle_code("");
startPoint.setEmpty_vehicle_code("");
startPoint.setEmpty_point_status("01");
PointUtils.setCutUpdateByType(startPoint, taskFinishedType);
cutpointivtService.updateById(startPoint);
// 创建桁架任务
JSONObject taskParam = new JSONObject();
taskParam.put("config_code", "SlitterSendRollTrussTask");
taskParam.put("up_task_code", taskObj.getTask_code());
taskParam.put("create_mode", GeneralDefinition.TASK_CREATION);
taskParam.put("vehicle_code", taskObj.getVehicle_code());
taskParam.put("vehicle_type", taskObj.getVehicle_type());
taskParam.put("device_code", taskObj.getPoint_code2());
slitterSendRollTrussTask.apply(taskParam);
// 任务更新
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
taskService.updateById(taskObj);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
checkTaskOptionStatus(taskObj);
// 取消
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
taskObj.setRemark(GeneralDefinition.TASK_CANCEL);
taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
taskService.updateById(taskObj);
}
}

View File

@@ -0,0 +1,92 @@
package org.nl.wms.sch.task_manage.tasks.slitter;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.exception.BadRequestException;
import org.nl.wms.sch.point.service.ISchBasePointService;
import org.nl.wms.sch.point.service.dao.SchBasePoint;
import org.nl.wms.sch.task.service.ISchBaseTaskService;
import org.nl.wms.sch.task.service.dao.SchBaseTask;
import org.nl.wms.sch.task_manage.AbstractTask;
import org.nl.wms.sch.task_manage.TaskStatus;
import org.nl.wms.sch.task_manage.core.constant.GeneralDefinition;
import org.nl.wms.sch.task_manage.core.enums.TaskFinishedTypeEnum;
import org.nl.wms.util.TaskUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import static org.nl.wms.util.TaskUtils.checkTaskOptionStatus;
import static org.nl.wms.util.TaskUtils.setUpdateByPC;
import static org.nl.wms.util.PointUtils.setUpdateByType;
/**
* @Author: lyd
* @Description: 分切送收卷辊任务
* @Date: 2024/8/12
*/
@Slf4j
@Component(value = "SlitterSendRollTrussTask")
public class SlitterSendRollTrussTask extends AbstractTask {
private final String THIS_CLASS = SlitterSendRollTrussTask.class.getName();
@Autowired
private ISchBasePointService pointService;
@Autowired
private ISchBaseTaskService taskService;
@Override
public void create() throws BadRequestException {
}
@Override
public void createCompletion(SchBaseTask task) {
// 起点一样不记录,直接创建入库任务
// 查找空位终点即可
List<SchBasePoint> allSjgkPoints = pointService.getAllBusinessNotTaskPoint("A1",
"A1-SJGK", "3", "1", null);
if (allSjgkPoints.size() == 0) {
throw new BadRequestException("收卷辊不存在空位!");
}
SchBasePoint endPoint = allSjgkPoints.get(0);
task.setPoint_code2(endPoint.getPoint_code());
// 创建任务
task.setHandle_class(THIS_CLASS);
task.setTask_status(TaskStatus.START_AND_POINT.getCode());
setUpdateByPC(task);
taskService.save(task);
log.info("任务创建成功:{}", task);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
checkTaskOptionStatus(taskObj);
// 点位更新需要将载具编码设置到终点
String endPointCode = taskObj.getPoint_code2();
SchBasePoint endPoint = pointService.getById(endPointCode);
endPoint.setVehicle_code(taskObj.getVehicle_code());
endPoint.setPoint_status("2");
// 载具类型是否一开始从工单获取,还是根据编码从物料表查询?
endPoint.setVehicle_type(taskObj.getVehicle_type());
setUpdateByType(endPoint, taskFinishedType);
pointService.updateById(endPoint);
// 任务更新
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
taskService.updateById(taskObj);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
checkTaskOptionStatus(taskObj);
// 取消
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
taskObj.setRemark(GeneralDefinition.TASK_CANCEL);
taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
taskService.updateById(taskObj);
}
}

View File

@@ -0,0 +1,141 @@
package org.nl.wms.sch.task_manage.tasks.slitter;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.exception.BadRequestException;
import org.nl.wms.pdm.bi.dao.PdmBiRawfoilworkorder;
import org.nl.wms.pdm.bi.service.IpdmBiRawfoilworkorderService;
import org.nl.wms.pdm.ivt.dao.StIvtCutpointivt;
import org.nl.wms.pdm.ivt.service.IstIvtCutpointivtService;
import org.nl.wms.sch.point.service.ISchBasePointService;
import org.nl.wms.sch.point.service.dao.SchBasePoint;
import org.nl.wms.sch.task.service.ISchBaseTaskService;
import org.nl.wms.sch.task.service.dao.SchBaseTask;
import org.nl.wms.sch.task_manage.AbstractTask;
import org.nl.wms.sch.task_manage.TaskStatus;
import org.nl.wms.sch.task_manage.core.constant.GeneralDefinition;
import org.nl.wms.sch.task_manage.core.enums.TaskFinishedTypeEnum;
import org.nl.wms.util.TaskUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import static org.nl.wms.util.TaskUtils.*;
import static org.nl.wms.util.PointUtils.setCutUpdateByType;
/**
* @Author: lyd
* @Description:
* @Date: 2024/8/12
*/
@Slf4j
@Component(value = "SlitterUpAGVTask")
public class SlitterUpAGVTask extends AbstractTask {
private final String THIS_CLASS = SlitterUpAGVTask.class.getName();
@Autowired
private ISchBasePointService pointService;
@Autowired
private IstIvtCutpointivtService cutpointivtService;
@Autowired
private ISchBaseTaskService taskService;
@Autowired
private IpdmBiRawfoilworkorderService rawfoilworkorderService;
@Autowired
private SlitterSendRollTrussTask slitterSendRollTrussTask;
@Override
public void create() throws BadRequestException {
}
@Override
public void createCompletion(SchBaseTask task) {
String requestParam = task.getRequest_param();
JSONObject requestObj = JSONObject.parseObject(requestParam);
String isFlag = requestObj.getString("is_flag");
// 分切上料满料对接位
String cutPointCode = requestObj.getString("cut_point");
// 烘箱暂存对接位
String deviceCode = requestObj.getString("device_code");
StIvtCutpointivt cutPoint = cutpointivtService.getByFullCode(cutPointCode, false);
if ("0".equals(isFlag)) {
// 两点任务
task.setPoint_code1(deviceCode);
task.setPoint_code2(cutPoint.getFull_point_code());
} else {
// 收卷辊的入库不做校验
List<SchBasePoint> sjgPoints = pointService.getPointByConditions("A1", "A1-SJGK", "1", null, false);
if (sjgPoints.size() == 0) {
throw new BadRequestException("收卷辊库找不到入口!");
}
SchBasePoint sjgPoint = sjgPoints.get(0);
// 四点任务
task.setPoint_code1(deviceCode);
task.setPoint_code2(cutPoint.getFull_point_code());
task.setPoint_code3(cutPoint.getEmpty_point_code());
task.setPoint_code4(sjgPoint.getPoint_code());
}
// 创建任务
task.setHandle_class(THIS_CLASS);
task.setTask_status(TaskStatus.START_AND_POINT.getCode());
setUpdateByPC(task);
taskService.save(task);
log.info("任务创建成功:{}", task);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
checkTaskOptionStatus(taskObj);
// 任务完成需要任务中的数据设置到分切机上, 工单结束
String requestParam = taskObj.getRequest_param();
JSONObject requestObj = JSONObject.parseObject(requestParam);
String workorderId = requestObj.getString("workorder_id");
String endPointCode = taskObj.getPoint_code2();
StIvtCutpointivt cutPoint = cutpointivtService.getByFullCode(endPointCode, false);
PdmBiRawfoilworkorder order = rawfoilworkorderService.getById(workorderId);
cutPoint.setFull_vehicle_code(taskObj.getVehicle_code2());
cutPoint.setFull_point_status("02");
cutPoint.setContainer_name(order.getContainer_name());
cutPoint.setEmpty_vehicle_code("");
cutPoint.setEmpty_point_status("01");
setCutUpdateByType(cutPoint, taskFinishedType);
cutpointivtService.updateById(cutPoint);
if (ObjectUtil.isNotEmpty(taskObj.getPoint_code3())) {
// 四点任务,还需要创建收卷辊桁架任务
JSONObject taskParam = new JSONObject();
taskParam.put("vehicle_code", taskObj.getVehicle_code());
taskParam.put("up_task_code", taskObj.getTask_code());
taskParam.put("create_mode", GeneralDefinition.TASK_CREATION);
taskParam.put("config_code", "SlitterSendRollTrussTask");
taskParam.put("device_code", taskObj.getPoint_code4());
slitterSendRollTrussTask.apply(taskParam);
}
// 工单结束
order.setStatus("09");
order.setFinish_type("02");
order.setUp_coiler_date(DateUtil.now());
setRawOrderUpdateByType(order, taskFinishedType);
rawfoilworkorderService.updateById(order);
// 任务更新
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskObj.setFinished_type(taskFinishedType.getCode());
setUpdateByType(taskObj, taskFinishedType);
taskService.updateById(taskObj);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
checkTaskOptionStatus(taskObj);
// 取消
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
taskObj.setRemark(GeneralDefinition.TASK_CANCEL);
taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
taskService.updateById(taskObj);
}
}

View File

@@ -0,0 +1,117 @@
package org.nl.wms.sch.task_manage.tasks.slitter;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.exception.BadRequestException;
import org.nl.wms.pdm.bi.dao.PdmBiRawfoilworkorder;
import org.nl.wms.pdm.bi.service.IpdmBiRawfoilworkorderService;
import org.nl.wms.sch.point.service.ISchBasePointService;
import org.nl.wms.sch.point.service.dao.SchBasePoint;
import org.nl.wms.sch.task.service.ISchBaseTaskService;
import org.nl.wms.sch.task.service.dao.SchBaseTask;
import org.nl.wms.sch.task_manage.AbstractTask;
import org.nl.wms.sch.task_manage.TaskStatus;
import org.nl.wms.sch.task_manage.core.constant.GeneralDefinition;
import org.nl.wms.sch.task_manage.core.enums.TaskFinishedTypeEnum;
import org.nl.wms.util.TaskUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import static org.nl.wms.util.PointUtils.clearPoint;
import static org.nl.wms.util.TaskUtils.*;
/**
* @Author: lyd
* @Description: 分切上料-出烘箱暂存的桁架任务
* @Date: 2024/8/12
*/
@Slf4j
@Component(value = "SlitterUpTrussTask")
public class SlitterUpTrussTask extends AbstractTask {
private final String THIS_CLASS = SlitterUpTrussTask.class.getName();
@Autowired
private ISchBasePointService pointService;
@Autowired
private ISchBaseTaskService taskService;
@Autowired
private SlitterUpAGVTask slitterUpAGVTask;
@Autowired
private IpdmBiRawfoilworkorderService rawfoilworkorderService;
@Override
public void create() throws BadRequestException {
}
@Override
public void createCompletion(SchBaseTask task) {
// 桁架任务,到对接位。(对接位不作更新。)
String requestParam = task.getRequest_param();
JSONObject requestObj = JSONObject.parseObject(requestParam);
String pointCode = requestObj.getString("zc_point");
// 终点为出口,不校验是否占用
List<SchBasePoint> endPoints = pointService.getPointByConditions("A1", "A1-HXZC", "1", null, true);
if (endPoints.size() == 0) {
throw new BadRequestException("烘箱出口查询失败!");
}
SchBasePoint point = endPoints.get(0);
task.setPoint_code1(pointCode);
task.setPoint_code2(point.getPoint_code());
// 创建任务
task.setHandle_class(THIS_CLASS);
task.setTask_status(TaskStatus.START_AND_POINT.getCode());
setUpdateByPC(task);
taskService.save(task);
log.info("任务创建成功:{}", task);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
checkTaskOptionStatus(taskObj);
// 任务完成起点清除创建AGV任务到达参数中的point_code的点位上
String requestParam = taskObj.getRequest_param();
JSONObject requestObj = JSONObject.parseObject(requestParam);
// 分切机满料位
String isFlag = requestObj.getString("is_flag");
String workorderId = requestObj.getString("workorder_id");
String startPointCode = taskObj.getPoint_code1();
String endPointCode = taskObj.getPoint_code2();
SchBasePoint startPoint = pointService.getById(startPointCode);
clearPoint(startPoint, taskFinishedType);
// 创建AGV任务
log.info("点位{}更新完毕创建AGV任务给分切机上料", startPointCode);
PdmBiRawfoilworkorder order = rawfoilworkorderService.getById(workorderId);
JSONObject taskParam = new JSONObject();
taskParam.put("device_code", endPointCode);
taskParam.put("cut_point", requestObj.getString("device_code"));
// 标记一下, 0: 只做呼叫母卷1呼叫母卷还要送空辊
taskParam.put("is_flag", isFlag);
// 空轴的编码
taskParam.put("vehicle_code", taskObj.getVehicle_code());
taskParam.put("vehicle_code2", order.getWind_roll());
taskParam.put("workorder_id", workorderId);
taskParam.put("config_code", "SlitterSendRollTrussTask");
taskParam.put("up_task_code", taskObj.getTask_code());
taskParam.put("create_mode", GeneralDefinition.TASK_CREATION);
slitterUpAGVTask.apply(taskParam);
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskObj.setFinished_type(taskFinishedType.getCode());
setUpdateByType(taskObj, taskFinishedType);
taskService.updateById(taskObj);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
checkTaskOptionStatus(taskObj);
// 取消
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
taskObj.setRemark(GeneralDefinition.TASK_CANCEL);
taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
taskService.updateById(taskObj);
}
}

View File

@@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import org.nl.common.utils.SecurityUtils;
import org.nl.config.SpringContextHolder;
import org.nl.wms.pdm.ivt.dao.StIvtCutpointivt;
import org.nl.wms.pdm.ivt.dao.StIvtHotpointivt;
import org.nl.wms.pdm.ivt.service.IstIvtHotpointivtService;
import org.nl.wms.pdm.ivt.service.impl.StIvtHotpointivtServiceImpl;
@@ -55,7 +56,7 @@ public class PointUtils {
point.setVehicle_type("");
point.setVehicle_code("");
point.setIng_task_code("");
point.setGroup_id("");
point.setSource_id("");
point.setVehicle_qty(0);
point.setUpdate_time(DateUtil.now());
setUpdateByType(point, taskFinishedType);
@@ -71,7 +72,7 @@ public class PointUtils {
return; // 空直接退出
}
IstIvtHotpointivtService pointService = SpringContextHolder.getBean(StIvtHotpointivtServiceImpl.class);
point.setPoint_status(PointStatusEnum.EMPTY_POINT.getCode());
point.setPoint_status("01");
point.setContainer_name("");
point.setFull_vehicle_code("");
point.setWorkorder_id("");
@@ -162,4 +163,33 @@ public class PointUtils {
setHxUpdateByPC(pointObj);
}
}
/**
* 点位修改更新信息
**/
public static void setCutUpdateByAcs(StIvtCutpointivt pointObj) {
pointObj.setUpdate_optid(GeneralDefinition.ACS_ID);
pointObj.setUpdate_optname(GeneralDefinition.ACS_NAME);
pointObj.setUpdate_time(DateUtil.now());
}
/**
* 点位修改更新信息
**/
public static void setCutUpdateByPC(StIvtCutpointivt pointObj) {
pointObj.setUpdate_optid(SecurityUtils.getCurrentUserId());
pointObj.setUpdate_optname(SecurityUtils.getCurrentNickName());
pointObj.setUpdate_time(DateUtil.now());
}
/**
* 分切修改点位更新信息
*/
public static void setCutUpdateByType(StIvtCutpointivt pointObj, TaskFinishedTypeEnum taskFinishedType) {
if (taskFinishedType.equals(TaskFinishedTypeEnum.AUTO_ACS)) {
setCutUpdateByAcs(pointObj);
} else {
setCutUpdateByPC(pointObj);
}
}
}

View File

@@ -228,4 +228,25 @@ public class TaskUtils {
throw new BadRequestException("任务已被取消!");
}
}
public static void setRawOrderUpdateAcs(PdmBiRawfoilworkorder order) {
order.setUpdate_optid(GeneralDefinition.ACS_ID);
order.setUpdate_optname(GeneralDefinition.ACS_NAME);
order.setUpdate_time(DateUtil.now());
}
public static void setRawOrderUpdatePC(PdmBiRawfoilworkorder order) {
order.setUpdate_optid(SecurityUtils.getCurrentUserId());
order.setUpdate_optname(SecurityUtils.getCurrentNickName());
order.setUpdate_time(DateUtil.now());
}
public static void setRawOrderUpdateByType(PdmBiRawfoilworkorder order, TaskFinishedTypeEnum taskFinishedType) {
if (taskFinishedType.equals(TaskFinishedTypeEnum.AUTO_ACS)) {
setRawOrderUpdateAcs(order);
} else {
setRawOrderUpdatePC(order);
}
}
}