BillPcrServiceImpl.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. package com.huimv.admin.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.baomidou.mybatisplus.core.toolkit.StringUtils;
  4. import com.huimv.admin.common.token.TokenSign;
  5. import com.huimv.admin.common.utils.Result;
  6. import com.huimv.admin.common.utils.ResultCode;
  7. import com.huimv.admin.entity.BaseLocation;
  8. import com.huimv.admin.entity.BaseProcess;
  9. import com.huimv.admin.entity.BillClean;
  10. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  11. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  12. import com.huimv.admin.common.token.TokenSign;
  13. import com.huimv.admin.common.utils.Result;
  14. import com.huimv.admin.common.utils.ResultCode;
  15. import com.huimv.admin.entity.BillPcr;
  16. import com.huimv.admin.mapper.BaseLocationMapper;
  17. import com.huimv.admin.mapper.BaseProcessMapper;
  18. import com.huimv.admin.mapper.BillCleanMapper;
  19. import com.huimv.admin.mapper.BillPcrMapper;
  20. import com.huimv.admin.service.IBillPcrService;
  21. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  22. import org.springframework.beans.factory.annotation.Autowired;
  23. import org.springframework.stereotype.Service;
  24. import javax.servlet.http.HttpServletRequest;
  25. import java.text.ParseException;
  26. import java.text.SimpleDateFormat;
  27. import java.util.Date;
  28. import java.util.List;
  29. import java.util.Map;
  30. import javax.annotation.Resource;
  31. import javax.servlet.http.HttpServletRequest;
  32. import java.util.Map;
  33. /**
  34. * <p>
  35. * pcr 表 服务实现类
  36. * </p>
  37. *
  38. * @author author
  39. * @since 2023-07-21
  40. */
  41. @Service
  42. public class BillPcrServiceImpl extends ServiceImpl<BillPcrMapper, BillPcr> implements IBillPcrService {
  43. @Resource
  44. private BillPcrMapper billPcrMapper;
  45. @Override
  46. public Result listPersonalPcr(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
  47. String pageNo = paramsMap.get("pageNum");
  48. String pageSize = paramsMap.get("pageSize");
  49. Page<BillPcr> page = new Page<>(Integer.parseInt(pageNo),Integer.parseInt(pageSize));
  50. Page<BillPcr> billPcrPage = billPcrMapper.selectPage(page, new QueryWrapper<BillPcr>().eq("admission_user_id", TokenSign.getMemberIdByJwtToken(httpServletRequest)).orderByDesc("sub_date"));
  51. return new Result(ResultCode.SUCCESS,billPcrPage);
  52. }
  53. @Autowired
  54. private BillPcrMapper pcrMapper;
  55. @Autowired
  56. private BaseProcessMapper processMapper;
  57. @Autowired
  58. private BaseLocationMapper locationMapper;
  59. @Autowired
  60. private BillCleanMapper cleanMapper;
  61. @Override
  62. public Result list(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
  63. String farmId = paramsMap.get("farmId");
  64. String type = paramsMap.get("type");//展示类型
  65. QueryWrapper<BillPcr> queryWrapper = new QueryWrapper<>();
  66. queryWrapper.eq("farm_id", farmId).eq("test_location_id",TokenSign.getWorkIdByJwtToken(httpServletRequest));
  67. if ("".equals(type) || null == type) {
  68. queryWrapper.eq("pcr_type", 0);
  69. } else if (type.equals("3")) {
  70. queryWrapper.eq("pcr_type", 0).in("bill_status", 2, 3);
  71. } else {
  72. queryWrapper.eq("pcr_type", 0).eq("bill_status", type);
  73. }
  74. List<BillPcr> billPcrs = pcrMapper.selectList(queryWrapper);
  75. return new Result(ResultCode.SUCCESS, billPcrs);
  76. }
  77. @Override
  78. public Result listById(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
  79. String id = paramsMap.get("id");
  80. BillPcr billPcr = pcrMapper.selectById(id);
  81. return new Result(ResultCode.SUCCESS, billPcr);
  82. }
  83. @Override
  84. public Result edit(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) throws ParseException {
  85. String result = paramsMap.get("result");//1为合格2为异常
  86. String id = paramsMap.get("id");
  87. String farmId = paramsMap.get("farmId");
  88. String date = paramsMap.get("date");
  89. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  90. if (StringUtils.isBlank(date)) {
  91. date = sdf.format(new Date());
  92. }
  93. BillPcr billPcr = pcrMapper.selectById(id);
  94. QueryWrapper<BaseProcess> processQueryWrapper = new QueryWrapper<>();
  95. processQueryWrapper.eq("farm_id", farmId).eq("id", billPcr.getProcessId());
  96. BaseProcess baseProcess = processMapper.selectOne(processQueryWrapper);//进程
  97. QueryWrapper<BaseLocation> locationQueryWrapper = new QueryWrapper<>();
  98. locationQueryWrapper.eq("farm_id", farmId).eq("id", billPcr.getTestLocationId());
  99. BaseLocation baseLocation = locationMapper.selectOne(locationQueryWrapper);//当前pcr检测所在的位置
  100. if (baseProcess.getProcessType() == 2 || baseProcess.getProcessType() == 1) {
  101. return new Result(10001, "修改失败!该申请已提前结束或者被拒绝", false);
  102. } else {
  103. if (billPcr.getDestId() > billPcr.getTestLocationId()) { //说明当前不是目的地
  104. if ("1".equals(result)) {
  105. billPcr.setBillStatus(1);
  106. billPcr.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
  107. billPcr.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
  108. billPcr.setTestLocation(baseLocation.getLocationName());
  109. billPcr.setTestLocationId(baseLocation.getId());
  110. billPcr.setCheckDate(sdf.parse(date));
  111. billPcr.setPassDate(sdf.parse(sdf.format(new Date())));
  112. //通过生成洗消记录
  113. BillClean billClean = new BillClean();
  114. billClean.setVistitType(billPcr.getVistitType());
  115. billClean.setDestName(billPcr.getDestName());
  116. billClean.setDestId(billPcr.getDestId());
  117. billClean.setAdmissionUserName(billPcr.getAdmissionUserName());
  118. billClean.setAdmissionUserId(billPcr.getAdmissionUserId());
  119. billClean.setVistitDate(billPcr.getVistitDate());
  120. billClean.setSubDate(billPcr.getSubDate());
  121. billClean.setFarmId(billPcr.getFarmId());
  122. billClean.setPassUserName(billPcr.getPassUserName());
  123. billClean.setPassDate(billPcr.getPassDate());
  124. billClean.setPassUserId(billPcr.getPassUserId());
  125. billClean.setProcessId(billPcr.getProcessId());
  126. billClean.setTestLocation(baseLocation.getNextLocation());
  127. billClean.setTestLocationId(baseLocation.getNextId());
  128. cleanMapper.insert(billClean);
  129. baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," +sdf.format(new Date()));
  130. baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() + "," + billPcr.getTestLocation());
  131. baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() + "," + billPcr.getTestLocationId());
  132. String status = baseProcess.getCurrentStatus();
  133. String substring = status.substring(0, status.length() - 1);
  134. baseProcess.setCurrentStatus(substring + "1," + 0);
  135. processMapper.updateById(baseProcess);
  136. pcrMapper.updateById(billPcr);
  137. return new Result(10000, "修改成功!", true);
  138. } else {
  139. billPcr.setBillStatus(2);
  140. billPcr.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
  141. billPcr.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
  142. billPcr.setTestLocation(baseLocation.getLocationName());
  143. billPcr.setTestLocationId(baseLocation.getId());
  144. billPcr.setCheckDate(sdf.parse(date));
  145. billPcr.setPassDate(sdf.parse(sdf.format(new Date())));
  146. baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
  147. baseProcess.setCurrentLocation(baseProcess.getCurrentLocation());
  148. baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId());
  149. String status = baseProcess.getCurrentStatus();
  150. String substring = status.substring(0, status.length() - 1);
  151. baseProcess.setCurrentStatus(substring + "2");
  152. if (baseLocation.getId() == 2) {
  153. //第一次检测不合格
  154. billPcr.setPcrType(1);
  155. }
  156. if (baseLocation.getId() == 6) {
  157. //第二次检测不合格
  158. baseProcess.setProcessType(2);
  159. }
  160. if (baseLocation.getId() == 11) {
  161. //第三次不合格
  162. baseProcess.setProcessType(2);
  163. }
  164. processMapper.updateById(baseProcess);
  165. pcrMapper.updateById(billPcr);
  166. return new Result(10000, "修改成功!", true);
  167. }
  168. } else {
  169. if ("1".equals(result)) {
  170. billPcr.setBillStatus(1);
  171. billPcr.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
  172. billPcr.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
  173. billPcr.setTestLocation(baseLocation.getLocationName());
  174. billPcr.setTestLocationId(baseLocation.getId());
  175. billPcr.setCheckDate(sdf.parse(date));
  176. billPcr.setPassDate(sdf.parse(sdf.format(new Date())));
  177. baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
  178. baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() );
  179. baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId());
  180. String status = baseProcess.getCurrentStatus();
  181. String substring = status.substring(0, status.length() - 1);
  182. baseProcess.setCurrentStatus(substring + "1");
  183. baseProcess.setProcessType(1);
  184. processMapper.updateById(baseProcess);
  185. pcrMapper.updateById(billPcr);
  186. return new Result(10000, "修改成功!", true);
  187. } else {
  188. if (baseLocation.getId() == 2) {
  189. //第一次检测不合格
  190. billPcr.setPcrType(1);
  191. baseProcess.setProcessType(2);
  192. } else {
  193. baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," +sdf.format(new Date()));
  194. baseProcess.setProcessType(2);
  195. }
  196. baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," +sdf.format(new Date()));
  197. baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() );
  198. baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId());
  199. String status = baseProcess.getCurrentStatus();
  200. String substring = status.substring(0, status.length() - 1);
  201. baseProcess.setCurrentStatus(substring + "2");
  202. billPcr.setBillStatus(2);
  203. billPcr.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
  204. billPcr.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
  205. billPcr.setTestLocation(baseLocation.getLocationName());
  206. billPcr.setTestLocationId(baseLocation.getId());
  207. billPcr.setCheckDate(sdf.parse(date));
  208. billPcr.setPassDate(sdf.parse(sdf.format(new Date())));
  209. processMapper.updateById(baseProcess);
  210. pcrMapper.updateById(billPcr);
  211. return new Result(10000, "修改成功!", true);
  212. }
  213. }
  214. }
  215. }
  216. private void xiugaiPro(BaseProcess baseProcess,BillPcr billPcr) {
  217. baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + new Date());
  218. baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() + "," + billPcr.getTestLocation());
  219. baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() + "," + billPcr.getTestLocationId());
  220. baseProcess.setCurrentStatus(baseProcess.getCurrentStatus() + "," + 2);
  221. }
  222. }