From 5ed5f51d479989d5b2149b09c82b6b3ea495b589 Mon Sep 17 00:00:00 2001 From: zhuo <2089219845@qq.com> Date: 星期二, 23 七月 2024 16:21:59 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderService.java | 2 system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java | 32 +++ cnas-server/src/main/resources/mapper/DeviceMapper.xml | 3 performance-server/src/main/java/com/yuanchu/mom/mapper/PerformanceShiftMapper.java | 2 cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceConfigDtoPage.java | 66 +++++++ cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java | 4 inspect-server/src/main/resources/mapper/InsOrderMapper.xml | 2 performance-server/src/main/resources/mapper/PerformanceShiftMapper.xml | 26 ++ performance-server/src/main/java/com/yuanchu/mom/service/impl/PerformanceShiftServiceImpl.java | 23 ++ inspect-server/src/main/java/com/yuanchu/mom/pojo/InsSampleUser.java | 12 + cnas-server/src/main/java/com/yuanchu/mom/service/impl/DataConfigServiceImpl.java | 19 + inspect-server/src/main/resources/mapper/InsSampleMapper.xml | 66 ++++++ cnas-server/src/main/java/com/yuanchu/mom/dto/DataConfigDto.java | 15 + cnas-server/src/main/resources/mapper/DataConfigMapper.xml | 23 ++ inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java | 25 ++ inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java | 3 cnas-server/src/main/java/com/yuanchu/mom/mapper/DataConfigMapper.java | 6 cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java | 19 + inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java | 4 cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java | 45 ++++ system-run/src/main/java/com/yuanchu/mom/backup/MysqlDataBackup.java | 75 ++++++++ inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java | 4 inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java | 11 + cnas-server/src/main/java/com/yuanchu/mom/service/DataConfigService.java | 6 inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java | 2 25 files changed, 443 insertions(+), 52 deletions(-) diff --git a/cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java b/cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java index eb36cf3..96f6c17 100644 --- a/cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java +++ b/cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java @@ -26,9 +26,11 @@ import java.io.File; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * 璁惧(DeviceController)琛ㄦ帶鍒跺眰 @@ -190,26 +192,55 @@ @ValueClassify("璁惧") @ApiOperation(value = "缁存姢鏁伴噰閰嶇疆") @PostMapping("/saveDataAcquisitionConfiguration") - public Result<?> saveDataAcquisitionConfiguration(@RequestBody DataConfigDto dataConfigList) { - dataConfigService.saveOrUpdateBatch(dataConfigList.getDataConfigList()); + public Result<?> saveDataAcquisitionConfiguration(@RequestParam(value = "deviceId") Integer deviceId, @RequestBody DataConfigDto dataConfigList) { + if (dataConfigList.getIsDevice()) { + System.out.println(); + Device device = new Device(); + device.setId(deviceId); + device.setCollectUrl(dataConfigList.getCollectUrl()); + device.setStorageUrl(dataConfigList.getStorageUrl()); + device.setIp(dataConfigList.getIp()); + device.setFileType(dataConfigList.getFileType()); + deviceService.updateById(device); + } else { + dataConfigService.saveOrUpdateBatch(dataConfigList.getDataConfigList()); + } return Result.success(); } + +// @ValueClassify("璁惧") +// @ApiOperation(value = "鏌ヨ鏁伴噰閰嶇疆") +// @GetMapping("/queryDataAcquisitionConfiguration") +// public Result<?> queryDataAcquisitionConfiguration(@RequestParam("deviceId") Integer deviceId, @RequestParam("insProductItem") String insProductItem) { +// List<DataConfig> list = dataConfigService.list(Wrappers.<DataConfig>lambdaQuery() +// .eq(DataConfig::getDeviceId, deviceId) +// .eq(DataConfig::getInsProductItem, insProductItem)); +// return Result.success(list); +// } @ValueClassify("璁惧") @ApiOperation(value = "鏌ヨ鏁伴噰閰嶇疆") @GetMapping("/queryDataAcquisitionConfiguration") - public Result<?> queryDataAcquisitionConfiguration(@RequestParam("deviceId") Integer deviceId, @RequestParam("insProductItem") String insProductItem) { - List<DataConfig> list = dataConfigService.list(Wrappers.<DataConfig>lambdaQuery() + public Result<?> queryDataAcquisitionConfiguration(@RequestParam("deviceId") Integer deviceId, + @RequestParam("isDevice") Boolean isDevice, + @RequestParam(value = "insProductItem", required = false) String insProductItem) { + if (isDevice) { + List<DataConfig> list = dataConfigService.list(Wrappers.<DataConfig>lambdaQuery() .eq(DataConfig::getDeviceId, deviceId) .eq(DataConfig::getInsProductItem, insProductItem)); - return Result.success(list); + return Result.success(list); + } else { + return Result.success(dataConfigService.selectDataConfigList(deviceId)); + } } @ValueClassify("璁惧") @ApiOperation(value = "鍒犻櫎鏁伴噰閰嶇疆") @DeleteMapping("/deleteDataAcquisitionConfiguration") - public Result<?> deleteDataAcquisitionConfiguration(@RequestParam("id") Integer id) { - dataConfigService.removeById(id); + public Result<?> deleteDataAcquisitionConfiguration(@RequestParam("ids") String ids) { + List<String> split = Arrays.asList(ids.split(",")); + List<String> collect = split.stream().distinct().collect(Collectors.toList()); + dataConfigService.removeBatchByIds(collect); return Result.success(); } } diff --git a/cnas-server/src/main/java/com/yuanchu/mom/dto/DataConfigDto.java b/cnas-server/src/main/java/com/yuanchu/mom/dto/DataConfigDto.java index 2f60a45..d3fafcc 100644 --- a/cnas-server/src/main/java/com/yuanchu/mom/dto/DataConfigDto.java +++ b/cnas-server/src/main/java/com/yuanchu/mom/dto/DataConfigDto.java @@ -1,6 +1,7 @@ package com.yuanchu.mom.dto; import com.yuanchu.mom.pojo.DataConfig; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; @@ -9,4 +10,18 @@ public class DataConfigDto { private List<DataConfig> dataConfigList; + + private Boolean isDevice; + + @ApiModelProperty("鏂囦欢鍚庣紑") + private String fileType; + + @ApiModelProperty("閲囬泦鍦板潃") + private String collectUrl; + + @ApiModelProperty("瀛樺偍鍦板潃") + private String storageUrl; + + @ApiModelProperty("璁惧IP") + private String ip; } diff --git a/cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceConfigDtoPage.java b/cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceConfigDtoPage.java new file mode 100644 index 0000000..779fce1 --- /dev/null +++ b/cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceConfigDtoPage.java @@ -0,0 +1,66 @@ +package com.yuanchu.mom.dto; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.yuanchu.mom.annotation.ValueTableShow; +import com.yuanchu.mom.common.OrderBy; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceConfigDtoPage extends OrderBy { + + @ValueTableShow(2) + @ApiModelProperty(value = "璁惧鍚嶇О") + private String deviceName; + + @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ValueTableShow(3) + @ApiModelProperty(value = "鏂囦欢鍚庣紑") + private String fileType; + + @ValueTableShow(4) + @ApiModelProperty(value = "閲囬泦鍦板潃") + private String collectUrl; + + @ValueTableShow(5) + @ApiModelProperty(value = "瀛樺偍鍦板潃") + private String storageUrl; + + @ValueTableShow(6) + @ApiModelProperty(value = "IP鍦板潃") + private String ip; + + @ValueTableShow(7) + @ApiModelProperty(value = "妫�楠岄」") + private String inspectionItem; + + @ValueTableShow(8) + @ApiModelProperty(value = "妫�楠岄」瀛愰」") + private String inspectionItemSubClass; + + @ValueTableShow(9) + @ApiModelProperty(value = "鍏紡") + private String formula; + + @ValueTableShow(10) + @ApiModelProperty(value = "鍙傜収X") + private String referx; + + @ValueTableShow(11) + @ApiModelProperty(value = "X") + private String x; + + @ValueTableShow(12) + @ApiModelProperty(value = "鍙傜収Y") + private String refery; + + @ValueTableShow(13) + @ApiModelProperty(value = "Y") + private String y; + + private Integer id; +} diff --git a/cnas-server/src/main/java/com/yuanchu/mom/mapper/DataConfigMapper.java b/cnas-server/src/main/java/com/yuanchu/mom/mapper/DataConfigMapper.java index c7184eb..277160f 100644 --- a/cnas-server/src/main/java/com/yuanchu/mom/mapper/DataConfigMapper.java +++ b/cnas-server/src/main/java/com/yuanchu/mom/mapper/DataConfigMapper.java @@ -1,7 +1,10 @@ package com.yuanchu.mom.mapper; -import com.yuanchu.mom.pojo.DataConfig; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yuanchu.mom.dto.DeviceConfigDtoPage; +import com.yuanchu.mom.pojo.DataConfig; + +import java.util.List; /** * <p> @@ -13,4 +16,5 @@ */ public interface DataConfigMapper extends BaseMapper<DataConfig> { + List<DeviceConfigDtoPage> selectDataConfigList(Integer deviceId); } diff --git a/cnas-server/src/main/java/com/yuanchu/mom/service/DataConfigService.java b/cnas-server/src/main/java/com/yuanchu/mom/service/DataConfigService.java index 5ca0df5..96133f1 100644 --- a/cnas-server/src/main/java/com/yuanchu/mom/service/DataConfigService.java +++ b/cnas-server/src/main/java/com/yuanchu/mom/service/DataConfigService.java @@ -1,7 +1,10 @@ package com.yuanchu.mom.service; -import com.yuanchu.mom.pojo.DataConfig; import com.baomidou.mybatisplus.extension.service.IService; +import com.yuanchu.mom.dto.DeviceConfigDtoPage; +import com.yuanchu.mom.pojo.DataConfig; + +import java.util.List; /** * <p> @@ -13,4 +16,5 @@ */ public interface DataConfigService extends IService<DataConfig> { + List<DeviceConfigDtoPage> selectDataConfigList(Integer deviceId); } diff --git a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DataConfigServiceImpl.java b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DataConfigServiceImpl.java index 766cf89..8035161 100644 --- a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DataConfigServiceImpl.java +++ b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DataConfigServiceImpl.java @@ -1,10 +1,15 @@ package com.yuanchu.mom.service.impl; -import com.yuanchu.mom.pojo.DataConfig; -import com.yuanchu.mom.mapper.DataConfigMapper; -import com.yuanchu.mom.service.DataConfigService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yuanchu.mom.common.GetLook; +import com.yuanchu.mom.dto.DeviceConfigDtoPage; +import com.yuanchu.mom.mapper.DataConfigMapper; +import com.yuanchu.mom.pojo.DataConfig; +import com.yuanchu.mom.service.DataConfigService; +import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; + +import java.util.List; /** * <p> @@ -15,6 +20,14 @@ * @since 2024-07-13 12:23:00 */ @Service +@AllArgsConstructor public class DataConfigServiceImpl extends ServiceImpl<DataConfigMapper, DataConfig> implements DataConfigService { + private GetLook getLook; + + private DataConfigMapper dataConfigMapper; + @Override + public List<DeviceConfigDtoPage> selectDataConfigList(Integer deviceId) { + return dataConfigMapper.selectDataConfigList(deviceId); + } } diff --git a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java index 7768262..9e25d22 100644 --- a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java +++ b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java @@ -138,7 +138,7 @@ public Result<?> dataAcquisition(HttpServletRequest request, Integer id, String entrustCode, String sampleCode) { String ipAddress = request.getRemoteAddr(); // 闃叉鍥炵幆鍦板潃鍙樹负IPv6 - String ip = ipAddress.equals("0:0:0:0:0:0:0:1") ? "127.0.0.1" : ipAddress; + String ip = ipAddress.equals("0:0:0:0:0:0:0:1") ? "127.0.0.1" : ipAddress; List<Device> device = baseMapper.selectList(Wrappers.<Device>lambdaQuery() .eq(Device::getIp, ip)); if (ObjectUtils.isEmpty(device)) { @@ -156,6 +156,8 @@ .orderBy(false, false, DataConfig::getId)); hashMap.putAll(DataAcquisition.dataAcquisitionEntrance(request, list, i, entrustCode, sampleCode, ip)); }); + String frequency = DataAcquisition.createFrequency(entrustCode, sampleCode); + hashMap.put("frequency", frequency); return Result.success(hashMap); } } diff --git a/cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java b/cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java index 505a27f..87b261b 100644 --- a/cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java +++ b/cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java @@ -84,10 +84,10 @@ } // 濡傛灉瀛樺湪瀛樺偍鍦板潃锛屽垯绉诲姩鍦板潃 if (ObjectUtils.isNotEmpty(device.getStorageUrl())) { - String s = HTTP + ip + MOVEFILE + "?startFilePath=" + device.getCollectUrl() + "&endFilePath=" + device.getStorageUrl(); + String s = HTTP + ip + MOVEFILE + "?startFilePath=" + device.getCollectUrl() + "&endFilePath=" + device.getStorageUrl() + "&fileType=" + device.getFileType(); String storageUrlResult = HttpUtil.get(s); JSONObject storageUrlResultJson = JSON.parseObject(storageUrlResult); - if (Objects.equals(storageUrlResultJson.get("code"), 1)) { + if (Objects.equals(storageUrlResultJson.get("code"), 0)) { if (ObjectUtils.isEmpty(storageUrlResultJson.get("msg"))) { throw new ErrorException("瀛樺偍鍦板潃閿欒锛屽彲鑳芥枃浠惰矾寰勯厤缃敊璇紒"); } else { @@ -95,13 +95,11 @@ } } } - String frequency = createFrequency(entrustCode, sampleCode); - map.put("frequency", frequency); return map; } } - private static String createFrequency(String entrustCode, String sampleCode) { + public static String createFrequency(String entrustCode, String sampleCode) { String key = frequency + ":" + entrustCode + ":" + sampleCode; boolean b = RedisUtil.hasKey(key); String frequencyValue; @@ -142,7 +140,16 @@ JSONObject jsonObject1 = JSON.parseObject(dataList.get(y).toString()); Object o = jsonObject1.get(key); if (ObjectUtils.isNotEmpty(o)) { - list.add(o); + // 灏忔暟鐐硅繘涓変綅 + double v1 = 0; + try { + v1 = Double.parseDouble(o.toString()); + double v2 = v1 / 1000; + list.add(v2); + } catch (NumberFormatException e) { + list.add(o); + } + } } // 杩涜鍏紡璁$畻 diff --git a/cnas-server/src/main/resources/mapper/DataConfigMapper.xml b/cnas-server/src/main/resources/mapper/DataConfigMapper.xml index 135e544..7701b02 100644 --- a/cnas-server/src/main/resources/mapper/DataConfigMapper.xml +++ b/cnas-server/src/main/resources/mapper/DataConfigMapper.xml @@ -12,4 +12,27 @@ <result column="y" property="y" /> </resultMap> + <select id="selectDataConfigList" resultType="com.yuanchu.mom.dto.DeviceConfigDtoPage"> + SELECT d.device_name, + d.file_type, + d.collect_url, + d.storage_url, + d.ip, + ip.inspection_item, + if(ip.inspection_item_subclass is not null and ip.inspection_item_subclass != '', + ip.inspection_item_subclass, ip.inspection_item) inspection_item_subclass, + ddc.formula, + ddc.referx, + ddc.refery, + ddc.x, + ddc.y, + ddc.id + FROM device d + left join structure_item_parameter ip on FIND_IN_SET(ip.id, d.ins_product_ids) + left join device_data_config ddc on ddc.device_id = d.id and + if(ip.inspection_item_subclass is not null and + ip.inspection_item_subclass != '', ip.inspection_item_subclass, + ip.inspection_item) = ddc.ins_product_item + where d.id = #{deviceId} + </select> </mapper> diff --git a/cnas-server/src/main/resources/mapper/DeviceMapper.xml b/cnas-server/src/main/resources/mapper/DeviceMapper.xml index 40bcc1f..60660a3 100644 --- a/cnas-server/src/main/resources/mapper/DeviceMapper.xml +++ b/cnas-server/src/main/resources/mapper/DeviceMapper.xml @@ -119,7 +119,8 @@ </select> <select id="getInspectionItemSubclass" resultType="java.lang.String"> - SELECT ip.inspection_item_subclass FROM ins_product ip + SELECT if(ip.inspection_item_subclass is not null and ip.inspection_item_subclass != '', + ip.inspection_item_subclass, ip.inspection_item) inspection_item_subclass FROM ins_product ip where ip.ins_sample_id = #{id} </select> </mapper> diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java index 169a309..89582d8 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java @@ -62,8 +62,8 @@ @ValueClassify("妫�楠屼笅鍗�") @ApiOperation(value = "妫�楠屽垎閰�") @PostMapping("/upInsOrder") - public Result<?> upInsOrder(Integer orderId, Integer sampleId, String appointed, Integer userId) { - return Result.success(insOrderService.upInsOrder(orderId, sampleId, appointed, userId)); + public Result<?> upInsOrder(Integer orderId, Integer sampleId, String appointed, Integer userId,String sonLaboratory) { + return Result.success(insOrderService.upInsOrder(orderId, sampleId, appointed, userId,sonLaboratory)); } @ValueClassify("妫�楠屼笅鍗�") @ApiOperation(value = "娣诲姞妫�楠屼笅鍗曟暟鎹�") diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java index 3a47296..79c81a2 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java @@ -87,8 +87,8 @@ @ValueClassify("妫�楠屼换鍔�") @ApiOperation(value = "浠诲姟浜ゆ帴") @PostMapping("/upPlanUser") - public Result<?> upPlanUser(Integer userId, Integer orderId) { - return Result.success(insOrderPlanService.upPlanUser(userId, orderId)); + public Result<?> upPlanUser(Integer userId, Integer orderId,String sonLaboratory) { + return Result.success(insOrderPlanService.upPlanUser(userId, orderId, sonLaboratory)); } @ValueClassify("妫�楠屼换鍔�") @@ -113,6 +113,13 @@ return num == 1 ? Result.success() : Result.fail("鎻愪氦澶辫触锛岄儴鍒嗛」鐩繕鏈繘琛屾楠�"); } + @ValueClassify("妫�楠屼换鍔�") + @ApiOperation(value = "鏄惁鍏佽淇敼閲囬泦鍊�") + @DeleteMapping("/isItAllowedToModifyTheCollectedValues") + public Result<?> isItAllowedToModifyTheCollectedValues() { + return Result.success(); + } + @ApiOperation(value = "淇濆瓨妫�楠屽唴瀹�") @PostMapping("/saveInsContext") @ValueAuth diff --git a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java index 69723bd..011666d 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java @@ -25,9 +25,9 @@ */ public interface InsSampleMapper extends BaseMapper<InsSample> { - IPage<InsOrderPlanVO> findInsSampleAndOrder(Page page, QueryWrapper<InsOrderPlanDTO> ew, Integer userId); + IPage<InsOrderPlanVO> findInsSampleAndOrder(Page page, QueryWrapper<InsOrderPlanDTO> ew, Integer userId,String sonLaboratory); - IPage<InsOrderPlanTaskSwitchVo> inspectionOrderDetailsTaskSwitching(Page page, QueryWrapper<InsOrderPlanDTO> ew, Integer userId); + IPage<InsOrderPlanTaskSwitchVo> inspectionOrderDetailsTaskSwitching(Page page, QueryWrapper<InsOrderPlanDTO> ew, Integer userId,String sonLaboratory); List<SampleProductDto> selectSampleProductListByOrderId(Integer id); diff --git a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsSampleUser.java b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsSampleUser.java index 2afb817..8512567 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsSampleUser.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsSampleUser.java @@ -10,6 +10,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.NoArgsConstructor; +import org.apache.poi.ss.formula.functions.T; /** * 鏍峰搧璐熻矗浜鸿褰� @@ -57,9 +58,18 @@ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime updateTime; - public InsSampleUser(Integer insSampleId, Integer userId, Integer state) { + /** + * 瀛愯瘯楠屽 + * @param insSampleId + * @param userId + * @param state + */ + private String sonLaboratory; + + public InsSampleUser(Integer insSampleId, Integer userId, Integer state,String sonLaboratory) { this.insSampleId = insSampleId; this.userId = userId; this.state = state; + this.sonLaboratory = sonLaboratory; } } \ No newline at end of file diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java b/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java index 023bbaa..510fa39 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java @@ -23,7 +23,7 @@ Map<String, Object> doInsOrder(Integer id, String laboratory); - int upPlanUser(Integer userId, Integer orderId); + int upPlanUser(Integer userId, Integer orderId,String sonLaboratory); int verifyPlan(Integer orderId, String laboratory, Integer type, String tell); diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderService.java b/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderService.java index 2479a02..b6adc4e 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderService.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderService.java @@ -23,7 +23,7 @@ Map<String, Object> selectInsOrderParameter(IPage<InsOrder> page, SampleOrderDto sampleOrderDto); //淇敼妫�楠屼笅鍗曟暟鎹� - int upInsOrder(Integer orderId,Integer sampleId, String appointed, Integer userId); + int upInsOrder(Integer orderId,Integer sampleId, String appointed, Integer userId,String sonLaboratory); int addInsOrder(List<SampleProductDto> list, InsOrder insOrder, List<List<Integer>> pairing); diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java index 07d458c..9bab7c6 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java @@ -143,7 +143,8 @@ userId = map1.get("userId"); insOrderPlanDTO.setUserId(userId.longValue()); } - IPage<InsOrderPlanVO> insOrderPage = insSampleMapper.findInsSampleAndOrder(page, QueryWrappers.queryWrappers(insOrderPlanDTO), userId); + String sonLaboratory = insOrderPlanDTO.getSonLaboratory();//璇曢獙瀹� + IPage<InsOrderPlanVO> insOrderPage = insSampleMapper.findInsSampleAndOrder(page, QueryWrappers.queryWrappers(insOrderPlanDTO), userId,sonLaboratory); map.put("body", insOrderPage); return map; } @@ -157,11 +158,13 @@ if (ObjectUtil.isNotEmpty(insOrderPlanDTO.getUserId())) { insOrderPlanDTO.setUserId(userId.longValue()); } - IPage<InsOrderPlanTaskSwitchVo> insOrderPage = insSampleMapper.inspectionOrderDetailsTaskSwitching(page, QueryWrappers.queryWrappers(insOrderPlanDTO), userId); + String sonLaboratory = insOrderPlanDTO.getSonLaboratory();//璇曢獙瀹� + IPage<InsOrderPlanTaskSwitchVo> insOrderPage = insSampleMapper.inspectionOrderDetailsTaskSwitching(page, QueryWrappers.queryWrappers(insOrderPlanDTO), userId,sonLaboratory); map.put("body", insOrderPage); return map; } + //璁ら浠诲姟 @Override public boolean claimInsOrderPlan(InsOrderPlanDTO entity) { if (Objects.isNull(entity)) { @@ -169,7 +172,7 @@ } Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId(null); Integer userId = map1.get("userId"); - InsSampleUser insSampleUser = new InsSampleUser(entity.getInsSampleId().intValue(), userId, 1); + InsSampleUser insSampleUser = new InsSampleUser(entity.getInsSampleId().intValue(), userId, 1,entity.getSonLaboratory()); return insSampleUserMapper.insert(insSampleUser) > 0; } @@ -418,7 +421,7 @@ productVos = productVos.stream().sorted(Comparator.comparing(productVo -> productVo.getInsProduct().getInspectionItemClass())).collect(Collectors.toList()); } else { - //鐢靛姏--鐑惊鐜� + //鐢靛姏--鐑惊鐜拰娓╁崌璇曢獙 List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() .eq(InsProduct::getInsSampleId, sampleId) .eq(InsProduct::getInspectionItem, inspectionItem)); @@ -545,7 +548,7 @@ .eq(AuxiliaryOutputWorkingHours::getInspectionItemSubclass, insProduct.getInspectionItemSubclass()) .eq(AuxiliaryOutputWorkingHours::getOrderNo, insOrder.getEntrustCode())); if (count == 0 && ObjectUtils.isNotEmpty(insProduct.getManHour())) { - //娣诲姞姣忎釜浜虹殑浜ч噺宸ユ椂 + //娣诲姞姣忎釜浜虹殑浜ч噺宸ユ椂,瑕佸垽鏂綋鍓嶆椂闂存槸鍚︽槸杩欎釜浜虹殑鎺掔彮鏃堕棿,濡傛灉涓嶆槸鍒欐槸鍔犵彮 AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHours = new AuxiliaryOutputWorkingHours(); auxiliaryOutputWorkingHours.setInspectionItem(insProduct.getInspectionItem());//妫�娴嬬埗椤� auxiliaryOutputWorkingHours.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());//妫�娴嬪瓙椤� @@ -608,12 +611,14 @@ }); } + //浜ゆ帴 @Override - public int upPlanUser(Integer userId, Integer orderId) { + public int upPlanUser(Integer userId, Integer orderId,String sonLaboratory) { InsSampleUser insSampleUser = new InsSampleUser(); insSampleUser.setUserId(userId); insSampleUser.setInsSampleId(orderId); insSampleUser.setState(0); + insSampleUser.setSonLaboratory(sonLaboratory); return insSampleUserMapper.insert(insSampleUser); } @@ -3455,7 +3460,13 @@ info.setViewStatus(false); info.setJumpPath("b1-inspect-order-plan"); informationNotificationService.addInformationNotification(info); - upPlanUser(verifyUser, orderId); + //澶嶆牳浜�--妫�楠屽崟鐩稿叧璐熻矗浜� + InsSampleUser insSampleUser = new InsSampleUser(); + insSampleUser.setUserId(verifyUser); + insSampleUser.setInsSampleId(orderId); + insSampleUser.setState(0); + insSampleUser.setSonLaboratory(laboratory); + insSampleUserMapper.insert(insSampleUser); /*鏍¢獙涓�涓媟esult琛�*/ CompletableFuture.supplyAsync(() -> { List<Integer> ips = insProducts.stream().map(InsProduct::getId).distinct().collect(Collectors.toList()); diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java index c9689b7..3588972 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java @@ -122,7 +122,7 @@ @Override @Transactional(rollbackFor = Exception.class) - public int upInsOrder(Integer orderId, Integer sampleId, String appointed, Integer userId) { + public int upInsOrder(Integer orderId, Integer sampleId, String appointed, Integer userId,String sonLaboratory) { InsOrder insOrder = new InsOrder(); insOrder.setId(orderId); insOrder.setAppointed(LocalDate.parse(appointed)); @@ -147,6 +147,7 @@ insSampleUser.setState(0); insSampleUser.setUserId(userId); insSampleUser.setInsSampleId(orderId); + insSampleUser.setSonLaboratory(sonLaboratory); insSampleUserMapper.insert(insSampleUser); } return 1; diff --git a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml index 8c0fbce..b6396c8 100644 --- a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml +++ b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml @@ -421,7 +421,7 @@ GROUP_CONCAT(b.inspection_item2 SEPARATOR ',') inspection_item from (select * , - GROUP_CONCAT(CONCAT(inspection_item,'',inspection_item_subclass) SEPARATOR ',')inspection_item2 from ins_product where state = 1 and template_id IS NOT NULL GROUP BY ins_sample_id,man_hour_group) b GROUP + GROUP_CONCAT(CONCAT(inspection_item,'@',inspection_item_subclass) SEPARATOR ',')inspection_item2 from ins_product where state = 1 and template_id IS NOT NULL GROUP BY ins_sample_id,man_hour_group) b GROUP BY b.ins_sample_id) c ON c.ins_sample_id = isa.id where (i.state = 1 or i.state = 3 or i.state = 4) and c.ins_sample_id IS not NULL)A GROUP BY diff --git a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml index c644e16..7d48c25 100644 --- a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml +++ b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml @@ -47,9 +47,10 @@ LEFT JOIN ( <!--SELECT * FROM ins_sample_user GROUP BY ins_sample_id, user_id --> SELECT * FROM ins_sample_user u - WHERE (ins_sample_id, id) IN ( + WHERE son_laboratory=#{sonLaboratory} and (ins_sample_id, id) IN ( SELECT ins_sample_id, MAX(id) FROM ins_sample_user + WHERE son_laboratory=#{sonLaboratory} GROUP BY ins_sample_id ) ORDER BY ins_sample_id, id @@ -71,7 +72,7 @@ ) a LEFT JOIN ins_order_state ios ON ios.ins_order_id = a.id AND ios.laboratory = a.son_laboratory left join (SELECT td.user_id order_user_id, td.ins_sample_id FROM ins_sample_user td,(SELECT max(id) id FROM - ins_sample_user GROUP BY ins_sample_id) md where td.id = md.id + ins_sample_user where son_laboratory=#{sonLaboratory} GROUP BY ins_sample_id) md where td.id = md.id <if test="userId !=null and userId!=''"> and user_id = #{userId} OR user_id is NULL </if> @@ -92,8 +93,8 @@ <select id="inspectionOrderDetailsTaskSwitching" resultType="com.yuanchu.mom.vo.InsOrderPlanTaskSwitchVo"> select * from( SELECT - a.*,ios.ins_state,ios.verify_tell,isu2.order_user_id,(ios.verify_user = #{userId}) verify_user - FROM + a.*,ios.ins_state,ios.verify_tell,isu2.order_user_id,<!--(ios.verify_user = #{userId})--> verify_user + <!--FROM ( SELECT io.id, @@ -127,7 +128,64 @@ a.user_id DESC, a.type DESC, a.id + ) b--> + FROM + ( + SELECT + io.id, + io.entrust_code, + io.type, + io.appointed, + io.send_time, + group_concat(distinct isa.sample,' ') sample, + isu.user_id, + user.name userName, + ip.son_laboratory, + io.ins_time + FROM + ins_order io + LEFT JOIN ins_sample isa ON isa.ins_order_id = io.id + LEFT JOIN ( <!--SELECT * FROM ins_sample_user GROUP BY ins_sample_id, user_id --> + SELECT * + FROM ins_sample_user u + WHERE son_laboratory=#{sonLaboratory} and (ins_sample_id, id) IN ( + SELECT ins_sample_id, MAX(id) + FROM ins_sample_user + WHERE son_laboratory=#{sonLaboratory} + GROUP BY ins_sample_id + ) + ORDER BY ins_sample_id, id + ) isu ON isu.ins_sample_id = io.id + LEFT JOIN ins_product ip ON ip.ins_sample_id = isa.id + LEFT JOIN user ON isu.user_id = user.id + WHERE + io.state = 1 + # AND io.ins_state != 5 + and send_time is not null + <if test="userId !=null and userId!=''"> + and (isu.user_id = #{userId} OR isu.user_id is NULL ) + </if> + OR isu.user_id is NULL + + GROUP BY + ip.son_laboratory, + io.id + ) a + LEFT JOIN ins_order_state ios ON ios.ins_order_id = a.id AND ios.laboratory = a.son_laboratory + left join (SELECT td.user_id order_user_id, td.ins_sample_id FROM ins_sample_user td,(SELECT max(id) id FROM + ins_sample_user where son_laboratory=#{sonLaboratory} GROUP BY ins_sample_id) md where td.id = md.id + <if test="userId !=null and userId!=''"> + and user_id = #{userId} OR user_id is NULL + </if> + OR user_id is NULL + ) isu2 on + isu2.ins_sample_id = a.id + ORDER BY + <!--a.user_id DESC,--> + a.type DESC, + a.id ) b + where ins_state is not null)A <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> ${ew.customSqlSegment} </if> diff --git a/performance-server/src/main/java/com/yuanchu/mom/mapper/PerformanceShiftMapper.java b/performance-server/src/main/java/com/yuanchu/mom/mapper/PerformanceShiftMapper.java index 39157fe..f7fbfa0 100644 --- a/performance-server/src/main/java/com/yuanchu/mom/mapper/PerformanceShiftMapper.java +++ b/performance-server/src/main/java/com/yuanchu/mom/mapper/PerformanceShiftMapper.java @@ -36,4 +36,6 @@ List<Map<String, Object>> performanceShiftYearList(String time, String userName, String laboratory); List<PerformanceShiftMapDto> performanceShiftList(String time, String userName, String laboratory); + + String seldepLimsId(int depLimsId); } diff --git a/performance-server/src/main/java/com/yuanchu/mom/service/impl/PerformanceShiftServiceImpl.java b/performance-server/src/main/java/com/yuanchu/mom/service/impl/PerformanceShiftServiceImpl.java index db37821..91d2ce3 100644 --- a/performance-server/src/main/java/com/yuanchu/mom/service/impl/PerformanceShiftServiceImpl.java +++ b/performance-server/src/main/java/com/yuanchu/mom/service/impl/PerformanceShiftServiceImpl.java @@ -6,11 +6,14 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yuanchu.mom.common.GetLook; import com.yuanchu.mom.dto.PerformanceShiftAddDto; import com.yuanchu.mom.dto.PerformanceShiftMapDto; import com.yuanchu.mom.mapper.PerformanceShiftMapper; +import com.yuanchu.mom.mapper.UserMapper; import com.yuanchu.mom.pojo.Enums; import com.yuanchu.mom.pojo.PerformanceShift; +import com.yuanchu.mom.pojo.User; import com.yuanchu.mom.service.EnumService; import com.yuanchu.mom.service.PerformanceShiftService; import com.yuanchu.mom.utils.JackSonUtil; @@ -41,6 +44,12 @@ @Autowired private EnumService enumService; + + @Autowired + GetLook getLook; + + @Autowired + UserMapper userMapper; @Transactional(rollbackFor = Exception.class) @Override @@ -94,6 +103,20 @@ @Override public Map<String, Object> performanceShiftPage(Page<Object> page, String time, String userName, String laboratory) { + //鏌ヨ褰撳墠鐧诲綍浜哄憳鐨勬灦鏋� + Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); + //鍒ゆ柇鍏ㄩ儴,涓汉,缁勭粐鐨勬潈闄� + User user = userMapper.selectById(userId);//褰撳墠鐧诲綍鐨勪汉 + //鑾峰彇褰撳墠浜烘墍灞炲疄楠屽id + String departLimsId = user.getDepartLimsId(); + if (com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isNotEmpty(departLimsId) && !departLimsId.equals("")) { + String[] split = departLimsId.split(","); + //鏌ヨ瀵瑰簲鏋舵瀯鍚嶇О(閫氫俊瀹為獙瀹�,鐢靛姏瀹為獙瀹�,妫�娴嬪姙) + String departLims = baseMapper.seldepLimsId(Integer.parseInt(split[split.length - 1])); + if (departLims.contains("瀹為獙瀹�")) { + laboratory = departLims; + } + } IPage<PerformanceShiftMapDto> mapIPage = baseMapper.performanceShiftPage(page, time, userName, laboratory); List<Enums> shiftType = enumService.selectEnumByCategory("鐝绫诲瀷"); List<Map<String, Object>> mapYearIPage = baseMapper.performanceShiftYearPage(time, userName, laboratory); diff --git a/performance-server/src/main/resources/mapper/PerformanceShiftMapper.xml b/performance-server/src/main/resources/mapper/PerformanceShiftMapper.xml index 31d6551..1ada6d1 100644 --- a/performance-server/src/main/resources/mapper/PerformanceShiftMapper.xml +++ b/performance-server/src/main/resources/mapper/PerformanceShiftMapper.xml @@ -11,21 +11,27 @@ <select id="performanceShiftPage" resultMap="performanceShiftPageMap"> SELECT - if(u.department is not null and u.department != '', CONCAT(u.name, '锛�', u.department, '锛�'), u.name) name, - GROUP_CONCAT(s.work_time, '锛�', s.shift, '锛�', s.id order by s.work_time SEPARATOR ';') AS shift_time, u.id user_id + if(u2.department is not null and u2.department != '', CONCAT(u2.name, '锛�', u2.department, '锛�'), u2.name) name, + GROUP_CONCAT(s.work_time, '锛�', s.shift, '锛�', s.id order by s.work_time SEPARATOR ';') AS shift_time, u2.id user_id FROM performance_shift s - LEFT JOIN user u on u.id = s.user_id + LEFT JOIN (SELECT u.* from + user u + left join department_lims dl on FIND_IN_SET(dl.id,u.depart_lims_id) + where state=1 + <if test="laboratory != null and laboratory != ''"> + and dl.name=#{laboratory} + </if> + ) u2 on u2.id = s.user_id <where> + name is not null <if test="time != null and time != ''"> and DATE_FORMAT(s.work_time, '%Y-%m') = DATE_FORMAT(#{time}, '%Y-%m' ) </if> <if test="userName != null and userName != ''"> - and u.name like concat('%', #{userName}, '%') - </if> - <if test="laboratory != null and laboratory != ''"> + and u2.name like concat('%', #{userName}, '%') </if> </where> - GROUP BY u.id + GROUP BY u2.id order by s.create_time </select> @@ -108,4 +114,10 @@ GROUP BY u.id order by s.create_time </select> + + <select id="seldepLimsId" resultType="java.lang.String"> + select name + from department_lims + where id = #{depLimsId} + </select> </mapper> diff --git a/system-run/src/main/java/com/yuanchu/mom/backup/MysqlDataBackup.java b/system-run/src/main/java/com/yuanchu/mom/backup/MysqlDataBackup.java index 1760331..57d55d0 100644 --- a/system-run/src/main/java/com/yuanchu/mom/backup/MysqlDataBackup.java +++ b/system-run/src/main/java/com/yuanchu/mom/backup/MysqlDataBackup.java @@ -1,16 +1,34 @@ package com.yuanchu.mom.backup; +import com.yuanchu.mom.dto.PerformanceShiftAddDto; +import com.yuanchu.mom.mapper.EnumMapper; +import com.yuanchu.mom.pojo.Enums; +import com.yuanchu.mom.pojo.PerformanceShift; +import com.yuanchu.mom.pojo.User; +import com.yuanchu.mom.service.EnumService; +import com.yuanchu.mom.service.PerformanceShiftService; +import com.yuanchu.mom.service.UserService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; +import javax.annotation.Resource; import java.io.*; import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.temporal.TemporalAdjusters; +import java.time.temporal.WeekFields; import java.util.Date; +import java.util.Dictionary; +import java.util.List; +import java.util.Locale; +import java.util.stream.Collectors; -//@Component +@Component @EnableScheduling @Slf4j public class MysqlDataBackup { @@ -55,11 +73,20 @@ @Value("${backup.mysqldump}") private String mysqldump; + @Resource + private PerformanceShiftService performanceShiftService; + + @Resource + private EnumService enumService; + + @Resource + private UserService userService; + /** * 姣忓ぉ鏅氫笂23鐐�05绉掓墽琛� 銆� 0 0 4 1/1 * ? 銆� * 娴嬭瘯 20 绉掍竴娆°�� 0/20 * * * * ? 銆慇Scheduled(cron = "5 * 23 * * ?") */ -// @Scheduled(cron = "5 0 23 * * ?") + //@Scheduled(cron = "0/20 * * * * ?") private void configureTasks() { log.info("銆愬浠芥暟鎹簱銆�--START"); String dbUrl2 = dbUrl.replace("jdbc:mysql://", ""); @@ -171,6 +198,50 @@ } } + + /** + * 瀹氭椂浠诲姟,姣忎釜鏈�1鍙风殑00:00:00 + * 缁欐瘡涓汉閮借繘琛屾帓鐝�(榛樿鏃╃彮) + */ + @Scheduled(cron = "0 0 0 1 * ?") + //@Scheduled(cron = "0/20 * * * * ?") + private void timerCreateSchedule(){ + System.out.println("寮�濮嬬粰姣忎釜浜鸿繘琛屾帓鐝�,榛樿鏃╃彮======start"); + // TODO 缁欐瘡涓汉閮借繘琛屾帓鐝�(榛樿鏃╃彮) + PerformanceShiftAddDto performanceShiftAddDto = new PerformanceShiftAddDto(); + //鐝--鏃�(鏌ヨ瀛楀吀) + List<Enums> shiftType = enumService.selectEnumByCategory("鐝绫诲瀷"); + List<String> collect = shiftType.stream().filter(enums -> enums.getLabel().equals("鏃�")).map(enums -> enums.getValue()).collect(Collectors.toList()); + performanceShiftAddDto.setShift(collect.get(0)); + //浜哄憳--鎵�鏈変汉 + String userIds = userService.getDeviceManager().stream().map(user -> user.getId().toString()).distinct().collect(Collectors.joining(",")); + performanceShiftAddDto.setUserId(userIds); + //鍛ㄦ--褰撴湀鎵�鏈� + // 鑾峰彇褰撳墠鏃ユ湡 + LocalDate today = LocalDate.now(); + // 鑾峰彇鏈湀鐨勭涓�澶╁拰鏈�鍚庝竴澶� + LocalDate firstDayOfMonth = today.with(TemporalAdjusters.firstDayOfMonth()); + LocalDate lastDayOfMonth = today.with(TemporalAdjusters.lastDayOfMonth()); + // 鑾峰彇鍛ㄥ瓧娈典俊鎭紙鏍规嵁鍖哄煙璁剧疆锛� + WeekFields weekFields = WeekFields.of(Locale.getDefault()); + // 鑾峰彇鏈湀绗竴澶╃殑鍛ㄤ竴 + LocalDate startOfWeek = firstDayOfMonth.with(TemporalAdjusters.previousOrSame(weekFields.getFirstDayOfWeek())); + // 閬嶅巻鏈湀鎵�鏈夊ぉ鏁帮紝鎵惧嚭姣忓懆鐨勭涓�澶╁拰鏈�鍚庝竴澶� + LocalDate endOfWeek; + while (startOfWeek.isBefore(firstDayOfMonth.plusMonths(1))) { + endOfWeek = startOfWeek.plusDays(6); + LocalDateTime startDateTime = LocalDateTime.of(startOfWeek, LocalTime.MIDNIGHT); + LocalDateTime endDateTime = LocalDateTime.of(endOfWeek, LocalTime.MIDNIGHT); + System.out.println("Week starts on " + startDateTime + " and ends on " + endDateTime); + performanceShiftAddDto.setStartWeek(startDateTime); + performanceShiftAddDto.setEndWeek(endDateTime); + performanceShiftService.performanceShiftAdd(performanceShiftAddDto); + startOfWeek = startOfWeek.plusWeeks(1); + } + + System.out.println("鎺掔彮缁撴潫======end"); + } + /** * 鍒ゆ柇鏂囦欢鏄惁瀛樺湪锛屼笉瀛樺湪鍒涘缓 */ diff --git a/system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java b/system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java index c9fa8ae..4e345ea 100644 --- a/system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java +++ b/system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java @@ -3,12 +3,42 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.temporal.TemporalAdjusters; +import java.time.temporal.WeekFields; +import java.util.Locale; + @SpringBootTest class SystemRunApplicationTest { @Test - void contextLoads() throws Exception { + void contextLoads() { + // 鑾峰彇褰撳墠鏃ユ湡 + LocalDate today = LocalDate.now(); + // 鑾峰彇鏈湀鐨勭涓�澶╁拰鏈�鍚庝竴澶� + LocalDate firstDayOfMonth = today.with(TemporalAdjusters.firstDayOfMonth()); + LocalDate lastDayOfMonth = today.with(TemporalAdjusters.lastDayOfMonth()); + + // 鑾峰彇鍛ㄥ瓧娈典俊鎭紙鏍规嵁鍖哄煙璁剧疆锛� + WeekFields weekFields = WeekFields.of(Locale.getDefault()); + + // 鑾峰彇鏈湀绗竴澶╃殑鍛ㄤ竴 + LocalDate startOfWeek = firstDayOfMonth.with(TemporalAdjusters.previousOrSame(weekFields.getFirstDayOfWeek())); + + // 閬嶅巻鏈湀鎵�鏈夊ぉ鏁帮紝鎵惧嚭姣忓懆鐨勭涓�澶╁拰鏈�鍚庝竴澶� + LocalDate endOfWeek; + while (startOfWeek.isBefore(firstDayOfMonth.plusMonths(1))) { + endOfWeek = startOfWeek.plusDays(6); + LocalDateTime startDateTime = LocalDateTime.of(startOfWeek, LocalTime.MIDNIGHT); + LocalDateTime endDateTime = LocalDateTime.of(endOfWeek, LocalTime.MIDNIGHT); + + System.out.println("Week starts on " + startDateTime + " and ends on " + endDateTime); + + startOfWeek = startOfWeek.plusWeeks(1); + } } } -- Gitblit v1.9.3