zoukankan      html  css  js  c++  java
  • 编号的生成(日期+序列号)

    经常会用到编号的生成,这边整理一下:

    先看controller方法:

    package com.simpleframework.bjno.controller;
    
    import java.util.HashMap;
    import java.util.Map;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    
    
    @Controller
    @RequestMapping("/serial")
    public class SerialController {
    
        @Autowired
        private SerialService serialService;
    
        
        
        /**
         * 获取编号
         * 
         * @param model
         * @param request
         * @return
         */
        @ResponseBody
        @RequestMapping("/getSipSdNo")
        public InvokeResult getSipSdNo(
                
                ) {
            try {
                Map returnResult = new HashMap();
                String dateString=serialService.getDateString();
                int sdNo = serialService.getInfSipSdNo();
                String serialNum = dateString + String.format("%04d", sdNo);
                returnResult.put("serialNo", serialNum);
                serialService.save(String.valueOf(sdNo),"");
                
                return InvokeResult.success(returnResult);
            } catch (Exception e) {
                return InvokeResult.failure(e.getMessage());
    
            }
    
        }
    }

    再看service,sql语句写在service中:

    package com.bjno.service.serviceImpl;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import org.springframework.stereotype.Service;
    import org.springframework.transaction.annotation.Transactional;
    import org.springframework.util.StringUtils;
    
    import com.simpleframework.bjno.model.InfApplyNo;
    import com.simpleframework.bjno.service.SerialService;
    import com.simpleframework.core.repo.RepositoryFactory;
    import com.simpleframework.core.repo.ServiceSupport;
    import com.simpleframework.core.repo.jpa.spi.SingleEntityManager;
    
    
    @Service
    @Transactional
    public class SerialServiceImpl extends ServiceSupport implements SerialService {
    
        private SingleEntityManager<InfApplyNo> internal = RepositoryFactory.get().build(InfApplyNo.class);
    
        @Override
        public void save(String applyNo,String sdNo) {
            InfApplyNo infApplyNo = new InfApplyNo();
            infApplyNo.setSdNo(StringUtils.isEmpty(sdNo)?"":sdNo);
            infApplyNo.setCreateDate(new Date());
            infApplyNo.setAppSdNo(StringUtils.isEmpty(applyNo)?"":applyNo);
            // infApplyNo.setId(null);
            internal.save(infApplyNo);
        }
    
        
    
        @Override
        public int getInfSipSdNo() {
            String sql = "select  max(to_number(APP_SD_NO))  " + "from  INF_APPLY_NO t "
                    + "where  to_char(CREATE_DATE,'YYYY-MM-DD')= to_char(sysdate,'YYYY-MM-DD') " + "and APP_SD_NO is not null ";
    
            
            Map<String, Object> param = new HashMap<>();
            List<Object[]> list = nativeQuery().setSql(sql).list();
            int sdNo;
            if (list != null && list.size() > 0 && list.get(0) != null) {
                sdNo = Integer.parseInt(String.valueOf(list.get(0))) + 1;
    
            } else {
                sdNo = 1;
            }
    
            return sdNo;
        }
        
        
    
        @Override
        public String getYwNo(String deptQlId, String deptYwNum) {
            String sql = "select  max(DEPT_YW_REG_NO)  " + "from  DEPT_YW_INF t " + "where DEPT_QL_ID=:deptQlId and DEPT_YW_NUM=:deptYwNum  ";
            String serialNo = "";
            Map<String, Object> param = new HashMap<>();
            param.put("deptQlId", deptQlId);
            param.put("deptYwNum", deptYwNum);
            List<Object[]> list = nativeQuery().setSql(sql).setParam(param).list();
            if (list != null && list.size() > 0 && list.get(0) != null) {
                serialNo = String.valueOf(list.get(0));
            }
            return serialNo;
        }
        
        
        @Override
        public String getSipYwNo(String deptQlId, String deptYwNum) {
            String sql = "select  max(YW_NAME_DESC)  " + "from  DEPT_YW_INF t " + "where DEPT_QL_ID=:deptQlId and DEPT_YW_NUM=:deptYwNum  ";
            String serialNo = "";
            Map<String, Object> param = new HashMap<>();
            param.put("deptQlId", deptQlId);
            param.put("deptYwNum", deptYwNum);
            List<Object[]> list = nativeQuery().setSql(sql).setParam(param).list();
            if (list != null && list.size() > 0 && list.get(0) != null) {
                serialNo = String.valueOf(list.get(0));
            }
            return serialNo;
        }
        
        
        @Override
        public String getDateString() {
            Date currentTime = new Date();
            SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
            String dateString = formatter.format(currentTime);
            return dateString;
        }
        
        
    }
  • 相关阅读:
    集合(双列)
    集合(单列)
    Struts2.0第三章(文件上传、ajax开发、json、Fastjson、Jackson、注解开发)
    Struts2.0第二章(封装数据获取请求参数、servlet api的获取、ServletActionContext、注入、ognl、valueStack、ActionContext、interceptor拦截器)
    Struts2.0第一章(struts2.0概述,使用步骤,执行流程,各配置文件介绍,Action详解)
    servlet3.0实现文件上传功能
    annotation注解
    ClassLoader类加载器
    Proxy 动态代理(在过滤器中对request使用动态代理解决接受参数乱码问题)
    Filter过滤器(自动登陆、通用的字符集编码的过滤【处理不同请求的乱码问题】、。。。)
  • 原文地址:https://www.cnblogs.com/rain-in-summer/p/7121911.html
Copyright © 2011-2022 走看看