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