web端一個增刪改查例子
1.水電費抄表資訊
@Controller
@RequestMapping("/sdjfgl/sdfcbxx")
@FunctionModule(value = "水電費抄表資訊", entry = "/sdjfgl/sdfcbxx", parent = "水電繳費管理")
public class SdfcbxxController extends BaseController {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
/** 水電費抄表資訊Service*/
@Autowired
private SdfcbxxService sdfcbxxService;
/**
* 載入水電費抄表頁面
* @return
*/
@FunctionItem(value = "查詢", code = "sdfcb:query")
@RequiresPermissions(value={"sdfcb:query"})
@RequestMapping(method = RequestMethod.GET)
public String index() {
return "sdjfgl/sdfcbxx/sdfcbxx";
}
/**
* 載入水電費抄表列表
* @param SdfcbxxDto
* @param page
* @param size
* @param sortField
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.POST)
public ModelAndView query(SdfcbxxDto queryDto,
@RequestParam(value = "page", defaultValue = "1") int page,
@RequestParam(value = "rows", defaultValue = Constants.PAGE_SIZE) int size,
@RequestParam(value = "sortField", defaultValue = "gxsj") String sortField) {
long startTime = System.currentTimeMillis();
Map<String,String> sortMap = null;
//sortMap = toTreeMap("{'"+sortField+"'='"+Direction.DESC.toString().toLowerCase()+"'}");
List<SdfcbxxDto> sdfcbxxLi = null;
try {
sdfcbxxLi = sdfcbxxService.getSdfcbxx(page, size, queryDto, sortMap);
} catch (Exception e) {
e.printStackTrace();
}
long endTime = System.currentTimeMillis();
logger.info("[service]執行時間:"+(endTime-startTime)+"ms");
ModelAndView mv = new ModelAndView("sdjfgl/sdfcbxx/sdfcbxx_list");
mv.addObject("total", sdfcbxxService.getContent(queryDto,sortMap)); // 總記錄數
mv.addObject("sdfcbxxLi", sdfcbxxLi); // 物件列表
return mv;
}
/**
* 編輯/新增
*
* @param dto
* @param result
* @return
*/
@ResponseBody
@FunctionItem(value = "編輯",code = "sdfcb:edit")
@RequiresPermissions(value={"sdfcb:edit"})
@RequestMapping(value = "/save", method = RequestMethod.POST)
public Retval save(@Valid SdfcbxxDto dto, BindingResult result) {
Retval retval = Retval.newInstance();
// 表單校驗
if (result.hasErrors()) {
retval.fail(getErrorMessage(result));
return retval;
}
// 儲存
try {
sdfcbxxService.save(dto);
} catch (Exception e) {
logger.error("", e);
retval.fail();
}
return retval;
}
/**
* 獲取單個數據
*
* @param id
* @return
*/
@ResponseBody
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public Retval find(@PathVariable String id) {
SdfcbxxEntity entity = sdfcbxxService.findById(Long.valueOf(id));
Retval retval = Retval.newInstance();
retval.put("obj", entity);
return retval;
}
/**
* 刪除
*
* @param ids
* @return
*/
@ResponseBody
@FunctionItem(value = "刪除",code = "cxdw:delete")
@RequiresPermissions(value={"cxdw:delete"})
@RequestMapping(value = "/delete", method = RequestMethod.POST)
public Retval delete(@RequestParam Long[] ids) {
Retval retval = Retval.newInstance();
try {
sdfcbxxService.deleteByIds(ids);
} catch (DataIntegrityViolationException e) {
retval.fail(e.getMessage());
} catch (Exception e) {
logger.error(e.getMessage(), e);
retval.fail(e.getMessage());
}
return retval;
}
}
@Service
public class SdfcbxxService extends BaseService{
@PersistenceContext
private EntityManager entityManager;
/** 水電費抄表資訊Dao*/
@Autowired
private SdfcbxxDao sdfcbxxDao;
/** 原生sql查詢水電費抄表資訊 start **/
/**
* 查詢結果的封裝
*
* @param page
* @param size
* @param dto
* @param sortMap
* @return
* @throws Exception
*/
public List<SdfcbxxDto> getSdfcbxx(int page, int size, SdfcbxxDto dto, Map<String, String> sortMap) throws Exception {
Query query = getQuerySdfcbxx(dto, sortMap);
query.setFirstResult((page - 1) * size);
query.setMaxResults(size);
query.unwrap(SQLQuery.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
List<Map<String, Object>> list = query.getResultList();
List<SdfcbxxDto> sdfcbxxLi = new ArrayList<SdfcbxxDto>();
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
for (Map<String, Object> m : list) {
SdfcbxxDto sdfcbxxDto = new SdfcbxxDto();
sdfcbxxDto.setId(Long.valueOf(String.valueOf(m.get("id"))));
sdfcbxxDto.setCbny(sdf1.format(sdf1.parse(String.valueOf(m.get("cbny")))));
sdfcbxxDto.setFj(String.valueOf(m.get("ss")));
sdfcbxxDto.setQy(String.valueOf(m.get("qy")));
sdfcbxxDto.setLy(String.valueOf(m.get("ly")));
sdfcbxxDto.setDbengyue(BigDecimal.valueOf(Double.valueOf(String.valueOf(m.get("dby")))));
sdfcbxxDto.setDshangyue(BigDecimal.valueOf(Double.valueOf(String.valueOf(m.get("dsy")))));
sdfcbxxDto.setDshiyong(BigDecimal.valueOf(Double.valueOf(String.valueOf(m.get("dsy1")))));
sdfcbxxDto.setDzongzje(BigDecimal.valueOf(Double.valueOf(String.valueOf(m.get("dzje")))));
sdfcbxxDto.setLsbenyue(BigDecimal.valueOf(Double.valueOf(String.valueOf(m.get("lsby")))));
sdfcbxxDto.setLsshangyue(BigDecimal.valueOf(Double.valueOf(String.valueOf(m.get("lssy")))));
sdfcbxxDto.setLsshiyong(BigDecimal.valueOf(Double.valueOf(String.valueOf(m.get("lssy1")))));
sdfcbxxDto.setLshuizje(BigDecimal.valueOf(Double.valueOf(String.valueOf(m.get("lszje")))));
sdfcbxxDto.setRsbenyue(BigDecimal.valueOf(Double.valueOf(String.valueOf(m.get("rsby")))));
sdfcbxxDto.setRsshangyue(BigDecimal.valueOf(Double.valueOf(String.valueOf(m.get("rssy")))));
sdfcbxxDto.setRshiyong(BigDecimal.valueOf(Double.valueOf(String.valueOf(m.get("rssy1")))));
sdfcbxxDto.setRszje(BigDecimal.valueOf(Double.valueOf(String.valueOf(m.get("rszje")))));
sdfcbxxDto.setSzje(BigDecimal.valueOf(Double.valueOf(String.valueOf(m.get("szje")))));
sdfcbxxDto.setYjje(BigDecimal.valueOf(Double.valueOf(String.valueOf(m.get("yjje")))));
sdfcbxxDto.setSfjfzt(Integer.valueOf(String.valueOf(m.get("sfjfzt"))));
sdfcbxxDto.setDfjfzt(Integer.valueOf(String.valueOf(m.get("dfjfzt"))));
sdfcbxxDto.setJfsj(sdf2.format(sdf2.parse(String.valueOf(m.get("jfsj")))));
sdfcbxxLi.add(sdfcbxxDto);
}
return sdfcbxxLi;
}
/**
* 查詢語句的拼接
*
* @param shzt
* @param sortMap
* @return
* @throws Exception
*/
private Query getQuerySdfcbxx(SdfcbxxDto dto, Map<String, String> sortMap) {
Long ssxx = getSchoolId();
Query query = null;
String sql = BeanContainer.getBeanContainer().getBean("QuerySdfcbxx").toString();
StringBuffer sb = new StringBuffer();
sb.append(sql);
query = entityManager.createNativeQuery(SqlUtils.getSql(sb.toString(), sortMap));
query.setParameter("ssxx", ssxx);
if(StringUtils.isNotBlank(dto.getCbny())){
query.setParameter("cbny", "%"+dto.getCbny()+"%");
}else{
query.setParameter("cbny", null);
}
if(StringUtils.isNotBlank(dto.getFj())){
query.setParameter("fj", "%"+dto.getFj()+"%");
}else{
query.setParameter("fj", null);
}
if(StringUtils.isNotBlank(dto.getLy())){
query.setParameter("lyid", dto.getLy());
}else{
query.setParameter("lyid", null);
}
if(StringUtils.isNotBlank(dto.getQy())){
query.setParameter("qyid", dto.getQy());
}else{
query.setParameter("qyid", null);
}
return query;
}
/**
* 查詢水電費抄表的總資料
*
* @param dto
* @param wslr
* @param bxztList
* @param sortMap
* @return
*/
public int getContent(SdfcbxxDto dto, Map<String, String> sortMap) {
int content = 0;
try {
content = getQuerySdfcbxx(dto,sortMap).getResultList().size();
} catch (Exception e) {
e.printStackTrace();
}
return content;
}
/**
* 編輯/新增
*
* @param dto
* @throws Exception
*/
@Transactional
public void save(SdfcbxxDto dto) throws Exception {
SdfcbxxEntity entity = null;
if(dto.getId() == null){
entity = new SdfcbxxEntity();
}else{
entity = sdfcbxxDao.findOne(dto.getId());
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
entity.setCbny(sdf.parse(dto.getCbny()));
if(dto.getFj() != null){
FjEntity fj = new FjEntity();
fj.setId(Long.valueOf(dto.getFj()));
entity.setFj(fj);
}
entity.setDbengyue(dto.getDbengyue());
entity.setDshangyue(dto.getDshangyue());
entity.setDshiyong(dto.getDshiyong());
entity.setDzongzje(dto.getDzongzje());
entity.setLsbenyue(dto.getLsbenyue());
entity.setLsshangyue(dto.getLsshangyue());
entity.setLsshiyong(dto.getLsshiyong());
entity.setLshuizje(dto.getLshuizje());
entity.setRsbenyue(dto.getRsbenyue());
entity.setRsshangyue(dto.getRsshangyue());
entity.setRshiyong(dto.getRshiyong());
entity.setRszje(dto.getRszje());
entity.setSfjfzt(1);
entity.setDfjfzt(1);
entity.setJfsj(sdf.parse(dto.getJfsj()));
super.save(entity, dto);
}
/**
* 獲取單個數據
*
* @param id
* @return
*/
public SdfcbxxEntity findById(Long id){
SdfcbxxEntity entity = sdfcbxxDao.findOne(id);
return entity;
}
/**
* 批量刪除
*
* @param ids
* @throws DataIntegrityViolationException
* @throws SQLException
*/
@Transactional
public void deleteByIds(Long[] ids) throws DataIntegrityViolationException, SQLException {
sdfcbxxDao.deleteByIds(ids);
}