增加库存历史照片

merge-requests/5/merge
yiming 4 years ago
parent 1c15675ba6
commit 5d5fa9d2d6

@ -3,17 +3,16 @@ package com.zhehekeji.web.controller;
import com.github.pagehelper.PageInfo;
import com.zhehekeji.common.util.ValidatorUtil;
import com.zhehekeji.core.pojo.Result;
import com.zhehekeji.web.entity.CheckLog;
import com.zhehekeji.web.pojo.stock.CheckLogSearch;
import com.zhehekeji.web.entity.StockLog;
import com.zhehekeji.web.pojo.stock.StockLogSearch;
import com.zhehekeji.web.service.StockLogService;
import com.zhehekeji.web.service.TestService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@Api(tags = "盘点历史")
@Api(tags = "盘点库存历史")
@RequestMapping("/stockLog")
@RestController
public class StockLogController {
@ -25,8 +24,8 @@ public class StockLogController {
@ApiOperation("盘点历史")
@PostMapping("")
public Result<PageInfo<CheckLog>> list(@RequestBody CheckLogSearch checkLogSearch){
return Result.success(stockLogService.list(checkLogSearch));
public Result<PageInfo<StockLog>> list(@RequestBody StockLogSearch stockLogSearch){
return Result.success(stockLogService.page(stockLogSearch));
}

@ -0,0 +1,42 @@
package com.zhehekeji.web.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
@Data
@TableName("`stock_log`")
@NoArgsConstructor
@AllArgsConstructor
public class StockLog {
private String orderNum;
@ApiModelProperty("2入库4出库")
private Integer type;
@ApiModelProperty("货架号")
@TableField(value = "`shelve_id`")
private String shelveId;
@TableField(value = "`row`")
@ApiModelProperty("行号")
private Integer row;
@TableField(value = "`column`")
@ApiModelProperty("列号")
private Integer column;
private String pic;
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
}

@ -0,0 +1,7 @@
package com.zhehekeji.web.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhehekeji.web.entity.StockLog;
public interface StockLogMapper extends BaseMapper<StockLog> {
}

@ -0,0 +1,17 @@
package com.zhehekeji.web.pojo.stock;
import lombok.Data;
@Data
public class StockLogSearch {
private Integer row;
private Integer column;
private Integer pageSize;
private Integer pageNum;
private String shelveId;
}

@ -0,0 +1,58 @@
package com.zhehekeji.web.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zhehekeji.web.entity.CheckLog;
import com.zhehekeji.web.entity.Street;
import com.zhehekeji.web.mapper.CheckLogMapper;
import com.zhehekeji.web.mapper.StreetMapper;
import com.zhehekeji.web.pojo.stock.CheckLogSearch;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
@Service
public class CheckLogService {
@Resource
private CheckLogMapper checkLogMapper;
@Resource
private StreetService streetService;
public PageInfo<CheckLog> list(CheckLogSearch search){
List<String> shelveIds = null;
if(search.getStreetId() != null){
Street street = streetService.streetById(search.getStreetId());
if(street != null){
shelveIds = streetService.getShelves(street,search.getLeftRight(),search.getSide());
}
}
PageHelper.startPage(search.getPageNum(),search.getPageSize());
QueryWrapper<CheckLog> wrapper = new QueryWrapper<>();
if(!StringUtils.isEmpty(search.getLotnum())){
wrapper.eq("lotnum",search.getLotnum());
}
if(search.getStartTimestamp() != null && search.getEndTimestamp() != null){
wrapper.ge("create_time",search.getStartTimestamp()).le("create_time",search.getEndTimestamp());
}
if(!StringUtils.isEmpty(shelveIds)){
wrapper.in("shelve_id",shelveIds);
}
if(search.getRow() != null && search.getRow() != 0){
wrapper.eq("`row`",search.getRow());
}
if(search.getColumn() != null && search.getColumn() != 0){
wrapper.eq("`column`",search.getColumn());
}
wrapper.orderByDesc("shelve_id","`row`","`column`","id");
List<CheckLog>stockChecks = checkLogMapper.selectList(wrapper);
return new PageInfo<>(stockChecks);
}
}

@ -44,6 +44,8 @@ public class PlcService {
private WarnMapper warnMapper;
@Resource
private OrderService orderService;
@Resource
private StockLogMapper stockLogMapper;
@Resource
private ConfigProperties configProperties;
@ -417,26 +419,37 @@ public class PlcService {
if (order != null) {
//update picPath in stock if code is C2/C4
if(orderInfo.getCode().startsWith("C2") || orderInfo.getCode().startsWith("C4")){
Stock stock = stockMapper.getByShelveIdAndRowColumn(orderInfo.getShelveId(), orderInfo.getRow(), orderInfo.getColumn());
if (stock == null) {
stock = new Stock();
stock.setShelveId(orderInfo.getShelveId());
stock.setColumn(orderInfo.getColumn());
stock.setRow(orderInfo.getRow());
//stock.setStatus(0);
//if the stock is null,take over path only
stock.setOveroperationPic(path);
stock.setOrderNum(order.getOrderNum());
stockMapper.insert(stock);
} else {
//take the previous picture path to the lasted over picture path
//take the lasted picture path to the new one
stock.setPreoperationPic(stock.getOveroperationPic());
stock.setOveroperationPic(path);
stock.setOrderNum(order.getOrderNum());
//stock.setStatus(0);
stockMapper.updateById(stock);
}
StockLog stockLog = new StockLog();
stockLog.setShelveId(orderInfo.getShelveId());
stockLog.setRow(orderInfo.getRow());
stockLog.setColumn(orderInfo.getColumn());
stockLog.setPic(path);
String type = orderInfo.getCode().substring(1,2);
stockLog.setType(Integer.valueOf(type));
stockLog.setOrderNum(orderInfo.getOrderNum());
stockLog.setCreateTime(LocalDateTime.now());
stockLogMapper.insert(stockLog);
// Stock stock = stockMapper.getByShelveIdAndRowColumn(orderInfo.getShelveId(), orderInfo.getRow(), orderInfo.getColumn());
// if (stock == null) {
// stock = new Stock();
// stock.setShelveId(orderInfo.getShelveId());
// stock.setColumn(orderInfo.getColumn());
// stock.setRow(orderInfo.getRow());
// //stock.setStatus(0);
// //if the stock is null,take over path only
// stock.setOveroperationPic(path);
// stock.setOrderNum(order.getOrderNum());
// stockMapper.insert(stock);
// } else {
// //take the previous picture path to the lasted over picture path
// //take the lasted picture path to the new one
// stock.setPreoperationPic(stock.getOveroperationPic());
// stock.setOveroperationPic(path);
// stock.setOrderNum(order.getOrderNum());
// //stock.setStatus(0);
// stockMapper.updateById(stock);
// }
}
String pics = order.getPicPaths();
if (StringUtils.isEmpty(pics)) {
@ -593,6 +606,4 @@ public class PlcService {
stockMapper.truncate();
}
}

@ -3,56 +3,25 @@ package com.zhehekeji.web.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zhehekeji.web.entity.CheckLog;
import com.zhehekeji.web.entity.Street;
import com.zhehekeji.web.mapper.CheckLogMapper;
import com.zhehekeji.web.mapper.StreetMapper;
import com.zhehekeji.web.pojo.stock.CheckLogSearch;
import com.zhehekeji.web.entity.Stock;
import com.zhehekeji.web.entity.StockLog;
import com.zhehekeji.web.mapper.StockLogMapper;
import com.zhehekeji.web.pojo.stock.StockLogSearch;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
@Service
public class StockLogService {
@Resource
private CheckLogMapper checkLogMapper;
@Resource
private StreetService streetService;
public PageInfo<CheckLog> list(CheckLogSearch search){
List<String> shelveIds = null;
if(search.getStreetId() != null){
Street street = streetService.streetById(search.getStreetId());
if(street != null){
shelveIds = streetService.getShelves(street,search.getLeftRight(),search.getSide());
}
}
private StockLogMapper stockLogMapper;
public PageInfo<StockLog> page(StockLogSearch search){
PageHelper.startPage(search.getPageNum(),search.getPageSize());
QueryWrapper<CheckLog> wrapper = new QueryWrapper<>();
if(!StringUtils.isEmpty(search.getLotnum())){
wrapper.eq("lotnum",search.getLotnum());
}
if(search.getStartTimestamp() != null && search.getEndTimestamp() != null){
wrapper.ge("create_time",search.getStartTimestamp()).le("create_time",search.getEndTimestamp());
}
if(!StringUtils.isEmpty(shelveIds)){
wrapper.in("shelve_id",shelveIds);
}
if(search.getRow() != null && search.getRow() != 0){
wrapper.eq("`row`",search.getRow());
}
if(search.getColumn() != null && search.getColumn() != 0){
wrapper.eq("`column`",search.getColumn());
}
wrapper.orderByDesc("shelve_id","`row`","`column`","id");
List<CheckLog>stockChecks = checkLogMapper.selectList(wrapper);
return new PageInfo<>(stockChecks);
List<StockLog> stockLogs =
stockLogMapper.selectList(new QueryWrapper<StockLog>().eq("`row`",search.getRow()).eq("`column`",search.getColumn()).eq("shelve_id",search.getShelveId()).orderByDesc("create_time"));
return new PageInfo<>(stockLogs);
}
}

@ -8,8 +8,10 @@ import com.github.pagehelper.PageInfo;
import com.zhehekeji.core.util.Assert;
import com.zhehekeji.web.entity.Stock;
import com.zhehekeji.web.entity.CheckLog;
import com.zhehekeji.web.entity.StockLog;
import com.zhehekeji.web.entity.Street;
import com.zhehekeji.web.mapper.CheckLogMapper;
import com.zhehekeji.web.mapper.StockLogMapper;
import com.zhehekeji.web.mapper.StockMapper;
import com.zhehekeji.web.pojo.category.PageSearch;
import com.zhehekeji.web.pojo.stock.*;
@ -36,6 +38,8 @@ public class StockService {
private StreetService streetService;
@Resource
private CheckLogMapper logMapper;
@Resource
private StockLogMapper stockLogMapper;
public void importExcel(MultipartFile file) {
log.info("import excel stock");
@ -289,6 +293,13 @@ public class StockService {
stock.setShelveId(stockCheck.getShelveId());
stock.setStatus(0);
}
List<StockLog> stockLogs = stockLogMapper.selectList(new QueryWrapper<StockLog>().eq("`row`",stockCheck.getRow()).eq("`column`",stockCheck.getColumn()).eq("shelve_id",stockCheck.getShelveId()).orderByDesc("create_time").last(" limit 2"));
if(stockLogs.size() == 1){
stock.setOveroperationPic(stockLogs.get(0).getPic());
}else if(stockLogs.size() == 2){
stock.setOveroperationPic(stockLogs.get(0).getPic());
stock.setPreoperationPic(stockLogs.get(1).getPic());
}
return stock;
}
@ -354,7 +365,6 @@ public class StockService {
stockMapper.updateById(stock);
checkLog(stock);
return stock;
}
public void init(String shelveId, Integer row, Integer column){

@ -27,7 +27,7 @@ userUrl: http://115.236.65.98:11001
# ----默认摄像头的连接信息
cameraConfig:
# ------------球機選擇--- 0:利珀 1海康
cameraType: 1
cameraType: 0
cameraPassword: a1234567
cameraUser: admin
cameraPort: 37777

Loading…
Cancel
Save