Browse Source

流水号

master
han\hanst 7 months ago
parent
commit
1d0fa09bc6
  1. 4
      src/main/java/com/gaotao/modules/base/dao/BaseMapper.java
  2. 8
      src/main/java/com/gaotao/modules/base/entity/LabelContentData.java
  3. 6
      src/main/java/com/gaotao/modules/base/entity/ReportLabelList.java
  4. 94
      src/main/java/com/gaotao/modules/base/service/Impl/ReportLabelListServiceImpl.java
  5. 13
      src/main/resources/mapper/base/BaseMapper.xml

4
src/main/java/com/gaotao/modules/base/dao/BaseMapper.java

@ -207,6 +207,8 @@ public interface BaseMapper {
*/
void insertLabelContent(LabelContentData inData);
void insertLabelContentRule(LabelContentData inData);
/**
* @description: 修改标签的打印参数
* @author LR
@ -239,6 +241,8 @@ public interface BaseMapper {
*/
void deleteLabelAllContentsByLabelNo(LabelSettingData inData);
void deleteLabelAllContentRulesByLabelNo(LabelSettingData inData);
/**
* @description: 复制新的标签内容定义进入当前标签
* @author LR

8
src/main/java/com/gaotao/modules/base/entity/LabelContentData.java

@ -8,6 +8,7 @@ public class LabelContentData {
private int itemNo;//
private String itemDesc;//
private int showSeqNo;//
private int seqNo;//
private String objectName;//参数标题
private String objectGroup;//参数名称
private String dbFieldName;//
@ -107,4 +108,11 @@ public class LabelContentData {
public void setSearchFlag(String searchFlag) {
this.searchFlag = searchFlag;
}
public int getSeqNo() {
return seqNo;
}
public void setSeqNo(int seqNo) {
this.seqNo = seqNo;
}
}

6
src/main/java/com/gaotao/modules/base/entity/ReportLabelList.java

@ -1,5 +1,6 @@
package com.gaotao.modules.base.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
@Data
@ -17,4 +18,9 @@ public class ReportLabelList {
private Boolean newline;
private Integer lineRows;
private Integer lineWidth;
private Integer itemNo;
@TableField(exist = false)
private Integer digits;
@TableField(exist = false)
private Integer step;
}

94
src/main/java/com/gaotao/modules/base/service/Impl/ReportLabelListServiceImpl.java

@ -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

13
src/main/resources/mapper/base/BaseMapper.xml

@ -287,6 +287,12 @@
#{dbFieldName}, #{sequenceNoFlag}, #{sequenceBits}, #{intervalValue})
</insert>
<!--插入标签内容定义规则-->
<insert id="insertLabelContentRule" parameterType="LabelContentData">
INSERT INTO ReportContentItem_SeqRule(ReportID, ItemNo, SeqNo, ObjectName)
VALUES (#{labelNo}, #{itemNo}, #{seqNo}, #{objectName})
</insert>
<!--修改标签的打印参数-->
<update id="updateLabelContent" parameterType="LabelContentData">
UPDATE ReportContentItem SET ShowSeqNo = #{showSeqNo}, ObjectName = #{objectName}, ObjectGroup = #{objectGroup},
@ -324,6 +330,13 @@
</where>
</delete>
<delete id="deleteLabelAllContentRulesByLabelNo" parameterType="LabelSettingData">
DELETE FROM ReportContentItem_SeqRule
<where>
AND ReportID = #{labelNo}
</where>
</delete>
<!--复制其他标签的标签内容定义-->
<insert id="copyLabelAllContentsWithOther" parameterType="LabelSettingData">
INSERT INTO ReportContentItem(ReportID, ItemNo, ShowSeqNo, ItemDesc, ObjectName, ObjectGroup,

Loading…
Cancel
Save