From 4b59c1659e6194ea6a3015a76a6625057a3cc108 Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Tue, 1 Apr 2025 15:38:13 +0800 Subject: [PATCH] fix --- .../com/cool/store/enums/ErrorCodeEnum.java | 1 + .../java/com/cool/store/dao/TallyBookDAO.java | 7 ++ .../cool/store/dao/TallyBookDetailDAO.java | 40 ++++++++++ .../store/mapper/TallyBookDetailMapper.java | 18 +++++ .../main/resources/mapper/PointInfoMapper.xml | 12 ++- .../resources/mapper/PointRecommendMapper.xml | 4 + .../mapper/TallyBookDetailMapper.xml | 25 +++++++ .../main/resources/mapper/TallyBookMapper.xml | 11 +-- .../java/com/cool/store/dto/TallyBookDTO.java | 63 +++------------- .../cool/store/dto/TallyBookDetailDTO.java | 14 ++++ .../com/cool/store/entity/PointInfoDO.java | 9 +++ .../com/cool/store/entity/TallyBookDO.java | 37 ++-------- .../cool/store/entity/TallyBookDetailDO.java | 29 ++++++++ .../store/request/AllPointPageRequest.java | 3 + .../store/request/MiniAddPointRequest.java | 15 +++- .../store/request/MiniPointPageRequest.java | 3 + .../cool/store/request/PointPageRequest.java | 3 + .../cool/store/request/TallyBookRequest.java | 73 ++++++++---------- .../response/TallyBookDetailResponse.java | 42 +++++++++++ .../cool/store/service/TallyBookService.java | 7 +- .../store/service/impl/PointServiceImpl.java | 2 - .../service/impl/TallyBookServiceImpl.java | 74 +++++++++++++------ .../controller/webc/TallyBookController.java | 12 ++- 23 files changed, 340 insertions(+), 164 deletions(-) create mode 100644 coolstore-partner-dao/src/main/java/com/cool/store/dao/TallyBookDetailDAO.java create mode 100644 coolstore-partner-dao/src/main/java/com/cool/store/mapper/TallyBookDetailMapper.java create mode 100644 coolstore-partner-dao/src/main/resources/mapper/TallyBookDetailMapper.xml create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/TallyBookDetailDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/entity/TallyBookDetailDO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/response/TallyBookDetailResponse.java diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java index 228a1590a..7722a1750 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java @@ -236,6 +236,7 @@ public enum ErrorCodeEnum { UPDATE_INVESTMENT_MANAGER_FAIL(131005,"当前用户已经为该门店招商经理",null), CONFIRM_THE_APPROVER(131006,"您提交的铺位暂时找不到选址审批人,请联系系统管理员配置选址审批权限后再提交铺位审批",null), + TALLY_BOOK_NOT_EXIST(180001, "记账本数据不存在", null) ; diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/TallyBookDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/TallyBookDAO.java index 484a40453..dd7d52e7c 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/TallyBookDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/TallyBookDAO.java @@ -32,5 +32,12 @@ public class TallyBookDAO { return tallyBookMapper.selectByExample(example); } + public TallyBookDO getById(Long id){ + if(id == null){ + return null; + } + return tallyBookMapper.selectByPrimaryKey(id); + } + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/TallyBookDetailDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/TallyBookDetailDAO.java new file mode 100644 index 000000000..4c2ec934f --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/TallyBookDetailDAO.java @@ -0,0 +1,40 @@ +package com.cool.store.dao; + +import com.alibaba.excel.util.CollectionUtils; +import com.cool.store.entity.TallyBookDetailDO; +import com.cool.store.mapper.TallyBookDetailMapper; +import org.springframework.stereotype.Repository; +import tk.mybatis.mapper.entity.Example; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author: WangShuo + * @Date: 2025/04/01/13:38 + * @Version 1.0 + * @注释: + */ +@Repository +public class TallyBookDetailDAO { + @Resource + private TallyBookDetailMapper tallyBookDetailMapper; + public Integer batchInsert(List tallyBookDetailDOList) { + if (CollectionUtils.isEmpty(tallyBookDetailDOList)){ + return null; + } + return tallyBookDetailMapper.batchInsert(tallyBookDetailDOList); + } + + public Integer batchDeleteByTallyBookId(Long tallyBookId){ + Example example = new Example(TallyBookDetailDO.class); + example.createCriteria().andEqualTo("tallyBookId",tallyBookId); + return tallyBookDetailMapper.deleteByExample(example); + } + + public List getTallyBookDetailListByTallyBookId(Long tallyBookId){ + Example example = new Example(TallyBookDetailDO.class); + example.createCriteria().andEqualTo("tallyBookId",tallyBookId); + return tallyBookDetailMapper.selectByExample(example); + } +} diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/TallyBookDetailMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/TallyBookDetailMapper.java new file mode 100644 index 000000000..e5dc6e8ee --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/TallyBookDetailMapper.java @@ -0,0 +1,18 @@ +package com.cool.store.mapper; + +import com.cool.store.entity.TallyBookDetailDO; +import org.apache.ibatis.annotations.Param; +import tk.mybatis.mapper.common.Mapper; + +import java.util.List; + +/** + * @Author: WangShuo + * @Date: 2025/04/01/13:36 + * @Version 1.0 + * @注释: + */ +public interface TallyBookDetailMapper extends Mapper { + + Integer batchInsert(@Param("list") List tallyBookDetailDOList); +} diff --git a/coolstore-partner-dao/src/main/resources/mapper/PointInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/PointInfoMapper.xml index 3160a7fc6..ed75dae8e 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/PointInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/PointInfoMapper.xml @@ -31,6 +31,9 @@ + + + @@ -38,7 +41,8 @@ development_manager, operate_user_id, development_time, point_status, point_score, select_status, submit_audit_count, point_source, deleted, create_time, update_time, - province, city, district, township, opportunity_point_code, opportunity_point_name,open_shop_name + province, city, district, township, opportunity_point_code, opportunity_point_name,open_shop_name, + province_code, city_code, district_code diff --git a/coolstore-partner-dao/src/main/resources/mapper/TallyBookDetailMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/TallyBookDetailMapper.xml new file mode 100644 index 000000000..0cb20592e --- /dev/null +++ b/coolstore-partner-dao/src/main/resources/mapper/TallyBookDetailMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + insert into xfsg_tally_book_detail (tally_book_id, field_name, field_value, create_time, update_time) + values + + (#{item.tallyBookId,jdbcType=BIGINT}, + #{item.fieldName,jdbcType=VARCHAR}, + #{item.fieldValue,jdbcType=DECIMAL}, + #{item.createTime,jdbcType=TIMESTAMP}, + #{item.updateTime,jdbcType=TIMESTAMP}) + + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/TallyBookMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/TallyBookMapper.xml index dd503f4c9..624fa5cbc 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/TallyBookMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/TallyBookMapper.xml @@ -12,19 +12,12 @@ - - - - - - - - - + + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/TallyBookDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/TallyBookDTO.java index 740259f45..34bf77909 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/TallyBookDTO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/TallyBookDTO.java @@ -1,13 +1,17 @@ package com.cool.store.dto; +import com.alibaba.excel.util.CollectionUtils; import com.cool.store.entity.TallyBookDO; +import com.cool.store.entity.TallyBookDetailDO; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Date; +import java.util.List; @Data public class TallyBookDTO { @@ -31,60 +35,13 @@ public class TallyBookDTO { @NotNull(message = "月不能为空") private Integer month; - @ApiModelProperty(value = "员工工资") - @NotNull(message = "员工工资不能为空") - private BigDecimal employeeSalary; - - @ApiModelProperty(value = "办公费") - @NotNull(message = "办公费不能为空") - private BigDecimal administrativeExpenses; - - @ApiModelProperty(value = "差旅费") - @NotNull(message = "差旅费不能为空") - private BigDecimal travelExpense; - - @ApiModelProperty(value = "促销费") - @NotNull(message = "促销费不能为空") - private BigDecimal promotionExpense; - - @ApiModelProperty(value = "水电费") - @NotNull(message = "水电费不能为空") - private BigDecimal utilities; - - @ApiModelProperty(value = "社会保险费") - @NotNull(message = "社会保险费不能为空") - private BigDecimal socialInsurancePremium; - - @ApiModelProperty(value = "员工宿舍费") - @NotNull(message = "员工宿舍费不能为空") - private BigDecimal staffDormitoryFee; - - @ApiModelProperty(value = "低值易耗品摊销") - @NotNull(message = "低值易耗品摊销不能为空") - private BigDecimal consumablesCost; - @ApiModelProperty(value = "成本合计") - @NotNull(message = "成本合计不能为空") - private BigDecimal totalCost; + private BigDecimal total; - public TallyBookDO toTallyBookDO() { - TallyBookDO tallyBookDO = new TallyBookDO(); - tallyBookDO.setPartnerId(partnerId); - tallyBookDO.setShopId(shopId); - tallyBookDO.setYear(year); - tallyBookDO.setMonth(month); - tallyBookDO.setEmployeeSalary(employeeSalary); - tallyBookDO.setAdministrativeExpenses(administrativeExpenses); - tallyBookDO.setTravelExpense(travelExpense); - tallyBookDO.setPromotionExpense(promotionExpense); - tallyBookDO.setUtilities(utilities); - tallyBookDO.setSocialInsurancePremium(socialInsurancePremium); - tallyBookDO.setStaffDormitoryFee(staffDormitoryFee); - tallyBookDO.setConsumablesCost(consumablesCost); - tallyBookDO.setTotalCost(totalCost); - tallyBookDO.setCreateTime(new Date()); - tallyBookDO.setUpdateTime(new Date()); - return tallyBookDO; - } + @ApiModelProperty(value = "提交时间") + private Date updateTime; + + @ApiModelProperty("操作人") + private String operatorName; } \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/TallyBookDetailDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/TallyBookDetailDTO.java new file mode 100644 index 000000000..e9e3de03c --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/TallyBookDetailDTO.java @@ -0,0 +1,14 @@ +package com.cool.store.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class TallyBookDetailDTO { + @ApiModelProperty(value = "字段名称") + private String fieldName; + @ApiModelProperty(value = "字段值") + private BigDecimal fieldValue; +} \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/PointInfoDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/PointInfoDO.java index 6a193b413..2d69b0d6d 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/PointInfoDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/PointInfoDO.java @@ -163,4 +163,13 @@ public class PointInfoDO { @Column(name = "open_shop_name") private String openShopName; + + @Column(name = "province_code") + private String provinceCode; + + @Column(name = "city_code") + private String cityCode; + + @Column(name = "district_code") + private String districtCode; } \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/TallyBookDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/TallyBookDO.java index f2de7f2ef..ddd6b8a78 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/TallyBookDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/TallyBookDO.java @@ -28,45 +28,24 @@ public class TallyBookDO { @Column(name = "`month`") private Integer month; - @Column(name = "employee_salary") - private BigDecimal employeeSalary; - - @Column(name = "administrative_expenses", precision = 10, scale = 2) - private BigDecimal administrativeExpenses; - - @Column(name = "travel_expense", precision = 10, scale = 2) - private BigDecimal travelExpense; - - @Column(name = "promotion_expense", precision = 10, scale = 2) - private BigDecimal promotionExpense; - - @Column(name = "utilities", precision = 10, scale = 2) - private BigDecimal utilities; - - @Column(name = "social_insurance_premium", precision = 10, scale = 2) - private BigDecimal socialInsurancePremium; - - @Column(name = "staff_dormitory_fee", precision = 10, scale = 2) - private BigDecimal staffDormitoryFee; - - @Column(name = "consumables_cost", precision = 10, scale = 2) - private BigDecimal consumablesCost; - - @Column(name = "total_cost", precision = 10, scale = 2) - private BigDecimal totalCost; - @Column(name = "create_time") private Date createTime; - @Column(name = "create_user", length = 255) + @Column(name = "create_user") private String createUser; @Column(name = "update_time") private Date updateTime; - @Column(name = "update_user", length = 255) + @Column(name = "update_user") private String updateUser; @Column(name = "status") private Integer status; + + @Column(name = "total") + private BigDecimal total; + + @Column(name = "operator_name") + private String operatorName; } \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/TallyBookDetailDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/TallyBookDetailDO.java new file mode 100644 index 000000000..24b5402c0 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/TallyBookDetailDO.java @@ -0,0 +1,29 @@ +package com.cool.store.entity; + +import lombok.Data; + +import javax.persistence.Column; +import java.math.BigDecimal; +import java.util.Date; + +/** + * @Author: WangShuo + * @Date: 2025/04/01/13:32 + * @Version 1.0 + * @注释: + */ +@Data +public class TallyBookDetailDO { + @Column(name = "id") + private Long id; + @Column(name = "tally_book_id") + private Long tallyBookId; + @Column(name = "field_name") + private String fieldName; + @Column(name = "field_value") + private BigDecimal fieldValue; + @Column(name = "create_time") + private Date createTime; + @Column(name = "update_time") + private Date updateTime; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/AllPointPageRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/AllPointPageRequest.java index 739a8c324..8497672ca 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/AllPointPageRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/AllPointPageRequest.java @@ -45,4 +45,7 @@ public class AllPointPageRequest extends PageBasicInfo { @ApiModelProperty(value = "是否入库1已入库 2暂未入库") private Integer storageStatus; + + @ApiModelProperty("省市区编码,传最后一级") + private String areaCode; } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/MiniAddPointRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/MiniAddPointRequest.java index e24c2ba8b..846feca35 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/MiniAddPointRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/MiniAddPointRequest.java @@ -86,14 +86,20 @@ public class MiniAddPointRequest { @ApiModelProperty("街道") private String township; - @NotBlank @ApiModelProperty("机会点编号") private String opportunityPointCode; - @NotBlank @ApiModelProperty("机会点名称") private String opportunityPointName; + @ApiModelProperty("省编码") + private String provinceCode; + + @ApiModelProperty("市编码") + private String cityCode; + + @ApiModelProperty("区/县编码") + private String districtCode; public static PointDetailInfoDO convertDO(MiniAddPointRequest request) { PointDetailInfoDO result = new PointDetailInfoDO(); @@ -108,6 +114,11 @@ public class MiniAddPointRequest { public static PointInfoDO convertPointDO(MiniAddPointRequest request) { PointInfoDO result = new PointInfoDO(); + result.setOpportunityPointName(request.getOpportunityPointName()); + result.setOpportunityPointCode(request.getOpportunityPointCode()); + result.setProvinceCode(request.getProvinceCode()); + result.setCityCode(request.getCityCode()); + result.setDistrictCode(request.getDistrictCode()); result.setPointName(request.getPointName()); result.setRegionId(request.getRegionId()); result.setPointArea(request.getPointArea()); diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/MiniPointPageRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/MiniPointPageRequest.java index 68c29c022..7c47e3bd0 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/MiniPointPageRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/MiniPointPageRequest.java @@ -32,4 +32,7 @@ public class MiniPointPageRequest extends PageBasicInfo { private Long lineId; private String partnerId; + + @ApiModelProperty("省市区编码,传最后一级") + private String areaCode; } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/PointPageRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/PointPageRequest.java index a776ef625..029c59082 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/PointPageRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/PointPageRequest.java @@ -54,6 +54,9 @@ public class PointPageRequest extends PageBasicInfo { @ApiModelProperty(value = "铺位状态列表", hidden = true) private List pointStatusList; + @ApiModelProperty("省市区编码,传最后一级") + private String areaCode; + public List getPointStatusList() { List pointStatusList = new ArrayList<>(); if (pointStatus != null) { diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/TallyBookRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/TallyBookRequest.java index c8d82cd64..07e0f570a 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/TallyBookRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/TallyBookRequest.java @@ -1,18 +1,25 @@ package com.cool.store.request; +import com.cool.store.dto.TallyBookDetailDTO; import com.cool.store.entity.TallyBookDO; +import com.cool.store.entity.TallyBookDetailDO; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import org.apache.commons.collections4.CollectionUtils; +import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import java.math.BigDecimal; import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; @Data public class TallyBookRequest { @ApiModelProperty(value = "主键id,修改时候传") + @NotNull(message = "主键id不能为空") private Long id; @ApiModelProperty(value = "加盟商ID") @@ -30,58 +37,40 @@ public class TallyBookRequest { @NotNull(message = "月不能为空") private Integer month; - @ApiModelProperty(value = "员工工资", required = true) - @NotNull(message = "员工工资不能为空") - private BigDecimal employeeSalary; + @ApiModelProperty(value = "成本总计", required = true) + @NotNull(message = "成本总计") + private BigDecimal total; - @ApiModelProperty(value = "办公费", required = true) - @NotNull(message = "办公费不能为空") - private BigDecimal administrativeExpenses; + @ApiModelProperty(value = "明细") + @NotBlank(message = "明细不能为空") + private List tallyBookDetailDTOList; - @ApiModelProperty(value = "差旅费", required = true) - @NotNull(message = "差旅费不能为空") - private BigDecimal travelExpense; - - @ApiModelProperty(value = "促销费", required = true) - @NotNull(message = "促销费不能为空") - private BigDecimal promotionExpense; - - @ApiModelProperty(value = "水电费", required = true) - @NotNull(message = "水电费不能为空") - private BigDecimal utilities; - - @ApiModelProperty(value = "社会保险费", required = true) - @NotNull(message = "社会保险费不能为空") - private BigDecimal socialInsurancePremium; - - @ApiModelProperty(value = "员工宿舍费", required = true) - @NotNull(message = "员工宿舍费不能为空") - private BigDecimal staffDormitoryFee; - - @ApiModelProperty(value = "低值易耗品摊销", required = true) - @NotNull(message = "低值易耗品摊销不能为空") - private BigDecimal consumablesCost; - - @ApiModelProperty(value = "成本合计", required = true) - @NotNull(message = "成本合计不能为空") - private BigDecimal totalCost; + @ApiModelProperty(value = "操作人",hidden = true) + private String operatorName; public TallyBookDO toTallyBookDO() { TallyBookDO tallyBookDO = new TallyBookDO(); tallyBookDO.setPartnerId(partnerId); tallyBookDO.setShopId(shopId); + tallyBookDO.setTotal(total); tallyBookDO.setYear(year); tallyBookDO.setMonth(month); - tallyBookDO.setEmployeeSalary(employeeSalary); - tallyBookDO.setAdministrativeExpenses(administrativeExpenses); - tallyBookDO.setTravelExpense(travelExpense); - tallyBookDO.setPromotionExpense(promotionExpense); - tallyBookDO.setUtilities(utilities); - tallyBookDO.setSocialInsurancePremium(socialInsurancePremium); - tallyBookDO.setStaffDormitoryFee(staffDormitoryFee); - tallyBookDO.setConsumablesCost(consumablesCost); - tallyBookDO.setTotalCost(totalCost); return tallyBookDO; } + public List toTallyBookDetailDOList(Long tallyBookId) { + if (tallyBookId==null || CollectionUtils.isEmpty(tallyBookDetailDTOList)) + { + return null; + } + return tallyBookDetailDTOList.stream().map(tallyBookDetailDTO -> { + TallyBookDetailDO tallyBookDetailDO = new TallyBookDetailDO(); + tallyBookDetailDO.setTallyBookId(tallyBookId); + tallyBookDetailDO.setFieldName(tallyBookDetailDTO.getFieldName()); + tallyBookDetailDO.setFieldValue(tallyBookDetailDTO.getFieldValue()); + tallyBookDetailDO.setCreateTime(new Date()); + return tallyBookDetailDO; + }).collect(Collectors.toList()); + } + } \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/response/TallyBookDetailResponse.java b/coolstore-partner-model/src/main/java/com/cool/store/response/TallyBookDetailResponse.java new file mode 100644 index 000000000..f5d0eaf16 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/response/TallyBookDetailResponse.java @@ -0,0 +1,42 @@ +package com.cool.store.response; + +import com.alibaba.excel.util.CollectionUtils; +import com.cool.store.dto.TallyBookDetailDTO; +import com.cool.store.entity.TallyBookDetailDO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Author: WangShuo + * @Date: 2025/04/01/14:07 + * @Version 1.0 + * @注释: + */ +@Data +public class TallyBookDetailResponse { + @ApiModelProperty(value = "明细") + private List list; + @ApiModelProperty(value = "成本总计") + private BigDecimal total; + @ApiModelProperty(value = "年") + private Integer year; + @ApiModelProperty(value = "月") + private Integer month; + + public List toDTO(List list){ + if (CollectionUtils.isEmpty(list)){ + return null; + } + return list.stream().map(item -> { + TallyBookDetailDTO dto = new TallyBookDetailDTO(); + dto.setFieldName(item.getFieldName()); + dto.setFieldValue(item.getFieldValue()); + return dto; + }).collect(Collectors.toList()); + } +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/TallyBookService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/TallyBookService.java index bfa6c2454..22f5db1e5 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/TallyBookService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/TallyBookService.java @@ -1,8 +1,11 @@ package com.cool.store.service; import com.cool.store.dto.TallyBookDTO; +import com.cool.store.dto.TallyBookDetailDTO; import com.cool.store.entity.TallyBookDO; import com.cool.store.request.TallyBookRequest; +import com.cool.store.response.TallyBookDetailResponse; +import com.cool.store.vo.PartnerUserInfoVO; import java.util.Date; import java.util.List; @@ -15,9 +18,11 @@ import java.util.List; */ public interface TallyBookService { - Long insertOrUpdateSelective(TallyBookRequest request, String userId); + Long insertOrUpdateSelective(TallyBookRequest request, PartnerUserInfoVO user); List getTallyBookListByShopIdAndYear(Long shopId, Integer year); Long initData( Long shopId, String partnerId); + + TallyBookDetailResponse getTallyBookDetailByTallyBookId(Long tallyBookId); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PointServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PointServiceImpl.java index ea98ab3fe..41a65977d 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PointServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PointServiceImpl.java @@ -861,8 +861,6 @@ public class PointServiceImpl implements PointService { pointInfo.setDevelopmentTime(new Date()); pointInfo.setPointSource(PointSourceEnum.POINT_SOURCE_2.getCode()); pointInfo.setPointCode(generateCode()); - pointInfo.setOpportunityPointName(request.getOpportunityPointName()); - pointInfo.setOpportunityPointCode(request.getOpportunityPointCode()); Long pointId = pointInfoDAO.addPointInfo(pointInfo); pointDetailInfo.setPointId(pointId); pointDetailInfoDAO.addPointDetailInfo(pointDetailInfo); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/TallyBookServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/TallyBookServiceImpl.java index e78cd3599..2e2f10b59 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/TallyBookServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/TallyBookServiceImpl.java @@ -2,19 +2,26 @@ package com.cool.store.service.impl; import com.alibaba.fastjson.JSONObject; import com.cool.store.dao.TallyBookDAO; +import com.cool.store.dao.TallyBookDetailDAO; import com.cool.store.dto.TallyBookDTO; +import com.cool.store.dto.TallyBookDetailDTO; import com.cool.store.entity.TallyBookDO; +import com.cool.store.entity.TallyBookDetailDO; import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.enums.TallyBookStatusEnum; import com.cool.store.exception.ServiceException; import com.cool.store.request.TallyBookRequest; +import com.cool.store.response.TallyBookDetailResponse; import com.cool.store.service.TallyBookService; +import com.cool.store.vo.PartnerUserInfoVO; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.math.BigDecimal; import java.time.LocalDate; import java.time.ZoneId; import java.util.*; @@ -33,46 +40,49 @@ public class TallyBookServiceImpl implements TallyBookService { @Resource private TallyBookDAO tallyBookDAO; + @Resource + private TallyBookDetailDAO tallyBookDetailDAO; + @Override - public Long insertOrUpdateSelective(TallyBookRequest request, String partnerId) { - TallyBookDO tallyBookDO = request.toTallyBookDO(); - tallyBookDO.setStatus(TallyBookStatusEnum.IS_SUBMIT.getCode()); - if (request.getId()==null){ - tallyBookDO.setCreateUser(partnerId); - tallyBookDO.setCreateTime(new Date()); - tallyBookDO.setPartnerId(partnerId); - return tallyBookDAO.insertSelective(tallyBookDO); - }else{ - tallyBookDO.setUpdateUser(partnerId); - tallyBookDO.setUpdateTime(new Date()); - return tallyBookDAO.updateByPrimaryKeySelective(tallyBookDO); - } + @Transactional(rollbackFor = Exception.class) + public Long insertOrUpdateSelective(TallyBookRequest request, PartnerUserInfoVO user) { + TallyBookDO tallyBookDO = new TallyBookDO(); + tallyBookDO.setId(request.getId()); + tallyBookDO.setStatus(TallyBookStatusEnum.IS_SUBMIT.getCode());; + tallyBookDO.setUpdateUser(user.getPartnerId()); + tallyBookDO.setUpdateTime(new Date());tallyBookDAO.updateByPrimaryKeySelective(tallyBookDO); + tallyBookDO.setOperatorName(request.getOperatorName()); + tallyBookDetailDAO.batchDeleteByTallyBookId(request.getId()); + List tallyBookDetailDOList = request.toTallyBookDetailDOList(request.getId()); + tallyBookDetailDAO.batchInsert(tallyBookDetailDOList); + return request.getId(); } @Override public List getTallyBookListByShopIdAndYear(Long shopId, Integer year) { - List list = tallyBookDAO.getTallyBookListByShopIdAndYear(shopId,year); - if (CollectionUtils.isEmpty(list)){ + List list = tallyBookDAO.getTallyBookListByShopIdAndYear(shopId, year); + if (CollectionUtils.isEmpty(list)) { return null; } List sortList = list.stream().sorted(Comparator.comparing(TallyBookDO::getMonth)).collect(Collectors.toList()); - List result= new ArrayList<>(); - for(TallyBookDO tallyBookDO : sortList){ + List result = new ArrayList<>(); + for (TallyBookDO tallyBookDO : sortList) { TallyBookDTO tallyBookDTO = new TallyBookDTO(); - BeanUtils.copyProperties(tallyBookDO,tallyBookDTO); + BeanUtils.copyProperties(tallyBookDO, tallyBookDTO); result.add(tallyBookDTO); } return result; } + @Override - public Long initData(Long shopId, String partnerId){ + public Long initData(Long shopId, String partnerId) { Date date = new Date(); LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); // 获取年份 int year = localDate.getYear(); // 获取月份 int month = localDate.getMonthValue(); - List list = tallyBookDAO.getTallyBookListByShopIdAndYear(shopId,year); + List list = tallyBookDAO.getTallyBookListByShopIdAndYear(shopId, year); TallyBookDO tallyBookDO = new TallyBookDO(); tallyBookDO.setShopId(shopId); tallyBookDO.setPartnerId(partnerId); @@ -81,13 +91,29 @@ public class TallyBookServiceImpl implements TallyBookService { tallyBookDO.setCreateTime(new Date()); tallyBookDO.setStatus(TallyBookStatusEnum.NOT_SUBMIT.getCode()); log.info("initData记账本DO:{}", JSONObject.toJSONString(tallyBookDO)); - if(CollectionUtils.isEmpty(list)){ - return tallyBookDAO.insertSelective(tallyBookDO); + if (CollectionUtils.isEmpty(list)) { + return tallyBookDAO.insertSelective(tallyBookDO); } List monthList = list.stream().map(TallyBookDO::getMonth).collect(Collectors.toList()); - if (!monthList.contains(month)){ - return tallyBookDAO.insertSelective(tallyBookDO); + if (!monthList.contains(month)) { + return tallyBookDAO.insertSelective(tallyBookDO); } return null; } + + @Override + public TallyBookDetailResponse getTallyBookDetailByTallyBookId(Long tallyBookId) { + TallyBookDetailResponse response = new TallyBookDetailResponse(); + TallyBookDO tallyBookDO = tallyBookDAO.getById(tallyBookId); + if (tallyBookDO == null){ + throw new ServiceException(ErrorCodeEnum.TALLY_BOOK_NOT_EXIST); + } + List tallyBookDetailList = tallyBookDetailDAO.getTallyBookDetailListByTallyBookId(tallyBookId); + List dto = response.toDTO(tallyBookDetailList); + response.setTotal(tallyBookDO.getTotal()); + response.setYear(tallyBookDO.getYear()); + response.setMonth(tallyBookDO.getMonth()); + response.setList(dto); + return response; + } } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/TallyBookController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/TallyBookController.java index 2935f5adf..8cca15f04 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/TallyBookController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/TallyBookController.java @@ -4,6 +4,7 @@ import com.cool.store.context.PartnerUserHolder; import com.cool.store.dto.TallyBookDTO; import com.cool.store.request.TallyBookRequest; import com.cool.store.response.ResponseResult; +import com.cool.store.response.TallyBookDetailResponse; import com.cool.store.service.TallyBookService; import com.cool.store.vo.PartnerUserInfoVO; import io.swagger.annotations.Api; @@ -32,7 +33,8 @@ public class TallyBookController { @ApiOperation(value = "新增或修改记账本") public ResponseResult insertOrUpdateSelective(@RequestBody @Validated TallyBookRequest request) { PartnerUserInfoVO user = PartnerUserHolder.getUser(); - return ResponseResult.success(tallyBookService.insertOrUpdateSelective(request, user.getPartnerId())); + request.setOperatorName(user.getUsername()); + return ResponseResult.success(tallyBookService.insertOrUpdateSelective(request, user)); } @GetMapping("/getTallyBookListByShopIdAndYear") @@ -41,4 +43,12 @@ public class TallyBookController { PartnerUserInfoVO user = PartnerUserHolder.getUser(); return ResponseResult.success(tallyBookService.getTallyBookListByShopIdAndYear(shopId,year)); } + + @GetMapping("/getDetail") + @ApiOperation(value = "查询明细") + public ResponseResult getTallyBookDetailByTallyBookId(@RequestParam("tallyBookId") Long tallyBookId) { + PartnerUserInfoVO user = PartnerUserHolder.getUser(); + return ResponseResult.success(tallyBookService.getTallyBookDetailByTallyBookId(tallyBookId)); + } + }