张晓波
2023-12-12 d3e6773ef7cd0e11a444b41ec3da15938fabd85b
产线管理
已修改6个文件
已添加2个文件
277 ■■■■■ 文件已修改
hd/pipe/common/src/main/java/com/thhy/general/config/SysUserInfo.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/login/controller/LoginController.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/login/entity/ProLineDto.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/login/entity/ProLinePlan.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/login/mapper/SysUserMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/login/service/LoginService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/login/service/impl/LoginServiceImpl.java 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hd/pipe/mobile/src/main/resources/mapping/SysUsersMapper.xml 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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() &gt;= plp.set_day_start and sysdate() &lt;= 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() &gt;= set_day_start and sysdate() &lt;= 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>