From 9d7e99bc5b397dfbee280c10b11812244bd570cf Mon Sep 17 00:00:00 2001 From: hayu <1604366271@qq.com> Date: Tue, 23 Jul 2024 18:23:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B6=E6=A0=B7=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SamplesManageController.java | 29 ++++ .../aqgqj/basis/dao/SamplesManageDao.java | 27 +++ .../basis/entity/dto/SamplesManageDto.java | 21 ++- .../basis/service/SamplesManageService.java | 13 ++ .../impl/SamplesManageServiceImpl.java | 74 +++++++- .../mappers/basis/SamplesManageMapper.xml | 42 ++++- .../static/js/samples/child/samplesAdd.js | 6 +- .../static/js/samples/child/samplesForm.js | 6 +- .../resources/static/js/samples/samplesMge.js | 162 +++++++++++++++--- .../static/js/system/child/userForm.js | 1 + .../pages/samples/child/samplesAdd.html | 2 +- .../static/pages/samples/samplesMge.html | 3 + 12 files changed, 348 insertions(+), 38 deletions(-) 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 9416552..95f97ad 100644 --- a/src/main/java/com/bonus/aqgqj/basis/controller/SamplesManageController.java +++ b/src/main/java/com/bonus/aqgqj/basis/controller/SamplesManageController.java @@ -106,11 +106,40 @@ public class SamplesManageController { public ServerResponse addSamples(EncryptedReq vo) { try { return samplesManageService.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 = samplesManageService.getTeamSelected(); + return ServerResponse.createSuccess(list); }catch (Exception e){ log.error(e.toString(),e); } return ServerResponse.createErroe("操作失败"); } + /** + * @description 派工 + */ + @PostMapping("dispatchWork") + @DecryptAndVerify(decryptedClass = SamplesManageDto.class)//加解密统一管理 + @LogAnnotation(operModul = "收样管理", operation = "派工", operDesc = "业务级事件", operType = "新增") + @PreAuthorize("@pms.hasPermission('sys:samples:add')") + public ServerResponse dispatchWork(EncryptedReq vo) { + try { + return samplesManageService.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/SamplesManageDao.java b/src/main/java/com/bonus/aqgqj/basis/dao/SamplesManageDao.java index 51cd52d..ea6a29d 100644 --- a/src/main/java/com/bonus/aqgqj/basis/dao/SamplesManageDao.java +++ b/src/main/java/com/bonus/aqgqj/basis/dao/SamplesManageDao.java @@ -54,4 +54,31 @@ public interface SamplesManageDao { * @return */ int addSamplesDevice(SamplesManageDto dto); + + /** + * 设备类型编码 + * @param sampleToolsId + * @return + */ + String getDevTypeCodeById(Integer sampleToolsId); + + /** + * 获取设备编码 + * @param nowDate + * @return + */ + String selectCustomerCode(String nowDate); + + /** + * 获取班组 + * @return + */ + List getTeamSelected(); + + /** + * 修改班组 + * @param dto + * @return + */ + int updateTeamId(SamplesManageDto dto); } diff --git a/src/main/java/com/bonus/aqgqj/basis/entity/dto/SamplesManageDto.java b/src/main/java/com/bonus/aqgqj/basis/entity/dto/SamplesManageDto.java index eef624b..8ea8e6d 100644 --- a/src/main/java/com/bonus/aqgqj/basis/entity/dto/SamplesManageDto.java +++ b/src/main/java/com/bonus/aqgqj/basis/entity/dto/SamplesManageDto.java @@ -14,6 +14,8 @@ public class SamplesManageDto extends PageEntity { private Integer id; + private String ids; + /** * 名称 */ @@ -44,6 +46,11 @@ public class SamplesManageDto extends PageEntity { */ private String sampleTime; + /** + * 送样设备id + */ + private Integer sampleToolsId; + /** * 送样设备 */ @@ -59,21 +66,31 @@ public class SamplesManageDto extends PageEntity { */ private String collectSamplesTime; + /** + * 班组Id + */ + private Integer teamId; + /** * 班组 */ private String teamName; /** - * 设备编号 + * 设备编号 (手填/扫码) */ private String devCode; /** - * 客户自编号 + * 设备类型编码 */ private String devTypeCode; + /** + * 客户自编号(设备编码--自动生成) + */ + private String customerCode; + /** * 生产厂家 */ diff --git a/src/main/java/com/bonus/aqgqj/basis/service/SamplesManageService.java b/src/main/java/com/bonus/aqgqj/basis/service/SamplesManageService.java index cc248d9..a493ebe 100644 --- a/src/main/java/com/bonus/aqgqj/basis/service/SamplesManageService.java +++ b/src/main/java/com/bonus/aqgqj/basis/service/SamplesManageService.java @@ -42,4 +42,17 @@ public interface SamplesManageService { * @return */ ServerResponse addSamples(SamplesManageDto data); + + /** + * 获取所有班组数据 + * @return + */ + List getTeamSelected(); + + /** + * 派工 + * @param data + * @return + */ + ServerResponse dispatchWork(SamplesManageDto data); } diff --git a/src/main/java/com/bonus/aqgqj/basis/service/impl/SamplesManageServiceImpl.java b/src/main/java/com/bonus/aqgqj/basis/service/impl/SamplesManageServiceImpl.java index fc11771..3dba1bd 100644 --- a/src/main/java/com/bonus/aqgqj/basis/service/impl/SamplesManageServiceImpl.java +++ b/src/main/java/com/bonus/aqgqj/basis/service/impl/SamplesManageServiceImpl.java @@ -8,12 +8,18 @@ import com.bonus.aqgqj.basis.dao.ToolsManageDao; import com.bonus.aqgqj.basis.entity.dto.SamplesManageDto; import com.bonus.aqgqj.basis.service.SamplesManageService; import com.bonus.aqgqj.basis.service.ToolsManageService; +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.apache.commons.lang3.time.DateUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; /** @@ -70,6 +76,7 @@ public class SamplesManageServiceImpl implements SamplesManageService { } @Override + @Transactional(rollbackFor = Exception.class) public ServerResponse addSamples(SamplesManageDto data) { JSONArray jsonArray = JSONObject.parseArray(data.getParamsList()); List samplesManageDtos = jsonArray.toJavaList(SamplesManageDto.class); @@ -81,21 +88,82 @@ public class SamplesManageServiceImpl implements SamplesManageService { if (re>0){ //添加详情数据 for (SamplesManageDto dto : samplesManageDtos){ + //查询设备类型编码 + if (dto.getSampleToolsId()!=null){ + String devTypeCode = samplesManageDao.getDevTypeCodeById(dto.getSampleToolsId()); + dto.setDevTypeCode(devTypeCode); + } + //生成设备编码 + String customerCode = customerCodeRule(); + dto.setCustomerCode(customerCode); dto.setId(samplesManageDtos.get(0).getId()); dto.setCreateBy(userId); int res= samplesManageDao.addSamplesDevice(dto); if (res<=0){ - return ServerResponse.createByErrorMsg(500,"新增失败"); + throw new RuntimeException("收样设备信息表添加失败"); } } }else { - return ServerResponse.createByErrorMsg(500,"新增失败"); + throw new RuntimeException("收样单位信息表添加失败"); } }else { - return ServerResponse.createByErrorMsg(500,"新增失败"); + throw new RuntimeException("未获取到数据"); } return ServerResponse.createBySuccessMsg("上传成功"); } + /** + * 查询所有班组 + * @return + */ + @Override + public List getTeamSelected() { + return samplesManageDao.getTeamSelected(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public ServerResponse dispatchWork(SamplesManageDto data) { + if (StringHelper.isNotEmpty(data.getIds())){ + //拆分用逗号分隔的数据 + String[] ids = data.getIds().split(","); + for (String id : ids){ + SamplesManageDto dto = new SamplesManageDto(); + dto.setId(Integer.parseInt(id)); + dto.setTeamId(data.getTeamId()); + //更新班组数据 + int res = samplesManageDao.updateTeamId(dto); + if (res<=0){ + throw new RuntimeException("派工失败"); + } + } + } + return ServerResponse.createBySuccessMsg("派工成功"); + } + + /** + * 设备编号--自动生成 + * 生成规则:YYMMDDNNNN + * YYMMDD:年月日 + * NNNN: 当天收样的流水号,采用四位数字,从0001开始,每天重新计数 + */ + private String customerCodeRule() { + String nowDate = DateTimeHelper.getNowYMD(); + //查询本日收样流水号 + String customerCode = samplesManageDao.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 27b6c7b..5a4bd75 100644 --- a/src/main/resources/mappers/basis/SamplesManageMapper.xml +++ b/src/main/resources/mappers/basis/SamplesManageMapper.xml @@ -24,6 +24,8 @@ dev_type_name, dev_type_code, dev_module, + dev_code, + customer_code, sample_time, create_time, create_user) @@ -31,10 +33,17 @@ #{sampleTools}, #{devTypeCode}, #{devModule}, + #{devCode}, + #{customerCode}, #{sampleTime}, NOW(), #{createBy}) + + UPDATE tb_sample + SET team_id = #{teamId} + WHERE id = #{id} + @@ -120,4 +128,28 @@ del_flag = 0 and custom_status=0 + + + \ No newline at end of file diff --git a/src/main/resources/static/js/samples/child/samplesAdd.js b/src/main/resources/static/js/samples/child/samplesAdd.js index 54916a2..52b2d62 100644 --- a/src/main/resources/static/js/samples/child/samplesAdd.js +++ b/src/main/resources/static/js/samples/child/samplesAdd.js @@ -25,7 +25,7 @@ function setParams(params) { console.log("data123456:",data) console.log($('#sampleTime').val()) pages(data.field) - $('#devTypeCode').val('') + $('#devCode').val('') }); }) } @@ -53,7 +53,7 @@ function pages(data) { sampleToolsId: data.sampleTools, sampleTools: sampleToolsText, devModule: data.devModule, - devTypeCode: data.devTypeCode + devCode: data.devCode }); console.log("listData:",listData) //启用/禁用控件 @@ -133,7 +133,7 @@ function initTable(dataList) { //表头 {type: 'numbers', title: '序号', width: '10%', align: 'center'}, {field: "sampleTools",width: '25%', title: "设备类型", unresize: true, align: "center"}, - {field: "devTypeCode", width: '25%', title: "设备编号", unresize: true, align: "center"}, + {field: "devCode", width: '25%', title: "设备编号", unresize: true, align: "center"}, {field: "sampleTime", width: '30%', title: "收样时间", unresize: true, align: "center"}, { field: "view1",width: '10%', title: "操作", unresize: true, align: "center", diff --git a/src/main/resources/static/js/samples/child/samplesForm.js b/src/main/resources/static/js/samples/child/samplesForm.js index c67faff..688adfa 100644 --- a/src/main/resources/static/js/samples/child/samplesForm.js +++ b/src/main/resources/static/js/samples/child/samplesForm.js @@ -88,10 +88,10 @@ function initTable(dataList, limit, page) { } }, {field: "sampleTools", title: "设备类型", unresize: true, align: "center"}, - {field: "devTypeCode", title: "设备编号", unresize: true, align: "center"}, - {field: "devCode", title: "客户自编号", unresize: true, align: "center"}, + {field: "devCode", title: "设备编号", unresize: true, align: "center"}, + {field: "customerCode", title: "设备编码", unresize: true, align: "center"}, {field: "devModule", title: "规格型号", unresize: true, align: "center"}, - {field: "customName", title: "送检部门", unresize: true, align: "center"}, + {field: "sampleDepartment", title: "送检部门", unresize: true, align: "center"}, {field: "experCycle", title: "试验周期", unresize: true, align: "center"}, {field: "experPrice", title: "试验单价(元)", unresize: true, align: "center"}, { diff --git a/src/main/resources/static/js/samples/samplesMge.js b/src/main/resources/static/js/samples/samplesMge.js index 5310ca0..cd14f75 100644 --- a/src/main/resources/static/js/samples/samplesMge.js +++ b/src/main/resources/static/js/samples/samplesMge.js @@ -1,6 +1,8 @@ let form, layer, table, tableIns; let pageNum = 1, limitSize = 10; // 默认第一页,分页数量为10 let orgData,selectOrgId; +let quanju = new Array();//全局 +let huancun = new Array();//缓存 layui.use(['form', 'layer', 'table', 'laydate'], function () { form = layui.form; @@ -27,7 +29,9 @@ function getToolsSelected() { }); } - +/** + * 获取数据 + */ function pages(pageNum, pageSize, typeNum) { let params = getReqParams(pageNum, pageSize, typeNum); let url = dataUrl + "/samples/getList" @@ -48,6 +52,9 @@ function pages(pageNum, pageSize, typeNum) { } +/** + * 分页 + */ function laypages(total, page, limit) { layui.use(['laypage'], function () { let laypage = layui.laypage; @@ -69,7 +76,9 @@ function laypages(total, page, limit) { }) } -/*初始化表格*/ +/** + * 初始化表格 + */ function initTable(dataList, limit, page) { let loadingMsg = layer.msg("数据加载中,请稍候...", {icon: 16, scrollbar: false, time: 0,}); tableIns = table.render({ @@ -79,6 +88,15 @@ function initTable(dataList, limit, page) { limit: limit, cols: [ [ + {type: 'checkbox', fixed: 'left', align: "center", templet: function(d) { + console.log("d.teamName:",d.teamName) + if (d.teamName != null) { + console.log("1223455") + return ``; + } else { + return ``; + } + }}, //表头 {title: "序号", width: 80, unresize: true, align: "center", templet: function (d) { @@ -123,36 +141,45 @@ function initTable(dataList, limit, page) { table.resize("table_data"); count || this.elem.next(".layui-table-view").find(".layui-table-header").css("display", "inline-block"); count || this.elem.next(".layui-table-view").find(".layui-table-box").css("overflow", "auto"); + + // 处理复选框禁用 + let checkboxes = this.elem.next(".layui-table-view").find("input[type='checkbox']"); + dataList.forEach((item, index) => { + console.log("item.teamName:",item.teamName) + if (item.teamName) { + // 禁用该行的复选框 + checkboxes.eq(index).prop('disabled', true); + } + }); }, }); } -function handleClick1(sampleTools,devModule,devCode,experTime,nextExperTime,experUser,experConclu,customName) { - title = '合格证'; - let param = { - 'sampleTools' : sampleTools, - 'devModule' : devModule, - 'devCode' : devCode, - 'experTime' : experTime, - 'nextExperTime' : nextExperTime, - 'experUser': experUser, - 'experConclu': experConclu, - 'customName': customName +/** + * 获取选中的数据 + */ +function getCheckedValues() { + let data = table.checkStatus("table_data").data; + let ids = []; + + if (data.length === 0) { + return ''; } - openIframe2("addOrEditUser", title, "child/certificateView.html", '30%', '70%', param); -} -function handleClick2(view1) { - alert('Clicked on: ' + view1); -} + for (let i = 0; i < data.length; i++) { + ids.push(data[i].id); + } + // 将 ids 数组用逗号分隔成字符串 + return ids.join(','); +} // 获取参数 function getReqParams(page, limit, type) { var selectedValue =$('#sampleTools').val() // 2. 查找对应的选项文本 var selectedText = $('#sampleTools option[value="' + selectedValue + '"]').text(); - if (selectedText=='请选择设备类型'){ + if (selectedText=='请选择'){ selectedText='' } let obj = {}; @@ -234,14 +261,107 @@ function collectSamples(id) { openIframe2("addOrEditUser", title, "child/samplesAdd.html", '70%', '90%', param); } +/** + * 派工 + */ +function dispatch() { + //获取复选框选中数据的Id + var ids = getCheckedValues(); + if (ids==='') { + return layer.msg('请选择需要派工的数据', {icon: 7}) + } else { + layer.open({ + type: 1, + id: 'dispatch', + area: ['380px', '45%'], + resize: false, + shadeClose: true, + title: '请选择试验班组', + content: ` +
+ +
+ `, + 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 = ''; + 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/js/system/child/userForm.js b/src/main/resources/static/js/system/child/userForm.js index 43cbf21..2dfa9eb 100644 --- a/src/main/resources/static/js/system/child/userForm.js +++ b/src/main/resources/static/js/system/child/userForm.js @@ -10,6 +10,7 @@ showDictSelect("sex", "sex"); showDictSelect("unit", "unit"); showDictSelect("dept", "dept"); function setParams(params) { + console.log(params) idParam = JSON.parse(params).id; layui.config({ base: "../../../js/layui-v2.6.8/dtree/", //此处路径请自行处理, 可以使用绝对路径 diff --git a/src/main/resources/static/pages/samples/child/samplesAdd.html b/src/main/resources/static/pages/samples/child/samplesAdd.html index 0acca31..8abe99f 100644 --- a/src/main/resources/static/pages/samples/child/samplesAdd.html +++ b/src/main/resources/static/pages/samples/child/samplesAdd.html @@ -117,7 +117,7 @@
-
diff --git a/src/main/resources/static/pages/samples/samplesMge.html b/src/main/resources/static/pages/samples/samplesMge.html index 8550ccd..4620664 100644 --- a/src/main/resources/static/pages/samples/samplesMge.html +++ b/src/main/resources/static/pages/samples/samplesMge.html @@ -68,6 +68,9 @@ .layui-table-init { background-color: transparent !important; } + .layui-form-selected dl { + height: 150px !important; + }