diff --git a/RuoYi-App-master/manifest.json b/RuoYi-App-master/manifest.json index e76addc..10b603b 100644 --- a/RuoYi-App-master/manifest.json +++ b/RuoYi-App-master/manifest.json @@ -8,7 +8,7 @@ "app-plus" : { "usingComponents" : true, "nvueCompiler" : "uni-app", - "splashscreen" : { + "splash" : { "alwaysShowBeforeRender" : true, "waiting" : true, "autoclose" : true, diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToErpApiController.java b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToErpApiController.java index 4002f80..da955af 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToErpApiController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToErpApiController.java @@ -32,7 +32,7 @@ public class ToErpApiController { /** * 回传其他出入库单 */ -// @Scheduled(fixedDelay = 1500) + @Scheduled(fixedDelay = 1500) public void callbackTransferBill() { toErpService.callbackTransferBill(); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToWmsApiController.java b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToWmsApiController.java index be1c869..35627b4 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToWmsApiController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToWmsApiController.java @@ -1,24 +1,36 @@ package com.ruoyi.api.controller; +import cn.hutool.core.date.DateUtil; +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.ruoyi.api.domain.ErpProduct; import com.ruoyi.api.domain.ReMaterialParam; import com.ruoyi.api.domain.RequestEnter; import com.ruoyi.api.domain.WmsJobRequest; import com.ruoyi.api.service.IToWmsService; +import com.ruoyi.bas.BasCustomer.domain.BasCustomer; +import com.ruoyi.bas.BasCustomer.service.IBasCustomerService; import com.ruoyi.bas.BasProduct.domain.BasProduct; import com.ruoyi.bas.BasProduct.service.IBasProductService; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.uuid.UUID; import com.ruoyi.log.domain.RequestLog; import com.ruoyi.log.service.IRequestLogService; +import com.ruoyi.out.outStockout.domain.OutStockout; import com.ruoyi.out.outStockout.domain.OutStockoutVo; import com.ruoyi.out.outStockout.service.IOutStockoutService; +import com.ruoyi.out.outStockoutDetail.domain.OutStockoutDetail; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; import java.util.Map; /** @@ -36,6 +48,8 @@ public class ToWmsApiController { private IOutStockoutService outStockoutService; @Autowired private IBasProductService basProductService; + @Autowired + private IBasCustomerService basCustomerService; /** * 入库请求生成作业 @@ -117,16 +131,66 @@ public class ToWmsApiController { /** * 出库单据保存 * - * @param outStockoutVo + * @param json * @return */ - @Log(title = "出库主单保存", businessType = BusinessType.OTHER) + //@Log(title = "出库主单保存", businessType = BusinessType.OTHER) @PostMapping("/saveOutBill") @ResponseBody - public AjaxResult saveBill(@RequestBody OutStockoutVo outStockoutVo) { - String stockOutId = outStockoutService.saveBill(outStockoutVo); + public AjaxResult saveBill(@RequestBody String json) { + JSONObject jsonObject = JSONUtil.parseObj(json); + Object codeObj = jsonObject.get("std_data"); + JSONObject obj = JSONUtil.parseObj(codeObj.toString()); + String doc = JSONUtil.parseObj(obj.get("parameter").toString()).get("data").toString(); + JSONObject param = JSONUtil.parseObj(doc); + OutStockoutVo outStockoutVo = new OutStockoutVo(); + OutStockout outStockout = new OutStockout(); + List list = new ArrayList<>(); + outStockout.setStockoutId(param.get("doc_no").toString()); + List outStockout1 = outStockoutService.selectOutStockoutList(outStockout); + if(outStockout1.size()>0){ + return AjaxResult.error("单据已推送!"); + } + outStockout.setStockoutGuid(UUID.randomUUID().toString()); + outStockout.setOutType("1"); + outStockout.setCreateDate(DateUtil.formatDateTime(new Date())); + outStockout.setCreateManId(param.get("create_user_name").toString()); + outStockout.setCustomerNo(param.get("customer_no").toString()); + BasCustomer customer = basCustomerService.selectBasCustomerByNo(param.get("customer_no").toString()); + if(customer == null){ + BasCustomer basCustomer = new BasCustomer(); + basCustomer.setId(UUID.randomUUID().toString()); + basCustomer.setCustomerNo(param.get("customer_no").toString()); + basCustomer.setCustomerName(param.get("customer_name").toString()); + basCustomer.setUseable("1"); + basCustomerService.insertBasCustomer(basCustomer); + } + outStockout.setStatus("1"); + outStockout.setStockoutSource("1"); + outStockout.setWarehouseId("01"); + JSONArray erpList = JSONUtil.parseArray(param.get("sales_issue_detail").toString()); + if(erpList.size()>0){ + for(int i=0;i param = new ErpInterfaceParam<>(); ErpStdData erpStdData = new ErpStdData<>(); ErpParameter objectErpParameter = new ErpParameter<>(); ArrayList list = new ArrayList(); WipTransferDoc wipTransferDoc = new WipTransferDoc(); - wipTransferDoc.setDOC_NO(basJobIdService.getJobId("5C21")); + wipTransferDoc.setDOC_NO(basJobIdService.getJobIdBy("5C21")); wipTransferDoc.setDOC_ID_DOC_CODE("5C21"); + wipTransferDoc.setDOC_DATE(DateUtil.formatDateTime(new Date())); + wipTransferDoc.setSOURCE_ID_WORK_CENTER_WORK_CENTER_CODE("QD09"); + wipTransferDoc.setFROM_ADMIN_UNIT_ID_ADMIN_UNIT_CODE("HM01G"); + wipTransferDoc.setFROM_ADMIN_UNIT_ID_START_DATE(DateUtil.formatDateTime(new Date())); + wipTransferDoc.setOwner_Dept_ADMIN_UNIT_CODE("HM01G"); + wipTransferDoc.setOwner_Dept_START_DATE(DateUtil.formatDateTime(new Date())); + wipTransferDoc.setOwner_Emp_EMPLOYEE_CODE("HM01G"); + String docNo = requestLogService.getRequestLogDoc(WORKSHOP_INBOUND_ORDER_URL,erpBill, basProduct.getProductId() , "获取工艺单号", "wms", "erp"); + if("".equals(docNo) || docNo == null) { + return AjaxResult.error(); + } WipTransferDocD wipTransferDocD = new WipTransferDocD(); - wipTransferDocD.setMO_ID_DOC_NO(basJobIdService.getJobId("5C21")); + wipTransferDocD.setMO_ID_DOC_NO(docNo); + wipTransferDocD.setTO_ADMIN_UNIT_ID_START_DATE(DateUtil.formatDateTime(new Date())); wipTransferDocD.setQTY("1"); - wipTransferDocD.setITEM_ID_ITEM_CODE(DateUtil.formatDateTime(new Date())); + wipTransferDocD.setITEM_ID_ITEM_CODE(basProduct.getProductId()); wipTransferDocD.setITEM_NAME(basProduct.getProductName()); wipTransferDocD.setITEM_SPECIFICATION(basProduct.getSpec()); - wipTransferDocD.setSOURCE_ID_WAREHOUSE_WAREHOUSE_CODE("Z251"); + wipTransferDocD.setSOURCE_ID_WAREHOUSE_WAREHOUSE_CODE("H041-1"); wipTransferDocD.setFROM_MO_ROUTING_D_ID_SequenceNumber(1); + wipTransferDocD.setFROM_MO_ROUTING_D_ID_Parent_MO_ID_DOC_NO(docNo); list.add(wipTransferDocD); wipTransferDoc.setWIP_TRANSFER_DOC_D(list); objectErpParameter.setDatas(List.of(wipTransferDoc)); erpStdData.setParameter(objectErpParameter); param.setStd_data(erpStdData); - RequestLog requestLog = requestLogService.getRequestLog(WORKSHOP_INBOUND_ORDER_URL, JSONUtil.toJsonStr(param), "创建工艺单","wms","erp"); -// String post = requestLog.getResponseBody(); -// ErpInterfaceParam bean = JSONUtil.toBean(post, ErpInterfaceParam.class); -// if ("0".equals(bean.getStd_data().getExecution().getCode())) { -// return AjaxResult.success(); -// } - if(requestLog != null && "1".equals(requestLog.getIsSuccessful())){ + RequestLog requestLog = requestLogService.getRequestLogGd(WORKSHOP_INBOUND_ORDER_URL, JSONUtil.toJsonStr(param), "创建工艺单", "wms", "erp"); + + if (requestLog != null && "1".equals(requestLog.getIsSuccessful())) { return AjaxResult.success(); - }else{ + } else { return AjaxResult.error(); } } @@ -109,51 +118,49 @@ public class ToErpServiceImpl implements IToErpService { ErpInOutBoundOrder erpInOutBoundOrder = new ErpInOutBoundOrder(); String docNo = ""; String docIdDocCode = ""; - if ("1".equals(transferBillCallback.getType())){ - docNo = basJobIdService.getJobId("11T1"); + if ("1".equals(transferBillCallback.getType())) { + docNo = basJobIdService.getJobIdBy("11T1"); docIdDocCode = "11T1"; - }else { - docNo = basJobIdService.getJobId("11T2"); + } else { + docNo = basJobIdService.getJobIdBy("11T2"); docIdDocCode = "11T2"; } erpInOutBoundOrder.setDOC_NO(docNo); erpInOutBoundOrder.setDOC_ID_DOC_CODE(docIdDocCode); - erpInOutBoundOrder.setDOC_ID_Owner_Org_PLANT_CODR("B0801"); + erpInOutBoundOrder.setDOC_ID_Owner_Org_PLANT_PLANT_CODE("B0801"); erpInOutBoundOrder.setDOC_DATE(DateUtil.formatDateTime(new Date())); erpInOutBoundOrder.setTRANSACTION_DATE(DateUtil.formatDateTime(new Date())); - erpInOutBoundOrder.setOwner_Emp_EMPLOYEE_CODE(""); + erpInOutBoundOrder.setOwner_Emp_EMPLOYEE_CODE("E11173"); erpInOutBoundOrder.setOwner_Org_PLANT_PLANT_CODE("B0801"); erpInOutBoundOrder.setApproveStatus("N"); erpInOutBoundOrder.setCATEGORY("11"); erpInOutBoundOrder.setCOMPANY_ID_COMPANY_CODE("B08"); - erpInOutBoundOrder.setOwner_Dept_ADMIN_UNIT_CODE(""); + erpInOutBoundOrder.setOwner_Dept_ADMIN_UNIT_CODE("HM01F"); erpInOutBoundOrder.setSTOCK_ACTION(1); - List mydoJobDetails = mydoJobDetailService.selectMydoJobDetailListByJobId(transferBillCallback.getJobId()); + //List mydoJobDetails = mydoJobDetailService.selectMydoJobDetailListByJobId(transferBillCallback.getJobId()); ArrayList erpTransactionDocDS = new ArrayList<>(); - for (int i = 0; i < mydoJobDetails.size(); i++) { - MydoJobDetail mydoJobDetail = mydoJobDetails.get(i); - ErpTransactionDocD erpTransactionDocD = new ErpTransactionDocD(); - erpTransactionDocD.setSequenceNumber(i+1); - erpTransactionDocD.setITEM_ID_ITEM_CODE(mydoJobDetail.getProductId()); - erpTransactionDocD.setITEM_DESCRIPTION(mydoJobDetail.getProductName()); - erpTransactionDocD.setITEM_SPECIFICATION(mydoJobDetail.getSpec()); - erpTransactionDocD.setBUSINESS_QTY(1.0); - erpTransactionDocD.setWAREHOUSE_ID_WAREHOUSE_CODE(""); - erpTransactionDocD.setWAREHOUSE_ID_Owner_Org_PLANT_PLANT_CODE(""); - erpTransactionDocD.setBUSINESS_UNIT_ID_UNIT_CODE(""); - erpTransactionDocD.setGENERATE_SOURCE(""); - erpTransactionDocDS.add(erpTransactionDocD); - } + ErpTransactionDocD erpTransactionDocD = new ErpTransactionDocD(); + erpTransactionDocD.setSequenceNumber(1); + erpTransactionDocD.setITEM_ID_ITEM_CODE(transferBillCallback.getSpare1()); + erpTransactionDocD.setITEM_DESCRIPTION(transferBillCallback.getSpare2()); + erpTransactionDocD.setITEM_SPECIFICATION(transferBillCallback.getSpare3()); + erpTransactionDocD.setBUSINESS_QTY(1.0); + erpTransactionDocD.setWAREHOUSE_ID_WAREHOUSE_CODE("H041-1"); + erpTransactionDocD.setWAREHOUSE_ID_Owner_Org_PLANT_PLANT_CODE("B0801"); + erpTransactionDocD.setBUSINESS_UNIT_ID_UNIT_CODE("TAI"); + erpTransactionDocD.setGENERATE_SOURCE(""); + erpTransactionDocDS.add(erpTransactionDocD); + erpInOutBoundOrder.setTRANSACTION_DOC_D(erpTransactionDocDS); list.add(erpInOutBoundOrder); objectErpParameter.setDatas(list); erpStdData.setParameter(objectErpParameter); param.setStd_data(erpStdData); - RequestLog requestLog = requestLogService.getRequestLog( OTHER_IN_OUTBOUND_ORDER_URL, JSONUtil.toJsonStr(param), "创建其他入出库单","wms","erp"); + RequestLog requestLog = requestLogService.getRequestLogOther(OTHER_IN_OUTBOUND_ORDER_URL, JSONUtil.toJsonStr(param), "创建其他入出库单", "wms", "erp"); - if(requestLog != null && "1".equals(requestLog.getIsSuccessful())){ + if (requestLog != null && "1".equals(requestLog.getIsSuccessful())) { return AjaxResult.success(); - }else{ + } else { return AjaxResult.error(); } // String post = requestLog.getResponseBody(); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWcsServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWcsServiceImpl.java index 048ef4f..0748738 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWcsServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWcsServiceImpl.java @@ -33,13 +33,13 @@ public class ToWcsServiceImpl implements IToWcsService { @Autowired private IAgvContainerTaskService agvContainerTaskService; - public static final String PUSH_OUT_MYDO_JOB = "http://localhost:8081/wcs2Wms/api/receiveOutMydoJob"; - public static final String PUSH_IN_MYDO_JOB = "http://localhost:8081/wcs2Wms/api/receiveInMydoJob"; - public static final String PUSH_AGV_MOVE_JOB = "http://localhost:8081/agv/api/receiveAgvMoveJob"; - public static final String OUT_MYDOJOB_MS = "http://localhost:8081/wcs2Wms/api/outMydojobMakesure"; - public static final String CANCEL_MYDOJOB = "http://localhost:8081/wcs2Wms/api/cancelMydoJob"; - public static final String SELECT_WCS_PORT = "http://localhost:8081/wcs2Wms/api/selectWcsPort"; - public static final String UPDATE_WCS_PORT = "http://localhost:8081/wcs2Wms/api/updateWcsPort"; + public static final String PUSH_OUT_MYDO_JOB = "http://192.168.58.162:8084/wcs2Wms/api/receiveOutMydoJob"; + public static final String PUSH_IN_MYDO_JOB = "http://192.168.58.162:8084/wcs2Wms/api/receiveInMydoJob"; + public static final String PUSH_AGV_MOVE_JOB = "http://192.168.58.162:8084/agv/api/receiveAgvMoveJob"; + public static final String OUT_MYDOJOB_MS = "http://192.168.58.162:8084/wcs2Wms/api/outMydojobMakesure"; + public static final String CANCEL_MYDOJOB = "http://192.168.58.162:8084/wcs2Wms/api/cancelMydoJob"; + public static final String SELECT_WCS_PORT = "http://192.168.58.162:8084/wcs2Wms/api/selectWcsPort"; + public static final String UPDATE_WCS_PORT = "http://192.168.58.162:8084/wcs2Wms/api/updateWcsPort"; @Override diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWmsServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWmsServiceImpl.java index f7394d7..5d4a5c7 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWmsServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWmsServiceImpl.java @@ -87,26 +87,6 @@ public class ToWmsServiceImpl implements IToWmsService { @Autowired private IBasStockService stockService; - private static final Map PATTERNS = createPatterns(); - private static Map createPatterns() { - Map map = new LinkedHashMap<>(); - map.put("MODEL", Pattern.compile("MODEL:([^\\s]+)", Pattern.CASE_INSENSITIVE)); - map.put("COLOR", Pattern.compile("COLOR:([^\\s]+)", Pattern.CASE_INSENSITIVE)); - map.put("SERIAL", Pattern.compile("SERIAL:([^\\s]+)", Pattern.CASE_INSENSITIVE)); - map.put("V", Pattern.compile("V:([^\\s]+)", Pattern.CASE_INSENSITIVE)); - map.put("Hz", Pattern.compile("Hz:([^\\s]+)", Pattern.CASE_INSENSITIVE)); - map.put("PH", Pattern.compile("PH:([^\\s]+)", Pattern.CASE_INSENSITIVE)); - map.put("NW", Pattern.compile("N\\.W\\.:([^\\s]+)", Pattern.CASE_INSENSITIVE)); - map.put("GW", Pattern.compile("G\\.W\\.:([^\\s]+)", Pattern.CASE_INSENSITIVE)); - map.put("ITEM_CODE", Pattern.compile("ITEM_CODE:([^\\s]+)", Pattern.CASE_INSENSITIVE)); - map.put("@", Pattern.compile("@:([^\\s]+)", Pattern.CASE_INSENSITIVE)); - return map; - } - private static String findFirst(Pattern pattern, String input) { - if (pattern == null || input == null) return null; - Matcher m = pattern.matcher(input); - return m.find() ? m.group(1) : null; - } @Override @Transactional(rollbackFor = Exception.class) @@ -115,10 +95,10 @@ public class ToWmsServiceImpl implements IToWmsService { HashMap result = new HashMap<>(); -// if (StrUtil.isEmpty(requestEnter.getTrayCode())) { -// return AjaxResult.error("托盘条码不能为空"); -// } -// log.info("扫码内容{}", requestEnter.getTrayCode()); + if (StrUtil.isEmpty(requestEnter.getTrayCode())) { + return AjaxResult.error("托盘条码不能为空"); + } + log.info("扫码内容{}", requestEnter.getTrayCode()); //解析扫码内容 String trayCode = requestEnter.getTrayCode(); @@ -147,6 +127,7 @@ public class ToWmsServiceImpl implements IToWmsService { return new AjaxResult(1, "二维码内容错误!"); } } + List inList = mydoJobService.getInJobBySerial(serial); List stockList = stockService.getStockBySerial(serial); if(!CollUtil.isEmpty(inList) || !CollUtil.isEmpty(stockList)) { @@ -175,7 +156,6 @@ public class ToWmsServiceImpl implements IToWmsService { return new AjaxResult(5, "超大托盘!"); } //托盘大小与电气返回不匹配 - if (StrUtil.isNotBlank(requestEnter.getSize()) && !"1".equals(requestEnter.getType()) && size != Integer.parseInt(requestEnter.getSize())) { return new AjaxResult(6, "托盘大小不匹配!"); } @@ -284,7 +264,7 @@ public class ToWmsServiceImpl implements IToWmsService { //todo 创建工艺入库单 if ("2".equals(requestEnter.getFloor())){ - AjaxResult workshopInboundOrder = toErpService.createWorkshopInboundOrder(basProduct); + AjaxResult workshopInboundOrder = toErpService.createWorkshopInboundOrder(basProduct,erpBill); if (!workshopInboundOrder.isSuccess()){ //throw new RuntimeException("创建工单失败"); return new AjaxResult(9, "创建工艺入库单失败!"); @@ -339,8 +319,15 @@ public class ToWmsServiceImpl implements IToWmsService { if (size == 5) { return new AjaxResult(3, "超大托盘"); } + + if(size == 1){ + if("L1001".equals(requestEnter.getEntranceId()) || "L2004".equals(requestEnter.getEntranceId())){ + return new AjaxResult(4, "入口与托盘尺寸对应错误!"); + } + } + //托盘大小与电气返回不匹配 - if (size != Integer.parseInt(requestEnter.getSize())) { + if (requestEnter.getSize() != null && !"".equals(requestEnter.getSize()) && size != Integer.parseInt(requestEnter.getSize())) { return new AjaxResult(4, "托盘大小不匹配"); } @@ -352,6 +339,7 @@ public class ToWmsServiceImpl implements IToWmsService { result.put("trayCode", mydoJob.getTrayCode()); result.put("entranceId", mydoJob.getEntranceId()); result.put("flag", mydoJob.getWorkshopId()); + result.put("traySize", mydoJob.getDepartmentId()); mydoJob.setStatus("3"); mydoJob.setStartTime(DateUtil.formatDateTime(new Date())); mydoJobService.updateMydoJob(mydoJob); @@ -411,15 +399,21 @@ public class ToWmsServiceImpl implements IToWmsService { public AjaxResult reAssign(ReMaterialParam reMaterialParam) { //重新分配货位 MydoJob mydoJob = mydoJobService.selectMydoJobByJobId(reMaterialParam.getJobId()); - String warehouseId = mydoJob.getWarehouseId(); + //String warehouseId = mydoJob.getWarehouseId(); BasCargoSpace basCargoSpaceParam = new BasCargoSpace(); - basCargoSpaceParam.setWarehouseId(warehouseId); + //basCargoSpaceParam.setWarehouseId(warehouseId); basCargoSpaceParam.setRoadwayId(mydoJob.getRoadwayId()); BasCargoSpace basCargoSpace = basCargoSpaceService.selectEmptyCargoSpaceByWarehouseId(basCargoSpaceParam); if (basCargoSpace == null) { log.error("没有空货位"); return AjaxResult.error(MessageUtils.message("error.message20")); } else { + BasCargoSpace space = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(mydoJob.getCargoSpaceId()); + space.setStatus("5"); + basCargoSpaceService.updateBasCargoSpace(space); + + basCargoSpace.setStatus("3"); + basCargoSpaceService.updateBasCargoSpace(basCargoSpace); mydoJob.setCargoSpaceId(basCargoSpace.getCargoSpaceId()); mydoJob.setFaultFlag("1"); mydoJobService.updateMydoJob(mydoJob); @@ -450,20 +444,21 @@ public class ToWmsServiceImpl implements IToWmsService { } log.info("扫码内容{}", requestEnter.getTrayCode()); - //解析扫码内容 String trayCode = requestEnter.getTrayCode(); - String[] split = trayCode.split(" "); - String model = split[0].substring(6); - String color = split[1].substring(6); - String serial = split[2].substring(7); - String v = split[3].substring(2); - String hz = split[4].substring(3); - String ph = split[5].substring(3); - String nw = split[6].substring(5); - String gw = split[7].substring(5); - String productId = split[8].substring(10); - String bm = split[9].substring(2, split[9].length() - 1); + String[] split = trayCode.split("\\s+"); + String model = findFirst(PATTERNS.get("MODEL"), trayCode); + model=model.replace("�"," "); + String color = findFirst(PATTERNS.get("COLOR"), trayCode); + String serial = findFirst(PATTERNS.get("SERIAL"), trayCode); + String v = findFirst(PATTERNS.get("V"), trayCode); + String hz = findFirst(PATTERNS.get("Hz"), trayCode); + String ph = findFirst(PATTERNS.get("PH"), trayCode); + String nw = findFirst(PATTERNS.get("NW"), trayCode); + String gw = findFirst(PATTERNS.get("GW"), trayCode);; + String productId = findFirst(PATTERNS.get("ITEM_CODE"), trayCode); + String bm = findFirst(PATTERNS.get("@"), trayCode); + bm=bm.substring(0,bm.length()-1); String[] decode = ProcodeUtils.decode(bm); String erpBill = decode[0]; String xh = decode[1]; @@ -504,12 +499,17 @@ public class ToWmsServiceImpl implements IToWmsService { //根据包装方式 主要包装方式 描述 长 宽 高 包装材积 int size = Convert.toInt(basProduct.getSpare10()); + if(size == 1){ + if("L1001".equals(requestEnter.getEntranceId()) || "L2004".equals(requestEnter.getEntranceId())){ + return new AjaxResult(4, "入口与托盘尺寸对应错误!"); + } + } + //超大托盘不处理 直接返回 if (size == 5) { return new AjaxResult(3, "超大托盘"); } //托盘大小与电气返回不匹配 - if (StrUtil.isNotBlank(requestEnter.getSize()) && !"1".equals(requestEnter.getType()) && size != Integer.parseInt(requestEnter.getSize())) { return new AjaxResult(4, "托盘大小不匹配"); } @@ -523,6 +523,7 @@ public class ToWmsServiceImpl implements IToWmsService { result.put("trayCode", mydoJob.getTrayCode()); result.put("flag", mydoJob.getWorkshopId()); result.put("inOrOut", mydoJob.getInOrOut()); + result.put("traySize", mydoJob.getDepartmentId()); mydoJob.setStatus("3"); mydoJob.setStartTime(DateUtil.formatDateTime(new Date())); @@ -584,4 +585,24 @@ public class ToWmsServiceImpl implements IToWmsService { } + private static final Map PATTERNS = createPatterns(); + private static Map createPatterns() { + Map map = new LinkedHashMap<>(); + map.put("MODEL", Pattern.compile("MODEL:([^\\s]+)", Pattern.CASE_INSENSITIVE)); + map.put("COLOR", Pattern.compile("COLOR:([^\\s]+)", Pattern.CASE_INSENSITIVE)); + map.put("SERIAL", Pattern.compile("SERIAL:([^\\s]+)", Pattern.CASE_INSENSITIVE)); + map.put("V", Pattern.compile("V:([^\\s]+)", Pattern.CASE_INSENSITIVE)); + map.put("Hz", Pattern.compile("Hz:([^\\s]+)", Pattern.CASE_INSENSITIVE)); + map.put("PH", Pattern.compile("PH:([^\\s]+)", Pattern.CASE_INSENSITIVE)); + map.put("NW", Pattern.compile("N\\.W\\.:([^\\s]+)", Pattern.CASE_INSENSITIVE)); + map.put("GW", Pattern.compile("G\\.W\\.:([^\\s]+)", Pattern.CASE_INSENSITIVE)); + map.put("ITEM_CODE", Pattern.compile("ITEM_CODE:([^\\s]+)", Pattern.CASE_INSENSITIVE)); + map.put("@", Pattern.compile("@:([^\\s]+)", Pattern.CASE_INSENSITIVE)); + return map; + } + private static String findFirst(Pattern pattern, String input) { + if (pattern == null || input == null) return null; + Matcher m = pattern.matcher(input); + return m.find() ? m.group(1) : null; + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/bas/BasCustomer/mapper/BasCustomerMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/bas/BasCustomer/mapper/BasCustomerMapper.java index cab0a2f..7d1ec61 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/bas/BasCustomer/mapper/BasCustomerMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/bas/BasCustomer/mapper/BasCustomerMapper.java @@ -59,4 +59,6 @@ public interface BasCustomerMapper * @return 结果 */ public int deleteBasCustomerByIds(String[] ids); + + BasCustomer selectBasCustomerByNo(String customerNo); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/bas/BasCustomer/service/IBasCustomerService.java b/ruoyi-admin/src/main/java/com/ruoyi/bas/BasCustomer/service/IBasCustomerService.java index 51b682f..9bff983 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/bas/BasCustomer/service/IBasCustomerService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/bas/BasCustomer/service/IBasCustomerService.java @@ -59,4 +59,6 @@ public interface IBasCustomerService * @return 结果 */ public int deleteBasCustomerById(String id); + + BasCustomer selectBasCustomerByNo(String customerNo); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/bas/BasCustomer/service/impl/BasCustomerServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/bas/BasCustomer/service/impl/BasCustomerServiceImpl.java index 1025ee3..7b6f154 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/bas/BasCustomer/service/impl/BasCustomerServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/bas/BasCustomer/service/impl/BasCustomerServiceImpl.java @@ -91,4 +91,9 @@ public class BasCustomerServiceImpl implements IBasCustomerService { return basCustomerMapper.deleteBasCustomerById(id); } + + @Override + public BasCustomer selectBasCustomerByNo(String customerNo) { + return basCustomerMapper.selectBasCustomerByNo(customerNo); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/bas/basJobId/service/IBasJobIdService.java b/ruoyi-admin/src/main/java/com/ruoyi/bas/basJobId/service/IBasJobIdService.java index b24a8e8..4c844e8 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/bas/basJobId/service/IBasJobIdService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/bas/basJobId/service/IBasJobIdService.java @@ -67,4 +67,6 @@ public interface IBasJobIdService */ public String getJobId(String type); + + public String getJobIdBy(String type); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/bas/basJobId/service/impl/BasJobIdServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/bas/basJobId/service/impl/BasJobIdServiceImpl.java index 9e1d0e2..6ff88c3 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/bas/basJobId/service/impl/BasJobIdServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/bas/basJobId/service/impl/BasJobIdServiceImpl.java @@ -137,4 +137,42 @@ public class BasJobIdServiceImpl implements IBasJobIdService return outStockId; } + @Override + public String getJobIdBy(String type) { + SimpleDateFormat format=new SimpleDateFormat("yyyyMMdd"); + String date = format.format(new Date()); + BasJobId basJobId1 = new BasJobId(); + basJobId1.setStockId(date); + basJobId1.setType(type); + int count=basJobIdMapper.getIdByDate(basJobId1); + String outStockId=""; + if(count>0){ + int i=Integer.valueOf(basJobIdMapper.getIdByType(type)); +// String[] split=outStockIdPre.split(date); +// int i=Integer.parseInt(split[1]); + if(i>99999){ + i=1; + } + String num=String.format("%04d",++i); + outStockId=type+"-"+date+num; + BasJobId basJobId=new BasJobId(); + basJobId.setJobId(num); + basJobId.setType(type); + basJobId.setStockId(date); + basJobIdMapper.updateBasJobId(basJobId); + + }else{ + + int i=1; + String num=String.format("%04d",i); + outStockId=type+"-"+date+num; + BasJobId basJobId=new BasJobId(); + basJobId.setJobId(num); + basJobId.setType(type); + basJobId.setStockId(date); + basJobIdMapper.updateBasJobId(basJobId); + } + return outStockId; + } + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/in/erp/domain/TransferBillCallback.java b/ruoyi-admin/src/main/java/com/ruoyi/in/erp/domain/TransferBillCallback.java index 16da8b8..85d0de6 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/in/erp/domain/TransferBillCallback.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/in/erp/domain/TransferBillCallback.java @@ -7,7 +7,7 @@ import com.ruoyi.common.core.domain.BaseEntity; /** * 调拨单回传对象 transfer_bill_callback - * + * * @author ruoyi * @date 2025-09-17 */ @@ -39,120 +39,131 @@ public class TransferBillCallback extends BaseEntity private String finishTime; /** 备用字段1 */ - @Excel(name = "备用字段1") + @Excel(name = "品号") private String spare1; /** 备用字段2 */ - @Excel(name = "备用字段2") + @Excel(name = "品名") private String spare2; /** 备用字段3 */ - @Excel(name = "备用字段3") + @Excel(name = "规格") private String spare3; - public void setId(Long id) + @Excel(name = "序列号") + private String trayCode; + + public void setId(Long id) { this.id = id; } - public Long getId() + public Long getId() { return id; } - public void setJobId(String jobId) + public void setJobId(String jobId) { this.jobId = jobId; } - public String getJobId() + public String getJobId() { return jobId; } - public void setErpBill(String erpBill) + public void setErpBill(String erpBill) { this.erpBill = erpBill; } - public String getErpBill() + public String getErpBill() { return erpBill; } - public void setType(String type) + public void setType(String type) { this.type = type; } - public String getType() + public String getType() { return type; } - public void setStatus(String status) + public void setStatus(String status) { this.status = status; } - public String getStatus() + public String getStatus() { return status; } - public void setFinishTime(String finishTime) + public void setFinishTime(String finishTime) { this.finishTime = finishTime; } - public String getFinishTime() + public String getFinishTime() { return finishTime; } - public void setSpare1(String spare1) + public void setSpare1(String spare1) { this.spare1 = spare1; } - public String getSpare1() + public String getSpare1() { return spare1; } - public void setSpare2(String spare2) + public void setSpare2(String spare2) { this.spare2 = spare2; } - public String getSpare2() + public String getSpare2() { return spare2; } - public void setSpare3(String spare3) + public void setSpare3(String spare3) { this.spare3 = spare3; } - public String getSpare3() + public String getSpare3() { return spare3; } + public String getTrayCode() { + return trayCode; + } + + public void setTrayCode(String trayCode) { + this.trayCode = trayCode; + } + @Override public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("id", getId()) - .append("jobId", getJobId()) - .append("erpBill", getErpBill()) - .append("type", getType()) - .append("status", getStatus()) - .append("createTime", getCreateTime()) - .append("finishTime", getFinishTime()) - .append("spare1", getSpare1()) - .append("spare2", getSpare2()) - .append("spare3", getSpare3()) - .toString(); + return "TransferBillCallback{" + + "id=" + id + + ", jobId='" + jobId + '\'' + + ", erpBill='" + erpBill + '\'' + + ", type='" + type + '\'' + + ", status='" + status + '\'' + + ", finishTime='" + finishTime + '\'' + + ", spare1='" + spare1 + '\'' + + ", spare2='" + spare2 + '\'' + + ", spare3='" + spare3 + '\'' + + ", trayCode='" + trayCode + '\'' + + '}'; } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/service/impl/MydoJobServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/service/impl/MydoJobServiceImpl.java index 23d78e9..8a18e28 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/service/impl/MydoJobServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/service/impl/MydoJobServiceImpl.java @@ -5,6 +5,8 @@ import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import com.ruoyi.api.service.IToWcsService; +import com.ruoyi.bas.BasProduct.domain.BasProduct; +import com.ruoyi.bas.BasProduct.mapper.BasProductMapper; import com.ruoyi.bas.basJobId.service.IBasJobIdService; import com.ruoyi.bas.cargoSpace.domain.BasCargoSpace; import com.ruoyi.bas.cargoSpace.service.IBasCargoSpaceService; @@ -84,6 +86,8 @@ public class MydoJobServiceImpl implements IMydoJobService { @Autowired private BasStockMapper basStockMapper; @Autowired + private BasProductMapper basProductMapper; + @Autowired private PdaMapper pdaMapper; @Autowired private ICheckDifferenceRecordService checkDifferenceRecordService; @@ -203,15 +207,15 @@ public class MydoJobServiceImpl implements IMydoJobService { param.setJobId(jobId); List mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(param); - for (MydoJobDetail mydoJobDetail : mydoJobDetails) { - String inOrOutDId = mydoJobDetail.getInOrOutDId(); - InStockinDetail inStockinDetail = inStockinDetailService.selectInStockinDetailByStockinDetailId(inOrOutDId); - BigDecimal stockInNum = Convert.toBigDecimal(inStockinDetail.getScanNum()); - BigDecimal jobInNum = Convert.toBigDecimal(mydoJobDetail.getInQuantity()); - BigDecimal subtract = stockInNum.subtract(jobInNum); - inStockinDetail.setScanNum(Convert.toStr(subtract)); - inStockinDetailService.updateInStockinDetail(inStockinDetail); - } +// for (MydoJobDetail mydoJobDetail : mydoJobDetails) { +// String inOrOutDId = mydoJobDetail.getInOrOutDId(); +// InStockinDetail inStockinDetail = inStockinDetailService.selectInStockinDetailByStockinDetailId(inOrOutDId); +// BigDecimal stockInNum = Convert.toBigDecimal(inStockinDetail.getScanNum()); +// BigDecimal jobInNum = Convert.toBigDecimal(mydoJobDetail.getInQuantity()); +// BigDecimal subtract = stockInNum.subtract(jobInNum); +// inStockinDetail.setScanNum(Convert.toStr(subtract)); +// inStockinDetailService.updateInStockinDetail(inStockinDetail); +// } //修改货位状态 BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(job.getCargoSpaceId()); basCargoSpace.setStatus("1"); @@ -224,8 +228,8 @@ public class MydoJobServiceImpl implements IMydoJobService { insertHistory(mydoJob.getJobId()); } //通知wcs - AjaxResult ajaxResult = iToWcsService.cancelTaskByTaskNo(job.getTaskNo()); - log.info("取消任务结果:{}", ajaxResult); + //AjaxResult ajaxResult = iToWcsService.cancelTaskByTaskNo(job.getTaskNo()); + //log.info("取消任务结果:{}", ajaxResult); return AjaxResult.success(); } @@ -262,8 +266,6 @@ public class MydoJobServiceImpl implements IMydoJobService { BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(mydoJob.getCargoSpaceId()); if (CollUtil.isNotEmpty(mydoJobDetails)) { List list = new ArrayList<>(); - - //查询盘点信息中的异常信息 CheckDifferenceRecord checkDifferenceRecordParam = new CheckDifferenceRecord(); checkDifferenceRecordParam.setTrayCode(mydoJob.getTrayCode()); @@ -354,6 +356,13 @@ public class MydoJobServiceImpl implements IMydoJobService { transferBillCallback.setErpBill(mydoJob.getLineId()); transferBillCallback.setType("1"); transferBillCallback.setStatus("0"); + BasProduct product = basProductMapper.selectBasProductByProductId(mydoJobDetails.get(0).getProductId()); + transferBillCallback.setSpare1(mydoJobDetails.get(0).getProductId()); + if(product != null) { + transferBillCallback.setSpare2(product.getProductName()); + } + transferBillCallback.setSpare3(mydoJobDetails.get(0).getSpec()); + transferBillCallback.setTrayCode(mydoJob.getTrayCode()); transferBillCallbackService.insertTransferBillCallback(transferBillCallback); return AjaxResult.success(); } else { diff --git a/ruoyi-admin/src/main/java/com/ruoyi/log/service/IRequestLogService.java b/ruoyi-admin/src/main/java/com/ruoyi/log/service/IRequestLogService.java index bda1022..014db2c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/log/service/IRequestLogService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/log/service/IRequestLogService.java @@ -77,4 +77,10 @@ public interface IRequestLogService * @return */ public RequestLog getRequestLog(String param, String remark, AjaxResult ajaxResult); + + RequestLog getRequestLogGd(String workshopInboundOrderUrl, String jsonStr, String 创建工艺单, String wms, String erp); + + RequestLog getRequestLogOther(String otherInOutboundOrderUrl, String jsonStr, String 创建其他入出库单, String wms, String erp); + + String getRequestLogDoc(String workshopInboundOrderUrl, String erpBill, String productId, String 获取工艺单号, String wms, String erp); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/log/service/impl/RequestLogServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/log/service/impl/RequestLogServiceImpl.java index cf4ef50..8ab5916 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/log/service/impl/RequestLogServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/log/service/impl/RequestLogServiceImpl.java @@ -3,16 +3,19 @@ package com.ruoyi.log.service.impl; import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; -import cn.hutool.http.HttpUtil; +import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; +import com.ruoyi.api.domain.Condition; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.log.domain.RequestLog; import com.ruoyi.log.mapper.RequestLogMapper; import com.ruoyi.log.service.IRequestLogService; +import com.ruoyi.utils.HttpUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -24,8 +27,7 @@ import java.util.List; */ @Service @Slf4j -public class RequestLogServiceImpl implements IRequestLogService -{ +public class RequestLogServiceImpl implements IRequestLogService { @Autowired private RequestLogMapper requestLogMapper; @@ -36,8 +38,7 @@ public class RequestLogServiceImpl implements IRequestLogService * @return 接口记录 */ @Override - public RequestLog selectRequestLogByRequestId(Long requestId) - { + public RequestLog selectRequestLogByRequestId(Long requestId) { return requestLogMapper.selectRequestLogByRequestId(requestId); } @@ -48,8 +49,7 @@ public class RequestLogServiceImpl implements IRequestLogService * @return 接口记录 */ @Override - public List selectRequestLogList(RequestLog requestLog) - { + public List selectRequestLogList(RequestLog requestLog) { return requestLogMapper.selectRequestLogList(requestLog); } @@ -60,11 +60,10 @@ public class RequestLogServiceImpl implements IRequestLogService * @return 结果 */ @Override - public int insertRequestLog(RequestLog requestLog) - { - if (requestLog.getIsSuccessful().equals("1")){ + public int insertRequestLog(RequestLog requestLog) { + if (requestLog.getIsSuccessful().equals("1")) { return requestLogMapper.insertRequestLog(requestLog); - }else { + } else { return 0; } } @@ -76,8 +75,7 @@ public class RequestLogServiceImpl implements IRequestLogService * @return 结果 */ @Override - public int updateRequestLog(RequestLog requestLog) - { + public int updateRequestLog(RequestLog requestLog) { return requestLogMapper.updateRequestLog(requestLog); } @@ -88,8 +86,7 @@ public class RequestLogServiceImpl implements IRequestLogService * @return 结果 */ @Override - public int deleteRequestLogByRequestIds(Long[] requestIds) - { + public int deleteRequestLogByRequestIds(Long[] requestIds) { return requestLogMapper.deleteRequestLogByRequestIds(requestIds); } @@ -100,8 +97,7 @@ public class RequestLogServiceImpl implements IRequestLogService * @return 结果 */ @Override - public int deleteRequestLogByRequestId(Long requestId) - { + public int deleteRequestLogByRequestId(Long requestId) { return requestLogMapper.deleteRequestLogByRequestId(requestId); } @@ -113,7 +109,7 @@ public class RequestLogServiceImpl implements IRequestLogService * @return requestLog */ @Override - public RequestLog getRequestLog(String url, String param, String remark,String source,String target) { + public RequestLog getRequestLog(String url, String param, String remark, String source, String target) { RequestLog requestLog = new RequestLog(); requestLog.setRequestTime(DateUtil.formatDateTime(new Date())); requestLog.setSourceSystem(source); @@ -124,8 +120,8 @@ public class RequestLogServiceImpl implements IRequestLogService requestLog.setRequestBody(param); requestLog.setRequestUrl(url); try { - String resStr = HttpUtil.post(url, param); - + String resStr = HttpUtils.sendPost(url, param, "application/json"); + System.out.println(param); // 判断resStr的状态码,如果不是200抛出异常让catch捕获 if (!JSONUtil.isJsonObj(resStr)) { throw new RuntimeException("返回结果不是有效的JSON对象"); @@ -150,13 +146,172 @@ public class RequestLogServiceImpl implements IRequestLogService return requestLog; } + @Override + public RequestLog getRequestLogGd(String url, String param, String remark, String source, String target) { + RequestLog requestLog = new RequestLog(); + requestLog.setRequestTime(DateUtil.formatDateTime(new Date())); + requestLog.setSourceSystem(source); + requestLog.setTargetSystem(target); + requestLog.setEndpoint(remark); + requestLog.setRequestMethod("post"); + requestLog.setRequestHeaders(null); + requestLog.setRequestBody(param); + requestLog.setRequestUrl(url); + try { + String resStr = HttpUtils.sendPostGd(url, param, "application/json"); + System.out.println(param); + // 判断resStr的状态码,如果不是200抛出异常让catch捕获 + if (!JSONUtil.isJsonObj(resStr)) { + throw new RuntimeException("返回结果不是有效的JSON对象"); + } + JSONObject jsonObject = JSONUtil.parseObj(resStr); + if (jsonObject == null) { + throw new RuntimeException("请求失败"); + } + Object codeObj = jsonObject.get("std_data"); + JSONObject obj = JSONUtil.parseObj(codeObj.toString()); + String docNo = JSONUtil.parseObj(JSONUtil.parseObj(obj.get("parameter").toString()).get("result").toString()).get("success").toString(); + if (docNo.length() > 0 && JSONUtil.parseArray(docNo).size() > 0) { + requestLog.setResponseBody(resStr); + requestLog.setResponseTime(DateUtil.formatDateTime(new Date())); + requestLog.setResponseStatus("1"); + requestLog.setDuration(Convert.toStr(DateUtil.between(Convert.toDate(requestLog.getRequestTime()), Convert.toDate(requestLog.getResponseTime()), DateUnit.MS))); + requestLog.setIsSuccessful("1"); + } else { + throw new RuntimeException("请求失败"); + } + } catch (Exception e) { + requestLog.setErrorDetails(e.getMessage()); + requestLog.setIsSuccessful("0"); + requestLog.setResponseStatus("0"); + } finally { + insertRequestLog(requestLog); + } + return requestLog; + } + + @Override + public RequestLog getRequestLogOther(String url, String param, String remark, String source, String target) { + RequestLog requestLog = new RequestLog(); + requestLog.setRequestTime(DateUtil.formatDateTime(new Date())); + requestLog.setSourceSystem(source); + requestLog.setTargetSystem(target); + requestLog.setEndpoint(remark); + requestLog.setRequestMethod("post"); + requestLog.setRequestHeaders(null); + requestLog.setRequestBody(param); + requestLog.setRequestUrl(url); + try { + String resStr = HttpUtils.sendPostOther(url, param, "application/json"); + System.out.println(param); + // 判断resStr的状态码,如果不是200抛出异常让catch捕获 + if (!JSONUtil.isJsonObj(resStr)) { + throw new RuntimeException("返回结果不是有效的JSON对象"); + } + JSONObject jsonObject = JSONUtil.parseObj(resStr); + if (jsonObject == null) { + throw new RuntimeException("请求失败"); + } + Object codeObj = jsonObject.get("std_data"); + JSONObject obj = JSONUtil.parseObj(codeObj.toString()); + String docNo = JSONUtil.parseObj(JSONUtil.parseObj(obj.get("parameter").toString()).get("result").toString()).get("success").toString(); + if (docNo.length() > 0 && JSONUtil.parseArray(docNo).size() > 0) { + requestLog.setResponseBody(resStr); + requestLog.setResponseTime(DateUtil.formatDateTime(new Date())); + requestLog.setResponseStatus("1"); + requestLog.setDuration(Convert.toStr(DateUtil.between(Convert.toDate(requestLog.getRequestTime()), Convert.toDate(requestLog.getResponseTime()), DateUnit.MS))); + requestLog.setIsSuccessful("1"); + } else { + throw new RuntimeException("请求失败"); + } + } catch (Exception e) { + requestLog.setErrorDetails(e.getMessage()); + requestLog.setIsSuccessful("0"); + requestLog.setResponseStatus("0"); + } finally { + insertRequestLog(requestLog); + } + return requestLog; + } + + @Override + public String getRequestLogDoc(String url, String erpBill, String productId, String remark, String source, String target) { + + String param = "{" + + " \"std_data\": {\n" + + " \"parameter\": {\n" + + " \"pageSize\": 20,\n" + + " \"pageNo\": 1,\n" + + " \"isGetSchema\": false,\n" + + " \"isGetCount\": false,\n" + + " \"conditions\": [\n" + + "\t {\n" + + "\t\t\t\"field_name\":\"DEMAND_NO\",\n" + + "\t\t\t\"value\":\""+erpBill+"\"\n" + + "\t\t},\n" + + "\t\t{\n" + + "\t\t\t\"field_name\":\"ITEM_CODE\",\n" + + "\t\t\t\"value\":\""+productId+"\"\n" + + "\t\t}\n" + + "\t ],\n" + + " \"orders\": []\n" + + " }\n" + + " }\n" + + "}"; + String docNo = ""; + RequestLog requestLog = new RequestLog(); + requestLog.setRequestTime(DateUtil.formatDateTime(new Date())); + requestLog.setSourceSystem(source); + requestLog.setTargetSystem(target); + requestLog.setEndpoint(remark); + requestLog.setRequestMethod("post"); + requestLog.setRequestHeaders(null); + requestLog.setRequestBody(param); + requestLog.setRequestUrl(url); + + try { + String resStr = HttpUtils.sendPostDoc(url, param, "application/json"); + System.out.println(param); + // 判断resStr的状态码,如果不是200抛出异常让catch捕获 + if (!JSONUtil.isJsonObj(resStr)) { + throw new RuntimeException("返回结果不是有效的JSON对象"); + } + JSONObject jsonObject = JSONUtil.parseObj(resStr); + if (jsonObject == null) { + throw new RuntimeException("请求失败"); + } + Object codeObj = jsonObject.get("std_data"); + JSONObject obj = JSONUtil.parseObj(codeObj.toString()); + String docArr = JSONUtil.parseObj(obj.get("parameter").toString()).get("rows").toString(); + + if (docArr.length() > 0 && JSONUtil.parseArray(docArr).size() > 0) { + Object docObj = JSONUtil.parseArray(docArr).get(0); + docNo = JSONUtil.parseObj(docObj.toString()).get("DOC_NO").toString(); + requestLog.setResponseBody(resStr); + requestLog.setResponseTime(DateUtil.formatDateTime(new Date())); + requestLog.setResponseStatus("1"); + requestLog.setDuration(Convert.toStr(DateUtil.between(Convert.toDate(requestLog.getRequestTime()), Convert.toDate(requestLog.getResponseTime()), DateUnit.MS))); + requestLog.setIsSuccessful("1"); + } else { + throw new RuntimeException("请求失败"); + } + } catch (Exception e) { + requestLog.setErrorDetails(e.getMessage()); + requestLog.setIsSuccessful("0"); + requestLog.setResponseStatus("0"); + } finally { + insertRequestLog(requestLog); + } + return docNo; + } + /** * 插入请求日志 * * @return requestLog */ @Override - public RequestLog getRequestLog(String param, String remark,AjaxResult ajaxResult) { + public RequestLog getRequestLog(String param, String remark, AjaxResult ajaxResult) { RequestLog requestLog = new RequestLog(); requestLog.setRequestTime(DateUtil.formatDateTime(new Date())); requestLog.setRequestBody(param); @@ -167,9 +322,9 @@ public class RequestLogServiceImpl implements IRequestLogService requestLog.setResponseTime(DateUtil.formatDateTime(new Date())); requestLog.setDuration(Convert.toStr(DateUtil.between(Convert.toDate(requestLog.getRequestTime()), Convert.toDate(requestLog.getResponseTime()), DateUnit.MS))); requestLog.setResponseStatus("1"); - if (ajaxResult.isSuccess()){ + if (ajaxResult.isSuccess()) { requestLog.setIsSuccessful("1"); - }else { + } else { requestLog.setIsSuccessful("0"); } requestLog.setResponseBody(Convert.toStr(ajaxResult.get("msg"))); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/service/IOutStockoutService.java b/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/service/IOutStockoutService.java index 94b2787..ecadb0e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/service/IOutStockoutService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/service/IOutStockoutService.java @@ -73,4 +73,6 @@ public interface IOutStockoutService List selectOutStockoutListApi(OutStockout outStockoutParam); AjaxResult manualAllot(String[] stockList,String stockoutDetailId); + + String saveBillErp(OutStockoutVo outStockoutVo); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/service/impl/OutStockoutServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/service/impl/OutStockoutServiceImpl.java index 02f0c1f..908974c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/service/impl/OutStockoutServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/service/impl/OutStockoutServiceImpl.java @@ -146,6 +146,18 @@ public class OutStockoutServiceImpl implements IOutStockoutService return stockOutId; } + @Override + @Transactional(rollbackFor = Exception.class) + public String saveBillErp(OutStockoutVo outStockoutVo) { + + for (int i = 0; i < outStockoutVo.getDetailList().size(); i++) { + OutStockoutDetail outStockoutDetail = outStockoutVo.getDetailList().get(i); + outStockoutDetailMapper.insertOutStockoutDetail(outStockoutDetail); + } + outStockoutMapper.insertOutStockout(outStockoutVo.getOutStockout()); + return outStockoutVo.getOutStockout().getStockoutId(); + } + @Override public String updateOutStockoutStatus(String[] stockoutIds, String status, String newStatus,String exitId) { HashMap map = new HashMap<>(); diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml index ebbe83a..de37d14 100644 --- a/ruoyi-admin/src/main/resources/application-druid.yml +++ b/ruoyi-admin/src/main/resources/application-druid.yml @@ -6,9 +6,9 @@ spring: druid: # 主库数据源 master: - url: jdbc:sqlserver://172.16.2.170:1433;databaseName=FT517-wms;encrypt=true;trustServerCertificate=true; + url: jdbc:sqlserver://192.168.58.10:1433;databaseName=FT517-wms;encrypt=true;trustServerCertificate=true; username: sa - password: Flrd0914. + password: www.123.com # 从库数据源 slave: # 从数据源开关/默认关闭 diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index e23a67a..4ae3dff 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -16,7 +16,7 @@ ruoyi: # 开发环境配置 server: # 服务器的HTTP端口,默认为8080 - port: 8080 + port: 8082 servlet: # 应用的访问路径 context-path: / @@ -71,7 +71,7 @@ spring: # redis 配置 redis: # 地址 - host: 172.16.2.170 + host: 192.168.58.10 # 端口,默认为6379 port: 6379 # 数据库索引 diff --git a/ruoyi-admin/src/main/resources/mapper/bas/BasCustomerMapper.xml b/ruoyi-admin/src/main/resources/mapper/bas/BasCustomerMapper.xml index d762e50..d7962ea 100644 --- a/ruoyi-admin/src/main/resources/mapper/bas/BasCustomerMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/bas/BasCustomerMapper.xml @@ -62,6 +62,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} + + insert into bas_customer diff --git a/ruoyi-admin/src/main/resources/mapper/bas/cargoSpace/BasCargoSpaceMapper.xml b/ruoyi-admin/src/main/resources/mapper/bas/cargoSpace/BasCargoSpaceMapper.xml index 1286d57..e254cba 100644 --- a/ruoyi-admin/src/main/resources/mapper/bas/cargoSpace/BasCargoSpaceMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/bas/cargoSpace/BasCargoSpaceMapper.xml @@ -193,7 +193,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and roadway_id = #{roadwayId} - ORDER BY the_platoon, the_floor,the_column + ORDER BY the_floor,the_column desc,the_platoon - + and job_id = #{jobId} and erp_bill = #{erpBill} and type = #{type} @@ -34,7 +36,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and spare3 = #{spare3} - +