diff --git a/zhyc-module/src/main/java/com/zhyc/module/base/controller/SheepFileController.java b/zhyc-module/src/main/java/com/zhyc/module/base/controller/SheepFileController.java index 6cd5a62..b7e207f 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/base/controller/SheepFileController.java +++ b/zhyc-module/src/main/java/com/zhyc/module/base/controller/SheepFileController.java @@ -1,5 +1,6 @@ package com.zhyc.module.base.controller; +import com.github.pagehelper.PageHelper; import com.zhyc.common.annotation.Log; import com.zhyc.common.core.controller.BaseController; import com.zhyc.common.core.domain.AjaxResult; @@ -12,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.HashMap; import java.util.List; @@ -34,14 +36,34 @@ public class SheepFileController extends BaseController * 查询羊只档案列表 */ @PreAuthorize("@ss.hasPermi('sheep_file:sheep_file:list')") - @PostMapping("/list") // 改为 POST 请求 - public TableDataInfo list(@RequestBody(required = false) Map queryParams) + @PostMapping("/list") + public TableDataInfo list(@RequestBody(required = false) Map queryParams, HttpServletRequest request) { // 解析查询参数 SheepFile sheepFile = new SheepFile(); Map customParams = new HashMap<>(); + // 提取分页参数 + Integer pageNum = 1; + Integer pageSize = 10; + if (queryParams != null && !queryParams.isEmpty()) { + // 提取分页参数 + if (queryParams.containsKey("pageNum") && queryParams.get("pageNum") != null) { + try { + pageNum = Integer.parseInt(queryParams.get("pageNum").toString()); + } catch (NumberFormatException e) { + // 使用默认值 + } + } + if (queryParams.containsKey("pageSize") && queryParams.get("pageSize") != null) { + try { + pageSize = Integer.parseInt(queryParams.get("pageSize").toString()); + } catch (NumberFormatException e) { + // 使用默认值 + } + } + // 提取常规查询参数到 SheepFile 对象 if (queryParams.containsKey("bsManageTags") && queryParams.get("bsManageTags") != null) { sheepFile.setBsManageTags(queryParams.get("bsManageTags").toString()); @@ -69,12 +91,11 @@ public class SheepFileController extends BaseController } // 移除已经处理的参数,剩下的作为自定义筛选参数 - // 注意:不直接修改原参数,而是复制到新Map中 for (Map.Entry entry : queryParams.entrySet()) { String key = entry.getKey(); Object value = entry.getValue(); - // 跳过常规参数 + // 跳过常规参数和分页参数 if ("bsManageTags".equals(key) || "electronicTags".equals(key) || "drRanch".equals(key) || "variety".equals(key) || "name".equals(key) || "gender".equals(key) || @@ -90,13 +111,14 @@ public class SheepFileController extends BaseController } } - startPage(); // 分页处理 + // 使用自定义分页参数 + PageHelper.startPage(pageNum, pageSize); // 调用支持复杂查询的Service方法 List list = sheepFileService.selectSheepFileListByCondition(customParams, sheepFile); + return getDataTable(list); } - /** * 转换对象为Long类型 */ diff --git a/zhyc-module/src/main/java/com/zhyc/module/common/controller/UserController.java b/zhyc-module/src/main/java/com/zhyc/module/common/controller/UserController.java deleted file mode 100644 index 988f4a5..0000000 --- a/zhyc-module/src/main/java/com/zhyc/module/common/controller/UserController.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.zhyc.module.common.controller; - -import com.zhyc.common.core.domain.AjaxResult; -import com.zhyc.module.common.domain.UserPost; - -import com.zhyc.module.common.service.UserPostService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.util.List; - -//人员用户 -@RestController -@RequestMapping("/user") -public class UserController { - @Autowired - UserPostService userPostService; - - @GetMapping() - public AjaxResult getUserPost(String postCode){ - List list = userPostService.getUserPostListByCode(postCode); - return AjaxResult.success(list); - } - -} diff --git a/zhyc-module/src/main/java/com/zhyc/module/common/controller/UserPostController.java b/zhyc-module/src/main/java/com/zhyc/module/common/controller/UserPostController.java new file mode 100644 index 0000000..f9fad3c --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/common/controller/UserPostController.java @@ -0,0 +1,41 @@ +package com.zhyc.module.common.controller; + +import com.zhyc.common.core.domain.AjaxResult; +import com.zhyc.module.common.domain.Post; +import com.zhyc.module.common.domain.User; + +import com.zhyc.module.common.service.PostService; +import com.zhyc.module.common.service.UserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +//人员用户 +@RestController +@RequestMapping("/userPost") +public class UserPostController { + @Autowired + UserService userService; + + @Autowired + PostService postService; + +// 根据岗位编码获取用户 + @GetMapping("/getUser") + public AjaxResult getUserPost(String postCode){ + List list = userService.getUserListByCode(postCode); + return AjaxResult.success(list); + } + +// 获取岗位(部门) + @GetMapping("/getPost") + public AjaxResult getPost(){ + List list = postService.selectPostList(); + return AjaxResult.success(list); + } + + +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/common/domain/Post.java b/zhyc-module/src/main/java/com/zhyc/module/common/domain/Post.java new file mode 100644 index 0000000..4af0b53 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/common/domain/Post.java @@ -0,0 +1,35 @@ +package com.zhyc.module.common.domain; + +import com.zhyc.common.annotation.Excel; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class Post { + + /** 岗位序号 */ + @Excel(name = "岗位序号", cellType = Excel.ColumnType.NUMERIC) + private Long postId; + + /** 岗位编码 */ + @Excel(name = "岗位编码") + private String postCode; + + /** 岗位名称 */ + @Excel(name = "岗位名称") + private String postName; + + /** 岗位排序 */ + @Excel(name = "岗位排序") + private Integer postSort; + + /** 状态(0正常 1停用) */ + @Excel(name = "状态", readConverterExp = "0=正常,1=停用") + private String status; + + /** 用户是否存在此岗位标识 默认不存在 */ + private boolean flag = false; +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/common/domain/UserPost.java b/zhyc-module/src/main/java/com/zhyc/module/common/domain/User.java similarity index 66% rename from zhyc-module/src/main/java/com/zhyc/module/common/domain/UserPost.java rename to zhyc-module/src/main/java/com/zhyc/module/common/domain/User.java index 78dccce..75b2c31 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/common/domain/UserPost.java +++ b/zhyc-module/src/main/java/com/zhyc/module/common/domain/User.java @@ -1,9 +1,13 @@ package com.zhyc.module.common.domain; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; @Data -public class UserPost { +@NoArgsConstructor +@AllArgsConstructor +public class User { // 用户id private String userId; // 用户名 diff --git a/zhyc-module/src/main/java/com/zhyc/module/common/mapper/PostMapper.java b/zhyc-module/src/main/java/com/zhyc/module/common/mapper/PostMapper.java new file mode 100644 index 0000000..bc60bc2 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/common/mapper/PostMapper.java @@ -0,0 +1,12 @@ +package com.zhyc.module.common.mapper; + +import com.zhyc.module.common.domain.Post; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +public interface PostMapper { + + @Select("select * from sys_post where status = '0' and post_name like '%部'") + List selectPostList(); +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/common/mapper/UserMapper.java b/zhyc-module/src/main/java/com/zhyc/module/common/mapper/UserMapper.java new file mode 100644 index 0000000..f6d4a92 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/common/mapper/UserMapper.java @@ -0,0 +1,12 @@ +package com.zhyc.module.common.mapper; + +import com.zhyc.module.common.domain.User; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface UserMapper { + + List getUserListByCode(String postCode); +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/common/mapper/UserPostMapper.java b/zhyc-module/src/main/java/com/zhyc/module/common/mapper/UserPostMapper.java deleted file mode 100644 index 69c9b9d..0000000 --- a/zhyc-module/src/main/java/com/zhyc/module/common/mapper/UserPostMapper.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.zhyc.module.common.mapper; - -import com.zhyc.module.common.domain.UserPost; -import org.apache.ibatis.annotations.Mapper; - -import java.util.List; - -@Mapper -public interface UserPostMapper { - - List getUserPostListByCode(String postCode); -} diff --git a/zhyc-module/src/main/java/com/zhyc/module/common/service/PostService.java b/zhyc-module/src/main/java/com/zhyc/module/common/service/PostService.java new file mode 100644 index 0000000..c7a2edf --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/common/service/PostService.java @@ -0,0 +1,9 @@ +package com.zhyc.module.common.service; + +import com.zhyc.module.common.domain.Post; + +import java.util.List; + +public interface PostService { + List selectPostList(); +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/common/service/UserPostService.java b/zhyc-module/src/main/java/com/zhyc/module/common/service/UserPostService.java deleted file mode 100644 index 0f0204c..0000000 --- a/zhyc-module/src/main/java/com/zhyc/module/common/service/UserPostService.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.zhyc.module.common.service; - -import com.zhyc.module.common.domain.UserPost; - -import java.util.List; - -public interface UserPostService { - List getUserPostListByCode(String postCode); -} diff --git a/zhyc-module/src/main/java/com/zhyc/module/common/service/UserService.java b/zhyc-module/src/main/java/com/zhyc/module/common/service/UserService.java new file mode 100644 index 0000000..237ba52 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/common/service/UserService.java @@ -0,0 +1,9 @@ +package com.zhyc.module.common.service; + +import com.zhyc.module.common.domain.User; + +import java.util.List; + +public interface UserService { + List getUserListByCode(String postCode); +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/common/service/impl/PostServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/common/service/impl/PostServiceImpl.java new file mode 100644 index 0000000..3ab72f0 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/common/service/impl/PostServiceImpl.java @@ -0,0 +1,22 @@ +package com.zhyc.module.common.service.impl; + +import com.zhyc.module.common.domain.Post; +import com.zhyc.module.common.mapper.PostMapper; +import com.zhyc.module.common.service.PostService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class PostServiceImpl implements PostService { + + @Autowired + PostMapper postMapper; + + @Override + public List selectPostList() { + List list = postMapper.selectPostList(); + return list; + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/common/service/impl/UserPostServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/common/service/impl/UserPostServiceImpl.java index 31dc447..49ff427 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/common/service/impl/UserPostServiceImpl.java +++ b/zhyc-module/src/main/java/com/zhyc/module/common/service/impl/UserPostServiceImpl.java @@ -1,19 +1,20 @@ package com.zhyc.module.common.service.impl; -import com.zhyc.module.common.domain.UserPost; -import com.zhyc.module.common.mapper.UserPostMapper; -import com.zhyc.module.common.service.UserPostService; +import com.zhyc.module.common.domain.User; +import com.zhyc.module.common.mapper.UserMapper; +import com.zhyc.module.common.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service -public class UserPostServiceImpl implements UserPostService { +public class UserPostServiceImpl implements UserService { @Autowired - UserPostMapper userPostMapper; + UserMapper userMapper; @Override - public List getUserPostListByCode(String postCode) { - return userPostMapper.getUserPostListByCode(postCode); + public List getUserListByCode(String postCode) { + return userMapper.getUserListByCode(postCode); } + } diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/mapper/ScBreedRecordMapper.java b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/mapper/ScBreedRecordMapper.java index 8d8eb58..4478063 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/mapper/ScBreedRecordMapper.java +++ b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/mapper/ScBreedRecordMapper.java @@ -1,5 +1,6 @@ package com.zhyc.module.produce.breed.mapper; +import java.util.Date; import java.util.List; import java.util.Map; import com.zhyc.module.produce.breed.domain.ScBreedRecord; @@ -124,4 +125,16 @@ public interface ScBreedRecordMapper public List selectBreedRecordByMatingTime(@Param("sheepId") Long sheepId, @Param("matingDateStart") String matingDateStart, @Param("matingDateEnd") String matingDateEnd); + + /** + * 增加羊只配种次数并更新配种日期 + * + * @param sheepId 羊只ID + * @param matingDate 配种日期 + * @param updateBy 更新人 + * @return 结果 + */ + public int incrementSheepMatingCount(@Param("sheepId") Long sheepId, + @Param("matingDate") Date matingDate, + @Param("updateBy") String updateBy); } \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/impl/ScBreedRecordServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/impl/ScBreedRecordServiceImpl.java index aaad5b1..c861d1e 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/impl/ScBreedRecordServiceImpl.java +++ b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/impl/ScBreedRecordServiceImpl.java @@ -75,12 +75,12 @@ public class ScBreedRecordServiceImpl implements IScBreedRecordService * @param scBreedRecord 配种记录 * @return 结果 */ - @Override - public int insertScBreedRecord(ScBreedRecord scBreedRecord) - { - scBreedRecord.setCreateTime(DateUtils.getNowDate()); - return scBreedRecordMapper.insertScBreedRecord(scBreedRecord); - } +// @Override +// public int insertScBreedRecord(ScBreedRecord scBreedRecord) +// { +// scBreedRecord.setCreateTime(DateUtils.getNowDate()); +// return scBreedRecordMapper.insertScBreedRecord(scBreedRecord); +// } /** * 修改配种记录 @@ -245,4 +245,48 @@ public class ScBreedRecordServiceImpl implements IScBreedRecordService { return scBreedRecordMapper.selectBreedRecordByMatingTime(sheepId, startDate, endDate); } + + /** + * 新增配种记录 + * + * @param scBreedRecord 配种记录 + * @return 结果 + */ + @Override + public int insertScBreedRecord(ScBreedRecord scBreedRecord) + { + // 设置创建时间 + scBreedRecord.setCreateTime(DateUtils.getNowDate()); + + // 插入配种记录 + int result = scBreedRecordMapper.insertScBreedRecord(scBreedRecord); + + // 如果插入成功,同步更新羊只的配种日期 + if (result > 0 && scBreedRecord.getEweId() != null) { + try { + Long eweId = Long.parseLong(scBreedRecord.getEweId()); + +// // 方案1:只更新配种日期(推荐) +// scBreedRecordMapper.updateSheepMatingDate( +// eweId, +// scBreedRecord.getCreateTime(), +// scBreedRecord.getCreateBy() +// ); + +// 方案2:同时更新配种日期和配种次数(如果需要的话,取消下面注释) + scBreedRecordMapper.incrementSheepMatingCount( + eweId, + scBreedRecord.getCreateTime(), + scBreedRecord.getCreateBy() + ); + + log.info("同步更新羊只 {} 的配种日期成功", eweId); + } catch (Exception e) { + log.error("同步更新羊只配种日期失败", e); + // 不影响主流程,只记录日志 + } + } + + return result; + } } \ No newline at end of file diff --git a/zhyc-module/src/main/resources/mapper/common/UserPostMapper.xml b/zhyc-module/src/main/resources/mapper/common/UserMapper.xml similarity index 82% rename from zhyc-module/src/main/resources/mapper/common/UserPostMapper.xml rename to zhyc-module/src/main/resources/mapper/common/UserMapper.xml index 57f41d5..212858f 100644 --- a/zhyc-module/src/main/resources/mapper/common/UserPostMapper.xml +++ b/zhyc-module/src/main/resources/mapper/common/UserMapper.xml @@ -2,16 +2,16 @@ - + - + - SELECT u.user_id, nick_name , post_name , post_code FROM sys_role r JOIN sys_user_role ur ON r.role_id = ur.role_id diff --git a/zhyc-module/src/main/resources/mapper/produce/breed/ScBreedRecordMapper.xml b/zhyc-module/src/main/resources/mapper/produce/breed/ScBreedRecordMapper.xml index 639480d..b07b862 100644 --- a/zhyc-module/src/main/resources/mapper/produce/breed/ScBreedRecordMapper.xml +++ b/zhyc-module/src/main/resources/mapper/produce/breed/ScBreedRecordMapper.xml @@ -42,8 +42,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - select + select DISTINCT br.id, br.sheep_id, br.ram_id, @@ -68,7 +136,7 @@ -- 公羊信息(从视图获取) ram_view.bs_manage_tags as ram_manage_tags, ram_view.variety as ram_variety, - -- 配种方式显示(修改:增加3-冲胚、4-自然发情人工授精) + -- 配种方式显示 CASE br.breed_type WHEN 1 THEN '同期发情' WHEN 2 THEN '本交' @@ -99,18 +167,17 @@ from sc_breed_record br left join sheep_file ewe_view on br.ewe_id = ewe_view.id left join sheep_file ram_view on br.ram_id = ram_view.id - left join sc_pregnancy_record pr on pr.sheep_id = br.ewe_id - and pr.is_delete = 0 - and pr.datetime >= br.create_time - and pr.datetime = ( - select min(pr2.datetime) - from sc_pregnancy_record pr2 - where pr2.sheep_id = br.ewe_id - and pr2.is_delete = 0 - and pr2.datetime >= br.create_time + -- 修复:使用子查询确保只返回一条孕检记录 + left join sc_pregnancy_record pr on pr.id = ( + select pr2.id + from sc_pregnancy_record pr2 + where pr2.sheep_id = br.ewe_id + and pr2.is_delete = 0 + and pr2.datetime >= br.create_time + order by pr2.datetime asc, pr2.id asc + limit 1 ) -