Browse Source

Merge branch 'master' into dev

dev
han\hanst 14 hours ago
parent
commit
81b8c159cb
  1. 4
      src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/PalletMergeQueryServiceImpl.java
  2. 15
      src/main/java/com/gaotao/modules/base/utils/ZplGenerator.java
  3. 8
      src/main/resources/mapper/automatedWarehouse/PalletMergeQueryMapper.xml

4
src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/PalletMergeQueryServiceImpl.java

@ -39,6 +39,7 @@ import java.util.Map;
@Service
public class PalletMergeQueryServiceImpl implements PalletMergeQueryService {
@Autowired
private PalletMergeQueryMapper palletMergeQueryMapper;
@ -81,8 +82,9 @@ public class PalletMergeQueryServiceImpl implements PalletMergeQueryService {
* <p><b>查询逻辑</b></p>
* <ol>
* <li>如果前端传入maxPositionCount则使用否则计算该类型最大已用位置数</li>
* <li>查询立库中该类型的栈板count>0 count<最大count</li>
* <li>查询立库中该类型的栈板count>0 count&lt;最大count</li>
* <li>只查询calling_flag='N'的栈板</li>
* <li>SQL排除pallet.sore_type=3直接出库托</li>
* <li>按count从小到大排序</li>
* <li>返回分页结果</li>
* </ol>

15
src/main/java/com/gaotao/modules/base/utils/ZplGenerator.java

@ -6,8 +6,7 @@ import lombok.extern.slf4j.Slf4j;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.List;
import java.util.*;
import com.google.zxing.*;
import com.google.zxing.client.j2se.MatrixToImageWriter;
@ -17,10 +16,6 @@ import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.util.Collections;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import java.util.regex.Pattern;
/**
@ -29,7 +24,7 @@ import java.util.regex.Pattern;
*/
@Slf4j
public class ZplGenerator {
private static final String DEFAULT_FONT_FILE = "ARIAL UNICODE MS.TTF";
private static final String DEFAULT_FONT_FILE = "SIMSUN.TTF";
/**
* 越南文常用字符覆盖
* - 基础越南文字母Ă/ă Â/â Ê/ê Ô/ô Ơ/ơ Ư/ư Đ/đ
@ -45,7 +40,7 @@ public class ZplGenerator {
private static final int VIETNAMESE_BITMAP_Y_OFFSET = -5;
/**
* 兼容既有标签默认字体仍绑定J槽位
* 历史模板大量依赖 default -> ^CWJ,E:* 的行为默认字体改为 ARIAL UNICODE MS 仍保持 J 槽位
* 历史模板大量依赖 default -> ^CWJ,E:* 的行为默认字体使用 SIMSUN.TTF仍保持 J 槽位
* 避免中文预览/打印丢失
*/
private static final String DEFAULT_FONT_LETTER = "J";
@ -165,7 +160,7 @@ public class ZplGenerator {
if (Boolean.TRUE.equals(element.getIsChecked())) {
zpl.append("^FO").append(x - 60).append(",").append(y)
.append("^GB45,45,2,B,0^FS ^FO").append(x - 50).append(",").append(y + 10)
.append("^AJN,35,35^FD√^FS\n");
.append("^CI28^CWJ,E:").append(DEFAULT_FONT_FILE).append("^AJN,35,35^FD√^FS\n");
}
// 业务原因越南文在部分机型的TTF字形渲染存在缺字改走位图可规避固件字形缺失
@ -411,7 +406,7 @@ public class ZplGenerator {
private String resolveBitmapFontFamily(String fontFamily) {
if (fontFamily == null || fontFamily.trim().isEmpty() || "default".equalsIgnoreCase(fontFamily.trim())) {
return "Arial Unicode MS";
return "SimSun";
}
String normalized = fontFamily.trim();
if (normalized.toUpperCase(Locale.ROOT).endsWith(".TTF")) {

8
src/main/resources/mapper/automatedWarehouse/PalletMergeQueryMapper.xml

@ -16,7 +16,7 @@
</select>
<!-- rqrq - 获取该类型在立库中装得最多的栈板的已用位置数 -->
<!-- 立库中的栈板:pallet_family IS NOT NULL -->
<!-- 立库中的栈板:wcs_location非空 -->
<!-- 已用位置数:pallet_detail中 position+layer 的唯一组合数 -->
<select id="getMaxPositionCount" resultType="Integer">
SELECT MAX(position_count) AS maxPositionCount
@ -36,7 +36,7 @@
</select>
<!-- rqrq - 查询需要合托的托盘列表 -->
<!-- 条件:立库中、calling_flag='N'、count>0 且 count<最大count -->
<!-- 条件:立库中、calling_flag='N'、count>0 且 count<最大count;sore_type=3直接出库托过重,不能自动/手动合托 -->
<!-- 排序:按已用位置数从小到大 -->
<select id="searchPalletMergeList" resultType="PalletMergeQueryData">
SELECT
@ -62,6 +62,7 @@
AND p.wcs_location IS NOT NULL
AND p.calling_flag = 'N'
AND p.is_deleted = '0'
AND ISNULL(p.sore_type, 0) &lt;&gt; 3
GROUP BY p.site, p.pallet_id, p.pallet_type, p.location_code, p.calling_flag
HAVING COUNT(DISTINCT CONCAT(ISNULL(pd.position, ''), '_', ISNULL(CAST(pd.layer AS VARCHAR), ''))) > 0
AND COUNT(DISTINCT CONCAT(ISNULL(pd.position, ''), '_', ISNULL(CAST(pd.layer AS VARCHAR), ''))) &lt; #{maxPositionCount}
@ -70,7 +71,7 @@
ORDER BY t.usedPositionCount ASC
</select>
<!-- rqrq - 查询需要合托的托盘列表(分页版本) -->
<!-- rqrq - 查询需要合托的托盘列表(分页版本);排除pallet.sore_type=3直接出库托,过重无法合托 -->
<!-- 支持前端传入maxPositionCount作为筛选条件 -->
<select id="searchPalletMergeListPage" parameterType="PalletMergeQueryData" resultType="PalletMergeQueryData">
SELECT
@ -96,6 +97,7 @@
AND p.wcs_location IS NOT NULL
AND p.calling_flag = 'N'
AND p.is_deleted = '0'
AND ISNULL(p.sore_type, 0) &lt;&gt; 3
GROUP BY p.site, p.pallet_id, p.pallet_type, p.location_code, p.calling_flag
HAVING COUNT(DISTINCT CONCAT(ISNULL(pd.position, ''), '_', ISNULL(CAST(pd.layer AS VARCHAR), ''))) > 0
AND COUNT(DISTINCT CONCAT(ISNULL(pd.position, ''), '_', ISNULL(CAST(pd.layer AS VARCHAR), ''))) &lt;= #{query.maxPositionCount}

Loading…
Cancel
Save