2017년 11월 26일 일요일

스프링 프레임워크1

        if (mHokanbasho == null) {
            throw new BusinessException("e.ne.fw.9001");
        }

        Date createDate = Timestamp.valueOf(LocalDateTime.now());
        mHokanbasho.setCreateDate(createDate);
        mHokanbasho.setUpdateDate(createDate);
        mHokanbasho.setCreateUserId(inputDto.getUpdateUserId());
        mHokanbasho.setUpdateUserId(inputDto.getUpdateUserId());


        HashMap<String, String> mPlantMap = new HashMap<String, String>();
        mPlantMap.put("", " ");

        for (MPlant targetMPlant : mPlant) {
            mPlantMap.put(targetMPlant.getPlantCode(), targetMPlant.getPlantName());
        }

        LocalDateTime temp = LocalDateTime.ofInstant(mHokanbashoBefore.getUpdateDate().toInstant(),
                ZoneId.systemDefault());
        DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;

        LocalDateTime tempSelect = LocalDateTime.ofInstant(selectedMHokanbasho.getUpdateDate().toInstant(),
                ZoneId.systemDefault());

        System.out.println("Select = " + tempSelect.format(formatter));
        System.out.println("Before = " + temp.format(formatter));

        if (selectedMHokanbasho.getUpdateDate().after(mHokanbashoBefore.getUpdateDate())) {
            throw new BusinessException("e.ne.fw.9001");
        }


@Override
public PlantRegistConfirmRegisterBLogicOutputDto execute(final PlantRegistConfirmRegisterBLogicInputDto inputDto) {

MPlant mPlant = inputDto.getmPlant();

MPlantKey key = new MPlantKey();
key.setCompanyCode(mPlant.getCompanyCode());
key.setPlantCode(mPlant.getPlantCode());
MPlant selectedMPlant = plantService.selectByPrimaryKey(key);

// 重複データがある場合、エラー
if (selectedMPlant != null) {
throw new BusinessException("e.ne.fw.9001");
}

Date createDate = Timestamp.valueOf(LocalDateTime.now());
mPlant.setCreateDate(createDate);
mPlant.setUpdateDate(createDate);
mPlant.setDeleteFlag(DeleteFlagEnum.OFF.getValue());
mPlant.setCreateUserId(inputDto.getUpdateUserId());
mPlant.setUpdateUserId(inputDto.getUpdateUserId());

// プラント
plantService.insert(mPlant);

return new PlantRegistConfirmRegisterBLogicOutputDto();

}


generatorConfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
  <classPathEntry location="C:\Users\sawaki\.m2\repository\org\postgresql\postgresql\9.4.1209.jre7\postgresql-9.4.1209.jre7.jar" />
  <context id="context1">
    <jdbcConnection connectionURL="jdbc:postgresql://postgre1.isurp.com:5432/activiti_spring" driverClass="org.postgresql.Driver" password="isurp1234" userId="isurp" />
    <javaModelGenerator targetPackage="com.isurp.neo.domain.model" targetProject="neo-domain/src/generated/java" />
    <sqlMapGenerator targetPackage="com.isurp.neo.domain.repository" targetProject="neo-domain/src/generated/resources" />
    <javaClientGenerator targetPackage="com.isurp.neo.domain.repository" targetProject="neo-domain/src/generated/java" type="XMLMAPPER" />
    <table schema="public" tableName="m_user"></table>
    <table schema="public" tableName="m_hinmoku"></table>
    <table schema="public" tableName="m_plant"></table>
    <table schema="public" tableName="m_hokanbasho"></table>
    <table schema="public" tableName="t_user_role"></table>
  </context>
</generatorConfiguration>

==================================================

import javax.inject.Inject;
import javax.validation.Valid;

import org.dozer.Mapper;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.SessionAttributes;
import org.springframework.web.bind.support.SessionStatus;

@Controller
@RequestMapping(value = "admin/master/plantRegist")
@SessionAttributes("scopedTarget.plantRegistSession")
public class PlantRegistController {

    /** プラント登録用セッション. */
    @Inject
    private PlantRegistSession plantRegistSession;

    /** Mapper. */
    @Inject
    private Mapper mapper;

    /**
     * プラント登録フォーム設定.
     *
     * @return プラント登録フォーム
     */
    @ModelAttribute
    public PlantRegistForm setUpPlantRegistForm() {
        return new PlantRegistForm();
    }

    /**
     * プラント登録用セッション設定.
     *
     * @return プラント登録用セッション
     */
    @ModelAttribute("plantRegistSession")
    public PlantRegistSession setUpPlantRegistSession() {
        return plantRegistSession;
    }

    /**
     * 初期表示.
     *
     * @param model
     *            モデル
     * @return ビュー
     */
    @RequestMapping(value = "init")
    public String init(Model model) {
        return "admin/master/plantRegist";
    }

    /**
     * 前画面からの戻るイベントによる初期表示.
     *
     * @param model
     *            モデル
     * @return ビュー
     */
    @RequestMapping(value = "initBack", method = { RequestMethod.GET, RequestMethod.POST })
    public String initBack(Model model) {

        // 情報追加
        model.addAttribute("plantCode", plantRegistSession.getmPlant().getPlantCode());
        model.addAttribute("plantName", plantRegistSession.getmPlant().getPlantName());
        model.addAttribute("spart", plantRegistSession.getmPlant().getSpart());
        model.addAttribute("yukoFlagValue", plantRegistSession.getmPlant().getYukoFlag());

        return "admin/master/plantRegist";
    }

    /**
     * プラント情報確認.
     *
     * @param userDetails
     *            ログインユーザー情報
     * @param plantRegistForm
     *            プラント登録フォーム
     * @param result
     *            バリデーション結果
     * @param model
     *            モデル
     * @return ビュー
     */
    @RequestMapping(value = "confirm", method = RequestMethod.POST)
    public String confirm(@AuthenticationPrincipal final CustomUserDetails userDetails,
            @Valid @ModelAttribute final PlantRegistForm plantRegistForm, final BindingResult result, Model model) {

        // フォームに設定された値にエラーがある場合
        if (result.hasErrors()) {

            // 登録画面に戻る
            return "admin/master/plantRegist";
        }

        // プラント
        MPlant mPlant = new MPlant();
        mapper.map(plantRegistForm, mPlant);
        mPlant.setCompanyCode(userDetails.getMUser().getCompanyCode());
        plantRegistSession.setmPlant(mPlant);

        model.addAttribute("mPlant", mPlant);

        return "redirect:/admin/master/plantRegistConfirm";
    }

    /**
     * 一覧画面に戻る.
     *
     * @param sessionStatus
     *            セッション情報
     * @return ビュー
     */
    @RequestMapping(value = "cancel", method = { RequestMethod.GET, RequestMethod.POST })
    public String cancel(final SessionStatus sessionStatus) {
        sessionStatus.setComplete();
        plantRegistSession.clear();
        return "redirect:/admin/master/plant/init";
    }
}
==================================================

AbstractService.java

import java.util.List;
import org.apache.ibatis.annotations.Param;

/**
 *
 * @param <M>
 *            モデル
 * @param <K>
 *            キー
 * @param <Q>
 *            条件
 */
public interface AbstractService<M, K, Q> {

    /**
     * 条件による件数取得.
     *
     * @param example
     *            条件
     * @return 条件による件数
     */
    long countByExample(Q example);

    /**
     * 条件による削除.
     *
     * @param example
     *            条件
     * @return 削除件数
     */
    int deleteByExample(Q example);

    /**
     * キーによる削除.
     *
     * @param key
     *            キー
     * @return 削除件数
     */
    int deleteByPrimaryKey(K key);

    /**
     * 登録.
     *
     * @param record
     *            モデル
     * @return 登録件数
     */
    int insert(M record);

    /**
     * モデルに値がnullでない項目を登録.
     *
     * @param record
     *            モデル
     * @return 登録件数
     */
    int insertSelective(M record);

    /**
     * 条件によるモデルのリスト取得.
     *
     * @param example
     *            条件
     * @return 条件による検索結果
     */
    List<M> selectByExample(Q example);

    /**
     * キーによるモデルの取得.
     *
     * @param key
     *            キー
     * @return キーによる検索結果
     */
    M selectByPrimaryKey(K key);

    /**
     * 条件によるモデルに値がnullでない項目で更新.
     *
     * @param record
     *            モデル
     * @param example
     *            条件
     * @return 更新件数
     */
    int updateByExampleSelective(@Param("record") M record, @Param("example") Q example);

    /**
     * 条件によるモデルの項目で更新.
     *
     * @param record
     *            モデル
     * @param example
     *            条件
     * @return 更新件数
     */
    int updateByExample(@Param("record") M record, @Param("example") Q example);

    /**
     * モデルのキーによるモデルに値がnullでない項目で更新.
     *
     * @param record
     *            モデル
     * @return 更新件数
     */
    int updateByPrimaryKeySelective(M record);

    /**
     * モデルのキーによるモデルの項目で更新.
     *
     * @param record
     *            モデル
     * @return 更新件数
     */
    int updateByPrimaryKey(M record);
}

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;

/**
 * プラントサービス.

@Service
public interface PlantService extends AbstractService<MPlant, MPlantKey, MPlantExample> {

    /**
     * @param pageable
     *            Pageable
     * @param example
     *            example
     * @return PlantViewPageDtoページ
     */
    Page<PlantViewPageDto> getPageByExample(Pageable pageable, MPlantExample example);

}

==================================================

package com.isurp.neo.domain.service;

import java.util.List;

import org.apache.ibatis.session.RowBounds;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.isurp.neo.domain.model.MPlant;
import com.isurp.neo.domain.model.MPlantExample;
import com.isurp.neo.domain.model.MPlantKey;
import com.isurp.neo.domain.model.PlantViewPageDto;
import com.isurp.neo.domain.repository.MPlantMapperExt;

@Service
@Transactional
public class PlantServiceImpl implements PlantService {

    /**
     *
     */
    @Autowired
    private MPlantMapperExt mPlantMapperExt;

    /*
     * (non-Javadoc)
     *
     * @see
     * com.isurp.neo.domain.service.AbstractService#countByExample(java.lang.
     * Object)
     */
    @Override
    public long countByExample(MPlantExample example) {
        return mPlantMapperExt.countByExample(example);
    }

    /*
     * (non-Javadoc)
     *
     * @see
     * com.isurp.neo.domain.service.AbstractService#deleteByExample(java.lang.
     * Object)
     */
    @Override
    public int deleteByExample(MPlantExample example) {
        return mPlantMapperExt.deleteByExample(example);
    }

    /*
     * (non-Javadoc)
     *
     * @see
     * com.isurp.neo.domain.service.AbstractService#deleteByPrimaryKey(java.lang
     * .Object)
     */
    @Override
    public int deleteByPrimaryKey(MPlantKey key) {
        return mPlantMapperExt.deleteByPrimaryKey(key);
    }

    /*
     * (non-Javadoc)
     *
     * @see
     * com.isurp.neo.domain.service.AbstractService#insert(java.lang.Object)
     */
    @Override
    public int insert(MPlant record) {
        return mPlantMapperExt.insert(record);
    }

    /*
     * (non-Javadoc)
     *
     * @see
     * com.isurp.neo.domain.service.AbstractService#insertSelective(java.lang.
     * Object)
     */
    @Override
    public int insertSelective(MPlant record) {
        return mPlantMapperExt.insertSelective(record);
    }

    /*
     * (non-Javadoc)
     *
     * @see
     * com.isurp.neo.domain.service.AbstractService#selectByExample(java.lang.
     * Object)
     */
    @Override
    public List<MPlant> selectByExample(MPlantExample example) {
        return mPlantMapperExt.selectByExample(example);
    }

    /*
     * (non-Javadoc)
     *
     * @see
     * com.isurp.neo.domain.service.AbstractService#selectByPrimaryKey(java.lang
     * .Object)
     */
    /*
     * (non-Javadoc)
     *
     * @see
     * com.isurp.neo.domain.service.AbstractService#selectByPrimaryKey(java.lang
     * .Object)
     */
    @Override
    public MPlant selectByPrimaryKey(MPlantKey key) {
        return mPlantMapperExt.selectByPrimaryKey(key);
    }

    /*
     * (non-Javadoc)
     *
     * @see
     * com.isurp.neo.domain.service.AbstractService#updateByExampleSelective(
     * java.lang.Object, java.lang.Object)
     */
    @Override
    public int updateByExampleSelective(MPlant record, MPlantExample example) {
        return mPlantMapperExt.updateByExampleSelective(record, example);
    }

    /*
     * (non-Javadoc)
     *
     * @see
     * com.isurp.neo.domain.service.AbstractService#updateByExample(java.lang.
     * Object, java.lang.Object)
     */
    @Override
    public int updateByExample(MPlant record, MPlantExample example) {
        return mPlantMapperExt.updateByExample(record, example);
    }

    /*
     * (non-Javadoc)
     *
     * @see
     * com.isurp.neo.domain.service.AbstractService#updateByPrimaryKeySelective(
     * java.lang.Object)
     */
    @Override
    public int updateByPrimaryKeySelective(MPlant record) {
        return mPlantMapperExt.updateByPrimaryKeySelective(record);
    }

    /*
     * (non-Javadoc)
     *
     * @see
     * com.isurp.neo.domain.service.AbstractService#updateByPrimaryKey(java.lang
     * .Object)
     */
    @Override
    public int updateByPrimaryKey(MPlant record) {
        return mPlantMapperExt.updateByPrimaryKey(record);
    }

    // /* (non-Javadoc)
    // * @see
    // com.isurp.neo.domain.service.PlantService#getfindAllPages(org.springframework.data.domain.Pageable)
    // */
    // @Override
    // public Page<PlantViewPageDto> getfindAllPages(Pageable pageable) {
    // // 全件取得
    // RowBounds rowBounds = new RowBounds(pageable.getOffset(),
    // pageable.getPageSize());
    // long count = mPlantMapperExt.countByExample(null);
    // List<PlantViewPageDto> list =
    // mPlantMapperExt.selectPageByExample(rowBounds);
    // return new PageImpl<>(list, pageable, count);
    // }

    /*
     * (non-Javadoc)
     *
     * @see com.isurp.neo.domain.service.PlantService#getPageByExample(org.
     * springframework.data.domain.Pageable,
     * com.isurp.neo.domain.model.MPlantExample)
     */
    @Override
    public Page<PlantViewPageDto> getPageByExample(Pageable pageable, MPlantExample example) {
        // 全件取得
        RowBounds rowBounds = new RowBounds(pageable.getOffset(), pageable.getPageSize());
        long count = mPlantMapperExt.countByExample(example);
        List<PlantViewPageDto> list = mPlantMapperExt.selectViewPageByExample(rowBounds, example);
        return new PageImpl<>(list, pageable, count);
    }

}
==================================================

src/generated/java
---> package com.isurp.neo.domain.model;
table..

package com.isurp.neo.domain.repository;
table mapper

src/generated/resources
---> domain ---> repository ---> mapper.xml..

package com.isurp.neo.app.blogic;

import org.springframework.stereotype.Service;

import com.isurp.neo.app.dto.PlantManagementInitBLogicInputDto;
import com.isurp.neo.app.dto.PlantManagementInitBLogicOutputDto;

@Service
public interface PlantManagementInitBLogic {

    /**
     *
     * @param inputDto
     * @return
     */
    PlantManagementInitBLogicOutputDto excute(PlantManagementInitBLogicInputDto inputDto);

}


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Service;

@Service
public class PlantManagementInitBLogicImpl implements PlantManagementInitBLogic {

    /**
     * プラントサービス.
     */
    @Autowired
    private PlantService plantService;

    /*
     * (non-Javadoc)
     *
     * @see
     * com.isurp.neo.app.blogic.PlantManagementInitBLogic#excute(com.isurp.neo.
     * app.dto.PlantManagementInitBLogicInputDto)
     */
    @Override
    public PlantManagementInitBLogicOutputDto excute(PlantManagementInitBLogicInputDto inputDto) {
        // 全件取得
        MPlantExample example = new MPlantExample();
        example.createCriteria().andCompanyCodeEqualTo(inputDto.getCompanyCode())
                .andDeleteFlagNotEqualTo(DeleteFlagEnum.ON.getValue());
        example.setOrderByClause("plant_code");
        Page<PlantViewPageDto> page = plantService.getPageByExample(inputDto.getPageable(), example);

        // 結果
        PlantManagementInitBLogicOutputDto outputDto = new PlantManagementInitBLogicOutputDto();
        outputDto.setPage(page);
        return outputDto;
    }

}


 */
@Service
public interface PlantRegistConfirmRegisterBLogic {

    /**
     *  ロジック実行.
     *
     * @param inputDto ロジックパラメータ
     * @return ロジック結果
     */
    PlantRegistConfirmRegisterBLogicOutputDto execute(PlantRegistConfirmRegisterBLogicInputDto inputDto);

}

import java.sql.Timestamp;
import java.time.LocalDateTime;
import java.util.Date;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.terasoluna.gfw.common.exception.BusinessException;

@Service
@Transactional
public class PlantRegistConfirmRegisterBLogicImpl implements PlantRegistConfirmRegisterBLogic {

/** プラントサービス. */
@Autowired
private PlantService plantService;

/**
* ロジック実行.
*
* @param inputDto
*            ロジックパラメータ
* @return ロジック結果
*/
@Override
public PlantRegistConfirmRegisterBLogicOutputDto execute(final PlantRegistConfirmRegisterBLogicInputDto inputDto) {

MPlant mPlant = inputDto.getmPlant();

MPlantKey key = new MPlantKey();
key.setCompanyCode(mPlant.getCompanyCode());
key.setPlantCode(mPlant.getPlantCode());
MPlant selectedMPlant = plantService.selectByPrimaryKey(key);

// 重複データがある場合、エラー
if (selectedMPlant != null) {
throw new BusinessException("e.ne.fw.9001");
}

Date createDate = Timestamp.valueOf(LocalDateTime.now());
mPlant.setCreateDate(createDate);
mPlant.setUpdateDate(createDate);
mPlant.setDeleteFlag(DeleteFlagEnum.OFF.getValue());
mPlant.setCreateUserId(inputDto.getUpdateUserId());
mPlant.setUpdateUserId(inputDto.getUpdateUserId());

// プラント
plantService.insert(mPlant);

return new PlantRegistConfirmRegisterBLogicOutputDto();

}

}


댓글 없음:

댓글 쓰기