This commit is contained in:
2022-10-10 20:06:04 +08:00
7 changed files with 413 additions and 285 deletions

View File

@@ -48,27 +48,31 @@ public class RawFoilController {
@Log("呼叫空轴")
@ApiOperation("呼叫空轴")
public ResponseEntity<Object> needEmptyAxis(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(rawFoilService.needEmptyAxis(whereJson), HttpStatus.OK);
rawFoilService.needEmptyAxis(whereJson);
return new ResponseEntity<>( HttpStatus.OK);
}
@PostMapping("/confirmBlanking")
@Log("确认下卷")
@ApiOperation("确认下卷")
public ResponseEntity<Object> confirmBlanking(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(rawFoilService.confirmBlanking(whereJson), HttpStatus.OK);
rawFoilService.confirmBlanking(whereJson);
return new ResponseEntity<>( HttpStatus.OK);
}
@PostMapping("/finishBlanking")
@Log("下卷完成")
@ApiOperation("下卷完成")
public ResponseEntity<Object> finishBlanking(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(rawFoilService.finishBlanking(whereJson), HttpStatus.OK);
rawFoilService.finishBlanking(whereJson);
return new ResponseEntity<>(HttpStatus.OK);
}
@PostMapping("/finish")
@Log("完成")
@ApiOperation("完成")
public ResponseEntity<Object> finish(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(rawFoilService.finish(whereJson), HttpStatus.OK);
rawFoilService.finish(whereJson);
return new ResponseEntity<>(HttpStatus.OK);
}
}

View File

@@ -1,5 +1,6 @@
package org.nl.wms.pda.mps.service;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
public interface RawFoilService {
@@ -8,47 +9,47 @@ public interface RawFoilService {
* 查询生产区域
* @return json
*/
JSONObject queryProductArea();
JSONArray queryProductArea();
/**
* 查询生箔生产进度
* @param whereJson /
* @return JSONObject
*/
JSONObject queryRawFoil(JSONObject whereJson);
JSONArray queryRawFoil(JSONObject whereJson);
/**
* 查询生箔工单
* @param whereJson /
* @return JSONObject
*/
JSONObject queryRawFoilList(JSONObject whereJson);
JSONArray queryRawFoilList(JSONObject whereJson);
/**
* 确认下卷
* @param whereJson /
* @return JSONObject
*/
JSONObject needEmptyAxis(JSONObject whereJson);
void needEmptyAxis(JSONObject whereJson);
/**
* 查询生箔工单
* @param whereJson /
* @return JSONObject
*/
JSONObject confirmBlanking(JSONObject whereJson);
void confirmBlanking(JSONObject whereJson);
/**
* 下卷完成
* @param whereJson /
* @return JSONObject
*/
JSONObject finishBlanking(JSONObject whereJson);
void finishBlanking(JSONObject whereJson);
/**
* 完成
* @param whereJson /
* @return JSONObject
*/
JSONObject finish(JSONObject whereJson);
void finish(JSONObject whereJson);
}

View File

@@ -1,7 +1,9 @@
package org.nl.wms.pda.mps.service.impl;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray;
@@ -17,10 +19,13 @@ import org.nl.wms.ext.acs.service.AcsToWmsService;
import org.nl.wms.pda.mps.service.RawFoilService;
import org.nl.wms.sch.service.PointService;
import org.nl.wms.sch.service.dto.PointDto;
import org.nl.wms.sch.tasks.BookTwoConfirmTask;
import org.nl.wms.sch.tasks.CallEmpReelTask;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
@Service
@RequiredArgsConstructor
@Slf4j
@@ -29,218 +34,228 @@ public class RawFoilServiceImpl implements RawFoilService {
private final PointService pointService;
@Override
public JSONObject queryProductArea() {
JSONObject result = new JSONObject();
JSONArray rows = new JSONArray();
result.put("rows", rows);
result.put("code", "1");
result.put("desc", "查询成功");
return result;
public JSONArray queryProductArea() {
JSONObject map = new JSONObject();
map.put("flag", "3");
JSONArray jsonArr = WQL.getWO("PDA_RAWFOIL_01").addParam("flag", "3").process().getResultJSONArray(0);
return jsonArr;
}
@Override
public JSONObject queryRawFoil(JSONObject whereJson) {
JSONObject result = new JSONObject();
// 1、准备参数point_code、type = 4
JSONObject param = new JSONObject();
param.put("type", "4");
param.put("point_code", whereJson.getString("point_code"));
// 2、调用接口
JSONObject json = acsToWmsService.apply(param);
if (StrUtil.equals(json.getString("status"), "200")) {
result.put("result", "");
result.put("code", "1");
result.put("desc", "操作成功");
} else {
result.put("result", "");
result.put("code", "0");
result.put("desc", "操作失败:" + json.getString("message"));
public JSONArray queryRawFoil(JSONObject whereJson) {
String point_code = whereJson.getString("point_code");
String container_name = whereJson.getString("container_name");
String product_area = whereJson.getString("product_area");
JSONArray resultArr = new JSONArray();
JSONObject map = new JSONObject();
map.put("flag", "4");
map.put("point_code", point_code);
map.put("container_name", container_name);
map.put("product_area", product_area);
// 如果都为空则默认区域为 A
if (ObjectUtil.isEmpty(point_code) && ObjectUtil.isEmpty(container_name) && ObjectUtil.isEmpty(product_area)) {
map.put("product_area", "A");
}
return result;
JSONArray arr = WQL.getWO("PDA_RAWFOIL_01").addParamMap(map).process().getResultJSONArray(0);
for (int i = 0; i < arr.size(); i++) {
JSONObject json = new JSONObject();
JSONObject jsonObject = arr.getJSONObject(i);
String theory_height = jsonObject.getString("theory_height");
String eqp_velocity = jsonObject.getString("eqp_velocity");
// 计算生产所需时间: 理论长度 / 速度
int need_time = NumberUtil.div(NumberUtil.div(theory_height, eqp_velocity).toString(), "60").intValue();// 分钟
// 计算预计结束时间: 开始时间 + 生产所需时间
String realstart_time = jsonObject.getString("realstart_time");
Date date = DateUtil.parse(realstart_time);
String end_time = DateUtil.offsetMinute(date, need_time).toString();
// 当前时间 - 预计结束时间 超过为红色、还有半小时为黄色
Date now_time = DateUtil.parse(DateUtil.now());
Date end_time2 = DateUtil.parse(end_time);
long betweenDay = DateUtil.between(end_time2, now_time, DateUnit.MINUTE, false);
if (betweenDay > 0) json.put("color_type", "1");
if (betweenDay <= 0 && betweenDay >= -30) json.put("color_type", "2");
json.put("container_name", jsonObject.getString("container_name"));
json.put("realstart_time", jsonObject.getString("realstart_time"));
json.put("end_date", end_time);
json.put("point_code", jsonObject.getString("resource_name"));
json.put("pcsn", jsonObject.getString("product_name"));
json.put("product_name", jsonObject.getString("theory_height"));
json.put("mfg_order_name", jsonObject.getString("mfg_order_name"));
resultArr.add(json);
}
return resultArr;
}
@Override
public JSONObject queryRawFoilList(JSONObject whereJson) {
JSONObject result = new JSONObject();
// 1、准备参数point_code、type = 4
JSONObject param = new JSONObject();
param.put("type", "4");
param.put("point_code", whereJson.getString("point_code"));
// 2、调用接口
JSONObject json = acsToWmsService.apply(param);
if (StrUtil.equals(json.getString("status"), "200")) {
result.put("result", "");
result.put("code", "1");
result.put("desc", "操作成功");
} else {
result.put("result", "");
result.put("code", "0");
result.put("desc", "操作失败:" + json.getString("message"));
}
return result;
public JSONArray queryRawFoilList(JSONObject whereJson) {
JSONObject map = new JSONObject();
map.put("flag", "5");
map.put("point_code", whereJson.getString("point_code"));
map.put("container_name", whereJson.getString("container_name"));
JSONArray resultJSONArray = WQL.getWO("PDA_RAWFOIL_01").addParamMap(map).process().getResultJSONArray(0);
return resultJSONArray;
}
@Override
@Transactional(rollbackFor = Exception.class)
public JSONObject needEmptyAxis(JSONObject whereJson) {
JSONObject result = new JSONObject();
JSONArray rows = new JSONArray();
public void needEmptyAxis(JSONObject whereJson) {
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
String end_pint_code = whereJson.getString("end_pint_code");
String end_pint_code = whereJson.getString("point_code");
try {
if (ObjectUtil.isEmpty(end_pint_code)) throw new BadRequestException("终点点位不能为空");
String start_pint_code = "";
if (ObjectUtil.isEmpty(end_pint_code)) throw new BadRequestException("终点点位不能为空");
String start_pint_code = "";
// 1.查询此点位是否存在
PointDto jsonPoint = pointService.findByCode(end_pint_code);
if (ObjectUtil.isEmpty(jsonPoint)) throw new BadRequestException("此点位不存在");
// 2.根据就近原则查对应空卷抽
JSONObject map = new JSONObject();
map.put("flag", "1");
map.put("product_area",jsonPoint.getProduct_area());
map.put("point_location",jsonPoint.getPoint_location());
JSONObject jsonIvt = WQL.getWO("PDA_01").addParamMap(map).process().uniqueResult(0);
// 3.如果没找到则继续找下一节点
if (ObjectUtil.isEmpty(jsonIvt)) {
String point_location = jsonPoint.getPoint_location();
if (StrUtil.equals(point_location, "0")) map.put("point_location","1");
if (StrUtil.equals(point_location, "1")) map.put("point_location","0");
JSONObject jsonIvt_tow = WQL.getWO("PDA_01").addParamMap(map).process().uniqueResult(0);
// 1.查询此点位是否存在
PointDto jsonPoint = pointService.findByCode(end_pint_code);
if (ObjectUtil.isEmpty(jsonPoint)) throw new BadRequestException("此点位不存在");
// 2.根据就近原则查对应空卷抽
JSONObject map = new JSONObject();
map.put("flag", "1");
map.put("product_area", jsonPoint.getProduct_area());
map.put("point_location", jsonPoint.getPoint_location());
JSONObject jsonIvt = WQL.getWO("PDA_RAWFOIL_01").addParamMap(map).process().uniqueResult(0);
// 3.如果没找到则继续找下一节点
if (ObjectUtil.isEmpty(jsonIvt)) {
String point_location = jsonPoint.getPoint_location();
if (StrUtil.equals(point_location, "0")) map.put("point_location", "1");
if (StrUtil.equals(point_location, "1")) map.put("point_location", "0");
JSONObject jsonIvt_tow = WQL.getWO("PDA_RAWFOIL_01").addParamMap(map).process().uniqueResult(0);
if (ObjectUtil.isEmpty(jsonIvt_tow)) throw new BadRequestException("库存不足");
start_pint_code = jsonIvt_tow.getString("point_code");
} else {
start_pint_code = jsonIvt.getString("point_code");
}
// 起点和终点确定 生成任务
JSONObject param = new JSONObject();
param.put("start_pint_code",start_pint_code);
param.put("end_pint_code",end_pint_code);
CallEmpReelTask callEmpReelTask = new CallEmpReelTask();
String taskdtl_id = callEmpReelTask.createTask(param);
// 下发任务
JSONObject jsonObject = callEmpReelTask.renotifyAcs(taskdtl_id);
if (StrUtil.equals(jsonObject.getString("status"), "200")) {
// 成功返回 更新任务状态
JSONObject jsonTask = taskTab.query("taskdtl_id ='" + taskdtl_id + "'").uniqueResult(0);
jsonTask.put("task_status", "05");
taskTab.update(jsonTask);
}
result.put("rows", rows);
result.put("code", "1");
result.put("desc", "操作成功");
} catch (Exception e) {
result.put("rows", rows);
result.put("code", "0");
result.put("desc", "操作失败:"+e.getMessage());
if (ObjectUtil.isEmpty(jsonIvt_tow)) throw new BadRequestException("库存不足");
start_pint_code = jsonIvt_tow.getString("empty_point_code");
} else {
start_pint_code = jsonIvt.getString("empty_point_code");
}
// 起点和终点确定 生成任务
JSONObject param = new JSONObject();
param.put("start_pint_code", start_pint_code);
param.put("end_pint_code", end_pint_code);
CallEmpReelTask callEmpReelTask = new CallEmpReelTask();
String taskdtl_id = callEmpReelTask.createTask(param);
// 下发任务
JSONObject jsonObject = callEmpReelTask.renotifyAcs(taskdtl_id);
if (StrUtil.equals(jsonObject.getString("status"), "200")) {
// 成功返回 更新任务状态
JSONObject jsonTask = taskTab.query("taskdtl_id ='" + taskdtl_id + "'").uniqueResult(0);
jsonTask.put("task_status", "05");
taskTab.update(jsonTask);
}
return result;
}
@Override
public JSONObject confirmBlanking(JSONObject whereJson) {
String start_pint_code = whereJson.getString("start_pint_code");
public void confirmBlanking(JSONObject whereJson) {
JSONObject result = new JSONObject();
JSONArray rows = new JSONArray();
}
try {
if (ObjectUtil.isEmpty(start_pint_code)) throw new BadRequestException("起点不能为空");
String end_pint_code ="";
@Override
public void finishBlanking(JSONObject whereJson) {
String start_pint_code = whereJson.getString("point_code");
// 1.查询此点位是否存在
PointDto jsonPoint = pointService.findByCode(start_pint_code);
if (ObjectUtil.isEmpty(jsonPoint)) throw new BadRequestException("起点点位不存在");
WQLObject regionTab = WQLObject.getWQLObject("ST_IVT_CoolRegionIO"); // 冷却区出入表
WQLObject materTab = WQLObject.getWQLObject("md_me_materialbase"); // 物料表
WQLObject coolTab = WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder"); // 生箔工单表
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); // 任务表
// 2.根据就近原则查对应空卷抽
JSONObject map = new JSONObject();
map.put("flag", "2");
map.put("product_area",jsonPoint.getProduct_area());
map.put("point_location",jsonPoint.getPoint_location());
JSONObject jsonIvt = WQL.getWO("PDA_01").addParamMap(map).process().uniqueResult(0);
// 3.如果没找到则继续找下一节点
if (ObjectUtil.isEmpty(jsonIvt)) {
String point_location = jsonPoint.getPoint_location();
if (StrUtil.equals(point_location, "0")) map.put("point_location","1");
if (StrUtil.equals(point_location, "1")) map.put("point_location","0");
JSONObject jsonIvt_tow = WQL.getWO("PDA_01").addParamMap(map).process().uniqueResult(0);
JSONObject jsonCool = coolTab.query("mfg_order_name = '" + whereJson.getString("mfg_order_name") + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(jsonIvt_tow)) throw new BadRequestException("没有空位");
end_pint_code = jsonIvt_tow.getString("point_code");
} else {
end_pint_code = jsonIvt.getString("point_code");
}
// 4.起点和终点确定 生成任务
if (ObjectUtil.isEmpty(start_pint_code)) throw new BadRequestException("起点不能为空");
String end_point_code = "";
// 5.插入入库单
// 1.查询此点位是否存在
PointDto jsonPoint = pointService.findByCode(start_pint_code);
if (ObjectUtil.isEmpty(jsonPoint)) throw new BadRequestException("起点点位不存在");
// 6.下发任务
} catch (Exception e) {
// 2.根据就近原则查对应空卷抽
JSONObject map = new JSONObject();
map.put("flag", "2");
map.put("product_area", jsonPoint.getProduct_area());
map.put("point_location", jsonPoint.getPoint_location());
JSONObject jsonIvt = WQL.getWO("PDA_RAWFOIL_01").addParamMap(map).process().uniqueResult(0);
// 3.如果没找到则继续找下一节点
if (ObjectUtil.isEmpty(jsonIvt)) {
String point_location = jsonPoint.getPoint_location();
if (StrUtil.equals(point_location, "0")) map.put("point_location", "1");
if (StrUtil.equals(point_location, "1")) map.put("point_location", "0");
JSONObject jsonIvt_tow = WQL.getWO("PDA_RAWFOIL_01").addParamMap(map).process().uniqueResult(0);
if (ObjectUtil.isEmpty(jsonIvt_tow)) throw new BadRequestException("没有空位");
end_point_code = jsonIvt_tow.getString("full_point_code");
} else {
end_point_code = jsonIvt.getString("full_point_code");
}
// 4.起点和终点确定 生成任务
JSONObject param = new JSONObject();
param.put("start_pint_code",start_pint_code);
param.put("end_pint_code",end_point_code);
BookTwoConfirmTask bookTwoConfirmTask = new BookTwoConfirmTask();
String taskdtl_id = bookTwoConfirmTask.createTask(param);
result.put("rows", rows);
result.put("code", "1");
result.put("desc", "查询成功");
return result;
}
@Override
public JSONObject finishBlanking(JSONObject whereJson) {
JSONObject result = new JSONObject();
JSONArray rows = new JSONArray();
result.put("rows", rows);
result.put("code", "1");
result.put("desc", "查询成功");
return result;
}
@Override
public JSONObject finish(JSONObject whereJson) {
JSONObject result = new JSONObject();
JSONArray rows = new JSONArray();
result.put("rows", rows);
result.put("code", "1");
result.put("desc", "查询成功");
return result;
}
@Transactional(rollbackFor = Exception.class)
public String createTask(JSONObject param) {
WQLObject tab = WQLObject.getWQLObject("SCH_BASE_Task");
// 5.插入入库单
Long currentUserId = SecurityUtils.getCurrentUserId();
String currentUsername = SecurityUtils.getCurrentUsername();
JSONObject json = new JSONObject();
json.put("taskdtl_id", IdUtil.getSnowflake(1,1).nextId());
json.put("task_id",json.getString("taskdtl_id"));
json.put("task_code", CodeUtil.getNewCode("TASK_CODE"));
json.put("task_type", "05");
json.put("task_status", "01");
json.put("start_point_code", param.getString("start_pint_code"));
json.put("next_point_code", param.getString("end_pint_code"));
json.put("handle_class", "0");
json.put("create_id", currentUserId);
json.put("create_name", currentUsername);
json.put("create_time", DateUtil.now());
json.put("priority","1" );
json.put("acs_task_type","1" );
tab.insert(json);
JSONObject jsonMater = materTab.query("material_code = '" + jsonCool.getString("product_name") + "'").uniqueResult(0);
return json.getString("taskdtl_id");
JSONObject jsonRegion = new JSONObject();
jsonRegion.put("iostorinv_id", IdUtil.getSnowflake(1,1).nextId());
jsonRegion.put("bill_code", CodeUtil.getNewCode("COOLREGION_BILL_CODE"));
jsonRegion.put("io_type", "1");
jsonRegion.put("material_id", jsonMater.getString("material_id"));
jsonRegion.put("pcsn","");
jsonRegion.put("vehicle_code","");
jsonRegion.put("qty",jsonCool.getString("productin_qty"));
jsonRegion.put("qty_unit_id","");
jsonRegion.put("bill_status","10");
jsonRegion.put("start_point_code",start_pint_code);
jsonRegion.put("end_point_code",end_point_code);
jsonRegion.put("cust_id","");
jsonRegion.put("create_mode","03");
jsonRegion.put("task_id",taskdtl_id);
jsonRegion.put("create_id",currentUserId);
jsonRegion.put("create_name",currentUsername);
jsonRegion.put("create_time",DateUtil.now());
regionTab.insert(jsonRegion);
// 6.下发任务
JSONObject jsonObject = bookTwoConfirmTask.renotifyAcs(taskdtl_id);
if (StrUtil.equals(jsonObject.getString("status"), "200")) {
// 成功返回 更新任务状态
JSONObject jsonTask = taskTab.query("taskdtl_id ='" + taskdtl_id + "'").uniqueResult(0);
jsonTask.put("task_status", "05");
taskTab.update(jsonTask);
// 更新出入表状态
jsonRegion.put("bill_status", "30");
jsonRegion.put("update_optid",currentUserId);
jsonRegion.put("update_optname",currentUsername);
jsonRegion.put("update_time",DateUtil.now());
regionTab.update(jsonRegion);
}
}
@Override
public void finish(JSONObject whereJson) {
WQLObject coolTab = WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder"); // 生箔工单表
JSONObject jsonCool = coolTab.query("mfg_order_name = '" + whereJson.getString("mfg_order_name") + "'").uniqueResult(0);
jsonCool.put("status","2");
jsonCool.put("realend_time",DateUtil.now());
jsonCool.put("finish_type","02");
coolTab.update(jsonCool);
}
}

View File

@@ -1,87 +0,0 @@
[交易说明]
交易名: 手持接口
所属模块:
功能简述:
版权所有:
表引用:
版本经历:
[数据库]
--指定数据库为空采用默认值默认为db.properties中列出的第一个库
[IO定义]
#################################################
## 表字段对应输入参数
#################################################
输入.flag TYPEAS s_string
输入.product_area TYPEAS s_string
输入.point_location TYPEAS s_string
[临时表]
--这边列出来的临时表就会在运行期动态创建
[临时变量]
--所有中间过程变量均可在此处定义
[业务过程]
##########################################
# 1、输入输出检查 #
##########################################
##########################################
# 2、主过程前处理 #
##########################################
##########################################
# 3、业务主过程 #
##########################################
IF 输入.flag = "1"
QUERY
SELECT
ivt.*
FROM
ST_IVT_CoolPointIvt ivt
WHERE
ivt.empty_point_status = '02'
OPTION 输入.product_area <> ""
ivt.product_area = 输入.product_area
ENDOPTION
OPTION 输入.point_location <> ""
ivt.point_location = 输入.point_location
ENDOPTION
order by ivt.point_code ASC
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "2"
QUERY
SELECT
ivt.*
FROM
ST_IVT_CoolPointIvt ivt
WHERE
ivt.full_point_status = '01'
OPTION 输入.product_area <> ""
ivt.product_area = 输入.product_area
ENDOPTION
OPTION 输入.point_location <> ""
ivt.point_location = 输入.point_location
ENDOPTION
order by ivt.point_code ASC
ENDSELECT
ENDQUERY
ENDIF

View File

@@ -0,0 +1,169 @@
[交易说明]
交易名: 手持接口
所属模块:
功能简述:
版权所有:
表引用:
版本经历:
[数据库]
--指定数据库为空采用默认值默认为db.properties中列出的第一个库
[IO定义]
#################################################
## 表字段对应输入参数
#################################################
输入.flag TYPEAS s_string
输入.product_area TYPEAS s_string
输入.point_location TYPEAS s_string
输入.point_code TYPEAS s_string
输入.container_name TYPEAS s_string
输入.product_area TYPEAS s_string
[临时表]
--这边列出来的临时表就会在运行期动态创建
[临时变量]
--所有中间过程变量均可在此处定义
[业务过程]
##########################################
# 1、输入输出检查 #
##########################################
##########################################
# 2、主过程前处理 #
##########################################
##########################################
# 3、业务主过程 #
##########################################
IF 输入.flag = "1"
QUERY
SELECT
ivt.*
FROM
ST_IVT_CoolPointIvt ivt
WHERE
ivt.empty_point_status = '02'
OPTION 输入.product_area <> ""
ivt.product_area = 输入.product_area
ENDOPTION
OPTION 输入.point_location <> ""
ivt.point_location = 输入.point_location
ENDOPTION
order by ivt.point_code ASC
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "2"
QUERY
SELECT
ivt.*
FROM
ST_IVT_CoolPointIvt ivt
WHERE
ivt.full_point_status = '01'
OPTION 输入.product_area <> ""
ivt.product_area = 输入.product_area
ENDOPTION
OPTION 输入.point_location <> ""
ivt.point_location = 输入.point_location
ENDOPTION
order by ivt.point_code ASC
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "3"
QUERY
SELECT
label,
value
FROM
sys_dict_detail
WHERE
name = 'product_area'
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "4"
QUERY
SELECT
der.*
FROM
PDM_BI_RawFoilWorkOrder der
WHERE
der.status = '1'
AND der.is_delete = '0'
OPTION 输入.point_code <> ""
der.resource_name = 输入.point_code
ENDOPTION
OPTION 输入.container_name <> ""
der.container_name = 输入.container_name
ENDOPTION
OPTION 输入.product_area <> ""
der.product_area = 输入.product_area
ENDOPTION
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "5"
QUERY
SELECT
(
CASE
der.status
WHEN '1' THEN '开始'
WHEN '2' THEN '结束'
END
) AS status_name,
der.mfg_order_name AS mfg_order_name,
der.container_name AS container_name,
der.resource_name AS point_code,
der.product_name AS pcsn,
der.theory_height AS theory_height,
der.realstart_time AS realstart_time,
der.realend_time AS realend_time,
der.productin_qty AS productin_qty,
der.agvno AS agvno,
der.product_area AS product_area,
der.update_time AS update_time
FROM
PDM_BI_RawFoilWorkOrder der
WHERE
der.status = '1'
AND der.is_delete = '0'
OPTION 输入.point_code <> ""
der.resource_name = 输入.point_code
ENDOPTION
OPTION 输入.container_name <> ""
der.container_name = 输入.container_name
ENDOPTION
ENDSELECT
ENDQUERY
ENDIF

View File

@@ -28,9 +28,11 @@ public class BookTwoConfirmTask extends AbstractAcsTask {
@Override
@Transactional
public void updateTaskStatus(JSONObject taskObj, String status) {
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
WQLObject ivtTab = WQLObject.getWQLObject("ST_IVT_CoolPointIvt");
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); // 任务表
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point"); // 点位表
WQLObject ivtTab = WQLObject.getWQLObject("ST_IVT_CoolPointIvt"); // 冷却区库存表
WQLObject coolTab = WQLObject.getWQLObject("ST_IVT_CoolRegionIO"); // 冷却区出入表
WQLObject rawTab = WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder"); // 生箔工序工单表
String task_id = taskObj.getString("task_id");
JSONObject jsonTask = taskTab.query("task_id = '" + task_id + "'").uniqueResult(0);
@@ -41,10 +43,20 @@ public class BookTwoConfirmTask extends AbstractAcsTask {
}
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
Long currentUserId = SecurityUtils.getCurrentUserId();
String currentUsername = SecurityUtils.getCurrentUsername();
// 更新任务状态为执行中
jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode());
jsonTask.put("update_time", DateUtil.now());
taskTab.update(jsonTask);
// 更新单据状态为执行中
JSONObject jsonCool = coolTab.query("task_id = '" + task_id + "'").uniqueResult(0);
jsonCool.put("bill_status", "40");
jsonCool.put("update_optid",currentUserId);
jsonCool.put("update_optname",currentUsername);
jsonCool.put("update_time",DateUtil.now());
coolTab.update(jsonCool);
}
if(StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
@@ -55,20 +67,35 @@ public class BookTwoConfirmTask extends AbstractAcsTask {
jsonTask.put("update_time", DateUtil.now());
taskTab.update(jsonTask);
String next_point_code = jsonTask.getString("next_point_code");
String start_point_code = jsonTask.getString("start_point_code");
PointService point = SpringContextHolder.getBean(PointService.class);
// 校验起点是否存在
PointDto startDto = point.findByCode(start_point_code);
if (ObjectUtil.isEmpty(startDto)) throw new BadRequestException("未找到可用点位:" + startDto);
if (ObjectUtil.isEmpty(startDto)) throw new BadRequestException("起点未找到可用点位:" + start_point_code);
// 校验终点是否存在
PointDto nextDto = point.findByCode(jsonTask.getString("next_point_code"));
if (ObjectUtil.isEmpty(nextDto)) throw new BadRequestException("未找到可用点位:" + nextDto);
JSONObject jsonIvt = ivtTab.query("point_code ='" + next_point_code + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(jsonIvt)) throw new BadRequestException("终点未找到可用点位:" + next_point_code);
// 更新冷却库存状态
JSONObject jsonIvt = ivtTab.query("point_code ='" + start_point_code + "'").uniqueResult(0);
jsonIvt.put("empty_point_status", "01");
JSONObject jsonRaw = rawTab.query("resource_name ='" + start_point_code + "'").uniqueResult(0);
jsonIvt.put("full_point_status", "02");
jsonIvt.put("instorage_time", DateUtil.now());
jsonIvt.put("container_name", jsonRaw.getString("container_name"));
jsonIvt.put("workorder_id", jsonRaw.getString("workorder_id"));
jsonIvt.put("ivt_qty", jsonRaw.getString("productin_qty"));
ivtTab.update(jsonIvt);
// 更新冷却区出入表
JSONObject jsonCool = coolTab.query("task_id = '" + task_id + "'").uniqueResult(0);
jsonCool.put("bill_status","50");
jsonCool.put("confirm_optid", SecurityUtils.getCurrentUserId());
jsonCool.put("confirm_optname", SecurityUtils.getCurrentUsername());
jsonCool.put("confirm_time", DateUtil.now());
coolTab.update(jsonCool);
}
}

View File

@@ -69,14 +69,13 @@ public class CallEmpReelTask extends AbstractAcsTask {
PointService point = SpringContextHolder.getBean(PointService.class);
// 校验起点是否存在
PointDto startDto = point.findByCode(start_point_code);
if (ObjectUtil.isEmpty(startDto)) throw new BadRequestException("未找到可用点位:" + startDto);
JSONObject jsonIvt = ivtTab.query("point_code ='" + start_point_code + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(jsonIvt)) throw new BadRequestException("未找到可用点位:" + start_point_code);
// 校验终点是否存在
PointDto nextDto = point.findByCode(jsonTask.getString("next_point_code"));
if (ObjectUtil.isEmpty(nextDto)) throw new BadRequestException("未找到可用点位:" + nextDto);
if (ObjectUtil.isEmpty(nextDto)) throw new BadRequestException("未找到可用点位:" + jsonTask.getString("next_point_code"));
// 更新冷却库存状态
JSONObject jsonIvt = ivtTab.query("point_code ='" + start_point_code + "'").uniqueResult(0);
jsonIvt.put("empty_point_status", "01");
ivtTab.update(jsonIvt);
}