diff --git a/web/src/main/java/com/zhehekeji/web/controller/StockLogController.java b/web/src/main/java/com/zhehekeji/web/controller/StockLogController.java index ee9f802..4b05628 100644 --- a/web/src/main/java/com/zhehekeji/web/controller/StockLogController.java +++ b/web/src/main/java/com/zhehekeji/web/controller/StockLogController.java @@ -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> list(@RequestBody CheckLogSearch checkLogSearch){ - return Result.success(stockLogService.list(checkLogSearch)); + public Result> list(@RequestBody StockLogSearch stockLogSearch){ + return Result.success(stockLogService.page(stockLogSearch)); } diff --git a/web/src/main/java/com/zhehekeji/web/entity/StockLog.java b/web/src/main/java/com/zhehekeji/web/entity/StockLog.java new file mode 100644 index 0000000..5018207 --- /dev/null +++ b/web/src/main/java/com/zhehekeji/web/entity/StockLog.java @@ -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; +} diff --git a/web/src/main/java/com/zhehekeji/web/mapper/StockLogMapper.java b/web/src/main/java/com/zhehekeji/web/mapper/StockLogMapper.java new file mode 100644 index 0000000..8563e92 --- /dev/null +++ b/web/src/main/java/com/zhehekeji/web/mapper/StockLogMapper.java @@ -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 { +} diff --git a/web/src/main/java/com/zhehekeji/web/pojo/stock/StockLogSearch.java b/web/src/main/java/com/zhehekeji/web/pojo/stock/StockLogSearch.java new file mode 100644 index 0000000..5d35c09 --- /dev/null +++ b/web/src/main/java/com/zhehekeji/web/pojo/stock/StockLogSearch.java @@ -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; +} diff --git a/web/src/main/java/com/zhehekeji/web/service/CheckLogService.java b/web/src/main/java/com/zhehekeji/web/service/CheckLogService.java new file mode 100644 index 0000000..66a5a01 --- /dev/null +++ b/web/src/main/java/com/zhehekeji/web/service/CheckLogService.java @@ -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 list(CheckLogSearch search){ + List 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 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"); + ListstockChecks = checkLogMapper.selectList(wrapper); + + return new PageInfo<>(stockChecks); + } +} diff --git a/web/src/main/java/com/zhehekeji/web/service/PlcService.java b/web/src/main/java/com/zhehekeji/web/service/PlcService.java index 5e9be50..04bc60a 100644 --- a/web/src/main/java/com/zhehekeji/web/service/PlcService.java +++ b/web/src/main/java/com/zhehekeji/web/service/PlcService.java @@ -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(); } - - } diff --git a/web/src/main/java/com/zhehekeji/web/service/StockLogService.java b/web/src/main/java/com/zhehekeji/web/service/StockLogService.java index 88a3f9d..c6844d8 100644 --- a/web/src/main/java/com/zhehekeji/web/service/StockLogService.java +++ b/web/src/main/java/com/zhehekeji/web/service/StockLogService.java @@ -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 list(CheckLogSearch search){ - List 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 page(StockLogSearch search){ PageHelper.startPage(search.getPageNum(),search.getPageSize()); - QueryWrapper 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"); - ListstockChecks = checkLogMapper.selectList(wrapper); - - return new PageInfo<>(stockChecks); + List stockLogs = + stockLogMapper.selectList(new QueryWrapper().eq("`row`",search.getRow()).eq("`column`",search.getColumn()).eq("shelve_id",search.getShelveId()).orderByDesc("create_time")); + return new PageInfo<>(stockLogs); } } diff --git a/web/src/main/java/com/zhehekeji/web/service/StockService.java b/web/src/main/java/com/zhehekeji/web/service/StockService.java index 180f379..79397cb 100644 --- a/web/src/main/java/com/zhehekeji/web/service/StockService.java +++ b/web/src/main/java/com/zhehekeji/web/service/StockService.java @@ -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 stockLogs = stockLogMapper.selectList(new QueryWrapper().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){ diff --git a/web/src/main/resources/application-dev.yml b/web/src/main/resources/application-dev.yml index 672bcd6..c0d7f26 100644 --- a/web/src/main/resources/application-dev.yml +++ b/web/src/main/resources/application-dev.yml @@ -27,7 +27,7 @@ userUrl: http://115.236.65.98:11001 # ----默认摄像头的连接信息 cameraConfig: # ------------球機選擇--- 0:利珀 1:海康 - cameraType: 1 + cameraType: 0 cameraPassword: a1234567 cameraUser: admin cameraPort: 37777