BillPersonnelAdmissionServiceImpl.java 101 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938
  1. package com.huimv.receive.service.impl;
  2. import cn.hutool.core.bean.BeanUtil;
  3. import cn.hutool.core.date.DateTime;
  4. import cn.hutool.core.io.FileUtil;
  5. import cn.hutool.core.util.ObjectUtil;
  6. import cn.hutool.http.Header;
  7. import cn.hutool.http.HttpRequest;
  8. import com.alibaba.fastjson.JSON;
  9. import com.alibaba.fastjson.JSONArray;
  10. import com.alibaba.fastjson.JSONException;
  11. import com.alibaba.fastjson.JSONObject;
  12. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  13. import com.baomidou.mybatisplus.core.metadata.IPage;
  14. import com.baomidou.mybatisplus.core.toolkit.StringUtils;
  15. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  16. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  17. import com.fasterxml.jackson.core.type.TypeReference;
  18. import com.fasterxml.jackson.databind.ObjectMapper;
  19. import com.huimv.receive.common.token.TokenSign;
  20. import com.huimv.receive.common.utils.*;
  21. import com.huimv.receive.entity.*;
  22. import com.huimv.receive.entity.vo.*;
  23. import com.huimv.receive.mapper.*;
  24. import com.huimv.receive.service.IBillPersonnelAdmissionService;
  25. import org.springframework.beans.factory.annotation.Autowired;
  26. import org.springframework.stereotype.Service;
  27. import org.springframework.transaction.annotation.Transactional;
  28. import org.springframework.transaction.interceptor.TransactionAspectSupport;
  29. import org.springframework.web.multipart.MultipartFile;
  30. import javax.annotation.Resource;
  31. import javax.servlet.http.HttpServletRequest;
  32. import javax.servlet.http.HttpServletResponse;
  33. import java.io.FileOutputStream;
  34. import java.io.IOException;
  35. import java.io.InputStream;
  36. import java.net.HttpURLConnection;
  37. import java.net.MalformedURLException;
  38. import java.net.ProtocolException;
  39. import java.net.URL;
  40. import java.text.ParseException;
  41. import java.text.SimpleDateFormat;
  42. import java.time.LocalDateTime;
  43. import java.time.format.DateTimeFormatter;
  44. import java.util.*;
  45. /**
  46. * <p>
  47. * 入场申请 服务实现类
  48. * </p>
  49. *
  50. * @author author
  51. * @since 2023-07-21
  52. */
  53. @Service
  54. public class BillPersonnelAdmissionServiceImpl extends ServiceImpl<BillPersonnelAdmissionMapper, BillPersonnelAdmission> implements IBillPersonnelAdmissionService {
  55. @Resource
  56. private BillPersonnelAdmissionMapper billPersonnelAdmissionMapper;
  57. @Resource
  58. private BaseProcessMapper baseProcessMapper;
  59. @Resource
  60. private BillPcrMapper billPcrMapper;
  61. @Resource
  62. private BaseLocationMapper baseLocationMapper;
  63. @Resource
  64. private BillIsolateMapper billIsolateMapper;
  65. @Resource
  66. private BillCleanMapper billCleanMapper;
  67. @Resource
  68. private SysAccountMultilevelMapper sysAccountMultilevelMapper;
  69. @Autowired
  70. private UploadImage uploadImage;
  71. @Autowired
  72. private BillDryMapper dryMapper;
  73. @Resource
  74. private BillGoodsInventoryMapper billGoodsInventoryMapper;
  75. @Resource
  76. private ExistMapper existMapper;
  77. @Autowired
  78. private BillGateMapper gateMapper;
  79. @Autowired
  80. private BillAccessDoorMapper doorMapper;
  81. @Autowired
  82. private DeviceListMapper deviceListMapper;
  83. @Autowired
  84. private PeopleListMapper peopleListMapper;
  85. @Override
  86. @Transactional(rollbackFor = Exception.class)
  87. public Result addAdmission(HttpServletRequest httpServletRequest, String admissionType, String vistitType, String userName, String phone, String workName, String papersType, String papersCode, MultipartFile imgUrl, String img, String vistitDate, String vistitReson, String destId, String destName, String farmId, String carNum, String source, String goods) throws IOException {
  88. Integer userId = TokenSign.getMemberIdByJwtToken(httpServletRequest);
  89. if (!PhoneNumberValidator.isValidPhoneNumber(phone)) {
  90. return new Result(10001, "手机号格式错误!", false);
  91. }
  92. if (papersType.equals("0")) {
  93. if (!IDCardValidator.isValidIDCard(papersCode)) {
  94. return new Result(10001, "身份证号格式错误!", false);
  95. }
  96. }
  97. SysAccountMultilevel sysAccountMultilevel1 = sysAccountMultilevelMapper.selectById(userId);
  98. DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
  99. BillPersonnelAdmission billPersonnelAdmission = new BillPersonnelAdmission();
  100. billPersonnelAdmission.setAdmissionType(Integer.parseInt(admissionType));
  101. billPersonnelAdmission.setVistitType(Integer.parseInt(vistitType));
  102. billPersonnelAdmission.setDestId(Integer.parseInt(destId));
  103. billPersonnelAdmission.setDestName(destName);
  104. billPersonnelAdmission.setAdmissionUserId(userId);
  105. billPersonnelAdmission.setAdmissionUserName(userName);
  106. billPersonnelAdmission.setVistitDate(LocalDateTime.parse(vistitDate, dateTimeFormatter));
  107. billPersonnelAdmission.setSubDate(LocalDateTime.now());
  108. billPersonnelAdmission.setPhone(phone);
  109. billPersonnelAdmission.setWorkName(workName);
  110. billPersonnelAdmission.setPapersType(Integer.parseInt(papersType));
  111. billPersonnelAdmission.setPapersCode(papersCode);
  112. billPersonnelAdmission.setUserImgUrl(sysAccountMultilevel1.getImgUrl());
  113. if (ObjectUtil.isNotEmpty(carNum)) {
  114. billPersonnelAdmission.setCarNum(carNum);
  115. }
  116. if (ObjectUtil.isNotEmpty(imgUrl)) {
  117. if (uploadImage.getImageCom(imgUrl).equals("上传失败")) {
  118. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  119. return new Result(10001, "图片上传失败", false);
  120. }
  121. billPersonnelAdmission.setImgUrl(uploadImage.getImageCom(imgUrl));
  122. }
  123. if (ObjectUtil.isNotEmpty(img)) {
  124. billPersonnelAdmission.setImgUrl(img);
  125. }
  126. if (ObjectUtil.isNotEmpty(source)) {
  127. billPersonnelAdmission.setSource(source);
  128. }
  129. billPersonnelAdmission.setVistitReson(vistitReson);
  130. billPersonnelAdmission.setFarmId(Integer.parseInt(farmId));
  131. BaseProcess baseProcess = new BaseProcess();
  132. baseProcess.setDestName(destName);
  133. baseProcess.setDestId(Integer.parseInt(destId));
  134. baseProcess.setAdmissionUserId(userId);
  135. baseProcess.setAdmissionUserName(userName);
  136. baseProcess.setSubDate(DateTime.now());
  137. baseProcess.setUpdateDate(LocalDateTime.now().format(dateTimeFormatter));
  138. baseProcess.setCurrentStatus("0");
  139. QueryWrapper<BaseLocation> queryWrapper = new QueryWrapper<>();
  140. QueryWrapper<Exist> existQueryWrapper = new QueryWrapper<>();
  141. existQueryWrapper.eq("farm_id", farmId);
  142. Exist exist = existMapper.selectOne(existQueryWrapper);
  143. if (vistitType.equals("5") && exist.getExist() == 0) {
  144. if (destId.equals("9")) {
  145. baseProcess.setAllLocationStatus("1,0");
  146. baseProcess.setAllLocation("场外,初级洗消站");
  147. baseProcess.setAllLocationId("26,9");
  148. } else if (destId.equals("10")) {
  149. baseProcess.setAllLocationId("9,10");
  150. baseProcess.setAllLocation("初级洗消站,二级洗消站");
  151. baseProcess.setAllLocationStatus("1,0");
  152. } else if (destId.equals("11")) {
  153. baseProcess.setAllLocationId("10,11");
  154. baseProcess.setAllLocation("二级洗消站,三级洗消站");
  155. baseProcess.setAllLocationStatus("1,0");
  156. }
  157. } else if (vistitType.equals("5") && exist.getExist() == 1) {
  158. if (destId.equals("9")) {
  159. baseProcess.setAllLocationStatus("1,0");
  160. baseProcess.setAllLocation("场外,初级洗消站");
  161. baseProcess.setAllLocationId("26,9");
  162. }
  163. } else {
  164. queryWrapper.eq("vistit_type", vistitType).orderByAsc("location_type");
  165. List<BaseLocation> baseLocations = baseLocationMapper.selectList(queryWrapper);
  166. if (admissionType.equals("1")) {
  167. baseProcess.setAllLocation("场外," + destName);
  168. QueryWrapper<BaseLocation> queryWrapper1 = new QueryWrapper<>();
  169. queryWrapper1.eq("vistit_type", vistitType).eq("location_type", 0);
  170. baseProcess.setAllLocationId(baseLocationMapper.selectOne(queryWrapper1).getId() + "," + destId);
  171. baseProcess.setAllLocationStatus("1,0");
  172. } else {
  173. if (vistitType.equals("0") && exist.getExist() == 1 && Integer.parseInt(destId) > 3) {
  174. if (Integer.parseInt(destId) == 4) {
  175. baseProcess.setAllLocation("场外,人员初级洗消站,净区,场内");
  176. baseProcess.setAllLocationId("20,1,2,4");
  177. baseProcess.setAllLocationStatus("1,0,0,0");
  178. } else {
  179. baseProcess.setAllLocation("场外,人员初级洗消站,净区,场内,生产区");
  180. baseProcess.setAllLocationId("20,1,2,4,5");
  181. baseProcess.setAllLocationStatus("1,0,0,0,0");
  182. }
  183. } else if (vistitType.equals("3") && exist.getExist() == 1 && Integer.parseInt(destId) > 7) {
  184. baseProcess.setAllLocation("场外,车辆初级洗消站,中转料塔外围");
  185. baseProcess.setAllLocationId("20,6,8");
  186. baseProcess.setAllLocationStatus("1,0,0");
  187. } else {
  188. String allLocation = "";
  189. String allLocationId = "";
  190. String allLocationStatus = "";
  191. for (BaseLocation baseLocation : baseLocations) {
  192. if (baseLocation.getId() < Integer.parseInt(destId) || baseLocation.getId() >= 20) {
  193. allLocation = allLocation + baseLocation.getLocationName() + ",";
  194. allLocationId = allLocationId + baseLocation.getId() + ",";
  195. allLocationStatus = allLocationStatus + "0" + ",";
  196. }
  197. if (baseLocation.getId() == Integer.parseInt(destId)) {
  198. allLocation = allLocation + baseLocation.getLocationName();
  199. allLocationId = allLocationId + baseLocation.getId();
  200. allLocationStatus = allLocationStatus + "0";
  201. }
  202. }
  203. baseProcess.setAllLocation(allLocation);
  204. baseProcess.setAllLocationId(allLocationId);
  205. String[] split = allLocationStatus.split(",");
  206. split[0] = "1";
  207. baseProcess.setAllLocationStatus(split[0] + allLocationStatus.substring(1));
  208. }
  209. }
  210. }
  211. //获取位置
  212. BaseLocation baseLocation;
  213. if (vistitType.equals("5")) {
  214. baseLocation = baseLocationMapper.selectById(destId);
  215. } else {
  216. baseLocation = baseLocationMapper.selectOne(new QueryWrapper<BaseLocation>().eq("vistit_type", vistitType).eq("parent_id", 0));
  217. }
  218. if (ObjectUtil.isEmpty(baseLocation)) {
  219. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  220. return new Result(10001, "该来访类型位置不存在", false);
  221. }
  222. baseProcess.setCurrentLocation(baseLocation.getLocationName());
  223. baseProcess.setCurrentLocationId(baseLocation.getId().toString());
  224. baseProcess.setFarmId(Integer.parseInt(farmId));
  225. baseProcessMapper.insert(baseProcess);
  226. billPersonnelAdmission.setProcessId(baseProcess.getId());
  227. billPersonnelAdmissionMapper.insert(billPersonnelAdmission);
  228. ArrayList<String> phoneList = new ArrayList<>();
  229. List<SysAccountMultilevel> safe = sysAccountMultilevelMapper.selectList(new QueryWrapper<SysAccountMultilevel>().eq("farm_ids", farmId).eq("type", 3));
  230. for (SysAccountMultilevel sysAccountMultilevel : safe) {
  231. phoneList.add(sysAccountMultilevel.getPhone());
  232. }
  233. // SendSMS.sendSMS(phoneList,TokenSign.getUserNameByJwtToken(httpServletRequest)+"入场申请测试");
  234. if (ObjectUtil.isNotEmpty(goods)) {
  235. ObjectMapper objectMapper = new ObjectMapper();
  236. List<BillGoodsInventory> admissionAndGoods = objectMapper.readValue(goods, new TypeReference<List<BillGoodsInventory>>() {
  237. });
  238. for (BillGoodsInventory good : admissionAndGoods) {
  239. good.setBillAdmission(billPersonnelAdmission.getId());
  240. BaseLocation baseLocation1 = baseLocationMapper.selectById(destId);
  241. good.setCurrentLocation(baseLocation1.getLocationName());
  242. good.setCurrentLocationId(baseLocation1.getId());
  243. good.setCreateDate(new Date());
  244. good.setFarmId(farmId);
  245. billGoodsInventoryMapper.insert(good);
  246. }
  247. }
  248. return Result.SUCCESS();
  249. }
  250. @Override
  251. public Result listPersonalAdmission(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
  252. String farmId = paramsMap.get("farmId");
  253. String pageNo = paramsMap.get("pageNum");
  254. String pageSize = paramsMap.get("pageSize");
  255. String vistitType = paramsMap.get("vistitType");
  256. Page<BillPersonnelAdmission> page = new Page<>(Integer.parseInt(pageNo), Integer.parseInt(pageSize));
  257. QueryWrapper<BillPersonnelAdmission> queryWrapper = new QueryWrapper<>();
  258. queryWrapper.eq(StringUtils.isNotBlank(vistitType), "vistit_type", vistitType).eq("farm_id", farmId)
  259. .eq("admission_user_id", TokenSign.getMemberIdByJwtToken(httpServletRequest))
  260. .orderByDesc("sub_date");
  261. Page<BillPersonnelAdmission> billPersonnelAdmissionPage = billPersonnelAdmissionMapper.selectPage(page, new QueryWrapper<BillPersonnelAdmission>()
  262. .eq(StringUtils.isNotBlank(vistitType), "vistit_type", vistitType)
  263. .eq("admission_user_id", TokenSign.getMemberIdByJwtToken(httpServletRequest))
  264. .eq("farm_id", farmId)
  265. .orderByDesc("sub_date"));
  266. return new Result(ResultCode.SUCCESS, billPersonnelAdmissionPage, billPersonnelAdmissionMapper.selectCount(queryWrapper));
  267. }
  268. @Override
  269. public Result listAdmission(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
  270. String pageNo = paramsMap.get("pageNum");
  271. String pageSize = paramsMap.get("pageSize");
  272. String type = paramsMap.get("type");
  273. String farmId = paramsMap.get("farmId");
  274. QueryWrapper<BillPersonnelAdmission> queryWrapper = new QueryWrapper<>();
  275. Integer userType = TokenSign.getUserTypeByJwtToken(httpServletRequest);
  276. if (userType == 3) {
  277. //生物安全负责人
  278. queryWrapper.eq("admission_type", 0);
  279. } else if (userType == 2) {
  280. //紧急入场
  281. queryWrapper.ne("admission_type", 0);
  282. }
  283. switch (type) {
  284. case "1":
  285. queryWrapper.eq("bill_status", 0);
  286. break;
  287. case "2":
  288. queryWrapper.eq("bill_status", 1);
  289. break;
  290. case "3":
  291. queryWrapper.eq("bill_status", 2);
  292. break;
  293. default:
  294. break;
  295. }
  296. queryWrapper.orderByDesc("sub_date").eq("farm_id", farmId);
  297. // List<BaseLocation> baseLocations = baseLocationMapper.selectList(new QueryWrapper<BaseLocation>().eq("serial_number", 0));
  298. // List<Integer> locationIds = new ArrayList<>();
  299. // for (BaseLocation baseLocation : baseLocations) {
  300. // locationIds.add(baseLocation.getId());
  301. // }
  302. // if (!locationIds.contains(Integer.parseInt(TokenSign.getWorkIdByJwtToken(httpServletRequest)))){
  303. // queryWrapper.eq("id",0);
  304. // }
  305. Page<BillPersonnelAdmission> page = new Page<>(Integer.parseInt(pageNo), Integer.parseInt(pageSize));
  306. Page<BillPersonnelAdmission> billPersonnelAdmissionPage = billPersonnelAdmissionMapper.selectPage(page, queryWrapper);
  307. QueryWrapper<BillPersonnelAdmission> queryWrapper1 = new QueryWrapper<>();
  308. queryWrapper1.eq("farm_id", farmId);
  309. if (userType == 3) {
  310. //生物安全负责人
  311. queryWrapper1.eq("admission_type", 0);
  312. } else if (userType == 2) {
  313. //紧急入场
  314. queryWrapper1.ne("admission_type", 0);
  315. }
  316. queryWrapper1.eq("bill_status", 0);
  317. return new Result(ResultCode.SUCCESS, billPersonnelAdmissionPage, billPersonnelAdmissionMapper.selectList(queryWrapper1).size());
  318. }
  319. @Override
  320. @Transactional
  321. public Result handleAdmission(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) throws IOException {
  322. String type = paramsMap.get("type");
  323. String id = paramsMap.get("id");
  324. DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
  325. BillPersonnelAdmission billPersonnelAdmission = billPersonnelAdmissionMapper.selectById(id);
  326. Integer userType = TokenSign.getUserTypeByJwtToken(httpServletRequest);
  327. billPersonnelAdmission.setPassDate(LocalDateTime.now());
  328. billPersonnelAdmission.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
  329. billPersonnelAdmission.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
  330. BaseProcess baseProcess = baseProcessMapper.selectById(billPersonnelAdmission.getProcessId());
  331. ArrayList<String> phoneList = new ArrayList<>();
  332. phoneList.add(billPersonnelAdmission.getPhone());
  333. if (StringUtils.isBlank(baseProcess.getUpdateDate())) {
  334. baseProcess.setUpdateDate(LocalDateTime.now().format(dateTimeFormatter));
  335. } else {
  336. baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + LocalDateTime.now().format(dateTimeFormatter));
  337. }
  338. if (type.equals("0")) {
  339. String[] split = baseProcess.getCurrentStatus().split(",");
  340. split[split.length - 1] = "2";
  341. //拒绝
  342. billPersonnelAdmission.setBillStatus(2);
  343. baseProcess.setProcessType(2);
  344. baseProcess.setCurrentStatus(String.join(",", split));
  345. String status = baseProcess.getAllLocationStatus();
  346. String[] split1 = status.split(",");
  347. split1[0] = "3";
  348. baseProcess.setAllLocationStatus(split1[0] + status.substring(1));
  349. // SendSMS.sendSMS(phoneList,"拒绝入场申请测试");
  350. } else {
  351. if (billPersonnelAdmission.getBillStatus() != 0) {
  352. return new Result(10001, "该订单已通过,无需再次点击!", false);
  353. }
  354. //通过
  355. billPersonnelAdmission.setBillStatus(1);
  356. //获取pcr位置
  357. String locationId = baseProcess.getCurrentLocationId();
  358. String[] strings = locationId.split(",");
  359. String laseLocationId = strings[strings.length - 1];
  360. BaseLocation baseLocation = baseLocationMapper.selectById(laseLocationId);
  361. if (userType == 3) {
  362. String[] split = baseProcess.getCurrentStatus().split(",");
  363. split[split.length - 1] = "1";
  364. StringBuilder result = new StringBuilder();
  365. for (String element : split) {
  366. result.append(element).append(",");
  367. }
  368. result.append("0");
  369. baseProcess.setCurrentStatus(result.toString());
  370. baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() + "," + baseLocation.getLocationName());
  371. baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() + "," + baseLocation.getId());
  372. String status = baseProcess.getAllLocationStatus();
  373. String[] split1 = status.split(",");
  374. split1[0] = "2";
  375. split1[1] = "1";
  376. baseProcess.setAllLocationStatus(split1[0] + "," + split1[1] + status.substring(3));
  377. BillPcr billPcr = new BillPcr();
  378. billPcr.setVistitType(billPersonnelAdmission.getVistitType());
  379. billPcr.setDestName(billPersonnelAdmission.getDestName());
  380. billPcr.setDestId(billPersonnelAdmission.getDestId());
  381. billPcr.setPhone(billPersonnelAdmission.getPhone());
  382. billPcr.setAdmissionUserId(billPersonnelAdmission.getAdmissionUserId());
  383. billPcr.setAdmissionUserName(billPersonnelAdmission.getAdmissionUserName());
  384. billPcr.setSubDate(LocalDateTime.now());
  385. billPcr.setVistitDate(billPersonnelAdmission.getVistitDate());
  386. billPcr.setFarmId(billPersonnelAdmission.getFarmId());
  387. billPcr.setProcessId(billPersonnelAdmission.getProcessId());
  388. billPcr.setAdmissionId(Integer.parseInt(id));
  389. if (ObjectUtil.isNotEmpty(billPersonnelAdmission.getCarNum())) {
  390. billPcr.setCarNum(billPersonnelAdmission.getCarNum());
  391. }
  392. billPcr.setTestLocation(baseLocation.getLocationName());
  393. billPcr.setTestLocationId(baseLocation.getId());
  394. billPcrMapper.insert(billPcr);
  395. // SendSMS.sendSMS(phoneList,"通过入场申请测试");
  396. } else {
  397. baseProcess.setCurrentStatus("1");
  398. baseProcess.setProcessType(1);
  399. baseProcess.setAllLocationStatus("2,2");
  400. // baseProcess.setCurrentLocation(baseProcess.getCurrentLocation()+","+baseLocation.getLocationName());
  401. // baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() +","+baseLocation.getId());
  402. //TODO 紧急入场通过先不处理
  403. }
  404. //通过生成门禁白名单
  405. QueryWrapper<DeviceList> queryWrapper = new QueryWrapper<>();
  406. queryWrapper.eq("farm_id", billPersonnelAdmission.getFarmId()).eq("location_id", locationId);
  407. DeviceList deviceList = deviceListMapper.selectOne(queryWrapper);
  408. if (ObjectUtil.isNotEmpty(deviceList)) {
  409. if (deviceList.getDeviceType() == 0) {
  410. //通过生成门禁白名单
  411. PeopleList peopleList = new PeopleList();
  412. peopleList.setFarmId(billPersonnelAdmission.getFarmId().toString());
  413. peopleList.setDeviceCode(deviceList.getDeviceCode());
  414. peopleList.setUserId(billPersonnelAdmission.getAdmissionUserId());
  415. peopleList.setUserName(billPersonnelAdmission.getAdmissionUserName());
  416. peopleList.setPassword("123456");
  417. peopleList.setType(0);
  418. peopleList.setCreateTime(new Date());
  419. Date date = new Date();
  420. Calendar calendar = Calendar.getInstance();
  421. calendar.setTime(date);
  422. calendar.add(Calendar.HOUR_OF_DAY, 2);
  423. Date date1 = calendar.getTime();
  424. peopleList.setOutTime(date1);
  425. peopleListMapper.insert(peopleList);
  426. HashMap<String, Object> jsonObject = new HashMap<>();
  427. jsonObject.put("seq", deviceList.getDeviceCode());
  428. String savePath = "D:\\works\\pig_projects\\甜妹.jpg";
  429. URL url = new URL(billPersonnelAdmission.getUserImgUrl());
  430. HttpURLConnection connection = (HttpURLConnection) url.openConnection();
  431. connection.setRequestMethod("GET");
  432. int resCode = connection.getResponseCode();
  433. if (resCode == HttpURLConnection.HTTP_OK) {
  434. InputStream inputStream = connection.getInputStream();
  435. byte[] buffer = new byte[4096];
  436. int length;
  437. //读取数据并写入到文件中
  438. try (FileOutputStream outStream = new FileOutputStream(savePath)) {
  439. while ((length = inputStream.read(buffer)) != -1) {
  440. outStream.write(buffer, 0, length);
  441. }
  442. outStream.flush();
  443. } finally {
  444. inputStream.close();
  445. }
  446. } else {
  447. System.out.println("文件下载错误码为" + resCode);
  448. }
  449. jsonObject.put("face", FileUtil.file("D:\\works\\pig_projects\\甜妹.jpg"));
  450. jsonObject.put("name", billPersonnelAdmission.getAdmissionUserName());
  451. jsonObject.put("password", "123456");
  452. jsonObject.put("timestamp", date1.getTime());
  453. jsonObject.put("uid", billPersonnelAdmission.getAdmissionUserId());
  454. String post = HttpRequest.post("http://192.168.1.42:8040/addDeviceUser")
  455. .header(Header.CONTENT_TYPE, "multipart/form-data")
  456. .form(jsonObject)
  457. .timeout(30 * 1000).execute().body();
  458. System.out.println(post);
  459. } else {
  460. //车辆闸机
  461. PeopleList peopleList = new PeopleList();
  462. peopleList.setFarmId(billPersonnelAdmission.getFarmId().toString());
  463. peopleList.setDeviceCode(deviceList.getDeviceCode());
  464. peopleList.setUserId(billPersonnelAdmission.getAdmissionUserId());
  465. peopleList.setUserName(billPersonnelAdmission.getAdmissionUserName());
  466. peopleList.setPassword("123456");
  467. peopleList.setType(1);
  468. peopleList.setCreateTime(new Date());
  469. Date date = new Date();
  470. Calendar calendar = Calendar.getInstance();
  471. calendar.setTime(date);
  472. calendar.add(Calendar.HOUR_OF_DAY, 2);
  473. Date date1 = calendar.getTime();
  474. peopleList.setOutTime(date1);
  475. peopleListMapper.insert(peopleList);
  476. //需要先验证车辆是否存在白名单内,如果车辆已存在于白名单当中,则需要更新白名单,将车牌从白名单中删除后
  477. //重新进行添加,如果车辆不存在于白名单当中则直接添加入白名单
  478. JSONObject jsonObject = new JSONObject();
  479. jsonObject.put("seq", deviceList.getDeviceCode());
  480. jsonObject.put("isBlack", false);
  481. String request = HttpRequest.get("http://192.168.1.42:8040/getCarDeviceWoBList")
  482. .body(jsonObject.toJSONString())
  483. .header(Header.CONTENT_TYPE, "application/json")
  484. .timeout(30 * 1000).execute().body();
  485. JSONObject object = JSON.parseObject(request);
  486. System.out.println(object);
  487. JSONArray data = (JSONArray) object.get("data");
  488. System.out.println(data);
  489. for (int i = 0; i < data.size(); i++) {
  490. JSONObject jsonObject1 = (JSONObject) data.get(i);
  491. if (jsonObject1.get("plate").equals(billPersonnelAdmission.getCarNum())) {
  492. JSONObject jsonObject2 = new JSONObject();
  493. jsonObject2.put("isBlack", false);
  494. jsonObject2.put("seq", deviceList.getDeviceCode());
  495. List<Integer> list = new ArrayList<>();
  496. list.add((Integer) jsonObject1.get("cid"));
  497. jsonObject2.put("cids", list);
  498. String body = HttpRequest.post(" http://192.168.1.42:8040/delCarDeviceWoBList").header(Header.CONTENT_TYPE, "application/json")
  499. .body(jsonObject2.toJSONString())
  500. .timeout(30 * 1000).execute().body();
  501. System.out.println(body);
  502. }
  503. }
  504. JSONObject jsonObject1 = new JSONObject();
  505. JSONArray jsonArray = new JSONArray();
  506. JSONObject object1 = new JSONObject();
  507. jsonObject1.put("seq", deviceList.getDeviceCode());
  508. jsonObject1.put("isBlack", false);
  509. object1.put("timestamp", date1.getTime());
  510. object1.put("name", billPersonnelAdmission.getAdmissionUserName());
  511. object1.put("plate", billPersonnelAdmission.getCarNum());
  512. jsonArray.add(object1);
  513. jsonObject1.put("plates", jsonArray);
  514. String post = HttpRequest.post(" http://192.168.1.42:8040/addCarDeviceWoBList")
  515. .header(Header.CONTENT_TYPE, "application/json")
  516. .body(jsonObject1.toJSONString())
  517. .timeout(30 * 1000).execute().body();
  518. System.out.println(post);
  519. }
  520. }
  521. }
  522. baseProcessMapper.updateById(baseProcess);
  523. billPersonnelAdmissionMapper.updateById(billPersonnelAdmission);
  524. return Result.SUCCESS();
  525. }
  526. @Override
  527. public Result listAll(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
  528. String type = paramsMap.get("type");
  529. String farmId = paramsMap.get("farmId");
  530. String pageNo = paramsMap.get("pageNum");
  531. String pageSize = paramsMap.get("pageSize");
  532. // QueryWrapper<BillPersonnelAdmission> queryWrapper = new QueryWrapper<>();
  533. // queryWrapper.eq("farm_id", farmId);
  534. Page<FactoryDirectorVo> page = new Page<>(Integer.parseInt(pageNo), Integer.parseInt(pageSize));
  535. IPage<FactoryDirectorVo> factoryDirectorList;
  536. // factoryDirectorList = billPersonnelAdmissionMapper.listAll(queryWrapper,page);
  537. if (type.equals("0")) {
  538. factoryDirectorList = billPersonnelAdmissionMapper.listAll(type, farmId, page);
  539. } else {
  540. factoryDirectorList = billPersonnelAdmissionMapper.listCarAll(type, farmId, page);
  541. }
  542. return new Result(ResultCode.SUCCESS, factoryDirectorList/*, factoryDirectorList.getSize()*/);
  543. }
  544. @Override
  545. public Result getDetail(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
  546. String type = paramsMap.get("type");
  547. String id = paramsMap.get("id");
  548. if (type.equals("0")) {
  549. BillPersonnelAdmission billPersonnelAdmission = billPersonnelAdmissionMapper.selectById(id);
  550. BillAdmissionAndGoods billAdmissionAndGoods = new BillAdmissionAndGoods();
  551. BeanUtil.copyProperties(billPersonnelAdmission, billAdmissionAndGoods);
  552. List<BillGoodsInventory> billGoodsInventories = billGoodsInventoryMapper.selectList(new QueryWrapper<BillGoodsInventory>().eq("bill_admission", id));
  553. billAdmissionAndGoods.setGoods(billGoodsInventories);
  554. return new Result(ResultCode.SUCCESS, billAdmissionAndGoods);
  555. } else if (type.equals("1")) {
  556. return new Result(ResultCode.SUCCESS, billPcrMapper.selectById(id));
  557. } else if (type.equals("2")) {
  558. return new Result(ResultCode.SUCCESS, billCleanMapper.selectById(id));
  559. } else if (type.equals("4")) {
  560. return new Result(ResultCode.SUCCESS, dryMapper.selectById(id));
  561. } else {
  562. return new Result(ResultCode.SUCCESS, billIsolateMapper.selectById(id));
  563. }
  564. }
  565. @Override
  566. public Result listDoor(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
  567. String farmId = paramsMap.get("farmId");
  568. String type = paramsMap.get("type");//1为车辆 2为闸机
  569. String status = paramsMap.get("status");//0为全部 1为通过 2为不通过
  570. String pageNum = paramsMap.get("pageNum");
  571. String pageSize = paramsMap.get("pageSize");
  572. if ("".equals(pageNum) || null == pageNum) {
  573. pageNum = "1";
  574. }
  575. if ("".equals(pageSize) || null == pageSize) {
  576. pageSize = "10";
  577. }
  578. if ("".equals(status) || null == status) {
  579. status = "0";
  580. }
  581. if ("1".equals(type)) {
  582. QueryWrapper<BillAccessDoor> queryWrapper = new QueryWrapper<>();
  583. queryWrapper.eq("farm_id", farmId).orderByDesc("check_date");
  584. if ("1".equals(status)) {
  585. queryWrapper.eq("bill_status", 1);
  586. } else if ("2".equals(status)) {
  587. queryWrapper.eq("bill_status", 0);
  588. }
  589. Page<BillAccessDoor> page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
  590. return new Result(ResultCode.SUCCESS, doorMapper.selectPage(page, queryWrapper));
  591. } else {
  592. QueryWrapper<BillGate> queryWrapper = new QueryWrapper<>();
  593. queryWrapper.eq("farm_id", farmId).orderByDesc("check_date");
  594. if ("1".equals(status)) {
  595. queryWrapper.eq("bill_status", 1);
  596. } else if ("2".equals(status)) {
  597. queryWrapper.eq("bill_status", 0);
  598. }
  599. Page<BillGate> page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
  600. return new Result(ResultCode.SUCCESS, gateMapper.selectPage(page, queryWrapper));
  601. }
  602. }
  603. @Override
  604. public Result countAdmission(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
  605. String farmId = paramsMap.get("farmId");
  606. String type = paramsMap.get("type");
  607. if ("".equals(type) || type == null) {
  608. type = "1";
  609. }
  610. List<ListAdmissionVo> admissionVo = null;
  611. QueryWrapper<BillPersonnelAdmission> queryWrapper = new QueryWrapper<>();
  612. queryWrapper.eq("farm_id", farmId);
  613. //默认今日
  614. if ("1".equals(type)) {
  615. Date timesmorning = DataUill.getTimesmorning();
  616. queryWrapper.ge("sub_date", timesmorning);
  617. admissionVo = billPersonnelAdmissionMapper.countAdmission(queryWrapper);
  618. for (ListAdmissionVo listAdmissionVo : admissionVo) {
  619. QueryWrapper<BillPersonnelAdmission> queryWrapper1 = new QueryWrapper<>();
  620. queryWrapper1.eq("farm_id", farmId).ge("sub_date", timesmorning)
  621. .eq("vistit_type", listAdmissionVo.getType()).eq("bill_status", 1);
  622. QueryWrapper<BillPersonnelAdmission> queryWrapper2 = new QueryWrapper<>();
  623. queryWrapper2.eq("farm_id", farmId).ge("sub_date", timesmorning)
  624. .eq("vistit_type", listAdmissionVo.getType()).eq("bill_status", 2);
  625. listAdmissionVo.setPassCount(billPersonnelAdmissionMapper.selectCount(queryWrapper1));
  626. listAdmissionVo.setRefuseCount(billPersonnelAdmissionMapper.selectCount(queryWrapper2));
  627. }
  628. } else if ("2".equals(type)) {
  629. // 本周
  630. Calendar calendar = Calendar.getInstance();
  631. calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) - 7);
  632. queryWrapper.ge("sub_date", calendar.getTime());
  633. admissionVo = billPersonnelAdmissionMapper.countAdmission(queryWrapper);
  634. for (ListAdmissionVo listAdmissionVo : admissionVo) {
  635. QueryWrapper<BillPersonnelAdmission> queryWrapper1 = new QueryWrapper<>();
  636. queryWrapper1.eq("farm_id", farmId).ge("sub_date", calendar.getTime())
  637. .eq("vistit_type", listAdmissionVo.getType()).eq("bill_status", 1);
  638. QueryWrapper<BillPersonnelAdmission> queryWrapper2 = new QueryWrapper<>();
  639. queryWrapper2.eq("farm_id", farmId).ge("sub_date", calendar.getTime())
  640. .eq("vistit_type", listAdmissionVo.getType()).eq("bill_status", 2);
  641. listAdmissionVo.setPassCount(billPersonnelAdmissionMapper.selectCount(queryWrapper1));
  642. listAdmissionVo.setRefuseCount(billPersonnelAdmissionMapper.selectCount(queryWrapper2));
  643. }
  644. } else if ("3".equals(type)) {
  645. //本月
  646. Date timesMonthmorning = DataUill.getTimesMonthmorning();
  647. queryWrapper.ge("sub_date", timesMonthmorning);
  648. admissionVo = billPersonnelAdmissionMapper.countAdmission(queryWrapper);
  649. for (ListAdmissionVo listAdmissionVo : admissionVo) {
  650. QueryWrapper<BillPersonnelAdmission> queryWrapper1 = new QueryWrapper<>();
  651. queryWrapper1.eq("farm_id", farmId).ge("sub_date", timesMonthmorning)
  652. .eq("vistit_type", listAdmissionVo.getType()).eq("bill_status", 1);
  653. QueryWrapper<BillPersonnelAdmission> queryWrapper2 = new QueryWrapper<>();
  654. queryWrapper2.eq("farm_id", farmId).ge("sub_date", timesMonthmorning)
  655. .eq("vistit_type", listAdmissionVo.getType()).eq("bill_status", 2);
  656. listAdmissionVo.setPassCount(billPersonnelAdmissionMapper.selectCount(queryWrapper1));
  657. listAdmissionVo.setRefuseCount(billPersonnelAdmissionMapper.selectCount(queryWrapper2));
  658. }
  659. }
  660. return new Result(ResultCode.SUCCESS, admissionVo);
  661. }
  662. @Override
  663. public Result listTop(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
  664. String farmId = paramsMap.get("farmId");
  665. String type = paramsMap.get("type");
  666. if ("".equals(type) || type == null) {
  667. type = "1";
  668. }
  669. List<ListAdmissionVo> admissionVo = null;
  670. QueryWrapper<BillPersonnelAdmission> queryWrapper = new QueryWrapper<>();
  671. queryWrapper.eq("farm_id", farmId);
  672. //今日
  673. if ("1".equals(type)) {
  674. Date timesmorning = DataUill.getTimesmorning();
  675. queryWrapper.ge("sub_date", timesmorning);
  676. admissionVo = billPersonnelAdmissionMapper.countAdmission(queryWrapper);
  677. } else if ("2".equals(type)) {
  678. // 本周
  679. Calendar calendar = Calendar.getInstance();
  680. calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) - 7);
  681. queryWrapper.ge("sub_date", calendar.getTime());
  682. admissionVo = billPersonnelAdmissionMapper.countAdmission(queryWrapper);
  683. } else if ("3".equals(type)) {
  684. //本月
  685. Date timesMonthmorning = DataUill.getTimesMonthmorning();
  686. queryWrapper.ge("sub_date", timesMonthmorning);
  687. admissionVo = billPersonnelAdmissionMapper.countAdmission(queryWrapper);
  688. }
  689. JSONArray jsonArray = new JSONArray();
  690. for (ListAdmissionVo listAdmissionVo : admissionVo) {
  691. JSONObject jsonObject = new JSONObject();
  692. jsonObject.put("type", listAdmissionVo.getType());
  693. if (listAdmissionVo.getType() == 0) {
  694. jsonObject.put("name", "人员");
  695. } else if (listAdmissionVo.getType() == 1) {
  696. jsonObject.put("name", "环保车");
  697. } else if (listAdmissionVo.getType() == 2) {
  698. jsonObject.put("name", "拉猪车");
  699. } else if (listAdmissionVo.getType() == 3) {
  700. jsonObject.put("name", "饲料车");
  701. } else if (listAdmissionVo.getType() == 4) {
  702. jsonObject.put("name", "送猪车");
  703. } else if (listAdmissionVo.getType() == 5) {
  704. jsonObject.put("name", "物资车");
  705. }
  706. jsonObject.put("value", listAdmissionVo.getCount());
  707. jsonArray.add(jsonObject);
  708. }
  709. JSONArray array = jsonArraySort(jsonArray, "value", true);
  710. for (int i = 0; i < array.size(); i++) {
  711. JSONObject jsonObject = array.getJSONObject(i);
  712. jsonObject.put("rank", i + 1);
  713. }
  714. return new Result(ResultCode.SUCCESS, array);
  715. }
  716. @Override
  717. public Result admissionTail(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
  718. String farmId = paramsMap.get("farmId");
  719. String type = paramsMap.get("type");
  720. if ("".equals(type) || type == null) {
  721. type = "3";
  722. }
  723. //今日
  724. List<BillAdmissionVo> admissionVos = null;
  725. QueryWrapper<BillPersonnelAdmission> queryWrapper = new QueryWrapper<>();
  726. queryWrapper.eq("farm_id", farmId);
  727. if ("1".equals(type)) {
  728. Date timesmorning = DataUill.getTimesmorning();
  729. queryWrapper.ge("sub_date", timesmorning);
  730. admissionVos = billPersonnelAdmissionMapper.admissionTail(queryWrapper);
  731. } else if ("2".equals(type)) {
  732. // 本周
  733. Calendar calendar = Calendar.getInstance();
  734. calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) - 7);
  735. queryWrapper.ge("sub_date", calendar.getTime());
  736. admissionVos = billPersonnelAdmissionMapper.admissionTail(queryWrapper);
  737. } else if ("3".equals(type)) {
  738. //本月
  739. Date timesMonthmorning = DataUill.getTimesMonthmorning();
  740. queryWrapper.ge("sub_date", timesMonthmorning);
  741. admissionVos = billPersonnelAdmissionMapper.admissionTail(queryWrapper);
  742. }
  743. for (BillAdmissionVo admissionVo : admissionVos) {
  744. admissionVo.setCommitCount(admissionVo.getPassCount() + admissionVo.getRefuseCount());
  745. }
  746. return new Result(ResultCode.SUCCESS, admissionVos);
  747. }
  748. @Override
  749. public Result selectList(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
  750. String farmId = paramsMap.get("farmId");
  751. String type = paramsMap.get("type");//来访类型
  752. String destId = paramsMap.get("destId");//目的地
  753. String startTime = paramsMap.get("startTime");
  754. String endTime = paramsMap.get("endTime");
  755. String pageNum = paramsMap.get("pageNum");
  756. String pageSize = paramsMap.get("pageSize");
  757. if ("".equals(pageNum) || null == pageNum) {
  758. pageNum = "1";
  759. }
  760. if ("".equals(pageSize) || null == pageSize) {
  761. pageSize = "10";
  762. }
  763. QueryWrapper<BillPersonnelAdmission> queryWrapper = new QueryWrapper<>();
  764. if (ObjectUtil.isNotEmpty(startTime)) {
  765. startTime = startTime + " 00:00:00";
  766. endTime = endTime + " 23:59:59";
  767. queryWrapper.between("sub_date", startTime, endTime);
  768. }
  769. queryWrapper.lambda().orderByDesc(BillPersonnelAdmission::getId);
  770. queryWrapper.eq("farm_id", farmId).eq(StringUtils.isNotBlank(destId), "dest_id", destId).eq(StringUtils.isNotBlank(type), "vistit_type", type);
  771. Page<BillPersonnelAdmission> page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
  772. return new Result(ResultCode.SUCCESS, billPersonnelAdmissionMapper.selectPage(page, queryWrapper));
  773. }
  774. @Override
  775. public void printAdmission(HttpServletResponse httpServletRequest, Map<String, String> paramsMap) throws Exception {
  776. String ids = paramsMap.get("ids");
  777. String[] split = ids.split(",");
  778. List<BillPersonnelAdmission> list = new ArrayList<>();
  779. for (String s : split) {
  780. BillPersonnelAdmission admission = billPersonnelAdmissionMapper.selectById(s);
  781. list.add(admission);
  782. }
  783. Print.printAdmission(list);
  784. }
  785. @Override
  786. public Result jingJiAdmission(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
  787. String farmId = paramsMap.get("farmId");
  788. QueryWrapper<BillPersonnelAdmission> queryWrapper = new QueryWrapper<>();
  789. queryWrapper.eq("farm_id", farmId).eq("admission_type", 1).orderByDesc("sub_date")
  790. .last(" limit 10");
  791. return new Result(ResultCode.SUCCESS, billPersonnelAdmissionMapper.selectList(queryWrapper));
  792. }
  793. @Override
  794. public Result allCount(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
  795. String farmId = paramsMap.get("farmId");
  796. Calendar currCal = Calendar.getInstance();
  797. Calendar calendar = Calendar.getInstance();
  798. calendar.clear();
  799. calendar.set(Calendar.YEAR, currCal.get(Calendar.YEAR));
  800. Date time = calendar.getTime();
  801. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  802. String firstday = format.format(time);
  803. QueryWrapper<BillClean> cleanQueryWrapper = new QueryWrapper<>();
  804. cleanQueryWrapper.eq("farm_id", farmId).ge("sub_date", firstday);
  805. QueryWrapper<BillPcr> pcrQueryWrapper = new QueryWrapper<>();
  806. pcrQueryWrapper.eq("farm_id", farmId).ge("sub_date", firstday);
  807. QueryWrapper<BillGoodsInventory> goodsInventoryQueryWrapper = new QueryWrapper<>();
  808. goodsInventoryQueryWrapper.ge("create_date", firstday).eq("farm_id", farmId);
  809. JSONObject jsonObject = new JSONObject();
  810. Integer integer = pcrMapper.selectCount(pcrQueryWrapper);
  811. Integer integer1 = cleanMapper.selectCount(cleanQueryWrapper);
  812. Integer integer2 = billGoodsInventoryMapper.selectCount(goodsInventoryQueryWrapper);
  813. jsonObject.put("pcr", integer);
  814. jsonObject.put("clean", integer1);
  815. jsonObject.put("goods", integer2);
  816. jsonObject.put("allCount", integer + integer1 + integer2);
  817. jsonObject.put("look", "22");
  818. return new Result(ResultCode.SUCCESS, jsonObject);
  819. }
  820. @Override
  821. public Result uploadImgAndAdmissin(MultipartFile imgUrl, Integer id) throws IOException {
  822. BillPersonnelAdmission billPersonnelAdmission = billPersonnelAdmissionMapper.selectById(id);
  823. String imageCom = "";
  824. if (ObjectUtil.isNotEmpty(imgUrl)) {
  825. if (uploadImage.getImageCom(imgUrl).equals("上传失败")) {
  826. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  827. return new Result(10001, "图片上传失败", false);
  828. }
  829. imageCom = uploadImage.getImageCom(imgUrl);
  830. }
  831. billPersonnelAdmission.setUserImgUrl(imageCom);
  832. billPersonnelAdmissionMapper.updateById(billPersonnelAdmission);
  833. SysAccountMultilevel sysAccountMultilevel = new SysAccountMultilevel();
  834. sysAccountMultilevel.setId(billPersonnelAdmission.getAdmissionUserId());
  835. sysAccountMultilevel.setImgUrl(imageCom);
  836. sysAccountMultilevelMapper.updateById(sysAccountMultilevel);
  837. return new Result(10000, "修改成功", true);
  838. }
  839. /*数组排序*/
  840. public static JSONArray jsonArraySort(JSONArray jsonArr, String sortKey, boolean is_desc) {
  841. //存放排序结果json数组
  842. JSONArray sortedJsonArray = new JSONArray();
  843. //用于排序的list
  844. List<JSONObject> jsonValues = new ArrayList<JSONObject>();
  845. //将参数json数组每一项取出,放入list
  846. for (int i = 0; i < jsonArr.size(); i++) {
  847. jsonValues.add(jsonArr.getJSONObject(i));
  848. }
  849. //快速排序,重写compare方法,完成按指定字段比较,完成排序
  850. Collections.sort(jsonValues, new Comparator<JSONObject>() {
  851. //排序字段
  852. private final String KEY_NAME = sortKey;
  853. //重写compare方法
  854. @Override
  855. public int compare(JSONObject a, JSONObject b) {
  856. //如果用String接会导致一位数和两位数混合比对的时候不能准确比出来,要用int类型接
  857. //String valA = new String();
  858. //String valB = new String();
  859. Float valA = 0.00f;
  860. Float valB = 0.00f;
  861. try {
  862. valA = Float.parseFloat(a.getString(KEY_NAME));
  863. valB = Float.parseFloat(b.getString(KEY_NAME));
  864. } catch (JSONException e) {
  865. e.printStackTrace();
  866. }
  867. //是升序还是降序
  868. if (is_desc) {
  869. return -valA.compareTo(valB);
  870. } else {
  871. return -valB.compareTo(valA);
  872. }
  873. }
  874. });
  875. //将排序后结果放入结果jsonArray
  876. for (int i = 0; i < jsonArr.size(); i++) {
  877. sortedJsonArray.add(jsonValues.get(i));
  878. }
  879. return sortedJsonArray;
  880. }
  881. @Autowired
  882. private BillPcrMapper pcrMapper;
  883. @Autowired
  884. private BaseProcessMapper processMapper;
  885. @Autowired
  886. private BaseLocationMapper locationMapper;
  887. @Autowired
  888. private BillCleanMapper cleanMapper;
  889. @Autowired
  890. private BillIsolateMapper isolateMapper;
  891. @Override
  892. public Result listPrc(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
  893. String type = paramsMap.get("type");//类型
  894. String pageNum = paramsMap.get("pageNum");
  895. String pageSize = paramsMap.get("pageSize");
  896. if ("".equals(pageNum) || null == pageNum) {
  897. pageNum = "1";
  898. }
  899. if ("".equals(pageSize) || null == pageSize) {
  900. pageSize = "20";
  901. }
  902. Page<BillPcr> page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
  903. if ("".equals(type) || null == type) {
  904. type = "0";
  905. }
  906. String farmId = paramsMap.get("farmId");
  907. QueryWrapper<BillPcr> queryWrapper = new QueryWrapper<>();
  908. queryWrapper.eq("farm_id", farmId).orderByDesc("sub_date");
  909. if ("0".equals(type)) {
  910. queryWrapper.in("pcr_type", 1, 2, 3);
  911. }
  912. if ("1".equals(type)) {
  913. queryWrapper.eq("pcr_type", 1);
  914. }
  915. if ("2".equals(type)) {
  916. queryWrapper.eq("pcr_type", 2);
  917. }
  918. if ("3".equals(type)) {
  919. queryWrapper.eq("pcr_type", 3);
  920. }
  921. QueryWrapper<BillPcr> queryWrapper1 = new QueryWrapper<>();
  922. queryWrapper1.eq("farm_id", farmId).orderByDesc("sub_date").eq("pcr_type", 1);
  923. return new Result(ResultCode.SUCCESS, pcrMapper.selectPage(page, queryWrapper), pcrMapper.selectCount(queryWrapper1));
  924. }
  925. @Override
  926. public Result listById(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
  927. String id = paramsMap.get("id");
  928. return new Result(ResultCode.SUCCESS, pcrMapper.selectById(id));
  929. }
  930. @Override
  931. public Result editStatus(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) throws ParseException {
  932. String farmId = paramsMap.get("farmId");
  933. String type = paramsMap.get("type");
  934. String id = paramsMap.get("id");
  935. String data = paramsMap.get("data");
  936. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
  937. if (StringUtils.isBlank(data)) {
  938. data = sdf.format(new Date());
  939. }
  940. BillPcr billPcr = pcrMapper.selectById(id);
  941. if (billPcr.getPcrType() != 1) {
  942. return new Result(10001, "pcr已通过或拒绝,无需再次复审", false);
  943. }
  944. QueryWrapper<BaseProcess> processQueryWrapper = new QueryWrapper<>();
  945. processQueryWrapper.eq("farm_id", farmId).eq("id", billPcr.getProcessId());
  946. BaseProcess baseProcess = processMapper.selectOne(processQueryWrapper);//进程
  947. QueryWrapper<BaseLocation> locationQueryWrapper = new QueryWrapper<>();
  948. locationQueryWrapper.eq("id", billPcr.getTestLocationId());
  949. BaseLocation baseLocation = locationMapper.selectOne(locationQueryWrapper);//当前pcr检测所在的位置
  950. if (baseProcess.getProcessType() == 2 || baseProcess.getProcessType() == 1) {
  951. return new Result(10001, "修改失败!该申请已提前结束或者被拒绝", false);
  952. } else {
  953. if (billPcr.getDestId() >= billPcr.getTestLocationId()) {
  954. //说明当前不是目的地
  955. if ("1".equals(type)) {
  956. billPcr.setBillStatus(1);
  957. billPcr.setPcrType(2);
  958. billPcr.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
  959. billPcr.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
  960. billPcr.setTestLocation(baseLocation.getLocationName());
  961. billPcr.setTestLocationId(baseLocation.getId());
  962. billPcr.setPassDate(sdf.parse(sdf.format(new Date())));
  963. billPcr.setCheckDate(sdf.parse(data));
  964. //通过生成洗消记录
  965. BillClean billClean = new BillClean();
  966. billClean.setPhone(billPcr.getPhone());
  967. billClean.setVistitType(billPcr.getVistitType());
  968. billClean.setDestName(billPcr.getDestName());
  969. billClean.setDestId(billPcr.getDestId());
  970. billClean.setAdmissionUserName(billPcr.getAdmissionUserName());
  971. billClean.setAdmissionUserId(billPcr.getAdmissionUserId());
  972. billClean.setVistitDate(billPcr.getVistitDate());
  973. billClean.setSubDate(LocalDateTime.now());
  974. billClean.setFarmId(billPcr.getFarmId());
  975. billClean.setPassUserName(billPcr.getPassUserName());
  976. billClean.setPassDate(billPcr.getPassDate());
  977. billClean.setPassUserId(billPcr.getPassUserId());
  978. billClean.setProcessId(billPcr.getProcessId());
  979. billClean.setTestLocation(baseLocation.getLocationName());
  980. billClean.setTestLocationId(baseLocation.getId());
  981. billClean.setImgStatus(0);
  982. billClean.setCarNum(billPcr.getCarNum());
  983. cleanMapper.insert(billClean);
  984. baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
  985. baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() + "," + baseLocation.getNextLocation());
  986. baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() + "," + baseLocation.getNextId());
  987. String status = baseProcess.getCurrentStatus();
  988. String substring = status.substring(0, status.length() - 1);
  989. baseProcess.setCurrentStatus(substring + "1," + 0);
  990. processMapper.updateById(baseProcess);
  991. pcrMapper.updateById(billPcr);
  992. return new Result(10000, "修改成功!", true);
  993. } else {
  994. billPcr.setBillStatus(2);
  995. billPcr.setPcrType(3);
  996. billPcr.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
  997. billPcr.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
  998. billPcr.setTestLocation(baseLocation.getLocationName());
  999. billPcr.setTestLocationId(baseLocation.getId());
  1000. billPcr.setPassDate(sdf.parse(sdf.format(new Date())));
  1001. billPcr.setCheckDate(sdf.parse(data));
  1002. baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
  1003. baseProcess.setCurrentLocation(baseProcess.getCurrentLocation());
  1004. baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId());
  1005. String status = baseProcess.getCurrentStatus();
  1006. String substring = status.substring(0, status.length() - 1);
  1007. baseProcess.setCurrentStatus(substring + "2");
  1008. baseProcess.setProcessType(2);
  1009. String status1 = baseProcess.getAllLocationStatus();
  1010. String[] split1 = status1.split(",");
  1011. split1[0] = "2";
  1012. split1[1] = "3";
  1013. baseProcess.setAllLocationStatus(split1[0] + "," + split1[1] + status1.substring(3));
  1014. processMapper.updateById(baseProcess);
  1015. pcrMapper.updateById(billPcr);
  1016. return new Result(10000, "修改成功!", true);
  1017. }
  1018. } else {
  1019. if ("1".equals(type)) {
  1020. billPcr.setBillStatus(1);
  1021. billPcr.setPcrType(2);
  1022. billPcr.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
  1023. billPcr.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
  1024. billPcr.setTestLocation(baseLocation.getLocationName());
  1025. billPcr.setTestLocationId(baseLocation.getId());
  1026. billPcr.setPassDate(sdf.parse(sdf.format(new Date())));
  1027. billPcr.setCheckDate(sdf.parse(data));
  1028. baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
  1029. baseProcess.setCurrentLocation(baseProcess.getCurrentLocation());
  1030. baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId());
  1031. String status = baseProcess.getCurrentStatus();
  1032. String substring = status.substring(0, status.length() - 1);
  1033. baseProcess.setCurrentStatus(substring + "1");
  1034. baseProcess.setProcessType(1);
  1035. String status1 = baseProcess.getAllLocationStatus();
  1036. String[] split1 = status1.split(",");
  1037. split1[0] = "2";
  1038. split1[1] = "1";
  1039. baseProcess.setAllLocationStatus(split1[0] + "," + split1[1] + status1.substring(3));
  1040. processMapper.updateById(baseProcess);
  1041. pcrMapper.updateById(billPcr);
  1042. return new Result(10000, "修改成功!", true);
  1043. } else {
  1044. baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
  1045. baseProcess.setCurrentLocation(baseProcess.getCurrentLocation());
  1046. baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId());
  1047. String status = baseProcess.getCurrentStatus();
  1048. String substring = status.substring(0, status.length() - 1);
  1049. baseProcess.setCurrentStatus(substring + "2");
  1050. baseProcess.setProcessType(2);
  1051. billPcr.setBillStatus(2);
  1052. billPcr.setPcrType(3);
  1053. billPcr.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
  1054. billPcr.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
  1055. billPcr.setTestLocation(baseLocation.getLocationName());
  1056. billPcr.setTestLocationId(baseLocation.getId());
  1057. billPcr.setPassDate(sdf.parse(sdf.format(new Date())));
  1058. billPcr.setCheckDate(sdf.parse(data));
  1059. String status1 = baseProcess.getAllLocationStatus();
  1060. String[] split1 = status.split(",");
  1061. split1[0] = "2";
  1062. split1[1] = "3";
  1063. baseProcess.setAllLocationStatus(split1[0] + "," + split1[1] + status1.substring(3));
  1064. processMapper.updateById(baseProcess);
  1065. pcrMapper.updateById(billPcr);
  1066. return new Result(10000, "修改成功!", true);
  1067. }
  1068. }
  1069. }
  1070. }
  1071. @Override
  1072. public Result listIsolate(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
  1073. String type = paramsMap.get("type");//类型
  1074. String pageNum = paramsMap.get("pageNum");
  1075. String pageSize = paramsMap.get("pageSize");
  1076. if ("".equals(pageNum) || null == pageNum) {
  1077. pageNum = "1";
  1078. }
  1079. if ("".equals(pageSize) || null == pageSize) {
  1080. pageSize = "20";
  1081. }
  1082. Page<BillIsolate> page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
  1083. if ("".equals(type) || null == type) {
  1084. type = "0";
  1085. }
  1086. String farmId = paramsMap.get("farmId");
  1087. QueryWrapper<BillIsolate> queryWrapper = new QueryWrapper<>();
  1088. queryWrapper.eq("farm_id", farmId).orderByDesc("sub_date");
  1089. if ("0".equals(type)) {
  1090. queryWrapper.in("bill_status", 0, 1, 2, 3);
  1091. }
  1092. if ("1".equals(type)) {
  1093. queryWrapper.eq("bill_status", 0);
  1094. }
  1095. if ("2".equals(type)) {
  1096. queryWrapper.in("bill_status", 1, 2);
  1097. }
  1098. if ("3".equals(type)) {
  1099. queryWrapper.eq("bill_status", 3);
  1100. }
  1101. QueryWrapper<BillIsolate> queryWrapper1 = new QueryWrapper<>();
  1102. queryWrapper1.eq("farm_id", farmId).eq("bill_status", 0);
  1103. return new Result(ResultCode.SUCCESS, isolateMapper.selectPage(page, queryWrapper), isolateMapper.selectCount(queryWrapper1));
  1104. }
  1105. @Override
  1106. public Result isolateById(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
  1107. String id = paramsMap.get("id");
  1108. return new Result(ResultCode.SUCCESS, isolateMapper.selectById(id));
  1109. }
  1110. @Override
  1111. public Result commitIsolate(HttpServletRequest httpServletRequest, BillIsolate billIsolate) {
  1112. BillIsolate isolate = isolateMapper.selectById(billIsolate.getId());
  1113. Date startDate = billIsolate.getIsolateStartDate();
  1114. String dayNum = billIsolate.getIsolateDayNum();//隔离天数
  1115. Date endDate = billIsolate.getIsolateEndDate();
  1116. isolate.setIsolateStartDate(startDate);
  1117. isolate.setIsolateEndDate(endDate);
  1118. isolate.setIsolateDayNum(dayNum);
  1119. isolate.setBillStatus(1);
  1120. isolateMapper.updateById(isolate);
  1121. /* ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(10);
  1122. Runnable task = new Runnable() {
  1123. @Override
  1124. public void run() {
  1125. //这里写业务
  1126. BillIsolate isolate = isolateMapper.selectById(billIsolate.getId());
  1127. QueryWrapper<BaseLocation> locationQueryWrapper = new QueryWrapper<>();
  1128. locationQueryWrapper.eq("farm_id", isolate.getFarmId()).eq("id", isolate.getIsolateLocationId());
  1129. BaseLocation baseLocation = locationMapper.selectOne(locationQueryWrapper);//当前所在的位置
  1130. QueryWrapper<BaseProcess> processQueryWrapper = new QueryWrapper<>();
  1131. processQueryWrapper.eq("farm_id", isolate.getFarmId()).eq("id", isolate.getProcessId());
  1132. BaseProcess baseProcess = processMapper.selectOne(processQueryWrapper);//进程
  1133. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
  1134. if (isolate.getBillStatus() == 1) {
  1135. isolate.setBillStatus(2);
  1136. if (isolate.getDestId() >= isolate.getIsolateLocationId()) { //当前不是目的地
  1137. if (isolate.getIsolateLocationId() == 3 && baseProcess.getDestId() > 3) {
  1138. //通过生成洗消记录
  1139. BillClean billClean = new BillClean();
  1140. billClean.setPhone(isolate.getPhone());
  1141. billClean.setVistitType(isolate.getVistitType());
  1142. billClean.setDestName(isolate.getDestName());
  1143. billClean.setDestId(isolate.getDestId());
  1144. billClean.setAdmissionUserName(isolate.getAdmissionUserName());
  1145. billClean.setAdmissionUserId(isolate.getAdmissionUserId());
  1146. billClean.setVistitDate(isolate.getVistitDate());
  1147. billClean.setSubDate(isolate.getSubDate());
  1148. billClean.setFarmId(isolate.getFarmId());
  1149. billClean.setPassUserName(isolate.getPassUserName());
  1150. billClean.setPassDate(isolate.getPassDate());
  1151. billClean.setPassUserId(isolate.getPassUserId());
  1152. billClean.setProcessId(isolate.getProcessId());
  1153. billClean.setTestLocation(baseLocation.getNextLocation());
  1154. billClean.setTestLocationId(baseLocation.getNextId());
  1155. cleanMapper.insert(billClean);
  1156. baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
  1157. baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() + "," + baseLocation.getNextLocation());
  1158. baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() + "," + baseLocation.getNextId());
  1159. String status = baseProcess.getCurrentStatus();
  1160. String substring = status.substring(0, status.length() - 1);
  1161. baseProcess.setCurrentStatus(substring + "1," + 0);
  1162. processMapper.updateById(baseProcess);
  1163. } else {
  1164. baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
  1165. baseProcess.setCurrentLocation(baseProcess.getCurrentLocation());
  1166. baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId());
  1167. String status = baseProcess.getCurrentStatus();
  1168. String substring = status.substring(0, status.length() - 1);
  1169. baseProcess.setCurrentStatus(substring + "2");
  1170. baseProcess.setProcessType(1);
  1171. processMapper.updateById(baseProcess);
  1172. }
  1173. } else {
  1174. baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
  1175. baseProcess.setCurrentLocation(baseProcess.getCurrentLocation());
  1176. baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId());
  1177. String status = baseProcess.getCurrentStatus();
  1178. String substring = status.substring(0, status.length() - 1);
  1179. baseProcess.setCurrentStatus(substring + "2");
  1180. baseProcess.setProcessType(1);
  1181. processMapper.updateById(baseProcess);
  1182. }
  1183. isolateMapper.updateById(isolate);
  1184. }
  1185. }
  1186. };
  1187. // 设定延迟时间(两小时后执行,单位为秒)
  1188. long delay = (endDate.getTime() - startDate.getTime()) / 1000;
  1189. // 执行定时任务
  1190. scheduler.schedule(task, delay, TimeUnit.SECONDS);*/
  1191. return new Result(10000, "提交成功!", true);
  1192. }
  1193. @Override
  1194. public Result editIsolate(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) throws ParseException {
  1195. String id = paramsMap.get("id");
  1196. String farmId = paramsMap.get("farmId");
  1197. String remark = paramsMap.get("remark");//是否提前结束隔离的标识
  1198. BillIsolate billIsolate = isolateMapper.selectById(id);
  1199. BaseProcess baseProcess = processMapper.selectById(billIsolate.getProcessId());
  1200. QueryWrapper<BaseLocation> locationQueryWrapper = new QueryWrapper<>();
  1201. locationQueryWrapper.eq("id", billIsolate.getIsolateLocationId());
  1202. BaseLocation baseLocation = locationMapper.selectOne(locationQueryWrapper);//当前隔离所在的位置
  1203. QueryWrapper<Exist> existQueryWrapper = new QueryWrapper<>();
  1204. existQueryWrapper.eq("farm_id", farmId);
  1205. Exist exist = existMapper.selectOne(existQueryWrapper);//判断是否有二级洗消站
  1206. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  1207. String end = sdf.format(billIsolate.getIsolateEndDate());
  1208. String start = sdf.format(billIsolate.getIsolateStartDate());
  1209. String now = sdf.format(new Date());
  1210. int res = now.compareTo(end);
  1211. //提前结束隔离
  1212. if (baseProcess.getDestId().equals(billIsolate.getIsolateLocationId())) {
  1213. //目的地就是当前隔离地点
  1214. baseProcess.setProcessType(1);
  1215. baseProcess.setCurrentLocation(baseProcess.getCurrentLocation());
  1216. baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId());
  1217. } else {
  1218. baseProcess.setProcessType(0);
  1219. baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() + "," + baseLocation.getNextLocation());
  1220. baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() + "," + baseLocation.getNextId());
  1221. }
  1222. if (billIsolate.getIsolateLocationId() == 3 && baseProcess.getDestId() >= 4) {
  1223. //通过生成洗消记录
  1224. BillClean billClean = new BillClean();
  1225. billClean.setVistitType(billIsolate.getVistitType());
  1226. billClean.setDestName(billIsolate.getDestName());
  1227. billClean.setDestId(billIsolate.getDestId());
  1228. billClean.setAdmissionUserName(billIsolate.getAdmissionUserName());
  1229. billClean.setAdmissionUserId(billIsolate.getAdmissionUserId());
  1230. billClean.setVistitDate(billIsolate.getVistitDate());
  1231. billClean.setSubDate(LocalDateTime.now());
  1232. billClean.setFarmId(billIsolate.getFarmId());
  1233. billClean.setPassUserName(billIsolate.getPassUserName());
  1234. billClean.setPassDate(billIsolate.getPassDate());
  1235. billClean.setPassUserId(billIsolate.getPassUserId());
  1236. billClean.setProcessId(billIsolate.getProcessId());
  1237. billClean.setTestLocation("场内");
  1238. billClean.setTestLocationId(4);
  1239. billClean.setPhone(billIsolate.getPhone());
  1240. cleanMapper.insert(billClean);
  1241. String status = baseProcess.getAllLocationStatus();
  1242. String[] split = status.split(",");
  1243. split[0] = "2";
  1244. split[1] = "2";
  1245. split[2] = "2";
  1246. split[3] = "2";
  1247. split[4] = "1";
  1248. baseProcess.setAllLocationStatus(split[0] + "," + split[1] + "," + split[2] + "," + split[3] + "," + split[4] + status.substring(9));
  1249. }
  1250. billIsolate.setIsolateRealEndDate(new Date());
  1251. SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
  1252. Calendar cal1 = Calendar.getInstance();
  1253. Calendar cal2 = Calendar.getInstance();
  1254. Date startDate = sdf1.parse(start);
  1255. Date endDate = sdf1.parse(now);
  1256. cal1.setTime(startDate);
  1257. cal2.setTime(endDate);
  1258. long days = (startDate.getTime() - endDate.getTime()) / (1000 * 3600);
  1259. Integer l1 = (Integer.parseInt(String.valueOf(days / 24)));
  1260. long l = l1 % 24;
  1261. String num = l1.toString() + "天" + l + "小时";
  1262. // long days = (cal2.getTimeInMillis() - cal1.getTimeInMillis()) / (1000 * 3600 * 24);
  1263. billIsolate.setIsolateRealDayNum(num);
  1264. billIsolate.setBillStatus(3);
  1265. billIsolate.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
  1266. billIsolate.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
  1267. baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + now);
  1268. String status = baseProcess.getCurrentStatus();
  1269. String substring = status.substring(0, status.length() - 1);
  1270. baseProcess.setCurrentStatus(substring + "1," + 0);
  1271. if (billIsolate.getIsolateLocationId() == 5 && exist.getExist() == 0) {
  1272. baseProcess.setAllLocationStatus("2,2,2,2,2,2");
  1273. }
  1274. if (billIsolate.getIsolateLocationId() == 5 && exist.getExist() == 1) {
  1275. baseProcess.setAllLocationStatus("2,2,2,2,2");
  1276. }
  1277. if (billIsolate.getIsolateLocationId() == 3) {
  1278. String status1 = baseProcess.getAllLocationStatus();
  1279. String[] split = status1.split(",");
  1280. split[0] = "2";
  1281. split[1] = "2";
  1282. split[2] = "2";
  1283. split[3] = "2";
  1284. baseProcess.setAllLocationStatus(split[0] + "," + split[1] + "," + split[2] + "," + split[3] + status1.substring(7));
  1285. }
  1286. isolateMapper.updateById(billIsolate);
  1287. processMapper.updateById(baseProcess);
  1288. return new Result(10000, "提前解除隔离成功!", true);
  1289. }
  1290. @Override
  1291. public Result listClean(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
  1292. String type = paramsMap.get("type");//类型
  1293. String pageNum = paramsMap.get("pageNum");
  1294. String pageSize = paramsMap.get("pageSize");
  1295. if ("".equals(pageNum) || null == pageNum) {
  1296. pageNum = "1";
  1297. }
  1298. if ("".equals(pageSize) || null == pageSize) {
  1299. pageSize = "20";
  1300. }
  1301. Page<CleanAndDryVo2> cleanAndDryVo2Page = null;
  1302. Page<CleanAndDryVo2> page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
  1303. if ("".equals(type) || null == type) {
  1304. type = "0";
  1305. }
  1306. String farmId = paramsMap.get("farmId");
  1307. QueryWrapper<BillClean> queryWrapper = new QueryWrapper<>();
  1308. queryWrapper.eq("farm_id", farmId).ne("vistit_type", 0).orderByDesc("sub_date").eq("img_status", 1);
  1309. QueryWrapper<BillDry> queryWrapper1 = new QueryWrapper<>();
  1310. queryWrapper1.eq("farm_id", farmId).ne("vistit_type", 0).orderByDesc("sub_date").eq("img_status", 1);
  1311. if ("0".equals(type)) {
  1312. cleanAndDryVo2Page = cleanMapper.CleanAndDry2(page, farmId, "0,1,2".split(","));
  1313. }
  1314. ArrayList<String> arrayList = new ArrayList<>();
  1315. if ("1".equals(type)) {
  1316. arrayList.add("0");
  1317. String[] s = arrayList.toArray(new String[arrayList.size()]);
  1318. cleanAndDryVo2Page = cleanMapper.CleanAndDry2(page, farmId, s);
  1319. }
  1320. if ("2".equals(type)) {
  1321. arrayList.add("1");
  1322. String[] s = arrayList.toArray(new String[arrayList.size()]);
  1323. cleanAndDryVo2Page = cleanMapper.CleanAndDry2(page, farmId, s);
  1324. }
  1325. if ("3".equals(type)) {
  1326. arrayList.add("2");
  1327. String[] s = arrayList.toArray(new String[arrayList.size()]);
  1328. cleanAndDryVo2Page = cleanMapper.CleanAndDry2(page, farmId, s);
  1329. }
  1330. queryWrapper.eq("bill_status", 0);
  1331. queryWrapper1.eq("bill_status", 0);
  1332. Integer integer = cleanMapper.selectCount(queryWrapper);
  1333. Integer integer1 = dryMapper.selectCount(queryWrapper1);
  1334. return new Result(ResultCode.SUCCESS, cleanAndDryVo2Page, integer + integer1);
  1335. }
  1336. @Override
  1337. public Result listByIdClean(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
  1338. String id = paramsMap.get("id");
  1339. return new Result(ResultCode.SUCCESS, cleanMapper.selectById(id));
  1340. }
  1341. //清洗和洗消的检测
  1342. @Override
  1343. public Result editClean(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) throws ParseException {
  1344. String result = paramsMap.get("result");
  1345. String id = paramsMap.get("id");
  1346. String farmId = paramsMap.get("farmId");
  1347. BillClean billClean = cleanMapper.selectById(id);
  1348. QueryWrapper<BaseProcess> processQueryWrapper = new QueryWrapper<>();
  1349. processQueryWrapper.eq("farm_id", farmId).eq("id", billClean.getProcessId());
  1350. BaseProcess baseProcess = processMapper.selectOne(processQueryWrapper);//进程
  1351. QueryWrapper<BaseLocation> locationQueryWrapper = new QueryWrapper<>();
  1352. locationQueryWrapper.eq("id", billClean.getTestLocationId());
  1353. BaseLocation baseLocation = locationMapper.selectOne(locationQueryWrapper);//当前洗消检测所在的位置
  1354. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
  1355. if (billClean.getBillStatus() != 0) {
  1356. return new Result(10001, "该订单已通过,无需再次提交!", false);
  1357. }
  1358. if (billClean.getDestId() >= billClean.getTestLocationId()) { //说明当前不是目的地
  1359. if ("1".equals(result)) {
  1360. billClean.setBillStatus(1);
  1361. billClean.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
  1362. billClean.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
  1363. billClean.setTestLocation(baseLocation.getLocationName());
  1364. billClean.setTestLocationId(baseLocation.getId());
  1365. billClean.setPassDate(sdf.parse(sdf.format(new Date())));
  1366. billClean.setCheckDate(sdf.parse(sdf.format(new Date())));
  1367. //拉猪车结束
  1368. if (billClean.getTestLocationId() == 15) {
  1369. baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
  1370. baseProcess.setCurrentLocation(baseProcess.getCurrentLocation());
  1371. baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId());
  1372. String status = baseProcess.getCurrentStatus();
  1373. String substring = status.substring(0, status.length() - 1);
  1374. baseProcess.setCurrentStatus(substring + "1");
  1375. baseProcess.setProcessType(1);
  1376. baseProcess.setAllLocationStatus("2,2,2");
  1377. } else {
  1378. baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
  1379. baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() + "," + baseLocation.getNextLocation());
  1380. baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() + "," + baseLocation.getNextId());
  1381. String status = baseProcess.getCurrentStatus();
  1382. String substring = status.substring(0, status.length() - 1);
  1383. baseProcess.setCurrentStatus(substring + "1," + 0);
  1384. }
  1385. //环保车洗消合格生成烘干申请
  1386. if (billClean.getTestLocationId() == 12 || billClean.getTestLocationId() == 13) {
  1387. BillDry billDry = new BillDry();
  1388. billDry.setVistitType(billClean.getVistitType());
  1389. billDry.setDestName(billClean.getDestName());
  1390. billDry.setDestId(billClean.getDestId());
  1391. billDry.setAdmissionUserName(billClean.getAdmissionUserName());
  1392. billDry.setAdmissionUserId(billClean.getAdmissionUserId());
  1393. billDry.setVistitDate(billClean.getVistitDate());
  1394. billDry.setSubDate(LocalDateTime.now());
  1395. billDry.setFarmId(billClean.getFarmId());
  1396. billDry.setBillStatus(0);
  1397. billDry.setProcessId(billClean.getProcessId());
  1398. billDry.setTestLocation(baseLocation.getLocationName());
  1399. billDry.setTestLocationId(baseLocation.getId());
  1400. billDry.setPhone(billClean.getPhone());
  1401. billDry.setCarNum(billClean.getCarNum());
  1402. billDry.setImgStatus(0);
  1403. dryMapper.insert(billDry);
  1404. }
  1405. //拉猪车洗消合格生成烘干申请
  1406. if (billClean.getTestLocationId() == 15) {
  1407. QueryWrapper<BillClean> queryWrapper = new QueryWrapper<>();
  1408. queryWrapper.eq("farm_id", farmId).eq("process_id", baseProcess.getId());
  1409. List<BillClean> billCleans = cleanMapper.selectList(queryWrapper);
  1410. if (billCleans.size() == 1) {
  1411. BillDry billDry = new BillDry();
  1412. billDry.setVistitType(billClean.getVistitType());
  1413. billDry.setDestName(billClean.getDestName());
  1414. billDry.setDestId(billClean.getDestId());
  1415. billDry.setAdmissionUserName(billClean.getAdmissionUserName());
  1416. billDry.setAdmissionUserId(billClean.getAdmissionUserId());
  1417. billDry.setVistitDate(billClean.getVistitDate());
  1418. billDry.setSubDate(LocalDateTime.now());
  1419. billDry.setFarmId(billClean.getFarmId());
  1420. billDry.setBillStatus(0);
  1421. billDry.setProcessId(billClean.getProcessId());
  1422. billDry.setTestLocation(baseLocation.getLocationName());
  1423. billDry.setTestLocationId(baseLocation.getId());
  1424. billDry.setPhone(billClean.getPhone());
  1425. billDry.setCarNum(billClean.getCarNum());
  1426. billDry.setImgStatus(0);
  1427. baseProcess.setAllLocationStatus("2,1,0");
  1428. dryMapper.insert(billDry);
  1429. }
  1430. }
  1431. //送猪车洗消合格生成烘干申请
  1432. if (billClean.getTestLocationId() == 17) {
  1433. BillDry billDry = new BillDry();
  1434. billDry.setVistitType(billClean.getVistitType());
  1435. billDry.setDestName(billClean.getDestName());
  1436. billDry.setDestId(billClean.getDestId());
  1437. billDry.setAdmissionUserName(billClean.getAdmissionUserName());
  1438. billDry.setAdmissionUserId(billClean.getAdmissionUserId());
  1439. billDry.setVistitDate(billClean.getVistitDate());
  1440. billDry.setSubDate(LocalDateTime.now());
  1441. billDry.setFarmId(billClean.getFarmId());
  1442. billDry.setBillStatus(0);
  1443. billDry.setProcessId(billClean.getProcessId());
  1444. billDry.setTestLocation(baseLocation.getLocationName());
  1445. billDry.setTestLocationId(baseLocation.getId());
  1446. billDry.setPhone(billClean.getPhone());
  1447. billDry.setCarNum(billClean.getCarNum());
  1448. billDry.setImgStatus(0);
  1449. String status1 = baseProcess.getAllLocationStatus();
  1450. String[] split = status1.split(",");
  1451. if (billClean.getTestLocationId() == 17) {
  1452. split[0] = "2";
  1453. split[1] = "1";
  1454. baseProcess.setAllLocationStatus(split[0] + "," + split[1] + status1.substring(3));
  1455. }
  1456. dryMapper.insert(billDry);
  1457. }
  1458. processMapper.updateById(baseProcess);
  1459. cleanMapper.updateById(billClean);
  1460. return new Result(10000, "修改成功!", true);
  1461. } else {
  1462. billClean.setBillStatus(2);
  1463. billClean.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
  1464. billClean.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
  1465. billClean.setTestLocation(baseLocation.getLocationName());
  1466. billClean.setTestLocationId(baseLocation.getId());
  1467. billClean.setPassDate(sdf.parse(sdf.format(new Date())));
  1468. billClean.setCheckDate(sdf.parse(sdf.format(new Date())));
  1469. billClean.setImgStatus(1);
  1470. baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
  1471. baseProcess.setCurrentLocation(baseProcess.getCurrentLocation());
  1472. baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId());
  1473. String status = baseProcess.getCurrentStatus();
  1474. String substring = status.substring(0, status.length() - 1);
  1475. String status1 = baseProcess.getAllLocationStatus();
  1476. String[] split = status1.split(",");
  1477. if (billClean.getTestLocationId() == 12) {
  1478. split[0] = "2";
  1479. split[1] = "3";
  1480. baseProcess.setAllLocationStatus(split[0] + "," + split[1] + status1.substring(3));
  1481. }
  1482. if (billClean.getTestLocationId() == 13) {
  1483. split[0] = "2";
  1484. split[1] = "2";
  1485. split[2] = "3";
  1486. baseProcess.setAllLocationStatus(split[0] + "," + split[1] + "," + split[2] + status1.substring(5));
  1487. }
  1488. if (billClean.getTestLocationId() == 15 || billClean.getTestLocationId() == 16) {
  1489. split[0] = "2";
  1490. split[1] = "3";
  1491. baseProcess.setAllLocationStatus(split[0] + "," + split[1] + status1.substring(3));
  1492. }
  1493. if (billClean.getTestLocationId() == 17) {
  1494. split[0] = "2";
  1495. split[1] = "3";
  1496. baseProcess.setAllLocationStatus(split[0] + "," + split[1] + status1.substring(3));
  1497. }
  1498. baseProcess.setCurrentStatus(substring + "2");
  1499. baseProcess.setProcessType(2);
  1500. processMapper.updateById(baseProcess);
  1501. cleanMapper.updateById(billClean);
  1502. return new Result(10000, "修改成功!", true);
  1503. }
  1504. } else {
  1505. if ("1".equals(result)) {
  1506. billClean.setBillStatus(1);
  1507. billClean.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
  1508. billClean.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
  1509. billClean.setTestLocation(baseLocation.getLocationName());
  1510. billClean.setTestLocationId(baseLocation.getId());
  1511. billClean.setPassDate(sdf.parse(sdf.format(new Date())));
  1512. billClean.setCheckDate(sdf.parse(sdf.format(new Date())));
  1513. baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
  1514. baseProcess.setCurrentLocation(baseProcess.getCurrentLocation());
  1515. baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId());
  1516. String status = baseProcess.getCurrentStatus();
  1517. String substring = status.substring(0, status.length() - 1);
  1518. baseProcess.setCurrentStatus(substring + "1");
  1519. baseProcess.setProcessType(1);
  1520. if (billClean.getTestLocationId() == 15 || billClean.getDestId() == 16) {
  1521. baseProcess.setAllLocationStatus("2,2,0");
  1522. }
  1523. if (billClean.getTestLocationId() == 17) {
  1524. baseProcess.setAllLocationStatus("2,1");
  1525. }
  1526. processMapper.updateById(baseProcess);
  1527. cleanMapper.updateById(billClean);
  1528. return new Result(10000, "修改成功!", true);
  1529. } else {
  1530. baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
  1531. baseProcess.setCurrentLocation(baseProcess.getCurrentLocation());
  1532. baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId());
  1533. String status = baseProcess.getCurrentStatus();
  1534. String substring = status.substring(0, status.length() - 1);
  1535. baseProcess.setCurrentStatus(substring + "2");
  1536. baseProcess.setProcessType(2);
  1537. billClean.setBillStatus(2);
  1538. billClean.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
  1539. billClean.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
  1540. billClean.setTestLocation(baseLocation.getLocationName());
  1541. billClean.setTestLocationId(baseLocation.getId());
  1542. billClean.setPassDate(sdf.parse(sdf.format(new Date())));
  1543. billClean.setCheckDate(sdf.parse(sdf.format(new Date())));
  1544. billClean.setImgStatus(1);
  1545. String status1 = baseProcess.getAllLocationStatus();
  1546. String[] split = status1.split(",");
  1547. if (billClean.getTestLocationId() == 12) {
  1548. split[0] = "2";
  1549. split[1] = "3";
  1550. baseProcess.setAllLocationStatus(split[0] + "," + split[1] + status1.substring(3));
  1551. }
  1552. if (billClean.getTestLocationId() == 13) {
  1553. split[0] = "2";
  1554. split[1] = "2";
  1555. split[2] = "3";
  1556. baseProcess.setAllLocationStatus(split[0] + "," + split[1] + "," + split[2] + status1.substring(5));
  1557. }
  1558. if (billClean.getTestLocationId() == 17) {
  1559. split[0] = "2";
  1560. split[1] = "3";
  1561. baseProcess.setAllLocationStatus(split[0] + "," + split[1] + status1.substring(3));
  1562. }
  1563. if (billClean.getTestLocationId() == 15) {
  1564. split[0] = "2";
  1565. split[1] = "3";
  1566. baseProcess.setAllLocationStatus(split[0] + "," + split[1] + status1.substring(3));
  1567. }
  1568. processMapper.updateById(baseProcess);
  1569. cleanMapper.updateById(billClean);
  1570. return new Result(10000, "修改成功!", true);
  1571. }
  1572. }
  1573. }
  1574. //烘干检测
  1575. @Override
  1576. public Result editDry(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) throws ParseException {
  1577. String result = paramsMap.get("result");
  1578. String id = paramsMap.get("id");
  1579. String farmId = paramsMap.get("farmId");
  1580. BillDry billClean = dryMapper.selectById(id);
  1581. QueryWrapper<BaseProcess> processQueryWrapper = new QueryWrapper<>();
  1582. processQueryWrapper.eq("farm_id", farmId).eq("id", billClean.getProcessId());
  1583. BaseProcess baseProcess = processMapper.selectOne(processQueryWrapper);//进程
  1584. QueryWrapper<BaseLocation> locationQueryWrapper = new QueryWrapper<>();
  1585. locationQueryWrapper.eq("id", billClean.getTestLocationId());
  1586. BaseLocation baseLocation = locationMapper.selectOne(locationQueryWrapper);//当前洗消检测所在的位置
  1587. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
  1588. if (billClean.getBillStatus() != 0) {
  1589. return new Result(10001, "该订单已通过,无需再次提交!", false);
  1590. }
  1591. if (billClean.getDestId() >= billClean.getTestLocationId()) { //说明当前不是目的地
  1592. if ("1".equals(result)) {
  1593. billClean.setBillStatus(1);
  1594. billClean.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
  1595. billClean.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
  1596. billClean.setTestLocation(baseLocation.getLocationName());
  1597. billClean.setTestLocationId(baseLocation.getId());
  1598. billClean.setPassDate(sdf.parse(sdf.format(new Date())));
  1599. billClean.setCheckDate(sdf.parse(sdf.format(new Date())));
  1600. //最终结束
  1601. if (billClean.getTestLocationId() == 13 || billClean.getTestLocationId() == 17 || billClean.getTestLocationId() == 43) {
  1602. baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
  1603. baseProcess.setCurrentLocation(baseProcess.getCurrentLocation());
  1604. baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId());
  1605. String status = baseProcess.getCurrentStatus();
  1606. String substring = status.substring(0, status.length() - 1);
  1607. baseProcess.setCurrentStatus(substring + "1");
  1608. baseProcess.setProcessType(1);
  1609. if (billClean.getTestLocationId() == 17) {
  1610. baseProcess.setAllLocationStatus("2,2,2");
  1611. }
  1612. if (billClean.getTestLocationId() == 13) {
  1613. baseProcess.setAllLocationStatus("2,2,2,2");
  1614. }
  1615. } else {
  1616. baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
  1617. baseProcess.setCurrentLocation(baseProcess.getCurrentLocation() + "," + baseLocation.getNextLocation());
  1618. baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() + "," + baseLocation.getNextId());
  1619. String status = baseProcess.getCurrentStatus();
  1620. String substring = status.substring(0, status.length() - 1);
  1621. baseProcess.setCurrentStatus(substring + "1," + 0);
  1622. }
  1623. //环保车烘干合格生成洗消申请
  1624. if (billClean.getTestLocationId() == 12 && baseProcess.getDestId() > 12) {
  1625. BillClean clean = new BillClean();
  1626. clean.setVistitType(billClean.getVistitType());
  1627. clean.setDestName(billClean.getDestName());
  1628. clean.setDestId(billClean.getDestId());
  1629. clean.setAdmissionUserName(billClean.getAdmissionUserName());
  1630. clean.setAdmissionUserId(billClean.getAdmissionUserId());
  1631. clean.setVistitDate(billClean.getVistitDate());
  1632. clean.setSubDate(LocalDateTime.now());
  1633. clean.setFarmId(billClean.getFarmId());
  1634. clean.setBillStatus(0);
  1635. clean.setProcessId(billClean.getProcessId());
  1636. clean.setTestLocationId(baseLocation.getNextId());
  1637. clean.setTestLocation(baseLocation.getNextLocation());
  1638. clean.setPhone(billClean.getPhone());
  1639. clean.setCarNum(billClean.getCarNum());
  1640. clean.setImgStatus(0);
  1641. cleanMapper.insert(clean);
  1642. if (billClean.getDestId() == 13) {
  1643. baseProcess.setAllLocationStatus("2,2,1");
  1644. } else {
  1645. baseProcess.setAllLocationStatus("2,2,1,0");
  1646. }
  1647. }
  1648. if (billClean.getTestLocationId() == 12 && baseProcess.getDestId() == 12) {
  1649. baseProcess.setAllLocationStatus("2,2");
  1650. }
  1651. //拉猪车烘干合格生成洗消申请
  1652. if (billClean.getTestLocationId() == 15) {
  1653. BillClean clean = new BillClean();
  1654. clean.setVistitType(billClean.getVistitType());
  1655. clean.setDestName(billClean.getDestName());
  1656. clean.setDestId(billClean.getDestId());
  1657. clean.setAdmissionUserName(billClean.getAdmissionUserName());
  1658. clean.setAdmissionUserId(billClean.getAdmissionUserId());
  1659. clean.setVistitDate(billClean.getVistitDate());
  1660. clean.setSubDate(LocalDateTime.now());
  1661. clean.setFarmId(billClean.getFarmId());
  1662. clean.setBillStatus(0);
  1663. clean.setProcessId(billClean.getProcessId());
  1664. clean.setTestLocationId(baseLocation.getId());
  1665. clean.setTestLocation(baseLocation.getLocationName());
  1666. clean.setPhone(billClean.getPhone());
  1667. clean.setCarNum(billClean.getCarNum());
  1668. clean.setImgStatus(0);
  1669. baseProcess.setAllLocationStatus("2,1,0");
  1670. cleanMapper.insert(clean);
  1671. }
  1672. processMapper.updateById(baseProcess);
  1673. dryMapper.updateById(billClean);
  1674. return new Result(10000, "修改成功!", true);
  1675. } else {
  1676. billClean.setBillStatus(2);
  1677. billClean.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
  1678. billClean.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
  1679. billClean.setTestLocation(baseLocation.getLocationName());
  1680. billClean.setTestLocationId(baseLocation.getId());
  1681. billClean.setPassDate(sdf.parse(sdf.format(new Date())));
  1682. billClean.setCheckDate(sdf.parse(sdf.format(new Date())));
  1683. billClean.setImgStatus(1);
  1684. baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
  1685. baseProcess.setCurrentLocation(baseProcess.getCurrentLocation());
  1686. baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId());
  1687. String status = baseProcess.getCurrentStatus();
  1688. String substring = status.substring(0, status.length() - 1);
  1689. String status1 = baseProcess.getAllLocationStatus();
  1690. String[] split = status1.split(",");
  1691. if (billClean.getTestLocationId() == 12) {
  1692. split[0] = "2";
  1693. split[1] = "3";
  1694. baseProcess.setAllLocationStatus(split[0] + "," + split[1] + status1.substring(3));
  1695. }
  1696. if (billClean.getTestLocationId() == 13) {
  1697. split[0] = "2";
  1698. split[1] = "2";
  1699. split[2] = "3";
  1700. baseProcess.setAllLocationStatus(split[0] + "," + split[1] + "," + split[2] + status1.substring(5));
  1701. }
  1702. if (billClean.getTestLocationId() == 15) {
  1703. split[0] = "2";
  1704. split[1] = "3";
  1705. baseProcess.setAllLocationStatus(split[0] + "," + split[1] + status1.substring(3));
  1706. }
  1707. if (billClean.getTestLocationId() == 17) {
  1708. split[0] = "2";
  1709. split[1] = "3";
  1710. baseProcess.setAllLocationStatus(split[0] + "," + split[1] + status1.substring(3));
  1711. }
  1712. baseProcess.setCurrentStatus(substring + "2");
  1713. baseProcess.setProcessType(2);
  1714. processMapper.updateById(baseProcess);
  1715. dryMapper.updateById(billClean);
  1716. return new Result(10000, "修改成功!", true);
  1717. }
  1718. } else {
  1719. if ("1".equals(result)) {
  1720. billClean.setBillStatus(1);
  1721. billClean.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
  1722. billClean.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
  1723. billClean.setTestLocation(baseLocation.getLocationName());
  1724. billClean.setTestLocationId(baseLocation.getId());
  1725. billClean.setPassDate(sdf.parse(sdf.format(new Date())));
  1726. billClean.setCheckDate(sdf.parse(sdf.format(new Date())));
  1727. baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
  1728. baseProcess.setCurrentLocation(baseProcess.getCurrentLocation());
  1729. baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId());
  1730. String status = baseProcess.getCurrentStatus();
  1731. String substring = status.substring(0, status.length() - 1);
  1732. baseProcess.setCurrentStatus(substring + "1");
  1733. baseProcess.setProcessType(1);
  1734. if (billClean.getTestLocationId() == 15) {
  1735. baseProcess.setAllLocationStatus("2,1,0");
  1736. }
  1737. if (billClean.getTestLocationId() == 12) {
  1738. baseProcess.setAllLocationStatus("2,2");
  1739. }
  1740. if (billClean.getTestLocationId() == 13) {
  1741. baseProcess.setAllLocationStatus("2,2,2");
  1742. }
  1743. if (billClean.getTestLocationId() == 17) {
  1744. baseProcess.setAllLocationStatus("2,1,0");
  1745. }
  1746. processMapper.updateById(baseProcess);
  1747. dryMapper.updateById(billClean);
  1748. return new Result(10000, "修改成功!", true);
  1749. } else {
  1750. baseProcess.setUpdateDate(baseProcess.getUpdateDate() + "," + sdf.format(new Date()));
  1751. baseProcess.setCurrentLocation(baseProcess.getCurrentLocation());
  1752. baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId());
  1753. String status = baseProcess.getCurrentStatus();
  1754. String substring = status.substring(0, status.length() - 1);
  1755. baseProcess.setCurrentStatus(substring + "2");
  1756. baseProcess.setProcessType(2);
  1757. billClean.setBillStatus(2);
  1758. billClean.setPassUserName(TokenSign.getUserNameByJwtToken(httpServletRequest));
  1759. billClean.setPassUserId(TokenSign.getMemberIdByJwtToken(httpServletRequest));
  1760. billClean.setTestLocation(baseLocation.getLocationName());
  1761. billClean.setTestLocationId(baseLocation.getId());
  1762. billClean.setPassDate(sdf.parse(sdf.format(new Date())));
  1763. billClean.setCheckDate(sdf.parse(sdf.format(new Date())));
  1764. billClean.setImgStatus(1);
  1765. String status1 = baseProcess.getAllLocationStatus();
  1766. String[] split = status1.split(",");
  1767. if (billClean.getTestLocationId() == 12) {
  1768. split[0] = "2";
  1769. split[1] = "3";
  1770. baseProcess.setAllLocationStatus(split[0] + "," + split[1] + status1.substring(3));
  1771. }
  1772. if (billClean.getTestLocationId() == 13) {
  1773. split[0] = "2";
  1774. split[1] = "2";
  1775. split[2] = "3";
  1776. baseProcess.setAllLocationStatus(split[0] + "," + split[1] + "," + split[2] + status1.substring(5));
  1777. }
  1778. if (billClean.getTestLocationId() == 15) {
  1779. split[0] = "2";
  1780. split[1] = "3";
  1781. baseProcess.setAllLocationStatus(split[0] + "," + split[1] + status1.substring(3));
  1782. }
  1783. if (billClean.getTestLocationId() == 17) {
  1784. split[0] = "2";
  1785. split[1] = "3";
  1786. baseProcess.setAllLocationStatus(split[0] + "," + split[1] + status1.substring(3));
  1787. }
  1788. processMapper.updateById(baseProcess);
  1789. dryMapper.updateById(billClean);
  1790. return new Result(10000, "修改成功!", true);
  1791. }
  1792. }
  1793. }
  1794. }