From d3e6773ef7cd0e11a444b41ec3da15938fabd85b Mon Sep 17 00:00:00 2001 From: 张晓波 <bingbo1993@126.com> Date: 星期二, 12 十二月 2023 13:16:38 +0800 Subject: [PATCH] 产线管理 --- hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/login/controller/LoginController.java | 25 ++++ hd/pipe/common/src/main/java/com/thhy/general/config/SysUserInfo.java | 4 hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/login/mapper/SysUserMapper.java | 14 ++ hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/login/entity/ProLineDto.java | 16 +++ hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/login/entity/ProLinePlan.java | 22 ++++ hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/login/service/LoginService.java | 12 ++ hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/login/service/impl/LoginServiceImpl.java | 102 +++++++++++++++++++- hd/pipe/mobile/src/main/resources/mapping/SysUsersMapper.xml | 82 ++++++++++++++++ 8 files changed, 271 insertions(+), 6 deletions(-) diff --git a/hd/pipe/common/src/main/java/com/thhy/general/config/SysUserInfo.java b/hd/pipe/common/src/main/java/com/thhy/general/config/SysUserInfo.java index cb39b12..dd1db19 100644 --- a/hd/pipe/common/src/main/java/com/thhy/general/config/SysUserInfo.java +++ b/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; } diff --git a/hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/login/controller/LoginController.java b/hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/login/controller/LoginController.java index ba5b247..ab549d1 100644 --- a/hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/login/controller/LoginController.java +++ b/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(); + } } diff --git a/hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/login/entity/ProLineDto.java b/hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/login/entity/ProLineDto.java new file mode 100644 index 0000000..c2b0126 --- /dev/null +++ b/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; +} diff --git a/hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/login/entity/ProLinePlan.java b/hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/login/entity/ProLinePlan.java new file mode 100644 index 0000000..1ac4011 --- /dev/null +++ b/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; +} diff --git a/hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/login/mapper/SysUserMapper.java b/hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/login/mapper/SysUserMapper.java index 6fc9c5a..b735eef 100644 --- a/hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/login/mapper/SysUserMapper.java +++ b/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); } diff --git a/hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/login/service/LoginService.java b/hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/login/service/LoginService.java index 1e56279..4c76632 100644 --- a/hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/login/service/LoginService.java +++ b/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); } diff --git a/hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/login/service/impl/LoginServiceImpl.java b/hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/login/service/impl/LoginServiceImpl.java index 6c965c1..0b11934 100644 --- a/hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/login/service/impl/LoginServiceImpl.java +++ b/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{ + + } } diff --git a/hd/pipe/mobile/src/main/resources/mapping/SysUsersMapper.xml b/hd/pipe/mobile/src/main/resources/mapping/SysUsersMapper.xml index 0b0fa5c..9e4c0f0 100644 --- a/hd/pipe/mobile/src/main/resources/mapping/SysUsersMapper.xml +++ b/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> -- Gitblit v1.9.3