package com.hainei.service.impl.wp.sbgl; import com.hainei.common.constants.BaseConstant; import com.hainei.common.enums.YesOrNo; import com.hainei.common.token.JwtTokenUtil; import com.hainei.mapper.base.BaseLogMapper; import com.hainei.mapper.base.BaseUserMapper; import com.hainei.mapper.wp.aqzd.WpFileMapper; import com.hainei.mapper.wp.aqzd.WpGzzdglMapper; import com.hainei.mapper.wp.aqzd.WpZdpsjlMapper; import com.hainei.mapper.wp.fileManage.WpFileManageMapper; import com.hainei.mapper.wp.sbgl.WpYfbyMapper; import com.hainei.pojo.bo.wp.fileManage.WpFileManageBO; import com.hainei.pojo.bo.wp.sbgl.WpYfbyBO; import com.hainei.pojo.model.base.BaseLog; import com.hainei.pojo.model.wp.fileManage.WpFileManage; import com.hainei.pojo.model.wp.sbgl.WpYfby; import com.hainei.pojo.vo.wp.fileManage.WpFileManageVO; import com.hainei.pojo.vo.wp.sbgl.WpYfbyVO; import com.hainei.service.base.BaseDataTableService; import com.hainei.service.base.BaseOrganizationService; import com.hainei.service.wp.aqzd.WpFileService; import com.hainei.service.wp.sbgl.WpYfbyService; import com.hainei.service.wp.zyaqgl.WpZypNumService; import org.joda.time.LocalDate; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import tk.mybatis.mapper.entity.Example; import javax.servlet.http.HttpServletRequest; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.Instant; import java.time.LocalDateTime; import java.util.*; /** * Created with IntelliJ IDEA. * User:wq * Date:2021/1/4 * Time: 18:34 * Description: */ @Service @Transactional public class WpYfbyServiceImpl implements WpYfbyService { @Autowired private WpYfbyMapper wpYfbyMapper; @Autowired private HttpServletRequest request; @Autowired private BaseOrganizationService organizationService; @Autowired private BaseDataTableService dataTableService; @Autowired private WpZypNumService zypNumService; @Autowired private BaseUserMapper userMapper; @Override public void addRecord(WpYfbyBO wpYfbyBO) { String token = request.getHeader(BaseConstant.ACCESS_TOKEN); String userId = JwtTokenUtil.getUserId(token); String id = UUID.randomUUID().toString().replaceAll("-", ""); WpYfby wpYfby = new WpYfby(); BeanUtils.copyProperties(wpYfbyBO, wpYfby); wpYfby.setId(id); //wpYfby.setFileNum(zypNumService.getZypNum("AQWJ")); wpYfby.setIsDeleted(YesOrNo.NO.type); wpYfby.setGmtCreatedOn(new Date()); wpYfby.setGmtCreatedBy(userId); //添加數據權限表 Set<String> organizationIdsByUserId = organizationService.getOrganizationIdsByUserId(userId); //3.插入數據權限 dataTableService.insert(organizationIdsByUserId, id); wpYfbyMapper.insertSelective(wpYfby); } @Override public void deleteByIds(List<String> ids) { for (String id : ids) { WpYfby wpYfby = new WpYfby(); wpYfby.setId(id); wpYfby.setIsDeleted(YesOrNo.YES.type); wpYfbyMapper.updateByPrimaryKeySelective(wpYfby); } } @Override public void updateRecord(WpYfbyBO wpYfbyBO) { String token = request.getHeader(BaseConstant.ACCESS_TOKEN); String userId = JwtTokenUtil.getUserId(token); WpYfby wpYfby = new WpYfby(); wpYfby.setGmtUpdatedBy(userId); BeanUtils.copyProperties(wpYfbyBO, wpYfby); wpYfbyMapper.updateByPrimaryKeySelective(wpYfby); } @Override public WpYfbyVO getById(String id) { WpYfbyVO byId = wpYfbyMapper.getById(id); putWfValue(byId); return byId; } @Override public List<WpYfbyVO> listAll(WpYfbyBO wpYfbyBO) { String token = request.getHeader(BaseConstant.ACCESS_TOKEN); String userId = JwtTokenUtil.getUserId(token); wpYfbyBO.setGmtCreatedBy(userId); List<WpYfbyVO> wpFileManageVOS = wpYfbyMapper.listAllRecord(wpYfbyBO); wpFileManageVOS.stream().filter(p -> p != null).forEach(p -> putWfValue(p)); return wpFileManageVOS; } void putWfValue(WpYfbyVO yfbyVO) { if(yfbyVO !=null){ // fileManageVO.setFj(fileMapper.getByKeys(fileManageVO.getId(), (byte) 1)); //fileManageVO.setGmtCreatedBy(userMapper.getById(fileManageVO.getGmtCreatedBy()).getName()); if(yfbyVO.getZrr()!=null&&!"".equals(yfbyVO.getZrr())){ yfbyVO.setZrr(userMapper.getById(yfbyVO.getZrr()).getName()); } if(yfbyVO.getByrq()!=null&!"".equals(yfbyVO.getByrq())){ yfbyVO.setXcbyzq(getXcbyzq(yfbyVO.getByrq(),yfbyVO.getZxzqdw(),yfbyVO.getZxzq())); } } } /** * 下次保養日期 * @param byrq * @param zxzqdw * @return */ String getXcbyzq(String byrq,String zxzqdw,Integer zxzq ){ String s=null; java.time.LocalDate localDate = null; if(byrq != null && !"".equals(byrq)&& zxzqdw != null && !"".equals(zxzqdw) && zxzq != null&& !"".equals(zxzq)){ LocalDate parse = LocalDate.parse(byrq); s= transLocalDate(parse, zxzq, zxzqdw); } return s; } String transLocalDate(LocalDate parse,Integer zxzq,String zxzqdw){ Integer year = null; Integer month=null; Integer day= null; year = parse.getYear(); month =parse.getMonthOfYear(); day = parse.getDayOfMonth(); switch (zxzqdw){ case "年": year = parse.getYear()+ zxzq; break; case "月": month = parse.getMonthOfYear()+ zxzq; break; case "日": day = parse.getDayOfMonth()+ zxzq; case "季": month = parse.getMonthOfYear()+ zxzq*3; break; default: throw new IllegalStateException("Unexpected value: " + zxzqdw); } java.time.LocalDate result = java.time.LocalDate.of(year, month, day); return result.toString(); } Date dateFormate(String byrq,String format){ Date date = null; SimpleDateFormat sdf = new SimpleDateFormat(format); try { date = sdf.parse(byrq); } catch (ParseException e) { e.printStackTrace(); } return date; } String DateStr(Date date){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String dateStr = sdf.format(date); return dateStr; } }
/** * 下次保養日期 * @param byrq * @param zxzqdw * @return */ String getXcbyzq(String byrq,String zxzqdw,Integer zxzq ){ String s=null; java.time.LocalDate localDate = null; if(byrq != null && !"".equals(byrq)&& zxzqdw != null && !"".equals(zxzqdw) && zxzq != null&& !"".equals(zxzq)){ LocalDate parse = LocalDate.parse(byrq); s= transLocalDate(parse, zxzq, zxzqdw); } return s; } String transLocalDate(LocalDate parse,Integer zxzq,String zxzqdw){ Integer year = null; Integer month=null; Integer day= null; year = parse.getYear(); month =parse.getMonthOfYear(); day = parse.getDayOfMonth(); switch (zxzqdw){ case "年": year = parse.getYear()+ zxzq; break; case "月": month = parse.getMonthOfYear()+ zxzq; break; case "日": day = parse.getDayOfMonth()+ zxzq; case "季": month = parse.getMonthOfYear()+ zxzq*3; break; default: throw new IllegalStateException("Unexpected value: " + zxzqdw); } java.time.LocalDate result = java.time.LocalDate.of(year, month, day); return result.toString(); }
JDK8時間日期類LocalDateTime
- LocalDate 表示日期(年月日)
- LocalTime 表示時間(時分秒)
- LocalDateTime 表示時間+ 日期 (年月日時分秒)
LocalDateTime創建方法 (應用)
方法名
public static LocalDateTime now()
獲取當前系統時間
public static LocalDateTime of (年, 月 , 日, 時, 分, 秒)
使用指定年月日和時分秒初始化一個LocalDateTime對象
public class JDK8DateDemo2 { public static void main(String[] args) { //獲取當前系統時間 LocalDateTime now = LocalDateTime.now(); System.out.println(now); //使用指定年月日和時分秒初始化一個LocalDateTime對象 LocalDateTime localDateTime = LocalDateTime.of(2020, 11, 11, 11, 11, 11); System.out.println(localDateTime); } }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
LocalDateTime格式化和解析 (應用)
方法名說明
public String format (指定格式)
把一個LocalDateTime格式化成為一個字符串
public LocalDateTime parse (准備解析的字符串, 解析格式)
把一個日期字符串解析成為一個LocalDateTime對象
public static DateTimeFormatter ofPattern(String pattern)
使用指定的日期模板獲取一個日期格式化器DateTimeFormatter對象
public class JDK8DateDemo5 { public static void main(String[] args) { //method1(); //method2(); } private static void method2() { //public static LocalDateTime parse (准備解析的字符串, 解析格式) 把一個日期字符串解析成為一個LocalDateTime對象 String s = "2020年11月12日 13:14:15"; DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss"); LocalDateTime parse = LocalDateTime.parse(s, pattern); System.out.println(parse); } private static void method1() { LocalDateTime localDateTime = LocalDateTime.of(2020, 11, 12, 13, 14, 15); System.out.println(localDateTime); //public String format (指定格式) 把一個LocalDateTime格式化成為一個字符串 DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss"); String s = localDateTime.format(pattern); System.out.println(s); } }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
LocalDateTime減少或者增加時間的方法 (應用)
方法名
public LocalDateTime minusYears (long years)
減去或者添加年
public LocalDateTime minusMonths(long months)
減去或者添加月
public LocalDateTime minusDays(long days)
減去或者添加日
public LocalDateTime minusHours(long hours)
減去或者添加時
public LocalDateTime minusMinutes(long minutes)
減去或者添加分
public LocalDateTime minusSeconds(long seconds)
減去或者添加秒
public LocalDateTime minusWeeks(long weeks)
減去或者添加周
public class JDK8DateDemo7 { public static void main(String[] args) { //public LocalDateTime minusYears (long years) 減去或者添加年 LocalDateTime localDateTime = LocalDateTime.of(2020, 11, 11, 13, 14, 15); //LocalDateTime newLocalDateTime = localDateTime.minusYears(1); //System.out.println(newLocalDateTime); LocalDateTime newLocalDateTime = localDateTime.minusYears(-1); System.out.println(newLocalDateTime); } }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
LocalDateTime修改方法 (應用)
方法名
public LocalDateTime withYear(int year)
直接修改年
public LocalDateTime withMonth(int month)
直接修改月
public LocalDateTime withDayOfMonth(int dayofmonth)
直接修改日期(一個月中的第幾天)
public LocalDateTime withDayOfYear(int dayOfYear)
直接修改日期(一年中的第幾天)
public LocalDateTime withHour(int hour)
直接修改小時
public LocalDateTime withMinute(int minute)
直接修改分鍾
public LocalDateTime withSecond(int second)
直接修改秒
/** * JDK8 時間類修改時間 */ public class JDK8DateDemo8 { public static void main(String[] args) { //public LocalDateTime withYear(int year) 修改年 LocalDateTime localDateTime = LocalDateTime.of(2020, 11, 11, 13, 14, 15); // LocalDateTime newLocalDateTime = localDateTime.withYear(2048); // System.out.println(newLocalDateTime); LocalDateTime newLocalDateTime = localDateTime.withMonth(20); System.out.println(newLocalDateTime); } }
https://blog.csdn.net/fengzheng_00/article/details/108353252