From 4464dc62e8dc168faa6625e50033183a2e0af7ea Mon Sep 17 00:00:00 2001 From: wangfukang <15630117759@163.com> Date: Tue, 15 Oct 2024 22:16:17 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=A9=E6=B5=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hiver-admin/test-output/test-report.html | 16 ++--- .../hiver/core/common/utils/SecurityUtil.java | 15 +++++ .../cc/hiver/core/entity/LogiticsCompany.java | 7 +++ .../service/LogisticsAddressBookService.java | 11 ++++ .../impl/LogisticsAddressBookServiceImpl.java | 35 +++++++++-- .../vo/LogisticsAddressBookQueryVo.java | 3 + .../LogisticsCompanyRouteServiceImpl.java | 8 +++ .../vo/LogisticsCompanyRouteQueryVo.java | 6 ++ .../controller/LogisticsOrderController.java | 29 ++++++--- .../logisticsorder/entity/LogisticsOrder.java | 8 +++ .../impl/LogisticsOrderServiceImpl.java | 49 ++++++++------- .../mapper/LogisticsStationMapper.java | 9 +++ .../service/LogisticsStationService.java | 9 +++ .../impl/LogisticsStationServiceImpl.java | 12 ++++ .../mapper/LogisticsAddressBookMapper.xml | 3 +- .../mapper/LogisticsCompanyRouteMapper.xml | 8 +++ .../resources/mapper/LogisticsOrderMapper.xml | 4 ++ .../mapper/LogisticsStationMapper.xml | 15 +++++ .../mall/controller/LcomAuthController.java | 16 ++++- .../impl/PurchaseOcrPictureServiceImpl.java | 61 ++++++++++++------- .../purchaseocr/vo/LogisticsOrderOfAiVo.java | 4 ++ 21 files changed, 262 insertions(+), 66 deletions(-) diff --git a/hiver-admin/test-output/test-report.html b/hiver-admin/test-output/test-report.html index 944409fd..4eaae2fe 100644 --- a/hiver-admin/test-output/test-report.html +++ b/hiver-admin/test-output/test-report.html @@ -35,7 +35,7 @@ Hiver
  • -十月 13, 2024 00:07:47 +十月 15, 2024 22:13:10
  • @@ -84,7 +84,7 @@

    passTest

    -

    00:07:47 上午 / 0.017 secs

    +

    22:13:11 下午 / 0.016 secs

    @@ -92,9 +92,9 @@
    #test-id=1
    passTest
    -10.13.2024 00:07:47 -10.13.2024 00:07:47 -0.017 secs +10.15.2024 22:13:11 +10.15.2024 22:13:11 +0.016 secs
    @@ -104,7 +104,7 @@ Pass - 0:07:47 + 22:13:11 Test passed @@ -128,13 +128,13 @@

    Started

    -

    十月 13, 2024 00:07:47

    +

    十月 15, 2024 22:13:10

    Ended

    -

    十月 13, 2024 00:07:47

    +

    十月 15, 2024 22:13:11

    diff --git a/hiver-core/src/main/java/cc/hiver/core/common/utils/SecurityUtil.java b/hiver-core/src/main/java/cc/hiver/core/common/utils/SecurityUtil.java index c8f4adbb..e4c9b80b 100644 --- a/hiver-core/src/main/java/cc/hiver/core/common/utils/SecurityUtil.java +++ b/hiver-core/src/main/java/cc/hiver/core/common/utils/SecurityUtil.java @@ -139,7 +139,9 @@ public class SecurityUtil { // 瑕嗙洊鐗╂祦鍏徃id涓哄綋鍓嶇櫥褰曠殑鐗╂祦鍏徃鍛樺伐id logiticsCompany.setId(logisticsUser.getId()); logiticsCompany.setUsername(logisticsUser.getMobile()); + logiticsCompany.setContacts(logisticsUser.getNickName()); logiticsCompany.setPassword(logisticsUser.getPassword()); + logiticsCompany.setCompanyId(logisticsUser.getCompanyId()); } } // 缂撳瓨 @@ -237,10 +239,20 @@ public class SecurityUtil { final Boolean isValid = new BCryptPasswordEncoder().matches(password, logisticsUser.getPassword()); if (isValid) { final LogiticsCompany logiticsCompany = logiticsCompanyDao.getById(logisticsUser.getCompanyId()); + // 灏嗗憳宸ョ殑淇℃伅灏佽鑷冲叕鍙镐俊鎭腑 + logiticsCompany.setId(logisticsUser.getId()); + logiticsCompany.setPassword(logisticsUser.getPassword()); + logiticsCompany.setUsername(logisticsUser.getMobile()); + logiticsCompany.setCompanyId(logisticsUser.getCompanyId()); logiticsCompanyList.add(logiticsCompany); return logiticsCompanyList; } } + }else{ + // 寰幆灏唅d鐨勫兼斁鍦╟ompanyId涓 + for (LogiticsCompany logiticsCompany : logiticsCompanyList) { + logiticsCompany.setCompanyId(logiticsCompany.getId()); + } } // // 鏍¢獙瀵嗙爜锛屼竴涓佹澘鏈夊涓簵閾虹殑鏃跺欙紝瀵嗙爜涓瀹氭槸涓鏍风殑锛屾墍浠ヨ繖閲屾牎楠屽叾涓竴涓氨琛 @@ -678,11 +690,14 @@ public class SecurityUtil { if(logisticsUser == null){ return null; }else{ + + logiticsCompany = logiticsCompanyDao.getById(logisticsUser.getCompanyId()); // 瑕嗙洊鐗╂祦鍏徃id涓哄綋鍓嶇櫥褰曠殑鐗╂祦鍏徃鍛樺伐id logiticsCompany.setId(logisticsUser.getId()); logiticsCompany.setContacts(logisticsUser.getNickName()); logiticsCompany.setUsername(logisticsUser.getMobile()); logiticsCompany.setPassword(logisticsUser.getPassword()); + logiticsCompany.setCompanyId(logisticsUser.getCompanyId()); } } Boolean saved = false; diff --git a/hiver-core/src/main/java/cc/hiver/core/entity/LogiticsCompany.java b/hiver-core/src/main/java/cc/hiver/core/entity/LogiticsCompany.java index c2e53ee9..726ece89 100644 --- a/hiver-core/src/main/java/cc/hiver/core/entity/LogiticsCompany.java +++ b/hiver-core/src/main/java/cc/hiver/core/entity/LogiticsCompany.java @@ -16,6 +16,7 @@ limitations under the License. package cc.hiver.core.entity; import cc.hiver.core.base.HiverBaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -25,6 +26,7 @@ import org.hibernate.annotations.DynamicUpdate; import javax.persistence.Entity; import javax.persistence.Table; +import javax.persistence.Transient; import java.math.BigDecimal; /** @@ -105,4 +107,9 @@ public class LogiticsCompany extends HiverBaseEntity { @ApiModelProperty(value = "鏄惁鏀寔涓婇棬鍙栬揣锛0锛氬惁锛1锛氭槸") private Integer canToDoor = 0; + @Transient + @TableField(exist = false) + @ApiModelProperty(value = "鐗╂祦鍏徃id") + private String companyId; + } diff --git a/hiver-core/src/main/java/cc/hiver/core/logisticsaddressbook/service/LogisticsAddressBookService.java b/hiver-core/src/main/java/cc/hiver/core/logisticsaddressbook/service/LogisticsAddressBookService.java index 9e95c1b0..7312bd8e 100644 --- a/hiver-core/src/main/java/cc/hiver/core/logisticsaddressbook/service/LogisticsAddressBookService.java +++ b/hiver-core/src/main/java/cc/hiver/core/logisticsaddressbook/service/LogisticsAddressBookService.java @@ -7,6 +7,8 @@ import cn.hutool.json.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Map; + public interface LogisticsAddressBookService extends IService { @@ -23,4 +25,13 @@ public interface LogisticsAddressBookService extends IService + */ + Map getByOrder(LogisticsOrder logisticsOrder); } diff --git a/hiver-core/src/main/java/cc/hiver/core/logisticsaddressbook/service/impl/LogisticsAddressBookServiceImpl.java b/hiver-core/src/main/java/cc/hiver/core/logisticsaddressbook/service/impl/LogisticsAddressBookServiceImpl.java index 5002dd93..b795087c 100644 --- a/hiver-core/src/main/java/cc/hiver/core/logisticsaddressbook/service/impl/LogisticsAddressBookServiceImpl.java +++ b/hiver-core/src/main/java/cc/hiver/core/logisticsaddressbook/service/impl/LogisticsAddressBookServiceImpl.java @@ -16,7 +16,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @ClassName锛歀ogisticsAddressBookServiceImpl @@ -69,8 +71,6 @@ public class LogisticsAddressBookServiceImpl extends ServiceImpl getByOrder(LogisticsOrder logisticsOrder) { + final Map logisticsAddressBookMap = new HashMap<>(); + // 鏍规嵁鍚嶇О銆佺數璇濄佸湴鍧鏌ヨ,姝e父杩欓噷鏄兘鏌ヨ鍒扮殑銆 + // 鍙戣揣浜 + final LambdaQueryWrapper stuQuery = new LambdaQueryWrapper<>(); + stuQuery.eq(LogisticsAddressBook::getShipperOrReceiverName, logisticsOrder.getShipperName()) + .eq(LogisticsAddressBook::getAddressType, 1) + .eq(LogisticsAddressBook::getMobile, logisticsOrder.getShipperMobile()) + .eq(LogisticsAddressBook::getAddressInfo, logisticsOrder.getShipperAddress()); + final LogisticsAddressBook shipperLogisticsAddressBook = getBaseMapper().selectOne(stuQuery); + if(shipperLogisticsAddressBook != null ){ + logisticsAddressBookMap.put("shipperLogisticsAddressBook",shipperLogisticsAddressBook); + } + + // 鏀惰揣浜 + final LambdaQueryWrapper stuQuery2 = new LambdaQueryWrapper<>(); + stuQuery2.eq(LogisticsAddressBook::getShipperOrReceiverName, logisticsOrder.getReceiverName()) + .eq(LogisticsAddressBook::getAddressType, 2) + .eq(LogisticsAddressBook::getMobile, logisticsOrder.getReceiverMobile()) + .eq(LogisticsAddressBook::getAddressInfo, logisticsOrder.getReceiverAddress()); + final LogisticsAddressBook receiverLogisticsAddressBook = getBaseMapper().selectOne(stuQuery2); + + if(receiverLogisticsAddressBook != null ){ + logisticsAddressBookMap.put("receiverLogisticsAddressBook",receiverLogisticsAddressBook); + } + return logisticsAddressBookMap; + } + } diff --git a/hiver-core/src/main/java/cc/hiver/core/logisticsaddressbook/vo/LogisticsAddressBookQueryVo.java b/hiver-core/src/main/java/cc/hiver/core/logisticsaddressbook/vo/LogisticsAddressBookQueryVo.java index a3545586..c41dd45e 100644 --- a/hiver-core/src/main/java/cc/hiver/core/logisticsaddressbook/vo/LogisticsAddressBookQueryVo.java +++ b/hiver-core/src/main/java/cc/hiver/core/logisticsaddressbook/vo/LogisticsAddressBookQueryVo.java @@ -24,5 +24,8 @@ public class LogisticsAddressBookQueryVo extends HiverBasePageQuery { @ApiModelProperty(value = "鍦板潃绫诲瀷 1鍙戣揣鍦板潃淇℃伅 2鏀惰揣鍦板潃淇℃伅") private Integer addressType; + @ApiModelProperty(value = "鐗╂祦鍏徃id") + private String companyId; + private String keyWord; } diff --git a/hiver-core/src/main/java/cc/hiver/core/logisticscompanyroute/service/impl/LogisticsCompanyRouteServiceImpl.java b/hiver-core/src/main/java/cc/hiver/core/logisticscompanyroute/service/impl/LogisticsCompanyRouteServiceImpl.java index 23fdcf06..daa25706 100644 --- a/hiver-core/src/main/java/cc/hiver/core/logisticscompanyroute/service/impl/LogisticsCompanyRouteServiceImpl.java +++ b/hiver-core/src/main/java/cc/hiver/core/logisticscompanyroute/service/impl/LogisticsCompanyRouteServiceImpl.java @@ -4,9 +4,11 @@ import cc.hiver.core.logisticscompanyroute.entity.LogisticsCompanyRoute; import cc.hiver.core.logisticscompanyroute.mapper.LogisticsCompanyRouteMapper; import cc.hiver.core.logisticscompanyroute.service.LogisticsCompanyRouteService; import cc.hiver.core.logisticscompanyroute.vo.LogisticsCompanyRouteQueryVo; +import cc.hiver.core.utils.DateUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -27,12 +29,18 @@ public class LogisticsCompanyRouteServiceImpl extends ServiceImpl getLogisticsCompanyRoutePageList(LogisticsCompanyRouteQueryVo logisticsCompanyRouteQueryVo) { + if(StringUtils.isNotEmpty(logisticsCompanyRouteQueryVo.getEndDate())){ + logisticsCompanyRouteQueryVo.setEndDate(DateUtil.addDay(logisticsCompanyRouteQueryVo.getEndDate(), 1)); + } final Page page = new Page<>(logisticsCompanyRouteQueryVo.getPageNum(), logisticsCompanyRouteQueryVo.getPageSize()); return logisticsCompanyRouteMapper.getLogisticsCompanyRoutePageList(page, logisticsCompanyRouteQueryVo); } @Override public List getLogisticsCompanyRouteListByCompanyId(LogisticsCompanyRouteQueryVo logisticsCompanyRouteQueryVo) { + if(StringUtils.isNotEmpty(logisticsCompanyRouteQueryVo.getEndDate())){ + logisticsCompanyRouteQueryVo.setEndDate(DateUtil.addDay(logisticsCompanyRouteQueryVo.getEndDate(), 1)); + } return logisticsCompanyRouteMapper.getLogisticsCompanyRouteListByCompanyId(logisticsCompanyRouteQueryVo); } } diff --git a/hiver-core/src/main/java/cc/hiver/core/logisticscompanyroute/vo/LogisticsCompanyRouteQueryVo.java b/hiver-core/src/main/java/cc/hiver/core/logisticscompanyroute/vo/LogisticsCompanyRouteQueryVo.java index b0ca69b9..a44bcd9e 100644 --- a/hiver-core/src/main/java/cc/hiver/core/logisticscompanyroute/vo/LogisticsCompanyRouteQueryVo.java +++ b/hiver-core/src/main/java/cc/hiver/core/logisticscompanyroute/vo/LogisticsCompanyRouteQueryVo.java @@ -26,4 +26,10 @@ public class LogisticsCompanyRouteQueryVo extends HiverBasePageQuery { @ApiModelProperty(value = "绾胯矾鍚嶇О") private String circuitName; + + @ApiModelProperty(value = "寮濮嬫椂闂") + private String startDate; + + @ApiModelProperty(value = "缁撴潫鏃堕棿") + private String endDate; } diff --git a/hiver-core/src/main/java/cc/hiver/core/logisticsorder/controller/LogisticsOrderController.java b/hiver-core/src/main/java/cc/hiver/core/logisticsorder/controller/LogisticsOrderController.java index e6cd55cf..948ca77d 100644 --- a/hiver-core/src/main/java/cc/hiver/core/logisticsorder/controller/LogisticsOrderController.java +++ b/hiver-core/src/main/java/cc/hiver/core/logisticsorder/controller/LogisticsOrderController.java @@ -5,6 +5,7 @@ import cc.hiver.core.common.utils.ResultUtil; import cc.hiver.core.common.utils.SecurityUtil; import cc.hiver.core.common.vo.Result; import cc.hiver.core.entity.LogiticsCompany; +import cc.hiver.core.logisticsaddressbook.entity.LogisticsAddressBook; import cc.hiver.core.logisticsaddressbook.service.LogisticsAddressBookService; import cc.hiver.core.logisticsorder.entity.LogisticsOrder; import cc.hiver.core.logisticsorder.entity.LogisticsOrderChangeLog; @@ -25,6 +26,7 @@ import org.springframework.web.bind.annotation.*; import java.util.Date; import java.util.List; +import java.util.Map; /** * 鐗╂祦璁㈠崟鎺у埗鍣 @@ -63,16 +65,25 @@ public class LogisticsOrderController { } logisticsOrder.setOrderNumber(orderNumber); // 璁剧疆鍒涘缓浜哄鍚 - final LogiticsCompany logiticsCompany = securityUtil.getCurrCompany(); - logisticsOrder.setCreateBy(logiticsCompany.getId()); - logisticsOrder.setCreateByName(logiticsCompany.getContacts()); - final boolean b = logisticsOrderService.saveOrUpdate(logisticsOrder); - if (b) { - //淇濆瓨鏀跺彂璐т汉鍦板潃绨 - logisticsAddressBookService.saveLogisticsAddressBook(logisticsOrder); + final LogiticsCompany logiticsCompany = securityUtil.getCurrCompany(); + logisticsOrder.setCreateBy(logiticsCompany.getId()); + logisticsOrder.setCreateByName(logiticsCompany.getContacts()); + // 20241015 淇濆瓨鏀跺彂璐т汉鍦板潃绨匡紝鍏堜繚瀛樺湴鍧绨匡紝鏂逛究鍚庤竟鑾峰彇鏀跺彂璐т汉id + boolean b = logisticsAddressBookService.saveLogisticsAddressBook(logisticsOrder); + if(b){ + // 鑾峰彇鏀惰揣浜篿d + Map logisticsAddressBook = logisticsAddressBookService.getByOrder(logisticsOrder); + if(logisticsAddressBook.containsKey("shipperLogisticsAddressBook")){ + logisticsOrder.setShipperId(logisticsAddressBook.get("shipperLogisticsAddressBook").getId()); + } + + if(logisticsAddressBook.containsKey("receiverLogisticsAddressBook")){ + logisticsOrder.setReceiverId(logisticsAddressBook.get("receiverLogisticsAddressBook").getId()); + } + logisticsOrderService.saveOrUpdate(logisticsOrder); return ResultUtil.success("淇濆瓨鎴愬姛锛"); - } else { - return ResultUtil.error("淇濆瓨澶辫触锛"); + }else{ + return ResultUtil.success("淇濆瓨澶辫触锛"); } } diff --git a/hiver-core/src/main/java/cc/hiver/core/logisticsorder/entity/LogisticsOrder.java b/hiver-core/src/main/java/cc/hiver/core/logisticsorder/entity/LogisticsOrder.java index 6d4eea97..0ee8746f 100644 --- a/hiver-core/src/main/java/cc/hiver/core/logisticsorder/entity/LogisticsOrder.java +++ b/hiver-core/src/main/java/cc/hiver/core/logisticsorder/entity/LogisticsOrder.java @@ -82,6 +82,10 @@ public class LogisticsOrder{ @ApiModelProperty(value = "绾胯矾鍚嶇О") private String circuitName; + @CompareField(name = "鍙戣揣浜篿d") + @ApiModelProperty(value = "鍙戣揣浜篿d") + private String shipperId; + @CompareField(name = "鍙戣揣浜哄悕绉") @ApiModelProperty(value = "鍙戣揣浜哄悕绉") private String shipperName; @@ -94,6 +98,10 @@ public class LogisticsOrder{ @ApiModelProperty(value = "鍙戣揣鍦板潃") private String shipperAddress; + @CompareField(name = "鏀惰揣浜篿d") + @ApiModelProperty(value = "鏀惰揣浜篿d") + private String receiverId; + @CompareField(name = "鏀惰揣浜哄悕绉") @ApiModelProperty(value = "鏀惰揣浜哄悕绉") private String receiverName; diff --git a/hiver-core/src/main/java/cc/hiver/core/logisticsorder/service/impl/LogisticsOrderServiceImpl.java b/hiver-core/src/main/java/cc/hiver/core/logisticsorder/service/impl/LogisticsOrderServiceImpl.java index d23297e2..f9a8de9c 100644 --- a/hiver-core/src/main/java/cc/hiver/core/logisticsorder/service/impl/LogisticsOrderServiceImpl.java +++ b/hiver-core/src/main/java/cc/hiver/core/logisticsorder/service/impl/LogisticsOrderServiceImpl.java @@ -41,7 +41,7 @@ public class LogisticsOrderServiceImpl extends ServiceImpl getLogisticsOrderPageList(LogisticsOrderQueryVo logisticsOrderQueryVo) { // 濡傛灉鎸夌収鏃堕棿鑼冨洿鏌ヨ锛岀粨鏉熸椂闂村姞1澶 - if(StringUtils.isNotEmpty(logisticsOrderQueryVo.getEndDate())){ + if (StringUtils.isNotEmpty(logisticsOrderQueryVo.getEndDate())) { logisticsOrderQueryVo.setEndDate(DateUtil.addDay(logisticsOrderQueryVo.getEndDate(), 1)); } final Page page = new Page<>(logisticsOrderQueryVo.getPageNum(), logisticsOrderQueryVo.getPageSize()); @@ -53,12 +53,12 @@ public class LogisticsOrderServiceImpl extends ServiceImpl stuQuery = new LambdaQueryWrapper<>(); + final LambdaQueryWrapper stuQuery = new LambdaQueryWrapper<>(); stuQuery.eq(LogisticsOrder::getCompanyId, logisticsOrder.getCompanyId()) .orderByDesc(LogisticsOrder::getCreateTime) - .between(LogisticsOrder::getCreateTime, DateUtil.COMMON.getDateText(new Date())+" 00:00:00", DateUtil.COMMON.getDateText(new Date())+" 23:59:59") + .between(LogisticsOrder::getCreateTime, DateUtil.COMMON.getDateText(new Date()) + " 00:00:00", DateUtil.COMMON.getDateText(new Date()) + " 23:59:59") .last("limit 1"); return getBaseMapper().selectOne(stuQuery); @@ -66,28 +66,29 @@ public class LogisticsOrderServiceImpl extends ServiceImpl getLogisticsOrderChangeLog(String orderId){ - List list = logisticsOrderMapper.getLogisticsOrderChangeLog(orderId); - List logisticsOrderChangeLogVoList = new ArrayList<>(); - if(CollectionUtils.isNotEmpty(list)){ - Gson gson = new Gson(); - for (LogisticsOrderChangeLog logisticsOrderChangeLog : list){ - LogisticsOrderChangeLogVo logisticsOrderChangeLogVo = new LogisticsOrderChangeLogVo(); - LogisticsOrder oldData = gson.fromJson(logisticsOrderChangeLog.getOldData(), LogisticsOrder.class); - LogisticsOrder newData = gson.fromJson(logisticsOrderChangeLog.getNewData(), LogisticsOrder.class); - CompareObjectUtils compareObjectUtils = new CompareObjectUtils<>(); - List diffAttrs = compareObjectUtils.CompareObjWithAnnotation(oldData, newData); + public List getLogisticsOrderChangeLog(String orderId) { + final List list = logisticsOrderMapper.getLogisticsOrderChangeLog(orderId); + final List logisticsOrderChangeLogVoList = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(list)) { + final Gson gson = new Gson(); + for (LogisticsOrderChangeLog logisticsOrderChangeLog : list) { + final LogisticsOrderChangeLogVo logisticsOrderChangeLogVo = new LogisticsOrderChangeLogVo(); + final LogisticsOrder oldData = gson.fromJson(logisticsOrderChangeLog.getOldData(), LogisticsOrder.class); + final LogisticsOrder newData = gson.fromJson(logisticsOrderChangeLog.getNewData(), LogisticsOrder.class); + final CompareObjectUtils compareObjectUtils = new CompareObjectUtils<>(); + final List diffAttrs = compareObjectUtils.CompareObjWithAnnotation(oldData, newData); logisticsOrderChangeLogVo.setOrderId(oldData.getId()); logisticsOrderChangeLogVo.setCreateBy(logisticsOrderChangeLog.getCreateBy()); logisticsOrderChangeLogVo.setCreateByName(logisticsOrderChangeLog.getCreateByName()); @@ -101,20 +102,26 @@ public class LogisticsOrderServiceImpl extends ServiceImpl { * @date 2024/8/28 */ List getLogisticsStationListByCompanyId(@Param("queryParams") LogisticsStationQueryVo logisticsRouteQueryVo); + + /** + * 鏍规嵁绔欑偣鍚嶇О鍖归厤鍒拌揪绔欙紝鏀寔鎷奸煶 + * @author 鐜嬪瘜搴 + * @date 2024/10/15 + * @param logisticsRouteQueryVo + * @return List + */ + List getLogisticsStationListBystationName(@Param("queryParams") LogisticsStationQueryVo logisticsRouteQueryVo); } diff --git a/hiver-core/src/main/java/cc/hiver/core/logisticsstation/service/LogisticsStationService.java b/hiver-core/src/main/java/cc/hiver/core/logisticsstation/service/LogisticsStationService.java index a021cd44..3b20539f 100644 --- a/hiver-core/src/main/java/cc/hiver/core/logisticsstation/service/LogisticsStationService.java +++ b/hiver-core/src/main/java/cc/hiver/core/logisticsstation/service/LogisticsStationService.java @@ -28,4 +28,13 @@ public interface LogisticsStationService extends IService { * @date 2024/8/28 */ List getLogisticsStationListByCompanyId(LogisticsStationQueryVo logisticsRouteQueryVo); + + /** + * 鏍规嵁绔欑偣鍚嶇О鍖归厤鍒拌揪绔欙紝鏀寔鎷奸煶 + * @author 鐜嬪瘜搴 + * @date 2024/10/15 + * @param logisticsRouteQueryVo + * @return List + */ + List getLogisticsStationListBystationName(LogisticsStationQueryVo logisticsRouteQueryVo); } diff --git a/hiver-core/src/main/java/cc/hiver/core/logisticsstation/service/impl/LogisticsStationServiceImpl.java b/hiver-core/src/main/java/cc/hiver/core/logisticsstation/service/impl/LogisticsStationServiceImpl.java index c2464f57..7e05c89a 100644 --- a/hiver-core/src/main/java/cc/hiver/core/logisticsstation/service/impl/LogisticsStationServiceImpl.java +++ b/hiver-core/src/main/java/cc/hiver/core/logisticsstation/service/impl/LogisticsStationServiceImpl.java @@ -44,4 +44,16 @@ public class LogisticsStationServiceImpl extends ServiceImpl getLogisticsStationListByCompanyId(LogisticsStationQueryVo logisticsRouteQueryVo) { return logisticsStationMapper.getLogisticsStationListByCompanyId(logisticsRouteQueryVo); } + + /** + * 鏍规嵁绔欑偣鍚嶇О鍖归厤鍒拌揪绔欙紝鏀寔鎷奸煶 + * @author 鐜嬪瘜搴 + * @date 2024/10/15 + * @param logisticsRouteQueryVo + * @return List + */ + @Override + public List getLogisticsStationListBystationName(LogisticsStationQueryVo logisticsRouteQueryVo) { + return logisticsStationMapper.getLogisticsStationListBystationName(logisticsRouteQueryVo); + } } diff --git a/hiver-core/src/main/resources/mapper/LogisticsAddressBookMapper.xml b/hiver-core/src/main/resources/mapper/LogisticsAddressBookMapper.xml index 53af7e34..7d7e91e5 100644 --- a/hiver-core/src/main/resources/mapper/LogisticsAddressBookMapper.xml +++ b/hiver-core/src/main/resources/mapper/LogisticsAddressBookMapper.xml @@ -162,7 +162,8 @@ t.shipper_or_receiver_name, t.address_type, t.mobile, t.address_info, t.company_id, t.company_name from t_logistics_address_book t - t.address_type = #{queryParams.addressType} + t.company_id = #{queryParams.companyId} + and t.address_type = #{queryParams.addressType} AND ( t.shipper_or_receiver_name LIKE CONCAT( '%', #{queryParams.shipperOrReceiverName}, '%' ) diff --git a/hiver-core/src/main/resources/mapper/LogisticsCompanyRouteMapper.xml b/hiver-core/src/main/resources/mapper/LogisticsCompanyRouteMapper.xml index adeeb93c..c7918950 100644 --- a/hiver-core/src/main/resources/mapper/LogisticsCompanyRouteMapper.xml +++ b/hiver-core/src/main/resources/mapper/LogisticsCompanyRouteMapper.xml @@ -156,6 +156,10 @@ AND t.circuit_name like concat('%',#{queryParams.circuitName},'%') + + + AND t.create_time BETWEEN #{queryParams.startDate} AND #{queryParams.endDate} + ORDER BY t.create_time desc @@ -180,6 +184,10 @@ AND t.circuit_name like concat('%',#{queryParams.circuitName},'%') + + + AND t.create_time BETWEEN #{queryParams.startDate} AND #{queryParams.endDate} + ORDER BY t.create_time desc diff --git a/hiver-core/src/main/resources/mapper/LogisticsOrderMapper.xml b/hiver-core/src/main/resources/mapper/LogisticsOrderMapper.xml index 87980aa8..03c246f7 100644 --- a/hiver-core/src/main/resources/mapper/LogisticsOrderMapper.xml +++ b/hiver-core/src/main/resources/mapper/LogisticsOrderMapper.xml @@ -191,6 +191,10 @@ AND t.arrival_station_id = #{logisticsOrderQueryVo.arrivalStationId} + + + AND t.create_time BETWEEN #{logisticsOrderQueryVo.startDate} AND #{logisticsOrderQueryVo.endDate} + diff --git a/hiver-core/src/main/resources/mapper/LogisticsStationMapper.xml b/hiver-core/src/main/resources/mapper/LogisticsStationMapper.xml index 2c6a4580..1ad5e2ca 100644 --- a/hiver-core/src/main/resources/mapper/LogisticsStationMapper.xml +++ b/hiver-core/src/main/resources/mapper/LogisticsStationMapper.xml @@ -175,4 +175,19 @@ ORDER BY t.create_time desc + + \ No newline at end of file diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/LcomAuthController.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/LcomAuthController.java index 84b4615f..6f41b939 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/LcomAuthController.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/LcomAuthController.java @@ -24,6 +24,8 @@ import cc.hiver.core.common.utils.SecurityUtil; import cc.hiver.core.common.vo.Result; import cc.hiver.core.config.properties.HiverTokenProperties; import cc.hiver.core.entity.LogiticsCompany; +import cc.hiver.core.logisticsuser.entity.LogisticsUser; +import cc.hiver.core.logisticsuser.service.LogisticsUserService; import cc.hiver.core.service.LogiticsCompanyService; import cc.hiver.core.vo.LcomDetailVO; import cn.hutool.core.text.CharSequenceUtil; @@ -59,6 +61,9 @@ public class LcomAuthController { @Autowired private LogiticsCompanyService logiticsCompanyService; + @Autowired + private LogisticsUserService logisticsUserService; + public static final String LOGIN_FAIL_FLAG = "COMPANY_LOGIN_FAIL_FLAG:"; public static final String LOGIN_TIME_LIMIT = "COMPANY_LOGIN_TIME_LIMIT:"; @@ -164,7 +169,16 @@ public class LcomAuthController { @RateLimiter(name = "sendLoginSms", ipLimit = true) public Result chooseCompany(@RequestParam String companyId,@RequestParam String username) { final boolean saveLogin = true; - final LogiticsCompany logiticsCompany = logiticsCompanyService.findById(companyId); + LogiticsCompany logiticsCompany = logiticsCompanyService.findById(companyId); + if(logiticsCompany == null ){ + // 鍙兘鏄憳宸ョ櫥褰曪紝杩欓噷鍙嶆煡鍏徃淇℃伅 + final LogisticsUser logisticsUser = logisticsUserService.getById(companyId); + logiticsCompany = logiticsCompanyService.findById(logisticsUser.getCompanyId()); + }else{ + logiticsCompany.setCompanyId(logiticsCompany.getId()); + } + + // accessToken锛屾槸鏍规嵁username鍘昏缃殑锛屽彲鑳芥槸鍛樺伐鐨勶紝涔熷彲鑳芥槸鍏徃鐨勩 final String accessToken = securityUtil.getAppWLToken(logiticsCompany, saveLogin,username); final LcomDetailVO detailVO = new LcomDetailVO(); diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/purchaseocr/service/impl/PurchaseOcrPictureServiceImpl.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/purchaseocr/service/impl/PurchaseOcrPictureServiceImpl.java index 30699cb4..352813d1 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/purchaseocr/service/impl/PurchaseOcrPictureServiceImpl.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/purchaseocr/service/impl/PurchaseOcrPictureServiceImpl.java @@ -2,10 +2,14 @@ package cc.hiver.mall.purchaseocr.service.impl; import cc.hiver.core.common.utils.CommonUtil; import cc.hiver.core.common.utils.SecurityUtil; +import cc.hiver.core.entity.LogiticsCompany; import cc.hiver.core.entity.User; import cc.hiver.core.logisticsaddressbook.entity.LogisticsAddressBook; import cc.hiver.core.logisticsaddressbook.service.LogisticsAddressBookService; import cc.hiver.core.logisticsaddressbook.vo.LogisticsAddressBookQueryVo; +import cc.hiver.core.logisticsstation.entity.LogisticsStation; +import cc.hiver.core.logisticsstation.service.LogisticsStationService; +import cc.hiver.core.logisticsstation.vo.LogisticsStationQueryVo; import cc.hiver.mall.common.constant.PurchaseConstant; import cc.hiver.mall.config.thread.AiPurchaseThread; import cc.hiver.mall.config.thread.ThreadPoolConfiguration; @@ -83,6 +87,9 @@ public class PurchaseOcrPictureServiceImpl implements PurchaseOcrPictureService @Autowired private LogisticsAddressBookService logisticsAddressBookService; + @Autowired + private LogisticsStationService logisticsStationService; + @Override public JSONObject batchSave(PurchaseOciPictureAddVo purchaseOciPictureAddVo) { @@ -248,14 +255,14 @@ public class PurchaseOcrPictureServiceImpl implements PurchaseOcrPictureService final String attributeList = object.getString("attributeList"); final JSONArray attributeListJsonArray = JSON.parseArray(attributeList); // 鏍规嵁璐у彿鍘绘煡璇㈠晢鍝侊紝濡傛灉 - final List byProductSn = productService.getByProductSn(productSn, shopId,""); + final List byProductSn = productService.getByProductSn(productSn, shopId, ""); if (StringUtils.isNotEmpty(singleProductId) || (byProductSn != null && !byProductSn.isEmpty())) { // 鍘熷垯涓婁竴涓簵閾轰竴涓揣鍙峰搴斾竴涓晢鍝侊紝杩欓噷濡傛灉鏌ュ埌浜嗭紝鐩存帴鎷跨涓涓 Product product = new Product(); - if(!byProductSn.isEmpty()){ + if (!byProductSn.isEmpty()) { product = byProductSn.get(0); } - if(StringUtils.isNotEmpty(singleProductId)){ + if (StringUtils.isNotEmpty(singleProductId)) { // 20240928 app/sale/buyAi鎺ュ彛鍔犱釜鍙傛暟productId锛屽鏋滀紶鍊间簡锛屾煡瑙勬牸搴撳瓨鏁扮殑鏃跺欏氨鏌ヨ繖娆惧晢鍝佺殑 product = productService.getById(singleProductId); } @@ -283,13 +290,13 @@ public class PurchaseOcrPictureServiceImpl implements PurchaseOcrPictureService // ai璇煶鍏ュ簱鏃у晢鍝 濡傛灉閫氫箟鍗冮棶杩斿洖鐨勪环鏍间负0锛岃繑鍥炲綋鍓嶉噰璐环 锛岄噰璐环锛歱urchasePrice if (price.compareTo(BigDecimal.ZERO) == 0) { purchaseDetail.setPurchasePrice(product.getPurchasePrice()); - }else{ + } else { purchaseDetail.setPurchasePrice(price); } // ai璇煶鍏ュ簱鏃у晢鍝 濡傛灉閫氫箟鍗冮棶杩斿洖鐨勪环鏍间负0锛岃繑鍥炲綋鍓嶆壒鍙戜环 锛屾壒鍙戜环锛歸holesalePrice if (wholesalePrice.compareTo(BigDecimal.ZERO) == 0) { purchaseDetail.setWholesalePrice(product.getWholesalePrice()); - }else{ + } else { purchaseDetail.setWholesalePrice(wholesalePrice); } purchaseDetail.setAttrId(product.getAttrId()); @@ -401,9 +408,9 @@ public class PurchaseOcrPictureServiceImpl implements PurchaseOcrPictureService } // 濡傛灉瀹㈡埛id涓嶄负绌猴紝閭d箞灏辨煡璇㈠晢鍝佺殑璐拱璁板綍 - if(StringUtils.isNotEmpty(customerId)){ + if (StringUtils.isNotEmpty(customerId)) { // 鑾峰彇瀹㈡埛鐨勮喘涔版鏁 - final List buyCount = saleService.buyCount(customerId,oldProductIdList); + final List buyCount = saleService.buyCount(customerId, oldProductIdList); // 灏佽涓篗ap final Map buyCountMap = new HashMap<>(); for (BuyCountVo buyCountVo : buyCount) { @@ -440,9 +447,9 @@ public class PurchaseOcrPictureServiceImpl implements PurchaseOcrPictureService for (int j = 0; j < attributeListJsonArray.size(); j++) { final JSONObject attributeListObject = attributeListJsonArray.getJSONObject(j); String color = attributeListObject.getString("color"); - color = StringUtils.isEmpty(color) ? "鍧囪壊" :color.toUpperCase(); + color = StringUtils.isEmpty(color) ? "鍧囪壊" : color.toUpperCase(); String size = attributeListObject.getString("size"); - size = StringUtils.isEmpty(size) ? "鍧囩爜" :size.toUpperCase(); + size = StringUtils.isEmpty(size) ? "鍧囩爜" : size.toUpperCase(); String productCount1 = attributeListObject.getString("productCount"); productCount1 = StringUtils.isEmpty(productCount1) ? "0" : productCount1; final Matcher countMatchered = COMPILE.matcher(productCount1); @@ -521,7 +528,7 @@ public class PurchaseOcrPictureServiceImpl implements PurchaseOcrPictureService BigDecimal weight = BigDecimal.ZERO; // 浣跨敤姝e垯琛ㄨ揪寮忔彁鍙栨暟瀛楅儴鍒 final Pattern pattern = Pattern.compile("-?\\d+(\\.\\d+)?"); - if(StringUtils.isNotEmpty(weightStr)){ + if (StringUtils.isNotEmpty(weightStr)) { final Matcher matcher = pattern.matcher(weightStr); if (matcher.find()) { // 鑾峰彇鍖归厤鍒扮殑鏁板瓧瀛楃涓插苟杞崲涓築igDecimal @@ -533,7 +540,7 @@ public class PurchaseOcrPictureServiceImpl implements PurchaseOcrPictureService customInfoOfAiVo.setWeight(weight); final String countStr = object.getString("count"); int count = 0; - if(StringUtils.isNotEmpty(countStr)){ + if (StringUtils.isNotEmpty(countStr)) { final Matcher countMatchered = COMPILE.matcher(countStr); String replaced = ""; if (countMatchered.find()) { @@ -547,7 +554,7 @@ public class PurchaseOcrPictureServiceImpl implements PurchaseOcrPictureService customInfoOfAiVo.setMethodOfSettlement(methodOfSettlement); final String tipsStr = object.getString("tips"); BigDecimal tips = BigDecimal.ZERO; - if(StringUtils.isNotEmpty(tipsStr)){ + if (StringUtils.isNotEmpty(tipsStr)) { // 浣跨敤姝e垯琛ㄨ揪寮忔彁鍙栨暟瀛楅儴鍒 final Matcher matcherOfTips = pattern.matcher(tipsStr); if (matcherOfTips.find()) { @@ -561,7 +568,7 @@ public class PurchaseOcrPictureServiceImpl implements PurchaseOcrPictureService customInfoOfAiVos.add(customInfoOfAiVo); } } catch (Exception e) { - log.error(e.getMessage(),e); + log.error(e.getMessage(), e); returnJsonObject.put("code", 500); } returnJsonObject.put("data", customInfoOfAiVos); @@ -593,7 +600,7 @@ public class PurchaseOcrPictureServiceImpl implements PurchaseOcrPictureService BigDecimal weight = BigDecimal.ZERO; // 浣跨敤姝e垯琛ㄨ揪寮忔彁鍙栨暟瀛楅儴鍒 final Pattern pattern = Pattern.compile("-?\\d+(\\.\\d+)?"); - if(StringUtils.isNotEmpty(weightStr)){ + if (StringUtils.isNotEmpty(weightStr)) { final Matcher matcher = pattern.matcher(weightStr); if (matcher.find()) { // 鑾峰彇鍖归厤鍒扮殑鏁板瓧瀛楃涓插苟杞崲涓築igDecimal @@ -605,7 +612,7 @@ public class PurchaseOcrPictureServiceImpl implements PurchaseOcrPictureService logisticsOrderOfAiVo.setWeight(weight); final String countStr = object.getString("count"); int count = 0; - if(StringUtils.isNotEmpty(countStr)){ + if (StringUtils.isNotEmpty(countStr)) { final Matcher countMatchered = COMPILE.matcher(countStr); String replaced = ""; if (countMatchered.find()) { @@ -617,7 +624,7 @@ public class PurchaseOcrPictureServiceImpl implements PurchaseOcrPictureService logisticsOrderOfAiVo.setCount(count); final String tipsStr = object.getString("tips"); BigDecimal tips = BigDecimal.ZERO; - if(StringUtils.isNotEmpty(tipsStr)){ + if (StringUtils.isNotEmpty(tipsStr)) { // 浣跨敤姝e垯琛ㄨ揪寮忔彁鍙栨暟瀛楅儴鍒 final Matcher matcherOfTips = pattern.matcher(tipsStr); if (matcherOfTips.find()) { @@ -631,7 +638,7 @@ public class PurchaseOcrPictureServiceImpl implements PurchaseOcrPictureService final String premiumStr = object.getString("premium"); BigDecimal premium = BigDecimal.ZERO; - if(StringUtils.isNotEmpty(premiumStr)){ + if (StringUtils.isNotEmpty(premiumStr)) { // 浣跨敤姝e垯琛ㄨ揪寮忔彁鍙栨暟瀛楅儴鍒 final Matcher matcherOfPremium = pattern.matcher(premiumStr); if (matcherOfPremium.find()) { @@ -650,11 +657,13 @@ public class PurchaseOcrPictureServiceImpl implements PurchaseOcrPictureService logisticsAddressBookQueryVo.setAddressType(1); logisticsAddressBookQueryVo.setShipperOrReceiverName(shipperName); logisticsAddressBookQueryVo.setMobile(shipperMobile); + LogiticsCompany currCompany = securityUtil.getCurrCompany(); + logisticsAddressBookQueryVo.setCompanyId(currCompany.getCompanyId()); final cn.hutool.json.JSONObject logisticsAddressBookList = logisticsAddressBookService.getLogisticsAddressBookList(logisticsAddressBookQueryVo); - if("1".equals(logisticsAddressBookList.get("flag"))){ + if ("1".equals(logisticsAddressBookList.get("flag"))) { final List data = (List) logisticsAddressBookList.get("data"); logisticsOrderOfAiVo.setShipperList(data); - }else{ + } else { log.info(logisticsAddressBookList.get("msg").toString()); } // 鏀惰揣浜 receiverName,receiverMobile @@ -663,16 +672,24 @@ public class PurchaseOcrPictureServiceImpl implements PurchaseOcrPictureService receiverQueryVo.setShipperOrReceiverName(receiverName); receiverQueryVo.setMobile(receiverMobile); final cn.hutool.json.JSONObject receiverList = logisticsAddressBookService.getLogisticsAddressBookList(receiverQueryVo); - if("1".equals(receiverList.get("flag"))){ + if ("1".equals(receiverList.get("flag"))) { final List data = (List) receiverList.get("data"); logisticsOrderOfAiVo.setReceiverList(data); - }else{ + } else { log.info(receiverList.get("msg").toString()); } + + // 鍒拌揪绔欏垪琛 + if (StringUtils.isNotEmpty(arrivalStationName)) { + LogisticsStationQueryVo logisticsRouteQueryVo = new LogisticsStationQueryVo(); + logisticsRouteQueryVo.setStationName(arrivalStationName); + List logisticsStationListBystationName = logisticsStationService.getLogisticsStationListBystationName(logisticsRouteQueryVo); + logisticsOrderOfAiVo.setLogisticsStationList(logisticsStationListBystationName); + } logisticsOrderOfAiVos.add(logisticsOrderOfAiVo); } } catch (Exception e) { - log.error(e.getMessage(),e); + log.error(e.getMessage(), e); returnJsonObject.put("code", 500); } returnJsonObject.put("data", logisticsOrderOfAiVos); diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/purchaseocr/vo/LogisticsOrderOfAiVo.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/purchaseocr/vo/LogisticsOrderOfAiVo.java index a0793824..8ccf2a3d 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/purchaseocr/vo/LogisticsOrderOfAiVo.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/purchaseocr/vo/LogisticsOrderOfAiVo.java @@ -1,6 +1,7 @@ package cc.hiver.mall.purchaseocr.vo; import cc.hiver.core.logisticsaddressbook.entity.LogisticsAddressBook; +import cc.hiver.core.logisticsstation.entity.LogisticsStation; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -43,6 +44,9 @@ public class LogisticsOrderOfAiVo { @ApiModelProperty(value = "鍒拌揪绔") private String arrivalStationName; + @ApiModelProperty(value = "鍒拌揪绔欏垪琛") + private List logisticsStationList; + @ApiModelProperty(value = "鐗╁搧") private String objectName; }