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();
}
}
댓글 없음:
댓글 쓰기