浏览代码

Okyakusama

Okyakusama
zoubz 3 周之前
父节点
当前提交
eb39207b4b

+ 116 - 0
farm-crm-biz/src/main/java/jp/yamoto/farm/crm/biz/master/domain/bo/MastOkyakusamaBo.java

@@ -0,0 +1,116 @@
+package jp.yamoto.farm.crm.biz.master.domain.bo;
+
+import jp.yamoto.farm.common.validator.annotation.*;
+import jp.yamoto.farm.common.validator.enums.CheckTypeEnum;
+import jp.yamoto.farm.common.validator.utils.ValidatorGroup;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 顧客マスタ サービスパラメータ対象
+ *
+ * @author nextosd
+ */
+@Data
+public class MastOkyakusamaBo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 汎用ID
+     */
+    private String id;
+
+    /**
+     * 顧客CD
+     */
+    @LmNotBlank(params = {"{oksCd}"}, groups = {ValidatorGroup.AddGroup.class, ValidatorGroup.UpdateGroup.class})
+    @LmLength(min = 1, max = 20, params = {"{oksCd}", "20"}, groups = {ValidatorGroup.AddGroup.class, ValidatorGroup.UpdateGroup.class})
+    private String oksCd;
+
+    /**
+     * 顧客様氏名
+     */
+    @LmNotBlank(params = {"{oksMei}"}, groups = {ValidatorGroup.AddGroup.class, ValidatorGroup.UpdateGroup.class})
+    @LmLength(min = 1, max = 64, params = {"{oksMei}", "64"}, groups = {ValidatorGroup.AddGroup.class, ValidatorGroup.UpdateGroup.class})
+    private String oksMei;
+
+    /**
+     * 顧客様氏名(カナ)
+     */
+    @LmNotBlank(params = {"{oksMeiKn}"}, groups = {ValidatorGroup.AddGroup.class, ValidatorGroup.UpdateGroup.class})
+    @LmLength(min = 1, max = 32, params = {"{oksMeiKn}", "32"}, groups = {ValidatorGroup.AddGroup.class, ValidatorGroup.UpdateGroup.class})
+    @LmType(params = {"{oksMeiKn}", "{kana}"}, checkType = CheckTypeEnum.KANA, groups = {ValidatorGroup.AddGroup.class, ValidatorGroup.UpdateGroup.class})
+    private String oksMeiKn;
+
+    /**
+     * 都道府県
+     */
+    @LmNotBlank(params = {"{todoFuken}"}, groups = {ValidatorGroup.AddGroup.class, ValidatorGroup.UpdateGroup.class})
+    @LmLength(min = 1, max = 56, params = {"{todoFuken}", "56"}, groups = {ValidatorGroup.AddGroup.class, ValidatorGroup.UpdateGroup.class})
+    private String todoFuken;
+
+    /**
+     * 市区町村
+     */
+    @LmNotBlank(params = {"{shikuChoson}"}, groups = {ValidatorGroup.AddGroup.class, ValidatorGroup.UpdateGroup.class})
+    @LmLength(min = 1, max = 56, params = {"{shikuChoson}", "56"}, groups = {ValidatorGroup.AddGroup.class, ValidatorGroup.UpdateGroup.class})
+    private String shikuChoson;
+
+    /**
+     * 番地以下
+     */
+    @LmLength(min = 1, max = 256, params = {"{banchiika}", "256"}, groups = {ValidatorGroup.AddGroup.class, ValidatorGroup.UpdateGroup.class})
+    private String banchiIka;
+
+    /**
+     * 電話番号
+     */
+    @LmLength(min = 1, max = 14, params = {"{tenwabango}", "14"}, groups = {ValidatorGroup.AddGroup.class, ValidatorGroup.UpdateGroup.class})
+    @LmPhoneNo(params = {"{tenwabango}"}, groups = {ValidatorGroup.AddGroup.class, ValidatorGroup.UpdateGroup.class})
+    private String tenwabango;
+
+    /**
+     * 郵便番号
+     */
+    @LmLength(min = 1, max = 8, params = {"{yubenbango}", "8"}, groups = {ValidatorGroup.AddGroup.class, ValidatorGroup.UpdateGroup.class})
+    private String yubenbango;
+
+    /**
+     * メールアドレス
+     */
+    @LmNotBlank(params = {"{mailAddress}"}, groups = {ValidatorGroup.AddGroup.class, ValidatorGroup.UpdateGroup.class})
+    @LmLength(min = 1, max = 128, params = {"{mailAddress}", "128"}, groups = {ValidatorGroup.AddGroup.class, ValidatorGroup.UpdateGroup.class})
+    @LmMail(params = {"{mailAddress}"}, groups = {ValidatorGroup.AddGroup.class, ValidatorGroup.UpdateGroup.class})
+    private String mailAddress;
+
+    /**
+     * 農家ID
+     */
+    @LmNotBlank(params = {"{nokaCd}"}, groups = {ValidatorGroup.AddGroup.class, ValidatorGroup.UpdateGroup.class})
+    @LmLength(min = 1, max = 20, params = {"{nokaCd}", "20"}, groups = {ValidatorGroup.AddGroup.class, ValidatorGroup.UpdateGroup.class})
+    private String nokaCd;
+
+    /**
+     * 廃止フラグ
+     */
+    private Integer haisiFlg;
+
+    /**
+     * 廃止日
+     */
+    private String haisiDt;
+
+    /**
+     * 廃止理由
+     */
+    private String haisiRiyu;
+
+    /**
+     * リビジョン
+     */
+    private Integer version;
+}

+ 90 - 0
farm-crm-biz/src/main/java/jp/yamoto/farm/crm/biz/master/domain/entity/MastOkyakusama.java

@@ -0,0 +1,90 @@
+package jp.yamoto.farm.crm.biz.master.domain.entity;
+
+import jp.yamoto.farm.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+
+/**
+ * 顧客マスタ (mast_okyakusama)
+ *
+ * @author nextosd
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class MastOkyakusama extends BaseEntity{
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 顧客ID
+     */
+    private String oksCd;
+
+    /**
+     * お客様氏名
+     */
+    private String oksMei;
+
+    /**
+     * お客様氏名(カナ)
+     */
+    private String oksMeiKn;
+
+    /**
+     * 都道府県
+     */
+    private String todoFuken;
+
+    /**
+     * 市区町村
+     */
+    private String shikuChoson;
+
+    /**
+     * 番地以下
+     */
+    private String banchiIka;
+
+    /**
+     * 電話番号
+     */
+    private  String tenwabango;
+
+    /**
+     * 郵便番号
+     */
+    private  String yubenbango;
+
+    /**
+     * メールアドレス
+     */
+    private String mailAddress;
+
+    /**
+     * 農家ID
+     */
+    private String nokaCd;
+
+    /**
+     * 廃止フラグ
+     */
+    private Integer haisiFlg;
+
+    /**
+     * 廃止日
+     */
+    private  String haisiDt;
+
+    /**
+     * 廃止理由
+     */
+    private String haisiRiyu;
+
+    /**
+     * リビジョン
+     */
+    private Integer version;
+}

+ 82 - 0
farm-crm-biz/src/main/java/jp/yamoto/farm/crm/biz/master/domain/vo/MastOkyakusamaVo.java

@@ -0,0 +1,82 @@
+package jp.yamoto.farm.crm.biz.master.domain.vo;
+
+import lombok.Data;
+
+/**
+ * 顧客マスタ詳細情報Vo
+ *
+ * @author nextosd
+ */
+@Data
+public class MastOkyakusamaVo {
+
+    /**
+     * 顧客CD
+     */
+    private String oksCd;
+
+    /**
+     * お客様氏名
+     */
+    private String oksMei;
+
+    /**
+     * お客様氏名(カナ)
+     */
+    private String oksMeiKn;
+
+    /**
+     * 都道府県
+     */
+    private String todoFuken;
+
+    /**
+     * 市区町村
+     */
+    private String shikuChoson;
+
+    /**
+     * 番地以下
+     */
+    private String banchiIka;
+
+    /**
+     * 電話番号
+     */
+    private  String tenwabango;
+
+    /**
+     * 郵便番号
+     */
+    private  String yubenbango;
+
+    /**
+     * メールアドレス
+     */
+    private String mailAddress;
+
+    /**
+     * 農家ID
+     */
+    private String nokaCd;
+
+    /**
+     * 廃止フラグ
+     */
+    private Integer haisiFlg;
+
+    /**
+     * 廃止日
+     */
+    private  String haisiDt;
+
+    /**
+     * 廃止理由
+     */
+    private String haisiRiyu;
+
+    /**
+     * リビジョン
+     */
+    private Integer version;
+}

+ 78 - 0
farm-crm-biz/src/main/java/jp/yamoto/farm/crm/biz/master/mapper/MastOkyakusamaMapper.java

@@ -0,0 +1,78 @@
+package jp.yamoto.farm.crm.biz.master.mapper;
+
+import jp.yamoto.farm.crm.biz.master.domain.entity.MastOkyakusama;
+import jp.yamoto.farm.crm.biz.master.domain.vo.MastOkyakusamaVo;
+
+import java.util.List;
+
+/**
+ * 顧客マスタ Mapperインタフェース
+ *
+ * @author nextosd
+ */
+public interface MastOkyakusamaMapper {
+
+    /**
+     * 顧客マスタを検索
+     *
+     * @param id 顧客マスタプライマリ・キー
+     * @return 顧客マスタ
+     */
+    public MastOkyakusama selectById(String id);
+
+    /**
+     * 顧客マスタを検索リスト
+     *
+     * @param mastOkyakusama 顧客マスタ
+     * @return 顧客マスタリスト
+     */
+    public List<MastOkyakusamaVo> selectList(MastOkyakusama mastOkyakusama);
+
+    /**
+     * 顧客CDの件数のクエリ
+     *
+     * @param oksCd 顧客ID
+     * @return 結果
+     */
+    public int getOkyakusamaCdCount(String oksCd);
+
+    /**
+     * 顧客マスタを登録
+     *
+     * @param mastOkyakusama 顧客マスタ
+     * @return 結果
+     */
+    public int insert(MastOkyakusama mastOkyakusama);
+
+    /**
+     * 顧客マスタを修正
+     *
+     * @param mastOkyakusama 顧客マスタ
+     * @return 結果
+     */
+    public int update(MastOkyakusama mastOkyakusama);
+
+    /**
+     * 顧客マスタを削除
+     *
+     * @param id 顧客マスタプライマリ・キー
+     * @return 結果
+     */
+    public int deleteById(String id);
+
+    /**
+     * 顧客マスタの一括削除
+     *
+     * @param ids 削除する必要があるデータ・プライマリ・キー・コレクション
+     * @return 結果
+     */
+    public int deleteByIds(String[] ids);
+
+    /**
+     * 一覧表示項目スタの論理削除
+     *
+     * @param mastOkyakusama 一覧表示項目
+     * @return 結果
+     */
+    public int deleteLogicByIdAndVersion(MastOkyakusama mastOkyakusama);
+}

+ 55 - 0
farm-crm-biz/src/main/java/jp/yamoto/farm/crm/biz/master/service/IMastOkyakusamaService.java

@@ -0,0 +1,55 @@
+package jp.yamoto.farm.crm.biz.master.service;
+
+import jp.yamoto.farm.crm.biz.master.domain.bo.MastOkyakusamaBo;
+import jp.yamoto.farm.crm.biz.master.domain.entity.MastOkyakusama;
+import jp.yamoto.farm.crm.biz.master.domain.vo.MastOkyakusamaVo;
+
+import java.util.List;
+
+/**
+ * 顧客マスタ Serviceインタフェース
+ *
+ * @author nextosd
+ */
+public interface IMastOkyakusamaService {
+
+    /**
+     * 顧客マスタの検索
+     *
+     * @param id 顧客マスタプライマリ・キー
+     * @return 顧客マスタ
+     */
+    public MastOkyakusamaVo selectById(String id);
+
+    /**
+     * 顧客マスタのリストを検索
+     *
+     * @param mastOkyakusamaBo 顧客マスタパラメータ対象
+     * @return 顧客マスタリスト
+     */
+    public List<MastOkyakusamaVo> selectList(MastOkyakusamaBo mastOkyakusamaBo);
+
+    /**
+     * 顧客マスタの追加
+     *
+     * @param mastOkyakusamaBo 顧客マスタパラメータ対象
+     * @return 結果
+     */
+    public int insert(MastOkyakusamaBo mastOkyakusamaBo);
+
+    /**
+     * 顧客マスタの修正
+     *
+     * @param mastOkyakusamaBo 顧客マスタパラメータ対象
+     * @return 結果
+     */
+    public int update(MastOkyakusamaBo mastOkyakusamaBo);
+
+    /**
+     * 顧客マスタの一括削除
+     *
+     * @param mastOkyakusama 顧客マスタ
+     * @return 結果
+     */
+    public int deleteLogicByIdAndVersion(MastOkyakusama mastOkyakusama);
+}

+ 117 - 0
farm-crm-biz/src/main/java/jp/yamoto/farm/crm/biz/master/service/impl/MastOkyakusamaServiceImpl.java

@@ -0,0 +1,117 @@
+package jp.yamoto.farm.crm.biz.master.service.impl;
+
+import jp.yamoto.farm.common.core.enums.DelFlgEnum;
+import jp.yamoto.farm.common.exception.ServiceException;
+import jp.yamoto.farm.common.utils.MessageUtils;
+import jp.yamoto.farm.crm.biz.master.domain.bo.MastOkyakusamaBo;
+import jp.yamoto.farm.crm.biz.master.domain.entity.MastOkyakusama;
+import jp.yamoto.farm.crm.biz.master.domain.vo.MastOkyakusamaVo;
+import jp.yamoto.farm.crm.biz.master.mapper.MastOkyakusamaMapper;
+import jp.yamoto.farm.crm.biz.master.service.IMastOkyakusamaService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * 顧客マスタ Service業務処理
+ *
+ * @author nextosd
+ */
+@Service
+public class MastOkyakusamaServiceImpl implements IMastOkyakusamaService {
+
+    @Autowired
+    private MastOkyakusamaMapper mastOkyakusamaMapper;
+
+    /**
+     * 顧客マスタの検索
+     *
+     * @param id 顧客マスタプライマリ・キー
+     * @return 顧客マスタ
+     */
+    @Override
+    public MastOkyakusamaVo selectById(String id) {
+        MastOkyakusama MastOkyakusama = mastOkyakusamaMapper.selectById(id);
+
+        if (MastOkyakusama == null) {
+            throw new ServiceException(MessageUtils.message("E0007"));
+        }
+        MastOkyakusamaVo item = new MastOkyakusamaVo();
+        BeanUtils.copyProperties(MastOkyakusama, item);
+        return item;
+    }
+
+    /**
+     * 顧客マスタのリストを検索
+     *
+     * @param mastOkyakusamaBo 顧客マスタパラメータ対象
+     * @return 顧客マスタリスト
+     */
+    @Override
+    public List<MastOkyakusamaVo> selectList(MastOkyakusamaBo mastOkyakusamaBo) {
+        // 未削除フラグ設定
+        mastOkyakusamaBo.setHaisiFlg(DelFlgEnum.OFF.getCode());
+        MastOkyakusama mastOkyakusama = new MastOkyakusama();
+        BeanUtils.copyProperties(mastOkyakusamaBo, mastOkyakusama);
+        return mastOkyakusamaMapper.selectList(mastOkyakusama);
+    }
+
+    /**
+     * 顧客マスタの追加
+     *
+     * @param mastOkyakusamaBo 顧客マスタパラメータ対象
+     * @return 結果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int insert(MastOkyakusamaBo mastOkyakusamaBo) {
+        MastOkyakusama mastOkyakusama = new MastOkyakusama();
+        BeanUtils.copyProperties(mastOkyakusamaBo, mastOkyakusama);
+
+        // 顧客コードの重複チェック
+        int mastOkyakusamaCount = mastOkyakusamaMapper.getOkyakusamaCdCount(mastOkyakusamaBo.getOksCd());
+        if (mastOkyakusamaCount > 0) {
+            throw new ServiceException(MessageUtils.message("E0001", MessageUtils.message("label.oksCd")));
+        }
+
+        return mastOkyakusamaMapper.insert(mastOkyakusama);
+    }
+
+    /**
+     * 顧客マスタの編集
+     *
+     * @param mastOkyakusamaBo 顧客マスタパラメータ対象
+     * @return 結果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int update(MastOkyakusamaBo mastOkyakusamaBo) {
+        MastOkyakusama mastOkyakusama = new MastOkyakusama();
+        BeanUtils.copyProperties(mastOkyakusamaBo, mastOkyakusama);
+        int result = mastOkyakusamaMapper.update(mastOkyakusama);
+        if (result < 1) {
+            throw new ServiceException(MessageUtils.message("E0007"));
+        }
+        return result;
+    }
+
+    /**
+     * 顧客マスタの論理削除
+     *
+     * @param mastOkyakusama 顧客マスタ
+     * @return 結果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int deleteLogicByIdAndVersion(MastOkyakusama mastOkyakusama) {
+        // 該当データは既に別のユーザーより削除されました。
+        int result = mastOkyakusamaMapper.deleteLogicByIdAndVersion(mastOkyakusama);
+        if (result < 1) {
+            throw new ServiceException(MessageUtils.message("E0007"));
+        }
+        return result;
+    }
+}

+ 285 - 0
farm-crm-biz/src/main/resources/mapper/crm/MastOkyakusamaMapper.xml

@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="jp.yamoto.farm.crm.biz.master.mapper.MastOkyakusamaMapper">
+
+    <resultMap type="MastOkyakusama" id="MastOkyakusamaResult">
+        <result property="oksCd" column="oks_cd"/>
+        <result property="oksMei" column="oks_mei"/>
+        <result property="oksMeiKn" column="oks_mei_kn"/>
+        <result property="tenwabango" column="tenwabango"/>
+        <result property="mailAddress" column="mail_address"/>
+        <result property="haisiFlg" column="haisi_flg"/>
+        <result property="haisiDt" column="haisi_dt"/>
+        <result property="haisiRiyu" column="haisi_riyu"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="createPgId" column="create_pg_id"/>
+        <result property="updatePgId" column="update_pg_id"/>
+        <result property="version" column="version"/>
+        <result property="todoFuken" column="todo_fuken"/>
+        <result property="shikuChoson" column="shiku_choson"/>
+        <result property="banchiIka" column="banchi_ika"/>
+        <result property="yubenbango" column="yubenbango"/>
+        <result property="nokaCd" column="noka_cd"/>
+    </resultMap>
+
+    <sql id="selectMastOkyakusamaVo">
+        select
+        oks_cd,
+        oks_mei,
+        oks_mei_kn,
+        tenwabango,
+        mail_address,
+        haisi_flg,
+        haisi_dt,
+        haisi_riyu,
+        create_time,
+        create_by,
+        create_pg_id,
+        update_time,
+        update_by,
+        update_pg_id,
+        version,
+        todo_fuken,
+        shiku_choson,
+        banchi_ika,
+        yubenbango,
+        noka_cd
+        from mast_okyakusama
+    </sql>
+
+    <select id="selectList" parameterType="MastOkyakusama" resultMap="MastOkyakusamaResult">
+        <include refid="selectMastOkyakusamaVo"/>
+        <where>
+            <if test="oksCd != null  and oksCd != ''">
+                and oks_cd = #{oksCd}
+            </if>
+            <if test="oksMei != null  and oksMei != ''">
+                and oks_mei like '%' || #{oksMei} || '%'
+            </if>
+            <if test="haisiFlg != null">
+                and haisi_flg = #{haisiFlg}
+            </if>
+        </where>
+        order by oks_cd asc
+    </select>
+
+    <select id="selectById" parameterType="String" resultMap="MastOkyakusamaResult">
+        <include refid="selectMastOkyakusamaVo"/>
+        where oks_cd = #{oksCd}
+    </select>
+
+    <insert id="insert" parameterType="MastOkyakusama">
+        insert into mast_okyakusama
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="oksCd != null">
+                oks_cd,
+            </if>
+            <if test="oksMei != null">
+                oks_mei,
+            </if>
+            <if test="oksMeiKn != null">
+                oks_mei_kn,
+            </if>
+            <if test="tenwabango != null">
+                tenwabango,
+            </if>
+            <if test="mailAddress != null">
+                mail_address,
+            </if>
+            <if test="todoFuken != null">
+                todo_fuken,
+            </if>
+            <if test="shikuChoson != null">
+                shiku_choson,
+            </if>
+            <if test="banchiIka != null">
+                banchi_ika,
+            </if>
+            <if test="yubenbango != null">
+                yubenbango,
+            </if>
+            <if test="nokaCd != null">
+                noka_cd,
+            </if>
+            <if test="haisiFlg != null">
+                haisi_flg,
+            </if>
+            <if test="haisiDt != null">
+                haisi_dt,
+            </if>
+            <if test="haisiRiyu != null">
+                haisi_riyu,
+            </if>
+            <if test="version != null">
+                version,
+            </if>
+            <if test="createBy != null">
+                create_by,
+            </if>
+            <if test="createTime != null">
+                create_time,
+            </if>
+            <if test="createPgId != null">
+                create_pg_id,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="oksCd != null">
+                #{oksCd},
+            </if>
+            <if test="oksMei != null">
+                #{oksMei},
+            </if>
+            <if test="oksMeiKn != null">
+                #{oksMeiKn},
+            </if>
+            <if test="tenwabango != null">
+                #{tenwabango},
+            </if>
+            <if test="mailAddress != null">
+                #{mailAddress},
+            </if>
+            <if test="todoFuken != null">
+                #{todoFuken},
+            </if>
+            <if test="shikuChoson != null">
+                #{shikuChoson},
+            </if>
+            <if test="banchiIka != null">
+                #{banchiIka},
+            </if>
+            <if test="yubenbango != null">
+                #{yubenbango},
+            </if>
+            <if test="nokaCd != null">
+                #{nokaCd},
+            </if>
+            <if test="haisiFlg != null">
+                #{haisiFlg},
+            </if>
+            <if test="haisiDt != null">
+                #{haisiDt},
+            </if>
+            <if test="haisiRiyu != null">
+                #{haisiRiyu},
+            </if>
+            <if test="version != null">
+                #{version},
+            </if>
+            <if test="createBy != null">
+                #{createBy},
+            </if>
+            <if test="createTime != null">
+                #{createTime},
+            </if>
+            <if test="createPgId != null">
+                #{createPgId},
+            </if>
+        </trim>
+    </insert>
+
+    <update id="update" parameterType="MastOkyakusama">
+        update mast_okyakusama
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="oksCd != null">
+                oks_cd = #{oksCd},
+            </if>
+            <if test="oksMei != null">
+                oks_mei = #{oksMei},
+            </if>
+            <if test="oksMeiKn != null">
+                oks_mei_kn = #{oksMeiKn},
+            </if>
+            <if test="tenwabango != null">
+                tenwabango = #{tenwabango},
+            </if>
+            <if test="mailAddress != null">
+                mail_address = #{mailAddress},
+            </if>
+            <if test="todoFuken != null">
+                todo_fuken = #{todoFuken},
+            </if>
+            <if test="shikuChoson != null">
+                shiku_choson = #{shikuChoson},
+            </if>
+            <if test="banchiIka != null">
+                banchi_ika = #{banchiIka},
+            </if>
+            <if test="yubenbango != null">
+                yubenbango = #{yubenbango},
+            </if>
+            <if test="nokaCd != null">
+                noka_cd = #{nokaCd},
+            </if>
+            <if test="haisiFlg != null">
+                haisi_flg = #{haisiFlg},
+            </if>
+            <if test="haisiDt != null">
+                haisi_dt = #{haisiDt},
+            </if>
+            <if test="haisiRiyu != null">
+                haisi_riyu = #{haisiRiyu},
+            </if>
+            <if test="version != null">
+                version = #{version} + 1,
+            </if>
+            <if test="updateBy != null">
+                update_by = #{updateBy},
+            </if>
+            <if test="updateTime != null">
+                update_time = #{updateTime},
+            </if>
+            <if test="updatePgId != null">
+                update_pg_id = #{updatePgId},
+            </if>
+        </trim>
+        where
+        oks_cd = #{oksCd}
+        and version = #{version}
+    </update>
+
+    <select id="getOkyakusamaCdCount" parameterType="String" resultType="java.lang.Integer">
+        SELECT
+        count(1)
+        FROM
+        mast_okyakusama
+        <where>
+            <if test="oksCd != null  and oksCd != ''">
+                and oks_cd = #{oksCd}
+            </if>
+        </where>
+    </select>
+
+    <delete id="deleteById" parameterType="String">
+        delete
+        from
+        mast_okyakusama
+        where oks_cd = #{oksCd}
+    </delete>
+
+    <update id="deleteLogicByIdAndVersion" parameterType="MastOkyakusama">
+        update
+        mast_okyakusama
+        set
+        haisi_flg = 1,
+        version = version + 1,
+        <if test="updateBy != null">
+            update_by = #{updateBy},
+        </if>
+        <if test="updateTime != null">
+            update_time = #{updateTime}
+        </if>
+        <where>
+            <if test="oksCd != null  and oksCd != ''">
+                and oks_cd = #{oksCd}
+            </if>
+            and version = #{version}
+            and haisi_flg = 0
+        </where>
+    </update>
+</mapper>

+ 81 - 0
farm-crm/src/main/java/jp/yamoto/farm/crm/web/controller/master/MastOkyakusamaController.java

@@ -0,0 +1,81 @@
+package jp.yamoto.farm.crm.web.controller.master;
+
+import jp.yamoto.farm.common.annotation.Log;
+import jp.yamoto.farm.common.core.controller.BaseController;
+import jp.yamoto.farm.common.core.domain.AjaxResult;
+import jp.yamoto.farm.common.core.page.TableDataInfo;
+import jp.yamoto.farm.common.enums.BusinessType;
+import jp.yamoto.farm.common.validator.utils.ValidatorGroup;
+import jp.yamoto.farm.crm.biz.master.domain.bo.MastOkyakusamaBo;
+import jp.yamoto.farm.crm.biz.master.domain.entity.MastOkyakusama;
+import jp.yamoto.farm.crm.biz.master.domain.vo.MastOkyakusamaVo;
+import jp.yamoto.farm.crm.biz.master.service.IMastOkyakusamaService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 顧客マスタController
+ *
+ * @author nextosd
+ */
+@RestController
+@RequestMapping("/master/mast_okyakusama")
+public class MastOkyakusamaController extends BaseController {
+
+    @Autowired
+    private IMastOkyakusamaService mastOkyakusamaService;
+
+    /**
+     * 顧客マスタのリスト
+     */
+    @PreAuthorize("@ss.hasPermi('crm:mastOkyakusama:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(MastOkyakusamaBo mastOkyakusamaBo)
+    {
+        startPage();
+        List<MastOkyakusamaVo> list = mastOkyakusamaService.selectList(mastOkyakusamaBo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 顧客マスタの詳細情報
+     */
+    @GetMapping(value = "{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id) {
+        return success(mastOkyakusamaService.selectById(id));
+    }
+
+    /**
+     * 顧客マスタの追加
+     */
+    @PreAuthorize("@ss.hasPermi('crm:mastOkyakusama:add')")
+    @Log(title = "顧客マスタ", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody @Validated({ValidatorGroup.AddGroup.class}) MastOkyakusamaBo mastOkyakusamaBo) {
+        return toAjax(mastOkyakusamaService.insert(mastOkyakusamaBo));
+    }
+
+    /**
+     * 顧客マスタの修正
+     */
+    @PreAuthorize("@ss.hasPermi('crm:mastOkyakusama:edit')")
+    @Log(title = "顧客マスタ", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody @Validated({ValidatorGroup.AddGroup.class}) MastOkyakusamaBo mastOkyakusamaBo) {
+        return toAjax(mastOkyakusamaService.update(mastOkyakusamaBo));
+    }
+
+    /**
+     * 顧客マスタの論理削除
+     */
+    @PreAuthorize("@ss.hasPermi('crm:mastOkyakusama:remove')")
+    @Log(title = "顧客マスタ", businessType = BusinessType.UPDATE)
+    @PostMapping("/deleteLogic")
+    public AjaxResult deleteLogic(@RequestBody MastOkyakusama mastOkyakusama) {
+        return toAjax(mastOkyakusamaService.deleteLogicByIdAndVersion(mastOkyakusama));
+    }
+}