Commit 5d705211 by 田超

Merge branch 'feature/1003819' into 'master'

feat: [1003819] ERP与RAYS新增版次

See merge request rays/pcloud-book!1061
parents aff5e4c2 9e9f7a2d
...@@ -746,6 +746,17 @@ public class BookDto extends BaseDto { ...@@ -746,6 +746,17 @@ public class BookDto extends BaseDto {
@ApiModelProperty("答案订阅状态") @ApiModelProperty("答案订阅状态")
private Boolean subscribeState; private Boolean subscribeState;
@ApiModelProperty("版次")
private String edition;
public String getEdition() {
return edition;
}
public void setEdition(String edition) {
this.edition = edition;
}
public Boolean getSubscribeState() { public Boolean getSubscribeState() {
return subscribeState; return subscribeState;
} }
......
package com.pcloud.book.book.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import java.io.Serializable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 版次分析
*/
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class EditionAnalysisListVO implements Serializable {
@ApiModelProperty("版次")
private Integer edition;
@ApiModelProperty("日期")
private String editionDate;
@ApiModelProperty("项目数量")
private Integer projectCount;
}
package com.pcloud.book.book.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import java.io.Serializable;
import java.util.List;
import lombok.Data;
/**
* 版次分析
*/
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class EditionAnalysisResultVO implements Serializable {
private List<EditionAnalysisListVO> editionAnalysisListVOList;
private EditionAnalysisVO editionAnalysisVO;
}
package com.pcloud.book.book.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import java.io.Serializable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 版次分析
*/
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class EditionAnalysisVO implements Serializable {
@ApiModelProperty("出版时间最近的")
private String closedDate;
@ApiModelProperty("出版时间最早的")
private String earliestDate;
@ApiModelProperty("改版次数最高")
private Integer maxEdition;
@ApiModelProperty("改版书刊最多")
private String maxBookCountDate;
@ApiModelProperty("改版书刊最少")
private String minBookCountDate;
}
...@@ -256,6 +256,19 @@ public class Book extends BaseEntity { ...@@ -256,6 +256,19 @@ public class Book extends BaseEntity {
*/ */
private Integer fromErp; private Integer fromErp;
/**
* 版次
*/
private String edition;
public String getEdition() {
return edition;
}
public void setEdition(String edition) {
this.edition = edition;
}
public String getUniqueNumber() { public String getUniqueNumber() {
return uniqueNumber; return uniqueNumber;
} }
......
...@@ -15,6 +15,7 @@ import com.pcloud.book.book.dto.BookUniqueNumberDTO; ...@@ -15,6 +15,7 @@ import com.pcloud.book.book.dto.BookUniqueNumberDTO;
import com.pcloud.book.book.dto.CreateBookResultVO; import com.pcloud.book.book.dto.CreateBookResultVO;
import com.pcloud.book.book.dto.CreateBookVO; import com.pcloud.book.book.dto.CreateBookVO;
import com.pcloud.book.book.dto.MapResourceTotalCountDTO; import com.pcloud.book.book.dto.MapResourceTotalCountDTO;
import com.pcloud.book.book.dto.EditionAnalysisResultVO;
import com.pcloud.book.book.dto.QrcodeServeDto; import com.pcloud.book.book.dto.QrcodeServeDto;
import com.pcloud.book.book.dto.RelateAdviserVO; import com.pcloud.book.book.dto.RelateAdviserVO;
import com.pcloud.book.book.entity.Book; import com.pcloud.book.book.entity.Book;
...@@ -760,4 +761,9 @@ public interface BookBiz { ...@@ -760,4 +761,9 @@ public interface BookBiz {
void addSeriesBookRecord(SeriesBookRecord seriesBookRecord); void addSeriesBookRecord(SeriesBookRecord seriesBookRecord);
BookDto createBook4Erp(Book book); BookDto createBook4Erp(Book book);
/**
*版次分析
*/
EditionAnalysisResultVO bookEditionAnalysis(Long adviserId);
} }
...@@ -36,8 +36,10 @@ import com.pcloud.book.book.cache.BookCache; ...@@ -36,8 +36,10 @@ import com.pcloud.book.book.cache.BookCache;
import com.pcloud.book.book.constant.BookConstant; import com.pcloud.book.book.constant.BookConstant;
import com.pcloud.book.book.dao.BookAdviserDao; import com.pcloud.book.book.dao.BookAdviserDao;
import com.pcloud.book.book.dao.BookDao; import com.pcloud.book.book.dao.BookDao;
import com.pcloud.book.book.dao.BookEdtionDao;
import com.pcloud.book.book.dao.BookLabelDao; import com.pcloud.book.book.dao.BookLabelDao;
import com.pcloud.book.book.dao.BookRaysClassifyDao; import com.pcloud.book.book.dao.BookRaysClassifyDao;
import com.pcloud.book.book.dao.EdtionRecordDao;
import com.pcloud.book.book.dao.QrcodeSceneErpDao; import com.pcloud.book.book.dao.QrcodeSceneErpDao;
import com.pcloud.book.book.dao.SeriesBookDao; import com.pcloud.book.book.dao.SeriesBookDao;
import com.pcloud.book.book.dao.SeriesBookRecordDao; import com.pcloud.book.book.dao.SeriesBookRecordDao;
...@@ -59,13 +61,18 @@ import com.pcloud.book.book.dto.CreateBookResultVO; ...@@ -59,13 +61,18 @@ import com.pcloud.book.book.dto.CreateBookResultVO;
import com.pcloud.book.book.dto.CreateBookVO; import com.pcloud.book.book.dto.CreateBookVO;
import com.pcloud.book.book.dto.CreateQrcodeVO; import com.pcloud.book.book.dto.CreateQrcodeVO;
import com.pcloud.book.book.dto.MapResourceTotalCountDTO; import com.pcloud.book.book.dto.MapResourceTotalCountDTO;
import com.pcloud.book.book.dto.EditionAnalysisListVO;
import com.pcloud.book.book.dto.EditionAnalysisResultVO;
import com.pcloud.book.book.dto.EditionAnalysisVO;
import com.pcloud.book.book.dto.QrcodeServeDto; import com.pcloud.book.book.dto.QrcodeServeDto;
import com.pcloud.book.book.dto.RelateAdviserVO; import com.pcloud.book.book.dto.RelateAdviserVO;
import com.pcloud.book.book.entity.Book; import com.pcloud.book.book.entity.Book;
import com.pcloud.book.book.entity.BookAdviser; import com.pcloud.book.book.entity.BookAdviser;
import com.pcloud.book.book.entity.BookAdviserErp; import com.pcloud.book.book.entity.BookAdviserErp;
import com.pcloud.book.book.entity.BookEdition;
import com.pcloud.book.book.entity.BookLabel; import com.pcloud.book.book.entity.BookLabel;
import com.pcloud.book.book.entity.BookSerialNumber; import com.pcloud.book.book.entity.BookSerialNumber;
import com.pcloud.book.book.entity.EditionRecord;
import com.pcloud.book.book.entity.QrcodeSceneErp; import com.pcloud.book.book.entity.QrcodeSceneErp;
import com.pcloud.book.book.entity.SeriesBook; import com.pcloud.book.book.entity.SeriesBook;
import com.pcloud.book.book.entity.SeriesBookRecord; import com.pcloud.book.book.entity.SeriesBookRecord;
...@@ -165,6 +172,7 @@ import java.util.ArrayList; ...@@ -165,6 +172,7 @@ import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Calendar; import java.util.Calendar;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
...@@ -302,6 +310,10 @@ public class BookBizImpl implements BookBiz { ...@@ -302,6 +310,10 @@ public class BookBizImpl implements BookBiz {
private SeriesBookDao seriesBookDao; private SeriesBookDao seriesBookDao;
@Autowired @Autowired
private SeriesBookRecordDao seriesBookRecordDao; private SeriesBookRecordDao seriesBookRecordDao;
@Autowired
private BookEdtionDao bookEdtionDao;
@Autowired
private EdtionRecordDao edtionRecordDao;
/** /**
* 创建书籍,同时建立与编辑的推广关系 * 创建书籍,同时建立与编辑的推广关系
...@@ -333,7 +345,37 @@ public class BookBizImpl implements BookBiz { ...@@ -333,7 +345,37 @@ public class BookBizImpl implements BookBiz {
} }
// 书籍总数缓存加1 // 书籍总数缓存加1
bookCache.incrObject(BookConstant.BOOK_CACHE + "PLATFORM_BOOK_COUNT"); bookCache.incrObject(BookConstant.BOOK_CACHE + "PLATFORM_BOOK_COUNT");
//插入版次记录
insertEdition(book.getCreatedUser(), book.getEdition(), book.getId());
return bookDto; return bookDto;
}
private void insertEdition(Long userId, String bookEdition, Long bookId) {
if (!StringUtils.isEmpty(bookEdition)) {
String[] split = bookEdition.split(",");
if (split.length < 3) {
throw new IllegalArgumentException(String.format("缺少年月版等信息!"));
}
String month=split[1];
if(split[1].length()==1){
month="0"+split[1];
}
String editionYear = split[0] + "-" + month;
String edition = split[2];
BookEdition projectEdition = new BookEdition();
projectEdition.setEditionYear(editionYear);
projectEdition.setEdition(StringUtils.isEmpty(edition) ? null : Integer.valueOf(edition));
projectEdition.setBookId(bookId);
projectEdition.setUpdateUser(userId);
EditionRecord editionRecord = new EditionRecord();
editionRecord.setEditionYear(editionYear);
editionRecord.setEdition(StringUtils.isEmpty(edition) ? null : Integer.valueOf(edition));
editionRecord.setBookId(bookId);
editionRecord.setUpdateUser(userId);
bookEdtionDao.insert(projectEdition);
edtionRecordDao.insert(editionRecord);
}
} }
/** /**
...@@ -371,6 +413,8 @@ public class BookBizImpl implements BookBiz { ...@@ -371,6 +413,8 @@ public class BookBizImpl implements BookBiz {
checkIsUpdateCoverImgAndSendTopic(bookDto, book.getCoverImg()); checkIsUpdateCoverImgAndSendTopic(bookDto, book.getCoverImg());
checkIsUpdateBookNameAndSendTopic(bookDto, book.getBookName()); checkIsUpdateBookNameAndSendTopic(bookDto, book.getBookName());
bookDao.update(book); bookDao.update(book);
//修改版次信息
insertEdition(book.getLastModifiedUser(),book.getEdition(),book.getBookId());
esBookAndAdviserBiz.updateBookAndAdviserToES(Collections.singletonList(book.getBookId())); esBookAndAdviserBiz.updateBookAndAdviserToES(Collections.singletonList(book.getBookId()));
// 清除redis中数据 // 清除redis中数据
bookCache.clearRedisByBook(book.getBookId(), book.getIsbn(), book.getSerialNumber()); bookCache.clearRedisByBook(book.getBookId(), book.getIsbn(), book.getSerialNumber());
...@@ -1651,6 +1695,8 @@ public class BookBizImpl implements BookBiz { ...@@ -1651,6 +1695,8 @@ public class BookBizImpl implements BookBiz {
if (null != book.getIsBookGroup() && book.getIsBookGroup()) { if (null != book.getIsBookGroup() && book.getIsBookGroup()) {
bookGroup = bookGroupBiz.createBookGroupAfterCreateBook(book.getBookId(), book.getChannelId(), book.getCreatedUser()); bookGroup = bookGroupBiz.createBookGroupAfterCreateBook(book.getBookId(), book.getChannelId(), book.getCreatedUser());
}*/ }*/
//插入版次记录
insertEdition(book.getCreatedUser(), book.getEdition(), book.getBookId());
// 图书不存在,新增图书,图书数量加1 // 图书不存在,新增图书,图书数量加1
if (bookDto == null) { if (bookDto == null) {
// 书籍总数缓存加1 // 书籍总数缓存加1
...@@ -1707,6 +1753,7 @@ public class BookBizImpl implements BookBiz { ...@@ -1707,6 +1753,7 @@ public class BookBizImpl implements BookBiz {
bookAdviserBiz.updateBookTemplet(book); bookAdviserBiz.updateBookTemplet(book);
//更新小睿分类 //更新小睿分类
bookGroupBiz.updateBookGroupRaysClassify(book); bookGroupBiz.updateBookGroupRaysClassify(book);
insertEdition(book.getLastModifiedUser(),book.getEdition(),book.getBookId());
LOGGER.info("修改图书基本信息与类型[END]"); LOGGER.info("修改图书基本信息与类型[END]");
} }
...@@ -3605,7 +3652,7 @@ public class BookBizImpl implements BookBiz { ...@@ -3605,7 +3652,7 @@ public class BookBizImpl implements BookBiz {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public BookDto createBook4Erp(Book book) { public BookDto createBook4Erp(Book book) {
BookDto bookDto = this.create4Adviser(book); BookDto bookDto = this.create4Adviser(book);
if(book.getIsBookGroup() != null && book.getIsBookGroup()){ if (book.getIsBookGroup() != null && book.getIsBookGroup()) {
// 自动创建二维码 // 自动创建二维码
// 小睿二维码 // 小睿二维码
BookGroupDTO bookGroupDTO = bookGroupBiz.getBookGroupInfoByBookId(book.getBookId(), book.getChannelId(), book.getCreatedUser(), null, null, 4); BookGroupDTO bookGroupDTO = bookGroupBiz.getBookGroupInfoByBookId(book.getBookId(), book.getChannelId(), book.getCreatedUser(), null, null, 4);
...@@ -3620,4 +3667,30 @@ public class BookBizImpl implements BookBiz { ...@@ -3620,4 +3667,30 @@ public class BookBizImpl implements BookBiz {
} }
return bookDto; return bookDto;
} }
@Override
public EditionAnalysisResultVO bookEditionAnalysis(Long adviserId) {
EditionAnalysisResultVO resultVO = new EditionAnalysisResultVO();
List<EditionAnalysisListVO> list=bookEdtionDao.projectEditionAnalysis(adviserId);
if(CollectionUtils.isEmpty(list)){
return resultVO;
}
//获取分析后的结果
EditionAnalysisVO editionAnalysisVO=new EditionAnalysisVO();
String closedDate=list.get(list.size()-1).getEditionDate();
String earliestDate=list.get(0).getEditionDate();
Integer maxEdition=list.stream().mapToInt(a -> a.getEdition()).summaryStatistics().getMax();
List<EditionAnalysisListVO> countSorted=bookEdtionDao.projectCountSorted(adviserId);
String maxBookCountDate=CollectionUtils.isEmpty(countSorted) ? null : countSorted.get(0).getEditionDate();
String minBookCountDate=CollectionUtils.isEmpty(countSorted) ? null : countSorted.get(countSorted.size()-1).getEditionDate();
editionAnalysisVO.setClosedDate(closedDate);
editionAnalysisVO.setEarliestDate(earliestDate);
editionAnalysisVO.setMaxEdition(maxEdition);
editionAnalysisVO.setMinBookCountDate(minBookCountDate);
editionAnalysisVO.setMaxBookCountDate(maxBookCountDate);
//设置值返回
resultVO.setEditionAnalysisListVOList(list);
resultVO.setEditionAnalysisVO(editionAnalysisVO);
return resultVO;
}
} }
package com.pcloud.book.book.dao;
import com.pcloud.book.book.dto.EditionAnalysisListVO;
import com.pcloud.book.book.entity.BookEdition;
import com.pcloud.book.book.entity.BookLabel;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
import java.util.Map;
public interface BookEdtionDao extends BaseDao<BookEdition> {
List<EditionAnalysisListVO> projectEditionAnalysis(Long adviserId);
List<EditionAnalysisListVO> projectCountSorted(Long adviserId);
}
package com.pcloud.book.book.dao;
import com.pcloud.book.book.entity.BookLabel;
import com.pcloud.book.book.entity.EditionRecord;
import com.pcloud.common.core.dao.BaseDao;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
public interface EdtionRecordDao extends BaseDao<EditionRecord> {
}
package com.pcloud.book.book.dao.impl;
import com.pcloud.book.book.dao.BookEdtionDao;
import com.pcloud.book.book.dao.BookLabelDao;
import com.pcloud.book.book.dto.EditionAnalysisListVO;
import com.pcloud.book.book.entity.BookEdition;
import com.pcloud.book.book.entity.BookLabel;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Repository;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Description
* @Author ruansiyuan
* @Date 2019/12/27 17:23
**/
@Repository("bookEdtionDao")
public class BookEdtionDaoImpl extends BaseDaoImpl<BookEdition> implements BookEdtionDao {
@Override
public List<EditionAnalysisListVO> projectEditionAnalysis(Long adviserId) {
return super.getSqlSession().selectList(super.getStatement("projectEditionAnalysis"),adviserId);
}
@Override
public List<EditionAnalysisListVO> projectCountSorted(Long adviserId) {
return super.getSqlSession().selectList(super.getStatement("projectCountSorted"),adviserId);
}
}
package com.pcloud.book.book.dao.impl;
import com.pcloud.book.book.dao.BookLabelDao;
import com.pcloud.book.book.dao.EdtionRecordDao;
import com.pcloud.book.book.entity.BookLabel;
import com.pcloud.book.book.entity.EditionRecord;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Repository;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Description
* @Author ruansiyuan
* @Date 2019/12/27 17:23
**/
@Repository("edtionRecordDao")
public class EdtionRecordDaoImpl extends BaseDaoImpl<EditionRecord> implements EdtionRecordDao {
}
package com.pcloud.book.book.entity;
import com.pcloud.common.entity.BaseEntity;
import java.util.Date;
import lombok.Data;
@Data
public class BookEdition extends BaseEntity {
private Long id;
private Long bookId;
private String editionYear;
private Integer edition;
private Date createTime;
private Date updateTime;
private Long updateUser;
}
\ No newline at end of file
package com.pcloud.book.book.entity;
import com.pcloud.common.entity.BaseEntity;
import java.util.Date;
import lombok.Data;
@Data
public class EditionRecord extends BaseEntity {
private Long id;
private Long bookId;
private String editionYear;
private Integer edition;
private Date createTime;
private Date updateTime;
private Long updateUser;
}
\ No newline at end of file
...@@ -1244,4 +1244,11 @@ public class BookFacadeImpl implements BookFacade { ...@@ -1244,4 +1244,11 @@ public class BookFacadeImpl implements BookFacade {
throws BizException, PermissionException { throws BizException, PermissionException {
return new ResponseDto<>(bookBiz.createBook4Erp(book)); return new ResponseDto<>(bookBiz.createBook4Erp(book));
} }
@ApiOperation("版次分析")
@GetMapping("bookEditionAnalysis")
public ResponseDto<?> bookEditionAnalysis( @RequestHeader("token") String token) throws BizException, PermissionException {
Long adviserId = (Long) SessionUtil.getVlaue(token,SessionUtil.PARTY_ID);
return new ResponseDto<>(bookBiz.bookEditionAnalysis(adviserId));
}
} }
...@@ -68,6 +68,7 @@ ...@@ -68,6 +68,7 @@
<result column="is_open_robot_process" property="isOpenRobotProcess" jdbcType="INTEGER" /> <result column="is_open_robot_process" property="isOpenRobotProcess" jdbcType="INTEGER" />
<result column="vol_label_id" property="volLabelId" jdbcType="BIGINT" /> <result column="vol_label_id" property="volLabelId" jdbcType="BIGINT" />
<result column="unique_number" property="bookUniqueNumber" jdbcType="VARCHAR" /> <result column="unique_number" property="bookUniqueNumber" jdbcType="VARCHAR" />
<result column="edition" property="edition" jdbcType="VARCHAR" />
</resultMap> </resultMap>
<resultMap id="bookListPageMap" type="bookDto" extends ="bookMap"> <resultMap id="bookListPageMap" type="bookDto" extends ="bookMap">
...@@ -80,7 +81,7 @@ ...@@ -80,7 +81,7 @@
INSERT INTO `BOOK` ( INSERT INTO `BOOK` (
ISBN, TYPE_CODE, BOOK_NAME,BOOK_PRICE, REMARK, AUTHOR, PUBLISH, PUBLISH_DATE, COVER_IMG, DETAIL, ISBN, TYPE_CODE, BOOK_NAME,BOOK_PRICE, REMARK, AUTHOR, PUBLISH, PUBLISH_DATE, COVER_IMG, DETAIL,
SPONSOR, ORGANIZER, CN, RELEASE_CYCLE, BOOK_NUM, PROGRAMA, MAIL_CODE, ADDRESS, TELEPHONE, MAIL, PURPOSE, ORIGIN_NAME, SPONSOR, ORGANIZER, CN, RELEASE_CYCLE, BOOK_NUM, PROGRAMA, MAIL_CODE, ADDRESS, TELEPHONE, MAIL, PURPOSE, ORIGIN_NAME,
CREATED_USER, CREATED_DATE, LAST_MODIFIED_USER, LAST_MODIFIED_DATE, ISSN, SERIAL_NUMBER, AD_IMG,unique_number CREATED_USER, CREATED_DATE, LAST_MODIFIED_USER, LAST_MODIFIED_DATE, ISSN, SERIAL_NUMBER, AD_IMG,unique_number,edition
<if test="fromErp != null"> <if test="fromErp != null">
,FROM_ERP ,FROM_ERP
</if> </if>
...@@ -92,7 +93,7 @@ ...@@ -92,7 +93,7 @@
#{cn, jdbcType=VARCHAR}, #{releaseCycle, jdbcType=VARCHAR}, #{bookNum, jdbcType=VARCHAR}, #{programa, jdbcType=VARCHAR}, #{cn, jdbcType=VARCHAR}, #{releaseCycle, jdbcType=VARCHAR}, #{bookNum, jdbcType=VARCHAR}, #{programa, jdbcType=VARCHAR},
#{mailCode, jdbcType=VARCHAR}, #{address, jdbcType=VARCHAR}, #{telephone, jdbcType=VARCHAR}, #{mail, jdbcType=VARCHAR}, #{mailCode, jdbcType=VARCHAR}, #{address, jdbcType=VARCHAR}, #{telephone, jdbcType=VARCHAR}, #{mail, jdbcType=VARCHAR},
#{purpose, jdbcType=VARCHAR}, #{originName, jdbcType=VARCHAR}, #{createdUser, jdbcType=BIGINT}, NOW(), #{purpose, jdbcType=VARCHAR}, #{originName, jdbcType=VARCHAR}, #{createdUser, jdbcType=BIGINT}, NOW(),
#{createdUser, jdbcType=BIGINT}, NOW(),#{issn, jdbcType=VARCHAR},#{serialNumber, jdbcType=VARCHAR},#{adImg, jdbcType=VARCHAR},#{uniqueNumber} #{createdUser, jdbcType=BIGINT}, NOW(),#{issn, jdbcType=VARCHAR},#{serialNumber, jdbcType=VARCHAR},#{adImg, jdbcType=VARCHAR},#{uniqueNumber},#{edition}
<if test="fromErp != null"> <if test="fromErp != null">
, #{fromErp} , #{fromErp}
</if> </if>
...@@ -179,6 +180,7 @@ ...@@ -179,6 +180,7 @@
<if test="isDelete != null"> <if test="isDelete != null">
IS_DELETE = #{isDelete, jdbcType=BIT}, IS_DELETE = #{isDelete, jdbcType=BIT},
</if> </if>
edition = #{edition},
LAST_MODIFIED_DATE = NOW(), LAST_MODIFIED_DATE = NOW(),
VERSION = VERSION + 1 VERSION = VERSION + 1
WHERE WHERE
...@@ -228,7 +230,7 @@ ...@@ -228,7 +230,7 @@
SELECT SELECT
BOOK_ID, ISBN,TYPE_CODE, BOOK_NAME, REMARK, AUTHOR, PUBLISH, PUBLISH_DATE, COVER_IMG, DETAIL,BOOK_PRICE,ISSN, BOOK_ID, ISBN,TYPE_CODE, BOOK_NAME, REMARK, AUTHOR, PUBLISH, PUBLISH_DATE, COVER_IMG, DETAIL,BOOK_PRICE,ISSN,
CREATED_USER, CREATED_DATE, VERSION,SERIAL_NUMBER,AD_IMG,ORIGIN_NAME, CREATED_USER, CREATED_DATE, VERSION,SERIAL_NUMBER,AD_IMG,ORIGIN_NAME,
SPONSOR, ORGANIZER, CN, RELEASE_CYCLE, BOOK_NUM, PROGRAMA, MAIL_CODE, ADDRESS, TELEPHONE, MAIL, PURPOSE SPONSOR, ORGANIZER, CN, RELEASE_CYCLE, BOOK_NUM, PROGRAMA, MAIL_CODE, ADDRESS, TELEPHONE, MAIL, PURPOSE,edition
FROM FROM
BOOK BOOK
WHERE WHERE
...@@ -239,7 +241,7 @@ ...@@ -239,7 +241,7 @@
<select id="getByIsbnAndSnumContainsDelete" resultMap="bookMap" parameterType="map"> <select id="getByIsbnAndSnumContainsDelete" resultMap="bookMap" parameterType="map">
SELECT SELECT
BOOK_ID, ISBN, BOOK_NAME,TYPE_CODE,AUTHOR,PUBLISH,PUBLISH_DATE, BOOK_ID, ISBN, BOOK_NAME,TYPE_CODE,AUTHOR,PUBLISH,PUBLISH_DATE,
COVER_IMG, REMARK,ORIGIN_NAME,BOOK_PRICE,ISSN,VERSION,AD_IMG COVER_IMG, REMARK,ORIGIN_NAME,BOOK_PRICE,ISSN,VERSION,AD_IMG,edition
FROM FROM
BOOK BOOK
WHERE WHERE
...@@ -262,7 +264,7 @@ ...@@ -262,7 +264,7 @@
SELECT SELECT
ISBN, TYPE_CODE, BOOK_NAME, AUTHOR, ISBN, TYPE_CODE, BOOK_NAME, AUTHOR,
PUBLISH, PUBLISH_DATE, COVER_IMG,AD_IMG,REMARK,ORIGIN_NAME,BOOK_PRICE,ISSN,SERIAL_NUMBER,VERSION, PUBLISH, PUBLISH_DATE, COVER_IMG,AD_IMG,REMARK,ORIGIN_NAME,BOOK_PRICE,ISSN,SERIAL_NUMBER,VERSION,
SPONSOR, ORGANIZER, CN, RELEASE_CYCLE, BOOK_NUM, PROGRAMA, MAIL_CODE, ADDRESS, TELEPHONE, MAIL, PURPOSE SPONSOR, ORGANIZER, CN, RELEASE_CYCLE, BOOK_NUM, PROGRAMA, MAIL_CODE, ADDRESS, TELEPHONE, MAIL, PURPOSE,edition
FROM FROM
BOOK BOOK
WHERE WHERE
...@@ -279,7 +281,7 @@ ...@@ -279,7 +281,7 @@
ORIGIN_NAME,BOOK_PRICE,ISSN,SERIAL_NUMBER, ORIGIN_NAME,BOOK_PRICE,ISSN,SERIAL_NUMBER,
SPONSOR, ORGANIZER, CN, RELEASE_CYCLE, BOOK_NUM, SPONSOR, ORGANIZER, CN, RELEASE_CYCLE, BOOK_NUM,
PROGRAMA, MAIL_CODE, ADDRESS, TELEPHONE, MAIL, PURPOSE, PROGRAMA, MAIL_CODE, ADDRESS, TELEPHONE, MAIL, PURPOSE,
VERSION, IS_DELETE VERSION, IS_DELETE,edition
FROM FROM
BOOK BOOK
WHERE WHERE
...@@ -305,7 +307,7 @@ ...@@ -305,7 +307,7 @@
IF(ISNULL(BF.BOOK_FUND_ID),0,1) IS_FUND_SUPPORT,START_TIME,END_TIME,BA.TEMPLET_ID,BA.SECOND_TEMPLET_ID, IF(ISNULL(BF.BOOK_FUND_ID),0,1) IS_FUND_SUPPORT,START_TIME,END_TIME,BA.TEMPLET_ID,BA.SECOND_TEMPLET_ID,
BA.GRA_LABEL_ID,BA.SUB_LABEL_ID,BA.VER_LABEL_ID,BA.AREA_LABEL_ID, BA.IS_PRINT isPrint, BA.GRA_LABEL_ID,BA.SUB_LABEL_ID,BA.VER_LABEL_ID,BA.AREA_LABEL_ID, BA.IS_PRINT isPrint,
BA.pro_label_id, BA.dep_label_id,BA.pur_label_id,BA.vol_label_id,if(G.ID IS NULL, 0, 1) isBookGroup, G.id BOOK_GROUP_ID,G.join_group_type, BA.pro_label_id, BA.dep_label_id,BA.pur_label_id,BA.vol_label_id,if(G.ID IS NULL, 0, 1) isBookGroup, G.id BOOK_GROUP_ID,G.join_group_type,
BA.is_open_robot_process,BA.vol_label_id,b.unique_number,BA.CREATED_DATE BA.is_open_robot_process,BA.vol_label_id,b.unique_number,BA.CREATED_DATE,b.edition
FROM FROM
BOOK_ADVISER BA BOOK_ADVISER BA
INNER JOIN INNER JOIN
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pcloud.book.book.dao.impl.BookEdtionDaoImpl">
<resultMap id="BaseResultMap" type="com.pcloud.book.book.entity.BookEdition">
<constructor>
<idArg column="id" javaType="java.lang.Long" jdbcType="BIGINT" />
<arg column="book_id" javaType="java.lang.Long" jdbcType="BIGINT" />
<arg column="edition_year" javaType="java.lang.String" jdbcType="VARCHAR" />
<arg column="edition" javaType="java.lang.Integer" jdbcType="INTEGER" />
<arg column="create_time" javaType="java.util.Date" jdbcType="TIMESTAMP" />
<arg column="update_time" javaType="java.util.Date" jdbcType="TIMESTAMP" />
<arg column="update_user" javaType="java.lang.Integer" jdbcType="INTEGER" />
</constructor>
</resultMap>
<sql id="Base_Column_List">
id, book_id, edition_year, edition, create_time, update_time, update_user
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from book_edition
where id = #{id,jdbcType=BIGINT}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete from book_edition
where id = #{id,jdbcType=BIGINT}
</delete>
<insert id="insert" parameterType="com.pcloud.book.book.entity.BookEdition">
insert into book_edition (book_id, edition_year,
edition, create_time, update_time,
update_user)
values (#{bookId,jdbcType=BIGINT}, #{editionYear,jdbcType=VARCHAR},
#{edition,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP},
#{updateUser,jdbcType=INTEGER})
ON DUPLICATE KEY UPDATE
edition_year = ifnull(VALUES(edition_year),edition_year),
edition = ifnull(VALUES(edition),edition),
update_user = ifnull(VALUES(update_user),update_user),
update_time = NOW()
</insert>
<insert id="batchInsert" parameterType="list">
insert into edition_record (book_id, edition_year,
edition, create_time, update_time,update_user
)
values
<foreach collection="list" index="index" item="item" separator=",">
(#{item.bookId,jdbcType=BIGINT}, #{item.editionYear,jdbcType=VARCHAR},
#{item.edition,jdbcType=INTEGER}, now(),now(),#{item.updateUser}
)
</foreach>
ON DUPLICATE KEY UPDATE
edition_year = ifnull(VALUES(edition_year),edition_year),
edition = ifnull(VALUES(edition),edition),
update_user = ifnull(VALUES(update_user),update_user),
update_time = NOW()
</insert>
<insert id="insertSelective" parameterType="com.pcloud.book.book.entity.BookEdition">
insert into book_edition
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="bookId != null">
book_id,
</if>
<if test="editionYear != null">
edition_year,
</if>
<if test="edition != null">
edition,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="updateTime != null">
update_time,
</if>
<if test="updateUser != null">
update_user,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=BIGINT},
</if>
<if test="bookId != null">
#{bookId,jdbcType=INTEGER},
</if>
<if test="editionYear != null">
#{editionYear,jdbcType=VARCHAR},
</if>
<if test="edition != null">
#{edition,jdbcType=INTEGER},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
#{updateTime,jdbcType=TIMESTAMP},
</if>
<if test="updateUser != null">
#{updateUser,jdbcType=INTEGER},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.pcloud.book.book.entity.BookEdition">
update book_edition
<set>
<if test="bookId != null">
book_id = #{bookId,jdbcType=INTEGER},
</if>
<if test="editionYear != null">
edition_year = #{editionYear,jdbcType=VARCHAR},
</if>
<if test="edition != null">
edition = #{edition,jdbcType=INTEGER},
</if>
<if test="createTime != null">
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
update_time = #{updateTime,jdbcType=TIMESTAMP},
</if>
<if test="updateUser != null">
update_user = #{updateUser,jdbcType=INTEGER},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<update id="updateByPrimaryKey" parameterType="com.pcloud.book.book.entity.BookEdition">
update book_edition
set book_id = #{bookId,jdbcType=BIGINT},
edition_year = #{editionYear,jdbcType=VARCHAR},
edition = #{edition,jdbcType=INTEGER},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP},
update_user = #{updateUser,jdbcType=INTEGER}
where id = #{id,jdbcType=BIGINT}
</update>
<select id="projectEditionAnalysis" parameterType="Long" resultType="com.pcloud.book.book.dto.EditionAnalysisListVO">
select
edition edition,
edition_year editionDate,
ifnull(count(1),0) projectCount
from book_edition
where update_user=#{adviserId}
GROUP BY edition,edition_year
ORDER BY edition_year
</select>
<select id="projectCountSorted" parameterType="Long" resultType="com.pcloud.book.book.dto.EditionAnalysisListVO">
select
edition edition,
edition_year editionDate,
ifnull(count(1),0) projectCount
from book_edition
where update_user=#{adviserId}
GROUP BY edition_year
ORDER BY projectCount desc
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pcloud.book.book.dao.impl.EdtionRecordDaoImpl">
<resultMap id="BaseResultMap" type="com.pcloud.book.book.entity.EditionRecord">
<constructor>
<idArg column="id" javaType="java.lang.Long" jdbcType="BIGINT" />
<arg column="book_id" javaType="java.lang.Long" jdbcType="BIGINT" />
<arg column="edition_year" javaType="java.lang.String" jdbcType="VARCHAR" />
<arg column="edition" javaType="java.lang.Integer" jdbcType="INTEGER" />
<arg column="create_time" javaType="java.util.Date" jdbcType="TIMESTAMP" />
<arg column="update_time" javaType="java.util.Date" jdbcType="TIMESTAMP" />
<arg column="update_user" javaType="java.lang.Integer" jdbcType="INTEGER" />
</constructor>
</resultMap>
<sql id="Base_Column_List">
id, book_id, edition_year, edition, create_time, update_time, update_user
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from edition_record
where id = #{id,jdbcType=BIGINT}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete from edition_record
where id = #{id,jdbcType=BIGINT}
</delete>
<insert id="insert" parameterType="com.pcloud.book.book.entity.EditionRecord">
insert into edition_record (id, book_id, edition_year,
edition, create_time, update_time,
update_user)
values (#{id,jdbcType=BIGINT}, #{bookId,jdbcType=BIGINT}, #{editionYear,jdbcType=VARCHAR},
#{edition,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP},
#{updateUser,jdbcType=INTEGER})
</insert>
<insert id="batchInsert" parameterType="list">
insert into edition_record (book_id, edition_year,
edition, create_time, update_time,update_user
)
values
<foreach collection="list" index="index" item="item" separator=",">
(#{item.bookId,jdbcType=BIGINT}, #{item.editionYear,jdbcType=VARCHAR},
#{item.edition,jdbcType=INTEGER}, now(),now(),#{item.updateUser}
)
</foreach>
</insert>
<insert id="insertSelective" parameterType="com.pcloud.book.book.entity.EditionRecord">
insert into edition_record
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="bookId != null">
book_id,
</if>
<if test="editionYear != null">
edition_year,
</if>
<if test="edition != null">
edition,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="updateTime != null">
update_time,
</if>
<if test="updateUser != null">
update_user,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=BIGINT},
</if>
<if test="bookId != null">
#{bookId,jdbcType=INTEGER},
</if>
<if test="editionYear != null">
#{editionYear,jdbcType=VARCHAR},
</if>
<if test="edition != null">
#{edition,jdbcType=INTEGER},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
#{updateTime,jdbcType=TIMESTAMP},
</if>
<if test="updateUser != null">
#{updateUser,jdbcType=INTEGER},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.pcloud.book.book.entity.EditionRecord">
update edition_record
<set>
<if test="bookId != null">
book_id = #{bookId,jdbcType=INTEGER},
</if>
<if test="editionYear != null">
edition_year = #{editionYear,jdbcType=VARCHAR},
</if>
<if test="edition != null">
edition = #{edition,jdbcType=INTEGER},
</if>
<if test="createTime != null">
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
update_time = #{updateTime,jdbcType=TIMESTAMP},
</if>
<if test="updateUser != null">
update_user = #{updateUser,jdbcType=INTEGER},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<update id="updateByPrimaryKey" parameterType="com.pcloud.book.book.entity.EditionRecord">
update edition_record
set book_id = #{bookId,jdbcType=BIGINT},
edition_year = #{editionYear,jdbcType=VARCHAR},
edition = #{edition,jdbcType=INTEGER},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP},
update_user = #{updateUser,jdbcType=INTEGER}
where id = #{id,jdbcType=BIGINT}
</update>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment