包头bug修复

This commit is contained in:
guoshengxiong 2025-02-14 09:56:07 +08:00
parent e101f56527
commit 1287e0654a
16 changed files with 177 additions and 57 deletions

View File

@ -70,9 +70,10 @@ public class ReturnTrainingDetailController {
@OperLog(operModul = "复工培训申请(专项培训申请)明细管理", operType = "分页查询", operDesc = "分页列表查询复工培训申请(专项培训申请)明细信息")
@ApiOperation(value = "分页列表查询复工培训申请(专项培训申请)明细信息", notes = "分页列表查询复工培训申请(专项培训申请)明细信息", httpMethod = "GET")
@ApiImplicitParams({
@ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"),
})
@ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "queryExamStatus", value = "1未考试2通过3未通过", paramType = "query", required = false, dataType = "String"),
})
@GetMapping(value = "/page")
public Result<IPage<ReturnTrainingDetail>> queryPageList(@ApiIgnore @RequestParam HashMap<String, Object> param) {
return Result.success(returnTrainingDetailService.queryPageList(param));

View File

@ -77,6 +77,7 @@ public class WorkerAdmissionDetailController {
@ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "idCards", value = "身份证号s(多个逗号分割)", paramType = "query", required = false, dataType = "String"),
@ApiImplicitParam(name = "queryExamStatus", value = "1未考试2通过3未通过", paramType = "query", required = false, dataType = "String"),
})
@GetMapping(value = "/page")
public Result<IPage<WorkerAdmissionDetail>> queryPageList(@ApiIgnore @RequestParam HashMap<String, Object> param) {
@ -200,7 +201,7 @@ public class WorkerAdmissionDetailController {
List<ExcelExportEntity> entity = new ArrayList<ExcelExportEntity>();
entity.add(new ExcelExportEntity("编号", "num"));
entity.add(new ExcelExportEntity("姓名", "name"));
entity.add(new ExcelExportEntity("岗位", "post"));
entity.add(new ExcelExportEntity("岗位/工种", "post"));
entity.add(new ExcelExportEntity("单位", "enterprise"));
entity.add(new ExcelExportEntity("发证日期", "date"));
List<Map<String, String>> excelList = new ArrayList<Map<String, String>>();
@ -220,14 +221,14 @@ public class WorkerAdmissionDetailController {
map.put("date", DateUtil.today());
excelList.add(map);
try {
String url = detail.getFieldAcquisitionUrl();
String url = JSON.parseArray(detail.getFieldAcquisitionUrl()).getJSONObject(0).getString("url");
MinioUtils.downloadFile(url);
ImgUtil.convert(FileUtil.file(PathUtil.getBasePath(), JSON.parseArray(url).getJSONObject(0).getString("id")), FileUtil.file(head, workerName + ".jpg"));
FileUtil.move(FileUtil.file(PathUtil.getBasePath(), url), FileUtil.file(head, workerName + "." + StrUtil.subAfter(url, ".", true)), true);
} catch (Exception e) {
log.error("批量制卡", e);
}
// 生成指定url对应的二维码到文件宽和高都是300像素
QrCodeUtil.generate(idCardMap.get(detail.getIdCard()).getId() + "", 300, 300, FileUtil.file(qrCode, num + ".jpg"));
QrCodeUtil.generate("/pages/projectEnd/laborManage/searchTeam/personDetail?id=" + idCardMap.get(detail.getIdCard()).getId(), 300, 300, FileUtil.file(qrCode, num + ".jpg"));
}
Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), entity, excelList);
FileOutputStream fos = null;

View File

@ -22,7 +22,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @version V1.0
*/
@Mapper
@DataScope
//@DataScope
public interface DeviceUnitMapper extends BaseMapper<DeviceUnit> {
List<DeviceUnit> queryList(@Param(Constants.WRAPPER) QueryWrapper<DeviceUnit> queryWrapper,@Param("param") HashMap<String, Object> param);

View File

@ -17,6 +17,16 @@
LEFT JOIN team_info b ON a.team_id = b.id
LEFT JOIN department_info c ON a.department_id = c.id
LEFT JOIN worker_type wt ON b.worker_type_id = wt.id
where 1=1
<if test="param.queryExamStatus == '1'.toString()">
and etr.id is null
</if>
<if test="param.queryExamStatus == '2'.toString()">
and etr.is_pass = 1
</if>
<if test="param.queryExamStatus == '3'.toString()">
and etr.is_pass = 0
</if>
)t
${ew.customSqlSegment}
</select>

View File

@ -25,6 +25,7 @@
tr.score,
if(wi.id is null,0,1) as is_import
,tr.id as record_id
,tr.is_new_batch
from worker_admission_detail t
left join worker_admission wa on wa.id=t.worker_admission_id
left join enterprise_info ei1 on ei1.id=t.epc_cbs
@ -42,7 +43,7 @@
<!-- and es.type=1-->
<!-- group by etr.worker_card)t on t.worker_card=etr.worker_card and t.start_exam_time=etr.start_exam_time) tr on tr.worker_card = t.id_card-->
left join exam_train_record tr on tr.application_id=wa.id and t.id_card=tr.worker_card and tr.application_type=1
and tr.is_new_batch=1 and tr.submit = 1
and tr.submit = 1
left join (
<include refid="com.zhgd.xmgl.modules.baotou.mapper.WorkerAdmissionDetailMapper.dicMap">
</include>
@ -53,13 +54,22 @@
<foreach collection="param.idList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="param.eqWorkerName != null and param.eqWorkerName != ''">
and t.worker_name = #{param.eqWorkerName}
</if>
)t
${ew.customSqlSegment}
</select>
</if>
<if test="param.eqWorkerName != null and param.eqWorkerName != ''">
and t.worker_name = #{param.eqWorkerName}
</if>
<if test="param.queryExamStatus == '1'.toString()">
and tr.id is null
</if>
<if test="param.queryExamStatus == '2'.toString()">
and tr.is_pass = 1
</if>
<if test="param.queryExamStatus == '3'.toString()">
and tr.is_pass = 0
</if>
)t
${ew.customSqlSegment}
</select>
<select id="getById" resultType="com.zhgd.xmgl.modules.baotou.entity.WorkerAdmissionDetail">
select *

View File

@ -66,7 +66,7 @@
<select id="getExamQualifierWorker" resultType="java.util.Map">
select
t.id
,count(distinct etr.worker_card) qualifierNum
,count(distinct etr.worker_card) examQualifierNum
from worker_admission t
join exam_train_record etr on etr.application_id=t.id
where t.id in

View File

@ -22,6 +22,7 @@ import com.zhgd.xmgl.modules.exam.service.IExamTrainRecordService;
import com.zhgd.xmgl.modules.worker.entity.*;
import com.zhgd.xmgl.modules.worker.mapper.UfaceDevMapper;
import com.zhgd.xmgl.modules.worker.service.*;
import com.zhgd.xmgl.util.FlowUtil;
import com.zhgd.xmgl.util.MapBuilder;
import com.zhgd.xmgl.util.PageUtil;
import com.zhgd.xmgl.util.RefUtil;
@ -33,6 +34,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
@ -70,6 +72,15 @@ public class WorkerAdmissionDetailServiceImpl extends ServiceImpl<WorkerAdmissio
@Lazy
@Autowired
private UfaceDevMapper ufaceDevMapper;
@Lazy
@Autowired
private IWorkerInsuranceService workerInsuranceService;
@Lazy
@Autowired
private IWorkerContractService workerContractService;
@Lazy
@Autowired
private IWorkerPhysicalsService workerPhysicalsService;
@Override
public IPage<WorkerAdmissionDetail> queryPageList(HashMap<String, Object> param) {
@ -286,6 +297,7 @@ public class WorkerAdmissionDetailServiceImpl extends ServiceImpl<WorkerAdmissio
log.warn("保存部门异常:", e);
}
}
Map<String, WorkerAdmissionDetail> idCardMap = detailList.stream().collect(Collectors.toMap(WorkerAdmissionDetail::getIdCard, Function.identity(), (o1, o2) -> o1));
existDepartmentInfos.addAll(addDepartments);
for (WorkerInfo addWorker : addWorkers) {
try {
@ -300,6 +312,21 @@ public class WorkerAdmissionDetailServiceImpl extends ServiceImpl<WorkerAdmissio
workerCertificate.setWorkerId(addWorker.getId());
workerCertificateService.add(workerCertificate);
}
//保存合同体检保险附件
WorkerAdmissionDetail detail = idCardMap.get(addWorker.getIdCard());
WorkerContract workerContract = new WorkerContract();
workerContract.setImageUrl(FlowUtil.buildXingUrl(detail.getLaborContract()));
workerContract.setWorkerId(addWorker.getId());
workerContractService.save(workerContract);
WorkerPhysicals workerPhysical = new WorkerPhysicals();
workerPhysical.setAttachment(FlowUtil.buildXingUrl(detail.getExaminationImage()));
workerPhysical.setWorkerId(addWorker.getId());
workerPhysicalsService.save(workerPhysical);
WorkerInsurance workerInsurance = new WorkerInsurance();
workerInsurance.setPhotoUrl(FlowUtil.buildXingUrl(detail.getInsurance()));
workerInsurance.setWorkerId(addWorker.getId());
workerInsuranceService.save(workerInsurance);
} catch (Exception e) {
log.warn("保存人员异常:", e);
}

View File

@ -24,12 +24,15 @@ import com.zhgd.xmgl.modules.baotou.service.IWorkerAdmissionCertificateDetailSer
import com.zhgd.xmgl.modules.baotou.service.IWorkerAdmissionDetailService;
import com.zhgd.xmgl.modules.baotou.service.IWorkerAdmissionService;
import com.zhgd.xmgl.modules.basicdata.entity.DictionaryItem;
import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
import com.zhgd.xmgl.modules.basicdata.service.IDictionaryItemService;
import com.zhgd.xmgl.modules.basicdata.service.ISystemUserService;
import com.zhgd.xmgl.modules.basicdata.service.impl.NoticeServiceImpl;
import com.zhgd.xmgl.modules.project.service.IProjectEnterpriseService;
import com.zhgd.xmgl.modules.worker.entity.EnterpriseInfo;
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
import com.zhgd.xmgl.modules.worker.service.IWorkerInfoService;
import com.zhgd.xmgl.security.util.SecurityUtils;
import com.zhgd.xmgl.util.*;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
@ -80,6 +83,9 @@ public class WorkerAdmissionServiceImpl extends ServiceImpl<WorkerAdmissionMappe
@Lazy
@Autowired
private IDeviceUnitService deviceUnitService;
@Lazy
@Autowired
private ISystemUserService systemUserService;
@Override
public IPage<WorkerAdmission> queryPageList(HashMap<String, Object> param) {
@ -155,6 +161,7 @@ public class WorkerAdmissionServiceImpl extends ServiceImpl<WorkerAdmissionMappe
@Transactional(rollbackFor = Exception.class)
public void addFromFlow(Map<String, Object> map) {
String instanceId = FlowUtil.getString(map, "instanceId");
String startUser = FlowUtil.getString(map, "startUser");
// HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(instanceId).singleResult();
// Date approvalTime = historicProcessInstance.getEndTime();
Long certificateIssuingUnit = FlowUtil.getPullDownLong(map, "certificateIssuingUnit");
@ -174,6 +181,10 @@ public class WorkerAdmissionServiceImpl extends ServiceImpl<WorkerAdmissionMappe
List<DictionaryItem> workerTypeList = dictionaryItemService.getDictList("bt_worker_type", projectSn);
if (map.get("details") != null) {
if (map.get("details") instanceof List) {
List<SystemUser> applyUsers = systemUserService.getProjectChildernSystemUserList(new MapBuilder<String, Object>()
.put("userId", startUser)
.put("projectSn", projectSn)
.build());
// List<String> nums = workerAdmissionDetailService.list(new LambdaQueryWrapper<WorkerAdmissionDetail>()
// .eq(WorkerAdmissionDetail::getProjectSn, projectSn)
// .eq(WorkerAdmissionDetail::getIsCertificateQualified, 1)
@ -183,12 +194,18 @@ public class WorkerAdmissionServiceImpl extends ServiceImpl<WorkerAdmissionMappe
List<String> readNums = detailsList.stream().map(o -> MapUtils.getString(((Map) o), "field8425114066876")).collect(Collectors.toList());
List<String> nums = workerInfoService.list(new LambdaQueryWrapper<WorkerInfo>()
.in(WorkerInfo::getNum, readNums).eq(WorkerInfo::getProjectSn, projectSn).last(Cts.IGNORE_DATA_SCOPE_CONDITION)).stream().map(WorkerInfo::getNum).collect(Collectors.toList());
if (applyUsers.size() > 0) {
nums.remove(applyUsers.get(0).getNum());
}
// List<String> existDetailIdCards = workerAdmissionDetailService.list(new LambdaQueryWrapper<WorkerAdmissionDetail>()
// .in(WorkerAdmissionDetail::getIdCard, idCards)
// .eq(WorkerAdmissionDetail::getIsCertificateQualified, 1)
// .eq(WorkerAdmissionDetail::getProjectSn, projectSn)).stream().map(WorkerAdmissionDetail::getIdCard).collect(Collectors.toList());
List<String> existWorkerIdCards = workerInfoService.list(new LambdaQueryWrapper<WorkerInfo>()
.in(WorkerInfo::getIdCard, idCards).eq(WorkerInfo::getProjectSn, projectSn).last(Cts.IGNORE_DATA_SCOPE_CONDITION)).stream().map(WorkerInfo::getIdCard).collect(Collectors.toList());
if (applyUsers.size() > 0) {
existWorkerIdCards.remove(applyUsers.get(0).getIdCard());
}
// existDetailIdCards.addAll(existWorkerIdCards);
existWorkerIdCards.stream().distinct();
for (Object o : detailsList) {
@ -385,6 +402,14 @@ public class WorkerAdmissionServiceImpl extends ServiceImpl<WorkerAdmissionMappe
try {
InputStream is = excelFile.getInputStream();
List<Map<String, String>> list = ExcelUtils.jxlExlToList(is, 0);
list = list.stream().filter(o -> {
for (Map.Entry<String, String> entry : o.entrySet()) {
if (StrUtil.isNotBlank(entry.getValue())) {
return true;
}
}
return false;
}).collect(Collectors.toList());
if (list == null || list.size() == 0) {
throw new OpenAlertException(MessageUtil.get("excelNotDataErr"));
}

View File

@ -7,6 +7,7 @@ import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.ZipUtil;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -220,17 +221,17 @@ public class ExamWorkerController {
BigDecimal total = NumberUtil.mul(list.size(), score);
if (key == 1) {
params.put("t1", typeArr[++typeIndex] + "、单选题:(每题" + score + "分,共计" + total + "分)");
addOption(list, content, i, imageMap);
addOption(list, content, i, imageMap, params);
params.put("c1", content.toString());
} else if (key == 2) {
params.put("t2", typeArr[++typeIndex] + "、多选题:(每题" + one.getScore() + "分,共计" + total + "分、漏选少选得" + NumberUtil.div(one.getScore(), 2, 2) + "分,错选不得分。)");
//遍历题目
addOption(list, content, i, imageMap);
addOption(list, content, i, imageMap, params);
params.put("c2", content.toString());
} else {
params.put("t3", typeArr[++typeIndex] + "、判断题(每题" + one.getScore() + "分,共" + total + "分,正确:打√,错误:打×)");
//遍历题目
addOption(list, content, i, imageMap);
addOption(list, content, i, imageMap, params);
params.put("c3", content.toString());
}
}
@ -243,8 +244,8 @@ public class ExamWorkerController {
params.put("score", record.getScore());
params.put("startExamTime", DateUtil.format(record.getStartExamTime(), "yyyy年MM月dd日"));
String tempUrl = Fileutils.getExportTemplateFile("template/下载试卷模板.docx").getAbsolutePath();
// String tempUrl = "C:\\Users\\Administrator\\Desktop\\下载试卷模板.docx";
// String tempUrl = Fileutils.getExportTemplateFile("template/下载试卷模板.docx").getAbsolutePath();
String tempUrl = "C:\\Users\\Administrator\\Desktop\\下载试卷模板.docx";
//生成word文档流
EasyPoiUtil.exportNewLineWord(response, params, FileUtil.file(tempUrl));
@ -344,17 +345,17 @@ public class ExamWorkerController {
BigDecimal total = NumberUtil.mul(volist.size(), score);
if (key == 1) {
params.put("t1", typeArr[++typeIndex] + "、单选题:(每题" + score + "分,共计" + total + "分)");
addOption(volist, content, i, imageMap);
addOption(volist, content, i, imageMap, params);
params.put("c1", content.toString());
} else if (key == 2) {
params.put("t2", typeArr[++typeIndex] + "、多选题:(每题" + one.getScore() + "分,共计" + total + "分、漏选少选得" + NumberUtil.div(one.getScore(), 2, 2) + "分,错选不得分。)");
//遍历题目
addOption(volist, content, i, imageMap);
addOption(volist, content, i, imageMap, params);
params.put("c2", content.toString());
} else {
params.put("t3", typeArr[++typeIndex] + "、判断题(每题" + one.getScore() + "分,共" + total + "分,正确:打√,错误:打×)");
//遍历题目
addOption(volist, content, i, imageMap);
addOption(volist, content, i, imageMap, params);
params.put("c3", content.toString());
}
}
@ -401,8 +402,9 @@ public class ExamWorkerController {
* @param content
* @param i
* @param imageMap
* @param params
*/
private void addOption(List<ExamQuestionBankVo> list, StringBuilder content, int[] i, HashMap<String, Object> imageMap) {
private void addOption(List<ExamQuestionBankVo> list, StringBuilder content, int[] i, HashMap<String, Object> imageMap, Map<String, Object> params) {
//遍历题目
for (ExamQuestionBankVo question : list) {
content.append(" ").append(i[0]).append("");
@ -411,18 +413,26 @@ public class ExamWorkerController {
JSONArray ja = JSON.parseArray(question.getPic());
if (CollUtil.isNotEmpty(ja)) {
//保存图片占位符
/*try {
String imageKey = "image" + i[0];
imageMap.put(imageKey, EasyPoiUtil.imgFormatting(PathUtil.getBasePath() + "/" + ja.getJSONObject(0).getString("url"), 18, 18));
content.append("{{" + imageKey + "}}");
} catch (Exception e) {
log.error("导出word添加题目和选项错误", e);
}*/
// try {
// String imageKey = "image" + i[0];
// String url = ja.getJSONObject(0).getString("url");
// String dest = PathUtil.getBasePath() + "/temp/" + IdUtil.randomUUID() + "." + StrUtil.subAfter(url, ".", true);
// HttpUtil.downloadFile(url, dest);
// imageMap.put(imageKey, EasyPoiUtil.imgFormatting(dest, 18, 18));
// content.append("{{" + imageKey + "}}");
// params.put(imageKey, imageMap.get(imageKey));
// } catch (Exception e) {
// log.error("导出word添加题目和选项错误", e);
// }
}
}
content.append(question.getQuestionName().replaceAll("[(]\\s*?[)]", "( "
+ (question.getType() != 3 ? question.getSelectOption() : (Objects.equals(question.getSelectOption(), "") ? "" : "×")) + " )")).append("\n");
String selectOption = question.getSelectOption();
if (Objects.equals(question.getSelectOption(), "")) {
selectOption = "";
} else if (Objects.equals(question.getSelectOption(), "")) {
selectOption = "×";
}
content.append(question.getQuestionName().replaceAll("[(]\\s*?[)]", "( " + selectOption + " )")).append("\n");
if (question.getType() == 3) {
continue;
}

View File

@ -135,7 +135,8 @@ public class ExamTrainRecordServiceImpl extends ServiceImpl<ExamTrainRecordMappe
.eq(ExamTrainRecord::getApplicationId, applicationId));
ExamTrainRecord notSubmit = rs.stream().filter(o -> Objects.equals(o.getSubmit(), 0)).sorted((o1, o2) -> o2.getCreateTime().compareTo(o1.getCreateTime())).findFirst().map(o -> o).orElse(null);
if (notSubmit == null) {
throw new OpenAlertException("您已提交试卷");
//您已提交试卷
return rs.stream().filter(o -> Objects.equals(o.getSubmit(), 1)).sorted((o1, o2) -> o2.getCreateTime().compareTo(o1.getCreateTime())).findFirst().map(o -> o).orElse(null);
}
ExamTrainRecord submit = rs.stream().filter(o -> Objects.equals(o.getSubmit(), 1) && Objects.equals(o.getIsNewBatch(), 1)).sorted((o1, o2) -> o2.getCreateTime().compareTo(o1.getCreateTime())).findFirst().map(o -> o).orElse(null);
if (submit == null) {
@ -319,11 +320,14 @@ public class ExamTrainRecordServiceImpl extends ServiceImpl<ExamTrainRecordMappe
.put("projectSn", projectSn)
.put("idCard", idCard)
.put("eqWorkerName", workerName)
.put("isCertificateQualified", 1)
.build());
if (details.size() > 0) {
admissionDetail = details.get(0);
typeName = admissionDetail.getPostWorkTypeName();
admissionDetail = details.stream().filter(o -> Objects.equals(o.getIsCertificateQualified(), 1)).findFirst().map(o -> o).orElse(null);
if (admissionDetail != null) {
typeName = admissionDetail.getPostWorkTypeName();
} else {
throw new OpenAlertException("人员资质不合格");
}
} else {
throw new OpenAlertException("人员在人员入场中不存在");
}

View File

@ -22,8 +22,8 @@ import io.swagger.annotations.ApiModelProperty;
@ApiModel(value="WorkerContract实体类",description="WorkerContract")
public class WorkerContract implements Serializable {
private static final long serialVersionUID = 1L;
/**合同表*/
/**合同表*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value="合同表")
private java.lang.Long id ;
@ -58,7 +58,6 @@ public class WorkerContract implements Serializable {
/**人员ID*/
@Excel(name = "人员ID", width = 15)
@ApiModelProperty(value="人员ID")
private java.lang.Long workerId ;
/**签订状态(0.未签订 1.已签订)*/
@Excel(name = "签订状态(0.未签订 1.已签订)", width = 15)

View File

@ -22,7 +22,7 @@ import io.swagger.annotations.ApiModelProperty;
@ApiModel(value="WorkerPhysicals实体类",description="WorkerPhysicals")
public class WorkerPhysicals implements Serializable {
private static final long serialVersionUID = 1L;
/**id*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value="id")
@ -30,7 +30,6 @@ public class WorkerPhysicals implements Serializable {
/**人员Id*/
@Excel(name = "人员Id", width = 15)
@ApiModelProperty(value="人员Id")
private java.lang.Long workerId ;
/**项目唯一标识*/
@Excel(name = "项目唯一标识", width = 15)
@ -50,14 +49,24 @@ public class WorkerPhysicals implements Serializable {
private java.lang.String personWeight ;
/**体检时间*/
@Excel(name = "体检时间", width = 15)
@ApiModelProperty(value="体检时间")
private java.lang.String physicalsTime ;
/**状态1未体检2体检合格3体检不合格*/
@Excel(name = "状态1未体检2体检合格3体检不合格", width = 15)
@ApiModelProperty(value="状态1未体检2体检合格3体检不合格")
private java.lang.Integer state ;
/**结论*/
@Excel(name = "结论", width = 15)
@ApiModelProperty(value="结论")
private java.lang.String conclusion ;
@ApiModelProperty(value = "体检时间")
private java.lang.String physicalsTime;
/**
* 状态1未体检2体检合格3体检不合格
*/
@Excel(name = "状态1未体检2体检合格3体检不合格", width = 15)
@ApiModelProperty(value = "状态1未体检2体检合格3体检不合格")
private java.lang.Integer state;
/**
* 结论
*/
@Excel(name = "结论", width = 15)
@ApiModelProperty(value = "结论")
private java.lang.String conclusion;
/**
* 附件
*/
@Excel(name = "附件", width = 15)
@ApiModelProperty(value = "附件")
private java.lang.String attachment;
}

View File

@ -53,6 +53,9 @@
</if>
LEFT JOIN device_unit du on du.id=a.work_area
WHERE 1 = 1
<if test="param.num != null and param.num != ''">
and a.num like concat('%', #{param.num},'%')
</if>
<if test="param.isSpecial == '1'.toString()">
and ( wt.type_name = '电工' or
wt.type_name = '电焊工' or
@ -1216,7 +1219,7 @@
ru.rule_name
,if(a.person_type=1,wt.type_name,c.department_name) as post_work_type_name
,du.device_unit_name as work_area_name
,ei1.enterprise_name as epc_cbs
,ei1.enterprise_name as epc_cbs_name
from worker_info a
INNER JOIN project p ON a.project_sn = p.project_sn
LEFT JOIN team_info b ON a.team_id = b.id

View File

@ -4,6 +4,7 @@ import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
@ -191,4 +192,24 @@ public class FlowUtil {
formData.putAll(formData1);
}
/**
* 拼接星号前端url文件名称*文件路径如image 1499@2x.png*67adc25d35f0f51e0803cc80.png多个,分割
*
* @param json
* @return
*/
public static String buildXingUrl(String json) {
StringBuilder url = new StringBuilder();
JSONArray ja = JSON.parseArray(json);
for (int i = 0; i < ja.size(); i++) {
JSONObject jo = ja.getJSONObject(i);
if (i != 0) {
url.append(",");
}
url.append(jo.getString("name"));
url.append("*");
url.append(jo.getString("url"));
}
return url.toString();
}
}

View File

@ -81,4 +81,4 @@ magic-api.resource.location=D:/jxj/prod/backEnd/itbgpImage/data/magic-api
#上传的图片的url前缀
upload.image.url.prefix=${spring.file-storage.minio[0].domain}
wordExcelUrl=http://192.168.34.133:5173/#/canvasEditor
defaultProjectSn=BD3137498CB84BF0969979E0342CDBCA
defaultProjectSn=5B8B3DB047214AE188F2C7916DD08203

View File

@ -4,4 +4,164 @@
{{c2}}
{{t3}}
{{c3}}
{{c4}}
{{c4}}
5555555
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}
{{c4}}