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