Commit ff812e90 LN

20305锡膏料仓:1.增加冷藏区温度范围设置。2.设置PN的搅拌速度,搅拌任务时把速度发到客户端。

1 个父辈 f6a20239
......@@ -163,4 +163,9 @@ public class Constants {
* 当前盘点的批次号
*/
public static final String CACHE_SELFAUDIT_BATCHNO="CACHE_selfAudit_batchNo";
/**
*锡膏料仓冷藏区温度设置
*/
public static final String CACHE_spSettings="spSettings";
}
......@@ -6,6 +6,9 @@ import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
@Getter
@Setter
public class ComponentDto implements Serializable {
......@@ -164,4 +167,8 @@ public class ComponentDto implements Serializable {
@ApiModelProperty("安全库存盘数")
private int safetyReelNum=0;
/**
* 自定义的附加字段,key=字段名,value=值
*/
public Map<String,String> appendData = new HashMap<>();
}
......@@ -156,6 +156,11 @@ public class BarcodeManagerImpl implements IBarcodeManager {
resources.setType(component.getType());
resources.setWarmTime(component.getWarmTime());
resources.setMixTime(component.getMixTime());
Object mixSpeed=component.getAppendData("mixingSpeed");
if(mixSpeed!=null&&resources.getAppendData("mixingSpeed")==null){
resources.updateAppendData("mixingSpeed",mixSpeed);
}
if(resources.getPlateSize() <= 0){
log.info("设置置["+resources.getBarcode()+"]的尺寸信息");
resources.setPlateSize(component.getPlateSize());
......
......@@ -7,6 +7,8 @@ import lombok.NoArgsConstructor;
import org.springframework.data.mongodb.core.mapping.Document;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
@Data
@Document
......@@ -173,6 +175,12 @@ public class Component extends BasePo implements Serializable {
* 有效时长(生产日期+此天数为过期日期),设置默认有效期为2年
*/
private int validDay = 0;
/**
* 自定义的附加信息
*/
private Map<String,String> appendData = new HashMap<>();
public String getPSize(){
if(plateSize == 0 || height == 0){
return "";
......@@ -199,4 +207,29 @@ public class Component extends BasePo implements Serializable {
public boolean isSolder(){
return type == COMPONENT_TYPE.SOLDERPASTE;
}
/**
* 添加或更新自定义附加信息
* @param appendKey
* @param appendValue
*/
public void updateAppendData(String appendKey, String appendValue){
appendData.put(appendKey, appendValue);
}
/**
* 获取自定义附加信息
* @param appendKey
* @param <T>
* @return
*/
public <T> T getAppendData(String appendKey){
Object value = appendData.get(appendKey);
if(value != null){
return (T)value;
}
return null;
}
}
......@@ -145,6 +145,18 @@ public class CodeResolve {
}
setSize = true;
}
try{
String mixSpeed=component.getAppendData("mixingSpeed");
if(mixSpeed!=null&&barcode.getAppendData("mixingSpeed")==null){
barcode.updateAppendData("mixingSpeed",mixSpeed);
barcode = barcodeManager.save(barcode);
log.warn("重新设置 mixingSpeed 为[" + mixSpeed+ "]");
}
}catch (Exception ex) {
log.error("重设mixingSpeed出错", ex);
}
}
if(validDay<=0&& defaultExpiresDay!=null&&defaultExpiresDay>0){
validDay=defaultExpiresDay;
......@@ -291,7 +303,13 @@ public class CodeResolve {
barcodeManager.save(barcodeFromRule);
}
}
try{
String mixSpeed=component.getAppendData("mixingSpeed");
barcode.updateAppendData("mixingSpeed",mixSpeed);
}catch (Exception ex) {
log.error("设置mixingSpeed出错", ex);
}
barcode = barcodeManager.save(barcodeFromRule);
......
......@@ -9,6 +9,7 @@ import com.neotel.smfcore.core.humiture.rest.bean.dto.HumitureDto;
import com.neotel.smfcore.core.humiture.rest.bean.query.HumitureQueryCriteria;
import com.neotel.smfcore.core.language.util.MessageUtils;
import com.neotel.smfcore.core.msd.bean.MSDSettiings;
import com.neotel.smfcore.core.solder.bean.SpSettings;
import com.neotel.smfcore.core.system.service.manager.IHumitureManager;
import com.neotel.smfcore.core.system.service.po.Humiture;
import io.swagger.annotations.Api;
......@@ -48,14 +49,24 @@ public class HumitureController {
}
Float maxTemperature = msdSettiings.getMaxTemperature();
Float maxHumidity = msdSettiings.getMaxHumidity();
Float minTemperature=msdSettiings.getMinTemperature();
Query query = QueryHelp.getQuery(criteria);
query.with(Sort.by(Sort.Direction.ASC, "createDate"));
query.addCriteria(Criteria.where("temperature").ne("0"));
PageData<Humiture> humitureList = humitureManager.findByPage(query,pageable);
HumitureDto restultDto = new HumitureDto();
restultDto.setMaxHumidity(maxHumidity);
restultDto.setMinTemperature(minTemperature);
restultDto.setMaxTemperature(maxTemperature);
restultDto.setHumitureList(humitureList);
//获取锡膏料仓冷藏区温度设置
SpSettings spSettings = dataCache.getCache(Constants.CACHE_spSettings);
if(spSettings==null) {
spSettings = new SpSettings();
}
restultDto.setMinColdAreaTemp(spSettings.getMinColdAreaTemp());
restultDto.setMaxColdAreaTemp(spSettings.getMaxColdAreaTemp());
return restultDto;
}
......
......@@ -23,12 +23,22 @@ public class HumitureDto {
*/
@ApiModelProperty("最高温度")
private float maxTemperature = 38.0F;
@ApiModelProperty("最低温度")
private float minTemperature = 0.0F;
/**
* 最大湿度值
*/
@ApiModelProperty("最大湿度")
private float maxHumidity = 100.0F;
@ApiModelProperty("温湿度数据")
PageData<Humiture> humitureList;
@ApiModelProperty("冷藏区最低温度")
private float minColdAreaTemp = -5.0F;
@ApiModelProperty("冷藏区最高温度")
private float maxColdAreaTemp = 10.0F;
}
package com.neotel.smfcore.core.solder.bean;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SpSettings implements Serializable {
//冷藏区最低温度
private float minColdAreaTemp = -5.0F;
//冷藏区最高温度
private float maxColdAreaTemp = 10.0F;
private float spMixSpeedFactor=1.5F;
}
......@@ -317,7 +317,14 @@ public class SpBoxHandler extends BaseDeviceHandler {
statusBean.addData("barcode", task.getBarcode());
statusBean.addData("weight", task.getNum() + "");
statusBean.addData("mixTime", task.getMixTime() + "");
Barcode barcode=barcodeManager.findByBarcode(task.getBarcode());
if(barcode!=null)
{
Object mixingSpeed= barcode.getAppendData("mixingSpeed");
if(mixingSpeed!=null){
statusBean.addData("mixingSpeed",mixingSpeed.toString());
}
}
task.setStatus(OP_STATUS.EXECUTING.name());
taskService.updateQueueTask(task);
return statusBean;
......
......@@ -5,6 +5,7 @@ import com.google.common.base.Strings;
import com.neotel.smfcore.common.bean.PageData;
import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.common.utils.DateUtil;
import com.neotel.smfcore.common.utils.QueryHelp;
import com.neotel.smfcore.core.barcode.enums.COMPONENT_TYPE;
......@@ -17,6 +18,9 @@ import com.neotel.smfcore.core.barcode.service.manager.IComponentManager;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.barcode.service.po.Component;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.solder.bean.SpSettings;
import com.neotel.smfcore.core.solder.rest.bean.dto.SpSettingsDto;
import com.neotel.smfcore.core.solder.rest.bean.mapstruct.SpSettingsMapper;
import com.neotel.smfcore.core.storage.rest.dto.CheckOutDto;
import com.neotel.smfcore.core.storage.rest.dto.InventoryItemDto;
import com.neotel.smfcore.core.storage.rest.dto.StoragePosDto;
......@@ -47,7 +51,8 @@ import java.util.*;
@Slf4j
@RestController
@RequiredArgsConstructor
@Api(tags = "锡膏料仓")
@Api(tags = "锡膏料仓设置")
@RequestMapping("api/sp")
public class SpSolderController {
@Autowired
......@@ -63,8 +68,10 @@ public class SpSolderController {
@Autowired
protected DataCache dataCache;
@Autowired
private SpSettingsMapper mapper;
@RequestMapping("api/sp/solderList")
@RequestMapping("/solderList")
public List<ComponentDto> query(ComponentQueryCriteria criteria, Pageable pageable){
criteria.setType(COMPONENT_TYPE.SOLDERPASTE);
Query query= QueryHelp.getQuery(criteria);
......@@ -73,7 +80,7 @@ public class SpSolderController {
return componentDtos;
}
@RequestMapping("api/sp/solder/update")
@RequestMapping("/solder/update")
public ComponentDto update(@Validated @RequestBody ComponentDto resources) {
resources.setType(COMPONENT_TYPE.SOLDERPASTE);
Component component=componentMapper.toEntity(resources);
......@@ -83,7 +90,7 @@ public class SpSolderController {
}
@ApiOperation("删除元器件")
@RequestMapping("api/sp/solder/delete")
@RequestMapping("/solder/delete")
public ResponseEntity<Object> delete(@RequestBody Set<String> ids) {
List<Component> Components = new ArrayList<Component>();
for (String id : ids) {
......@@ -94,4 +101,31 @@ public class SpSolderController {
componentManager.deleteComponents(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
@ApiOperation("获取冷藏区温度设置")
@GetMapping("/settings")
public SpSettingsDto getSettings() {
SpSettings spSettings = dataCache.getCache(Constants.CACHE_spSettings);
if(spSettings==null){
spSettings=new SpSettings() ;
dataCache.updateCache(Constants.CACHE_spSettings, spSettings);
log.info("默认MSD:CACHE_spTempSettings=" + spSettings.toString());
}
SpSettingsDto dto = mapper.toDto(spSettings);
return dto;
}
@ApiOperation("修改冷藏区温度设置")
@PutMapping("/updateSettings")
public ResultBean updateSettings(@Validated @RequestBody SpSettingsDto dto) {
SpSettings settings=mapper.toEntity(dto);
if (settings.getMaxColdAreaTemp()<= settings.getMinColdAreaTemp()) {
throw new ValidateException("smfcore.humidityValueError", "温度范围数据错误");
}
dataCache.updateCache(Constants.CACHE_spSettings, settings);
log.info("更改MSD:CACHE_spTempSettings=" + settings.toString());
return ResultBean.newOkResult("保存成功");
}
}
package com.neotel.smfcore.core.solder.rest.bean.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SpSettingsDto {
@ApiModelProperty("冷藏区最低温度")
private float minColdAreaTemp = -5.0F;
@ApiModelProperty("冷藏区最高温度")
private float maxColdAreaTemp = 10.0F;
@ApiModelProperty("搅拌速度倍数:搅拌自转是公转的多少倍")
private float spMixSpeedFactor=1.5F;
}
package com.neotel.smfcore.core.solder.rest.bean.mapstruct;
import com.neotel.smfcore.common.base.BaseMapper;
import com.neotel.smfcore.core.solder.bean.SpSettings;
import com.neotel.smfcore.core.solder.rest.bean.dto.SpSettingsDto;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
@Mapper(componentModel = "spring" ,unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface SpSettingsMapper extends BaseMapper<SpSettingsDto, SpSettings> {
}
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!