diff --git a/src/main/java/com/bonus/aqgqj/basis/controller/SamplesManageController.java b/src/main/java/com/bonus/aqgqj/basis/controller/SamplesManageController.java index 95f97ad..bbed682 100644 --- a/src/main/java/com/bonus/aqgqj/basis/controller/SamplesManageController.java +++ b/src/main/java/com/bonus/aqgqj/basis/controller/SamplesManageController.java @@ -131,7 +131,7 @@ public class SamplesManageController { @PostMapping("dispatchWork") @DecryptAndVerify(decryptedClass = SamplesManageDto.class)//加解密统一管理 @LogAnnotation(operModul = "收样管理", operation = "派工", operDesc = "业务级事件", operType = "新增") - @PreAuthorize("@pms.hasPermission('sys:samples:add')") + @PreAuthorize("@pms.hasPermission('sys:samples:dispatch')") public ServerResponse dispatchWork(EncryptedReq vo) { try { return samplesManageService.dispatchWork(vo.getData()); diff --git a/src/main/java/com/bonus/aqgqj/basis/controller/TestReportManageController.java b/src/main/java/com/bonus/aqgqj/basis/controller/TestReportManageController.java new file mode 100644 index 0000000..e8a3fcf --- /dev/null +++ b/src/main/java/com/bonus/aqgqj/basis/controller/TestReportManageController.java @@ -0,0 +1,142 @@ +package com.bonus.aqgqj.basis.controller; + +import com.bonus.aqgqj.annotation.DecryptAndVerify; +import com.bonus.aqgqj.annotation.LogAnnotation; +import com.bonus.aqgqj.basis.entity.dto.TestReportManageDto; +import com.bonus.aqgqj.basis.service.TestReportManageService; +import com.bonus.aqgqj.system.vo.EncryptedReq; +import com.bonus.aqgqj.utils.ServerResponse; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import io.swagger.annotations.Api; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + + +/** + * 检测报告管理 + * @author hay + */ +@Api(tags = "检测报告管理") +@RestController +@RequestMapping("/testReport/") +public class TestReportManageController { + + private static final Logger log = LoggerFactory.getLogger("adminLogger"); + + @Autowired + private TestReportManageService testReportManageService; + + @PostMapping(value = "getList") + @DecryptAndVerify(decryptedClass = TestReportManageDto.class) + @LogAnnotation(operModul = "收样管理-收样管理", operation = "查询用列表", operDesc = "业务级事件",operType="查询") + @PreAuthorize("@pms.hasPermission('sys:testReport:query')" ) + public ServerResponse listUsers(EncryptedReq data) { + PageHelper.startPage(data.getData().getPage(), data.getData().getLimit()); + try { + List list = testReportManageService.list(data.getData()); + PageInfo pageInfo = new PageInfo<>(list); + return ServerResponse.createSuccessPage(pageInfo,data.getData().getPage(),data.getData().getLimit()); + } catch (Exception e) { + log.error(e.toString(),e); + } + return ServerResponse.createErrorPage(data.getData().getPage(),data.getData().getLimit()); + } + + @PostMapping(value = "getDetailsList") + @DecryptAndVerify(decryptedClass = TestReportManageDto.class) + @LogAnnotation(operModul = "收样管理-收样管理详情", operation = "查询用列表", operDesc = "业务级事件",operType="查询") + @PreAuthorize("@pms.hasPermission('sys:samples:query')" ) + public ServerResponse getDetailsList(EncryptedReq data) { + PageHelper.startPage(data.getData().getPage(), data.getData().getLimit()); + try { + List list = testReportManageService.getDetailsList(data.getData()); + PageInfo pageInfo = new PageInfo<>(list); + return ServerResponse.createSuccessPage(pageInfo,data.getData().getPage(),data.getData().getLimit()); + } catch (Exception e) { + log.error(e.toString(),e); + } + return ServerResponse.createErrorPage(data.getData().getPage(),data.getData().getLimit()); + } + + + @PostMapping(value = "all") + @LogAnnotation(operModul = "收样管理", operation = "查询所有工器具", operDesc = "业务级事件",operType="查询") + @PreAuthorize("@pms.hasPermission('sys:samples:query')" ) + public ServerResponse getAll() { + try { + List list = testReportManageService.listTools(); + return ServerResponse.createSuccess(list); + }catch (Exception e){ + log.error(e.toString(),e); + } + return ServerResponse.createErroe("操作失败"); + } + + @PostMapping(value = "allCustomName") + @LogAnnotation(operModul = "收样管理", operation = "查询所有单位", operDesc = "业务级事件",operType="查询") + @PreAuthorize("@pms.hasPermission('sys:samples:query')" ) + public ServerResponse getAllCustomName() { + try { + List list = testReportManageService.getAllCustomName(); + return ServerResponse.createSuccess(list); + }catch (Exception e){ + log.error(e.toString(),e); + } + return ServerResponse.createErroe("操作失败"); + } + + /** + * @description 新增收样数据 + */ + @PostMapping("addSamples") + @DecryptAndVerify(decryptedClass = TestReportManageDto.class)//加解密统一管理 + @LogAnnotation(operModul = "收样管理", operation = "新增收样数据", operDesc = "业务级事件", operType = "新增") + @PreAuthorize("@pms.hasPermission('sys:samples:add')") + public ServerResponse addSamples(EncryptedReq vo) { + try { + return testReportManageService.addSamples(vo.getData()); + }catch (Exception e){ + log.error(e.toString(),e); + return ServerResponse.createErroe("操作失败"); + } + } + + @PostMapping(value = "getTeamSelected") + @LogAnnotation(operModul = "收样管理", operation = "查询所有班组", operDesc = "业务级事件",operType="查询") + @PreAuthorize("@pms.hasPermission('sys:samples:query')" ) + public ServerResponse getToolsSelected() { + try { + List list = testReportManageService.getTeamSelected(); + return ServerResponse.createSuccess(list); + }catch (Exception e){ + log.error(e.toString(),e); + } + return ServerResponse.createErroe("操作失败"); + } + + /** + * @description 派工 + */ + @PostMapping("dispatchWork") + @DecryptAndVerify(decryptedClass = TestReportManageDto.class)//加解密统一管理 + @LogAnnotation(operModul = "收样管理", operation = "派工", operDesc = "业务级事件", operType = "新增") + @PreAuthorize("@pms.hasPermission('sys:samples:dispatch')") + public ServerResponse dispatchWork(EncryptedReq vo) { + try { + return testReportManageService.dispatchWork(vo.getData()); + } catch (Exception e) { + log.error(e.toString(), e); + return ServerResponse.createErroe("操作失败"); + } + } + + +} diff --git a/src/main/java/com/bonus/aqgqj/basis/dao/TestReportManageDao.java b/src/main/java/com/bonus/aqgqj/basis/dao/TestReportManageDao.java new file mode 100644 index 0000000..69c64cb --- /dev/null +++ b/src/main/java/com/bonus/aqgqj/basis/dao/TestReportManageDao.java @@ -0,0 +1,84 @@ +package com.bonus.aqgqj.basis.dao; + +import com.bonus.aqgqj.basis.entity.dto.TestReportManageDto; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface TestReportManageDao { + + /** + * 查询列表 + * @param bean + * @return + */ + List list(TestReportManageDto bean); + + /** + * 获取工器具 + * @param id + * @return + */ + String getSampleTools(Integer id); + + /** + * 获取详情列表 + * @param data + * @return + */ + List getDetailsList(TestReportManageDto data); + + /** + * 获取工器具 + * @return + */ + List listTools(); + + /** + * 获取所有单位名称 + * @return + */ + List getAllCustomName(); + + /** + * 新增收样数据 tb_samples + * @param TestReportManageDto + * @return + */ + int addSamples(TestReportManageDto TestReportManageDto); + + /** + * 新增设备数据 tb_samples_device + * @param dto + * @return + */ + int addSamplesDevice(TestReportManageDto dto); + + /** + * 设备类型编码 + * @param sampleToolsId + * @return + */ + String getDevTypeCodeById(Integer sampleToolsId); + + /** + * 获取设备编码 + * @param nowDate + * @return + */ + String selectCustomerCode(String nowDate); + + /** + * 获取班组 + * @return + */ + List getTeamSelected(); + + /** + * 修改班组 + * @param dto + * @return + */ + int updateTeamId(TestReportManageDto dto); +} diff --git a/src/main/java/com/bonus/aqgqj/basis/entity/dto/TestReportManageDto.java b/src/main/java/com/bonus/aqgqj/basis/entity/dto/TestReportManageDto.java new file mode 100644 index 0000000..48d24c4 --- /dev/null +++ b/src/main/java/com/bonus/aqgqj/basis/entity/dto/TestReportManageDto.java @@ -0,0 +1,152 @@ +package com.bonus.aqgqj.basis.entity.dto; + +import com.bonus.aqgqj.base.entity.PageEntity; +import lombok.Data; + +/** + * 工器具个体管理 + * @author hay + */ +@Data +public class TestReportManageDto extends PageEntity { + + private static final long serialVersionUID = -6525908145032868837L; + + private Integer id; + + private String ids; + + /** + * 名称 + */ + private String name; + + /** + * 送样单位id + */ + private Integer customId; + + /** + * 送样单位 + */ + private String customName; + + /** + * 送样部门 + */ + private String sampleDepartment; + + /** + * 送样人 + */ + private String sampleUser; + + /** + * 送样时间 + */ + private String sampleTime; + + /** + * 送样设备id + */ + private Integer sampleToolsId; + + /** + * 送样设备 + */ + private String sampleTools; + + /** + * 收样人 + */ + private String collectSamplesUser; + + /** + * 收样时间 + */ + private String collectSamplesTime; + + /** + * 班组Id + */ + private Integer teamId; + + /** + * 班组 + */ + private String teamName; + + /** + * 设备编号 (手填/扫码) + */ + private String devCode; + + /** + * 设备类型编码 + */ + private String devTypeCode; + + /** + * 客户自编号(设备编码--自动生成) + */ + private String customerCode; + + /** + * 生产厂家 + */ + private String factoryName; + + /** + * 生产日期 + */ + private String manufactureDate; + + /** + * 设备规格 + */ + private String devModule; + + /** + * 试验日期 + */ + private String experTime; + + /** + * 下次试验日期 + */ + private String nextExperTime; + + /** + * 试验人员 + */ + private String experUser; + + /** + * 试验结论 + */ + private String experConclu; + + /** + * 关键字 + */ + private String keyWord; + + private String paramsList; + + /** + * 创建人 + */ + private Integer createBy; + + /** + * 试验项内容数量 + */ + private Integer experItemNum; + + /** + * 样品数量 + */ + private Integer devNum; + + +} diff --git a/src/main/java/com/bonus/aqgqj/basis/service/TestReportManageService.java b/src/main/java/com/bonus/aqgqj/basis/service/TestReportManageService.java new file mode 100644 index 0000000..f5af704 --- /dev/null +++ b/src/main/java/com/bonus/aqgqj/basis/service/TestReportManageService.java @@ -0,0 +1,58 @@ +package com.bonus.aqgqj.basis.service; + +import com.bonus.aqgqj.basis.entity.dto.TestReportManageDto; +import com.bonus.aqgqj.utils.ServerResponse; + +import java.util.List; + +/** + * 工器具个体管理 + * @author hay + */ +public interface TestReportManageService { + /** + * 查询列表 + * @param bean + * @return + */ + List list(TestReportManageDto bean); + + /** + * 详情列表 + * @param data + * @return + */ + List getDetailsList(TestReportManageDto data); + + /** + * 工器具列表 + * @return + */ + List listTools(); + + /** + * 单位列表 + * @return + */ + List getAllCustomName(); + + /** + * 新增 + * @param data + * @return + */ + ServerResponse addSamples(TestReportManageDto data); + + /** + * 获取所有班组数据 + * @return + */ + List getTeamSelected(); + + /** + * 派工 + * @param data + * @return + */ + ServerResponse dispatchWork(TestReportManageDto data); +} diff --git a/src/main/java/com/bonus/aqgqj/basis/service/impl/TestReportManageServiceImpl.java b/src/main/java/com/bonus/aqgqj/basis/service/impl/TestReportManageServiceImpl.java new file mode 100644 index 0000000..30c7752 --- /dev/null +++ b/src/main/java/com/bonus/aqgqj/basis/service/impl/TestReportManageServiceImpl.java @@ -0,0 +1,164 @@ +package com.bonus.aqgqj.basis.service.impl; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.bonus.aqgqj.basis.dao.TestReportManageDao; +import com.bonus.aqgqj.basis.entity.dto.TestReportManageDto; +import com.bonus.aqgqj.basis.service.SamplesManageService; +import com.bonus.aqgqj.basis.service.TestReportManageService; +import com.bonus.aqgqj.utils.DateTimeHelper; +import com.bonus.aqgqj.utils.ServerResponse; +import com.bonus.aqgqj.utils.StringHelper; +import com.bonus.aqgqj.utils.UserUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.List; + +/** +* @description 工器具个体管理 +* @author hay +* @date 2024/7/20 16:10 +*/ +@Slf4j +@Service +public class TestReportManageServiceImpl implements TestReportManageService { + + + @Resource + private TestReportManageDao testReportManageDao; + + /** + * 查询列表 + * @param bean + * @return + */ + @Override + public List list(TestReportManageDto bean) { + List list = testReportManageDao.list(bean); + for (TestReportManageDto dto : list){ + String sampleTools = testReportManageDao.getSampleTools(dto.getId()); + dto.setSampleTools(sampleTools); + } + return list; + } + + /** + * 查询详情列表 + * @param data + * @return + */ + @Override + public List getDetailsList(TestReportManageDto data) { + return testReportManageDao.getDetailsList(data); + } + + @Override + public List listTools() { + List list = testReportManageDao.listTools(); + return list; + } + + /** + * 查询所有单位列表 + * @return + */ + @Override + public List getAllCustomName() { + return testReportManageDao.getAllCustomName(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public ServerResponse addSamples(TestReportManageDto data) { + JSONArray jsonArray = JSONObject.parseArray(data.getParamsList()); + List TestReportManageDtos = jsonArray.toJavaList(TestReportManageDto.class); + if (TestReportManageDtos.size() > 0){ + //先增加基础数据表,并返回Id + Integer userId = Integer.parseInt(UserUtil.getLoginUser().getId().toString()); + TestReportManageDtos.get(0).setCreateBy(userId); + int re= testReportManageDao.addSamples(TestReportManageDtos.get(0)); + if (re>0){ + //添加详情数据 + for (TestReportManageDto dto : TestReportManageDtos){ + //查询设备类型编码 + if (dto.getSampleToolsId()!=null){ + String devTypeCode = testReportManageDao.getDevTypeCodeById(dto.getSampleToolsId()); + dto.setDevTypeCode(devTypeCode); + } + //生成设备编码 + String customerCode = customerCodeRule(); + dto.setCustomerCode(customerCode); + dto.setId(TestReportManageDtos.get(0).getId()); + dto.setCreateBy(userId); + int res= testReportManageDao.addSamplesDevice(dto); + if (res<=0){ + throw new RuntimeException("收样设备信息表添加失败"); + } + } + }else { + throw new RuntimeException("收样单位信息表添加失败"); + } + }else { + throw new RuntimeException("未获取到数据"); + } + return ServerResponse.createBySuccessMsg("上传成功"); + } + + /** + * 查询所有班组 + * @return + */ + @Override + public List getTeamSelected() { + return testReportManageDao.getTeamSelected(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public ServerResponse dispatchWork(TestReportManageDto data) { + if (StringHelper.isNotEmpty(data.getIds())){ + //拆分用逗号分隔的数据 + String[] ids = data.getIds().split(","); + for (String id : ids){ + TestReportManageDto dto = new TestReportManageDto(); + dto.setId(Integer.parseInt(id)); + dto.setTeamId(data.getTeamId()); + //更新班组数据 + int res = testReportManageDao.updateTeamId(dto); + if (res<=0){ + throw new RuntimeException("派工失败"); + } + } + } + return ServerResponse.createBySuccessMsg("派工成功"); + } + + /** + * 设备编号--自动生成 + * 生成规则:YYMMDDNNNN + * YYMMDD:年月日 + * NNNN: 当天收样的流水号,采用四位数字,从0001开始,每天重新计数 + */ + private String customerCodeRule() { + String nowDate = DateTimeHelper.getNowYMD(); + //查询本日收样流水号 + String customerCode = testReportManageDao.selectCustomerCode(nowDate); + if (StringHelper.isNotEmpty(customerCode)) { + // 将字符串转换为整数 + int num = Integer.parseInt(customerCode); + // 执行加一操作 + num++; + // 将结果转换回字符串格式,并确保结果是四位数,不足四位则在前面补0 + customerCode = String.format("%04d", num); + } else { + customerCode = "0001"; + } + String code = nowDate + customerCode; + return code; + } + + +} diff --git a/src/main/resources/mappers/basis/SamplesManageMapper.xml b/src/main/resources/mappers/basis/SamplesManageMapper.xml index 5a4bd75..86cbf3d 100644 --- a/src/main/resources/mappers/basis/SamplesManageMapper.xml +++ b/src/main/resources/mappers/basis/SamplesManageMapper.xml @@ -41,7 +41,7 @@ UPDATE tb_sample - SET team_id = #{teamId} + SET team_id = #{teamId},dispatch_time=NOW() WHERE id = #{id} diff --git a/src/main/resources/mappers/basis/TestReportManageMapper.xml b/src/main/resources/mappers/basis/TestReportManageMapper.xml new file mode 100644 index 0000000..0c3fd98 --- /dev/null +++ b/src/main/resources/mappers/basis/TestReportManageMapper.xml @@ -0,0 +1,166 @@ + + + + INSERT INTO tb_sample(custom_id, + custom_name, + department, + sample_user, + sample_time, + create_time, + create_user, + sample_date) + VALUES (#{customId}, + #{customName}, + #{sampleDepartment}, + #{sampleUser}, + #{sampleTime}, + NOW(), + #{createBy}, + #{sampleTime}) + + + INSERT INTO tb_sample_device(sample_id, + dev_type_name, + dev_type_code, + dev_module, + dev_code, + customer_code, + sample_time, + create_time, + create_user) + VALUES (#{id}, + #{sampleTools}, + #{devTypeCode}, + #{devModule}, + #{devCode}, + #{customerCode}, + #{sampleTime}, + NOW(), + #{createBy}) + + + UPDATE tb_sample + SET team_id = #{teamId} + WHERE id = #{id} + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mappers/system/UserMapper.xml b/src/main/resources/mappers/system/UserMapper.xml index e869c40..e768f0e 100644 --- a/src/main/resources/mappers/system/UserMapper.xml +++ b/src/main/resources/mappers/system/UserMapper.xml @@ -42,9 +42,9 @@ - insert into sys_user(login_name, user_name, user_code, sex, org_id, role_id, phone, user_type, state, password,create_time) + insert into sys_user(login_name, user_name, user_code, sex, org_id, role_id, phone, user_type, state, password,team_id,create_time) values (#{loginName}, #{username}, #{userCode}, #{sex}, #{orgId}, #{roleId}, #{phone}, #{userType}, #{state}, - #{password},NOW()) + #{password},#{teamId},NOW()) + + + +
+ + +
+ + + `, + success: function () { + // 对弹层中的表单进行初始化渲染 + form.render(); + getTeamSelected(); + // 表单提交事件 + form.on('submit(upload)', function (data) { + console.log("data.field:",data.field) + let loadingMsg = layer.msg('数据上传中,请稍候...', {icon: 16, scrollbar: false, time: 0}); + let url = dataUrl + '/samples/dispatchWork'; + let params = { + "ids": ids, + teamId: data.field.teamId + } + params={ + encryptedData:encryptCBC(JSON.stringify(params)) + } + ajaxRequest(url, "POST", params, true, function () { + }, function (result) { + layer.close(loadingMsg); // 关闭提示层 + if (result.code === 200) { + closePage(1); + parent.layer.msg("派工成功", {icon: 1}); + }else { + layer.alert(result.msg, {icon: 2}) + } + }, function (xhr) { + layer.close(loadingMsg); // 关闭提示层 + error(xhr) + }); + }); + } + }); + } +} + +/** + * 获取班组数据 + */ +function getTeamSelected() { + let url = dataUrl + '/samples/getTeamSelected'; + ajaxRequest(url, "POST", null, true, function () { + }, function (result) { + if (result.code === 200) { + setSelectValue(result.data, 'teamId'); + // return result.data + } else { + layer.alert(result.msg, {icon: 2}) + } + }, function (xhr) { + error(xhr) + }); +} + +/** + * 下拉选表单赋值 + */ +function setSelectValue(list, selectName) { + console.log("list",list) + let html = ''; + $.each(list, function (index, item) { + html += ''; + }) + $('#' + selectName).empty().append(html); + layui.form.render(); +} + +function closePage(type) { + layer.closeAll(); + if (type === 1) { + pages(1, 10, 1) + } +} \ No newline at end of file diff --git a/src/main/resources/static/pages/testReport/child/testReportForm.html b/src/main/resources/static/pages/testReport/child/testReportForm.html new file mode 100644 index 0000000..bd1776c --- /dev/null +++ b/src/main/resources/static/pages/testReport/child/testReportForm.html @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + 详情 + + +
+ +
+
+
+
+
+ + + \ No newline at end of file diff --git a/src/main/resources/static/pages/testReport/testReportMge.html b/src/main/resources/static/pages/testReport/testReportMge.html new file mode 100644 index 0000000..54eca93 --- /dev/null +++ b/src/main/resources/static/pages/testReport/testReportMge.html @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + 检测报告管理 + + +
+ +
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/src/main/resources/static/pages/user/child/userForm.html b/src/main/resources/static/pages/user/child/userForm.html index e2934a2..59ef370 100644 --- a/src/main/resources/static/pages/user/child/userForm.html +++ b/src/main/resources/static/pages/user/child/userForm.html @@ -36,16 +36,6 @@ - - - - - - - - - -
@@ -69,6 +59,14 @@
+
+ +
+ +
+
+