liurunyu
2025-05-22 0ad8e58952b396bd689433a0b29e4a66f9bc0817
pms-parent/pms-web-base/src/main/java/com/dy/pmsBase/user/UserSv.java
@@ -4,8 +4,11 @@
import com.dy.common.webUtil.QueryResultVo;
import com.dy.pmsGlobal.daoBa.BaUserMapper;
import com.dy.pmsGlobal.daoBa.BaUserRoleMapper;
import com.dy.pmsGlobal.daoSta.StaAssemblyWorkLastMapper;
import com.dy.pmsGlobal.pojoBa.BaUser;
import com.dy.pmsGlobal.pojoBa.BaUserRole;
import com.dy.pmsGlobal.pojoSta.StaAssemblyWorkLast;
import com.dy.pmsGlobal.util.QrCodeConstant;
import com.dy.pmsGlobal.util.QrCodeUtil;
import com.google.zxing.WriterException;
import lombok.extern.slf4j.Slf4j;
@@ -16,6 +19,7 @@
import org.springframework.transaction.annotation.Transactional;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
@@ -27,8 +31,8 @@
    private BaUserMapper dao;
    @Autowired
    private BaUserRoleMapper urDao;
    private static final String stationPrefix = "101" ;
    @Autowired
    private StaAssemblyWorkLastMapper assemblyWorkLastDao;
    /**
     * 生成指定位数随机数字密码
     *
@@ -78,7 +82,7 @@
        rsVo.obj = this.dao.selectSome(params) ;
        rsVo.obj.parallelStream().forEach(item->{
            try {
                byte[] codes = QrCodeUtil.genQrCode(stationPrefix+item.id);
                byte[] codes = QrCodeUtil.genQrCode(QrCodeConstant.TypeWorker + item.id);
                item.qrCode = "data:image/jpeg;base64," + Base64.encode(codes);
            } catch (IOException e) {
                e.printStackTrace();
@@ -89,7 +93,9 @@
        return rsVo ;
    }
    public List<BaUser> selectAll() {
        return dao.selectAll();
    }
    /**
     * 保存实体
     * @param po 实体
@@ -134,6 +140,7 @@
     */
    @Transactional
    public int disabled(Long id,Boolean disabled) {
        checkStationLogin(id);
        BaUser user=new BaUser();
        user.id=id;
        user.disabled=disabled;
@@ -178,8 +185,21 @@
     */
    @Transactional
    public int delete(Long id) {
        checkStationLogin(id);
        return this.dao.deleteLogicById(id);
    }
}
    public void  checkStationLogin(Long id){
        //如果有工站登录信息,则提示先到触屏端登录页面logout
        Map<String, Object> params = new HashMap<>();
        params.put("userId", id);
        List<StaAssemblyWorkLast> workLasts = assemblyWorkLastDao.selectSome(params);
        if (workLasts.size() > 0) {
            String stationStr = "(";
            for (StaAssemblyWorkLast workLast:workLasts) {
                stationStr += workLast.getStationName() +",";
            }
            throw new RuntimeException("该用户在"+ stationStr +")工站存在登录信息,请先到触屏端登录页面logout,或联系管理员删除");
        }
    }
}