LiFei 5 роки тому
батько
коміт
2bf29c5c41

+ 7 - 3
happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwinvoice/service/impl/HlwInvoiceServiceImpl.java

@@ -9,6 +9,8 @@ import org.jeecg.modules.hlwinvoice.mapper.HlwInvoiceMapper;
 import org.jeecg.modules.hlwinvoice.service.IHlwInvoiceService;
 import org.jeecg.modules.hlwpayment.entity.HlwPayment;
 import org.jeecg.modules.hlwpayment.service.IHlwPaymentService;
+import org.jeecg.modules.hlwsubcontractor.entity.HlwSubcontractorAccountFlow;
+import org.jeecg.modules.hlwsubcontractor.service.IHlwSubcontractorAccountFlowService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -27,6 +29,8 @@ import java.util.Date;
 public class HlwInvoiceServiceImpl extends ServiceImpl<HlwInvoiceMapper, HlwInvoice> implements IHlwInvoiceService {
     @Autowired
     private IHlwPaymentService hlwPaymentService;
+    @Autowired
+    private IHlwSubcontractorAccountFlowService hlwSubcontractorAccountFlowService;
 
 
     @Override
@@ -37,9 +41,9 @@ public class HlwInvoiceServiceImpl extends ServiceImpl<HlwInvoiceMapper, HlwInvo
         hlwInvoice.setUploadBy(user.getUsername());
         save(hlwInvoice);
         for (int i = 0; i <hlwInvoice.getIdsList().size() ; i++) {
-            HlwPayment hlwPayment=hlwPaymentService.getById(hlwInvoice.getIdsList().get(i));
-//            hlwPayment.setInvoiceId(hlwInvoice.getId());
-            hlwPaymentService.updateById(hlwPayment);
+            HlwSubcontractorAccountFlow hlwSubcontractorAccountFlow=hlwSubcontractorAccountFlowService.getById(hlwInvoice.getIdsList().get(i));
+            hlwSubcontractorAccountFlow.setInvoiceId(hlwInvoice.getId());
+            hlwSubcontractorAccountFlowService.updateById(hlwSubcontractorAccountFlow);
         }
     }
 

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

@@ -150,7 +150,65 @@ public class HlwSubcontractorAccountFlowController extends JeecgController<HlwSu
 		 return Result.ok(pageList);
 	 }
 
+	 /**
+	  * 分页列表查询预开票付款
+	  *
+	  * @param hlwSubcontractorAccountFlow
+	  * @param pageNo
+	  * @param pageSize
+	  * @param req
+	  * @return
+	  */
+	 @AutoLog(value = "开票付款信息-分页列表查询")
+	 @ApiOperation(value = "开票付款信息-分页列表查询", notes = "开票付款信息-分页列表查询")
+	 @GetMapping(value = "/invoicePaymentApplyList")
+	 public Result<?> invoicePaymentApplyList(HlwSubcontractorAccountFlow hlwSubcontractorAccountFlow,
+											  @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+											  @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+											  HttpServletRequest req) {
+		 QueryWrapper<HlwSubcontractorAccountFlow> queryWrapper = QueryGenerator.initQueryWrapperForRule(hlwSubcontractorAccountFlow, req.getParameterMap());
+		 Page<HlwSubcontractorAccountFlow> page = new Page<HlwSubcontractorAccountFlow>(pageNo, pageSize);
+		 Page<HlwSubcontractorAccountFlow> pageList = hlwSubcontractorAccountFlowService.invoicePaymentApplyList(page, hlwSubcontractorAccountFlow, queryWrapper);
+		 return Result.ok(pageList);
+	 }
+
 
+	 /**
+	  * 查询能否开票
+	  *
+	  * @param
+	  * @return
+	  */
+	 @PutMapping(value = "/invoicePayment")
+	 public Result<?> invoicePayment(@RequestBody HlwSubcontractorAccountFlow hlwSubcontractorAccountFlow) {
+		 List<Integer> idsList = hlwSubcontractorAccountFlow.getIdsList();
+		 if (idsList.size() > 0) {
+			 HlwSubcontractorAccountFlow hlwSubcontractorAccountFlow1 = hlwSubcontractorAccountFlowService.getHlwSubcontractorAccountFlowById(idsList.get(0));
+			 hlwSubcontractorAccountFlow1.setIdsList(hlwSubcontractorAccountFlow.getIdsList());
+			 if (idsList.size() == 1) {
+				 //选择单个直接返回实体对象
+				 return Result.ok(hlwSubcontractorAccountFlow1);
+			 }
+			 Double totalPayment = 0.00;
+			 for (int i = 0; i < idsList.size(); i++) {
+				 HlwSubcontractorAccountFlow hlwSubcontractorAccountFlow2 = hlwSubcontractorAccountFlowService.getHlwSubcontractorAccountFlowById(idsList.get(i));
+				 //选择多个如果选择的付款企业和收款服务商有不同的则返回错误提示
+				 if (i < idsList.size() - 1) {
+					 HlwSubcontractorAccountFlow hlwSubcontractorAccountFlow3 = hlwSubcontractorAccountFlowService.getHlwSubcontractorAccountFlowById(idsList.get(i + 1));
+					 if (hlwSubcontractorAccountFlow2.getCompanyId() != hlwSubcontractorAccountFlow3.getCompanyId() ||
+							 hlwSubcontractorAccountFlow2.getSubcontractorId() != hlwSubcontractorAccountFlow3.getSubcontractorId()) {
+						 return Result.error("请选择付款企业、收款服务商都相同的数据");
+					 }
+				 }
+				 totalPayment = businessAccountUtils.add(totalPayment, businessAccountUtils.add(hlwSubcontractorAccountFlow2.getAmount(),hlwSubcontractorAccountFlow2.getServiceFee()));
+			 }
+			 //将所有选择付款的金额总和存放到准备返回的对象里
+			 hlwSubcontractorAccountFlow1.setTotalPayment(totalPayment);
+			 //如果都相同则返回所需开票页面参数实体对象
+			 return Result.ok(hlwSubcontractorAccountFlow1);
+		 }
+		 return Result.ok();
+	 }
 
 
 	

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

@@ -69,6 +69,7 @@ public class HlwSubcontractorAccountFlow implements Serializable {
      * 是否通过平台(0:否 1:是)
      */
     @ApiModelProperty(value = "是否通过平台(0:否 1:是)")
+    @Dict(dicCode = "is_through_platform")
     private Integer isThroughPlatform;
     /**
      * 创建时间
@@ -209,4 +210,13 @@ public class HlwSubcontractorAccountFlow implements Serializable {
 
     @TableField(exist = false)
     private Integer requirementId;
+
+    @TableField(exist = false)
+    private String paymentCode;
+
+    @TableField(exist = false)
+    private String subcontractorName;
+
+    @TableField(exist = false)
+    private String applicationName;
 }

+ 4 - 0
happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwsubcontractor/mapper/HlwSubcontractorAccountFlowMapper.java

@@ -22,4 +22,8 @@ public interface HlwSubcontractorAccountFlowMapper extends BaseMapper<HlwSubcont
     List<HlwSubcontractorAccountFlow> findCompanyBusinessList(@Param("hlwSubcontractorAccountFlow")HlwSubcontractorAccountFlow hlwSubcontractorAccountFlow, @Param(Constants.WRAPPER)QueryWrapper<HlwSubcontractorAccountFlow> queryWrapper);
 
     List<HlwSubcontractorAccountFlow> companyBusinessDetailList(Page<HlwSubcontractorAccountFlow> page, @Param("hlwSubcontractorAccountFlow")HlwSubcontractorAccountFlow hlwSubcontractorAccountFlow,@Param(Constants.WRAPPER) QueryWrapper<HlwSubcontractorAccountFlow> queryWrapper);
+
+    List<HlwSubcontractorAccountFlow> invoicePaymentApplyList(Page<HlwSubcontractorAccountFlow> page, @Param("hlwSubcontractorAccountFlow")HlwSubcontractorAccountFlow hlwSubcontractorAccountFlow, @Param(Constants.WRAPPER)QueryWrapper<HlwSubcontractorAccountFlow> queryWrapper);
+
+    HlwSubcontractorAccountFlow getHlwSubcontractorAccountFlowById(Integer id);
 }

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

@@ -210,4 +210,70 @@
         ORDER BY a.update_time DESC, a.id ASC
     </select>
 
+
+
+    <!--预开票付款list(新)-->
+    <select id="invoicePaymentApplyList" resultType="org.jeecg.modules.hlwsubcontractor.entity.HlwSubcontractorAccountFlow" >
+        SELECT
+        a.id AS "id",
+        ha.application_name AS "applicationName",
+        hp.payment_code AS "paymentCode",
+        case when a.is_through_platform=1 then hce.cp_name else hc.company_name end as "companyName",
+        a.is_through_platform AS "isThroughPlatform",
+        hs.name AS "subcontractorName",
+        (a.amount+a.service_fee) AS "totalPayment",
+        a.invoice_id AS "invoiceId",
+        a.create_time AS "createTime"
+        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
+        left join hlw_company hc on hc.id=hp.company_id
+        inner join hlw_cp_setting hce
+        left join hlw_subcontractor hs on hs.id=hp.subcontractor_id
+        <where>
+            a.type=0
+            <if test="hlwSubcontractorAccountFlow.paymentCode != null and hlwSubcontractorAccountFlow.paymentCode !=''">
+                and hp.payment_code like concat(concat('%',#{hlwSubcontractorAccountFlow.paymentCode}),'%')
+            </if>
+            <if test="hlwSubcontractorAccountFlow.companyName != null and hlwSubcontractorAccountFlow.companyName !=''">
+                and 	case when  a.is_through_platform=1 then hce.cp_name like concat('%',#{hlwSubcontractorAccountFlow.companyName},'%') else hc.company_name like concat('%',#{hlwSubcontractorAccountFlow.companyName},'%') end
+            </if>
+            <if test="hlwSubcontractorAccountFlow.invoiceStatus != null">
+                <if test="hlwSubcontractorAccountFlow.invoiceStatus ==1">
+                    and a.invoice_id is null
+                </if>
+                <if test="hlwSubcontractorAccountFlow.invoiceStatus ==2">
+                    and a.invoice_id is not null
+                </if>
+            </if>
+        </where>
+        group by a.id
+        ORDER BY a.update_time DESC, a.id ASC
+    </select>
+
+
+
+    <select id="getHlwSubcontractorAccountFlowById" resultType="org.jeecg.modules.hlwsubcontractor.entity.HlwSubcontractorAccountFlow" >
+		SELECT
+		a.id AS "id",
+		ha.application_name AS "applicationName",
+		hp.payment_code AS "paymentCode",
+		case when a.is_through_platform=1 then hce.cp_name else hc.company_name end as "companyName",
+		a.is_through_platform AS "isThroughPlatform",
+		hs.name AS "subcontractorName",
+		 (a.amount+a.service_fee) AS "totalPayment",
+		a.invoice_id AS "invoiceId",
+		a.create_time AS "createTime",
+		hc.id as "companyId",
+		hs.id as "subcontractorId",
+		a.amount as "amount",
+        a.service_fee as "serviceFee"
+		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
+		left join hlw_company hc on hc.id=hp.company_id
+		inner join hlw_cp_setting hce
+		left join hlw_subcontractor hs on hs.id=hp.subcontractor_id
+		WHERE a.id = #{id}
+	</select>
 </mapper>

+ 4 - 0
happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwsubcontractor/service/IHlwSubcontractorAccountFlowService.java

@@ -20,4 +20,8 @@ public interface IHlwSubcontractorAccountFlowService extends IService<HlwSubcont
     List<HlwSubcontractorAccountFlow> findCompanyBusinessList(HlwSubcontractorAccountFlow hlwSubcontractorAccountFlow, QueryWrapper<HlwSubcontractorAccountFlow> queryWrapper);
 
     Page<HlwSubcontractorAccountFlow> companyBusinessDetailList(Page<HlwSubcontractorAccountFlow> page, HlwSubcontractorAccountFlow hlwSubcontractorAccountFlow, QueryWrapper<HlwSubcontractorAccountFlow> queryWrapper);
+
+    Page<HlwSubcontractorAccountFlow> invoicePaymentApplyList(Page<HlwSubcontractorAccountFlow> page, HlwSubcontractorAccountFlow hlwSubcontractorAccountFlow, QueryWrapper<HlwSubcontractorAccountFlow> queryWrapper);
+
+    HlwSubcontractorAccountFlow getHlwSubcontractorAccountFlowById(Integer integer);
 }

+ 11 - 0
happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwsubcontractor/service/impl/HlwSubcontractorAccountFlowServiceImpl.java

@@ -35,4 +35,15 @@ public class HlwSubcontractorAccountFlowServiceImpl extends ServiceImpl<HlwSubco
     public Page<HlwSubcontractorAccountFlow> companyBusinessDetailList(Page<HlwSubcontractorAccountFlow> page, HlwSubcontractorAccountFlow hlwSubcontractorAccountFlow, QueryWrapper<HlwSubcontractorAccountFlow> queryWrapper) {
         return page.setRecords(baseMapper.companyBusinessDetailList(page, hlwSubcontractorAccountFlow, queryWrapper));
     }
+
+
+    @Override
+    public Page<HlwSubcontractorAccountFlow> invoicePaymentApplyList(Page<HlwSubcontractorAccountFlow> page, HlwSubcontractorAccountFlow hlwSubcontractorAccountFlow, QueryWrapper<HlwSubcontractorAccountFlow> queryWrapper) {
+        return page.setRecords(baseMapper.invoicePaymentApplyList(page, hlwSubcontractorAccountFlow, queryWrapper));
+    }
+
+    @Override
+    public HlwSubcontractorAccountFlow getHlwSubcontractorAccountFlowById(Integer id) {
+        return baseMapper.getHlwSubcontractorAccountFlowById(id);
+    }
 }