报表相关优化
This commit is contained in:
@@ -217,20 +217,6 @@ public class VehicleTwoServiceImpl implements VehicleTwoService {
|
||||
return result;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
ArrayList<String> msg = new ArrayList<>();
|
||||
// msg.add("称重562不匹配564");
|
||||
msg.add("手动至异常口");
|
||||
System.out.println(msg.toString());
|
||||
System.out.println(JSONObject.toJSONString(msg));
|
||||
String a = JSONObject.toJSONString(msg);
|
||||
List<String> list = JSONObject.parseObject(a, List.class);
|
||||
Optional<String> 称重 = list.stream().filter(m -> m.contains("称重")).findAny();
|
||||
if (称重.isPresent()) {
|
||||
System.out.println(称重.get());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public JSONObject reback(JSONObject whereJson) {
|
||||
@@ -247,7 +233,7 @@ public class VehicleTwoServiceImpl implements VehicleTwoService {
|
||||
.eq("is_delete", "0")
|
||||
.lt("task_status", TaskStatusEnum.FINISHED.getCode()));
|
||||
if (!CollectionUtils.isEmpty(list)) {
|
||||
throw new BadRequestException("稍后再试,异常口存在正在执行的任务" + list.stream().map(SchBaseTask::getTask_id).collect(Collectors.joining(",")));
|
||||
throw new BadRequestException("稍后再试,异常口存在正在执行的任务" + list.stream().map(SchBaseTask::getTask_code).collect(Collectors.joining(",")));
|
||||
}
|
||||
Param forceWeight = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("force_weight");
|
||||
if (forceWeight != null && "1".equals(forceWeight.getValue())) {
|
||||
|
||||
@@ -71,8 +71,9 @@ public class TwoOutBoxTask extends AbstractAcsTask {
|
||||
* 下发给ACS时需要特殊处理
|
||||
*/
|
||||
// 判断当前有多少个正在执行中的任务
|
||||
int num = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + THIS_CLASS + "' and task_status IN ('05','06') and is_delete ='0'")
|
||||
.getResultJSONArray(0).size();
|
||||
JSONArray task_ing = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + THIS_CLASS + "' and task_status IN ('05','06') and is_delete ='0'")
|
||||
.getResultJSONArray(0);
|
||||
int num = task_ing.size();
|
||||
ArrayList<AcsTaskDto> resultList = new ArrayList<>();
|
||||
// 如果缓存了4个箱子则不下发任务
|
||||
if (num >= 2) {
|
||||
|
||||
@@ -70,6 +70,7 @@ import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
@@ -159,6 +160,9 @@ public class SlitterServiceImpl implements SlitterService {
|
||||
@Autowired
|
||||
private IBstIvtShafttubeivtService bstIvtShafttubeivtService;
|
||||
|
||||
// 预编译正则表达式,提升性能
|
||||
private static final Pattern GX_PATTERN = Pattern.compile("^GX(0[1-9]|[1-9]\\d)$");
|
||||
|
||||
@Override
|
||||
public JSONObject acsRequestShaftLoadTube(JSONObject param) {
|
||||
// hint: 现在的考虑都是基于B1,B2的车间,后续的B3、B4需要再次修改
|
||||
@@ -1839,6 +1843,14 @@ public class SlitterServiceImpl implements SlitterService {
|
||||
return res;
|
||||
}
|
||||
|
||||
public static boolean isValidGXCode(String input) {
|
||||
// 空值直接返回false
|
||||
if (input == null) {
|
||||
return false;
|
||||
}
|
||||
return GX_PATTERN.matcher(input).matches();
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject doStockAreaBinding(JSONObject param) {
|
||||
// param: point_code vehicle_code
|
||||
@@ -1852,7 +1864,7 @@ public class SlitterServiceImpl implements SlitterService {
|
||||
if (ObjectUtil.isEmpty(vehicleCode)) {
|
||||
throw new BadRequestException("托盘信息不能为空!");
|
||||
}
|
||||
if (!vehicleCode.contains("GX")) {
|
||||
if (!isValidGXCode(vehicleCode)) {
|
||||
throw new BadRequestException("请扫描或输入正确的托盘码!");
|
||||
}
|
||||
|
||||
|
||||
@@ -703,7 +703,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
|
||||
if (ObjectUtil.isEmpty(mstDao)) {
|
||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||
String currentNickName = SecurityUtils.getCurrentNickName();
|
||||
if (currentUserId.equals(IOSEnum.EXT_ACS.code("acs"))) {
|
||||
if (currentUserId.equals(IOSEnum.EXT_ACS.code("acs")) && !whereJson.get("bill_type").toString().equals(IOSEnum.IN_TYPE.code("调拨入库"))) {
|
||||
// 如果是外部系统创建人全部写系统参数: 如果包装关系上有创建人就用包装关系上的,如果没有就用默认的
|
||||
if (ObjectUtil.isEmpty(jsonSub) || ObjectUtil.isEmpty(jsonSub.getString("create_id"))) {
|
||||
currentUserId = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("IOS_CONFIRM_USER").getValue();
|
||||
|
||||
@@ -1023,27 +1023,70 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
||||
param.put("BoxWeight", box_weight);
|
||||
JSONArray rows = new JSONArray();
|
||||
|
||||
|
||||
// 1. 包装是否符合规范,是否完好无破损,PE膜是否贴端面
|
||||
JSONObject row1 = new JSONObject();
|
||||
row1.put("DataPointName", "保护棉是否填充");
|
||||
row1.put("DataPointName", "包装是否符合规范,是否完好无破损,PE膜是否贴端面");
|
||||
row1.put("DataType", "7");
|
||||
row1.put("DataValue", "true");
|
||||
row1.put("DataCollectionDefId", "001c61800000004f");
|
||||
row1.put("DataCollectionDefName", "PACKAGE");
|
||||
rows.add(row1);
|
||||
|
||||
// 2. 内包装密封完好,无划伤、撕裂、漏包
|
||||
JSONObject row2 = new JSONObject();
|
||||
row2.put("DataPointName", "信息核对准确");
|
||||
row2.put("DataPointName", "内包装密封完好,无划伤、撕裂、漏包");
|
||||
row2.put("DataType", "7");
|
||||
row2.put("DataValue", "true");
|
||||
row2.put("DataCollectionDefId", "001c61800000004f");
|
||||
row2.put("DataCollectionDefName", "PACKAGE");
|
||||
rows.add(row2);
|
||||
|
||||
// 3. 木箱是否有发霉、露钉、异物、破损等,是否符合要求
|
||||
JSONObject row3 = new JSONObject();
|
||||
row3.put("DataPointName", "木箱是否防护");
|
||||
row3.put("DataPointName", "木箱是否有发霉、露钉、异物、破损等,是否符合要求");
|
||||
row3.put("DataType", "7");
|
||||
row3.put("DataValue", "true");
|
||||
row3.put("DataCollectionDefId", "001c61800000004f");
|
||||
row3.put("DataCollectionDefName", "PACKAGE");
|
||||
rows.add(row3);
|
||||
|
||||
// 4. 标签是否清晰完整
|
||||
JSONObject row4 = new JSONObject();
|
||||
row4.put("DataPointName", "标签是否清晰完整");
|
||||
row4.put("DataType", "7");
|
||||
row4.put("DataValue", "true");
|
||||
row4.put("DataCollectionDefId", "001c61800000004f");
|
||||
row4.put("DataCollectionDefName", "PACKAGE");
|
||||
rows.add(row4);
|
||||
|
||||
// 5. 标识(管标、卷标、箱标)与实物一致,无错标、漏标、模糊不清
|
||||
JSONObject row5 = new JSONObject();
|
||||
row5.put("DataPointName", "标识(管标、卷标、箱标)与实物一致,无错标、漏标、模糊不清");
|
||||
row5.put("DataType", "7");
|
||||
row5.put("DataValue", "true");
|
||||
row5.put("DataCollectionDefId", "001c61800000004f");
|
||||
row5.put("DataCollectionDefName", "PACKAGE");
|
||||
rows.add(row5);
|
||||
|
||||
// 6. 标签是否符合要求
|
||||
JSONObject row6 = new JSONObject();
|
||||
row6.put("DataPointName", "标签是否符合要求");
|
||||
row6.put("DataType", "7");
|
||||
row6.put("DataValue", "true");
|
||||
row6.put("DataCollectionDefId", "001c61800000004f");
|
||||
row6.put("DataCollectionDefName", "PACKAGE");
|
||||
rows.add(row6);
|
||||
|
||||
// 7. 接头是否符合(标箔)
|
||||
JSONObject row7 = new JSONObject();
|
||||
row7.put("DataPointName", "接头是否符合(标箔)");
|
||||
row7.put("DataType", "7");
|
||||
row7.put("DataValue", "true");
|
||||
row7.put("DataCollectionDefId", "001c61800000004f");
|
||||
row7.put("DataCollectionDefName", "PACKAGE");
|
||||
rows.add(row7);
|
||||
|
||||
param.put("DataPoints", rows);
|
||||
log.info("BoxDataCollectionSubmit2接口请求参数为:-------------------" + param.toString());
|
||||
try {
|
||||
|
||||
@@ -435,6 +435,7 @@ public class FeedingServiceImpl implements FeedingService {
|
||||
cool_map.put("product_area", cool_jo.getString("product_area"));
|
||||
cool_map.put("point_location", "0");
|
||||
|
||||
//判断是否需要搬运空轴,如果需要则卡控冷却区是否有空位
|
||||
JSONObject jsonCooIvt = WQL.getWO("PDA_OVENINANDOUT_01").addParamMap(cool_map).process().uniqueResult(0);
|
||||
// 如果为空
|
||||
if (ObjectUtil.isEmpty(jsonCooIvt)) {
|
||||
|
||||
@@ -263,7 +263,8 @@ public class SubpackagerelationServiceImpl implements SubpackagerelationService
|
||||
mp.put("产品编码", json.getString("product_name"));
|
||||
mp.put("产品描述", json.getString("product_description"));
|
||||
mp.put("sap批次", json.getString("sap_pcsn"));
|
||||
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"));
|
||||
|
||||
@@ -713,9 +713,6 @@ public class CheckServiceImpl implements CheckService {
|
||||
for (int i = 0; i < rows.size(); i++) {
|
||||
JSONObject jo = rows.getJSONObject(i);
|
||||
|
||||
String storagevehicle_code = jo.getString("storagevehicle_code");
|
||||
JSONObject jsonSub = subTab.query("package_box_sn = '" + storagevehicle_code + "'").uniqueResult(0);
|
||||
|
||||
Map<String, Object> map = new LinkedHashMap<>();
|
||||
String status = jo.getString("status");
|
||||
if (StrUtil.equals(status, "1")) {
|
||||
@@ -737,22 +734,12 @@ public class CheckServiceImpl implements CheckService {
|
||||
map.put("净重", jo.getString("base_qty"));
|
||||
map.put("物料编码", jo.getString("material_code"));
|
||||
map.put("物料名称", jo.getString("material_name"));
|
||||
|
||||
if (ObjectUtil.isEmpty(jsonSub)) {
|
||||
map.put("生产日期", "");
|
||||
map.put("厚度", "");
|
||||
map.put("幅宽", "");
|
||||
map.put("标准厚度", "");
|
||||
map.put("客户要求幅宽", "");
|
||||
map.put("备注", "");
|
||||
} else {
|
||||
map.put("生产日期", jsonSub.getString("date_of_production"));
|
||||
map.put("厚度", jsonSub.getString("thickness"));
|
||||
map.put("幅宽", jsonSub.getString("width"));
|
||||
map.put("标准厚度", jsonSub.getString("thickness_request"));
|
||||
map.put("客户要求幅宽", jsonSub.getString("width_standard"));
|
||||
map.put("备注", jo.getString("remark"));
|
||||
}
|
||||
map.put("生产日期", jo.getString("date_of_production"));
|
||||
map.put("厚度", jo.getString("thickness"));
|
||||
map.put("幅宽", jo.getString("width"));
|
||||
map.put("标准厚度", jo.getString("thickness_request"));
|
||||
map.put("客户要求幅宽", jo.getString("width_standard"));
|
||||
map.put("备注", jo.getString("remark2"));
|
||||
list.add(map);
|
||||
}
|
||||
FileUtil.downloadExcel(list, response);
|
||||
|
||||
@@ -121,7 +121,7 @@
|
||||
mb.material_code,
|
||||
mb.material_name,
|
||||
user1.person_name AS process_optname,
|
||||
sub.date_of_production
|
||||
sub.*
|
||||
FROM
|
||||
ST_IVT_CheckDtl CheckDtl
|
||||
LEFT JOIN md_me_materialbase mb ON mb.material_id = CheckDtl.material_id
|
||||
@@ -130,6 +130,11 @@
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
MIN(date_of_production) AS date_of_production,
|
||||
MIN(thickness) AS thickness,
|
||||
MIN(width) AS width,
|
||||
MIN(thickness_request) AS thickness_request,
|
||||
MIN(width_standard) AS width_standard,
|
||||
MIN(remark) AS remark2,
|
||||
package_box_sn
|
||||
FROM
|
||||
pdm_bi_subpackagerelation
|
||||
@@ -249,7 +254,7 @@
|
||||
WHERE
|
||||
1 = 1
|
||||
-- AND struct.lock_type = '1'
|
||||
AND struct.lock_type <> '88'
|
||||
-- AND struct.lock_type <> '88'
|
||||
AND IFNULL(struct.storagevehicle_code,'') <> ''
|
||||
|
||||
OPTION 输入.remark <> ""
|
||||
|
||||
@@ -1227,7 +1227,6 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void importExcel(MultipartFile file, HttpServletRequest request) {
|
||||
// 明细
|
||||
WQLObject dtl = WQLObject.getWQLObject("st_ivt_iostorinvdtl");
|
||||
@@ -1263,11 +1262,10 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
|
||||
}
|
||||
|
||||
// 根据交货单找到主单据
|
||||
JSONObject jsonDtl = dtl.query("vbeln = '" + vbeln + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(jsonDtl)) {
|
||||
JSONObject jsonMst = WQL.getWO("QST_IVT_CHECKOUTBILL").addParam("flag","22").addParam("vbeln",vbeln).process().uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(jsonMst)) {
|
||||
continue;
|
||||
}
|
||||
JSONObject jsonMst = mst.query("iostorinv_id = '" + jsonDtl.getString("iostorinv_id") + "'").uniqueResult(0);
|
||||
|
||||
// 物流公司名称
|
||||
String cust_name = list.get(1).toString();
|
||||
@@ -1285,7 +1283,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
|
||||
// 其他费用
|
||||
String other_freight = list.get(4).toString();
|
||||
|
||||
// 其他费用
|
||||
// 预估费用
|
||||
String estimated_freight = list.get(5).toString();
|
||||
|
||||
// 更新主表
|
||||
|
||||
@@ -1380,3 +1380,19 @@
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "22"
|
||||
QUERY
|
||||
SELECT
|
||||
mst.*
|
||||
FROM
|
||||
st_ivt_iostorinvdtl dtl
|
||||
LEFT JOIN st_ivt_iostorinv mst ON mst.iostorinv_id = dtl.iostorinv_id
|
||||
WHERE
|
||||
vbeln = 输入.vbeln
|
||||
AND
|
||||
mst.is_delete = '0'
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
|
||||
@@ -181,7 +181,7 @@
|
||||
<el-table-column show-overflow-tooltip prop="sap_pcsn" label="sap批次号" width="140px" align="center" />
|
||||
<el-table-column prop="plan_qty" label="出库重量" width="150" align="center">
|
||||
<template scope="scope">
|
||||
<el-input-number v-show="!scope.row.edit" v-model="scope.row.plan_qty" :precision="3" :controls="false" :min="1" style="width: 120px" />
|
||||
<el-input-number v-show="!scope.row.edit" v-model="scope.row.plan_qty" :precision="3" :controls="false" style="width: 120px" />
|
||||
<span v-show="scope.row.edit">{{ scope.row.plan_qty }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -442,7 +442,9 @@ export default {
|
||||
'data': rows
|
||||
}
|
||||
if(this.form.bill_type === '1011') {
|
||||
debugger
|
||||
rows.forEach((item) => {
|
||||
debugger
|
||||
if (this.form.tableData.length !== 0) {
|
||||
this.flagnow = false
|
||||
for (let i = 0; i < this.form.tableData.length; i++) {
|
||||
@@ -451,6 +453,7 @@ export default {
|
||||
}
|
||||
}
|
||||
if (!this.flagnow) {
|
||||
debugger
|
||||
item.edit = false
|
||||
this.form.tableData.splice(-1, 0, item)
|
||||
this.form.total_qty = parseFloat(this.form.total_qty) + parseFloat(item.plan_qty)
|
||||
|
||||
@@ -291,7 +291,7 @@
|
||||
<el-table-column prop="sap_pcsn" label="sap批次号" width="150px" :min-width="flexWidth('sap_pcsn',crud.data,'sap批次号')" />
|
||||
<el-table-column show-overflow-tooltip prop="plan_qty" label="出库重量" :formatter="crud.formatNum3" align="center" width="120px" :min-width="flexWidth('plan_qty',crud.data,'出库重量')">
|
||||
<template scope="scope">
|
||||
<el-input-number v-show="mstrow.bill_type === '1011'" v-model="scope.row.plan_qty" :precision="3" :controls="false" :min="1" style="width: 90px" />
|
||||
<el-input-number v-show="mstrow.bill_type === '1011'" v-model="scope.row.plan_qty" :precision="3" :controls="false" style="width: 90px" />
|
||||
<span v-show="mstrow.bill_type !== '1011'">{{ parseFloat(scope.row.plan_qty).toFixed(3) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
Reference in New Issue
Block a user