This commit is contained in:
2023-12-27 17:36:24 +08:00
116 changed files with 1205 additions and 1064 deletions

View File

@@ -112,4 +112,11 @@ public class LmsToMesController {
public ResponseEntity<Object> proudDayData(@RequestBody JSONObject jo) {
return new ResponseEntity<>(lmsToMesService.proudDayData(jo), HttpStatus.OK);
}
@PostMapping("/ChildScrapUpdate")
@Log("成品日报推送")
@ApiOperation("成品日报推送")
public ResponseEntity<Object> ChildScrapUpdate(@RequestBody JSONObject jo) {
return new ResponseEntity<>(lmsToMesService.ChildScrapUpdate(jo), HttpStatus.OK);
}
}

View File

@@ -122,4 +122,17 @@ public interface LmsToMesService {
* 参数:
*/
JSONObject proudDayData(JSONObject jo);
/**
* 报废出库回传mes箱号、子卷号
* 参数:
* {
* PackageBoxSN 箱号
* Status 类型
* Details [
* {ContainerName: 子卷号 NetWeight重量}
* ]
* }
*/
JSONObject ChildScrapUpdate(JSONObject jo);
}

View File

@@ -661,4 +661,45 @@ public class LmsToMesServiceImpl implements LmsToMesService {
}
return result;
}
@Override
public JSONObject ChildScrapUpdate(JSONObject param) {
log.info("ChildScrapUpdate接口输入参数为-------------------" + param.toString());
JSONObject result = new JSONObject();
if (StrUtil.equals("0", is_connect_mes)) {
result.put("status", HttpStatus.OK.value());
result.put("message", "下发成功但未连接MES!");
result.put("data", new JSONObject());
return result;
}
String url = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("MES_URL").getValue();
String api = "CamstarApi/ChildScrapUpdate";
url = url + api;
String UserName = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("MES_USERNAME").getValue();
String Password = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("MES_PASSWORD").getValue();
param.put("UserName", UserName);
param.put("Password", Password);
try {
String resultMsg = HttpRequest.post(url)
.body(String.valueOf(param))
.execute().body();
result = JSONObject.parseObject(resultMsg);
log.info("ChildScrapUpdate接口输出参数为-------------------" + result.toString());
String RTYPE = result.getString("RTYPE");
if ("E".equals(RTYPE)) {
throw new BadRequestException(result.getString("RTMSG"));
}
} catch (Exception e) {
throw new BadRequestException("MES提示错误" + e.getMessage());
}
return result;
}
}

View File

@@ -15,6 +15,7 @@
#################################################
输入.flag TYPEAS s_string
输入.customer_name TYPEAS f_string
输入.storIds TYPEAS f_string
[临时表]
--这边列出来的临时表就会在运行期动态创建
@@ -966,29 +967,10 @@
ENDQUERY
ENDIF
IF 输入.flag = "19"
QUERY
SELECT
SUM( ivt.canuse_qty ) / 1000 AS num,
sub.customer_name
FROM
st_ivt_structivt ivt
LEFT JOIN st_ivt_structattr attr ON ivt.struct_id = attr.struct_id
INNER JOIN pdm_bi_subpackagerelationrecord sub ON sub.container_name = ivt.pcsn AND sub.package_box_sn = attr.storagevehicle_code
WHERE
ivt.canuse_qty > '0'
GROUP BY sub.customer_name
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "20"
QUERY
SELECT
SUM( dis.plan_qty ) / 1000 AS num,
sub.customer_name
SUM( dis.plan_qty ) / 1000 AS num
FROM
( SELECT
MIN( a.iostorinvdis_id ) AS iostorinvdis_id
@@ -1008,7 +990,6 @@
) AS a
LEFT JOIN st_ivt_iostorinvdis dis ON dis.iostorinvdis_id = a.iostorinvdis_id
LEFT JOIN st_ivt_iostorinv mst ON dis.iostorinv_id = mst.iostorinv_id
INNER JOIN pdm_bi_subpackagerelationrecord sub ON sub.container_name = dis.pcsn AND sub.package_box_sn = dis.box_no AND sub.bill_id = dis.iostorinv_id
LEFT JOIN st_ivt_structattr attr ON attr.struct_id = dis.struct_id
WHERE
@@ -1020,8 +1001,28 @@
AND CONCAT(DATE_FORMAT(NOW(), '%Y-%m-01'), ' 08:00:00') <= mst.confirm_time
AND NOW() >= mst.confirm_time
GROUP BY sub.customer_name
OPTION 输入.storIds <> ""
mst.stor_id in 输入.storIds
ENDOPTION
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "19"
QUERY
SELECT
SUM( ivt.canuse_qty ) / 1000 AS num
FROM
st_ivt_structivt ivt
LEFT JOIN st_ivt_structattr attr ON ivt.struct_id = attr.struct_id
WHERE
ivt.canuse_qty > '0'
OPTION 输入.storIds <> ""
attr.stor_id in 输入.storIds
ENDOPTION
ENDSELECT
ENDQUERY
ENDIF

View File

@@ -8,7 +8,6 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.modules.common.utils.RedisUtils;
import org.nl.modules.wql.WQL;
import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.wms.ext.acs.service.WmsToAcsService;
import org.nl.wms.sch.tasks.URLEnum;
import org.springframework.beans.factory.annotation.Autowired;
@@ -25,7 +24,6 @@ public class AutoQueryDeviceStatus {
private final WmsToAcsService wmsToAcsService;
public void run() {
WQLObject ivtTab = WQLObject.getWQLObject("st_ivt_hotpointivt");
for (URLEnum url : URLEnum.values()) {
try {
String product_area = url.getProduct_area();
@@ -59,7 +57,6 @@ public class AutoQueryDeviceStatus {
map.put("last_time", last_time);
redisUtils.hset(device_code, "temperature", row.getString("temperature"));
redisUtils.hset(device_code, "last_time", last_time);
//ivtTab.update(map,"point_code = '"+device_code+"'");
}
} catch (Exception e) {
log.info(e.getMessage());

View File

@@ -48,7 +48,7 @@ public class AutoQueryProudDayData {
}
param.put("UserList", UserList);
param.put("Code", "ctp_AAVwgNuQOtO0");
param.put("Code", "ctp_AAyBZtDQiYwG");
param.put("card", data());
// 调用接口
@@ -459,30 +459,69 @@ public class AutoQueryProudDayData {
String end_date = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("END_DATE").getValue();
String nowDay = DateUtil.today().substring(8, 10);
if (end_date.equals(nowDay)) {
if (Double.parseDouble(end_date) <= Double.parseDouble(nowDay)) {
JSONArray Arrayobject6 = new JSONArray();
// 当日实时库存,根据客户分组
List<JSONObject> todayCustIvtList = WQL.getWO("AUTOQUERYBILLINFO").addParam("flag", "19")
.process().getResultJSONArray(0).toJavaList(JSONObject.class);
// 所有仓库
List<JSONObject> storAllArr = storTab.query("is_used = '1'").getResultJSONArray(0).toJavaList(JSONObject.class);
// 当月入库量调拨入库默认1-21号根据客户分组
List<JSONObject> monthCustIvtList = WQL.getWO("AUTOQUERYBILLINFO").addParam("flag", "20")
.process().getResultJSONArray(0).toJavaList(JSONObject.class);
// B公司
String in_B = storAllArr.stream()
.filter(row -> row.getString("remark").equals("B"))
.map(row -> row.getString("stor_id"))
.collect(Collectors.joining("','"));
// C公司
String in_C = storAllArr.stream()
.filter(row -> row.getString("remark").equals("C"))
.map(row -> row.getString("stor_id"))
.collect(Collectors.joining("','"));
// B公司当前库存
JSONObject jsonIvtB = WQL.getWO("AUTOQUERYBILLINFO").addParam("flag", "19").addParam("storIds", "('" + in_B + "')")
.process().uniqueResult(0);
// C公司当前库存
JSONObject jsonIvtC = WQL.getWO("AUTOQUERYBILLINFO").addParam("flag", "19").addParam("storIds", "('" + in_C + "')")
.process().uniqueResult(0);
// B公司当月调拨入库
JSONObject monthInB = WQL.getWO("AUTOQUERYBILLINFO").addParam("flag", "20").addParam("storIds", "('" + in_B + "')")
.process().uniqueResult(0);
// C公司当月调拨入库
JSONObject monthInC = WQL.getWO("AUTOQUERYBILLINFO").addParam("flag", "20").addParam("storIds", "('" + in_C + "')")
.process().uniqueResult(0);
// ---- B公司 ----
JSONObject CorpB = upMonthIvt(custB, todayCustIvtList, monthCustIvtList);
JSONObject CorpB = upMonthIvt(jsonIvtB, monthInB);
CorpB.put("Customer1", "B库存");
Arrayobject6.add(CorpB);
// ---- C公司 ----
JSONObject CorpC = upMonthIvt(custC, todayCustIvtList, monthCustIvtList);
JSONObject CorpC = upMonthIvt(jsonIvtC,monthInC);
CorpC.put("Customer1", "C库存");
Arrayobject6.add(CorpC);
result.put("Arrayobject6",Arrayobject6);
result.put("EndDate", getEndDate());
} else {
JSONArray Arrayobject6 = new JSONArray();
// B公司
JSONObject CorpB = new JSONObject();
CorpB.put("Customer1", "B库存");
CorpB.put("Customerqty1", "X");
Arrayobject6.add(CorpB);
// C公司
JSONObject CorpC = new JSONObject();
CorpC.put("Customer1", "C库存");
CorpC.put("Customerqty1", "X");
Arrayobject6.add(CorpC);
result.put("Arrayobject6",Arrayobject6);
}
result.put("EndDate", getEndDate());
return result;
}
@@ -666,27 +705,16 @@ public class AutoQueryProudDayData {
/**
* 上月库存公共方法
* @param cust 客户
* @param todayCustIvtList 实时库存客户分组
* @param monthCustIvtList 当月入库量客户分组
*
* @param jsonIvtB 实施库存
* @param monthInB 当月调拨入库量
* @return /
*/
public JSONObject upMonthIvt(String cust, List<JSONObject> todayCustIvtList, List<JSONObject> monthCustIvtList) {
public JSONObject upMonthIvt(JSONObject jsonIvtB,JSONObject monthInB) {
JSONObject result = new JSONObject();
double ivtCust = todayCustIvtList.stream()
.filter(row -> cust.contains(row.getString("customer_name")))
.map(row -> row.getDoubleValue("num"))
.reduce(Double::sum).orElse(0.00);
double inIvtCust = monthCustIvtList.stream()
.filter(row -> cust.contains(row.getString("customer_name")))
.map(row -> row.getDoubleValue("num"))
.reduce(Double::sum).orElse(0.00);
double subIvt = NumberUtil.sub(ivtCust, inIvtCust);
double subIvt = NumberUtil.sub(jsonIvtB.getDoubleValue("num"), monthInB.getDoubleValue("num"));
result.put("Customerqty1", subIvt > 0 ? NumberUtil.round(subIvt, 2).toString() : "0");

View File

@@ -29,6 +29,7 @@ import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.*;
import java.util.stream.Collectors;
/**
*
@@ -326,6 +327,54 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
WQLObject.getWQLObject("ST_IVT_IOStorInv").update(jo_mst);
}
// 报废出库回传mes
if (StrUtil.equals(bill_type, "1007") || StrUtil.equals(bill_type, "1008") || StrUtil.equals(bill_type, "1010") || StrUtil.equals(bill_type, "1002")) {
JSONArray disArr = WQL.getWO("QST_IVT_INANDOUTRETRUN").addParam("flag", "3").addParam("iostorinv_id", jo_mst.getString("iostorinv_id")).process().getResultJSONArray(0);
String box_no_in = disArr.toJavaList(JSONObject.class).stream()
.map(row -> row.getString("box_no"))
.collect(Collectors.joining("','"));
List<JSONObject> disList = WQLObject.getWQLObject("st_ivt_iostorinvdis").query("box_no in ('" + box_no_in + "') and iostorinv_id = '" + jo_mst.getString("iostorinv_id") + "'").getResultJSONArray(0).toJavaList(JSONObject.class);
JSONObject param = new JSONObject();
JSONArray item = new JSONArray();
for (int j = 0; j < disArr.size(); j++) {
JSONObject json = disArr.getJSONObject(j);
JSONObject jsonDtl = new JSONObject();
JSONArray details = new JSONArray();
jsonDtl.put("PackageBoxSN", json.getString("box_no"));
jsonDtl.put("Status", "1");
List<JSONObject> collect = disList.stream()
.filter(row -> row.getString("box_no").equals(json.getString("box_no")))
.collect(Collectors.toList());
for (int k = 0; k < collect.size(); k++) {
JSONObject jsonObject = collect.get(k);
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("ContainerName", jsonObject.getString("pcsn"));
jsonObject1.put("NetWeight", jsonObject.getString("plan_qty"));
details.add(jsonObject1);
}
jsonDtl.put("Details",details);
item.add(jsonDtl);
}
param.put("item", item);
new LmsToMesServiceImpl().ChildScrapUpdate(param);
jo_mst.put("upload_mes", "1");
jo_mst.put("is_upload", "1");
jo_mst.put("upload_optid", SecurityUtils.getCurrentUserId());
jo_mst.put("upload_time", DateUtil.now());
WQLObject.getWQLObject("ST_IVT_IOStorInv").update(jo_mst);
}
/*// 改切出库
if (StrUtil.equals(bill_type, "1003")) {
JSONArray disArr = wo_dis.query("iostorinv_id = '" + jo_mst.getString("iostorinv_id") + "'").getResultJSONArray(0);
@@ -1470,6 +1519,54 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
}
}
// 报废出库回传mes
if (StrUtil.equals(bill_type, "1007") || StrUtil.equals(bill_type, "1008") || StrUtil.equals(bill_type, "1010") || StrUtil.equals(bill_type, "1002")) {
JSONArray disArr = WQL.getWO("QST_IVT_INANDOUTRETRUN").addParam("flag", "3").addParam("iostorinv_id", jo_mst.getString("iostorinv_id")).process().getResultJSONArray(0);
String box_no_in = disArr.toJavaList(JSONObject.class).stream()
.map(row -> row.getString("box_no"))
.collect(Collectors.joining("','"));
List<JSONObject> disList = WQLObject.getWQLObject("st_ivt_iostorinvdis").query("box_no in ('" + box_no_in + "') and iostorinv_id = '" + jo_mst.getString("iostorinv_id") + "'").getResultJSONArray(0).toJavaList(JSONObject.class);
JSONObject param = new JSONObject();
JSONArray item = new JSONArray();
for (int j = 0; j < disArr.size(); j++) {
JSONObject json = disArr.getJSONObject(j);
JSONObject jsonDtl = new JSONObject();
JSONArray details = new JSONArray();
jsonDtl.put("PackageBoxSN", json.getString("box_no"));
jsonDtl.put("Status", "1");
List<JSONObject> collect = disList.stream()
.filter(row -> row.getString("box_no").equals(json.getString("box_no")))
.collect(Collectors.toList());
for (int k = 0; k < collect.size(); k++) {
JSONObject jsonObject = collect.get(k);
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("ContainerName", jsonObject.getString("pcsn"));
jsonObject1.put("NetWeight", jsonObject.getString("plan_qty"));
details.add(jsonObject1);
}
jsonDtl.put("Details",details);
item.add(jsonDtl);
}
param.put("item", item);
new LmsToMesServiceImpl().ChildScrapUpdate(param);
jo_mst.put("upload_mes", "1");
jo_mst.put("is_upload", "1");
jo_mst.put("upload_optid", SecurityUtils.getCurrentUserId());
jo_mst.put("upload_time", DateUtil.now());
WQLObject.getWQLObject("ST_IVT_IOStorInv").update(jo_mst);
}
}
}

View File

@@ -175,3 +175,18 @@
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "3"
QUERY
SELECT
dis.box_no
FROM
st_ivt_iostorinvdis dis
LEFT JOIN st_ivt_iostorinv mst ON mst.iostorinv_id = dis.iostorinv_id
WHERE
dis.iostorinv_id = 输入.iostorinv_id
GROUP BY dis.box_no
ENDSELECT
ENDQUERY
ENDIF

View File

@@ -93,6 +93,7 @@
LEFT JOIN md_cs_customerbase cust ON cust.cust_code = sub.customer_name
WHERE
1 = 1
and ivt.canuse_qty > 0
OPTION 输入.stor_id <> ""
attr.stor_id = 输入.stor_id