This commit is contained in:
2022-11-11 16:52:08 +08:00
10 changed files with 155 additions and 44 deletions

View File

@@ -30,7 +30,11 @@ public class SecurityUtils {
return json.toBean(CurrentUser.class);
}
} catch (Exception e) {
return new CurrentUser();
CurrentUser currentUser=new CurrentUser();
currentUser.setId((long) 2);
currentUser.setNickName("默认用户");
currentUser.setUsername("default");
return currentUser;
}
return null;
}

View File

@@ -569,7 +569,7 @@ public class MesToLmsServiceImpl implements MesToLmsService {
//查询该物料
JSONObject mater_jo = WQLObject.getWQLObject("md_me_materialbase").query("material_code = '" + sub_jo.getString("product_name") + "'").uniqueResult(0);
dtl.put("material_id",mater_jo.getString("material_id"));
dtl.put("pcsn",plan_jo.getString("container_name"));
dtl.put("pcsn",plan_jo.getString("restruct_container_name"));
dtl.put("box_no",package_box_sn);
JSONObject unit = WQLObject.getWQLObject("md_pb_measureunit").query("measure_unit_id = '"+mater_jo.getString("base_unit_id")+"'").uniqueResult(0);
dtl.put("qty_unit_id",unit.getString("measure_unit_id"));
@@ -577,6 +577,7 @@ public class MesToLmsServiceImpl implements MesToLmsService {
dtl.put("plan_qty",sub_jo.getString("net_weight"));
rows.add(dtl);
mst_jo.put("tableData",rows);
mst_jo.put("user","mes");
String iostorinv_id = checkOutBillService.insertDtl(mst_jo);
//调用自动分配

View File

@@ -0,0 +1,40 @@
package org.nl.wms.pda.mps.rest;
import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.modules.logging.annotation.Log;
import org.nl.wms.pda.mps.service.EmptyVehicleService;
import org.nl.wms.pda.mps.service.OutService;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequiredArgsConstructor
@Api(tags = "空载具出入库")
@RequestMapping("api/pda/emptyVehicle")
@Slf4j
public class EmptyVehicleController {
private final EmptyVehicleService emptyVehicleService;
@PostMapping("/pointStatusQuery")
@Log("分切计划初始化查询")
@ApiOperation("分切计划初始化查询")
public ResponseEntity<Object> pointStatusQuery(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(emptyVehicleService.pointStatusQuery(whereJson), HttpStatus.OK);
}
@PostMapping("/pointOperate")
@Log("子卷出站")
@ApiOperation("子卷出站")
public ResponseEntity<Object> pointOperate(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(emptyVehicleService.pointOperate(whereJson), HttpStatus.OK);
}
}

View File

@@ -0,0 +1,21 @@
package org.nl.wms.pda.mps.service;
import com.alibaba.fastjson.JSONObject;
public interface EmptyVehicleService {
/**
* 分切计划初始化查询
* @param whereJson /
* @return JSONObject
*/
JSONObject pointStatusQuery(JSONObject whereJson);
/**
* 出站确认
* @param whereJson /
* @return JSONObject
*/
JSONObject pointOperate(JSONObject whereJson);
}

View File

@@ -0,0 +1,35 @@
package org.nl.wms.pda.mps.service.impl;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.wql.WQL;
import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.wms.pda.mps.service.EmptyVehicleService;
import org.nl.wms.pda.mps.service.OutService;
import org.nl.wms.sch.tasks.CutConveyorTask;
import org.nl.wms.sch.tasks.CutTrussTask;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
@Service
@RequiredArgsConstructor
@Slf4j
public class EmptyVehicleServiceImpl implements EmptyVehicleService {
@Override
public JSONObject pointStatusQuery(JSONObject whereJson) {
return null;
}
@Override
public JSONObject pointOperate(JSONObject whereJson) {
return null;
}
}

View File

@@ -73,9 +73,9 @@ public class ShippingServiceImpl implements ShippingService {
public JSONObject confirm(JSONObject whereJson) {
JSONArray rows = whereJson.getJSONArray("cut_rows");
String vehicle_code = whereJson.getString("vehicle_code");
if (StrUtil.isEmpty(vehicle_code)){
/*if (StrUtil.isEmpty(vehicle_code)){
throw new BadRequestException("载具号不能为空!");
}
}*/
if (rows.size()>2){
throw new BadRequestException("最多选择两个子卷进行操作!");
@@ -137,9 +137,9 @@ public class ShippingServiceImpl implements ShippingService {
JSONObject vehicle_area = WQLObject.getWQLObject("md_pb_vehiclearea").query("product_area = '"+product_area+"' AND point_location = '"+point_location+"' AND vehicle_code = '"+vehicle_code+"'").uniqueResult(0);
if (ObjectUtil.isEmpty(vehicle_area)){
/*if (ObjectUtil.isEmpty(vehicle_area)){
throw new BadRequestException("该气涨轴无法放在该载具上!");
}
}*/
//查询离该分切计划包含机台最近的一个空点位
JSONObject empty_point = WQL.getWO("PDA_02")
.addParam("sql_str", " ORDER BY abs("+plan_jo.getString("sort_seq")+"-sort_seq),point_code")
@@ -198,7 +198,7 @@ public class ShippingServiceImpl implements ShippingService {
String qzzno = whereJson.getString("qzzno");
String vehicle_code = whereJson.getString("vehicle_code");
JSONObject plan = WQLObject.getWQLObject("pdm_bi_slittingproductionplan").query("qzz_no = '"+qzzno+"'").uniqueResult(0);
JSONObject plan = WQLObject.getWQLObject("pdm_bi_slittingproductionplan").query("qzzno = '"+qzzno+"'").uniqueResult(0);
String resource_name = plan.getString("resource_name");
JSONObject cut_jo = WQLObject.getWQLObject("st_ivt_cutpointivt").query("ext_code = '"+resource_name+"'").uniqueResult(0);
String product_area = cut_jo.getString("product_area");

View File

@@ -238,7 +238,7 @@
AND
plan.is_child_ps_ok = '1'
AND
plan.status = '01'
plan.status = '03'
OPTION 输入.product_area <> ""
del.product_area = 输入.product_area
ENDOPTION

View File

@@ -814,9 +814,9 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService {
String placement_type = row_jo.getString("placement_type");
if (placement_type.equals("01") || placement_type.equals("03")) {
struct_jo = WQLObject.getWQLObject("st_ivt_structattr").query("block_num = '" + block_num + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') = '' order by out_empty_seq").uniqueResult(0);
struct_jo = WQLObject.getWQLObject("st_ivt_structattr").query("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);
} else {
struct_jo = WQLObject.getWQLObject("st_ivt_structattr").query("block_num = '" + block_num + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') = '' order by out_empty_seq desc").uniqueResult(0);
struct_jo = WQLObject.getWQLObject("st_ivt_structattr").query("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);
}
} else {
//如果不存在相同订单物料的巷道
@@ -831,37 +831,37 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService {
//根据分切计划查询该订单物料大概还有多少未入
row_map.put("flag", "12");
JSONObject plan_rows = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParamMap(row_map).process().uniqueResult(0);
JSONArray plan_rows = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParamMap(row_map).process().getResultJSONArray(0);
int box_num = (int) Math.ceil(plan_rows.size() / 3);
//查询数量与订单物料箱子数量相近的一排
JSONObject empty_row = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParam("flag", "13").addParam("sql_str", " ORDER BY abs(" + box_num + "-a.struct_num").process().uniqueResult(0);
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);
if (ObjectUtil.isNotEmpty(empty_row)) {
String block_num = empty_row.getString("block_num");
String row_num = empty_row.getString("row_num");
String placement_type = empty_row.getString("placement_type");
if (placement_type.equals("01") || placement_type.equals("03")) {
struct_jo = WQLObject.getWQLObject("st_ivt_structattr").query("block_num = '" + block_num + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND lock_type = '1' order by out_empty_seq").uniqueResult(0);
struct_jo = WQLObject.getWQLObject("st_ivt_structattr").query("block_num = '" + block_num + "' AND row_num = '" + row_num + "' AND placement_type = '"+placement_type+"' AND is_delete = '0' AND is_used = '1' AND lock_type = '1' order by out_order_seq desc").uniqueResult(0);
} else {
struct_jo = WQLObject.getWQLObject("st_ivt_structattr").query("block_num = '" + block_num + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND lock_type = '1' order by out_empty_seq desc").uniqueResult(0);
struct_jo = WQLObject.getWQLObject("st_ivt_structattr").query("block_num = '" + block_num + "' AND row_num = '" + row_num + "' AND placement_type = '"+placement_type+"'AND is_delete = '0' AND is_used = '1' AND lock_type = '1' order by out_order_seq").uniqueResult(0);
}
} else {
//如果查询不到空的一排,则查询有空位双通的一排
JSONObject have_row = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParam("flag", "14").addParam("sql_str", " ORDER BY abs(" + box_num + "-a.struct_num").process().uniqueResult(0);
JSONObject have_row = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParam("sect_id",sect_id).addParam("flag", "14").addParam("sql_str", " ORDER BY abs(" + box_num + "-a.struct_num)").process().uniqueResult(0);
if (ObjectUtil.isNotEmpty(have_row)) {
String block_num = have_row.getString("block_num");
String row_num = have_row.getString("row_num");
//判断该排是左边为空,还是右边为空
JSONObject right_str = WQLObject.getWQLObject("st_ivt_structattr").query("block_num = '" + block_num + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' order by out_empty_seq").uniqueResult(0);
JSONObject left_str = WQLObject.getWQLObject("st_ivt_structattr").query("block_num = '" + block_num + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' order by out_empty_seq desc").uniqueResult(0);
JSONObject right_str = WQLObject.getWQLObject("st_ivt_structattr").query("block_num = '" + block_num + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' order by out_order_seq").uniqueResult(0);
JSONObject left_str = WQLObject.getWQLObject("st_ivt_structattr").query("block_num = '" + block_num + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' order by out_order_seq desc").uniqueResult(0);
if (StrUtil.isNotEmpty(right_str.getString("storagevehicle_code")) || !right_str.getString("lock_type").equals("1")){
struct_jo = WQLObject.getWQLObject("st_ivt_structattr").query("block_num = '" + block_num + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') = '' order by out_empty_seq").uniqueResult(0);
struct_jo = WQLObject.getWQLObject("st_ivt_structattr").query("block_num = '" + block_num + "' 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 (StrUtil.isNotEmpty(left_str.getString("storagevehicle_code")) || !left_str.getString("lock_type").equals("1")){
struct_jo = WQLObject.getWQLObject("st_ivt_structattr").query("block_num = '" + block_num + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') = '' order by out_empty_seq desc").uniqueResult(0);
struct_jo = WQLObject.getWQLObject("st_ivt_structattr").query("block_num = '" + block_num + "' 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);
}
}
}

View File

@@ -397,7 +397,6 @@
IF 输入.flag = "11"
QUERY
SELECT
count(sa2.struct_code) AS num,
sa2.block_num,
sa2.row_num,
sa2.placement_type

View File

@@ -199,6 +199,15 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
map.remove("tableData");
Long currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
String user = map.getString("user");
if (user.equals("mes")) {
currentUserId = Long.parseLong(2 + "");
nickName = "mes用户";
}
if (user.equals("sap")) {
currentUserId = Long.parseLong(3 + "");
nickName = "sap用户";
}
String now = DateUtil.now();
String iostorinv_id = IdUtil.getSnowflake(1, 1).nextId() + "";
String bill_code = CodeUtil.getNewCode("IO_CODE");
@@ -222,9 +231,11 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
map.put("update_time", now);
map.put("is_delete", "0");
map.put("is_upload", "0");
Long deptId = SecurityUtils.getDeptId();
map.put("sysdeptid", deptId);
map.put("syscompanyid", deptId);
if (!user.equals("mes") || user.equals("sap")) {
Long deptId = SecurityUtils.getDeptId();
map.put("sysdeptid", deptId);
map.put("syscompanyid", deptId);
}
double qty = 0.0; // 主表重量
int num = rows.size(); // 明细数
@@ -1104,7 +1115,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
}
// 更新第一个任务 任务组、任务顺序号
jsonTask.put("task_group_id", IdUtil.getSnowflake(1,1).nextId());
jsonTask.put("task_group_id", IdUtil.getSnowflake(1, 1).nextId());
jsonTask.put("sort_seq", 1);
wo_Task.update(jsonTask);
@@ -1112,16 +1123,16 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
if (blockLeft > blockRigth) {
// 从右边生成移库单
map.put("flag", "4");
map.put("block_num",jsonAttr.getString("block_num"));
map.put("row_num",jsonAttr.getString("row_num"));
map.put("block_num", jsonAttr.getString("block_num"));
map.put("row_num", jsonAttr.getString("row_num"));
jsonAllBlockPoint = WQL.getWO("ST_OUTIVT03").addParamMap(map).process().getResultJSONArray(0);
} else {
// 从左边生成移库单
map.put("flag", "5");
map.put("block_num",jsonAttr.getString("block_num"));
map.put("row_num",jsonAttr.getString("row_num"));
map.put("block_num", jsonAttr.getString("block_num"));
map.put("row_num", jsonAttr.getString("row_num"));
jsonAllBlockPoint = WQL.getWO("ST_OUTIVT03").addParamMap(map).process().getResultJSONArray(0);
}
@@ -1146,8 +1157,8 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
JSONObject jsonMove = rawAssistIStorService.autoDis(moveParam);
// 查询移出货位的库存物料
JSONObject jsonMoveIvt = WQL.getWO("ST_OUTIVT03")
.addParam("flag","6")
.addParam("struct_id",json.getString("struct_id"))
.addParam("flag", "6")
.addParam("struct_id", json.getString("struct_id"))
.process().uniqueResult(0);
// 移库单明细
@@ -1203,8 +1214,8 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
map.put("struct_code", jsonAttr.getString("struct_code"));
map.put("sect_id", jsonAttr.getString("sect_id"));
map.put("out_order_seq", jsonAttr.getString("out_order_seq"));
map.put("block_num",jsonAttr.getString("block_num"));
map.put("row_num",jsonAttr.getString("row_num"));
map.put("block_num", jsonAttr.getString("block_num"));
map.put("row_num", jsonAttr.getString("row_num"));
JSONArray jsonAllBlockPoint = new JSONArray();
if (StrUtil.equals(jsonAttr.getString("placement_type"), "02")) {
@@ -1215,7 +1226,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
if (ObjectUtil.isNotEmpty(jsonIsBlockL)) {
// 更新第一个任务 任务组、任务顺序号
jsonTask.put("task_group_id", IdUtil.getSnowflake(1,1).nextId());
jsonTask.put("task_group_id", IdUtil.getSnowflake(1, 1).nextId());
jsonTask.put("sort_seq", 1);
wo_Task.update(jsonTask);
// 从左边生成移库单
@@ -1232,7 +1243,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
// 判断左边是否被挡住
if (ObjectUtil.isNotEmpty(jsonIsBlockR)) {
// 更新第一个任务 任务组、任务顺序号
jsonTask.put("task_group_id", IdUtil.getSnowflake(1,1).nextId());
jsonTask.put("task_group_id", IdUtil.getSnowflake(1, 1).nextId());
jsonTask.put("sort_seq", 1);
wo_Task.update(jsonTask);
// 从右边生成移库单
@@ -1261,8 +1272,8 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
JSONObject jsonMove = rawAssistIStorService.autoDis(moveParam);
// 查询移出货位的库存物料
JSONObject jsonMoveIvt = WQL.getWO("ST_OUTIVT03")
.addParam("flag","6")
.addParam("struct_id",json.getString("struct_id"))
.addParam("flag", "6")
.addParam("struct_id", json.getString("struct_id"))
.process().uniqueResult(0);
// 移库单明细
@@ -1670,11 +1681,11 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
String userName = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_USERNAME").getValue();
String passWord = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_PASSWORD").getValue();
paramMesMst.put("UserName",userName);
paramMesMst.put("Password",passWord);
paramMesMst.put("OutboundOrderNum",jo_mst.getString("bill_code"));
paramMesMst.put("OutboundUser",jo_mst.getString("confirm_optname"));
paramMesMst.put("OutboundTime",jo_mst.getString("confirm_time"));
paramMesMst.put("UserName", userName);
paramMesMst.put("Password", passWord);
paramMesMst.put("OutboundOrderNum", jo_mst.getString("bill_code"));
paramMesMst.put("OutboundUser", jo_mst.getString("confirm_optname"));
paramMesMst.put("OutboundTime", jo_mst.getString("confirm_time"));
JSONArray boxArr = WQL.getWO("ST_OUTIVT02").addParam("flag", "2")
.addParam("iostorinv_id", jo_mst.getString("iostorinv_id"))
@@ -1710,7 +1721,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
JSONObject jsonMater = materTab.query("material_id = '" + json.getString("material_id") + "'").uniqueResult(0);
JSONObject jsonDtl = new JSONObject();
jsonDtl.put("RSPOS", i+1);
jsonDtl.put("RSPOS", i + 1);
jsonDtl.put("MATNR", jsonMater.getString("material_code"));
jsonDtl.put("BWART", "311");
jsonDtl.put("MENGE", json.getDoubleValue("plan_qty"));
@@ -1786,7 +1797,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
for (int i = 0; i < disArr.size(); i++) {
JSONObject jsonDis = disArr.getJSONObject(i);
// 更新分配明细为完成
jsonDis.put("work_status","99");
jsonDis.put("work_status", "99");
wo_dis.update(jsonDis);
// 更新明细为完成
@@ -1851,7 +1862,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
// 更新明细状态
JSONObject jsonDtl = wo_dtl.query("iostorinvdtl_id = '" + jsonDis.getString("iostorinvdtl_id") + "'").uniqueResult(0);
jsonDtl.put("bill_status","40");
jsonDtl.put("bill_status", "40");
}
}