Commit d2c3236f by 郑永强

feat: [1004702] RAYS编辑端创建并关联ERP书刊

parent dd395ed1
......@@ -804,6 +804,10 @@ public class BookDto extends BaseDto {
*/
private Integer isApproval;
/**
* 是否关联erp
*/
private Integer isRelate;
/**
* 排序值
*/
private Integer seq;
......@@ -811,6 +815,10 @@ public class BookDto extends BaseDto {
* 是否有书籍目录开启权限
*/
private Boolean openCatalogPermission;
/**
* ERP单号
*/
private List<String> erpNumbers;
public Boolean getOpenCatalogPermission() {
return openCatalogPermission;
......@@ -845,6 +853,14 @@ public class BookDto extends BaseDto {
this.isApproval = isApproval;
}
public Integer getIsRelate() {
return isRelate;
}
public void setIsRelate(Integer isRelate) {
this.isRelate = isRelate;
}
private String qrcodeType;
public String getQrcodeType() {
......@@ -2278,6 +2294,14 @@ public class BookDto extends BaseDto {
this.adviserPwd = adviserPwd;
}
public List<String> getErpNumbers() {
return erpNumbers;
}
public void setErpNumbers(List<String> erpNumbers) {
this.erpNumbers = erpNumbers;
}
@Override
public String toString() {
return "BookDto{" +
......
package com.pcloud.book.book.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
@NoArgsConstructor
public class ProjectOrderSheetDTO {
private Long id;
private Long projectId;
private Long orderSheetId;
private String projectNumber;
@ApiModelProperty("erp编号")
private String erpNumber;
@ApiModelProperty("出版物名称")
private String bookName;
@ApiModelProperty("关联RAYS书刊ID")
private Integer raysBookId;
@ApiModelProperty("RAYS编辑ID")
private Integer raysAdviserId;
@ApiModelProperty("关联RAYS渠道ID")
private Integer raysChannelId;
@ApiModelProperty("ISBN")
private String bookIsbn;
@ApiModelProperty("序号")
private String seqNumber;
}
package com.pcloud.book.book.dto;
import lombok.Data;
@Data
public class ProjectRelateVO {
private Long projectId;
private Long raysBookId;
private Long raysAdviserId;
private Long raysChannelId;
}
......@@ -5,6 +5,8 @@ package com.pcloud.book.book.entity;
import com.pcloud.common.entity.BaseEntity;
import java.util.List;
/**
* @描述:书籍实体
* @作者:songx
......@@ -266,6 +268,16 @@ public class Book extends BaseEntity {
*/
private String edition;
/**
* ERP 单号
*/
private String erpNumber;
/**
* 强制更新
*/
private Integer forceUpdateSerialNumber;
public Long getThirdTempletId() {
return thirdTempletId;
}
......@@ -666,6 +678,22 @@ public class Book extends BaseEntity {
this.fromErp = fromErp;
}
public String getErpNumber() {
return erpNumber;
}
public void setErpNumber(String erpNumber) {
this.erpNumber = erpNumber;
}
public Integer getForceUpdateSerialNumber() {
return forceUpdateSerialNumber;
}
public void setForceUpdateSerialNumber(Integer forceUpdateSerialNumber) {
this.forceUpdateSerialNumber = forceUpdateSerialNumber;
}
@Override
public String toString() {
return "Book{" +
......@@ -705,6 +733,7 @@ public class Book extends BaseEntity {
", isBookGroup=" + isBookGroup +
", bookGroupId=" + bookGroupId +
", secondTempletId=" + secondTempletId +
", thirdTempletId=" + thirdTempletId +
", secondTypeCode='" + secondTypeCode + '\'' +
", graLabelId=" + graLabelId +
", subLabelId=" + subLabelId +
......@@ -714,6 +743,12 @@ public class Book extends BaseEntity {
", depLabelId=" + depLabelId +
", purLabelId=" + purLabelId +
", volLabelId=" + volLabelId +
", uniqueNumber='" + uniqueNumber + '\'' +
", bookAdviserId=" + bookAdviserId +
", fromErp=" + fromErp +
", edition='" + edition + '\'' +
", erpNumber='" + erpNumber + '\'' +
", forceUpdateSerialNumber=" + forceUpdateSerialNumber +
'}';
}
}
......@@ -11,6 +11,7 @@ import com.pcloud.book.book.vo.*;
import com.pcloud.book.book.vo.request.BookInfo4ScanCountRequestVO;
import com.pcloud.book.book.vo.request.BookQualifyInfoVO;
import com.pcloud.book.book.vo.request.BookSearchParamVO;
import com.pcloud.book.book.vo.request.SyncRelateDataToRaysVO;
import com.pcloud.book.book.vo.request.UpdateBookRobotProcessDto;
import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.common.exceptions.BizException;
......@@ -783,4 +784,9 @@ public interface BookBiz {
*/
Map<String, Object> getRaysHomePageStatistics(Long adviserId);
/**
* 同步数据
* @param vo
*/
void syncRelateDataToRays(SyncRelateDataToRaysVO vo);
}
......@@ -3114,24 +3114,12 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
if(CollUtil.isEmpty(relateRaysBookList)){
return;
}
List<RelateRaysBookApprovalVO> approvalList = CollUtil.toList();
List<RelateRaysBookApprovalVO> nonApprovalList = CollUtil.toList();
for (RelateRaysBookApprovalVO vo : relateRaysBookList) {
if(vo.getIsApproval() == null){
continue;
}
if(YesOrNoNumEnum.YES.getValue() == vo.getIsApproval()){
approvalList.add(vo);
} else {
nonApprovalList.add(vo);
vo.setIsApproval(0);
}
}
if(CollUtil.isNotEmpty(approvalList)){
bookAdviserDao.updateRaysField4Erp(approvalList, YesOrNoNumEnum.YES.getValue());
}
if(CollUtil.isNotEmpty(nonApprovalList)){
bookAdviserDao.updateRaysField4Erp(nonApprovalList, YesOrNoNumEnum.NO.getValue());
}
bookAdviserDao.updateRaysField4Erp(relateRaysBookList);
}
@Override
......
......@@ -3,9 +3,11 @@
*/
package com.pcloud.book.book.biz.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Lists;
......@@ -40,6 +42,7 @@ import com.pcloud.book.book.vo.*;
import com.pcloud.book.book.vo.request.BookInfo4ScanCountRequestVO;
import com.pcloud.book.book.vo.request.BookQualifyInfoVO;
import com.pcloud.book.book.vo.request.BookSearchParamVO;
import com.pcloud.book.book.vo.request.SyncRelateDataToRaysVO;
import com.pcloud.book.book.vo.request.UpdateBookRobotProcessDto;
import com.pcloud.book.consumer.analysisengine.SceneRecordConsr;
import com.pcloud.book.consumer.app.AppConsr;
......@@ -362,6 +365,17 @@ public class BookBizImpl implements BookBiz {
if (StringUtil.isEmpty(book.getSerialNumber())) {
book.setSerialNumber(null);
}
if(StrUtil.isNotEmpty(book.getErpNumber())){
// 根据ERP单号获取书刊信息
ProjectOrderSheetDTO dto = erpConsr.getByErpNumber(book.getErpNumber());
// 判断是否关联
if(dto == null){
throw new BookBizException(BookBizException.PARAM_IS_NULL, "未找到与ERP单号相同的书刊信息");
}
if(dto.getRaysBookId() != null){
throw new BookBizException(BookBizException.PARAM_IS_NULL, "ERP单号已关联其它立项书刊,请输入其它ERP单号");
}
}
}
/**
......@@ -699,6 +713,7 @@ public class BookBizImpl implements BookBiz {
// 设置渠道信息
bookDto.setChannelId(channelId);
bookDto.setChannelName(channelConsr.getNameById(channelId));
bookDto.setAdviserId(adviserId);
// 设置主编辑信息
Long mainAdviserId = bookAdviserBiz.getMainAdviserId(bookId, channelId);
bookSet.setMainEditorInfo(bookDto, mainAdviserId);
......@@ -714,6 +729,8 @@ public class BookBizImpl implements BookBiz {
bookDto.setQrcodeCount(qrcodeSceneConsr.getBookQRCountByMap(adviserId, channelId, bookId));
//设置书刊是否是小睿书(开启小睿流程)
bookSet.setOpenRobotProcess(new ArrayList<>(Arrays.asList(bookDto)));
// 尝试加载ERP单号
bookSet.setErpNumbers(bookDto);
// 异步发起书刊推荐超级作者资源计算
BookDto finalBookDto = bookDto;
......@@ -1665,9 +1682,36 @@ public class BookBizImpl implements BookBiz {
//发送编辑任务queue
adviserTaskConsr.sendAdviserTaskQueue(book.getCreatedUser(), AdviserTaskConstants.TargetTypeEnum.BOOK.getValue(),
bookDto.getBookId(), AdviserTaskConstants.OperateTypeEnum.CREATE_BOOK.getValue());
// 与ERP进行关联
this.relationBook4Erp(book);
return bookDto;
}
/**
* 与ERP进行关联
*/
private void relationBook4Erp(Book book) {
if(StrUtil.isEmpty(book.getErpNumber())){
return;
}
// 根据ERP单号获取书刊信息
ProjectOrderSheetDTO dto = erpConsr.getByErpNumber(book.getErpNumber());
// 判断是否关联
if(dto == null || dto.getRaysBookId() != null){
return;
}
// 调用erp接口进行关联
ProjectRelateVO vo = new ProjectRelateVO();
vo.setProjectId(dto.getProjectId());
vo.setRaysBookId(book.getBookId());
vo.setRaysAdviserId(book.getCreatedUser());
vo.setRaysChannelId(book.getChannelId());
Integer changeCount = erpConsr.relateRaysBook(vo);
if(changeCount == null && changeCount <= 0){
LOGGER.info("relationBook4Erp:关联ERP项目可能未成功;book:" + book);
}
}
/**
* 修改图书与图书类型
......@@ -4268,4 +4312,19 @@ public class BookBizImpl implements BookBiz {
.put("appCount", appCount)
.build();
}
@Override
public void syncRelateDataToRays(SyncRelateDataToRaysVO vo) {
if(vo == null || vo.getBookId() == null || vo.getAdviserId() == null || vo.getChannelId() == null){
throw new BizException(BizException.PARAM_DELETION.getCode(), "参数不能为空");
}
// 判断isbn是否重复
BookDto bookDto = bookDao.getByIsbnAndSnum(vo.getIsbn(), vo.getSerialNumber());
if(bookDto != null && !vo.getBookId().equals(bookDto.getBookId())){
throw new BizException(BizException.PARAM_DELETION.getCode(), "该书已被其他编辑创建,请先修改该书序号再同步");
}
Book book = BeanUtil.copyProperties(vo, Book.class);
book.setForceUpdateSerialNumber(YesOrNoEnums.YES.getValue());
bookDao.updateByAdviser(book);
}
}
......@@ -328,7 +328,7 @@ public interface BookAdviserDao extends BaseDao<BookAdviser> {
Map<Long, BookDto> getBookMapByAdviserBookIds(List<Long> adviserBookIds);
int updateRaysField4Erp(List<RelateRaysBookApprovalVO> approvalList, Integer isApproval);
int updateRaysField4Erp(List<RelateRaysBookApprovalVO> approvalList);
Integer hasApprovalBook4Adviser(Long adviserId);
}
......@@ -437,9 +437,8 @@ public class BookAdviserDaoImpl extends BaseDaoImpl<BookAdviser> implements Book
}
@Override
public int updateRaysField4Erp(List<RelateRaysBookApprovalVO> approvalList, Integer isApproval) {
public int updateRaysField4Erp(List<RelateRaysBookApprovalVO> approvalList) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("isApproval",isApproval);
paramMap.put("approvalList", approvalList);
return getSessionTemplate().update(getStatement("updateRaysField4Erp"), paramMap);
}
......
......@@ -159,6 +159,7 @@ public interface BookFacade {
@ApiImplicitParam(name = "hasQrcode", value = "只看有二维码", dataType = "int", paramType = "query"),
@ApiImplicitParam(name = "isPrint", value = "是否已下印", dataType = "Boolean", paramType = "query"),
@ApiImplicitParam(name = "isApproval", value = "是否已立项", dataType = "Boolean", paramType = "query"),
@ApiImplicitParam(name = "isRelate", value = "是否已关联ERP", dataType = "Boolean", paramType = "query"),
@ApiImplicitParam(name = "minimumSupport", value = "是否保底支持", dataType = "int", paramType = "query"),
@ApiImplicitParam(name = "proLabelId", value = "专业", dataType = "int", paramType = "query"),
@ApiImplicitParam(name = "depLabelId", value = "深度", dataType = "int", paramType = "query"),
......@@ -187,6 +188,7 @@ public interface BookFacade {
@RequestParam(value = "hasQrcode",required = false) Integer hasQrcode,
@RequestParam(value = "isPrint", required = false) Boolean isPrint,
@RequestParam(value = "isApproval", required = false) Boolean isApproval,
@RequestParam(value = "isRelate", required = false) Boolean isRelate,
@RequestParam(value = "minimumSupport", required = false) Integer minimumSupport,
@RequestParam(value = "proLabelId", required = false) Integer proLabelId,
@RequestParam(value = "depLabelId", required = false) Integer depLabelId,
......
......@@ -17,6 +17,7 @@ import com.pcloud.book.book.vo.*;
import com.pcloud.book.book.vo.request.BookInfo4ScanCountRequestVO;
import com.pcloud.book.book.vo.request.BookQualifyInfoVO;
import com.pcloud.book.book.vo.request.BookSearchParamVO;
import com.pcloud.book.book.vo.request.SyncRelateDataToRaysVO;
import com.pcloud.book.book.vo.request.UpdateBookRobotProcessDto;
import com.pcloud.book.elasticsearch7.search.domain.dto.param.PlatformSearchDto;
import com.pcloud.common.core.constant.SystemCode;
......@@ -278,6 +279,7 @@ public class BookFacadeImpl implements BookFacade {
@RequestParam(value = "hasQrcode", required = false) Integer hasQrcode,
@RequestParam(value = "isPrint", required = false) Boolean isPrint,
@RequestParam(value = "isApproval", required = false) Boolean isApproval,
@RequestParam(value = "isRelate", required = false) Boolean isRelate,
@RequestParam(value = "minimumSupport", required = false) Integer minimumSupport,
@RequestParam(value = "proLabelId", required = false) Integer proLabelId,
@RequestParam(value = "depLabelId", required = false) Integer depLabelId,
......@@ -320,6 +322,7 @@ public class BookFacadeImpl implements BookFacade {
paramMap.put("thirdTempletIds", Optional.ofNullable(paramMap.get("thirdTempletId")).map(Lists::newArrayList).orElse(Lists.newArrayList()));
paramMap.put("isPrint", isPrint);
paramMap.put("isApproval", isApproval);
paramMap.put("isRelate", isRelate);
paramMap.put("minimumSupport", minimumSupport);
paramMap.put("proLabelId", proLabelId);
paramMap.put("depLabelId", depLabelId);
......@@ -1377,4 +1380,11 @@ public class BookFacadeImpl implements BookFacade {
Long adviserId = (Long) SessionUtil.getVlaue(token,SessionUtil.PARTY_ID);
return new ResponseDto<>(bookBiz.getRaysHomePageStatistics(adviserId));
}
@ApiOperation("更新字段")
@PostMapping("syncRelateDataToRays")
public ResponseDto<?> syncRelateDataToRays(@RequestBody SyncRelateDataToRaysVO vo) {
bookBiz.syncRelateDataToRays(vo);
return new ResponseDto<>();
}
}
......@@ -41,6 +41,7 @@ import com.pcloud.book.consumer.app.AssistTempletConsr;
import com.pcloud.book.consumer.channel.QrcodeSceneConsr;
import com.pcloud.book.consumer.common.ExportConsr;
import com.pcloud.book.consumer.content.ResourceConsr;
import com.pcloud.book.consumer.erp.ErpConsr;
import com.pcloud.book.consumer.message.MessageConsr;
import com.pcloud.book.consumer.resource.ProductConsr;
import com.pcloud.book.consumer.settlement.BookConsr;
......@@ -194,6 +195,8 @@ public class BookSet {
private List<Object> openRobotProcess;
@Autowired
private ResourcePageBiz resourcePageBiz;
@Autowired
private ErpConsr erpConsr;
/**
* 检验书号是否合法,包括ISSN,ISBN,CSSN
......@@ -2033,4 +2036,14 @@ public class BookSet {
}
}
/**
* 加载ERP单号
*/
public void setErpNumbers(BookDto bookDto) {
if(bookDto == null || bookDto.getBookId() == null || bookDto.getChannelId() == null || bookDto.getAdviserId() == null){
return;
}
List<String> erpNumbers = erpConsr.getErpNumbers(bookDto.getBookId(), bookDto.getChannelId(), bookDto.getAdviserId());
bookDto.setErpNumbers(erpNumbers);
}
}
......@@ -18,4 +18,6 @@ public class RelateRaysBookApprovalVO {
@ApiModelProperty("是否立项;0:未立项;1:已立项;")
private Integer isApproval;
@ApiModelProperty("是否关联;0:取关;1:关联;")
private Integer isRelate;
}
package com.pcloud.book.book.vo.request;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SyncRelateDataToRaysVO {
private Long bookId;
private Long adviserId;
private Long channelId;
private String bookName;
private String isbn;
private String serialNumber;
private String publish;
private BigDecimal bookPrice;
}
......@@ -9,6 +9,8 @@ import com.pcloud.book.book.dto.CreateBookResultVO;
import com.pcloud.book.book.dto.ERPPublishNumDTO;
import com.pcloud.book.book.dto.ErpBookApprovalDTO;
import com.pcloud.book.book.dto.ErpBookInfoDTO;
import com.pcloud.book.book.dto.ProjectOrderSheetDTO;
import com.pcloud.book.book.dto.ProjectRelateVO;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.utils.ListUtils;
......@@ -268,4 +270,60 @@ public class ErpConsr {
}
return new HashMap<>();
}
@ParamLog("根据isbn获取erp书刊信息")
public ProjectOrderSheetDTO getByErpNumber(String erpNumber) throws BizException {
Map<String, String> querys = new HashMap<>();
querys.put("erpNumber", erpNumber);
try {
HttpResponse response = HttpUtils.doGet(domain, "/erp/project4Third/getByErpNumber", "GET", new HashMap<>(), querys);
String entityString = EntityUtils.toString(response.getEntity());
JSONObject jsonObject = JSONObject.parseObject(entityString);
if(jsonObject.getInteger("errCode") != 0){
throw new BizException(jsonObject.getString("message"));
}
return JSONObject.parseObject(jsonObject.getString("data"), ProjectOrderSheetDTO.class);
} catch (Exception e){
LOGGER.error("根据isbn获取erp书刊信息[project4Third.getByErpNumber]:" + e.getMessage(), e);
throw new BookBizException(BookBizException.INVOKE_CONTENT_ERROR, "根据isbn获取erp书刊信息失败~!");
}
}
@ParamLog("获取ERP单号")
public List<String> getErpNumbers(Long bookId, Long channelId, Long adviserId) {
Map<String, String> querys = new HashMap<>();
querys.put("bookId", bookId.toString());
querys.put("channelId", channelId.toString());
querys.put("adviserId", adviserId.toString());
try {
HttpResponse response = HttpUtils.doGet(domain, "/erp/project4Third/getErpNumbers", "GET", new HashMap<>(), querys);
String entityString = EntityUtils.toString(response.getEntity());
JSONObject jsonObject = JSONObject.parseObject(entityString);
if(jsonObject.getInteger("errCode") != 0){
throw new BizException(jsonObject.getString("message"));
}
return JSONObject.parseArray(jsonObject.getJSONArray("data").toJSONString(), String.class);
} catch (Exception e){
LOGGER.error("根据isbn获取erp书刊信息[project4Third.getByErpNumber]:" + e.getMessage(), e);
}
return CollUtil.toList();
}
@ParamLog("关联RAYS书刊")
public Integer relateRaysBook(ProjectRelateVO vo) throws BizException {
try {
Map<String, String> headers = new HashMap<>();
headers.put("Content-Type", "application/json");
HttpResponse response = HttpUtils.doPost(domain, "/erp/project4Third/relateRaysBook", "POST", headers, new HashMap<>(), JSONObject.toJSONString(vo));
String entityString = EntityUtils.toString(response.getEntity());
JSONObject jsonObject = JSONObject.parseObject(entityString);
if(jsonObject.getInteger("errCode") != 0){
throw new BizException(jsonObject.getString("message"));
}
return jsonObject.getInteger("data");
} catch (Exception e){
LOGGER.error("关联RAYS书刊[project4Third.relateRaysBook]:" + e.getMessage(), e);
throw new BookBizException(BookBizException.INVOKE_CONTENT_ERROR, "关联RAYS书刊失败~!");
}
}
}
......@@ -74,6 +74,7 @@
<result column="is_send_mini_url" property="isSendMiniUrl" jdbcType="BIT" />
<result column="is_open_catalog" property="isOpenCatalog" jdbcType="BIT" />
<result column="is_approval" property="isApproval" jdbcType="BIT" />
<result column="is_relate" property="isRelate" jdbcType="BIT" />
</resultMap>
<resultMap id="bookListPageMap" type="bookDto" extends ="bookMap">
......@@ -315,7 +316,7 @@
B.BOOK_ID, B.TYPE_CODE,B.ISBN, B.BOOK_NAME,T.TYPE_NAME, B.REMARK, B.AUTHOR, B.PUBLISH,
B.PUBLISH_DATE, B.COVER_IMG, B.AD_IMG, B.DETAIL, B.`VERSION`,B.BOOK_PRICE,B.ISSN,B.SERIAL_NUMBER,BA.IS_MAIN_EDITOR,
IF(ISNULL(BF.BOOK_FUND_ID),0,1) IS_FUND_SUPPORT,START_TIME,END_TIME,BA.TEMPLET_ID,BA.SECOND_TEMPLET_ID,BA.third_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.is_relate,
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,b.edition,BA.is_send_mini_url,
BA.is_open_catalog ,BA.is_approval
......@@ -530,7 +531,7 @@
B.AUTHOR, B.PUBLISH, B.PUBLISH_DATE, B.COVER_IMG, B.ORIGIN_NAME, B.BOOK_PRICE, B.ISSN, B.BOOK_NUM, B.SERIAL_NUMBER,
IF(ISNULL(BF.BOOK_FUND_ID),0,1) IS_FUND_SUPPORT,A.TEMPLET_ID, A.LAST_MODIFIED_DATE,
A.BOOK_ADVISER_ID,I.BOOK_STATUS, CONCAT('BK',A.BOOK_ID) uniqueNumber, if(G.ID IS NULL, 0, 1) isBookGroup, A.IS_PRINT isPrint,
G.id BOOK_GROUP_ID, G.group_qrcode_url groupQrcodeUrl,G.group_qrcode_name groupQrcodeName,A.is_approval,
G.id BOOK_GROUP_ID, G.group_qrcode_url groupQrcodeUrl,G.group_qrcode_name groupQrcodeName,A.is_approval, A.is_relate,
G.join_group_type,G.single_group singleGroup, G.related_book_group_id relatedBookGroupId,
IF(ISNULL(s.id),0,1) minimumSupport, A.is_open_catalog
FROM
......@@ -624,6 +625,9 @@
<if test="isApproval != null">
AND A.is_approval = #{isApproval}
</if>
<if test="isRelate != null">
AND A.is_relate = #{isRelate}
</if>
<if test="bookIds != null">
<foreach collection="bookIds" index="index" item="item" open="and (" separator="or" close=")">
<if test="item.bookId != null and item.channelId != null">
......@@ -1658,7 +1662,7 @@
<if test="lastModifiedUser != null">
LAST_MODIFIED_USER = #{lastModifiedUser, jdbcType=BIGINT},
</if>
<if test="serialNumber != null">
<if test="serialNumber != null or (forceUpdateSerialNumber != null and forceUpdateSerialNumber == 1)">
SERIAL_NUMBER = #{serialNumber, jdbcType=VARCHAR},
</if>
<if test="isbn != null">
......
......@@ -1222,10 +1222,9 @@
</select>
<update id="updateRaysField4Erp" parameterType="map">
UPDATE book_adviser SET is_approval = #{isApproval}, LAST_MODIFIED_DATE = NOW()
WHERE
<foreach collection="approvalList" item="item" open="(" close=")" separator=" OR ">
book_id = #{item.bookId} AND adviser_id = #{item.adviserId} AND channel_id = #{item.channelId}
<foreach collection="approvalList" item="item" separator="; ">
UPDATE book_adviser SET is_approval = #{item.isApproval}, is_relate = #{item.isRelate}, LAST_MODIFIED_DATE = NOW()
WHERE book_id = #{item.bookId} AND adviser_id = #{item.adviserId} AND channel_id = #{item.channelId}
</foreach>
</update>
......
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