feat(成品库存管理 和 子卷包装):
- 修复子卷包装 未按查询时间进行导出问题。 - 移除导出功能断点 - 修复WQL查询语句中的字段引用错误。 - 物性字段拆分功能,兼容历史数据。 - 添加新的物性值字段映射,包括客户要求规格幅宽。
This commit is contained in:
@@ -389,7 +389,8 @@ public class StructivtServiceImpl implements StructivtService {
|
||||
}
|
||||
mp.put("库龄", json.getString("stock_age"));
|
||||
mp.put("生产时长", json.getString("produce_age"));
|
||||
mp.put("产品规格(幅宽)", json.getString("width"));
|
||||
mp.put("产品实际规格幅宽", json.getString("width"));
|
||||
mp.put("客户要求规格幅宽", json.getString("width_standard"));
|
||||
mp.put("产品厚度", json.getString("thickness"));
|
||||
mp.put("单位面积重量", json.getString("mass_per_unit_area"));
|
||||
mp.put("净重", json.getString("net_weight"));
|
||||
@@ -397,7 +398,20 @@ public class StructivtServiceImpl implements StructivtService {
|
||||
mp.put("长度", json.getString("length"));
|
||||
mp.put("接头数", json.getString("joint_type"));
|
||||
mp.put("计划外分切的子卷", json.getString("is_un_plan_production"));
|
||||
mp.put("子卷的物性值1", json.getString("un_plan_product_property1"));
|
||||
String unPlanProductProperty1 = json.getString("un_plan_product_property1");
|
||||
mp.put("子卷的物性值1", unPlanProductProperty1);
|
||||
Object parsedData = parseJsonData(unPlanProductProperty1);
|
||||
if (parsedData instanceof JSONArray) {
|
||||
JSONArray jsonArray = (JSONArray) parsedData;
|
||||
if (!jsonArray.isEmpty()) {
|
||||
JSONObject firstItem = jsonArray.getJSONObject(0);
|
||||
buildMap(mp, firstItem,true);
|
||||
}else{
|
||||
buildMap(mp, null,false);
|
||||
}
|
||||
}else {
|
||||
buildMap(mp, null,false);
|
||||
}
|
||||
mp.put("子卷的物性值2", json.getString("un_plan_product_property2"));
|
||||
mp.put("子卷的物性值3", json.getString("un_plan_product_property3"));
|
||||
if ("1".equals(json.getString("remark"))) {
|
||||
@@ -412,7 +426,6 @@ public class StructivtServiceImpl implements StructivtService {
|
||||
mp.put("是否管控", json.getString("lock_type").equals("88") ? "是" : "否");
|
||||
mp.put("是否需要重打外包装标签", json.getString("isreprintpackageboxlabel"));
|
||||
mp.put("是否需要拆包重打子卷标签", json.getString("isunpackbox"));
|
||||
mp.put("客户要求规格幅宽", json.getString("width_standard"));
|
||||
mp.put("物料标准厚度", json.getString("thickness_request"));
|
||||
mp.put("管件类型", json.getString("paper_type"));
|
||||
mp.put("管件编码", json.getString("paper_code"));
|
||||
@@ -422,6 +435,94 @@ public class StructivtServiceImpl implements StructivtService {
|
||||
FileUtil.downloadExcel(list, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: 如果是jsonObject 格式,则进行数据封装
|
||||
**/
|
||||
public void buildMap(Map<String, Object> map, JSONObject data,boolean flag){
|
||||
//为了兼容历史数据导出
|
||||
if(!flag){
|
||||
map.put("厚度/μm", "");
|
||||
map.put("单位面积质量/g/m²", "");
|
||||
map.put("单位面积质量极差/g/m²", "");
|
||||
map.put("拉伸强度/Mpa", "");
|
||||
map.put("(高温拉伸强度/Mpa)", "");
|
||||
map.put("延伸率/%", "");
|
||||
map.put("高温拉伸强度/Mpa", "");
|
||||
map.put("S面粗糙度Ra/μm", "");
|
||||
map.put("M面粗糙度Rz/μm", "");
|
||||
map.put("M面光泽度/GU", "");
|
||||
map.put("铜箔卷曲高度/mm", "");
|
||||
map.put("铬含量/ppm", "");
|
||||
map.put("抗氧化性能/150℃|10min", "");
|
||||
map.put("抗氧化性能/213℃30min", "");
|
||||
map.put("表面能/mN/m", "");
|
||||
map.put("剥离强度/N/mm", "");
|
||||
map.put("铜粉(一级、二级、三级)", "");
|
||||
map.put("可焊性", "");
|
||||
return;
|
||||
}
|
||||
//厚度/μm、
|
||||
map.put("厚度/μm",StrUtil.isNotBlank(data.getString("厚度/μm")) ? data.getString("厚度/μm") : "");
|
||||
//单位面积质量/g/m²、
|
||||
map.put("单位面积质量/g/m²",StrUtil.isNotBlank(data.getString("单位面积质量/g/m²")) ? data.getString("单位面积质量/g/m²") : "");
|
||||
//单位面积质量极差/g/m²、
|
||||
map.put("单位面积质量极差/g/m²",StrUtil.isNotBlank(data.getString("单位面积质量极差/g/m²")) ? data.getString("单位面积质量极差/g/m²") : "");
|
||||
//抗拉强度/Mpa
|
||||
map.put("抗拉强度/Mpa",StrUtil.isNotBlank(data.getString("抗拉强度/Mpa")) ? data.getString("抗拉强度/Mpa") : "");
|
||||
//(高温拉伸强度/Mpa)
|
||||
map.put("高温拉伸强度/Mpa",StrUtil.isNotBlank(data.getString("高温拉伸强度/Mpa")) ? data.getString("高温拉伸强度/Mpa") : "");
|
||||
//延伸率/%
|
||||
map.put("延伸率/%",StrUtil.isNotBlank(data.getString("延伸率/%")) ? data.getString("延伸率/%") : "");
|
||||
// (高温延伸率/%)
|
||||
map.put("(高温延伸率/%)",StrUtil.isNotBlank(data.getString("(高温延伸率/%)")) ? data.getString("(高温延伸率/%)") : "");
|
||||
//S面粗糙度Ra/μm
|
||||
map.put("S面粗糙度Ra/μm",StrUtil.isNotBlank(data.getString("S面粗糙度Ra/μm")) ? data.getString("S面粗糙度Ra/μm") : "");
|
||||
//M面粗糙度Rz/μm
|
||||
map.put("M面粗糙度Rz/μm",StrUtil.isNotBlank(data.getString("M面粗糙度Rz/μm")) ? data.getString("M面粗糙度Rz/μm") : "");
|
||||
//M面光泽度/GU
|
||||
map.put("M面光泽度/GU",StrUtil.isNotBlank(data.getString("M面光泽度/GU")) ? data.getString("M面光泽度/GU") : "");
|
||||
//铜箔卷曲高度/mm
|
||||
map.put("铜箔卷曲高度/mm",StrUtil.isNotBlank(data.getString("铜箔卷曲高度/mm")) ? data.getString("铜箔卷曲高度/mm") : "");
|
||||
//铬含量/ppm
|
||||
map.put("铬含量/ppm",StrUtil.isNotBlank(data.getString("铬含量/ppm")) ? data.getString("铬含量/ppm") : "");
|
||||
//抗氧化性能/150℃|10min
|
||||
map.put("抗氧化性能/150℃|10min",StrUtil.isNotBlank(data.getString("抗氧化性能/150℃|10min")) ? data.getString("抗氧化性能/150℃|10min") : "");
|
||||
// 抗氧化性能/213℃30min
|
||||
map.put("抗氧化性能/213℃30min",StrUtil.isNotBlank(data.getString("抗氧化性能/213℃30min")) ? data.getString("抗氧化性能/213℃30min") : "");
|
||||
//表面能/mN/m
|
||||
map.put("表面能/mN/m",StrUtil.isNotBlank(data.getString("表面能/mN/m")) ? data.getString("表面能/mN/m") : "");
|
||||
// 剥离强度/N/mm
|
||||
map.put("剥离强度/N/mm",StrUtil.isNotBlank(data.getString("剥离强度/N/mm")) ? data.getString("剥离强度/N/mm") : "");
|
||||
//铜粉(一级、二级、三级)
|
||||
map.put("铜粉(一级、二级、三级)",StrUtil.isNotBlank(data.getString("铜粉(一级、二级、三级)")) ? data.getString("铜粉(一级、二级、三级)") : "");
|
||||
//可焊性
|
||||
map.put("可焊性",StrUtil.isNotBlank(data.getString("可焊性")) ? data.getString("可焊性") : "");
|
||||
};
|
||||
public static Object parseJsonData(String jsonData) {
|
||||
if (isValidArray(jsonData)) {
|
||||
// 返回 JSONArray
|
||||
return JSON.parseArray(jsonData);
|
||||
} else {
|
||||
// 返回原始字符串
|
||||
return jsonData;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @description: 判断是否为数组
|
||||
* @author ManMan.Yang
|
||||
* @date: 2026/2/11 11:49
|
||||
**/
|
||||
public static boolean isValidArray(String jsonData) {
|
||||
try {
|
||||
JSONArray array = JSON.parseArray(jsonData);
|
||||
// 如果解析成功且不为 null,则是有效数组
|
||||
return array != null;
|
||||
} catch (Exception e) {
|
||||
// 解析失败则不是有效数组
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void save(JSONObject whereJson) {
|
||||
|
||||
@@ -272,7 +272,22 @@ public class SubpackagerelationServiceImpl implements SubpackagerelationService
|
||||
mp.put("入库日期", json.getString("date_of_fg_inbound"));
|
||||
mp.put("木箱自身重量", json.getString("box_weight"));
|
||||
mp.put("保质期", json.getString("quality_guaran_period"));
|
||||
mp.put("子卷的物性值1", json.getString("un_plan_product_property1"));
|
||||
String unPlanProductProperty1 = json.getString("un_plan_product_property1");
|
||||
mp.put("子卷的物性值1", unPlanProductProperty1);
|
||||
Object parsedData = parseJsonData(unPlanProductProperty1);
|
||||
if (parsedData instanceof JSONArray) {
|
||||
JSONArray jsonArray = (JSONArray) parsedData;
|
||||
if (!jsonArray.isEmpty()) {
|
||||
// 获取第一个元素
|
||||
JSONObject firstItem = jsonArray.getJSONObject(0);
|
||||
// 动态遍历 JSONObject 的所有键值对
|
||||
buildMap(mp, firstItem,true);
|
||||
}else{
|
||||
buildMap(mp, null,false);
|
||||
}
|
||||
}else {
|
||||
buildMap(mp, null,false);
|
||||
}
|
||||
mp.put("子卷的物性值2", json.getString("un_plan_product_property2"));
|
||||
mp.put("子卷的物性值3", json.getString("un_plan_product_property3"));
|
||||
mp.put("木箱料号", json.getString("box_type"));
|
||||
@@ -292,4 +307,94 @@ public class SubpackagerelationServiceImpl implements SubpackagerelationService
|
||||
FileUtil.downloadExcel(list, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: 如果是jsonObject 格式,则进行数据封装
|
||||
* @author ManMan.Yang
|
||||
* @date: 2026/2/11 13:32
|
||||
**/
|
||||
public void buildMap(Map<String, Object> map, JSONObject data,boolean flag){
|
||||
//为了兼容历史数据导出
|
||||
if(!flag){
|
||||
map.put("厚度/μm", "");
|
||||
map.put("单位面积质量/g/m²", "");
|
||||
map.put("单位面积质量极差/g/m²", "");
|
||||
map.put("拉伸强度/Mpa", "");
|
||||
map.put("(高温拉伸强度/Mpa)", "");
|
||||
map.put("延伸率/%", "");
|
||||
map.put("高温拉伸强度/Mpa", "");
|
||||
map.put("S面粗糙度Ra/μm", "");
|
||||
map.put("M面粗糙度Rz/μm", "");
|
||||
map.put("M面光泽度/GU", "");
|
||||
map.put("铜箔卷曲高度/mm", "");
|
||||
map.put("铬含量/ppm", "");
|
||||
map.put("抗氧化性能/150℃|10min", "");
|
||||
map.put("抗氧化性能/213℃30min", "");
|
||||
map.put("表面能/mN/m", "");
|
||||
map.put("剥离强度/N/mm", "");
|
||||
map.put("铜粉(一级、二级、三级)", "");
|
||||
map.put("可焊性", "");
|
||||
return;
|
||||
}
|
||||
//厚度/μm、
|
||||
map.put("厚度/μm",StrUtil.isNotBlank(data.getString("厚度/μm")) ? data.getString("厚度/μm") : "");
|
||||
//单位面积质量/g/m²、
|
||||
map.put("单位面积质量/g/m²",StrUtil.isNotBlank(data.getString("单位面积质量/g/m²")) ? data.getString("单位面积质量/g/m²") : "");
|
||||
//单位面积质量极差/g/m²、
|
||||
map.put("单位面积质量极差/g/m²",StrUtil.isNotBlank(data.getString("单位面积质量极差/g/m²")) ? data.getString("单位面积质量极差/g/m²") : "");
|
||||
//抗拉强度/Mpa
|
||||
map.put("抗拉强度/Mpa",StrUtil.isNotBlank(data.getString("抗拉强度/Mpa")) ? data.getString("抗拉强度/Mpa") : "");
|
||||
//(高温拉伸强度/Mpa)
|
||||
map.put("高温拉伸强度/Mpa",StrUtil.isNotBlank(data.getString("高温拉伸强度/Mpa")) ? data.getString("高温拉伸强度/Mpa") : "");
|
||||
//延伸率/%
|
||||
map.put("延伸率/%",StrUtil.isNotBlank(data.getString("延伸率/%")) ? data.getString("延伸率/%") : "");
|
||||
// (高温延伸率/%)
|
||||
map.put("(高温延伸率/%)",StrUtil.isNotBlank(data.getString("(高温延伸率/%)")) ? data.getString("(高温延伸率/%)") : "");
|
||||
//S面粗糙度Ra/μm
|
||||
map.put("S面粗糙度Ra/μm",StrUtil.isNotBlank(data.getString("S面粗糙度Ra/μm")) ? data.getString("S面粗糙度Ra/μm") : "");
|
||||
//M面粗糙度Rz/μm
|
||||
map.put("M面粗糙度Rz/μm",StrUtil.isNotBlank(data.getString("M面粗糙度Rz/μm")) ? data.getString("M面粗糙度Rz/μm") : "");
|
||||
//M面光泽度/GU
|
||||
map.put("M面光泽度/GU",StrUtil.isNotBlank(data.getString("M面光泽度/GU")) ? data.getString("M面光泽度/GU") : "");
|
||||
//铜箔卷曲高度/mm
|
||||
map.put("铜箔卷曲高度/mm",StrUtil.isNotBlank(data.getString("铜箔卷曲高度/mm")) ? data.getString("铜箔卷曲高度/mm") : "");
|
||||
//铬含量/ppm
|
||||
map.put("铬含量/ppm",StrUtil.isNotBlank(data.getString("铬含量/ppm")) ? data.getString("铬含量/ppm") : "");
|
||||
//抗氧化性能/150℃|10min
|
||||
map.put("抗氧化性能/150℃|10min",StrUtil.isNotBlank(data.getString("抗氧化性能/150℃|10min")) ? data.getString("抗氧化性能/150℃|10min") : "");
|
||||
// 抗氧化性能/213℃30min
|
||||
map.put("抗氧化性能/213℃30min",StrUtil.isNotBlank(data.getString("抗氧化性能/213℃30min")) ? data.getString("抗氧化性能/213℃30min") : "");
|
||||
//表面能/mN/m
|
||||
map.put("表面能/mN/m",StrUtil.isNotBlank(data.getString("表面能/mN/m")) ? data.getString("表面能/mN/m") : "");
|
||||
// 剥离强度/N/mm
|
||||
map.put("剥离强度/N/mm",StrUtil.isNotBlank(data.getString("剥离强度/N/mm")) ? data.getString("剥离强度/N/mm") : "");
|
||||
//铜粉(一级、二级、三级)
|
||||
map.put("铜粉(一级、二级、三级)",StrUtil.isNotBlank(data.getString("铜粉(一级、二级、三级)")) ? data.getString("铜粉(一级、二级、三级)") : "");
|
||||
//可焊性
|
||||
map.put("可焊性",StrUtil.isNotBlank(data.getString("可焊性")) ? data.getString("可焊性") : "");
|
||||
};
|
||||
public static Object parseJsonData(String jsonData) {
|
||||
if (isValidArray(jsonData)) {
|
||||
// 返回 JSONArray
|
||||
return JSON.parseArray(jsonData);
|
||||
} else {
|
||||
// 返回原始字符串
|
||||
return jsonData;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @description: 判断是否为数组
|
||||
* @author ManMan.Yang
|
||||
* @date: 2026/2/11 11:49
|
||||
**/
|
||||
public static boolean isValidArray(String jsonData) {
|
||||
try {
|
||||
JSONArray array = JSON.parseArray(jsonData);
|
||||
// 如果解析成功且不为 null,则是有效数组
|
||||
return array != null;
|
||||
} catch (Exception e) {
|
||||
// 解析失败则不是有效数组
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -299,11 +299,11 @@
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.begin_time <> ""
|
||||
sub.date_of_FG_inbound>= 输入.begin_time
|
||||
date_of_FG_inbound>= 输入.begin_time
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.end_time <> ""
|
||||
sub.date_of_FG_inbound <= 输入.end_time
|
||||
date_of_FG_inbound <= 输入.end_time
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.status <> ""
|
||||
|
||||
Reference in New Issue
Block a user