库存日志

This commit is contained in:
sxu 2024-08-06 17:05:54 +08:00
parent c8dc02fc99
commit 9a338f9513
33 changed files with 301 additions and 282 deletions

View File

@ -1,4 +1,4 @@
package com.bonus.sgzb.material.domain; package com.bonus.sgzb.base.api.domain;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.List;
@ -39,6 +39,12 @@ public class MaInputRecord extends BaseEntity
@ApiModelProperty(value = "入库类型(1新购入库2退料入库3修试后入库)") @ApiModelProperty(value = "入库类型(1新购入库2退料入库3修试后入库)")
private String inputType; private String inputType;
/**
* 库存数量
*/
@ApiModelProperty(value = "库存数量")
private Double num;
/** 入库数量 */ /** 入库数量 */
@ApiModelProperty(value = "入库数量") @ApiModelProperty(value = "入库数量")
private BigDecimal inputNum; private BigDecimal inputNum;
@ -104,6 +110,15 @@ public class MaInputRecord extends BaseEntity
{ {
return inputType; return inputType;
} }
public Double getNum() {
return num;
}
public void setNum(Double num) {
this.num = num;
}
public void setInputNum(BigDecimal inputNum) public void setInputNum(BigDecimal inputNum)
{ {
this.inputNum = inputNum; this.inputNum = inputNum;

View File

@ -1,6 +1,6 @@
package com.bonus.sgzb.material.vo; package com.bonus.sgzb.base.api.domain;
import com.bonus.sgzb.material.domain.MaInputRecord; import com.bonus.sgzb.base.api.domain.MaInputRecord;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.bonus.sgzb.material.domain; package com.bonus.sgzb.base.api.domain;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;

View File

@ -1,5 +1,6 @@
package com.bonus.sgzb.material.domain; package com.bonus.sgzb.base.api.domain;
import com.bonus.sgzb.base.api.domain.MachIneDto;
import com.bonus.sgzb.common.core.web.domain.BaseEntity; import com.bonus.sgzb.common.core.web.domain.BaseEntity;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;

View File

@ -1,6 +1,7 @@
package com.bonus.sgzb.system.api.factory; package com.bonus.sgzb.system.api.factory;
import com.bonus.sgzb.system.api.domain.BmNumLogs; import com.bonus.sgzb.system.api.domain.BmNumLogs;
import com.bonus.sgzb.base.api.domain.BmStorageLog;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.cloud.openfeign.FallbackFactory;
@ -10,6 +11,8 @@ import com.bonus.sgzb.system.api.RemoteLogService;
import com.bonus.sgzb.system.api.domain.SysLogininfor; import com.bonus.sgzb.system.api.domain.SysLogininfor;
import com.bonus.sgzb.system.api.domain.SysOperLog; import com.bonus.sgzb.system.api.domain.SysOperLog;
import java.util.List;
/** /**
* 日志服务降级处理 * 日志服务降级处理
* *
@ -37,6 +40,11 @@ public class RemoteLogFallbackFactory implements FallbackFactory<RemoteLogServic
return R.fail("保存物资库存日志失败:" + throwable.getMessage()); return R.fail("保存物资库存日志失败:" + throwable.getMessage());
} }
@Override
public R<Boolean> batchInsert(List<BmStorageLog> bmStorageLogList, String source) throws Exception {
return R.fail("保存物资库存日志失败:" + throwable.getMessage());
}
@Override @Override
public R<Boolean> saveLogininfor(SysLogininfor sysLogininfor, String source) public R<Boolean> saveLogininfor(SysLogininfor sysLogininfor, String source)
{ {

View File

@ -4,9 +4,7 @@ import java.util.*;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.bonus.sgzb.base.api.domain.BmStorageLog; import com.bonus.sgzb.base.api.domain.*;
import com.bonus.sgzb.base.api.domain.HttpResult;
import com.bonus.sgzb.base.api.domain.LeaseOutDetails;
import com.bonus.sgzb.common.core.constant.SecurityConstants; import com.bonus.sgzb.common.core.constant.SecurityConstants;
import com.bonus.sgzb.common.core.domain.R; import com.bonus.sgzb.common.core.domain.R;
import com.bonus.sgzb.common.log.annotation.Log; import com.bonus.sgzb.common.log.annotation.Log;
@ -244,32 +242,32 @@ public class LogAspect
Map<?, ?> paramsMap = ServletUtils.getParamMap(ServletUtils.getRequest()); Map<?, ?> paramsMap = ServletUtils.getParamMap(ServletUtils.getRequest());
if (StringUtils.isEmpty(paramsMap) && (HttpMethod.PUT.name().equals(requestMethod) || HttpMethod.POST.name().equals(requestMethod))) { if (StringUtils.isEmpty(paramsMap) && (HttpMethod.PUT.name().equals(requestMethod) || HttpMethod.POST.name().equals(requestMethod))) {
// 盘点入库操作 // 盘点入库操作
// if (joinPoint.getArgs()[0] instanceof SavePutInfoDto) { if (joinPoint.getArgs()[0] instanceof SavePutInfoDto) {
// SavePutInfoDto savePutInfoDto = (SavePutInfoDto) joinPoint.getArgs()[0]; SavePutInfoDto savePutInfoDto = (SavePutInfoDto) joinPoint.getArgs()[0];
// for (MachIneDto machineDto : savePutInfoDto.getMachIneDtoList()) { for (MachIneDto machineDto : savePutInfoDto.getMachIneDtoList()) {
// BmStorageLog bmStorageLog = new BmStorageLog(); BmStorageLog bmStorageLog = new BmStorageLog();
// bmStorageLog.setTypeId(Integer.parseInt(machineDto.getTypeId())); bmStorageLog.setTypeId(Integer.parseInt(machineDto.getTypeId()));
// bmStorageLog.setTypeName(machineDto.getMaCode()); bmStorageLog.setTypeName(machineDto.getMaCode());
// bmStorageLog.setPreStoreNum(Objects.isNull(machineDto.getNum()) ? 0 : machineDto.getNum().intValue()); bmStorageLog.setPreStoreNum(Objects.isNull(machineDto.getNum()) ? 0 : machineDto.getNum().intValue());
// bmStorageLog.setInNum(Objects.isNull(machineDto.getPutInStoreNum()) ? 0 : machineDto.getPutInStoreNum().intValue()); bmStorageLog.setInNum(Objects.isNull(machineDto.getPutInStoreNum()) ? 0 : machineDto.getPutInStoreNum().intValue());
// bmStorageLog.setPostStoreNum(bmStorageLog.getPreStoreNum() + bmStorageLog.getInNum()); bmStorageLog.setPostStoreNum(bmStorageLog.getPreStoreNum() + bmStorageLog.getInNum());
// bmStorageLogList.add(bmStorageLog); bmStorageLogList.add(bmStorageLog);
// } }
// } }
// 新购验收任务 PurchaseMacodeInfoController.modifyManageStatus // 新购验收任务 PurchaseMacodeInfoController.modifyManageStatus
// if (joinPoint.getArgs()[0] instanceof MaInputVO) { if (joinPoint.getArgs()[0] instanceof MaInputVO) {
// MaInputVO maInputVO = (MaInputVO) joinPoint.getArgs()[0]; MaInputVO maInputVO = (MaInputVO) joinPoint.getArgs()[0];
// for (MaInputRecord maInputRecord : maInputVO.getInputRecordList()) { for (MaInputRecord maInputRecord : maInputVO.getInputRecordList()) {
// BmStorageLog bmStorageLog = new BmStorageLog(); BmStorageLog bmStorageLog = new BmStorageLog();
// bmStorageLog.setTypeId(Objects.isNull(maInputRecord.getTypeId()) ? 0 : maInputRecord.getTypeId().intValue()); bmStorageLog.setTypeId(Objects.isNull(maInputRecord.getTypeId()) ? 0 : maInputRecord.getTypeId().intValue());
// bmStorageLog.setTypeName(maInputRecord.getMaCode()); bmStorageLog.setTypeName(maInputRecord.getMaCode());
// bmStorageLog.setPreStoreNum(Objects.isNull(maInputRecord.getNum()) ? 0: maInputRecord.getNum().intValue()); bmStorageLog.setPreStoreNum(Objects.isNull(maInputRecord.getNum()) ? 0: maInputRecord.getNum().intValue());
// bmStorageLog.setInNum(Objects.isNull(maInputRecord.getInputNum()) ? 0: maInputRecord.getInputNum().intValue()); bmStorageLog.setInNum(Objects.isNull(maInputRecord.getInputNum()) ? 0: maInputRecord.getInputNum().intValue());
// bmStorageLog.setPostStoreNum(bmStorageLog.getPreStoreNum() + bmStorageLog.getInNum()); bmStorageLog.setPostStoreNum(bmStorageLog.getPreStoreNum() + bmStorageLog.getInNum());
// bmStorageLog.setTaskId(String.valueOf(maInputRecord.getTaskId())); bmStorageLog.setTaskId(String.valueOf(maInputRecord.getTaskId()));
// bmStorageLogList.add(bmStorageLog); bmStorageLogList.add(bmStorageLog);
// } }
// } }
// 新购配件入库审核 PurchaseAccessoryController.checkInput, 因为没有出入库闭环暂时不加库存监控日志 // 新购配件入库审核 PurchaseAccessoryController.checkInput, 因为没有出入库闭环暂时不加库存监控日志
// if (joinPoint.getArgs()[0] instanceof MaInputVO) { // if (joinPoint.getArgs()[0] instanceof MaInputVO) {
// MaInputVO maInputVO = (MaInputVO) joinPoint.getArgs()[0]; // MaInputVO maInputVO = (MaInputVO) joinPoint.getArgs()[0];

View File

@ -1,13 +1,11 @@
package com.bonus.sgzb.app.controller; package com.bonus.sgzb.app.controller;
import com.bonus.sgzb.app.domain.BackApplyInfo; import com.bonus.sgzb.base.api.domain.MaInputVO;
import com.bonus.sgzb.app.domain.MaInputVO;
import com.bonus.sgzb.app.domain.PurchaseCheckInfo; import com.bonus.sgzb.app.domain.PurchaseCheckInfo;
import com.bonus.sgzb.app.domain.PurchaseMacodeInfo; import com.bonus.sgzb.app.domain.PurchaseMacodeInfo;
import com.bonus.sgzb.app.service.PurchaseInputService; import com.bonus.sgzb.app.service.PurchaseInputService;
import com.bonus.sgzb.common.core.web.controller.BaseController; import com.bonus.sgzb.common.core.web.controller.BaseController;
import com.bonus.sgzb.common.core.web.domain.AjaxResult; import com.bonus.sgzb.common.core.web.domain.AjaxResult;
import com.bonus.sgzb.common.core.web.page.TableDataInfo;
import com.bonus.sgzb.common.log.annotation.Log; import com.bonus.sgzb.common.log.annotation.Log;
import com.bonus.sgzb.common.log.enums.BusinessType; import com.bonus.sgzb.common.log.enums.BusinessType;
import com.bonus.sgzb.common.security.utils.SecurityUtils; import com.bonus.sgzb.common.security.utils.SecurityUtils;

View File

@ -1,168 +0,0 @@
package com.bonus.sgzb.app.domain;
import com.bonus.sgzb.common.core.web.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.math.BigDecimal;
/**
* 入库记录ma_input_record对象 ma_input_record
*
* @author bonus
* @date 2023-12-15
*/
public class MaInputRecord extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** $column.columnComment */
@ApiModelProperty(value = "主键id")
private Long id;
/** 任务ID */
@ApiModelProperty(value = "任务ID")
private Long taskId;
/** 类型ID */
@ApiModelProperty(value = "类型ID")
private Long typeId;
/** 机具ID */
@ApiModelProperty(value = "机具ID")
private Long maId;
/** 入库类型(1新购入库2退料入库3修试后入库) */
@ApiModelProperty(value = "入库类型(1新购入库2退料入库3修试后入库)")
private String inputType;
/** 入库数量 */
@ApiModelProperty(value = "入库数量")
private BigDecimal inputNum;
/** 状态0删除1正常 */
@ApiModelProperty(value = "状态 0=删除1正常")
private String status;
/** 数据所属组织 */
@ApiModelProperty(value = "数据所属组织")
private Long companyId;
@ApiModelProperty(value = "验收结论")
private String checkResult;
@ApiModelProperty(value = "机具编号")
private String maCode;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setTaskId(Long taskId)
{
this.taskId = taskId;
}
public Long getTaskId()
{
return taskId;
}
public void setTypeId(Long typeId)
{
this.typeId = typeId;
}
public Long getTypeId()
{
return typeId;
}
public void setMaId(Long maId)
{
this.maId = maId;
}
public Long getMaId()
{
return maId;
}
public void setInputType(String inputType)
{
this.inputType = inputType;
}
public String getInputType()
{
return inputType;
}
public void setInputNum(BigDecimal inputNum)
{
this.inputNum = inputNum;
}
public BigDecimal getInputNum()
{
return inputNum;
}
public void setStatus(String status)
{
this.status = status;
}
public String getStatus()
{
return status;
}
public void setCompanyId(Long companyId)
{
this.companyId = companyId;
}
public Long getCompanyId()
{
return companyId;
}
public String getCheckResult() {
return checkResult;
}
public void setCheckResult(String checkResult) {
this.checkResult = checkResult;
}
public String getMaCode() {
return maCode;
}
public void setMaCode(String maCode) {
this.maCode = maCode;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("taskId", getTaskId())
.append("typeId", getTypeId())
.append("maId", getMaId())
.append("inputType", getInputType())
.append("inputNum", getInputNum())
.append("status", getStatus())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.append("companyId", getCompanyId())
.toString();
}
}

View File

@ -1,24 +0,0 @@
package com.bonus.sgzb.app.domain;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class MaInputVO {
/** 任务ID */
@ApiModelProperty(value = "任务ID")
private Long taskId;
@ApiModelProperty(value = "验收结论")
private String checkResult;
/**
* 入库记录
*/
private List<MaInputRecord> inputRecordList;
}

View File

@ -1,6 +1,7 @@
package com.bonus.sgzb.app.mapper; package com.bonus.sgzb.app.mapper;
import com.bonus.sgzb.app.domain.*; import com.bonus.sgzb.app.domain.*;
import com.bonus.sgzb.base.api.domain.MaInputRecord;
import com.bonus.sgzb.base.api.domain.MaMachine; import com.bonus.sgzb.base.api.domain.MaMachine;
import com.bonus.sgzb.base.api.domain.MaType; import com.bonus.sgzb.base.api.domain.MaType;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;

View File

@ -1,7 +1,6 @@
package com.bonus.sgzb.app.service; package com.bonus.sgzb.app.service;
import com.bonus.sgzb.app.domain.BackApplyInfo; import com.bonus.sgzb.base.api.domain.MaInputVO;
import com.bonus.sgzb.app.domain.MaInputVO;
import com.bonus.sgzb.app.domain.PurchaseCheckInfo; import com.bonus.sgzb.app.domain.PurchaseCheckInfo;
import com.bonus.sgzb.app.domain.PurchaseMacodeInfo; import com.bonus.sgzb.app.domain.PurchaseMacodeInfo;

View File

@ -3,6 +3,8 @@ package com.bonus.sgzb.app.service.impl;
import com.bonus.sgzb.app.domain.*; import com.bonus.sgzb.app.domain.*;
import com.bonus.sgzb.app.mapper.PurchaseInputMapper; import com.bonus.sgzb.app.mapper.PurchaseInputMapper;
import com.bonus.sgzb.app.service.PurchaseInputService; import com.bonus.sgzb.app.service.PurchaseInputService;
import com.bonus.sgzb.base.api.domain.MaInputRecord;
import com.bonus.sgzb.base.api.domain.MaInputVO;
import com.bonus.sgzb.base.api.domain.MaMachine; import com.bonus.sgzb.base.api.domain.MaMachine;
import com.bonus.sgzb.base.api.domain.MaType; import com.bonus.sgzb.base.api.domain.MaType;
import com.bonus.sgzb.common.core.utils.DateUtils; import com.bonus.sgzb.common.core.utils.DateUtils;

View File

@ -47,7 +47,7 @@
<if test="companyId != null">#{companyId},</if> <if test="companyId != null">#{companyId},</if>
</trim> </trim>
</insert> </insert>
<insert id="insertMaInputRecord" parameterType="com.bonus.sgzb.app.domain.MaInputRecord" useGeneratedKeys="true" keyProperty="id"> <insert id="insertMaInputRecord" parameterType="com.bonus.sgzb.base.api.domain.MaInputRecord" useGeneratedKeys="true" keyProperty="id">
insert into ma_input_record insert into ma_input_record
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
<if test="taskId != null">task_id,</if> <if test="taskId != null">task_id,</if>

View File

@ -6,7 +6,7 @@ import com.bonus.sgzb.common.core.web.page.TableDataInfo;
import com.bonus.sgzb.common.log.annotation.Log; import com.bonus.sgzb.common.log.annotation.Log;
import com.bonus.sgzb.common.log.enums.BusinessType; import com.bonus.sgzb.common.log.enums.BusinessType;
import com.bonus.sgzb.material.domain.PutInStorageBean; import com.bonus.sgzb.material.domain.PutInStorageBean;
import com.bonus.sgzb.material.domain.SavePutInfoDto; import com.bonus.sgzb.base.api.domain.SavePutInfoDto;
import com.bonus.sgzb.material.service.InventoryAndWarehousingService; import com.bonus.sgzb.material.service.InventoryAndWarehousingService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;

View File

@ -8,7 +8,6 @@ import com.bonus.sgzb.common.log.annotation.Log;
import com.bonus.sgzb.common.log.enums.BusinessType; import com.bonus.sgzb.common.log.enums.BusinessType;
import com.bonus.sgzb.material.domain.*; import com.bonus.sgzb.material.domain.*;
import com.bonus.sgzb.material.service.IPurchaseAccessoryService; import com.bonus.sgzb.material.service.IPurchaseAccessoryService;
import com.bonus.sgzb.material.vo.MaInputVO;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;

View File

@ -10,12 +10,8 @@ import com.bonus.sgzb.common.security.utils.SecurityUtils;
import com.bonus.sgzb.material.domain.PurchaseCheckInfo; import com.bonus.sgzb.material.domain.PurchaseCheckInfo;
import com.bonus.sgzb.material.domain.PurchaseInput; import com.bonus.sgzb.material.domain.PurchaseInput;
import com.bonus.sgzb.material.domain.PurchaseMacodeInfo; import com.bonus.sgzb.material.domain.PurchaseMacodeInfo;
import com.bonus.sgzb.material.service.IPurchaseCheckInfoService;
import com.bonus.sgzb.material.service.PurchaseCheckServiceCenterService; import com.bonus.sgzb.material.service.PurchaseCheckServiceCenterService;
import com.bonus.sgzb.material.vo.MaInputVO; import com.bonus.sgzb.base.api.domain.MaInputVO;
import com.bonus.sgzb.material.vo.NoticeInfoVO;
import com.bonus.sgzb.system.api.domain.SysUser;
import com.bonus.sgzb.system.api.model.LoginUser;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;

View File

@ -5,13 +5,9 @@ import javax.servlet.http.HttpServletResponse;
import com.bonus.sgzb.common.log.annotation.Log; import com.bonus.sgzb.common.log.annotation.Log;
import com.bonus.sgzb.common.log.enums.BusinessType; import com.bonus.sgzb.common.log.enums.BusinessType;
import com.bonus.sgzb.material.domain.LeaseApplyInfo;
import com.bonus.sgzb.material.domain.MaInputRecord;
import com.bonus.sgzb.material.service.IPurchaseMacodeInfoService; import com.bonus.sgzb.material.service.IPurchaseMacodeInfoService;
import com.bonus.sgzb.material.domain.PurchaseMacodeInfo; import com.bonus.sgzb.material.domain.PurchaseMacodeInfo;
import com.bonus.sgzb.material.service.LeaseRecordService; import com.bonus.sgzb.base.api.domain.MaInputVO;
import com.bonus.sgzb.material.vo.EquipmentNumberVO;
import com.bonus.sgzb.material.vo.MaInputVO;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;

View File

@ -33,6 +33,12 @@ public class PurchaseMacodeInfo extends BaseEntity
@ApiModelProperty(value = "类型ID") @ApiModelProperty(value = "类型ID")
private Long typeId; private Long typeId;
/**
* 库存数量
*/
@ApiModelProperty(value = "库存数量")
private Double num;
/** 机具编号 */ /** 机具编号 */
@ApiModelProperty(value = "机具编号") @ApiModelProperty(value = "机具编号")
private String maCode; private String maCode;
@ -173,6 +179,15 @@ public class PurchaseMacodeInfo extends BaseEntity
{ {
return typeId; return typeId;
} }
public Double getNum() {
return num;
}
public void setNum(Double num) {
this.num = num;
}
public void setMaCode(String maCode) public void setMaCode(String maCode)
{ {
this.maCode = maCode; this.maCode = maCode;

View File

@ -1,6 +1,6 @@
package com.bonus.sgzb.material.mapper; package com.bonus.sgzb.material.mapper;
import com.bonus.sgzb.material.domain.MachIneDto; import com.bonus.sgzb.base.api.domain.MachIneDto;
import com.bonus.sgzb.material.domain.PutInStorageBean; import com.bonus.sgzb.material.domain.PutInStorageBean;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;

View File

@ -1,5 +1,6 @@
package com.bonus.sgzb.material.mapper; package com.bonus.sgzb.material.mapper;
import com.bonus.sgzb.base.api.domain.MaInputRecord;
import com.bonus.sgzb.base.api.domain.MaMachine; import com.bonus.sgzb.base.api.domain.MaMachine;
import com.bonus.sgzb.base.api.domain.MaType; import com.bonus.sgzb.base.api.domain.MaType;
import com.bonus.sgzb.material.domain.*; import com.bonus.sgzb.material.domain.*;

View File

@ -6,7 +6,7 @@ import com.bonus.sgzb.base.api.domain.MaMachine;
import com.bonus.sgzb.base.api.domain.MaMachineLabel; import com.bonus.sgzb.base.api.domain.MaMachineLabel;
import com.bonus.sgzb.base.api.domain.MaType; import com.bonus.sgzb.base.api.domain.MaType;
import com.bonus.sgzb.material.domain.InputApplyDetails; import com.bonus.sgzb.material.domain.InputApplyDetails;
import com.bonus.sgzb.material.domain.MaInputRecord; import com.bonus.sgzb.base.api.domain.MaInputRecord;
import com.bonus.sgzb.material.domain.MachinePart; import com.bonus.sgzb.material.domain.MachinePart;
import com.bonus.sgzb.material.domain.PurchaseMacodeInfo; import com.bonus.sgzb.material.domain.PurchaseMacodeInfo;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;

View File

@ -2,10 +2,8 @@ package com.bonus.sgzb.material.service;
import com.bonus.sgzb.base.api.domain.MaMachineLabel; import com.bonus.sgzb.base.api.domain.MaMachineLabel;
import com.bonus.sgzb.common.core.web.domain.AjaxResult; import com.bonus.sgzb.common.core.web.domain.AjaxResult;
import com.bonus.sgzb.material.domain.MaInputRecord;
import com.bonus.sgzb.material.domain.PurchaseMacodeInfo; import com.bonus.sgzb.material.domain.PurchaseMacodeInfo;
import com.bonus.sgzb.material.vo.EquipmentNumberVO; import com.bonus.sgzb.base.api.domain.MaInputVO;
import com.bonus.sgzb.material.vo.MaInputVO;
import java.util.List; import java.util.List;

View File

@ -3,7 +3,7 @@ package com.bonus.sgzb.material.service;
import com.bonus.sgzb.common.core.web.domain.AjaxResult; import com.bonus.sgzb.common.core.web.domain.AjaxResult;
import com.bonus.sgzb.material.domain.PutInStorageBean; import com.bonus.sgzb.material.domain.PutInStorageBean;
import com.bonus.sgzb.material.domain.SavePutInfoDto; import com.bonus.sgzb.base.api.domain.SavePutInfoDto;
import java.util.List; import java.util.List;

View File

@ -3,7 +3,7 @@ package com.bonus.sgzb.material.service;
import com.bonus.sgzb.material.domain.PurchaseCheckInfo; import com.bonus.sgzb.material.domain.PurchaseCheckInfo;
import com.bonus.sgzb.material.domain.PurchaseInput; import com.bonus.sgzb.material.domain.PurchaseInput;
import com.bonus.sgzb.material.domain.PurchaseMacodeInfo; import com.bonus.sgzb.material.domain.PurchaseMacodeInfo;
import com.bonus.sgzb.material.vo.MaInputVO; import com.bonus.sgzb.base.api.domain.MaInputVO;
import com.bonus.sgzb.material.vo.NoticeInfoVO; import com.bonus.sgzb.material.vo.NoticeInfoVO;
import java.util.List; import java.util.List;

View File

@ -7,9 +7,9 @@ import com.bonus.sgzb.common.core.web.domain.AjaxResult;
import com.bonus.sgzb.common.security.utils.SecurityUtils; import com.bonus.sgzb.common.security.utils.SecurityUtils;
import com.bonus.sgzb.material.config.ExceptionEnum; import com.bonus.sgzb.material.config.ExceptionEnum;
import com.bonus.sgzb.material.config.FieldGenerator; import com.bonus.sgzb.material.config.FieldGenerator;
import com.bonus.sgzb.material.domain.MachIneDto; import com.bonus.sgzb.base.api.domain.MachIneDto;
import com.bonus.sgzb.material.domain.PutInStorageBean; import com.bonus.sgzb.material.domain.PutInStorageBean;
import com.bonus.sgzb.material.domain.SavePutInfoDto; import com.bonus.sgzb.base.api.domain.SavePutInfoDto;
import com.bonus.sgzb.material.mapper.InventoryAndWarehousingMapper; import com.bonus.sgzb.material.mapper.InventoryAndWarehousingMapper;
import com.bonus.sgzb.material.service.InventoryAndWarehousingService; import com.bonus.sgzb.material.service.InventoryAndWarehousingService;
import com.bonus.sgzb.material.vo.GlobalContants; import com.bonus.sgzb.material.vo.GlobalContants;

View File

@ -1,26 +1,22 @@
package com.bonus.sgzb.material.service.impl; package com.bonus.sgzb.material.service.impl;
import com.bonus.sgzb.base.api.domain.MaMachine; import com.bonus.sgzb.base.api.domain.MaInputRecord;
import com.bonus.sgzb.base.api.domain.MaType;
import com.bonus.sgzb.common.core.utils.DateUtils; import com.bonus.sgzb.common.core.utils.DateUtils;
import com.bonus.sgzb.common.core.utils.StringHelper; import com.bonus.sgzb.common.core.utils.StringHelper;
import com.bonus.sgzb.common.security.utils.SecurityUtils; import com.bonus.sgzb.common.security.utils.SecurityUtils;
import com.bonus.sgzb.material.domain.*; import com.bonus.sgzb.material.domain.*;
import com.bonus.sgzb.material.mapper.PurchaseCheckDetailsMapper; import com.bonus.sgzb.material.mapper.PurchaseCheckDetailsMapper;
import com.bonus.sgzb.material.mapper.PurchaseCheckInfoMapper;
import com.bonus.sgzb.material.mapper.PurchaseCheckServiceCenterMapper; import com.bonus.sgzb.material.mapper.PurchaseCheckServiceCenterMapper;
import com.bonus.sgzb.material.mapper.TaskMapper; import com.bonus.sgzb.material.mapper.TaskMapper;
import com.bonus.sgzb.material.service.IPurchaseCheckInfoService;
import com.bonus.sgzb.material.service.PurchaseCheckServiceCenterService; import com.bonus.sgzb.material.service.PurchaseCheckServiceCenterService;
import com.bonus.sgzb.material.vo.GlobalContants; import com.bonus.sgzb.material.vo.GlobalContants;
import com.bonus.sgzb.material.vo.MaInputVO; import com.bonus.sgzb.base.api.domain.MaInputVO;
import com.bonus.sgzb.material.vo.NoticeInfoVO; import com.bonus.sgzb.material.vo.NoticeInfoVO;
import com.bonus.sgzb.system.api.RemoteUserService; import com.bonus.sgzb.system.api.RemoteUserService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;

View File

@ -15,7 +15,7 @@ import com.bonus.sgzb.material.service.IPurchaseCheckInfoService;
import com.bonus.sgzb.material.service.IPurchaseMacodeInfoService; import com.bonus.sgzb.material.service.IPurchaseMacodeInfoService;
import com.bonus.sgzb.common.core.utils.DateUtils; import com.bonus.sgzb.common.core.utils.DateUtils;
import com.bonus.sgzb.material.vo.GlobalContants; import com.bonus.sgzb.material.vo.GlobalContants;
import com.bonus.sgzb.material.vo.MaInputVO; import com.bonus.sgzb.base.api.domain.MaInputVO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

View File

@ -224,7 +224,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select count(*) from purchase_check_details where task_id = #{taskId} and status ='1' select count(*) from purchase_check_details where task_id = #{taskId} and status ='1'
</select> </select>
<insert id="insertMaInputRecord" parameterType="com.bonus.sgzb.material.domain.MaInputRecord" useGeneratedKeys="true" keyProperty="id"> <insert id="insertMaInputRecord" parameterType="com.bonus.sgzb.base.api.domain.MaInputRecord" useGeneratedKeys="true" keyProperty="id">
insert into ma_input_record insert into ma_input_record
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
<if test="taskId != null">task_id,</if> <if test="taskId != null">task_id,</if>
@ -361,6 +361,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
pcd.type_id typeId, pcd.type_id typeId,
pcd.task_id taskId, pcd.task_id taskId,
mt.code specsCode, mt.code specsCode,
mt.num num,
mt1.code typeCode, mt1.code typeCode,
CASE CASE
WHEN pmi.ma_code is null THEN WHEN pmi.ma_code is null THEN

View File

@ -90,7 +90,7 @@
<!-- )--> <!-- )-->
<!-- </insert>--> <!-- </insert>-->
<insert id="batchInsert" keyColumn="id" keyProperty="id" parameterType="com.bonus.sgzb.system.api.domain.BmStorageLog" useGeneratedKeys="true"> <insert id="batchInsert" keyColumn="id" keyProperty="id" parameterType="com.bonus.sgzb.base.api.domain.BmStorageLog" useGeneratedKeys="true">
insert into bm_storage_log (model_title, `method`, task_id, type_id, insert into bm_storage_log (model_title, `method`, task_id, type_id,
create_time, creator, remark, out_num, manage_type, create_time, creator, remark, out_num, manage_type,
type_name, type_model_name, pre_store_num, in_num, type_name, type_model_name, pre_store_num, in_num,
@ -109,7 +109,7 @@
</foreach> </foreach>
</insert> </insert>
<insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.bonus.sgzb.system.api.domain.BmStorageLog" useGeneratedKeys="true"> <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.bonus.sgzb.base.api.domain.BmStorageLog" useGeneratedKeys="true">
<!--@mbg.generated--> <!--@mbg.generated-->
insert into bm_storage_log insert into bm_storage_log
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
@ -178,7 +178,7 @@
</trim> </trim>
</insert> </insert>
<update id="updateByPrimaryKeySelective" parameterType="com.bonus.sgzb.system.api.domain.BmStorageLog"> <update id="updateByPrimaryKeySelective" parameterType="com.bonus.sgzb.base.api.domain.BmStorageLog">
<!--@mbg.generated--> <!--@mbg.generated-->
update bm_storage_log update bm_storage_log
<set> <set>
@ -213,7 +213,7 @@
where id = #{id,jdbcType=INTEGER} where id = #{id,jdbcType=INTEGER}
</update> </update>
<update id="updateByPrimaryKey" parameterType="com.bonus.sgzb.system.api.domain.BmStorageLog"> <update id="updateByPrimaryKey" parameterType="com.bonus.sgzb.base.api.domain.BmStorageLog">
<!--@mbg.generated--> <!--@mbg.generated-->
update bm_storage_log update bm_storage_log
set model_title = #{modelTitle,jdbcType=VARCHAR}, set model_title = #{modelTitle,jdbcType=VARCHAR},

View File

@ -3,14 +3,14 @@ import request from '@/utils/request'
/* 日志列表 */ /* 日志列表 */
export const getLogsListApi = (params) => { export const getLogsListApi = (params) => {
return request.get('/system/bm_num_logs/list', { return request.get('/system/bm_storage_logs/list', {
params:params params:params
}) })
} }
/* 日志详情 */ /* 日志详情 */
export const getLogsDetailsApi = (id) => { export const getLogsDetailsApi = (id) => {
return request.get(`/system/bm_num_logs/selectByPrimaryKey`, { return request.get(`/system/bm_storage_logs/selectByPrimaryKey`, {
params: { params: {
id id
} }

View File

@ -0,0 +1,169 @@
<template>
<!-- 库存日志 -->
<div class="app-container">
<el-row>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
<el-form-item label="模块名称" prop="modelTitle">
<el-input
v-model="queryParams.modelTitle"
placeholder="请输入模块名称"
clearable
style="width: 200px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="机具类型" prop="typeName">
<el-cascader
placeholder="请选择机具类型"
:options="deviceTypeTree"
:props="{ checkStrictly: true, value: 'label' }"
@change="handleBaseValue"
clearable
filterable
:show-all-levels="false"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
</el-row>
<el-table :data="tableList" border>
<el-table-column align="center" label="序号" type="index" width="60" />
<el-table-column align="center" prop="modelTitle" label="模块名称" show-overflow-tooltip />
<el-table-column show-overflow-tooltip align="center" prop="method" label="请求方式" />
<el-table-column show-overflow-tooltip align="center" prop="requestMethod" label="请求地址" />
<el-table-column show-overflow-tooltip align="center" prop="task" label="实例" />
<el-table-column show-overflow-tooltip align="center" prop="typeParentName" label="机具类型" />
<el-table-column show-overflow-tooltip align="center" prop="typeName" label="机具规格" />
<el-table-column show-overflow-tooltip align="center" prop="description" label="描述" />
<el-table-column show-overflow-tooltip align="center" prop="time" label="日期" />
<el-table-column align="center" label="状态">
<template slot-scope="{ row }">
<el-tag size="mini" type="success" v-if="row.status == 0">正常</el-tag>
<el-tag size="mini" type="warning" v-else>异常</el-tag>
</template>
</el-table-column>
<el-table-column align="center" prop="creator" label="创建人" />
<el-table-column align="center" prop="remark" label="备注" />
<el-table-column align="center" label="操作">
<template slot-scope="{ row }">
<el-button size="mini" type="text" @click="previewLogsDetails(row)">详情</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 详情弹框 -->
<el-dialog title="日志详情" :visible.sync="logsDetailsDialogVisible" width="60%">
<el-descriptions
class="margin-top"
:column="3"
size="medium"
border
:labelStyle="commonStyle"
:contentStyle="commonStyle"
>
<el-descriptions-item v-for="(item, v) in detailsLabelList" :key="v">
<template slot="label">{{ item.label }}</template>
{{ logsDetailsInfo[item.content] || '' }}
</el-descriptions-item>
</el-descriptions>
</el-dialog>
</div>
</template>
<script>
import { getLogsListApi, getLogsDetailsApi } from '@/api/inventoryLogs'
import { getDeviceTypeTree } from '@/api/claimAndRefund/receive'
export default {
name: 'myInventoryLogs',
data() {
return {
queryParams: {
pageNum: 1,
pageSize: 10,
modelTitle: '', //
typeName: '', //
},
tableList: [],
total: 5,
logsDetailsInfo: null /* 日志详情 */,
logsDetailsDialogVisible: false,
commonStyle: {
'text-align': 'center',
},
/* 日志详情label以及内容 */
detailsLabelList: [
{ label: '创建人', content: 'creator' },
{ label: '请求方式', content: 'method' },
{ label: '模块名称', content: 'modelTitle' },
{ label: '请求地址', content: 'requestMethod' },
{ label: '机具名称', content: 'typeParentName' },
{ label: '机具规格', content: 'typeName' },
{ label: '日期', content: 'time' },
{ label: '实例', content: 'task' },
],
logsDetailsInfo: {},
deviceTypeTree: [], //
}
},
methods: {
/* 查询列表 */
async getList() {
const res = await getLogsListApi(this.queryParams)
this.tableList = res.rows
this.total = res.total
},
/* 搜索按钮 */
handleQuery() {
this.getList()
},
/* 重置按钮 */
resetQuery() {
this.resetForm('queryForm')
this.queryParams.pageNum = 1
this.queryParams.pageSize = 10
this.queryParams.typeName = ''
this.getList()
},
/* 查看详情 */
async previewLogsDetails(row) {
console.log(row, '列表id')
const res = await getLogsDetailsApi(row.id)
this.logsDetailsInfo = res
this.logsDetailsDialogVisible = true
},
async GetDeviceTypeTree() {
const params = {
level: 4,
}
const res = await getDeviceTypeTree(params)
this.deviceTypeTree = res.data
},
/* 获取最后一级 */
handleBaseValue(val) {
this.queryParams.typeName = val[val.length - 1]
}
},
created() {
this.getList()
this.GetDeviceTypeTree()
},
}
</script>
<style scoped>
.margin-top {
margin-top: -15px;
}
</style>

View File

@ -33,21 +33,28 @@
<el-table :data="tableList" border> <el-table :data="tableList" border>
<el-table-column align="center" label="序号" type="index" width="60" /> <el-table-column align="center" label="序号" type="index" width="60" />
<el-table-column align="center" prop="modelTitle" label="模块名称" show-overflow-tooltip /> <el-table-column align="center" prop="modelTitle" label="模块名称" show-overflow-tooltip />
<el-table-column show-overflow-tooltip align="center" prop="method" label="请求方式" /> <!-- <el-table-column show-overflow-tooltip align="center" prop="method" label="请求方式" />-->
<el-table-column show-overflow-tooltip align="center" prop="requestMethod" label="请求地址" /> <!-- <el-table-column show-overflow-tooltip align="center" prop="method" label="请求地址" />-->
<el-table-column show-overflow-tooltip align="center" prop="task" label="实例" /> <!-- <el-table-column show-overflow-tooltip align="center" prop="taskId" label="任务ID" />-->
<el-table-column show-overflow-tooltip align="center" prop="typeParentName" label="机具类型" /> <el-table-column show-overflow-tooltip align="center" prop="typeParentName" label="机具类型" />
<el-table-column show-overflow-tooltip align="center" prop="typeName" label="机具规格" /> <el-table-column show-overflow-tooltip align="center" prop="typeName" label="机具规格" />
<el-table-column show-overflow-tooltip align="center" prop="description" label="描述" /> <el-table-column show-overflow-tooltip align="center" prop="preStoreNum" label="操作前库存" />
<el-table-column show-overflow-tooltip align="center" prop="time" label="日期" /> <el-table-column show-overflow-tooltip align="center" prop="inNum" label="入库数量" />
<el-table-column show-overflow-tooltip align="center" prop="outNum" label="出库数量" />
<el-table-column show-overflow-tooltip align="center" prop="passNum" label="(退库)合格数量" />
<el-table-column show-overflow-tooltip align="center" prop="maintenanceNum" label="(退库)维修数量" />
<el-table-column show-overflow-tooltip align="center" prop="scrapNum" label="(退库)报废数量" />
<!-- <el-table-column show-overflow-tooltip align="center" prop="description" label="描述" />-->
<el-table-column show-overflow-tooltip align="center" prop="postStoreNum" label="操作后库存" />
<el-table-column show-overflow-tooltip align="center" prop="createTime" label="日期" />
<el-table-column align="center" label="状态"> <el-table-column align="center" label="状态">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<el-tag size="mini" type="success" v-if="row.status == 0">正常</el-tag> <el-tag size="mini" type="success" v-if="row.status == 0">正常</el-tag>
<el-tag size="mini" type="warning" v-else>异常</el-tag> <el-tag size="mini" type="warning" v-else>异常</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" prop="creator" label="创建人" /> <!-- <el-table-column align="center" prop="creator" label="创建人" />-->
<el-table-column align="center" prop="remark" label="备注" /> <!-- <el-table-column align="center" prop="remark" label="备注" />-->
<el-table-column align="center" label="操作"> <el-table-column align="center" label="操作">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<el-button size="mini" type="text" @click="previewLogsDetails(row)">详情</el-button> <el-button size="mini" type="text" @click="previewLogsDetails(row)">详情</el-button>
@ -105,13 +112,22 @@ export default {
/* 日志详情label以及内容 */ /* 日志详情label以及内容 */
detailsLabelList: [ detailsLabelList: [
{ label: '创建人', content: 'creator' }, { label: '创建人', content: 'creator' },
{ label: '请求方式', content: 'method' },
{ label: '模块名称', content: 'modelTitle' }, { label: '模块名称', content: 'modelTitle' },
{ label: '请求地址', content: 'requestMethod' }, { label: '任务ID', content: 'taskId' },
{ label: '机具名称', content: 'typeParentName' }, { label: '机具类型', content: 'typeParentName' },
{ label: '机具规格', content: 'typeName' }, { label: '机具规格', content: 'typeName' },
{ label: '日期', content: 'time' }, { label: '日期', content: 'createTime' },
{ label: '实例', content: 'task' }, // { label: '', content: 'preNum' },
// { label: '', content: 'auditNum' },
{ label: '操作前库存', content: 'preStoreNum' },
{ label: '入库数量', content: 'inNum' },
{ label: '出库数量', content: 'outNum' },
{ label: '(退库)总数量', content: 'backNum' },
{ label: '(退库)合格数量', content: 'passNum' },
{ label: '(退库)维修数量', content: 'maintenanceNum' },
{ label: '(退库)报废数量', content: 'scrapNum' },
{ label: '操作后库存', content: 'postStoreNum' },
{ label: '请求地址', content: 'method' },
], ],
logsDetailsInfo: {}, logsDetailsInfo: {},
deviceTypeTree: [], // deviceTypeTree: [], //
@ -167,3 +183,4 @@ export default {
margin-top: -15px; margin-top: -15px;
} }
</style> </style>

View File

@ -718,6 +718,7 @@ export default {
inputNum: row.checkNum, inputNum: row.checkNum,
maCode: row.maCode, maCode: row.maCode,
typeId: row.typeId, typeId: row.typeId,
num: row.num,
} }
let param = { let param = {