diff --git a/ant-design-vue-jeecg/src/utils/request.js b/ant-design-vue-jeecg/src/utils/request.js index d94c1db..0121aeb 100644 --- a/ant-design-vue-jeecg/src/utils/request.js +++ b/ant-design-vue-jeecg/src/utils/request.js @@ -17,7 +17,7 @@ let apiBaseUrl = window._CONFIG['domianURL'] || "/jeecg-boot"; const service = axios.create({ //baseURL: '/jeecg-boot', baseURL: apiBaseUrl, // api base_url - timeout: 10 * 1000 // 请求超时时间 + timeout: 120 * 1000 // 请求超时时间 }) const err = (error) => { diff --git a/ant-design-vue-jeecg/src/views/system/inventory/InventoryHeaderList.vue b/ant-design-vue-jeecg/src/views/system/inventory/InventoryHeaderList.vue index 3a8be8e..12a1472 100644 --- a/ant-design-vue-jeecg/src/views/system/inventory/InventoryHeaderList.vue +++ b/ant-design-vue-jeecg/src/views/system/inventory/InventoryHeaderList.vue @@ -31,7 +31,7 @@ <a-input placeholder="请输入库位号" v-model="queryParam.locationCode"></a-input> </a-form-item> </a-col> - <a-col :xl="10" :lg="11" :md="12" :sm="24"> + <a-col :xl="12" :lg="14" :md="16" :sm="24"> <a-form-item label="创建日期"> <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间" class="query-group-cust" v-model="queryParam.createTime_begin"></j-date> diff --git a/ant-design-vue-jeecg/src/views/system/inventory/InventoryTransactionList.vue b/ant-design-vue-jeecg/src/views/system/inventory/InventoryTransactionList.vue index b7453f0..6af6173 100644 --- a/ant-design-vue-jeecg/src/views/system/inventory/InventoryTransactionList.vue +++ b/ant-design-vue-jeecg/src/views/system/inventory/InventoryTransactionList.vue @@ -71,7 +71,7 @@ <a-input placeholder="请输入创建人" v-model="queryParam.createBy"></a-input> </a-form-item> </a-col> - <a-col :xl="10" :lg="11" :md="12" :sm="24"> + <a-col :xl="12" :lg="14" :md="16" :sm="24"> <a-form-item label="创建日期"> <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间" class="query-group-cust" v-model="queryParam.createTime_begin"></j-date> diff --git a/ant-design-vue-jeecg/src/views/system/monitor/ApiLogList.vue b/ant-design-vue-jeecg/src/views/system/monitor/ApiLogList.vue index 0e4971f..6336ecc 100644 --- a/ant-design-vue-jeecg/src/views/system/monitor/ApiLogList.vue +++ b/ant-design-vue-jeecg/src/views/system/monitor/ApiLogList.vue @@ -45,7 +45,7 @@ <a-input placeholder="请输入业务响应码" v-model="queryParam.retCode"></a-input> </a-form-item> </a-col> - <a-col :xl="10" :lg="11" :md="12" :sm="24"> + <a-col :xl="12" :lg="14" :md="16" :sm="24"> <a-form-item label="创建日期"> <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间" class="query-group-cust" v-model="queryParam.createTime_begin"></j-date> diff --git a/ant-design-vue-jeecg/src/views/system/monitor/OperationLog.vue b/ant-design-vue-jeecg/src/views/system/monitor/OperationLog.vue index 8b172e7..1c821d8 100644 --- a/ant-design-vue-jeecg/src/views/system/monitor/OperationLog.vue +++ b/ant-design-vue-jeecg/src/views/system/monitor/OperationLog.vue @@ -24,7 +24,7 @@ <j-input placeholder="请输入操作内容" v-model="queryParam.operationMsg"></j-input> </a-form-item> </a-col> - <a-col :xl="12" :lg="7" :md="8" :sm="24"> + <a-col :xl="12" :lg="14" :md="16" :sm="24"> <a-form-item label="创建日期"> <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间" class="query-group-cust" v-model="queryParam.operationTime_begin"></j-date> diff --git a/ant-design-vue-jeecg/src/views/system/receipt/ReceiptContainerHeaderList.vue b/ant-design-vue-jeecg/src/views/system/receipt/ReceiptContainerHeaderList.vue index 0d634ee..23ffaa9 100644 --- a/ant-design-vue-jeecg/src/views/system/receipt/ReceiptContainerHeaderList.vue +++ b/ant-design-vue-jeecg/src/views/system/receipt/ReceiptContainerHeaderList.vue @@ -20,6 +20,7 @@ </a-form-item> </a-col> <template v-if="toggleSearchStatus"> + <a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-form-item label="起始库位"> <a-input placeholder="请输入起始库位" v-model="queryParam.fromLocationCode"></a-input> </a-form-item> @@ -34,7 +35,7 @@ <a-input placeholder="请输入目标出入口" v-model="queryParam.toPort"></a-input> </a-form-item> </a-col> - <a-col :xl="10" :lg="11" :md="12" :sm="24"> + <a-col :xl="12" :lg="14" :md="16" :sm="24"> <a-form-item label="创建日期"> <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间" class="query-group-cust" v-model="queryParam.createTime_begin"></j-date> diff --git a/ant-design-vue-jeecg/src/views/system/receipt/ReceiptHeaderHistoryList.vue b/ant-design-vue-jeecg/src/views/system/receipt/ReceiptHeaderHistoryList.vue index d54156a..43ed053 100644 --- a/ant-design-vue-jeecg/src/views/system/receipt/ReceiptHeaderHistoryList.vue +++ b/ant-design-vue-jeecg/src/views/system/receipt/ReceiptHeaderHistoryList.vue @@ -75,8 +75,7 @@ </a-select> </a-form-item> </a-col> - - <a-col :xl="10" :lg="11" :md="12" :sm="24"> + <a-col :xl="12" :lg="14" :md="16" :sm="24"> <a-form-item label="创建日期"> <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间" class="query-group-cust" v-model="queryParam.createTime_begin"></j-date> diff --git a/ant-design-vue-jeecg/src/views/system/receipt/ReceiptHeaderList.vue b/ant-design-vue-jeecg/src/views/system/receipt/ReceiptHeaderList.vue index 37f65eb..50062be 100644 --- a/ant-design-vue-jeecg/src/views/system/receipt/ReceiptHeaderList.vue +++ b/ant-design-vue-jeecg/src/views/system/receipt/ReceiptHeaderList.vue @@ -71,8 +71,7 @@ </a-select> </a-form-item> </a-col> - - <a-col :xl="10" :lg="11" :md="12" :sm="24"> + <a-col :xl="12" :lg="14" :md="16" :sm="24"> <a-form-item label="创建日期"> <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间" class="query-group-cust" v-model="queryParam.createTime_begin"></j-date> diff --git a/ant-design-vue-jeecg/src/views/system/shipment/ShipmentContainerHeaderList.vue b/ant-design-vue-jeecg/src/views/system/shipment/ShipmentContainerHeaderList.vue index 898ef6c..01dc165 100644 --- a/ant-design-vue-jeecg/src/views/system/shipment/ShipmentContainerHeaderList.vue +++ b/ant-design-vue-jeecg/src/views/system/shipment/ShipmentContainerHeaderList.vue @@ -41,7 +41,7 @@ <a-input placeholder="请输入创建人" v-model="queryParam.createBy"></a-input> </a-form-item> </a-col> - <a-col :xl="10" :lg="11" :md="12" :sm="24"> + <a-col :xl="12" :lg="14" :md="16" :sm="24"> <a-form-item label="创建日期"> <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间" class="query-group-cust" v-model="queryParam.createTime_begin"></j-date> diff --git a/ant-design-vue-jeecg/src/views/system/shipment/ShipmentHeaderList.vue b/ant-design-vue-jeecg/src/views/system/shipment/ShipmentHeaderList.vue index 765ba28..672951e 100644 --- a/ant-design-vue-jeecg/src/views/system/shipment/ShipmentHeaderList.vue +++ b/ant-design-vue-jeecg/src/views/system/shipment/ShipmentHeaderList.vue @@ -80,7 +80,7 @@ <a-input placeholder="请输入创建人" v-model="queryParam.createBy"></a-input> </a-form-item> </a-col> - <a-col :xl="10" :lg="11" :md="12" :sm="24"> + <a-col :xl="12" :lg="14" :md="16" :sm="24"> <a-form-item label="创建日期"> <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间" class="query-group-cust" v-model="queryParam.createTime_begin"></j-date> diff --git a/ant-design-vue-jeecg/src/views/system/task/CircleTaskHeaderList.vue b/ant-design-vue-jeecg/src/views/system/task/CircleTaskHeaderList.vue index 4a2d802..85e73c6 100644 --- a/ant-design-vue-jeecg/src/views/system/task/CircleTaskHeaderList.vue +++ b/ant-design-vue-jeecg/src/views/system/task/CircleTaskHeaderList.vue @@ -71,7 +71,7 @@ <a-input placeholder="请输入重入库位号" v-model="queryParam.originLocationCode"></a-input> </a-form-item> </a-col> - <a-col :xl="10" :lg="11" :md="12" :sm="24"> + <a-col :xl="12" :lg="14" :md="16" :sm="24"> <a-form-item label="创建日期"> <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间" class="query-group-cust" v-model="queryParam.createTime_begin"></j-date> diff --git a/ant-design-vue-jeecg/src/views/system/task/ReceiptTaskHeaderList.vue b/ant-design-vue-jeecg/src/views/system/task/ReceiptTaskHeaderList.vue index decd79f..1584a3a 100644 --- a/ant-design-vue-jeecg/src/views/system/task/ReceiptTaskHeaderList.vue +++ b/ant-design-vue-jeecg/src/views/system/task/ReceiptTaskHeaderList.vue @@ -71,7 +71,7 @@ <a-input placeholder="请输入重入库位号" v-model="queryParam.originLocationCode"></a-input> </a-form-item> </a-col> - <a-col :xl="10" :lg="11" :md="12" :sm="24"> + <a-col :xl="12" :lg="14" :md="16" :sm="24"> <a-form-item label="创建日期"> <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间" class="query-group-cust" v-model="queryParam.createTime_begin"></j-date> diff --git a/ant-design-vue-jeecg/src/views/system/task/ShipmentTaskHeaderList.vue b/ant-design-vue-jeecg/src/views/system/task/ShipmentTaskHeaderList.vue index 9bdaef1..81495aa 100644 --- a/ant-design-vue-jeecg/src/views/system/task/ShipmentTaskHeaderList.vue +++ b/ant-design-vue-jeecg/src/views/system/task/ShipmentTaskHeaderList.vue @@ -71,7 +71,7 @@ <a-input placeholder="请输入目标出入口" v-model="queryParam.toPortCode"></a-input> </a-form-item> </a-col> - <a-col :xl="10" :lg="11" :md="12" :sm="24"> + <a-col :xl="12" :lg="14" :md="16" :sm="24"> <a-form-item label="创建日期"> <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间" class="query-group-cust" v-model="queryParam.createTime_begin"></j-date> diff --git a/ant-design-vue-jeecg/src/views/system/task/TransferTaskHeaderList.vue b/ant-design-vue-jeecg/src/views/system/task/TransferTaskHeaderList.vue index 4dbf9e7..4cd2add 100644 --- a/ant-design-vue-jeecg/src/views/system/task/TransferTaskHeaderList.vue +++ b/ant-design-vue-jeecg/src/views/system/task/TransferTaskHeaderList.vue @@ -71,7 +71,7 @@ <a-input placeholder="请输入重入库位号" v-model="queryParam.originLocationCode"></a-input> </a-form-item> </a-col> - <a-col :xl="10" :lg="11" :md="12" :sm="24"> + <a-col :xl="12" :lg="14" :md="16" :sm="24"> <a-form-item label="创建日期"> <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间" class="query-group-cust" v-model="queryParam.createTime_begin"></j-date> diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java index 9dca6a3..c54a8b6 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java @@ -1,6 +1,7 @@ package org.jeecg.modules.wms.api.wcs.service; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.stream.Collectors; @@ -46,6 +47,9 @@ import com.aliyun.oss.ServiceException; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import cn.monitor4all.logRecord.annotation.OperationLog; +import cn.monitor4all.logRecord.context.LogRecordContext; + /** * @author 游杰 */ @@ -86,6 +90,8 @@ public class WcsServiceImpl implements WcsService { */ @Override @Transactional(rollbackFor = Exception.class) + @OperationLog(bizId = "''", bizType = "'入库单追踪'", tag = "'详情分配库位'", extra = "#extraJsonString", msg = "'分配库位:' + #locationCode", + condition = "#receiptContainerDetailList.size() > 0", recordReturnValue = true) public Result warecellAllocation(WarecellDomain warecellDomain) { String warehouseCode = warecellDomain.getWarehouseCode(); String zoneCode = warecellDomain.getZoneCode(); @@ -170,8 +176,8 @@ public class WcsServiceImpl implements WcsService { } } + List<ReceiptContainerDetail> receiptContainerDetailList = new ArrayList<>(); if (taskType == QuantityConstant.TASK_TYPE_WHOLERECEIPT || taskType == QuantityConstant.TASK_TYPE_EMPTYRECEIPT) { - List<ReceiptContainerDetail> receiptContainerDetailList = new ArrayList<>(); for (TaskDetail taskDetail : taskDetailList) { ReceiptContainerDetail receiptContainerDetail = receiptContainerDetailService.getById(taskDetail.getReceiptContainerDetailId()); if (receiptContainerDetail != null) { @@ -233,6 +239,9 @@ public class WcsServiceImpl implements WcsService { WcsTask wcsTask = new WcsTask(); wcsTask.setToLocationCode(locationCode); wcsTask.setPreTaskNo(String.valueOf(preTaskNo)); + LogRecordContext.putVariable("locationCode", locationCode);// 操作日志收集 + LogRecordContext.putVariable("receiptContainerDetailList", receiptContainerDetailList);// 操作日志收集 + LogRecordContext.putVariable("extraJsonString", JSON.toJSONString(receiptContainerDetailList));// 操作日志收集 return Result.OK(wcsTask); } diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/framework/controller/TestController.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/framework/controller/TestController.java index c5543d5..8168021 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/framework/controller/TestController.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/framework/controller/TestController.java @@ -1,7 +1,11 @@ package org.jeecg.modules.wms.framework.controller; +import java.math.BigDecimal; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -9,6 +13,7 @@ import javax.servlet.http.HttpServletRequest; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.system.service.ISysDataLogService; +import org.jeecg.modules.wms.receipt.receiptContainerHeader.entity.ReceiptContainerDetail; import org.jeecg.modules.wms.receipt.receiptHeader.entity.ReceiptHeader; import org.jeecg.utils.HuahengJwtUtil; import org.jeecg.utils.HuahengRedisUtil; @@ -52,28 +57,42 @@ public class TestController extends HuahengBaseController { // @AutoLog(value = "TestController-testRedis") @ResponseBody @PostMapping(value = "/test/testRedis") - @OperationLog(bizType = "'物料追踪'", tag = "'分配库位'", bizId = "#paramMap.get('bizId')",extra = "#jsonString", msg = "'测试操作日志'", recordReturnValue = true) + @OperationLog(bizId = "''", bizType = "'入库单追踪'", tag = "'详情分配库位'", extra = "#extraJsonString", msg = "'库位编码:' + #locationCode", + condition = "#receiptContainerDetailList.size() > 0", recordReturnValue = true) public Result<?> testRedis(@RequestBody Map<String, String> paramMap, HttpServletRequest request) throws InterruptedException { Result result = new Result<>(); - String testString = "我是testString1"; - LogRecordContext.putVariable("testString1", testString); - testString = "我是testString2"; - LogRecordContext.putVariable("testString2", testString); - result.setMessage(testString); - log.info("testRedis in paramMap:{}", JSON.toJSONString(paramMap)); - String key = "testKey"; - Map<String, ReceiptHeader> receiptHeaderMap = new ConcurrentHashMap<String, ReceiptHeader>(); - ReceiptHeader receiptHeader = new ReceiptHeader(); - receiptHeader.setCode(paramMap.get("bizId")); - receiptHeaderMap.put("receiptHeaderKey", receiptHeader); - LogRecordContext.putVariable("jsonString", JSON.toJSONString(receiptHeaderMap)); - Map<String, ReceiptHeader> value = redisUtil.getAndSet(key, receiptHeaderMap, new TypeReference<Map<String, ReceiptHeader>>() {}, 10); - Long rxpireTime = redisUtil.getExpire(key); - log.info("redisUtil.getAndSet {} -> {} rxpireTime -> {}", key, JSON.toJSONString(value), rxpireTime); + List<ReceiptContainerDetail> receiptContainerDetailList = new ArrayList<>(); + ReceiptContainerDetail receiptContainerDetail = new ReceiptContainerDetail(); + receiptContainerDetail.setReceiptCode("SDH10101"); + receiptContainerDetail.setContainerCode("M00061"); + receiptContainerDetail.setMaterialCode("EH812736"); + receiptContainerDetail.setQty(BigDecimal.valueOf(10)); + receiptContainerDetailList.add(receiptContainerDetail); + LogRecordContext.putVariable("locationCode", "100001");// 操作日志收集 + LogRecordContext.putVariable("receiptContainerDetailList", receiptContainerDetailList);// 操作日志收集 + LogRecordContext.putVariable("extraJsonString", JSON.toJSONString(receiptContainerDetailList));// 操作日志收集 + + + +// String testString = "我是testString1"; +// LogRecordContext.putVariable("testString1", testString); +// testString = "我是testString2"; +// LogRecordContext.putVariable("testString2", testString); +// result.setMessage(testString); +// log.info("testRedis in paramMap:{}", JSON.toJSONString(paramMap)); +// String key = "testKey"; +// Map<String, ReceiptHeader> receiptHeaderMap = new ConcurrentHashMap<String, ReceiptHeader>(); +// ReceiptHeader receiptHeader = new ReceiptHeader(); +// receiptHeader.setCode(paramMap.get("bizId")); +// receiptHeaderMap.put("receiptHeaderKey", receiptHeader); +// LogRecordContext.putVariable("jsonString", JSON.toJSONString(receiptHeaderMap)); +// Map<String, ReceiptHeader> value = redisUtil.getAndSet(key, receiptHeaderMap, new TypeReference<Map<String, ReceiptHeader>>() {}, 10); +// Long rxpireTime = redisUtil.getExpire(key); +// log.info("redisUtil.getAndSet {} -> {} rxpireTime -> {}", key, JSON.toJSONString(value), rxpireTime); // result.setSuccess(false); // LogRecordContext.putVariable("isSuccess", result.isSuccess()); - Thread.sleep(2000l); +// Thread.sleep(2000l); // throw new RuntimeException("自定义失败"); return result; // receiptHeaderMap = redisUtil.get(key, new TypeReference<Map<String, ReceiptHeader>>() {}); diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/operation/service/impl/OperationLogServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/operation/service/impl/OperationLogServiceImpl.java index 31f063f..30046f1 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/operation/service/impl/OperationLogServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/operation/service/impl/OperationLogServiceImpl.java @@ -1,6 +1,7 @@ package org.jeecg.modules.wms.monitor.operation.service.impl; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import org.jeecg.modules.wms.monitor.operation.entity.OperationLog; @@ -8,6 +9,7 @@ import org.jeecg.modules.wms.monitor.operation.mapper.OperationLogMapper; import org.jeecg.modules.wms.monitor.operation.service.IOperationLogService; import org.jeecg.modules.wms.receipt.receiptContainerHeader.entity.ReceiptContainerDetail; import org.jeecg.modules.wms.receipt.receiptHeader.entity.ReceiptDetail; +import org.jeecg.modules.wms.task.taskHeader.entity.TaskDetail; import org.jeecg.utils.StringUtils; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -15,6 +17,7 @@ import org.springframework.util.CollectionUtils; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.StrUtil; import cn.monitor4all.logRecord.bean.LogDTO; import cn.monitor4all.logRecord.service.IOperationLogGetService; @@ -36,70 +39,35 @@ public class OperationLogServiceImpl extends ServiceImpl<OperationLogMapper, Ope log.debug(">>>>>> create OperationLog:{} <<<<<<", JSON.toJSONString(logDTO)); List<OperationLog> operationLogList = new ArrayList<OperationLog>(); if (!StringUtils.isEmpty(logDTO.getExtra())) { - if (logDTO.getBizType().equals("物料追踪") && logDTO.getTag().equals("入库组盘")) { - List<ReceiptContainerDetail> receiptContainerDetailList = JSON.parseArray(logDTO.getExtra(), ReceiptContainerDetail.class); - if (CollectionUtils.isEmpty(receiptContainerDetailList)) { - return true; - } - for (ReceiptContainerDetail receiptContainerDetail : receiptContainerDetailList) { - if (receiptContainerDetail == null || receiptContainerDetail.getUniqueCode() == null) { - continue; - } - String operationMsg = null; - String msg = StrUtil.format("上游单号:{},入库单据号:{},仓库编码:{},容器编码:{},物料编码:{},数量:{}", receiptContainerDetail.getReferCode(), - receiptContainerDetail.getReceiptCode(), receiptContainerDetail.getWarehouseCode(), receiptContainerDetail.getContainerCode(), - receiptContainerDetail.getMaterialCode(), receiptContainerDetail.getQty()); - if (!StringUtils.isEmpty(logDTO.getMsg())) { - operationMsg = logDTO.getMsg() + "," + msg; - } else { - operationMsg = msg; - } - OperationLog operationLog = new OperationLog(); - operationLog.setBizId(receiptContainerDetail.getUniqueCode()); - operationLog.setOperationMsg(StringUtils.substring(operationMsg, 0, 1000)); - operationLog.setBizType(logDTO.getBizType()); - operationLog.setBizTag(logDTO.getTag()); - operationLog.setContentException(StringUtils.substring(logDTO.getException(), 0, 1000)); - operationLog.setContentReturn(StringUtils.substring(logDTO.getReturnStr(), 0, 1000)); - operationLog.setOperationCostTime(logDTO.getExecutionTime()); - operationLog.setOperationStatus(logDTO.getSuccess().equals(true) ? 1 : 0); - operationLog.setOperationTime(logDTO.getOperateDate()); - operationLog.setOperatorName(logDTO.getOperatorId()); - operationLogList.add(operationLog); + if (logDTO.getBizType().equals("物料追踪")) { + if (logDTO.getTag().equals("入库组盘")) { + String message = "容器编码:{},物料编码:{},数量:{}"; + operationLogList.addAll(createOperationLogs(logDTO, ReceiptContainerDetail.class, "getUniqueCode", message, "getReferCode", "getReceiptCode", + "getWarehouseCode", "getContainerCode", "getMaterialCode", "getQty")); } } else if (logDTO.getBizType().equals("入库单追踪")) { - List<ReceiptDetail> receiptDetailList = JSON.parseArray(logDTO.getExtra(), ReceiptDetail.class); - if (CollectionUtils.isEmpty(receiptDetailList)) { - return true; - } - for (ReceiptDetail receiptDetail : receiptDetailList) { - if (receiptDetail == null || receiptDetail.getReceiptCode() == null) { - continue; - } - String operationMsg = null; - String msg = StrUtil.format("物料编码:{},数量:{},已收数量:{}", receiptDetail.getMaterialCode(), receiptDetail.getQty(), - receiptDetail.getTaskQty() == null ? 0 : receiptDetail.getTaskQty()); - if (!StringUtils.isEmpty(logDTO.getMsg())) { - operationMsg = logDTO.getMsg() + "," + msg; - } else { - operationMsg = msg; - } - OperationLog operationLog = new OperationLog(); - operationLog.setBizId(receiptDetail.getReceiptCode()); - operationLog.setOperationMsg(StringUtils.substring(operationMsg, 0, 1000)); - operationLog.setBizType(logDTO.getBizType()); - operationLog.setBizTag(logDTO.getTag()); - operationLog.setContentException(StringUtils.substring(logDTO.getException(), 0, 1000)); - operationLog.setContentReturn(StringUtils.substring(logDTO.getReturnStr(), 0, 1000)); - operationLog.setOperationCostTime(logDTO.getExecutionTime()); - operationLog.setOperationStatus(logDTO.getSuccess().equals(true) ? 1 : 0); - operationLog.setOperationTime(logDTO.getOperateDate()); - operationLog.setOperatorName(logDTO.getOperatorId()); - operationLogList.add(operationLog); + if (logDTO.getTag().equals("详情添加")) { + String message = "物料编码:{},数量:{}"; + operationLogList.addAll(createOperationLogs(logDTO, ReceiptDetail.class, "getReceiptCode", message, "getMaterialCode", "getQty")); + } else if (logDTO.getTag().equals("详情分配库位")) { + String message = "容器编码:{},物料编码:{},收货数量:{}"; + operationLogList.addAll( + createOperationLogs(logDTO, ReceiptContainerDetail.class, "getReceiptCode", message, "getContainerCode", "getMaterialCode", "getQty")); + } else if (logDTO.getTag().equals("详情入库")) { + String message = "物料编码:{},收货数量:{}"; + operationLogList + .addAll(createOperationLogs(logDTO, ReceiptDetail.class, "getReceiptCode", message, "getMaterialCode", "getTaskQty")); + } else if (logDTO.getTag().equals("详情组盘")) { + String message = "物料编码:{},数量:{},收货数量:{}"; + operationLogList + .addAll(createOperationLogs(logDTO, ReceiptDetail.class, "getReceiptCode", message, "getMaterialCode", "getQty", "getTaskQty")); + } else { + String message = "物料编码:{},数量:{}"; + operationLogList + .addAll(createOperationLogs(logDTO, ReceiptDetail.class, "getReceiptCode", message, "getMaterialCode", "getQty")); } } - } - if (!StringUtils.isEmpty(logDTO.getBizId())) { + } else { OperationLog operationLog = new OperationLog(); operationLog.setBizId(logDTO.getBizId()); operationLog.setOperationMsg(StringUtils.substring(logDTO.getMsg(), 0, 1000)); @@ -120,4 +88,43 @@ public class OperationLogServiceImpl extends ServiceImpl<OperationLogMapper, Ope return false; } } + + private List<OperationLog> createOperationLogs(LogDTO logDTO, Class<?> clazz, String bizIdMethodName, String text, String... msgMethodNames) { + List<OperationLog> operationLogList = new ArrayList<OperationLog>(); + List<?> detailList = JSON.parseArray(logDTO.getExtra(), clazz); + if (CollectionUtils.isEmpty(detailList)) { + return operationLogList; + } + for (Object detail : detailList) { + String bizId = ReflectUtil.invoke(detail, bizIdMethodName).toString(); + if (detail == null || bizId == null) { + continue; + } + List<String> msgValueList = new ArrayList<String>(); + for (String messageMethodName : msgMethodNames) { + Object value = ReflectUtil.invoke(detail, messageMethodName); + msgValueList.add(value == null ? "" : value.toString()); + } + String operationMsg = null; + String msg = StrUtil.format(text, msgValueList.toArray()); + if (!StringUtils.isEmpty(logDTO.getMsg())) { + operationMsg = logDTO.getMsg() + "," + msg; + } else { + operationMsg = msg; + } + OperationLog operationLog = new OperationLog(); + operationLog.setBizId(bizId); + operationLog.setOperationMsg(StringUtils.substring(operationMsg, 0, 1000)); + operationLog.setBizType(logDTO.getBizType()); + operationLog.setBizTag(logDTO.getTag()); + operationLog.setContentException(StringUtils.substring(logDTO.getException(), 0, 1000)); + operationLog.setContentReturn(StringUtils.substring(logDTO.getReturnStr(), 0, 1000)); + operationLog.setOperationCostTime(logDTO.getExecutionTime()); + operationLog.setOperationStatus(logDTO.getSuccess().equals(true) ? 1 : 0); + operationLog.setOperationTime(logDTO.getOperateDate()); + operationLog.setOperatorName(logDTO.getOperatorId()); + operationLogList.add(operationLog); + } + return operationLogList; + } } diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/entity/ReceiptDetail.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/entity/ReceiptDetail.java index 47dda70..bd3d7f7 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/entity/ReceiptDetail.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/entity/ReceiptDetail.java @@ -1,6 +1,7 @@ package org.jeecg.modules.wms.receipt.receiptHeader.entity; import java.io.Serializable; +import java.math.BigDecimal; import java.util.Date; import org.jeecg.common.aspect.annotation.Dict; diff --git a/huaheng-wms-core/src/main/java/org/jeecg/utils/Swagger3Config.java b/huaheng-wms-core/src/main/java/org/jeecg/utils/Swagger3Config.java index d54b753..e0e9634 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/utils/Swagger3Config.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/utils/Swagger3Config.java @@ -75,8 +75,7 @@ public class Swagger3Config implements WebMvcConfigurer { * 新增 securityContexts 保持登录状态 */ private List<SecurityContext> securityContexts() { - return new ArrayList( - Collections.singleton(SecurityContext.builder().securityReferences(defaultAuth()).forPaths(PathSelectors.regex("^(?!auth).*$")).build())); + return Collections.singletonList(SecurityContext.builder().securityReferences(defaultAuth()).forPaths(PathSelectors.regex("^(?!auth).*$")).build()); } /** @@ -98,7 +97,7 @@ public class Swagger3Config implements WebMvcConfigurer { AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything"); AuthorizationScope[] authorizationScopes = new AuthorizationScope[1]; authorizationScopes[0] = authorizationScope; - return new ArrayList(Collections.singleton(new SecurityReference(CommonConstant.X_ACCESS_TOKEN, authorizationScopes))); + return Collections.singletonList(new SecurityReference(CommonConstant.X_ACCESS_TOKEN, authorizationScopes)); } }