出入库相关
This commit is contained in:
@@ -4,12 +4,13 @@ import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.apache.poi.ss.formula.functions.T;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
@@ -52,4 +53,21 @@ public class ListUtil {
|
||||
return integerList;
|
||||
}
|
||||
|
||||
|
||||
public static<T> String listChangeString(List<T> listString){
|
||||
return listString.stream()
|
||||
.map(Object::toString)
|
||||
.collect(Collectors.joining(", "));
|
||||
}
|
||||
|
||||
public static String mapToString(Map<String, String> map) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (Map.Entry<String, String> entry : map.entrySet()) {
|
||||
sb.append(entry.getKey()).append("=").append(entry.getValue()).append("&");
|
||||
}
|
||||
if (!map.isEmpty()) {
|
||||
sb.deleteCharAt(sb.length() - 1); // 删除最后一个"&"字符
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,159 +42,120 @@ public class TbOrderInfo implements Serializable {
|
||||
private Integer id;
|
||||
|
||||
@Column(name = "`order_no`")
|
||||
@ApiModelProperty(value = "订单编号")
|
||||
private String orderNo;
|
||||
|
||||
@Column(name = "`settlement_amount`")
|
||||
@ApiModelProperty(value = "商户结算金额")
|
||||
private BigDecimal settlementAmount;
|
||||
|
||||
@Column(name = "`pack_fee`")
|
||||
@ApiModelProperty(value = "包装费")
|
||||
private BigDecimal packFee;
|
||||
|
||||
@Column(name = "`origin_amount`")
|
||||
@ApiModelProperty(value = "订单原金额")
|
||||
private BigDecimal originAmount;
|
||||
|
||||
@Column(name = "`product_amount`")
|
||||
@ApiModelProperty(value = "商品售价")
|
||||
private BigDecimal productAmount;
|
||||
|
||||
@Column(name = "`amount`")
|
||||
@ApiModelProperty(value = "最终金额---退单后,金额变动")
|
||||
private BigDecimal amount;
|
||||
|
||||
@Column(name = "`refund_amount`")
|
||||
@ApiModelProperty(value = "退单金额")
|
||||
private BigDecimal refundAmount;
|
||||
|
||||
@Column(name = "`pay_amount`")
|
||||
@ApiModelProperty(value = "支付金额")
|
||||
private BigDecimal payAmount;
|
||||
|
||||
@Column(name = "`freight_amount`")
|
||||
@ApiModelProperty(value = "订单邮递费用")
|
||||
private BigDecimal freightAmount;
|
||||
|
||||
@Column(name = "`cash_paid_amount`")
|
||||
@ApiModelProperty(value = "现金支付金额")
|
||||
private BigDecimal cashPaidAmount;
|
||||
|
||||
@Column(name = "`wx_paid_amount`")
|
||||
@ApiModelProperty(value = "微信支付金额")
|
||||
private BigDecimal wxPaidAmount;
|
||||
|
||||
@Column(name = "`ali_paid_amount`")
|
||||
@ApiModelProperty(value = "支付宝支付金额")
|
||||
private BigDecimal aliPaidAmount;
|
||||
|
||||
@Column(name = "`deposit_paid_amount`")
|
||||
@ApiModelProperty(value = "储值支付金额")
|
||||
private BigDecimal depositPaidAmount;
|
||||
|
||||
@Column(name = "`bank_paid_amount`")
|
||||
@ApiModelProperty(value = "银联支付金额")
|
||||
private BigDecimal bankPaidAmount;
|
||||
|
||||
@Column(name = "`virtual_paid_amount`")
|
||||
@ApiModelProperty(value = "虚拟支付金额")
|
||||
private BigDecimal virtualPaidAmount;
|
||||
|
||||
@Column(name = "`other_paid_amount`")
|
||||
@ApiModelProperty(value = "其他支付金额")
|
||||
private BigDecimal otherPaidAmount;
|
||||
|
||||
@Column(name = "`discount_amount`")
|
||||
@ApiModelProperty(value = "折扣金额")
|
||||
private BigDecimal discountAmount;
|
||||
|
||||
@Column(name = "`table_id`")
|
||||
@ApiModelProperty(value = "台桌Id")
|
||||
private String tableId;
|
||||
|
||||
@Column(name = "`small_change`")
|
||||
@ApiModelProperty(value = "订单抹零")
|
||||
private BigDecimal smallChange;
|
||||
|
||||
@Column(name = "`send_type`")
|
||||
@ApiModelProperty(value = "发货类型")
|
||||
private String sendType;
|
||||
|
||||
@Column(name = "`order_type`")
|
||||
@ApiModelProperty(value = "订单类型-cash收银-miniapp小程序-offline线下")
|
||||
private String orderType;
|
||||
|
||||
@Column(name = "`product_type`")
|
||||
@ApiModelProperty(value = "订单里面商品的类型")
|
||||
private String productType;
|
||||
|
||||
@Column(name = "`status`")
|
||||
@ApiModelProperty(value = "状态: unpaid 待支付unsend待发货 closed 订单完成 send 已发refunding申请退单refund退单cancelled取消订单merge合台")
|
||||
private String status;
|
||||
|
||||
@Column(name = "`billing_id`")
|
||||
@ApiModelProperty(value = "orderType为union-minor时,parentId生效,为其上级合单id")
|
||||
private String billingId;
|
||||
|
||||
@Column(name = "`merchant_id`")
|
||||
@ApiModelProperty(value = "对于平台订单,是收款商户Id")
|
||||
private String merchantId;
|
||||
|
||||
@Column(name = "`shop_id`")
|
||||
@ApiModelProperty(value = "店铺Id")
|
||||
private String shopId;
|
||||
|
||||
@Column(name = "`is_vip`")
|
||||
@ApiModelProperty(value = "是否vip订单")
|
||||
private Integer isVip;
|
||||
|
||||
@Column(name = "`member_id`")
|
||||
@ApiModelProperty(value = "商户会员Id")
|
||||
private String memberId;
|
||||
|
||||
@Column(name = "`user_id`")
|
||||
@ApiModelProperty(value = "用户Id")
|
||||
private String userId;
|
||||
|
||||
@Column(name = "`product_score`")
|
||||
@ApiModelProperty(value = "该订单商品赠送的积分")
|
||||
private Integer productScore;
|
||||
|
||||
@Column(name = "`deduct_score`")
|
||||
@ApiModelProperty(value = "抵扣积分")
|
||||
private Integer deductScore;
|
||||
|
||||
@Column(name = "`user_coupon_id`")
|
||||
@ApiModelProperty(value = "用户使用的卡券")
|
||||
private String userCouponId;
|
||||
|
||||
@Column(name = "`user_coupon_amount`")
|
||||
@ApiModelProperty(value = "优惠券抵扣金额")
|
||||
private BigDecimal userCouponAmount;
|
||||
|
||||
@Column(name = "`is_master`")
|
||||
@ApiModelProperty(value = "是否主单")
|
||||
private Integer isMaster;
|
||||
|
||||
@Column(name = "`master_id`")
|
||||
@ApiModelProperty(value = "如果为退单时,主单号")
|
||||
private String masterId;
|
||||
|
||||
@Column(name = "`refund_able`")
|
||||
@ApiModelProperty(value = "是否支持退款,1支持退单, 0不支持退单")
|
||||
private Integer refundAble;
|
||||
|
||||
@Column(name = "`paid_time`")
|
||||
@ApiModelProperty(value = "支付时间")
|
||||
private Long paidTime;
|
||||
|
||||
@Column(name = "`is_effect`")
|
||||
@ApiModelProperty(value = "是否生效,若订单合单之后,则原订单不会生效")
|
||||
private Integer isEffect;
|
||||
|
||||
@Column(name = "`is_group`")
|
||||
@ApiModelProperty(value = "是否合台")
|
||||
private Integer isGroup;
|
||||
|
||||
@Column(name = "`updated_at`")
|
||||
@@ -202,15 +163,12 @@ public class TbOrderInfo implements Serializable {
|
||||
private Long updatedAt;
|
||||
|
||||
@Column(name = "`system_time`")
|
||||
@ApiModelProperty(value = "系统时间")
|
||||
private Long systemTime;
|
||||
|
||||
@Column(name = "`created_at`")
|
||||
@ApiModelProperty(value = "createdAt")
|
||||
private Long createdAt;
|
||||
|
||||
@Column(name = "`is_accepted`")
|
||||
@ApiModelProperty(value = "收银台是否已接单")
|
||||
private Integer isAccepted;
|
||||
|
||||
public void copy(TbOrderInfo source){
|
||||
|
||||
@@ -37,14 +37,14 @@ import javax.servlet.http.HttpServletResponse;
|
||||
**/
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@Api(tags = "/orderInfo管理")
|
||||
@Api(tags = "/orderInfo")
|
||||
@RequestMapping("/api/tbOrderInfo")
|
||||
public class TbOrderInfoController {
|
||||
|
||||
private final TbOrderInfoService tbOrderInfoService;
|
||||
|
||||
@Log("导出数据")
|
||||
@ApiOperation("导出数据")
|
||||
@Log("")
|
||||
@ApiOperation("")
|
||||
@GetMapping(value = "/download")
|
||||
@PreAuthorize("@el.check('tbOrderInfo:list')")
|
||||
public void exportTbOrderInfo(HttpServletResponse response, TbOrderInfoQueryCriteria criteria) throws IOException {
|
||||
@@ -52,24 +52,24 @@ public class TbOrderInfoController {
|
||||
}
|
||||
|
||||
@GetMapping
|
||||
@Log("查询/orderInfo")
|
||||
@ApiOperation("查询/orderInfo")
|
||||
@Log("/orderInfo")
|
||||
@ApiOperation("/orderInfo")
|
||||
@PreAuthorize("@el.check('tbOrderInfo:list')")
|
||||
public ResponseEntity<Object> queryTbOrderInfo(TbOrderInfoQueryCriteria criteria, Pageable pageable){
|
||||
return new ResponseEntity<>(tbOrderInfoService.queryAll(criteria,pageable),HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
@Log("新增/orderInfo")
|
||||
@ApiOperation("新增/orderInfo")
|
||||
@Log("/orderInfo")
|
||||
@ApiOperation("/orderInfo")
|
||||
@PreAuthorize("@el.check('tbOrderInfo:add')")
|
||||
public ResponseEntity<Object> createTbOrderInfo(@Validated @RequestBody TbOrderInfo resources){
|
||||
return new ResponseEntity<>(tbOrderInfoService.create(resources),HttpStatus.CREATED);
|
||||
}
|
||||
|
||||
@PutMapping
|
||||
@Log("修改/orderInfo")
|
||||
@ApiOperation("修改/orderInfo")
|
||||
@Log("/orderInfo")
|
||||
@ApiOperation("/orderInfo")
|
||||
@PreAuthorize("@el.check('tbOrderInfo:edit')")
|
||||
public ResponseEntity<Object> updateTbOrderInfo(@Validated @RequestBody TbOrderInfo resources){
|
||||
tbOrderInfoService.update(resources);
|
||||
@@ -77,8 +77,8 @@ public class TbOrderInfoController {
|
||||
}
|
||||
|
||||
@DeleteMapping
|
||||
@Log("删除/orderInfo")
|
||||
@ApiOperation("删除/orderInfo")
|
||||
@Log("/orderInfo")
|
||||
@ApiOperation("/orderInfo")
|
||||
@PreAuthorize("@el.check('tbOrderInfo:del')")
|
||||
public ResponseEntity<Object> deleteTbOrderInfo(@RequestBody Integer[] ids) {
|
||||
tbOrderInfoService.deleteAll(ids);
|
||||
|
||||
@@ -26,56 +26,56 @@ import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
/**
|
||||
* @website https://eladmin.vip
|
||||
* @description 服务接口
|
||||
* @description
|
||||
* @author lyf
|
||||
* @date 2023-11-22
|
||||
**/
|
||||
public interface TbOrderInfoService {
|
||||
|
||||
/**
|
||||
* 查询数据分页
|
||||
* @param criteria 条件
|
||||
* @param pageable 分页参数
|
||||
*
|
||||
* @param criteria
|
||||
* @param pageable
|
||||
* @return Map<String,Object>
|
||||
*/
|
||||
Map<String,Object> queryAll(TbOrderInfoQueryCriteria criteria, Pageable pageable);
|
||||
|
||||
/**
|
||||
* 查询所有数据不分页
|
||||
* @param criteria 条件参数
|
||||
* <EFBFBD>
|
||||
* @param criteria
|
||||
* @return List<TbOrderInfoDto>
|
||||
*/
|
||||
List<TbOrderInfoDto> queryAll(TbOrderInfoQueryCriteria criteria);
|
||||
|
||||
/**
|
||||
* 根据ID查询
|
||||
* ID<EFBFBD><EFBFBD>ѯ
|
||||
* @param id ID
|
||||
* @return TbOrderInfoDto
|
||||
*/
|
||||
TbOrderInfoDto findById(Integer id);
|
||||
|
||||
/**
|
||||
* 创建
|
||||
*
|
||||
* @param resources /
|
||||
* @return TbOrderInfoDto
|
||||
*/
|
||||
TbOrderInfoDto create(TbOrderInfo resources);
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
* <EFBFBD>༭
|
||||
* @param resources /
|
||||
*/
|
||||
void update(TbOrderInfo resources);
|
||||
|
||||
/**
|
||||
* 多选删除
|
||||
* <EFBFBD><EFBFBD>ѡɾ<EFBFBD><EFBFBD>
|
||||
* @param ids /
|
||||
*/
|
||||
void deleteAll(Integer[] ids);
|
||||
|
||||
/**
|
||||
* 导出数据
|
||||
* @param all 待导出的数据
|
||||
*
|
||||
* @param all
|
||||
* @param response /
|
||||
* @throws IOException /
|
||||
*/
|
||||
|
||||
@@ -30,130 +30,129 @@ public class TbOrderInfoDto implements Serializable {
|
||||
|
||||
private Integer id;
|
||||
|
||||
/** 订单编号 */
|
||||
private String orderNo;
|
||||
|
||||
/** 商户结算金额 */
|
||||
/** <EFBFBD>̻<EFBFBD><EFBFBD><EFBFBD> */
|
||||
private BigDecimal settlementAmount;
|
||||
|
||||
/** 包装费 */
|
||||
/** <EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD> */
|
||||
private BigDecimal packFee;
|
||||
|
||||
/** 订单原金额 */
|
||||
/** ԭ<EFBFBD><EFBFBD><EFBFBD> */
|
||||
private BigDecimal originAmount;
|
||||
|
||||
/** 商品售价 */
|
||||
/** <EFBFBD><EFBFBD>Ʒ<EFBFBD>ۼ<EFBFBD> */
|
||||
private BigDecimal productAmount;
|
||||
|
||||
/** 最终金额---退单后,金额变动 */
|
||||
/** <EFBFBD><EFBFBD><EFBFBD>ս<EFBFBD><EFBFBD>---<2D>˵<EFBFBD><CBB5><EFBFBD><F3A3ACBD>䶯 */
|
||||
private BigDecimal amount;
|
||||
|
||||
/** 退单金额 */
|
||||
/** <EFBFBD>˵ */
|
||||
private BigDecimal refundAmount;
|
||||
|
||||
/** 支付金额 */
|
||||
/** ֧<EFBFBD> */
|
||||
private BigDecimal payAmount;
|
||||
|
||||
/** 订单邮递费用 */
|
||||
/** <EFBFBD>ʵݷ<EFBFBD><EFBFBD><EFBFBD> */
|
||||
private BigDecimal freightAmount;
|
||||
|
||||
/** 现金支付金额 */
|
||||
/** <EFBFBD>ֽ<EFBFBD>֧<EFBFBD> */
|
||||
private BigDecimal cashPaidAmount;
|
||||
|
||||
/** 微信支付金额 */
|
||||
/** <EFBFBD><EFBFBD>֧<EFBFBD> */
|
||||
private BigDecimal wxPaidAmount;
|
||||
|
||||
/** 支付宝支付金额 */
|
||||
/** ֧֧<EFBFBD> */
|
||||
private BigDecimal aliPaidAmount;
|
||||
|
||||
/** 储值支付金额 */
|
||||
/** <EFBFBD><EFBFBD>ֵ֧<EFBFBD> */
|
||||
private BigDecimal depositPaidAmount;
|
||||
|
||||
/** 银联支付金额 */
|
||||
/** ֧<EFBFBD> */
|
||||
private BigDecimal bankPaidAmount;
|
||||
|
||||
/** 虚拟支付金额 */
|
||||
/** ֧<EFBFBD> */
|
||||
private BigDecimal virtualPaidAmount;
|
||||
|
||||
/** 其他支付金额 */
|
||||
/** ֧<EFBFBD> */
|
||||
private BigDecimal otherPaidAmount;
|
||||
|
||||
/** 折扣金额 */
|
||||
/** <EFBFBD>ۿ۽<EFBFBD><EFBFBD> */
|
||||
private BigDecimal discountAmount;
|
||||
|
||||
/** 台桌Id */
|
||||
/** ̨<EFBFBD><EFBFBD>Id */
|
||||
private String tableId;
|
||||
|
||||
/** 订单抹零 */
|
||||
/** Ĩ<EFBFBD><EFBFBD> */
|
||||
private BigDecimal smallChange;
|
||||
|
||||
/** 发货类型 */
|
||||
/** */
|
||||
private String sendType;
|
||||
|
||||
/** 订单类型-cash收银-miniapp小程序-offline线下 */
|
||||
/** -cash-miniappС-offline */
|
||||
private String orderType;
|
||||
|
||||
/** 订单里面商品的类型 */
|
||||
/** <EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD> */
|
||||
private String productType;
|
||||
|
||||
/** 状态: unpaid 待支付unsend待发货 closed 订单完成 send 已发refunding申请退单refund退单cancelled取消订单merge合台 */
|
||||
/** ״̬: unpaid <EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD>unsend<EFBFBD><EFBFBD> closed <EFBFBD><EFBFBD><EFBFBD> send <EFBFBD>ѷ<EFBFBD>refunding<EFBFBD>˵<EFBFBD>refund<EFBFBD>˵<EFBFBD>cancelledȡ<EFBFBD><EFBFBD>merge<EFBFBD><EFBFBD>̨ */
|
||||
private String status;
|
||||
|
||||
/** orderType为union-minor时,parentId生效,为其上级合单id */
|
||||
/** orderTypeΪunion-minorʱ<EFBFBD><EFBFBD>parentId<EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD><EFBFBD>ϵ<EFBFBD>id */
|
||||
private String billingId;
|
||||
|
||||
/** 对于平台订单,是收款商户Id */
|
||||
/** ƽ̨,<2C><><EFBFBD>տ<EFBFBD><D5BF>̻<EFBFBD>Id */
|
||||
private String merchantId;
|
||||
|
||||
/** 店铺Id */
|
||||
/** Id */
|
||||
private String shopId;
|
||||
|
||||
/** 是否vip订单 */
|
||||
/** <EFBFBD>Ƿ<EFBFBD>vip */
|
||||
private Integer isVip;
|
||||
|
||||
/** 商户会员Id */
|
||||
/** <EFBFBD>̻<EFBFBD><EFBFBD><EFBFBD>ԱId */
|
||||
private String memberId;
|
||||
|
||||
/** 用户Id */
|
||||
/** <EFBFBD>û<EFBFBD>Id */
|
||||
private String userId;
|
||||
|
||||
/** 该订单商品赠送的积分 */
|
||||
/** <EFBFBD>ö<EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD>͵Ļ<EFBFBD><EFBFBD><EFBFBD> */
|
||||
private Integer productScore;
|
||||
|
||||
/** 抵扣积分 */
|
||||
/** <EFBFBD>ֿۻ<EFBFBD><EFBFBD><EFBFBD> */
|
||||
private Integer deductScore;
|
||||
|
||||
/** 用户使用的卡券 */
|
||||
/** <EFBFBD>û<EFBFBD>ʹ<EFBFBD>õĿ<EFBFBD>ȯ */
|
||||
private String userCouponId;
|
||||
|
||||
/** 优惠券抵扣金额 */
|
||||
/** <EFBFBD>Ż<EFBFBD>ȯ<EFBFBD>ֿ۽<EFBFBD><EFBFBD> */
|
||||
private BigDecimal userCouponAmount;
|
||||
|
||||
/** 是否主单 */
|
||||
/** <EFBFBD>Ƿ<EFBFBD> */
|
||||
private Integer isMaster;
|
||||
|
||||
/** 如果为退单时,主单号 */
|
||||
/** <EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>˵<EFBFBD>ʱ */
|
||||
private String masterId;
|
||||
|
||||
/** 是否支持退款,1支持退单, 0不支持退单 */
|
||||
/** <EFBFBD>Ƿ<EFBFBD>֧<EFBFBD><EFBFBD><EFBFBD>˿1֧<EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD> 0<><30>֧<EFBFBD><D6A7><EFBFBD>˵<EFBFBD> */
|
||||
private Integer refundAble;
|
||||
|
||||
/** 支付时间 */
|
||||
/** ֧<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD> */
|
||||
private Long paidTime;
|
||||
|
||||
/** 是否生效,若订单合单之后,则原订单不会生效 */
|
||||
/** <EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD>ϵ<EFBFBD>֮ԭ<EFBFBD><EFBFBD>Ч */
|
||||
private Integer isEffect;
|
||||
|
||||
/** 是否合台 */
|
||||
/** <EFBFBD>Ƿ<EFBFBD><EFBFBD>̨ */
|
||||
private Integer isGroup;
|
||||
|
||||
private Long updatedAt;
|
||||
|
||||
/** 系统时间 */
|
||||
/** ϵͳʱ<EFBFBD><EFBFBD> */
|
||||
private Long systemTime;
|
||||
|
||||
private Long createdAt;
|
||||
|
||||
/** 收银台是否已接单 */
|
||||
/** ̨<EFBFBD>Ƿ<EFBFBD><EFBFBD>ѽӵ<EFBFBD> */
|
||||
private Integer isAccepted;
|
||||
}
|
||||
@@ -39,7 +39,7 @@ import java.util.LinkedHashMap;
|
||||
|
||||
/**
|
||||
* @website https://eladmin.vip
|
||||
* @description 服务实现
|
||||
* @description
|
||||
* @author lyf
|
||||
* @date 2023-11-22
|
||||
**/
|
||||
@@ -93,54 +93,54 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService {
|
||||
|
||||
@Override
|
||||
public void download(List<TbOrderInfoDto> all, HttpServletResponse response) throws IOException {
|
||||
List<Map<String, Object>> list = new ArrayList<>();
|
||||
for (TbOrderInfoDto tbOrderInfo : all) {
|
||||
Map<String,Object> map = new LinkedHashMap<>();
|
||||
map.put("订单编号", tbOrderInfo.getOrderNo());
|
||||
map.put("商户结算金额", tbOrderInfo.getSettlementAmount());
|
||||
map.put("包装费", tbOrderInfo.getPackFee());
|
||||
map.put("订单原金额", tbOrderInfo.getOriginAmount());
|
||||
map.put("商品售价", tbOrderInfo.getProductAmount());
|
||||
map.put("最终金额---退单后,金额变动", tbOrderInfo.getAmount());
|
||||
map.put("退单金额", tbOrderInfo.getRefundAmount());
|
||||
map.put("支付金额", tbOrderInfo.getPayAmount());
|
||||
map.put("订单邮递费用", tbOrderInfo.getFreightAmount());
|
||||
map.put("现金支付金额", tbOrderInfo.getCashPaidAmount());
|
||||
map.put("微信支付金额", tbOrderInfo.getWxPaidAmount());
|
||||
map.put("支付宝支付金额", tbOrderInfo.getAliPaidAmount());
|
||||
map.put("储值支付金额", tbOrderInfo.getDepositPaidAmount());
|
||||
map.put("银联支付金额", tbOrderInfo.getBankPaidAmount());
|
||||
map.put("虚拟支付金额", tbOrderInfo.getVirtualPaidAmount());
|
||||
map.put("其他支付金额", tbOrderInfo.getOtherPaidAmount());
|
||||
map.put("折扣金额", tbOrderInfo.getDiscountAmount());
|
||||
map.put("台桌Id", tbOrderInfo.getTableId());
|
||||
map.put("订单抹零", tbOrderInfo.getSmallChange());
|
||||
map.put("发货类型", tbOrderInfo.getSendType());
|
||||
map.put("订单类型-cash收银-miniapp小程序-offline线下", tbOrderInfo.getOrderType());
|
||||
map.put("订单里面商品的类型", tbOrderInfo.getProductType());
|
||||
map.put("状态: unpaid 待支付unsend待发货 closed 订单完成 send 已发refunding申请退单refund退单cancelled取消订单merge合台", tbOrderInfo.getStatus());
|
||||
map.put("orderType为union-minor时,parentId生效,为其上级合单id", tbOrderInfo.getBillingId());
|
||||
map.put("对于平台订单,是收款商户Id", tbOrderInfo.getMerchantId());
|
||||
map.put("店铺Id", tbOrderInfo.getShopId());
|
||||
map.put("是否vip订单", tbOrderInfo.getIsVip());
|
||||
map.put("商户会员Id", tbOrderInfo.getMemberId());
|
||||
map.put("用户Id", tbOrderInfo.getUserId());
|
||||
map.put("该订单商品赠送的积分", tbOrderInfo.getProductScore());
|
||||
map.put("抵扣积分", tbOrderInfo.getDeductScore());
|
||||
map.put("用户使用的卡券", tbOrderInfo.getUserCouponId());
|
||||
map.put("优惠券抵扣金额", tbOrderInfo.getUserCouponAmount());
|
||||
map.put("是否主单", tbOrderInfo.getIsMaster());
|
||||
map.put("如果为退单时,主单号", tbOrderInfo.getMasterId());
|
||||
map.put("是否支持退款,1支持退单, 0不支持退单", tbOrderInfo.getRefundAble());
|
||||
map.put("支付时间", tbOrderInfo.getPaidTime());
|
||||
map.put("是否生效,若订单合单之后,则原订单不会生效", tbOrderInfo.getIsEffect());
|
||||
map.put("是否合台", tbOrderInfo.getIsGroup());
|
||||
map.put(" updatedAt", tbOrderInfo.getUpdatedAt());
|
||||
map.put("系统时间", tbOrderInfo.getSystemTime());
|
||||
map.put(" createdAt", tbOrderInfo.getCreatedAt());
|
||||
map.put("收银台是否已接单", tbOrderInfo.getIsAccepted());
|
||||
list.add(map);
|
||||
}
|
||||
FileUtil.downloadExcel(list, response);
|
||||
// List<Map<String, Object>> list = new ArrayList<>();
|
||||
// for (TbOrderInfoDto tbOrderInfo : all) {
|
||||
// Map<String,Object> map = new LinkedHashMap<>();
|
||||
// map.put("<22><><EFBFBD>", tbOrderInfo.getOrderNo());
|
||||
// map.put("<22>̻<EFBFBD><CCBB><EFBFBD>", tbOrderInfo.getSettlementAmount());
|
||||
// map.put("<22><>װ<EFBFBD><D7B0>", tbOrderInfo.getPackFee());
|
||||
// map.put("ԭ<><D4AD><EFBFBD>", tbOrderInfo.getOriginAmount());
|
||||
// map.put("<22><>Ʒ<EFBFBD>ۼ<EFBFBD>", tbOrderInfo.getProductAmount());
|
||||
// map.put("<22><><EFBFBD>ս<EFBFBD><D5BD>---<2D>˵<EFBFBD><CBB5><EFBFBD><F3A3ACBD>䶯", tbOrderInfo.getAmount());
|
||||
// map.put("<22>˵<EFBFBD><CBB5><EFBFBD><EFBFBD>", tbOrderInfo.getRefundAmount());
|
||||
// map.put("֧<><D6A7><EFBFBD><EFBFBD><EFBFBD>", tbOrderInfo.getPayAmount());
|
||||
// map.put("<22><><EFBFBD><EFBFBD><EFBFBD>ʵݷ<CAB5><DDB7><EFBFBD>", tbOrderInfo.getFreightAmount());
|
||||
// map.put("<22>ֽ<EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD>", tbOrderInfo.getCashPaidAmount());
|
||||
// map.put("<><CEA2>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD>", tbOrderInfo.getWxPaidAmount());
|
||||
// map.put("֧<><D6A7><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD>", tbOrderInfo.getAliPaidAmount());
|
||||
// map.put("<22><>ֵ֧<D6B5><D6A7><EFBFBD><EFBFBD><EFBFBD>", tbOrderInfo.getDepositPaidAmount());
|
||||
// map.put("<22><><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD>", tbOrderInfo.getBankPaidAmount());
|
||||
// map.put("<22><><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD>", tbOrderInfo.getVirtualPaidAmount());
|
||||
// map.put("<22><><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD>", tbOrderInfo.getOtherPaidAmount());
|
||||
// map.put("<22>ۿ۽<DBBF><DBBD>", tbOrderInfo.getDiscountAmount());
|
||||
// map.put("̨<><CCA8>Id", tbOrderInfo.getTableId());
|
||||
// map.put("<22><><EFBFBD><EFBFBD>Ĩ<EFBFBD><C4A8>", tbOrderInfo.getSmallChange());
|
||||
// map.put("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", tbOrderInfo.getSendType());
|
||||
// map.put("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-cash<EFBFBD><EFBFBD><EFBFBD><EFBFBD>-miniappС<EFBFBD><EFBFBD><EFBFBD><EFBFBD>-offline<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", tbOrderInfo.getOrderType());
|
||||
// map.put("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", tbOrderInfo.getProductType());
|
||||
// map.put("״̬: unpaid <EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD>unsend<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> closed <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> send <EFBFBD>ѷ<EFBFBD>refunding<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>refund<EFBFBD>˵<EFBFBD>cancelledȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>merge<EFBFBD><EFBFBD>̨", tbOrderInfo.getStatus());
|
||||
// map.put("orderTypeΪunion-minorʱ<EFBFBD><EFBFBD>parentId<EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD><EFBFBD>ϵ<EFBFBD>id", tbOrderInfo.getBillingId());
|
||||
// map.put("<22><><EFBFBD><EFBFBD>ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD>,<2C><><EFBFBD>տ<EFBFBD><D5BF>̻<EFBFBD>Id", tbOrderInfo.getMerchantId());
|
||||
// map.put("<22><><EFBFBD><EFBFBD>Id", tbOrderInfo.getShopId());
|
||||
// map.put("<22>Ƿ<EFBFBD>vip<69><70><EFBFBD><EFBFBD>", tbOrderInfo.getIsVip());
|
||||
// map.put("<22>̻<EFBFBD><CCBB><EFBFBD>ԱId", tbOrderInfo.getMemberId());
|
||||
// map.put("<22>û<EFBFBD>Id", tbOrderInfo.getUserId());
|
||||
// map.put("<22>ö<EFBFBD><C3B6><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD>͵Ļ<CDB5><C4BB><EFBFBD>", tbOrderInfo.getProductScore());
|
||||
// map.put("<22>ֿۻ<D6BF><DBBB><EFBFBD>", tbOrderInfo.getDeductScore());
|
||||
// map.put("<22>û<EFBFBD>ʹ<EFBFBD>õĿ<C3B5>ȯ", tbOrderInfo.getUserCouponId());
|
||||
// map.put("<22>Ż<EFBFBD>ȯ<EFBFBD>ֿ۽<D6BF><DBBD>", tbOrderInfo.getUserCouponAmount());
|
||||
// map.put("<22>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>", tbOrderInfo.getIsMaster());
|
||||
// map.put("<22><><EFBFBD>Ϊ<EFBFBD>˵<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", tbOrderInfo.getMasterId());
|
||||
// map.put("<22>Ƿ<EFBFBD>֧<EFBFBD><D6A7><EFBFBD>˿1֧<31><D6A7><EFBFBD>˵<EFBFBD><CBB5><EFBFBD> 0<><30>֧<EFBFBD><D6A7><EFBFBD>˵<EFBFBD>", tbOrderInfo.getRefundAble());
|
||||
// map.put("֧<><D6A7>ʱ<EFBFBD><CAB1>", tbOrderInfo.getPaidTime());
|
||||
// map.put("<22>Ƿ<EFBFBD><C7B7><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч", tbOrderInfo.getIsEffect());
|
||||
// map.put("<22>Ƿ<EFBFBD><C7B7>̨", tbOrderInfo.getIsGroup());
|
||||
// map.put(" updatedAt", tbOrderInfo.getUpdatedAt());
|
||||
// map.put("ϵͳʱ<CDB3><CAB1>", tbOrderInfo.getSystemTime());
|
||||
// map.put(" createdAt", tbOrderInfo.getCreatedAt());
|
||||
// map.put("<22><><EFBFBD><EFBFBD>̨<EFBFBD>Ƿ<EFBFBD><C7B7>ѽӵ<D1BD>", tbOrderInfo.getIsAccepted());
|
||||
// list.add(map);
|
||||
// }
|
||||
FileUtil.downloadExcel(new ArrayList<>(), response);
|
||||
}
|
||||
}
|
||||
@@ -19,6 +19,8 @@ import lombok.Data;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import cn.hutool.core.bean.copier.CopyOptions;
|
||||
import org.hibernate.annotations.ColumnDefault;
|
||||
import org.hibernate.annotations.DynamicInsert;
|
||||
|
||||
import javax.persistence.*;
|
||||
import javax.validation.constraints.*;
|
||||
@@ -44,11 +46,11 @@ public class TbProduct implements Serializable {
|
||||
|
||||
@Column(name = "`source_path`")
|
||||
@ApiModelProperty(value = "商品来源 NORMAL普通商品 --,SCORE积分商品")
|
||||
private String sourcePath;
|
||||
private String sourcePath="NORMAL";
|
||||
|
||||
@Column(name = "`merchant_id`")
|
||||
@ApiModelProperty(value = "商户Id")
|
||||
private String merchantId;
|
||||
private String merchantId = "PLANT_ID";
|
||||
|
||||
@Column(name = "`shop_id`")
|
||||
@ApiModelProperty(value = "店铺id")
|
||||
@@ -60,7 +62,7 @@ public class TbProduct implements Serializable {
|
||||
|
||||
@Column(name = "`type`")
|
||||
@ApiModelProperty(value = "商品类型(属性):REAL- 实物商品 VIR---虚拟商品")
|
||||
private String type;
|
||||
private String type = "REAL";
|
||||
|
||||
@Column(name = "`pack_fee`")
|
||||
@ApiModelProperty(value = "包装费")
|
||||
@@ -121,11 +123,11 @@ public class TbProduct implements Serializable {
|
||||
|
||||
@Column(name = "`sort`")
|
||||
@ApiModelProperty(value = "排序")
|
||||
private Integer sort;
|
||||
private Integer sort = 0;
|
||||
|
||||
@Column(name = "`limit_number`")
|
||||
@ApiModelProperty(value = "0-不限购")
|
||||
private Integer limitNumber;
|
||||
private Integer limitNumber = 0;
|
||||
|
||||
@Column(name = "`product_score`")
|
||||
@ApiModelProperty(value = "商品赚送积分")
|
||||
@@ -134,7 +136,7 @@ public class TbProduct implements Serializable {
|
||||
@Column(name = "`status`",nullable = false)
|
||||
@NotNull
|
||||
@ApiModelProperty(value = "0--待审核 1审核通过 -1审核失败 -2违规下架")
|
||||
private Integer status;
|
||||
private Integer status = 0;
|
||||
|
||||
@Column(name = "`fail_msg`")
|
||||
@ApiModelProperty(value = "审核失败原因")
|
||||
@@ -142,11 +144,11 @@ public class TbProduct implements Serializable {
|
||||
|
||||
@Column(name = "`is_recommend`")
|
||||
@ApiModelProperty(value = "是否推荐,店铺推荐展示")
|
||||
private Integer isRecommend;
|
||||
private Integer isRecommend = 0;
|
||||
|
||||
@Column(name = "`is_hot`")
|
||||
@ApiModelProperty(value = "是否热销")
|
||||
private Integer isHot;
|
||||
private Integer isHot = 0;
|
||||
|
||||
@Column(name = "`is_new`")
|
||||
@ApiModelProperty(value = "是否新品")
|
||||
@@ -154,11 +156,11 @@ public class TbProduct implements Serializable {
|
||||
|
||||
@Column(name = "`is_on_sale`")
|
||||
@ApiModelProperty(value = "是否促销1-是0-否")
|
||||
private Integer isOnSale;
|
||||
private Integer isOnSale = 0;
|
||||
|
||||
@Column(name = "`is_show`")
|
||||
@ApiModelProperty(value = "是否展示0-下架 1上架---废弃")
|
||||
private Integer isShow;
|
||||
private Integer isShow = 0;
|
||||
|
||||
@Column(name = "`type_enum`")
|
||||
@ApiModelProperty(value = "商品规格:0-单规格 1多规格")
|
||||
@@ -166,7 +168,7 @@ public class TbProduct implements Serializable {
|
||||
|
||||
@Column(name = "`is_distribute`")
|
||||
@ApiModelProperty(value = "是否独立分销")
|
||||
private Integer isDistribute;
|
||||
private Integer isDistribute = 0;
|
||||
|
||||
@Column(name = "`is_del`",nullable = false)
|
||||
@NotNull
|
||||
@@ -175,11 +177,11 @@ public class TbProduct implements Serializable {
|
||||
|
||||
@Column(name = "`is_stock`")
|
||||
@ApiModelProperty(value = "是否开启库存")
|
||||
private Integer isStock;
|
||||
private Integer isStock = 1;
|
||||
|
||||
@Column(name = "`is_pause_sale`")
|
||||
@ApiModelProperty(value = "是否暂停销售")
|
||||
private Integer isPauseSale;
|
||||
private Integer isPauseSale = 0;
|
||||
|
||||
@Column(name = "`is_free_freight`",nullable = false)
|
||||
@NotNull
|
||||
@@ -196,11 +198,11 @@ public class TbProduct implements Serializable {
|
||||
|
||||
@Column(name = "`strategy_id`")
|
||||
@ApiModelProperty(value = "策略Id")
|
||||
private Integer strategyId;
|
||||
private Integer strategyId = 1;
|
||||
|
||||
@Column(name = "`is_vip`")
|
||||
@ApiModelProperty(value = "vip专属")
|
||||
private Integer isVip;
|
||||
private Integer isVip = 0;
|
||||
|
||||
@Column(name = "`is_delete`",nullable = false)
|
||||
@NotNull
|
||||
@@ -221,43 +223,43 @@ public class TbProduct implements Serializable {
|
||||
|
||||
@Column(name = "`base_sales_number`")
|
||||
@ApiModelProperty(value = "基础出售数量")
|
||||
private Double baseSalesNumber;
|
||||
private Double baseSalesNumber =0.00;
|
||||
|
||||
@Column(name = "`real_sales_number`")
|
||||
@ApiModelProperty(value = "实际销量")
|
||||
private Integer realSalesNumber;
|
||||
private Integer realSalesNumber = 0;
|
||||
|
||||
@Column(name = "`sales_number`")
|
||||
@ApiModelProperty(value = "合计销量")
|
||||
private Integer salesNumber;
|
||||
private Integer salesNumber = 0;
|
||||
|
||||
@Column(name = "`thumb_count`")
|
||||
@ApiModelProperty(value = "点赞次数")
|
||||
private Integer thumbCount;
|
||||
private Integer thumbCount = 0;
|
||||
|
||||
@Column(name = "`store_count`")
|
||||
@ApiModelProperty(value = "收藏次数")
|
||||
private Integer storeCount;
|
||||
private Integer storeCount = 0;
|
||||
|
||||
@Column(name = "`furnish_meal`")
|
||||
@ApiModelProperty(value = "支持堂食")
|
||||
private Integer furnishMeal;
|
||||
private Integer furnishMeal = 0;
|
||||
|
||||
@Column(name = "`furnish_express`")
|
||||
@ApiModelProperty(value = "支持配送")
|
||||
private Integer furnishExpress;
|
||||
private Integer furnishExpress = 0;
|
||||
|
||||
@Column(name = "`furnish_draw`")
|
||||
@ApiModelProperty(value = "支持自提")
|
||||
private Integer furnishDraw;
|
||||
private Integer furnishDraw = 0;
|
||||
|
||||
@Column(name = "`furnish_vir`")
|
||||
@ApiModelProperty(value = "支持虚拟")
|
||||
private Integer furnishVir;
|
||||
private Integer furnishVir = 0;
|
||||
|
||||
@Column(name = "`is_combo`")
|
||||
@ApiModelProperty(value = "是否套餐")
|
||||
private Integer isCombo;
|
||||
private Integer isCombo =0;
|
||||
|
||||
@Column(name = "`group_snap`")
|
||||
@ApiModelProperty(value = "套餐内容")
|
||||
@@ -265,19 +267,19 @@ public class TbProduct implements Serializable {
|
||||
|
||||
@Column(name = "`is_show_cash`")
|
||||
@ApiModelProperty(value = "isShowCash")
|
||||
private Integer isShowCash;
|
||||
private Integer isShowCash =0;
|
||||
|
||||
@Column(name = "`is_show_mall`")
|
||||
@ApiModelProperty(value = "isShowMall")
|
||||
private Integer isShowMall;
|
||||
private Integer isShowMall = 0;
|
||||
|
||||
@Column(name = "`is_need_examine`")
|
||||
@ApiModelProperty(value = "是否需要审核")
|
||||
private Integer isNeedExamine;
|
||||
private Integer isNeedExamine = 0;
|
||||
|
||||
@Column(name = "`show_on_mall_status`")
|
||||
@ApiModelProperty(value = "线上商城展示状态0待审核 -1 异常 1正常")
|
||||
private Integer showOnMallStatus;
|
||||
private Integer showOnMallStatus = 1;
|
||||
|
||||
@Column(name = "`show_on_mall_time`")
|
||||
@ApiModelProperty(value = "提交审核时间")
|
||||
@@ -289,7 +291,7 @@ public class TbProduct implements Serializable {
|
||||
|
||||
@Column(name = "`enable_label`")
|
||||
@ApiModelProperty(value = "使用标签打印 选择 是 并在 前台>本机设置 勾选打印标签后,收银完成后会自动打印对应数量的标签数")
|
||||
private Integer enableLabel;
|
||||
private Integer enableLabel = 0;
|
||||
|
||||
@Column(name = "`tax_config_id`")
|
||||
@ApiModelProperty(value = "税率")
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
package me.zhengjie.modules.productInfo.product.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.bean.copier.CopyOptions;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import me.zhengjie.exception.BadRequestException;
|
||||
import me.zhengjie.modules.productInfo.product.domain.TbProduct;
|
||||
@@ -217,7 +218,7 @@ public class TbProductServiceImpl implements TbProductService {
|
||||
public Object create(TbProductVo resources) {
|
||||
TbProduct product = new TbProduct();
|
||||
//组装
|
||||
BeanUtils.copyProperties(resources, product);
|
||||
BeanUtil.copyProperties(resources,product, CopyOptions.create().setIgnoreNullValue(true));
|
||||
product.setCategoryId(String.valueOf(resources.getCategoryId()));
|
||||
product.setIsDel(0);
|
||||
product.setIsDelete(0);
|
||||
@@ -257,10 +258,6 @@ public class TbProductServiceImpl implements TbProductService {
|
||||
}
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println(UUID.randomUUID().toString().substring(0, 16));
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
|
||||
@@ -58,11 +58,11 @@ public class TbProductSku implements Serializable {
|
||||
|
||||
@Column(name = "`origin_price`")
|
||||
@ApiModelProperty(value = "原价")
|
||||
private BigDecimal originPrice;
|
||||
private BigDecimal originPrice = new BigDecimal("0.00");
|
||||
|
||||
@Column(name = "`cost_price`")
|
||||
@ApiModelProperty(value = "成本价")
|
||||
private BigDecimal costPrice;
|
||||
private BigDecimal costPrice = new BigDecimal("0.00");
|
||||
|
||||
@Column(name = "`member_price`")
|
||||
@ApiModelProperty(value = "会员价")
|
||||
@@ -70,11 +70,11 @@ public class TbProductSku implements Serializable {
|
||||
|
||||
@Column(name = "`meal_price`")
|
||||
@ApiModelProperty(value = "mealPrice")
|
||||
private BigDecimal mealPrice;
|
||||
private BigDecimal mealPrice = new BigDecimal("0.00");
|
||||
|
||||
@Column(name = "`sale_price`")
|
||||
@ApiModelProperty(value = "售价")
|
||||
private BigDecimal salePrice;
|
||||
private BigDecimal salePrice = new BigDecimal("0.00");
|
||||
|
||||
@Column(name = "`guide_price`")
|
||||
@ApiModelProperty(value = "进货参考价")
|
||||
@@ -86,7 +86,7 @@ public class TbProductSku implements Serializable {
|
||||
|
||||
@Column(name = "`stock_number`")
|
||||
@ApiModelProperty(value = "库存数量")
|
||||
private Double stockNumber;
|
||||
private Double stockNumber = 0.00;
|
||||
|
||||
@Column(name = "`spec_snap`")
|
||||
@ApiModelProperty(value = "标签镜像")
|
||||
@@ -110,7 +110,7 @@ public class TbProductSku implements Serializable {
|
||||
|
||||
@Column(name = "`real_sales_number`")
|
||||
@ApiModelProperty(value = "销量")
|
||||
private Double realSalesNumber;
|
||||
private Double realSalesNumber = 0.00;
|
||||
|
||||
@Column(name = "`first_shared`")
|
||||
@ApiModelProperty(value = "一级分销金额")
|
||||
|
||||
@@ -68,7 +68,9 @@ public class TbProductStockDetail implements Serializable {
|
||||
@Column(name = "`shop_id`")
|
||||
@ApiModelProperty(value = "店铺Id")
|
||||
private String shopId;
|
||||
|
||||
/**
|
||||
* 操作日志id
|
||||
*/
|
||||
@Column(name = "`record_id`")
|
||||
@ApiModelProperty(value = "recordId")
|
||||
private String recordId;
|
||||
|
||||
@@ -18,6 +18,7 @@ package me.zhengjie.modules.productInfo.productStockOperate.rest;
|
||||
import me.zhengjie.annotation.Log;
|
||||
import me.zhengjie.modules.productInfo.productStockOperate.domain.TbProductStockOperate;
|
||||
import me.zhengjie.modules.productInfo.productStockOperate.service.TbProductStockOperateService;
|
||||
import me.zhengjie.modules.productInfo.productStockOperate.service.dto.OutAndOnDto;
|
||||
import me.zhengjie.modules.productInfo.productStockOperate.service.dto.TbProductStockOperateQueryCriteria;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@@ -56,6 +57,17 @@ public class TbProductStockOperateController {
|
||||
return new ResponseEntity<>(tbProductStockOperateService.queryAllPage(criteria),HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/{id}")
|
||||
public ResponseEntity<Object> queryById(@PathVariable Integer id){
|
||||
return new ResponseEntity<>(tbProductStockOperateService.findById(id),HttpStatus.OK);
|
||||
}
|
||||
|
||||
// @GetMapping("/nullify/{id}")
|
||||
// public ResponseEntity<Object> nullify(@PathVariable Integer id){
|
||||
// return new ResponseEntity<>(tbProductStockOperateService.,HttpStatus.OK);
|
||||
// }
|
||||
|
||||
|
||||
@PostMapping
|
||||
@Log("新增/product/StockOperate")
|
||||
@ApiOperation("新增/product/StockOperate")
|
||||
@@ -64,6 +76,14 @@ public class TbProductStockOperateController {
|
||||
return new ResponseEntity<>(tbProductStockOperateService.create(resources),HttpStatus.CREATED);
|
||||
}
|
||||
|
||||
@PostMapping("/outAndOn")
|
||||
@Log("新增/product/StockOperate")
|
||||
@ApiOperation("新增/product/StockOperate")
|
||||
@PreAuthorize("@el.check('tbProductStockOperate:add')")
|
||||
public ResponseEntity<Object> createOutAndONOperate(@RequestBody OutAndOnDto outAndOnDto){
|
||||
return new ResponseEntity<>(tbProductStockOperateService.createOutAndONOperate(outAndOnDto),HttpStatus.CREATED);
|
||||
}
|
||||
|
||||
@PutMapping
|
||||
@Log("修改/product/StockOperate")
|
||||
@ApiOperation("修改/product/StockOperate")
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
package me.zhengjie.modules.productInfo.productStockOperate.service;
|
||||
|
||||
import me.zhengjie.modules.productInfo.productStockOperate.domain.TbProductStockOperate;
|
||||
import me.zhengjie.modules.productInfo.productStockOperate.service.VO.ProductStockOperateVO;
|
||||
import me.zhengjie.modules.productInfo.productStockOperate.service.dto.OutAndOnDto;
|
||||
import me.zhengjie.modules.productInfo.productStockOperate.service.dto.TbProductStockOperateDto;
|
||||
import me.zhengjie.modules.productInfo.productStockOperate.service.dto.TbProductStockOperateQueryCriteria;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
@@ -35,7 +37,6 @@ public interface TbProductStockOperateService {
|
||||
/**
|
||||
* 查询数据分页
|
||||
* @param criteria 条件
|
||||
* @param pageable 分页参数
|
||||
* @return Map<String,Object>
|
||||
*/
|
||||
Map<String,Object> queryAllPage(TbProductStockOperateQueryCriteria criteria);
|
||||
@@ -47,12 +48,17 @@ public interface TbProductStockOperateService {
|
||||
*/
|
||||
List<TbProductStockOperateDto> queryAll(TbProductStockOperateQueryCriteria criteria);
|
||||
|
||||
/**
|
||||
* 作废
|
||||
*/
|
||||
void nullify();
|
||||
|
||||
/**
|
||||
* 根据ID查询
|
||||
* @param id ID
|
||||
* @return TbProductStockOperateDto
|
||||
*/
|
||||
TbProductStockOperateDto findById(Integer id);
|
||||
ProductStockOperateVO findById(Integer id);
|
||||
|
||||
/**
|
||||
* 创建
|
||||
@@ -61,6 +67,9 @@ public interface TbProductStockOperateService {
|
||||
*/
|
||||
TbProductStockOperateDto create(TbProductStockOperate resources);
|
||||
|
||||
|
||||
OutAndOnDto createOutAndONOperate(OutAndOnDto resources);
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
* @param resources /
|
||||
|
||||
@@ -0,0 +1,145 @@
|
||||
package me.zhengjie.modules.productInfo.productStockOperate.service.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.NonNull;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author 出库入库Dto
|
||||
*/
|
||||
|
||||
public class OutAndOnDto {
|
||||
/**
|
||||
* 批号
|
||||
*/
|
||||
private String batchNumber;
|
||||
/**
|
||||
* 商品list
|
||||
*/
|
||||
private List<Object> list;
|
||||
/**
|
||||
* 实收金额
|
||||
*/
|
||||
private BigDecimal paidAmount;
|
||||
/**
|
||||
* 实收时间
|
||||
*/
|
||||
private Long paidAt;
|
||||
/**
|
||||
* 供货商id
|
||||
*/
|
||||
private String purveyorId;
|
||||
/**
|
||||
* 供货商名称
|
||||
*/
|
||||
private String purveyorName;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* 出库时间
|
||||
*/
|
||||
private Long time;
|
||||
/**
|
||||
* 应收金额
|
||||
*/
|
||||
private BigDecimal totalAmount;
|
||||
|
||||
@NonNull
|
||||
private String type;
|
||||
@NonNull
|
||||
private String shopId;
|
||||
|
||||
|
||||
public String getBatchNumber() {
|
||||
return batchNumber;
|
||||
}
|
||||
|
||||
public void setBatchNumber(String batchNumber) {
|
||||
this.batchNumber = batchNumber;
|
||||
}
|
||||
|
||||
public List<Object> getList() {
|
||||
return list;
|
||||
}
|
||||
|
||||
public void setList(List<Object> list) {
|
||||
this.list = list;
|
||||
}
|
||||
|
||||
public BigDecimal getPaidAmount() {
|
||||
return paidAmount;
|
||||
}
|
||||
|
||||
public void setPaidAmount(BigDecimal paidAmount) {
|
||||
this.paidAmount = paidAmount;
|
||||
}
|
||||
|
||||
public Long getPaidAt() {
|
||||
return paidAt;
|
||||
}
|
||||
|
||||
public void setPaidAt(Long paidAt) {
|
||||
this.paidAt = paidAt;
|
||||
}
|
||||
|
||||
public String getPurveyorId() {
|
||||
return purveyorId;
|
||||
}
|
||||
|
||||
public void setPurveyorId(String purveyorId) {
|
||||
this.purveyorId = purveyorId;
|
||||
}
|
||||
|
||||
public String getPurveyorName() {
|
||||
return purveyorName;
|
||||
}
|
||||
|
||||
public void setPurveyorName(String purveyorName) {
|
||||
this.purveyorName = purveyorName;
|
||||
}
|
||||
|
||||
public String getRemark() {
|
||||
return remark;
|
||||
}
|
||||
|
||||
public void setRemark(String remark) {
|
||||
this.remark = remark;
|
||||
}
|
||||
|
||||
public Long getTime() {
|
||||
return time;
|
||||
}
|
||||
|
||||
public void setTime(Long time) {
|
||||
this.time = time;
|
||||
}
|
||||
|
||||
public BigDecimal getTotalAmount() {
|
||||
return totalAmount;
|
||||
}
|
||||
|
||||
public void setTotalAmount(BigDecimal totalAmount) {
|
||||
this.totalAmount = totalAmount;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public String getShopId() {
|
||||
return shopId;
|
||||
}
|
||||
|
||||
public void setShopId(String shopId) {
|
||||
this.shopId = shopId;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
package me.zhengjie.modules.productInfo.productStockOperate.service.dto;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @author lyf
|
||||
*/
|
||||
@Data
|
||||
public class ProductListDto {
|
||||
|
||||
/**
|
||||
* sku id
|
||||
*/
|
||||
private Integer id;
|
||||
|
||||
|
||||
/**
|
||||
* 进价
|
||||
*/
|
||||
private BigDecimal guidePrice;
|
||||
/**
|
||||
* 产品id
|
||||
*/
|
||||
private String productId;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
private Integer number;
|
||||
|
||||
private BigDecimal costPrice;
|
||||
|
||||
private String name;
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private BigDecimal totalAmount;
|
||||
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
private String unitName;
|
||||
/**
|
||||
*规格
|
||||
*/
|
||||
private String specSnap;
|
||||
}
|
||||
@@ -16,8 +16,23 @@
|
||||
package me.zhengjie.modules.productInfo.productStockOperate.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import me.zhengjie.exception.BadRequestException;
|
||||
import me.zhengjie.modules.productInfo.productSku.domain.TbProductSku;
|
||||
import me.zhengjie.modules.productInfo.productSku.repository.TbProductSkuRepository;
|
||||
import me.zhengjie.modules.productInfo.productSku.service.TbProductSkuService;
|
||||
import me.zhengjie.modules.productInfo.productStock.domain.TbProductStockDetail;
|
||||
import me.zhengjie.modules.productInfo.productStockOperate.domain.TbProductStockOperate;
|
||||
import me.zhengjie.modules.productInfo.productStockOperate.service.VO.ProductStockOperateVO;
|
||||
import me.zhengjie.modules.productInfo.productStockOperate.service.dto.OutAndOnDto;
|
||||
import me.zhengjie.modules.productInfo.productStockOperate.service.dto.ProductListDto;
|
||||
import me.zhengjie.modules.shopInfo.shop.domain.TbShopInfo;
|
||||
import me.zhengjie.modules.shopInfo.shop.repository.TbShopInfoRepository;
|
||||
|
||||
import me.zhengjie.modules.shopInfo.shopPurveyorTransact.domain.TbShopPurveyorTransact;
|
||||
import me.zhengjie.modules.shopInfo.shopPurveyorTransact.repository.TbShopPurveyorTransactRepository;
|
||||
import me.zhengjie.modules.userInfo.domain.TbUserInfo;
|
||||
import me.zhengjie.utils.*;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import me.zhengjie.modules.productInfo.productStockOperate.repository.TbProductStockOperateRepository;
|
||||
@@ -25,7 +40,9 @@ import me.zhengjie.modules.productInfo.productStockOperate.service.TbProductStoc
|
||||
import me.zhengjie.modules.productInfo.productStockOperate.service.dto.TbProductStockOperateDto;
|
||||
import me.zhengjie.modules.productInfo.productStockOperate.service.dto.TbProductStockOperateQueryCriteria;
|
||||
import me.zhengjie.modules.productInfo.productStockOperate.service.mapstruct.TbProductStockOperateMapper;
|
||||
import org.bouncycastle.asn1.dvcs.DVCSObjectIdentifiers;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Sort;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -33,8 +50,12 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.Instant;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
import javax.annotation.Resource;
|
||||
import javax.persistence.EntityManager;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
/**
|
||||
@@ -49,6 +70,12 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe
|
||||
|
||||
private final TbProductStockOperateRepository tbProductStockOperateRepository;
|
||||
private final TbProductStockOperateMapper tbProductStockOperateMapper;
|
||||
private final TbShopPurveyorTransactRepository purveyorTransactRepository;
|
||||
private final TbShopInfoRepository shopInfoRepository;
|
||||
private final TbProductSkuRepository tbProductSkuRepository;
|
||||
private final TbProductSkuService productSkuService;
|
||||
private final EntityManager entityManager;
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -78,12 +105,23 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe
|
||||
return tbProductStockOperateMapper.toDto(tbProductStockOperateRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void nullify() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public TbProductStockOperateDto findById(Integer id) {
|
||||
public ProductStockOperateVO findById(Integer id) {
|
||||
TbProductStockOperate tbProductStockOperate = tbProductStockOperateRepository.findById(id).orElseGet(TbProductStockOperate::new);
|
||||
ProductStockOperateVO stockOperateVO = new ProductStockOperateVO();
|
||||
BeanUtils.copyProperties(tbProductStockOperate,stockOperateVO);
|
||||
stockOperateVO.setStockSnap(ListUtil.stringChangeList(tbProductStockOperate.getStockSnap()));
|
||||
stockOperateVO.setOperatorSnap(StringUtils.stringChangeMap(tbProductStockOperate.getOperatorSnap()));
|
||||
|
||||
|
||||
ValidationUtil.isNull(tbProductStockOperate.getId(),"TbProductStockOperate","id",id);
|
||||
return tbProductStockOperateMapper.toDto(tbProductStockOperate);
|
||||
return stockOperateVO;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -92,6 +130,123 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe
|
||||
return tbProductStockOperateMapper.toDto(tbProductStockOperateRepository.save(resources));
|
||||
}
|
||||
|
||||
/**
|
||||
* 出库
|
||||
* @param resources
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public OutAndOnDto createOutAndONOperate(OutAndOnDto resources) {
|
||||
//用户相关
|
||||
TbShopInfo byId = shopInfoRepository.findById(Integer.valueOf(resources.getShopId())).orElseGet(TbShopInfo::new);
|
||||
if (byId.getId() == null){
|
||||
throw new BadRequestException("商户号有误");
|
||||
}
|
||||
//增加操作日志
|
||||
long times = Instant.now().toEpochMilli();
|
||||
TbProductStockOperate stockOperate = new TbProductStockOperate();
|
||||
stockOperate.setShopId(resources.getShopId());
|
||||
stockOperate.setStockSnap(resources.getList().toString());
|
||||
System.out.println(stockOperate.getStockSnap());
|
||||
stockOperate.setType(resources.getType());
|
||||
if ("purchase".equals(resources.getType()) || "purveyor".equals(resources.getType())){
|
||||
stockOperate.setSubType(1);
|
||||
}else {
|
||||
stockOperate.setSubType(-1);
|
||||
}
|
||||
Map<String, String> operatorSnapMap = new HashMap<>();
|
||||
operatorSnapMap.put("name", byId.getShopName());
|
||||
operatorSnapMap.put("account",byId.getAccount());
|
||||
|
||||
stockOperate.setOperatorSnap(JSON.toJSONString(operatorSnapMap));
|
||||
stockOperate.setBatchNumber(resources.getBatchNumber());
|
||||
stockOperate.setRemark(resources.getRemark());
|
||||
stockOperate.setStockTime(times);
|
||||
stockOperate.setCreatedAt(times);
|
||||
stockOperate.setUpdatedAt(times);
|
||||
stockOperate.setStatus("normal");
|
||||
TbProductStockOperate saveStockOperate = tbProductStockOperateRepository.save(stockOperate);
|
||||
//帐目往来
|
||||
if (!"other-out".equals(resources.getType()) || !"purchase".equals(resources.getType())) {
|
||||
TbShopPurveyorTransact purveyorTransact = new TbShopPurveyorTransact();
|
||||
purveyorTransact.setShopId(resources.getShopId());
|
||||
purveyorTransact.setPurveyorName(resources.getPurveyorName());
|
||||
purveyorTransact.setPurveyorId(resources.getPurveyorId());
|
||||
purveyorTransact.setRemark(resources.getRemark());
|
||||
purveyorTransact.setCreatedAt(times);
|
||||
purveyorTransact.setUpdatedAt(times);
|
||||
purveyorTransact.setTotalAmount(resources.getTotalAmount());
|
||||
purveyorTransact.setPaidAmount(resources.getPaidAmount());
|
||||
purveyorTransact.setWaitAmount(resources.getTotalAmount().subtract(resources.getPaidAmount()));
|
||||
if (resources.getTotalAmount().compareTo(resources.getPaidAmount())<0){
|
||||
purveyorTransact.setStatus(1);
|
||||
}else {
|
||||
purveyorTransact.setStatus(0);
|
||||
}
|
||||
purveyorTransact.setPaidAt(resources.getPaidAt());
|
||||
purveyorTransact.setType(resources.getType());
|
||||
purveyorTransactRepository.save(purveyorTransact);
|
||||
}
|
||||
//库存记录
|
||||
if (resources.getList() == null){
|
||||
throw new BadRequestException("数据有误");
|
||||
}
|
||||
for (Object date :resources.getList()) {
|
||||
//商品详情
|
||||
ProductListDto productListDto= JSONObject.parseObject(JSONObject.toJSONString(date),ProductListDto.class);
|
||||
TbProductSku tbProductSku = tbProductSkuRepository.findById(productListDto.getId()).orElseGet(TbProductSku::new);
|
||||
TbProductStockDetail productStockDetail = new TbProductStockDetail();
|
||||
productStockDetail.setBatchNumber(resources.getBatchNumber());
|
||||
productStockDetail.setCreatedAt(times);
|
||||
productStockDetail.setUpdatedAt(times);
|
||||
productStockDetail.setIsStock(1);
|
||||
Integer round = (int) Math.floor(tbProductSku.getStockNumber());
|
||||
productStockDetail.setLeftNumber(round);
|
||||
productStockDetail.setProductId(productListDto.getProductId());
|
||||
productStockDetail.setProductName(productListDto.getName());
|
||||
productStockDetail.setRecordId(saveStockOperate.getId().toString());
|
||||
productStockDetail.setShopId(resources.getShopId());
|
||||
productStockDetail.setSkuId(productListDto.getId().toString());
|
||||
productStockDetail.setSourcePath("NORMAL");
|
||||
productListDto.setNumber(productListDto.getNumber() != null? productListDto.getNumber(): 0);
|
||||
switch (resources.getType()) {
|
||||
case "sale":
|
||||
productStockDetail.setStockNumber((double) -productListDto.getNumber());
|
||||
productStockDetail.setSubType(-1);
|
||||
break;
|
||||
case "refund":
|
||||
productStockDetail.setStockNumber((double) productListDto.getNumber());
|
||||
productStockDetail.setSubType(1);
|
||||
break;
|
||||
case "reject":
|
||||
productStockDetail.setStockNumber((double) -productListDto.getNumber());
|
||||
productStockDetail.setSubType(-1);
|
||||
break;
|
||||
case "purveyor":
|
||||
productStockDetail.setStockNumber((double) productListDto.getNumber());
|
||||
productStockDetail.setSubType(1);
|
||||
break;
|
||||
case "purchase":
|
||||
productStockDetail.setStockNumber((double) productListDto.getNumber());
|
||||
productStockDetail.setSubType(1);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
productStockDetail.setType(resources.getType());
|
||||
productStockDetail.setUnitName(productListDto.getUnitName());
|
||||
entityManager.persist(productStockDetail);
|
||||
//sku数量
|
||||
TbProductSku sku = new TbProductSku();
|
||||
sku.setId(productListDto.getId());
|
||||
sku.setStockNumber(tbProductSku.getStockNumber()+productStockDetail.getStockNumber());
|
||||
productSkuService.update(sku);
|
||||
}
|
||||
return resources;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void update(TbProductStockOperate resources) {
|
||||
|
||||
Reference in New Issue
Block a user