yuansh пре 1 недеља
родитељ
комит
adbdc8ea96
14 измењених фајлова са 211 додато и 58 уклоњено
  1. 6 0
      srm-module-code/src/main/java/org/jeecg/modules/purCode/controller/PurDeliveryNoteController.java
  2. 10 0
      srm-module-code/src/main/java/org/jeecg/modules/purCode/controller/PurOrderController.java
  3. 2 0
      srm-module-code/src/main/java/org/jeecg/modules/purCode/entity/PurDeliveryNote.java
  4. 17 0
      srm-module-code/src/main/java/org/jeecg/modules/purCode/entity/PurShippingFee.java
  5. 10 0
      srm-module-code/src/main/java/org/jeecg/modules/purCode/mapper/xml/PurDeliveryNoteMapper.xml
  6. 16 0
      srm-module-code/src/main/java/org/jeecg/modules/purCode/vo/PurShippingFeePage.java
  7. 15 0
      srm-module-code/src/main/java/org/jeecg/modules/saleCode/controller/SaleDeliveryController.java
  8. 13 0
      srm-module-code/src/main/java/org/jeecg/modules/saleCode/controller/SaleInquiryFormController.java
  9. 31 0
      srm-module-code/src/main/java/org/jeecg/modules/saleCode/controller/SaleInvoiceController.java
  10. 11 0
      srm-module-code/src/main/java/org/jeecg/modules/saleCode/controller/SaleOrderController.java
  11. 14 0
      srm-module-code/src/main/java/org/jeecg/modules/saleCode/controller/SaleQuotationController.java
  12. 2 0
      srm-module-code/src/main/java/org/jeecg/modules/saleCode/entity/SaleInvoice.java
  13. 2 0
      srm-module-code/src/main/java/org/jeecg/modules/saleCode/entity/SaleInvoiceProduct.java
  14. 62 58
      srm-module-code/src/main/java/org/jeecg/modules/saleCode/util/JibeApiClient.java

+ 6 - 0
srm-module-code/src/main/java/org/jeecg/modules/purCode/controller/PurDeliveryNoteController.java

@@ -96,7 +96,13 @@ public class PurDeliveryNoteController {
 								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
 								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
 								   HttpServletRequest req) {
+
 		Page<PurDeliveryNote> page = new Page<PurDeliveryNote>(pageNo, pageSize);
+		String sql = QueryGenerator.installAuthJdbc(PurDeliveryNote.class);
+
+		if(StringUtils.isNotBlank(sql)){
+			purDeliveryNote.setPermissionSql(sql);//and sys_org_code in  ('A02A03A05')
+		}
 		IPage<PurDeliveryNote> pageList = purDeliveryNoteService.queryPageList(page, purDeliveryNote);
 		return Result.OK(pageList);
 	}

+ 10 - 0
srm-module-code/src/main/java/org/jeecg/modules/purCode/controller/PurOrderController.java

@@ -147,11 +147,21 @@ public class PurOrderController {
                                                  HttpServletRequest req) {
         String organize = purOrder.getOrganize();
         purOrder.setOrganize(null);
+        String purchaseman = purOrder.getPurchaseman();
+        purOrder.setPurchaseman(null);
+        String purchaseDepartment = purOrder.getPurchaseDepartment();
+        purOrder.setPurchaseDepartment(null);
 
         QueryWrapper<PurOrder> queryWrapper = QueryGenerator.initQueryWrapper(purOrder, req.getParameterMap());
         if(StringUtils.isNotBlank(organize)){
             queryWrapper.likeRight("organize",organize);
         }
+        if(StringUtils.isNotBlank(purchaseman)){
+            queryWrapper.in("purchaseman",purchaseman.split(","));
+        }
+        if(StringUtils.isNotBlank(purchaseDepartment)){
+            queryWrapper.in("purchase_department",purchaseDepartment.split(","));
+        }
         Page<PurOrder> page = new Page<PurOrder>(pageNo, pageSize);
         IPage<PurOrder> pageList = purOrderService.page(page, queryWrapper);
 

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

@@ -185,4 +185,6 @@ public class PurDeliveryNote implements Serializable {
     private String arrivalDate_end;
 	@TableField(exist = false)
     private String outStatus;
+	@TableField(exist = false)
+    private String permissionSql;
 }

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

@@ -116,4 +116,21 @@ public class PurShippingFee implements Serializable {
 	@Excel(name = "版本号", width = 15)
     @ApiModelProperty(value = "版本号")
     private String version;
+
+
+    /**开户行*/
+    @Excel(name = "开户行", width = 15)
+    @ApiModelProperty(value = "开户行")
+    private String openingBank;
+    @Excel(name = "户名", width = 15)
+    @ApiModelProperty(value = "户名")
+    private String openingName;
+    /**银行代码*/
+    @Excel(name = "银行代码", width = 15)
+    @ApiModelProperty(value = "银行代码")
+    private String swiftCode;
+    /**银行帐号*/
+    @Excel(name = "银行帐号", width = 15)
+    @ApiModelProperty(value = "银行帐号")
+    private String bankAccount;
 }

+ 10 - 0
srm-module-code/src/main/java/org/jeecg/modules/purCode/mapper/xml/PurDeliveryNoteMapper.xml

@@ -80,6 +80,16 @@
         <if test="param.sysOrgCode != null and param.sysOrgCode != ''">
             AND sys_org_code = #{param.sysOrgCode}
         </if>
+        <if test="param.purchaseman != null and param.purchaseman != ''">
+
+            AND FIND_IN_SET(purchaseman, #{param.purchaseman}) > 0
+        </if>
+        <if test="param.purchaseDepartment != null and param.purchaseDepartment != ''">
+            AND FIND_IN_SET(purchase_department, #{param.purchaseDepartment}) > 0
+        </if>
+        <if test="param.permissionSql != null and param.permissionSql != ''">
+            ${param.permissionSql}
+        </if>
         ORDER BY create_time DESC
     </select>
 

+ 16 - 0
srm-module-code/src/main/java/org/jeecg/modules/purCode/vo/PurShippingFeePage.java

@@ -109,6 +109,22 @@ public class PurShippingFeePage {
 	@ApiModelProperty(value = "版本号")
     private String version;
 
+	/**开户行*/
+	@Excel(name = "开户行", width = 15)
+	@ApiModelProperty(value = "开户行")
+	private String openingBank;
+	@Excel(name = "户名", width = 15)
+	@ApiModelProperty(value = "户名")
+	private String openingName;
+	/**银行代码*/
+	@Excel(name = "银行代码", width = 15)
+	@ApiModelProperty(value = "银行代码")
+	private String swiftCode;
+	/**银行帐号*/
+	@Excel(name = "银行帐号", width = 15)
+	@ApiModelProperty(value = "银行帐号")
+	private String bankAccount;
+
 	@ExcelCollection(name="运费采购订单子表 -  发货通知单")
 	@ApiModelProperty(value = "运费采购订单子表 -  发货通知单")
 	private List<PurShippingFeeNotice> purShippingFeeNoticeList;

+ 15 - 0
srm-module-code/src/main/java/org/jeecg/modules/saleCode/controller/SaleDeliveryController.java

@@ -143,7 +143,22 @@ public class SaleDeliveryController {
                                                      HttpServletRequest req) {
 
 
+        String salesman = saleDelivery.getSalesman();
+        saleDelivery.setSalesman(null);
+        String saleDepartment = saleDelivery.getSaleDepartment();
+        saleDelivery.setSaleDepartment(null);
+
+
         QueryWrapper<SaleDelivery> queryWrapper = QueryGenerator.initQueryWrapper(saleDelivery, req.getParameterMap());
+
+
+        if(StringUtils.isNotBlank(salesman)){
+            queryWrapper.in("salesman",salesman.split(","));
+        }
+        if(StringUtils.isNotBlank(saleDepartment)){
+            queryWrapper.in("sale_department",saleDepartment.split(","));
+        }
+
         if(StringUtils.isNotBlank(saleDelivery.getOrderNumber())){
             QueryWrapper saleQW = new QueryWrapper();
             saleQW.like("customer_order",saleDelivery.getOrderNumber());

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

@@ -105,8 +105,21 @@ public class SaleInquiryFormController {
 //            saleInquiryForm.setImo(null);
 //        }
 
+
+        String salesman = saleInquiryForm.getSalesman();
+        saleInquiryForm.setSalesman(null);
+        String saleDepartment = saleInquiryForm.getSaleDepartment();
+        saleInquiryForm.setSaleDepartment(null);
+
         QueryWrapper<SaleInquiryForm> queryWrapper = QueryGenerator.initQueryWrapper(saleInquiryForm, req.getParameterMap());
 
+        if(StringUtils.isNotBlank(salesman)){
+            queryWrapper.in("salesman",salesman.split(","));
+        }
+        if(StringUtils.isNotBlank(saleDepartment)){
+            queryWrapper.in("sale_department",saleDepartment.split(","));
+        }
+
 //        if(StringUtils.isNotBlank(shipName)){
 //
 //            List<SaleInquiryFormShip> list = saleInquiryFormShipService.list(shipQueryWrapper);

+ 31 - 0
srm-module-code/src/main/java/org/jeecg/modules/saleCode/controller/SaleInvoiceController.java

@@ -1155,6 +1155,16 @@ public class SaleInvoiceController {
                                     try {
                                         BigDecimal setTaxPrice = getSalePrice.divide(dis, 2, BigDecimal.ROUND_HALF_UP);
                                         o.setTaxPrice(setTaxPrice);
+
+                                        Double quantity = o.getQuantity();
+                                        BigDecimal bdQuantity = BigDecimal.valueOf(quantity);
+
+                                        BigDecimal wuzhek = setTaxPrice.multiply(bdQuantity);
+                                        BigDecimal zhek = dic.divide(new BigDecimal("100"));
+                                        BigDecimal zhekE = wuzhek.multiply(zhek);
+
+                                        o.setDiscountOnceAmount(wuzhek.subtract(zhekE));
+
                                     }catch (Exception e){
                                         o.setTaxPrice(BigDecimal.ZERO);
                                     }
@@ -1213,8 +1223,22 @@ public class SaleInvoiceController {
                     for (SaleInvoiceProduct o : productList) {
                         BigDecimal amount = o.getTaxMoney() == null ? BigDecimal.ZERO : o.getTaxMoney();
                         orderMoney = orderMoney.add(amount);
+
+                        if(o.getDiscountOnceAmount() != null){
+                            o.setTaxMoney(o.getDiscountOnceAmount());
+                        }
                     }
                     saleInvoice.setOrderMoney(orderMoney.setScale(2, RoundingMode.HALF_UP));
+
+
+                    if (oConvertUtils.isNotEmpty(saleOrder.getDoubleDiscount())) {
+                        BigDecimal zhek = saleOrder.getDoubleDiscount().divide(new BigDecimal("100"));
+
+                        saleInvoice.setDiscountMoney(orderMoney.multiply(zhek).setScale(2, RoundingMode.HALF_UP));
+                    }else{
+                        saleInvoice.setDiscountMoney(BigDecimal.ZERO);
+                    }
+
                     saleInvoice.setAgreementTerms(saleOrder.getAgreementTerms());
                     // 制单人信息
 //                SysUser sysUser = sysUserService.getUserByName2(saleInvoice.getCreateBy());
@@ -1422,6 +1446,9 @@ public class SaleInvoiceController {
                                     BigDecimal setTaxPrice = getSalePrice.divide(dis, 2, BigDecimal.ROUND_HALF_UP);
                                     o.setTaxPrice(setTaxPrice);
 
+//                                    Double quantity = o.getQuantity();
+//                                    BigDecimal bdQuantity = BigDecimal.valueOf(quantity);
+//                                    o.setDiscountOnceAmount(setTaxPrice.multiply(bdQuantity));
 //                                o.setTaxPrice(saleQuotationProduct.getSalePrice());
                                 }
 //                            if (oConvertUtils.isNotEmpty(saleOrderProduct.getDiscount()) && saleOrderProduct.getDiscount().intValue() != 0) {
@@ -1478,6 +1505,10 @@ public class SaleInvoiceController {
                         orderMoney = orderMoney.add(amount);
                     }
                     saleInvoice.setOrderMoney(orderMoney.setScale(2, RoundingMode.HALF_UP));
+
+                    //佣金订单无折上折概念
+                    saleInvoice.setDiscountMoney(BigDecimal.ZERO);
+
 //                    saleInvoice.setAgreementTerms(saleOrder.getAgreementTerms());
                     // 制单人信息
 //                SysUser sysUser = sysUserService.getUserByName2(saleInvoice.getCreateBy());

+ 11 - 0
srm-module-code/src/main/java/org/jeecg/modules/saleCode/controller/SaleOrderController.java

@@ -167,11 +167,22 @@ public class SaleOrderController {
         String organize = saleOrder.getOrganize();
         saleOrder.setOrganize(null);
 
+        String salesman = saleOrder.getSalesman();
+        saleOrder.setSalesman(null);
+        String saleDepartment = saleOrder.getSaleDepartment();
+        saleOrder.setSaleDepartment(null);
+
         QueryWrapper<SaleOrder> queryWrapper = QueryGenerator.initQueryWrapper(saleOrder, req.getParameterMap());
 
         if(StringUtils.isNotBlank(organize)){
             queryWrapper.likeRight("organize",organize);
         }
+        if(StringUtils.isNotBlank(salesman)){
+            queryWrapper.in("salesman",salesman.split(","));
+        }
+        if(StringUtils.isNotBlank(saleDepartment)){
+            queryWrapper.in("sale_department",saleDepartment.split(","));
+        }
 
         Page<SaleOrder> page = new Page<SaleOrder>(pageNo, pageSize);
         IPage<SaleOrder> pageList = saleOrderService.page(page, queryWrapper);

+ 14 - 0
srm-module-code/src/main/java/org/jeecg/modules/saleCode/controller/SaleQuotationController.java

@@ -158,8 +158,22 @@ public class SaleQuotationController {
         saleQuotation.setEnglishName(null);
         saleQuotation.setCustomerInquiryNumber(null);
 
+
+        String salesman = saleQuotation.getSalesman();
+        saleQuotation.setSalesman(null);
+        String saleDepartment = saleQuotation.getSaleDepartment();
+        saleQuotation.setSaleDepartment(null);
+
+
         QueryWrapper<SaleQuotation> queryWrapper = QueryGenerator.initQueryWrapper(saleQuotation, req.getParameterMap());
 
+        if(StringUtils.isNotBlank(salesman)){
+            queryWrapper.in("salesman",salesman.split(","));
+        }
+        if(StringUtils.isNotBlank(saleDepartment)){
+            queryWrapper.in("sale_department",saleDepartment.split(","));
+        }
+
         if(StringUtils.isNotBlank(customerInquiryNumber)){
 
             QueryWrapper<SaleInquiryForm> queryWrapperSaleInquiryForm = new QueryWrapper<>();

+ 2 - 0
srm-module-code/src/main/java/org/jeecg/modules/saleCode/entity/SaleInvoice.java

@@ -245,6 +245,8 @@ public class SaleInvoice implements Serializable {
     @TableField(exist = false)
     private BigDecimal orderMoney;
     @TableField(exist = false)
+    private BigDecimal discountMoney;//折扣额
+    @TableField(exist = false)
     private String salesmanName;
     @TableField(exist = false)
     private String agreementTerms;

+ 2 - 0
srm-module-code/src/main/java/org/jeecg/modules/saleCode/entity/SaleInvoiceProduct.java

@@ -144,4 +144,6 @@ public class SaleInvoiceProduct implements Serializable {
     private String discountText;
     @TableField(exist = false)
     private String unit;
+    @TableField(exist = false)
+    private java.math.BigDecimal discountOnceAmount;
 }

+ 62 - 58
srm-module-code/src/main/java/org/jeecg/modules/saleCode/util/JibeApiClient.java

@@ -50,10 +50,10 @@ public class JibeApiClient {
     public static void main(String[] args) throws JsonProcessingException, ApiException {
         // 1. 拉取 JiBe 下发的 RFQ / PO
 //        try {
-            ApiResponse response = pullJson("RFQ","pull_json");
-//            ApiResponse response = pullJson("PO","pull_json");
-            System.out.println("拉取成功:");
-            System.out.println(response.getFormattedBody());
+//            ApiResponse response = pullJson("RFQ","pull_json");
+////            ApiResponse response = pullJson("PO","pull_json");
+//            System.out.println("拉取成功:");
+//            System.out.println(response.getFormattedBody());
 //
 //            String responseBody = response.getFormattedBody();
 //
@@ -127,57 +127,57 @@ public class JibeApiClient {
 
         //=====================返回报价=====================
 //        // 构建请求体
-//        Map<String, Object> requestBody = buildRequestBody2("quotation", SUPPLIER_UID, CLIENT_UID);
-//
-//        String jsonBody = null;
-//        try {
-//            jsonBody = OBJECT_MAPPER.writeValueAsString(requestBody);
-//            System.err.println("==========================");
-//            System.out.println(jsonBody);
-//        } catch (Exception e) {
-//            System.err.println("==========================");
-//            System.out.println("构建请求体失败: " + e.getMessage());
-//        }
-//
-//        // 构建请求
-//        RequestBody body = RequestBody.create(JSON_MEDIA_TYPE, jsonBody);
-//        Request request = new Request.Builder()
-//                .url(BASE_URL + "/" + "quotation_response/")
-//                .post(body)
-//                .addHeader("token", TOKEN)
-//                .addHeader("Content-Type", "application/json")
-//                .build();
-//
-//        // 执行请求
-//        try (Response response = HTTP_CLIENT.newCall(request).execute()) {
-//            String responseBody = response.body() != null ? response.body().string() : "";
-//
-//            // 格式化响应
-//            String formattedBody = formatJson(responseBody);
-//
-//            ApiResponse apiResponse = new ApiResponse(
-//                    response.code(),
-//                    response.message(),
-//                    responseBody,
-//                    formattedBody,
-//                    response.isSuccessful()
-//            );
-//
-//            if (!response.isSuccessful()) {
-//                System.out.println("HTTP请求失败: " + response.code() + " " + response.message());
-//            }
-//
-//            System.err.println("============1==============");
-//            System.out.println(apiResponse.getFormattedBody());
-//            System.err.println("============2==============");
-//            System.out.println(apiResponse);
-//
-//        } catch (IOException e) {
-//            System.err.println("==========================");
-//            System.out.println("网络请求异常: " + e.getMessage());
-//        }
-//        System.err.println("==========================");
-//        System.err.println(jsonBody);
+        Map<String, Object> requestBody = buildRequestBody2("quotation", SUPPLIER_UID, CLIENT_UID);
+
+        String jsonBody = null;
+        try {
+            jsonBody = OBJECT_MAPPER.writeValueAsString(requestBody);
+            System.err.println("==========================");
+            System.out.println(jsonBody);
+        } catch (Exception e) {
+            System.err.println("==========================");
+            System.out.println("构建请求体失败: " + e.getMessage());
+        }
+
+        // 构建请求
+        RequestBody body = RequestBody.create(JSON_MEDIA_TYPE, jsonBody);
+        Request request = new Request.Builder()
+                .url(BASE_URL + "/" + "quotation_response/")
+                .post(body)
+                .addHeader("token", TOKEN)
+                .addHeader("Content-Type", "application/json")
+                .build();
+
+        // 执行请求
+        try (Response response = HTTP_CLIENT.newCall(request).execute()) {
+            String responseBody = response.body() != null ? response.body().string() : "";
+
+            // 格式化响应
+            String formattedBody = formatJson(responseBody);
+
+            ApiResponse apiResponse = new ApiResponse(
+                    response.code(),
+                    response.message(),
+                    responseBody,
+                    formattedBody,
+                    response.isSuccessful()
+            );
+
+            if (!response.isSuccessful()) {
+                System.out.println("HTTP请求失败: " + response.code() + " " + response.message());
+            }
+
+            System.err.println("============1==============");
+            System.out.println(apiResponse.getFormattedBody());
+            System.err.println("============2==============");
+            System.out.println(apiResponse);
+
+        } catch (IOException e) {
+            System.err.println("==========================");
+            System.out.println("网络请求异常: " + e.getMessage());
+        }
+        System.err.println("==========================");
+        System.err.println(jsonBody);
 
 //        System.out.println(buildRequestBodyConfirmPo(SUPPLIER_UID, CLIENT_UID));
 
@@ -301,7 +301,8 @@ public class JibeApiClient {
         bodyContent.put("supplier_quotation_reference",billCode);// "SQ2603529"
         bodyContent.put("quotation_creator", "GMS ENGINEERING LIMITED");
         bodyContent.put("delivery_terms", "NSA");//交货条款
-        bodyContent.put("quoted_items_number", saleQuotationProduct.size());
+//        bodyContent.put("delivery_terms", "EX WORK – UNPACKED");//交货条款
+        bodyContent.put("quoted_items_number", String.valueOf(saleQuotationProduct.size()+5));
         bodyContent.put("quoted_currency", currency);
 
 
@@ -338,10 +339,13 @@ public class JibeApiClient {
             jsonBody = OBJECT_MAPPER.writeValueAsString(body);
             System.err.println("==========================");
             System.out.println(jsonBody);
+
+            result.put("jsonBody",jsonBody);
         } catch (Exception e) {
             System.err.println("==========================");
             System.out.println("构建请求体失败: " + e.getMessage());
 
+            result.put("jsonBody",jsonBody);
             result.put("result","构建请求体失败: " + e.getMessage());
             result.put("httpSt","error");
         }
@@ -509,11 +513,11 @@ public class JibeApiClient {
             System.err.println("============2==============");
             System.out.println(apiResponse);
 
-            return formattedBody;
+            return "报文:"+jsonBody+";响应"+formattedBody;
         } catch (IOException e) {
             System.err.println("==========================");
             System.out.println("网络请求异常: " + e.getMessage());
-            return e.getMessage();
+            return "异常报文:"+jsonBody+";响应"+e.getMessage();
         }
     }
     /**