This commit is contained in:
2022-12-23 09:23:38 +08:00
parent 3b5fd59978
commit 2f59a0e74d
22 changed files with 478 additions and 262 deletions

View File

@@ -66,5 +66,12 @@ public class AcsToWmsController {
return new ResponseEntity<>(acsToWmsService.deviceApply(jo), HttpStatus.OK);
}
@PostMapping("/process")
@Log("RCS上报密集库任务异常处理")
@ApiOperation("RCS上报密集库任务异常处理")
public ResponseEntity<Object> process(@RequestBody JSONObject jo) {
return new ResponseEntity<>(acsToWmsService.process(jo), HttpStatus.OK);
}
}

View File

@@ -60,4 +60,13 @@ public interface AcsToWmsService {
*/
JSONObject deviceApply(JSONObject whereJson);
/**
* ACS客户端--->LMS服务端
* RCS上报密集库任务异常处理
*
* @param whereJson 条件
* @return JSONObject
*/
JSONObject process(JSONObject whereJson);
}

View File

@@ -21,6 +21,7 @@ import org.nl.wms.sch.service.TaskService;
import org.nl.wms.sch.tasks.EmptyVehicleTask;
import org.nl.wms.sch.tasks.SendOutTask;
import org.nl.wms.st.inbill.service.RawAssistIStorService;
import org.nl.wms.st.inbill.service.StorPublicService;
import org.nl.wms.st.inbill.service.impl.RawAssistIStorServiceImpl;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
@@ -39,6 +40,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
private final PrintService printService;
private final RawAssistIStorService rawAssistIStorService;
private final StorPublicService storPublicService;
/**
* task_id任务标识
* task_code任务编码
@@ -319,7 +323,10 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
SendOutTask sendOutTask = new SendOutTask();
sendOutTask.createTask(task_jo);
}
return null;
JSONObject result = new JSONObject();
result.put("status", HttpStatus.OK.value());
result.put("message", "下发成功!");
return result;
}
@Override
@@ -334,6 +341,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
}
JSONObject result = new JSONObject();
result.put("status", HttpStatus.OK.value());
result.put("message", "反馈成功!");
JSONObject sub_jo = WQLObject.getWQLObject("").query("package_box_sn = '" + vehicle_code + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(sub_jo)) {
@@ -377,5 +386,69 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
return result;
}
@Override
public JSONObject process(JSONObject whereJson) {
String vehicle_code = whereJson.getString("vehicle_code");
String ext_task_id = whereJson.getString("ext_task_id");
String srcLocation = whereJson.getString("srcLocation");
String dtl_type = whereJson.getString("dtl_type");
log.info("ACS提示原货位" + srcLocation + "被占用,需要重新分配货位!");
//锁定原货位
HashMap unlock_map = new HashMap();
unlock_map.put("lock_type", "99");
unlock_map.put("taskdtl_type", "");
unlock_map.put("taskdtl_id", "");
unlock_map.put("task_code", "");
unlock_map.put("inv_type", "");
unlock_map.put("inv_id", "");
unlock_map.put("inv_code", "");
WQLObject.getWQLObject("sch_base_point").update(unlock_map, "point_code = '" + srcLocation + "'");
WQLObject.getWQLObject("ST_IVT_StructAttr").update(unlock_map, "struct_code = '" + srcLocation + "'");
JSONObject old_struct = WQLObject.getWQLObject("ST_IVT_StructAttr").query("struct_code = '" + srcLocation + "'").uniqueResult(0);
//根据木箱码和任务号查询对应的分配明细
JSONArray dis_rows = WQLObject.getWQLObject("ST_IVT_IOStorInvDis").query("box_no = '" + vehicle_code + "' AND task_id = '" + ext_task_id + "'").getResultJSONArray(0);
//查询一个新的货位
JSONObject str_jo = new JSONObject();
str_jo.put("box_no", vehicle_code);
str_jo.put("sect_id", "1582991348217286656");
JSONObject new_str = rawAssistIStorService.autoDis(str_jo);
JSONObject mst_jo = WQLObject.getWQLObject("ST_IVT_IOStorInv").query("iostorinv_id = '" + dis_rows.getJSONObject(0).getString("iostorinv_id") + "'").uniqueResult(0);
//更新分配数据
HashMap dis_map = new HashMap();
dis_map.put("struct_id", new_str.getString("struct_id"));
dis_map.put("struct_code", new_str.getString("struct_code"));
dis_map.put("struct_name", new_str.getString("struct_name"));
WQLObject.getWQLObject("ST_IVT_IOStorInvDis").update(dis_map, "box_no = '" + vehicle_code + "' AND task_id = '" + ext_task_id + "'");
//取消分配之前的货位
for (int i = 0; i < dis_rows.size(); i++) {
JSONObject i_form = new JSONObject();
JSONObject dis_row = dis_rows.getJSONObject(i);
i_form.put("struct_id", old_struct.getString("struct_id"));
i_form.put("material_id", dis_row.getString("material_id"));
i_form.put("quality_scode", dis_row.getString("quality_scode"));
i_form.put("pcsn", dis_row.getString("pcsn"));
i_form.put("ivt_level", dis_row.getString("ivt_level"));
i_form.put("change_qty", dis_row.getString("plan_qty"));
i_form.put("bill_type_scode", mst_jo.getString("bill_type"));
i_form.put("inv_id", mst_jo.getString("iostorinv_id"));
i_form.put("bill_code", mst_jo.getString("bill_code"));
i_form.put("bill_table", "ST_IVT_IOStorInv");
i_form.put("qty_unit_id", dis_row.getString("qty_unit_id"));
i_form.put("qty_unit_name", dis_row.getString("qty_unit_name"));
storPublicService.IOStor(i_form, "32");
i_form.put("struct_id", new_str.getString("struct_id"));
storPublicService.IOStor(i_form, "31");
}
JSONObject result = new JSONObject();
result.put("status", HttpStatus.OK.value());
result.put("message", "变更货位成功!");
result.put("srcLocation", old_struct.getString("struct_code"));
result.put("destLocation", new_str.getString("struct_code"));
result.put("dtl_type", "1");
return result;
}
}

View File

@@ -109,6 +109,7 @@ public class CrmToLmsServiceImpl implements CrmToLmsService {
String dateoffginbound = jo.getString("dateoffginbound");
String packageboxsn = jo.getString("packageboxsn");
String container_name = jo.getString("container_name");
String pcsn = jo.getString("pcsn");
HashMap map = new HashMap<>();
if (StrUtil.isNotEmpty(material_code)) {
@@ -150,6 +151,9 @@ public class CrmToLmsServiceImpl implements CrmToLmsService {
if (StrUtil.isNotEmpty(container_name)) {
map.put("container_name", container_name);
}
if (StrUtil.isNotEmpty(pcsn)) {
map.put("sap_pcsn", pcsn);
}
//将查询条件带入查询LMS成品库库存信息
JSONArray rows = WQL.getWO("QCRM_001").addParamMap(map).addParam("flag", "1").process().getResultJSONArray(0);

View File

@@ -13,12 +13,14 @@ import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.common.utils.SecurityUtils;
import org.nl.modules.system.service.impl.ParamServiceImpl;
import org.nl.modules.system.util.CodeUtil;
import org.nl.modules.wql.WQL;
import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.modules.wql.util.SpringContextHolder;
import org.nl.wms.ext.acs.service.impl.WmsToAcsServiceImpl;
import org.nl.wms.ext.mes.service.MesToLmsService;
import org.nl.wms.log.LokiLog;
import org.nl.wms.log.LokiLogType;
import org.nl.wms.pda.mps.service.InService;
import org.nl.wms.pda.mps.service.OutService;
import org.nl.wms.pda.mps.service.impl.BakingServiceImpl;
import org.nl.wms.sch.manage.AbstractAcsTask;
@@ -39,6 +41,8 @@ public class MesToLmsServiceImpl implements MesToLmsService {
private final OutService outService;
private final InService inService;
/**
* 生箔烘箱:
* 母卷批次创建信息发送智能物流MES生箔工序Move In
@@ -353,6 +357,7 @@ public class MesToLmsServiceImpl implements MesToLmsService {
String SplitBreadth = param.getString("SplitBreadth"); // 子卷幅宽
String SplitHeight = param.getString("SplitHeight"); // 子卷理论长度
String SplitWeight = param.getString("SplitWeight"); // 子卷理论重量
String Attribute2 = param.getString("Attribute2"); // 销售订单及行号
WQLObject tab = WQLObject.getWQLObject("PDM_BI_SlittingProductionPlan");
@@ -428,6 +433,7 @@ public class MesToLmsServiceImpl implements MesToLmsService {
json.put("split_breadth", SplitBreadth);
json.put("split_height", SplitHeight);
json.put("split_weight", SplitWeight);
json.put("sale_order_name", Attribute2);
json.put("start_time", DateUtil.now());
json.put("status", "01");
json.put("is_parent_ok", "0");
@@ -700,20 +706,52 @@ public class MesToLmsServiceImpl implements MesToLmsService {
}
}
if (ObjectUtil.isEmpty(up_rows) && ObjectUtil.isEmpty(down_rows)) {
throw new BadRequestException("分切机上轴、下轴不存在一个分切计划!");
}
//查询输送线上该分切机下一分切组可用的气涨轴
JSONObject group_jo = WQL.getWO("PDA_02").addParam("flag","14").addParam("resource_name",ResourceName).process().uniqueResult(0);
JSONArray del_rows = WQLObject.getWQLObject("pdm_bi_slittingproductionplan").query("resource_name = '"+ResourceName+"' AND split_group = '"+group_jo.getString("split_group")+"' AND (parent_container_name = '"+group_jo.getString("source_container_name")+"' OR parent_container_name = '"+group_jo.getString("source_container_name")+"')").getResultJSONArray(0);
if (up_rows.size() > 0) {
JSONObject jo = new JSONObject();
jo.put("point_code", up_point_code);
jo.put("cut_rows", up_rows);
if (del_rows.size() > 0) {
jo.put("is_last", "0");
} else {
jo.put("is_last", "1");
}
outService.confirm(jo);
}
if (down_rows.size() > 0) {
JSONObject jo = new JSONObject();
jo.put("point_code", down_point_code);
jo.put("cut_rows", down_rows);
if (del_rows.size() > 1) {
jo.put("is_last", "0");
} else {
jo.put("is_last", "1");
}
outService.confirm(jo);
}
if ((ObjectUtil.isEmpty(up_rows) || ObjectUtil.isEmpty(down_rows)) && del_rows.size() == 2) {
String point_code = "";
//分切机上只存在一个气涨轴,下一分切组存在两个气涨轴,执行一个进站
if (ObjectUtil.isEmpty(up_rows)) {
point_code = down_point_code;
}
if (ObjectUtil.isEmpty(down_rows)) {
point_code = up_point_code;
}
//查询当前输送线上可用的气涨轴
JSONObject del_row = WQLObject.getWQLObject("pdm_bi_slittingproductionplan").query("resource_name = '"+ResourceName+"' AND split_group = '"+group_jo.getString("split_group")+"' AND (parent_container_name = '"+group_jo.getString("source_container_name")+"' OR parent_container_name = '"+group_jo.getString("source_container_name")+"') AND status = '03'").uniqueResult(0);
JSONObject whereJson = new JSONObject();
whereJson.put("point_code",point_code);
whereJson.put("cut_rows",del_row);
inService.confirm(whereJson);
}
}
}
result.put("RTYPE", "S");
@@ -902,7 +940,8 @@ public class MesToLmsServiceImpl implements MesToLmsService {
change_jo.put("changeinv_id", changeinv_id);
change_jo.put("seq_no", detail_count + 1);
JSONObject mater_jo = WQLObject.getWQLObject("md_me_materialbase").query("material_code = '" + container_row.getString("product_name") + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(mater_jo)) throw new BadRequestException("物料不存在:"+container_row.getString("product_name"));
if (ObjectUtil.isEmpty(mater_jo))
throw new BadRequestException("物料不存在:" + container_row.getString("product_name"));
change_jo.put("material_id", mater_jo.getString("material_id"));
change_jo.put("pcsn", container_row.getString("container_name"));
change_jo.put("package_box_sn", container_row.getString("package_box_sn"));
@@ -917,7 +956,8 @@ public class MesToLmsServiceImpl implements MesToLmsService {
change_jo.put("isUnPackBox", isUnPackBox);
change_jo.put("UpdatedDateOfProduction", UpdatedDateOfProduction);
JSONObject unit = WQLObject.getWQLObject("md_pb_measureunit").query("measure_unit_id = '" + mater_jo.getString("base_unit_id") + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(unit)) throw new BadRequestException("计量单位不存在:"+mater_jo.getString("base_unit_id"));
if (ObjectUtil.isEmpty(unit))
throw new BadRequestException("计量单位不存在:" + mater_jo.getString("base_unit_id"));
change_jo.put("qty_unit_id", mater_jo.getString("base_unit_id"));
change_jo.put("qty_unit_name", unit.getString("unit_name"));
change_jo.put("qty", container_row.getString("net_weight"));

View File

@@ -180,6 +180,7 @@ public class SapToLmsServiceImpl implements SapToLmsService {
jsonDtl.put("source_bill_code", json.getString("VGBEL-VGPOS"));
jsonDtl.put("vbeln", json.getString("VBELN")); // 来源交货单
jsonDtl.put("posnr", json.getString("POSNR")); // 来源交货单行
jsonDtl.put("posnr", json.getString("POSNR")); // 幅宽
tableData.add(jsonDtl);
}
if (StrUtil.equals(lfart, "ZLR")) {

View File

@@ -22,6 +22,7 @@
输入.dateoffginbound TYPEAS s_string
输入.warehouse_code TYPEAS s_string
输入.customerdescription TYPEAS s_string
输入.sap_pcsn TYPEAS s_string
输入.container_name TYPEAS s_string
输入.width TYPEAS f_string
@@ -102,6 +103,9 @@
ENDOPTION
OPTION 输入.container_name <> ""
sub.container_name = 输入.container_name
ENDOPTION
OPTION 输入.sap_pcsn <> ""
sub.sap_pcsn = 输入.sap_pcsn
ENDOPTION
ENDSELECT
ENDQUERY

View File

@@ -24,6 +24,7 @@
输入.device_code TYPEAS s_string
输入.container_name TYPEAS s_string
输入.source_container_name TYPEAS s_string
输入.resource_name TYPEAS s_string
[临时表]
@@ -427,6 +428,37 @@
ENDQUERY
ENDIF
IF 输入.flag = "14"
QUERY
SELECT
*
FROM
(
SELECT
plan.resource_name,
plan.split_group,
( CASE WHEN plan.order_type = '1' THEN parent_container_name WHEN plan.order_type = '2' THEN restruct_container_name END ) AS source_container_name
FROM
st_ivt_deliverypointivt ivt
INNER JOIN pdm_bi_slittingproductionplan plan ON plan.qzzno = ivt.qzzno
LEFT JOIN st_ivt_cutpointivt cut ON cut.ext_code = plan.resource_name
WHERE
ivt.point_status = '03'
AND plan.`status` = '03'
AND plan.resource_name = 输入.resource_name
ORDER BY
plan.manufacture_sort,
split_group
) a
GROUP BY
resource_name,
split_group,
source_container_name
LIMIT 1
ENDSELECT
ENDQUERY
ENDIF

View File

@@ -51,6 +51,7 @@ public class CoolPointIvtServiceImpl implements CoolPointIvtService {
map.put("is_used", whereJson.get("is_used"));
map.put("begin_time", whereJson.get("begin_time"));
map.put("end_time", whereJson.get("end_time"));
map.put("point_location",whereJson.get("point_location"));
JSONObject json = WQL.getWO("ST_IVT_COOLPOINTIVT").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "product_area,point_code");
return json;
}

View File

@@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSON;
import lombok.RequiredArgsConstructor;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.wql.WQL;
import org.nl.wms.ext.mes.service.LmsToMesService;
import org.nl.wms.pdm.service.SlittingproductionplanService;
import org.nl.wms.pdm.service.dto.SlittingproductionplanDto;
import org.springframework.stereotype.Service;
@@ -40,6 +41,8 @@ import cn.hutool.core.util.ObjectUtil;
@Slf4j
public class SlittingproductionplanServiceImpl implements SlittingproductionplanService {
private final LmsToMesService lmsToMesService;
@Override
public Map<String, Object> queryAll(Map whereJson, Pageable page) {
String order_type = MapUtil.getStr(whereJson, "order_type");
@@ -167,6 +170,7 @@ public class SlittingproductionplanServiceImpl implements Slittingproductionplan
WQLObject tab = WQLObject.getWQLObject("PDM_BI_SlittingProductionPlan");
for (int i = 0; i < data.size(); i++) {
JSONObject mom_jo = new JSONObject();
JSONObject json = data.getJSONObject(i);
JSONObject jsonObject = tab.query("workorder_id = '" + json.getString("workorder_id") + "'").uniqueResult(0);
HashMap map = new HashMap<>();
@@ -176,10 +180,20 @@ public class SlittingproductionplanServiceImpl implements Slittingproductionplan
map.put("update_time",DateUtil.now());
if (jsonObject.getString("order_type").equals("1")){
tab.update(map,"parent_container_name = '"+json.getString("parent_container_name")+"'");
mom_jo.put("contain_name",json.getString("contain_name"));
mom_jo.put("warehouse","1");
}else {
tab.update(map,"restruct_container_name = '"+json.getString("restruct_container_name")+"'");
mom_jo.put("container_name", json.getString("contain_name"));
mom_jo.put("package_box_sn", json.getString("package_box_sn"));
mom_jo.put("warehouse", "3");
}
//判断该接口是否需要回传
JSONObject back_jo = WQLObject.getWQLObject("MD_PB_InterfaceBack").query("interface_name = 'momRollSemiFGInboundComplete'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(back_jo) && back_jo.getString("is_back").equals("1")){
lmsToMesService.cutPlanMomRollDeliveryComplete(mom_jo);
}
}
}
@@ -200,6 +214,16 @@ public class SlittingproductionplanServiceImpl implements Slittingproductionplan
jsonObject.put("update_optname",currentUsername);
jsonObject.put("update_time",DateUtil.now());
tab.update(jsonObject);
//调用MES接口通知MES已经套轴完成
JSONObject jo = new JSONObject();
jo.put("container_name", jsonObject.getString("container_name"));
//判断该接口是否需要回传
JSONObject back_jo = WQLObject.getWQLObject("MD_PB_InterfaceBack").query("interface_name = 'airSwellWithPaperTubeAssComplete'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(back_jo) && back_jo.getString("is_back").equals("1")) {
lmsToMesService.airSwellWithPaperTubeAssComplete(jo);
}
}
}

View File

@@ -28,6 +28,7 @@
输入.pcsn TYPEAS s_string
输入.vehicle_code TYPEAS s_string
输入.bill_status TYPEAS s_string
输入.point_location TYPEAS s_string
[临时表]
@@ -80,6 +81,9 @@
OPTION 输入.is_used <> ""
is_used = 输入.is_used
ENDOPTION
OPTION 输入.is_used <> ""
point_location = 输入.point_location
ENDOPTION
OPTION 输入.begin_time <> ""
instorage_time >= 输入.begin_time
ENDOPTION

View File

@@ -55,6 +55,8 @@ public class CutTrussTask extends AbstractAcsTask {
.task_type(json.getString("acs_task_type"))
.start_device_code(json.getString("point_code1"))
.next_device_code(json.getString("point_code2"))
.start_device_code2(json.getString("point_code3"))
.next_device_code2(json.getString("point_code4"))
.vehicle_code(json.getString("vehicle_code"))
.agv_system_type(agv_system_type)
.priority(json.getString("priority"))

View File

@@ -553,22 +553,6 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService {
transfer = false;
}
if (transfer) {
//创建任务
AbstractAcsTask task = new InTask();
JSONObject task_form = new JSONObject();
task_form.put("task_type", "03");
task_form.put("taskdtl_type", "04");
task_form.put("start_point_code", map.get("point_code"));
task_form.put("next_point_code", struct_code);
task_form.put("storagevehicle_id", map.get("storagevehicle_id"));
task_form.put("vehicle_code", map.get("storagevehicle_code"));
task_form.put("storagevehicle_type", map.get("storagevehicle_type"));
task_form.put("task_id", map.get("task_id"));
String task_id = task.createTask(task_form);
dis_map.put("task_id", map.get("task_id"));
dis_map.put("work_status", "01");
} else {
//创建任务
AbstractAcsTask task = new InTask();
JSONObject task_form = new JSONObject();
@@ -596,7 +580,6 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService {
dis_map.put("task_id", task_id);
dis_map.put("work_status", "01");
}
}
WQLObject.getWQLObject("ST_IVT_IOStorInvDis").update(dis_map, "iostorinv_id = '" + map.get("iostorinv_id") + "' AND box_no = '" + map.get("box_no") + "'");
@@ -747,8 +730,7 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService {
//创建任务
AbstractAcsTask task = new InTask();
JSONObject task_form = new JSONObject();
task_form.put("task_type", "01");
task_form.put("taskdtl_type", "01");
task_form.put("task_type", "010501");
task_form.put("start_device_code", point_code);
task_form.put("next_device_code", ios_dis.getString("struct_code"));
task_form.put("vehicle_code", map.get("box_no"));
@@ -858,7 +840,7 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService {
//根据分切计划查询该订单物料大概还有多少未入
row_map.put("flag", "12");
JSONArray plan_rows = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParamMap(row_map).process().getResultJSONArray(0);
int box_num = (int) Math.ceil(plan_rows.size() / 3);
int box_num = (int) Math.ceil(plan_rows.size() / 2);
//查询数量与订单物料箱子数量相近的一排
JSONObject empty_row = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParam("sect_id", sect_id).addParam("flag", "13").addParam("sql_str", " ORDER BY abs(" + box_num + "-a.struct_num)").process().uniqueResult(0);

View File

@@ -459,7 +459,12 @@ public class StorPublicServiceImpl implements StorPublicService {
map.put("inv_id","");
map.put("inv_code","");
map.put("point_status","1");
map.put("storagevehicle_code","");
if (!from.getString("is_free").equals("1") && StrUtil.isNotEmpty(storagevehicle_code)){
map.put("storagevehicle_code",storagevehicle_code);
map.put("storagevehicle_qty","1");
map.put("vehicle_code",storagevehicle_code);
map.put("point_status","01");
}
wo_Struct.update(map,"struct_id = '"+jo.getString("struct_id")+"'");
wo_Point.update(map,"point_id = '"+jo.getString("point_id")+"'");
}else{//锁定

View File

@@ -468,6 +468,9 @@
IFNULL( sub.container_name, '' ) = ''
AND
plan.is_delete = '0'
OPTION 输入.sale_order_name <> ""
plan.sale_order_name = 输入.sale_order_name
ENDOPTION
ENDSELECT
ENDQUERY
ENDIF

View File

@@ -17,8 +17,6 @@ import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.modules.wql.util.WqlUtil;
import org.nl.wms.basedata.st.service.impl.UserStorServiceImpl;
import org.nl.wms.sch.manage.TaskStatusEnum;
import org.nl.wms.sch.tasks.OutTask;
import org.nl.wms.st.inbill.service.CheckOutBillService;
import org.nl.wms.st.inbill.service.StorPublicService;
import org.nl.wms.st.instor.service.HandMoveStorService;
import org.nl.wms.st.instor.task.HandMoveStorAcsTask;
@@ -253,8 +251,7 @@ public class HandMoveStorServiceImpl implements HandMoveStorService {
task.put("taskdtl_id", task_id);
task.put("task_id", task_id);
task.put("task_code", task_code);
task.put("task_type", "05");
task.put("taskdtl_type", "07");
task.put("task_type", "010505");
task.put("task_status", "01");
task.put("point_code1", jo.getString("start_point_code"));
task.put("point_code2", point.getString("point_code"));
@@ -711,7 +708,7 @@ public class HandMoveStorServiceImpl implements HandMoveStorService {
JSONObject jo = ja.getJSONObject(i);
//删除任务
HashMap<String, String> task_map = new HashMap<>();
task_map.put("task_status", "99");
task_map.put("task_status", "07");
task_map.put("update_optid", currentUserId + "");
task_map.put("update_optname", nickName);
task_map.put("update_time", now);
@@ -978,7 +975,7 @@ public class HandMoveStorServiceImpl implements HandMoveStorService {
for (int i = 0; i < ja.size(); i++) {
JSONObject jo = ja.getJSONObject(i);
String task_id = jo.getString("task_id");
JSONObject result = handMoveStorAcsTask.notifyAcs(task_id);
JSONObject result = handMoveStorAcsTask.immediateNotifyAcs(task_id);
JSONObject task = wo_Task.query("task_id='" + task_id + "'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(result)) {
String status = result.getString("status");

View File

@@ -1479,7 +1479,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
// 创建任务
JSONObject param = new JSONObject();
param.put("task_type", "010301");
param.put("task_type", "010503");
param.put("vehicle_code", dis.getString("box_no"));
param.put("task_name", "task_name");
param.put("point_code1", jsonPoint1.getString("point_code"));
@@ -1620,7 +1620,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
// 生成任务
JSONObject param2 = new JSONObject();
param2.put("task_type", "010301");
param2.put("task_type", "010503");
param2.put("vehicle_code", json.getString("storagevehicle_code"));
param2.put("task_name", "task_name");
param2.put("point_code1", json.getString("point_code"));
@@ -1739,7 +1739,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
// 生成任务
JSONObject param2 = new JSONObject();
param2.put("task_type", "010301");
param2.put("task_type", "010503");
param2.put("vehicle_code", json.getString("storagevehicle_code"));
param2.put("task_name", "task_name");
param2.put("point_code1", json.getString("point_code"));

View File

@@ -142,6 +142,10 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
}
param.put("Details", details);
new LmsToMesServiceImpl().lmsPackage(param);
jo_mst.put("upload_mes", "1");
jo_mst.put("is_upload", "1");
WQLObject.getWQLObject("ST_IVT_IOStorInv").update(jo_mst);
}
// 拆分出库回传mes
@@ -162,6 +166,10 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
}
param.put("Details", details);
new LmsToMesServiceImpl().lmsUnPackage(param);
jo_mst.put("upload_mes", "1");
jo_mst.put("is_upload", "1");
WQLObject.getWQLObject("ST_IVT_IOStorInv").update(jo_mst);
}
// 销售出库
@@ -634,6 +642,10 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
}
param.put("Details", details);
new LmsToMesServiceImpl().lmsPackage(param);
jo_mst.put("upload_mes", "1");
jo_mst.put("is_upload", "1");
WQLObject.getWQLObject("ST_IVT_IOStorInv").update(jo_mst);
}
// 拆分出库回传mes
@@ -654,6 +666,10 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
}
param.put("Details", details);
new LmsToMesServiceImpl().lmsUnPackage(param);
jo_mst.put("upload_mes", "1");
jo_mst.put("is_upload", "1");
WQLObject.getWQLObject("ST_IVT_IOStorInv").update(jo_mst);
}
// 销售出库

View File

@@ -82,6 +82,23 @@
/>
</el-select>
</el-form-item>
<el-form-item label="生产位置">
<el-select
v-model="query.point_location"
clearable
filterable
size="mini"
class="filter-item"
style="width: 185px;"
@change="hand"
>
<el-option
v-for="item in dict.point_location"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="库存状态">
<el-select
v-model="query.cool_ivt_status"
@@ -225,7 +242,6 @@
</template>
</el-table-column>
<el-table-column prop="container_name" label="母卷号" :min-width="flexWidth('container_name',crud.data,'母卷号')" />
<el-table-column prop="full_vehicle_code" label="母卷轴编号" :min-width="flexWidth('full_vehicle_code',crud.data,'母卷轴编号')" />
<el-table-column prop="empty_point_code" label="空轴位" :min-width="flexWidth('empty_point_code',crud.data,'空轴位')" />
<el-table-column prop="empty_point_status" label="空轴位状态" min-width="100" show-overflow-tooltip>
<template slot-scope="scope">
@@ -233,12 +249,6 @@
</template>
</el-table-column>
<el-table-column prop="empty_vehicle_code" label="空轴编号" />
<el-table-column prop="is_used" label="是否启用">
<template slot-scope="scope">
{{ dict.label.is_used[scope.row.is_used] }}
</template>
</el-table-column>
<el-table-column prop="pcsn" label="批次" :min-width="flexWidth('pcsn',crud.data,'批次')" />
<el-table-column prop="ivt_qty" label="库存数" :formatter="crud.formatNum3" />
<el-table-column prop="qty_unit_name" label="计量单位" />
<el-table-column prop="instorage_time" label="入库时间" min-width="140" show-overflow-tooltip />
@@ -252,6 +262,11 @@
{{ dict.label.point_location[scope.row.point_location] }}
</template>
</el-table-column>
<el-table-column prop="is_used" label="是否启用">
<template slot-scope="scope">
{{ dict.label.is_used[scope.row.is_used] }}
</template>
</el-table-column>
<el-table-column prop="remark" label="备注" />
<el-table-column prop="update_time" label="修改时间" min-width="150" show-overflow-tooltip />
<el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right">

View File

@@ -160,18 +160,12 @@
<el-table-column type="selection" width="55" />
<el-table-column prop="point_code" label="点位编码" width="100px" show-overflow-tooltip />
<el-table-column prop="full_point_code" label="满轴位" width="110px" show-overflow-tooltip />
<el-table-column prop="is_used" label="是否启用">
<template slot-scope="scope">
{{ dict.label.is_used[scope.row.is_used] }}
</template>
</el-table-column>
<el-table-column prop="full_point_status" label="满轴位状态" min-width="100" show-overflow-tooltip>
<template slot-scope="scope">
{{ dict.label.sch_full_point_status[scope.row.full_point_status] }}
</template>
</el-table-column>
<el-table-column prop="container_name" label="母卷号" width="150px" show-overflow-tooltip />
<el-table-column prop="full_vehicle_code" label="母卷轴编号" min-width="100" show-overflow-tooltip />
<el-table-column prop="empty_point_code" label="空轴位" width="120px" show-overflow-tooltip />
<el-table-column prop="empty_point_status" label="空轴位状态" min-width="100" show-overflow-tooltip>
<template slot-scope="scope">
@@ -186,6 +180,11 @@
{{ dict.label.point_location[scope.row.point_location] }}
</template>
</el-table-column>
<el-table-column prop="is_used" label="是否启用">
<template slot-scope="scope">
{{ dict.label.is_used[scope.row.is_used] }}
</template>
</el-table-column>
<el-table-column prop="remark" label="备注" />
<el-table-column prop="update_time" label="修改时间" min-width="150" show-overflow-tooltip />
<el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right">

View File

@@ -153,20 +153,13 @@
<!--表格渲染-->
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
<el-table-column type="selection" width="55" />
<el-table-column prop="point_code" width="160px" show-overflow-tooltip label="点位编码" />
<el-table-column prop="point_code" width="120px" show-overflow-tooltip label="点位编码" />
<el-table-column prop="point_status" label="点位状态">
<template slot-scope="scope">
{{ dict.label.sch_hot_point_status[scope.row.point_status] }}
</template>
</el-table-column>
<el-table-column prop="is_used" label="是否启用">
<template slot-scope="scope">
{{ dict.label.is_used[scope.row.is_used] }}
</template>
</el-table-column>
<el-table-column prop="container_name" label="母卷号" width="150px" show-overflow-tooltip />
<el-table-column prop="full_vehicle_code" label="母卷轴编码" min-width="100" show-overflow-tooltip />
<el-table-column prop="pcsn" label="批次" show-overflow-tooltip />
<el-table-column prop="ivt_qty" label="库存数" :formatter="crud.formatNum3" />
<el-table-column prop="instorage_time" label="入箱时间" width="150px" show-overflow-tooltip />
<el-table-column prop="product_area" label="生产区域">
@@ -176,12 +169,17 @@
</el-table-column>
<el-table-column prop="temperature" label="温度" />
<el-table-column prop="group_name" label="组别" />
<el-table-column prop="ext_code" label="外部编码" width="100" />
<el-table-column prop="ext_code" label="外部编码" width="130" />
<el-table-column prop="point_location" label="位置">
<template slot-scope="scope">
{{ dict.label.point_location[scope.row.point_location] }}
</template>
</el-table-column>
<el-table-column prop="is_used" label="是否启用">
<template slot-scope="scope">
{{ dict.label.is_used[scope.row.is_used] }}
</template>
</el-table-column>
<el-table-column prop="remark" label="备注" />
<el-table-column prop="update_time" label="修改时间" min-width="150" show-overflow-tooltip />
<el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right">