Browse Source

feat(print): 更新箱体标签打印功能

- 重命名打印函数从printPage到printBoxPage以统一命名规范
- 新增labelFlag为'D'的打印页面类型printBoxPageD
- 修改条件判断逻辑从labelFlag != 'A' && labelFlag != 'B'改为labelFlag = 'C'
- 在B类型打印中添加对D类型打印的支持
- 完善代码注释和格式化以提高可读性
master
qiankanghui 15 hours ago
parent
commit
43568b5a13
  1. 48
      src/main/java/com/ccl/tt/controller/PrintController.java
  2. 132
      src/main/resources/templates/print/box.ftl

48
src/main/java/com/ccl/tt/controller/PrintController.java

@ -41,13 +41,13 @@ public class PrintController {
@Autowired
private SoRollRepository rollRepo;
@Autowired
private ProcedureDao procedureDao;
@Autowired
private SoRollOperationRepository rollOpRepo;
@Autowired
private ProjectCodeRepository projectCodeRepo;
@Autowired
@ -90,7 +90,7 @@ public class PrintController {
public Integer getCurrentPrinterIndex(Authentication authentication) {
return getPrinterSetting(authentication.getName()).getSeq();
}
@ModelAttribute("currentPrinterName")
public String getCurrentPrinterName(Authentication authentication) {
return getPrinterSetting(authentication.getName()).getPrintName();
@ -506,28 +506,28 @@ public class PrintController {
}
return "print/finalroll";
}
@Autowired
UserRepository userRepo;
@Autowired
ShipmentBoxRepository boxRepo;
@Autowired
ReceiveBoxRepository reBox;
@Autowired
ShipmentBoxRollRepository boxRollRepo;
@Autowired
ReceiveBoxRollRepository receiveBoxRollRepository;
@Autowired
ShipmentRepository shipRepo;
@Autowired
SoReceiveRepository soReceiveRepository;
@Autowired
FinalRollDao finalRollDao;
@ -728,7 +728,7 @@ public class PrintController {
String pkgC="CCL"+partApn+pkgcDate+seqNo;
model.addAttribute("pkg", pkgC);
}
if("B".equals(printFlag)){
if("B".equals(printFlag) || "D".equals(printFlag)){
// 使用Calendar类获取周数
calendar.setTime(productTime);
int week = calendar.get(Calendar.WEEK_OF_YEAR);
@ -843,17 +843,17 @@ public class PrintController {
return "print/box";
}
/**
*
* @Title: getBoxRollCreatedDate
* @Description: 获取箱中创建卷的日期
*
* @Title: getBoxRollCreatedDate
* @Description: 获取箱中创建卷的日期
* @param shipNo
* @param boxNo
* @return
* @return: String
* @return
* @return: String
* @author LR
* @date: 2021-7-12 11:02:35
* @date: 2021-7-12 11:02:35
* @throws
*/
public String getBoxRollCreatedDate(String shipNo, String boxNo) {
@ -874,7 +874,7 @@ public class PrintController {
throw new RuntimeException("打印错误: " + boxNo+"does not exists ");
}
SoReceive SoReceive = soReceiveRepository.findByReceiveNo(box.getReceiveNo());
List<SoReceiveBoxRolls> boxRolls = receiveBoxRollRepository.findByBoxNo(box.getBoxNo());
String partNo = "";
@ -917,7 +917,7 @@ public class PrintController {
}
}
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String tsStr = sdf.format(SoReceive.getReceivedDate());
String tsStr = sdf.format(SoReceive.getReceivedDate());
String date = tsStr.substring(0, 10);
model.addAttribute("box", box);
model.addAttribute("productDate", DateUtils2.getStringDate(box.getProductDate()));
@ -980,7 +980,7 @@ public class PrintController {
throw new RuntimeException("打印错误: " + boxNo+"does not exists ");
}
SoReceive SoReceive = soReceiveRepository.findByReceiveNo(box.getReceiveNo());
List<SoReceiveBoxRolls> boxRolls = receiveBoxRollRepository.findByBoxNo(box.getBoxNo());
int count = 0;
for(int i = 0; i<boxRolls.size(); i++){
@ -1028,7 +1028,7 @@ public class PrintController {
}
}
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String tsStr = sdf.format(SoReceive.getReceivedDate());
String tsStr = sdf.format(SoReceive.getReceivedDate());
String date = tsStr.substring(0, 10);
model.addAttribute("box", box);
model.addAttribute("SoReceive", SoReceive);
@ -1044,7 +1044,7 @@ public class PrintController {
return "print/boxRoll";
}
@Value("${ifs.datasource.sql.order}")
String ifsOrderSql;
@ -1956,12 +1956,12 @@ public static String convertTo34Base(Date date) {
return (char) (value - 10 + 'A');
}
}
public static void main(String[] args) {
String dateStr = convertToBase34(10);
System.out.println(dateStr);
StringBuilder sb = new StringBuilder();
int remainder = 11 % 34;

132
src/main/resources/templates/print/box.ftl

@ -6,18 +6,21 @@
<#else >
<script>
function lodopReady(){
<#if labelFlag == 'A'>
printPageA();
<#if labelFlag == 'A'>
printBoxPageA();
</#if>
<#if labelFlag == 'B'>
printPageB();
printBoxPageB();
</#if>
<#if labelFlag != 'A' && labelFlag != 'B'>
printPageC();
<#if labelFlag == 'D'>
printBoxPageD();
</#if>
<#if labelFlag = 'C'>
printBoxPageC();
</#if>
}
function printPageA(){
function printBoxPageA(){
LODOP.NewPage();
LODOP.SET_PRINT_PAGESIZE(1,1500,1000,"");
LODOP.SET_PRINT_MODE("PRINT_NOCOLLATE",1);
@ -101,7 +104,7 @@ function printPageA(){
LODOP.SET_PRINT_STYLEA(0,"Stretch",2);
}
function printPageB(){
function printBoxPageB(){
LODOP.NewPage();
LODOP.SET_PRINT_PAGESIZE(1,1500,1000,"");
LODOP.SET_PRINT_MODE("PRINT_NOCOLLATE",1);
@ -214,7 +217,7 @@ function printPageB(){
LODOP.ADD_PRINT_RECT(211,282,36,26,0,1);
}
function printPageC(){
function printBoxPageC(){
LODOP.SET_PRINT_PAGESIZE(1,1500,1000,"");
LODOP.SET_PRINT_MODE("PRINT_NOCOLLATE",1);
LODOP.ADD_PRINT_LINE(11,5,10,546,0,1);
@ -325,10 +328,121 @@ function printPageC(){
LODOP.SET_PRINT_STYLEA(0,"FontSize",12);
LODOP.SET_PRINT_STYLEA(0,"Bold",2);
}
function printBoxPageD(){
LODOP.NewPage();
LODOP.SET_PRINT_PAGESIZE(1,1500,1000,"");
LODOP.SET_PRINT_MODE("PRINT_NOCOLLATE",1);
LODOP.ADD_PRINT_TEXT(13,17,188,21,"(P)HH P/N:"+"${customerPartNo}");
LODOP.ADD_PRINT_BARCODE(30,19,161,15,"128A","${customerPartNo}");
LODOP.SET_PRINT_STYLEA(0,"ShowBarText",0);
LODOP.ADD_PRINT_TEXT(46,18,186,21,"(Q)QTY:"+"${boxQty}");
LODOP.ADD_PRINT_BARCODE(62,19,65,15,"128A","${boxNo}");
LODOP.SET_PRINT_STYLEA(0,"ShowBarText",0);
LODOP.ADD_PRINT_TEXT(80,19,189,20,"(M)Mfr P/N:"+"${partNo}");
LODOP.ADD_PRINT_BARCODE(97,19,161,15,"128A","${partNo}");
LODOP.SET_PRINT_STYLEA(0,"ShowBarText",0);
LODOP.ADD_PRINT_TEXT(116,19,190,20,"(D)Date Code:"+"${rollTime1}");
LODOP.ADD_PRINT_BARCODE(133,19,167,15,"128A","${rollTime1}");
LODOP.SET_PRINT_STYLEA(0,"ShowBarText",0);
LODOP.ADD_PRINT_TEXT(185,19,192,20,"(L)Lot NO:"+"${boxNo}");
LODOP.ADD_PRINT_BARCODE(201,19,161,16,"128A","${boxNo}");
LODOP.SET_PRINT_STYLEA(0,"ShowBarText",0);
LODOP.ADD_PRINT_TEXT(250,19,192,20,"PKG ID:${pkg}");
LODOP.ADD_PRINT_BARCODE(265,19,225,15,"128A","${pkg}");
LODOP.SET_PRINT_STYLEA(0,"ShowBarText",0);
LODOP.ADD_PRINT_BARCODE(282,21,110,79,"QRCode","${customerPartNo}"+","+"${boxQty}"+","+"${partNo}"+","+"${rollTime1}"+","+"${dateCode}"+","+"${boxNo}"+","+"${order.revNo}"+","+"${pkg}");
<#--LODOP.ADD_PRINT_TEXT(299,206,121,20,"机种:"+"${resource}");-->
LODOP.ADD_PRINT_TEXT(217,293,30,20,"HF");
LODOP.SET_PRINT_STYLEA(0,"FontSize",12);
LODOP.SET_PRINT_STYLEA(0,"Bold",1);
LODOP.ADD_PRINT_IMAGE(22,363,119,37,"<img src='/img/ccl-logo.png'>");
LODOP.SET_PRINT_STYLEA(0,"Stretch",1);
LODOP.ADD_PRINT_IMAGE(212,209,55,20,"<img src='/img/cclimg.png'>");
LODOP.SET_PRINT_STYLEA(0,"Stretch",1);
LODOP.ADD_PRINT_TEXT(219,20,75,20,"Rev:"+"${order.revNo}");
LODOP.ADD_PRINT_BARCODE(234,19,69,15,"128A","${order.revNo}");
LODOP.SET_PRINT_STYLEA(0,"ShowBarText",0);
LODOP.ADD_PRINT_LINE(57,353,56,527,0,2);
LODOP.ADD_PRINT_TEXT(35,527,39,25,"GP");
LODOP.SET_PRINT_STYLEA(0,"FontName","微软雅黑");
LODOP.SET_PRINT_STYLEA(0,"FontSize",14);
LODOP.SET_PRINT_STYLEA(0,"Bold",1);
LODOP.ADD_PRINT_TEXT(12,489,79,25,"${index}");
LODOP.SET_PRINT_STYLEA(0,"FontName","微软雅黑");
LODOP.SET_PRINT_STYLEA(0,"FontSize",11);
LODOP.SET_PRINT_STYLEA(0,"Bold",1);
LODOP.ADD_PRINT_TEXT(60,355,210,25,"Customer:FINISHED GOODS STOCK");
LODOP.SET_PRINT_STYLEA(0,"FontName","微软雅黑");
LODOP.SET_PRINT_STYLEA(0,"FontSize",8);
LODOP.SET_PRINT_STYLEA(0,"Bold",1);
LODOP.ADD_PRINT_TEXT(97,355,209,25,"Part No.:"+"${partNo}");
LODOP.SET_PRINT_STYLEA(0,"FontName","微软雅黑");
LODOP.SET_PRINT_STYLEA(0,"FontSize",10);
LODOP.SET_PRINT_STYLEA(0,"Bold",1);
LODOP.ADD_PRINT_TEXT(118,355,211,25,"Desc.:"+"${order.partDesc}");
LODOP.SET_PRINT_STYLEA(0,"FontName","微软雅黑");
LODOP.SET_PRINT_STYLEA(0,"Bold",1);
LODOP.ADD_PRINT_TEXT(139,355,208,20,"Locn.:");
LODOP.SET_PRINT_STYLEA(0,"FontName","微软雅黑");
LODOP.SET_PRINT_STYLEA(0,"Bold",1);
LODOP.ADD_PRINT_TEXT(160,355,205,20,"Box Qty.:"+"${boxQty}");
LODOP.SET_PRINT_STYLEA(0,"FontName","微软雅黑");
LODOP.SET_PRINT_STYLEA(0,"Bold",1);
LODOP.ADD_PRINT_TEXT(78,355,205,20,"Qty of Rolls/Packs:"+"${count}");
LODOP.SET_PRINT_STYLEA(0,"FontName","微软雅黑");
LODOP.SET_PRINT_STYLEA(0,"Bold",1);
LODOP.ADD_PRINT_TEXT(184,355,201,20,"Total Ship Qty:"+"${shipQty}");
LODOP.SET_PRINT_STYLEA(0,"FontName","微软雅黑");
LODOP.SET_PRINT_STYLEA(0,"Bold",1);
LODOP.ADD_PRINT_TEXT(202,355,204,25,"Manf Date:"+"${rollTime1}"+" "+"${rollTime2}");
LODOP.SET_PRINT_STYLEA(0,"FontName","微软雅黑");
LODOP.SET_PRINT_STYLEA(0,"Bold",1);
LODOP.ADD_PRINT_TEXT(221,355,199,25,"Material:");
LODOP.SET_PRINT_STYLEA(0,"FontName","微软雅黑");
LODOP.SET_PRINT_STYLEA(0,"Bold",1);
// LODOP.ADD_PRINT_TEXT(240,278,277,25,"AWF04X(FS)+AMP-E");
// LODOP.SET_PRINT_STYLEA(0,"FontName","微软雅黑");
// LODOP.SET_PRINT_STYLEA(0,"FontSize",10);
// LODOP.SET_PRINT_STYLEA(0,"Bold",1);
LODOP.ADD_PRINT_TEXT(261,355,200,48,"Approvals:");
LODOP.SET_PRINT_STYLEA(0,"FontName","微软雅黑");
LODOP.SET_PRINT_STYLEA(0,"Bold",1);
LODOP.ADD_PRINT_LINE(321,352,320,525,0,2);
LODOP.ADD_PRINT_TEXT(322,355,198,20,"Job No.:"+"${boxNo}");
LODOP.SET_PRINT_STYLEA(0,"FontName","微软雅黑");
LODOP.SET_PRINT_STYLEA(0,"Bold",1);
LODOP.ADD_PRINT_TEXT(340,355,196,20,"Lot No:"+"${boxNo}");
LODOP.SET_PRINT_STYLEA(0,"FontName","微软雅黑");
LODOP.SET_PRINT_STYLEA(0,"Bold",1);
LODOP.ADD_PRINT_TEXT(221,444,106,20,"${rollTime3}");
LODOP.SET_PRINT_STYLEA(0,"FontName","微软雅黑");
LODOP.SET_PRINT_STYLEA(0,"Bold",1);
LODOP.ADD_PRINT_TEXT(150,20,136,20,"(W)Week Code:"+"${dateCode}");
LODOP.ADD_PRINT_BARCODE(165,20,96,15,"128A","${dateCode}");
LODOP.SET_PRINT_STYLEA(0,"ShowBarText",0);
LODOP.ADD_PRINT_TEXT(13,208,171,20,"Project:"+"${resource}");
LODOP.ADD_PRINT_BARCODE(30,208,98,15,"128A","${resource}");
LODOP.SET_PRINT_STYLEA(0,"ShowBarText",0);
LODOP.ADD_PRINT_TEXT(46,208,100,20,"Stage:MP");
LODOP.ADD_PRINT_BARCODE(62,208,89,15,"128A","MP");
LODOP.SET_PRINT_STYLEA(0,"ShowBarText",0);
LODOP.ADD_PRINT_TEXT(80,208,100,20,"Supplier:CCL");
LODOP.ADD_PRINT_BARCODE(97,208,94,15,"128A","CCL");
LODOP.SET_PRINT_STYLEA(0,"ShowBarText",0);
LODOP.ADD_PRINT_TEXT(116,208,100,20,"Config:NA");
LODOP.ADD_PRINT_BARCODE(133,208,82,15,"128A","NA");
LODOP.SET_PRINT_STYLEA(0,"ShowBarText",0);
LODOP.ADD_PRINT_TEXT(150,208,100,20,"Bin:");
LODOP.ADD_PRINT_TEXT(170,208,100,20,"WK-DC-QTY List");
LODOP.ADD_PRINT_RECT(211,282,36,26,0,1);
}
</script>
</#if>
</@printbase.layout>
</@printbase.layout>
Loading…
Cancel
Save