diff --git a/eladmin-common/src/main/java/me/zhengjie/utils/ListUtil.java b/eladmin-common/src/main/java/me/zhengjie/utils/ListUtil.java index bca970ee..d8272ddd 100644 --- a/eladmin-common/src/main/java/me/zhengjie/utils/ListUtil.java +++ b/eladmin-common/src/main/java/me/zhengjie/utils/ListUtil.java @@ -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 String listChangeString(List listString){ + return listString.stream() + .map(Object::toString) + .collect(Collectors.joining(", ")); + } + + public static String mapToString(Map map) { + StringBuilder sb = new StringBuilder(); + for (Map.Entry entry : map.entrySet()) { + sb.append(entry.getKey()).append("=").append(entry.getValue()).append("&"); + } + if (!map.isEmpty()) { + sb.deleteCharAt(sb.length() - 1); // 删除最后一个"&"字符 + } + return sb.toString(); + } } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/orderInfo/domain/TbOrderInfo.java b/eladmin-system/src/main/java/me/zhengjie/modules/orderInfo/domain/TbOrderInfo.java index 8ff047de..48c7efc7 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/orderInfo/domain/TbOrderInfo.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/orderInfo/domain/TbOrderInfo.java @@ -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ȡmergę") 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){ diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/orderInfo/rest/TbOrderInfoController.java b/eladmin-system/src/main/java/me/zhengjie/modules/orderInfo/rest/TbOrderInfoController.java index 71b70cb5..6c69721c 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/orderInfo/rest/TbOrderInfoController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/orderInfo/rest/TbOrderInfoController.java @@ -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 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 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 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 deleteTbOrderInfo(@RequestBody Integer[] ids) { tbOrderInfoService.deleteAll(ids); diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/orderInfo/service/TbOrderInfoService.java b/eladmin-system/src/main/java/me/zhengjie/modules/orderInfo/service/TbOrderInfoService.java index 327993e0..419eb747 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/orderInfo/service/TbOrderInfoService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/orderInfo/service/TbOrderInfoService.java @@ -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 */ Map queryAll(TbOrderInfoQueryCriteria criteria, Pageable pageable); /** - * ѯݲҳ - * @param criteria + * � + * @param criteria * @return List */ List queryAll(TbOrderInfoQueryCriteria criteria); /** - * IDѯ + * ID��ѯ * @param id ID * @return TbOrderInfoDto */ TbOrderInfoDto findById(Integer id); /** - * + * * @param resources / * @return TbOrderInfoDto */ TbOrderInfoDto create(TbOrderInfo resources); /** - * ༭ + * �༭ * @param resources / */ void update(TbOrderInfo resources); /** - * ѡɾ + * ��ѡɾ�� * @param ids / */ void deleteAll(Integer[] ids); /** - * - * @param all + * + * @param all * @param response / * @throws IOException / */ diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/orderInfo/service/dto/TbOrderInfoDto.java b/eladmin-system/src/main/java/me/zhengjie/modules/orderInfo/service/dto/TbOrderInfoDto.java index 5eda6930..de6a8ebe 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/orderInfo/service/dto/TbOrderInfoDto.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/orderInfo/service/dto/TbOrderInfoDto.java @@ -30,130 +30,129 @@ public class TbOrderInfoDto implements Serializable { private Integer id; - /** */ private String orderNo; - /** ̻ */ + /** �̻��� */ private BigDecimal settlementAmount; - /** װ */ + /** ��װ�� */ private BigDecimal packFee; - /** ԭ */ + /** ԭ��� */ private BigDecimal originAmount; - /** Ʒۼ */ + /** ��Ʒ�ۼ� */ private BigDecimal productAmount; - /** ս---˵󣬽䶯 */ + /** ���ս��---�˵��󣬽��䶯 */ private BigDecimal amount; - /** ˵ */ + /** �˵ */ private BigDecimal refundAmount; - /** ֧ */ + /** ֧� */ private BigDecimal payAmount; - /** ʵݷ */ + /** �ʵݷ��� */ private BigDecimal freightAmount; - /** ֽ֧ */ + /** �ֽ�֧� */ private BigDecimal cashPaidAmount; - /** ΢֧ */ + /** ΢��֧� */ private BigDecimal wxPaidAmount; - /** ֧֧ */ + /** ֧֧� */ private BigDecimal aliPaidAmount; - /** ֵ֧ */ + /** ��ֵ֧� */ private BigDecimal depositPaidAmount; - /** ֧ */ + /** ֧� */ private BigDecimal bankPaidAmount; - /** ֧ */ + /** ֧� */ private BigDecimal virtualPaidAmount; - /** ֧ */ + /** ֧� */ private BigDecimal otherPaidAmount; - /** ۿ۽ */ + /** �ۿ۽�� */ private BigDecimal discountAmount; - /** ̨Id */ + /** ̨��Id */ private String tableId; - /** Ĩ */ + /** Ĩ�� */ private BigDecimal smallChange; - /** */ + /** */ private String sendType; - /** -cash-miniappС-offline */ + /** -cash-miniappС-offline */ private String orderType; - /** Ʒ */ + /** ��Ʒ�� */ private String productType; - /** ״̬: unpaid ֧unsend closed send ѷrefunding˵refund˵cancelledȡmergę */ + /** ״̬: unpaid ��֧��unsend�� closed ��� send �ѷ�refunding�˵�refund�˵�cancelledȡ��merge��̨ */ private String status; - /** orderTypeΪunion-minorʱparentIdЧΪϼϵid */ + /** orderTypeΪunion-minorʱ��parentId��Ч��Ϊ���ϼ��ϵ�id */ private String billingId; - /** ƽ̨,տ̻Id */ + /** ƽ̨,���տ��̻�Id */ private String merchantId; - /** Id */ + /** Id */ private String shopId; - /** Ƿvip */ + /** �Ƿ�vip */ private Integer isVip; - /** ̻ԱId */ + /** �̻���ԱId */ private String memberId; - /** ûId */ + /** �û�Id */ private String userId; - /** öƷ͵Ļ */ + /** �ö�Ʒ���͵Ļ��� */ private Integer productScore; - /** ֿۻ */ + /** �ֿۻ��� */ private Integer deductScore; - /** ûʹõĿȯ */ + /** �û�ʹ�õĿ�ȯ */ private String userCouponId; - /** Żȯֿ۽ */ + /** �Ż�ȯ�ֿ۽�� */ private BigDecimal userCouponAmount; - /** Ƿ */ + /** �Ƿ� */ private Integer isMaster; - /** Ϊ˵ʱ */ + /** ���Ϊ�˵�ʱ */ private String masterId; - /** Ƿ֧˿1֧˵ 0֧˵ */ + /** �Ƿ�֧���˿1֧���˵��� 0��֧���˵� */ private Integer refundAble; - /** ֧ʱ */ + /** ֧��ʱ�� */ private Long paidTime; - /** ǷЧϵ֮ԭЧ */ + /** �Ƿ���Ч�ϵ�֮ԭ��Ч */ private Integer isEffect; - /** Ƿ̨ */ + /** �Ƿ��̨ */ private Integer isGroup; private Long updatedAt; - /** ϵͳʱ */ + /** ϵͳʱ�� */ private Long systemTime; private Long createdAt; - /** ̨Ƿѽӵ */ + /** ̨�Ƿ��ѽӵ� */ private Integer isAccepted; } \ No newline at end of file diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/orderInfo/service/impl/TbOrderInfoServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/orderInfo/service/impl/TbOrderInfoServiceImpl.java index 5c45eb15..124a817e 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/orderInfo/service/impl/TbOrderInfoServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/orderInfo/service/impl/TbOrderInfoServiceImpl.java @@ -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 all, HttpServletResponse response) throws IOException { - List> list = new ArrayList<>(); - for (TbOrderInfoDto tbOrderInfo : all) { - Map 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ȡmergę", 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> list = new ArrayList<>(); +// for (TbOrderInfoDto tbOrderInfo : all) { +// Map 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(new ArrayList<>(), response); } } \ No newline at end of file diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/productInfo/product/domain/TbProduct.java b/eladmin-system/src/main/java/me/zhengjie/modules/productInfo/product/domain/TbProduct.java index c4e78fad..59794157 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/productInfo/product/domain/TbProduct.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/productInfo/product/domain/TbProduct.java @@ -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 = "税率") diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/productInfo/product/service/impl/TbProductServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/productInfo/product/service/impl/TbProductServiceImpl.java index 5341058a..1885c962 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/productInfo/product/service/impl/TbProductServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/productInfo/product/service/impl/TbProductServiceImpl.java @@ -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) diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/productInfo/productSku/domain/TbProductSku.java b/eladmin-system/src/main/java/me/zhengjie/modules/productInfo/productSku/domain/TbProductSku.java index 215e9cd2..c41b82a9 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/productInfo/productSku/domain/TbProductSku.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/productInfo/productSku/domain/TbProductSku.java @@ -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 = "一级分销金额") diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/productInfo/productStock/domain/TbProductStockDetail.java b/eladmin-system/src/main/java/me/zhengjie/modules/productInfo/productStock/domain/TbProductStockDetail.java index 1dc7277a..65c28704 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/productInfo/productStock/domain/TbProductStockDetail.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/productInfo/productStock/domain/TbProductStockDetail.java @@ -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; diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/productInfo/productStockOperate/rest/TbProductStockOperateController.java b/eladmin-system/src/main/java/me/zhengjie/modules/productInfo/productStockOperate/rest/TbProductStockOperateController.java index 9cfadadb..1472c2b4 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/productInfo/productStockOperate/rest/TbProductStockOperateController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/productInfo/productStockOperate/rest/TbProductStockOperateController.java @@ -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 queryById(@PathVariable Integer id){ + return new ResponseEntity<>(tbProductStockOperateService.findById(id),HttpStatus.OK); + } + +// @GetMapping("/nullify/{id}") +// public ResponseEntity 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 createOutAndONOperate(@RequestBody OutAndOnDto outAndOnDto){ + return new ResponseEntity<>(tbProductStockOperateService.createOutAndONOperate(outAndOnDto),HttpStatus.CREATED); + } + @PutMapping @Log("修改/product/StockOperate") @ApiOperation("修改/product/StockOperate") diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/productInfo/productStockOperate/service/TbProductStockOperateService.java b/eladmin-system/src/main/java/me/zhengjie/modules/productInfo/productStockOperate/service/TbProductStockOperateService.java index 538072f2..6e8a16e7 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/productInfo/productStockOperate/service/TbProductStockOperateService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/productInfo/productStockOperate/service/TbProductStockOperateService.java @@ -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 */ Map queryAllPage(TbProductStockOperateQueryCriteria criteria); @@ -47,12 +48,17 @@ public interface TbProductStockOperateService { */ List 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 / diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/productInfo/productStockOperate/service/dto/OutAndOnDto.java b/eladmin-system/src/main/java/me/zhengjie/modules/productInfo/productStockOperate/service/dto/OutAndOnDto.java new file mode 100644 index 00000000..880511c8 --- /dev/null +++ b/eladmin-system/src/main/java/me/zhengjie/modules/productInfo/productStockOperate/service/dto/OutAndOnDto.java @@ -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 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 getList() { + return list; + } + + public void setList(List 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; + } +} diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/productInfo/productStockOperate/service/dto/ProductListDto.java b/eladmin-system/src/main/java/me/zhengjie/modules/productInfo/productStockOperate/service/dto/ProductListDto.java new file mode 100644 index 00000000..0b0d2b8a --- /dev/null +++ b/eladmin-system/src/main/java/me/zhengjie/modules/productInfo/productStockOperate/service/dto/ProductListDto.java @@ -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; +} diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/productInfo/productStockOperate/service/impl/TbProductStockOperateServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/productInfo/productStockOperate/service/impl/TbProductStockOperateServiceImpl.java index 61678d7b..a2c7f901 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/productInfo/productStockOperate/service/impl/TbProductStockOperateServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/productInfo/productStockOperate/service/impl/TbProductStockOperateServiceImpl.java @@ -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 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) {