出入库相关

This commit is contained in:
liuyingfang
2024-01-31 09:28:51 +08:00
parent 5a41510fd5
commit 69721b6040
15 changed files with 560 additions and 205 deletions

View File

@@ -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){

View File

@@ -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);

View File

@@ -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 /
*/

View File

@@ -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;
/** orderTypeunion-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;
}

View File

@@ -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("orderTypeunion-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);
}
}

View File

@@ -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 = "税率")

View File

@@ -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)

View File

@@ -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 = "一级分销金额")

View File

@@ -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;

View File

@@ -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")

View File

@@ -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 /

View File

@@ -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;
}
}

View File

@@ -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;
}

View File

@@ -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) {