فهرست منبع

能否开票接口

LiFei 3 سال پیش
والد
کامیت
611d9a71d1

+ 21 - 0
happy-cloud-auth/src/main/java/org/jeecg/modules/api/controller/HlwInvoiceController.java

@@ -56,4 +56,25 @@ public class HlwInvoiceController {
     }
 
 
+    /**
+     * 能否开票
+     *
+     * @param json
+     * @return
+     */
+    @AutoLog(value = "开票申请列表")
+    @ApiOperation(value = "开票申请列表", notes = "开票申请列表")
+    @PostMapping(value = "/checkApply")
+    public Result<?> checkApply(@RequestBody String json) {
+        log.info("json========{}", json);
+        //数据解密
+        json = CryptTool.decode(json);
+        JSONObject jsonObject = JSONObject.parseObject(json);
+        //获取应用信息
+        OauthApplication oauthApplication = authService.getApplication(SecurityUtils.getClient());
+        jsonObject.put("applicationId", oauthApplication.getApplicationId());
+        Result<?> result = hlwInvoiceServiceClient.checkApply(jsonObject);
+        return result;
+    }
+
 }

+ 9 - 0
happy-cloud-auth/src/main/java/org/jeecg/modules/feign/client/HlwInvoiceServiceClient.java

@@ -26,4 +26,13 @@ public interface HlwInvoiceServiceClient {
      */
     @PostMapping(value = "/wisdom/hlwInvoice/api/list")
     Result<?> list(JSONObject jsonObject);
+
+    /**
+     * 能否开票
+     *
+     * @param jsonObject
+     * @return
+     */
+    @PostMapping(value = "/wisdom/hlwInvoice/api/checkApply")
+    Result<?> checkApply(JSONObject jsonObject);
 }

+ 5 - 0
happy-cloud-auth/src/main/java/org/jeecg/modules/feign/client/fallback/HlwInvoiceServiceClientFallbackImpl.java

@@ -22,4 +22,9 @@ public class HlwInvoiceServiceClientFallbackImpl implements HlwInvoiceServiceCli
     public Result<?> list(JSONObject jsonObject) {
         return Result.error("查询开票列表失败");
     }
+
+    @Override
+    public Result<?> checkApply(JSONObject jsonObject) {
+        return Result.error("查询能否开票失败");
+    }
 }

+ 57 - 1
happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/api/controller/HlwInvoiceApiController.java

@@ -9,6 +9,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.util.businessAccountUtils;
 import org.jeecg.modules.hlwinvoice.entity.HlwInvoice;
 import org.jeecg.modules.hlwinvoice.service.IHlwInvoiceService;
 import org.jeecg.modules.hlwsubcontractor.entity.HlwSubcontractorAccountFlow;
@@ -73,6 +74,61 @@ public class HlwInvoiceApiController extends JeecgController<HlwInvoice, IHlwInv
         return Result.ok(pageList);
     }
 
-
+    /**
+     * 能否开票
+     *
+     * @param jsonObject
+     * @return
+     */
+    @AutoLog(value = "能否开票")
+    @ApiOperation(value = "能否开票", notes = "能否开票")
+    @PostMapping(value = "/checkApply")
+    public Result<?> checkApply(@RequestBody JSONObject jsonObject) {
+        Integer applicationId = jsonObject.getInteger("applicationId");
+        JSONArray jsonArray = jsonObject.getJSONArray("idsList");
+        List<Integer> idsList=new ArrayList<>();
+        for (int i = 0; i <jsonArray.size() ; i++) {
+            idsList.add((Integer)jsonArray.get(i));
+        }
+        HlwSubcontractorAccountFlow hlwSubcontractorAccountFlow1 = hlwSubcontractorAccountFlowService.getHlwSubcontractorAccountFlowById(idsList.get(0));
+        hlwSubcontractorAccountFlow1.setIdsList(idsList);
+        if (idsList.size() == 1) {
+            //选择单个直接返回实体对象
+            return Result.ok(hlwSubcontractorAccountFlow1);
+        }
+        Double totalPayment = 0.00;
+        Double serviceAmount=0.00;
+        for (int i = 0; i < idsList.size(); i++) {
+            HlwSubcontractorAccountFlow hlwSubcontractorAccountFlow2 = hlwSubcontractorAccountFlowService.getHlwSubcontractorAccountFlowById(idsList.get(i));
+            if(hlwSubcontractorAccountFlow2.getIsThroughPlatform()==1){
+                //选择多个如果选择的付款企业和收款服务商有不同的则返回错误提示
+                if (i < idsList.size() - 1) {
+                    HlwSubcontractorAccountFlow hlwSubcontractorAccountFlow3 = hlwSubcontractorAccountFlowService.getHlwSubcontractorAccountFlowById(idsList.get(i + 1));
+                    if (!hlwSubcontractorAccountFlow2.getSubcontractorId().equals(hlwSubcontractorAccountFlow3.getSubcontractorId())  ||
+                            !hlwSubcontractorAccountFlow2.getIsThroughPlatform().equals(hlwSubcontractorAccountFlow3.getIsThroughPlatform())||
+                            !hlwSubcontractorAccountFlow2.getCpId().equals(hlwSubcontractorAccountFlow3.getCpId())) {
+                        return Result.error("请选择付款企业、收款服务商都相同的数据");
+                    }
+                }
+                serviceAmount = businessAccountUtils.add(serviceAmount, businessAccountUtils.add(hlwSubcontractorAccountFlow2.getCompanyCpAmount(),hlwSubcontractorAccountFlow2.getCompanyCpServiceFee()));
+            }else{
+                //选择多个如果选择的付款企业和收款服务商有不同的则返回错误提示
+                if (i < idsList.size() - 1) {
+                    HlwSubcontractorAccountFlow hlwSubcontractorAccountFlow3 = hlwSubcontractorAccountFlowService.getHlwSubcontractorAccountFlowById(idsList.get(i + 1));
+                    if (!hlwSubcontractorAccountFlow2.getCompanyId().equals(hlwSubcontractorAccountFlow3.getCompanyId())  ||
+                            !hlwSubcontractorAccountFlow2.getSubcontractorId().equals(hlwSubcontractorAccountFlow3.getSubcontractorId())  ||
+                            !hlwSubcontractorAccountFlow2.getIsThroughPlatform().equals(hlwSubcontractorAccountFlow3.getIsThroughPlatform())) {
+                        return Result.error("请选择付款企业、收款服务商都相同的数据");
+                    }
+                }
+            }
+            totalPayment = businessAccountUtils.add(totalPayment, businessAccountUtils.add(hlwSubcontractorAccountFlow2.getAmount(),hlwSubcontractorAccountFlow2.getServiceFee()));
+        }
+        //将所有选择付款的金额总和存放到准备返回的对象里
+        hlwSubcontractorAccountFlow1.setTotalPayment(totalPayment);
+        hlwSubcontractorAccountFlow1.setServiceAmount(serviceAmount);
+        //如果都相同则返回所需开票页面参数实体对象
+        return Result.ok(hlwSubcontractorAccountFlow1);
+    }
 
 }

+ 5 - 0
happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwsubcontractor/controller/HlwSubcontractorAccountFlowController.java

@@ -182,11 +182,14 @@ public class HlwSubcontractorAccountFlowController extends JeecgController<HlwSu
 	 @PutMapping(value = "/invoicePayment")
 	 public Result<?> invoicePayment(@RequestBody HlwSubcontractorAccountFlow hlwSubcontractorAccountFlow) {
 		 List<Integer> idsList = hlwSubcontractorAccountFlow.getIdsList();
+		 List<Integer> paymentIdList =new ArrayList<>();
 		 if (idsList.size() > 0) {
 			 HlwSubcontractorAccountFlow hlwSubcontractorAccountFlow1 = hlwSubcontractorAccountFlowService.getHlwSubcontractorAccountFlowById(idsList.get(0));
 			 hlwSubcontractorAccountFlow1.setIdsList(hlwSubcontractorAccountFlow.getIdsList());
 			 if (idsList.size() == 1) {
 				 //选择单个直接返回实体对象
+				 paymentIdList.add(hlwSubcontractorAccountFlow1.getPaymentId());
+				 hlwSubcontractorAccountFlow1.setPaymentIdList(paymentIdList);
 				 return Result.ok(hlwSubcontractorAccountFlow1);
 			 }
 			 Double totalPayment = 0.00;
@@ -215,11 +218,13 @@ public class HlwSubcontractorAccountFlowController extends JeecgController<HlwSu
 						 }
 					 }
 				 }
+				 paymentIdList.add(hlwSubcontractorAccountFlow2.getPaymentId());
 				 totalPayment = businessAccountUtils.add(totalPayment, businessAccountUtils.add(hlwSubcontractorAccountFlow2.getAmount(),hlwSubcontractorAccountFlow2.getServiceFee()));
 			 }
 			 //将所有选择付款的金额总和存放到准备返回的对象里
 			 hlwSubcontractorAccountFlow1.setTotalPayment(totalPayment);
 			 hlwSubcontractorAccountFlow1.setServiceAmount(serviceAmount);
+			 hlwSubcontractorAccountFlow1.setPaymentIdList(paymentIdList);
 			 //如果都相同则返回所需开票页面参数实体对象
 			 return Result.ok(hlwSubcontractorAccountFlow1);
 		 }

+ 3 - 0
happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwsubcontractor/entity/HlwSubcontractorAccountFlow.java

@@ -265,4 +265,7 @@ public class HlwSubcontractorAccountFlow implements Serializable {
     @TableField(exist = false)
     private Double serviceAmount;
 
+    @TableField(exist = false)
+    private List<Integer> paymentIdList;
+
 }

+ 2 - 1
happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwsubcontractor/mapper/xml/HlwSubcontractorAccountFlowMapper.xml

@@ -299,7 +299,8 @@
         a.cp_id as "cpId",
         hcf.amount as "companyCpAmount",
         hcf.service_fee as "companyCpServiceFee",
-         (hcf.amount+hcf.service_fee) AS "serviceAmount"
+         (hcf.amount+hcf.service_fee) AS "serviceAmount",
+        hp.id as "paymentId"
 		FROM hlw_subcontractor_account_flow a
 		left join hlw_payment hp on a.payment_id=hp.id
 		left join hlw_application_setting ha on ha.id=hp.application_id