Commit dfe86f38 LN

1

1 个父辈 85ab06b6
package com.neotel.smfcore.core.equipment.rest.dto;
import com.neotel.smfcore.core.equipment.bean.EquipMsg;
import com.neotel.smfcore.core.system.bean.MesInfoDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Data
public class XCounterViewDto implements Serializable {
@ApiModelProperty("名称")
private String name;
@ApiModelProperty("CID")
private String cid;
@ApiModelProperty("设备状态,0=离线,1=正常运行中, 2=急停")
private int status=0;
@ApiModelProperty("文字显示")
private String msg = "";
@ApiModelProperty("Mes信息")
private MesInfoDto mesInfo = null;
@ApiModelProperty("agv通信信息")
private MesInfoDto agvInfo = null;
@ApiModelProperty("仅显示的日志消息集合")
private List<EquipMsg> showLogs = new ArrayList<>();
/**
* 发上来的数据
*
* NS200定义:
* key=tPCount,value=今天已打印数量
* key=tNGCount,value=今天NG数量
* key=MES,value=MES最后一次对接信息:格式参考NsMesInfo
*/
private Map<String, Object> data = new HashMap<>();
/**
* NS打印数据
*/
private Map<String, String> printData = new HashMap<>();
}
package com.neotel.smfcore.core.xRay.rest.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class CountingHistoryDto {
@ApiModelProperty("CID ")
private String cid = "";
@ApiModelProperty("记录的唯一标识ID ")
private long uid = -1;
@ApiModelProperty("产品编号(Product Number) ")
private String pn = "";
@ApiModelProperty("卷轴编号(Reel Number) ")
private String ri = "";
@ApiModelProperty("是否为不良品的标识 ")
private boolean isNG = false;
@ApiModelProperty("不良品信息 ")
private String ngMsg = "";
@ApiModelProperty("数量 ")
private int quantity = -1;
@ApiModelProperty("标签状态 ")
private String lblState;
@ApiModelProperty("其他消息(Other Message) ")
private String oMSG;
@ApiModelProperty("TD条形码(可能是特定业务中的一种条形码) ")
private String tdBarcode;
@ApiModelProperty("XRay文件路径或相关标识 ")
private String xRayFile;
@ApiModelProperty("结果文件路径或相关标识 ")
private String resultFile;
@ApiModelProperty("是否上传到smf完成,1=完成,0=未完成 ")
private int uploadOk = 0;
}
package com.neotel.smfcore.core.xRay.rest.mapstruct;
import com.neotel.smfcore.common.base.BaseMapper;
import com.neotel.smfcore.core.xRay.rest.dto.CountingHistoryDto;
import com.neotel.smfcore.core.xRay.service.po.CountingHistory;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
@Mapper(componentModel = "spring" ,unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface CountingHistoryMapper extends BaseMapper<CountingHistoryDto, CountingHistory> {
}
package com.neotel.smfcore.core.xRay.rest.query;
import com.neotel.smfcore.common.annotation.QueryCondition;
import com.neotel.smfcore.common.bean.BetweenData;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
@Data
public class CountingHistoryQueryCriteria {
@QueryCondition(blurry = "pn,ri,ngMsg,oMSG,tdBarcode")
private String blurry;
@QueryCondition(type = QueryCondition.Type.BETWEEN, propName = "updateDate")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private BetweenData<Date> updateDate;
@QueryCondition
@ApiModelProperty("cid")
private String cid;
@QueryCondition
@ApiModelProperty("pn")
private String pn;
@ApiModelProperty("ri")
private String ri = "";
@ApiModelProperty("类型")
private int type = -1;
@ApiModelProperty("是否过期")
private String expire;
}
package com.neotel.smfcore.core.xRay.service.dao;
import com.neotel.smfcore.common.base.IBaseDao;
public interface ICountingHistoryDao extends IBaseDao {
}
package com.neotel.smfcore.core.xRay.service.dao.impl;
import com.neotel.smfcore.common.base.AbstractBaseDao;
import com.neotel.smfcore.core.xRay.service.dao.ICountingHistoryDao;
import com.neotel.smfcore.core.xRay.service.po.CountingHistory;
import org.springframework.stereotype.Service;
@Service
public class CountingHistoryDaoImpl extends AbstractBaseDao implements ICountingHistoryDao {
@Override
public Class getEntityClass() {
return CountingHistory.class;
}
}
package com.neotel.smfcore.core.xRay.service.manager;
import com.neotel.smfcore.common.base.IBaseManager;
import com.neotel.smfcore.core.xRay.service.po.CountingHistory;
import java.util.List;
public interface ICountingHistoryManager extends IBaseManager<CountingHistory> {
List<String> upsertByUid(List<CountingHistory> list);
}
package com.neotel.smfcore.core.xRay.service.manager.impl;
import com.neotel.smfcore.common.bean.PageData;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.core.xRay.service.dao.ICountingHistoryDao;
import com.neotel.smfcore.core.xRay.service.dao.IXrayPrintDataDao;
import com.neotel.smfcore.core.xRay.service.manager.ICountingHistoryManager;
import com.neotel.smfcore.core.xRay.service.po.CountingHistory;
import com.neotel.smfcore.core.xRay.service.po.XrayPrintData;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@Service
public class CountingHistoryManagerImpl implements ICountingHistoryManager {
@Autowired
private ICountingHistoryDao countingHistoryDao;
@Override
public CountingHistory get(String id) {
return countingHistoryDao.findOneById(id);
}
@Override
public CountingHistory save(CountingHistory object) throws ValidateException {
Query query=new Query(Criteria.where("reelId").is(object.getRi()));
XrayPrintData obj= countingHistoryDao.findOne(query);
if(obj!=null){
object.setId(obj.getId());
}
return countingHistoryDao.save(object);
}
@Override
public void delete(CountingHistory object) throws ValidateException {
countingHistoryDao.removeOneById(object.getId());
}
@Override
public PageData<CountingHistory> findByPage(Query query, Pageable pageable) {
int totalCount = countingHistoryDao.countByQuery(query);
List<CountingHistory> list= countingHistoryDao.findByQuery(query,pageable);
return new PageData<CountingHistory>(list,totalCount );
}
@Override
public List<CountingHistory> findByQuery(Query query) {
return countingHistoryDao.findByQuery(query);
}
@Override
public List<String> upsertByUid(List<CountingHistory> list) {
List<String> success = new ArrayList<>();
if (list == null || list.isEmpty()) {
return success;
}
for (CountingHistory item : list) {
try {
Query q = new Query(Criteria.where("uid").is(item.getUid()));
CountingHistory exist = countingHistoryDao.findOne(q);
if (exist == null) {
countingHistoryDao.save(item);
} else {
Update update = new Update()
.set("isNG", item.isNG())
.set("ngMsg", item.getNgMsg())
.set("quantity", item.getQuantity())
.set("lblState", item.getLblState())
.set("oMSG", item.getOMSG());
countingHistoryDao.updateFirst(q, update);
}
success.add(String.valueOf(item.getUid()));
} catch (Exception e) {
log.error("Upsert counting history failed for uid {}, pn {}, ri {}: {}", item.getUid(), item.getPn(), item.getRi(), e.getMessage());
}
}
return success;
}
}
package com.neotel.smfcore.core.xRay.service.po;
import cn.hutool.core.date.DateTime;
import com.neotel.smfcore.common.base.BasePo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.mongodb.core.mapping.Document;
import java.io.Serializable;
@Data
@Document
@AllArgsConstructor
@NoArgsConstructor
public class CountingHistory extends BasePo implements Serializable {
/**
* CID
*/
private String cid = "";
/**
* 记录的唯一标识ID
*/
private long uid = -1;
/**
* 产品编号(Product Number)
*/
private String pn = "";
/**
* 卷轴编号(Reel Number)
*/
private String ri = "";
/**
* 是否为不良品的标识
*/
private boolean isNG = false;
/**
* 不良品信息
*/
private String ngMsg = "";
/**
* 数量
*/
private int quantity = -1;
/**
* 标签状态
*/
private String lblState;
/**
* 其他消息(Other Message)
*/
private String oMSG;
/**
* TD条形码(可能是特定业务中的一种条形码)
*/
private String tdBarcode;
/**
* XRay文件路径或相关标识
*/
private String xRayFile;
/**
* 结果文件路径或相关标识
*/
private String resultFile;
/**
* 是否上传到smf完成,1=完成,0=未完成
*/
private int uploadOk = 0;
/**
* 点料时间
*/
private DateTime countingTime;
}
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!