diff --git a/lms/nladmin-system/nlsso-server/pom.xml b/lms/nladmin-system/nlsso-server/pom.xml index 63098a9..6c2ba37 100644 --- a/lms/nladmin-system/nlsso-server/pom.xml +++ b/lms/nladmin-system/nlsso-server/pom.xml @@ -30,10 +30,57 @@ 5.9.0 8.2.0 1.9 + 1.8 + + + org.apache.commons + commons-csv + ${commons-csv.version} + + + + com.spire + office + 5.3.1 + system + ${project.basedir}/../nlsso-server/src/main/resources/lib/spire.office.free-5.3.1.jar + + + + + org.apache.logging.log4j + log4j-api + 2.17.1 + + + org.apache.logging.log4j + log4j-core + 2.17.1 + + + + + com.deepoove + poi-tl + 1.9.0-beta + + + + com.luhuiguo + aspose-pdf + 23.1 + + + + com.google.zxing + core + 3.3.0 + + org.samba.jcifs jcifs @@ -285,19 +332,20 @@ org.apache.poi - poi-ooxml-schemas - 3.17 + poi + 5.2.3 org.apache.poi - poi - 3.17 + poi-ooxml + 5.2.3 org.apache.poi - poi-ooxml - 3.17 + poi-ooxml-schemas + 4.1.2 + xerces xercesImpl diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index 370176a..b323f10 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -45,6 +45,7 @@ import org.nl.wms.sch.task.service.dao.SchBaseTask; import org.nl.wms.sch.task_manage.AbstractTask; import org.nl.wms.sch.task_manage.GeneralDefinition; import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum; +import org.nl.wms.sch.task_manage.task.ConnectorUtil; import org.nl.wms.sch.task_manage.task.TaskFactory; import org.nl.wms.sch.task_manage.task.core.TaskStatus; import org.nl.wms.sch.task_manage.task.tasks.mapper.PointMapper; @@ -554,16 +555,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { if (ObjectUtil.isEmpty(mdBaseMaterial)) { //TODO:物料不存在 } - SchBaseVehiclematerialgroup schBaseVehiclematerialgroup = new SchBaseVehiclematerialgroup(); - schBaseVehiclematerialgroup.setGroup_id(connectorDto.getID()); - schBaseVehiclematerialgroup.setVehicle_code(connectorDto.getVehicle_code()); - schBaseVehiclematerialgroup.setJob_name(connectorDto.getJobname()); - schBaseVehiclematerialgroup.setMaterial_id(connectorDto.getProductID()); - schBaseVehiclematerialgroup.setMaterial_qty(connectorDto.getCurrentqty()); - schBaseVehiclematerialgroup.setRegion_code(connectorDto.getNextOperation()); - schBaseVehiclematerialgroup.setExtend(JSON.toJSONString(connectorDto)); - schBaseVehiclematerialgroup.setOrder_code(connectorDto.getProductionOrder()); - schBaseVehiclematerialgroup.setCreate_name("Connector"); + connectorDto.setCreate_name("Connector"); + SchBaseVehiclematerialgroup schBaseVehiclematerialgroup = ConnectorUtil.createObject(connectorDto); iSchBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup); if ("Y".equals(connectorDto.getFinished())) { jobName = connectorDto.getJobname(); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/connector/service/dto/ConnectorDto.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/connector/service/dto/ConnectorDto.java index 1890189..133d01d 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/connector/service/dto/ConnectorDto.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/connector/service/dto/ConnectorDto.java @@ -93,4 +93,14 @@ public class ConnectorDto { */ @SerializedName("dueDate") private String DueDate; + /** + * 交期时间 + */ + private String due_date; + /** + * 优先级 + */ + private String priority; + + private String create_name; } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/connector/service/impl/ConnectorToWmsServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/connector/service/impl/ConnectorToWmsServiceImpl.java index f50ea4f..07e402d 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/connector/service/impl/ConnectorToWmsServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/connector/service/impl/ConnectorToWmsServiceImpl.java @@ -26,6 +26,7 @@ import org.nl.wms.sch.task.service.ISchBaseTaskService; import org.nl.wms.sch.task.service.dao.SchBaseTask; import org.nl.wms.sch.task_manage.AbstractTask; import org.nl.wms.sch.task_manage.GeneralDefinition; +import org.nl.wms.sch.task_manage.task.ConnectorUtil; import org.nl.wms.sch.task_manage.task.TaskFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -135,18 +136,10 @@ public class ConnectorToWmsServiceImpl implements ConnectorToWmsService { .eq(SchBaseVehiclematerialgroup::getGroup_id, connectorDto.getID())); if (ObjectUtil.isNotNull(one)) { log.info("id:" + connectorDto.getID() + "," + "该物料信息已存在!"); - throw new BadRequestException("id:" + connectorDto.getID() + "," + "该物料信息已存在!"); + continue; } - SchBaseVehiclematerialgroup schBaseVehiclematerialgroup = new SchBaseVehiclematerialgroup(); - schBaseVehiclematerialgroup.setGroup_id(connectorDto.getID()); - schBaseVehiclematerialgroup.setVehicle_code(connectorDto.getVehicle_code()); - schBaseVehiclematerialgroup.setJob_name(connectorDto.getJobname()); - schBaseVehiclematerialgroup.setMaterial_id(connectorDto.getProductID()); - schBaseVehiclematerialgroup.setMaterial_qty(connectorDto.getCurrentqty()); - schBaseVehiclematerialgroup.setRegion_code(connectorDto.getNextOperation()); - schBaseVehiclematerialgroup.setExtend(JSON.toJSONString(connectorDto)); - schBaseVehiclematerialgroup.setOrder_code(connectorDto.getProductionOrder()); - schBaseVehiclematerialgroup.setCreate_name("Connector"); + connectorDto.setCreate_name("Connector"); + SchBaseVehiclematerialgroup schBaseVehiclematerialgroup = ConnectorUtil.createObject(connectorDto); iSchBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup); } return null; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/fab/service/dto/SendMaterVo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/fab/service/dto/SendMaterVo.java index 76dc33f..93e7d6c 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/fab/service/dto/SendMaterVo.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/fab/service/dto/SendMaterVo.java @@ -1,10 +1,14 @@ package org.nl.wms.ext.fab.service.dto; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; import java.util.List; @Data +@AllArgsConstructor +@NoArgsConstructor public class SendMaterVo { /** * 载具编码 @@ -14,6 +18,7 @@ public class SendMaterVo { * 物料id */ public String material_id; + public String material_code; /** * 订单号 */ diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/fab/service/dto/SendVehicleVo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/fab/service/dto/SendVehicleVo.java index 6ac4036..88e772e 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/fab/service/dto/SendVehicleVo.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/fab/service/dto/SendVehicleVo.java @@ -35,6 +35,10 @@ public class SendVehicleVo { * 物料id */ private String material_id; + /** + * 物料号 + */ + private String material_code; /** * 优先级 */ diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/fab/service/impl/FabServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/fab/service/impl/FabServiceImpl.java index 0bc2662..f7f7f2a 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/fab/service/impl/FabServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/fab/service/impl/FabServiceImpl.java @@ -2,6 +2,7 @@ package org.nl.wms.ext.fab.service.impl; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -82,6 +83,10 @@ public class FabServiceImpl { case "cmt": Assert.noNullElements(new Object[]{form.getString("device_code"), form.getString("vehicle_code")}, "参数不能为空!"); CallMaterVo callMaterVo = form.toJavaObject(CallMaterVo.class); + SchBasePoint schBasePoint2 = iSchBasePointService.selectByPointCode(callMaterVo.getDevice_code()); + if (schBasePoint2.getPoint_status().equals(GoodsEnum.IN_STOCK.getValue())) { + throw new BadRequestException("该点位已存在物料!"); + } param.put("device_code", callMaterVo.getDevice_code()); param.put("config_code", "PcOperationCMTask"); param.put("region_code", callMaterVo.getRegion_code()); @@ -102,7 +107,7 @@ public class FabServiceImpl { if (ObjectUtil.isEmpty(schBasePoint1)) { throw new BadRequestException("点位不存在"); } - if (!schBasePoint1.getPoint_status().equals(GoodsEnum.OUT_OF_STOCK.getValue()) || schBasePoint1.getIs_lock()) { + if (StrUtil.isNotEmpty(schBasePoint1.getVehicle_code())) { throw new BadRequestException("该点位不是空站点,请确认再呼叫"); } param.put("device_code", callEmpVo.getDevice_code()); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/handheld/service/impl/HandheldServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/handheld/service/impl/HandheldServiceImpl.java index 3a6961d..8193780 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/handheld/service/impl/HandheldServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/handheld/service/impl/HandheldServiceImpl.java @@ -36,6 +36,7 @@ import org.nl.wms.sch.task_manage.GeneralDefinition; import org.nl.wms.sch.task_manage.task.TaskFactory; import org.nl.wms.sch.task_manage.task.core.TaskType; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; @@ -75,8 +76,8 @@ public class HandheldServiceImpl implements HandheldService { @Override public void emptyCageStorageTask(JSONObject param) { - Assert.noNullElements(new Object[]{param.getString("device_code"), param.getString("vehicle_list") - }, "参数不能为空!"); + Assert.noNullElements(new Object[]{param.getString("device_code"), param.getString("vehicle_list")}, + "参数不能为空!"); String vehicle = param.getString("vehicle_list"); String device_code = param.getString("device_code"); String type = param.getString("type"); @@ -101,10 +102,6 @@ public class HandheldServiceImpl implements HandheldService { /** * 空载具送回货架 - * - * @param vehicle - * @param device_code - * @param param */ private void applyDeliveryRacks(String vehicle, String device_code, JSONObject param) { SchBasePoint schBasePoint = iSchBasePointService.selectByPointCode(device_code); @@ -121,14 +118,7 @@ public class HandheldServiceImpl implements HandheldService { throw new BadRequestException("载具号已存在别的点位,请确认再下发"); } // 准备参数:设备编码 - JSONObject jo = new JSONObject(); - jo.put("device_code", device_code); - jo.put("config_code", "RACKTask"); - jo.put("create_mode", GeneralDefinition.AUTO_CREATION); - jo.put("vehicle_code", vehicle); - jo.put("vehicle_type", mdBaseVehicle.getVehicle_type()); - jo.put("ext_data", param); - connectorTask.apply(jo); + applyTask(param, vehicle, device_code, mdBaseVehicle, connectorTask); iSchBasePointService.update(Wrappers.lambdaUpdate(SchBasePoint.class) .eq(SchBasePoint::getPoint_code, schBasePoint.getPoint_code()) .set(SchBasePoint::getIs_lock, true)); @@ -136,10 +126,6 @@ public class HandheldServiceImpl implements HandheldService { /** * 内部过道送托盘 - * - * @param vehicle - * @param device_code - * @param param */ private void interiorAisle(String vehicle, String device_code, JSONObject param) { MdBaseVehicle mdBaseVehicle = iMdBaseVehicleService.selectByVehicleCode(vehicle); @@ -162,10 +148,6 @@ public class HandheldServiceImpl implements HandheldService { /** * 空料架送回 - * - * @param vehicle - * @param device_code - * @param param */ private void semiAutomaticBending(String vehicle, String device_code, JSONObject param) { MdBaseVehicle mdBaseVehicle = iMdBaseVehicleService.selectByVehicleCode(vehicle); @@ -174,26 +156,11 @@ public class HandheldServiceImpl implements HandheldService { && !mdBaseVehicle.getVehicle_type().equals(VehicleTypeEnum.RACKS_S06.getVehicleCode())) { throw new BadRequestException("不是料架,生成搬运任务失败!"); } - SchBasePoint schBasePoint = iSchBasePointService.selectByPointCode(device_code); - if (ObjectUtil.isEmpty(schBasePoint)) throw new BadRequestException("设备点位不存在!"); - AbstractTask connectorTask = taskFactory.getTask("RACKTask"); - // 准备参数:设备编码 - JSONObject jo = new JSONObject(); - jo.put("device_code", device_code); - jo.put("config_code", "RACKTask"); - jo.put("create_mode", GeneralDefinition.AUTO_CREATION); - jo.put("vehicle_code", vehicle); - jo.put("vehicle_type", mdBaseVehicle.getVehicle_type()); - jo.put("ext_data", param); - connectorTask.apply(jo); + rackTask(param, vehicle, device_code, mdBaseVehicle); } /** * 空料框送回 - * - * @param vehicle - * @param device_code - * @param param */ private void artificialBending(String vehicle, String device_code, JSONObject param) { String[] vehicle_list = null; @@ -230,7 +197,6 @@ public class HandheldServiceImpl implements HandheldService { throw new BadRequestException("托盘类型不匹配,,生成搬运任务失败!"); } }); - } SchBasePoint schBasePoint = iSchBasePointService.selectByPointCode(device_code); if (ObjectUtil.isEmpty(schBasePoint)) throw new BadRequestException("设备点位不存在!"); @@ -254,15 +220,14 @@ public class HandheldServiceImpl implements HandheldService { @Override @Transactional(rollbackFor = Exception.class) public void cageBlankingTask(JSONObject param) { - Assert.noNullElements(new Object[]{param.getString("device_code"), param.getString("vehicle_code")}, - "当前点位或载具号不能为空!"); + boolean allNotEmpty = ObjectUtil.isAllNotEmpty(param.getString("device_code"), param.getString("vehicle_code"), param.getString("type")); + Assert.isTrue(allNotEmpty, "当前点位,载具号或类型不能为空!"); SchBasePoint schBasePoint = iSchBasePointService.selectByPointCode(param.getString("device_code")); + Assert.notNull(schBasePoint, "当前点位不存在!"); SchBasePoint one = iSchBasePointService.getOne(Wrappers.lambdaQuery(SchBasePoint.class) .eq(SchBasePoint::getVehicle_code, param.getString("vehicle_code")) .ne(SchBasePoint::getPoint_code, param.getString("device_code"))); - if (ObjectUtil.isNotEmpty(one)) { - throw new BadRequestException("载具号已存在别的点位,请确认再下发"); - } + Assert.isNull(one, "载具号已存在别的点位,请确认再下发"); String region_code = param.getString("region_code"); String device_code = param.getString("device_code"); String vehicle_code = param.getString("vehicle_code"); @@ -288,13 +253,6 @@ public class HandheldServiceImpl implements HandheldService { /** * connector下料入库 - * - * @param - * @param param - * @param region_code - * @param device_code - * @param vehicle_code - * @param connectorTask */ private void connectorBlanking(JSONObject param, String region_code, String device_code, String vehicle_code, AbstractTask connectorTask) { JSONObject jo = new JSONObject(); @@ -314,15 +272,8 @@ public class HandheldServiceImpl implements HandheldService { /** * 物料下料去货架 - * - * @param param - * @param region_code - * @param device_code - * @param vehicle_code - * @param connectorTask */ private void goShelves(SchBasePoint schBasePoint, JSONObject param, String region_code, String device_code, String vehicle_code, AbstractTask connectorTask) { - //TODO:是否需要加上是否有无货校验 Assert.noNullElements(param.getJSONArray("material"), "参数不能为空!"); JSONArray materials = param.getJSONArray("material"); JSONObject jo = new JSONObject(); @@ -338,7 +289,7 @@ public class HandheldServiceImpl implements HandheldService { if (StrUtil.isBlank(region_code)) { JSONObject json = new JSONObject(); JSONArray jsonArray = new JSONArray(); - materials.stream().forEach(material2 -> { + materials.forEach(material2 -> { boolean material_code = ObjectUtil.isEmpty(((LinkedHashMap) material2).get("material_code")); if (material_code) { ((LinkedHashMap) material2).remove("material_code"); @@ -353,7 +304,7 @@ public class HandheldServiceImpl implements HandheldService { json.put("region_code", schBasePoint.getRegion_code()); json.put("materials", jsonArray); JSONObject json1 = wmsToConnectorService.applyRegionAndDueDate(json); - if (ObjectUtil.isNotEmpty(json1) && json1.getInteger("status") == 200) { + if (ObjectUtil.isNotEmpty(json1) && json1.getInteger("status") == HttpStatus.OK.value()) { JSONArray date = json1.getJSONArray("data"); date.stream().map(date1 -> JSONObject.parseObject(StrUtil.toString(date1))).forEach(json2 -> { List updatedMaterials = materials.stream() @@ -363,10 +314,8 @@ public class HandheldServiceImpl implements HandheldService { jsonObject.putOpt("due_date", json2.getString("due_date")); jsonObject.putOpt("region_code", json2.getString("next_region_code")); jsonObject.putOpt("priority", json2.getString("priority")); - return jsonObject; // 更新的对象 - } else { - return jsonObject; // 其他对象保持不变 } + return jsonObject; }) .collect(Collectors.toList()); materials.clear(); @@ -384,38 +333,18 @@ public class HandheldServiceImpl implements HandheldService { jo.put("config_code", "BLANKINGTask"); jo.put("create_mode", GeneralDefinition.AUTO_CREATION); jo.put("vehicle_code", vehicle_code); + param.put("region_code", region_code); + param.put("materials",materials); jo.put("ext_data", param); iSchBasePointService.update(Wrappers.lambdaUpdate(SchBasePoint.class) .eq(SchBasePoint::getPoint_code, device_code) .set(SchBasePoint::getIs_lock, true)); connectorTask.apply(jo); - iSchBaseVehiclematerialgroupService.remove(Wrappers.lambdaQuery(SchBaseVehiclematerialgroup.class) - .eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicle_code)); - String finalRegion_code = region_code; - materials.stream().forEach(material -> { - cn.hutool.json.JSONObject jsonObject = JSONUtil.parseObj(material); - SchBaseVehiclematerialgroup schBaseVehiclematerialgroup = new SchBaseVehiclematerialgroup(); - schBaseVehiclematerialgroup.setVehicle_code(vehicle_code); - schBaseVehiclematerialgroup.setMaterial_qty(jsonObject.getInt("material_qty")); - schBaseVehiclematerialgroup.setMaterial_code(jsonObject.getStr("material_code")); - schBaseVehiclematerialgroup.setOrder_code(jsonObject.getStr("order_code")); - schBaseVehiclematerialgroup.setDue_date(jsonObject.getStr("due_date")); - schBaseVehiclematerialgroup.setCreate_name(SecurityUtils.getCurrentNickName()); - schBaseVehiclematerialgroup.setPriority(jsonObject.getStr("priority")); - schBaseVehiclematerialgroup.setRegion_code(StrUtil.isBlank(finalRegion_code) ? jsonObject.getStr("region_code") : finalRegion_code); - iSchBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup); - }); } } /** * 物料下料去外协或内部加工区 - * - * @param param - * @param region_code - * @param device_code - * @param vehicle_code - * @param connectorTask */ private void goWxOrNx(JSONObject param, String region_code, String device_code, String vehicle_code, AbstractTask connectorTask) { JSONObject jo = new JSONObject(); @@ -426,14 +355,14 @@ public class HandheldServiceImpl implements HandheldService { MdBaseVehicle mdBaseVehicle = iMdBaseVehicleService.selectByVehicleCode(vehicle_code); if (mdBaseVehicle.getVehicle_type().equals(VehicleTypeEnum.TRAY.getVehicleCode())) throw new BadRequestException("钢托盘不能存放加工区!"); - param.put("region_code", region_code); jo.put("device_code", device_code); jo.put("config_code", "ProcessingSMTTask"); jo.put("create_mode", GeneralDefinition.AUTO_CREATION); jo.put("vehicle_code", vehicle_code); jo.put("region_code", region_code); - param.put("target_region_code", region_code); jo.put("ext_data", param); + param.put("region_code", region_code); + param.put("target_region_code", region_code); connectorTask.apply(jo); iSchBasePointService.update(Wrappers.lambdaUpdate(SchBasePoint.class) .eq(SchBasePoint::getPoint_code, device_code) @@ -478,7 +407,7 @@ public class HandheldServiceImpl implements HandheldService { if (StrUtil.equals(status, "0")) { iSchBaseTaskService.updateTaskStatusByPointCode(pointCodes); if (param.getJSONArray("pointCodes").size() > 0) { - param.getJSONArray("pointCodes").stream().forEach(pointCode -> { + param.getJSONArray("pointCodes").forEach(pointCode -> { cn.hutool.json.JSONObject jsonObject = JSONUtil.parseObj(pointCode); iSchBaseVehiclematerialgroupService.remove(Wrappers.lambdaQuery(SchBaseVehiclematerialgroup.class) .eq(SchBaseVehiclematerialgroup::getVehicle_code, jsonObject.get("vehicle_code"))); @@ -537,10 +466,18 @@ public class HandheldServiceImpl implements HandheldService { || !mdBaseVehicle.getVehicle_type().equals(VehicleTypeEnum.RACKS_S06.getVehicleCode())) { throw new BadRequestException("不是料架,生成搬运任务失败!"); } + rackTask(param, vehicle_code, device_code, mdBaseVehicle); + } + + private void rackTask(JSONObject param, String vehicle_code, String device_code, MdBaseVehicle mdBaseVehicle) { SchBasePoint schBasePoint = iSchBasePointService.selectByPointCode(device_code); if (ObjectUtil.isEmpty(schBasePoint)) throw new BadRequestException("设备点位不存在!"); AbstractTask connectorTask = taskFactory.getTask("RACKTask"); // 准备参数:设备编码 + applyTask(param, vehicle_code, device_code, mdBaseVehicle, connectorTask); + } + + private void applyTask(JSONObject param, String vehicle_code, String device_code, MdBaseVehicle mdBaseVehicle, AbstractTask connectorTask) { JSONObject jo = new JSONObject(); jo.put("device_code", device_code); jo.put("config_code", "RACKTask"); @@ -608,7 +545,7 @@ public class HandheldServiceImpl implements HandheldService { @Override public void updateRegionCodeByOrder(JSONArray json) { Assert.noNullElements(json, "参数不能为空!"); - json.stream().forEach(material -> { + json.forEach(material -> { cn.hutool.json.JSONObject jsonObject = JSONUtil.parseObj(material); iSchBaseVehiclematerialgroupService.update(Wrappers.lambdaUpdate(SchBaseVehiclematerialgroup.class) .eq(SchBaseVehiclematerialgroup::getOrder_code, jsonObject.getStr("order_code")) @@ -626,7 +563,7 @@ public class HandheldServiceImpl implements HandheldService { if (ObjectUtil.isEmpty(username)) return null; List list = JSONUtil.toList(username.getDevices(), String.class); List jsonList = new ArrayList<>(); - list.stream().forEach(device -> { + list.forEach(device -> { SchBasePoint schBasePoint = iSchBasePointService.selectByPointCode(device); if (ObjectUtil.isNotEmpty(schBasePoint)) { JSONObject map = new JSONObject(); @@ -643,8 +580,8 @@ public class HandheldServiceImpl implements HandheldService { deviceInLogin(JSONObject json) { Assert.notNull(json.getString("device_code"), "登录参数不能为空"); if (StrUtil.isNotEmpty(json.getString("device_code"))) { - Object regin_code = redisUtils.get("mobile:" + json.getString("device_code")); - if (regin_code != null) { + Object region_code = redisUtils.get("mobile:" + json.getString("device_code")); + if (region_code != null) { throw new BadRequestException("当前设备工序已经登陆,无法继续选择"); } else { SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class); @@ -692,10 +629,7 @@ public class HandheldServiceImpl implements HandheldService { public boolean isLock() { SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class); Param isConnectConnector = sysParamService.findByCode(GeneralDefinition.ADD_ROUTE_DOOR); - if (Integer.parseInt(isConnectConnector.getValue()) == 0) { - return false; - } - return true; + return Integer.parseInt(isConnectConnector.getValue()) != 0; } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/sorting/service/impl/SortingServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/sorting/service/impl/SortingServiceImpl.java index f6204c0..36c1371 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/sorting/service/impl/SortingServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/sorting/service/impl/SortingServiceImpl.java @@ -26,6 +26,7 @@ import org.nl.wms.sch.point.service.ISchBasePointService; import org.nl.wms.sch.point.service.dao.SchBasePoint; import org.nl.wms.sch.point.service.dto.PointMaterialInfo; import org.nl.wms.sch.task_manage.AbstractTask; +import org.nl.wms.sch.task_manage.task.ConnectorUtil; import org.nl.wms.sch.task_manage.task.TaskFactory; import org.nl.wms.sch.task_manage.task.tasks.sorting.SortingCMTTask; import org.nl.wms.sch.task_manage.task.tasks.sorting.SortingCNTTask; @@ -69,7 +70,8 @@ public class SortingServiceImpl implements SortingService { , jsonObject.getString("task_type"), jsonObject.getString("is_empty")}, "请求参数不能为空"); JSONArray jsonArray = JSONUtil.parseArray(jsonObject.get("pallet_detail")); if (StrUtil.isNotEmpty(jsonObject.getString("is_rawdata")) && "1".equals(jsonObject.getString("is_rawdata"))) { - createMaterial(jsonArray, jsonObject.getString("vehicle_code")); + List connectorDtos = BeanUtil.copyToList(jsonArray, ConnectorDto.class); + createMaterial(connectorDtos, jsonObject.getString("vehicle_code")); } else { //任务号 String task_code = jsonObject.getString("task_code"); @@ -204,32 +206,15 @@ public class SortingServiceImpl implements SortingService { } } - private void createMaterial(JSONArray jsonArray, String vehicleCode) { + private void createMaterial(List connectorDtos, String vehicleCode) { iSchBaseVehiclematerialgroupService.remove(Wrappers.lambdaQuery(SchBaseVehiclematerialgroup.class) .eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode)); - for (Object o : jsonArray) { - JSONObject jO = (JSONObject) JSONObject.toJSON(o); - String workorder = jO.getString("ProductionOrder"); - String ProductID = jO.getString("ProductID"); - Integer qty = jO.getInteger("Currentqty"); - String Jobname = jO.getString("Jobname"); - String dueDate = jO.getString("DueDate"); - String region_code = jO.getString("NextOperation"); - SchBaseVehiclematerialgroup schBaseVehiclematerialgroup = new SchBaseVehiclematerialgroup(); - schBaseVehiclematerialgroup.setVehicle_code(vehicleCode); - schBaseVehiclematerialgroup.setMaterial_id(ProductID); - schBaseVehiclematerialgroup.setMaterial_qty(qty); - schBaseVehiclematerialgroup.setRegion_code(region_code); - schBaseVehiclematerialgroup.setOrder_code(workorder); - schBaseVehiclematerialgroup.setJob_name(Jobname); - if (StrUtil.isNotEmpty(dueDate) && isValidISO8601(dueDate)) { - dueDate = parseDate(dueDate); - } - schBaseVehiclematerialgroup.setDue_date(dueDate); - schBaseVehiclematerialgroup.setCreate_name("Sorting"); - schBaseVehiclematerialgroup.setExtend(JSON.toJSONString(jO)); + connectorDtos.forEach(connectorDto -> { + connectorDto.setID(null); + connectorDto.setCreate_name("Sorting"); + SchBaseVehiclematerialgroup schBaseVehiclematerialgroup = ConnectorUtil.createObject(connectorDto); iSchBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup); - } + }); } public static String parseDate(String isoString) { diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/wms/service/LmsToWmsService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/wms/service/LmsToWmsService.java index 8f7329b..9105761 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/wms/service/LmsToWmsService.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/wms/service/LmsToWmsService.java @@ -1,7 +1,16 @@ package org.nl.wms.ext.wms.service; +import com.alibaba.fastjson.JSONObject; + /** * @author LENOVO */ public interface LmsToWmsService { + + /** + * 反馈物料状态 + * @param jsonObject3 + * @return + */ + JSONObject feedbackMaterialStatus(JSONObject jsonObject3); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/wms/service/impl/LmsToWmsServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/wms/service/impl/LmsToWmsServiceImpl.java index 1ac299d..9afdf03 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/wms/service/impl/LmsToWmsServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/wms/service/impl/LmsToWmsServiceImpl.java @@ -1,5 +1,9 @@ package org.nl.wms.ext.wms.service.impl; +import com.alibaba.fastjson.JSONObject; +import org.nl.wms.ext.wms.service.LmsToWmsService; +import org.nl.wms.sch.task_manage.task.ConnectorUtil; +import org.nl.wms.sch.task_manage.task.WmsUtil; import org.springframework.stereotype.Service; /** @@ -7,5 +11,13 @@ import org.springframework.stereotype.Service; * @author LENOVO */ @Service -public class LmsToWmsServiceImpl { +public class LmsToWmsServiceImpl implements LmsToWmsService { + + + @Override + public JSONObject feedbackMaterialStatus(JSONObject json) { + String api = "/api/wms/sendMaterial"; + return WmsUtil.notifyWms(api, json); + } + } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/ISchBaseVehiclematerialgroupService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/ISchBaseVehiclematerialgroupService.java index d998eae..a69f825 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/ISchBaseVehiclematerialgroupService.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/ISchBaseVehiclematerialgroupService.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import org.nl.common.domain.query.PageQuery; import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.wms.ext.fab.service.dto.SendVehicleVo; import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; import org.nl.wms.sch.group.service.dto.SchBaseVehiclematerialgroupQuery; @@ -106,4 +107,11 @@ public interface ISchBaseVehiclematerialgroupService extends IService selectAllByPage(IPage page, @Param("query") SchBaseVehiclematerialgroupQuery query); List selectMaterialPathByIsEmpty(); + + String selectDueDateByVehicleCode(@Param("sendVehicle") SendVehicleVo sendVehicleVo); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/mapper/SchBaseVehiclematerialgroupMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/mapper/SchBaseVehiclematerialgroupMapper.xml index 172daf6..56c6de7 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/mapper/SchBaseVehiclematerialgroupMapper.xml +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/mapper/SchBaseVehiclematerialgroupMapper.xml @@ -111,4 +111,11 @@ FROM sch_base_vehiclematerialgroup sbv WHERE sbv.material_path is null + + + diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/impl/SchBaseVehiclematerialgroupServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/impl/SchBaseVehiclematerialgroupServiceImpl.java index a524178..32d1c08 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/impl/SchBaseVehiclematerialgroupServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/impl/SchBaseVehiclematerialgroupServiceImpl.java @@ -6,6 +6,8 @@ import cn.hutool.core.lang.Assert; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpRequest; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -24,6 +26,7 @@ import org.nl.common.utils.SecurityUtils; import org.nl.wms.database.material.service.IMdBaseMaterialService; import org.nl.wms.database.material.service.dao.MdBaseMaterial; import org.nl.wms.ext.fab.service.dto.CallMaterVo; +import org.nl.wms.ext.fab.service.dto.SendVehicleVo; import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; import org.nl.wms.sch.group.service.dao.mapper.SchBaseVehiclematerialgroupMapper; import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; @@ -43,6 +46,8 @@ import javax.servlet.ServletOutputStream; import java.awt.*; import java.awt.image.BufferedImage; import java.io.*; +import java.net.InetAddress; +import java.net.UnknownHostException; import java.util.*; import java.util.List; import java.util.stream.Collectors; @@ -99,7 +104,6 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl { @@ -197,9 +202,9 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl schBaseVehiclematerialgroups = vehiclematerialgroupMapper.selectList(Wrappers.lambdaQuery(SchBaseVehiclematerialgroup.class) .eq(SchBaseVehiclematerialgroup::getVehicle_code, entity.getString("vehicle_code")) .ne(SchBaseVehiclematerialgroup::getGroup_id, entity.getString("group_id"))); - if(ObjectUtil.isNotEmpty(schBaseVehiclematerialgroups)){ - schBaseVehiclematerialgroups.forEach(item->{ - if(StrUtil.isEmpty(item.getRegion_code())){ + if (ObjectUtil.isNotEmpty(schBaseVehiclematerialgroups)) { + schBaseVehiclematerialgroups.forEach(item -> { + if (StrUtil.isEmpty(item.getRegion_code())) { item.setRegion_code("未知"); } }); @@ -231,7 +236,7 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl selectMaterialPathIsEmpty() { - List materials = vehiclematerialgroupMapper.selectMaterialPathByIsEmpty(); + List materials = vehiclematerialgroupMapper.selectMaterialPathByIsEmpty(); return materials; } @@ -240,21 +245,33 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl upload(@RequestBody JSONObject json) { - return new ResponseEntity<>(HttpStatus.NO_CONTENT); + public void upload(HttpServletResponse response,@RequestParam Map whereJson) { + schBaseTaskService.downTask(schBaseTaskService.queryAll(whereJson),response); } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/ISchBaseTaskService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/ISchBaseTaskService.java index 367b2f0..cd27925 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/ISchBaseTaskService.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/ISchBaseTaskService.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import org.nl.wms.sch.task.service.dao.SchBaseTask; import org.nl.wms.sch.task_manage.task.core.TaskStatus; +import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.Map; import java.util.Set; @@ -120,4 +121,18 @@ public interface ISchBaseTaskService extends IService { * @param pointCodes */ void updateTaskStatusByPointCode(List pointCodes); + + /** + * 导出任务 + * @param json + * @param response + */ + void downTask(List json, HttpServletResponse response); + + /** + * 创建数据不分页 + * @param whereJson + * @return + */ + List queryAll(Map whereJson); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/impl/SchBaseTaskServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/impl/SchBaseTaskServiceImpl.java index 57d909d..357e169 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/impl/SchBaseTaskServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/impl/SchBaseTaskServiceImpl.java @@ -2,9 +2,14 @@ package org.nl.wms.sch.task.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.io.IoUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.poi.excel.BigExcelWriter; +import cn.hutool.poi.excel.ExcelUtil; +import cn.hutool.poi.excel.ExcelWriter; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -14,6 +19,9 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.csv.CSVFormat; +import org.apache.commons.csv.CSVPrinter; +import org.apache.poi.xssf.streaming.SXSSFSheet; import org.nl.common.domain.query.PageQuery; import org.nl.common.exception.BadRequestException; import org.nl.common.utils.SecurityUtils; @@ -29,6 +37,11 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; import java.util.*; import java.util.stream.Collectors; @@ -49,6 +62,8 @@ public class SchBaseTaskServiceImpl extends ServiceImpl queryAll(Map whereJson, PageQuery page) { String task_code = ObjectUtil.isNotEmpty(whereJson.get("task_code")) ? whereJson.get("task_code").toString() : null; @@ -329,4 +344,81 @@ public class SchBaseTaskServiceImpl extends ServiceImpl json, HttpServletResponse response) { + ArrayList jsonObjects = new ArrayList<>(); + json.forEach(item -> { + List task = new ArrayList(); + task.add(item.getTask_id()); + task.add(item.getTask_code()); + task.add(item.getTask_status()); + task.add(item.getConfig_code()); + task.add(item.getVehicle_type()); + task.add(item.getVehicle_code()); + task.add(item.getRemark()); + task.add(item.getPoint_code1()); + task.add(item.getPoint_code2()); + task.add(item.getCreate_time()); + task.add(item.getUpdate_time()); + jsonObjects.add(task); + }); + String[] tableHeaderArr = {"任务ID","任务编码","任务状态","配置编码","载具类型","载具号","提示信息", "起点", "终点", "创建时间", "修改时间"}; + String fileName = "导出文件.csv"; + byte[] bytes = writeExcelAfterToBytes(tableHeaderArr, jsonObjects); + responseSetProperties(fileName, bytes, response); + } + + @Override + public List queryAll(Map whereJson) { + LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); + boolean more_task_status = StrUtil.toString(whereJson.get("more_task_status")).contains(","); + String[] moreTaskStatuses = new String[5]; + if(more_task_status){ + moreTaskStatuses = StrUtil.toString(whereJson.get("more_task_status")).split(","); + }else{ + moreTaskStatuses[0] = StrUtil.toString(whereJson.get("more_task_status")); + } + lam.eq(ObjectUtil.isNotEmpty(whereJson.get("task_code")), SchBaseTask::getTask_code, whereJson.get("task_code")) + .eq(ObjectUtil.isNotEmpty(whereJson.get("vehicle_code")), SchBaseTask::getVehicle_code, whereJson.get("vehicle_code")) + .eq(ObjectUtil.isNotEmpty(whereJson.get("point_code")), SchBaseTask::getPoint_code1, whereJson.get("point_code")) + .eq(ObjectUtil.isNotEmpty(whereJson.get("point_code")), SchBaseTask::getPoint_code2, whereJson.get("point_code")) + .ge(ObjectUtil.isNotEmpty(whereJson.get("begin_time")), SchBaseTask::getCreate_time, whereJson.get("begin_time")) + .le(ObjectUtil.isNotEmpty(whereJson.get("end_time")), SchBaseTask::getCreate_time, whereJson.get("end_time")) + .in(ObjectUtil.isNotEmpty(whereJson.get("more_task_status")), SchBaseTask::getTask_status, moreTaskStatuses) + .orderByDesc(SchBaseTask::getCreate_time); + return schBaseTaskMapper.selectList(lam); + } + + public static byte[] writeExcelAfterToBytes(String[] headers, ArrayList cellList) { + ExcelWriter writer = null; + ByteArrayOutputStream outputStream = null; + try { + writer = ExcelUtil.getBigWriter(); + writer.writeHeadRow(Arrays.asList(headers)); + writer.write(cellList, true); + outputStream = new ByteArrayOutputStream(); + writer.flush(outputStream); + }catch (Exception e){ + log.error("writeExcelAfterToBytes error:{}", e.getMessage(), e); + } finally { + writer.close(); + } + return outputStream.toByteArray(); + } + + public static void responseSetProperties(String fileName, byte[] bytes, HttpServletResponse response) { + try { + fileName = URLEncoder.encode(fileName, StandardCharsets.UTF_8.name()); + response.setContentType("application/csv"); + response.setCharacterEncoding(StandardCharsets.UTF_8.name()); + response.setHeader("Pragma", "public"); + response.setHeader("Cache-Control", "max-age=30"); + response.setHeader("Content-Disposition", "attachment; filename=" + fileName); + OutputStream outputStream = response.getOutputStream(); + outputStream.write(bytes); + outputStream.flush(); + } catch (IOException e) { + log.error("iostream error:{}", e.getMessage(), e); + } + } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AutoQueryFilePath.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AutoQueryFilePath.java index b2269fe..63a848c 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AutoQueryFilePath.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AutoQueryFilePath.java @@ -3,6 +3,11 @@ package org.nl.wms.sch.task_manage; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.http.HttpRequest; +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.jcraft.jsch.ChannelSftp; import com.jcraft.jsch.JSch; @@ -18,15 +23,16 @@ import org.nl.system.service.param.impl.SysParamServiceImpl; import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum; +import org.nl.wms.util.PrintUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import sun.misc.BASE64Encoder; import javax.imageio.ImageIO; +import java.awt.*; import java.io.*; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; +import java.net.InetAddress; +import java.nio.file.*; import java.util.Arrays; import java.util.List; import java.util.Vector; @@ -43,126 +49,24 @@ public class AutoQueryFilePath { @Autowired private ISchBaseVehiclematerialgroupService iSchBaseVehiclematerialgroupService; - @Autowired - private SysParamServiceImpl sysParamService; - - @Autowired - private ISysNoticeService noticeService; - - private String materialUrl = null; - - private File directory = null; - @SneakyThrows public void run() { List materials = iSchBaseVehiclematerialgroupService.selectMaterialPathIsEmpty(); - - Param byCode = sysParamService.findByCode(GeneralDefinition.MATERIAL_URL); - String materialUrl = byCode.getValue(); - directory = new File(materialUrl); - if (ObjectUtil.isNotEmpty(directory) && !directory.exists()) { - directory = new File(materialUrl); - } - if (ObjectUtil.isNotEmpty(directory) && CollUtil.isNotEmpty(materials)) { - if (directory.exists() && directory.isDirectory()) { - noticeService.createNotice("开始查询物料图片路径!", IdUtil.randomUUID(), - NoticeTypeEnum.WARN.getCode()); - selectMaterialPath(directory, materials); - noticeService.createNotice("结束查询物料图片路径!", IdUtil.randomUUID(), - NoticeTypeEnum.WARN.getCode()); - } else { - noticeService.createNotice("物料图片路径!" + directory.exists(), IdUtil.randomUUID(), - NoticeTypeEnum.WARN.getCode()); - } - } - } - - public void applyMaterialPath(String url) { - System.setProperty("jcifs.smb.client.username", ""); - System.setProperty("jcifs.smb.client.password", ""); - System.setProperty("jcifs.smb.client.domain", ""); - ByteArrayOutputStream byteArrayOutputStream; - InputStream inputStream; - try { - SmbFile smbFile = new SmbFile(url); - if (ObjectUtil.isNotEmpty(smbFile) && (smbFile.isFile() || smbFile.isDirectory())) { - noticeService.createNotice("物料图片路径:" + smbFile.isFile() + ":" + smbFile.isDirectory(), IdUtil.randomUUID(), - NoticeTypeEnum.WARN.getCode()); - } else { - noticeService.createNotice("物料图片路径", IdUtil.randomUUID(), - NoticeTypeEnum.WARN.getCode()); - } - } catch (Exception e) { - noticeService.createNotice("报错:" + e.getMessage(), IdUtil.randomUUID(), - NoticeTypeEnum.WARN.getCode()); - e.printStackTrace(); - } - - } - - public static void main(String[] args) { - // 设置远程计算机的 SMB URL - String url = "smb://192.168.10.59/Users/Administrator/Desktop/9000/9002/9002_large.png"; - - // 设置用户名和密码(如果有域名也可以指定) - String username = "Administrator"; - String password = "20001217"; - String domain = ""; // 如果没有域,可以为空字符串 - - // 配置 JCIFS 客户端的用户名、密码和域 - System.setProperty("jcifs.smb.client.username", username); - System.setProperty("jcifs.smb.client.password", password); - System.setProperty("jcifs.smb.client.domain", domain); - - try { - // 创建一个 SmbFile 对象,表示远程共享文件 - SmbFile smbFile = new SmbFile(url); - - /*SmbFile[] smbFiles = smbFile.listFiles(); - for (int i = 0; i < Arrays.stream(smbFiles).count(); i++) { - SmbFile smbFile1 = smbFiles[i]; - boolean directory = smbFile1.isDirectory(); - }*/ - - // 打开文件输入流 - InputStream inputStream = new SmbFileInputStream(smbFile); - // 使用 ByteArrayOutputStream 收集数据 - ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); - byte[] buffer = new byte[1024]; - int bytesRead; - while ((bytesRead = inputStream.read(buffer)) != -1) { - byteArrayOutputStream.write(buffer, 0, bytesRead); - } - // 将 ByteArrayOutputStream 转换为字节数组 - byte[] fileBytes = byteArrayOutputStream.toByteArray(); - BASE64Encoder encoder = new BASE64Encoder(); - System.out.println("data:image/png;base64," + encoder.encode(fileBytes).replace("\r\n", "")); - // 关闭文件读取器 - byteArrayOutputStream.close(); - inputStream.close(); - } catch (Exception e) { - e.printStackTrace(); - } - } - - - /** - * 查找物料图片路径 - */ - public void selectMaterialPath(File directory, List materials) { - File[] files = directory.listFiles(); - if (files != null) { - for (File file : files) { - if (file.isDirectory()) { - selectMaterialPath(file, materials); - } else if (file.isFile() && CollUtil.contains(materials, file.getName().substring(0, file.getName().lastIndexOf('.')))) { - String material = file.getName().substring(0, file.getName().lastIndexOf('.')); - iSchBaseVehiclematerialgroupService.update(Wrappers.lambdaUpdate(SchBaseVehiclematerialgroup.class) - .eq(SchBaseVehiclematerialgroup::getMaterial_id, material) - .set(SchBaseVehiclematerialgroup::getMaterial_path, file.getPath())); - } - } - } + InetAddress localhost = InetAddress.getLocalHost(); + String url = localhost.getHostAddress() + ":" + 8083 + "//api/file/selectPath"; + log.info("查询物料路径:{}",url); + String resultMsg = HttpRequest.post(url) + .body(JSON.toJSONString(materials)) + .execute().body(); + log.info("物料路径查询结果:{}", resultMsg); + JSONArray jsonArray = JSONUtil.parseArray(resultMsg); + jsonArray.forEach(item -> { + JSONObject jsonObject = JSONUtil.parseObj(item); + iSchBaseVehiclematerialgroupService.update(Wrappers.lambdaUpdate(SchBaseVehiclematerialgroup.class) + .eq(SchBaseVehiclematerialgroup::getMaterial_id, jsonObject.getStr("name")) + .set(SchBaseVehiclematerialgroup::getMaterial_path, jsonObject.getStr("value")) + ); + }); } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/GeneralDefinition.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/GeneralDefinition.java index 441254e..ee857cc 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/GeneralDefinition.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/GeneralDefinition.java @@ -109,7 +109,14 @@ public class GeneralDefinition { * 是否连接 */ public static final String IS_CONNECT_ACS = "is_connect_acs"; + /** + * 是否连接connector + */ public static final String IS_CONNECT_CONNECTOR = "is_connect_connector"; + /** + * 是否连接wms + */ + public static final String IS_CONNECT_WMS = "is_connect_wms"; /** * 外协区到冲床一自动门 */ @@ -134,7 +141,14 @@ public class GeneralDefinition { * CONNECTOR路径 */ public static final String CONNECTOR_URL = "connector_url"; + /** + * Sorting路径 + */ public static final String SORTING_URL = "sorting_url"; + /** + * wms路径 + */ + public static final String WMS_URL = "wms_url"; /** * 是否连接 */ @@ -179,6 +193,18 @@ public class GeneralDefinition { * 物料图片路径 */ public static final String MATERIAL_URL = "material_url"; + /** + * 模板存放路径 + */ + public static final String TEMPLATE_URL = "template_url"; + /** + * 数据文件路径 + */ + public static final String FILE_URL = "file_url"; + /** + * 打印机名称 + */ + public static final String PRINTER_NAME = "printer_ame"; public static final Map> CYZZD01 = MapOf.of("CYZZD01", ListUtil.of("CYXLDJW01", "CYXLDJW02")); public static final Map> CYZZD02 = MapOf.of("CYZZD02", ListUtil.of("CYXLDJW03", "CYXLDJW04")); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/ConnectorUtil.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/ConnectorUtil.java index d3116b1..a84a7a7 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/ConnectorUtil.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/ConnectorUtil.java @@ -13,6 +13,8 @@ import org.nl.config.SpringContextHolder; import org.nl.system.service.param.dao.Param; import org.nl.system.service.param.impl.SysParamServiceImpl; import org.nl.wms.ext.acs.service.dto.to.wms.AcsResponse; +import org.nl.wms.ext.connector.service.dto.ConnectorDto; +import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; import org.nl.wms.sch.task_manage.AcsTaskDto; import org.nl.wms.sch.task_manage.GeneralDefinition; import org.springframework.http.HttpStatus; @@ -26,44 +28,6 @@ import java.util.Map; */ @Slf4j public class ConnectorUtil { - public static JSONObject notifyAcs(String api, List list) { - //判断是否连接ACS系统 - String isConnect = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("is_connect_acs").getValue(); - // list转JSONArray - String s = JSON.toJSONString(list); - JSONObject result = new JSONObject(); - if (StrUtil.equals("0", isConnect)) { - result.put("status", HttpStatus.BAD_REQUEST.value()); - result.put("message", "未连接ACS!"); - result.put("data", new JSONObject()); - return result; - } - //ACS地址:127.0.0.1:8010 - String acsUrl = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("acs_url").getValue(); - - String url = acsUrl + api; - log.info("下发acs任务的参数为:{}", list.toString()); - try { - String resultMsg = HttpRequest.post(url) - .body(s) - .execute().body(); - result = JSONObject.parseObject(resultMsg); - } catch (Exception e) { - String msg = e.getMessage(); - //ConnectException: Connection refused: connect - //网络不通 - log.error("连接失败:{}", msg); - result.put("status", HttpStatus.BAD_REQUEST); - result.put("message", "网络不通,操作失败!"); - result.put("data", new JSONObject()); - } - //acs抛异常这里 - /* if (result.getString("status").equals(String.valueOf(HttpStatus.BAD_REQUEST.value()))) - throw new BadRequestException(result.getString("message"));*/ - // 如果下发完毕,就修改状态 - return result; - } - /** * 新的请求方式:对象中包含数组 * @@ -197,4 +161,20 @@ public class ConnectorUtil { } return result; } + + public static SchBaseVehiclematerialgroup createObject(ConnectorDto connectorDto) { + SchBaseVehiclematerialgroup schBaseVehiclematerialgroup = new SchBaseVehiclematerialgroup(); + schBaseVehiclematerialgroup.setGroup_id(connectorDto.getID()); + schBaseVehiclematerialgroup.setVehicle_code(connectorDto.getVehicle_code()); + schBaseVehiclematerialgroup.setJob_name(connectorDto.getJobname()); + schBaseVehiclematerialgroup.setMaterial_id(connectorDto.getProductID()); + schBaseVehiclematerialgroup.setMaterial_qty(connectorDto.getCurrentqty()); + schBaseVehiclematerialgroup.setRegion_code(connectorDto.getNextOperation()); + schBaseVehiclematerialgroup.setExtend(JSON.toJSONString(connectorDto)); + schBaseVehiclematerialgroup.setOrder_code(connectorDto.getProductionOrder()); + schBaseVehiclematerialgroup.setDue_date(connectorDto.getDue_date()); + schBaseVehiclematerialgroup.setPriority(connectorDto.getPriority()); + schBaseVehiclematerialgroup.setCreate_name(connectorDto.getCreate_name()); + return schBaseVehiclematerialgroup; + } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/WmsUtil.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/WmsUtil.java new file mode 100644 index 0000000..7291ded --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/WmsUtil.java @@ -0,0 +1,68 @@ +package org.nl.wms.sch.task_manage.task; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpRequest; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import lombok.extern.slf4j.Slf4j; +import org.nl.config.MapOf; +import org.nl.config.SpringContextHolder; +import org.nl.system.service.param.dao.Param; +import org.nl.system.service.param.impl.SysParamServiceImpl; +import org.nl.wms.ext.acs.service.dto.to.wms.AcsResponse; +import org.nl.wms.sch.task_manage.GeneralDefinition; +import org.springframework.http.HttpStatus; + +import java.util.Map; + +/** + * ACS连接工具类: + */ +@Slf4j +public class WmsUtil { + + /** + * 新的请求方式:对象中包含数组 + * + * @param api + * @param object + * @param + * @return + */ + public static JSONObject notifyWms(String api, T object) { + SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class); + Param isConnectConnector = sysParamService.findByCode(GeneralDefinition.IS_CONNECT_WMS); + if (ObjectUtil.isEmpty(isConnectConnector)) { + log.info("参数表中:" + GeneralDefinition.IS_CONNECT_WMS + "不存在"); + return new JSONObject(); + } + String isConnect = isConnectConnector.getValue(); + Param connectorUrlObj = sysParamService.findByCode(GeneralDefinition.WMS_URL); + if (ObjectUtil.isEmpty(connectorUrlObj)) { + log.info("参数表中:" + GeneralDefinition.WMS_URL + "不存在"); + return new JSONObject(); + } + String connectorUrl = connectorUrlObj.getValue(); + JSONObject result; + if (StrUtil.equals(GeneralDefinition.NO, isConnect)) { + log.info("未连接Wms!"); + return new JSONObject(); + } + String url = connectorUrl + api; + log.info("反馈WMS物料送达到内部加工区:{},url:{}", JSON.toJSONString(object), url); + try { + String resultMsg = HttpRequest.post(url) + .body(JSON.toJSONString(object)) + .execute().body(); + result = JSONObject.parseObject(resultMsg); + log.info("反馈WMS物料送达到内部加工区的响应参数为:{}", result); + } catch (Exception e) { + String msg = e.getMessage(); + //网络不通 + log.error("连接失败:{}", msg); + return JSONObject.parseObject(StrUtil.toString(AcsResponse.requestRefuse("网络不通,操作失败!"))); + } + return result; + } +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/handheld/BlankingTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/handheld/BlankingTask.java index bc7110a..b6cfd9d 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/handheld/BlankingTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/handheld/BlankingTask.java @@ -2,14 +2,18 @@ package org.nl.wms.sch.task_manage.task.tasks.handheld; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import org.nl.common.enums.GoodsEnum; import org.nl.common.exception.BadRequestException; +import org.nl.common.utils.SecurityUtils; import org.nl.system.service.notice.ISysNoticeService; import org.nl.wms.database.vehicle.service.IMdBaseVehicleService; import org.nl.wms.database.vehicle.service.dao.MdBaseVehicle; import org.nl.wms.ext.acs.service.dto.to.BaseResponse; +import org.nl.wms.ext.connector.service.dto.ConnectorDto; import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; import org.nl.wms.sch.point.service.ISchBasePointService; @@ -149,6 +153,25 @@ public class BlankingTask extends AbstractTask { .set(SchBasePoint::getPoint_status, GoodsEnum.IN_STOCK.getValue()) .set(SchBasePoint::getIs_lock, false)); } + schBaseVehiclematerialgroupService.remove(Wrappers.lambdaQuery(SchBaseVehiclematerialgroup.class) + .eq(SchBaseVehiclematerialgroup::getVehicle_code, taskObj.getVehicle_code())); + String request_param = taskObj.getRequest_param(); + JSONObject jsonObject1 = JSONObject.parseObject(request_param); + String finalRegion_code = jsonObject1.getString("region_code"); + JSONArray materials = jsonObject1.getJSONArray("materials"); + materials.forEach(material -> { + cn.hutool.json.JSONObject jsonObject = JSONUtil.parseObj(material); + SchBaseVehiclematerialgroup schBaseVehiclematerialgroup = new SchBaseVehiclematerialgroup(); + schBaseVehiclematerialgroup.setVehicle_code(taskObj.getVehicle_code()); + schBaseVehiclematerialgroup.setMaterial_qty(jsonObject.getInt("material_qty")); + schBaseVehiclematerialgroup.setMaterial_id(jsonObject.getStr("material_code")); + schBaseVehiclematerialgroup.setOrder_code(jsonObject.getStr("order_code")); + schBaseVehiclematerialgroup.setDue_date(jsonObject.getStr("due_date")); + schBaseVehiclematerialgroup.setCreate_name(SecurityUtils.getCurrentNickName()); + schBaseVehiclematerialgroup.setPriority(jsonObject.getStr("priority")); + schBaseVehiclematerialgroup.setRegion_code(StrUtil.isBlank(finalRegion_code) ? jsonObject.getStr("region_code") : finalRegion_code); + schBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup); + }); // 任务完成 taskObj.setTask_status(TaskStatus.FINISHED.getCode()); taskObj.setRemark(GeneralDefinition.TASK_FINISH); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/pcoperation/PcOperationSMTTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/pcoperation/PcOperationSMTTask.java index a8fb78f..b21c8b5 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/pcoperation/PcOperationSMTTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/pcoperation/PcOperationSMTTask.java @@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -18,6 +19,8 @@ import org.nl.system.service.notice.ISysNoticeService; import org.nl.wms.ext.acs.service.dto.to.BaseResponse; import org.nl.wms.ext.fab.service.dto.CallEmpVo; import org.nl.wms.ext.fab.service.dto.SendMaterVo; +import org.nl.wms.ext.fab.service.dto.SendVehicleVo; +import org.nl.wms.ext.fab.service.dto.SendVehiclesVo; import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; import org.nl.wms.sch.point.service.ISchBasePointService; @@ -86,37 +89,6 @@ public class PcOperationSMTTask extends AbstractTask { NoticeTypeEnum.WARN.getCode()); continue; } - List sendMaterVos = new ArrayList<>(); - if (CollUtil.isNotEmpty(sendMaterVo.getMaterial_info())) { - sendMaterVo.getMaterial_info().stream().forEach(sendMater -> { - JSONObject jsonObject = JSONObject.parseObject(sendMater); - SendMaterVo sendMaterVo1 = new SendMaterVo(); - sendMaterVo1.setMaterial_qty(jsonObject.getInteger("material_qty")); - sendMaterVo1.setOrder_code(jsonObject.getString("order_code")); - sendMaterVo1.setDue_date(jsonObject.getString("due_date")); - sendMaterVo1.setRegion_code(jsonObject.getString("region_code")); - sendMaterVo1.setPriority(jsonObject.getString("priority")); - sendMaterVos.add(sendMaterVo1); - }); - } - //删除组盘记录生成新的 - schBaseVehiclematerialgroupService.remove(new QueryWrapper().eq("vehicle_code", sendMaterVo.getVehicle_code())); - if (CollUtil.isNotEmpty(sendMaterVos)) { - SchBasePoint finalSchBasePoint = schBasePoint; - sendMaterVos.stream().forEach(smv -> { - SchBaseVehiclematerialgroup schBaseVehiclematerialgroup = new SchBaseVehiclematerialgroup(); - schBaseVehiclematerialgroup.setVehicle_code(sendMaterVo.getVehicle_code()); - schBaseVehiclematerialgroup.setPoint_code(finalSchBasePoint.getPoint_code()); - schBaseVehiclematerialgroup.setMaterial_id(smv.getMaterial_id()); - schBaseVehiclematerialgroup.setMaterial_qty(smv.getMaterial_qty()); - schBaseVehiclematerialgroup.setRegion_code(smv.getRegion_code()); - schBaseVehiclematerialgroup.setOrder_code(smv.getOrder_code()); - schBaseVehiclematerialgroup.setDue_date(smv.getDue_date()); - schBaseVehiclematerialgroup.setHas_work(sendMaterVo.getHas_work()); - schBaseVehiclematerialgroup.setPriority(smv.getPriority()); - schBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup); - }); - } // 设置终点并修改创建成功状态 task.setPoint_code2(schBasePoint.getPoint_code()); task.setVehicle_type(schBasePoint.getCan_vehicle_type()); @@ -180,6 +152,27 @@ public class PcOperationSMTTask extends AbstractTask { .set(SchBasePoint::getPoint_status, GoodsEnum.IN_STOCK.getValue()) .set(SchBasePoint::getIs_lock, false)); } + SendMaterVo sendMaterVo = JSONObject.parseObject(taskObj.getRequest_param(),SendMaterVo.class); + List sendMaterVos = new ArrayList<>(); + sendMaterVo.getMaterial_info().forEach(materVo -> { + sendMaterVos.add(BeanUtil.copyProperties(JSONUtil.parseObj(materVo),SendMaterVo.class)); + }); + //删除组盘记录生成新的 + schBaseVehiclematerialgroupService.remove(new QueryWrapper().eq("vehicle_code", sendMaterVo.getVehicle_code())); + if (CollUtil.isNotEmpty(sendMaterVos)) { + sendMaterVos.forEach(smv -> { + SchBaseVehiclematerialgroup schBaseVehiclematerialgroup = new SchBaseVehiclematerialgroup(); + schBaseVehiclematerialgroup.setVehicle_code(sendMaterVo.getVehicle_code()); + schBaseVehiclematerialgroup.setPoint_code(schBasePoint.getPoint_code()); + schBaseVehiclematerialgroup.setMaterial_id(smv.getMaterial_code()); + schBaseVehiclematerialgroup.setMaterial_qty(smv.getMaterial_qty()); + schBaseVehiclematerialgroup.setRegion_code(smv.getRegion_code()); + schBaseVehiclematerialgroup.setOrder_code(smv.getOrder_code()); + schBaseVehiclematerialgroup.setDue_date(smv.getDue_date()); + schBaseVehiclematerialgroup.setPriority(smv.getPriority()); + schBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup); + }); + } // 任务完成 taskObj.setTask_status(TaskStatus.FINISHED.getCode()); taskObj.setRemark(GeneralDefinition.TASK_FINISH); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/pcoperation/ProcessingSMTTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/pcoperation/ProcessingSMTTask.java index bdd07b9..cc97312 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/pcoperation/ProcessingSMTTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/pcoperation/ProcessingSMTTask.java @@ -1,23 +1,35 @@ package org.nl.wms.sch.task_manage.task.tasks.pcoperation; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSONObject; +import com.aspose.pdf.Document; +import com.aspose.pdf.TextAbsorber; +import com.aspose.pdf.TextFragment; +import com.aspose.pdf.TextFragmentAbsorber; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.nl.common.enums.GoodsEnum; +import org.nl.common.enums.region.RegionEnum; import org.nl.common.enums.wms.PointStatusEnum; import org.nl.common.exception.BadRequestException; import org.nl.common.utils.SecurityUtils; import org.nl.system.service.notice.ISysNoticeService; +import org.nl.system.service.param.dao.Param; +import org.nl.system.service.param.impl.SysParamServiceImpl; import org.nl.wms.database.vehicle.service.IMdBaseVehicleService; import org.nl.wms.database.vehicle.service.dao.MdBaseVehicle; import org.nl.wms.ext.acs.service.dto.to.BaseResponse; import org.nl.wms.ext.fab.service.dto.SendMaterVo; +import org.nl.wms.ext.fab.service.dto.SendVehicleVo; +import org.nl.wms.ext.wms.service.LmsToWmsService; import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; import org.nl.wms.sch.point.service.ISchBasePointService; @@ -31,11 +43,17 @@ import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum; import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum; import org.nl.wms.sch.task_manage.task.core.TaskStatus; import org.nl.wms.util.PointUtils; +import org.nl.wms.util.PrintUtil; import org.nl.wms.util.TaskUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import java.io.*; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * 物料下料转运在外协内部加工区 @@ -60,6 +78,10 @@ public class ProcessingSMTTask extends AbstractTask { private ISchBaseVehiclematerialgroupService schBaseVehiclematerialgroupService; @Autowired private IMdBaseVehicleService mdBaseVehicleService; + @Autowired + private LmsToWmsService lmsToWmsService; + @Autowired + private SysParamServiceImpl sysParamService; @Override protected void create() throws BadRequestException { @@ -79,7 +101,6 @@ public class ProcessingSMTTask extends AbstractTask { NoticeTypeEnum.WARN.getCode()); continue; } - //TODO: 分配逻辑 SchBasePoint schBasePoint = schBasePointService.selectGroundByRegionCode(targetRegionCode, GoodsEnum.OUT_OF_STOCK.getValue()); if (ObjectUtil.isEmpty(schBasePoint)) { task.setRemark("未找到所需点位!"); @@ -89,8 +110,6 @@ public class ProcessingSMTTask extends AbstractTask { NoticeTypeEnum.WARN.getCode()); continue; } - //删除组盘记录生成新的 - //schBaseVehiclematerialgroupService.remove(new QueryWrapper().eq("vehicle_code", sendMaterVo.getVehicle_code())); // 设置终点并修改创建成功状态 task.setPoint_code2(schBasePoint.getPoint_code()); task.setVehicle_type(schBasePoint.getCan_vehicle_type()); @@ -166,27 +185,64 @@ public class ProcessingSMTTask extends AbstractTask { .set(SchBasePoint::getPoint_status, point_status) .set(SchBasePoint::getIs_lock, false)); } - schBaseVehiclematerialgroupService.remove(new QueryWrapper().eq("vehicle_code", taskObj.getVehicle_code())); cn.hutool.json.JSONObject jsonObject2 = JSONUtil.parseObj(taskObj.getRequest_param()); - JSONArray materials = jsonObject2.getJSONArray("mater"); - materials.stream().forEach(material -> { - String replace = StrUtil.replace(StrUtil.toString(material), "=", ":"); - replace = replace.replaceAll("material_code:,", ""); - cn.hutool.json.JSONObject jsonObject1 = JSONUtil.parseObj(replace); - if (replace.contains("OR")) { - Object materialCode = jsonObject1.get("order_code"); - jsonObject1.put("order_code", materialCode.toString()); - replace = jsonObject1.toString(); + String region_code = jsonObject2.getStr("region_code"); + JSONArray materials = jsonObject2.getJSONArray("material"); + if (CollUtil.isEmpty(materials)) { + materials = jsonObject2.getJSONArray("mater"); + } + List sendVehicleVos = BeanUtil.copyToList(materials, SendVehicleVo.class); + sendVehicleVos.forEach(sendVehicleVo -> { + String dueDate = schBaseVehiclematerialgroupService.selectDueDateByVehicleCode(sendVehicleVo); + sendVehicleVo.setDue_date(dueDate); + }); + if (region_code.equals(RegionEnum.NBJG.getRegion_code())) { + JSONObject jsonObject3 = new JSONObject(); + jsonObject3.put("vehicle_code", taskObj.getVehicle_code()); + jsonObject3.put("id", taskObj.getTask_code()); + JSONArray jsonArray = new JSONArray(); + sendVehicleVos.forEach(sendVehicleVo -> { + JSONObject jsonObject4 = new JSONObject(); + jsonObject4.put("product_id", sendVehicleVo.getMaterial_code()); + jsonObject4.put("current_qty", sendVehicleVo.getMaterial_qty()); + jsonObject4.put("production_order", sendVehicleVo.getOrder_code()); + jsonObject4.put("due_date", sendVehicleVo.getDue_date()); + jsonArray.add(jsonObject4); + }); + jsonObject3.put("materials", jsonArray); + lmsToWmsService.feedbackMaterialStatus(jsonObject3); + } else if (region_code.equals(RegionEnum.WXJG.getRegion_code())) { + Param byCode = sysParamService.findByCode(GeneralDefinition.TEMPLATE_URL); + Param filePath = sysParamService.findByCode(GeneralDefinition.FILE_URL); + Param printerName = sysParamService.findByCode(GeneralDefinition.PRINTER_NAME); + if (ObjectUtil.isEmpty(byCode) || ObjectUtil.isEmpty(filePath) || ObjectUtil.isEmpty(printerName)) { + throw new BadRequestException("请先配置模板或存放文件地址,或打印机名称"); } - JSONObject jsonObject = JSONObject.parseObject(replace); + JSONObject json = new JSONObject(); + json.put("vehicleCode", taskObj.getVehicle_code()); + JSONArray jsonArray = new JSONArray(); + sendVehicleVos.forEach(sendVehicleVo -> { + JSONObject jsonObject4 = new JSONObject(); + jsonObject4.put("number", sendVehicleVo.getMaterial_code()); + jsonObject4.put("qty", sendVehicleVo.getMaterial_qty()); + jsonObject4.put("orderCode", sendVehicleVo.getOrder_code()); + jsonObject4.put("dueDate", StrUtil.isNotEmpty(sendVehicleVo.getDue_date()) ? sendVehicleVo.getDue_date() : "2024-12-17 12:00:00"); + jsonObject4.put("next", StrUtil.isNotEmpty(sendVehicleVo.getRegion_code()) ? sendVehicleVo.getRegion_code() : "111-10"); + jsonArray.add(jsonObject4); + }); + json.put("data", jsonArray); + PrintUtil.printWord(byCode.getValue(), json, filePath.getValue(), printerName.getValue()); + } + schBaseVehiclematerialgroupService.remove(new QueryWrapper().eq("vehicle_code", taskObj.getVehicle_code())); + sendVehicleVos.forEach(sendVehicleVo -> { SchBaseVehiclematerialgroup schBaseVehiclematerialgroup = new SchBaseVehiclematerialgroup(); schBaseVehiclematerialgroup.setVehicle_code(taskObj.getVehicle_code()); - schBaseVehiclematerialgroup.setMaterial_qty(jsonObject.getInteger("material_qty")); - schBaseVehiclematerialgroup.setMaterial_code(jsonObject.getString("material_code")); - schBaseVehiclematerialgroup.setOrder_code(jsonObject.getString("order_code")); - schBaseVehiclematerialgroup.setDue_date(jsonObject.getString("due_date")); + schBaseVehiclematerialgroup.setMaterial_qty(sendVehicleVo.getMaterial_qty()); + schBaseVehiclematerialgroup.setMaterial_id(sendVehicleVo.getMaterial_code()); + schBaseVehiclematerialgroup.setOrder_code(sendVehicleVo.getOrder_code()); + schBaseVehiclematerialgroup.setDue_date(sendVehicleVo.getDue_date()); schBaseVehiclematerialgroup.setCreate_name(SecurityUtils.getCurrentNickName()); - schBaseVehiclematerialgroup.setRegion_code(schBasePoint2.getPoint_code()); + //schBaseVehiclematerialgroup.setRegion_code(schBasePoint2.getPoint_code()); schBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup); }); // 任务完成 @@ -197,6 +253,7 @@ public class ProcessingSMTTask extends AbstractTask { taskService.updateById(taskObj); } + public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { // 获取参数 SchBasePoint schBasePoint1 = schBasePointService.selectByPointCode(taskObj.getPoint_code2()); @@ -211,11 +268,6 @@ public class ProcessingSMTTask extends AbstractTask { PointUtils.setUpdateByAcs(schBasePoint); schBasePointService.updateById(schBasePoint); } - if (StrUtil.isNotEmpty(taskObj.getVehicle_code())) { - schBaseVehiclematerialgroupService.remove(Wrappers.lambdaQuery(SchBaseVehiclematerialgroup.class) - .eq(SchBaseVehiclematerialgroup::getVehicle_code, taskObj.getVehicle_code())); - } - taskObj.setRemark(GeneralDefinition.TASK_CANCEL); taskObj.setTask_status(TaskStatus.CANCELED.getCode()); taskObj.setFinished_type(taskFinishedType.getCode()); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/vehicle/controller/BmVehicleInfoController.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/vehicle/controller/BmVehicleInfoController.java index 5b3dc50..dfe5306 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/vehicle/controller/BmVehicleInfoController.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/vehicle/controller/BmVehicleInfoController.java @@ -1,17 +1,24 @@ package org.nl.wms.sch.vehicle.controller; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import io.swagger.annotations.ApiOperation; import org.nl.common.base.TableDataInfo; import org.nl.common.domain.query.PageQuery; import org.nl.common.logging.annotation.Log; import org.nl.wms.sch.vehicle.service.IBmVehicleInfoService; +import org.nl.wms.sch.vehicle.service.dao.BmVehicleInfo; import org.nl.wms.sch.vehicle.service.dto.VehicleQuery; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; /** *

@@ -38,7 +45,10 @@ public class BmVehicleInfoController { @GetMapping @Log("查询载具") public ResponseEntity query(VehicleQuery query, PageQuery page) { - return new ResponseEntity<>(TableDataInfo.build(vehicleInfoService.page(page.build(), query.build())), HttpStatus.OK); + return new ResponseEntity<>(TableDataInfo.build(vehicleInfoService.page(page.build(), Wrappers.lambdaQuery(BmVehicleInfo.class) + .like(StrUtil.isNotEmpty(query.getVehicle_code()),BmVehicleInfo::getVehicle_code, query.getVehicle_code()) + .eq(StrUtil.isNotEmpty(query.getVehicle_type()),BmVehicleInfo::getVehicle_type, query.getVehicle_type()) + .orderByDesc(BmVehicleInfo::getCreate_time))), HttpStatus.OK); } @PostMapping @@ -56,7 +66,7 @@ public class BmVehicleInfoController { @Log("删除载具") @DeleteMapping - public ResponseEntity delete(@RequestBody Long[] ids) { + public ResponseEntity delete(@RequestBody String[] ids) { vehicleInfoService.deleteAll(ids); return new ResponseEntity<>(HttpStatus.OK); } @@ -80,5 +90,12 @@ public class BmVehicleInfoController { vehicleInfoService.updateVehicleMaterial(form); return new ResponseEntity<>(HttpStatus.OK); } + + @PostMapping("/excelImport") + @Log("excel导入") + public ResponseEntity excelImport(MultipartFile file, HttpServletRequest request) { + vehicleInfoService.excelImport(file, request); + return new ResponseEntity<>(HttpStatus.OK); + } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/vehicle/service/IBmVehicleInfoService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/vehicle/service/IBmVehicleInfoService.java index 3aeda30..864ec5f 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/vehicle/service/IBmVehicleInfoService.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/vehicle/service/IBmVehicleInfoService.java @@ -7,7 +7,9 @@ import com.baomidou.mybatisplus.extension.service.IService; import org.nl.common.domain.query.PageQuery; import org.nl.wms.sch.vehicle.service.dao.BmVehicleInfo; import org.nl.wms.sch.vehicle.service.dto.VehicleQuery; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; import java.util.List; import java.util.Map; @@ -75,7 +77,7 @@ public interface IBmVehicleInfoService extends IService { * 多选删除 * @param ids / */ - void deleteAll(Long[] ids); + void deleteAll(String[] ids); /** * 多修改启用状态 @@ -88,4 +90,6 @@ public interface IBmVehicleInfoService extends IService { * @param code / */ JSONObject getVehicle(String code); + + void excelImport(MultipartFile file, HttpServletRequest request); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/vehicle/service/impl/BmVehicleInfoServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/vehicle/service/impl/BmVehicleInfoServiceImpl.java index 5bad9c0..721b296 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/vehicle/service/impl/BmVehicleInfoServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/vehicle/service/impl/BmVehicleInfoServiceImpl.java @@ -2,7 +2,11 @@ package org.nl.wms.sch.vehicle.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.poi.excel.ExcelReader; +import cn.hutool.poi.excel.ExcelUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -23,7 +27,10 @@ import org.nl.wms.sch.vehicle.service.dto.VehicleQuery; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import java.io.InputStream; import java.util.Arrays; import java.util.List; import java.util.Map; @@ -42,6 +49,9 @@ public class BmVehicleInfoServiceImpl extends ServiceImpl().eq("vehicle_code", vehicle_code)); @@ -55,7 +65,7 @@ public class BmVehicleInfoServiceImpl extends ServiceImpl().eq("value", map.getString("vehicle_type"))); + Dict dict = dictService.getOne(new QueryWrapper().eq("code", "can_vehicle_type").eq("value", map.getString("vehicle_type"))); if (dict == null) { throw new BadRequestException("此载具类型" + map.getString("vehicle_type") + "没有配置字典值"); } @@ -134,11 +144,11 @@ public class BmVehicleInfoServiceImpl extends ServiceImpl 0) { Arrays.stream(ids).forEach(id -> { this.remove(Wrappers.lambdaQuery(BmVehicleInfo.class) - .eq(BmVehicleInfo::getVehicle_code,String.valueOf(id))); + .eq(BmVehicleInfo::getVehicle_code, id)); }); } } @@ -158,4 +168,45 @@ public class BmVehicleInfoServiceImpl extends ServiceImpl> read = excelReader.read(1, excelReader.getRowCount()); + // 循环获取的数据 + for (int i = 0; i < read.size(); i++) { + List list = read.get(i); + JSONObject param = new JSONObject(); + String vehicleCode = list.get(0).toString(); + String vehicleType = list.get(1).toString(); + if (StrUtil.isEmpty(vehicleCode) || StrUtil.isEmpty(vehicleType)) { + throw new BadRequestException("载具号或载具类型为空!"); + } + BmVehicleInfo one = getOne(Wrappers.lambdaQuery(BmVehicleInfo.class).eq(BmVehicleInfo::getVehicle_code, vehicleCode)); + if(ObjectUtil.isNotEmpty(one)){ + continue; + } + Dict dict = dictService.getOne(new QueryWrapper().eq("code", "can_vehicle_type").eq("value", vehicleType)); + //按照列获取 + BmVehicleInfo entity = new BmVehicleInfo(); + entity.setVehicle_code(vehicleCode); + entity.setVehicle_name(dict.getLabel()); + entity.setCreate_name(SecurityUtils.getCurrentNickName()); + entity.setCreate_time(DateUtil.now()); + entity.setUpdate_name(SecurityUtils.getCurrentNickName()); + entity.setUpdate_time(DateUtil.now()); + entity.setVehicle_type(dict.getValue()); + this.save(entity); + } + } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/PrintUtil.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/PrintUtil.java new file mode 100644 index 0000000..73cc2c2 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/PrintUtil.java @@ -0,0 +1,157 @@ +package org.nl.wms.util; + + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.deepoove.poi.XWPFTemplate; +import com.deepoove.poi.config.Configure; +import com.deepoove.poi.exception.RenderException; +import com.deepoove.poi.policy.HackLoopTableRenderPolicy; +import com.spire.doc.Document; +import com.spire.ms.Printing.PrinterSettings; +import lombok.extern.slf4j.Slf4j; +import org.nl.system.service.param.impl.SysParamServiceImpl; +import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.io.*; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Arrays; +import java.util.List; + +/** + * @author + * @version 1.0 + * @date 2024-04-01 19:59 + * @description + */ +@Slf4j +public class PrintUtil { + + + public static void printWord(String templatePath, JSONObject json, String filePath, String printerName) { + XWPFTemplate template = null; + try { + FileInputStream fileInputStream = new FileInputStream(new File(templatePath)); + //设置占位符: + Configure config = Configure.builder() + .buildGramer("${", "}") + .setValidErrorHandler(new Configure.AbortHandler()) + .bind("data", new HackLoopTableRenderPolicy()) + .build(); + template = XWPFTemplate.compile(fileInputStream, config).render(json); + LocalDateTime now = LocalDateTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd_HHmmss"); + String formattedDateTime = now.format(formatter); + filePath = filePath + "\\template_" + formattedDateTime + ".docx"; + template.writeToFile(filePath); + Document document = new Document(); + document.loadFromFile(filePath); + PrinterSettings printerSettings = new PrinterSettings(); + printerSettings.setPrinterName(printerName); // "NPI269576" + printerSettings.setCopies((short) 1); + printerSettings.setFromPage(2); + printerSettings.setToPage(4); + printerSettings.setFromPage(1); + printerSettings.setToPage(document.getPageCount()); + document.getPrintDocument().setPrinterSettings(printerSettings); + document.getPrintDocument().print(); + } catch (RenderException | IOException ex) { + log.info("打印word的报错:{}", ex.getMessage()); + ex.printStackTrace(); + } finally { + try { + if (template != null) { + template.close(); + } + } catch (IOException ignored) { + } + } + } + + public static void main(String[] args) throws IOException { + //加载Word文档 + Document document = new Document(); + // document.loadFromFile("D:\\znxj\\downloadPath\\中.docx"); + document.loadFromFile("C:\\Users\\LENOVO\\Desktop\\1.docx"); + //创建PrinterSettings对象 + PrinterSettings printerSettings = new PrinterSettings(); + //指定物理打印机名称 + printerSettings.setPrinterName("NPI269576"); + //设置打印份数 + printerSettings.setCopies((short) 1); + //设置打印范围 + printerSettings.setFromPage(2); + printerSettings.setToPage(4); + // 设置打印的起始页和结束页为文档的第一页和最后一页 + printerSettings.setFromPage(1); + printerSettings.setToPage(document.getPageCount()); + //应用打印设置 + document.getPrintDocument().setPrinterSettings(printerSettings); + //执行打印 + document.getPrintDocument().print(); + + /*XWPFTemplate template = null; + ByteArrayOutputStream wordOut = new ByteArrayOutputStream(1024); + try { + File file = new File("C:\\Users\\LENOVO\\Desktop\\2.docx"); + FileInputStream fileInputStream = new FileInputStream(file); + //设置占位符: + Configure config = Configure.builder() + .buildGramer("${", "}") //设置模板中的占位符${}, 默认是{{}} + .setValidErrorHandler(new Configure.AbortHandler()) //若模板中占位符与填充属性不对应,则报错; + .bind("list", new HackLoopTableRenderPolicy()) //设置模板中表格的参数属性 + .build(); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("vehicleCode","G001"); + List jsonObjectList = new ArrayList<>(); + JSONObject jsonObject1 = new JSONObject(); + jsonObject1.put("orderCode","23451y4967"); + jsonObject1.put("number","328458732"); + jsonObject1.put("qty","22"); + jsonObject1.put("next","111-11"); + jsonObject1.put("dueDate","2023-12-12 04:00:00"); + jsonObject1.put("index","1"); + JSONObject jsonObject2 = new JSONObject(); + jsonObject2.put("orderCode","23451y496"); + jsonObject2.put("number","32845873"); + jsonObject2.put("qty","23"); + jsonObject2.put("next","111-12"); + jsonObject2.put("dueDate","2023-12-12 05:00:00"); + jsonObject2.put("index","2"); + jsonObjectList.add(jsonObject1); + jsonObjectList.add(jsonObject2); + jsonObject.put("list",jsonObjectList); + //填充文本域: + template = XWPFTemplate.compile(fileInputStream, config).render(jsonObject); +// template.write(wordOut); + template.writeToFile("C:\\Users\\LENOVO\\Desktop\\1.docx"); + }catch (RenderException | IOException ex){ + throw ex; + } finally { + try { + if (template != null){ + template.close(); + } + } catch (IOException ex) { + } + }*/ + } + + + public static File getFile(String filePath) { + File file = new File(filePath); + if (file.exists()) { + log.info("是文件:{}", Arrays.toString(file.list())); + return file; + } + log.info("不是文件"); + return file; + } + +} + diff --git a/lms/nladmin-system/nlsso-server/src/main/resources/lib/spire.office.free-5.3.1.jar b/lms/nladmin-system/nlsso-server/src/main/resources/lib/spire.office.free-5.3.1.jar new file mode 100644 index 0000000..de4ce7b Binary files /dev/null and b/lms/nladmin-system/nlsso-server/src/main/resources/lib/spire.office.free-5.3.1.jar differ diff --git a/lms/nladmin-system/nlsso-server/src/main/resources/log/LmsToWms.xml b/lms/nladmin-system/nlsso-server/src/main/resources/log/LmsToWms.xml new file mode 100644 index 0000000..89bdb41 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/resources/log/LmsToWms.xml @@ -0,0 +1,34 @@ + + + + + + + + + + ${LOG_HOME}/LmsToWms/%d{yyyy-MM-dd}.%i.log + + 15 + + 200MB + + 2GB + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + ${log.charset} + + + + + + + + + + + diff --git a/lms/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml b/lms/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml index a277c31..22f9cab 100644 --- a/lms/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml +++ b/lms/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml @@ -21,6 +21,7 @@ + diff --git a/lms/nladmin-ui/src/views/wms/sch/UploadDialog.vue b/lms/nladmin-ui/src/views/wms/sch/UploadDialog.vue new file mode 100644 index 0000000..d8e585c --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/sch/UploadDialog.vue @@ -0,0 +1,116 @@ + + + + diff --git a/lms/nladmin-ui/src/views/wms/sch/task/index.vue b/lms/nladmin-ui/src/views/wms/sch/task/index.vue index 2a365a3..a0bc0cc 100644 --- a/lms/nladmin-ui/src/views/wms/sch/task/index.vue +++ b/lms/nladmin-ui/src/views/wms/sch/task/index.vue @@ -79,7 +79,6 @@ size="mini" type="success" icon="el-icon-upload" - :disabled="crud.selections.length === 0" @click="uploadExcel()" > 导出 @@ -267,6 +266,8 @@ import CRUD, { crud, form, header, presenter } from '@crud/crud' import rrOperation from '@crud/RR.operation' import crudOperation from '@crud/CRUD.operation' import pagination from '@crud/Pagination' +import { downloadFile } from '@/utils' +import { download } from '@/api/data' const defaultForm = { task_id: null, @@ -342,9 +343,9 @@ export default { this.crud.toQuery() }, uploadExcel() { - const selectData = this.crud.selections - crudSchBaseTask.upload(selectData).then(res => { - console.log('++++++++++++++++++++', res) + download(this.crud.url + '/upload', this.crud.getQueryParams()).then(res => { + downloadFile(res, crud.title + '数据', 'csv') + this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS) }) }, handTaskStatus(value) { diff --git a/lms/nladmin-ui/src/views/wms/sch/vehicle/index.vue b/lms/nladmin-ui/src/views/wms/sch/vehicle/index.vue index aca866f..cca159d 100644 --- a/lms/nladmin-ui/src/views/wms/sch/vehicle/index.vue +++ b/lms/nladmin-ui/src/views/wms/sch/vehicle/index.vue @@ -46,7 +46,18 @@ - + + + 导入 + + - -