测量点配置
This commit is contained in:
@ -0,0 +1,21 @@
|
|||||||
|
package com.ktg.mes.board.controller;
|
||||||
|
|
||||||
|
import com.ktg.common.core.domain.AjaxResult;
|
||||||
|
import com.ktg.mes.board.service.IWorkshopBoardService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/mes/board/workshop")
|
||||||
|
public class WorkshopBoardController {
|
||||||
|
@Autowired
|
||||||
|
private IWorkshopBoardService workshopBoardService;
|
||||||
|
|
||||||
|
@GetMapping("/data")
|
||||||
|
public AjaxResult data(@RequestParam(value = "screenCode", required = false) String screenCode) {
|
||||||
|
return AjaxResult.success(workshopBoardService.getBoardData(screenCode));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,88 @@
|
|||||||
|
package com.ktg.mes.board.domain;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class WorkshopBoardData {
|
||||||
|
private Map<String, Object> header = new LinkedHashMap<String, Object>();
|
||||||
|
|
||||||
|
private Map<String, Object> summary = new LinkedHashMap<String, Object>();
|
||||||
|
|
||||||
|
private List<Map<String, Object>> faultList = new ArrayList<Map<String, Object>>();
|
||||||
|
|
||||||
|
private List<Map<String, Object>> maintenanceList = new ArrayList<Map<String, Object>>();
|
||||||
|
|
||||||
|
private List<Map<String, Object>> machineList = new ArrayList<Map<String, Object>>();
|
||||||
|
|
||||||
|
private List<Map<String, Object>> detailRealtime = new ArrayList<Map<String, Object>>();
|
||||||
|
|
||||||
|
private List<Map<String, Object>> detailSetting = new ArrayList<Map<String, Object>>();
|
||||||
|
|
||||||
|
private List<Map<String, Object>> detailProduction = new ArrayList<Map<String, Object>>();
|
||||||
|
|
||||||
|
public Map<String, Object> getHeader() {
|
||||||
|
return header;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHeader(Map<String, Object> header) {
|
||||||
|
this.header = header;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, Object> getSummary() {
|
||||||
|
return summary;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSummary(Map<String, Object> summary) {
|
||||||
|
this.summary = summary;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Map<String, Object>> getFaultList() {
|
||||||
|
return faultList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFaultList(List<Map<String, Object>> faultList) {
|
||||||
|
this.faultList = faultList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Map<String, Object>> getMaintenanceList() {
|
||||||
|
return maintenanceList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMaintenanceList(List<Map<String, Object>> maintenanceList) {
|
||||||
|
this.maintenanceList = maintenanceList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Map<String, Object>> getMachineList() {
|
||||||
|
return machineList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMachineList(List<Map<String, Object>> machineList) {
|
||||||
|
this.machineList = machineList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Map<String, Object>> getDetailRealtime() {
|
||||||
|
return detailRealtime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDetailRealtime(List<Map<String, Object>> detailRealtime) {
|
||||||
|
this.detailRealtime = detailRealtime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Map<String, Object>> getDetailSetting() {
|
||||||
|
return detailSetting;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDetailSetting(List<Map<String, Object>> detailSetting) {
|
||||||
|
this.detailSetting = detailSetting;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Map<String, Object>> getDetailProduction() {
|
||||||
|
return detailProduction;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDetailProduction(List<Map<String, Object>> detailProduction) {
|
||||||
|
this.detailProduction = detailProduction;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
package com.ktg.mes.board.service;
|
||||||
|
|
||||||
|
import com.ktg.mes.board.domain.WorkshopBoardData;
|
||||||
|
|
||||||
|
public interface IWorkshopBoardService {
|
||||||
|
WorkshopBoardData getBoardData(String screenCode);
|
||||||
|
}
|
||||||
@ -0,0 +1,152 @@
|
|||||||
|
package com.ktg.mes.board.service.impl;
|
||||||
|
|
||||||
|
import com.ktg.common.utils.StringUtils;
|
||||||
|
import com.ktg.mes.board.domain.WorkshopBoardData;
|
||||||
|
import com.ktg.mes.board.service.IWorkshopBoardService;
|
||||||
|
import com.ktg.mes.md.domain.MdMeasurePoint;
|
||||||
|
import com.ktg.mes.md.domain.MdScreenBinding;
|
||||||
|
import com.ktg.mes.md.domain.vo.ScreenBindingConfigVo;
|
||||||
|
import com.ktg.mes.md.domain.vo.ScreenBindingMachineConfig;
|
||||||
|
import com.ktg.mes.md.service.IMdMeasurePointService;
|
||||||
|
import com.ktg.mes.md.service.IMdScreenBindingService;
|
||||||
|
import com.ktg.mes.md.service.impl.ScreenBindingDefaults;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class WorkshopBoardServiceImpl implements IWorkshopBoardService {
|
||||||
|
@Autowired
|
||||||
|
private IMdScreenBindingService mdScreenBindingService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IMdMeasurePointService mdMeasurePointService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public WorkshopBoardData getBoardData(String screenCode) {
|
||||||
|
ScreenBindingConfigVo configVo = mdScreenBindingService.getScreenBindingConfig(screenCode);
|
||||||
|
Map<String, MdMeasurePoint> pointMap = mdMeasurePointService.selectMdMeasurePointMapByPointCodes(collectPointCodes(configVo));
|
||||||
|
return buildBoardData(configVo, pointMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Collection<String> collectPointCodes(ScreenBindingConfigVo configVo) {
|
||||||
|
List<String> result = new ArrayList<String>();
|
||||||
|
for (MdScreenBinding binding : configVo.getBasicBindings()) {
|
||||||
|
collectPointCode(result, binding);
|
||||||
|
}
|
||||||
|
for (ScreenBindingMachineConfig machineConfig : configVo.getMachineConfigs()) {
|
||||||
|
for (MdScreenBinding binding : machineConfig.getBindings()) {
|
||||||
|
collectPointCode(result, binding);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void collectPointCode(List<String> result, MdScreenBinding binding) {
|
||||||
|
if (binding == null || !ScreenBindingDefaults.SOURCE_POINT.equals(binding.getSourceType()) || StringUtils.isEmpty(binding.getPointCode())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!result.contains(binding.getPointCode())) {
|
||||||
|
result.add(binding.getPointCode());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private WorkshopBoardData buildBoardData(ScreenBindingConfigVo configVo, Map<String, MdMeasurePoint> pointMap) {
|
||||||
|
WorkshopBoardData fallback = ScreenBindingDefaults.createFallbackBoardData();
|
||||||
|
applyBasicBindings(configVo.getBasicBindings(), fallback, pointMap);
|
||||||
|
applyMachineBindings(configVo.getMachineConfigs(), fallback, pointMap);
|
||||||
|
return fallback;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void applyBasicBindings(List<MdScreenBinding> bindings, WorkshopBoardData boardData, Map<String, MdMeasurePoint> pointMap) {
|
||||||
|
for (MdScreenBinding binding : bindings) {
|
||||||
|
String bindingKey = binding.getBindingKey();
|
||||||
|
if (StringUtils.isEmpty(bindingKey) || bindingKey.indexOf(".") < 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
String[] segments = bindingKey.split("\\.");
|
||||||
|
if (segments.length != 2) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if ("header".equals(segments[0])) {
|
||||||
|
boardData.getHeader().put(segments[1], resolveBindingValue(binding, pointMap));
|
||||||
|
} else if ("summary".equals(segments[0])) {
|
||||||
|
boardData.getSummary().put(segments[1], resolveBindingValue(binding, pointMap));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void applyMachineBindings(List<ScreenBindingMachineConfig> machineConfigs, WorkshopBoardData boardData, Map<String, MdMeasurePoint> pointMap) {
|
||||||
|
Map<Long, ScreenBindingMachineConfig> machineMap = new LinkedHashMap<Long, ScreenBindingMachineConfig>();
|
||||||
|
for (ScreenBindingMachineConfig machineConfig : machineConfigs) {
|
||||||
|
machineMap.put(machineConfig.getId(), machineConfig);
|
||||||
|
}
|
||||||
|
List<Map<String, Object>> newMachineList = new ArrayList<Map<String, Object>>();
|
||||||
|
for (Map<String, Object> machine : boardData.getMachineList()) {
|
||||||
|
Long machineId = toLong(machine.get("id"));
|
||||||
|
ScreenBindingMachineConfig machineConfig = machineMap.get(machineId);
|
||||||
|
if (machineConfig == null) {
|
||||||
|
newMachineList.add(machine);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
Map<String, Object> newMachine = new LinkedHashMap<String, Object>(machine);
|
||||||
|
if (StringUtils.isNotEmpty(machineConfig.getStatusClass())) {
|
||||||
|
newMachine.put("statusClass", machineConfig.getStatusClass());
|
||||||
|
}
|
||||||
|
for (MdScreenBinding binding : machineConfig.getBindings()) {
|
||||||
|
newMachine.put(binding.getBindingKey(), resolveBindingValue(binding, pointMap));
|
||||||
|
}
|
||||||
|
newMachineList.add(newMachine);
|
||||||
|
}
|
||||||
|
boardData.setMachineList(newMachineList);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String resolveBindingValue(MdScreenBinding binding, Map<String, MdMeasurePoint> pointMap) {
|
||||||
|
String value;
|
||||||
|
if (ScreenBindingDefaults.SOURCE_POINT.equals(binding.getSourceType()) && StringUtils.isNotEmpty(binding.getPointCode())) {
|
||||||
|
MdMeasurePoint point = pointMap.get(binding.getPointCode());
|
||||||
|
value = point == null ? null : point.getLatestValue();
|
||||||
|
} else {
|
||||||
|
value = binding.getFixedValue();
|
||||||
|
}
|
||||||
|
if (StringUtils.isEmpty(value)) {
|
||||||
|
value = binding.getDefaultValue();
|
||||||
|
}
|
||||||
|
if (StringUtils.isEmpty(value)) {
|
||||||
|
return "--";
|
||||||
|
}
|
||||||
|
String formatted = formatNumber(value, binding.getPrecisionDigit());
|
||||||
|
if (StringUtils.isEmpty(binding.getDisplayUnit()) || formatted.contains(binding.getDisplayUnit())) {
|
||||||
|
return formatted;
|
||||||
|
}
|
||||||
|
return formatted + binding.getDisplayUnit();
|
||||||
|
}
|
||||||
|
|
||||||
|
private String formatNumber(String value, Integer precisionDigit) {
|
||||||
|
if (precisionDigit == null) {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
BigDecimal decimal = new BigDecimal(value);
|
||||||
|
return decimal.setScale(precisionDigit, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString();
|
||||||
|
} catch (Exception ex) {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private Long toLong(Object value) {
|
||||||
|
if (value == null) {
|
||||||
|
return 0L;
|
||||||
|
}
|
||||||
|
if (value instanceof Number) {
|
||||||
|
return ((Number) value).longValue();
|
||||||
|
}
|
||||||
|
return Long.valueOf(String.valueOf(value));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,100 @@
|
|||||||
|
package com.ktg.mes.md.controller;
|
||||||
|
|
||||||
|
import com.ktg.common.annotation.Log;
|
||||||
|
import com.ktg.common.core.controller.BaseController;
|
||||||
|
import com.ktg.common.core.domain.AjaxResult;
|
||||||
|
import com.ktg.common.core.page.TableDataInfo;
|
||||||
|
import com.ktg.common.enums.BusinessType;
|
||||||
|
import com.ktg.common.utils.poi.ExcelUtil;
|
||||||
|
import com.ktg.mes.md.domain.MdScreenBinding;
|
||||||
|
import com.ktg.mes.md.domain.vo.ScreenBindingConfigVo;
|
||||||
|
import com.ktg.mes.md.service.IMdScreenBindingService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PutMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/mes/md/screenbinding")
|
||||||
|
public class MdScreenBindingController extends BaseController {
|
||||||
|
@Autowired
|
||||||
|
private IMdScreenBindingService mdScreenBindingService;
|
||||||
|
|
||||||
|
@PreAuthorize("@ss.hasPermi('mes:md:screenbinding:list')")
|
||||||
|
@GetMapping("/list")
|
||||||
|
public TableDataInfo list(MdScreenBinding mdScreenBinding) {
|
||||||
|
startPage();
|
||||||
|
List<MdScreenBinding> list = mdScreenBindingService.selectMdScreenBindingList(mdScreenBinding);
|
||||||
|
return getDataTable(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PreAuthorize("@ss.hasPermi('mes:md:screenbinding:export')")
|
||||||
|
@Log(title = "看板绑定", businessType = BusinessType.EXPORT)
|
||||||
|
@PostMapping("/export")
|
||||||
|
public void export(HttpServletResponse response, MdScreenBinding mdScreenBinding) {
|
||||||
|
List<MdScreenBinding> list = mdScreenBindingService.selectMdScreenBindingList(mdScreenBinding);
|
||||||
|
ExcelUtil<MdScreenBinding> util = new ExcelUtil<MdScreenBinding>(MdScreenBinding.class);
|
||||||
|
util.exportExcel(response, list, "看板绑定数据");
|
||||||
|
}
|
||||||
|
|
||||||
|
@PreAuthorize("@ss.hasPermi('mes:md:screenbinding:query')")
|
||||||
|
@GetMapping("/{bindingId}")
|
||||||
|
public AjaxResult getInfo(@PathVariable("bindingId") Long bindingId) {
|
||||||
|
return AjaxResult.success(mdScreenBindingService.selectMdScreenBindingByBindingId(bindingId));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PreAuthorize("@ss.hasPermi('mes:md:screenbinding:query')")
|
||||||
|
@GetMapping("/config")
|
||||||
|
public AjaxResult getConfig(@RequestParam(value = "screenCode", required = false) String screenCode) {
|
||||||
|
return AjaxResult.success(mdScreenBindingService.getScreenBindingConfig(screenCode));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PreAuthorize("@ss.hasPermi('mes:md:screenbinding:add')")
|
||||||
|
@Log(title = "看板绑定", businessType = BusinessType.INSERT)
|
||||||
|
@PostMapping
|
||||||
|
public AjaxResult add(@RequestBody MdScreenBinding mdScreenBinding) {
|
||||||
|
mdScreenBinding.setCreateBy(getUsername());
|
||||||
|
return toAjax(mdScreenBindingService.insertMdScreenBinding(mdScreenBinding));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PreAuthorize("@ss.hasPermi('mes:md:screenbinding:edit')")
|
||||||
|
@Log(title = "看板绑定", businessType = BusinessType.UPDATE)
|
||||||
|
@PutMapping
|
||||||
|
public AjaxResult edit(@RequestBody MdScreenBinding mdScreenBinding) {
|
||||||
|
mdScreenBinding.setUpdateBy(getUsername());
|
||||||
|
return toAjax(mdScreenBindingService.updateMdScreenBinding(mdScreenBinding));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PreAuthorize("@ss.hasPermi('mes:md:screenbinding:edit')")
|
||||||
|
@Log(title = "看板绑定配置", businessType = BusinessType.UPDATE)
|
||||||
|
@PostMapping("/config")
|
||||||
|
public AjaxResult saveConfig(@RequestBody ScreenBindingConfigVo configVo) {
|
||||||
|
mdScreenBindingService.saveScreenBindingConfig(configVo, getUsername());
|
||||||
|
return AjaxResult.success("保存成功", mdScreenBindingService.getScreenBindingConfig(configVo.getScreenCode()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PreAuthorize("@ss.hasPermi('mes:md:screenbinding:remove')")
|
||||||
|
@Log(title = "看板绑定", businessType = BusinessType.DELETE)
|
||||||
|
@DeleteMapping("/{bindingIds}")
|
||||||
|
public AjaxResult remove(@PathVariable Long[] bindingIds) {
|
||||||
|
return toAjax(mdScreenBindingService.deleteMdScreenBindingByBindingIds(bindingIds));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PreAuthorize("@ss.hasPermi('mes:md:screenbinding:remove')")
|
||||||
|
@Log(title = "看板绑定配置", businessType = BusinessType.CLEAN)
|
||||||
|
@DeleteMapping("/config")
|
||||||
|
public AjaxResult resetConfig(@RequestParam(value = "screenCode", required = false) String screenCode) {
|
||||||
|
mdScreenBindingService.resetScreenBindingConfig(screenCode);
|
||||||
|
return AjaxResult.success("已恢复默认配置", mdScreenBindingService.getScreenBindingConfig(screenCode));
|
||||||
|
}
|
||||||
|
}
|
||||||
258
ktg-mes/src/main/java/com/ktg/mes/md/domain/MdScreenBinding.java
Normal file
258
ktg-mes/src/main/java/com/ktg/mes/md/domain/MdScreenBinding.java
Normal file
@ -0,0 +1,258 @@
|
|||||||
|
package com.ktg.mes.md.domain;
|
||||||
|
|
||||||
|
import com.ktg.common.annotation.Excel;
|
||||||
|
import com.ktg.common.core.domain.BaseEntity;
|
||||||
|
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||||
|
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||||
|
|
||||||
|
public class MdScreenBinding extends BaseEntity {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private Long bindingId;
|
||||||
|
|
||||||
|
@Excel(name = "看板编码")
|
||||||
|
private String screenCode;
|
||||||
|
|
||||||
|
private Long workshopId;
|
||||||
|
|
||||||
|
@Excel(name = "车间编码")
|
||||||
|
private String workshopCode;
|
||||||
|
|
||||||
|
@Excel(name = "车间名称")
|
||||||
|
private String workshopName;
|
||||||
|
|
||||||
|
@Excel(name = "绑定范围")
|
||||||
|
private String bindingScope;
|
||||||
|
|
||||||
|
@Excel(name = "设备卡片ID")
|
||||||
|
private Long machineId;
|
||||||
|
|
||||||
|
@Excel(name = "绑定键")
|
||||||
|
private String bindingKey;
|
||||||
|
|
||||||
|
@Excel(name = "绑定名称")
|
||||||
|
private String bindingName;
|
||||||
|
|
||||||
|
@Excel(name = "来源类型")
|
||||||
|
private String sourceType;
|
||||||
|
|
||||||
|
private Long pointId;
|
||||||
|
|
||||||
|
@Excel(name = "测量点编码")
|
||||||
|
private String pointCode;
|
||||||
|
|
||||||
|
@Excel(name = "测量点名称")
|
||||||
|
private String pointName;
|
||||||
|
|
||||||
|
@Excel(name = "固定值")
|
||||||
|
private String fixedValue;
|
||||||
|
|
||||||
|
@Excel(name = "默认值")
|
||||||
|
private String defaultValue;
|
||||||
|
|
||||||
|
@Excel(name = "展示单位")
|
||||||
|
private String displayUnit;
|
||||||
|
|
||||||
|
@Excel(name = "保留位数")
|
||||||
|
private Integer precisionDigit;
|
||||||
|
|
||||||
|
@Excel(name = "状态样式")
|
||||||
|
private String statusClass;
|
||||||
|
|
||||||
|
@Excel(name = "排序号")
|
||||||
|
private Integer sortNum;
|
||||||
|
|
||||||
|
@Excel(name = "启用状态")
|
||||||
|
private String enableFlag;
|
||||||
|
|
||||||
|
public Long getBindingId() {
|
||||||
|
return bindingId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBindingId(Long bindingId) {
|
||||||
|
this.bindingId = bindingId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getScreenCode() {
|
||||||
|
return screenCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setScreenCode(String screenCode) {
|
||||||
|
this.screenCode = screenCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getWorkshopId() {
|
||||||
|
return workshopId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWorkshopId(Long workshopId) {
|
||||||
|
this.workshopId = workshopId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getWorkshopCode() {
|
||||||
|
return workshopCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWorkshopCode(String workshopCode) {
|
||||||
|
this.workshopCode = workshopCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getWorkshopName() {
|
||||||
|
return workshopName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWorkshopName(String workshopName) {
|
||||||
|
this.workshopName = workshopName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBindingScope() {
|
||||||
|
return bindingScope;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBindingScope(String bindingScope) {
|
||||||
|
this.bindingScope = bindingScope;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getMachineId() {
|
||||||
|
return machineId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMachineId(Long machineId) {
|
||||||
|
this.machineId = machineId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBindingKey() {
|
||||||
|
return bindingKey;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBindingKey(String bindingKey) {
|
||||||
|
this.bindingKey = bindingKey;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBindingName() {
|
||||||
|
return bindingName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBindingName(String bindingName) {
|
||||||
|
this.bindingName = bindingName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSourceType() {
|
||||||
|
return sourceType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSourceType(String sourceType) {
|
||||||
|
this.sourceType = sourceType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getPointId() {
|
||||||
|
return pointId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPointId(Long pointId) {
|
||||||
|
this.pointId = pointId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPointCode() {
|
||||||
|
return pointCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPointCode(String pointCode) {
|
||||||
|
this.pointCode = pointCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPointName() {
|
||||||
|
return pointName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPointName(String pointName) {
|
||||||
|
this.pointName = pointName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFixedValue() {
|
||||||
|
return fixedValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFixedValue(String fixedValue) {
|
||||||
|
this.fixedValue = fixedValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDefaultValue() {
|
||||||
|
return defaultValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDefaultValue(String defaultValue) {
|
||||||
|
this.defaultValue = defaultValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDisplayUnit() {
|
||||||
|
return displayUnit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDisplayUnit(String displayUnit) {
|
||||||
|
this.displayUnit = displayUnit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getPrecisionDigit() {
|
||||||
|
return precisionDigit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPrecisionDigit(Integer precisionDigit) {
|
||||||
|
this.precisionDigit = precisionDigit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStatusClass() {
|
||||||
|
return statusClass;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatusClass(String statusClass) {
|
||||||
|
this.statusClass = statusClass;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getSortNum() {
|
||||||
|
return sortNum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSortNum(Integer sortNum) {
|
||||||
|
this.sortNum = sortNum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEnableFlag() {
|
||||||
|
return enableFlag;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEnableFlag(String enableFlag) {
|
||||||
|
this.enableFlag = enableFlag;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
|
||||||
|
.append("bindingId", getBindingId())
|
||||||
|
.append("screenCode", getScreenCode())
|
||||||
|
.append("workshopId", getWorkshopId())
|
||||||
|
.append("workshopCode", getWorkshopCode())
|
||||||
|
.append("workshopName", getWorkshopName())
|
||||||
|
.append("bindingScope", getBindingScope())
|
||||||
|
.append("machineId", getMachineId())
|
||||||
|
.append("bindingKey", getBindingKey())
|
||||||
|
.append("bindingName", getBindingName())
|
||||||
|
.append("sourceType", getSourceType())
|
||||||
|
.append("pointId", getPointId())
|
||||||
|
.append("pointCode", getPointCode())
|
||||||
|
.append("pointName", getPointName())
|
||||||
|
.append("fixedValue", getFixedValue())
|
||||||
|
.append("defaultValue", getDefaultValue())
|
||||||
|
.append("displayUnit", getDisplayUnit())
|
||||||
|
.append("precisionDigit", getPrecisionDigit())
|
||||||
|
.append("statusClass", getStatusClass())
|
||||||
|
.append("sortNum", getSortNum())
|
||||||
|
.append("enableFlag", getEnableFlag())
|
||||||
|
.append("remark", getRemark())
|
||||||
|
.append("createBy", getCreateBy())
|
||||||
|
.append("createTime", getCreateTime())
|
||||||
|
.append("updateBy", getUpdateBy())
|
||||||
|
.append("updateTime", getUpdateTime())
|
||||||
|
.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,78 @@
|
|||||||
|
package com.ktg.mes.md.domain.vo;
|
||||||
|
|
||||||
|
import com.ktg.mes.md.domain.MdScreenBinding;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class ScreenBindingConfigVo {
|
||||||
|
private String screenCode;
|
||||||
|
|
||||||
|
private Long workshopId;
|
||||||
|
|
||||||
|
private String workshopCode;
|
||||||
|
|
||||||
|
private String workshopName;
|
||||||
|
|
||||||
|
private String updatedAt;
|
||||||
|
|
||||||
|
private List<MdScreenBinding> basicBindings = new ArrayList<MdScreenBinding>();
|
||||||
|
|
||||||
|
private List<ScreenBindingMachineConfig> machineConfigs = new ArrayList<ScreenBindingMachineConfig>();
|
||||||
|
|
||||||
|
public String getScreenCode() {
|
||||||
|
return screenCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setScreenCode(String screenCode) {
|
||||||
|
this.screenCode = screenCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getWorkshopId() {
|
||||||
|
return workshopId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWorkshopId(Long workshopId) {
|
||||||
|
this.workshopId = workshopId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getWorkshopCode() {
|
||||||
|
return workshopCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWorkshopCode(String workshopCode) {
|
||||||
|
this.workshopCode = workshopCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getWorkshopName() {
|
||||||
|
return workshopName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWorkshopName(String workshopName) {
|
||||||
|
this.workshopName = workshopName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUpdatedAt() {
|
||||||
|
return updatedAt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUpdatedAt(String updatedAt) {
|
||||||
|
this.updatedAt = updatedAt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<MdScreenBinding> getBasicBindings() {
|
||||||
|
return basicBindings;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBasicBindings(List<MdScreenBinding> basicBindings) {
|
||||||
|
this.basicBindings = basicBindings;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<ScreenBindingMachineConfig> getMachineConfigs() {
|
||||||
|
return machineConfigs;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMachineConfigs(List<ScreenBindingMachineConfig> machineConfigs) {
|
||||||
|
this.machineConfigs = machineConfigs;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,38 @@
|
|||||||
|
package com.ktg.mes.md.domain.vo;
|
||||||
|
|
||||||
|
import com.ktg.mes.md.domain.MdScreenBinding;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class ScreenBindingMachineConfig {
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
private String statusClass;
|
||||||
|
|
||||||
|
private List<MdScreenBinding> bindings = new ArrayList<MdScreenBinding>();
|
||||||
|
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStatusClass() {
|
||||||
|
return statusClass;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatusClass(String statusClass) {
|
||||||
|
this.statusClass = statusClass;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<MdScreenBinding> getBindings() {
|
||||||
|
return bindings;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBindings(List<MdScreenBinding> bindings) {
|
||||||
|
this.bindings = bindings;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -15,6 +15,8 @@ public interface MdMeasurePointMapper {
|
|||||||
|
|
||||||
MdMeasurePoint checkPointNameUnique(MdMeasurePoint mdMeasurePoint);
|
MdMeasurePoint checkPointNameUnique(MdMeasurePoint mdMeasurePoint);
|
||||||
|
|
||||||
|
List<MdMeasurePoint> selectMdMeasurePointByPointCodes(String[] pointCodes);
|
||||||
|
|
||||||
int insertMdMeasurePoint(MdMeasurePoint mdMeasurePoint);
|
int insertMdMeasurePoint(MdMeasurePoint mdMeasurePoint);
|
||||||
|
|
||||||
int updateMdMeasurePoint(MdMeasurePoint mdMeasurePoint);
|
int updateMdMeasurePoint(MdMeasurePoint mdMeasurePoint);
|
||||||
|
|||||||
@ -0,0 +1,25 @@
|
|||||||
|
package com.ktg.mes.md.mapper;
|
||||||
|
|
||||||
|
import com.ktg.mes.md.domain.MdScreenBinding;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface MdScreenBindingMapper {
|
||||||
|
MdScreenBinding selectMdScreenBindingByBindingId(Long bindingId);
|
||||||
|
|
||||||
|
List<MdScreenBinding> selectMdScreenBindingList(MdScreenBinding mdScreenBinding);
|
||||||
|
|
||||||
|
List<MdScreenBinding> selectMdScreenBindingByScreenCode(String screenCode);
|
||||||
|
|
||||||
|
int insertMdScreenBinding(MdScreenBinding mdScreenBinding);
|
||||||
|
|
||||||
|
int batchInsertMdScreenBinding(List<MdScreenBinding> list);
|
||||||
|
|
||||||
|
int updateMdScreenBinding(MdScreenBinding mdScreenBinding);
|
||||||
|
|
||||||
|
int deleteMdScreenBindingByBindingId(Long bindingId);
|
||||||
|
|
||||||
|
int deleteMdScreenBindingByBindingIds(Long[] bindingIds);
|
||||||
|
|
||||||
|
int deleteMdScreenBindingByScreenCode(String screenCode);
|
||||||
|
}
|
||||||
@ -3,7 +3,9 @@ package com.ktg.mes.md.service;
|
|||||||
import com.ktg.mes.md.domain.MdMeasurePoint;
|
import com.ktg.mes.md.domain.MdMeasurePoint;
|
||||||
import com.ktg.mes.md.domain.MeasurePointHistoryItem;
|
import com.ktg.mes.md.domain.MeasurePointHistoryItem;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public interface IMdMeasurePointService {
|
public interface IMdMeasurePointService {
|
||||||
MdMeasurePoint selectMdMeasurePointByPointId(Long pointId);
|
MdMeasurePoint selectMdMeasurePointByPointId(Long pointId);
|
||||||
@ -27,4 +29,6 @@ public interface IMdMeasurePointService {
|
|||||||
MdMeasurePoint queryLatestValue(String pointCode);
|
MdMeasurePoint queryLatestValue(String pointCode);
|
||||||
|
|
||||||
List<MeasurePointHistoryItem> queryHistory(String pointCode, String range, String interval, String startTime, String endTime);
|
List<MeasurePointHistoryItem> queryHistory(String pointCode, String range, String interval, String startTime, String endTime);
|
||||||
|
|
||||||
|
Map<String, MdMeasurePoint> selectMdMeasurePointMapByPointCodes(Collection<String> pointCodes);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,28 @@
|
|||||||
|
package com.ktg.mes.md.service;
|
||||||
|
|
||||||
|
import com.ktg.mes.md.domain.MdScreenBinding;
|
||||||
|
import com.ktg.mes.md.domain.vo.ScreenBindingConfigVo;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface IMdScreenBindingService {
|
||||||
|
MdScreenBinding selectMdScreenBindingByBindingId(Long bindingId);
|
||||||
|
|
||||||
|
List<MdScreenBinding> selectMdScreenBindingList(MdScreenBinding mdScreenBinding);
|
||||||
|
|
||||||
|
List<MdScreenBinding> selectMdScreenBindingByScreenCode(String screenCode);
|
||||||
|
|
||||||
|
int insertMdScreenBinding(MdScreenBinding mdScreenBinding);
|
||||||
|
|
||||||
|
int updateMdScreenBinding(MdScreenBinding mdScreenBinding);
|
||||||
|
|
||||||
|
int deleteMdScreenBindingByBindingIds(Long[] bindingIds);
|
||||||
|
|
||||||
|
int deleteMdScreenBindingByBindingId(Long bindingId);
|
||||||
|
|
||||||
|
ScreenBindingConfigVo getScreenBindingConfig(String screenCode);
|
||||||
|
|
||||||
|
int saveScreenBindingConfig(ScreenBindingConfigVo configVo, String operName);
|
||||||
|
|
||||||
|
int resetScreenBindingConfig(String screenCode);
|
||||||
|
}
|
||||||
@ -12,7 +12,10 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class MdMeasurePointServiceImpl implements IMdMeasurePointService {
|
public class MdMeasurePointServiceImpl implements IMdMeasurePointService {
|
||||||
@ -104,6 +107,20 @@ public class MdMeasurePointServiceImpl implements IMdMeasurePointService {
|
|||||||
return mdMeasurePointInfluxService.queryHistory(point, range, interval, startTime, endTime);
|
return mdMeasurePointInfluxService.queryHistory(point, range, interval, startTime, endTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, MdMeasurePoint> selectMdMeasurePointMapByPointCodes(Collection<String> pointCodes) {
|
||||||
|
Map<String, MdMeasurePoint> result = new LinkedHashMap<String, MdMeasurePoint>();
|
||||||
|
if (pointCodes == null || pointCodes.isEmpty()) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
List<MdMeasurePoint> list = mdMeasurePointMapper.selectMdMeasurePointByPointCodes(pointCodes.toArray(new String[0]));
|
||||||
|
for (MdMeasurePoint point : list) {
|
||||||
|
mdMeasurePointInfluxService.fillLatestValue(point);
|
||||||
|
result.put(point.getPointCode(), point);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
private void fillWorkshopInfo(MdMeasurePoint mdMeasurePoint) {
|
private void fillWorkshopInfo(MdMeasurePoint mdMeasurePoint) {
|
||||||
if (mdMeasurePoint.getWorkshopId() == null) {
|
if (mdMeasurePoint.getWorkshopId() == null) {
|
||||||
mdMeasurePoint.setWorkshopCode(null);
|
mdMeasurePoint.setWorkshopCode(null);
|
||||||
|
|||||||
@ -0,0 +1,245 @@
|
|||||||
|
package com.ktg.mes.md.service.impl;
|
||||||
|
|
||||||
|
import com.ktg.common.utils.DateUtils;
|
||||||
|
import com.ktg.common.utils.StringUtils;
|
||||||
|
import com.ktg.mes.md.domain.MdScreenBinding;
|
||||||
|
import com.ktg.mes.md.domain.MdWorkshop;
|
||||||
|
import com.ktg.mes.md.domain.vo.ScreenBindingConfigVo;
|
||||||
|
import com.ktg.mes.md.domain.vo.ScreenBindingMachineConfig;
|
||||||
|
import com.ktg.mes.md.mapper.MdScreenBindingMapper;
|
||||||
|
import com.ktg.mes.md.service.IMdScreenBindingService;
|
||||||
|
import com.ktg.mes.md.service.IMdWorkshopService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class MdScreenBindingServiceImpl implements IMdScreenBindingService {
|
||||||
|
@Autowired
|
||||||
|
private MdScreenBindingMapper mdScreenBindingMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IMdWorkshopService mdWorkshopService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MdScreenBinding selectMdScreenBindingByBindingId(Long bindingId) {
|
||||||
|
return mdScreenBindingMapper.selectMdScreenBindingByBindingId(bindingId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<MdScreenBinding> selectMdScreenBindingList(MdScreenBinding mdScreenBinding) {
|
||||||
|
return mdScreenBindingMapper.selectMdScreenBindingList(mdScreenBinding);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<MdScreenBinding> selectMdScreenBindingByScreenCode(String screenCode) {
|
||||||
|
return mdScreenBindingMapper.selectMdScreenBindingByScreenCode(screenCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int insertMdScreenBinding(MdScreenBinding mdScreenBinding) {
|
||||||
|
fillWorkshopInfo(mdScreenBinding);
|
||||||
|
normalizeBinding(mdScreenBinding);
|
||||||
|
mdScreenBinding.setCreateTime(DateUtils.getNowDate());
|
||||||
|
return mdScreenBindingMapper.insertMdScreenBinding(mdScreenBinding);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int updateMdScreenBinding(MdScreenBinding mdScreenBinding) {
|
||||||
|
fillWorkshopInfo(mdScreenBinding);
|
||||||
|
normalizeBinding(mdScreenBinding);
|
||||||
|
mdScreenBinding.setUpdateTime(DateUtils.getNowDate());
|
||||||
|
return mdScreenBindingMapper.updateMdScreenBinding(mdScreenBinding);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int deleteMdScreenBindingByBindingIds(Long[] bindingIds) {
|
||||||
|
return mdScreenBindingMapper.deleteMdScreenBindingByBindingIds(bindingIds);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int deleteMdScreenBindingByBindingId(Long bindingId) {
|
||||||
|
return mdScreenBindingMapper.deleteMdScreenBindingByBindingId(bindingId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ScreenBindingConfigVo getScreenBindingConfig(String screenCode) {
|
||||||
|
String actualScreenCode = StringUtils.isEmpty(screenCode) ? ScreenBindingDefaults.DEFAULT_SCREEN_CODE : screenCode.trim();
|
||||||
|
List<MdScreenBinding> list = mdScreenBindingMapper.selectMdScreenBindingByScreenCode(actualScreenCode);
|
||||||
|
if (list == null || list.isEmpty()) {
|
||||||
|
return ScreenBindingDefaults.createDefaultConfig(actualScreenCode);
|
||||||
|
}
|
||||||
|
return buildConfigVo(actualScreenCode, list);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public int saveScreenBindingConfig(ScreenBindingConfigVo configVo, String operName) {
|
||||||
|
String actualScreenCode = StringUtils.isEmpty(configVo.getScreenCode()) ? ScreenBindingDefaults.DEFAULT_SCREEN_CODE : configVo.getScreenCode().trim();
|
||||||
|
List<MdScreenBinding> rows = flattenConfig(actualScreenCode, configVo, operName);
|
||||||
|
mdScreenBindingMapper.deleteMdScreenBindingByScreenCode(actualScreenCode);
|
||||||
|
if (rows.isEmpty()) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return mdScreenBindingMapper.batchInsertMdScreenBinding(rows);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public int resetScreenBindingConfig(String screenCode) {
|
||||||
|
String actualScreenCode = StringUtils.isEmpty(screenCode) ? ScreenBindingDefaults.DEFAULT_SCREEN_CODE : screenCode.trim();
|
||||||
|
return mdScreenBindingMapper.deleteMdScreenBindingByScreenCode(actualScreenCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<MdScreenBinding> flattenConfig(String screenCode, ScreenBindingConfigVo configVo, String operName) {
|
||||||
|
List<MdScreenBinding> rows = new ArrayList<MdScreenBinding>();
|
||||||
|
List<MdScreenBinding> basicBindings = configVo.getBasicBindings() == null ? new ArrayList<MdScreenBinding>() : configVo.getBasicBindings();
|
||||||
|
for (MdScreenBinding binding : basicBindings) {
|
||||||
|
MdScreenBinding normalized = copyBinding(binding);
|
||||||
|
normalized.setScreenCode(screenCode);
|
||||||
|
normalized.setBindingScope(ScreenBindingDefaults.SCOPE_BASIC);
|
||||||
|
normalized.setMachineId(0L);
|
||||||
|
normalized.setCreateBy(operName);
|
||||||
|
normalized.setCreateTime(DateUtils.getNowDate());
|
||||||
|
fillWorkshopInfo(normalized, configVo);
|
||||||
|
normalizeBinding(normalized);
|
||||||
|
rows.add(normalized);
|
||||||
|
}
|
||||||
|
List<ScreenBindingMachineConfig> machineConfigs = configVo.getMachineConfigs() == null ? new ArrayList<ScreenBindingMachineConfig>() : configVo.getMachineConfigs();
|
||||||
|
for (ScreenBindingMachineConfig machineConfig : machineConfigs) {
|
||||||
|
List<MdScreenBinding> bindings = machineConfig.getBindings() == null ? new ArrayList<MdScreenBinding>() : machineConfig.getBindings();
|
||||||
|
for (MdScreenBinding binding : bindings) {
|
||||||
|
MdScreenBinding normalized = copyBinding(binding);
|
||||||
|
normalized.setScreenCode(screenCode);
|
||||||
|
normalized.setBindingScope(ScreenBindingDefaults.SCOPE_MACHINE);
|
||||||
|
normalized.setMachineId(machineConfig.getId() == null ? 0L : machineConfig.getId());
|
||||||
|
normalized.setStatusClass(StringUtils.isEmpty(machineConfig.getStatusClass()) ? binding.getStatusClass() : machineConfig.getStatusClass());
|
||||||
|
normalized.setCreateBy(operName);
|
||||||
|
normalized.setCreateTime(DateUtils.getNowDate());
|
||||||
|
fillWorkshopInfo(normalized, configVo);
|
||||||
|
normalizeBinding(normalized);
|
||||||
|
rows.add(normalized);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return rows;
|
||||||
|
}
|
||||||
|
|
||||||
|
private ScreenBindingConfigVo buildConfigVo(String screenCode, List<MdScreenBinding> list) {
|
||||||
|
ScreenBindingConfigVo configVo = new ScreenBindingConfigVo();
|
||||||
|
configVo.setScreenCode(screenCode);
|
||||||
|
if (!list.isEmpty()) {
|
||||||
|
MdScreenBinding first = list.get(0);
|
||||||
|
configVo.setWorkshopId(first.getWorkshopId());
|
||||||
|
configVo.setWorkshopCode(first.getWorkshopCode());
|
||||||
|
configVo.setWorkshopName(first.getWorkshopName());
|
||||||
|
configVo.setUpdatedAt(first.getUpdateTime() != null ? DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", first.getUpdateTime())
|
||||||
|
: first.getCreateTime() != null ? DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", first.getCreateTime()) : null);
|
||||||
|
}
|
||||||
|
Map<Long, ScreenBindingMachineConfig> machineMap = new LinkedHashMap<Long, ScreenBindingMachineConfig>();
|
||||||
|
for (MdScreenBinding binding : list) {
|
||||||
|
if (ScreenBindingDefaults.SCOPE_BASIC.equals(binding.getBindingScope())) {
|
||||||
|
configVo.getBasicBindings().add(copyBinding(binding));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
Long machineId = binding.getMachineId() == null ? 0L : binding.getMachineId();
|
||||||
|
ScreenBindingMachineConfig machineConfig = machineMap.get(machineId);
|
||||||
|
if (machineConfig == null) {
|
||||||
|
machineConfig = new ScreenBindingMachineConfig();
|
||||||
|
machineConfig.setId(machineId);
|
||||||
|
machineConfig.setStatusClass(binding.getStatusClass());
|
||||||
|
machineMap.put(machineId, machineConfig);
|
||||||
|
}
|
||||||
|
machineConfig.getBindings().add(copyBinding(binding));
|
||||||
|
}
|
||||||
|
configVo.setMachineConfigs(new ArrayList<ScreenBindingMachineConfig>(machineMap.values()));
|
||||||
|
return configVo;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void fillWorkshopInfo(MdScreenBinding binding) {
|
||||||
|
if (binding.getWorkshopId() == null) {
|
||||||
|
binding.setWorkshopCode(null);
|
||||||
|
binding.setWorkshopName(null);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
MdWorkshop workshop = mdWorkshopService.selectMdWorkshopByWorkshopId(binding.getWorkshopId());
|
||||||
|
if (workshop != null) {
|
||||||
|
binding.setWorkshopCode(workshop.getWorkshopCode());
|
||||||
|
binding.setWorkshopName(workshop.getWorkshopName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void fillWorkshopInfo(MdScreenBinding binding, ScreenBindingConfigVo configVo) {
|
||||||
|
if (binding.getWorkshopId() == null && configVo.getWorkshopId() != null) {
|
||||||
|
binding.setWorkshopId(configVo.getWorkshopId());
|
||||||
|
}
|
||||||
|
fillWorkshopInfo(binding);
|
||||||
|
if (binding.getWorkshopId() == null) {
|
||||||
|
binding.setWorkshopCode(configVo.getWorkshopCode());
|
||||||
|
binding.setWorkshopName(configVo.getWorkshopName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void normalizeBinding(MdScreenBinding binding) {
|
||||||
|
if (StringUtils.isEmpty(binding.getScreenCode())) {
|
||||||
|
binding.setScreenCode(ScreenBindingDefaults.DEFAULT_SCREEN_CODE);
|
||||||
|
}
|
||||||
|
if (StringUtils.isEmpty(binding.getBindingScope())) {
|
||||||
|
binding.setBindingScope(ScreenBindingDefaults.SCOPE_BASIC);
|
||||||
|
}
|
||||||
|
if (binding.getMachineId() == null) {
|
||||||
|
binding.setMachineId(0L);
|
||||||
|
}
|
||||||
|
if (StringUtils.isEmpty(binding.getSourceType())) {
|
||||||
|
binding.setSourceType(ScreenBindingDefaults.SOURCE_FIXED);
|
||||||
|
}
|
||||||
|
if (binding.getSortNum() == null) {
|
||||||
|
binding.setSortNum(1);
|
||||||
|
}
|
||||||
|
if (StringUtils.isEmpty(binding.getEnableFlag())) {
|
||||||
|
binding.setEnableFlag("Y");
|
||||||
|
}
|
||||||
|
if (StringUtils.isEmpty(binding.getStatusClass())) {
|
||||||
|
binding.setStatusClass("is-running");
|
||||||
|
}
|
||||||
|
if (ScreenBindingDefaults.SOURCE_FIXED.equals(binding.getSourceType())) {
|
||||||
|
binding.setPointId(null);
|
||||||
|
binding.setPointCode(null);
|
||||||
|
binding.setPointName(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private MdScreenBinding copyBinding(MdScreenBinding source) {
|
||||||
|
MdScreenBinding target = new MdScreenBinding();
|
||||||
|
target.setBindingId(source.getBindingId());
|
||||||
|
target.setScreenCode(source.getScreenCode());
|
||||||
|
target.setWorkshopId(source.getWorkshopId());
|
||||||
|
target.setWorkshopCode(source.getWorkshopCode());
|
||||||
|
target.setWorkshopName(source.getWorkshopName());
|
||||||
|
target.setBindingScope(source.getBindingScope());
|
||||||
|
target.setMachineId(source.getMachineId());
|
||||||
|
target.setBindingKey(source.getBindingKey());
|
||||||
|
target.setBindingName(source.getBindingName());
|
||||||
|
target.setSourceType(source.getSourceType());
|
||||||
|
target.setPointId(source.getPointId());
|
||||||
|
target.setPointCode(source.getPointCode());
|
||||||
|
target.setPointName(source.getPointName());
|
||||||
|
target.setFixedValue(source.getFixedValue());
|
||||||
|
target.setDefaultValue(source.getDefaultValue());
|
||||||
|
target.setDisplayUnit(source.getDisplayUnit());
|
||||||
|
target.setPrecisionDigit(source.getPrecisionDigit());
|
||||||
|
target.setStatusClass(source.getStatusClass());
|
||||||
|
target.setSortNum(source.getSortNum());
|
||||||
|
target.setEnableFlag(source.getEnableFlag());
|
||||||
|
target.setRemark(source.getRemark());
|
||||||
|
target.setCreateBy(source.getCreateBy());
|
||||||
|
target.setCreateTime(source.getCreateTime());
|
||||||
|
target.setUpdateBy(source.getUpdateBy());
|
||||||
|
target.setUpdateTime(source.getUpdateTime());
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,167 @@
|
|||||||
|
package com.ktg.mes.md.service.impl;
|
||||||
|
|
||||||
|
import com.ktg.common.utils.DateUtils;
|
||||||
|
import com.ktg.mes.board.domain.WorkshopBoardData;
|
||||||
|
import com.ktg.mes.md.domain.MdScreenBinding;
|
||||||
|
import com.ktg.mes.md.domain.vo.ScreenBindingConfigVo;
|
||||||
|
import com.ktg.mes.md.domain.vo.ScreenBindingMachineConfig;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public final class ScreenBindingDefaults {
|
||||||
|
public static final String DEFAULT_SCREEN_CODE = "WORKSHOP_BOARD_DEFAULT";
|
||||||
|
public static final String SCOPE_BASIC = "BASIC";
|
||||||
|
public static final String SCOPE_MACHINE = "MACHINE";
|
||||||
|
public static final String SOURCE_FIXED = "FIXED";
|
||||||
|
public static final String SOURCE_POINT = "POINT";
|
||||||
|
|
||||||
|
private ScreenBindingDefaults() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ScreenBindingConfigVo createDefaultConfig(String screenCode) {
|
||||||
|
WorkshopBoardData boardData = createFallbackBoardData();
|
||||||
|
String actualScreenCode = screenCode == null || screenCode.trim().isEmpty() ? DEFAULT_SCREEN_CODE : screenCode.trim();
|
||||||
|
ScreenBindingConfigVo configVo = new ScreenBindingConfigVo();
|
||||||
|
configVo.setScreenCode(actualScreenCode);
|
||||||
|
configVo.setUpdatedAt(DateUtils.getTime());
|
||||||
|
configVo.setBasicBindings(createDefaultBasicBindings(boardData, actualScreenCode));
|
||||||
|
configVo.setMachineConfigs(createDefaultMachineConfigs(boardData, actualScreenCode));
|
||||||
|
return configVo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static WorkshopBoardData createFallbackBoardData() {
|
||||||
|
WorkshopBoardData data = new WorkshopBoardData();
|
||||||
|
data.getHeader().put("screenCode", "HY-CJKB-001");
|
||||||
|
data.getHeader().put("ownerName", "张主管");
|
||||||
|
|
||||||
|
data.getSummary().put("total", "17");
|
||||||
|
data.getSummary().put("online", "15");
|
||||||
|
data.getSummary().put("running", "15");
|
||||||
|
data.getSummary().put("stop", "2");
|
||||||
|
data.getSummary().put("startRate", "88.2%");
|
||||||
|
|
||||||
|
data.getFaultList().add(row("deviceNo", "8#", "faultTime", "09:25", "faultDesc", "模温异常", "owner", "李工", "recoverTime", "10:10"));
|
||||||
|
data.getFaultList().add(row("deviceNo", "16#", "faultTime", "11:40", "faultDesc", "液压压力波动", "owner", "王工", "recoverTime", "13:00"));
|
||||||
|
data.getFaultList().add(row("deviceNo", "5#", "faultTime", "13:18", "faultDesc", "送料传感器告警", "owner", "赵工", "recoverTime", "13:45"));
|
||||||
|
|
||||||
|
data.getMaintenanceList().add(row("deviceNo", "2#", "project", "保养润滑系统", "planTime", "2026-03-23 16:00", "status", "待执行"));
|
||||||
|
data.getMaintenanceList().add(row("deviceNo", "11#", "project", "校验温控模块", "planTime", "2026-03-23 18:00", "status", "待执行"));
|
||||||
|
data.getMaintenanceList().add(row("deviceNo", "14#", "project", "更换过滤组件", "planTime", "2026-03-24 09:00", "status", "已排期"));
|
||||||
|
|
||||||
|
data.getMachineList().add(machineRow(6L, "6#", "MA2500/1000G", "运行", "is-running", "自动", "13小时", "600个", "2026.3.16-3.18", "25110914", "5000个", "30%", "23W 中间盖", "7037C 灰", "重点订单"));
|
||||||
|
data.getMachineList().add(machineRow(12L, "12#", "MA1600/540G", "运行", "is-running", "自动", "8小时", "305个", "2026.3.23-3.25", "25110953", "2800个", "27%", "中盖件", "灰色", "正常生产"));
|
||||||
|
data.getMachineList().add(machineRow(5L, "5#", "MA2500 2S/1000", "运行", "is-running", "自动", "6小时", "210个", "2026.3.22-3.24", "25110937", "3600个", "19%", "卡扣件", "7035 灰", "待维修"));
|
||||||
|
data.getMachineList().add(machineRow(11L, "11#", "MA3600/2250G", "运行", "is-running", "自动", "15小时", "720个", "2026.3.23-3.25", "25110950", "6500个", "33%", "大型壳体", "深蓝", "计划保养"));
|
||||||
|
data.getMachineList().add(machineRow(17L, "17#", "MA1600/540G", "运行", "is-running", "自动", "12小时", "510个", "2026.3.23-3.25", "25110961", "3600个", "53%", "面框件", "冷白", "正常生产"));
|
||||||
|
data.getMachineList().add(machineRow(4L, "4#", "MA2500/1000G", "运行", "is-running", "自动", "10小时", "488个", "2026.3.21-3.22", "25110931", "4500个", "61%", "28W 外壳", "米白", "正常生产"));
|
||||||
|
data.getMachineList().add(machineRow(10L, "10#", "MA2500/1000G", "运行", "is-running", "自动", "13小时", "610个", "2026.3.23-3.24", "25110946", "5100个", "44%", "挡板件", "黑色", "正常生产"));
|
||||||
|
data.getMachineList().add(machineRow(16L, "16#", "570", "运行", "is-running", "自动", "5小时", "190个", "2026.3.23-3.25", "25110959", "2400个", "18%", "小型卡件", "浅灰", "液压检修"));
|
||||||
|
data.getMachineList().add(machineRow(3L, "3#", "MA2500/1000G", "运行", "is-running", "自动", "8小时", "360个", "2026.3.20-3.22", "25110925", "3000个", "58%", "17W 支架", "银色", "等待换模"));
|
||||||
|
data.getMachineList().add(machineRow(9L, "9#", "MA2500/1000G", "运行", "is-running", "自动", "14小时", "680个", "2026.3.23-3.24", "25110945", "5400个", "52%", "导流板", "银灰", "正常生产"));
|
||||||
|
data.getMachineList().add(machineRow(15L, "15#", "MA1600/540G", "运行", "is-running", "自动", "11小时", "460个", "2026.3.23-3.25", "25110957", "3500个", "41%", "转接件", "深灰", "正常生产"));
|
||||||
|
data.getMachineList().add(machineRow(2L, "2#", "MA2500/1000G", "运行", "is-running", "自动", "11小时", "520个", "2026.3.18-3.20", "25110918", "4200个", "42%", "26W 面板", "黑色", "夜班优先"));
|
||||||
|
data.getMachineList().add(machineRow(8L, "8#", "MA2500/1000G", "运行", "is-running", "自动", "9小时", "430个", "2026.3.22-3.24", "25110941", "4600个", "36%", "封边件", "白色", "温控波动"));
|
||||||
|
data.getMachineList().add(machineRow(14L, "14#", "MA1600/540G", "运行", "is-running", "自动", "10小时", "395个", "2026.3.23-3.25", "25110955", "3200个", "38%", "扣合件", "亮黑", "正常生产"));
|
||||||
|
data.getMachineList().add(machineRow(1L, "1#", "MA2500/1000G", "运行", "is-running", "自动", "13小时", "600个", "2026.3.16-3.18", "25110914", "5000个", "30%", "23W 中间盖", "7037C 灰", "重点订单"));
|
||||||
|
data.getMachineList().add(machineRow(7L, "7#", "MA2500/1000G", "运行", "is-running", "自动", "4小时", "120个", "2026.3.22-3.24", "25110940", "3000个", "12%", "结构件", "深灰", "人工调试"));
|
||||||
|
data.getMachineList().add(machineRow(13L, "13#", "MA1600/540G", "运行", "is-running", "自动", "7小时", "280个", "2026.3.23-3.25", "25110954", "2600个", "31%", "面罩件", "暖白", "待料"));
|
||||||
|
|
||||||
|
data.getDetailRealtime().add(row("name", "温度一段(A15)", "current", "186℃", "currentTime", "14:20:15", "target", "185℃", "targetTime", "14:05:00", "orderValue", "188℃", "orderTime", "08:30:00"));
|
||||||
|
data.getDetailRealtime().add(row("name", "温度二段(A16)", "current", "192℃", "currentTime", "14:20:15", "target", "190℃", "targetTime", "14:05:00", "orderValue", "192℃", "orderTime", "08:30:00"));
|
||||||
|
data.getDetailRealtime().add(row("name", "射胶压力(A243)", "current", "12.3MPa", "currentTime", "14:20:10", "target", "12.0MPa", "targetTime", "14:00:00", "orderValue", "12.5MPa", "orderTime", "08:30:00"));
|
||||||
|
|
||||||
|
data.getDetailSetting().add(row("name", "开模行程(A060)", "setting", "320mm", "settingTime", "13:15:00", "orderValue", "325mm", "orderTime", "08:30:00"));
|
||||||
|
data.getDetailSetting().add(row("name", "锁模压力(A061)", "setting", "86%", "settingTime", "13:15:00", "orderValue", "85%", "orderTime", "08:30:00"));
|
||||||
|
data.getDetailSetting().add(row("name", "保压时间(A062)", "setting", "4.5s", "settingTime", "13:15:00", "orderValue", "4.8s", "orderTime", "08:30:00"));
|
||||||
|
|
||||||
|
data.getDetailProduction().add(row("name", "上模循环时(A37)", "value", "28.6s", "collectTime", "14:20:11"));
|
||||||
|
data.getDetailProduction().add(row("name", "一模产出数", "value", "2", "collectTime", "14:20:11"));
|
||||||
|
data.getDetailProduction().add(row("name", "累计良品数", "value", "598", "collectTime", "14:20:11"));
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static List<MdScreenBinding> createDefaultBasicBindings(WorkshopBoardData boardData, String screenCode) {
|
||||||
|
List<MdScreenBinding> result = new ArrayList<MdScreenBinding>();
|
||||||
|
result.add(binding(screenCode, SCOPE_BASIC, 0L, "header.screenCode", "看板编号", boardData.getHeader().get("screenCode"), 1, "is-running"));
|
||||||
|
result.add(binding(screenCode, SCOPE_BASIC, 0L, "header.ownerName", "管理责任人", boardData.getHeader().get("ownerName"), 2, "is-running"));
|
||||||
|
result.add(binding(screenCode, SCOPE_BASIC, 0L, "summary.total", "设备总数", boardData.getSummary().get("total"), 3, "is-running"));
|
||||||
|
result.add(binding(screenCode, SCOPE_BASIC, 0L, "summary.online", "在线数量", boardData.getSummary().get("online"), 4, "is-running"));
|
||||||
|
result.add(binding(screenCode, SCOPE_BASIC, 0L, "summary.running", "运行数量", boardData.getSummary().get("running"), 5, "is-running"));
|
||||||
|
result.add(binding(screenCode, SCOPE_BASIC, 0L, "summary.stop", "停止数量", boardData.getSummary().get("stop"), 6, "is-running"));
|
||||||
|
result.add(binding(screenCode, SCOPE_BASIC, 0L, "summary.startRate", "开机率", boardData.getSummary().get("startRate"), 7, "is-running"));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static List<ScreenBindingMachineConfig> createDefaultMachineConfigs(WorkshopBoardData boardData, String screenCode) {
|
||||||
|
List<ScreenBindingMachineConfig> result = new ArrayList<ScreenBindingMachineConfig>();
|
||||||
|
int sortBase = 100;
|
||||||
|
for (Map<String, Object> machine : boardData.getMachineList()) {
|
||||||
|
Long machineId = toLong(machine.get("id"));
|
||||||
|
ScreenBindingMachineConfig machineConfig = new ScreenBindingMachineConfig();
|
||||||
|
machineConfig.setId(machineId);
|
||||||
|
machineConfig.setStatusClass(String.valueOf(machine.get("statusClass")));
|
||||||
|
List<MdScreenBinding> bindings = new ArrayList<MdScreenBinding>();
|
||||||
|
bindings.add(binding(screenCode, SCOPE_MACHINE, machineId, "statusText", "状态文本", machine.get("statusText"), sortBase + 1, machineConfig.getStatusClass()));
|
||||||
|
bindings.add(binding(screenCode, SCOPE_MACHINE, machineId, "name", "设备编号", machine.get("name"), sortBase + 2, machineConfig.getStatusClass()));
|
||||||
|
bindings.add(binding(screenCode, SCOPE_MACHINE, machineId, "model", "设备型号", machine.get("model"), sortBase + 3, machineConfig.getStatusClass()));
|
||||||
|
bindings.add(binding(screenCode, SCOPE_MACHINE, machineId, "mode", "运行模式", machine.get("mode"), sortBase + 4, machineConfig.getStatusClass()));
|
||||||
|
bindings.add(binding(screenCode, SCOPE_MACHINE, machineId, "runtime", "今日开机时间", machine.get("runtime"), sortBase + 5, machineConfig.getStatusClass()));
|
||||||
|
bindings.add(binding(screenCode, SCOPE_MACHINE, machineId, "output", "今日计件数", machine.get("output"), sortBase + 6, machineConfig.getStatusClass()));
|
||||||
|
bindings.add(binding(screenCode, SCOPE_MACHINE, machineId, "progress", "任务进度", machine.get("progress"), sortBase + 7, machineConfig.getStatusClass()));
|
||||||
|
bindings.add(binding(screenCode, SCOPE_MACHINE, machineId, "workDate", "工单日期", machine.get("workDate"), sortBase + 8, machineConfig.getStatusClass()));
|
||||||
|
bindings.add(binding(screenCode, SCOPE_MACHINE, machineId, "batchNo", "批次号", machine.get("batchNo"), sortBase + 9, machineConfig.getStatusClass()));
|
||||||
|
bindings.add(binding(screenCode, SCOPE_MACHINE, machineId, "planQty", "计划产量", machine.get("planQty"), sortBase + 10, machineConfig.getStatusClass()));
|
||||||
|
bindings.add(binding(screenCode, SCOPE_MACHINE, machineId, "productModel", "产品型号", machine.get("productModel"), sortBase + 11, machineConfig.getStatusClass()));
|
||||||
|
bindings.add(binding(screenCode, SCOPE_MACHINE, machineId, "color", "颜色", machine.get("color"), sortBase + 12, machineConfig.getStatusClass()));
|
||||||
|
bindings.add(binding(screenCode, SCOPE_MACHINE, machineId, "remark", "备注", machine.get("remark"), sortBase + 13, machineConfig.getStatusClass()));
|
||||||
|
machineConfig.setBindings(bindings);
|
||||||
|
result.add(machineConfig);
|
||||||
|
sortBase += 100;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static MdScreenBinding binding(String screenCode, String scope, Long machineId, String key, String name, Object fixedValue, int sortNum, String statusClass) {
|
||||||
|
MdScreenBinding binding = new MdScreenBinding();
|
||||||
|
binding.setScreenCode(screenCode);
|
||||||
|
binding.setBindingScope(scope);
|
||||||
|
binding.setMachineId(machineId);
|
||||||
|
binding.setBindingKey(key);
|
||||||
|
binding.setBindingName(name);
|
||||||
|
binding.setSourceType(SOURCE_FIXED);
|
||||||
|
binding.setFixedValue(fixedValue == null ? "" : String.valueOf(fixedValue));
|
||||||
|
binding.setSortNum(sortNum);
|
||||||
|
binding.setEnableFlag("Y");
|
||||||
|
binding.setStatusClass(statusClass);
|
||||||
|
return binding;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Map<String, Object> machineRow(Long id, String name, String model, String statusText, String statusClass, String mode,
|
||||||
|
String runtime, String output, String workDate, String batchNo, String planQty,
|
||||||
|
String progress, String productModel, String color, String remark) {
|
||||||
|
return row("id", id, "name", name, "model", model, "statusText", statusText, "statusClass", statusClass, "mode", mode,
|
||||||
|
"runtime", runtime, "output", output, "workDate", workDate, "batchNo", batchNo, "planQty", planQty,
|
||||||
|
"progress", progress, "productModel", productModel, "color", color, "remark", remark);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Map<String, Object> row(Object... values) {
|
||||||
|
Map<String, Object> result = new LinkedHashMap<String, Object>();
|
||||||
|
for (int index = 0; index < values.length; index += 2) {
|
||||||
|
result.put(String.valueOf(values[index]), values[index + 1]);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Long toLong(Object value) {
|
||||||
|
if (value == null) {
|
||||||
|
return 0L;
|
||||||
|
}
|
||||||
|
if (value instanceof Number) {
|
||||||
|
return ((Number) value).longValue();
|
||||||
|
}
|
||||||
|
return Long.valueOf(String.valueOf(value));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -69,6 +69,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
limit 1
|
limit 1
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="selectMdMeasurePointByPointCodes" resultMap="MdMeasurePointResult">
|
||||||
|
<include refid="selectMdMeasurePointVo"/>
|
||||||
|
where point_code in
|
||||||
|
<foreach collection="array" item="pointCode" open="(" separator="," close=")">
|
||||||
|
#{pointCode}
|
||||||
|
</foreach>
|
||||||
|
</select>
|
||||||
|
|
||||||
<insert id="insertMdMeasurePoint" parameterType="MdMeasurePoint" useGeneratedKeys="true" keyProperty="pointId">
|
<insert id="insertMdMeasurePoint" parameterType="MdMeasurePoint" useGeneratedKeys="true" keyProperty="pointId">
|
||||||
insert into md_measure_point
|
insert into md_measure_point
|
||||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
|
|||||||
187
ktg-mes/src/main/resources/mapper/md/MdScreenBindingMapper.xml
Normal file
187
ktg-mes/src/main/resources/mapper/md/MdScreenBindingMapper.xml
Normal file
@ -0,0 +1,187 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.ktg.mes.md.mapper.MdScreenBindingMapper">
|
||||||
|
|
||||||
|
<resultMap type="MdScreenBinding" id="MdScreenBindingResult">
|
||||||
|
<result property="bindingId" column="binding_id"/>
|
||||||
|
<result property="screenCode" column="screen_code"/>
|
||||||
|
<result property="workshopId" column="workshop_id"/>
|
||||||
|
<result property="workshopCode" column="workshop_code"/>
|
||||||
|
<result property="workshopName" column="workshop_name"/>
|
||||||
|
<result property="bindingScope" column="binding_scope"/>
|
||||||
|
<result property="machineId" column="machine_id"/>
|
||||||
|
<result property="bindingKey" column="binding_key"/>
|
||||||
|
<result property="bindingName" column="binding_name"/>
|
||||||
|
<result property="sourceType" column="source_type"/>
|
||||||
|
<result property="pointId" column="point_id"/>
|
||||||
|
<result property="pointCode" column="point_code"/>
|
||||||
|
<result property="pointName" column="point_name"/>
|
||||||
|
<result property="fixedValue" column="fixed_value"/>
|
||||||
|
<result property="defaultValue" column="default_value"/>
|
||||||
|
<result property="displayUnit" column="display_unit"/>
|
||||||
|
<result property="precisionDigit" column="precision_digit"/>
|
||||||
|
<result property="statusClass" column="status_class"/>
|
||||||
|
<result property="sortNum" column="sort_num"/>
|
||||||
|
<result property="enableFlag" column="enable_flag"/>
|
||||||
|
<result property="remark" column="remark"/>
|
||||||
|
<result property="createBy" column="create_by"/>
|
||||||
|
<result property="createTime" column="create_time"/>
|
||||||
|
<result property="updateBy" column="update_by"/>
|
||||||
|
<result property="updateTime" column="update_time"/>
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<sql id="selectMdScreenBindingVo">
|
||||||
|
select binding_id, screen_code, workshop_id, workshop_code, workshop_name, binding_scope, machine_id,
|
||||||
|
binding_key, binding_name, source_type, point_id, point_code, point_name, fixed_value,
|
||||||
|
default_value, display_unit, precision_digit, status_class, sort_num, enable_flag,
|
||||||
|
remark, create_by, create_time, update_by, update_time
|
||||||
|
from md_screen_binding
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<select id="selectMdScreenBindingByBindingId" parameterType="Long" resultMap="MdScreenBindingResult">
|
||||||
|
<include refid="selectMdScreenBindingVo"/>
|
||||||
|
where binding_id = #{bindingId}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectMdScreenBindingList" parameterType="MdScreenBinding" resultMap="MdScreenBindingResult">
|
||||||
|
<include refid="selectMdScreenBindingVo"/>
|
||||||
|
<where>
|
||||||
|
<if test="screenCode != null and screenCode != ''">and screen_code like concat('%', #{screenCode}, '%')</if>
|
||||||
|
<if test="workshopId != null">and workshop_id = #{workshopId}</if>
|
||||||
|
<if test="bindingScope != null and bindingScope != ''">and binding_scope = #{bindingScope}</if>
|
||||||
|
<if test="machineId != null">and machine_id = #{machineId}</if>
|
||||||
|
<if test="bindingKey != null and bindingKey != ''">and binding_key = #{bindingKey}</if>
|
||||||
|
<if test="sourceType != null and sourceType != ''">and source_type = #{sourceType}</if>
|
||||||
|
<if test="pointCode != null and pointCode != ''">and point_code like concat('%', #{pointCode}, '%')</if>
|
||||||
|
<if test="enableFlag != null and enableFlag != ''">and enable_flag = #{enableFlag}</if>
|
||||||
|
</where>
|
||||||
|
order by screen_code asc, binding_scope asc, machine_id asc, sort_num asc, binding_id asc
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectMdScreenBindingByScreenCode" parameterType="String" resultMap="MdScreenBindingResult">
|
||||||
|
<include refid="selectMdScreenBindingVo"/>
|
||||||
|
where screen_code = #{screenCode}
|
||||||
|
order by binding_scope asc, machine_id asc, sort_num asc, binding_id asc
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<insert id="insertMdScreenBinding" parameterType="MdScreenBinding" useGeneratedKeys="true" keyProperty="bindingId">
|
||||||
|
insert into md_screen_binding
|
||||||
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="screenCode != null and screenCode != ''">screen_code,</if>
|
||||||
|
<if test="workshopId != null">workshop_id,</if>
|
||||||
|
<if test="workshopCode != null and workshopCode != ''">workshop_code,</if>
|
||||||
|
<if test="workshopName != null and workshopName != ''">workshop_name,</if>
|
||||||
|
<if test="bindingScope != null and bindingScope != ''">binding_scope,</if>
|
||||||
|
<if test="machineId != null">machine_id,</if>
|
||||||
|
<if test="bindingKey != null and bindingKey != ''">binding_key,</if>
|
||||||
|
<if test="bindingName != null and bindingName != ''">binding_name,</if>
|
||||||
|
<if test="sourceType != null and sourceType != ''">source_type,</if>
|
||||||
|
<if test="pointId != null">point_id,</if>
|
||||||
|
<if test="pointCode != null and pointCode != ''">point_code,</if>
|
||||||
|
<if test="pointName != null and pointName != ''">point_name,</if>
|
||||||
|
<if test="fixedValue != null">fixed_value,</if>
|
||||||
|
<if test="defaultValue != null">default_value,</if>
|
||||||
|
<if test="displayUnit != null">display_unit,</if>
|
||||||
|
<if test="precisionDigit != null">precision_digit,</if>
|
||||||
|
<if test="statusClass != null">status_class,</if>
|
||||||
|
<if test="sortNum != null">sort_num,</if>
|
||||||
|
<if test="enableFlag != null and enableFlag != ''">enable_flag,</if>
|
||||||
|
<if test="remark != null">remark,</if>
|
||||||
|
<if test="createBy != null">create_by,</if>
|
||||||
|
<if test="createTime != null">create_time,</if>
|
||||||
|
<if test="updateBy != null">update_by,</if>
|
||||||
|
<if test="updateTime != null">update_time,</if>
|
||||||
|
</trim>
|
||||||
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="screenCode != null and screenCode != ''">#{screenCode},</if>
|
||||||
|
<if test="workshopId != null">#{workshopId},</if>
|
||||||
|
<if test="workshopCode != null and workshopCode != ''">#{workshopCode},</if>
|
||||||
|
<if test="workshopName != null and workshopName != ''">#{workshopName},</if>
|
||||||
|
<if test="bindingScope != null and bindingScope != ''">#{bindingScope},</if>
|
||||||
|
<if test="machineId != null">#{machineId},</if>
|
||||||
|
<if test="bindingKey != null and bindingKey != ''">#{bindingKey},</if>
|
||||||
|
<if test="bindingName != null and bindingName != ''">#{bindingName},</if>
|
||||||
|
<if test="sourceType != null and sourceType != ''">#{sourceType},</if>
|
||||||
|
<if test="pointId != null">#{pointId},</if>
|
||||||
|
<if test="pointCode != null and pointCode != ''">#{pointCode},</if>
|
||||||
|
<if test="pointName != null and pointName != ''">#{pointName},</if>
|
||||||
|
<if test="fixedValue != null">#{fixedValue},</if>
|
||||||
|
<if test="defaultValue != null">#{defaultValue},</if>
|
||||||
|
<if test="displayUnit != null">#{displayUnit},</if>
|
||||||
|
<if test="precisionDigit != null">#{precisionDigit},</if>
|
||||||
|
<if test="statusClass != null">#{statusClass},</if>
|
||||||
|
<if test="sortNum != null">#{sortNum},</if>
|
||||||
|
<if test="enableFlag != null and enableFlag != ''">#{enableFlag},</if>
|
||||||
|
<if test="remark != null">#{remark},</if>
|
||||||
|
<if test="createBy != null">#{createBy},</if>
|
||||||
|
<if test="createTime != null">#{createTime},</if>
|
||||||
|
<if test="updateBy != null">#{updateBy},</if>
|
||||||
|
<if test="updateTime != null">#{updateTime},</if>
|
||||||
|
</trim>
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
<insert id="batchInsertMdScreenBinding" parameterType="java.util.List">
|
||||||
|
insert into md_screen_binding
|
||||||
|
(
|
||||||
|
screen_code, workshop_id, workshop_code, workshop_name, binding_scope, machine_id,
|
||||||
|
binding_key, binding_name, source_type, point_id, point_code, point_name,
|
||||||
|
fixed_value, default_value, display_unit, precision_digit, status_class, sort_num,
|
||||||
|
enable_flag, remark, create_by, create_time, update_by, update_time
|
||||||
|
)
|
||||||
|
values
|
||||||
|
<foreach collection="list" item="item" separator=",">
|
||||||
|
(
|
||||||
|
#{item.screenCode}, #{item.workshopId}, #{item.workshopCode}, #{item.workshopName}, #{item.bindingScope}, #{item.machineId},
|
||||||
|
#{item.bindingKey}, #{item.bindingName}, #{item.sourceType}, #{item.pointId}, #{item.pointCode}, #{item.pointName},
|
||||||
|
#{item.fixedValue}, #{item.defaultValue}, #{item.displayUnit}, #{item.precisionDigit}, #{item.statusClass}, #{item.sortNum},
|
||||||
|
#{item.enableFlag}, #{item.remark}, #{item.createBy}, #{item.createTime}, #{item.updateBy}, #{item.updateTime}
|
||||||
|
)
|
||||||
|
</foreach>
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
<update id="updateMdScreenBinding" parameterType="MdScreenBinding">
|
||||||
|
update md_screen_binding
|
||||||
|
<trim prefix="SET" suffixOverrides=",">
|
||||||
|
<if test="screenCode != null and screenCode != ''">screen_code = #{screenCode},</if>
|
||||||
|
<if test="workshopId != null">workshop_id = #{workshopId},</if>
|
||||||
|
<if test="workshopCode != null">workshop_code = #{workshopCode},</if>
|
||||||
|
<if test="workshopName != null">workshop_name = #{workshopName},</if>
|
||||||
|
<if test="bindingScope != null and bindingScope != ''">binding_scope = #{bindingScope},</if>
|
||||||
|
<if test="machineId != null">machine_id = #{machineId},</if>
|
||||||
|
<if test="bindingKey != null and bindingKey != ''">binding_key = #{bindingKey},</if>
|
||||||
|
<if test="bindingName != null and bindingName != ''">binding_name = #{bindingName},</if>
|
||||||
|
<if test="sourceType != null and sourceType != ''">source_type = #{sourceType},</if>
|
||||||
|
<if test="pointId != null">point_id = #{pointId},</if>
|
||||||
|
<if test="pointCode != null">point_code = #{pointCode},</if>
|
||||||
|
<if test="pointName != null">point_name = #{pointName},</if>
|
||||||
|
<if test="fixedValue != null">fixed_value = #{fixedValue},</if>
|
||||||
|
<if test="defaultValue != null">default_value = #{defaultValue},</if>
|
||||||
|
<if test="displayUnit != null">display_unit = #{displayUnit},</if>
|
||||||
|
<if test="precisionDigit != null">precision_digit = #{precisionDigit},</if>
|
||||||
|
<if test="statusClass != null">status_class = #{statusClass},</if>
|
||||||
|
<if test="sortNum != null">sort_num = #{sortNum},</if>
|
||||||
|
<if test="enableFlag != null and enableFlag != ''">enable_flag = #{enableFlag},</if>
|
||||||
|
<if test="remark != null">remark = #{remark},</if>
|
||||||
|
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||||
|
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||||
|
</trim>
|
||||||
|
where binding_id = #{bindingId}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<delete id="deleteMdScreenBindingByBindingId" parameterType="Long">
|
||||||
|
delete from md_screen_binding where binding_id = #{bindingId}
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
<delete id="deleteMdScreenBindingByBindingIds" parameterType="Long">
|
||||||
|
delete from md_screen_binding where binding_id in
|
||||||
|
<foreach item="bindingId" collection="array" open="(" separator="," close=")">
|
||||||
|
#{bindingId}
|
||||||
|
</foreach>
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
<delete id="deleteMdScreenBindingByScreenCode" parameterType="String">
|
||||||
|
delete from md_screen_binding where screen_code = #{screenCode}
|
||||||
|
</delete>
|
||||||
|
</mapper>
|
||||||
Reference in New Issue
Block a user