hd/pipe/common/src/main/java/com/thhy/general/config/SysUserInfo.java
@@ -76,4 +76,8 @@ private String enableButtons; private Integer userType; private String proLineId; private String proLineName; } hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/login/controller/LoginController.java
@@ -3,12 +3,18 @@ import com.thhy.general.common.BasicResult; import com.thhy.general.common.entity.SysUserDto; import com.thhy.mobile.modules.biz.login.entity.LoginVo; import com.thhy.mobile.modules.biz.login.entity.ProLineDto; import com.thhy.mobile.modules.biz.login.service.LoginService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import java.util.HashMap; import java.util.List; import java.util.Map; @RestController @RequestMapping("login") @@ -20,7 +26,24 @@ @PostMapping public BasicResult login(@RequestBody SysUserDto sysUserDto){ LoginVo loginVO = loginService.login(sysUserDto); return BasicResult.success(loginVO); } @RequestMapping("proLines") public BasicResult proLines(){ List<HashMap<String,Object>> mapList = loginService.proLines(); return BasicResult.success(mapList); } @RequestMapping("choseLine") public BasicResult choseLine(@RequestBody ProLineDto proLineDto, HttpServletRequest request){ Map<String, Object> map = loginService.choseLine(proLineDto,request); return BasicResult.success(map); } @RequestMapping("commitLinePlan") public BasicResult commitLinePlan(@RequestBody ProLineDto proLineDto){ loginService.commitLinePlan(proLineDto); return BasicResult.success(); } } hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/login/entity/ProLineDto.java
对比新文件 @@ -0,0 +1,16 @@ package com.thhy.mobile.modules.biz.login.entity; import lombok.Data; import java.io.Serializable; import java.util.List; @Data public class ProLineDto implements Serializable { private String proLineId; private String dateStr; private List<String> ringNums; } hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/login/entity/ProLinePlan.java
对比新文件 @@ -0,0 +1,22 @@ package com.thhy.mobile.modules.biz.login.entity; import com.thhy.general.annotations.Idkey; import lombok.Data; import java.io.Serializable; import java.util.Date; @Data public class ProLinePlan implements Serializable { @Idkey private String id; private String proLineId; private String ringNum; private Date setDayStart; private Date setDayEnd; } hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/login/mapper/SysUserMapper.java
@@ -1,9 +1,11 @@ package com.thhy.mobile.modules.biz.login.mapper; import com.thhy.general.common.entity.SysUserDto; import com.thhy.mobile.modules.biz.login.entity.ProLinePlan; import com.thhy.mobile.modules.biz.login.entity.SysUsers; import java.util.HashMap; import java.util.List; public interface SysUserMapper { @@ -12,4 +14,16 @@ HashMap<String,Object> queryCompanyByComAdmin(String userId); HashMap<String,Object> queryCompanyByUser(String userId); List<HashMap<String,Object>> queryAllProLine(); String queryProLineNameById(String proLineId); int countTodayLinePlanByLineId(String proLineId); String checkPipeExitsByRingNums(List<String> ringNumList); String checkPlanExitsByRingNums(List<String> ringNumList); void insertProLinePlan(ProLinePlan proLinePlan); } hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/login/service/LoginService.java
@@ -2,8 +2,20 @@ import com.thhy.general.common.entity.SysUserDto; import com.thhy.mobile.modules.biz.login.entity.LoginVo; import com.thhy.mobile.modules.biz.login.entity.ProLineDto; import javax.servlet.http.HttpServletRequest; import java.util.HashMap; import java.util.List; import java.util.Map; public interface LoginService { LoginVo login(SysUserDto sysUserDto); List<HashMap<String,Object>> proLines(); Map<String,Object> choseLine(ProLineDto proLineDto, HttpServletRequest request); void commitLinePlan(ProLineDto proLineDto); } hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/login/service/impl/LoginServiceImpl.java
@@ -1,5 +1,6 @@ package com.thhy.mobile.modules.biz.login.service.impl; import com.thhy.general.common.BasicMessage; import com.thhy.general.common.BasicStatus; import com.thhy.general.common.entity.SysUserDto; import com.thhy.general.config.BasicContext; @@ -8,20 +9,24 @@ import com.thhy.general.exception.BasicException; import com.thhy.general.utils.DeepCopyUtils; import com.thhy.general.utils.UUIDUtils; import com.thhy.general.utils.UserInfoUtils; import com.thhy.general.utils.password.PasswdUtils; import com.thhy.mobile.modules.biz.login.entity.LoginVo; import com.thhy.mobile.modules.biz.login.entity.PdaMenuVo; import com.thhy.mobile.modules.biz.login.entity.SysUsers; import com.thhy.mobile.modules.biz.login.entity.*; import com.thhy.mobile.modules.biz.login.mapper.SysUserMapper; import com.thhy.mobile.modules.biz.login.service.LoginService; import com.thhy.mobile.modules.biz.menu.entity.Menu; import com.thhy.mobile.modules.biz.menu.mapper.MenuMapper; import org.apache.commons.lang3.StringUtils; import org.checkerframework.checker.units.qual.C; import org.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.HashMap; import java.util.List; import javax.servlet.http.HttpServletRequest; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.TimeUnit; @Service @@ -74,4 +79,91 @@ BasicContext.setToken(token); return new LoginVo(token,menuList,sysUserInfo); } @Override public List<HashMap<String,Object>> proLines() { return sysUsersMapper.queryAllProLine(); } @Override public Map<String, Object> choseLine(ProLineDto proLineDto, HttpServletRequest request) { SysUserInfo userInfo = UserInfoUtils.getInstance().getUserInfo(); String token = request.getHeader("usertoken"); String proLineName = sysUsersMapper.queryProLineNameById(proLineDto.getProLineId()); userInfo.setProLineId(proLineDto.getProLineId()); userInfo.setProLineName(proLineName); long min = tokentime(); redissonClient.getBucket(globalConfig.getKeyPrefix()+":usertoken:"+ token).trySet(userInfo,min, TimeUnit.MINUTES); int count = sysUsersMapper.countTodayLinePlanByLineId(proLineDto.getProLineId()); Map<String,Object> map = new HashMap<>(); if(count>0){ map.put("dateset",false); }else { map.put("dateset",true); } return map; } @Transactional @Override public void commitLinePlan(ProLineDto proLineDto) { List<String> ringNums = proLineDto.getRingNums(); String ringNumExits = sysUsersMapper.checkPipeExitsByRingNums(ringNums); if(!StringUtils.isEmpty(ringNumExits)){ throw new BasicException(new BasicMessage("00900",ringNumExits+"环号已存在")); } String ringNumPlanExits = sysUsersMapper.checkPlanExitsByRingNums(ringNums); if(!StringUtils.isEmpty(ringNumPlanExits)){ throw new BasicException(new BasicMessage("00901",ringNumPlanExits+"环号其他产线已存在")); } ProLinePlan proLinePlan = new ProLinePlan(); proLinePlan.setProLineId(proLineDto.getProLineId()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { Date start = sdf.parse(proLineDto.getDateStr()+" 07:00:00"); Calendar calendar = Calendar.getInstance(); calendar.setTime(start); calendar.add(Calendar.DAY_OF_MONTH,1); Date end = calendar.getTime(); proLinePlan.setSetDayStart(start); proLinePlan.setSetDayEnd(end); } catch (ParseException e) { throw new RuntimeException(e); } for(String ringNum : ringNums){ proLinePlan.setRingNum(ringNum); sysUsersMapper.insertProLinePlan(proLinePlan); } } public long tokentime(){ Date currentTime = new Date(); SimpleDateFormat sdfStand = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat sdfSeven = new SimpleDateFormat("yyyy-MM-dd 07:00:00"); String todaySevenStr = sdfSeven.format(currentTime); Date todaySeven = null; try { todaySeven = sdfStand.parse(todaySevenStr); } catch (ParseException e) { throw new RuntimeException(e); } if(currentTime.getTime()>todaySeven.getTime()){ //当前时间大于 当天7点 Calendar calendar = Calendar.getInstance(); calendar.setTime(todaySeven); calendar.add(Calendar.DAY_OF_MONTH,1); Date tommSeven = calendar.getTime(); long diff = (tommSeven.getTime()-currentTime.getTime())/1000/60; return diff; }else{ long diff = (todaySeven.getTime()-currentTime.getTime())/1000/60; return diff; } } public static void main(String[] args) throws Exception{ } } hd/pipe/mobile/src/main/resources/mapping/SysUsersMapper.xml
@@ -98,4 +98,86 @@ left join sys_company sc on sc.company_id = scd.company_id where su.user_id = #{userId} and su.is_use = 1 </select> <select id="queryAllProLine" resultType="hashmap"> select pro_line_id as proLineId,pro_line_name as proLineName from t_pro_line </select> <select id="queryProLineNameById" resultType="string"> select pro_line_name as proLineName from t_pro_line where pro_line_id = #{proLineId}, </select> <select id="countTodayLinePlanByLineId" resultType="int"> select count(id) from t_pro_line_plan plp where plp.pro_line_id = #{proLineId} and sysdate() >= plp.set_day_start and sysdate() <= plp.set_day_end </select> <select id="checkPipeExitsByRingNums" resultType="string"> select group_cancat(a.ringNum) as ringnums (select DISTINCT ring_num as ringNum,1 as wl from t_pipe_info <where> <foreach open="ring_num in (" separator="," close=")" collection="ringNumList" item="ringnum" index="ri"> #{ringnum} </foreach> </where> ) a group by a.wl </select> <select id="checkPlanExitsByRingNums" resultType="string"> select group_cancat(a.ringNum) as ringnums (select DISTINCT ring_num as ringNum,1 as wl from t_pro_line_plan <where> <trim suffixOverrides="and"> <foreach open="ring_num in (" separator="," close=") and" collection="ringNumList" item="ringnum" index="ri"> #{ringnum} </foreach> pro_line_id != #{proLineId} and sysdate() >= set_day_start and sysdate() <= set_day_end and </trim> </where> ) a group by a.wl </select> <insert id="insertProLinePlan"> insert into t_pro_line_plan <trim prefix="(" suffix=")" suffixOverrides=","> <if test="id !=null and id !=''"> id, </if> <if test="proLineId !=null and proLineId !=''"> pro_line_id, </if> <if test="setDayStart != null"> set_day_start, </if> <if test="setDayEnd != null"> set_day_end, </if> <if test="ringNum != null and ringNum !=''"> ring_num, </if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="id !=null and id !=''"> #{id}, </if> <if test="proLineId !=null and proLineId !=''"> #{proLineId}, </if> <if test="setDayStart != null"> #{setDayStart}, </if> <if test="setDayEnd != null"> #{setDayEnd}, </if> <if test="ringNum != null and ringNum !=''"> #{ringNum}, </if> </trim> </insert> </mapper>