浏览代码

账务管理

WIN-B904R0U0NNS\Administrator 2 年之前
父节点
当前提交
c7077cb917

+ 159 - 38
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusAgreementOrderFeeController.java

@@ -2,10 +2,7 @@ package org.jeecg.modules.business.controller;
 
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
@@ -15,6 +12,8 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import org.apache.commons.lang.StringUtils;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.constant.CommonConstant;
@@ -34,16 +33,16 @@ import org.jeecg.modules.business.entity.BusAgreementOrderFee;
 import org.jeecg.modules.business.entity.BusCommodityRecord;
 import org.jeecg.modules.business.entity.BusDict;
 import org.jeecg.modules.business.entity.BusSalesPersonPost;
-import org.jeecg.modules.business.enums.AgreementOrderStatusEnum;
-import org.jeecg.modules.business.enums.AgreenmentAccountStatus;
-import org.jeecg.modules.business.enums.AgreenmentCheckStatus;
-import org.jeecg.modules.business.enums.ReturnGoodsStatusEnum;
+import org.jeecg.modules.business.enums.*;
 import org.jeecg.modules.business.service.IBusAgreementOrderFeeService;
 import org.jeecg.modules.business.service.IBusCommodityRecordService;
+import org.jeecg.modules.business.vo.AgreementAccountVo;
+import org.jeecg.modules.order.entity.CesOrderRepair;
 import org.jeecg.modules.order.service.ICesOrderLeaseGoodsService;
 import org.jeecg.modules.rooms.entity.CesGoods;
 import org.jeecg.modules.rooms.service.CesGoodsServiceImpl;
 import org.jeecg.modules.rooms.service.CesStockTypeServiceImpl;
+import org.jeecg.modules.system.entity.SysCategory;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
 import org.jeecgframework.poi.excel.entity.ExportParams;
@@ -287,46 +286,168 @@ public class BusAgreementOrderFeeController extends JeecgController<BusAgreement
 	 @RequestMapping(value = "/revoke", method = {RequestMethod.PUT,RequestMethod.POST})
 	 public Result<String> revoke(@RequestBody BusAgreementOrderFee busAgreementOrderFee) {
 		 BusAgreementOrderFee oldOrderFee = busAgreementOrderFeeService.getById(busAgreementOrderFee.getId());
+		 LambdaUpdateWrapper<BusAgreementOrderFee> updateWrapper = new UpdateWrapper().lambda();
 		 if (oldOrderFee != null) {
-		 	if (oldOrderFee.getType().equals(5)){
-				QueryWrapper<BusAgreementOrderFee> querOrderFee = new QueryWrapper<BusAgreementOrderFee>();
-				querOrderFee.eq("id", oldOrderFee.getId());
-				List<BusAgreementOrderFee> orderFeeList = busAgreementOrderFeeService.list(querOrderFee);
-				if (orderFeeList != null && orderFeeList.size() > 0) {
-					orderFeeList.forEach(item -> {
-						item.setStatus(AgreementOrderStatusEnum.NOT_SETTLEMENT.getKey());
-						item.setSettlementOrderFeeId("");
-					});
-					busAgreementOrderFeeService.updateBatchById(orderFeeList);
-				}
-				oldOrderFee.setDelFlag(CommonConstant.DEL_FLAG_1);
-				busAgreementOrderFeeService.updateById(oldOrderFee);
+		 	if (oldOrderFee.getType() != null && oldOrderFee.getType().equals(5)){
+//				QueryWrapper<BusAgreementOrderFee> querOrderFee = new QueryWrapper<BusAgreementOrderFee>();
+//				querOrderFee.eq("settlement_order_fee_id", oldOrderFee.getId());
+//				List<BusAgreementOrderFee> orderFeeList = busAgreementOrderFeeService.list(querOrderFee);
+//				if (orderFeeList != null && orderFeeList.size() > 0) {
+////					for(BusAgreementOrderFee item : orderFeeList){
+////						item.setStatus(AgreementOrderStatusEnum.NOT_SETTLEMENT.getKey());
+////						item.setSettlementOrderFeeId("");
+////					}
+//					orderFeeList.forEach(item -> {
+//						item.setStatus(AgreementOrderStatusEnum.NOT_SETTLEMENT.getKey());
+//						item.setSettlementOrderFeeId("");
+//					});
+//					busAgreementOrderFeeService.updateBatchById(orderFeeList);
+//				}
+				updateWrapper = new UpdateWrapper().lambda();
+				updateWrapper.eq(BusAgreementOrderFee::getSettlementOrderFeeId, oldOrderFee.getId());
+				updateWrapper.set(BusAgreementOrderFee::getStatus, AgreementOrderStatusEnum.NOT_SETTLEMENT.getKey());
+				updateWrapper.set(BusAgreementOrderFee::getSettlementOrderFeeId, "");
+
+				//关联结算记录更改为未结算
+				busAgreementOrderFeeService.update(updateWrapper);
+				//结算记录删除
+				busAgreementOrderFeeService.removeById(oldOrderFee);
 			}else{
 		 		if (oConvertUtils.isNotEmpty(oldOrderFee.getSettlementOrderFeeId())){
-					BusAgreementOrderFee settlementModel = busAgreementOrderFeeService.getById(busAgreementOrderFee.getSettlementOrderFeeId());
+					BusAgreementOrderFee settlementModel = busAgreementOrderFeeService.getById(oldOrderFee.getSettlementOrderFeeId());
 					if (settlementModel != null){
-						QueryWrapper<BusAgreementOrderFee> querOrderFee = new QueryWrapper<BusAgreementOrderFee>();
-						querOrderFee.eq("id", settlementModel.getId());
-						List<BusAgreementOrderFee> orderFeeList = busAgreementOrderFeeService.list(querOrderFee);
-						if (orderFeeList != null && orderFeeList.size() > 0) {
-							orderFeeList.forEach(item -> {
-								item.setStatus(AgreementOrderStatusEnum.NOT_SETTLEMENT.getKey());
-								item.setSettlementOrderFeeId("");
-							});
-							busAgreementOrderFeeService.updateBatchById(orderFeeList);
-						}
-						settlementModel.setDelFlag(CommonConstant.DEL_FLAG_1);
-						busAgreementOrderFeeService.updateById(settlementModel);
+
+						updateWrapper = new UpdateWrapper().lambda();
+						updateWrapper.eq(BusAgreementOrderFee::getSettlementOrderFeeId, settlementModel.getId());
+						updateWrapper.set(BusAgreementOrderFee::getStatus, AgreementOrderStatusEnum.NOT_SETTLEMENT.getKey());
+						updateWrapper.set(BusAgreementOrderFee::getSettlementOrderFeeId, "");
+
+						//关联结算记录更改为未结算
+						busAgreementOrderFeeService.update(updateWrapper);
+						//结算记录删除
+						busAgreementOrderFeeService.removeById(settlementModel);
+
+//						QueryWrapper<BusAgreementOrderFee> querOrderFee = new QueryWrapper<BusAgreementOrderFee>();
+//						querOrderFee.eq("settlement_order_fee_id", settlementModel.getId());
+//						List<BusAgreementOrderFee> orderFeeList = busAgreementOrderFeeService.list(querOrderFee);
+//						if (orderFeeList != null && orderFeeList.size() > 0) {
+//							for(BusAgreementOrderFee item : orderFeeList){
+//								item.setStatus(AgreementOrderStatusEnum.NOT_SETTLEMENT.getKey());
+//								item.setSettlementOrderFeeId("");
+//							}
+////							orderFeeList.forEach(item -> {
+////								item.setStatus(AgreementOrderStatusEnum.NOT_SETTLEMENT.getKey());
+////								item.setSettlementOrderFeeId("");
+////								updateOrderFeeList.add(item);
+////							});
+//							busAgreementOrderFeeService.updateBatchById(orderFeeList);
+//						}
 					}
 				}
-				oldOrderFee.setStatus(AgreementOrderStatusEnum.NOT_SETTLEMENT.getKey());
-				oldOrderFee.setSettlementOrderFeeId("");
-				busAgreementOrderFeeService.updateById(oldOrderFee);
 			}
+		 }
+		 return Result.OK("撤销成功!");
+	 }
+
+	 /**
+	  *  批量转账
+	  *
+	  * @param batchAgreementOrderSavaDto
+	  * @return
+	  */
+	 @AutoLog(value = "协议账单表-批量转账")
+	 @ApiOperation(value="协议账单表-批量转账", notes="协议账单表-批量转账")
+	 @PostMapping(value = "/transferBatch")
+	 public Result<String> transferBatch(@RequestBody BatchAgreementOrderSavaDto batchAgreementOrderSavaDto) {
+		 if (batchAgreementOrderSavaDto == null) {
+			 return Result.error("参数错误");
+		 }
+
+		 QueryWrapper<BusAgreementOrderFee> querOrderFee = new QueryWrapper<BusAgreementOrderFee>();
+		 List<String> selectionList = Arrays.asList(batchAgreementOrderSavaDto.getOrderIds().split(","));
+		 querOrderFee.in("id", selectionList);
+		 List<BusAgreementOrderFee> orderFeeList = busAgreementOrderFeeService.list(querOrderFee);
+		 if (orderFeeList != null && orderFeeList.size() > 0) {
+			 orderFeeList.forEach(item -> {
+				 item.setAgreementUnitId(batchAgreementOrderSavaDto.getAgreementUnitId());
+			 });
+			 this.busAgreementOrderFeeService.updateBatchById(orderFeeList);
+		 }
+		 return Result.OK("结算成功!");
+	 }
+
+	 /**
+	  *   添加
+	  *
+	  * @param busAgreementOrderFee
+	  * @return
+	  */
+	 @AutoLog(value = "协议账单表-冲账")
+	 @ApiOperation(value="协议账单表-冲账", notes="协议账单表-冲账")
+	 @PostMapping(value = "/reverseEntry")
+	 public Result<String>  reverseEntry(@RequestBody BusAgreementOrderFee busAgreementOrderFee) {
+		 LoginUser user = TokenUtils.getAuthUser();
+		 busAgreementOrderFee.setCreateUserId(user.getId());
+		 busAgreementOrderFee.setCreatedTime(new Date());
+		 busAgreementOrderFee.setCreateUserId(user != null ?user.getId():"");
+		 busAgreementOrderFee.setStatus(AgreementOrderStatusEnum.NOT_SETTLEMENT.getKey());
+		 busAgreementOrderFee.setDelFlag(CommonConstant.DEL_FLAG_0);
+		 busAgreementOrderFeeService.save(busAgreementOrderFee);
+
+		 return Result.OK("冲账成功!");
+	 }
+
+
+	 /**
+	  * 获取协议单位消费、收款信息
+	  *
+	  * @param agreementUnitId
+	  * @return
+	  */
+	 //@AutoLog(value = "协议账单表-消费、收款信息")
+	 @ApiOperation(value="协议账单表-消费、收款信息", notes="协议账单表-消费、收款信息")
+	 @GetMapping(value = "/queryAgreementAccount")
+	 public Result<AgreementAccountVo> queryAgreementAccount(@RequestParam(name="agreementUnitId",required=true) String agreementUnitId) {
+		 AgreementAccountVo agreementAccountVo = new AgreementAccountVo();
+		 agreementAccountVo.setConsume(BigDecimal.valueOf(0));
+		 agreementAccountVo.setPayment(BigDecimal.valueOf(0));
+		 String types = AgreementOrderTypeEnum.PAYMENT.getKey()+","+AgreementOrderTypeEnum.REFUND.getKey();
+		 List<String> typeList = Arrays.asList(types.split(","));
+
+		 QueryWrapper<BusAgreementOrderFee> querOrderFee = new QueryWrapper<BusAgreementOrderFee>();
+		 querOrderFee.eq("agreement_unit_id", agreementUnitId);
+		 querOrderFee.eq("status", AgreementOrderStatusEnum.NOT_SETTLEMENT.getKey());
+		 querOrderFee.notIn("type",typeList);
+		 List<BusAgreementOrderFee> orderFeeList = busAgreementOrderFeeService.list(querOrderFee);
+
+		 BigDecimal _consume = new BigDecimal("0.00");
+		 if (orderFeeList != null && orderFeeList.size() > 0){
+		 	for (BusAgreementOrderFee item : orderFeeList){
+				BigDecimal _price = new BigDecimal(item.getPayPrice().toString());
+				_consume = _consume.add(_price);
+
+			}
+			 agreementAccountVo.setConsume(_consume);
+
+		 }
+
+		 QueryWrapper<BusAgreementOrderFee> querOrderFee1 = new QueryWrapper<BusAgreementOrderFee>();
+		 querOrderFee1.eq("agreement_unit_id", agreementUnitId);
+		 querOrderFee1.eq("status", AgreementOrderStatusEnum.NOT_SETTLEMENT.getKey());
+		 querOrderFee1.in("type", typeList);
+
+		 List<BusAgreementOrderFee> orderFeeList1 = busAgreementOrderFeeService.list(querOrderFee1);
 
+		 BigDecimal _payment = new BigDecimal("0.00");
+		 if (orderFeeList1 != null && orderFeeList1.size() > 0){
+			 for (BusAgreementOrderFee item : orderFeeList1){
+				 BigDecimal _price = new BigDecimal(item.getPayPrice().toString());
+				 _payment = _payment.add(_price);
 
+			 }
+			 agreementAccountVo.setPayment(_payment);
 		 }
-		 return Result.OK("编辑成功!");
+		 return Result.OK(agreementAccountVo);
 	 }
 
 	/**

+ 3 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/dto/BatchAgreementOrderSavaDto.java

@@ -15,4 +15,7 @@ public class BatchAgreementOrderSavaDto {
     private BusAgreementOrderFee busAgreementOrderFee;
 
     private String orderIds;
+
+    //转账单位
+    private String agreementUnitId;
 }

+ 4 - 4
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusAgreementOrderFee.java

@@ -116,10 +116,10 @@ public class BusAgreementOrderFee implements Serializable {
     @Excel(name = "关联的结算账单id", width = 15)
     @ApiModelProperty(value = "关联的结算账单id")
     private String settlementOrderFeeId;
-    /**
-     * 删除状态(0,正常,1已删除)
-     */
-    @Excel(name = "删除状态", width = 15,dicCode="del_flag")
+
+    /**删除状态(0-正常,1-已删除)*/
+    @Excel(name = "删除状态(0-正常,1-已删除)", width = 15)
+    @ApiModelProperty(value = "删除状态(0-正常,1-已删除)")
     @TableLogic
     private Integer delFlag;
 }

+ 58 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/enums/AgreementOrderTypeEnum.java

@@ -0,0 +1,58 @@
+package org.jeecg.modules.business.enums;
+        import org.jeecg.common.system.annotation.EnumDict;
+        import org.jeecg.common.system.vo.DictModel;
+
+        import java.util.ArrayList;
+        import java.util.List;
+
+@EnumDict("AgreementOrderTypeEnum")
+public enum AgreementOrderTypeEnum {
+    PAYMENT(1,"收款"),
+    REFUND(2,"退款"),
+    GOODS_ONSUME(3,"商品消费"),
+    RETURN_GOODS(4,"退货"),
+    SETTLEMENT(5,"结算"),
+    REVERSE_ENTRY(6,"冲账"),;
+
+    Integer key;
+
+    String title;
+
+    AgreementOrderTypeEnum(Integer key, String title){
+        this.key = key;
+        this.title = title;
+    }
+    public Integer getKey() {
+        return key;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    /**
+     * 获取字典数据
+     * @return
+     */
+    public static List<DictModel> getDictList(){
+        List<DictModel> list = new ArrayList<>();
+        DictModel dictModel = null;
+        for(CouponsEventEnum e: CouponsEventEnum.values()){
+            dictModel = new DictModel();
+            dictModel.setValue(e.key.toString());
+            dictModel.setText(e.title);
+            list.add(dictModel);
+        }
+        return list;
+    }
+
+    public static AgreementOrderTypeEnum val(Integer key){
+        for(AgreementOrderTypeEnum bld: values()){
+            if(bld.key .equals(key)){
+                return bld;
+            }
+        }
+        return null;
+    }
+}
+

+ 19 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/vo/AgreementAccountVo.java

@@ -0,0 +1,19 @@
+package org.jeecg.modules.business.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.jeecg.modules.business.entity.BusBookingBatch;
+import org.jeecg.modules.business.entity.BusMarketAgreementCustomer;
+import org.jeecg.modules.business.entity.BusMarketAgreementCustomerHousePrice;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+public class AgreementAccountVo {
+    @ApiModelProperty(value = "消费")
+    private BigDecimal consume;
+
+    @ApiModelProperty(value = "收款")
+    private BigDecimal payment;
+}