feat(停工停产安全检查): 新增检查项查询和新增检查记录接口

master
黄锦贤 3 weeks ago
parent 4c6deb977a
commit 7a6979e829

@ -0,0 +1,45 @@
package com.op.mes.controller;
import com.op.common.core.web.controller.BaseController;
import com.op.common.core.web.domain.AjaxResult;
import com.op.common.log.annotation.Log;
import com.op.common.log.enums.BusinessType;
import com.op.mes.domain.ProCheckItem;
import com.op.mes.domain.ProCheckRecord;
import com.op.mes.service.ProCheckService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
* Description:
*
* @author : huangjinxian
* @version : 1.0
* @since : 2026/5/28
*/
@SuppressWarnings({"JavadocDeclaration", "unused", "SpellCheckingInspection"})
@RestController
@RequestMapping("/procheck")
@RequiredArgsConstructor
public class ProCheckController extends BaseController {
final ProCheckService proCheckService;
@GetMapping("/checkItem/list")
public List<ProCheckItem> listAllCheckItem() {
return proCheckService.listAllCheckItem();
}
@PostMapping("/checkRecord/add")
@Log(title = "下班安全检查", businessType = BusinessType.INSERT)
public AjaxResult addRecord(@RequestBody ProCheckRecord checkRecord) {
try {
proCheckService.addRecord(checkRecord);
return success("填写成功!");
} catch (Exception e) {
return error(e.getMessage());
}
}
}

@ -0,0 +1,23 @@
package com.op.mes.domain;
import com.op.common.core.web.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* Description: -
*
* @author : huangjinxian
* @version : 1.0
* @since : 2026/5/27
*/
@SuppressWarnings({"unused"})
@Data
@EqualsAndHashCode(callSuper = true)
public class ProCheckItem extends BaseEntity {
Integer itemId;
String itemName;
String checkObject;
String sortOrder;
Boolean isDel;
}

@ -0,0 +1,32 @@
package com.op.mes.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.op.common.core.web.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import java.util.List;
/**
* Description:
*
* @author : huangjinxian
* @version : 1.0
* @since : 2026/5/27
*/
@SuppressWarnings({"unused", "SpellCheckingInspection"})
@Data
@EqualsAndHashCode(callSuper = true)
@JsonIgnoreProperties(ignoreUnknown = true)
public class ProCheckRecord extends BaseEntity {
Integer recordId;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
Date recordTime;
String recordPerson;
Boolean abnoStatus;
List<ProCheckRecordDetail> details;
}

@ -0,0 +1,27 @@
package com.op.mes.domain;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.op.common.core.web.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* Description:
*
* @author : huangjinxian
* @version : 1.0
* @since : 2026/5/27
*/
@SuppressWarnings({"unused", "SpellCheckingInspection"})
@Data
@EqualsAndHashCode(callSuper = true)
@JsonIgnoreProperties(ignoreUnknown = true)
public class ProCheckRecordDetail extends BaseEntity {
Integer detailId;
Integer recordId;
String itemName;
String checkObject;
Integer sortOrder;
String checkValue;
String abnoRemark;
}

@ -0,0 +1,29 @@
package com.op.mes.mapper;
import com.op.mes.domain.ProCheckItem;
import com.op.mes.domain.ProCheckRecord;
import com.op.mes.domain.ProCheckRecordDetail;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
/**
* Description:
*
* @author : huangjinxian
* @version : 1.0
* @since : 2026/5/27
*/
@SuppressWarnings({"JavadocDeclaration", "unused", "SpellCheckingInspection"})
@Mapper
public interface ProCheckRecordMapper {
List<ProCheckItem> listAllCheckItem();
int insertRecord(ProCheckRecord checkRecord);
int batchInsertRecordDetail(List<ProCheckRecordDetail> list);
}

@ -0,0 +1,21 @@
package com.op.mes.service;
import com.op.mes.domain.ProCheckItem;
import com.op.mes.domain.ProCheckRecord;
import java.util.List;
import java.util.Map;
/**
* Description:
*
* @author : huangjinxian
* @version : 1.0
* @since : 2026/5/27
*/
@SuppressWarnings({"JavadocDeclaration", "unused", "SpellCheckingInspection"})
public interface ProCheckService {
List<ProCheckItem> listAllCheckItem();
void addRecord(ProCheckRecord checkRecord);
}

@ -0,0 +1,55 @@
package com.op.mes.service.impl;
import com.alibaba.fastjson.util.TypeUtils;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.op.common.core.utils.StringUtils;
import com.op.mes.domain.ProCheckItem;
import com.op.mes.domain.ProCheckRecord;
import com.op.mes.domain.ProCheckRecordDetail;
import com.op.mes.mapper.ProCheckRecordMapper;
import com.op.mes.service.ProCheckService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* Description:
*
* @author : huangjinxian
* @version : 1.0
* @since : 2026/5/28
*/
@SuppressWarnings({"unused", "SpellCheckingInspection", "unchecked"})
@Service
@RequiredArgsConstructor
public class ProCheckServiceImpl implements ProCheckService {
final ProCheckRecordMapper proCheckRecordMapper;
@Override
@DS("#header.poolName")
public List<ProCheckItem> listAllCheckItem() {
return proCheckRecordMapper.listAllCheckItem();
}
@Override
@DS("#header.poolName")
public void addRecord(ProCheckRecord checkRecord) {
checkRecord.setAbnoStatus(false);
List<ProCheckRecordDetail> detailList=checkRecord.getDetails();
for (ProCheckRecordDetail detail : detailList) {
if (StringUtils.isNotBlank(detail.getAbnoRemark())) {
checkRecord.setAbnoStatus(true);
break;
}
}
proCheckRecordMapper.insertRecord(checkRecord);
for(ProCheckRecordDetail detail : detailList){
detail.setRecordId(checkRecord.getRecordId());
}
proCheckRecordMapper.batchInsertRecordDetail(detailList);
}
}

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.op.mes.mapper.ProCheckRecordMapper">
<insert id="insertRecord" useGeneratedKeys="true" keyProperty="recordId">
insert into pro_check_record
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="recordTime != null">record_time,</if>
<if test="recordPerson != null">record_person,</if>
<if test="abnoStatus != null">abno_status,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="recordTime != null">#{recordTime},</if>
<if test="recordPerson != null">#{recordPerson},</if>
<if test="abnoStatus != null">#{abnoStatus},</if>
</trim>
</insert>
<insert id="batchInsertRecordDetail" useGeneratedKeys="true" keyProperty="detailId">
INSERT INTO pro_check_record_detail (record_id, item_name, check_object,sort_order,check_value,abno_remark)
VALUES
<foreach collection="list" item="item" separator=",">
(#{item.recordId}, #{item.itemName}, #{item.checkObject}, #{item.sortOrder}, #{item.checkValue}, #{item.abnoRemark})
</foreach>
</insert>
<select id="listAllCheckItem"
resultType="com.op.mes.domain.ProCheckItem">
select item_id as itemId,
item_name as itemName,
check_object as checkObject,
sort_order as sortOrder,
is_del as isDel
from pro_check_item
order by sort_order,item_id
</select>
</mapper>
Loading…
Cancel
Save