Commit ae0a1b85 authored by 李驰骋's avatar 李驰骋

产品流水添加字段、流水生成规则按日重置1

parent 33a4bc15
......@@ -43,6 +43,9 @@ public class ProProductQrcodeRule extends BaseEntity {
@ApiModelProperty("编码流水长度")
private Integer serialLen;
@ApiModelProperty("日期流水间隔符")
private String dateSerialSpace;
/** 产品描述 */
@ApiModelProperty("产品描述")
private String itemDesc;
......@@ -58,6 +61,10 @@ public class ProProductQrcodeRule extends BaseEntity {
/** 当前流水 */
@ApiModelProperty("当前流水")
private Integer currentSerial;
@ApiModelProperty("最新生成日期格式化值")
private String lastDateFmt;
/**
* 模板ID
*/
......@@ -80,9 +87,11 @@ public class ProProductQrcodeRule extends BaseEntity {
private String templateType;
public String buildQrcode(){
//DDD=当年第几天、dd=当月第几天
String rst = this.getPrefix() +
DateUtil.format(LocalDateTime.now(), this.getDatePattern()) +
StringUtils.leftPad(currentSerial+"",serialLen, "0");
StringUtils.defaultString(getDateSerialSpace(),"") +
StringUtils.leftPad(currentSerial+"", serialLen, "0");
return rst;
}
......
......@@ -34,6 +34,9 @@ public class ProProductQrcodeRuleCreate {
@ApiModelProperty("编码时间格式化")
private String datePattern;
@ApiModelProperty("日期流水间隔符")
private String dateSerialSpace;
/** 编码流水长度 */
@ApiModelProperty("编码流水长度")
private Integer serialLen;
......
......@@ -41,6 +41,9 @@ public class ProProductQrcodeRuleDto {
@ApiModelProperty("编码时间格式化")
private String datePattern;
@ApiModelProperty("日期流水间隔符")
private String dateSerialSpace;
/** 编码流水长度 */
@ApiModelProperty("编码流水长度")
private Integer serialLen;
......
......@@ -34,6 +34,9 @@ public class ProProductQrcodeRuleUpdate {
@ApiModelProperty("编码时间格式化")
private String datePattern;
@ApiModelProperty("日期流水间隔符")
private String dateSerialSpace;
/** 编码流水长度 */
@ApiModelProperty("编码流水长度")
private Integer serialLen;
......
package com.ximai.mes.pro.service.impl;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ximai.common.utils.MessageUtils;
import com.ximai.common.utils.data.DateUtils;
......@@ -79,7 +82,7 @@ public class ProProductQrcodeRuleServiceImpl implements IProProductQrcodeRuleSer
QueryWrapper<ProProductQrcodeRule> proProductQrcodeRuleQuery = new QueryWrapper<>();
proProductQrcodeRuleQuery.eq("item_id", itemId);
proProductQrcodeRuleQuery.eq(StringUtils.isNotEmpty(clientCode),"client_code", clientCode);
proProductQrcodeRuleQuery.isNull(StringUtils.isEmpty(clientCode),"client_code");
proProductQrcodeRuleQuery.eq(StringUtils.isEmpty(clientCode),"ifnull(client_code,'')", "");
proProductQrcodeRuleQuery.orderByDesc("create_time");
List<ProProductQrcodeRule> list = this.selectProProductQrcodeRuleList(proProductQrcodeRuleQuery);
if(list.size()>0){
......@@ -155,6 +158,12 @@ public class ProProductQrcodeRuleServiceImpl implements IProProductQrcodeRuleSer
@Override
public List<String> buildQrcode(ProProductQrcodeRule rule, Integer quantity) {
//按天生成流水
String currDateStr = DateUtil.format(LocalDateTime.now(), "yyMMdd");
//判断是否切换日期
if(!currDateStr.equals(rule.getLastDateFmt())){
rule.setCurrentSerial(1);
}
if(rule.getCurrentSerial() != null && rule.getSerialLen() != null && rule.getSerialLen() > 0){
StringBuilder maxCurrentSerialString = new StringBuilder();
for(int i=0; i < rule.getSerialLen(); i++){
......@@ -170,6 +179,7 @@ public class ProProductQrcodeRuleServiceImpl implements IProProductQrcodeRuleSer
rst.add(temp);
rule.setCurrentSerial(rule.getCurrentSerial()+1);
}
rule.setLastDateFmt(currDateStr);
proProductQrcodeRuleMapper.updateById(rule);
return rst;
}
......
......@@ -5,44 +5,48 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<mapper namespace="com.ximai.mes.pro.mapper.ProProductQrcodeRuleMapper">
<resultMap type="ProProductQrcodeRule" id="ProProductQrcodeRuleResult">
<result property="ruleId" column="rule_id" />
<result property="itemId" column="item_id" />
<result property="itemCode" column="item_code" />
<result property="prefix" column="prefix" />
<result property="datePattern" column="date_pattern" />
<result property="serialLen" column="serial_len" />
<result property="itemDesc" column="item_desc" />
<result property="clientCode" column="client_code" />
<result property="clientName" column="client_name" />
<result property="currentSerial" column="current_serial" />
<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>
<result property="ruleId" column="rule_id" />
<result property="itemId" column="item_id" />
<result property="itemCode" column="item_code" />
<result property="prefix" column="prefix" />
<result property="datePattern" column="date_pattern" />
<result property="serialLen" column="serial_len" />
<result property="dateSerialSpace" column="date_serial_space" />
<result property="itemDesc" column="item_desc" />
<result property="clientCode" column="client_code" />
<result property="clientName" column="client_name" />
<result property="currentSerial" column="current_serial" />
<result property="lastDateFmt" column="last_date_fmt" />
<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>
<resultMap type="com.ximai.mes.pro.dto.ProProductQrcodeRuleDto" id="ProProductQrcodeRuleResult2">
<result property="ruleId" column="rule_id" />
<result property="itemId" column="item_id" />
<result property="itemCode" column="item_code" />
<result property="prefix" column="prefix" />
<result property="datePattern" column="date_pattern" />
<result property="serialLen" column="serial_len" />
<result property="itemDesc" column="item_desc" />
<result property="clientCode" column="client_code" />
<result property="clientName" column="client_name" />
<result property="currentSerial" column="current_serial" />
<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>
<result property="ruleId" column="rule_id" />
<result property="itemId" column="item_id" />
<result property="itemCode" column="item_code" />
<result property="prefix" column="prefix" />
<result property="datePattern" column="date_pattern" />
<result property="serialLen" column="serial_len" />
<result property="dateSerialSpace" column="date_serial_space" />
<result property="itemDesc" column="item_desc" />
<result property="clientCode" column="client_code" />
<result property="clientName" column="client_name" />
<result property="currentSerial" column="current_serial" />
<result property="lastDateFmt" column="last_date_fmt" />
<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="selectProProductQrcodeRuleVo">
select rule_id, item_id, item_code,
prefix, date_pattern,
serial_len, item_desc,
client_code, client_name, current_serial,
client_code, client_name, current_serial, current_serial, date_serial_space, last_date_fmt,
create_by, create_time, update_by, update_time,template_name
,template_code,template_id,template_type from pro_product_qrcode_rule
</sql>
......@@ -79,6 +83,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="clientCode != null">client_code,</if>
<if test="clientName != null">client_name,</if>
<if test="currentSerial != null">current_serial,</if>
<if test="lastDateFmt != null">last_date_fmt,</if>
<if test="dateSerialSpace != null">date_serial_space,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
......@@ -106,6 +112,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="clientCode != null">#{clientCode},</if>
<if test="clientName != null">#{clientName},</if>
<if test="currentSerial != null">#{currentSerial},</if>
<if test="dateSerialSpace != null">#{dateSerialSpace},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
......@@ -137,6 +144,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="clientCode != null">client_code = #{clientCode},</if>
<if test="clientName != null">client_name = #{clientName},</if>
<if test="currentSerial != null">current_serial = #{currentSerial},</if>
<if test="dateSerialSpace != null">date_serial_space = #{dateSerialSpace},</if>
<if test="lastDateFmt != null">last_date_fmt = #{lastDateFmt},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment