|
|
|
@ -3,13 +3,10 @@ package com.gaotao.modules.base.service.Impl; |
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
|
|
import com.gaotao.common.utils.MapUtils; |
|
|
|
import com.gaotao.modules.base.dao.BaseMapper; |
|
|
|
import com.gaotao.modules.base.dao.ProcedureMapper; |
|
|
|
import com.gaotao.modules.base.dao.ReportLabelListMapper; |
|
|
|
import com.gaotao.modules.base.entity.LabelSettingData; |
|
|
|
import com.gaotao.modules.base.entity.PrintLabelRequest; |
|
|
|
import com.gaotao.modules.base.entity.ReportLabelList; |
|
|
|
import com.gaotao.modules.base.entity.RfidProcessResult; |
|
|
|
import com.gaotao.modules.base.entity.UserLabelPrinterData; |
|
|
|
import com.gaotao.modules.base.entity.ZplDataDto; |
|
|
|
import com.gaotao.modules.base.entity.*; |
|
|
|
import com.gaotao.modules.base.service.BaseService; |
|
|
|
import com.gaotao.modules.base.service.ReportLabelListService; |
|
|
|
|
|
|
|
@ -22,7 +19,9 @@ import java.io.BufferedReader; |
|
|
|
import java.io.InputStream; |
|
|
|
import java.io.InputStreamReader; |
|
|
|
import java.io.OutputStream; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
|
|
|
|
@Slf4j |
|
|
|
@Service |
|
|
|
@ -31,13 +30,19 @@ public class ReportLabelListServiceImpl extends ServiceImpl<ReportLabelListMappe |
|
|
|
@Autowired |
|
|
|
private BaseService baseService; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private BaseMapper baseMapper; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private ProcedureMapper procedureMapper; |
|
|
|
|
|
|
|
@Override |
|
|
|
@Transactional |
|
|
|
public void saveZplElements(ZplDataDto zplDataDto) { |
|
|
|
if (zplDataDto.getReportId() == null) { |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
List<ReportLabelList> elements = zplDataDto.getElements(); |
|
|
|
// 从 ReportFileList (LabelSettingData) 获取数据做判断 |
|
|
|
LabelSettingData labelSettingData = new LabelSettingData(); |
|
|
|
labelSettingData.setLabelNo(zplDataDto.getReportId()); |
|
|
|
@ -45,20 +50,53 @@ public class ReportLabelListServiceImpl extends ServiceImpl<ReportLabelListMappe |
|
|
|
if (labelSettingDataList.isEmpty()) { |
|
|
|
throw new RuntimeException("未找到对应的标签"); |
|
|
|
} |
|
|
|
if (zplDataDto.getElements().isEmpty()) { |
|
|
|
if (elements.isEmpty()) { |
|
|
|
return; |
|
|
|
} |
|
|
|
// 先根据ReportId删除ReportLabelList,再保存ReportLabelList |
|
|
|
this.removeByMap(new MapUtils().put("report_id", zplDataDto.getReportId())); |
|
|
|
zplDataDto.getElements().forEach(element -> { |
|
|
|
elements.forEach(element -> { |
|
|
|
element.setReportId(zplDataDto.getReportId()); |
|
|
|
}); |
|
|
|
this.saveBatch(zplDataDto.getElements()); |
|
|
|
//1.首先删除原标签内容定义 |
|
|
|
LabelSettingData labelData = new LabelSettingData(); |
|
|
|
labelData.setLabelNo(zplDataDto.getReportId()); |
|
|
|
baseMapper.deleteLabelAllContentsByLabelNo(labelData); |
|
|
|
baseMapper.deleteLabelAllContentRulesByLabelNo(labelData); |
|
|
|
//插入标签的打印参数 |
|
|
|
for (ReportLabelList element : elements) { |
|
|
|
if (element.getType().equals("serialNumber")) { |
|
|
|
LabelContentData inData = new LabelContentData(); |
|
|
|
inData.setLabelNo(zplDataDto.getReportId()); |
|
|
|
inData.setDbFieldName("流水号"); |
|
|
|
inData.setItemDesc("流水号"); |
|
|
|
inData.setObjectGroup("流水号"); |
|
|
|
inData.setObjectName("流水号"); |
|
|
|
inData.setSequenceBits(element.getDigits()!=null?element.getDigits():0); |
|
|
|
inData.setIntervalValue(element.getStep()!=null?element.getStep():1); |
|
|
|
//调用存储过程 查询序号数据 |
|
|
|
Integer itemNo = this.getLabelContentItemNo(inData.getLabelNo()); |
|
|
|
inData.setItemNo(itemNo); |
|
|
|
baseMapper.insertLabelContent(inData); |
|
|
|
if (element.getData() != null && !element.getData().isEmpty()) { |
|
|
|
// 如果有序列规则,则更新标签内容 |
|
|
|
int seqNo = 1; // 默认序列号从1开始 |
|
|
|
for (String seqRule : element.getData().split("\\+")) { |
|
|
|
inData.setObjectName(seqRule); |
|
|
|
inData.setSeqNo(seqNo); |
|
|
|
baseMapper.insertLabelContentRule(inData); |
|
|
|
seqNo++; |
|
|
|
} |
|
|
|
} |
|
|
|
element.setItemNo(itemNo); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
this.saveBatch(elements); |
|
|
|
|
|
|
|
// 更新LabelSettingData,包含新的纸张尺寸和DPI信息 |
|
|
|
if (!labelSettingDataList.isEmpty()) { |
|
|
|
LabelSettingData inData = labelSettingDataList.getFirst(); |
|
|
|
|
|
|
|
// 更新ZPL代码 |
|
|
|
inData.setZplCode(zplDataDto.getZplCode()); |
|
|
|
|
|
|
|
@ -78,9 +116,41 @@ public class ReportLabelListServiceImpl extends ServiceImpl<ReportLabelListMappe |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public Integer getLabelContentItemNo(String labelNo) { |
|
|
|
List<Object> params = new ArrayList<>(); |
|
|
|
params.add(labelNo); |
|
|
|
//存储过程 调用存储过程 创建分卷 |
|
|
|
List<Map<String, Object>> resultList = procedureMapper.getProcedureData("getLabelContentItemNo", params); |
|
|
|
//返回结果 |
|
|
|
Map<String, Object> resultMap = resultList.get(0); |
|
|
|
//处理结果集 |
|
|
|
String strItemNo = String.valueOf(resultMap.get("itemNo")); |
|
|
|
return Integer.parseInt(strItemNo); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<ReportLabelList> getZplElements(String reportId) { |
|
|
|
return this.lambdaQuery().eq(ReportLabelList::getReportId, reportId).list(); |
|
|
|
List<ReportLabelList> elements = this.lambdaQuery().eq(ReportLabelList::getReportId, reportId).list(); |
|
|
|
for (ReportLabelList element : elements) { |
|
|
|
if (element.getType().equals("serialNumber")) { |
|
|
|
// 查询流水号规则 |
|
|
|
LabelContentData inData = new LabelContentData(); |
|
|
|
inData.setLabelNo(reportId); |
|
|
|
inData.setItemNo(element.getItemNo()); |
|
|
|
List<LabelContentData> data = baseMapper.getUsedLabelContent(inData); |
|
|
|
if (!data.isEmpty()) { |
|
|
|
element.setDigits(data.getFirst().getSequenceBits()); |
|
|
|
element.setStep(data.getFirst().getIntervalValue()); |
|
|
|
} |
|
|
|
List<LabelContentSerialRuleData> dataRule =baseMapper.getLabelContentSerialRule(inData); |
|
|
|
if (!dataRule.isEmpty()) { |
|
|
|
element.setData(String.join("+", dataRule.stream() |
|
|
|
.map(LabelContentSerialRuleData::getObjectName) |
|
|
|
.toList())); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
return elements; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
|