Fancy
2024-06-25 bd2de27a5d0dbc8938856ba2cc9fd33a0dd170d7
pms-parent/pms-web-station/src/main/java/com/dy/pmsStation/workOrder/WorkOrderSv.java
@@ -1,10 +1,12 @@
package com.dy.pmsStation.workOrder;
import com.alibaba.excel.util.StringUtils;
import com.dy.common.webUtil.BaseResponseUtils;
import com.dy.pmsGlobal.daoBa.BaUserMapper;
import com.dy.pmsGlobal.daoOth.OthFileMapper;
import com.dy.pmsGlobal.daoPlt.PltStationMapper;
import com.dy.pmsGlobal.daoPr.PrAssemblyPlanMapper;
import com.dy.pmsGlobal.daoSta.StaAssemblyWorkHistoryMapper;
import com.dy.pmsGlobal.daoSta.StaAssemblyWorkLastMapper;
import com.dy.pmsGlobal.dyFile.FileOperate;
import com.dy.pmsGlobal.dyFile.FileRestVo;
@@ -14,6 +16,7 @@
import com.dy.pmsGlobal.pojoPr.PrAssemblyPlan;
import com.dy.pmsGlobal.pojoPr.PrProductionNode;
import com.dy.pmsGlobal.pojoPr.PrWorkingInstruction;
import com.dy.pmsGlobal.pojoSta.StaAssemblyWorkHistory;
import com.dy.pmsGlobal.pojoSta.StaAssemblyWorkLast;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
@@ -34,6 +37,7 @@
    private BaUserMapper baUserDao;
    private PltStationMapper pltStationDao;
    private StaAssemblyWorkLastMapper assemblyWorkLastDao;
    private StaAssemblyWorkHistoryMapper assemblyWorkHistoryDao;
    private FileOperate fileOperate;
    private OthFileMapper othFileMapper;
    @Value("${dy.webFile.fmUrl}")
@@ -49,6 +53,10 @@
    @Autowired
    private void setPltStationDao(PltStationMapper pltStationDao){
        this.pltStationDao = pltStationDao;
    }
    @Autowired
    private void setStaAssemblyWorkHistoryDao(StaAssemblyWorkHistoryMapper assemblyWorkHistoryDao){
        this.assemblyWorkHistoryDao = assemblyWorkHistoryDao;
    }
    @Autowired
    private void setStaAssemblyWorkLastDao(StaAssemblyWorkLastMapper assemblyWorkLastDao){
@@ -82,8 +90,8 @@
        }
        return userInfo;
    }
    public PltStation getStationInfo(String id){
        //仅检查工站信息以及工站占用情况
        Long stationId = null;
        if(StringUtils.isBlank(id)){
            throw new RuntimeException("工站编码不能为空");
@@ -102,7 +110,30 @@
        }
        return stationInfo;
    }
    public StaAssemblyWorkLast checkStationUsed(QueryVo last){
    public StaAssemblyWorkLast checkStationUsed(String id){
        StaAssemblyWorkLast result = new StaAssemblyWorkLast();
        PltStation stationInfo = null;
        if(StringUtils.isBlank(id)){
            throw new RuntimeException("工站编码不能为空,请检查");
        }
        stationInfo = getStationInfo(id);
        //检查表中stationId是否已经存在
        StaAssemblyWorkLast param = new StaAssemblyWorkLast();
        param.setStationId(stationInfo.getId());
        param.setStatus(1);
        List<StaAssemblyWorkLast> workLasts = assemblyWorkLastDao.selectList(param);
        if(workLasts.size() > 0){
            BeanUtils.copyProperties(workLasts.get(0),result);
        }else{
            result.setStationId(stationInfo.getId());
            result.setStationName(stationInfo.getName());
            result.setLineId(stationInfo.getLineId());
            result.setLineName(stationInfo.getLineName());
        }
        return result;
    }
    public StaAssemblyWorkLast checkUserAndStationUsed(QueryVo last){
        StaAssemblyWorkLast result = new StaAssemblyWorkLast();
        PltStation stationInfo = null;
        BaUser userInfo = null;
@@ -150,9 +181,9 @@
        return result;
    }
    @Transactional
    public int save(QueryVo last) {
    public StaAssemblyWorkLast save(QueryVo last) {
        //先check
        StaAssemblyWorkLast checkResult = checkStationUsed(last);
        StaAssemblyWorkLast checkResult = checkUserAndStationUsed(last);
        //校验planId processId nodeId
        PrAssemblyPlan params = new PrAssemblyPlan();
        params.setStatus(1);
@@ -179,6 +210,7 @@
            staLast.setStartTime(new Date());
            count = assemblyWorkLastDao.insertSelective(staLast);
        }else{
            //保存一条history?
            BeanUtils.copyProperties(checkResult,staLast);
            staLast.setPlanId(last.getPlanId());
            staLast.setProcessId(last.getProcessId());
@@ -187,6 +219,29 @@
            staLast.setStartTime(new Date());
            count = assemblyWorkLastDao.updateByPrimaryKeySelective(staLast);
        }
        if (count <= 0) {
            throw new RuntimeException("数据库存储失败");
        }
        StaAssemblyWorkLast result = assemblyWorkLastDao.selectByPrimaryKey(staLast.getId());
        return result;
    }
    @Transactional
    public int logout(String id) {
        //找到登录记录
        StaAssemblyWorkLast workLast = assemblyWorkLastDao.selectByPrimaryKey(Long.parseLong(id));
        if(workLast == null){
            throw new RuntimeException("系统中没有该条登录信息");
        }
        //更新登录记录
        workLast.setStatus(2);
        workLast.setEndTime(new Date());
        // 保存history
        StaAssemblyWorkHistory history = new StaAssemblyWorkHistory();
        BeanUtils.copyProperties(workLast,history);
        history.setId(null);
        int count = assemblyWorkHistoryDao.insertSelective(history);
        //删除last
        assemblyWorkLastDao.deleteByPrimaryKey(Long.parseLong(id));
        return count;
    }
    public List<PrAssemblyPlan> selectAssyPlanList(PrAssemblyPlan params){
@@ -213,5 +268,4 @@
        ins.orgName = file.orgName;
        ins.extName = file.extName;
    }
}