Browse Source

add 宜宾东磁的导出

master
zhoujj 2 months ago
parent
commit
cfdc93c0ac
  1. 177
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/carton_labeling_machine/CartonLabelingMachineDeviceDriver.java
  2. 4
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/primary_device/PrimaryDeviceConveyorDeviceDriver.java
  3. 5
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/material/MaterialController.java
  4. 2
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/material/MdBaseMaterialService.java
  5. 20
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/material/dto/MdBaseMaterial.java
  6. 2
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/material/dto/mapper/MdBaseMaterialMapper.java
  7. 5
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/material/dto/mapper/MdBaseMaterialMapper.xml
  8. 194
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/material/impl/MdBaseMaterialServiceImpl.java
  9. 17
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/tickets/dto/Tickets.java
  10. 12
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/tickets/impl/TicketsServiceImpl.java
  11. 8
      acs/nladmin-ui/babel.config.js
  12. 8
      acs/nladmin-ui/src/views/acs/order/MaterialDialog.vue
  13. 26
      acs/nladmin-ui/src/views/acs/order/index.vue
  14. 23
      acs/nladmin-ui/src/views/acs/order/material.vue

177
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.LocalDateTime;
import java.time.LocalTime; import java.time.LocalTime;
import java.util.*; import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/** /**
* 纸箱贴标机 * 纸箱贴标机
@ -196,9 +198,12 @@ public class CartonLabelingMachineDeviceDriver extends AbstractOpcDeviceDriver i
String carton_qty = tickets.getCarton_qty(); String carton_qty = tickets.getCarton_qty();
//计划数量 //计划数量
String planned_quantity = tickets.getPlanned_quantity(); 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_weight1 = 0;
Integer bottle_weight2 = Integer.parseInt(bottle_weight);
//当前纸箱完成数量 //当前纸箱完成数量
String fcarton_number = tickets.getFcarton_number(); String fcarton_number = tickets.getFcarton_number();
Integer fcarton_number1 = Integer.parseInt(fcarton_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); // Float carton_qty1 = Float.parseFloat(carton_qty);
//总纸箱数 //总纸箱数
Integer sum_carton1 = (planned_quantity1 + carton_qty1 - 1) / carton_qty1; 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) //总纸箱数(Integer)
//纸箱号 //纸箱号
String carton_number = tickets.getCarton_number(); String carton_number = tickets.getCarton_number();
@ -249,6 +298,28 @@ public class CartonLabelingMachineDeviceDriver extends AbstractOpcDeviceDriver i
} }
last_number = last_number5; 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 = ""; String janumber = "";
if (customer.contains("晶澳")) { if (customer.contains("晶澳")) {
@ -282,7 +353,7 @@ public class CartonLabelingMachineDeviceDriver extends AbstractOpcDeviceDriver i
} else { } else {
for (Integer i = 0; i < carton_qty1; i++) { for (Integer i = 0; i < carton_qty1; i++) {
Integer last_number2 = Integer.parseInt(last_number); 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); String last_number3 = String.valueOf(last_number2);
if (last_number2 > 100) { if (last_number2 > 100) {
last_number3 = String.valueOf(last_number2) + ",2;"; last_number3 = String.valueOf(last_number2) + ",2;";
@ -321,6 +392,11 @@ public class CartonLabelingMachineDeviceDriver extends AbstractOpcDeviceDriver i
options.put("title", "日期: " + currentDate); options.put("title", "日期: " + currentDate);
printElement.put("options", options); 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")) { if (options.get("testData").equals("weight")) {
options.put("title", "重量: " + weight1 + "kg"); options.put("title", "重量: " + weight1 + "kg");
printElement.put("options", options); printElement.put("options", options);
@ -330,6 +406,67 @@ public class CartonLabelingMachineDeviceDriver extends AbstractOpcDeviceDriver i
options.put("title", "箱号: " + sum_carton1 + "——" + real_carton); options.put("title", "箱号: " + sum_carton1 + "——" + real_carton);
printElement.put("options", options); 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("纸箱号")) { if (options.get("testData").equals("纸箱号")) {
log.info("纸箱号{}{}", first_number, last_number); log.info("纸箱号{}{}", first_number, last_number);
String number = ""; String number = "";
@ -346,6 +483,16 @@ public class CartonLabelingMachineDeviceDriver extends AbstractOpcDeviceDriver i
options.put("testData", number); options.put("testData", number);
printElement.put("options", options); 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("晶澳纸箱号")) { if (options.get("testData").equals("晶澳纸箱号")) {
log.info("晶澳纸箱号{}{}", janumber); log.info("晶澳纸箱号{}{}", janumber);
String number = janumber; String number = janumber;
@ -424,7 +571,7 @@ public class CartonLabelingMachineDeviceDriver extends AbstractOpcDeviceDriver i
psletters = bottle_number.substring(0, 20); psletters = bottle_number.substring(0, 20);
psdigits = bottle_number.substring(20, 23); psdigits = bottle_number.substring(20, 23);
psdigits1 = Integer.parseInt(psdigits) - fbottle_number1; psdigits1 = Integer.parseInt(psdigits) - fbottle_number1;
if(psdigits1>100){ if(psdigits1>=100){
psdigits=String.valueOf(psdigits1); psdigits=String.valueOf(psdigits1);
}else if(psdigits1>=10){ }else if(psdigits1>=10){
psdigits="0"+ psdigits1; psdigits="0"+ psdigits1;
@ -446,6 +593,15 @@ public class CartonLabelingMachineDeviceDriver extends AbstractOpcDeviceDriver i
psdigits = "00" + String.valueOf(psdigits1); 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(); String jsonString = template.toString();
ObjectMapper objectMapper = new ObjectMapper(); ObjectMapper objectMapper = new ObjectMapper();
// 解析外部 JSON 字符串,获取 "template" 字段的值 // 解析外部 JSON 字符串,获取 "template" 字段的值
@ -478,6 +634,10 @@ public class CartonLabelingMachineDeviceDriver extends AbstractOpcDeviceDriver i
options.put("testData", number1 + ",2"); options.put("testData", number1 + ",2");
printElement.put("options", options); printElement.put("options", options);
} }
else if (options.get("testData").equals("通威瓶号")) {
options.put("testData", twpg);
printElement.put("options", options);
}
} else { } else {
continue; continue;
} }
@ -493,7 +653,6 @@ public class CartonLabelingMachineDeviceDriver extends AbstractOpcDeviceDriver i
ticketsMapper.updateById(tickets); ticketsMapper.updateById(tickets);
Map map = new HashMap(); Map map = new HashMap();
map.put("to_command", 200); map.put("to_command", 200);
map.put("to_message", "");
this.writing(map); this.writing(map);
} else { } else {
message = "无请求"; message = "无请求";
@ -575,7 +734,17 @@ public class CartonLabelingMachineDeviceDriver extends AbstractOpcDeviceDriver i
public String toString() { public String toString() {
return ""; 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 @Override
public JSONObject getDeviceStatusName() throws Exception { public JSONObject getDeviceStatusName() throws Exception {

4
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; int flag;
String device_code; String device_code;
int to_labeling = 0;
String vehicle_code; String vehicle_code;
String last_vehicle_code; String last_vehicle_code;
@ -176,7 +176,7 @@ public class PrimaryDeviceConveyorDeviceDriver extends AbstractOpcDeviceDriver i
try { try {
mode = this.itemProtocol.getMode(); mode = this.itemProtocol.getMode();
to_labeling=itemProtocol.getTo_labeling();
if (mode != last_mode) { if (mode != last_mode) {
requireSucess = false; requireSucess = false;
} }

5
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 { public void doExport1(HttpServletResponse response) throws IOException {
materialService.doExport1(response); materialService.doExport1(response);
} }
@Log("导出东磁报表")
@GetMapping(value = "/doExport2")
public void doExport2(HttpServletResponse response) throws IOException {
materialService.doExport2(response);
}
} }

2
acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/material/MdBaseMaterialService.java

@ -54,4 +54,6 @@ public interface MdBaseMaterialService extends IService<MdBaseMaterial> {
void doExport(HttpServletResponse response) throws IOException; void doExport(HttpServletResponse response) throws IOException;
void doExport1(HttpServletResponse response) throws IOException; void doExport1(HttpServletResponse response) throws IOException;
void doExport2(HttpServletResponse response) throws IOException;
} }

20
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 carton_number;
/**
*型号
*
*/
private String model;
/**
*批号
*
*/
private String batch;
/**
*物料编码
*
*/
private String material_code;
/**
*物料名称
*
*/
private String material_number;
/** /**
* 纸箱装瓶数量 * 纸箱装瓶数量
* *

2
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<MdBaseMaterial> {
List<MdBaseMaterial> mstwmaterials(); List<MdBaseMaterial> mstwmaterials();
//晶科物料信息 //晶科物料信息
List<MdBaseMaterial> jkmaterials(); List<MdBaseMaterial> jkmaterials();
//东磁物料信息
List<MdBaseMaterial> dcmaterials();
} }

5
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` FROM `md_base_material`
WHERE customer LIKE ('%晶科%') WHERE customer LIKE ('%晶科%')
</select> </select>
<select id="dcmaterials" resultType="org.nl.system.service.material.dto.MdBaseMaterial">
SELECT *
FROM `md_base_material`
WHERE customer LIKE ('%东磁%')
</select>
</mapper> </mapper>

194
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<MdBaseMaterialMapper, MdBaseMaterial> implements MdBaseMaterialService { public class MdBaseMaterialServiceImpl extends ServiceImpl<MdBaseMaterialMapper, MdBaseMaterial> implements MdBaseMaterialService {
@Autowired @Autowired
private MdBaseMaterialMapper mdBaseMaterialMapper; private MdBaseMaterialMapper mdBaseMaterialMapper;
@Override @Override
public IPage<MdBaseMaterial> queryAll(Map whereJson, PageQuery page) { public IPage<MdBaseMaterial> queryAll(Map whereJson, PageQuery page) {
Boolean is_used = ObjectUtil.isNotEmpty(whereJson.get("is_used")) Boolean is_used = ObjectUtil.isNotEmpty(whereJson.get("is_used"))
@ -73,6 +74,7 @@ public class MdBaseMaterialServiceImpl extends ServiceImpl<MdBaseMaterialMapper,
mdBaseMaterialMapper.selectPage(pages, lam); mdBaseMaterialMapper.selectPage(pages, lam);
return pages; return pages;
} }
@Override @Override
public void create(MdBaseMaterial entity) { public void create(MdBaseMaterial entity) {
String nickName = SecurityUtils.getCurrentNickName(); String nickName = SecurityUtils.getCurrentNickName();
@ -84,6 +86,7 @@ public class MdBaseMaterialServiceImpl extends ServiceImpl<MdBaseMaterialMapper,
entity.setUpdate_time(now); entity.setUpdate_time(now);
mdBaseMaterialMapper.insert(entity); mdBaseMaterialMapper.insert(entity);
} }
@Override @Override
public void update(MdBaseMaterial entity) { public void update(MdBaseMaterial entity) {
MdBaseMaterial dto = mdBaseMaterialMapper.selectById(entity.getMaterial_id()); MdBaseMaterial dto = mdBaseMaterialMapper.selectById(entity.getMaterial_id());
@ -96,11 +99,13 @@ public class MdBaseMaterialServiceImpl extends ServiceImpl<MdBaseMaterialMapper,
entity.setUpdate_time(now); entity.setUpdate_time(now);
mdBaseMaterialMapper.updateById(entity); mdBaseMaterialMapper.updateById(entity);
} }
@Override @Override
public void deleteAll(Set<String> ids) { public void deleteAll(Set<String> ids) {
// 真删除 // 真删除
mdBaseMaterialMapper.deleteBatchIds(ids); mdBaseMaterialMapper.deleteBatchIds(ids);
} }
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void excelImport(MultipartFile file, HttpServletRequest request) { public void excelImport(MultipartFile file, HttpServletRequest request) {
@ -129,21 +134,87 @@ public class MdBaseMaterialServiceImpl extends ServiceImpl<MdBaseMaterialMapper,
List list = read.get(i); List list = read.get(i);
JSONObject param = new JSONObject(); JSONObject param = new JSONObject();
String customer = list.get(1).toString(); String customer = list.get(1).toString();
String production_materials = null;
String actual_batch = null;
String inventory_qty = null;
String large_model = null;
String small_model = null;
String product_qty = null;
String batch_number = null;
String weight = null;
String remark = null;
String material_code = null;
String material_number = null;
if (StrUtil.isBlank(customer)) { if (StrUtil.isBlank(customer)) {
continue; continue;
} }
String production_materials = list.get(2).toString(); try {
String actual_batch = list.get(3).toString(); production_materials = list.get(2).toString();
String inventory_qty=list.get(4).toString(); } catch (Exception var17) {
String product_qty=list.get(5).toString(); throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行实发型号为空");
String large_model = list.get(9).toString(); }
String small_model = list.get(10).toString(); try {
String batch_number = list.get(11).toString(); actual_batch = list.get(3).toString();
String weight = list.get(12).toString(); } catch (Exception var17) {
String remark = list.get(14).toString(); throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行实发批次为空");
}
try {
inventory_qty = list.get(4).toString();
} catch (Exception var17) {
throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行库存数量为空");
}
try {
product_qty = list.get(5).toString();
} catch (Exception var17) {
throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行当天生产为空");
}
try {
large_model = list.get(9).toString();
} catch (Exception var17) {
throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行大型号为空");
}
try {
small_model = list.get(10).toString();
} catch (Exception var17) {
throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行小型号为空");
}
try {
batch_number = list.get(11).toString();
} catch (Exception var17) {
throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行标签批次号为空");
}
try {
weight = list.get(12).toString();
} catch (Exception var17) {
throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行重量/KG为空");
}
try {
remark = list.get(14).toString();
} catch (Exception var17) {
throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行备注为空");
}
String bottle_number = null; String bottle_number = null;
String carton_number = null; String carton_number = null;
String shdnumber=list.get(17).toString();; try {
material_code = list.get(15).toString();
} catch (Exception var17) {
throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行物料编码为空");
}
try {
material_number = list.get(16).toString();
} catch (Exception var17) {
throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行物料名称为空");
}
String model = null;
String batch = null;
String shdnumber= null;
String sum_qty= null;
String carton_qty= null;
try {
shdnumber = list.get(17).toString();
} catch (Exception var17) {
throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行送货单单号为空");
}
try { try {
bottle_number = list.get(18).toString(); bottle_number = list.get(18).toString();
} catch (Exception var17) { } catch (Exception var17) {
@ -154,8 +225,26 @@ public class MdBaseMaterialServiceImpl extends ServiceImpl<MdBaseMaterialMapper,
} catch (Exception var17) { } catch (Exception var17) {
throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行纸箱号为空"); throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行纸箱号为空");
} }
String carton_qty=list.get(21).toString(); try {
String sum_qty=list.get(20).toString(); carton_qty = list.get(21).toString();
} catch (Exception var17) {
throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行总罐数为空");
}
try {
sum_qty = list.get(20).toString();
} catch (Exception var17) {
throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行箱内罐数为空");
}
try {
model = list.get(22).toString();
} catch (Exception var17) {
throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行型号为空");
}
try {
batch = list.get(23).toString();
} catch (Exception var17) {
throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行批号为空");
}
MdBaseMaterial mdBaseMaterial = new MdBaseMaterial(); MdBaseMaterial mdBaseMaterial = new MdBaseMaterial();
// mdBaseMaterial=mdBaseMaterialMapper.isbatch(batch_number,actual_batch); // mdBaseMaterial=mdBaseMaterialMapper.isbatch(batch_number,actual_batch);
// if(mdBaseMaterial!=null){ // if(mdBaseMaterial!=null){
@ -177,10 +266,15 @@ public class MdBaseMaterialServiceImpl extends ServiceImpl<MdBaseMaterialMapper,
param.put("carton_number", carton_number); param.put("carton_number", carton_number);
param.put("carton_qty", carton_qty); param.put("carton_qty", carton_qty);
param.put("sum_qty", sum_qty); param.put("sum_qty", sum_qty);
param.put("model", model);
param.put("batch", batch);
param.put("material_code", material_code);
param.put("material_number", material_number);
MdBaseMaterial entity = ConvertUtil.convert(param, MdBaseMaterial.class); MdBaseMaterial entity = ConvertUtil.convert(param, MdBaseMaterial.class);
mdBaseMaterialMapper.insert(entity); mdBaseMaterialMapper.insert(entity);
} }
} }
@Override @Override
public void doExport(HttpServletResponse response) throws IOException { public void doExport(HttpServletResponse response) throws IOException {
List<MdBaseMaterial> mstwmaterials = mdBaseMaterialMapper.mstwmaterials(); List<MdBaseMaterial> mstwmaterials = mdBaseMaterialMapper.mstwmaterials();
@ -219,7 +313,6 @@ public class MdBaseMaterialServiceImpl extends ServiceImpl<MdBaseMaterialMapper,
real_carton_qty = 1; real_carton_qty = 1;
real_carton_number++; real_carton_number++;
} }
Integer real_zxdigits2= Integer.parseInt(zxdigits)+real_carton_number;
Integer real_zxdigits = Integer.parseInt(zxdigits) + real_carton_number - sum_carton1 + 1; Integer real_zxdigits = Integer.parseInt(zxdigits) + real_carton_number - sum_carton1 + 1;
String real_zxdigits1 = null; String real_zxdigits1 = null;
if (real_zxdigits <= 9) { if (real_zxdigits <= 9) {
@ -256,6 +349,7 @@ public class MdBaseMaterialServiceImpl extends ServiceImpl<MdBaseMaterialMapper,
} }
FileUtil.downloadExcel(list, response); FileUtil.downloadExcel(list, response);
} }
@Override @Override
public void doExport1(HttpServletResponse response) throws IOException { public void doExport1(HttpServletResponse response) throws IOException {
List<MdBaseMaterial> jkmaterials = mdBaseMaterialMapper.jkmaterials(); List<MdBaseMaterial> jkmaterials = mdBaseMaterialMapper.jkmaterials();
@ -332,8 +426,7 @@ public class MdBaseMaterialServiceImpl extends ServiceImpl<MdBaseMaterialMapper,
} else if (wt == 2) { } else if (wt == 2) {
if (i == pznum - 1 && pzweight % 2 == 1) { if (i == pznum - 1 && pzweight % 2 == 1) {
map.put("包实装货物数", "1"); map.put("包实装货物数", "1");
} } else {
else{
map.put("包实装货物数", "2"); map.put("包实装货物数", "2");
} }
} }
@ -345,6 +438,7 @@ public class MdBaseMaterialServiceImpl extends ServiceImpl<MdBaseMaterialMapper,
} }
FileUtil.downloadExcel(list, response); FileUtil.downloadExcel(list, response);
} }
public static String extractNumberAfterLastLetter(String input) { public static String extractNumberAfterLastLetter(String input) {
// 正则表达式:匹配最后一个字母后面的数字 // 正则表达式:匹配最后一个字母后面的数字
Pattern pattern = Pattern.compile("[a-zA-Z]([0-9]+)$"); Pattern pattern = Pattern.compile("[a-zA-Z]([0-9]+)$");
@ -356,4 +450,74 @@ public class MdBaseMaterialServiceImpl extends ServiceImpl<MdBaseMaterialMapper,
return ""; // 如果没有匹配到数字,返回空字符串 return ""; // 如果没有匹配到数字,返回空字符串
} }
@Override
public void doExport2(HttpServletResponse response) throws IOException {
List<MdBaseMaterial> dcmaterials = mdBaseMaterialMapper.dcmaterials();
LocalDate currentDate = LocalDate.now();
List<Map<String, Object>> 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<String, Object> 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);
}
} }

17
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 carton_form;
/**
* 型号
*/
private String model;
/**
* 批号
*/
private String batch;
/**
* 物料编码
*/
private String material_code;
/**
* 物料名称
*/
private String material_number;
/** /**
* 创建者 * 创建者
*/ */

12
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<TicketsMapper, Tickets> impl
if(!StrUtil.isNotBlank(planned_quantity)){ if(!StrUtil.isNotBlank(planned_quantity)){
throw new BadRequestException("未填写计划数量"); throw new BadRequestException("未填写计划数量");
} }
if(!StrUtil.isNotBlank(bottle_weight)){
throw new BadRequestException("未填每罐重量");
}
if(!StrUtil.isNotBlank(carton_board)){ if(!StrUtil.isNotBlank(carton_board)){
throw new BadRequestException("未填写纸箱关联标签模板"); throw new BadRequestException("未填写纸箱关联标签模板");
} }
@ -118,9 +121,7 @@ public class TicketsServiceImpl extends ServiceImpl<TicketsMapper, Tickets> impl
if(carton_number.length()!=33){ if(carton_number.length()!=33){
throw new BadRequestException("纸箱号不对"); throw new BadRequestException("纸箱号不对");
} }
if(!StrUtil.isNotBlank(bottle_weight)){ if(!StrUtil.isNotBlank(shdnumber)){
throw new BadRequestException("未填晶科每罐重量");
}if(!StrUtil.isNotBlank(shdnumber)){
throw new BadRequestException("未填送货单"); throw new BadRequestException("未填送货单");
} }
@ -156,10 +157,13 @@ public class TicketsServiceImpl extends ServiceImpl<TicketsMapper, Tickets> impl
Device device = deviceAppService.findDeviceByCode("ZPLC"); Device device = deviceAppService.findDeviceByCode("ZPLC");
if(device.getDeviceDriver() instanceof PrimaryDeviceConveyorDeviceDriver) { if(device.getDeviceDriver() instanceof PrimaryDeviceConveyorDeviceDriver) {
PrimaryDeviceConveyorDeviceDriver primary = (PrimaryDeviceConveyorDeviceDriver) device.getDeviceDriver(); PrimaryDeviceConveyorDeviceDriver primary = (PrimaryDeviceConveyorDeviceDriver) device.getDeviceDriver();
Integer number=Integer.parseInt(entity.getCarton_qty());
if(primary.getTo_labeling()!=number){
throw new BadRequestException("当前所下发工单每箱数量数据不对");
}
Map<String, Object> map = new LinkedHashMap<>(); Map<String, Object> map = new LinkedHashMap<>();
map.put("to_order_No", entity.getTicket_id()); map.put("to_order_No", entity.getTicket_id());
map.put("to_ice",entity.getIs_ice()); map.put("to_ice",entity.getIs_ice());
map.put("to_labeling",entity.getCarton_qty());
map.put("to_qty",entity.getPlanned_quantity()); map.put("to_qty",entity.getPlanned_quantity());
if(StrUtil.isBlank(entity.getBottle_board())){ if(StrUtil.isBlank(entity.getBottle_board())){
map.put("is_printbottle",0); map.put("is_printbottle",0);

8
acs/nladmin-ui/babel.config.js

@ -1,8 +1,8 @@
const plugins = ['@vue/babel-plugin-transform-vue-jsx'] const plugins = ['@vue/babel-plugin-transform-vue-jsx']
// 生产环境移除console // // 生产环境移除console
if (process.env.NODE_ENV === 'production') { // if (process.env.NODE_ENV === 'production') {
plugins.push('transform-remove-console') // plugins.push('transform-remove-console')
} // }
module.exports = { module.exports = {
plugins: [ plugins: [
...plugins, ...plugins,

8
acs/nladmin-ui/src/views/acs/order/MaterialDialog.vue

@ -100,8 +100,12 @@
<el-table-column prop="carton_number" label="纸箱号" :min-width="flexWidth('carton_number',crud.data,'纸箱号')" /> <el-table-column prop="carton_number" label="纸箱号" :min-width="flexWidth('carton_number',crud.data,'纸箱号')" />
<el-table-column prop="sum_qty" label="总罐数" :min-width="flexWidth('sum_qty',crud.data,'总罐数')" /> <el-table-column prop="sum_qty" label="总罐数" :min-width="flexWidth('sum_qty',crud.data,'总罐数')" />
<el-table-column prop="remark" label="备注" :min-width="flexWidth('remark',crud.data,'备注')" /> <el-table-column prop="remark" label="备注" :min-width="flexWidth('remark',crud.data,'备注')" />
<el-table-column prop="sum_qty" label="总罐数" :min-width="flexWidth('sum_qty',crud.data,'备注')" /> <el-table-column prop="sum_qty" label="总罐数" :min-width="flexWidth('sum_qty',crud.data,'总罐数')" />
<el-table-column prop="carton_qty" label="纸箱装瓶数量" :min-width="flexWidth('carton_qty',crud.data,'备注')" /> <el-table-column prop="carton_qty" label="纸箱装瓶数量" :min-width="flexWidth('carton_qty',crud.data,'纸箱装瓶数量')" />
<el-table-column prop="model" label="型号" :min-width="flexWidth('model',crud.data,'型号')" />
<el-table-column prop="batch" label="批号" :min-width="flexWidth('batch',crud.data,'批号')" />
<el-table-column prop="material_code" label="物料编码" :min-width="flexWidth('material_code',crud.data,'物料编码')" />
<el-table-column prop="material_number" label="物料名称" :min-width="flexWidth('material_number',crud.data,'物料名称')" />
</el-table> </el-table>
<!--分页组件--> <!--分页组件-->
<pagination /> <pagination />

26
acs/nladmin-ui/src/views/acs/order/index.vue

@ -81,6 +81,18 @@
<el-form-item label="小型号" prop="small_model"> <el-form-item label="小型号" prop="small_model">
<el-input v-model="form.small_model" style="width: 370px;" @change="isDisabled=false" /> <el-input v-model="form.small_model" style="width: 370px;" @change="isDisabled=false" />
</el-form-item> </el-form-item>
<el-form-item label="型号" prop="model">
<el-input v-model="form.model" style="width: 370px;" @change="isDisabled=false" />
</el-form-item>
<el-form-item label="批号" prop="batch">
<el-input v-model="form.batch" style="width: 370px;" @change="isDisabled=false" />
</el-form-item>
<el-form-item label="物料编码" prop="material_code">
<el-input v-model="form.material_code" style="width: 370px;" @change="isDisabled=false" />
</el-form-item>
<el-form-item label="物料名称" prop="material_number">
<el-input v-model="form.material_number" style="width: 370px;" @change="isDisabled=false" />
</el-form-item>
<el-form-item label="计划数量" prop="planned_quantity"> <el-form-item label="计划数量" prop="planned_quantity">
<el-input v-model="form.planned_quantity" style="width: 370px;" @change="isDisabled=false" /> <el-input v-model="form.planned_quantity" style="width: 370px;" @change="isDisabled=false" />
</el-form-item> </el-form-item>
@ -90,7 +102,7 @@
<el-form-item label="纸箱号(选填)" prop="carton_number"> <el-form-item label="纸箱号(选填)" prop="carton_number">
<el-input v-model="form.carton_number" style="width: 370px;" @change="isDisabled=false" /> <el-input v-model="form.carton_number" style="width: 370px;" @change="isDisabled=false" />
</el-form-item> </el-form-item>
<el-form-item label="晶科每罐重量kg(选填)" prop="bottle_weight"> <el-form-item label="每罐重量kg" prop="bottle_weight">
<el-input v-model="form.bottle_weight" style="width: 370px;" @change="isDisabled=false" /> <el-input v-model="form.bottle_weight" style="width: 370px;" @change="isDisabled=false" />
</el-form-item> </el-form-item>
<el-form-item label="送货单(选填)" prop="shdnumber"> <el-form-item label="送货单(选填)" prop="shdnumber">
@ -396,6 +408,10 @@ export default {
is_ice: null, is_ice: null,
is_labeling: null, is_labeling: null,
weight_ok: null, weight_ok: null,
model: null,
batch: null,
material_code: null,
material_name: null,
ticket_status: null ticket_status: null
}, },
form1: { form1: {
@ -419,6 +435,10 @@ export default {
is_ice: null, is_ice: null,
is_labeling: null, is_labeling: null,
weight_ok: null, weight_ok: null,
model: null,
batch: null,
material_code: null,
material_name: null,
ticket_status: null ticket_status: null
}, },
originalForm: {}, originalForm: {},
@ -544,6 +564,10 @@ export default {
this.form.carton_number=row.carton_number this.form.carton_number=row.carton_number
this.form.carton_qty=row.carton_qty this.form.carton_qty=row.carton_qty
this.form.shdnumber=row.shdnumber 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() { handleDateTimeChange() {

23
acs/nladmin-ui/src/views/acs/order/material.vue

@ -97,6 +97,16 @@
:loading="downloadLoading" :loading="downloadLoading"
@click="doExport1" @click="doExport1"
>导出晶科报表 >导出晶科报表
</el-button>
<el-button
slot="right"
class="filter-item"
size="mini"
type="warning"
icon="el-icon-download"
:loading="downloadLoading"
@click="doExport2"
>导出东磁报表
</el-button> </el-button>
<el-button <el-button
slot="right" slot="right"
@ -196,6 +206,10 @@
<el-table-column prop="sum_qty" label="总罐数" :min-width="flexWidth('sum_qty',crud.data,'总罐数')" /> <el-table-column prop="sum_qty" label="总罐数" :min-width="flexWidth('sum_qty',crud.data,'总罐数')" />
<el-table-column prop="shdnumber" label="送货单" :min-width="flexWidth('shdnumber',crud.data,'送货单')" /> <el-table-column prop="shdnumber" label="送货单" :min-width="flexWidth('shdnumber',crud.data,'送货单')" />
<el-table-column prop="carton_qty" label="纸箱装瓶数量" :min-width="flexWidth('carton_qty',crud.data,'纸箱装瓶数量')" /> <el-table-column prop="carton_qty" label="纸箱装瓶数量" :min-width="flexWidth('carton_qty',crud.data,'纸箱装瓶数量')" />
<el-table-column prop="model" label="型号" :min-width="flexWidth('model',crud.data,'型号')" />
<el-table-column prop="batch" label="批号" :min-width="flexWidth('batch',crud.data,'批号')" />
<el-table-column prop="material_code" label="物料编码" :min-width="flexWidth('material_code',crud.data,'物料编码')" />
<el-table-column prop="material_number" label="物料名称" :min-width="flexWidth('material_number',crud.data,'物料名称')" />
<el-table-column prop="is_used" label="是否启用" :min-width="flexWidth('is_used',crud.data,'是否启用')"> <el-table-column prop="is_used" label="是否启用" :min-width="flexWidth('is_used',crud.data,'是否启用')">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.is_used?'是':'否' }} {{ scope.row.is_used?'是':'否' }}
@ -326,6 +340,15 @@
}).catch(() => { }).catch(() => {
this.downloadLoading = false this.downloadLoading = false
}) })
},
doExport2() {
this.downloadLoading = true
download('api/mdBaseMaterial' + '/doExport2', {}).then(result => {
downloadFile(result, crud.title + '数据', 'xlsx')
this.downloadLoading = false
}).catch(() => {
this.downloadLoading = false
})
}, },
// //
loadChildNodes({ action, parentNode, callback }) { loadChildNodes({ action, parentNode, callback }) {

Loading…
Cancel
Save