ソースを参照

お問い合わせ 作成

zdsong 1 週間 前
コミット
dee8161e6d
18 ファイル変更400 行追加112 行削除
  1. 6 10
      farm-crm-biz/src/main/java/jp/yamoto/farm/crm/biz/bss/domain/bo/BssAskSearchBo.java
  2. 0 2
      farm-crm-biz/src/main/java/jp/yamoto/farm/crm/biz/bss/domain/entity/BssAsk.java
  3. 5 1
      farm-crm-biz/src/main/java/jp/yamoto/farm/crm/biz/bss/domain/entity/BssAskHistory.java
  4. 10 4
      farm-crm-biz/src/main/java/jp/yamoto/farm/crm/biz/bss/domain/vo/BssAskHistoryVo.java
  5. 88 0
      farm-crm-biz/src/main/java/jp/yamoto/farm/crm/biz/bss/domain/vo/BssOrderDetailDeliveryVo.java
  6. 2 2
      farm-crm-biz/src/main/java/jp/yamoto/farm/crm/biz/bss/domain/vo/BssOrderDetailVo.java
  7. 10 1
      farm-crm-biz/src/main/java/jp/yamoto/farm/crm/biz/bss/mapper/BssOrderMapper.java
  8. 1 5
      farm-crm-biz/src/main/java/jp/yamoto/farm/crm/biz/bss/service/IBssOrderService.java
  9. 32 20
      farm-crm-biz/src/main/java/jp/yamoto/farm/crm/biz/bss/service/impl/BssAskServiceImpl.java
  10. 11 7
      farm-crm-biz/src/main/java/jp/yamoto/farm/crm/biz/bss/service/impl/BssOrderServiceImpl.java
  11. 16 0
      farm-crm-biz/src/main/java/jp/yamoto/farm/crm/biz/master/service/IMastFarmerService.java
  12. 52 6
      farm-crm-biz/src/main/java/jp/yamoto/farm/crm/biz/master/service/impl/MastFarmerServiceImpl.java
  13. 12 1
      farm-crm-biz/src/main/resources/mapper/crm/BssAskHistoryMapper.xml
  14. 51 0
      farm-crm-biz/src/main/resources/mapper/crm/BssOrderMapper.xml
  15. 7 8
      farm-crm/src/main/java/jp/yamoto/farm/crm/web/controller/bss/BssAskController.java
  16. 51 0
      farm-crm/src/main/java/jp/yamoto/farm/crm/web/controller/bss/BssOrderController.java
  17. 36 43
      farm-crm/src/main/java/jp/yamoto/farm/crm/web/controller/common/CommonController.java
  18. 10 2
      farm-crm/src/main/java/jp/yamoto/farm/crm/web/controller/master/MastFarmerController.java

+ 6 - 10
farm-crm-biz/src/main/java/jp/yamoto/farm/crm/biz/bss/domain/bo/BssAskSearchBo.java

@@ -1,10 +1,6 @@
 package jp.yamoto.farm.crm.biz.bss.domain.bo;
 
-import jp.yamoto.farm.common.utils.ValidatorUtils;
 import jp.yamoto.farm.common.utils.ValueUtils;
-import jp.yamoto.farm.common.validator.annotation.LmLength;
-import jp.yamoto.farm.common.validator.annotation.LmNotBlank;
-import jp.yamoto.farm.common.validator.utils.ValidatorGroup;
 import lombok.Data;
 
 import java.io.Serial;
@@ -102,17 +98,17 @@ public class BssAskSearchBo implements Serializable {
 
 
     public String getFinalUpdateDateStart() {
-        if(ValueUtils.isNotEmpty(this.finalUpdateDateStart)){
-            return this.finalUpdateDateStart+" 00:00:00";
+        if (ValueUtils.isNotEmpty(this.finalUpdateDateStart)) {
+            return this.finalUpdateDateStart + " 00:00:00";
         }
-        return  this.finalUpdateDateStart;
+        return this.finalUpdateDateStart;
     }
 
     public String getFinalUpdateDateEnd() {
-        if(ValueUtils.isNotEmpty(this.finalUpdateDateEnd)){
-            return this.finalUpdateDateEnd+" 23:59:59";
+        if (ValueUtils.isNotEmpty(this.finalUpdateDateEnd)) {
+            return this.finalUpdateDateEnd + " 23:59:59";
         }
-        return  this.finalUpdateDateEnd;
+        return this.finalUpdateDateEnd;
     }
 
 }

+ 0 - 2
farm-crm-biz/src/main/java/jp/yamoto/farm/crm/biz/bss/domain/entity/BssAsk.java

@@ -5,8 +5,6 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 import java.io.Serial;
-import java.math.BigDecimal;
-import java.util.Date;
 
 /**
  * 問合せ情報 (bss_ask)

+ 5 - 1
farm-crm-biz/src/main/java/jp/yamoto/farm/crm/biz/bss/domain/entity/BssAskHistory.java

@@ -5,7 +5,6 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 import java.io.Serial;
-import java.math.BigDecimal;
 
 /**
  * 問合せ対応履歴情報  (bss_ask_history)
@@ -30,6 +29,11 @@ public class BssAskHistory extends BaseEntity {
     private String askNo;
 
     /**
+     * ステータス
+     */
+    private String status;
+
+    /**
      * カテゴリ(大)
      */
     private String category1;

+ 10 - 4
farm-crm-biz/src/main/java/jp/yamoto/farm/crm/biz/bss/domain/vo/BssAskHistoryVo.java

@@ -2,10 +2,6 @@ package jp.yamoto.farm.crm.biz.bss.domain.vo;
 
 import jp.yamoto.farm.common.core.domain.BaseEntity;
 import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import java.io.Serial;
-import java.math.BigDecimal;
 
 /**
  * 問合せ対応履歴情報 詳細情報Vo
@@ -26,6 +22,16 @@ public class BssAskHistoryVo extends BaseEntity {
     private String askNo;
 
     /**
+     * ステータス
+     */
+    private String status;
+
+    /**
+     * ステータス
+     */
+    private String statusLabel;
+
+    /**
      * カテゴリ(大)
      */
     private String category1;

+ 88 - 0
farm-crm-biz/src/main/java/jp/yamoto/farm/crm/biz/bss/domain/vo/BssOrderDetailDeliveryVo.java

@@ -0,0 +1,88 @@
+package jp.yamoto.farm.crm.biz.bss.domain.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class BssOrderDetailDeliveryVo {
+    /**
+     * ID
+     */
+    private String id;
+
+    /**
+     * 注文ID
+     */
+    private String orderId;
+
+    /**
+     * 農家ID
+     */
+    private String farmerId;
+
+    /**
+     * システム商品番号
+     */
+    private String sysItemCode;
+
+    /**
+     * 商品コード
+     */
+    private String itemCd;
+
+    /**
+     * 商品名
+     */
+    private String itemName;
+
+    /**
+     * 商品単価
+     */
+    private BigDecimal itemPrice;
+
+    /**
+     * 商品単価(税込)
+     */
+    private BigDecimal itemPriceTax;
+
+    /**
+     * 商品消費税
+     */
+    private BigDecimal itemSalesTax;
+
+    /**
+     * 数量
+     */
+    private BigDecimal qty;
+
+    /**
+     * 小計
+     */
+    private BigDecimal subtotal;
+
+    /**
+     * 小計(税込)
+     */
+    private BigDecimal subtotalTax;
+
+    /**
+     * 届け先
+     */
+    private String deliveryCustomerName;
+
+    /**
+     * 配送先郵便番号
+     */
+    private String postalCode;
+
+    /**
+     * 住所
+     */
+    private String address;
+
+    /**
+     * 配送先電話番号
+     */
+    private String phoneNumber;
+}

+ 2 - 2
farm-crm-biz/src/main/java/jp/yamoto/farm/crm/biz/bss/domain/vo/BssOrderDetailVo.java

@@ -43,7 +43,7 @@ public class BssOrderDetailVo {
     private String address;
 
     /**
-     * 届け先リスト
+     * 注文の詳細と配送情報
      */
-    private List<BssOrderDeliveryVo> orderDeliveryVoLst;
+    private List<BssOrderDetailDeliveryVo> orderDetailDeliveryVoLst;
 }

+ 10 - 1
farm-crm-biz/src/main/java/jp/yamoto/farm/crm/biz/bss/mapper/BssOrderMapper.java

@@ -1,9 +1,10 @@
 package jp.yamoto.farm.crm.biz.bss.mapper;
 
 import jp.yamoto.farm.crm.biz.bss.domain.entity.BssOrder;
+import jp.yamoto.farm.crm.biz.bss.domain.vo.BssOrderDetailDeliveryVo;
 import jp.yamoto.farm.crm.biz.bss.domain.vo.BssOrderVo;
+
 import java.util.List;
-import lombok.EqualsAndHashCode;
 
 
 /**
@@ -29,6 +30,14 @@ public interface BssOrderMapper {
      */
     public List<BssOrderVo> selectList(BssOrder bssOrder);
 
+    /**
+     * 注文の詳細と配送情報を取得する
+     *
+     * @param bssOrder 注文情報
+     * @return 注文情報リスト
+     */
+    public List<BssOrderDetailDeliveryVo>  selectOrderDetailDeliverListByOrder(BssOrder bssOrder);
+
      /**
      *注文情報を登録
      *

+ 1 - 5
farm-crm-biz/src/main/java/jp/yamoto/farm/crm/biz/bss/service/IBssOrderService.java

@@ -3,10 +3,6 @@ package jp.yamoto.farm.crm.biz.bss.service;
 
 import jp.yamoto.farm.crm.biz.bss.domain.vo.BssOrderDetailVo;
 
-import jp.yamoto.farm.crm.biz.bss.domain.vo.BssOrderVo;
-
-import java.util.List;
-
 /**
  * 注文 Serviceインタフェース
  *
@@ -20,6 +16,6 @@ public interface IBssOrderService {
      * @param orderId 注文Id
      * @return 注文
      */
-    public BssOrderDetailVo selectByOrderId(String orderId);
+    public BssOrderDetailVo selectOrderByOrderId(String orderId);
 
 }

+ 32 - 20
farm-crm-biz/src/main/java/jp/yamoto/farm/crm/biz/bss/service/impl/BssAskServiceImpl.java

@@ -8,23 +8,21 @@ import jp.yamoto.farm.crm.biz.bss.domain.bo.BssAskBo;
 import jp.yamoto.farm.crm.biz.bss.domain.bo.BssAskSearchBo;
 import jp.yamoto.farm.crm.biz.bss.domain.entity.BssAsk;
 import jp.yamoto.farm.crm.biz.bss.domain.entity.BssAskHistory;
+import jp.yamoto.farm.crm.biz.bss.domain.vo.BssAskHistoryVo;
 import jp.yamoto.farm.crm.biz.bss.domain.vo.BssAskListVo;
 import jp.yamoto.farm.crm.biz.bss.domain.vo.BssAskVo;
 import jp.yamoto.farm.crm.biz.bss.domain.vo.BssOrderDetailVo;
 import jp.yamoto.farm.crm.biz.bss.mapper.BssAskHistoryMapper;
 import jp.yamoto.farm.crm.biz.bss.mapper.BssAskMapper;
 import jp.yamoto.farm.crm.biz.bss.service.IBssAskService;
+import jp.yamoto.farm.crm.biz.bss.service.IBssOrderService;
 import jp.yamoto.farm.crm.biz.master.domain.bo.MastCustomerBo;
-import jp.yamoto.farm.crm.biz.master.domain.bo.MastFarmerBo;
-import jp.yamoto.farm.crm.biz.master.domain.vo.MastFarmerVo;
 import jp.yamoto.farm.crm.biz.master.service.IMastCustomerService;
 import jp.yamoto.farm.crm.biz.master.service.IMastFarmerService;
-import jp.yamoto.farm.crm.biz.bss.service.IBssOrderService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
 
 import java.util.List;
 
@@ -49,7 +47,7 @@ public class BssAskServiceImpl implements IBssAskService {
     private IMastFarmerService mastFarmerService;
 
     @Autowired
-    private  IBssOrderService  orderService;
+    private IBssOrderService orderService;
 
     /**
      * お問い合わせの検索
@@ -59,30 +57,25 @@ public class BssAskServiceImpl implements IBssAskService {
      */
     @Override
     public BssAskVo selectById(String id) {
+        // 問合せ情報を検索
         BssAskVo bssAskVo = bssAskMapper.selectById(id);
-
         if (bssAskVo == null) {
             throw new ServiceException(MessageUtils.message("E0007"));
         }
 
-        // 情報
+        // 農家情報
         if (ValueUtils.isNotEmpty(bssAskVo.getFarmerId())) {
-            MastFarmerBo mastFarmerBo = new MastFarmerBo();
-            mastFarmerBo.setFarmerId(bssAskVo.getFarmerId());
-            List<MastFarmerVo> farmerVoList = mastFarmerService.selectList(mastFarmerBo);
-            bssAskVo.setMastFarmerVo(CollectionUtils.isEmpty(farmerVoList) ? null : farmerVoList.getFirst());
+            bssAskVo.setMastFarmerVo(mastFarmerService.selectMastFarmerByFarmId(bssAskVo.getFarmerId()));
         }
 
         // 注文情報
         if (ValueUtils.isNotEmpty(bssAskVo.getOrderId())) {
-            BssOrderDetailVo detailVo=  orderService.selectByOrderId(bssAskVo.getOrderId());
+            BssOrderDetailVo detailVo = orderService.selectOrderByOrderId(bssAskVo.getOrderId());
             bssAskVo.setOrderDetailVo(detailVo);
         }
 
         // 対応履歴
-        BssAskHistory bssAskHistory =new BssAskHistory();
-        bssAskHistory.setAskNo(bssAskVo.getAskNo());
-        bssAskVo.setVssAskHistoryVoLst(bssAskHistoryMapper.selectList(bssAskHistory));
+        bssAskVo.setVssAskHistoryVoLst(this.getAskHistoryByAskNo(bssAskVo.getAskNo()));
 
         return bssAskVo;
     }
@@ -124,7 +117,7 @@ public class BssAskServiceImpl implements IBssAskService {
         int result = bssAskMapper.insert(bssAsk);
         if (result > 0) {
             // お問い合わせ情報対応履歴登録
-            result = this.insertAskHistory(bssAsk,false);
+            result = this.insertAskHistory(bssAsk, false);
         }
 
         return result;
@@ -152,13 +145,31 @@ public class BssAskServiceImpl implements IBssAskService {
 
         // お問い合わせ情報対応履歴登録
         if (ValueUtils.isNotEmpty(bssAsk)) {
-            result = this.insertAskHistory(bssAsk,true);
+            result = this.insertAskHistory(bssAsk, true);
         }
 
         return result;
     }
 
     /**
+     * お問い合わせ履歴の記録を取得する
+     * @param askNo お問い合わせNo
+     * @return お問い合わせ履歴
+     */
+    private List<BssAskHistoryVo> getAskHistoryByAskNo(String askNo) {
+
+        BssAskHistory bssAskHistory = new BssAskHistory();
+        bssAskHistory.setAskNo(askNo);
+        List<BssAskHistoryVo> list = bssAskHistoryMapper.selectList(bssAskHistory);
+        for (BssAskHistoryVo bssAskHistoryVo : list) {
+            String statusLabel = DictUtils.getDictLabel("bss_ask_status", bssAskHistoryVo.getStatus());
+            bssAskHistoryVo.setStatusLabel(statusLabel);
+        }
+
+        return list;
+    }
+
+    /**
      * 顧客情報を登録
      *
      * @param bssAskBo お問い合わせパラメータ対象
@@ -225,11 +236,11 @@ public class BssAskServiceImpl implements IBssAskService {
     /**
      * お問い合わせ情報対応履歴登録
      *
-     * @param bssAsk お問い合わせ情報
+     * @param bssAsk      お問い合わせ情報
      * @param isAskUpdate 更新フラグ
      * @return 結果
      */
-    private int insertAskHistory(BssAsk bssAsk,boolean isAskUpdate) {
+    private int insertAskHistory(BssAsk bssAsk, boolean isAskUpdate) {
 
         BssAskHistory bssAskHistory = new BssAskHistory();
         bssAskHistory.setId(IdUtils.nextIdStr());
@@ -251,9 +262,10 @@ public class BssAskServiceImpl implements IBssAskService {
 
     /**
      * お問い合わせ情報 保存する前にチェックしてください
+     *
      * @param bssAskBo お問い合わせパラメータ対象
      */
-    private void checkBeforeInsert(BssAskBo bssAskBo ) {
+    private void checkBeforeInsert(BssAskBo bssAskBo) {
 
         // 顧客名
         if (ValueUtils.isEmpty(bssAskBo.getAskUser())) {

+ 11 - 7
farm-crm-biz/src/main/java/jp/yamoto/farm/crm/biz/bss/service/impl/BssOrderServiceImpl.java

@@ -2,22 +2,19 @@ package jp.yamoto.farm.crm.biz.bss.service.impl;
 
 
 import jp.yamoto.farm.common.exception.ServiceException;
-import jp.yamoto.farm.common.utils.*;
-
+import jp.yamoto.farm.common.utils.MessageUtils;
+import jp.yamoto.farm.crm.biz.bss.domain.entity.BssOrder;
+import jp.yamoto.farm.crm.biz.bss.domain.vo.BssOrderDetailDeliveryVo;
 import jp.yamoto.farm.crm.biz.bss.domain.vo.BssOrderDetailVo;
-
 import jp.yamoto.farm.crm.biz.bss.domain.vo.BssOrderVo;
-
 import jp.yamoto.farm.crm.biz.bss.mapper.BssOrderMapper;
 import jp.yamoto.farm.crm.biz.bss.service.IBssOrderService;
-
 import jp.yamoto.farm.crm.biz.master.service.IMastCustomerService;
 import jp.yamoto.farm.crm.biz.master.service.IMastFarmerService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-
 import java.util.List;
 
 /**
@@ -44,7 +41,7 @@ public class BssOrderServiceImpl implements IBssOrderService {
      * @return お問い合わせ
      */
     @Override
-    public BssOrderDetailVo selectByOrderId(String orderId) {
+    public BssOrderDetailVo selectOrderByOrderId(String orderId) {
         BssOrderVo bssOrderVo = bssOrderMapper.selectByOrderId(orderId);
         if (bssOrderVo == null) {
             throw new ServiceException(MessageUtils.message("E0007"));
@@ -52,7 +49,14 @@ public class BssOrderServiceImpl implements IBssOrderService {
         BssOrderDetailVo detailVo = new BssOrderDetailVo();
         BeanUtils.copyProperties(bssOrderVo, detailVo);
 
+        // 注文の詳細と配送情報を取得する
+        BssOrder basOrderSearch=new BssOrder();
+        basOrderSearch.setOrderId(orderId);
+        List<BssOrderDetailDeliveryVo>  orderDetailDeliveryLst= bssOrderMapper.selectOrderDetailDeliverListByOrder(basOrderSearch);
+        detailVo.setOrderDetailDeliveryVoLst(orderDetailDeliveryLst);
         return detailVo;
     }
 
+
+
 }

+ 16 - 0
farm-crm-biz/src/main/java/jp/yamoto/farm/crm/biz/master/service/IMastFarmerService.java

@@ -1,5 +1,6 @@
 package jp.yamoto.farm.crm.biz.master.service;
 
+import jp.yamoto.farm.common.biz.domain.vo.OptionsKeyValueVo;
 import jp.yamoto.farm.crm.biz.master.domain.bo.MastFarmerBo;
 import jp.yamoto.farm.crm.biz.master.domain.entity.MastFarmer;
 import jp.yamoto.farm.crm.biz.master.domain.vo.MastFarmerVo;
@@ -30,6 +31,21 @@ public interface IMastFarmerService {
     public List<MastFarmerVo> selectList(MastFarmerBo mastFarmerBo);
 
     /**
+     * 農家IDに基づいて農家情報を検索します。
+     *
+     * @param farmId  農家ID
+     * @return 農家情報
+     */
+    public MastFarmerVo selectMastFarmerByFarmId(String farmId);
+
+    /**
+     * 農家コンボボックスデータを取得する
+     *
+     * @return 農家コンボボックスデー
+     */
+    public List<OptionsKeyValueVo> getFarmerOptions();
+
+    /**
      * 農家マスタの保存
      *
      * @param mastFarmerBo 農家マスタパラメータ対象

+ 52 - 6
farm-crm-biz/src/main/java/jp/yamoto/farm/crm/biz/master/service/impl/MastFarmerServiceImpl.java

@@ -1,5 +1,6 @@
 package jp.yamoto.farm.crm.biz.master.service.impl;
 
+import jp.yamoto.farm.common.biz.domain.vo.OptionsKeyValueVo;
 import jp.yamoto.farm.common.biz.service.ISysConfigService;
 import jp.yamoto.farm.common.core.domain.model.LoginUser;
 import jp.yamoto.farm.common.exception.ServiceException;
@@ -15,9 +16,11 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 
 import java.util.List;
 import java.util.Random;
+import java.util.stream.Collectors;
 
 /**
  * 農家マスタ Service業務処理
@@ -32,6 +35,7 @@ public class MastFarmerServiceImpl implements IMastFarmerService {
 
     @Autowired
     private ISysConfigService sysConfigService;
+
     /**
      * 農家マスタの検索
      *
@@ -47,7 +51,7 @@ public class MastFarmerServiceImpl implements IMastFarmerService {
         }
 
         // 検索結果をリセット
-        this.restSearchData4View(mastFarmerVo,true);
+        this.restSearchData4View(mastFarmerVo, true);
         return mastFarmerVo;
     }
 
@@ -63,14 +67,32 @@ public class MastFarmerServiceImpl implements IMastFarmerService {
         MastFarmer mastFarmer = new MastFarmer();
         BeanUtils.copyProperties(mastFarmerBo, mastFarmer);
         // エリによってリストが返されました。
-        List<MastFarmerVo> farmerLst =  mastFarmerMapper.selectList(mastFarmer);
+        List<MastFarmerVo> farmerLst = mastFarmerMapper.selectList(mastFarmer);
         for (MastFarmerVo p : farmerLst) {
-            this.restSearchData4View(p,false);
+            this.restSearchData4View(p, false);
         }
         return farmerLst;
     }
 
     /**
+     * 農家IDに基づいて農家情報を検索します。
+     *
+     * @param farmId 農家ID
+     * @return 農家情報
+     */
+    public MastFarmerVo selectMastFarmerByFarmId(String farmId) {
+        MastFarmerBo mastFarmerBo = new MastFarmerBo();
+        mastFarmerBo.setFarmerId(farmId);
+        List<MastFarmerVo> farmerVoList = this.selectList(mastFarmerBo);
+        MastFarmerVo mastFarmerVo = CollectionUtils.isEmpty(farmerVoList) ? null : farmerVoList.getFirst();
+
+        // 検索結果をリセット
+        // restSearchData4View(mastFarmerVo, false);
+
+        return mastFarmerVo;
+    }
+
+    /**
      * 農家マスタの保存
      *
      * @param mastFarmerBo 農家マスタパラメータ対象
@@ -191,25 +213,49 @@ public class MastFarmerServiceImpl implements IMastFarmerService {
     /**
      * 検索結果をリセット
      *
-     * @param mastFarmerVo 農家マスタ詳細情報Vo
+     * @param mastFarmerVo  農家マスタ詳細情報Vo
      * @param isDecryptMail 農家マスタ詳細情報Vo
      */
     @SneakyThrows
-    private void restSearchData4View(MastFarmerVo mastFarmerVo,boolean isDecryptMail) {
+    private void restSearchData4View(MastFarmerVo mastFarmerVo, boolean isDecryptMail) {
 
+        if (ValueUtils.isEmpty(mastFarmerVo)) {
+            return;
+        }
         // デコードページにはアイテムが表示されます
         // 電話番号
         String PhoneNumber = DecryptUtils.decryptAES(mastFarmerVo.getPhoneNumber());
         mastFarmerVo.setPhoneNumber(PhoneNumber);
+
         // プレーンテキストメール
-        if (isDecryptMail) {
+        if (isDecryptMail && ValueUtils.isNotEmpty(mastFarmerVo.getMailAddress())) {
             String mailAddress = DecryptUtils.decryptAES(mastFarmerVo.getMailAddress());
             mastFarmerVo.setMailAddress(mailAddress);
         }
     }
 
     /**
+     * 農家コンボボックスデータを取得する
+     *
+     * @return 農家コンボボックスデー
+     */
+    public List<OptionsKeyValueVo> getFarmerOptions() {
+
+        // エリによってリストが返されました。
+        List<MastFarmerVo> farmerLst = this.selectList(new MastFarmerBo());
+
+        return farmerLst.stream()
+                .map(item -> OptionsKeyValueVo.builder()
+                        .key(item.getFarmerId())
+                        .value(item.getFarmerName()
+                        ).build())
+                .collect(Collectors.toList());
+    }
+
+
+    /**
      * 初期パスワードを生成
+     *
      * @return パスワード
      */
     private String generateFarmerInitPwd() {

+ 12 - 1
farm-crm-biz/src/main/resources/mapper/crm/BssAskHistoryMapper.xml

@@ -3,9 +3,10 @@
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="jp.yamoto.farm.crm.biz.bss.mapper.BssAskHistoryMapper">
-   <resultMap type="BssAskHistory" id="BssAskHistoryResult">
+   <resultMap type="BssAskHistoryVo" id="BssAskHistoryResult">
         <result property="id" column="id"/>
         <result property="askNo" column="ask_no"/>
+        <result property="status" column="status"/>
         <result property="category1" column="category1"/>
         <result property="category2" column="category2"/>
         <result property="seqNo" column="seq_no"/>
@@ -25,6 +26,7 @@
         select
           id,
           ask_no,
+          status,
           category1,
           category2,
           seq_no,
@@ -88,6 +90,9 @@
             <if test="askNo != null">
                 ask_no,
             </if>
+            <if test="status != null">
+                status,
+            </if>
             <if test="category1 != null">
                 category1,
             </if>
@@ -136,6 +141,9 @@
             <if test="askNo != null">
                 #{askNo},
             </if>
+            <if test="status != null">
+                #{status},
+            </if>
             <if test="category1 != null">
                 #{category1},
             </if>
@@ -188,6 +196,9 @@
             <if test="askNo != null">
                 ask_no = #{askNo},
             </if>
+            <if test="status != null">
+                status = #{status},
+            </if>
             <if test="category1 != null">
                 category1 = #{category1},
             </if>

+ 51 - 0
farm-crm-biz/src/main/resources/mapper/crm/BssOrderMapper.xml

@@ -40,6 +40,30 @@
         <result property="version" column="version"/>
 
     </resultMap>
+
+    <resultMap type="BssOrderDetailDeliveryVo" id="BssOrderDetailDeliveryResult">
+        <result property="id" column="id"/>
+        <result property="orderId" column="order_id"/>
+        <result property="sysOrderId" column="sys_order_id"/>
+        <result property="sysItemCode" column="sys_item_code"/>
+        <result property="itemCd" column="item_cd"/>
+        <result property="itemName" column="item_name"/>
+        <result property="itemPrice" column="item_price"/>
+        <result property="itemPriceTax" column="item_price_tax"/>
+        <result property="itemSalesTax" column="item_sales_tax"/>
+        <result property="qty" column="qty"/>
+        <result property="subtotal" column="subtotal"/>
+        <result property="subtotalTax" column="subtotal_tax"/>
+        <result property="farmerId" column="farmer_id"/>
+        <result property="deliveryCustomerName" column="delivery_customer_name"/>
+        <result property="postalCode" column="postal_code"/>
+        <result property="address" column="address"/>
+        <result property="phoneNumber" column="phone_number"/>
+        <result property="sysCustomerId" column="sys_customer_id"/>
+        <result property="customerId" column="customer_id"/>
+
+    </resultMap>
+
     <sql id="selectBssOrderVo">
         select
             id,
@@ -165,4 +189,31 @@
 
     </select>
 
+    <select id="selectOrderDetailDeliverListByOrder" parameterType="BssOrder" resultMap="BssOrderDetailDeliveryResult">
+        SELECT
+            bo.id,
+            bo.order_id,
+            bodi.sys_item_code,
+            bodi.item_cd,
+            sdd.dict_label as status_label,
+            bodi.item_name,
+            bodi.item_price,
+            bodi.item_price_tax,
+            bodi.qty,
+            bod.delivery_customer_name,
+            bod.address,
+            bod.phone_number
+        FROM
+            bss_order bo
+                LEFT join sys_dict_data sdd on bo.status = sdd.dict_value and sdd.dict_type = 'bss_order_status'
+                LEFT JOIN bss_order_delivery_item bodi ON bo.order_id = bodi.order_id
+                left join bss_order_delivery bod on bodi.dlvdelivery_id = bod.id
+
+        <where>
+            <if test="orderId != null  and orderId != ''">
+                bo.order_id = #{orderId}
+            </if>
+        </where>
+    </select>
+
 </mapper>

+ 7 - 8
farm-crm/src/main/java/jp/yamoto/farm/crm/web/controller/bss/BssAskController.java

@@ -9,7 +9,6 @@ import jp.yamoto.farm.common.validator.utils.ValidatorGroup;
 import jp.yamoto.farm.crm.biz.bss.domain.bo.BssAskBo;
 import jp.yamoto.farm.crm.biz.bss.domain.bo.BssAskSearchBo;
 import jp.yamoto.farm.crm.biz.bss.domain.vo.BssAskListVo;
-import jp.yamoto.farm.crm.biz.bss.domain.vo.BssAskVo;
 import jp.yamoto.farm.crm.biz.bss.service.IBssAskService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -19,7 +18,7 @@ import org.springframework.web.bind.annotation.*;
 import java.util.List;
 
 /**
- * お問い合わせController
+ * お問い合わせController
  *
  * @author nextosd
  */
@@ -31,7 +30,7 @@ public class BssAskController extends BaseController {
     private IBssAskService bssAskService;
 
     /**
-     * お問い合わせのリスト
+     * お問い合わせのリスト
      */
     @PreAuthorize("@ss.hasPermi('crm:bssAsk:list')")
     @PostMapping("/list")
@@ -42,7 +41,7 @@ public class BssAskController extends BaseController {
     }
 
     /**
-     * お問い合わせの詳細情報
+     * お問い合わせの詳細情報
      */
     @GetMapping(value = "/{id}/detail")
     public AjaxResult detail(@PathVariable("id") String id) {
@@ -50,20 +49,20 @@ public class BssAskController extends BaseController {
     }
 
     /**
-     * お問い合わせの追加
+     * お問い合わせの追加
      */
     @PreAuthorize("@ss.hasPermi('crm:bssAsk:add')")
-    @Log(title = "お問い合わせ", businessType = BusinessType.INSERT)
+    @Log(title = "お問い合わせ", businessType = BusinessType.INSERT)
     @PostMapping("/add")
     public AjaxResult add(@RequestBody @Validated({ValidatorGroup.AddGroup.class}) BssAskBo bssAskBo) {
         return toAjax(bssAskService.insert(bssAskBo));
     }
 
     /**
-     * お問い合わせの修正
+     * お問い合わせの修正
      */
     @PreAuthorize("@ss.hasPermi('crm:bssAsk:edit')")
-    @Log(title = "お問い合わせ", businessType = BusinessType.UPDATE)
+    @Log(title = "お問い合わせ", businessType = BusinessType.UPDATE)
     @PostMapping("/update")
     public AjaxResult edit(@RequestBody @Validated({ValidatorGroup.AddGroup.class}) BssAskBo bssAskBo) {
         return toAjax(bssAskService.update(bssAskBo));

+ 51 - 0
farm-crm/src/main/java/jp/yamoto/farm/crm/web/controller/bss/BssOrderController.java

@@ -0,0 +1,51 @@
+package jp.yamoto.farm.crm.web.controller.bss;
+
+import jp.yamoto.farm.common.core.controller.BaseController;
+import jp.yamoto.farm.common.core.domain.AjaxResult;
+import jp.yamoto.farm.crm.biz.bss.service.IBssOrderService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 注文情報Controller
+ *
+ * @author nextosd
+ */
+@RestController
+@RequestMapping("/api/order")
+public class BssOrderController extends BaseController {
+
+    @Autowired
+    private IBssOrderService bssOrderService;
+
+//    /**
+//     * 注文情報のリスト
+//     */
+//    @PreAuthorize("@ss.hasPermi('crm:bssAsk:list')")
+//    @PostMapping("/list")
+//    public TableDataInfo list(@RequestBody BssAskSearchBo bssAskSearchBo) {
+//        startPage();
+//        List<BssOrderVo> list = bssOrderService.selectList(bssAskSearchBo);
+//        return getDataTable(list);
+//    }
+//
+//    /**
+//     * 注文情報の詳細情報
+//     */
+//    @GetMapping(value = "/{id}/detail")
+//    public AjaxResult detail(@PathVariable("id") String id) {
+//        return success(bssOrderService.selectById(id));
+//    }
+
+    /**
+     * 注文IDに基づいて注文情報を検索します。
+     */
+    @GetMapping(value = "/info/byOrderId")
+    public AjaxResult getInfoByOrderId(@RequestParam("orderId") String orderId) {
+        return success(bssOrderService.selectOrderByOrderId(orderId));
+    }
+
+}

+ 36 - 43
farm-crm/src/main/java/jp/yamoto/farm/crm/web/controller/common/CommonController.java

@@ -1,7 +1,5 @@
 package jp.yamoto.farm.crm.web.controller.common;
 
-import java.util.ArrayList;
-import java.util.List;
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
 import jp.yamoto.farm.common.biz.domain.bo.OptionsParamBo;
@@ -13,6 +11,7 @@ import jp.yamoto.farm.common.core.domain.AjaxResult;
 import jp.yamoto.farm.common.utils.StringUtils;
 import jp.yamoto.farm.common.utils.file.FileUploadUtils;
 import jp.yamoto.farm.common.utils.file.FileUtils;
+import jp.yamoto.farm.crm.biz.master.service.IMastFarmerService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -20,15 +19,17 @@ import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * 汎用リクエスト処理
- * 
+ *
  * @author nextosd
  */
 @RestController
 @RequestMapping("/api/common")
-public class CommonController
-{
+public class CommonController {
     private static final Logger log = LoggerFactory.getLogger(CommonController.class);
 
     @Autowired
@@ -39,8 +40,12 @@ public class CommonController
     @Autowired
     private IFarmCommonService commonService;
 
+    @Autowired
+    private IMastFarmerService mastFarmerService;
+
     /**
      * コンボボックスデータを取得する
+     *
      * @param optionsParam
      * @return
      */
@@ -51,17 +56,14 @@ public class CommonController
 
     /**
      * 汎用ダウンロードリクエスト
-     * 
+     *
      * @param fileName ファイル名
-     * @param delete 削除するかどうか
+     * @param delete   削除するかどうか
      */
     @GetMapping("/download")
-    public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request)
-    {
-        try
-        {
-            if (!FileUtils.checkAllowDownload(fileName))
-            {
+    public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request) {
+        try {
+            if (!FileUtils.checkAllowDownload(fileName)) {
                 throw new Exception(StringUtils.format("ファイル名({})が不正で、ダウンロードは許可されていません。", fileName));
             }
             String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1);
@@ -70,13 +72,10 @@ public class CommonController
             response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
             FileUtils.setAttachmentResponseHeader(response, realFileName);
             FileUtils.writeBytes(filePath, response.getOutputStream());
-            if (delete)
-            {
+            if (delete) {
                 FileUtils.deleteFile(filePath);
             }
-        }
-        catch (Exception e)
-        {
+        } catch (Exception e) {
             log.error("ファイルのダウンロードに失敗しました", e);
         }
     }
@@ -85,10 +84,8 @@ public class CommonController
      * 汎用アップロードリクエスト(単一)
      */
     @PostMapping("/upload")
-    public AjaxResult uploadFile(MultipartFile file) throws Exception
-    {
-        try
-        {
+    public AjaxResult uploadFile(MultipartFile file) throws Exception {
+        try {
             // ファイルパスのアップロード
             String filePath = AppConfig.getUploadPath();
             // 新しいファイル名をアップロードして戻す
@@ -100,9 +97,7 @@ public class CommonController
             ajax.put("newFileName", FileUtils.getName(fileName));
             ajax.put("originalFilename", file.getOriginalFilename());
             return ajax;
-        }
-        catch (Exception e)
-        {
+        } catch (Exception e) {
             return AjaxResult.error(e.getMessage());
         }
     }
@@ -111,18 +106,15 @@ public class CommonController
      * 汎用アップロードリクエスト(複数)
      */
     @PostMapping("/uploads")
-    public AjaxResult uploadFiles(List<MultipartFile> files) throws Exception
-    {
-        try
-        {
+    public AjaxResult uploadFiles(List<MultipartFile> files) throws Exception {
+        try {
             // ファイルパスのアップロード
             String filePath = AppConfig.getUploadPath();
             List<String> urls = new ArrayList<String>();
             List<String> fileNames = new ArrayList<String>();
             List<String> newFileNames = new ArrayList<String>();
             List<String> originalFilenames = new ArrayList<String>();
-            for (MultipartFile file : files)
-            {
+            for (MultipartFile file : files) {
                 // 新しいファイル名をアップロードして戻す
                 String fileName = FileUploadUtils.upload(filePath, file);
                 String url = serverConfig.getUrl() + fileName;
@@ -137,9 +129,7 @@ public class CommonController
             ajax.put("newFileNames", StringUtils.join(newFileNames, FILE_DELIMETER));
             ajax.put("originalFilenames", StringUtils.join(originalFilenames, FILE_DELIMETER));
             return ajax;
-        }
-        catch (Exception e)
-        {
+        } catch (Exception e) {
             return AjaxResult.error(e.getMessage());
         }
     }
@@ -149,12 +139,9 @@ public class CommonController
      */
     @GetMapping("/download/resource")
     public void resourceDownload(String resource, HttpServletRequest request, HttpServletResponse response)
-            throws Exception
-    {
-        try
-        {
-            if (!FileUtils.checkAllowDownload(resource))
-            {
+            throws Exception {
+        try {
+            if (!FileUtils.checkAllowDownload(resource)) {
                 throw new Exception(StringUtils.format("リソースファイル({})は不正で、ダウンロードは許可されていません。 ", resource));
             }
 
@@ -167,10 +154,16 @@ public class CommonController
             response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
             FileUtils.setAttachmentResponseHeader(response, downloadName);
             FileUtils.writeBytes(downloadPath, response.getOutputStream());
-        }
-        catch (Exception e)
-        {
+        } catch (Exception e) {
             log.error("ファイルのダウンロードに失敗しました", e);
         }
     }
+
+    /**
+     * 注文IDに基づいて注文情報を検索します。
+     */
+    @GetMapping(value = "/farmer/options")
+    public AjaxResult getFarmerCommonOptions() {
+        return AjaxResult.success(mastFarmerService.getFarmerOptions());
+    }
 }

+ 10 - 2
farm-crm/src/main/java/jp/yamoto/farm/crm/web/controller/master/MastFarmerController.java

@@ -34,8 +34,7 @@ public class MastFarmerController extends BaseController {
      */
     @PreAuthorize("@ss.hasPermi('crm:mastNoka:list')")
     @GetMapping("/list")
-    public TableDataInfo list(MastFarmerBo mastFarmerBo)
-    {
+    public TableDataInfo list(MastFarmerBo mastFarmerBo) {
         startPage();
         List<MastFarmerVo> list = mastFarmerService.selectList(mastFarmerBo);
         return getDataTable(list);
@@ -68,4 +67,13 @@ public class MastFarmerController extends BaseController {
     public AjaxResult deleteLogic(@RequestBody MastFarmer mastFarmer) {
         return toAjax(mastFarmerService.deleteLogicByIdAndVersion(mastFarmer));
     }
+
+    /**
+     * 農家IDに基づいて農場情報を検索します。
+     */
+    @GetMapping(value = "/info/byFarmId")
+    public AjaxResult getInfoByFarmId(@RequestParam("farmId") String farmId) {
+        return success(mastFarmerService.selectById(farmId));
+    }
+
 }