yuansh 6 godzin temu
rodzic
commit
cbf9ecac26

+ 24 - 0
srm-module-code/src/main/java/org/jeecg/modules/baseCode/controller/BaseExchangeRateController.java

@@ -74,6 +74,17 @@ public class BaseExchangeRateController extends JeecgController<BaseExchangeRate
 	@RequiresPermissions("baseCode:base_exchange_rate:add")
 	@PostMapping(value = "/add")
 	public Result<String> add(@RequestBody BaseExchangeRate baseExchangeRate) {
+
+		QueryWrapper<BaseExchangeRate> queryWrapper = new QueryWrapper<>();
+		queryWrapper.eq("year",baseExchangeRate.getYear());
+		queryWrapper.eq("month",baseExchangeRate.getMonth());
+		queryWrapper.eq("currency",baseExchangeRate.getCurrency());
+		queryWrapper.eq("del_flag",0);
+		List<BaseExchangeRate> list = baseExchangeRateService.list(queryWrapper);
+		if(list.size() > 0){
+			return Result.error(baseExchangeRate.getCurrency()+baseExchangeRate.getYear()+"-"+baseExchangeRate.getMonth()+"已存在!");
+		}
+
 		baseExchangeRateService.save(baseExchangeRate);
 		return Result.OK("添加成功!");
 	}
@@ -89,6 +100,19 @@ public class BaseExchangeRateController extends JeecgController<BaseExchangeRate
 	@RequiresPermissions("baseCode:base_exchange_rate:edit")
 	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
 	public Result<String> edit(@RequestBody BaseExchangeRate baseExchangeRate) {
+
+		QueryWrapper<BaseExchangeRate> queryWrapper = new QueryWrapper<>();
+		queryWrapper.eq("year",baseExchangeRate.getYear());
+		queryWrapper.eq("month",baseExchangeRate.getMonth());
+		queryWrapper.eq("currency",baseExchangeRate.getCurrency());
+		queryWrapper.eq("del_flag",0);
+		queryWrapper.notIn("id",baseExchangeRate.getId());
+
+		List<BaseExchangeRate> list = baseExchangeRateService.list(queryWrapper);
+		if(list.size() > 0){
+			return Result.error(baseExchangeRate.getCurrency()+baseExchangeRate.getYear()+"-"+baseExchangeRate.getMonth()+"已存在!");
+		}
+
 		baseExchangeRateService.updateById(baseExchangeRate);
 		return Result.OK("编辑成功!");
 	}

+ 1 - 1
srm-module-code/src/main/java/org/jeecg/modules/purCode/controller/PurQuotationSelectionController.java

@@ -500,7 +500,7 @@ public class PurQuotationSelectionController {
         if(listId.size() > 0){
 
             String active = getActiveProfile();
-            if(StringUtils.isNotBlank(active) && active.equals("dev")){
+            if(StringUtils.isNotBlank(active) && (active.equals("prod") || active.equals("dev"))){
 
                 QueryWrapper<PurQuotationSelection> queryWrapper2 = new QueryWrapper<>();
                 queryWrapper2.in("id",listId);

+ 1 - 0
srm-module-code/src/main/java/org/jeecg/modules/purCode/entity/PurOrder.java

@@ -218,6 +218,7 @@ public class PurOrder implements Serializable {
 	/**来源2*/
 	@Excel(name = "来源2 销售订单单号", width = 15)
     @ApiModelProperty(value = "来源2 销售订单单号")
+    @Dict(dictTable = "sale_order", dicCode = "bill_code", dicText = "attachs")
     private String sourceCode2;
 
 	//报价变更后的来源选定单号

+ 1 - 0
srm-module-code/src/main/java/org/jeecg/modules/purCode/entity/PurQuotationSelection.java

@@ -119,6 +119,7 @@ public class PurQuotationSelection implements Serializable {
 	//订单总金额
 	private BigDecimal totalAmount;
 	//订单总金额(美元)
+    @Excel(name = "订单总金额(美元)", width = 15)
 	private BigDecimal totalAmountUsd;
     //质量等级
     private String qualityGradeHead;

+ 8 - 1
srm-module-code/src/main/java/org/jeecg/modules/saleCode/controller/SaleInquiryFormController.java

@@ -197,7 +197,7 @@ public class SaleInquiryFormController {
         saleInquiryForm.setSalesmanName(sysUser.getRealname());
         saleInquiryForm.setSaleDepartment(sysUser.getOrgCode());
 
-        if (StringUtils.isNotBlank(saleInquiryForm.getSaleDepartmentName())) {
+        if (StringUtils.isBlank(saleInquiryForm.getSaleDepartmentName())) {
             SysDepart dept = sysDepartService.queryDeptByCode(sysUser.getOrgCode());
             if (dept != null) {
                 saleInquiryForm.setSaleDepartmentName(dept.getDepartName());
@@ -225,6 +225,13 @@ public class SaleInquiryFormController {
         if (saleInquiryFormEntity == null) {
             return Result.error("未找到对应数据");
         }
+
+        if (StringUtils.isBlank(saleInquiryForm.getSaleDepartmentName()) && StringUtils.isNotBlank(saleInquiryForm.getSaleDepartment())) {
+            SysDepart dept = sysDepartService.queryDeptByCode(saleInquiryForm.getSaleDepartment());
+            if (dept != null) {
+                saleInquiryForm.setSaleDepartmentName(dept.getDepartName());
+            }
+        }
         saleInquiryFormService.updateMain(saleInquiryForm, saleInquiryFormPage.getSaleInquiryFormShipList(), saleInquiryFormPage.getSaleInquiryFormProductList());
         return Result.OK("编辑成功!");
     }

+ 144 - 2
srm-module-code/src/main/java/org/jeecg/modules/saleCode/service/impl/SaleInterfaceSyncServiceImpl.java

@@ -352,7 +352,7 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Result<String> actionSyncOrder(Collection<? extends Serializable> idList) {
+    public synchronized Result<String> actionSyncOrder(Collection<? extends Serializable> idList) {
 
         QueryWrapper<SaleInterfaceSync> entityQuery = new QueryWrapper<>();
         entityQuery.in("id", idList);
@@ -669,6 +669,9 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
             case "10":
                 parseAnglo(file);
                 break;
+            case "12":
+                OMAN(file);
+                break;
             default:
                 return;
         }
@@ -850,7 +853,8 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
                 SaleInterfaceItem saleInterfaceItem = new SaleInterfaceItem();
                 saleInterfaceItem.setDescription(jsonObject.getString("Description"));
                 saleInterfaceItem.setQuantity(jsonObject.getString("Quantity"));
-                saleInterfaceItem.setSyncItemCode(jsonObject.getString("Item Code/Part"));
+                saleInterfaceItem.setSupplierPartNumber(jsonObject.getString("Item Code/Part"));
+//                saleInterfaceItem.setSyncItemCode(jsonObject.getString("Item Code/Part"));
                 saleInterfaceItem.setUnitOfMeasure(jsonObject.getString("UoM") == null ? "" : jsonObject.getString("UoM").toUpperCase());
                 saleInterfaceItem.setHeadId(id);
                 saleInterfaceItemMapper.insert(saleInterfaceItem);
@@ -1489,6 +1493,144 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
         }
 
 
+    }
+
+    public void OMAN(MultipartFile file) throws Exception {
+        try {
+
+            SaleInterfaceSync saleInterfaceSync = new SaleInterfaceSync();
+            List<SaleInterfaceItem> saleInterfaceItemList = new ArrayList<>();
+
+            LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+            String id = UUIDGenerator.generate();
+            saleInterfaceSync.setId(id);
+            saleInterfaceSync.setCreateBy(sysUser.getUsername());
+
+            InputStream inputStream = file.getInputStream();
+            Workbook workbook = WorkbookFactory.create(inputStream);
+            Sheet sheet = workbook.getSheetAt(0);
+
+            String Remarks = "";
+
+            for(int index = 0; index <= sheet.getLastRowNum(); index ++) {
+                if(index == 4 || index == 5){
+                    continue;
+                }
+                Row row = sheet.getRow(index);
+                if(index == 0){
+                    Cell cell = row.getCell(11);
+                    if(cell !=null && Strings.isNotBlank(cell.getStringCellValue())) {
+                        String vessel = cell.getStringCellValue();
+                        saleInterfaceSync.setVesselCode(vessel);
+
+                    }
+
+                }
+                if(index == 1){
+                    Cell cell = row.getCell(17);
+                    if(cell !=null && Strings.isNotBlank(cell.getStringCellValue())) {
+                        String buyerName = cell.getStringCellValue();
+                        saleInterfaceSync.setBuyerName(buyerName);
+                    }
+
+                }
+                if(index == 2){
+                    Cell cell = row.getCell(11);
+                    if(cell !=null && Strings.isNotBlank(cell.getStringCellValue())) {
+                        String quotation = cell.getStringCellValue();
+                        saleInterfaceSync.setReferenceNumber(quotation);
+                    }
+
+                }
+                if(index == 3){
+                    Cell cell = row.getCell(11);
+                    if(cell !=null && Strings.isNotBlank(cell.getStringCellValue())) {
+                        String currency = cell.getStringCellValue();
+                        saleInterfaceSync.setCurrencyCode(currency);
+                    }
+
+                    Cell cell5 = row.getCell(15);
+                    if(cell5 !=null && Strings.isNotBlank(cell5.getStringCellValue())) {
+                        String validUntil = cell5.getStringCellValue();
+                        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH); // 注意这里的格式要和输入的字符串格式对应
+                        try {
+                            Date date = sdf.parse(validUntil);
+                            saleInterfaceSync.setAdviseBeforeDate(date);
+                        } catch (ParseException e) {
+                            e.printStackTrace();
+                        }
+                    }
+                }
+                if(index < 6){
+                    continue;
+                }
+
+                Cell cell = row.getCell(10);
+                Cell cell11 = row.getCell(11);
+                if((cell == null || Strings.isBlank(cell.getStringCellValue())) && (cell11 == null || Strings.isBlank(cell11.getStringCellValue()))){
+                    break;
+                }
+                if(cell == null || Strings.isBlank(cell.getStringCellValue())) {
+                    if(Strings.isNotBlank(cell11.getStringCellValue())) {
+                        String demo = cell11.getStringCellValue();
+                        Remarks = Remarks + demo;
+                    }
+
+                }else{
+
+                    SaleInterfaceItem interfaceItem = new SaleInterfaceItem();
+                    interfaceItem.setHeadId(id);
+
+                    String itemCode = cell.getStringCellValue();
+                    interfaceItem.setSupplierPartNumber(itemCode);
+
+                    Cell cell1 = row.getCell(11);
+                    if(cell1!=null && StringUtils.isNotBlank(cell1.getStringCellValue())){
+
+                        String description = cell1.getStringCellValue();
+                        interfaceItem.setDescription(description);
+                    }
+
+
+                    Cell cell2 = row.getCell(12);
+                    if(cell2!=null && StringUtils.isNotBlank(cell2.getStringCellValue())){
+
+                        String quantity = cell2.getStringCellValue();
+                        interfaceItem.setQuantity(quantity);
+                    }
+
+                    Cell cell3 = row.getCell(13);
+                    if(cell3!=null && StringUtils.isNotBlank(cell3.getStringCellValue())){
+
+                        String unit = cell3.getStringCellValue();
+                        interfaceItem.setUnitOfMeasure(unit);
+                    }
+
+                    interfaceItem.setComment(Remarks);
+
+                    saleInterfaceItemList.add(interfaceItem);
+
+                    Remarks = "";
+
+                }
+
+            }
+
+            if(saleInterfaceItemList.size() > 0){
+                saleInterfaceSyncMapper.insert(saleInterfaceSync);
+                for (SaleInterfaceItem o:saleInterfaceItemList){
+
+                    saleInterfaceItemMapper.insert(o);
+                }
+
+            }
+
+            inputStream.close();
+        } catch (Exception e) {
+            log.error("导入出错", e);
+        }
+
+
     }
 
     public void parseTechnava(MultipartFile file) throws Exception{

+ 35 - 35
srm-module-code/src/main/java/org/jeecg/modules/saleCode/util/HttpUtils.java

@@ -132,43 +132,43 @@ public class HttpUtils {
     public static void main(String[] args) throws Exception {
 //        String token = getAccessToken();
 //        System.out.println("======="+token);
-        String ACCESS_TOKEN="DATJB3Tu0Iufgfp8n0jOmdIB8DYWSLLH";
-//        JsonNode jsonNode = getDateListByUrl(ACCESS_TOKEN,null);
-//        System.out.println("================1===--------------");
-//        System.out.println(jsonNode.toString());
+        String ACCESS_TOKEN="jQkERatyA2aP5Ej6JSsRgKcYH5s9lpQG";
+        JsonNode jsonNode = getDateListByUrl(ACCESS_TOKEN,"2025-11-28");
+        System.out.println("================1===--------------");
+        System.out.println(jsonNode.toString());
 //////        ObjectMapper mapper = new ObjectMapper();
 ////////
 ////////
-       JsonNode rootNode = getDateByUrl("da036dc5-e9df-4399-99cc-6980d2abeedd",ACCESS_TOKEN);
-System.out.println("Part: "+rootNode);
-        // 1. 访问基本字段
-        String id = rootNode.path("id").asText();
-        String subject = rootNode.path("subject").asText();
-
-        // 2. 访问嵌套对象
-        JsonNode vesselNode = rootNode.path("vessel");
-        String vesselName = vesselNode.path("name").asText();
-        String imoNumber = vesselNode.path("imoNumber").asText();
-        String paymentTerms = vesselNode.path("paymentTerms").asText();
-        System.out.println(paymentTerms);
-
-        // 3. 访问数组
-        JsonNode lineItems = rootNode.path("lineItems");
-        System.out.println("========================================= ");
-        System.out.println("lineItems: "+lineItems);
-        for (JsonNode item : lineItems) {
-            String description = item.path("description").asText();
-            double quantity = item.path("quantity").asDouble();
-
-            // 4. 访问数组中的嵌套数组
-            JsonNode partIdentifications = item.path("partIdentification");
-            for (JsonNode part : partIdentifications) {
-                String partType = part.path("partType").asText();
-                String partCode = part.path("partCode").asText();
-
-                System.out.println("Part: " + partType + " - " + partCode);
-            }
-        }
+//       JsonNode rootNode = getDateByUrl("da036dc5-e9df-4399-99cc-6980d2abeedd",ACCESS_TOKEN);
+//System.out.println("Part: "+rootNode);
+//        // 1. 访问基本字段
+//        String id = rootNode.path("id").asText();
+//        String subject = rootNode.path("subject").asText();
+//
+//        // 2. 访问嵌套对象
+//        JsonNode vesselNode = rootNode.path("vessel");
+//        String vesselName = vesselNode.path("name").asText();
+//        String imoNumber = vesselNode.path("imoNumber").asText();
+//        String paymentTerms = vesselNode.path("paymentTerms").asText();
+//        System.out.println(paymentTerms);
+//
+//        // 3. 访问数组
+//        JsonNode lineItems = rootNode.path("lineItems");
+//        System.out.println("========================================= ");
+//        System.out.println("lineItems: "+lineItems);
+//        for (JsonNode item : lineItems) {
+//            String description = item.path("description").asText();
+//            double quantity = item.path("quantity").asDouble();
+//
+//            // 4. 访问数组中的嵌套数组
+//            JsonNode partIdentifications = item.path("partIdentification");
+//            for (JsonNode part : partIdentifications) {
+//                String partType = part.path("partType").asText();
+//                String partCode = part.path("partCode").asText();
+//
+//                System.out.println("Part: " + partType + " - " + partCode);
+//            }
+//        }
 //////
 
 //
@@ -238,7 +238,7 @@ System.out.println("Part: "+rootNode);
                     .addParameter("type", "RequestForQuote")   // 询价
                     .addParameter("submittedDate", date)   // 日期开始
                     .addParameter("pageNumber", "1")   // 页码参数
-                    .addParameter("pageSize", "50");              // 每页数量
+                    .addParameter("pageSize", "500");              // 每页数量
 
 
             HttpGet httpGet = new HttpGet(uriBuilder.build());

+ 6 - 0
srm-module-code/src/main/java/org/jeecg/modules/storeCode/service/impl/StorePurchaseInServiceImpl.java

@@ -347,11 +347,16 @@ public class StorePurchaseInServiceImpl extends ServiceImpl<StorePurchaseInMappe
             //  1已处理 0未处理
             String hasDeal = o.getHasDeal();
             String code = o.getBillCode();
+            String submit = o.getSubmit();//提交(submit)1是0否
 
             if (hasDeal != null && hasDeal != "" && hasDeal.equals("1")) {
                 sb.append("单据编码" + code).append("已处理,请勿再次操作;");
                 continue;
             }
+            if (StringUtils.isBlank(submit) || !submit.equals("1")) {
+                sb.append("单据编码" + code).append("采购入库单还未提交,无法处理;");
+                continue;
+            }
         }
 
         if (StringUtils.isNotBlank(sb.toString())) {
@@ -573,6 +578,7 @@ public class StorePurchaseInServiceImpl extends ServiceImpl<StorePurchaseInMappe
 
                 StorePurchaseIn ent = new StorePurchaseIn();
                 ent.setSubmit("0");
+                ent.setHasDeal("0");
                 this.update(ent, queryWrapper);
             } else {
                 throw new JeecgBootException(result);