Commit ff59b294 authored by zhangzc's avatar zhangzc

添加账单功能

parent a5426261
package com.esv.freight.app.feign;
import com.alibaba.fastjson.JSONObject;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
/**
* @description:
* @project: freight-app-service
* @name: com.esv.freight.app.feign.OwnerComplaintInterface
* @author: 张志臣
* @email: zhangzhichen@esvtek.com
* @createTime: 2020/05/28 14:20
* @version:1.0
*/
@FeignClient(value = "freight-bill-service")
public interface OwnerBillInterface {
/**
* 分页查询
* @param bodyJson
* @return
*/
@PostMapping(value = "bill/verify/recvbill/list/app")
JSONObject listBillOwner(JSONObject bodyJson);
/**
* 账单详情
* @param bodyJson
* @return
*/
@PostMapping(value = "bill/verify/recvbill/detail/app")
JSONObject billOwnerDetail(JSONObject bodyJson);
/**
* 确认对账
* @param bodyJson
* @return
*/
@PostMapping(value = "bill/verify/recvbill/confirmBill")
JSONObject confirmBill(JSONObject bodyJson);
}
package com.esv.freight.app.module.bill.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.esv.freight.app.common.response.EResponse;
import com.esv.freight.app.common.util.FeignUtils;
import com.esv.freight.app.common.validator.groups.ValidatorDetail;
import com.esv.freight.app.common.validator.groups.ValidatorList;
import com.esv.freight.app.feign.OwnerBillInterface;
import com.esv.freight.app.module.account.pojo.DriverAccountInfoPojo;
import com.esv.freight.app.module.bill.form.BillQueryForm;
import com.esv.freight.app.module.bill.pojo.OwnerBillDetailPojo;
import com.esv.freight.app.module.bill.vo.BillDetailVO;
import com.esv.freight.app.module.bill.vo.BillListItemVO;
import com.esv.freight.app.module.bill.vo.BillListVO;
import com.esv.freight.app.module.evaluate.form.OwnerEvaluateForm;
import com.esv.freight.app.module.evaluate.vo.EvaluateListItemVO;
import com.esv.freight.app.module.evaluate.vo.EvaluateListVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
/**
* @description: 货主账单Controller
* @project: freight-app-service
* @name: com.esv.freight.app.module.bill.controller.OwnerBillController
* @author: 张志臣
* @email: zhangzhichen@esvtek.com
* @createTime: 2020/06/02 17:40
* @version:1.0
*/
@RestController
@RequestMapping("/ownerBackend/bill")
@Slf4j
@Validated
public class OwnerBillController {
private OwnerBillInterface ownerBillInterface;
@Autowired
public OwnerBillController(OwnerBillInterface ownerBillInterface) {
this.ownerBillInterface = ownerBillInterface;
}
/**
* description 获取对账详情
* param complaintForm
* return com.esv.freight.common.response.EResponse
* author 张志臣
* createTime 2020/06/03 13:30
**/
@PostMapping("/confirmBill")
public EResponse confirmBill(@RequestBody(required=false) @Validated(ValidatorDetail.class) BillQueryForm billQueryForm) {
// 调用确认账单接口
JSONObject reqJson = new JSONObject();
reqJson.put("id", billQueryForm.getId());
log.info(reqJson.toJSONString());
JSONObject result = ownerBillInterface.confirmBill(reqJson);
log.info(result.toJSONString());
if(!FeignUtils.isFeignSuccess(result)) {
return FeignUtils.getFeignEResponse(result);
}
return EResponse.ok();
}
/**
* description 获取对账详情
* param complaintForm
* return com.esv.freight.common.response.EResponse
* author 张志臣
* createTime 2020/06/03 13:30
**/
@PostMapping("/detail")
public EResponse detail(@RequestBody(required=false) @Validated(ValidatorDetail.class) BillQueryForm billQueryForm) {
// 调用账单详情接口
JSONObject reqJson = new JSONObject();
reqJson.put("id", billQueryForm.getId());
log.info(reqJson.toJSONString());
JSONObject result = ownerBillInterface.billOwnerDetail(reqJson);
log.info(result.toJSONString());
if(!FeignUtils.isFeignSuccess(result)) {
return FeignUtils.getFeignEResponse(result);
}
BillDetailVO billDetailVO = new BillDetailVO();
OwnerBillDetailPojo ownerBillDetailPojo = JSONObject.toJavaObject(FeignUtils.getFeignDataJson(result), OwnerBillDetailPojo.class);
BeanUtils.copyProperties(ownerBillDetailPojo, billDetailVO);
billDetailVO.setBillNo(ownerBillDetailPojo.getRecvBillNo());
billDetailVO.setBillState(ownerBillDetailPojo.getRecvBillState());
return EResponse.ok(billDetailVO);
}
/**
* description 获取对账列表
* param complaintForm
* return com.esv.freight.common.response.EResponse
* author 张志臣
* createTime 2020/06/02 18:00
**/
@PostMapping("/list")
public EResponse list(@RequestBody(required=false) @Validated(ValidatorList.class) BillQueryForm billQueryForm) {
// 调用评价列表分页查询接口
JSONObject reqJson = new JSONObject();
reqJson.put("goodsOwnerId", billQueryForm.getUserId());
reqJson.put("pageNum", billQueryForm.getPageNum());
reqJson.put("pageSize", billQueryForm.getPageSize());
log.info(reqJson.toJSONString());
JSONObject result = ownerBillInterface.listBillOwner(reqJson);
log.info(result.toJSONString());
if(!FeignUtils.isFeignSuccess(result)) {
return FeignUtils.getFeignEResponse(result);
}
BillListVO pageResultVO = new BillListVO();
JSONObject data = result.getJSONObject("data");
pageResultVO.setPageSize(data.getLong("pageSize"));
pageResultVO.setPageNum(data.getLong("pageNum"));
pageResultVO.setTotal(data.getLong("total"));
pageResultVO.setRecordSize(data.getLong("recordSize"));
if(pageResultVO.getRecordSize() > 0) {
JSONArray items = data.getJSONArray("records");
List<BillListItemVO> records = new ArrayList<>();
for(int i=0; i<items.size(); ++i) {
BillListItemVO vo = new BillListItemVO();
JSONObject object = items.getJSONObject(i);
vo.setId(object.getLong("id"));
vo.setBillNo(object.getString("recvBillNo"));
vo.setBillState(object.getInteger("recvBillState"));
vo.setBillTimeBucketStart(object.getDate("billTimeBucketStart"));
vo.setBillTimeBucketEnd(object.getDate("billTimeBucketEnd"));
vo.setTotalMoney(object.getBigDecimal("totalMoney"));
records.add(vo);
}
pageResultVO.setRecord(records);
}
return EResponse.ok(pageResultVO);
}
}
package com.esv.freight.app.module.bill.form;
import com.esv.freight.app.common.validator.groups.ValidatorDetail;
import com.esv.freight.app.common.validator.groups.ValidatorList;
import lombok.Data;
import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.NotNull;
/**
* @description:
* @project: freight-app-service
* @name: com.esv.freight.app.module.bill.form.BillQueryForm
* @author: 张志臣
* @email: zhangzhichen@esvtek.com
* @createTime: 2020/06/02 17:25
* @version:1.0
*/
@Data
public class BillQueryForm {
/**
*
*/
@NotNull(message = "参数id不能为空", groups = {ValidatorDetail.class})
private Long id;
/**
* 账号ID
*/
@NotNull(message = "参数userId不能为空", groups = {ValidatorList.class})
private Long userId;
/**
* 当前页数
*/
@Range(min = 1, max = 65535, message = "无效的pageNum", groups = {ValidatorList.class})
@NotNull(message = "参数pageNum不能为空", groups = {ValidatorList.class})
private Long pageNum;
/**
* 每页显示记录数
*/
@Range(min = 1, max = 1000, message = "pageSize", groups = {ValidatorList.class})
@NotNull(message = "参数pageSize不能为空", groups = {ValidatorList.class})
private Long pageSize;
}
package com.esv.freight.app.module.bill.pojo;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.math.BigDecimal;
import java.util.Date;
/**
* @description:
* @project: freight-app-service
* @name: com.esv.freight.app.module.bill.pojo.OwnerBillDetailPojo
* @author: 张志臣
* @email: zhangzhichen@esvtek.com
* @createTime: 2020/06/03 14:10
* @version:1.0
*/
@Data
public class OwnerBillDetailPojo {
/**
* 主键
*/
private Long id;
/**
* 对账单号
*/
private String recvBillNo;
/**
* 对账开始时间
*/
private Date billTimeBucketStart;
/**
* 账单结束时间
*/
private Date billTimeBucketEnd;
/**
* 运费
*/
private BigDecimal freightPrice = BigDecimal.ZERO;
/**
* 亏吨
*/
private BigDecimal less = BigDecimal.ZERO;
/**
* 涨吨
*/
private BigDecimal more = BigDecimal.ZERO;
/**
* 信息费
*/
private BigDecimal info = BigDecimal.ZERO;
/**
* 内保费
*/
private BigDecimal inprotect = BigDecimal.ZERO;
/**
* 抹零
*/
private BigDecimal smallChange = BigDecimal.ZERO;
/**
* 罚款
*/
private BigDecimal punish = BigDecimal.ZERO;
/**
* 装卸费
*/
private BigDecimal handling = BigDecimal.ZERO;
/**
* 奖金
*/
private BigDecimal bonus = BigDecimal.ZERO;
/**
* 补贴费
*/
private BigDecimal subsidy = BigDecimal.ZERO;
/**
* 总计费用
*/
private BigDecimal totalMoney = BigDecimal.ZERO;
/**
* 应收对账状态:1-核实中;2-已对账;3-已开票;4-已回款
*/
private Integer recvBillState;
/**
* 回款时间
*/
private Date topUrgent;
/**
* 创建时间
*/
private Date createTime;
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
}
}
package com.esv.freight.app.module.bill.vo;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.math.BigDecimal;
import java.util.Date;
/**
* @description:
* @project: freight-app-service
* @name: com.esv.freight.app.module.bill.vo.BillDetailVO
* @author: 张志臣
* @email: zhangzhichen@esvtek.com
* @createTime: 2020/06/03 14:05
* @version:1.0
*/
@Data
public class BillDetailVO {
/**
* 主键
*/
private Long id;
/**
* 对账单号
*/
private String billNo;
/**
* 对账开始时间
*/
private Date billTimeBucketStart;
/**
* 账单结束时间
*/
private Date billTimeBucketEnd;
/**
* 运费
*/
private BigDecimal freightPrice = BigDecimal.ZERO;
/**
* 亏吨
*/
private BigDecimal less = BigDecimal.ZERO;
/**
* 涨吨
*/
private BigDecimal more = BigDecimal.ZERO;
/**
* 信息费
*/
private BigDecimal info = BigDecimal.ZERO;
/**
* 内保费
*/
private BigDecimal inprotect = BigDecimal.ZERO;
/**
* 抹零
*/
private BigDecimal smallChange = BigDecimal.ZERO;
/**
* 罚款
*/
private BigDecimal punish = BigDecimal.ZERO;
/**
* 装卸费
*/
private BigDecimal handling = BigDecimal.ZERO;
/**
* 奖金
*/
private BigDecimal bonus = BigDecimal.ZERO;
/**
* 补贴费
*/
private BigDecimal subsidy = BigDecimal.ZERO;
/**
* 总计费用
*/
private BigDecimal totalMoney = BigDecimal.ZERO;
/**
* 应收对账状态:1-核实中;2-已对账;3-已开票;4-已回款
*/
private Integer billState;
/**
* 回款时间
*/
private Date topUrgent;
/**
* 创建时间
*/
private Date createTime;
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
}
}
package com.esv.freight.app.module.bill.vo;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* @description:
* @project: freight-app-service
* @name: com.esv.freight.app.module.bill.vo.BillListItemVO
* @author: 张志臣
* @email: zhangzhichen@esvtek.com
* @createTime: 2020/06/02 18:00
* @version:1.0
*/
@Data
public class BillListItemVO {
/**
* 对账ID
*/
private Long id;
/**
* 对账单号
*/
private String billNo;
/**
* 对账状态
*/
private Integer billState;
/**
* 对账开始时间
*/
private Date billTimeBucketStart;
/**
* 账单结束时间
*/
private Date billTimeBucketEnd;
/**
* 总计费用
*/
private BigDecimal totalMoney;
}
package com.esv.freight.app.module.bill.vo;
import lombok.Data;
import java.util.List;
/**
* @description:
* @project: freight-app-service
* @name: com.esv.freight.app.module.bill.vo.BillListVO
* @author: 张志臣
* @email: zhangzhichen@esvtek.com
* @createTime: 2020/06/02 18:00
* @version:1.0
*/
@Data
public class BillListVO {
/**
* 每页记录条数
**/
private Long pageSize;
/**
* 当前页码
**/
private Long pageNum;
/**
* 总记录条数
**/
private Long total;
/**
* 当前页的记录条数
**/
private Long recordSize;
/**
* 数据
**/
private List<BillListItemVO> record;
}
......@@ -90,7 +90,7 @@ public class OwnerEvaluateForm {
/**
* 每页显示记录数
*/
@Range(min = 1, max = 100, message = "pageSize", groups = {ValidatorList.class})
@Range(min = 1, max = 1000, message = "pageSize", groups = {ValidatorList.class})
@NotNull(message = "参数pageSize不能为空", groups = {ValidatorList.class})
private Long pageSize;
}
......@@ -170,6 +170,7 @@ public class OrderController {
reqJson.put("vehicleLength", orderForm.getVehicleLength());
reqJson.put("orderSource", 2);
reqJson.put("remark", orderForm.getRemark());
// reqJson.put("signData", orderForm.getSignData());
log.info(reqJson.toJSONString());
JSONObject result = tmsInterface.addOrderOwner(reqJson);
log.info(result.toJSONString());
......
......@@ -10,10 +10,7 @@ import org.apache.commons.lang3.builder.ToStringStyle;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.DecimalMax;
import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Positive;
import javax.validation.constraints.*;
import java.math.BigDecimal;
/**
......@@ -35,6 +32,12 @@ public class OrderForm {
@NotNull(message = "参数id不能为空", groups = {ValidatorUpdate.class, ValidatorDelete.class})
private Long id;
/**
* 货主签名数据
*/
@NotBlank(message = "参数signData不能为空", groups = {ValidatorInsert.class})
private String signData;
/**
* 货主id
*/
......
......@@ -194,16 +194,16 @@ public class DriverWaybillController {
reqJson.put("waybillId", uploadEvidenceForm.getWaybillId());
reqJson.put("goodsAmount", uploadEvidenceForm.getGoodsAmount());
reqJson.put("deliveryTime", uploadEvidenceForm.getOccurrenceTime());
if(StringUtils.isEmpty(uploadEvidenceForm.getPictureUrl01())) {
if(!StringUtils.isEmpty(uploadEvidenceForm.getPictureUrl01())) {
reqJson.put("pictureUrl01", uploadEvidenceForm.getPictureUrl01());
}
if(StringUtils.isEmpty(uploadEvidenceForm.getPictureUrl02())) {
if(!StringUtils.isEmpty(uploadEvidenceForm.getPictureUrl02())) {
reqJson.put("pictureUrl02", uploadEvidenceForm.getPictureUrl02());
}
if(StringUtils.isEmpty(uploadEvidenceForm.getPictureUrl03())) {
if(!StringUtils.isEmpty(uploadEvidenceForm.getPictureUrl03())) {
reqJson.put("pictureUrl03", uploadEvidenceForm.getPictureUrl03());
}
if(StringUtils.isEmpty(uploadEvidenceForm.getPictureUrl04())) {
if(!StringUtils.isEmpty(uploadEvidenceForm.getPictureUrl04())) {
reqJson.put("pictureUrl04", uploadEvidenceForm.getPictureUrl04());
}
log.info(reqJson.toJSONString());
......@@ -232,16 +232,16 @@ public class DriverWaybillController {
reqJson.put("waybillId", uploadEvidenceForm.getWaybillId());
reqJson.put("goodsAmount", uploadEvidenceForm.getGoodsAmount());
reqJson.put("receiveTime", uploadEvidenceForm.getOccurrenceTime());
if(StringUtils.isEmpty(uploadEvidenceForm.getPictureUrl01())) {
if(!StringUtils.isEmpty(uploadEvidenceForm.getPictureUrl01())) {
reqJson.put("pictureUrl01", uploadEvidenceForm.getPictureUrl01());
}
if(StringUtils.isEmpty(uploadEvidenceForm.getPictureUrl02())) {
if(!StringUtils.isEmpty(uploadEvidenceForm.getPictureUrl02())) {
reqJson.put("pictureUrl02", uploadEvidenceForm.getPictureUrl02());
}
if(StringUtils.isEmpty(uploadEvidenceForm.getPictureUrl03())) {
if(!StringUtils.isEmpty(uploadEvidenceForm.getPictureUrl03())) {
reqJson.put("pictureUrl03", uploadEvidenceForm.getPictureUrl03());
}
if(StringUtils.isEmpty(uploadEvidenceForm.getPictureUrl04())) {
if(!StringUtils.isEmpty(uploadEvidenceForm.getPictureUrl04())) {
reqJson.put("pictureUrl04", uploadEvidenceForm.getPictureUrl04());
}
log.info(reqJson.toJSONString());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment