盘点统计实时更新

nanjing-yancao-wuliuzhongxin
yiming 3 years ago
parent 69ce4e9120
commit acb6a760a0

@ -16,9 +16,7 @@ import java.time.LocalDateTime;
@ExcelIgnoreUnannotated
public class CheckStreetSummary {
@TableId(type = IdType.AUTO)
private Integer id;
@TableField
private Integer streetId;
@TableField(exist = false)

@ -10,13 +10,9 @@ import java.time.LocalDateTime;
@Data
public class CheckSummary {
@TableId(type = IdType.AUTO)
private Integer id;
@TableId
private String taskId;
private Integer type;
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
private LocalDateTime startTime;

@ -3,6 +3,7 @@ package com.zhehekeji.web.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhehekeji.web.entity.CheckStreetSummary;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.util.List;
@ -13,4 +14,16 @@ public interface CheckStreetSummaryMapper extends BaseMapper<CheckStreetSummary>
" on c.street_id = t.id" +
" where c.task_id = #{taskId} ")
List<CheckStreetSummary> list(String taskId);
@Select("select * from check_street_summary where task_id = #{taskId} and street_id = #{streetId} limit 1")
CheckStreetSummary get(Integer streetId,String taskId);
@Update("update check_street_summary set empty_count = #{count} where task_id = #{taskId} and street_id = #{streetId}")
void updateEmptyCount(Integer streetId,String taskId,Integer count);
@Update("update check_street_summary set empty_goods_count = #{count} where task_id = #{taskId} and street_id = #{streetId}")
void updateEmptyGoodsCount(Integer streetId,String taskId,Integer count);
@Update("update check_street_summary set goods_count = #{count} where task_id = #{taskId} and street_id = #{streetId}")
void updateGoodsCount(Integer streetId,String taskId,Integer count);
}

@ -5,4 +5,5 @@ import com.zhehekeji.web.entity.CheckSummary;
import com.zhehekeji.web.entity.LightSource;
public interface CheckSummaryMapper extends BaseMapper<CheckSummary> {
}

@ -119,7 +119,13 @@ public class EmptyCheckService {
log.error(" no SRMNumer:{}",SRMNUmber);
return;
}
CheckSummary checkSummary = checkSummaryMapper.selectById(taskId);
if(checkSummary == null){
checkSummary = new CheckSummary();
checkSummary.setTaskId(taskId);
checkSummary.setStartTime(LocalDateTime.now());
checkSummaryMapper.insert(checkSummary);
}
Map<String,Object> map = new HashMap<>();
//将这些位置的旧数据清空
UpdateWrapper<EmptyCheck> wrapper = new UpdateWrapper<>();
@ -133,11 +139,51 @@ public class EmptyCheckService {
checkStreetSummary.setTaskId(taskId);
checkStreetSummary.setStartTime(LocalDateTime.now());
checkStreetSummary.setStreetId(street.getId());
checkStreetSummary.setEmptyCount(0);
checkStreetSummary.setGoodsCount(0);
checkStreetSummary.setEmptyGoodsCount(0);
checkStreetSummaryMapper.insert(checkStreetSummary);
}
}
public void updateEmptyCheckLastTime(String taskId,String SRMNumber){
CheckSummary checkSummary = new CheckSummary();
checkSummary.setTaskId(taskId);
checkSummary.setEndTime(LocalDateTime.now());
checkSummaryMapper.updateById(checkSummary);
Street street = streetService.getStreetByPlcId(SRMNumber);
if(street != null){
CheckStreetSummary checkStreetSummary = checkStreetSummaryMapper.get(street.getId(),taskId);
Integer count = emptyCheckMapper.selectCount(new QueryWrapper<EmptyCheck>().eq("task_id",taskId).eq("street_id",street.getId()).eq("empty_status",1));
checkStreetSummary.setEmptyCount(count);
checkStreetSummary.setEndTime(LocalDateTime.now());
checkStreetSummaryMapper.updateEmptyCount(street.getId(),taskId,count);
}
}
public void updateCheckLastTime(String taskId,String SRMNumber,String goodsCode){
CheckSummary checkSummary = new CheckSummary();
checkSummary.setTaskId(taskId);
checkSummary.setEndTime(LocalDateTime.now());
checkSummaryMapper.updateById(checkSummary);
Street street = streetService.getStreetByPlcId(SRMNumber);
if(street != null){
CheckStreetSummary checkStreetSummary = checkStreetSummaryMapper.get(street.getId(),taskId);
//托盤組 11111111
if(goodsCode.equals("11111111")){
int c = checkStreetSummary.getEmptyGoodsCount() + 1;
checkStreetSummaryMapper.updateEmptyGoodsCount(street.getId(),taskId,c);
}else {
int c = checkStreetSummary.getGoodsCount() + 1;
checkStreetSummaryMapper.updateGoodsCount(street.getId(),taskId,c);
}
}
}
public String getEmptyStatus(Integer streetId,Integer side,Integer leftRight,Integer row,Integer startColumn,Integer endColumn){
List<EmptyCheck> emptyChecks = emptyCheckMapper.selectList(new QueryWrapper<EmptyCheck>().eq("`row`",row).eq("street_id",streetId).eq("direction",leftRight).eq("side",side).ge("`column`",startColumn).le("`column`",endColumn));

@ -92,6 +92,8 @@ public class Decoder extends DelimiterBasedFrameDecoder {
PuTianNettyClient.write(ptData);
//添加到实时信息里
RealtimeCheckMap.put(tmTransmission.getSRMNumber(),tmTransmission.checkInfo());
//更新盤點統計
emptyCheckService.updateCheckLastTime(tmTransmission.getTaskNo(),tmTransmission.getSRMNumber(),stock.getCode());
}
in.release();
}else if(body.startsWith(CETransmission.getHEADER())){

@ -88,18 +88,21 @@ public class PTDecoder extends LineBasedFrameDecoder {
//通知客户端开始检测
ClientChanel.write(startEmptyCheckStr,checkContent.getSRMNUmber());
EmptyCheckCodeInfo.start(checkContent.getSRMNUmber(),checkContent.getRow(),checkContent.getStartColumn(),checkContent.getEndColumn());
}else if(ptData.getType().equals(PTData.EMPTY_CHECK_02)){
log.info("空货位检测结束");
PTEmptyCheckContent checkContent = PTEmptyCheckContent.EmptyCheck(ptData.getContent());
String endEmptyCheckStr = ECTransmission.toEmptyCheckEndString(checkContent.getSRMNUmber(),checkContent.getTaskNo(),checkContent.getRow(),checkContent.getStartColumn(),checkContent.getEndColumn());
//通知客户端结束检测
ClientChanel.write(endEmptyCheckStr,checkContent.getSRMNUmber());
//等待2s把空货位盘点的结果发给普天
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
emptyCheckService.updateEmptyCheckLastTime(checkContent.getTaskNo(),checkContent.getSRMNUmber());
Map<String,String> map = emptyCheckService.getAllEmptyStatus(checkContent.getSRMNUmber(),checkContent.getRow(),checkContent.getStartColumn(),checkContent.getEndColumn());
map.forEach((k,v)->{
PTEmptyCheckContent ptEmptyCheckContent = PTEmptyCheckContent.emptyCheckResponse(checkContent.getSRMNUmber(),checkContent.getTaskNo(),checkContent.getRow(),checkContent.getStartColumn(),checkContent.getEndColumn(),k,v);

Loading…
Cancel
Save