From cfdc93c0ac75476e72a1562fb671b7bae6e49c93 Mon Sep 17 00:00:00 2001 From: zhoujj <1549112868@qq.com> Date: Sun, 27 Apr 2025 17:03:44 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E5=AE=9C=E5=AE=BE=E4=B8=9C=E7=A3=81?= =?UTF-8?q?=E7=9A=84=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CartonLabelingMachineDeviceDriver.java | 179 ++++++- .../PrimaryDeviceConveyorDeviceDriver.java | 4 +- .../trapped_manipulator/ItemProtocol.java | 2 +- .../material/MaterialController.java | 5 + .../material/MdBaseMaterialService.java | 2 + .../service/material/dto/MdBaseMaterial.java | 20 + .../dto/mapper/MdBaseMaterialMapper.java | 2 + .../dto/mapper/MdBaseMaterialMapper.xml | 5 + .../impl/MdBaseMaterialServiceImpl.java | 458 ++++++++++++------ .../system/service/tickets/dto/Tickets.java | 17 +- .../tickets/impl/TicketsServiceImpl.java | 12 +- acs/nladmin-ui/babel.config.js | 8 +- .../src/views/acs/order/MaterialDialog.vue | 8 +- acs/nladmin-ui/src/views/acs/order/index.vue | 26 +- .../src/views/acs/order/material.vue | 23 + 15 files changed, 604 insertions(+), 167 deletions(-) diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/carton_labeling_machine/CartonLabelingMachineDeviceDriver.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/carton_labeling_machine/CartonLabelingMachineDeviceDriver.java index bdd6df9..d49e671 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/carton_labeling_machine/CartonLabelingMachineDeviceDriver.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/carton_labeling_machine/CartonLabelingMachineDeviceDriver.java @@ -45,6 +45,8 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * 纸箱贴标机 @@ -191,14 +193,17 @@ public class CartonLabelingMachineDeviceDriver extends AbstractOpcDeviceDriver i //客户 String customer = tickets.getCustomer(); //晶科送货单 - String shdnumber=tickets.getShdnumber(); + String shdnumber = tickets.getShdnumber(); //纸箱装瓶数量 String carton_qty = tickets.getCarton_qty(); //计划数量 String planned_quantity = tickets.getPlanned_quantity(); + //纸箱模板名称 + String carton_board=tickets.getCarton_board(); //晶科每罐重量 - String bottle_weight = null; + String bottle_weight = tickets.getBottle_weight(); Integer bottle_weight1 = 0; + Integer bottle_weight2 = Integer.parseInt(bottle_weight); //当前纸箱完成数量 String fcarton_number = tickets.getFcarton_number(); Integer fcarton_number1 = Integer.parseInt(fcarton_number); @@ -207,6 +212,50 @@ public class CartonLabelingMachineDeviceDriver extends AbstractOpcDeviceDriver i // Float carton_qty1 = Float.parseFloat(carton_qty); //总纸箱数 Integer sum_carton1 = (planned_quantity1 + carton_qty1 - 1) / carton_qty1; + //罐数 + Integer cartonnumber = 0; + //净重 + Integer standardweight = 0; + if (fcarton_number1 == 0) { + cartonnumber = carton_qty1 - (sum_carton1 * carton_qty1 - planned_quantity1); + } else { + cartonnumber = carton_qty1; + } + standardweight = cartonnumber * bottle_weight2; + //批次号 + String batch_number = tickets.getBatch_number(); + String pcn=""; + String pcy=""; + String pcr=""; + Integer yxy=0; + Integer yxn=0; + if(!customer.contains("马来韩华")&&!customer.contains("韩国韩华")) { + pcn = "20" + batch_number.substring(2, 4); + pcy = batch_number.substring(4, 6); + pcr = batch_number.substring(6, 8); + yxy = Integer.parseInt(pcy) + 6; + yxn = Integer.parseInt(pcn); + if (yxy > 12) { + yxn = yxn + 1; + yxy = yxy - 12; + } + } + //通威重量 + double roundedValue = 0.0; + if (!tickets.getIs_ice()) { + double lowerBound = 2.181; + double upperBound = 2.221; + // 生成随机值并映射到区间 [2.181, 2.221] + double randomValue = lowerBound + (upperBound - lowerBound) * Math.random(); + // 将结果四舍五入到三位小数 + roundedValue =Math.round(randomValue * 1000.0)*cartonnumber / 1000.0; + }else{ + double lowerBound = 2.921; + double upperBound = 3.021; + double randomValue = lowerBound + (upperBound - lowerBound) * Math.random(); + // 将结果四舍五入到三位小数 + roundedValue =Math.round(randomValue * 1000.0)*cartonnumber / 1000.0; + } //总纸箱数(Integer) //纸箱号 String carton_number = tickets.getCarton_number(); @@ -249,6 +298,28 @@ public class CartonLabelingMachineDeviceDriver extends AbstractOpcDeviceDriver i } last_number = last_number5; } + //眉山通威 + String real_zxdigits1=null; + String twcarton_number=null; + if (customer.contains("眉山通威")||customer.contains("宜宾东磁")) { + String zxletters = carton_number.replaceAll("\\d+$", ""); // 匹配并去掉末尾的数字 + String zxdigits = extractNumberAfterLastLetter(carton_number); // 匹配并取出末尾的数字部分 + Integer zxdigits1=Integer.parseInt(zxdigits)-real_carton; + if(zxdigits1<=9){ + real_zxdigits1="0"+String.valueOf(zxdigits1); + }else{ + real_zxdigits1=String.valueOf(zxdigits1); + } + twcarton_number=zxletters+real_zxdigits1; + } + //zx通威系统标准 + String real_zxdigits2=null; + if (carton_board.contains("通威系统标准")) { + String zxletters = carton_number.substring(0, 14); + String zxdigits = carton_number.substring(14, 18); + Integer zxdigits1=Integer.parseInt(zxdigits)-real_carton; + real_zxdigits2=zxletters+zxdigits1; + } //晶澳纸箱数据 String janumber = ""; if (customer.contains("晶澳")) { @@ -282,7 +353,7 @@ public class CartonLabelingMachineDeviceDriver extends AbstractOpcDeviceDriver i } else { for (Integer i = 0; i < carton_qty1; i++) { Integer last_number2 = Integer.parseInt(last_number); - last_number2 = (sum_carton1 - real_carton - 1) * 10 + i + 1; + last_number2 = (sum_carton1 - real_carton - 1) * carton_qty1 + i + 1; String last_number3 = String.valueOf(last_number2); if (last_number2 > 100) { last_number3 = String.valueOf(last_number2) + ",2;"; @@ -321,6 +392,11 @@ public class CartonLabelingMachineDeviceDriver extends AbstractOpcDeviceDriver i options.put("title", "日期: " + currentDate); printElement.put("options", options); } + if (options.get("testData").equals("jkdate")) { + LocalDate currentDate = LocalDate.now(); + options.put("title", "发货日期: " + currentDate); + printElement.put("options", options); + } if (options.get("testData").equals("weight")) { options.put("title", "重量: " + weight1 + "kg"); printElement.put("options", options); @@ -330,6 +406,67 @@ public class CartonLabelingMachineDeviceDriver extends AbstractOpcDeviceDriver i options.put("title", "箱号: " + sum_carton1 + "——" + real_carton); printElement.put("options", options); } + if (options.get("testData").equals("batchnumber")) { + options.put("title", "批号: " +tickets.getSmall_model()+"-"+tickets.getBatch_number()); + printElement.put("options", options); + } + //爱旭批次号 + if (options.get("testData").equals("axbatchnumber")) { + options.put("title", "批次号: " +tickets.getBatch_number()); + printElement.put("options", options); + } + if (options.get("testData").equals("model")) { + options.put("title", "型号: " +tickets.getModel()); + printElement.put("options", options); + } + //爱旭尺寸/规格 + if (options.get("testData").equals("ccgg")) { + options.put("title", "尺寸/规格: " +bottle_weight2+"*"+cartonnumber+"罐"); + printElement.put("options", options); + } + //爱旭数量 + if (options.get("testData").equals("axstandardweight")) { + options.put("title", "数量: " +standardweight+"KG"); + printElement.put("options", options); + } + //通威批号 + if (options.get("testData").equals("twbatchnumber")) { + options.put("title", "批号: " +tickets.getBatch()); + printElement.put("options", options); + } + //通威重量 + if (options.get("testData").equals("twweight")) { + options.put("title", "重量: " + roundedValue + "kg"); + printElement.put("options", options); + } + if (options.get("testData").equals("materialcode")) { + options.put("title", "物料编码: " +tickets.getMaterial_code()); + printElement.put("options", options); + } + if (options.get("testData").equals("materialname")) { + options.put("title", "物料名称: " +tickets.getMaterial_number()); + printElement.put("options", options); + } + if (options.get("testData").equals("cartonnumber")) { + options.put("title", "罐数: " +cartonnumber+"罐"); + printElement.put("options", options); + } + if (options.get("testData").equals("weightnumber")) { + options.put("title", "重量: " +cartonnumber+"罐"+"/"+standardweight+"KG"); + printElement.put("options", options); + } + if (options.get("testData").equals("standardweight")) { + options.put("title", "净重: " +standardweight+"KG"); + printElement.put("options", options); + } + if (options.get("testData").equals("productdate")) { + options.put("title", "生产日期: " +pcn+"."+pcy+"."+pcr); + printElement.put("options", options); + } + if (options.get("testData").equals("effective")) { + options.put("title", "生产日期: " +yxn+"."+yxy+"."+pcr); + printElement.put("options", options); + } if (options.get("testData").equals("纸箱号")) { log.info("纸箱号{}{}", first_number, last_number); String number = ""; @@ -346,6 +483,16 @@ public class CartonLabelingMachineDeviceDriver extends AbstractOpcDeviceDriver i options.put("testData", number); printElement.put("options", options); } + if (options.get("testData").equals("眉山通威纸箱号")) { + options.put("title", twcarton_number); + options.put("testData", twcarton_number); + printElement.put("options", options); + } + if (options.get("testData").equals("宜宾东磁纸箱号")) { + options.put("title", "纸箱号:"+twcarton_number); + options.put("testData", twcarton_number); + printElement.put("options", options); + } if (options.get("testData").equals("晶澳纸箱号")) { log.info("晶澳纸箱号{}{}", janumber); String number = janumber; @@ -424,7 +571,7 @@ public class CartonLabelingMachineDeviceDriver extends AbstractOpcDeviceDriver i psletters = bottle_number.substring(0, 20); psdigits = bottle_number.substring(20, 23); psdigits1 = Integer.parseInt(psdigits) - fbottle_number1; - if(psdigits1>100){ + if(psdigits1>=100){ psdigits=String.valueOf(psdigits1); }else if(psdigits1>=10){ psdigits="0"+ psdigits1; @@ -446,6 +593,15 @@ public class CartonLabelingMachineDeviceDriver extends AbstractOpcDeviceDriver i psdigits = "00" + String.valueOf(psdigits1); } } + //通威瓶盖 + long real_psdigits1 = 0; // 赋初值为0 + String twpg=null; + if (customer.contains("眉山通威")) { + psletters = bottle_number.substring(0,4); + psdigits = bottle_number.substring(4,15); + real_psdigits1=Long.valueOf(psdigits)-fbottle_number1; + twpg=psletters+real_psdigits1; + } String jsonString = template.toString(); ObjectMapper objectMapper = new ObjectMapper(); // 解析外部 JSON 字符串,获取 "template" 字段的值 @@ -478,6 +634,10 @@ public class CartonLabelingMachineDeviceDriver extends AbstractOpcDeviceDriver i options.put("testData", number1 + ",2"); printElement.put("options", options); } + else if (options.get("testData").equals("通威瓶号")) { + options.put("testData", twpg); + printElement.put("options", options); + } } else { continue; } @@ -493,7 +653,6 @@ public class CartonLabelingMachineDeviceDriver extends AbstractOpcDeviceDriver i ticketsMapper.updateById(tickets); Map map = new HashMap(); map.put("to_command", 200); - map.put("to_message", ""); this.writing(map); } else { message = "无请求"; @@ -575,7 +734,17 @@ public class CartonLabelingMachineDeviceDriver extends AbstractOpcDeviceDriver i public String toString() { return ""; } + public static String extractNumberAfterLastLetter(String input) { + // 正则表达式:匹配最后一个字母后面的数字 + Pattern pattern = Pattern.compile("[a-zA-Z]([0-9]+)$"); + Matcher matcher = pattern.matcher(input); + if (matcher.find()) { + return matcher.group(1); // 返回匹配的数字部分 + } + + return ""; // 如果没有匹配到数字,返回空字符串 + } @Override public JSONObject getDeviceStatusName() throws Exception { diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/primary_device/PrimaryDeviceConveyorDeviceDriver.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/primary_device/PrimaryDeviceConveyorDeviceDriver.java index cb7e388..75b5fbb 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/primary_device/PrimaryDeviceConveyorDeviceDriver.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/primary_device/PrimaryDeviceConveyorDeviceDriver.java @@ -161,7 +161,7 @@ public class PrimaryDeviceConveyorDeviceDriver extends AbstractOpcDeviceDriver i int flag; String device_code; - + int to_labeling = 0; String vehicle_code; String last_vehicle_code; @@ -176,7 +176,7 @@ public class PrimaryDeviceConveyorDeviceDriver extends AbstractOpcDeviceDriver i try { mode = this.itemProtocol.getMode(); - + to_labeling=itemProtocol.getTo_labeling(); if (mode != last_mode) { requireSucess = false; } diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/trapped_manipulator/ItemProtocol.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/trapped_manipulator/ItemProtocol.java index 962bf67..1955166 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/trapped_manipulator/ItemProtocol.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/trapped_manipulator/ItemProtocol.java @@ -168,7 +168,7 @@ public class ItemProtocol { list.add(new ItemDto(item_to_command, "下发命令", "DB2.W0")); list.add(new ItemDto(item_to_target, "下发目标站", "DB2.W4")); list.add(new ItemDto(item_to_task, "下发任务号", "DB2.D6")); - list.add(new ItemDto(item_to_onset, "下发起始站", "DB2.W2")); + list.add(new ItemDto(item_to_onset, "下发起始站", "DB2.W2")); list.add(new ItemDto(item_to_container_type, "下发托盘类型", "DB102.B8")); list.add(new ItemDto(item_to_length, "木箱长度", "DB601.W10")); list.add(new ItemDto(item_to_weight, "木箱宽度", "DB601.W12")); diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/material/MaterialController.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/material/MaterialController.java index e4dee8c..b7aa1d6 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/material/MaterialController.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/material/MaterialController.java @@ -79,4 +79,9 @@ public class MaterialController { public void doExport1(HttpServletResponse response) throws IOException { materialService.doExport1(response); } + @Log("导出东磁报表") + @GetMapping(value = "/doExport2") + public void doExport2(HttpServletResponse response) throws IOException { + materialService.doExport2(response); + } } diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/material/MdBaseMaterialService.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/material/MdBaseMaterialService.java index 2f5823b..cf45630 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/material/MdBaseMaterialService.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/material/MdBaseMaterialService.java @@ -54,4 +54,6 @@ public interface MdBaseMaterialService extends IService { void doExport(HttpServletResponse response) throws IOException; void doExport1(HttpServletResponse response) throws IOException; + + void doExport2(HttpServletResponse response) throws IOException; } diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/material/dto/MdBaseMaterial.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/material/dto/MdBaseMaterial.java index 5314ac1..031665e 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/material/dto/MdBaseMaterial.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/material/dto/MdBaseMaterial.java @@ -68,6 +68,26 @@ public class MdBaseMaterial { * */ private String carton_number; + /** + *型号 + * + */ + private String model; + /** + *批号 + * + */ + private String batch; + /** + *物料编码 + * + */ + private String material_code; + /** + *物料名称 + * + */ + private String material_number; /** * 纸箱装瓶数量 * diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/material/dto/mapper/MdBaseMaterialMapper.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/material/dto/mapper/MdBaseMaterialMapper.java index 9c6711d..228b77c 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/material/dto/mapper/MdBaseMaterialMapper.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/material/dto/mapper/MdBaseMaterialMapper.java @@ -12,4 +12,6 @@ public interface MdBaseMaterialMapper extends BaseMapper { List mstwmaterials(); //晶科物料信息 List jkmaterials(); + //东磁物料信息 + List dcmaterials(); } diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/material/dto/mapper/MdBaseMaterialMapper.xml b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/material/dto/mapper/MdBaseMaterialMapper.xml index 2428531..ca38bbc 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/material/dto/mapper/MdBaseMaterialMapper.xml +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/material/dto/mapper/MdBaseMaterialMapper.xml @@ -17,4 +17,9 @@ FROM `md_base_material` WHERE customer LIKE ('%晶科%') + \ No newline at end of file diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/material/impl/MdBaseMaterialServiceImpl.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/material/impl/MdBaseMaterialServiceImpl.java index c2c3c74..f188e6c 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/material/impl/MdBaseMaterialServiceImpl.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/material/impl/MdBaseMaterialServiceImpl.java @@ -45,6 +45,7 @@ import java.util.regex.Pattern; public class MdBaseMaterialServiceImpl extends ServiceImpl implements MdBaseMaterialService { @Autowired private MdBaseMaterialMapper mdBaseMaterialMapper; + @Override public IPage queryAll(Map whereJson, PageQuery page) { Boolean is_used = ObjectUtil.isNotEmpty(whereJson.get("is_used")) @@ -57,10 +58,10 @@ public class MdBaseMaterialServiceImpl extends ServiceImpl lam = new LambdaQueryWrapper<>(); lam.like(ObjectUtil.isNotEmpty(customer), MdBaseMaterial::getCustomer, customer) .eq(ObjectUtil.isNotEmpty(large_model), MdBaseMaterial::getLarge_model, large_model) @@ -73,6 +74,7 @@ public class MdBaseMaterialServiceImpl extends ServiceImpl ids) { // 真删除 mdBaseMaterialMapper.deleteBatchIds(ids); } + @Override @Transactional(rollbackFor = Exception.class) public void excelImport(MultipartFile file, HttpServletRequest request) { @@ -129,119 +134,207 @@ public class MdBaseMaterialServiceImpl extends ServiceImpl mstwmaterials=mdBaseMaterialMapper.mstwmaterials(); + List mstwmaterials = mdBaseMaterialMapper.mstwmaterials(); LocalDate currentDate = LocalDate.now(); List> list = new ArrayList<>(); - for(MdBaseMaterial MdBaseMaterial:mstwmaterials){ + for (MdBaseMaterial MdBaseMaterial : mstwmaterials) { //该批次数量 - Integer pznum=Integer.parseInt(MdBaseMaterial.getSum_qty()); - if(pznum==0){ + Integer pznum = Integer.parseInt(MdBaseMaterial.getSum_qty()); + if (pznum == 0) { continue; } - Integer carton_qty=Integer.parseInt(MdBaseMaterial.getCarton_qty()); - Integer real_carton_qty=0; - Integer real_carton_number=0;//当前箱号 + Integer carton_qty = Integer.parseInt(MdBaseMaterial.getCarton_qty()); + Integer real_carton_qty = 0; + Integer real_carton_number = 0;//当前箱号 // Integer zxnumber=pznum/carton_qty; - String bottle_number=MdBaseMaterial.getBottle_number(); - String carton_number=MdBaseMaterial.getCarton_number(); - String large_model=MdBaseMaterial.getLarge_model(); - String small_model=MdBaseMaterial.getSmall_model(); - String batch_number=MdBaseMaterial.getBatch_number(); - Integer weishu=MdBaseMaterial.getSum_qty().length(); - String psletters = bottle_number.substring(0,4); - String psdigits = bottle_number.substring(4,15); - String year=bottle_number.substring(3,5); - String month=bottle_number.substring(5,7); - String day=bottle_number.substring(7,9); + String bottle_number = MdBaseMaterial.getBottle_number(); + String carton_number = MdBaseMaterial.getCarton_number(); + String large_model = MdBaseMaterial.getLarge_model(); + String small_model = MdBaseMaterial.getSmall_model(); + String batch_number = MdBaseMaterial.getBatch_number(); + Integer weishu = MdBaseMaterial.getSum_qty().length(); + String psletters = bottle_number.substring(0, 4); + String psdigits = bottle_number.substring(4, 15); + String year = bottle_number.substring(3, 5); + String month = bottle_number.substring(5, 7); + String day = bottle_number.substring(7, 9); String zxletters = carton_number.replaceAll("\\d+$", ""); // 匹配并去掉末尾的数字 String zxdigits = extractNumberAfterLastLetter(carton_number); // 匹配并取出末尾的数字部分 //总纸箱数 - Integer sum_carton1 = (pznum+carton_qty-1)/carton_qty; - for(int i=0;i map = new LinkedHashMap<>(); - if(real_carton_qty12){ - month1=month1-12; + Long real_psdigits = Long.valueOf(psdigits) + i - pznum + 1; + map.put("单枚号/瓶号/包号", psletters + real_psdigits); + map.put("规格型号", large_model + "-" + small_model); + map.put("批号", small_model + "-" + batch_number); + map.put("数量", "2"); + map.put("供应商", "帝科"); + map.put("生产日期(yyyy/MM/dd)", "20" + year + "/" + month + "/" + day); + Integer month1 = Integer.parseInt(month); + month1 = month1 + 6; + if (month1 > 12) { + month1 = month1 - 12; } - map.put("有效日期(yyyy/MM/dd)","20"+year+"/"+month+"/"+day); + map.put("有效日期(yyyy/MM/dd)", "20" + year + "/" + month + "/" + day); // 获取当前日期 LocalDate currentDate1 = LocalDate.now(); @@ -250,101 +343,102 @@ public class MdBaseMaterialServiceImpl extends ServiceImpl jkmaterials=mdBaseMaterialMapper.jkmaterials(); + List jkmaterials = mdBaseMaterialMapper.jkmaterials(); LocalDate currentDate = LocalDate.now(); List> list = new ArrayList<>(); - for(MdBaseMaterial MdBaseMaterial:jkmaterials){ - Integer pzweight=Integer.parseInt(MdBaseMaterial.getWeight()); - Integer pznum=Integer.parseInt(MdBaseMaterial.getSum_qty()); - if(pznum==0){ + for (MdBaseMaterial MdBaseMaterial : jkmaterials) { + Integer pzweight = Integer.parseInt(MdBaseMaterial.getWeight()); + Integer pznum = Integer.parseInt(MdBaseMaterial.getSum_qty()); + if (pznum == 0) { continue; } - Integer carton_qty=Integer.parseInt(MdBaseMaterial.getCarton_qty()); - Integer real_carton_qty=0; - Integer real_carton_number=0;//当前箱号 + Integer carton_qty = Integer.parseInt(MdBaseMaterial.getCarton_qty()); + Integer real_carton_qty = 0; + Integer real_carton_number = 0;//当前箱号 //单重 - Integer wt=0; + Integer wt = 0; //整箱总重 - Integer wtsum=0; - if(pzweight.equals(pznum)){ - wt=1; - wtsum=wt*carton_qty; - }else{ - wt=2; - wtsum=wt*carton_qty; + Integer wtsum = 0; + if (pzweight.equals(pznum)) { + wt = 1; + wtsum = wt * carton_qty; + } else { + wt = 2; + wtsum = wt * carton_qty; } // Integer zxnumber=pznum/carton_qty; - String bottle_number=MdBaseMaterial.getBottle_number(); - String carton_number=MdBaseMaterial.getCarton_number(); - String large_model=MdBaseMaterial.getLarge_model(); - String small_model=MdBaseMaterial.getSmall_model(); - String batch_number=MdBaseMaterial.getBatch_number(); - String customer=MdBaseMaterial.getCustomer(); - String psletters = bottle_number.substring(0,20); - String psdigits = bottle_number.substring(20,23); - String zxletters = carton_number.substring(0,18); - String zx1 = carton_number.substring(18,20); - String zx2 = carton_number.substring(20,23); - String zxdigits = carton_number.substring(23,33); + String bottle_number = MdBaseMaterial.getBottle_number(); + String carton_number = MdBaseMaterial.getCarton_number(); + String large_model = MdBaseMaterial.getLarge_model(); + String small_model = MdBaseMaterial.getSmall_model(); + String batch_number = MdBaseMaterial.getBatch_number(); + String customer = MdBaseMaterial.getCustomer(); + String psletters = bottle_number.substring(0, 20); + String psdigits = bottle_number.substring(20, 23); + String zxletters = carton_number.substring(0, 18); + String zx1 = carton_number.substring(18, 20); + String zx2 = carton_number.substring(20, 23); + String zxdigits = carton_number.substring(23, 33); //总纸箱数 - Integer sum_carton1 = (pznum+carton_qty-1)/carton_qty; - for(int i=0;i map = new LinkedHashMap<>(); - if(real_carton_qty(sum_carton1-1)*carton_qty-1) { - map.put("托号(必填)", zxletters + zx1+zx2+real_zxdigits1); - map.put("箱号(必填)", zxletters + zx1+zx2+real_zxdigits1); - }else { - if(wtsum>9) { + Long real_zxdigits = Long.valueOf(zxdigits) + real_carton_number - sum_carton1 + 1; + String real_zxdigits1 = String.valueOf(real_zxdigits); + if (i > (sum_carton1 - 1) * carton_qty - 1) { + map.put("托号(必填)", zxletters + zx1 + zx2 + real_zxdigits1); + map.put("箱号(必填)", zxletters + zx1 + zx2 + real_zxdigits1); + } else { + if (wtsum > 9) { map.put("托号(必填)", zxletters + wtsum + zx2 + real_zxdigits1); map.put("箱号(必填)", zxletters + wtsum + zx2 + real_zxdigits1); - }else{ - map.put("托号(必填)", zxletters + "0" + wtsum + zx2 + real_zxdigits1); - map.put("箱号(必填)", zxletters + "0" + wtsum + zx2 + real_zxdigits1); - } + } else { + map.put("托号(必填)", zxletters + "0" + wtsum + zx2 + real_zxdigits1); + map.put("箱号(必填)", zxletters + "0" + wtsum + zx2 + real_zxdigits1); + } } - Integer real_psdigits=Integer.parseInt(psdigits)+i-pznum+1; - if(real_psdigits>=100){ - map.put("包号(选填)",psletters+real_psdigits); - } else if(real_psdigits>=10){ - map.put("包号(选填)",psletters+"0"+real_psdigits); - }else if(real_psdigits>0){ - map.put("包号(选填)",psletters+"00"+real_psdigits); + Integer real_psdigits = Integer.parseInt(psdigits) + i - pznum + 1; + if (real_psdigits >= 100) { + map.put("包号(选填)", psletters + real_psdigits); + } else if (real_psdigits >= 10) { + map.put("包号(选填)", psletters + "0" + real_psdigits); + } else if (real_psdigits > 0) { + map.put("包号(选填)", psletters + "00" + real_psdigits); } - if(wt==1){ - map.put("包实装货物数","1"); - }else if(wt==2){ - if(i==pznum-1&&pzweight % 2 == 1 ){ - map.put("包实装货物数","1"); - } - else{ - map.put("包实装货物数","2"); + if (wt == 1) { + map.put("包实装货物数", "1"); + } else if (wt == 2) { + if (i == pznum - 1 && pzweight % 2 == 1) { + map.put("包实装货物数", "1"); + } else { + map.put("包实装货物数", "2"); } } - map.put("批号",small_model+"-"+batch_number); - map.put("发运数量",String.valueOf(pzweight)); - map.put("客户",customer); + map.put("批号", small_model + "-" + batch_number); + map.put("发运数量", String.valueOf(pzweight)); + map.put("客户", customer); list.add(map); } } FileUtil.downloadExcel(list, response); } + public static String extractNumberAfterLastLetter(String input) { // 正则表达式:匹配最后一个字母后面的数字 Pattern pattern = Pattern.compile("[a-zA-Z]([0-9]+)$"); @@ -356,4 +450,74 @@ public class MdBaseMaterialServiceImpl extends ServiceImpl dcmaterials = mdBaseMaterialMapper.dcmaterials(); + LocalDate currentDate = LocalDate.now(); + List> list = new ArrayList<>(); + for (MdBaseMaterial MdBaseMaterial : dcmaterials) { + Integer pzweight = Integer.parseInt(MdBaseMaterial.getWeight()); + Integer pznum = Integer.parseInt(MdBaseMaterial.getSum_qty()); + //物料编码 + String material_code = MdBaseMaterial.getMaterial_code(); + //物料描述 + String material_number = MdBaseMaterial.getMaterial_number(); + //箱号 + String carton_number = MdBaseMaterial.getCarton_number(); + String zxletters = carton_number.replaceAll("\\d+$", ""); // 匹配并去掉末尾的数字 + String zxdigits = extractNumberAfterLastLetter(carton_number); // 匹配并取出末尾的数字部分 + if (pznum == 0) { + continue; + } + Integer carton_qty = Integer.parseInt(MdBaseMaterial.getCarton_qty()); + String bottle_number = MdBaseMaterial.getBottle_number(); + Long bottle_number1 = Long.valueOf(bottle_number); + //单重 + Integer wt = 0; + //整箱总重 + Integer wtsum = 0; + //总纸箱数 + Integer sum_carton1 = (pznum + carton_qty - 1) / carton_qty; + //最后一箱瓶数量 + Integer last_carton_number = pznum - (sum_carton1 - 1) * carton_qty; + Integer real_carton_qty = 0; + //当前箱号 + Integer real_carton_number = 0; + if (pzweight.equals(pznum)) { + wt = 1; + wtsum = wt * carton_qty; + } else { + wt = 2; + wtsum = wt * carton_qty; + } + for (int i = 0; i < pznum; i++) { + Map map = new LinkedHashMap<>(); + if (real_carton_qty < carton_qty) { + real_carton_qty++; + } else { + real_carton_qty = 1; + real_carton_number++; + } + Integer real_zxdigits = Integer.parseInt(zxdigits) + real_carton_number - sum_carton1 + 1; + String real_zxdigits1 = null; + if (real_zxdigits <= 9) { + real_zxdigits1 = "0" + String.valueOf(real_zxdigits); + } else { + real_zxdigits1 = String.valueOf(real_zxdigits); + } + map.put("物料编码", material_code); + map.put("物料描述", material_number); + map.put("箱号", zxletters + real_zxdigits1); + map.put("罐子编码", String.valueOf(bottle_number1 - pznum + i + 1)); + if (real_carton_number + 1 == sum_carton1) { + map.put("数量", last_carton_number * wt); + } else { + map.put("数量", carton_qty * wt); + } + list.add(map); + } + } + FileUtil.downloadExcel(list, response); + } } diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/tickets/dto/Tickets.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/tickets/dto/Tickets.java index 265decf..005ac29 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/tickets/dto/Tickets.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/tickets/dto/Tickets.java @@ -121,7 +121,22 @@ public class Tickets { * 纸箱类型 */ private String carton_form; - + /** + * 型号 + */ + private String model; + /** + * 批号 + */ + private String batch; + /** + * 物料编码 + */ + private String material_code; + /** + * 物料名称 + */ + private String material_number; /** * 创建者 */ diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/tickets/impl/TicketsServiceImpl.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/tickets/impl/TicketsServiceImpl.java index f415190..47bfc20 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/tickets/impl/TicketsServiceImpl.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/tickets/impl/TicketsServiceImpl.java @@ -105,6 +105,9 @@ public class TicketsServiceImpl extends ServiceImpl impl if(!StrUtil.isNotBlank(planned_quantity)){ throw new BadRequestException("未填写计划数量"); } + if(!StrUtil.isNotBlank(bottle_weight)){ + throw new BadRequestException("未填每罐重量"); + } if(!StrUtil.isNotBlank(carton_board)){ throw new BadRequestException("未填写纸箱关联标签模板"); } @@ -118,9 +121,7 @@ public class TicketsServiceImpl extends ServiceImpl impl if(carton_number.length()!=33){ throw new BadRequestException("纸箱号不对"); } - if(!StrUtil.isNotBlank(bottle_weight)){ - throw new BadRequestException("未填晶科每罐重量"); - }if(!StrUtil.isNotBlank(shdnumber)){ + if(!StrUtil.isNotBlank(shdnumber)){ throw new BadRequestException("未填送货单"); } @@ -156,10 +157,13 @@ public class TicketsServiceImpl extends ServiceImpl impl Device device = deviceAppService.findDeviceByCode("ZPLC"); if(device.getDeviceDriver() instanceof PrimaryDeviceConveyorDeviceDriver) { PrimaryDeviceConveyorDeviceDriver primary = (PrimaryDeviceConveyorDeviceDriver) device.getDeviceDriver(); + Integer number=Integer.parseInt(entity.getCarton_qty()); + if(primary.getTo_labeling()!=number){ + throw new BadRequestException("当前所下发工单每箱数量数据不对"); + } Map map = new LinkedHashMap<>(); map.put("to_order_No", entity.getTicket_id()); map.put("to_ice",entity.getIs_ice()); - map.put("to_labeling",entity.getCarton_qty()); map.put("to_qty",entity.getPlanned_quantity()); if(StrUtil.isBlank(entity.getBottle_board())){ map.put("is_printbottle",0); diff --git a/acs/nladmin-ui/babel.config.js b/acs/nladmin-ui/babel.config.js index df1fdb8..47d9dbf 100644 --- a/acs/nladmin-ui/babel.config.js +++ b/acs/nladmin-ui/babel.config.js @@ -1,8 +1,8 @@ const plugins = ['@vue/babel-plugin-transform-vue-jsx'] -// 生产环境移除console -if (process.env.NODE_ENV === 'production') { - plugins.push('transform-remove-console') -} +// // 生产环境移除console +// if (process.env.NODE_ENV === 'production') { +// plugins.push('transform-remove-console') +// } module.exports = { plugins: [ ...plugins, diff --git a/acs/nladmin-ui/src/views/acs/order/MaterialDialog.vue b/acs/nladmin-ui/src/views/acs/order/MaterialDialog.vue index 7645366..dedf817 100644 --- a/acs/nladmin-ui/src/views/acs/order/MaterialDialog.vue +++ b/acs/nladmin-ui/src/views/acs/order/MaterialDialog.vue @@ -100,8 +100,12 @@ - - + + + + + + diff --git a/acs/nladmin-ui/src/views/acs/order/index.vue b/acs/nladmin-ui/src/views/acs/order/index.vue index 89dc02b..0be45cb 100644 --- a/acs/nladmin-ui/src/views/acs/order/index.vue +++ b/acs/nladmin-ui/src/views/acs/order/index.vue @@ -81,6 +81,18 @@ + + + + + + + + + + + + @@ -90,7 +102,7 @@ - + @@ -396,6 +408,10 @@ export default { is_ice: null, is_labeling: null, weight_ok: null, + model: null, + batch: null, + material_code: null, + material_name: null, ticket_status: null }, form1: { @@ -419,6 +435,10 @@ export default { is_ice: null, is_labeling: null, weight_ok: null, + model: null, + batch: null, + material_code: null, + material_name: null, ticket_status: null }, originalForm: {}, @@ -544,6 +564,10 @@ export default { this.form.carton_number=row.carton_number this.form.carton_qty=row.carton_qty this.form.shdnumber=row.shdnumber + this.form.model=row.model + this.form.batch=row.batch + this.form.material_code=row.material_code + this.form.material_number=row.material_number } }, handleDateTimeChange() { diff --git a/acs/nladmin-ui/src/views/acs/order/material.vue b/acs/nladmin-ui/src/views/acs/order/material.vue index cff3c92..b4099d3 100644 --- a/acs/nladmin-ui/src/views/acs/order/material.vue +++ b/acs/nladmin-ui/src/views/acs/order/material.vue @@ -97,6 +97,16 @@ :loading="downloadLoading" @click="doExport1" >导出晶科报表 + + 导出东磁报表 + + + +