diff --git a/src/main/java/com/glxp/api/ApiAdminApplication.java b/src/main/java/com/glxp/api/ApiAdminApplication.java index 8311440da..cc2c99fa4 100644 --- a/src/main/java/com/glxp/api/ApiAdminApplication.java +++ b/src/main/java/com/glxp/api/ApiAdminApplication.java @@ -6,10 +6,12 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; +import org.springframework.scheduling.annotation.EnableScheduling; @SpringBootApplication @ServletComponentScan +@EnableScheduling @MapperScan("com.glxp.api.dao") public class ApiAdminApplication extends SpringBootServletInitializer { diff --git a/src/main/java/com/glxp/api/controller/auth/DeptController.java b/src/main/java/com/glxp/api/controller/auth/DeptController.java index a3d131009..8a3fcd407 100644 --- a/src/main/java/com/glxp/api/controller/auth/DeptController.java +++ b/src/main/java/com/glxp/api/controller/auth/DeptController.java @@ -15,6 +15,7 @@ import com.glxp.api.req.system.DeleteRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.service.auth.CustomerService; import com.glxp.api.service.auth.DeptService; +import com.glxp.api.service.auth.InvWarehouseService; import com.glxp.api.service.system.SystemParamConfigService; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -33,6 +34,10 @@ public class DeptController { @Resource SystemParamConfigService systemParamConfigService; + @Resource + InvWarehouseService invWarehouseService; + + @AuthRuleAnnotation("") @GetMapping("spms/inv/warehouse/filter") @@ -282,5 +287,15 @@ public class DeptController { return ResultVOUtils.success("禁用成功!"); } + @AuthRuleAnnotation("") + @PostMapping("/spms/inv/warehouse/selectByCode") + public BaseResponse selectByCode(@RequestBody DeptEntity request) { + + if (request == null) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + String byCode = invWarehouseService.selectParentIdByCode(request.getCode()); + return ResultVOUtils.success(byCode); + } } diff --git a/src/main/java/com/glxp/api/controller/basic/BasicHospTypeController.java b/src/main/java/com/glxp/api/controller/basic/BasicHospTypeController.java new file mode 100644 index 000000000..9d2338a9f --- /dev/null +++ b/src/main/java/com/glxp/api/controller/basic/BasicHospTypeController.java @@ -0,0 +1,165 @@ +package com.glxp.api.controller.basic; + + +import cn.hutool.core.stream.StreamUtil; +import cn.hutool.core.util.StrUtil; +import com.github.pagehelper.PageInfo; +import com.glxp.api.common.enums.ResultEnum; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.dao.basic.BasicHospTypeRelDao; +import com.glxp.api.entity.basic.BasicHospTypeEntity; +import com.glxp.api.entity.basic.BasicHospTypeRelEntity; +import com.glxp.api.entity.basic.UdiEntity; +import com.glxp.api.req.basic.BasicHospTypeFilterRequest; +import com.glxp.api.req.basic.BasicHospTypeRequest; +import com.glxp.api.req.basic.FilterUdiRelRequest; +import com.glxp.api.res.PageSimpleResponse; +import com.glxp.api.res.basic.BasicHospTypeResponse; +import com.glxp.api.res.basic.UdiRelevanceResponse; +import com.glxp.api.service.basic.BasicHospTypeRelService; +import com.glxp.api.service.basic.BasicHospTypeService; +import com.glxp.api.util.StreamUtils; +import com.glxp.api.util.StringUtils; +import com.glxp.api.util.udi.FilterUdiUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +@RestController +public class BasicHospTypeController { + + @Resource + BasicHospTypeService basicHospTypeService; + + @Resource + BasicHospTypeRelService basicHospTypeRelService; + + + + @GetMapping("/udiwms/basic/hosp/type/filter") + public BaseResponse filterBasicUnitMaintain(BasicHospTypeFilterRequest basicHospTypeFilterRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + List basicHospTypeEntities=basicHospTypeService.filterHospTypeList(basicHospTypeFilterRequest); + PageInfo pageInfo = new PageInfo<>(basicHospTypeEntities); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(basicHospTypeEntities); + + return ResultVOUtils.success(pageSimpleResponse); + } + + @GetMapping("/udiwms/basic/hosp/type/menuList") + public BaseResponse menuList(BasicHospTypeFilterRequest basicHospTypeFilterRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + List basicHospTypeEntities=basicHospTypeService.getMenuList(basicHospTypeFilterRequest); + + return ResultVOUtils.success(basicHospTypeEntities); + } + + @PostMapping("/udiwms/basic/hosp/type/save") + public BaseResponse save(@RequestBody BasicHospTypeRequest basicHospTypeRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + Boolean falg=basicHospTypeService.saveBasicHospType(basicHospTypeRequest); + if(!falg){ + return ResultVOUtils.error(999,"插入失败!"); + } + return ResultVOUtils.success(); + } + + + @PostMapping("/udiwms/basic/hosp/type/update") + public BaseResponse update(@RequestBody BasicHospTypeRequest basicHospTypeRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + Boolean falg=basicHospTypeService.updateBasicHospType(basicHospTypeRequest); + if(!falg){ + return ResultVOUtils.error(999,"更新失败!"); + } + return ResultVOUtils.success(); + } + + @GetMapping("/udiwms/basic/hosp/type/delect") + public BaseResponse delect(BasicHospTypeRequest basicHospTypeRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + String msg=basicHospTypeService.delectBasicHospType(basicHospTypeRequest); + + if (StringUtils.isNotBlank(msg)){ + return ResultVOUtils.error(999,msg); + } + return ResultVOUtils.success(); + } + + @GetMapping("/udiwms/basic/hosp/type/getTree") + public BaseResponse getTree() { + List basicHospTypeEntities=basicHospTypeService.getTreeList(); + return ResultVOUtils.success(basicHospTypeEntities); + } + + @PostMapping("/udiwms/basic/hosp/type/bindRel") + public BaseResponse saveRel(@RequestBody BasicHospTypeRequest basicHospTypeRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + Boolean falg=basicHospTypeService.bindHospProduct(basicHospTypeRequest); + return ResultVOUtils.success(); + } + + @GetMapping("/udiwms/basic/hosp/type/bindList") + public BaseResponse bindList(FilterUdiRelRequest filterUdiRelRequest) { + + filterUdiRelRequest.setDiType(1); + List udiRelevanceResponses = basicHospTypeService.filterUdiGp(filterUdiRelRequest); + //查询分类关联表,存在的制灰 + List basicHospTypeRelEntityList=basicHospTypeRelService.getBasicHospTypeRelList(filterUdiRelRequest.getBindId()); + for (UdiRelevanceResponse obj:udiRelevanceResponses){ + for (BasicHospTypeRelEntity obj2:basicHospTypeRelEntityList){ + if(obj2.getRelId().equals(String.valueOf(obj.getId()))){ + obj.setBindCheck(true); + break; + } + } + } + PageInfo pageInfo = new PageInfo<>(udiRelevanceResponses); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(udiRelevanceResponses); + return ResultVOUtils.success(pageSimpleResponse); + } + + + @PostMapping("/udiwms/basic/hosp/type/unbindRel") + public BaseResponse unbindRel(@RequestBody BasicHospTypeRequest basicHospTypeRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + Boolean falg=basicHospTypeService.unbindHospProduct(basicHospTypeRequest); + return ResultVOUtils.success(); + } + +} diff --git a/src/main/java/com/glxp/api/controller/inv/InvRemindMsgController.java b/src/main/java/com/glxp/api/controller/inv/InvRemindMsgController.java new file mode 100644 index 000000000..a17928b26 --- /dev/null +++ b/src/main/java/com/glxp/api/controller/inv/InvRemindMsgController.java @@ -0,0 +1,50 @@ +package com.glxp.api.controller.inv; + +import com.github.pagehelper.PageInfo; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.req.inv.FilterInvRemindMsgRequest; +import com.glxp.api.res.inv.InvRemindMsgResponse; +import com.glxp.api.service.inv.InvRemindMsgService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 库存预警消息接口 + */ +@Slf4j +@RestController +public class InvRemindMsgController { + + @Resource + private InvRemindMsgService invRemindMsgService; + + /** + * 查询预警消息列表 + * + * @param filterInvRemindMsgRequest + * @return + */ + @GetMapping("/udiwms/inv/remind/msg/filter") + public BaseResponse filterList(FilterInvRemindMsgRequest filterInvRemindMsgRequest) { + List list = invRemindMsgService.filterList(filterInvRemindMsgRequest); + PageInfo pageInfo = new PageInfo<>(list); + return ResultVOUtils.page(pageInfo); + } + + /** + * 确认预警消息 + * + * @param id + * @return + */ + @GetMapping("/udiwms/inv/remind/msg/confirmMsg") + public BaseResponse confirmMsg(Integer id, String handleMsg) { + return invRemindMsgService.confirmMsg(id, handleMsg); + } + +} diff --git a/src/main/java/com/glxp/api/controller/inv/InvRemindSetController.java b/src/main/java/com/glxp/api/controller/inv/InvRemindSetController.java new file mode 100644 index 000000000..a1f3e0d72 --- /dev/null +++ b/src/main/java/com/glxp/api/controller/inv/InvRemindSetController.java @@ -0,0 +1,82 @@ +package com.glxp.api.controller.inv; + +import cn.hutool.core.util.StrUtil; +import com.github.pagehelper.PageInfo; +import com.glxp.api.common.enums.ResultEnum; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.entity.inv.InvRemindSetEntity; +import com.glxp.api.req.inv.AddInvRemindSetRequest; +import com.glxp.api.req.inv.FilterInvRemindSetRequest; +import com.glxp.api.req.system.DeleteRequest; +import com.glxp.api.res.inv.InvRemindSetResponse; +import com.glxp.api.service.inv.InvRemindSetService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 库存预警设置接口 + */ +@Slf4j +@RestController +public class InvRemindSetController { + + @Resource + private InvRemindSetService invRemindSetService; + + /** + * 查询库存预警设置列表 + * + * @param filterInvRemindSetRequest + * @return + */ + @GetMapping("/udiwms/inv/remind/set/filter") + public BaseResponse filterList(FilterInvRemindSetRequest filterInvRemindSetRequest) { + List list = invRemindSetService.filterList(filterInvRemindSetRequest); + PageInfo pageInfo = new PageInfo<>(list); + return ResultVOUtils.page(pageInfo); + } + + /** + * 添加库存预警设置 + * + * @param addInvRemindSetRequest + * @return + */ + @PostMapping("/udiwms/inv/remind/set/add") + public BaseResponse addInvRemindSet(@RequestBody AddInvRemindSetRequest addInvRemindSetRequest) { + return invRemindSetService.addInvRemindSet(addInvRemindSetRequest); + } + + /** + * 更新库存预警设置 + * + * @param invRemindSetEntity + * @return + */ + @PostMapping("/udiwms/inv/remind/set/update") + public BaseResponse updateInvRemindSet(@RequestBody InvRemindSetEntity invRemindSetEntity) { + return invRemindSetService.updateInvRemindSet(invRemindSetEntity); + } + + /** + * 删除库存预警设置 + * + * @param deleteRequest + * @return + */ + @PostMapping("/udiwms/inv/remind/set/delete") + public BaseResponse delete(@RequestBody DeleteRequest deleteRequest) { + if (null == deleteRequest || StrUtil.isBlank(deleteRequest.getId())) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + return invRemindSetService.deleteInvRemindSet(Integer.valueOf(deleteRequest.getId())); + } + +} diff --git a/src/main/java/com/glxp/api/dao/basic/BasicHospTypeDao.java b/src/main/java/com/glxp/api/dao/basic/BasicHospTypeDao.java index fe4c3045e..40ac9bb68 100644 --- a/src/main/java/com/glxp/api/dao/basic/BasicHospTypeDao.java +++ b/src/main/java/com/glxp/api/dao/basic/BasicHospTypeDao.java @@ -3,16 +3,14 @@ package com.glxp.api.dao.basic; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.glxp.api.entity.basic.BasicHospTypeEntity; import java.util.List; -import org.apache.ibatis.annotations.Param; +import com.glxp.api.res.basic.BasicHospTypeResponse; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +@Mapper public interface BasicHospTypeDao extends BaseMapper { - int updateBatch(List list); - - int updateBatchSelective(List list); - int batchInsert(@Param("list") List list); + List getTreeList(); - int insertOrUpdate(BasicHospTypeEntity record); - int insertOrUpdateSelective(BasicHospTypeEntity record); } \ No newline at end of file diff --git a/src/main/java/com/glxp/api/dao/basic/BasicUdirelTypeDao.java b/src/main/java/com/glxp/api/dao/basic/BasicUdirelTypeDao.java deleted file mode 100644 index c0f3e6970..000000000 --- a/src/main/java/com/glxp/api/dao/basic/BasicUdirelTypeDao.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.glxp.api.dao.basic; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.glxp.api.entity.basic.BasicUdirelTypeEntity; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -public interface BasicUdirelTypeDao extends BaseMapper { - int updateBatch(List list); - - int updateBatchSelective(List list); - - int batchInsert(@Param("list") List list); - - int insertOrUpdate(BasicUdirelTypeEntity record); - - int insertOrUpdateSelective(BasicUdirelTypeEntity record); -} \ No newline at end of file diff --git a/src/main/java/com/glxp/api/dao/inv/InvProductDao.java b/src/main/java/com/glxp/api/dao/inv/InvProductDao.java index 8c1a430ea..09609b79a 100644 --- a/src/main/java/com/glxp/api/dao/inv/InvProductDao.java +++ b/src/main/java/com/glxp/api/dao/inv/InvProductDao.java @@ -55,4 +55,14 @@ public interface InvProductDao extends BaseMapperPlus getCountInvProduct(FilterInvProductRequest filterInvProductRequest); + + /** + * 库存预警查询库存信息 + * + * @param invCode + * @param invSpaceCode + * @param relId + * @return + */ + List selectInvProductInfo(@Param("invCode") String invCode, @Param("invSpaceCode") String invSpaceCode, @Param("relId") String relId); } diff --git a/src/main/java/com/glxp/api/dao/inv/InvRemindMsgDao.java b/src/main/java/com/glxp/api/dao/inv/InvRemindMsgDao.java new file mode 100644 index 000000000..ee3232ff2 --- /dev/null +++ b/src/main/java/com/glxp/api/dao/inv/InvRemindMsgDao.java @@ -0,0 +1,22 @@ +package com.glxp.api.dao.inv; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.glxp.api.entity.inv.InvRemindMsgEntity; +import com.glxp.api.req.inv.FilterInvRemindMsgRequest; +import com.glxp.api.res.inv.InvRemindMsgResponse; + +import java.util.List; + +/** + * 库存预警消息Dao + */ +public interface InvRemindMsgDao extends BaseMapper { + + /** + * 查询库存预警消息列表 + * + * @param filterInvRemindMsgRequest + * @return + */ + List filterList(FilterInvRemindMsgRequest filterInvRemindMsgRequest); +} \ No newline at end of file diff --git a/src/main/java/com/glxp/api/dao/inv/InvRemindSetDao.java b/src/main/java/com/glxp/api/dao/inv/InvRemindSetDao.java new file mode 100644 index 000000000..f06e3d6e8 --- /dev/null +++ b/src/main/java/com/glxp/api/dao/inv/InvRemindSetDao.java @@ -0,0 +1,22 @@ +package com.glxp.api.dao.inv; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.glxp.api.entity.inv.InvRemindSetEntity; +import com.glxp.api.req.inv.FilterInvRemindSetRequest; +import com.glxp.api.res.inv.InvRemindSetResponse; + +import java.util.List; + +/** + * 库存设置Dao + */ +public interface InvRemindSetDao extends BaseMapper { + + /** + * 查询库存设置列表 + * + * @param filterInvRemindSetRequest + * @return + */ + List filterList(FilterInvRemindSetRequest filterInvRemindSetRequest); +} \ No newline at end of file diff --git a/src/main/java/com/glxp/api/entity/inv/InvRemindMsgEntity.java b/src/main/java/com/glxp/api/entity/inv/InvRemindMsgEntity.java new file mode 100644 index 000000000..4d9280fc6 --- /dev/null +++ b/src/main/java/com/glxp/api/entity/inv/InvRemindMsgEntity.java @@ -0,0 +1,134 @@ +package com.glxp.api.entity.inv; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +/** + * 库存预警消息 + */ +@Data +@TableName(value = "inv_remind_msg") +public class InvRemindMsgEntity { + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + /** + * 关联主键ID + */ + @TableField(value = "relId") + private String relId; + + /** + * 批次号 + */ + @TableField(value = "batchNo") + private String batchNo; + + /** + * 生产日期 + */ + @TableField(value = "productionDate") + private String productionDate; + + /** + * 失效日期 + */ + @TableField(value = "expireDate") + private String expireDate; + + /** + * 部门 + */ + @TableField(value = "deptCode") + private String deptCode; + + /** + * 仓库号 + */ + @TableField(value = "invCode") + private String invCode; + + /** + * 货位号 + */ + @TableField(value = "invSpaceCode") + private String invSpaceCode; + + /** + * 进数量 + */ + @TableField(value = "inCount") + private Integer inCount; + + /** + * 出数量 + */ + @TableField(value = "outCount") + private Integer outCount; + + /** + * 结余数量 + */ + @TableField(value = "reCount") + private Integer reCount; + + /** + * 消息状态: 1:未确认;2:已确认 + */ + @TableField(value = "`status`") + private Integer status; + + /** + * 消息忽略状态: 0:不忽略;1:忽略7天;2:忽略15天;3:忽略30天 + */ + @TableField(value = "ignoreStatus") + private Integer ignoreStatus; + + /** + * 预警类型:1:库存不足预警;2:库存负数预警;3:库存积压预警;4:库存过期预警;5:库存近效期预警 + */ + @TableField(value = "`type`") + private Integer type; + + /** + * 更新时间 + */ + @TableField(value = "updateTime") + private Date updateTime; + + /** + * 创建时间 + */ + @TableField(value = "createTime") + private Date createTime; + + /** + * 下次提醒时间 + */ + @TableField(value = "nextRemindTime") + private Date nextRemindTime; + + /** + * 备注 + */ + @TableField(value = "remark") + private String remark; + + /** + * 预警消息内容 + */ + @TableField(value = "msg") + private String msg; + + /** + * 处理方式 + */ + @TableField(value = "handleMsg") + private String handleMsg; +} \ No newline at end of file diff --git a/src/main/java/com/glxp/api/entity/inv/InvRemindSetEntity.java b/src/main/java/com/glxp/api/entity/inv/InvRemindSetEntity.java new file mode 100644 index 000000000..2d8a164a1 --- /dev/null +++ b/src/main/java/com/glxp/api/entity/inv/InvRemindSetEntity.java @@ -0,0 +1,166 @@ +package com.glxp.api.entity.inv; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +/** + * 库存预警设置 + */ +@Data +@TableName(value = "inv_remind_set") +public class InvRemindSetEntity { + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + /** + * 耗材字典主键 + */ + @TableField(value = "relId") + private String relId; + + /** + * 部门编码 + */ + @TableField(value = "deptCode") + private String deptCode; + + /** + * 仓库编码 + */ + @TableField(value = "invCode") + private String invCode; + + /** + * 货位编码 + */ + @TableField(value = "invSpaceCode") + private String invSpaceCode; + + /** + * 是否开启低库存预警 + */ + @TableField(value = "lowStock") + private Boolean lowStock; + + /** + * 库存低于多少数量时预警 + */ + @TableField(value = "lowStockNum") + private Integer lowStockNum; + + /** + * 是否开启库存负数预警 + */ + @TableField(value = "lackStock") + private Boolean lackStock; + + /** + * 是否开启库存积压预警 + */ + @TableField(value = "overStock") + private Boolean overStock; + + /** + * 库存高于多少数量时预警 + */ + @TableField(value = "overStockNum") + private Integer overStockNum; + + /** + * 是否开启库存产品过期提醒 + */ + @TableField(value = "expireDate") + private Boolean expireDate; + + /** + * 是否开启近效期提醒 + */ + @TableField(value = "recentDate") + private Boolean recentDate; + + /** + * 近效期达到多少天时提醒 + */ + @TableField(value = "recentDateDay") + private Integer recentDateDay; + + /** + * 备注 + */ + @TableField(value = "remark") + private String remark; + + @TableField(value = "`createUser`") + private String createUser; + + @TableField(value = "createTime") + private Date createTime; + + @TableField(value = "updateUser") + private String updateUser; + + @TableField(value = "updateTime") + private Date updateTime; + + public static final String COL_ID = "id"; + + public static final String COL_RELID = "relId"; + + public static final String COL_DEPTCODE = "deptCode"; + + public static final String COL_INVCODE = "invCode"; + + public static final String COL_INVSPACECODE = "invSpaceCode"; + + public static final String COL_LOWSTOCK = "lowStock"; + + public static final String COL_LOWSTOCKNUM = "lowStockNum"; + + public static final String COL_LACKSTOCK = "lackStock"; + + public static final String COL_OVERSTOCK = "overStock"; + + public static final String COL_OVERSTOCKNUM = "overStockNum"; + + public static final String COL_EXPIREDATE = "expireDate"; + + public static final String COL_RECENTDATE = "recentDate"; + + public static final String COL_RECENTDATEDAY = "recentDateDay"; + + public static final String COL_REMARK = "remark"; + + public static final String COL_CREATEUSER = "createUser"; + + public static final String COL_CREATETIME = "createTime"; + + public static final String COL_UPDATEUSER = "updateUser"; + + public static final String COL_UPDATETIME = "updateTime"; + + + @Override + public String toString() { + return "InvRemindSetEntity{" + + ", 产品ID:='" + relId + '\'' + + ", 部门编码:='" + deptCode + '\'' + + ", 仓库编码:='" + invCode + '\'' + + ", 货位编码:='" + invSpaceCode + '\'' + + ", 是否开启低库存预警:=" + lowStock + + ", 库存低于多少数量时预警:=" + lowStockNum + + ", 是否开启库存负数预警:=" + lackStock + + ", 是否开启库存积压预警:=" + overStock + + ", 库存高于多少数量时预警:=" + overStockNum + + ", 是否开启库存产品过期提醒:=" + expireDate + + ", 是否开启近效期提醒:=" + recentDate + + ", 近效期达到多少天时提醒:=" + recentDateDay + + ", 备注:='" + remark + '\'' + + '}'; + } +} \ No newline at end of file diff --git a/src/main/java/com/glxp/api/req/basic/BasicHospTypeFilterRequest.java b/src/main/java/com/glxp/api/req/basic/BasicHospTypeFilterRequest.java new file mode 100644 index 000000000..03edcedd1 --- /dev/null +++ b/src/main/java/com/glxp/api/req/basic/BasicHospTypeFilterRequest.java @@ -0,0 +1,13 @@ +package com.glxp.api.req.basic; + +import com.glxp.api.res.basic.BasicErpUnitsResponse; +import com.glxp.api.util.page.ListPageRequest; +import lombok.Data; + +import java.util.List; + +@Data +public class BasicHospTypeFilterRequest extends ListPageRequest { + + private String name; +} diff --git a/src/main/java/com/glxp/api/req/basic/BasicHospTypeRequest.java b/src/main/java/com/glxp/api/req/basic/BasicHospTypeRequest.java new file mode 100644 index 000000000..18da850ec --- /dev/null +++ b/src/main/java/com/glxp/api/req/basic/BasicHospTypeRequest.java @@ -0,0 +1,18 @@ +package com.glxp.api.req.basic; + +import com.glxp.api.entity.basic.UdiProductEntity; +import com.glxp.api.util.page.ListPageRequest; +import lombok.Data; + +import java.util.List; + +@Data +public class BasicHospTypeRequest{ + + private Integer id; + private String code; + private String parentCode; + private String name; + private String remark; + List ids; +} diff --git a/src/main/java/com/glxp/api/req/basic/FilterUdiRelRequest.java b/src/main/java/com/glxp/api/req/basic/FilterUdiRelRequest.java index d5d40884a..4d9aed4c9 100644 --- a/src/main/java/com/glxp/api/req/basic/FilterUdiRelRequest.java +++ b/src/main/java/com/glxp/api/req/basic/FilterUdiRelRequest.java @@ -61,5 +61,7 @@ public class FilterUdiRelRequest extends ListPageRequest { private String companyName; private String bindRlIds; + private String bindCode; + private String bindId;//在绑定时为了不错乱填写的是code } diff --git a/src/main/java/com/glxp/api/req/inv/AddInvRemindSetRequest.java b/src/main/java/com/glxp/api/req/inv/AddInvRemindSetRequest.java new file mode 100644 index 000000000..7759193d6 --- /dev/null +++ b/src/main/java/com/glxp/api/req/inv/AddInvRemindSetRequest.java @@ -0,0 +1,78 @@ +package com.glxp.api.req.inv; + +import lombok.Data; + +/** + * 添加库存预警设置参数 + */ +@Data +public class AddInvRemindSetRequest { + + private Integer id; + + /** + * 耗材字典主键 + */ + private String relId; + + /** + * 部门编码 + */ + private String deptCode; + + /** + * 仓库编码 + */ + private String invCode; + + /** + * 货位编码 + */ + private String invSpaceCode; + + /** + * 是否开启低库存预警 + */ + private Boolean lowStock; + + /** + * 库存低于多少数量时预警 + */ + private Integer lowStockNum; + + /** + * 是否开启库存负数预警 + */ + private Boolean lackStock; + + /** + * 是否开启库存积压预警 + */ + private Boolean overStock; + + /** + * 库存高于多少数量时预警 + */ + private Integer overStockNum; + + /** + * 是否开启库存产品过期提醒 + */ + private Boolean expireDate; + + /** + * 是否开启近效期提醒 + */ + private Boolean recentDate; + + /** + * 近效期达到多少天时提醒 + */ + private Integer recentDateDay; + + /** + * 备注 + */ + private String remark; + +} diff --git a/src/main/java/com/glxp/api/req/inv/FilterInvRemindMsgRequest.java b/src/main/java/com/glxp/api/req/inv/FilterInvRemindMsgRequest.java new file mode 100644 index 000000000..d462fcf02 --- /dev/null +++ b/src/main/java/com/glxp/api/req/inv/FilterInvRemindMsgRequest.java @@ -0,0 +1,42 @@ +package com.glxp.api.req.inv; + +import com.glxp.api.util.page.ListPageRequest; +import lombok.Data; + +/** + * 查询库存预警消息参数 + */ +@Data +public class FilterInvRemindMsgRequest extends ListPageRequest { + + /** + * 耗材字典ID + */ + private String relId; + + /** + * 批次号 + */ + private String batchNo; + + /** + * 仓库编码 + */ + private String invCode; + + /** + * 货位号 + */ + private String invSpaceCode; + + /** + * 消息状态: 1:未确认;2:已确认 + */ + private Integer status; + + /** + * 预警类型:1:库存不足预警;2:库存负数预警;3:库存积压预警;4:库存过期预警;5:库存近效期预警 + */ + private String type; + +} diff --git a/src/main/java/com/glxp/api/req/inv/FilterInvRemindSetRequest.java b/src/main/java/com/glxp/api/req/inv/FilterInvRemindSetRequest.java new file mode 100644 index 000000000..d50a19ba4 --- /dev/null +++ b/src/main/java/com/glxp/api/req/inv/FilterInvRemindSetRequest.java @@ -0,0 +1,27 @@ +package com.glxp.api.req.inv; + +import com.glxp.api.util.page.ListPageRequest; +import lombok.Data; + +/** + * 库存预警设置查询参数 + */ +@Data +public class FilterInvRemindSetRequest extends ListPageRequest { + + /** + * 耗材字典主键 + */ + private String relId; + + /** + * 仓库编码 + */ + private String invCode; + + /** + * 货位编码 + */ + private String invSpaceCode; + +} diff --git a/src/main/java/com/glxp/api/res/basic/BasicHospTypeResponse.java b/src/main/java/com/glxp/api/res/basic/BasicHospTypeResponse.java new file mode 100644 index 000000000..d11b90151 --- /dev/null +++ b/src/main/java/com/glxp/api/res/basic/BasicHospTypeResponse.java @@ -0,0 +1,26 @@ +package com.glxp.api.res.basic; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +@Data +public class BasicHospTypeResponse { + + private Integer id; + private String code; + private String parentCode; + private String name; + private String remark; + private Date createTime; + private Date updateTime; + private String createUser; + private String updateUser; + private String label; + + +} \ No newline at end of file diff --git a/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java b/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java index 0e17562fd..87873a817 100644 --- a/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java +++ b/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java @@ -86,6 +86,8 @@ public class UdiRelevanceResponse { private Boolean isSelect; + private Boolean bindCheck; + //关联查询字典 private String unitFk; //供应商ID diff --git a/src/main/java/com/glxp/api/res/inv/InvRemindMsgResponse.java b/src/main/java/com/glxp/api/res/inv/InvRemindMsgResponse.java new file mode 100644 index 000000000..e3785c3ec --- /dev/null +++ b/src/main/java/com/glxp/api/res/inv/InvRemindMsgResponse.java @@ -0,0 +1,115 @@ +package com.glxp.api.res.inv; + +import lombok.Data; + +import java.util.Date; + +/** + * 库存预警消息VO + */ +@Data +public class InvRemindMsgResponse { + + private Integer id; + + /** + * 关联主键ID + */ + private Integer relId; + + /** + * 批次号 + */ + private String batchNo; + + /** + * 生产日期 + */ + private String productionDate; + + /** + * 失效日期 + */ + private String expireDate; + + /** + * 部门 + */ + private String deptCode; + + /** + * 仓库号 + */ + private String invCode; + + /** + * 货位号 + */ + private String invSpaceCode; + + /** + * 进数量 + */ + private Integer inCount; + + /** + * 出数量 + */ + private Integer outCount; + + /** + * 结余数量 + */ + private Integer reCount; + + /** + * 消息状态: 1:未确认;2:已确认 + */ + private Integer status; + + /** + * 预警类型:1:库存不足预警;2:库存负数预警;3:库存积压预警;4:库存过期预警;5:库存近效期预警 + */ + private Integer type; + + /** + * 备注 + */ + private String remark; + + /** + * 产品名称 + */ + private String productName; + + /** + * 仓库名称 + */ + private String invName; + + /** + * 货位名称 + */ + private String invSpaceName; + + /** + * 预警消息内容 + */ + private String msg; + + /** + * 处理方式 + */ + private String handleMsg; + + /** + * 下次提醒时间 + */ + private Date nextRemindTime; + + /** + * 消息忽略状态: 0:不忽略;1:忽略7天;2:忽略15天;3:忽略30天 + */ + private Integer ignoreStatus; + +} diff --git a/src/main/java/com/glxp/api/res/inv/InvRemindSetResponse.java b/src/main/java/com/glxp/api/res/inv/InvRemindSetResponse.java new file mode 100644 index 000000000..252a6b834 --- /dev/null +++ b/src/main/java/com/glxp/api/res/inv/InvRemindSetResponse.java @@ -0,0 +1,93 @@ +package com.glxp.api.res.inv; + +import lombok.Data; + +/** + * 库存设置VO + */ +@Data +public class InvRemindSetResponse { + + private Integer id; + + /** + * 耗材字典主键 + */ + private String relId; + + /** + * 部门编码 + */ + private String deptCode; + + /** + * 仓库编码 + */ + private String invCode; + + /** + * 货位编码 + */ + private String invSpaceCode; + + /** + * 是否开启低库存预警 + */ + private Boolean lowStock; + + /** + * 库存低于多少数量时预警 + */ + private Integer lowStockNum; + + /** + * 是否开启库存负数预警 + */ + private Boolean lackStock; + + /** + * 是否开启库存积压预警 + */ + private Boolean overStock; + + /** + * 库存高于多少数量时预警 + */ + private Integer overStockNum; + + /** + * 是否开启库存产品过期提醒 + */ + private Boolean expireDate; + + /** + * 是否开启近效期提醒 + */ + private Boolean recentDate; + + /** + * 近效期达到多少天时提醒 + */ + private Integer recentDateDay; + + /** + * 备注 + */ + private String remark; + + /** + * 产品名称 + */ + private String productName; + + /** + * 仓库名称 + */ + private String invName; + + /** + * 货位名称 + */ + private String invSpaceName; + +} diff --git a/src/main/java/com/glxp/api/service/auth/InvWarehouseService.java b/src/main/java/com/glxp/api/service/auth/InvWarehouseService.java index bc9ce5c92..3aafad071 100644 --- a/src/main/java/com/glxp/api/service/auth/InvWarehouseService.java +++ b/src/main/java/com/glxp/api/service/auth/InvWarehouseService.java @@ -5,6 +5,7 @@ import com.glxp.api.req.auth.FilterInvSubWarehouseRequest; import com.glxp.api.req.auth.FilterInvWarehouseRequest; import com.glxp.api.res.auth.InvSubWarehouseResponse; import com.glxp.api.res.auth.InvWarehouseThirdSysResponse; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -81,4 +82,5 @@ public interface InvWarehouseService { * @return */ List findInvListByUser(FilterInvWarehouseRequest filterInvWarehouseRequest); + String selectParentIdByCode( String invCode); } diff --git a/src/main/java/com/glxp/api/service/auth/impl/InvWarehouseServiceImpl.java b/src/main/java/com/glxp/api/service/auth/impl/InvWarehouseServiceImpl.java index 7df6f94fe..bc3a03001 100644 --- a/src/main/java/com/glxp/api/service/auth/impl/InvWarehouseServiceImpl.java +++ b/src/main/java/com/glxp/api/service/auth/impl/InvWarehouseServiceImpl.java @@ -224,4 +224,9 @@ public class InvWarehouseServiceImpl implements InvWarehouseService { public List findInvListByUser(FilterInvWarehouseRequest filterInvWarehouseRequest) { return invWarehouseDao.selectInvListByUser(filterInvWarehouseRequest); } + + @Override + public String selectParentIdByCode(String invCode) { + return invWarehouseDao.selectParentIdByCode(invCode); + } } diff --git a/src/main/java/com/glxp/api/service/basic/BasicHospTypeRelService.java b/src/main/java/com/glxp/api/service/basic/BasicHospTypeRelService.java new file mode 100644 index 000000000..f6bfae5c0 --- /dev/null +++ b/src/main/java/com/glxp/api/service/basic/BasicHospTypeRelService.java @@ -0,0 +1,17 @@ +package com.glxp.api.service.basic; + +import com.glxp.api.entity.basic.BasicHospTypeEntity; +import com.glxp.api.entity.basic.BasicHospTypeRelEntity; +import com.glxp.api.req.basic.BasicHospTypeFilterRequest; +import com.glxp.api.req.basic.BasicHospTypeRequest; +import com.glxp.api.req.basic.FilterUdiRelRequest; +import com.glxp.api.res.basic.BasicHospTypeResponse; +import com.glxp.api.res.basic.UdiRelevanceResponse; + +import java.util.List; + +public interface BasicHospTypeRelService { + + List getBasicHospTypeRelList(String code); + +} diff --git a/src/main/java/com/glxp/api/service/basic/BasicHospTypeService.java b/src/main/java/com/glxp/api/service/basic/BasicHospTypeService.java new file mode 100644 index 000000000..a767600e8 --- /dev/null +++ b/src/main/java/com/glxp/api/service/basic/BasicHospTypeService.java @@ -0,0 +1,34 @@ +package com.glxp.api.service.basic; + +import com.glxp.api.entity.basic.BasicHospTypeEntity; +import com.glxp.api.req.basic.BasicHospTypeFilterRequest; +import com.glxp.api.req.basic.BasicHospTypeRequest; +import com.glxp.api.req.basic.FilterUdiRelRequest; +import com.glxp.api.res.basic.BasicHospTypeResponse; +import com.glxp.api.res.basic.UdiRelevanceResponse; + + +import java.util.List; + +public interface BasicHospTypeService { + + List filterHospTypeList(BasicHospTypeFilterRequest basicHospTypeFilterRequest); + + List getMenuList(BasicHospTypeFilterRequest basicHospTypeFilterRequest); + + Boolean saveBasicHospType(BasicHospTypeRequest basicHospTypeRequest); + + boolean updateBasicHospType(BasicHospTypeRequest basicHospTypeRequest); + + String delectBasicHospType(BasicHospTypeRequest basicHospTypeRequest); + + List getTreeList(); + + boolean bindHospProduct(BasicHospTypeRequest basicHospTypeRequest); + + boolean unbindHospProduct(BasicHospTypeRequest basicHospTypeRequest); + + List filterUdiGp(FilterUdiRelRequest filterUdiRelRequest); + + +} diff --git a/src/main/java/com/glxp/api/service/basic/impl/BasicHospTypeRelServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/BasicHospTypeRelServiceImpl.java new file mode 100644 index 000000000..957a4a5ad --- /dev/null +++ b/src/main/java/com/glxp/api/service/basic/impl/BasicHospTypeRelServiceImpl.java @@ -0,0 +1,46 @@ +package com.glxp.api.service.basic.impl; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.github.pagehelper.PageHelper; +import com.glxp.api.dao.basic.BasicHospTypeDao; +import com.glxp.api.dao.basic.BasicHospTypeRelDao; +import com.glxp.api.dao.basic.UdiRelevanceDao; +import com.glxp.api.entity.basic.BasicHospTypeEntity; +import com.glxp.api.entity.basic.BasicHospTypeRelEntity; +import com.glxp.api.req.basic.BasicHospTypeFilterRequest; +import com.glxp.api.req.basic.BasicHospTypeRequest; +import com.glxp.api.req.basic.FilterUdiRelRequest; +import com.glxp.api.res.basic.BasicHospTypeResponse; +import com.glxp.api.res.basic.UdiRelevanceResponse; +import com.glxp.api.service.auth.CustomerService; +import com.glxp.api.service.basic.BasicHospTypeRelService; +import com.glxp.api.service.basic.BasicHospTypeService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.List; + +@Service +public class BasicHospTypeRelServiceImpl implements BasicHospTypeRelService { + + @Resource + BasicHospTypeRelDao basicHospTypeRelDao; + + + @Override + public List getBasicHospTypeRelList(String code) { + List basicHospTypeRelEntityList=new ArrayList<>(); + QueryWrapper ew=new QueryWrapper<>(); + if(StrUtil.isNotEmpty(code)){ + ew.eq("code",code); + basicHospTypeRelEntityList =basicHospTypeRelDao.selectList(ew); + } + + + return basicHospTypeRelEntityList; + } +} diff --git a/src/main/java/com/glxp/api/service/basic/impl/BasicHospTypeServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/BasicHospTypeServiceImpl.java new file mode 100644 index 000000000..881133629 --- /dev/null +++ b/src/main/java/com/glxp/api/service/basic/impl/BasicHospTypeServiceImpl.java @@ -0,0 +1,178 @@ +package com.glxp.api.service.basic.impl; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.github.pagehelper.PageHelper; +import com.glxp.api.dao.basic.BasicHospTypeDao; +import com.glxp.api.dao.basic.BasicHospTypeRelDao; +import com.glxp.api.dao.basic.UdiRelevanceDao; +import com.glxp.api.entity.basic.BasicCorpEntity; +import com.glxp.api.entity.basic.BasicHospTypeEntity; +import com.glxp.api.entity.basic.BasicHospTypeRelEntity; +import com.glxp.api.req.basic.BasicHospTypeFilterRequest; +import com.glxp.api.req.basic.BasicHospTypeRequest; +import com.glxp.api.req.basic.FilterUdiRelRequest; +import com.glxp.api.res.basic.BasicHospTypeResponse; +import com.glxp.api.res.basic.UdiRelevanceResponse; +import com.glxp.api.service.auth.CustomerService; +import com.glxp.api.service.basic.BasicHospTypeService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.List; + +@Service +public class BasicHospTypeServiceImpl implements BasicHospTypeService { + + @Resource + BasicHospTypeDao basicHospTypeDao; + + @Resource + CustomerService customerService; + + @Resource + BasicHospTypeRelDao basicHospTypeRelDao; + + @Resource + UdiRelevanceDao udiRelevanceDao; + + + + + @Override + public List filterHospTypeList(BasicHospTypeFilterRequest basicHospTypeFilterRequest) { + if (basicHospTypeFilterRequest == null) { + return Collections.emptyList(); + } + if (basicHospTypeFilterRequest.getPage() != null) { + int offset = (basicHospTypeFilterRequest.getPage() - 1) * basicHospTypeFilterRequest.getLimit(); + PageHelper.offsetPage(offset, basicHospTypeFilterRequest.getLimit()); + } + QueryWrapper ew=new QueryWrapper<>(); + if (StrUtil.isNotEmpty(basicHospTypeFilterRequest.getName())){ + ew.like("name",basicHospTypeFilterRequest.getName()); + } + List data = basicHospTypeDao.selectList(ew); + return data; + } + + @Override + public List getMenuList(BasicHospTypeFilterRequest basicHospTypeFilterRequest) { + QueryWrapper ew=new QueryWrapper<>(); + List data = basicHospTypeDao.selectList(ew); + return data; + } + + @Override + public Boolean saveBasicHospType(BasicHospTypeRequest basicHospTypeRequest) { + boolean falg=true; + BasicHospTypeEntity basicHospTypeEntity=new BasicHospTypeEntity(); + basicHospTypeEntity.setCreateTime(new Date()); + basicHospTypeEntity.setUpdateTime(new Date()); + basicHospTypeEntity.setName(basicHospTypeRequest.getName()); + basicHospTypeEntity.setParentCode(basicHospTypeRequest.getParentCode()); + basicHospTypeEntity.setRemark(basicHospTypeRequest.getRemark()); + Long userId=customerService.getUserId(); + basicHospTypeEntity.setCreateUser(userId+""); + basicHospTypeEntity.setUpdateUser(userId+""); + //获取数据库最大的code + QueryWrapper ew=new QueryWrapper<>(); + ew.select("max(code) as code"); + BasicHospTypeEntity code=basicHospTypeDao.selectOne(ew); + basicHospTypeEntity.setCode(Integer.valueOf(code.getCode())+1+""); + int count=basicHospTypeDao.insert(basicHospTypeEntity); + if(count==0){ + falg=false; + } + return falg; + } + + @Override + public boolean updateBasicHospType(BasicHospTypeRequest basicHospTypeRequest) { + boolean falg=true; + BasicHospTypeEntity basicHospTypeEntity=new BasicHospTypeEntity(); + basicHospTypeEntity.setId(basicHospTypeRequest.getId()); + basicHospTypeEntity.setCreateTime(new Date()); + basicHospTypeEntity.setUpdateTime(new Date()); + basicHospTypeEntity.setName(basicHospTypeRequest.getName()); + basicHospTypeEntity.setParentCode(basicHospTypeRequest.getParentCode()); + basicHospTypeEntity.setRemark(basicHospTypeRequest.getRemark()); + Long userId=customerService.getUserId(); + basicHospTypeEntity.setCreateUser(userId+""); + basicHospTypeEntity.setUpdateUser(userId+""); + int count=basicHospTypeDao.updateById(basicHospTypeEntity); + if(count==0){ + falg=false; + } + return falg; + } + + @Override + public String delectBasicHospType(BasicHospTypeRequest basicHospTypeRequest) { + + //查询有没有自己的子集 + QueryWrapper ew=new QueryWrapper<>(); + ew.eq("parentCode",basicHospTypeRequest.getCode()); + Long count=basicHospTypeDao.selectCount(ew); + if(count>0){ + return "请先删除该节点底下的数据!"; + } + //查询有没有产品绑定 + QueryWrapper ew2=new QueryWrapper<>(); + ew2.eq("code",basicHospTypeRequest.getCode()); + count=basicHospTypeRelDao.selectCount(ew2); + if(count>0){ + return "该节点还存在产品,请先删除!"; + } + + basicHospTypeDao.deleteById(basicHospTypeRequest.getId()); + + return ""; + } + + @Override + public List getTreeList() { + return basicHospTypeDao.getTreeList(); + } + + @Override + public boolean bindHospProduct(BasicHospTypeRequest basicHospTypeRequest) { + + List basicHospTypeRelEntityList=new ArrayList<>(); + for (String obj:basicHospTypeRequest.getIds()){ + BasicHospTypeRelEntity basicHospTypeRelEntity=new BasicHospTypeRelEntity(); + basicHospTypeRelEntity.setCode(basicHospTypeRequest.getCode()); + basicHospTypeRelEntity.setRelId(obj); + basicHospTypeRelEntityList.add(basicHospTypeRelEntity); + } + basicHospTypeRelDao.batchInsert(basicHospTypeRelEntityList); + return true; + } + + @Override + public boolean unbindHospProduct(BasicHospTypeRequest basicHospTypeRequest) { + + QueryWrapper ew=new QueryWrapper<>(); + ew.eq("code",basicHospTypeRequest.getCode()); + ew.in("relId",basicHospTypeRequest.getIds()); + basicHospTypeRelDao.delete(ew); + return true; + } + + @Override + public List filterUdiGp(FilterUdiRelRequest filterUdiRelRequest) { + if (filterUdiRelRequest == null) { + return Collections.emptyList(); + } + if (filterUdiRelRequest.getPage() != null) { + int offset = (filterUdiRelRequest.getPage() - 1) * filterUdiRelRequest.getLimit(); + PageHelper.offsetPage(offset, filterUdiRelRequest.getLimit()); + } + + List data = udiRelevanceDao.filterUdiGp(filterUdiRelRequest); + return data; + } +} diff --git a/src/main/java/com/glxp/api/service/inv/InvRemindMsgService.java b/src/main/java/com/glxp/api/service/inv/InvRemindMsgService.java new file mode 100644 index 000000000..9d277a5e8 --- /dev/null +++ b/src/main/java/com/glxp/api/service/inv/InvRemindMsgService.java @@ -0,0 +1,37 @@ +package com.glxp.api.service.inv; + +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.entity.inv.InvRemindSetEntity; +import com.glxp.api.req.inv.FilterInvRemindMsgRequest; +import com.glxp.api.res.inv.InvRemindMsgResponse; + +import java.util.List; + +/** + * 库存预警消息Servcie + */ +public interface InvRemindMsgService { + + /** + * 查询库存预警消息列表 + * + * @param filterInvRemindMsgRequest + * @return + */ + List filterList(FilterInvRemindMsgRequest filterInvRemindMsgRequest); + + /** + * 确认消息 + * + * @param id + * @return + */ + BaseResponse confirmMsg(Integer id, String handleMsg); + + /** + * 根据库存预警设置生成预警消息 + * + * @param invRemindSetEntity + */ + void createRemindMsg(InvRemindSetEntity invRemindSetEntity); +} diff --git a/src/main/java/com/glxp/api/service/inv/InvRemindSetService.java b/src/main/java/com/glxp/api/service/inv/InvRemindSetService.java new file mode 100644 index 000000000..8f8507732 --- /dev/null +++ b/src/main/java/com/glxp/api/service/inv/InvRemindSetService.java @@ -0,0 +1,48 @@ +package com.glxp.api.service.inv; + +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.entity.inv.InvRemindSetEntity; +import com.glxp.api.req.inv.AddInvRemindSetRequest; +import com.glxp.api.req.inv.FilterInvRemindSetRequest; +import com.glxp.api.res.inv.InvRemindSetResponse; + +import java.util.List; + +/** + * 库存预警设置Service + */ +public interface InvRemindSetService { + + /** + * 查询库存预警设置列表 + * + * @param filterInvRemindSetRequest + * @return + */ + List filterList(FilterInvRemindSetRequest filterInvRemindSetRequest); + + /** + * 添加库存预警设置 + * + * @param addInvRemindSetRequest + * @return + */ + BaseResponse addInvRemindSet(AddInvRemindSetRequest addInvRemindSetRequest); + + /** + * 更新库存预警设置 + * + * @param invRemindSetEntity + * @return + */ + BaseResponse updateInvRemindSet(InvRemindSetEntity invRemindSetEntity); + + /** + * 根据ID删除库存预警设置 + * + * @param id + * @return + */ + BaseResponse deleteInvRemindSet(Integer id); + +} diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvMAOrderDetailServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvMAOrderDetailServiceImpl.java index 30f8b5bba..9a0c12781 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/InvMAOrderDetailServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/InvMAOrderDetailServiceImpl.java @@ -63,7 +63,7 @@ public class InvMAOrderDetailServiceImpl implements InvMAOrderDetailService { InvMAExplanationEntity invMAExplanationEntity = invMAExplanationDao.selectByStatus(1); //查询养护记录信息 - InvMAOrderEntity maOrder = invMAOrderDao.selectOne(new QueryWrapper().eq("orderId", invMAOrderDetailEntity.getOrderIdFk())); + InvMAOrderEntity maOrder = invMAOrderDao.selectOne(new QueryWrapper().eq("orderId", invMAOrderDetailEntity.getOrderIdFk()).last("LIMIT 1")); if (null != maintenanceOrderDetailEntity) { if (StrUtil.isBlank(udi.getSerialNo()) || (StrUtil.isBlank(udi.getBatchNo()) && StrUtil.isBlank(udi.getSerialNo()))) { diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvRemindMsgServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvRemindMsgServiceImpl.java new file mode 100644 index 000000000..eca566294 --- /dev/null +++ b/src/main/java/com/glxp/api/service/inv/impl/InvRemindMsgServiceImpl.java @@ -0,0 +1,115 @@ +package com.glxp.api.service.inv.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.github.pagehelper.PageHelper; +import com.glxp.api.common.enums.ResultEnum; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.dao.inv.InvProductDao; +import com.glxp.api.dao.inv.InvRemindMsgDao; +import com.glxp.api.entity.inv.InvProductEntity; +import com.glxp.api.entity.inv.InvRemindMsgEntity; +import com.glxp.api.entity.inv.InvRemindSetEntity; +import com.glxp.api.req.inv.FilterInvRemindMsgRequest; +import com.glxp.api.res.inv.InvRemindMsgResponse; +import com.glxp.api.service.inv.InvRemindMsgService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.Date; +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; + +@Slf4j +@Service +@Transactional(rollbackFor = Exception.class) +public class InvRemindMsgServiceImpl implements InvRemindMsgService { + + @Resource + private InvRemindMsgDao invRemindMsgDao; + @Resource + private InvProductDao invProductDao; + + @Override + public List filterList(FilterInvRemindMsgRequest filterInvRemindMsgRequest) { + if (null == filterInvRemindMsgRequest) { + return Collections.emptyList(); + } + if (null != filterInvRemindMsgRequest.getPage() && null != filterInvRemindMsgRequest.getLimit()) { + PageHelper.offsetPage((filterInvRemindMsgRequest.getPage() - 1) * filterInvRemindMsgRequest.getLimit(), filterInvRemindMsgRequest.getLimit()); + } + return invRemindMsgDao.filterList(filterInvRemindMsgRequest); + } + + @Override + public BaseResponse confirmMsg(Integer id, String handleMsg) { + InvRemindMsgEntity invRemindMsgEntity = invRemindMsgDao.selectById(id); + if (null == invRemindMsgEntity) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "消息不存在"); + } + invRemindMsgEntity.setStatus(2); //消息状态修改为已确认 + invRemindMsgEntity.setIgnoreStatus(0); //重置成为不忽略 + invRemindMsgEntity.setHandleMsg(handleMsg); //处理方式 + invRemindMsgEntity.setUpdateTime(new Date()); + invRemindMsgDao.updateById(invRemindMsgEntity); + return ResultVOUtils.success("已确认"); + } + + @Override + public void createRemindMsg(InvRemindSetEntity invRemindSetEntity) { + log.info("库存预警设置:{}", invRemindSetEntity.toString()); + //查询库存数量 + List invProductList = invProductDao.selectInvProductInfo(invRemindSetEntity.getInvCode(), invRemindSetEntity.getInvSpaceCode(), invRemindSetEntity.getRelId()); + if (CollUtil.isNotEmpty(invProductList)) { + List invDataList = new CopyOnWriteArrayList<>(invProductList); + + invDataList.parallelStream().forEach(invProductEntity -> { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StrUtil.isNotBlank(invRemindSetEntity.getRelId()), "relId", invRemindSetEntity.getRelId()) + .eq("invCode", invRemindSetEntity.getInvCode()) + .eq(StrUtil.isNotBlank(invRemindSetEntity.getInvSpaceCode()), "invSpaceCode", invRemindSetEntity.getInvSpaceCode()); + InvRemindMsgEntity invRemindMsgEntity = invRemindMsgDao.selectOne(wrapper); + if (null == invRemindMsgEntity) { + invRemindMsgEntity = new InvRemindMsgEntity(); + invRemindMsgEntity.setCreateTime(new Date()); + invRemindMsgEntity.setInvCode(invRemindSetEntity.getInvCode()); + invRemindMsgEntity.setInvSpaceCode(invRemindSetEntity.getInvSpaceCode()); + if (StrUtil.isBlank(invRemindSetEntity.getRelId())) { + //按照产品统计 + invRemindMsgEntity.setRelId(invRemindSetEntity.getRelId()); + } else { + //按仓库统计 + //TODO 待完善 + } + } + + //生成或更新预警消息标识 + boolean flag = false; + + StringBuffer msg = new StringBuffer(); + + //根据库存信息设置,计算或升成库存预警 + if (invRemindSetEntity.getLowStock()) { + //开启低库存预警 + if (invProductEntity.getReCount() < invRemindSetEntity.getLowStockNum()) { + invRemindMsgEntity.setReCount(invRemindMsgEntity.getReCount()); + invRemindMsgEntity.setInCount(invProductEntity.getInCount()); + invRemindMsgEntity.setOutCount(invProductEntity.getOutCount()); + //invRemindMsgEntity.set + msg.append("库存过低,当前库存数量:").append(invProductEntity.getReCount()).append("\n"); + + flag = true; + } + } + }); + } else { + log.info("此仓库或产品库存信息不存在"); + } + } + +} diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvRemindSetServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvRemindSetServiceImpl.java new file mode 100644 index 000000000..0952aca82 --- /dev/null +++ b/src/main/java/com/glxp/api/service/inv/impl/InvRemindSetServiceImpl.java @@ -0,0 +1,96 @@ +package com.glxp.api.service.inv.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.StrUtil; +import com.github.pagehelper.PageHelper; +import com.glxp.api.common.enums.ResultEnum; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.dao.inv.InvRemindSetDao; +import com.glxp.api.entity.inv.InvRemindSetEntity; +import com.glxp.api.req.inv.AddInvRemindSetRequest; +import com.glxp.api.req.inv.FilterInvRemindSetRequest; +import com.glxp.api.res.inv.InvRemindSetResponse; +import com.glxp.api.service.auth.CustomerService; +import com.glxp.api.service.inv.InvRemindSetService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.Date; +import java.util.List; + +@Slf4j +@Service +@Transactional(rollbackFor = Exception.class) +public class InvRemindSetServiceImpl implements InvRemindSetService { + + @Resource + private InvRemindSetDao invRemindSetDao; + @Resource + private CustomerService customerService; + + @Override + public List filterList(FilterInvRemindSetRequest filterInvRemindSetRequest) { + if (null == filterInvRemindSetRequest) { + return Collections.emptyList(); + } + if (null != filterInvRemindSetRequest.getPage() && null != filterInvRemindSetRequest.getLimit()) { + PageHelper.offsetPage((filterInvRemindSetRequest.getPage() - 1) * filterInvRemindSetRequest.getLimit(), filterInvRemindSetRequest.getLimit()); + } + return invRemindSetDao.filterList(filterInvRemindSetRequest); + } + + @Override + public BaseResponse addInvRemindSet(AddInvRemindSetRequest addInvRemindSetRequest) { + if (StrUtil.isBlank(addInvRemindSetRequest.getRelId()) || StrUtil.isBlank(addInvRemindSetRequest.getInvCode())) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "产品库存信息不完整!"); + } + if (false == addInvRemindSetRequest.getLowStock() && false == addInvRemindSetRequest.getLackStock() && false == addInvRemindSetRequest.getOverStock() && false == addInvRemindSetRequest.getExpireDate() && false == addInvRemindSetRequest.getRecentDate()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "预警设置至少开启一项预警!"); + } + InvRemindSetEntity invRemindSetEntity = new InvRemindSetEntity(); + BeanUtil.copyProperties(addInvRemindSetRequest, invRemindSetEntity); + setUpdateInfo(invRemindSetEntity); + invRemindSetDao.insert(invRemindSetEntity); + return ResultVOUtils.success("添加成功"); + } + + @Override + public BaseResponse updateInvRemindSet(InvRemindSetEntity invRemindSetEntity) { + if (false == invRemindSetEntity.getLowStock() && false == invRemindSetEntity.getLackStock() && false == invRemindSetEntity.getOverStock() && false == invRemindSetEntity.getExpireDate() && false == invRemindSetEntity.getRecentDate()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "预警设置至少开启一项预警!"); + } + setUpdateInfo(invRemindSetEntity); + invRemindSetDao.updateById(invRemindSetEntity); + return ResultVOUtils.success("更新成功"); + } + + @Override + public BaseResponse deleteInvRemindSet(Integer id) { + if (null == id) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + invRemindSetDao.deleteById(id); + return ResultVOUtils.success("删除成功"); + } + + /** + * 设置创建更新信息 + * + * @param invRemindSetEntity + */ + private void setUpdateInfo(InvRemindSetEntity invRemindSetEntity) { + Date date = new Date(); + String userId = customerService.getUserIdStr(); + if (null == invRemindSetEntity.getId()) { + invRemindSetEntity.setCreateUser(userId); + invRemindSetEntity.setCreateTime(date); + } + invRemindSetEntity.setUpdateUser(userId); + invRemindSetEntity.setUpdateTime(date); + } + +} diff --git a/src/main/java/com/glxp/api/task/InvRemindMsgTask.java b/src/main/java/com/glxp/api/task/InvRemindMsgTask.java new file mode 100644 index 000000000..dc90292f7 --- /dev/null +++ b/src/main/java/com/glxp/api/task/InvRemindMsgTask.java @@ -0,0 +1,59 @@ +package com.glxp.api.task; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.thread.ThreadUtil; +import com.glxp.api.dao.inv.InvRemindSetDao; +import com.glxp.api.dao.schedule.ScheduledDao; +import com.glxp.api.entity.inv.InvRemindSetEntity; +import com.glxp.api.entity.system.ScheduledEntity; +import com.glxp.api.req.system.ScheduledRequest; +import com.glxp.api.service.inv.InvRemindMsgService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.support.CronTrigger; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.List; + +@Slf4j +@Component +public class InvRemindMsgTask implements SchedulingConfigurer { + + @Resource + private ScheduledDao scheduledDao; + @Resource + private InvRemindMsgService invRemindMsgService; + @Resource + private InvRemindSetDao invRemindSetDao; + + @Override + public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { + taskRegistrar.addTriggerTask(this::process, triggerContext -> { + ScheduledRequest scheduledRequest = new ScheduledRequest(); + scheduledRequest.setCronName("invRemindMsgTask"); + ScheduledEntity scheduled = scheduledDao.findScheduled(scheduledRequest); + if (null == scheduled) { + log.error("库存预警定时任务未配置,请注意!"); + return null; + } + String cron = scheduled.getCron(); + return new CronTrigger(cron).nextExecutionTime(triggerContext); + }); + } + + private void process() { + log.info("开始扫描库存信息,生成库存预警消息"); + List invRemindSetEntities = invRemindSetDao.selectList(null); + if (CollUtil.isNotEmpty(invRemindSetEntities)) { + log.info("库存预警设置条数:{}", invRemindSetEntities.size()); + //开始生成库存信息 + for (InvRemindSetEntity invRemindSetEntity : invRemindSetEntities) { + ThreadUtil.execAsync(ThreadUtil.newThread(() -> invRemindMsgService.createRemindMsg(invRemindSetEntity), "createInvRemindThread")); + } + } else { + log.info("无库存预警设置,结束库存扫描"); + } + } +} diff --git a/src/main/java/com/glxp/api/task/SupplementOrderTask.java b/src/main/java/com/glxp/api/task/SupplementOrderTask.java index 8ec3cb9ff..32051b561 100644 --- a/src/main/java/com/glxp/api/task/SupplementOrderTask.java +++ b/src/main/java/com/glxp/api/task/SupplementOrderTask.java @@ -11,7 +11,6 @@ import com.glxp.api.service.inout.IoAddInoutService; import com.glxp.api.service.inout.IoOrderService; import com.glxp.api.service.system.SystemParamConfigService; import lombok.extern.slf4j.Slf4j; -import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.SchedulingConfigurer; import org.springframework.scheduling.config.ScheduledTaskRegistrar; import org.springframework.scheduling.support.CronTrigger; @@ -26,7 +25,6 @@ import java.util.concurrent.atomic.AtomicInteger; */ @Slf4j @Component -@EnableScheduling public class SupplementOrderTask implements SchedulingConfigurer { @Resource diff --git a/src/main/resources/mybatis/mapper/basic/BasicHospTypeDao.xml b/src/main/resources/mybatis/mapper/basic/BasicHospTypeDao.xml index 759d5e85c..d469b6cc5 100644 --- a/src/main/resources/mybatis/mapper/basic/BasicHospTypeDao.xml +++ b/src/main/resources/mybatis/mapper/basic/BasicHospTypeDao.xml @@ -18,270 +18,11 @@ id, code, parentCode, `name`, remark, createTime, updateTime, `createUser`, updateUser - - - update basic_hosp_type - - - - when id = #{item.id,jdbcType=INTEGER} then #{item.code,jdbcType=VARCHAR} - - - - - when id = #{item.id,jdbcType=INTEGER} then #{item.parentCode,jdbcType=VARCHAR} - - - - - when id = #{item.id,jdbcType=INTEGER} then #{item.name,jdbcType=VARCHAR} - - - - - when id = #{item.id,jdbcType=INTEGER} then #{item.remark,jdbcType=VARCHAR} - - - - - when id = #{item.id,jdbcType=INTEGER} then #{item.createTime,jdbcType=TIMESTAMP} - - - - - when id = #{item.id,jdbcType=INTEGER} then #{item.updateTime,jdbcType=TIMESTAMP} - - - - - when id = #{item.id,jdbcType=INTEGER} then #{item.createUser,jdbcType=VARCHAR} - - - - - when id = #{item.id,jdbcType=INTEGER} then #{item.updateUser,jdbcType=VARCHAR} - - - - where id in - - #{item.id,jdbcType=INTEGER} - - - - - update basic_hosp_type - - - - - when id = #{item.id,jdbcType=INTEGER} then #{item.code,jdbcType=VARCHAR} - - - - - - - when id = #{item.id,jdbcType=INTEGER} then #{item.parentCode,jdbcType=VARCHAR} - - - - - - - when id = #{item.id,jdbcType=INTEGER} then #{item.name,jdbcType=VARCHAR} - - - - - - - when id = #{item.id,jdbcType=INTEGER} then #{item.remark,jdbcType=VARCHAR} - - - - - - - when id = #{item.id,jdbcType=INTEGER} then #{item.createTime,jdbcType=TIMESTAMP} - - - - - - - when id = #{item.id,jdbcType=INTEGER} then #{item.updateTime,jdbcType=TIMESTAMP} - - - - - - - when id = #{item.id,jdbcType=INTEGER} then #{item.createUser,jdbcType=VARCHAR} - - - - - - - when id = #{item.id,jdbcType=INTEGER} then #{item.updateUser,jdbcType=VARCHAR} - - - - - where id in - - #{item.id,jdbcType=INTEGER} - - - - - insert into basic_hosp_type - (code, parentCode, `name`, remark, createTime, updateTime, `createUser`, updateUser - ) - values - - (#{item.code,jdbcType=VARCHAR}, #{item.parentCode,jdbcType=VARCHAR}, #{item.name,jdbcType=VARCHAR}, - #{item.remark,jdbcType=VARCHAR}, #{item.createTime,jdbcType=TIMESTAMP}, #{item.updateTime,jdbcType=TIMESTAMP}, - #{item.createUser,jdbcType=VARCHAR}, #{item.updateUser,jdbcType=VARCHAR}) - - - - - insert into basic_hosp_type - - - id, - - code, - parentCode, - `name`, - remark, - createTime, - updateTime, - `createUser`, - updateUser, - - values - - - #{id,jdbcType=INTEGER}, - - #{code,jdbcType=VARCHAR}, - #{parentCode,jdbcType=VARCHAR}, - #{name,jdbcType=VARCHAR}, - #{remark,jdbcType=VARCHAR}, - #{createTime,jdbcType=TIMESTAMP}, - #{updateTime,jdbcType=TIMESTAMP}, - #{createUser,jdbcType=VARCHAR}, - #{updateUser,jdbcType=VARCHAR}, - - on duplicate key update - - - id = #{id,jdbcType=INTEGER}, - - code = #{code,jdbcType=VARCHAR}, - parentCode = #{parentCode,jdbcType=VARCHAR}, - `name` = #{name,jdbcType=VARCHAR}, - remark = #{remark,jdbcType=VARCHAR}, - createTime = #{createTime,jdbcType=TIMESTAMP}, - updateTime = #{updateTime,jdbcType=TIMESTAMP}, - `createUser` = #{createUser,jdbcType=VARCHAR}, - updateUser = #{updateUser,jdbcType=VARCHAR}, - - - - - insert into basic_hosp_type - - - id, - - - code, - - - parentCode, - - - `name`, - - - remark, - - - createTime, - - - updateTime, - - - `createUser`, - - - updateUser, - - - values - - - #{id,jdbcType=INTEGER}, - - - #{code,jdbcType=VARCHAR}, - - - #{parentCode,jdbcType=VARCHAR}, - - - #{name,jdbcType=VARCHAR}, - - - #{remark,jdbcType=VARCHAR}, - - - #{createTime,jdbcType=TIMESTAMP}, - - - #{updateTime,jdbcType=TIMESTAMP}, - - - #{createUser,jdbcType=VARCHAR}, - - - #{updateUser,jdbcType=VARCHAR}, - - - on duplicate key update - - - id = #{id,jdbcType=INTEGER}, - - - code = #{code,jdbcType=VARCHAR}, - - - parentCode = #{parentCode,jdbcType=VARCHAR}, - - - `name` = #{name,jdbcType=VARCHAR}, - - - remark = #{remark,jdbcType=VARCHAR}, - - - createTime = #{createTime,jdbcType=TIMESTAMP}, - - - updateTime = #{updateTime,jdbcType=TIMESTAMP}, - - - `createUser` = #{createUser,jdbcType=VARCHAR}, - - - updateUser = #{updateUser,jdbcType=VARCHAR}, - - - + + + + + \ No newline at end of file diff --git a/src/main/resources/mybatis/mapper/basic/BasicHospTypeRelDao.xml b/src/main/resources/mybatis/mapper/basic/BasicHospTypeRelDao.xml index 61b7ccbda..2fa22b669 100644 --- a/src/main/resources/mybatis/mapper/basic/BasicHospTypeRelDao.xml +++ b/src/main/resources/mybatis/mapper/basic/BasicHospTypeRelDao.xml @@ -72,9 +72,9 @@ (id, code, relId) values (#{id,jdbcType=INTEGER}, #{code,jdbcType=VARCHAR}, #{relId,jdbcType=VARCHAR}) - on duplicate key update - id = #{id,jdbcType=INTEGER}, - code = #{code,jdbcType=VARCHAR}, + on duplicate key update + id = #{id,jdbcType=INTEGER}, + code = #{code,jdbcType=VARCHAR}, relId = #{relId,jdbcType=VARCHAR} @@ -103,7 +103,7 @@ #{relId,jdbcType=VARCHAR}, - on duplicate key update + on duplicate key update id = #{id,jdbcType=INTEGER}, diff --git a/src/main/resources/mybatis/mapper/basic/BasicUdirelTypeDao.xml b/src/main/resources/mybatis/mapper/basic/BasicUdirelTypeDao.xml deleted file mode 100644 index cbe8fb863..000000000 --- a/src/main/resources/mybatis/mapper/basic/BasicUdirelTypeDao.xml +++ /dev/null @@ -1,261 +0,0 @@ - - - - - - - - - - - - - - - - - - id, pId, `name`, remark, createTime, updateTime, `createUser`, updateUser - - - - update basic_udirel_type - - - - when id = #{item.id,jdbcType=INTEGER} then #{item.pId,jdbcType=INTEGER} - - - - - when id = #{item.id,jdbcType=INTEGER} then #{item.name,jdbcType=VARCHAR} - - - - - when id = #{item.id,jdbcType=INTEGER} then #{item.remark,jdbcType=VARCHAR} - - - - - when id = #{item.id,jdbcType=INTEGER} then #{item.createTime,jdbcType=TIMESTAMP} - - - - - when id = #{item.id,jdbcType=INTEGER} then #{item.updateTime,jdbcType=VARCHAR} - - - - - when id = #{item.id,jdbcType=INTEGER} then #{item.createUser,jdbcType=VARCHAR} - - - - - when id = #{item.id,jdbcType=INTEGER} then #{item.updateUser,jdbcType=VARCHAR} - - - - where id in - - #{item.id,jdbcType=INTEGER} - - - - - update basic_udirel_type - - - - - when id = #{item.id,jdbcType=INTEGER} then #{item.pId,jdbcType=INTEGER} - - - - - - - when id = #{item.id,jdbcType=INTEGER} then #{item.name,jdbcType=VARCHAR} - - - - - - - when id = #{item.id,jdbcType=INTEGER} then #{item.remark,jdbcType=VARCHAR} - - - - - - - when id = #{item.id,jdbcType=INTEGER} then #{item.createTime,jdbcType=TIMESTAMP} - - - - - - - when id = #{item.id,jdbcType=INTEGER} then #{item.updateTime,jdbcType=VARCHAR} - - - - - - - when id = #{item.id,jdbcType=INTEGER} then #{item.createUser,jdbcType=VARCHAR} - - - - - - - when id = #{item.id,jdbcType=INTEGER} then #{item.updateUser,jdbcType=VARCHAR} - - - - - where id in - - #{item.id,jdbcType=INTEGER} - - - - - insert into basic_udirel_type - (pId, `name`, remark, createTime, updateTime, `createUser`, updateUser) - values - - (#{item.pId,jdbcType=INTEGER}, #{item.name,jdbcType=VARCHAR}, #{item.remark,jdbcType=VARCHAR}, - #{item.createTime,jdbcType=TIMESTAMP}, #{item.updateTime,jdbcType=VARCHAR}, #{item.createUser,jdbcType=VARCHAR}, - #{item.updateUser,jdbcType=VARCHAR}) - - - - - insert into basic_udirel_type - - - id, - - pId, - `name`, - remark, - createTime, - updateTime, - `createUser`, - updateUser, - - values - - - #{id,jdbcType=INTEGER}, - - #{pId,jdbcType=INTEGER}, - #{name,jdbcType=VARCHAR}, - #{remark,jdbcType=VARCHAR}, - #{createTime,jdbcType=TIMESTAMP}, - #{updateTime,jdbcType=VARCHAR}, - #{createUser,jdbcType=VARCHAR}, - #{updateUser,jdbcType=VARCHAR}, - - on duplicate key update - - - id = #{id,jdbcType=INTEGER}, - - pId = #{pId,jdbcType=INTEGER}, - `name` = #{name,jdbcType=VARCHAR}, - remark = #{remark,jdbcType=VARCHAR}, - createTime = #{createTime,jdbcType=TIMESTAMP}, - updateTime = #{updateTime,jdbcType=VARCHAR}, - `createUser` = #{createUser,jdbcType=VARCHAR}, - updateUser = #{updateUser,jdbcType=VARCHAR}, - - - - - insert into basic_udirel_type - - - id, - - - pId, - - - `name`, - - - remark, - - - createTime, - - - updateTime, - - - `createUser`, - - - updateUser, - - - values - - - #{id,jdbcType=INTEGER}, - - - #{pId,jdbcType=INTEGER}, - - - #{name,jdbcType=VARCHAR}, - - - #{remark,jdbcType=VARCHAR}, - - - #{createTime,jdbcType=TIMESTAMP}, - - - #{updateTime,jdbcType=VARCHAR}, - - - #{createUser,jdbcType=VARCHAR}, - - - #{updateUser,jdbcType=VARCHAR}, - - - on duplicate key update - - - id = #{id,jdbcType=INTEGER}, - - - pId = #{pId,jdbcType=INTEGER}, - - - `name` = #{name,jdbcType=VARCHAR}, - - - remark = #{remark,jdbcType=VARCHAR}, - - - createTime = #{createTime,jdbcType=TIMESTAMP}, - - - updateTime = #{updateTime,jdbcType=VARCHAR}, - - - `createUser` = #{createUser,jdbcType=VARCHAR}, - - - updateUser = #{updateUser,jdbcType=VARCHAR}, - - - - \ No newline at end of file diff --git a/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml b/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml index 52245349c..24f9d7071 100644 --- a/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml +++ b/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml @@ -304,10 +304,16 @@ FROM basic_products inner JOIN basic_udirel ON basic_products.uuid = basic_udirel.uuid + + right JOIN basic_hosp_type_rel on basic_hosp_type_rel.relId = basic_udirel.id + AND ylqxzcrbarmc LIKE concat('%', #{ylqxzcrbarmc}, '%') + + AND basic_hosp_type_rel.code = #{bindCode} + AND supName LIKE concat('%', #{supName}, '%') diff --git a/src/main/resources/mybatis/mapper/inv/InvRemindMsgDao.xml b/src/main/resources/mybatis/mapper/inv/InvRemindMsgDao.xml new file mode 100644 index 000000000..4fafcdcc3 --- /dev/null +++ b/src/main/resources/mybatis/mapper/inv/InvRemindMsgDao.xml @@ -0,0 +1,47 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/mybatis/mapper/inv/InvRemindSetDao.xml b/src/main/resources/mybatis/mapper/inv/InvRemindSetDao.xml new file mode 100644 index 000000000..b53724255 --- /dev/null +++ b/src/main/resources/mybatis/mapper/inv/InvRemindSetDao.xml @@ -0,0 +1,38 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/mybatis/mapper/inv/invProductDao.xml b/src/main/resources/mybatis/mapper/inv/invProductDao.xml index 38719ddf0..6ae393975 100644 --- a/src/main/resources/mybatis/mapper/inv/invProductDao.xml +++ b/src/main/resources/mybatis/mapper/inv/invProductDao.xml @@ -236,4 +236,30 @@ group by inv_product_detail.relId, inv_product_detail.batchNo + +