framework/src/main/java/com/yuanchu/limslaboratory/utils/ServletUtils.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,137 @@ package com.yuanchu.limslaboratory.utils; import cn.hutool.core.convert.Convert; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; /** * 客æ·ç«¯å·¥å ·ç±» * * @author å¼ å®¾ */ public class ServletUtils { /** * è·åStringåæ° */ public static String getParameter(String name) { return getRequest().getParameter(name); } /** * è·åStringåæ° */ public static String getParameter(String name, String defaultValue) { return Convert.toStr(getRequest().getParameter(name), defaultValue); } /** * è·åIntegeråæ° */ public static Integer getParameterToInt(String name) { return Convert.toInt(getRequest().getParameter(name)); } /** * è·åIntegeråæ° */ public static Integer getParameterToInt(String name, Integer defaultValue) { return Convert.toInt(getRequest().getParameter(name), defaultValue); } /** * è·årequest */ public static HttpServletRequest getRequest() { return getRequestAttributes().getRequest(); } /** * è·åresponse */ public static HttpServletResponse getResponse() { return getRequestAttributes().getResponse(); } /** * è·åsession */ public static HttpSession getSession() { return getRequest().getSession(); } public static ServletRequestAttributes getRequestAttributes() { RequestAttributes attributes = RequestContextHolder.getRequestAttributes(); return (ServletRequestAttributes) attributes; } /** * å°å符串渲æå°å®¢æ·ç«¯ * * @param response 渲æå¯¹è±¡ * @param string å¾ æ¸²æçå符串 * @return null */ public static String renderString(HttpServletResponse response, String string) { try { response.setContentType("application/json"); response.setCharacterEncoding("utf-8"); response.getWriter().print(string); } catch (IOException e) { e.printStackTrace(); } return null; } /** * æ¯å¦æ¯Ajax弿¥è¯·æ± * * @param request */ public static boolean isAjaxRequest(HttpServletRequest request) { String accept = request.getHeader("accept"); if (accept != null && accept.indexOf("application/json") != -1) { return true; } String xRequestedWith = request.getHeader("X-Requested-With"); if (xRequestedWith != null && xRequestedWith.indexOf("XMLHttpRequest") != -1) { return true; } String uri = request.getRequestURI(); if (StringUtils.inStringIgnoreCase(uri, ".json", ".xml")) { return true; } String ajax = request.getParameter("__ajax"); if (StringUtils.inStringIgnoreCase(ajax, "json", "xml")) { return true; } return false; } } framework/src/main/java/com/yuanchu/limslaboratory/utils/StringUtils.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,403 @@ package com.yuanchu.limslaboratory.utils; import cn.hutool.core.text.StrFormatter; import java.util.Collection; import java.util.Map; /** * åç¬¦ä¸²å·¥å ·ç±» * * @author å¼ å®¾ */ public class StringUtils extends org.apache.commons.lang3.StringUtils { /** 空å符串 */ private static final String NULLSTR = ""; /** ä¸å线 */ private static final char SEPARATOR = '_'; /** * è·ååæ°ä¸ä¸ºç©ºå¼ * @param value defaultValue è¦å¤æçvalue * @return value è¿åå¼ */ public static <T> T nvl(T value, T defaultValue) { return value != null ? value : defaultValue; } /** * * 夿ä¸ä¸ªCollectionæ¯å¦ä¸ºç©ºï¼ å å«Listï¼Setï¼Queue * * @param coll è¦å¤æçCollection * @return trueï¼ä¸ºç©º falseï¼é空 */ public static boolean isEmpty(Collection<?> coll) { return isNull(coll) || coll.isEmpty(); } /** * * 夿ä¸ä¸ªCollectionæ¯å¦é空ï¼å å«Listï¼Setï¼Queue * * @param coll è¦å¤æçCollection * @return trueï¼é空 falseï¼ç©º */ public static boolean isNotEmpty(Collection<?> coll) { return !isEmpty(coll); } /** * * 夿ä¸ä¸ªå¯¹è±¡æ°ç»æ¯å¦ä¸ºç©º * * @param objects è¦å¤æç对象æ°ç» ** @return trueï¼ä¸ºç©º falseï¼é空 */ public static boolean isEmpty(Object[] objects) { return isNull(objects) || (objects.length == 0); } /** * * 夿ä¸ä¸ªå¯¹è±¡æ°ç»æ¯å¦é空 * * @param objects è¦å¤æç对象æ°ç» * @return trueï¼é空 falseï¼ç©º */ public static boolean isNotEmpty(Object[] objects) { return !isEmpty(objects); } /** * * 夿ä¸ä¸ªMapæ¯å¦ä¸ºç©º * * @param map è¦å¤æçMap * @return trueï¼ä¸ºç©º falseï¼é空 */ public static boolean isEmpty(Map<?, ?> map) { return isNull(map) || map.isEmpty(); } /** * * 夿ä¸ä¸ªMapæ¯å¦ä¸ºç©º * * @param map è¦å¤æçMap * @return trueï¼é空 falseï¼ç©º */ public static boolean isNotEmpty(Map<?, ?> map) { return !isEmpty(map); } /** * * 夿ä¸ä¸ªå符串æ¯å¦ä¸ºç©ºä¸² * * @param str String * @return trueï¼ä¸ºç©º falseï¼é空 */ public static boolean isEmpty(String str) { return isNull(str) || NULLSTR.equals(str.trim()); } /** * * 夿ä¸ä¸ªå符串æ¯å¦ä¸ºé空串 * * @param str String * @return trueï¼é空串 falseï¼ç©ºä¸² */ public static boolean isNotEmpty(String str) { return !isEmpty(str); } /** * * 夿ä¸ä¸ªå¯¹è±¡æ¯å¦ä¸ºç©º * * @param object Object * @return trueï¼ä¸ºç©º falseï¼é空 */ public static boolean isNull(Object object) { return object == null; } /** * * 夿ä¸ä¸ªå¯¹è±¡æ¯å¦é空 * * @param object Object * @return trueï¼é空 falseï¼ç©º */ public static boolean isNotNull(Object object) { return !isNull(object); } /** * * 夿ä¸ä¸ªå¯¹è±¡æ¯å¦æ¯æ°ç»ç±»åï¼Javaåºæ¬åå«çæ°ç»ï¼ * * @param object 对象 * @return trueï¼æ¯æ°ç» falseï¼ä¸æ¯æ°ç» */ public static boolean isArray(Object object) { return isNotNull(object) && object.getClass().isArray(); } /** * å»ç©ºæ ¼ */ public static String trim(String str) { return (str == null ? "" : str.trim()); } /** * æªåå符串 * * @param str å符串 * @param start å¼å§ * @return ç»æ */ public static String substring(final String str, int start) { if (str == null) { return NULLSTR; } if (start < 0) { start = str.length() + start; } if (start < 0) { start = 0; } if (start > str.length()) { return NULLSTR; } return str.substring(start); } /** * æªåå符串 * * @param str å符串 * @param start å¼å§ * @param end ç»æ * @return ç»æ */ public static String substring(final String str, int start, int end) { if (str == null) { return NULLSTR; } if (end < 0) { end = str.length() + end; } if (start < 0) { start = str.length() + start; } if (end > str.length()) { end = str.length(); } if (start > end) { return NULLSTR; } if (start < 0) { start = 0; } if (end < 0) { end = 0; } return str.substring(start, end); } /** * æ ¼å¼åææ¬, {} 表示å ä½ç¬¦<br> * æ¤æ¹æ³åªæ¯ç®åå°å ä½ç¬¦ {} æç §é¡ºåºæ¿æ¢ä¸ºåæ°<br> * 妿æ³è¾åº {} ä½¿ç¨ \\è½¬ä¹ { å³å¯ï¼å¦ææ³è¾åº {} ä¹åç \ 使ç¨å转ä¹ç¬¦ \\\\ å³å¯<br> * ä¾ï¼<br> * é常使ç¨ï¼format("this is {} for {}", "a", "b") -> this is a for b<br> * 转ä¹{}ï¼ format("this is \\{} for {}", "a", "b") -> this is \{} for a<br> * 转ä¹\ï¼ format("this is \\\\{} for {}", "a", "b") -> this is \a for b<br> * * @param template ææ¬æ¨¡æ¿ï¼è¢«æ¿æ¢çé¨åç¨ {} 表示 * @param params åæ°å¼ * @return æ ¼å¼ååçææ¬ */ public static String format(String template, Object... params){ if (isEmpty(params) || isEmpty(template)) { return template; } return StrFormatter.format(template, params); } /** * ä¸å线转驼峰å½å */ public static String toUnderScoreCase(String str) { if (str == null) { return null; } StringBuilder sb = new StringBuilder(); // åç½®å符æ¯å¦å¤§å boolean preCharIsUpperCase = true; // å½åå符æ¯å¦å¤§å boolean curreCharIsUpperCase = true; // ä¸ä¸å符æ¯å¦å¤§å boolean nexteCharIsUpperCase = true; for (int i = 0; i < str.length(); i++) { char c = str.charAt(i); if (i > 0) { preCharIsUpperCase = Character.isUpperCase(str.charAt(i - 1)); } else { preCharIsUpperCase = false; } curreCharIsUpperCase = Character.isUpperCase(c); if (i < (str.length() - 1)) { nexteCharIsUpperCase = Character.isUpperCase(str.charAt(i + 1)); } if (preCharIsUpperCase && curreCharIsUpperCase && !nexteCharIsUpperCase) { sb.append(SEPARATOR); } else if ((i != 0 && !preCharIsUpperCase) && curreCharIsUpperCase) { sb.append(SEPARATOR); } sb.append(Character.toLowerCase(c)); } return sb.toString(); } /** * æ¯å¦å å«å符串 * * @param str éªè¯å符串 * @param strs åç¬¦ä¸²ç» * @return å å«è¿åtrue */ public static boolean inStringIgnoreCase(String str, String... strs) { if (str != null && strs != null) { for (String s : strs) { if (str.equalsIgnoreCase(trim(s))) { return true; } } } return false; } /** * å°ä¸åçº¿å¤§åæ¹å¼å½åçå符串转æ¢ä¸ºé©¼å³°å¼ãå¦æè½¬æ¢åçä¸åçº¿å¤§åæ¹å¼å½åçå符串为空ï¼åè¿å空å符串ã ä¾å¦ï¼HELLO_WORLD->HelloWorld * * @param name 转æ¢åçä¸åçº¿å¤§åæ¹å¼å½åçå符串 * @return 转æ¢åç驼峰å¼å½åçå符串 */ public static String convertToCamelCase(String name) { StringBuilder result = new StringBuilder(); // å¿«éæ£æ¥ if (name == null || name.isEmpty()) { // æ²¡å¿ è¦è½¬æ¢ return ""; } else if (!name.contains("_")) { // ä¸å«ä¸å线ï¼ä» å°é¦åæ¯å¤§å return name.substring(0, 1).toUpperCase() + name.substring(1); } // ç¨ä¸å线å°åå§å符串åå² String[] camels = name.split("_"); for (String camel : camels) { // è·³è¿åå§å符串ä¸å¼å¤´ãç»å°¾ç䏿¢çº¿æåéä¸å线 if (camel.isEmpty()) { continue; } // é¦åæ¯å¤§å result.append(camel.substring(0, 1).toUpperCase()); result.append(camel.substring(1).toLowerCase()); } return result.toString(); } /** * 驼峰å¼å½åæ³ ä¾å¦ï¼user_name->userName */ public static String toCamelCase(String s) { if (s == null) { return null; } s = s.toLowerCase(); StringBuilder sb = new StringBuilder(s.length()); boolean upperCase = false; for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if (c == SEPARATOR) { upperCase = true; } else if (upperCase) { sb.append(Character.toUpperCase(c)); upperCase = false; } else { sb.append(c); } } return sb.toString(); } @SuppressWarnings("unchecked") public static <T> T cast(Object obj) { return (T) obj; } } laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/MeteringPlanController.java
@@ -5,12 +5,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.limslaboratory.pojo.Instrument; import com.yuanchu.limslaboratory.pojo.MeteringPlan; import com.yuanchu.limslaboratory.pojo.dto.AddPlanDto; import com.yuanchu.limslaboratory.pojo.dto.GetPlanMeasureInstrumentDto; import com.yuanchu.limslaboratory.pojo.dto.SelectMeasurementLedgerDto; import com.yuanchu.limslaboratory.pojo.dto.SelectMeteringPlanDto; import com.yuanchu.limslaboratory.service.MeteringPlanService; import com.yuanchu.limslaboratory.service.UserService; import com.yuanchu.limslaboratory.utils.JackSonUtil; import com.yuanchu.limslaboratory.utils.RedisUtil; import com.yuanchu.limslaboratory.utils.ServletUtils; import com.yuanchu.limslaboratory.vo.Result; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -19,6 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.Map; import java.util.Objects; @@ -37,6 +41,10 @@ @Autowired private MeteringPlanService meteringPlanService; @Resource private UserService userService; @ApiOperation("æ·»å 计é计å") @PostMapping("/add") @@ -72,4 +80,15 @@ public Result<?> limitGetPlanMeasureInstrument(GetPlanMeasureInstrumentDto dto){ return Result.success(meteringPlanService.limitGetPlanMeasureInstrument(dto)); } @ApiOperation("è·åuserå表å仪å¨å表") @GetMapping("/getListUserAndListIns") public Result<?>getListUserAndListIns(){ return Result.success(meteringPlanService.getListUserAndListIns(userService.getUserNameAndId())); } @PostMapping("/addPlanAndMeasure") public Result<?>addPlanAndMeasure(@RequestBody AddPlanDto addPlanDto){ return Result.success(meteringPlanService.addPlanAndMeasure(userService.getUserInfo(ServletUtils.getRequest().getHeader("X-Token")),addPlanDto)); } } laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/MetricalInformationController.java
@@ -87,4 +87,10 @@ public Result<?> getMapUserInformation() { return Result.success(userService.getUserNameAndId()); } @ApiOperation("æ´æ°è®¡éç»æ") public Result<?> updateMetricalInformationResult(String code,Integer result){ return null; } } laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/MetricalInformationMapper.java
@@ -2,6 +2,7 @@ import com.yuanchu.limslaboratory.pojo.MetricalInformation; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import java.util.List; import java.util.Map; @@ -17,4 +18,6 @@ public interface MetricalInformationMapper extends BaseMapper<MetricalInformation> { List<Map<String, Object>> getListEquipmentPointInformation(String InstrumentId); int insertBatchInformation(@Param("informationList") List<MetricalInformation>informationList); } laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MetricalInfoAndIns.java
@@ -45,4 +45,9 @@ private String imCreateName; private String uncertainty; private String performanceIndex; private String remarks; } laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MetricalInformation.java
@@ -41,6 +41,8 @@ @ApiModelProperty(value = "仪å¨å ³èId", example = "1", required = true) private Integer instrumentId; private Integer plan; @ApiModelProperty(value = "计éåä½", example = "GB", required = true) private String measurementUnit; laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/AddPlanDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,26 @@ package com.yuanchu.limslaboratory.pojo.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; import java.util.List; import java.util.Map; /** * @Author å¼ å®¾ * @Date 2023/8/19 */ @Data @ApiModel(value = "GetPlanMeasureInstrumentDto对象", description = "") public class AddPlanDto implements Serializable { @ApiModelProperty(value = "计éä¿¡æ¯", required = false) List<Map<String, Object>>measureList; @ApiModelProperty(value = "计åä¿¡æ¯", required = true) Map<String, Object>plan; } laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/UserAndInsVo.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,25 @@ package com.yuanchu.limslaboratory.pojo.vo; import com.yuanchu.limslaboratory.pojo.Instrument; import com.yuanchu.limslaboratory.pojo.User; import lombok.Data; import java.io.Serializable; import java.util.List; import java.util.Map; /** * @Author å¼ å®¾ * @Date 2023/8/19 */ @Data public class UserAndInsVo implements Serializable { List<Map<String, Object>>userList; List<Instrument>instrumentList; public UserAndInsVo(List<Map<String, Object>> userList, List<Instrument> instrumentList) { this.userList = userList; this.instrumentList = instrumentList; } } laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/MeteringPlanService.java
@@ -6,9 +6,11 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.yuanchu.limslaboratory.pojo.MeteringPlanAndInfoAndIns; import com.yuanchu.limslaboratory.pojo.MetricalInfoAndIns; import com.yuanchu.limslaboratory.pojo.dto.AddPlanDto; import com.yuanchu.limslaboratory.pojo.dto.GetPlanMeasureInstrumentDto; import com.yuanchu.limslaboratory.pojo.dto.SelectMeasurementLedgerDto; import com.yuanchu.limslaboratory.pojo.dto.SelectMeteringPlanDto; import com.yuanchu.limslaboratory.pojo.vo.UserAndInsVo; import java.util.List; import java.util.Map; @@ -33,4 +35,8 @@ Map<String, Object> getPlanMeasureInstrument(GetPlanMeasureInstrumentDto dto); Map<String, Object> limitGetPlanMeasureInstrument(GetPlanMeasureInstrumentDto dto); UserAndInsVo getListUserAndListIns(List<Map<String, Object>> userNameAndId); boolean addPlanAndMeasure(Map<String, Object> userInfo, AddPlanDto addPlanDto); } laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MeteringPlanServiceImpl.java
@@ -1,22 +1,27 @@ package com.yuanchu.limslaboratory.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.limslaboratory.mapper.InstrumentMapper; import com.yuanchu.limslaboratory.mapper.MetricalInformationMapper; import com.yuanchu.limslaboratory.pojo.*; import com.yuanchu.limslaboratory.mapper.MeteringPlanMapper; import com.yuanchu.limslaboratory.pojo.dto.AddPlanDto; import com.yuanchu.limslaboratory.pojo.dto.GetPlanMeasureInstrumentDto; import com.yuanchu.limslaboratory.pojo.dto.SelectMeasurementLedgerDto; import com.yuanchu.limslaboratory.pojo.dto.SelectMeteringPlanDto; import com.yuanchu.limslaboratory.pojo.vo.UserAndInsVo; import com.yuanchu.limslaboratory.service.MeteringPlanService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yuanchu.limslaboratory.utils.MyUtil; import com.yuanchu.limslaboratory.utils.RedisUtil; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.atomic.AtomicBoolean; /** * <p> @@ -32,6 +37,12 @@ @Resource private MeteringPlanMapper meteringPlanMapper; @Resource private InstrumentMapper instrumentMapper; @Resource private MetricalInformationMapper metricalInformationMapper; @Override public Integer addMeteringPlanInformation(MeteringPlan meteringPlan) { String timeSixNumber = MyUtil.getTimeSixNumberCode("P","P"); @@ -44,13 +55,17 @@ List<MeteringPlanAndInfo> page= meteringPlanMapper .limitConditionMeteringPlan(dto,new LimitPage((dto.getCurrentPage()-1)*dto.getPageSize(), dto.getPageSize())); page.forEach(l->{ AtomicBoolean haveZero= new AtomicBoolean(false); l.getResultList().forEach(r->{ if (r.getResult() < 1) { l.setStatus(0); if (r.getResult()<1) { haveZero.set(true); }else { l.setStatus(1); } }); if(haveZero.get()){ l.setStatus(0); } l.setResultList(null); }); Map<String, Object>all=new HashMap<>(2); @@ -83,4 +98,55 @@ ,dto.getPageSize()),dto.getId())); return map; } @Override public UserAndInsVo getListUserAndListIns(List<Map<String, Object>> userNameAndId) { QueryWrapper<Instrument>queryWrapper=new QueryWrapper<Instrument>(); queryWrapper.lambda() .select(Instrument::getEquipmentName,Instrument::getId,Instrument::getMeasuringRange,Instrument::getTermValidity) .eq(Instrument::getState,true); List<Instrument> instruments = instrumentMapper.selectList(queryWrapper); return new UserAndInsVo(userNameAndId,instruments); } @Override @Transactional(rollbackFor = Exception.class) public boolean addPlanAndMeasure(Map<String, Object> userInfo, AddPlanDto addPlanDto) { //è®¡åæ·»å MeteringPlan meteringPlan=new MeteringPlan(); String timeSixNumber = MyUtil.getTimeSixNumberCode("P","P"); meteringPlan.setPlannedOrderNumber(timeSixNumber); meteringPlan.setCreatePerson(Integer.parseInt(String.valueOf(userInfo.get("id")))); meteringPlan.setUnit(String.valueOf(addPlanDto.getPlan().get("unit"))); meteringPlan .setBeginTime(DateUtil. parseDate(String.valueOf(addPlanDto.getPlan().get("startTime")))); meteringPlan.setEndTime(DateUtil. parseDate(String.valueOf(addPlanDto.getPlan().get("endTime")))); meteringPlan.setCreateTime(DateUtil.date()); meteringPlan.setMeasurePerson(Integer.parseInt(String.valueOf(addPlanDto.getPlan().get("measurePerson")))); meteringPlan.setUpdateTime(DateUtil.date()); meteringPlan.setPlanningStatus(3); boolean addPlan = meteringPlanMapper.insert(meteringPlan) > 0; //æ°å¢è®¡é List<MetricalInformation>informationList=new ArrayList<>(); addPlanDto.getMeasureList().forEach(l->{ MetricalInformation info=new MetricalInformation(); info.setInstrumentId(Integer.parseInt(String.valueOf(l.get("equipmentPointName")))); info.setUserId(Integer.parseInt(String.valueOf(userInfo.get("id")))); info.setCreateTime(DateUtil.date()); Date endDate=Objects.nonNull(l.get("endDate"))?DateUtil.parseDate(String.valueOf(l.get("endDate"))):null; info.setEndDate(endDate); Integer result=Objects.nonNull(l.get("result"))?Integer.parseInt(String.valueOf(l.get("result"))):null; info.setResult(result); info.setMeasurementUnit(meteringPlan.getUnit()); info.setCode(MyUtil.getTimeSixNumberCode("METRICALCODE","METRICALCODE")); info.setUpdateTime(DateUtil.date()); info.setPlan(meteringPlan.getId()); informationList.add(info); }); return addPlan&&metricalInformationMapper.insertBatchInformation(informationList)>0; } } laboratory-server/src/main/resources/mapper/MetricalInformationMapper.xml
@@ -1,6 +1,13 @@ <?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.yuanchu.limslaboratory.mapper.MetricalInformationMapper"> <insert id="insertBatchInformation"> insert metrical_information (id,code,user_id,plan,instrument_id,measurement_unit,end_date,result,create_time,update_time) values <foreach collection="informationList" item="info" separator=","> (null,#{info.code},#{info.userId},#{info.plan},#{info.instrumentId},#{info.measurementUnit},#{info.endDate},#{info.result},#{info.createTime},#{info.updateTime}) </foreach> </insert> <select id="getListEquipmentPointInformation" resultType="map"> SELECT m.`id`, u.`name`, m.`measurement_unit`, DATE_FORMAT(m.`begin_date`, '%Y-%m-%d') beginDate, DATE_FORMAT(m.`end_date`, '%Y-%m-%d') endDate, standard-server/src/main/java/com/yuanchu/limslaboratory/controller/ProductController.java
@@ -38,6 +38,15 @@ return Result.success(productService.pageProductInformation(specificationsId)); } //@ApiOperation("å¡«åæ åå¼ä¸å æ§å¼,é¼ æ ç§»å¼ä¿å") @ApiOperation("å¡«åæ åå¼ä¸å æ§å¼,é¼ æ ç§»å¼ä¿å") @ApiImplicitParams(value = { @ApiImplicitParam(name = "id", value = "æ å项ç®ID", dataTypeClass = Integer.class, required = true), @ApiImplicitParam(name = "required", value = "æ åå¼", dataTypeClass = String.class, required = true), @ApiImplicitParam(name = "internal", value = "å æ§å¼", dataTypeClass = String.class, required = true) }) @PostMapping("/write") public Result<?> write(Integer id, String required, String internal) { return Result.success(productService.write(id, required, internal)); } } standard-server/src/main/java/com/yuanchu/limslaboratory/controller/SpecificationsController.java
@@ -21,7 +21,7 @@ * @author æ±èéµ·éç½ç»ç§ææéå ¬å¸ * @since 2023-07-11 */ @Api(tags = "æ ååº-->3ã产åè§æ ¼") @Api(tags = "æ ååº-->3ã产ååå·") @RestController @RequestMapping("/specifications") public class SpecificationsController { @@ -41,7 +41,7 @@ @ApiOperation("å é¤äº§ååå·") @ApiImplicitParams(value = { @ApiImplicitParam(name = "specificationsId", value = "è§æ ¼Id", dataTypeClass = Integer.class, required = true) @ApiImplicitParam(name = "specificationsId", value = "åå·Id", dataTypeClass = Integer.class, required = true) }) @DeleteMapping("/delete") public Result<?> deleteSpecificationsInformation(Integer specificationsId) { standard-server/src/main/java/com/yuanchu/limslaboratory/controller/StandardController.java
@@ -17,7 +17,7 @@ * @author æ±èéµ·éç½ç»ç§ææéå ¬å¸ * @since 2023-07-11 */ @Api(tags = "æ ååº-->2ãæ å") @Api(tags = "æ ååº-->2ãè§æ ¼(æ å)") @RestController @RequestMapping("/standards") public class StandardController { standard-server/src/main/java/com/yuanchu/limslaboratory/service/ProductService.java
@@ -28,4 +28,14 @@ * @return */ List<Map<String,Object>> pageProductInformation(Integer specificationsId); /** * å¡«åæ åå¼ä¸å æ§å¼,é¼ æ ç§»å¼ä¿å * @param id * @param required * @param internal * @return */ Integer write(Integer id, String required, String internal); } standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ProductServiceImpl.java
@@ -44,7 +44,7 @@ @Override public void deleteProductInformation(List<Integer> SpecificationsId) { for (Integer materialId : SpecificationsId){ for (Integer materialId : SpecificationsId) { LambdaUpdateWrapper<Product> wrapper = new LambdaUpdateWrapper<>(); wrapper.eq(Product::getSpecifications_id, materialId); wrapper.set(Product::getState, 0); @@ -59,5 +59,16 @@ return productMapper.pageProductInformation(specificationsId); } //å¡«åæ åå¼ä¸å æ§å¼,é¼ æ ç§»å¼ä¿å @Override public Integer write(Integer id, String required, String internal) { Product product = new Product(); product.setId(id); product.setRequired(required); product.setInternal(internal); productMapper.updateById(product); return 1; } } standard-server/src/main/resources/mapper/ProductMapper.xml
@@ -13,13 +13,14 @@ <!--å±ç¤ºè¯¥åå·ä¸çæ£éªé¡¹ç®è¦æ±--> <select id="pageProductInformation" resultType="java.util.Map"> select name, select id, name, father, unit, required, internal from lims_laboratory.product where state=1 and specifications_id=#{specificationsId} where state = 1 and specifications_id = #{specificationsId} </select> </mapper> standard-server/src/main/resources/mapper/ProductModelMapper.xml
@@ -1,8 +1,18 @@ <?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.yuanchu.limslaboratory.mapper.ProductModelMapper"> <resultMap id="selectproductModelMap" type="map"> <id property="father" column="father"/> <collection property="children" resultMap="selectproductModelTowMap" javaType="List"/> </resultMap> <resultMap id="selectproductModelTowMap" type="map"> <id property="id" column="id"/> <result property="name" column="name"/> <result property="unit" column="unit"/> </resultMap> <!--æ¥è¯¢æ 忍¡çå表--> <select id="selectproductModel" resultType="java.util.Map"> <select id="selectproductModel" resultMap="selectproductModelMap"> select id, father, name, @@ -16,7 +26,6 @@ <if test="father!=null and father!=''"> and father like concat('%',#{father},'%') </if> order by father </select> <update id="delAllproductModel">