diff --git a/lms/nladmin-system/pom.xml b/lms/nladmin-system/pom.xml index d823fcc49..506e552b6 100644 --- a/lms/nladmin-system/pom.xml +++ b/lms/nladmin-system/pom.xml @@ -452,6 +452,11 @@ easyexcel 2.2.6 + + mysql + mysql-connector-java + 8.0.20 + diff --git a/lms/nladmin-system/src/main/java/org/nl/config/DruidFilter.java b/lms/nladmin-system/src/main/java/org/nl/config/DruidFilter.java new file mode 100644 index 000000000..f885eafdf --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/config/DruidFilter.java @@ -0,0 +1,98 @@ +package org.nl.config; + +import com.alibaba.druid.filter.FilterChain; +import com.alibaba.druid.filter.FilterEventAdapter; +import com.alibaba.druid.proxy.jdbc.JdbcParameter; +import com.alibaba.druid.proxy.jdbc.PreparedStatementProxy; +import com.alibaba.druid.proxy.jdbc.ResultSetProxy; +import com.alibaba.druid.proxy.jdbc.StatementProxy; +import com.alibaba.druid.sql.SQLUtils; +import com.alibaba.druid.util.JdbcUtils; +import com.alibaba.fastjson.JSON; +import com.mysql.cj.jdbc.result.ResultSetImpl; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.MDC; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Map; + +/* + * @author ZZQ + * @Date 2023/2/10 11:27 上午 + */ +@Slf4j +public class DruidFilter extends FilterEventAdapter { + + @Override + public int preparedStatement_executeUpdate(FilterChain chain, PreparedStatementProxy statement) throws SQLException { + + return super.preparedStatement_executeUpdate(chain, statement); + } + + @Override + public int statement_executeUpdate(FilterChain chain, StatementProxy statement, String sql) throws SQLException { + + return super.statement_executeUpdate(chain, statement, sql); + } + + @Override + protected void statementExecuteAfter(StatementProxy statement, String sql, boolean result) { + String traceId = MDC.get("traceId"); + int size = statement.getParametersSize(); + String executeSql = sql; + int count = 0; + try { + count=statement.getUpdateCount(); + }catch (Exception ex){ } + if (StringUtils.isNotEmpty(traceId) && count>0) { + if (size > 0) { + Collection values = statement.getParameters().values(); + List params = new ArrayList<>(); + for (JdbcParameter value : values) { + params.add(value.getValue()); + } + executeSql = SQLUtils.format(executeSql, JdbcUtils.MYSQL, params); + } + log.info("[----SQL----][update][ SQL: {} ]", executeSql); + } + super.statementExecuteAfter(statement, sql, result); + } + @Override + public ResultSetProxy statement_getResultSet(FilterChain chain, StatementProxy statement) throws SQLException { + ResultSetProxy rs = super.statement_getResultSet(chain, statement); + String executeSql = statement.getLastExecuteSql(); + String traceId = MDC.get("traceId"); + if (StringUtils.isNotEmpty(traceId)){ + int result = 0; + if (rs != null) { + ResultSetImpl rss = rs.getResultSetRaw().unwrap(ResultSetImpl.class); + result = rss.getRows().size(); + } + try { + int size = statement.getParametersSize(); + if (size>0){ + Collection values = statement.getParameters().values(); + List params = new ArrayList<>(); + for (JdbcParameter value : values) { + params.add(value.getValue()); + } + executeSql = SQLUtils.format(executeSql, JdbcUtils.MYSQL, params); + } + }catch (Exception ex){ + log.warn("[-SQL解析异常-][{}]",ex.getMessage()); + } + log.info("[----SQL----][select][执行结果:{}][ SQL: {} ]",result, executeSql); + } + return rs; + } + + + + + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/logging/aspect/LogAspect.java b/lms/nladmin-system/src/main/java/org/nl/modules/logging/aspect/LogAspect.java index bdd69c14e..63a20d641 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/logging/aspect/LogAspect.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/logging/aspect/LogAspect.java @@ -116,21 +116,20 @@ public class LogAspect { } } }catch (Exception ex){ - StringBuffer errorInfo = new StringBuffer(); - errorInfo.append(ex.getMessage()).append("\n"); + StringBuffer errorStack = new StringBuffer(); + String errorMsg = ex.getMessage(); int x = 0; StackTraceElement[] stackTrace = ex.getStackTrace(); if (stackTrace!=null && stackTrace.length>0){ - errorInfo.append("---堆栈信息:"); for (StackTraceElement stack : stackTrace) { x++; - errorInfo.append(stack.toString()).append("\n"); + errorStack.append(stack.toString()).append(" | "); if (x>10){ break; } } } - log.error("[--requestError--][请求接口:{}][请求参数:{}]【异常信息 :{}】", url,params, errorInfo.toString()); + log.error("[-requestError-][请求接口:{}]【异常信息:{}】[请求参数:{}][异常堆栈:{}]", url,errorMsg,params, errorStack.toString()); Log log = new Log("ERROR", System.currentTimeMillis() - comming); log.setExceptionDetail(ThrowableUtil.getStackTrace(ex).getBytes()); logService.save(getUsername(), StringUtils.getBrowser(request), StringUtils.getIp(request), (ProceedingJoinPoint) joinPoint, log); diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/logging/rest/EsLogController.java b/lms/nladmin-system/src/main/java/org/nl/modules/logging/rest/EsLogController.java index c2e3fe096..bc9f8b9b5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/logging/rest/EsLogController.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/logging/rest/EsLogController.java @@ -23,10 +23,10 @@ public class EsLogController { private final EsLogService esLogService; - @GetMapping("/labels") + @GetMapping("/labels/{type}") @ApiOperation("获取标签") - public ResponseEntity labelsValues() { - return new ResponseEntity<>(esLogService.getLabelsValues(), HttpStatus.OK); + public ResponseEntity labelsValues(@PathVariable String type) { + return new ResponseEntity<>(esLogService.getLabelsValues(type), HttpStatus.OK); } @PostMapping("/query") diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/logging/service/EsLogService.java b/lms/nladmin-system/src/main/java/org/nl/modules/logging/service/EsLogService.java index 04a6dcd59..1a7d2c79a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/logging/service/EsLogService.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/logging/service/EsLogService.java @@ -16,7 +16,7 @@ public interface EsLogService { * 获取labels和values树 * @return */ - JSONArray getLabelsValues(); + JSONArray getLabelsValues(String type); /** * 日志查询 diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/logging/service/dto/LogQuery.java b/lms/nladmin-system/src/main/java/org/nl/modules/logging/service/dto/LogQuery.java index bc006286d..e5e1d8a66 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/logging/service/dto/LogQuery.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/logging/service/dto/LogQuery.java @@ -27,6 +27,10 @@ public class LogQuery { * 日志级别 */ private String logLevel; + /** + * 系统标签 + */ + private String system; /** * 是否只查询Http相关请求 */ diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/logging/service/impl/EsLogServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/modules/logging/service/impl/EsLogServiceImpl.java index 9d6ccdd38..773810291 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/logging/service/impl/EsLogServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/logging/service/impl/EsLogServiceImpl.java @@ -8,9 +8,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.formula.functions.T; +import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.script.Script; +import org.elasticsearch.search.aggregations.AggregationBuilders; +import org.elasticsearch.search.aggregations.Aggregations; +import org.elasticsearch.search.aggregations.bucket.terms.Terms; import org.nl.common.domain.query.PageQuery; import org.nl.common.enums.LevelEnum; import org.nl.modules.logging.repository.EsLogRepository; @@ -21,12 +25,19 @@ import org.nl.wms.ext.acs.service.impl.AcsToWmsServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Sort; +import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate; import org.springframework.data.elasticsearch.core.aggregation.impl.AggregatedPageImpl; +import org.springframework.data.elasticsearch.core.query.FetchSourceFilter; +import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import java.util.Date; import java.util.HashMap; +import java.util.List; import java.util.Map; +import java.util.function.Consumer; +import java.util.function.Function; /** * @author ldjun @@ -40,6 +51,8 @@ public class EsLogServiceImpl implements EsLogService { private final EsLogRepository esLogRepository; + private final ElasticsearchRestTemplate elasticsearchRestTemplate; + @Override public Page query(LogQuery logQuery){ Page page = new Page<>(); @@ -60,6 +73,9 @@ public class EsLogServiceImpl implements EsLogService { if (StringUtils.isNotEmpty(logQuery.getLogLevel())){ query.must().add(QueryBuilders.matchQuery("logLevel", LevelEnum.checkLevel(logQuery.getLogLevel()))); } + if (StringUtils.isNotEmpty(logQuery.getSystem())){ + query.must().add(QueryBuilders.matchQuery("system", logQuery.getSystem())); + } if (logQuery.getIsRequest()){ query.must().add(QueryBuilders.existsQuery("requestMethod")); } @@ -86,13 +102,23 @@ public class EsLogServiceImpl implements EsLogService { @Override - public JSONArray getLabelsValues() { + public JSONArray getLabelsValues(String type) { JSONArray result = new JSONArray(); - for (LevelEnum value : LevelEnum.values()) { - JSONObject level = new JSONObject(); - level.put("label", value.name()); - level.put("value", value.name()); - result.add(level); + FetchSourceFilter fetchSourceFilter = new FetchSourceFilter(new String[]{type}, null); + NativeSearchQueryBuilder queryBuilder = new NativeSearchQueryBuilder(); + queryBuilder.withCollapseField(type+".keyword"); + queryBuilder.withSourceFilter(fetchSourceFilter); + queryBuilder.addAggregation(AggregationBuilders.terms(type).field(type+".keyword").size(100)); + Aggregations agg = elasticsearchRestTemplate.query(queryBuilder.build(), SearchResponse::getAggregations); + Terms terms = agg.get(type); + List buckets = terms.getBuckets(); + if (!CollectionUtils.isEmpty(buckets)){ + buckets.stream().map(Terms.Bucket::getKeyAsString).forEach(v-> { + JSONObject item = new JSONObject(); + item.put("label", v); + item.put("value", v); + result.add(item); + }); } return result; } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index bdcee21f0..a505051ea 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -465,6 +465,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { // 锁住点位 JSONObject jsonPoint = WQLObject.getWQLObject("sch_base_point").query("point_code = '" + point_code + "'").uniqueResult(0); jsonPoint.put("lock_type", "99"); + jsonPoint.put("vehicle_code", vehicle_code); WQLObject.getWQLObject("sch_base_point").update(jsonPoint); } result.put("status", HttpStatus.OK.value()); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/rest/MesToLmsController.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/rest/MesToLmsController.java index 77680f7f7..b3cce0c65 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/rest/MesToLmsController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/rest/MesToLmsController.java @@ -104,6 +104,14 @@ public class MesToLmsController { return new ResponseEntity<>(mesToLmsService.childRollInfoUpdate(jo), HttpStatus.OK); } + @PostMapping("/cutPlanTransferCancel") + @Log("分切计划取消") + @ApiOperation("分切计划取消") + @SaIgnore + public ResponseEntity cutPlanTransferCancel(@RequestBody JSONObject jo) { + return new ResponseEntity<>(mesToLmsService.cutPlanTransferCancel(jo), HttpStatus.OK); + } + diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/MesToLmsService.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/MesToLmsService.java index 8da5ff8b2..4cf2cac90 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/MesToLmsService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/MesToLmsService.java @@ -53,4 +53,9 @@ public interface MesToLmsService { * 子卷信息更新:计划外需求有可能入库完成后,ERP才回传计划外需求SalesOrder */ JSONObject childRollInfoUpdate(JSONObject param); + + /** + * 分切计划取消 + */ + JSONObject cutPlanTransferCancel(JSONObject param); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java index 5c7f87252..910c7c13f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java @@ -1073,4 +1073,47 @@ public class MesToLmsServiceImpl implements MesToLmsService { log.info("childRollInfoUpdate接口输出参数为:-------------------" + result.toString()); return result; } + + @Override + @Transactional(rollbackFor = Exception.class) + public JSONObject cutPlanTransferCancel(JSONObject param){ + log.info("cutPlanTransferCancel接口输入参数为:-------------------" + param.toString()); + JSONObject result = new JSONObject(); + + try { + String ContainerName = param.getString("ContainerName"); + String CancelledDate = param.getString("CancelledDate"); + + if(StrUtil.isEmpty(ContainerName)){ + throw new BadRequestException("子卷号不能为空!"); + } + + JSONObject plan_jo = WQLObject.getWQLObject("pdm_bi_slittingproductionplan").query("container_name = '"+ContainerName+"'").uniqueResult(0); + if (ObjectUtil.isEmpty(plan_jo)){ + throw new BadRequestException("系统中不存在子卷号为:"+ContainerName+"的分切计划!"); + } + + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + + plan_jo.put("is_delete","1"); + plan_jo.put("update_optid", currentUserId); + plan_jo.put("update_optname", nickName); + plan_jo.put("update_time", DateUtil.now()); + 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("childRollInfoUpdate接口输出参数为:-------------------" + result.toString()); + return result; + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/BakingServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/BakingServiceImpl.java index b3d456381..95d72defc 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/BakingServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/BakingServiceImpl.java @@ -119,7 +119,7 @@ public class BakingServiceImpl implements BakingService { hotParam.put("qty_unit_id", jsonMater.getString("base_unit_id")); hotParam.put("task_id", task_id); hotParam.put("start_point_code", point_code1); - hotParam.put("next_point_code", jsonHotIvt.getString("point_code")); + hotParam.put("end_point_code", jsonHotIvt.getString("point_code")); hotParam.put("temperature", temperature); hotParam.put("oven_time", hours); this.createHotIoMst(hotParam); @@ -160,7 +160,7 @@ public class BakingServiceImpl implements BakingService { JSONObject point_code2_jo = WQL.getWO("PDA_OVENINANDOUT_01").addParamMap(map).process().uniqueResult(0); if (ObjectUtil.isEmpty(point_code2_jo)){ - throw new BadRequestException("未查询到符合的对接位!"); + throw new BadRequestException("未查询到可用的点位类型为入箱的烘箱对接位!"); } String point_code2 = point_code2_jo.getString("point_code"); /*if (ObjectUtil.isEmpty(pointArr)) { @@ -178,7 +178,7 @@ public class BakingServiceImpl implements BakingService { jsonMap.put("max_temperature", NumberUtil.add(temperature, temperature_lose)); jsonMap.put("point_location", map.getString("point_location")); JSONObject jsonHotIvt = WQL.getWO("PDA_BAKING_01").addParamMap(jsonMap).process().uniqueResult(0); - if (ObjectUtil.isEmpty(jsonHotIvt)) throw new BadRequestException("烘烤区没有合适温度的空位"); + if (ObjectUtil.isEmpty(jsonHotIvt)) throw new BadRequestException("烘烤区没有合适温度的空位!"); // 3.创建冷却区 --> 烘烤区任务 JSONObject param = new JSONObject(); @@ -197,7 +197,7 @@ public class BakingServiceImpl implements BakingService { // 4.插入烘箱区出入主表 JSONObject jsonRaw = rawTab.query("container_name = '" + container_name + "' and is_delete = '0'").uniqueResult(0); JSONObject jsonMater = materTab.query("material_code = '" + jsonRaw.getString("product_name") + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(jsonMater)) throw new BadRequestException("物料不存在"); + if (ObjectUtil.isEmpty(jsonMater)) throw new BadRequestException("物料基础信息中无此物料!"); JSONObject hotParam = new JSONObject(); hotParam.put("container_name", container_name); @@ -247,7 +247,7 @@ public class BakingServiceImpl implements BakingService { String point_code1 = whereJson.getString("point_code"); if (ObjectUtil.isEmpty(point_code1)) throw new BadRequestException("点位不能为空"); JSONObject jsonHotIvt = hosIvtTab.query("point_code = '" + point_code1 + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(jsonHotIvt)) throw new BadRequestException("对应烘箱点位不存在"); + if (ObjectUtil.isEmpty(jsonHotIvt)) throw new BadRequestException("烘烤区域无此点位!"); //查询该点位是否存在未完成的任务 boolean have_task = new CutConveyorTask().isSingleTask(point_code1); @@ -282,7 +282,7 @@ public class BakingServiceImpl implements BakingService { map.put("point_type", "5"); JSONArray pointArr = WQL.getWO("PDA_OVENINANDOUT_01").addParamMap(map).process().getResultJSONArray(0); - if (ObjectUtil.isEmpty(pointArr)) throw new BadRequestException("没有可用的出箱暂存位"); + if (ObjectUtil.isEmpty(pointArr)) throw new BadRequestException("没有可用的点位类型为出箱的烘箱对接位!"); // 2.判断暂存位是否有任务:找到无任务的暂存位 String point_code2 = ""; @@ -299,7 +299,7 @@ public class BakingServiceImpl implements BakingService { break; } } - if (ObjectUtil.isEmpty(point_code2)) throw new BadRequestException("没有可用的出箱暂存位"); + if (ObjectUtil.isEmpty(point_code2)) throw new BadRequestException("没有可用的点位类型为出箱的烘箱对接位!"); // 3.创建任务 JSONObject param = new JSONObject(); param.put("point_code1", point_code1); @@ -348,7 +348,7 @@ public class BakingServiceImpl implements BakingService { // 1.获取此暂存位的生产区域和上下位置 JSONObject jsonPoint = pointTab.query("point_code = '" + point_code1 + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(jsonPoint)) throw new BadRequestException("点位不存在"); + if (ObjectUtil.isEmpty(jsonPoint)) throw new BadRequestException("冷却区内此点位不存在!"); // 2.找冷却区空货位 JSONObject map = new JSONObject(); @@ -392,7 +392,7 @@ public class BakingServiceImpl implements BakingService { JSONObject jsonRaw = rawTab.query("container_name = '" + container_name + "' and is_delete = '0'").uniqueResult(0); JSONObject jsonMater = materTab.query("material_code = '" + jsonRaw.getString("product_name") + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(jsonMater)) throw new BadRequestException("物料不存在"); + if (ObjectUtil.isEmpty(jsonMater)) throw new BadRequestException("物料基础信息中无此物料!"); JSONObject jsonCool = new JSONObject(); jsonCool.put("iostorinv_id", IdUtil.getSnowflake(1, 1).nextId()); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/HandleBakingServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/HandleBakingServiceImpl.java index 8bc72fdb3..2d4bfaa18 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/HandleBakingServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/HandleBakingServiceImpl.java @@ -70,7 +70,7 @@ public class HandleBakingServiceImpl implements HandleBakingService { JSONObject jsonRaw = rawTab.query("container_name = '" + container_name + "' and is_delete = '0'").uniqueResult(0); JSONObject jsonMater = materTab.query("material_code = '" + jsonRaw.getString("product_name") + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(jsonMater)) throw new BadRequestException("物料不存在"); + if (ObjectUtil.isEmpty(jsonMater)) throw new BadRequestException("物料基础信息中无此物料"); if (StrUtil.equals(option, "1")) { @@ -181,7 +181,7 @@ public class HandleBakingServiceImpl implements HandleBakingService { } else if (StrUtil.equals(option, "2")) { JSONObject cool_ivt = WQLObject.getWQLObject("st_ivt_hotpointivt").query("point_code = '" + point_code1 + "'").uniqueResult(0); if(ObjectUtil.isEmpty(cool_ivt)){ - throw new BadRequestException("请扫描正确的冷却区满轴点位!"); + throw new BadRequestException("请扫描正确的烘烤区点位!"); } String on_container_name = cool_ivt.getString("container_name"); if (!on_container_name.equals(container_name)) { diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_02.wql b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_02.wql index 691f8a773..a75255917 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_02.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_02.wql @@ -95,7 +95,7 @@ AND is_child_ps_ok = 0 AND - is_delete = '0' + plan.is_delete = '0' OPTION 输入.product_area <> "" ivt.product_area = 输入.product_area ENDOPTION @@ -185,6 +185,8 @@ is_child_tz_ok = 1 AND is_child_ps_ok = 1 + AND + plan.is_delete = '0' OPTION 输入.product_area <> "" ivt.product_area = 输入.product_area ENDOPTION @@ -213,7 +215,7 @@ AND is_child_ps_ok = 0 AND - is_delete = '0' + plan.is_delete = '0' OPTION 输入.product_area <> "" ivt.product_area = 输入.product_area ENDOPTION @@ -263,6 +265,8 @@ plan.is_child_ps_ok = '1' AND plan.status = '03' + AND + plan.is_delete = '0' OPTION 输入.product_area <> "" del.product_area = 输入.product_area ENDOPTION @@ -355,7 +359,7 @@ AND is_parent_ok = 0 AND - is_delete = '0' + plan.is_delete = '0' OPTION 输入.product_area <> "" ivt.product_area = 输入.product_area ENDOPTION @@ -403,6 +407,7 @@ task.task_type = '010402' AND IFNULL( plan.qzzno, '' ) <> '' AND task.is_delete = '0' + AND plan.is_delete = '0' AND task.task_status < '07' OPTION 输入.product_area <> "" cut.product_area = 输入.product_area @@ -421,6 +426,8 @@ LEFT JOIN st_ivt_cutpointivt cut ON cut.ext_code = plan.resource_name WHERE ivt.point_status = '03' + AND + plan.is_delete = '0' OPTION 输入.product_area <> "" cut.product_area = 输入.product_area ENDOPTION @@ -437,6 +444,8 @@ LEFT JOIN st_ivt_cutpointivt cut ON cut.ext_code = plan.resource_name WHERE plan.qzzno = 输入.qzzno + AND + plan.is_delete = '0' OPTION 输入.product_area <> "" cut.product_area = 输入.product_area ENDOPTION @@ -464,6 +473,7 @@ WHERE ivt.point_status = '03' AND plan.`status` = '03' + AND plan.is_delete = '0' AND plan.resource_name = 输入.resource_name ORDER BY plan.manufacture_sort, @@ -503,6 +513,8 @@ is_child_ps_ok = '1' AND `status` = '03' + AND + plan.is_delete = '0' AND del.point_status = '03' OPTION 输入.ext_code <> "" diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/CoolInServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/CoolInServiceImpl.java index 563842a67..a3c0b8a22 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/CoolInServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/CoolInServiceImpl.java @@ -63,7 +63,7 @@ public class CoolInServiceImpl implements CoolInService { // 查询终点在冷却区是否存在 JSONObject jsonCoolIvt = coolIvtTab.query("full_point_code = '" + point_code + "' and full_point_status = '01' and empty_point_status = '01' and is_used = '1'").uniqueResult(0); - if (ObjectUtil.isEmpty(jsonCoolIvt)) throw new BadRequestException("此点位不存在或被占用"+point_code); + if (ObjectUtil.isEmpty(jsonCoolIvt)) throw new BadRequestException("冷却区不存在该满轴点位或空轴、满轴点位上有货!"); //查询该点位是否存在任务 JSONObject task_jo = WQLObject.getWQLObject("sch_base_task").query("(point_code1 like '%"+jsonCoolIvt.getString("point_code")+"%' OR point_code2 like '%"+jsonCoolIvt.getString("point_code")+"%') AND is_delete = '0' AND task_status < '07'").uniqueResult(0); @@ -93,7 +93,7 @@ public class CoolInServiceImpl implements CoolInService { coolIvtTab.insert(jsonCool);*/ // 校验母卷号是否已存在 JSONObject json = coolIvtTab.query("container_name = '" + raw_jo.getString("container_name") + "'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(json)) throw new BadRequestException("此母卷库存已存在"); + if (ObjectUtil.isNotEmpty(json)) throw new BadRequestException("冷却区中此母卷库存已存在"); //查询对应母卷信息 JSONObject mom_jo = WQLObject.getWQLObject("pdm_bi_rawfoilworkorder").query("container_name = '"+raw_jo.getString("container_name")+"'").uniqueResult(0); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/PdaCheckServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/PdaCheckServiceImpl.java index a89fedd10..18c5836d6 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/PdaCheckServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/PdaCheckServiceImpl.java @@ -10,6 +10,7 @@ import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.common.utils.SecurityUtils; +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.basedata.st.service.impl.UserStorServiceImpl; @@ -55,6 +56,7 @@ public class PdaCheckServiceImpl implements PdaCheckService { @Override public JSONObject checkQueryDtl(JSONObject whereJson) { + String box_no = whereJson.getString("box_no"); JSONObject map = new JSONObject(); @@ -64,8 +66,16 @@ public class PdaCheckServiceImpl implements PdaCheckService { JSONArray resultJSONArray = WQL.getWO("PDA_CHECK").addParamMap(map).process().getResultJSONArray(0); + // 已盘点数: 不等于生成状态 + JSONArray unCheckNumArr = WQLObject.getWQLObject("ST_IVT_CheckDtl").query("check_code = '" + whereJson.getString("check_code") + "' and status <> '1'").getResultJSONArray(0); + + // 未盘点数:等于生成状态 + JSONArray checkNumArr = WQLObject.getWQLObject("ST_IVT_CheckDtl").query("check_code = '" + whereJson.getString("check_code") + "' and status = '1'").getResultJSONArray(0); + JSONObject jo = new JSONObject(); jo.put("data", resultJSONArray); + jo.put("check_num", unCheckNumArr.size()); + jo.put("uncheck_num", checkNumArr.size()); jo.put("message", "查询成功!"); return jo; } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/wql/PDA_CHECK.wql b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/wql/PDA_CHECK.wql index e90986cc5..c344e7ff6 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/wql/PDA_CHECK.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/wql/PDA_CHECK.wql @@ -129,12 +129,14 @@ dtl.check_optname, dtl.check_time, dtl.remark, + sub.quanlity_in_box, dtl.check_id, dtl.checkdtl_id FROM ST_IVT_CheckDtl dtl LEFT JOIN md_me_materialbase mater ON dtl.material_id = mater.material_id + LEFT JOIN pdm_bi_subpackagerelation sub ON sub.package_box_sn = dtl.storagevehicle_code WHERE dtl.status = '1' diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/task/wql/PDA_TASK.wql b/lms/nladmin-system/src/main/java/org/nl/wms/pda/task/wql/PDA_TASK.wql index e96bef5d4..3d04f186a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/task/wql/PDA_TASK.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/task/wql/PDA_TASK.wql @@ -58,31 +58,14 @@ WHEN '06' THEN '执行中' END ) AS task_status, - ( - CASE task_type - WHEN '010101' THEN '标准任务' - WHEN '010102' THEN '取满(生箔->冷却)' - WHEN '010103' THEN '取空(冷却->生箔)' - WHEN '010201' THEN '冷却->烘箱' - WHEN '010202' THEN '烘箱->暂存位' - WHEN '010203' THEN '暂存位->烘箱' - WHEN '010204' THEN '暂存位->冷却' - WHEN '010301' THEN '标准任务' - WHEN '010302' THEN '取满(冷却->分切)' - WHEN '010303' THEN '取空(分切->冷却)' - WHEN '010401' THEN '输送出' - WHEN '010402' THEN '输送入' - WHEN '010403' THEN '桁架标准任务' - WHEN '010404' THEN '分切>输送线' - WHEN '010405' THEN '输送线>分切' - END - ) AS task_type, + class.class_name AS task_type, car_no, create_time, vehicle_code2, material_code FROM - SCH_BASE_Task + SCH_BASE_Task task + LEFT JOIN md_pb_classstandard class ON class.class_code = task.task_type WHERE is_delete = '0' AND task_status <> '07' diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/InbillServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/InbillServiceImpl.java index 395676328..d0a2caa67 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/InbillServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/InbillServiceImpl.java @@ -13,6 +13,8 @@ import org.nl.modules.common.exception.BadRequestException; import org.nl.common.utils.SecurityUtils; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.system.service.user.ISysUserService; +import org.nl.system.service.user.dao.SysUser; import org.nl.wms.ext.mes.service.impl.LmsToMesServiceImpl; import org.nl.wms.st.inbill.service.StorPublicService; import org.springframework.beans.factory.annotation.Autowired; @@ -31,6 +33,8 @@ public class InbillServiceImpl { private final StorPublicService storPublicService; + private final ISysUserService iSysUserService; + public void operatePoint(String operate, JSONObject form) { WQLObject point_table = WQLObject.getWQLObject("SCH_BASE_Point"); WQLObject struct_table = WQLObject.getWQLObject("ST_IVT_StructAttr"); @@ -191,7 +195,8 @@ public class InbillServiceImpl { // 调用接口回传 JSONObject paramMesMst = new JSONObject(); paramMesMst.put("PackageBoxSN",box_row.getString("box_no")); - paramMesMst.put("User",box_row.getString("confirm_optname")); + SysUser sysUser = iSysUserService.getById(box_row.getString("confirm_optid")); + paramMesMst.put("User",sysUser.getUsername()); // new LmsToMesServiceImpl().childRollFGInboundComplete(paramMesMst); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/rest/CheckController.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/rest/CheckController.java index 4fdda41a3..e417f3372 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/rest/CheckController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/rest/CheckController.java @@ -87,6 +87,13 @@ public class CheckController { checkService.insertDtl(whereJson); return new ResponseEntity<>(HttpStatus.CREATED); } + @PostMapping("/allInsert") + @Log("新增全部在库木箱") + @ApiOperation("新增全部在库木箱") + public ResponseEntity allInsert(@RequestBody JSONObject whereJson){ + checkService.allInsert(whereJson); + return new ResponseEntity<>(HttpStatus.CREATED); + } @GetMapping("/getStructIvt") @Log("查询可盘点库存") @ApiOperation("查询可盘点库存") diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/CheckService.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/CheckService.java index 80ad22d3f..838c5994a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/CheckService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/CheckService.java @@ -114,4 +114,9 @@ public interface CheckService { * 处理确认 */ void disposeConfirm(JSONObject whereJson); + + /** + * 新增全部在库木箱 + */ + void allInsert(JSONObject whereJson); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/CheckServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/CheckServiceImpl.java index dc3442d38..5ddcab2b4 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/CheckServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/CheckServiceImpl.java @@ -12,6 +12,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.modules.common.exception.BadRequestException; import org.nl.common.utils.SecurityUtils; +import org.nl.modules.common.utils.FileUtil; import org.nl.modules.system.util.CodeUtil; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; @@ -215,11 +216,26 @@ public class CheckServiceImpl implements CheckService { @Override public JSONArray getOutBillDtl(Map whereJson) { - whereJson.put("flag", "2"); - JSONArray jo = WQL.getWO("QST_IVT_CHECK") - .addParamMap((HashMap) whereJson) - .process() - .getResultJSONArray(0); + String type = MapUtil.getStr(whereJson, "type"); + + JSONArray jo = new JSONArray(); + if (ObjectUtil.isNotEmpty(type)) { + if (StrUtil.equals(type, "1")){ + // 1-已盘点 + whereJson.put("flag", "22"); + jo = WQL.getWO("QST_IVT_CHECK").addParamMap((HashMap) whereJson).process().getResultJSONArray(0); + } else { + // 1-未盘点 + whereJson.put("flag", "222"); + jo = WQL.getWO("QST_IVT_CHECK").addParamMap((HashMap) whereJson).process().getResultJSONArray(0); + } + } else { + whereJson.put("flag", "2"); + jo = WQL.getWO("QST_IVT_CHECK") + .addParamMap((HashMap) whereJson) + .process() + .getResultJSONArray(0); + } return jo; } @@ -666,51 +682,30 @@ public class CheckServiceImpl implements CheckService { for (int i = 0; i < rows.size(); i++) { JSONObject jo = rows.getJSONObject(i); Map map = new LinkedHashMap<>(); - map.put("盘点单号", jo.getString("check_code")); - map.put("明细序号", jo.getString("seq_no")); - map.put("库区编码", jo.getString("sect_code")); - map.put("库区名称", jo.getString("sect_name")); - map.put("货位编码", jo.getString("struct_code")); - map.put("货位名称", jo.getString("struct_name")); - map.put("载具号", jo.getString("storagevehicle_code")); - map.put("物料编码", jo.getString("material_code")); - map.put("物料名称", jo.getString("material_name")); - map.put("桶数", jo.getString("base_qty")); - map.put("盘点桶数", jo.getString("fac_qty")); - map.put("单位", jo.getString("qty_unit_name")); - String check_result = jo.getString("check_result"); - if (check_result.equals("0")) { - map.put("盘点结果", "正常"); - } else if (check_result.equals("1")) { - map.put("盘点结果", "盘亏"); - } else if (check_result.equals("2")) { - map.put("盘点结果", "盘盈"); - } String status = jo.getString("status"); - if (status.equals("01")) { + if (StrUtil.equals(status, "1")) { map.put("状态", "生成"); - } else if (status.equals("04")) { + } else if (StrUtil.equals(status, "2")) { map.put("状态", "盘点中"); - } else if (status.equals("05")) { + } else if (StrUtil.equals(status, "3")) { map.put("状态", "已盘点"); - } else if (status.equals("06")) { + } else if (StrUtil.equals(status, "4")) { map.put("状态", "异常处理中"); - } else if (status.equals("07")) { + } else if (StrUtil.equals(status, "5")) { map.put("状态", "异常处理完成"); - } else if (status.equals("99")) { + } else if (StrUtil.equals(status, "99")) { map.put("状态", "确认完成"); } - map.put("异常处理人", jo.getString("process_optname")); - map.put("异常处理时间", jo.getString("process_time")); - String process_type = jo.getString("process_type"); - if (process_type.equals("0")) { - map.put("异常处理方式", "账务为准"); - } else if (process_type.equals("1")) { - map.put("异常处理方式", "实物为准"); - } + map.put("盘点库区", jo.getString("sect_name")); + map.put("盘点货位", jo.getString("struct_name")); + map.put("箱号", jo.getString("storagevehicle_code")); + map.put("净重", jo.getString("base_qty")); + map.put("物料编码", jo.getString("material_code")); + map.put("物料名称", jo.getString("material_name")); + map.put("备注", jo.getString("remark")); list.add(map); } - //FileUtil.downloadExcel(list, response); + FileUtil.downloadExcel(list, response); } @Override @@ -757,5 +752,60 @@ public class CheckServiceImpl implements CheckService { } } + @Override + @Transactional(rollbackFor = Exception.class) + public void allInsert(JSONObject jsonObject) { + WQLObject mstTab = WQLObject.getWQLObject("ST_IVT_CheckMst"); // 盘点单主表 + WQLObject dtlTab = WQLObject.getWQLObject("ST_IVT_CheckDtl"); // 盘点单明细表 + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + Long deptId = SecurityUtils.getDeptId(); + + // 查找库内所有在库木箱 + JSONArray dtlArr = WQL.getWO("QST_IVT_CHECK").addParam("flag", "11").addParam("stor_id", jsonObject.getString("stor_id")).process().getResultJSONArray(0); + + // 插入主表 + JSONObject jsonMst = new JSONObject(); + jsonMst.put("check_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonMst.put("check_code", CodeUtil.getNewCode("PD_CODE")); + jsonMst.put("buss_type", jsonObject.getString("check_type")); + jsonMst.put("check_type", jsonObject.getString("check_type")); + jsonMst.put("stor_id", jsonObject.getLongValue("stor_id")); + jsonMst.put("stor_name", jsonObject.getString("stor_name")); + jsonMst.put("dtl_num", dtlArr.size()); + jsonMst.put("create_mode", "01"); + jsonMst.put("is_nok", "0"); + jsonMst.put("input_optid", currentUserId); + jsonMst.put("input_optname", nickName); + jsonMst.put("input_time", DateUtil.now()); + jsonMst.put("remark", jsonObject.getString("remark")); + jsonMst.put("status", "1"); + jsonMst.put("sysdeptid", deptId); + jsonMst.put("syscompanyid", deptId); + mstTab.insert(jsonMst); + + // 插入明细 + for (int i = 0; i < dtlArr.size(); i++) { + JSONObject json = dtlArr.getJSONObject(i); + JSONObject jsonDtl = new JSONObject(); + jsonDtl.put("checkdtl_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonDtl.put("check_id", jsonMst.getLongValue("check_id")); + jsonDtl.put("check_code", jsonMst.getString("check_code")); + jsonDtl.put("seq_no", i + 1); + jsonDtl.put("sect_id", json.getLongValue("sect_id")); + jsonDtl.put("sect_name", json.getString("sect_name")); + jsonDtl.put("struct_id", json.getLongValue("struct_id")); + jsonDtl.put("struct_name", json.getString("struct_name")); + jsonDtl.put("storagevehicle_code", json.getString("storagevehicle_code")); + jsonDtl.put("material_id", json.getLongValue("material_id")); + jsonDtl.put("qty_unit_id", json.getLongValue("measure_unit_id")); + jsonDtl.put("qty_unit_name", json.getString("qty_unit_name")); + jsonDtl.put("status", "1"); + + JSONObject jsonSub = WQL.getWO("PDA_CHECK").addParam("flag", "4").addParam("storagevehicle_code", json.getString("storagevehicle_code")).process().uniqueResult(0); + jsonDtl.put("base_qty", jsonSub.getDoubleValue("net_weight")); + dtlTab.insert(jsonDtl); + } + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_CHECK.wql b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_CHECK.wql index 350ae9f07..3bcb3b7ae 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_CHECK.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_CHECK.wql @@ -141,6 +141,56 @@ ENDQUERY ENDIF + IF 输入.flag = "22" + QUERY + SELECT + CheckDtl.*, + struct.struct_code, + struct.sect_code, + mb.material_code, + mb.material_name, + user1.person_name AS process_optname + FROM + ST_IVT_CheckDtl CheckDtl + LEFT JOIN md_me_materialbase mb ON mb.material_id = CheckDtl.material_id + LEFT JOIN st_ivt_structattr struct ON struct.struct_id = CheckDtl.struct_id + LEFT JOIN sys_user user1 ON user1.user_id = CheckDtl.process_optid + WHERE + CheckDtl.status <> '1' + OPTION 输入.check_id <> "" + CheckDtl.check_id = 输入.check_id + ENDOPTION + + order by CheckDtl.seq_no + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "222" + QUERY + SELECT + CheckDtl.*, + struct.struct_code, + struct.sect_code, + mb.material_code, + mb.material_name, + user1.person_name AS process_optname + FROM + ST_IVT_CheckDtl CheckDtl + LEFT JOIN md_me_materialbase mb ON mb.material_id = CheckDtl.material_id + LEFT JOIN st_ivt_structattr struct ON struct.struct_id = CheckDtl.struct_id + LEFT JOIN sys_user user1 ON user1.user_id = CheckDtl.process_optid + WHERE + CheckDtl.status = '1' + OPTION 输入.check_id <> "" + CheckDtl.check_id = 输入.check_id + ENDOPTION + + order by CheckDtl.seq_no + ENDSELECT + ENDQUERY + ENDIF + IF 输入.flag = "3" PAGEQUERY SELECT @@ -433,3 +483,33 @@ ENDSELECT ENDPAGEQUERY ENDIF + + IF 输入.flag = "11" + QUERY + SELECT + MAX(attr.sect_id) AS sect_id, + MAX(attr.sect_name) AS sect_name, + MAX(attr.struct_id) AS struct_id, + MAX(attr.struct_name) AS struct_name, + MAX(attr.storagevehicle_code) AS storagevehicle_code, + MAX(mater.material_id) AS material_id, + MAX(mater.base_unit_id) AS qty_unit_id, + 'KG' AS qty_unit_name + FROM + st_ivt_structivt ivt + LEFT JOIN st_ivt_structattr attr ON ivt.struct_id = attr.struct_id + LEFT JOIN md_me_materialbase mater ON ivt.material_id = mater.material_id + WHERE + attr.sect_code in ('XN01','XN11') + AND IFNULL(attr.storagevehicle_code,'') <> '' + AND attr.lock_type = '1' + + OPTION 输入.stor_id <> "" + attr.stor_id = 输入.stor_id + ENDOPTION + + group by attr.struct_code + + ENDSELECT + ENDQUERY + ENDIF diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/impl/InAndOutRetrunServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/impl/InAndOutRetrunServiceImpl.java index b0a387ebf..9156a1ae4 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/impl/InAndOutRetrunServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/impl/InAndOutRetrunServiceImpl.java @@ -11,12 +11,15 @@ import lombok.extern.slf4j.Slf4j; import org.nl.modules.common.exception.BadRequestException; import org.nl.common.utils.SecurityUtils; import org.nl.system.service.param.impl.SysParamServiceImpl; +import org.nl.system.service.user.ISysUserService; +import org.nl.system.service.user.dao.SysUser; import org.nl.system.service.user.dto.CurrentUser; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.SpringContextHolder; import org.nl.modules.wql.util.WqlUtil; +import org.nl.system.service.user.dto.UserDto; import org.nl.wms.basedata.st.service.impl.UserStorServiceImpl; import org.nl.wms.ext.mes.service.impl.LmsToMesServiceImpl; import org.nl.wms.ext.sap.service.impl.LmsToSapServiceImpl; @@ -42,6 +45,8 @@ import java.util.Map; public class InAndOutRetrunServiceImpl implements InAndOutReturnService { private final TransactionTemplate transactionTemplate; + private final ISysUserService iSysUserService; + @Override public Map pageQuery(Map whereJson, Pageable page) { HashMap map = new HashMap<>(whereJson); @@ -114,7 +119,8 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService { // 调用接口回传 JSONObject paramMesMst = new JSONObject(); paramMesMst.put("PackageBoxSN", box_row.getString("box_no")); - paramMesMst.put("User", box_row.getString("confirm_optname")); + SysUser sysUser = iSysUserService.getById(box_row.getString("confirm_optid")); + paramMesMst.put("User", sysUser.getUsername()); new LmsToMesServiceImpl().childRollFGInboundComplete(paramMesMst); jo_mst.put("is_upload", "1"); @@ -706,7 +712,8 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService { // 调用接口回传 JSONObject paramMesMst = new JSONObject(); paramMesMst.put("PackageBoxSN", box_row.getString("box_no")); - paramMesMst.put("User", box_row.getString("confirm_optname")); + SysUser sysUser = iSysUserService.getById(box_row.getString("confirm_optid")); + paramMesMst.put("User", sysUser.getUsername()); new LmsToMesServiceImpl().childRollFGInboundComplete(paramMesMst); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/wql/QST_IVT_INANDOUTRETRUN.wql b/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/wql/QST_IVT_INANDOUTRETRUN.wql index 5dfccaae8..61ddb01f5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/wql/QST_IVT_INANDOUTRETRUN.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/wql/QST_IVT_INANDOUTRETRUN.wql @@ -145,7 +145,8 @@ QUERY SELECT DISTINCT dis.box_no, - mst.confirm_optname + mst.confirm_optname, + mst.confirm_optid FROM st_ivt_iostorinvdis dis LEFT JOIN st_ivt_iostorinv mst ON mst.iostorinv_id = dis.iostorinv_id diff --git a/lms/nladmin-system/src/main/resources/META-INF/druid-filter.properties b/lms/nladmin-system/src/main/resources/META-INF/druid-filter.properties new file mode 100644 index 000000000..9b025c101 --- /dev/null +++ b/lms/nladmin-system/src/main/resources/META-INF/druid-filter.properties @@ -0,0 +1 @@ +druid.filters.DruidFilter=org.nl.config.DruidFilter diff --git a/lms/nladmin-system/src/main/resources/config/application-dev.yml b/lms/nladmin-system/src/main/resources/config/application-dev.yml index 8ad7f60e3..d267e00d8 100644 --- a/lms/nladmin-system/src/main/resources/config/application-dev.yml +++ b/lms/nladmin-system/src/main/resources/config/application-dev.yml @@ -24,9 +24,8 @@ spring: driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy # url: jdbc:log4jdbc:mysql://${DB_HOST:10.1.3.91}:${DB_PORT:3306}/${DB_NAME:lms_test2}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true - # username: ${DB_USER:root} + # username: ${DB_USER:root} username: ${DB_USER:root} -# password: ${DB_PWD:123456} password: ${DB_PWD:942464Yy} # 初始连接数 initial-size: 5 @@ -59,16 +58,17 @@ spring: enabled: true url-pattern: /druid/* reset-enable: false - filter: - stat: - enabled: true - # 记录慢SQL - log-slow-sql: true - slow-sql-millis: 1000 - merge-sql: true - wall: - config: - multi-statement-allow: true + filters: + DruidFilter,stat +# stat: +# enabled: true +# # 记录慢SQL +# log-slow-sql: true +# slow-sql-millis: 1000 +# merge-sql: true +# wall: +# config: +# multi-statement-allow: true redis: #数据库索引 database: ${REDIS_DB:15} diff --git a/lms/nladmin-system/src/main/resources/config/application-prod.yml b/lms/nladmin-system/src/main/resources/config/application-prod.yml index 27f78fe93..6bb7eed6e 100644 --- a/lms/nladmin-system/src/main/resources/config/application-prod.yml +++ b/lms/nladmin-system/src/main/resources/config/application-prod.yml @@ -2,6 +2,22 @@ server: port: 8013 #配置数据源 spring: + data: + elasticsearch: + repositories: + enabled: true + client: + reactive: + #endpoints: 172.31.185.110:9200,172.31.154.9:9200 #内网 + # endpoints: 47.96.133.178:8200 #外网 + endpoints: http://10.1.3.90:9200 #外网 + elasticsearch: + rest: + #uris: 172.31.185.110:9200,172.31.154.9:9200 #内网 + # uris: 47.96.133.178:8200 #外网 + uris: http://10.1.3.90:9200 #外网 +# username: elastic +# password: 123456 datasource: druid: db-type: com.alibaba.druid.pool.DruidDataSource @@ -43,16 +59,17 @@ spring: enabled: true url-pattern: /druid/* reset-enable: false - filter: - stat: - enabled: true - # 记录慢SQL - log-slow-sql: true - slow-sql-millis: 1000 - merge-sql: true - wall: - config: - multi-statement-allow: true + filters: + DruidFilter,stat +# stat: +# enabled: true +# # 记录慢SQL +# log-slow-sql: true +# slow-sql-millis: 1000 +# merge-sql: true +# wall: +# config: +# multi-statement-allow: true redis: #数据库索引 database: ${REDIS_DB:14} @@ -70,6 +87,7 @@ spring: idleConnectionTimeout: 10000 timeout: 3000 + # 登录相关配置 login: # 登录缓存 diff --git a/lms/nladmin-system/src/main/resources/logback-spring.xml b/lms/nladmin-system/src/main/resources/logback-spring.xml index cdaba3b8e..729ee7516 100644 --- a/lms/nladmin-system/src/main/resources/logback-spring.xml +++ b/lms/nladmin-system/src/main/resources/logback-spring.xml @@ -195,6 +195,10 @@ https://juejin.cn/post/6844903775631572999 + + + + diff --git a/lms/nladmin-ui/src/views/wms/st/inStor/check/AddDialog.vue b/lms/nladmin-ui/src/views/wms/st/inStor/check/AddDialog.vue index 8240715c7..151b4a3cb 100644 --- a/lms/nladmin-ui/src/views/wms/st/inStor/check/AddDialog.vue +++ b/lms/nladmin-ui/src/views/wms/st/inStor/check/AddDialog.vue @@ -9,11 +9,12 @@ @close="close" > - + - + + 一键保存 保存 关闭 @@ -89,7 +90,7 @@
盘点明细 - + @@ -99,10 +100,47 @@ type="primary" icon="el-icon-plus" size="mini" + v-if="crud.status.cu > 0" @click="queryDtl()" > 添加盘点物料 + + 已盘点 + + + 未盘点 + + + 导出 +
@@ -123,8 +161,10 @@ {{ scope.row.storagevehicle_code }} + +