From af4b4276c035dcae6a6c9ee815669994f47cc10b Mon Sep 17 00:00:00 2001 From: renfan <2206580733@qq.com> Date: Mon, 5 Aug 2024 21:11:31 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90admin=E3=80=91=E4=BC=98=E5=8C=96#1?= =?UTF-8?q?=E3=80=81=E8=B0=83=E6=8B=A8=E5=BA=93=E5=AD=98=E5=AE=A1=E6=A0=B8?= =?UTF-8?q?=202=E3=80=81=E5=AE=A1=E6=A0=B8=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sparePart/impl/SparePartServiceImpl.java | 21 ++++++++ .../impl/SpareParAllotServiceImpl.java | 40 +++++++++++++--- .../impl/SparePartInWarehouseServiceImpl.java | 36 +++++++++++--- .../SparePartOutWarehouseServiceImpl.java | 28 ++++++++--- .../impl/SparePartStockAuditServiceImpl.java | 45 +++++++++++++++--- .../SparePartOutWarehouseListVo.java | 2 +- .../SparePartAllotListVo.java | 2 +- .../SparePartInWarehouseListVo.java | 2 +- .../SparePartStockAuditDetailVo.java | 2 +- .../SparePartStockAuditListVo.java | 2 +- .../SparePartStockAudit.java | 5 +- .../common/enums/Audit/AuditStateEnum.java | 3 +- .../admin-log4j2-ERROR-2024-08-04_1.log.gz | Bin 0 -> 283 bytes .../admin-log4j2-INFO-2024-08-04_1.log.gz | Bin 0 -> 31858 bytes .../admin-log4j2-WARN-2024-08-04_1.log.gz | Bin 0 -> 552 bytes 15 files changed, 156 insertions(+), 32 deletions(-) create mode 100644 www/wwwroot/java-smyy/server/like-admin/admin-log4j2-ERROR-2024-08-04_1.log.gz create mode 100644 www/wwwroot/java-smyy/server/like-admin/admin-log4j2-INFO-2024-08-04_1.log.gz create mode 100644 www/wwwroot/java-smyy/server/like-admin/admin-log4j2-WARN-2024-08-04_1.log.gz diff --git a/admin/src/main/java/com/hcy/admin/service/sparePart/impl/SparePartServiceImpl.java b/admin/src/main/java/com/hcy/admin/service/sparePart/impl/SparePartServiceImpl.java index 8a2ce1c..705defc 100644 --- a/admin/src/main/java/com/hcy/admin/service/sparePart/impl/SparePartServiceImpl.java +++ b/admin/src/main/java/com/hcy/admin/service/sparePart/impl/SparePartServiceImpl.java @@ -14,6 +14,7 @@ import com.hcy.common.dto.UserDto; import com.hcy.common.entity.activity.Activity; import com.hcy.common.entity.sparePart.SparePart; import com.hcy.common.entity.warehouse.Warehouse; +import com.hcy.common.exception.OperateException; import com.hcy.common.mapper.sparePart.SparePartMapper; import com.hcy.common.mapper.warehouse.WarehouseMapper; import com.hcy.common.utils.StringUtil; @@ -135,6 +136,16 @@ public class SparePartServiceImpl implements ISparePartService { @Override public void add(SparePartParam sparePartParam) { SparePart model = new SparePart(); + SparePart sparePart = sparePartMapper.selectOne( + new QueryWrapper() + .eq("spare_parts_code", sparePartParam.getSparePartsCode()) + .eq("warehouse_id", sparePartParam.getWarehouseId()) + .eq("is_delete", 0) + .last("limit 1")); + if(sparePart != null){ + throw new OperateException("当前仓库下的备件编码不可重复!"); + } + model.setSparePartsCode(sparePartParam.getSparePartsCode()); model.setSparePartsName(sparePartParam.getSparePartsName()); model.setWarehouseId(sparePartParam.getWarehouseId()); @@ -162,6 +173,16 @@ public class SparePartServiceImpl implements ISparePartService { Assert.notNull(model, "数据不存在!"); + SparePart sparePart = sparePartMapper.selectOne( + new QueryWrapper() + .eq("spare_parts_code", sparePartParam.getSparePartsCode()) + .eq("warehouse_id", sparePartParam.getWarehouseId()) + .eq("is_delete", 0) + .last("limit 1")); + if(sparePart != null){ + throw new OperateException("当前仓库下的备件编码不可重复!"); + } + model.setId(sparePartParam.getId()); model.setSparePartsCode(sparePartParam.getSparePartsCode()); model.setSparePartsName(sparePartParam.getSparePartsName()); diff --git a/admin/src/main/java/com/hcy/admin/service/sparePartAllot/impl/SpareParAllotServiceImpl.java b/admin/src/main/java/com/hcy/admin/service/sparePartAllot/impl/SpareParAllotServiceImpl.java index 89b1493..e0900cf 100644 --- a/admin/src/main/java/com/hcy/admin/service/sparePartAllot/impl/SpareParAllotServiceImpl.java +++ b/admin/src/main/java/com/hcy/admin/service/sparePartAllot/impl/SpareParAllotServiceImpl.java @@ -206,6 +206,12 @@ public class SpareParAllotServiceImpl implements ISparePartAllotService { insertSparePartAudit.setCount(sparePartAudit.getCount()); //备件调拨数量 insertSparePartAudit.setStockAuditId(model.getId()); // 出入库审核id insertSparePartAudit.setCreateTime(System.currentTimeMillis() / 1000); + SparePart sparePart = sparePartMapper.selectOne( + new QueryWrapper() + .eq("id", sparePartAudit.getId()) + .eq("is_delete", 0) + .last("limit 1")); + insertSparePartAudit.setSparePartsCode(sparePart.getSparePartsCode()); //备件编码 sparePartAuditMapper.insert(insertSparePartAudit);//插入备件审核信息 } sb.deleteCharAt(sb.length() - 1); // 删除最后一个逗号 @@ -244,21 +250,43 @@ public class SpareParAllotServiceImpl implements ISparePartAllotService { .eq("stock_audit_id", model.getId()) .eq("is_delete", 0) .last("limit 1")); - Assert.notNull(delectSparePartAudit, "数据不存在!"); - delectSparePartAudit.setIsDelete(1); - delectSparePartAudit.setDeleteTime(System.currentTimeMillis() / 1000); - sparePartAuditMapper.updateById(delectSparePartAudit); - + if(delectSparePartAudit != null){ + delectSparePartAudit.setIsDelete(1); + delectSparePartAudit.setDeleteTime(System.currentTimeMillis() / 1000); + sparePartAuditMapper.updateById(delectSparePartAudit); + } + } + for (SparePartAudit sparePartAudit : sparePartAuditList) { //插入新的备件审核信息 SparePartAudit insertSparePartAudit = new SparePartAudit(); - insertSparePartAudit.setSparePartsId(sparePartAudit.getSparePartsId()); //备件id + if(sparePartAudit.getSparePartsId() != null){ + insertSparePartAudit.setSparePartsId(sparePartAudit.getSparePartsId()); //备件id + }else { + insertSparePartAudit.setSparePartsId(sparePartAudit.getId()); + } sb.append(sparePartAudit.getId()).append(","); insertSparePartAudit.setCount(sparePartAudit.getCount()); //备件调拨数量 insertSparePartAudit.setStockAuditId(model.getId()); // 出入库审核id insertSparePartAudit.setUpdateTime(System.currentTimeMillis() / 1000); + SparePart sparePart = sparePartMapper.selectOne( + new QueryWrapper() + .eq("id", insertSparePartAudit.getSparePartsId()) + .eq("is_delete", 0) + .last("limit 1")); + insertSparePartAudit.setSparePartsCode(sparePart.getSparePartsCode()); //备件编码 sparePartAuditMapper.insert(insertSparePartAudit);//插入备件审核信息 } + //如果是已取消状态编辑改成未审核 + if(model.getAuditState() == AuditStateEnum.CANCELED.getStatus()){ + model.setAuditState(AuditStateEnum.UNREVIEWED.getStatus()); + } + //已审核,但不通过的,重新编辑之后状态也要变成未审核,审核结果改成空 + if(model.getAuditState() == AuditStateEnum.AUDITED.getStatus() + && model.getAuditResult() == AuditStateEnum.NOTPASS.getStatus()){ + model.setAuditState(AuditStateEnum.UNREVIEWED.getStatus()); + model.setAuditResult(null); + } sb.deleteCharAt(sb.length() - 1); // 删除最后一个逗号 model.setSparePartAuditId(String.valueOf(sb));// 备件审核id model.setUpdateTime(System.currentTimeMillis() / 1000); diff --git a/admin/src/main/java/com/hcy/admin/service/sparePartInWarehouse/impl/SparePartInWarehouseServiceImpl.java b/admin/src/main/java/com/hcy/admin/service/sparePartInWarehouse/impl/SparePartInWarehouseServiceImpl.java index 97235db..c7382e0 100644 --- a/admin/src/main/java/com/hcy/admin/service/sparePartInWarehouse/impl/SparePartInWarehouseServiceImpl.java +++ b/admin/src/main/java/com/hcy/admin/service/sparePartInWarehouse/impl/SparePartInWarehouseServiceImpl.java @@ -198,6 +198,12 @@ public class SparePartInWarehouseServiceImpl implements ISparePartInWarehouseSer insertSparePartAudit.setCount(sparePartAudit.getCount()); //备件入库数量 insertSparePartAudit.setStockAuditId(model.getId()); // 出入库审核id insertSparePartAudit.setCreateTime(System.currentTimeMillis() / 1000); + SparePart sparePart = sparePartMapper.selectOne( + new QueryWrapper() + .eq("id", sparePartAudit.getId()) + .eq("is_delete", 0) + .last("limit 1")); + insertSparePartAudit.setSparePartsCode(sparePart.getSparePartsCode()); //备件编码 sparePartAuditMapper.insert(insertSparePartAudit);//插入备件审核信息 } @@ -239,21 +245,39 @@ public class SparePartInWarehouseServiceImpl implements ISparePartInWarehouseSer .eq("stock_audit_id", model.getId()) .eq("is_delete", 0) .last("limit 1")); - Assert.notNull(delectSparePartAudit, "数据不存在!"); - delectSparePartAudit.setIsDelete(1); - delectSparePartAudit.setDeleteTime(System.currentTimeMillis() / 1000); - sparePartAuditMapper.updateById(delectSparePartAudit); - + if(delectSparePartAudit != null){ + delectSparePartAudit.setIsDelete(1); + delectSparePartAudit.setDeleteTime(System.currentTimeMillis() / 1000); + sparePartAuditMapper.updateById(delectSparePartAudit); + } + } + for (SparePartAudit sparePartAudit : sparePartAuditList) { //插入新的备件审核信息 SparePartAudit insertSparePartAudit = new SparePartAudit(); - insertSparePartAudit.setSparePartsId(sparePartAudit.getSparePartsId()); //备件id + if(sparePartAudit.getSparePartsId() != null){ + insertSparePartAudit.setSparePartsId(sparePartAudit.getSparePartsId()); //备件id + }else { + insertSparePartAudit.setSparePartsId(sparePartAudit.getId()); + } sb.append(sparePartAudit.getId()).append(","); insertSparePartAudit.setCount(sparePartAudit.getCount()); //备件入库数量 insertSparePartAudit.setStockAuditId(model.getId()); // 出入库审核id insertSparePartAudit.setUpdateTime(System.currentTimeMillis() / 1000); + sparePartAuditMapper.insert(insertSparePartAudit);//插入备件审核信息 } + //如果是已取消状态编辑改成未审核 + if(model.getAuditState() == AuditStateEnum.CANCELED.getStatus()){ + model.setAuditState(AuditStateEnum.UNREVIEWED.getStatus()); + } + //已审核,但不通过的,重新编辑之后状态也要变成未审核,审核结果改成空 + if(model.getAuditState() == AuditStateEnum.AUDITED.getStatus() + && model.getAuditResult() == AuditStateEnum.NOTPASS.getStatus()){ + model.setAuditState(AuditStateEnum.UNREVIEWED.getStatus()); + model.setAuditResult(null); + } + sb.deleteCharAt(sb.length() - 1); // 删除最后一个逗号 model.setSparePartAuditId(String.valueOf(sb));// 备件审核id model.setUpdateTime(System.currentTimeMillis() / 1000); diff --git a/admin/src/main/java/com/hcy/admin/service/sparePartOutWarehouse/impl/SparePartOutWarehouseServiceImpl.java b/admin/src/main/java/com/hcy/admin/service/sparePartOutWarehouse/impl/SparePartOutWarehouseServiceImpl.java index fbe71ab..b91316b 100644 --- a/admin/src/main/java/com/hcy/admin/service/sparePartOutWarehouse/impl/SparePartOutWarehouseServiceImpl.java +++ b/admin/src/main/java/com/hcy/admin/service/sparePartOutWarehouse/impl/SparePartOutWarehouseServiceImpl.java @@ -234,14 +234,20 @@ public class SparePartOutWarehouseServiceImpl implements ISparePartOutWarehouseS .eq("stock_audit_id", model.getId()) .eq("is_delete", 0) .last("limit 1")); - Assert.notNull(delectSparePartAudit, "数据不存在!"); - delectSparePartAudit.setIsDelete(1); - delectSparePartAudit.setDeleteTime(System.currentTimeMillis() / 1000); - sparePartAuditMapper.updateById(delectSparePartAudit); - + if(delectSparePartAudit != null){ + delectSparePartAudit.setIsDelete(1); + delectSparePartAudit.setDeleteTime(System.currentTimeMillis() / 1000); + sparePartAuditMapper.updateById(delectSparePartAudit); + } + } + for (SparePartAudit sparePartAudit : sparePartAuditList) { //插入新的备件审核信息 SparePartAudit insertSparePartAudit = new SparePartAudit(); - insertSparePartAudit.setSparePartsId(sparePartAudit.getSparePartsId()); //备件id + if(sparePartAudit.getSparePartsId() != null){ + insertSparePartAudit.setSparePartsId(sparePartAudit.getSparePartsId()); //备件id + }else { + insertSparePartAudit.setSparePartsId(sparePartAudit.getId()); + } sb.append(sparePartAudit.getId()).append(","); insertSparePartAudit.setCount(sparePartAudit.getCount()); //备件出库数量 @@ -249,6 +255,16 @@ public class SparePartOutWarehouseServiceImpl implements ISparePartOutWarehouseS insertSparePartAudit.setUpdateTime(System.currentTimeMillis() / 1000); sparePartAuditMapper.insert(insertSparePartAudit);//插入备件审核信息 } + //如果是已取消状态编辑改成未审核 + if(model.getAuditState() == AuditStateEnum.CANCELED.getStatus()){ + model.setAuditState(AuditStateEnum.UNREVIEWED.getStatus()); + } + //已审核,但不通过的,重新编辑之后状态也要变成未审核,审核结果改成空 + if(model.getAuditState() == AuditStateEnum.AUDITED.getStatus() + && model.getAuditResult() == AuditStateEnum.NOTPASS.getStatus()){ + model.setAuditState(AuditStateEnum.UNREVIEWED.getStatus()); + model.setAuditResult(null); + } sb.deleteCharAt(sb.length() - 1); // 删除最后一个逗号 model.setSparePartAuditId(String.valueOf(sb));// 备件审核id model.setUpdateTime(System.currentTimeMillis() / 1000); diff --git a/admin/src/main/java/com/hcy/admin/service/sparePartStockAudit/impl/SparePartStockAuditServiceImpl.java b/admin/src/main/java/com/hcy/admin/service/sparePartStockAudit/impl/SparePartStockAuditServiceImpl.java index e8ae999..c3d65f4 100644 --- a/admin/src/main/java/com/hcy/admin/service/sparePartStockAudit/impl/SparePartStockAuditServiceImpl.java +++ b/admin/src/main/java/com/hcy/admin/service/sparePartStockAudit/impl/SparePartStockAuditServiceImpl.java @@ -94,7 +94,24 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi if (warehouse != null){ vo.setWarehouseName(warehouse.getWarehouseName()); } - + // 调入仓库名 + Warehouse importWarehouseName = warehouseMapper.selectOne( + new QueryWrapper() + .eq("id", item.getImportWarehouse()) + .eq("is_delete", 0) + .last("limit 1")); + if(importWarehouseName != null){ + vo.setImportWarehouseName(importWarehouseName.getWarehouseName()); + } + // 调出仓库名 + Warehouse exportWarehouseName = warehouseMapper.selectOne( + new QueryWrapper() + .eq("id", item.getExportWarehouse()) + .eq("is_delete", 0) + .last("limit 1")); + if(exportWarehouseName != null){ + vo.setExportWarehouseName(exportWarehouseName.getWarehouseName()); + } list.add(vo); } @@ -323,7 +340,7 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi if(sparePart.getQuantity() >= sparePartAudit.getCount()){ sparePart.setQuantity(sparePart.getQuantity() - sparePartAudit.getCount()); }else{ - throw new OperateException("备件库存数量不足"); + throw new OperateException("备件库存数量不足,请联系客服人员!"); } sparePartMapper.updateById(sparePart); } @@ -344,19 +361,33 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi if(sparePart.getQuantity() >= sparePartAudit.getCount()){ sparePart.setQuantity(sparePart.getQuantity() - sparePartAudit.getCount()); }else{ - throw new OperateException("备件库存数量不足"); + throw new OperateException("备件库存数量不足,请联系客服人员!"); } sparePartMapper.updateById(sparePart); - /*//调入仓库 + //调入仓库 SparePart inSparePart = sparePartMapper.selectOne( new QueryWrapper() - .eq("id", sparePartAudit.getSparePartsId()) + .eq("spare_parts_code", sparePartAudit.getSparePartsCode()) .eq("warehouse_id", model.getImportWarehouse()) .eq("is_delete", 0) .last("limit 1")); - inSparePart.setQuantity(inSparePart.getQuantity() + sparePartAudit.getCount()); - sparePartMapper.updateById(inSparePart);*/ + //入库时判断入库仓库是否有该备件,没有就新增新的配件 + if(inSparePart != null){ + inSparePart.setQuantity(inSparePart.getQuantity() + sparePartAudit.getCount()); + sparePartMapper.updateById(inSparePart); + }else{ + SparePart addSparePart = new SparePart(); + addSparePart.setSparePartsCode(sparePart.getSparePartsCode());//备件编码 + addSparePart.setSparePartsName(sparePart.getSparePartsName());//备件名称 + addSparePart.setWarehouseId(model.getImportWarehouse());//所属仓库 + addSparePart.setSpecificationsModel(sparePart.getSpecificationsModel());//规格型号 + addSparePart.setUnit(sparePart.getUnit());//单位 + addSparePart.setQuantity(sparePartAudit.getCount());//库存数量 + addSparePart.setUnitPrice(sparePart.getUnitPrice());//单价 + sparePartMapper.insert(addSparePart); + } + } } diff --git a/admin/src/main/java/com/hcy/admin/vo/SparePartOutWarehouseListVo/SparePartOutWarehouseListVo.java b/admin/src/main/java/com/hcy/admin/vo/SparePartOutWarehouseListVo/SparePartOutWarehouseListVo.java index 015d7be..e761daf 100644 --- a/admin/src/main/java/com/hcy/admin/vo/SparePartOutWarehouseListVo/SparePartOutWarehouseListVo.java +++ b/admin/src/main/java/com/hcy/admin/vo/SparePartOutWarehouseListVo/SparePartOutWarehouseListVo.java @@ -22,7 +22,7 @@ public class SparePartOutWarehouseListVo implements Serializable { private String responsiblePerson; // 经办人 private String handlingTime; // 经办时间 private Integer auditState; // 审核状态(0=未审核,1=已审核,2=已取消) - private Integer auditResult; // 审核结果(0=未通过,1=已通过) + private Integer auditResult; // 审核结果(0=已通过,1=未通过) private Long auditTime; // 审核时间 private String auditIdea; // 审核意见 private String createTime; // 创建时间 diff --git a/admin/src/main/java/com/hcy/admin/vo/sparePartAllotListVo/SparePartAllotListVo.java b/admin/src/main/java/com/hcy/admin/vo/sparePartAllotListVo/SparePartAllotListVo.java index 38049f3..e3a35bd 100644 --- a/admin/src/main/java/com/hcy/admin/vo/sparePartAllotListVo/SparePartAllotListVo.java +++ b/admin/src/main/java/com/hcy/admin/vo/sparePartAllotListVo/SparePartAllotListVo.java @@ -22,7 +22,7 @@ public class SparePartAllotListVo implements Serializable { private String responsiblePerson; // 经办人 private String handlingTime; // 经办时间 private Integer auditState; // 审核状态(0=未审核,1=已审核,2=已取消) - private Integer auditResult; // 审核结果(0=未通过,1=已通过) + private Integer auditResult; // 审核结果(0=已通过,1=未通过) private Long auditTime; // 审核时间 private String auditIdea; // 审核意见 private String createTime; // 创建时间 diff --git a/admin/src/main/java/com/hcy/admin/vo/sparePartInWarehouse/SparePartInWarehouseListVo.java b/admin/src/main/java/com/hcy/admin/vo/sparePartInWarehouse/SparePartInWarehouseListVo.java index 08550ff..1966fc2 100644 --- a/admin/src/main/java/com/hcy/admin/vo/sparePartInWarehouse/SparePartInWarehouseListVo.java +++ b/admin/src/main/java/com/hcy/admin/vo/sparePartInWarehouse/SparePartInWarehouseListVo.java @@ -22,7 +22,7 @@ public class SparePartInWarehouseListVo implements Serializable { private String responsiblePerson; // 经办人 private String handlingTime; // 经办时间 private Integer auditState; // 审核状态(0=未审核,1=已审核,2=已取消) - private Integer auditResult; // 审核结果(0=未通过,1=已通过) + private Integer auditResult; // 审核结果(0=已通过,1=未通过) private Long auditTime; // 审核时间 private String auditIdea; // 审核意见 private String createTime; // 创建时间 diff --git a/admin/src/main/java/com/hcy/admin/vo/sparePartStockAudit/SparePartStockAuditDetailVo.java b/admin/src/main/java/com/hcy/admin/vo/sparePartStockAudit/SparePartStockAuditDetailVo.java index 6566abd..b47567e 100644 --- a/admin/src/main/java/com/hcy/admin/vo/sparePartStockAudit/SparePartStockAuditDetailVo.java +++ b/admin/src/main/java/com/hcy/admin/vo/sparePartStockAudit/SparePartStockAuditDetailVo.java @@ -26,7 +26,7 @@ public class SparePartStockAuditDetailVo implements Serializable { private String handlingTime; // 经办时间 private String consignee; // 收货单位(人员) private Integer auditState; // 审核状态(0=未审核,1=已审核,2=已取消) - private Integer auditResult; // 审核结果(0=未通过,1=已通过) + private Integer auditResult; // 审核结果(0=已通过,1=未通过) private String auditTime; // 审核时间 private String auditIdea; // 审核意见 private String phone; // 联系电话 diff --git a/admin/src/main/java/com/hcy/admin/vo/sparePartStockAudit/SparePartStockAuditListVo.java b/admin/src/main/java/com/hcy/admin/vo/sparePartStockAudit/SparePartStockAuditListVo.java index 4b5806c..945254a 100644 --- a/admin/src/main/java/com/hcy/admin/vo/sparePartStockAudit/SparePartStockAuditListVo.java +++ b/admin/src/main/java/com/hcy/admin/vo/sparePartStockAudit/SparePartStockAuditListVo.java @@ -25,7 +25,7 @@ public class SparePartStockAuditListVo implements Serializable { private String handlingTime; // 经办时间 private String consignee; // 收货单位(人员) private Integer auditState; // 审核状态(0=未审核,1=已审核,2=已取消) - private Integer auditResult; // 审核结果(0=未通过,1=已通过) + private Integer auditResult; // 审核结果(0=已通过,1=未通过) private String auditTime; // 审核时间 private String createTime; // 创建时间 private String updateTime; // 更新时间 diff --git a/common/src/main/java/com/hcy/common/entity/sparePartStockAudit/SparePartStockAudit.java b/common/src/main/java/com/hcy/common/entity/sparePartStockAudit/SparePartStockAudit.java index cc755ac..d2e84ef 100644 --- a/common/src/main/java/com/hcy/common/entity/sparePartStockAudit/SparePartStockAudit.java +++ b/common/src/main/java/com/hcy/common/entity/sparePartStockAudit/SparePartStockAudit.java @@ -1,6 +1,8 @@ package com.hcy.common.entity.sparePartStockAudit; +import com.baomidou.mybatisplus.annotation.FieldStrategy; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import lombok.Data; @@ -26,7 +28,8 @@ public class SparePartStockAudit implements Serializable { private Long handlingTime; // 经办时间 private String consignee; // 收货单位(人员) private Integer auditState; // 审核状态(0=未审核,1=已审核,2=已取消) - private Integer auditResult; // 审核结果(0=未通过,1=已通过) + @TableField(updateStrategy = FieldStrategy.IGNORED) + private Integer auditResult; // 审核结果(0=已通过,1=未通过) private Long auditTime; // 审核时间 private String auditIdea; // 审核意见 private String phone; // 联系电话 diff --git a/common/src/main/java/com/hcy/common/enums/Audit/AuditStateEnum.java b/common/src/main/java/com/hcy/common/enums/Audit/AuditStateEnum.java index 93d25a5..14d20c6 100644 --- a/common/src/main/java/com/hcy/common/enums/Audit/AuditStateEnum.java +++ b/common/src/main/java/com/hcy/common/enums/Audit/AuditStateEnum.java @@ -13,8 +13,9 @@ import java.util.Map; public enum AuditStateEnum { UNREVIEWED(0, "未审核"), AUDITED(1, "已审核"), - CANCELED(2,"已取消"), + + //审核结果(0=已通过,1=未通过) NOTPASS(1,"未通过"), ALREADYPASSED(0, "已通过"), diff --git a/www/wwwroot/java-smyy/server/like-admin/admin-log4j2-ERROR-2024-08-04_1.log.gz b/www/wwwroot/java-smyy/server/like-admin/admin-log4j2-ERROR-2024-08-04_1.log.gz new file mode 100644 index 0000000000000000000000000000000000000000..4c4ea07cc2aa7dbba9997cd7072562197b5fc333 GIT binary patch literal 283 zcmV+$0p$K4iwFP!000000JYLTOT$nQ0PsEFcX(eQ$Gex8Lg?h9W;H=LYh}& z3UzhqBn~3Dxwr~Kp#%MYwf?%V%aUc2G(E9U zkt0dEAi3A-h>o0qP?GBd7eTAzAL`U^vt_lYKcDLNm(}yf&+KtoK723cRvhNJ$xlsR z_h>tf6-WAJqHl|f{%_~p{42NPI!IiAa>Y^C-#89&7jTagbmw^F_<+K1b-XSe8Gzj5 h9DL?KN0F3(+-<)P?-cTYE9aPxumN*4e&z53008Yuh!p?; literal 0 HcmV?d00001 diff --git a/www/wwwroot/java-smyy/server/like-admin/admin-log4j2-INFO-2024-08-04_1.log.gz b/www/wwwroot/java-smyy/server/like-admin/admin-log4j2-INFO-2024-08-04_1.log.gz new file mode 100644 index 0000000000000000000000000000000000000000..4f848cc7f7c4d56dbf12c4bc672132b8e0505d63 GIT binary patch literal 31858 zcmcGW1yodhySG7*kOoDX0ftgQ7&@hyL6D9ilt#Kcq;seNh7wR5P(YDJLPWYjQd;Ro zLXeVgkI(bG=XuZjp7WivzV*2l%eCD9*^axsulsl1n>n5U>yKakA52|l3~NPvAGcgY zCwSsK41utz7RUsSt8P~_eo35hFQjutgs|4}>T_wcaB~i>)cd`|^AMmh+Z`O3CFO6y zek4>hG~^fHzxud;8V%mFo!P8R)hT{eqDigfwioU2*7j}9$IDL-?|vaPdh~8wdo7j! z%vEnWo@YMqwnPtdQ=XCGqyJ0YM<#xwRt51qZ>oJ5i(m};e&5*P*3Az-D5az4jZM>F zdBsjOSGCr^_I<{FZF2wc{*kun=X83a$4d4~&tbL5@q7ohM zW)P%WQY<0k$lqoBNXJ+T*2(Gf!@I{Ibr3mJWMsN(m;Ds-ZmrZW<+19EJKTCSdObDs zS{fEXmsX~*Nr#hZ!&ohAF|wD%#|0N0x4j;g+V7sv2Vbs<^<4K&SMj@Ziz$W#Tu^tf zsCoS4+?@JVgXWq>f9ebz=|W}{ew-Q~txvD7ZAGnm8F{Q23umC-H@rOwLp#-=`rZu= z9b`#GtoSg&e?8(*4OvuAC@xDY+uMG9sCC(7Zyz9YWb}x?{O(TeCBFU{Wa!RmF5jbw z!ejlP9}b0*T0OHfRu2z}3|f}_%zv#q=_@@8@I1dNSDDGky0oj; z!!JaeF9WL^a#Y>!Ig>6D)i9&%3%rU(q!9G-7eCfDmtS@=>r~`yfvLk&`d;FV=@%=* zQ3gNaFJJeXup7W1eGC%5<>36B?&Zg{=s|~O>7yN+AI9lnz6mb8Rn3#mB)gm6m*mwJ z<1_kKi@!XOqK@n&64*C*!M(2xKGNCIv{s zrMXKxQqTh{BXIw$ZAjY zlRZC8byEM;65}{BC!tusM!Lk0FF0^3al5PLx~ND1>wSUDO@klCeVh+mOw-0HOef;% zjgt#&8xVGs>Uz%}INtOwbr;BAQz~5L5a7DY3pq+_iX${!4F+$grg+@W$I)URmc|~$YH4HtA2wGnJ1cfM}!&IJ$>E%?Rhlaq9xWN(bJK{l7YP$9@Fab zlH#;X{T0a{3f7F;eDSVD_g6abUEuYBb$8woO5F3zoTJ|7oTKwR|27;Y^nH)x?&H>> ze0EB;R5J4v-}4{&rr*AZJ-+G1l|eLTA|(1a&k*~|q2mkhfXl0q8~ukCOLfl0b))tH zA6}$p@LW%Odb}uQ^d{&`+jX8(djBDv!+X2USdAZDk$iWluCLtgvwGsko<8|mK>vO& zQ;8oJLgH!gTrksMsuTCerett+uO3yw*lB0){YV3Yh9{HbNg1~}e%-EjyL_6=;5ixm zb>ltc`sHgi(mFK<6o0XjnG qU(DPeLDPW+2`iePz_hzV~?9 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�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�HJY4VKVGmY|en6?QRpS4v8hh5v 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 literal 0 HcmV?d00001