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任务编码
@@ -62,8 +66,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
//1:执行中,2:完成 ,3:acs取消
String acs_task_status = row.getString("task_status");
String car_no = row.getString("car_no");
if (StrUtil.isNotEmpty(car_no)){
taskObj.put("car_no",car_no);
if (StrUtil.isNotEmpty(car_no)) {
taskObj.put("car_no", car_no);
WQLObject.getWQLObject("SCH_BASE_Task").update(taskObj);
}
String message = "";
@@ -194,21 +198,21 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
* 3.空盘出库任务
* 4.出库口申请入发货区任务
*/
if (type.equals("1")){
if (type.equals("1")) {
//通过该木箱码查询对应的分配明细
JSONArray dis_rows = WQLObject.getWQLObject("st_ivt_iostorinvdis").query("work_status = '00' AND box_no = '"+vehicle_code+"'").getResultJSONArray(0);
if (ObjectUtil.isEmpty(dis_rows)){
throw new BadRequestException("未查询到木箱:"+vehicle_code+"相关入库分配明细记录!");
JSONArray dis_rows = WQLObject.getWQLObject("st_ivt_iostorinvdis").query("work_status = '00' AND box_no = '" + vehicle_code + "'").getResultJSONArray(0);
if (ObjectUtil.isEmpty(dis_rows)) {
throw new BadRequestException("未查询到木箱:" + vehicle_code + "相关入库分配明细记录!");
}
Map map = new HashMap();
map.put("tableMater",dis_rows);
map.put("point_code",device_code);
map.put("checked",true);
map.put("auto_issue","1");
map.put("tableMater", dis_rows);
map.put("point_code", device_code);
map.put("checked", true);
map.put("auto_issue", "1");
//自动分配货位并下发任务
rawAssistIStorService.divStruct(map);
}
if (type.equals("2")){
if (type.equals("2")) {
//查询一个可用的空载具点位并下发给ACS
/*
* 1、优先存放空托盘区、托盘号默认99999空托盘区没有位置再找空巷道或者空巷道有空位置的货位。
@@ -217,7 +221,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
b、没有则优先找空的巷道按空位置顺序分配
3、任务下发判断巷道的任务类型只能为空盘入库或者无任务类型
* */
JSONObject empty_row = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParam("flag","21").process().uniqueResult(0);
JSONObject empty_row = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParam("flag", "21").process().uniqueResult(0);
JSONObject struct_jo = new JSONObject();
if (ObjectUtil.isNotEmpty(empty_row)) {
@@ -231,15 +235,15 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
struct_jo = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num + "'AND placement_type = '" + placement_type + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') = '' order by out_order_seq").uniqueResult(0);
}
}
if (ObjectUtil.isEmpty(struct_jo)){
if (ObjectUtil.isEmpty(struct_jo)) {
throw new BadRequestException("未查询到可用的空载具存放点位!");
}
JSONObject task_jo = new JSONObject();
task_jo.put("point_code1",device_code);
task_jo.put("point_code2",struct_jo.getString("struct_code"));
task_jo.put("task_type","010502");
task_jo.put("vehicle_code",vehicle_code);
task_jo.put("point_code1", device_code);
task_jo.put("point_code2", struct_jo.getString("struct_code"));
task_jo.put("task_type", "010502");
task_jo.put("vehicle_code", vehicle_code);
EmptyVehicleTask task = new EmptyVehicleTask();
task.createTask(task_jo);
@@ -249,7 +253,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
point_table.update(map, "point_code = '" + struct_jo.getString("struct_code") + "'");
struct_table.update(map, "struct_code = '" + struct_jo.getString("struct_code") + "'");
}
if (type.equals("3")){
if (type.equals("3")) {
//查询一个可用的空载具点位并下发给ACS
/*
* 1、优先存放空托盘区、托盘号默认99999空托盘区没有位置再找空巷道或者空巷道有空位置的货位。
@@ -258,7 +262,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
b、没有则优先找空的巷道按空位置顺序分配
3、任务下发判断巷道的任务类型只能为空盘入库或者无任务类型
* */
JSONObject empty_row = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParam("flag","22").process().uniqueResult(0);
JSONObject empty_row = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParam("flag", "22").process().uniqueResult(0);
JSONObject struct_jo = new JSONObject();
if (ObjectUtil.isNotEmpty(empty_row)) {
@@ -272,15 +276,15 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
struct_jo = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num + "'AND placement_type = '" + placement_type + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') = '' order by out_order_seq desc").uniqueResult(0);
}
}
if (ObjectUtil.isEmpty(struct_jo)){
if (ObjectUtil.isEmpty(struct_jo)) {
throw new BadRequestException("未查询到可用的空载具!");
}
JSONObject task_jo = new JSONObject();
task_jo.put("point_code1",struct_jo.getString("struct_code"));
task_jo.put("point_code2",device_code);
task_jo.put("task_type","010504");
task_jo.put("vehicle_code",struct_jo.getString("vehicle_code"));
task_jo.put("point_code1", struct_jo.getString("struct_code"));
task_jo.put("point_code2", device_code);
task_jo.put("task_type", "010504");
task_jo.put("vehicle_code", struct_jo.getString("vehicle_code"));
EmptyVehicleTask task = new EmptyVehicleTask();
task.createTask(task_jo);
@@ -290,64 +294,69 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
point_table.update(map, "point_code = '" + struct_jo.getString("struct_code") + "'");
struct_table.update(map, "struct_code = '" + struct_jo.getString("struct_code") + "'");
}
if (type.equals("4")){
if (type.equals("4")) {
//查询该木箱对应的包装关系
JSONObject sub_jo = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("package_box_sn = '"+vehicle_code+"'").uniqueResult(0);
if (ObjectUtil.isEmpty(sub_jo)){
JSONObject sub_jo = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("package_box_sn = '" + vehicle_code + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(sub_jo)) {
throw new BadRequestException("未查询到该木箱对应的包装关系!");
}
String sale_order_name = sub_jo.getString("sale_order_name");
//查询是否存在可用的空位
JSONObject jo = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParam("flag","19").addParam("sale_order_name",sale_order_name).process().uniqueResult(0);
if (ObjectUtil.isEmpty(jo)){
JSONObject jo = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParam("flag", "19").addParam("sale_order_name", sale_order_name).process().uniqueResult(0);
if (ObjectUtil.isEmpty(jo)) {
//查询新的一排
JSONObject point_jo = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParam("flag","20").process().uniqueResult(0);
if (ObjectUtil.isEmpty(point_jo)){
JSONObject point_jo = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParam("flag", "20").process().uniqueResult(0);
if (ObjectUtil.isEmpty(point_jo)) {
throw new BadRequestException("未查询到相同销售订单的放货区点位或空的一排!");
}else {
jo = WQLObject.getWQLObject("sch_base_point").query("row_num = '"+point_jo.getString("row_num")+"' AND point_type ='9' AND is_delete = '0'").uniqueResult(0);
} else {
jo = WQLObject.getWQLObject("sch_base_point").query("row_num = '" + point_jo.getString("row_num") + "' AND point_type ='9' AND is_delete = '0'").uniqueResult(0);
}
}
//创建任务
JSONObject task_jo = new JSONObject();
task_jo.put("point_code1",device_code);
task_jo.put("point_code2",jo.getString("point_cde"));
task_jo.put("vehicle_code",vehicle_code);
task_jo.put("task_type","010506");
task_jo.put("point_code1", device_code);
task_jo.put("point_code2", jo.getString("point_cde"));
task_jo.put("vehicle_code", vehicle_code);
task_jo.put("task_type", "010506");
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
public JSONObject deviceApply(JSONObject whereJson) {
String vehicle_code = whereJson.getString("vehicle_code");
String type = whereJson.getString("type");
if (StrUtil.isEmpty(vehicle_code)){
if (StrUtil.isEmpty(vehicle_code)) {
throw new BadRequestException("木箱码不能为空!");
}
if (StrUtil.isEmpty(type)){
if (StrUtil.isEmpty(type)) {
throw new BadRequestException("任务类型不能为空!");
}
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)){
JSONObject sub_jo = WQLObject.getWQLObject("").query("package_box_sn = '" + vehicle_code + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(sub_jo)) {
throw new BadRequestException("未查询到该木箱对应的包装关系!");
}
if (type.equals("1")){
if (type.equals("1")) {
//贴标申请
String print_type = sub_jo.getString("print_type");
if (StrUtil.isEmpty(print_type)){
if (StrUtil.isEmpty(print_type)) {
throw new BadRequestException("请指定一台打印机进行打印!");
}
String print_code = "";
switch (print_type){
switch (print_type) {
case "1":
print_code = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("print_device1").getValue();
break;
@@ -357,25 +366,89 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
default:
throw new BadRequestException("未查询到对应打印机!");
}
JSONObject print_info = WQLObject.getWQLObject("pdm_bi_printinfo").query("print_name = '"+print_code+"'").uniqueResult(0);
JSONObject print_info = WQLObject.getWQLObject("pdm_bi_printinfo").query("print_name = '" + print_code + "'").uniqueResult(0);
JSONObject print_jo = new JSONObject();
print_jo.put("box_no",vehicle_code);
print_jo.put("print_type",print_info.getString("print_id"));
print_jo.put("box_no", vehicle_code);
print_jo.put("print_type", print_info.getString("print_id"));
printService.customerPrint(print_jo);
}else if (type.equals("2")){
} else if (type.equals("2")) {
//捆扎申请
String box_length = sub_jo.getString("box_length");
String box_width = sub_jo.getString("box_width");
String box_high = sub_jo.getString("box_high");
result.put("box_length",box_length);
result.put("box_width",box_width);
result.put("box_high",box_high);
result.put("bundle_times",2);
}else {
result.put("box_length", box_length);
result.put("box_width", box_width);
result.put("box_high", box_high);
result.put("bundle_times", 2);
} else {
throw new BadRequestException("请输入正确的任务类型!");
}
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");
@@ -470,7 +476,7 @@ public class MesToLmsServiceImpl implements MesToLmsService {
String is_mesTolms = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("is_mesTolms").getValue();
if (StrUtil.equals(is_mesTolms, "1")) {
String Attribute1 = param.getString("Attribute1");
if (Attribute1.equals("0")){
if (Attribute1.equals("0")) {
result.put("RTYPE", "S");
result.put("RTMSG", "操作成功!");
result.put("RTOAL", 1);
@@ -591,9 +597,9 @@ public class MesToLmsServiceImpl implements MesToLmsService {
JSONObject mst_jo = new JSONObject();
mst_jo.put("biz_date", DateUtil.now());
mst_jo.put("bill_type", "1003");
mst_jo.put("stor_id",struct.getString("stor_id"));
mst_jo.put("stor_code",struct.getString("stor_code"));
mst_jo.put("stor_name",struct.getString("stor_name"));
mst_jo.put("stor_id", struct.getString("stor_id"));
mst_jo.put("stor_code", struct.getString("stor_code"));
mst_jo.put("stor_name", struct.getString("stor_name"));
mst_jo.put("total_qty", "0");
mst_jo.put("bill_status", "10");
@@ -614,7 +620,7 @@ public class MesToLmsServiceImpl implements MesToLmsService {
dtl.put("qty_unit_id", unit.getString("measure_unit_id"));
dtl.put("qty_unit_name", unit.getString("unit_name"));
dtl.put("plan_qty", sub_jo.getString("net_weight"));
dtl.put("source_billdtl_id",plan_jo.getString("workorder_id"));
dtl.put("source_billdtl_id", plan_jo.getString("workorder_id"));
rows.add(dtl);
mst_jo.put("tableData", rows);
mst_jo.put("user", "mes");
@@ -667,7 +673,7 @@ public class MesToLmsServiceImpl implements MesToLmsService {
JSONObject row = param.getJSONObject(i);
JSONObject plan_jo = WQLObject.getWQLObject("pdm_bi_slittingproductionplan").query("container_name = '" + row.getString("ContainerGroup") + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(plan_jo)) {
throw new BadRequestException("未查询到分切计划:"+row.getString("ContainerGroup"));
throw new BadRequestException("未查询到分切计划:" + row.getString("ContainerGroup"));
}
plan_jo.put("status", "05");
WQLObject.getWQLObject("pdm_bi_slittingproductionplan").update(plan_jo);
@@ -678,7 +684,7 @@ public class MesToLmsServiceImpl implements MesToLmsService {
String ResourceName = param.getJSONObject(0).getString("ResourceName");
JSONObject cut_jo = WQLObject.getWQLObject("ST_IVT_CutPointIvt").query("ext_code = '" + ResourceName + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(cut_jo)) {
throw new BadRequestException("分切点位库存不存在:"+ResourceName);
throw new BadRequestException("分切点位库存不存在:" + ResourceName);
}
String up_point_code = cut_jo.getString("up_point_code");
String down_point_code = cut_jo.getString("down_point_code");
@@ -690,7 +696,7 @@ public class MesToLmsServiceImpl implements MesToLmsService {
//查询对应的分切计划
JSONObject plan_jo = WQLObject.getWQLObject("pdm_bi_slittingproductionplan").query("container_name = '" + row.getString("ContainerGroup") + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(plan_jo)) {
throw new BadRequestException("未查询到分切计划:"+row.getString("ContainerGroup"));
throw new BadRequestException("未查询到分切计划:" + row.getString("ContainerGroup"));
}
if (row.getString("ContainerPosition").equals("1")) {
up_rows.add(plan_jo);
@@ -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);
jo.put("is_last", "0");
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);
jo.put("is_last", "0");
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");
@@ -748,7 +786,7 @@ public class MesToLmsServiceImpl implements MesToLmsService {
try {
// String is_mesTolms = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("is_mesTolms").getValue();
// if (StrUtil.equals(is_mesTolms, "1")) {
String isUnPlanProductionBox = param.getString("isUnPlanProductionBox"); // 是否计划外子卷
String QuanlityInBox = param.getString("QuanlityInBox"); // 产品编码
String QualityGuaranPeriod = param.getString("QualityGuaranPeriod"); // 保质期
@@ -799,13 +837,13 @@ public class MesToLmsServiceImpl implements MesToLmsService {
jo.put("box_high", box_high);
jo.put("quanlity_in_box", QuanlityInBox);
if (StrUtil.equals(BoxWeight, "0")) {
BoxWeight2 = NumberUtil.add(BoxWeight2,NetWeight).toString();
BoxWeight2 = NumberUtil.add(BoxWeight2, NetWeight).toString();
}
jo.put("box_weight", BoxWeight);
if (QualityGuaranPeriod.equals("0天")){
if (QualityGuaranPeriod.equals("0天")) {
jo.put("quality_guaran_period", "90天");
}else {
} else {
jo.put("quality_guaran_period", QualityGuaranPeriod);
}
@@ -826,8 +864,8 @@ public class MesToLmsServiceImpl implements MesToLmsService {
jo.put("un_plan_product_property1", UnPlanProductProperty1);
jo.put("un_plan_product_property2", UnPlanProductProperty2);
jo.put("un_plan_product_property3", UnPlanProductProperty3);
jo.put("width_standard",width_standard);
jo.put("thickness_request",thickness_request);
jo.put("width_standard", width_standard);
jo.put("thickness_request", thickness_request);
jo.put("status", "0");
jo.put("create_id", "1");
jo.put("create_name", "管理员");
@@ -842,7 +880,7 @@ public class MesToLmsServiceImpl implements MesToLmsService {
map.put("box_weight", String.valueOf(BoxWeight));
}
tab.update(map,"package_box_sn = '"+PackageBoxSN+"'");
tab.update(map, "package_box_sn = '" + PackageBoxSN + "'");
}
// }
result.put("RTYPE", "S");
@@ -876,101 +914,103 @@ public class MesToLmsServiceImpl implements MesToLmsService {
// String is_mesTolms = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("is_mesTolms").getValue();
// if (StrUtil.equals(is_mesTolms, "1")) {
try {
JSONArray rows = param.getJSONArray("details");
String SaleOrderItem = param.getString("SaleOrderItem");
String CustomerName = param.getString("CustomerName");
String DemandDate = param.getString("DemandDate");
double total_qty = 0;
double detail_count = 0;
String changeinv_id = IdUtil.getSnowflake(1, 1).nextId() + "";
if (ObjectUtil.isEmpty(rows) || rows.size() == 0) {
throw new BadRequestException("item长度不能为0");
}
for (int i = 0; i < rows.size(); i++) {
JSONObject row = rows.getJSONObject(i);
String PackageBoxSN = row.getString("PackageBoxSN");
String isRePrintPackageBoxLabel = row.getString("isRePrintPackageBoxLabel");
String isUnPackBox = row.getString("isUnPackBox");
String UpdatedDateOfProduction = row.getString("UpdatedDateOfProduction");
//查询该木箱内子卷数量
JSONArray container_rows = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("package_box_sn = '" + PackageBoxSN + "'").getResultJSONArray(0);
for (int j = 0; j < container_rows.size(); j++) {
JSONObject container_row = container_rows.getJSONObject(j);
JSONObject change_jo = new JSONObject();
change_jo.put("changeinvdtl_id", IdUtil.getSnowflake(1, 1).nextId() + "");
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"));
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"));
change_jo.put("mfg_order_name", SaleOrderItem);
change_jo.put("demand_date", DemandDate);
change_jo.put("customer_name", CustomerName);
//查询对应的客户
JSONObject customer_jo = WQLObject.getWQLObject("md_cs_customerbase").query("cust_code = '" + CustomerName + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(customer_jo)) throw new BadRequestException("客户不存在:"+CustomerName);
change_jo.put("customer_description", customer_jo.getString("cust_name"));
change_jo.put("isRePrintPackageBoxLabel", isRePrintPackageBoxLabel);
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"));
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"));
WQLObject.getWQLObject("ST_IVT_StructIvtChangeDtl").insert(change_jo);
total_qty += container_row.getDoubleValue("net_weight");
detail_count += 1;
}
}
Long currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
String now = DateUtil.now();
JSONObject mst_jo = new JSONObject();
mst_jo.put("changeinv_id",changeinv_id);
mst_jo.put("bill_code",CodeUtil.getNewCode("CHANGE_CODE"));
mst_jo.put("buss_type","2001");
mst_jo.put("bill_type","2001");
mst_jo.put("biz_date", DateUtil.today());
JSONObject stor = WQLObject.getWQLObject("st_ivt_bsrealstorattr").query("is_delete = '0' AND is_used = '1' AND is_productstore = '1'").uniqueResult(0);
if (ObjectUtil.isEmpty(stor)) throw new BadRequestException("仓库不存在!");
mst_jo.put("stor_id", stor.getString("stor_id"));
mst_jo.put("stor_code", stor.getString("stor_code"));
mst_jo.put("stor_name", stor.getString("stor_name"));
mst_jo.put("total_qty", total_qty);
mst_jo.put("detail_count", detail_count);
mst_jo.put("bill_status", "10");
mst_jo.put("create_mode", "03");
mst_jo.put("input_optid", currentUserId + "");
mst_jo.put("input_optname", nickName);
mst_jo.put("input_time", now);
mst_jo.put("update_optid", currentUserId + "");
mst_jo.put("update_optname", nickName);
mst_jo.put("update_time", now);
mst_jo.put("is_delete", "0");
mst_jo.put("is_upload", "0");
Long deptId = SecurityUtils.getDeptId();
mst_jo.put("sysdeptid", deptId + "");
mst_jo.put("syscompanyid", deptId + "");
WQLObject.getWQLObject("ST_IVT_StructIvtChange").insert(mst_jo);
result.put("RTYPE", "S");
result.put("RTMSG", "操作成功!");
result.put("RTOAL", 1);
result.put("RTDAT", null);
System.out.println(result);
} catch (Exception e) {
result.put("RTYPE", "E");
result.put("RTMSG", "操作失败!" + e.getMessage());
result.put("RTOAL", 0);
result.put("RTDAT", null);
System.out.println(result);
try {
JSONArray rows = param.getJSONArray("details");
String SaleOrderItem = param.getString("SaleOrderItem");
String CustomerName = param.getString("CustomerName");
String DemandDate = param.getString("DemandDate");
double total_qty = 0;
double detail_count = 0;
String changeinv_id = IdUtil.getSnowflake(1, 1).nextId() + "";
if (ObjectUtil.isEmpty(rows) || rows.size() == 0) {
throw new BadRequestException("item长度不能为0");
}
for (int i = 0; i < rows.size(); i++) {
JSONObject row = rows.getJSONObject(i);
String PackageBoxSN = row.getString("PackageBoxSN");
String isRePrintPackageBoxLabel = row.getString("isRePrintPackageBoxLabel");
String isUnPackBox = row.getString("isUnPackBox");
String UpdatedDateOfProduction = row.getString("UpdatedDateOfProduction");
//查询该木箱内子卷数量
JSONArray container_rows = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("package_box_sn = '" + PackageBoxSN + "'").getResultJSONArray(0);
for (int j = 0; j < container_rows.size(); j++) {
JSONObject container_row = container_rows.getJSONObject(j);
JSONObject change_jo = new JSONObject();
change_jo.put("changeinvdtl_id", IdUtil.getSnowflake(1, 1).nextId() + "");
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"));
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"));
change_jo.put("mfg_order_name", SaleOrderItem);
change_jo.put("demand_date", DemandDate);
change_jo.put("customer_name", CustomerName);
//查询对应的客户
JSONObject customer_jo = WQLObject.getWQLObject("md_cs_customerbase").query("cust_code = '" + CustomerName + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(customer_jo)) throw new BadRequestException("客户不存在:" + CustomerName);
change_jo.put("customer_description", customer_jo.getString("cust_name"));
change_jo.put("isRePrintPackageBoxLabel", isRePrintPackageBoxLabel);
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"));
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"));
WQLObject.getWQLObject("ST_IVT_StructIvtChangeDtl").insert(change_jo);
total_qty += container_row.getDoubleValue("net_weight");
detail_count += 1;
}
}
Long currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
String now = DateUtil.now();
JSONObject mst_jo = new JSONObject();
mst_jo.put("changeinv_id", changeinv_id);
mst_jo.put("bill_code", CodeUtil.getNewCode("CHANGE_CODE"));
mst_jo.put("buss_type", "2001");
mst_jo.put("bill_type", "2001");
mst_jo.put("biz_date", DateUtil.today());
JSONObject stor = WQLObject.getWQLObject("st_ivt_bsrealstorattr").query("is_delete = '0' AND is_used = '1' AND is_productstore = '1'").uniqueResult(0);
if (ObjectUtil.isEmpty(stor)) throw new BadRequestException("仓库不存在!");
mst_jo.put("stor_id", stor.getString("stor_id"));
mst_jo.put("stor_code", stor.getString("stor_code"));
mst_jo.put("stor_name", stor.getString("stor_name"));
mst_jo.put("total_qty", total_qty);
mst_jo.put("detail_count", detail_count);
mst_jo.put("bill_status", "10");
mst_jo.put("create_mode", "03");
mst_jo.put("input_optid", currentUserId + "");
mst_jo.put("input_optname", nickName);
mst_jo.put("input_time", now);
mst_jo.put("update_optid", currentUserId + "");
mst_jo.put("update_optname", nickName);
mst_jo.put("update_time", now);
mst_jo.put("is_delete", "0");
mst_jo.put("is_upload", "0");
Long deptId = SecurityUtils.getDeptId();
mst_jo.put("sysdeptid", deptId + "");
mst_jo.put("syscompanyid", deptId + "");
WQLObject.getWQLObject("ST_IVT_StructIvtChange").insert(mst_jo);
result.put("RTYPE", "S");
result.put("RTMSG", "操作成功!");
result.put("RTOAL", 1);
result.put("RTDAT", null);
System.out.println(result);
} catch (Exception e) {
result.put("RTYPE", "E");
result.put("RTMSG", "操作失败!" + e.getMessage());
result.put("RTOAL", 0);
result.put("RTDAT", null);
System.out.println(result);
}
// }
log.info("inventoryTransferInfoSync接口输出参数为-------------------" + result.toString());
return result;
@@ -997,20 +1037,20 @@ public class MesToLmsServiceImpl implements MesToLmsService {
String SaleOrderName = param.getString("SaleOrderName");
String isUnPlanProduction = param.getString("isUnPlanProduction");
String sale_order_description = param.getString("Attribute1");
if (isUnPlanProduction.equals("1")){
if (isUnPlanProduction.equals("1")) {
Long currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
JSONObject sub_jo = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("container_name = '"+ContainerName+"'").uniqueResult(0);
if (ObjectUtil.isEmpty(sub_jo)) throw new BadRequestException("子卷包装不存在:"+ContainerName);
JSONObject sub_jo = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("container_name = '" + ContainerName + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(sub_jo)) throw new BadRequestException("子卷包装不存在:" + ContainerName);
/*sub_jo.put("change_type_scode","02");
sub_jo.put("create_id",currentUserId);
sub_jo.put("create_name",nickName);
sub_jo.put("change_time",DateUtil.now());
sub_jo.put("workorder_id",IdUtil.getSnowflake(1, 1).nextId() + "");
WQLObject.getWQLObject("PDM_BI_SubPackageRelationChangeFlow").insert(sub_jo);*/
sub_jo.put("sale_order_name",SaleOrderName);
sub_jo.put("sale_order_description",sale_order_description);
sub_jo.put("sale_order_name", SaleOrderName);
sub_jo.put("sale_order_description", sale_order_description);
WQLObject.getWQLObject("pdm_bi_subpackagerelation").update(sub_jo);
/*JSONObject new_sub = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("container_name = '"+ContainerName+"' AND status = '2'").uniqueResult(0);
@@ -1034,7 +1074,7 @@ public class MesToLmsServiceImpl implements MesToLmsService {
result.put("RTDAT", null);
System.out.println(result);
}
log.info("childRollInfoUpdate接口输出参数为-------------------" + result.toString());
return result;
}

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

@@ -42,10 +42,10 @@ public class CutTrussTask extends AbstractAcsTask {
String product_area = json.getString("product_area");
String agv_system_type = "";
if (product_area.equals("A1") || product_area.equals("A2")){
if (product_area.equals("A1") || product_area.equals("A2")) {
agv_system_type = "2";
}
if (product_area.equals("A3") || product_area.equals("A4")){
if (product_area.equals("A3") || product_area.equals("A4")) {
agv_system_type = "3";
}
@@ -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"))
@@ -77,7 +79,7 @@ public class CutTrussTask extends AbstractAcsTask {
if (StrUtil.equals(status, "0")) {
// 更新删除字段
jsonTask.put("is_delete","1");
jsonTask.put("is_delete", "1");
jsonTask.put("update_time", DateUtil.now());
taskTab.update(jsonTask);
}
@@ -145,11 +147,11 @@ public class CutTrussTask extends AbstractAcsTask {
//生成一个输送线出库任务
JSONObject form = new JSONObject();
form.put("point_code1",jsonTask.getString("point_code1"));
JSONObject ss_jo = WQLObject.getWQLObject("sch_base_point").query("product_area = '"+delivery_point.getString("product_area")+"' AND point_type = '7'").uniqueResult(0);
form.put("point_code2",ss_jo.getString("point_code"));
form.put("vehiclie_code",jsonTask.getString("vehicle_code2"));
form.put("task_type","010401");
form.put("point_code1", jsonTask.getString("point_code1"));
JSONObject ss_jo = WQLObject.getWQLObject("sch_base_point").query("product_area = '" + delivery_point.getString("product_area") + "' AND point_type = '7'").uniqueResult(0);
form.put("point_code2", ss_jo.getString("point_code"));
form.put("vehiclie_code", jsonTask.getString("vehicle_code2"));
form.put("task_type", "010401");
cutConveyorTask.createTask(form);
}
if (jsonTask.getString("task_type").equals("010404")) {
@@ -176,10 +178,10 @@ public class CutTrussTask extends AbstractAcsTask {
//生成一个输送线出库任务
JSONObject form = new JSONObject();
form.put("point_code1",jsonTask.getString("point_code2"));
JSONObject ss_jo = WQLObject.getWQLObject("sch_base_point").query("product_area = '"+delivery_point.getString("product_area")+"' AND point_type = '7'").uniqueResult(0);
form.put("point_code2",ss_jo.getString("point_code"));
form.put("task_type","010401");
form.put("point_code1", jsonTask.getString("point_code2"));
JSONObject ss_jo = WQLObject.getWQLObject("sch_base_point").query("product_area = '" + delivery_point.getString("product_area") + "' AND point_type = '7'").uniqueResult(0);
form.put("point_code2", ss_jo.getString("point_code"));
form.put("task_type", "010401");
cutConveyorTask.createTask(form);
}
@@ -260,10 +262,10 @@ public class CutTrussTask extends AbstractAcsTask {
json.put("create_name", currentUsername);
json.put("create_time", DateUtil.now());
//根据类型获取对应的任务优先级
JSONObject priority_jo = WQL.getWO("PDA_COOLIN").addParam("flag","3").addParam("task_type",json.getString("task_type")).process().uniqueResult(0);
if (ObjectUtil.isEmpty(priority_jo)){
JSONObject priority_jo = WQL.getWO("PDA_COOLIN").addParam("flag", "3").addParam("task_type", json.getString("task_type")).process().uniqueResult(0);
if (ObjectUtil.isEmpty(priority_jo)) {
json.put("priority", "1");
}else {
} else {
json.put("priority", priority_jo.getString("value"));
}
json.put("acs_task_type", "6");

View File

@@ -553,49 +553,32 @@ 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();
task_form.put("task_type", "010501");
task_form.put("start_device_code", map.get("point_code"));
task_form.put("next_device_code", struct_code);
task_form.put("vehicle_code", map.get("box_no"));
task_form.put("storagevehicle_type", map.get("storagevehicle_type"));
String task_id = task.createTask(task_form);
if (whereJson.containsKey("auto_issue")) {
AbstractAcsTask intask = new InTask();
//调用ACS接受任务接口
JSONObject result = null;
if (ObjectUtil.isNotEmpty(result)) {
String status = result.getString("status");
if ("200".equals(status)) {
HashMap<String, String> mapnow = new HashMap<>();
mapnow.put("task_status", "02");
WQLObject.getWQLObject("SCH_BASE_Task").update(mapnow, "taskdtl_id = '" + task_id + "'");
} else {
throw new BadRequestException("任务下发失败:" + result.getString("message"));
}
//创建任务
AbstractAcsTask task = new InTask();
JSONObject task_form = new JSONObject();
task_form.put("task_type", "010501");
task_form.put("start_device_code", map.get("point_code"));
task_form.put("next_device_code", struct_code);
task_form.put("vehicle_code", map.get("box_no"));
task_form.put("storagevehicle_type", map.get("storagevehicle_type"));
String task_id = task.createTask(task_form);
if (whereJson.containsKey("auto_issue")) {
AbstractAcsTask intask = new InTask();
//调用ACS接受任务接口
JSONObject result = null;
if (ObjectUtil.isNotEmpty(result)) {
String status = result.getString("status");
if ("200".equals(status)) {
HashMap<String, String> mapnow = new HashMap<>();
mapnow.put("task_status", "02");
WQLObject.getWQLObject("SCH_BASE_Task").update(mapnow, "taskdtl_id = '" + task_id + "'");
} else {
throw new BadRequestException("任务下发失败:" + result.getString("message"));
}
}
dis_map.put("task_id", task_id);
dis_map.put("work_status", "01");
}
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,9 +666,13 @@ 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);
}
// 销售出库
// 销售出库
if (StrUtil.equals(bill_type, "1001")) {
// 1.回传sap
JSONArray paramSapMstArr = new JSONArray();

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