| | |
| | | package com.sinata.web.controller.backend; |
| | | |
| | | import com.sinata.common.core.domain.R; |
| | | import com.sinata.common.entity.PageDTO; |
| | | import com.sinata.system.domain.dto.MwBoxDTO; |
| | | import com.sinata.system.domain.query.MwBoxPageQuery; |
| | | import com.sinata.system.domain.vo.BoxStatisticsVO; |
| | | import com.sinata.system.domain.vo.MwBoxVO; |
| | | import com.sinata.system.service.MwBoxService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import io.swagger.annotations.ApiParam; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.validation.annotation.Validated; |
| | | 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.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestParam; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import javax.validation.Valid; |
| | | import javax.validation.constraints.NotEmpty; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | * @author mitao |
| | | * @since 2024-12-02 |
| | | */ |
| | | @Api(tags = {"转运箱管理相关接口"}) |
| | | @Validated |
| | | @RestController |
| | | @RequiredArgsConstructor |
| | | @RequestMapping("/backend/mwBox") |
| | | public class MwBoxController { |
| | | private final MwBoxService boxService; |
| | | |
| | | /** |
| | | * 转运箱数据统计 |
| | | * |
| | | * @return |
| | | */ |
| | | @GetMapping("/statistics") |
| | | @ApiOperation("转运箱数据统计") |
| | | public R<BoxStatisticsVO> getBoxStatistics() { |
| | | return R.ok(boxService.getBoxStatistics()); |
| | | } |
| | | |
| | | /** |
| | | * 转运箱分页列表 |
| | | * |
| | | * @param query |
| | | * @return |
| | | */ |
| | | @PostMapping("/page") |
| | | @ApiOperation("转运箱分页列表") |
| | | public R<PageDTO<MwBoxVO>> pageList(@Valid @RequestBody MwBoxPageQuery query) { |
| | | return R.ok(boxService.pageList(query)); |
| | | } |
| | | |
| | | /** |
| | | * 新增转运箱 |
| | | * |
| | | * @param boxNumberStart |
| | | * @param boxNumberEnd |
| | | * @return |
| | | */ |
| | | @PostMapping("/add") |
| | | @ApiOperation("新增转运箱") |
| | | @ApiImplicitParams({@ApiImplicitParam(name = "boxNumberStart", value = "转运箱编号开始", required = true), |
| | | @ApiImplicitParam(name = "boxNumberEnd", value = "转运箱编号结束", required = true)}) |
| | | public R<?> add(@RequestParam String boxNumberStart, @RequestParam String boxNumberEnd) { |
| | | boxService.add(boxNumberStart, boxNumberEnd); |
| | | return R.ok(); |
| | | } |
| | | |
| | | /** |
| | | * 编辑转运箱状态 |
| | | * |
| | | * @param dtoList |
| | | * @return |
| | | */ |
| | | @PostMapping("/editBatch") |
| | | @ApiOperation("批量修改转运箱状态") |
| | | public R<?> editBatch(@Valid @RequestBody List<MwBoxDTO> dtoList) { |
| | | boxService.editBatch(dtoList); |
| | | return R.ok(); |
| | | } |
| | | |
| | | /** |
| | | * 批量删除 |
| | | * |
| | | * @param idList |
| | | * @return |
| | | */ |
| | | @PostMapping("/delBatch") |
| | | @ApiOperation("批量删除") |
| | | public R<?> delBatch(@ApiParam(name = "idList", value = "转运箱id列表", required = true, allowMultiple = true) @NotEmpty(message = "转运箱列表不能为空") @RequestBody List<Long> idList) { |
| | | boxService.removeByIds(idList); |
| | | return R.ok(); |
| | | } |
| | | |
| | | } |
| | |
| | | package com.sinata.web.controller.backend; |
| | | |
| | | import com.sinata.common.core.domain.R; |
| | | import com.sinata.common.entity.PageDTO; |
| | | import com.sinata.system.domain.dto.MwStagingRoomDTO; |
| | | import com.sinata.system.domain.query.MwStagingRoomQuery; |
| | | import com.sinata.system.domain.query.StorageRecordQuery; |
| | | import com.sinata.system.domain.vo.MwCollectRecordVO; |
| | | import com.sinata.system.domain.vo.MwStagingRoomVO; |
| | | import com.sinata.system.service.MwStagingRoomService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import io.swagger.annotations.ApiParam; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.DeleteMapping; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.PathVariable; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import javax.validation.Valid; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | * @author mitao |
| | | * @since 2024-12-02 |
| | | */ |
| | | @Api(tags = {"暂存间管理相关接口"}) |
| | | @Validated |
| | | @RestController |
| | | @RequiredArgsConstructor |
| | | @RequestMapping("/backend/mwStagingRoom") |
| | | public class MwStagingRoomController { |
| | | private final MwStagingRoomService mwStagingRoomService; |
| | | |
| | | /** |
| | | * 暂存间分页列表 |
| | | * |
| | | * @param query |
| | | * @return |
| | | */ |
| | | @PostMapping("/page") |
| | | @ApiOperation("暂存间分页列表") |
| | | public R<PageDTO<MwStagingRoomVO>> pageList(@Valid @RequestBody MwStagingRoomQuery query) { |
| | | return R.ok(mwStagingRoomService.pageList(query)); |
| | | } |
| | | |
| | | /** |
| | | * 新增暂存间 |
| | | * |
| | | * @param dto |
| | | * @return |
| | | */ |
| | | @PostMapping("/add") |
| | | @ApiOperation("新增暂存间") |
| | | public R<?> add(@Valid @RequestBody MwStagingRoomDTO dto) { |
| | | mwStagingRoomService.add(dto); |
| | | return R.ok(); |
| | | } |
| | | |
| | | /** |
| | | * 编辑暂存间 |
| | | * |
| | | * @param dto |
| | | * @return |
| | | */ |
| | | @PostMapping("/edit") |
| | | @ApiOperation("编辑暂存间") |
| | | public R<?> edit(@Valid @RequestBody MwStagingRoomDTO dto) { |
| | | mwStagingRoomService.edit(dto); |
| | | return R.ok(); |
| | | } |
| | | |
| | | /** |
| | | * 删除暂存间 |
| | | * |
| | | * @param id |
| | | * @return |
| | | */ |
| | | @DeleteMapping("/{id}") |
| | | @ApiOperation("删除暂存间") |
| | | public R<?> delete(@ApiParam(name = "id", value = "暂存间id", required = true) @PathVariable("id") Long id) { |
| | | mwStagingRoomService.removeById(id); |
| | | return R.ok(); |
| | | } |
| | | |
| | | /** |
| | | * 根据医院id查询暂存间 |
| | | * |
| | | * @param departmentId |
| | | * @return |
| | | */ |
| | | @GetMapping("/getByHospitalId/{departmentId}") |
| | | @ApiOperation(value = "根据医院id查询暂存间", notes = "入库、出库记录暂存间筛选级联数据") |
| | | public R<MwStagingRoomVO> getByHospitalId(@ApiParam(name = "departmentId", value = "医院id", required = true) @PathVariable("departmentId") Long departmentId) { |
| | | return R.ok(mwStagingRoomService.getByHospitalId(departmentId)); |
| | | } |
| | | |
| | | /** |
| | | * 暂存间入库记录 |
| | | * |
| | | * @param query |
| | | * @return |
| | | */ |
| | | @PostMapping("/storageRecord") |
| | | @ApiOperation("暂存间入库记录") |
| | | public R<PageDTO<MwCollectRecordVO>> storageRecord(@Valid @RequestBody StorageRecordQuery query) { |
| | | return R.ok(mwStagingRoomService.storageRecord(query)); |
| | | } |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "https://www.springframework.org/dtd/spring-beans-2.0.dtd"> |
| | | |
| | | <!-- |
| | | - Default SQL error codes for well-known databases. |
| | | - Can be overridden by definitions in a "sql-error-codes.xml" file |
| | | - in the root of the class path. |
| | | - |
| | | - If the Database Product Name contains characters that are invalid |
| | | - to use in the id attribute (like a space) then we need to add a property |
| | | - named "databaseProductName"/"databaseProductNames" that holds this value. |
| | | - If this property is present, then it will be used instead of the id for |
| | | - looking up the error codes based on the current database. |
| | | --> |
| | | <beans> |
| | | |
| | | <bean id="DB2" name="Db2" class="org.springframework.jdbc.support.SQLErrorCodes"> |
| | | <property name="databaseProductName"> |
| | | <value>DB2*</value> |
| | | </property> |
| | | <property name="badSqlGrammarCodes"> |
| | | <value>-007,-029,-097,-104,-109,-115,-128,-199,-204,-206,-301,-408,-441,-491</value> |
| | | </property> |
| | | <property name="duplicateKeyCodes"> |
| | | <value>-803</value> |
| | | </property> |
| | | <property name="dataIntegrityViolationCodes"> |
| | | <value>-407,-530,-531,-532,-543,-544,-545,-603,-667</value> |
| | | </property> |
| | | <property name="dataAccessResourceFailureCodes"> |
| | | <value>-904,-971</value> |
| | | </property> |
| | | <property name="transientDataAccessResourceCodes"> |
| | | <value>-1035,-1218,-30080,-30081</value> |
| | | </property> |
| | | <property name="deadlockLoserCodes"> |
| | | <value>-911,-913</value> |
| | | </property> |
| | | </bean> |
| | | |
| | | <bean id="Derby" class="org.springframework.jdbc.support.SQLErrorCodes"> |
| | | <property name="databaseProductName"> |
| | | <value>Apache Derby</value> |
| | | </property> |
| | | <property name="useSqlStateForTranslation"> |
| | | <value>true</value> |
| | | </property> |
| | | <property name="badSqlGrammarCodes"> |
| | | <value>42802,42821,42X01,42X02,42X03,42X04,42X05,42X06,42X07,42X08</value> |
| | | </property> |
| | | <property name="duplicateKeyCodes"> |
| | | <value>23505</value> |
| | | </property> |
| | | <property name="dataIntegrityViolationCodes"> |
| | | <value>22001,22005,23502,23503,23513,X0Y32</value> |
| | | </property> |
| | | <property name="dataAccessResourceFailureCodes"> |
| | | <value>04501,08004,42Y07</value> |
| | | </property> |
| | | <property name="cannotAcquireLockCodes"> |
| | | <value>40XL1</value> |
| | | </property> |
| | | <property name="deadlockLoserCodes"> |
| | | <value>40001</value> |
| | | </property> |
| | | </bean> |
| | | |
| | | <bean id="H2" class="org.springframework.jdbc.support.SQLErrorCodes"> |
| | | <property name="badSqlGrammarCodes"> |
| | | <value>42000,42001,42101,42102,42111,42112,42121,42122,42132</value> |
| | | </property> |
| | | <property name="duplicateKeyCodes"> |
| | | <value>23001,23505</value> |
| | | </property> |
| | | <property name="dataIntegrityViolationCodes"> |
| | | <value>22001,22003,22012,22018,22025,23000,23002,23003,23502,23503,23506,23507,23513</value> |
| | | </property> |
| | | <property name="dataAccessResourceFailureCodes"> |
| | | <value>90046,90100,90117,90121,90126</value> |
| | | </property> |
| | | <property name="cannotAcquireLockCodes"> |
| | | <value>50200</value> |
| | | </property> |
| | | </bean> |
| | | |
| | | <!-- https://help.sap.com/saphelp_hanaplatform/helpdata/en/20/a78d3275191014b41bae7c4a46d835/content.htm --> |
| | | <bean id="HDB" name="Hana" class="org.springframework.jdbc.support.SQLErrorCodes"> |
| | | <property name="databaseProductNames"> |
| | | <list> |
| | | <value>SAP HANA</value> |
| | | <value>SAP DB</value> |
| | | </list> |
| | | </property> |
| | | <property name="badSqlGrammarCodes"> |
| | | <value> |
| | | 257,259,260,261,262,263,264,267,268,269,270,271,272,273,275,276,277,278, |
| | | 278,279,280,281,282,283,284,285,286,288,289,290,294,295,296,297,299,308,309, |
| | | 313,315,316,318,319,320,321,322,323,324,328,329,330,333,335,336,337,338,340, |
| | | 343,350,351,352,362,368 |
| | | </value> |
| | | </property> |
| | | <property name="permissionDeniedCodes"> |
| | | <value>10,258</value> |
| | | </property> |
| | | <property name="duplicateKeyCodes"> |
| | | <value>301</value> |
| | | </property> |
| | | <property name="dataIntegrityViolationCodes"> |
| | | <value>461,462</value> |
| | | </property> |
| | | <property name="dataAccessResourceFailureCodes"> |
| | | <value>-813,-709,-708,1024,1025,1026,1027,1029,1030,1031</value> |
| | | </property> |
| | | <property name="invalidResultSetAccessCodes"> |
| | | <value>-11210,582,587,588,594</value> |
| | | </property> |
| | | <property name="cannotAcquireLockCodes"> |
| | | <value>131</value> |
| | | </property> |
| | | <property name="cannotSerializeTransactionCodes"> |
| | | <value>138,143</value> |
| | | </property> |
| | | <property name="deadlockLoserCodes"> |
| | | <value>133</value> |
| | | </property> |
| | | </bean> |
| | | |
| | | <bean id="HSQL" name="Hsql" class="org.springframework.jdbc.support.SQLErrorCodes"> |
| | | <property name="databaseProductName"> |
| | | <value>HSQL Database Engine</value> |
| | | </property> |
| | | <property name="badSqlGrammarCodes"> |
| | | <value>-22,-28</value> |
| | | </property> |
| | | <property name="duplicateKeyCodes"> |
| | | <value>-104</value> |
| | | </property> |
| | | <property name="dataIntegrityViolationCodes"> |
| | | <value>-9</value> |
| | | </property> |
| | | <property name="dataAccessResourceFailureCodes"> |
| | | <value>-80</value> |
| | | </property> |
| | | </bean> |
| | | |
| | | <bean id="Informix" class="org.springframework.jdbc.support.SQLErrorCodes"> |
| | | <property name="databaseProductName"> |
| | | <value>Informix Dynamic Server</value> |
| | | </property> |
| | | <property name="badSqlGrammarCodes"> |
| | | <value>-201,-217,-696</value> |
| | | </property> |
| | | <property name="duplicateKeyCodes"> |
| | | <value>-239,-268,-6017</value> |
| | | </property> |
| | | <property name="dataIntegrityViolationCodes"> |
| | | <value>-692,-11030</value> |
| | | </property> |
| | | </bean> |
| | | |
| | | <bean id="MS-SQL" name="SqlServer" class="org.springframework.jdbc.support.SQLErrorCodes"> |
| | | <property name="databaseProductName"> |
| | | <value>Microsoft SQL Server</value> |
| | | </property> |
| | | <property name="badSqlGrammarCodes"> |
| | | <value>156,170,207,208,209</value> |
| | | </property> |
| | | <property name="permissionDeniedCodes"> |
| | | <value>229</value> |
| | | </property> |
| | | <property name="duplicateKeyCodes"> |
| | | <value>2601,2627</value> |
| | | </property> |
| | | <property name="dataIntegrityViolationCodes"> |
| | | <value>544,2628,8114,8115</value> |
| | | </property> |
| | | <property name="dataAccessResourceFailureCodes"> |
| | | <value>4060</value> |
| | | </property> |
| | | <property name="cannotAcquireLockCodes"> |
| | | <value>1222</value> |
| | | </property> |
| | | <property name="deadlockLoserCodes"> |
| | | <value>1205</value> |
| | | </property> |
| | | </bean> |
| | | |
| | | <bean id="MySQL" class="org.springframework.jdbc.support.SQLErrorCodes"> |
| | | <property name="databaseProductNames"> |
| | | <list> |
| | | <value>MySQL</value> |
| | | <value>MariaDB</value> |
| | | </list> |
| | | </property> |
| | | <property name="badSqlGrammarCodes"> |
| | | <value>1054,1064,1146</value> |
| | | </property> |
| | | <property name="duplicateKeyCodes"> |
| | | <value>1062</value> |
| | | </property> |
| | | <property name="dataIntegrityViolationCodes"> |
| | | <value>630,839,840,893,1169,1215,1216,1217,1364,1451,1452,1557</value> |
| | | </property> |
| | | <property name="dataAccessResourceFailureCodes"> |
| | | <value>1</value> |
| | | </property> |
| | | <property name="cannotAcquireLockCodes"> |
| | | <value>1205,3572</value> |
| | | </property> |
| | | <property name="deadlockLoserCodes"> |
| | | <value>1213</value> |
| | | </property> |
| | | </bean> |
| | | |
| | | <bean id="Oracle" class="org.springframework.jdbc.support.SQLErrorCodes"> |
| | | <property name="badSqlGrammarCodes"> |
| | | <value>900,903,904,917,936,942,17006,6550</value> |
| | | </property> |
| | | <property name="invalidResultSetAccessCodes"> |
| | | <value>17003</value> |
| | | </property> |
| | | <property name="duplicateKeyCodes"> |
| | | <value>1</value> |
| | | </property> |
| | | <property name="dataIntegrityViolationCodes"> |
| | | <value>1400,1722,2291,2292</value> |
| | | </property> |
| | | <property name="dataAccessResourceFailureCodes"> |
| | | <value>17002,17447</value> |
| | | </property> |
| | | <property name="cannotAcquireLockCodes"> |
| | | <value>54,30006</value> |
| | | </property> |
| | | <property name="cannotSerializeTransactionCodes"> |
| | | <value>8177</value> |
| | | </property> |
| | | <property name="deadlockLoserCodes"> |
| | | <value>60</value> |
| | | </property> |
| | | </bean> |
| | | |
| | | <bean id="PostgreSQL" name="Postgres" class="org.springframework.jdbc.support.SQLErrorCodes"> |
| | | <property name="useSqlStateForTranslation"> |
| | | <value>true</value> |
| | | </property> |
| | | <property name="badSqlGrammarCodes"> |
| | | <value>03000,42000,42601,42602,42622,42804,42P01</value> |
| | | </property> |
| | | <property name="duplicateKeyCodes"> |
| | | <value>21000,23505</value> |
| | | </property> |
| | | <property name="dataIntegrityViolationCodes"> |
| | | <value>23000,23502,23503,23514</value> |
| | | </property> |
| | | <property name="dataAccessResourceFailureCodes"> |
| | | <value>53000,53100,53200,53300</value> |
| | | </property> |
| | | <property name="cannotAcquireLockCodes"> |
| | | <value>55P03</value> |
| | | </property> |
| | | <property name="cannotSerializeTransactionCodes"> |
| | | <value>40001</value> |
| | | </property> |
| | | <property name="deadlockLoserCodes"> |
| | | <value>40P01</value> |
| | | </property> |
| | | </bean> |
| | | |
| | | <bean id="Sybase" class="org.springframework.jdbc.support.SQLErrorCodes"> |
| | | <property name="databaseProductNames"> |
| | | <list> |
| | | <value>Sybase SQL Server</value> |
| | | <value>Adaptive Server Enterprise</value> |
| | | <value>ASE</value> <!-- name as returned by jTDS driver --> |
| | | <value>SQL Server</value> |
| | | <value>sql server</value> <!-- name as returned by jTDS driver --> |
| | | </list> |
| | | </property> |
| | | <property name="badSqlGrammarCodes"> |
| | | <value>101,102,103,104,105,106,107,108,109,110,111,112,113,116,120,121,123,207,208,213,257,512</value> |
| | | </property> |
| | | <property name="duplicateKeyCodes"> |
| | | <value>2601,2615,2626</value> |
| | | </property> |
| | | <property name="dataIntegrityViolationCodes"> |
| | | <value>233,511,515,530,546,547,2615,2714</value> |
| | | </property> |
| | | <property name="transientDataAccessResourceCodes"> |
| | | <value>921,1105</value> |
| | | </property> |
| | | <property name="cannotAcquireLockCodes"> |
| | | <value>12205</value> |
| | | </property> |
| | | <property name="deadlockLoserCodes"> |
| | | <value>1205</value> |
| | | </property> |
| | | </bean> |
| | | |
| | | <!-- 支持达梦数据库错误码--> |
| | | <bean id="DM" class="org.springframework.jdbc.support.SQLErrorCodes"> |
| | | <property name="databaseProductNames"> |
| | | <list> |
| | | <!-- 数据源名称存在空格不能像Oracle一样直接作为beanId --> |
| | | <value>DM DBMS</value> |
| | | </list> |
| | | </property> |
| | | <property name="duplicateKeyCodes"> |
| | | <value>-6602</value> |
| | | </property> |
| | | </bean> |
| | | </beans> |
New file |
| | |
| | | package com.sinata.common.enums; |
| | | |
| | | import lombok.Getter; |
| | | import lombok.AllArgsConstructor; |
| | | |
| | | @Getter |
| | | @AllArgsConstructor |
| | | public enum BoxProcessEnum { |
| | | HOSPITAL_USING(1, "医院在用"), |
| | | TRANSITING(2, "医疗废物车载"), |
| | | READY_TO_DISPOSAL(3, "待处置"), |
| | | DISPOSAL(4, "处置消毒"); |
| | | |
| | | private final Integer code; |
| | | private final String desc; |
| | | |
| | | public static BoxProcessEnum getEnumByCode(Integer code) { |
| | | for (BoxProcessEnum e : BoxProcessEnum.values()) { |
| | | if (e.code.equals(code)) { |
| | | return e; |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | } |
New file |
| | |
| | | package com.sinata.common.enums; |
| | | |
| | | import lombok.Getter; |
| | | import lombok.AllArgsConstructor; |
| | | |
| | | @Getter |
| | | @AllArgsConstructor |
| | | public enum BoxStatusEnum { |
| | | NORMAL(1, "正常"), |
| | | LOST(2, "丢失"), |
| | | BROKEN(3, "破坏"); |
| | | |
| | | private final Integer code; |
| | | private final String desc; |
| | | |
| | | public static BoxStatusEnum getEnumByCode(Integer code) { |
| | | for (BoxStatusEnum e : BoxStatusEnum.values()) { |
| | | if (e.code.equals(code)) { |
| | | return e; |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | } |
| | |
| | | package com.sinata.system.domain; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.FieldFill; |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableLogic; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.sinata.common.entity.BaseModel; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Getter; |
| | | import lombok.Setter; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | |
| | | /** |
| | |
| | | @Setter |
| | | @TableName("MW_BOX") |
| | | @ApiModel(value = "MwBox对象", description = "转运箱") |
| | | public class MwBox extends BaseModel { |
| | | public class MwBox implements Serializable { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | |
| | | @TableField("BOX_NUMBER") |
| | | private String boxNumber; |
| | | |
| | | @ApiModelProperty("转运箱状态 1:正常 2:丢失 3:破坏 4:正常") |
| | | @ApiModelProperty("转运箱状态 1:正常 2:丢失 3:破坏") |
| | | @TableField("STATUS") |
| | | private Integer status; |
| | | |
| | |
| | | @TableField("LINK") |
| | | private Integer link; |
| | | |
| | | /** |
| | | * 创建者 |
| | | */ |
| | | @ApiModelProperty(value = "记录创建人,前端忽略") |
| | | @TableField(value = "create_by", fill = FieldFill.INSERT) |
| | | private Long createBy; |
| | | |
| | | /** |
| | | * 创建时间 |
| | | */ |
| | | @ApiModelProperty(value = "记录创建时间,前端忽略") |
| | | @TableField(value = "create_time", fill = FieldFill.INSERT) |
| | | private Date createTime; |
| | | |
| | | /** |
| | | * 更新者 |
| | | */ |
| | | @ApiModelProperty(value = "记录修改人,前端忽略") |
| | | @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE) |
| | | private Long updateBy; |
| | | |
| | | /** |
| | | * 更新时间 |
| | | */ |
| | | @ApiModelProperty(value = "记录修改时间,前端忽略") |
| | | @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) |
| | | private Date updateTime; |
| | | |
| | | /** |
| | | * 是否删除 0未删除 1已删除 |
| | | */ |
| | | @TableField("del_flag") |
| | | @ApiModelProperty(value = "是否删除 0未删除 1已删除") |
| | | @TableLogic(value = "0", delval = "NULL") |
| | | private Integer delFlag; |
| | | } |
New file |
| | |
| | | package com.sinata.system.domain.dto; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import javax.validation.constraints.NotNull; |
| | | |
| | | /** |
| | | * @author mitao |
| | | * @date 2024/12/12 |
| | | */ |
| | | @Data |
| | | @ApiModel("转运箱数据传输对象") |
| | | public class MwBoxDTO { |
| | | |
| | | @ApiModelProperty("转运箱id") |
| | | @NotNull(message = "转运箱id不能为空") |
| | | private Long id; |
| | | |
| | | @ApiModelProperty("转运箱状态 1:正常 2:丢失 3:破坏") |
| | | @NotNull(message = "转运箱状态不能为空") |
| | | private Integer status; |
| | | |
| | | @ApiModelProperty("备注") |
| | | private String remark; |
| | | |
| | | } |
New file |
| | |
| | | package com.sinata.system.domain.dto; |
| | | |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.Data; |
| | | |
| | | import javax.validation.constraints.NotBlank; |
| | | import javax.validation.constraints.NotNull; |
| | | |
| | | /** |
| | | * @author mitao |
| | | * @date 2024/12/12 |
| | | */ |
| | | @Data |
| | | @ApiOperation("暂存间数据传输对象") |
| | | public class MwStagingRoomDTO { |
| | | |
| | | @ApiModelProperty("暂存间id") |
| | | private Long id; |
| | | |
| | | @ApiModelProperty("区域id(医院id)") |
| | | @NotNull(message = "医院id不能为空") |
| | | private Long departmentId; |
| | | |
| | | @ApiModelProperty("暂存间名称") |
| | | @NotBlank(message = "暂存间名称不能为空") |
| | | private String roomName; |
| | | |
| | | @ApiModelProperty("最大容量(箱)") |
| | | @NotNull(message = "最大容量不能为空") |
| | | private Integer maxCapacity; |
| | | } |
New file |
| | |
| | | package com.sinata.system.domain.query; |
| | | |
| | | import com.sinata.common.entity.BasePage; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * @author mitao |
| | | * @date 2024/12/12 |
| | | */ |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = true) |
| | | @ApiModel("转运箱查询数据传输对象") |
| | | public class MwBoxPageQuery extends BasePage { |
| | | |
| | | private static final long serialVersionUID = -5341744240105838832L; |
| | | @ApiModelProperty("编号-开始") |
| | | private String boxNumberStart; |
| | | |
| | | @ApiModelProperty("编号-结束") |
| | | private String boxNumberEnd; |
| | | |
| | | @ApiModelProperty("转运箱状态 1:正常 2:丢失 3:破坏") |
| | | private Integer status; |
| | | |
| | | @ApiModelProperty("转运箱环节 1:医院在用 2:医疗废物车载 3:待处置 4:处置消毒") |
| | | private Integer link; |
| | | |
| | | @ApiModelProperty("最后使用时间-开始") |
| | | private Date lastUseTimeStart; |
| | | |
| | | @ApiModelProperty("最后使用时间-结束") |
| | | private Date lastUseTimeEnd; |
| | | |
| | | } |
New file |
| | |
| | | package com.sinata.system.domain.query; |
| | | |
| | | import com.sinata.common.entity.BasePage; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | |
| | | /** |
| | | * @author mitao |
| | | * @date 2024/12/12 |
| | | */ |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = true) |
| | | @ApiModel("暂存间查询数据传输对象") |
| | | public class MwStagingRoomQuery extends BasePage { |
| | | |
| | | private static final long serialVersionUID = -4437483386027508070L; |
| | | |
| | | @ApiModelProperty("医院id") |
| | | private Long departmentId; |
| | | } |
New file |
| | |
| | | package com.sinata.system.domain.query; |
| | | |
| | | import com.sinata.common.entity.BasePage; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * @author mitao |
| | | * @date 2024/12/12 |
| | | */ |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = true) |
| | | @ApiModel("暂存间入库记录查询数据传输对象") |
| | | public class StorageRecordQuery extends BasePage { |
| | | |
| | | private static final long serialVersionUID = 3037481981686862175L; |
| | | |
| | | @ApiModelProperty("机构id") |
| | | private Long departmentId; |
| | | |
| | | @ApiModelProperty("暂存间id") |
| | | private Long stagingRoomId; |
| | | |
| | | @ApiModelProperty("医废编号") |
| | | private String medicalWasteNumber; |
| | | |
| | | @ApiModelProperty("箱子编号") |
| | | private String boxNumber; |
| | | |
| | | @ApiModelProperty("医废类型") |
| | | private Integer wasteType; |
| | | |
| | | @ApiModelProperty("入库时间") |
| | | private Date collectTime; |
| | | } |
New file |
| | |
| | | package com.sinata.system.domain.vo; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @author mitao |
| | | * @date 2024/12/11 |
| | | */ |
| | | @Data |
| | | @ApiModel("转运箱统计视图对象") |
| | | public class BoxStatisticsVO { |
| | | |
| | | @ApiModelProperty("转运箱总数") |
| | | private Integer total = 0; |
| | | |
| | | @ApiModelProperty("转运箱破坏总数") |
| | | private Long brokenCount = 0L; |
| | | |
| | | @ApiModelProperty("转运箱丢失总数") |
| | | private Long lostCount = 0L; |
| | | |
| | | @ApiModelProperty("处置消毒转运箱总数") |
| | | private Long disposeCount = 0L; |
| | | |
| | | @ApiModelProperty("医院在用转运箱总数") |
| | | private Long hospitalUsingCount = 0L; |
| | | |
| | | @ApiModelProperty("医疗废物车载转运箱总数") |
| | | private Long transitingCount = 0L; |
| | | } |
New file |
| | |
| | | package com.sinata.system.domain.vo; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * @author mitao |
| | | * @date 2024/12/12 |
| | | */ |
| | | @Data |
| | | @ApiModel("转运箱视图对象") |
| | | public class MwBoxVO { |
| | | |
| | | @ApiModelProperty("转运箱id") |
| | | private Long id; |
| | | |
| | | @ApiModelProperty("转运箱编号") |
| | | private String boxNumber; |
| | | |
| | | @ApiModelProperty("转运箱状态 1:正常 2:丢失 3:破坏") |
| | | private Integer status; |
| | | |
| | | @ApiModelProperty("最后使用时间") |
| | | private Date lastUseTime; |
| | | |
| | | @ApiModelProperty("备注") |
| | | private String remark; |
| | | |
| | | @ApiModelProperty("转运箱环节 1:医院在用 2:医疗废物车载 3:待处置 4:处置消毒") |
| | | private Integer link; |
| | | } |
New file |
| | |
| | | package com.sinata.system.domain.vo; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @author mitao |
| | | * @date 2024/12/12 |
| | | */ |
| | | @Data |
| | | @ApiModel("暂存间视图对象") |
| | | public class MwStagingRoomVO { |
| | | |
| | | @ApiModelProperty("暂存间id") |
| | | private Long id; |
| | | |
| | | @ApiModelProperty("区域id(医院id)") |
| | | private Long departmentId; |
| | | |
| | | @ApiModelProperty("医院名称") |
| | | private String hospitalName; |
| | | |
| | | @ApiModelProperty("暂存间名称") |
| | | private String roomName; |
| | | |
| | | @ApiModelProperty("最大容量(箱)") |
| | | private Integer maxCapacity; |
| | | |
| | | @ApiModelProperty("已使用数量") |
| | | private Integer usedNum; |
| | | |
| | | @ApiModelProperty("未使用数量") |
| | | private Integer unused; |
| | | |
| | | @ApiModelProperty("添加时间") |
| | | private String createTime; |
| | | } |
| | |
| | | package com.sinata.system.mapper; |
| | | |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.sinata.system.domain.MwStagingRoom; |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.sinata.system.domain.vo.MwStagingRoomVO; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | */ |
| | | @Mapper |
| | | public interface MwStagingRoomMapper extends BaseMapper<MwStagingRoom> { |
| | | |
| | | /** |
| | | * 暂存间分页列表 |
| | | * |
| | | * @param objectPage |
| | | * @param departmentId |
| | | * @param treeCode |
| | | * @return |
| | | */ |
| | | Page<MwStagingRoomVO> pagelist(Page<Object> objectPage, @Param("departmentId") Long departmentId, @Param("treeCode") String treeCode); |
| | | } |
| | |
| | | package com.sinata.system.service; |
| | | |
| | | import com.sinata.common.entity.PageDTO; |
| | | import com.sinata.system.domain.MwBox; |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.sinata.system.domain.dto.MwBoxDTO; |
| | | import com.sinata.system.domain.query.MwBoxPageQuery; |
| | | import com.sinata.system.domain.vo.BoxStatisticsVO; |
| | | import com.sinata.system.domain.vo.MwBoxVO; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | * @since 2024-12-02 |
| | | */ |
| | | public interface MwBoxService extends IService<MwBox> { |
| | | /** |
| | | * 转运箱数据统计 |
| | | * |
| | | * @return |
| | | */ |
| | | BoxStatisticsVO getBoxStatistics(); |
| | | |
| | | /** |
| | | * 转运箱分页列表 |
| | | * |
| | | * @param query |
| | | * @return |
| | | */ |
| | | PageDTO<MwBoxVO> pageList(MwBoxPageQuery query); |
| | | |
| | | /** |
| | | * 新增转运箱 |
| | | * |
| | | * @param boxNumberStart |
| | | * @param boxNumberEnd |
| | | * @return |
| | | */ |
| | | void add(String boxNumberStart, String boxNumberEnd); |
| | | |
| | | /** |
| | | * 编辑转运箱状态 |
| | | * |
| | | * @param dtoList |
| | | * @return |
| | | */ |
| | | void editBatch(List<MwBoxDTO> dtoList); |
| | | } |
| | |
| | | package com.sinata.system.service; |
| | | |
| | | import com.sinata.common.entity.PageDTO; |
| | | import com.sinata.system.domain.MwStagingRoom; |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.sinata.system.domain.dto.MwStagingRoomDTO; |
| | | import com.sinata.system.domain.query.MwStagingRoomQuery; |
| | | import com.sinata.system.domain.query.StorageRecordQuery; |
| | | import com.sinata.system.domain.vo.MwCollectRecordVO; |
| | | import com.sinata.system.domain.vo.MwStagingRoomVO; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | * @since 2024-12-02 |
| | | */ |
| | | public interface MwStagingRoomService extends IService<MwStagingRoom> { |
| | | /** |
| | | * 暂存间分页列表 |
| | | * |
| | | * @param query |
| | | * @return |
| | | */ |
| | | PageDTO<MwStagingRoomVO> pageList(MwStagingRoomQuery query); |
| | | |
| | | /** |
| | | * 新增暂存间 |
| | | * |
| | | * @param dto |
| | | * @return |
| | | */ |
| | | void add(MwStagingRoomDTO dto); |
| | | |
| | | /** |
| | | * 编辑暂存间 |
| | | * |
| | | * @param dto |
| | | * @return |
| | | */ |
| | | void edit(MwStagingRoomDTO dto); |
| | | |
| | | /** |
| | | * 根据医院id查询暂存间 |
| | | * |
| | | * @param departmentId |
| | | * @return |
| | | */ |
| | | MwStagingRoomVO getByHospitalId(Long departmentId); |
| | | |
| | | /** |
| | | * 暂存间入库记录 |
| | | * |
| | | * @param query |
| | | * @return |
| | | */ |
| | | PageDTO<MwCollectRecordVO> storageRecord(StorageRecordQuery query); |
| | | } |
| | |
| | | package com.sinata.system.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.sinata.common.entity.PageDTO; |
| | | import com.sinata.common.enums.BoxProcessEnum; |
| | | import com.sinata.common.enums.BoxStatusEnum; |
| | | import com.sinata.common.exception.ServiceException; |
| | | import com.sinata.common.utils.BeanUtils; |
| | | import com.sinata.common.utils.CollUtils; |
| | | import com.sinata.common.utils.StringUtils; |
| | | import com.sinata.system.domain.MwBox; |
| | | import com.sinata.system.domain.dto.MwBoxDTO; |
| | | import com.sinata.system.domain.query.MwBoxPageQuery; |
| | | import com.sinata.system.domain.vo.BoxStatisticsVO; |
| | | import com.sinata.system.domain.vo.MwBoxVO; |
| | | import com.sinata.system.mapper.MwBoxMapper; |
| | | import com.sinata.system.service.MwBoxService; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import org.springframework.dao.DuplicateKeyException; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | */ |
| | | @Service |
| | | public class MwBoxServiceImpl extends ServiceImpl<MwBoxMapper, MwBox> implements MwBoxService { |
| | | /** |
| | | * 转运箱数据统计 |
| | | * |
| | | * @return |
| | | */ |
| | | @Override |
| | | public BoxStatisticsVO getBoxStatistics() { |
| | | BoxStatisticsVO boxStatisticsVO = new BoxStatisticsVO(); |
| | | List<MwBox> boxList = this.list(); |
| | | if (CollUtils.isNotEmpty(boxList)) { |
| | | boxStatisticsVO.setTotal(boxList.size()); |
| | | boxStatisticsVO.setBrokenCount(boxList.stream().filter(box -> BoxStatusEnum.BROKEN.getCode().equals(box.getStatus())).count()); |
| | | boxStatisticsVO.setLostCount(boxList.stream().filter(box -> BoxStatusEnum.LOST.getCode().equals(box.getStatus())).count()); |
| | | boxStatisticsVO.setDisposeCount(boxList.stream().filter(box -> BoxProcessEnum.DISPOSAL.getCode().equals(box.getStatus())).count()); |
| | | boxStatisticsVO.setHospitalUsingCount(boxList.stream().filter(box -> BoxProcessEnum.HOSPITAL_USING.getCode().equals(box.getStatus())).count()); |
| | | boxStatisticsVO.setTransitingCount(boxList.stream().filter(box -> BoxProcessEnum.TRANSITING.getCode().equals(box.getStatus())).count()); |
| | | } |
| | | return boxStatisticsVO; |
| | | } |
| | | |
| | | /** |
| | | * 转运箱分页列表 |
| | | * |
| | | * @param query |
| | | * @return |
| | | */ |
| | | @Override |
| | | public PageDTO<MwBoxVO> pageList(MwBoxPageQuery query) { |
| | | Page<MwBox> page = this.lambdaQuery() |
| | | .between(StringUtils.isNotBlank(query.getBoxNumberStart()) |
| | | && StringUtils.isNotBlank(query.getBoxNumberEnd()), |
| | | MwBox::getBoxNumber, query.getBoxNumberStart(), query.getBoxNumberEnd()) |
| | | .eq(Objects.nonNull(query.getStatus()), MwBox::getStatus, query.getStatus()) |
| | | .eq(Objects.nonNull(query.getLink()), MwBox::getLink, query.getLink()) |
| | | .between(Objects.nonNull(query.getLastUseTimeStart()) |
| | | && Objects.nonNull(query.getLastUseTimeEnd()), |
| | | MwBox::getLastUseTime, query.getLastUseTimeStart(), query.getLastUseTimeEnd()) |
| | | .orderByDesc(MwBox::getBoxNumber) |
| | | .page(new Page<>(query.getPageCurr(), query.getPageSize())); |
| | | return PageDTO.of(page, MwBoxVO.class); |
| | | } |
| | | |
| | | /** |
| | | * 新增转运箱 |
| | | * |
| | | * @param boxNumberStart |
| | | * @param boxNumberEnd |
| | | * @return |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void add(String boxNumberStart, String boxNumberEnd) { |
| | | String regx = "\\d+"; |
| | | if (boxNumberStart.length() != 11 || boxNumberEnd.length() != 11 || !boxNumberStart.matches(regx) || !boxNumberEnd.matches(regx)) { |
| | | throw new ServiceException("请输入有效的11位数字编号!"); |
| | | } |
| | | BigDecimal start = new BigDecimal(boxNumberStart); |
| | | BigDecimal end = new BigDecimal(boxNumberEnd); |
| | | if (start.compareTo(end) > 0) { |
| | | throw new ServiceException("开始编号不能大于结束编号"); |
| | | } |
| | | List<MwBox> boxList = new ArrayList<>(); |
| | | for (BigDecimal i = start; i.compareTo(end) <= 0; i = i.add(BigDecimal.ONE)) { |
| | | MwBox mwBox = new MwBox(); |
| | | mwBox.setBoxNumber(i.toString()); |
| | | mwBox.setStatus(BoxStatusEnum.NORMAL.getCode()); |
| | | boxList.add(mwBox); |
| | | } |
| | | try { |
| | | this.saveBatch(boxList); |
| | | } catch (DuplicateKeyException e) { |
| | | throw new ServiceException("转运箱编号重复"); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 编辑转运箱状态 |
| | | * |
| | | * @param dto |
| | | * @return |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void editBatch(List<MwBoxDTO> dtoList) { |
| | | List<MwBox> mwBoxes = BeanUtils.copyToList(dtoList, MwBox.class); |
| | | this.updateBatchById(mwBoxes); |
| | | } |
| | | } |
| | |
| | | package com.sinata.system.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.sinata.common.entity.PageDTO; |
| | | import com.sinata.common.exception.ServiceException; |
| | | import com.sinata.common.utils.BeanUtils; |
| | | import com.sinata.system.domain.MwStagingRoom; |
| | | import com.sinata.system.domain.SysDepartment; |
| | | import com.sinata.system.domain.dto.MwStagingRoomDTO; |
| | | import com.sinata.system.domain.query.MwStagingRoomQuery; |
| | | import com.sinata.system.domain.query.StorageRecordQuery; |
| | | import com.sinata.system.domain.vo.MwCollectRecordVO; |
| | | import com.sinata.system.domain.vo.MwStagingRoomVO; |
| | | import com.sinata.system.mapper.MwStagingRoomMapper; |
| | | import com.sinata.system.service.MwStagingRoomService; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.sinata.system.service.SysDepartmentService; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | * @since 2024-12-02 |
| | | */ |
| | | @Service |
| | | @RequiredArgsConstructor |
| | | public class MwStagingRoomServiceImpl extends ServiceImpl<MwStagingRoomMapper, MwStagingRoom> implements MwStagingRoomService { |
| | | private final SysDepartmentService sysDepartmentService; |
| | | |
| | | /** |
| | | * 暂存间分页列表 |
| | | * |
| | | * @param query |
| | | * @return |
| | | */ |
| | | @Override |
| | | public PageDTO<MwStagingRoomVO> pageList(MwStagingRoomQuery query) { |
| | | String treeCode = ""; |
| | | if (Objects.nonNull(query.getDepartmentId())) { |
| | | SysDepartment department = sysDepartmentService.getById(query.getDepartmentId()); |
| | | if (Objects.isNull(department)) { |
| | | return PageDTO.empty(0L, 0L); |
| | | } |
| | | treeCode = department.getTreeCode(); |
| | | } |
| | | Page<MwStagingRoomVO> page = baseMapper.pagelist(new Page<>(query.getPageCurr(), query.getPageSize()), query.getDepartmentId(), treeCode); |
| | | return PageDTO.of(page); |
| | | } |
| | | |
| | | /** |
| | | * 新增暂存间 |
| | | * |
| | | * @param dto |
| | | * @return |
| | | */ |
| | | @Override |
| | | public void add(MwStagingRoomDTO dto) { |
| | | MwStagingRoom mwStagingRoom = BeanUtils.copyBean(dto, MwStagingRoom.class); |
| | | Long count = this.lambdaQuery().eq(MwStagingRoom::getDepartmentId, mwStagingRoom.getDepartmentId()).count(); |
| | | if (count > 0) { |
| | | throw new ServiceException("当前医院已存在暂存间,请勿重复添加"); |
| | | } |
| | | save(mwStagingRoom); |
| | | } |
| | | |
| | | /** |
| | | * 编辑暂存间 |
| | | * |
| | | * @param dto |
| | | * @return |
| | | */ |
| | | @Override |
| | | public void edit(MwStagingRoomDTO dto) { |
| | | if (Objects.isNull(dto.getId())) { |
| | | throw new ServiceException("暂存间id不能为空"); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 根据医院id查询暂存间 |
| | | * |
| | | * @param departmentId |
| | | * @return |
| | | */ |
| | | @Override |
| | | public MwStagingRoomVO getByHospitalId(Long departmentId) { |
| | | MwStagingRoom one = this.lambdaQuery().eq(MwStagingRoom::getDepartmentId, departmentId).one(); |
| | | return BeanUtils.copyBean(one, MwStagingRoomVO.class); |
| | | } |
| | | |
| | | /** |
| | | * 暂存间入库记录 |
| | | * |
| | | * @param query |
| | | * @return |
| | | */ |
| | | @Override |
| | | public PageDTO<MwCollectRecordVO> storageRecord(StorageRecordQuery query) { |
| | | return null; |
| | | } |
| | | } |
| | |
| | | UPDATE_TIME, |
| | | ID, DEPARTMENT_ID, ROOM_NAME, MAX_CAPACITY |
| | | </sql> |
| | | <select id="pagelist" resultType="com.sinata.system.domain.vo.MwStagingRoomVO"> |
| | | SELECT msr.ID, |
| | | msr.DEPARTMENT_ID, |
| | | msr.ROOM_NAME, |
| | | msr.MAX_CAPACITY, |
| | | msr.CREATE_TIME, |
| | | COUNT(mr.ID) AS usedNum, |
| | | (msr.MAX_CAPACITY - COUNT(mr.ID)) AS unUsedNum, |
| | | sd.DEPARTMENT_NAME AS hospitalName |
| | | FROM MW_STAGING_ROOM msr |
| | | LEFT JOIN (SELECT ID, |
| | | BOX_ID, |
| | | STAGING_ROOM_ID |
| | | FROM MW_COLLECT_RECORD |
| | | WHERE STATUS != 4 |
| | | GROUP BY BOX_ID) mr |
| | | ON msr.ID = mr.STAGING_ROOM_ID |
| | | LEFT JOIN SYS_DEPARTMENT sd ON msr.DEPARTMENT_ID = sd.ID |
| | | <where> |
| | | <if test="departmentId != null and departmentId != ''"> |
| | | msr.DEPARTMENT_ID = #{departmentId} |
| | | </if> |
| | | <if test="treeCode != null and treeCode != ''"> |
| | | sd.TREE_CODE LIKE CONCAT('%', #{tree}) |
| | | </if> |
| | | </where> |
| | | </select> |
| | | |
| | | </mapper> |