Bdest.java 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347
  1. /*
  2. * Copyright [2022] [https://www.baiduc.com]
  3. *
  4. * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
  5. *
  6. * 1.请不要删除和修改根目录下的LICENSE文件。
  7. * 2.请不要删除和修改Snowy源码头部的版权声明。
  8. * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
  9. * 4.分发源码时候,请注明软件出处 https://www.baiduc.com
  10. * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
  11. * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.baiduc.com
  12. */
  13. package vip.xiaonuo;
  14. import cn.hutool.core.util.ObjectUtil;
  15. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  16. import org.junit.Test;
  17. import org.junit.runner.RunWith;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.boot.test.context.SpringBootTest;
  20. import org.springframework.core.ParameterizedTypeReference;
  21. import org.springframework.http.HttpMethod;
  22. import org.springframework.http.ResponseEntity;
  23. import org.springframework.test.context.junit4.SpringRunner;
  24. import org.springframework.web.client.RestTemplate;
  25. import vip.xiaonuo.erp.entity.ErpBdDepartment;
  26. import vip.xiaonuo.erp.entity.ErpBdMaterial;
  27. import vip.xiaonuo.erp.entity.ErpBdOrg;
  28. import vip.xiaonuo.erp.entity.ErpBdRawMaterial;
  29. import vip.xiaonuo.erp.entity.voucher.ErpMaterial;
  30. import vip.xiaonuo.erp.mapper.ErpBdDepartmentMapper;
  31. import vip.xiaonuo.erp.mapper.ErpBdMaterialMapper;
  32. import vip.xiaonuo.erp.mapper.ErpBdOrgMapper;
  33. import vip.xiaonuo.erp.mapper.ErpBdRawMaterialMapper;
  34. import vip.xiaonuo.production.entity.ProduceLocation;
  35. import vip.xiaonuo.production.mapper.ProduceLocationMapper;
  36. import vip.xiaonuo.quality.entity.ErpBdQuail;
  37. import vip.xiaonuo.quality.entity.QualityFenxibaogao;
  38. import vip.xiaonuo.quality.entity.QualityReagentStock;
  39. import vip.xiaonuo.quality.entity.vo.ErpQualiQm;
  40. import vip.xiaonuo.quality.mapper.ErpBdQuailMapper;
  41. import vip.xiaonuo.quality.mapper.QualityFenxibaogaoMapper;
  42. import vip.xiaonuo.quality.mapper.QualityReagentStockMapper;
  43. import vip.xiaonuo.quality.service.IQualityReagentService;
  44. import vip.xiaonuo.quality.service.IQualityReagentStockService;
  45. import java.util.Date;
  46. import java.util.List;
  47. /**
  48. * 主测试类
  49. *
  50. * @author xuyuxiang
  51. * @date 2022/9/17 17:09
  52. */
  53. @RunWith(SpringRunner.class)
  54. @SpringBootTest(classes = Application.class)
  55. public class Bdest {
  56. @Autowired
  57. private RestTemplate restTemplate;
  58. @Autowired
  59. private ErpBdOrgMapper erpBdOrgMapper;
  60. @Autowired
  61. private ErpBdMaterialMapper erpBdMaterialMapper;
  62. @Autowired
  63. private ErpBdDepartmentMapper erpBdDepartmentMapper;
  64. @Autowired
  65. private ProduceLocationMapper produceLocationMapper;
  66. @Autowired
  67. private QualityReagentStockMapper qualityReagentStockMapper;
  68. @Autowired
  69. private ErpBdQuailMapper erpBdQuailMapper;
  70. @Autowired
  71. private QualityFenxibaogaoMapper qualityFenxibaogaoMapper;
  72. @Autowired
  73. private ErpBdRawMaterialMapper erpBdRawMaterialMapper;
  74. // private IQualityReagentService produceLocationMapper;
  75. //获取质量 所有记录
  76. @Test
  77. public void test6(){
  78. ResponseEntity<List<ErpQualiQm>> response = restTemplate.exchange(
  79. "http://127.0.0.1:9200/erp-bd-org/getQuailIbit",
  80. HttpMethod.GET,
  81. null,
  82. new ParameterizedTypeReference<List<ErpQualiQm>>() {}
  83. );
  84. List<ErpQualiQm> forObjects = response.getBody();
  85. for (ErpQualiQm erpMaterial : forObjects) {
  86. ErpBdOrg forgid = erpBdOrgMapper.selectOne(new QueryWrapper<ErpBdOrg>().eq("forgid", erpMaterial.getFINSPECTORGID()));
  87. if (ObjectUtil.isEmpty(forgid))
  88. continue;
  89. QualityFenxibaogao qualityFenxibaogao = new QualityFenxibaogao();
  90. String fworkshopid = erpMaterial.getFWORKSHOPID();
  91. //车间
  92. ErpBdDepartment fdeptid = erpBdDepartmentMapper.selectOne(new QueryWrapper<ErpBdDepartment>().eq("fdeptid", fworkshopid));
  93. if(ObjectUtil.isNotEmpty(fdeptid)){
  94. qualityFenxibaogao.setCheJianName(fdeptid.getFname());
  95. }
  96. qualityFenxibaogao.setInspecDate( erpMaterial.getInspectStartDate());
  97. qualityFenxibaogao.setInspecItems(erpMaterial.getFbglremarks());
  98. qualityFenxibaogao.setInspecNum(erpMaterial.getFBILLNO());
  99. qualityFenxibaogao.setInspecResults("合格");
  100. qualityFenxibaogao.setInspecStandards(erpMaterial.getFbgltext16());
  101. qualityFenxibaogao.setManufBatchNum(erpMaterial.getFLOT());
  102. qualityFenxibaogao.setMaterialName(erpMaterial.getFname());
  103. qualityFenxibaogao.setOrgId(forgid.getOrgId());
  104. //生产单位
  105. ErpBdDepartment fdeptid1 = erpBdDepartmentMapper.selectOne(new QueryWrapper<ErpBdDepartment>().eq("fdeptid", erpMaterial.getFINSPECTDEPID()));
  106. if(ObjectUtil.isNotEmpty(fdeptid1)){
  107. qualityFenxibaogao.setProductionUnit(fdeptid1.getFname());
  108. }
  109. qualityFenxibaogao.setQualityType(0);
  110. qualityFenxibaogao.setQuantity(erpMaterial.getFINSPECTQTY());
  111. qualityFenxibaogao.setReportDate(erpMaterial.getInspectEndDate());
  112. qualityFenxibaogao.setSelfBatchNum(erpMaterial.getFBILLNO());
  113. qualityFenxibaogao.setSampDate(erpMaterial.getInspectStartDate());
  114. // qualityFenxibaogao.setSpec();
  115. qualityFenxibaogao.setSpecificOtation(erpMaterial.getFbgltext20());
  116. qualityFenxibaogaoMapper.insert(qualityFenxibaogao);
  117. }
  118. }
  119. //获取车间
  120. @Test
  121. public void test2(){
  122. List<ErpBdDepartment> erpBdDepartments = erpBdDepartmentMapper.selectList(new QueryWrapper<ErpBdDepartment>().like("fname","车间"));
  123. for (ErpBdDepartment erpBdDepartment : erpBdDepartments) {
  124. ProduceLocation produceLocation = new ProduceLocation();
  125. produceLocation.setOrgId(erpBdDepartment.getOrgId());
  126. produceLocation.setLocationName(erpBdDepartment.getFname());
  127. produceLocation.setOrgName(erpBdDepartment.getFfullname());
  128. produceLocation.setLocationId(erpBdDepartment.getFdeptid());
  129. produceLocationMapper.insert(produceLocation);
  130. }
  131. }
  132. //获取质量检验项目
  133. @Test
  134. public void test5(){
  135. ResponseEntity<List<ErpBdQuail>> response = restTemplate.exchange(
  136. "http://127.0.0.1:9200/erp-bd-org/getQuail",
  137. HttpMethod.GET,
  138. null,
  139. new ParameterizedTypeReference<List<ErpBdQuail>>() {}
  140. );
  141. List<ErpBdQuail> forObjects = response.getBody();
  142. for (ErpBdQuail erpMaterial : forObjects) {
  143. ErpBdOrg forgid = erpBdOrgMapper.selectOne(new QueryWrapper<ErpBdOrg>().eq("forgid", erpMaterial.getFuseorgid()));
  144. if (ObjectUtil.isEmpty(forgid))
  145. continue;
  146. erpMaterial.setOrgId(forgid.getOrgId());
  147. erpMaterial.setCreateTime(new Date());
  148. // qualityReagentStock.setStock();
  149. erpBdQuailMapper.insert(erpMaterial);
  150. }
  151. }
  152. //获取试剂
  153. @Test
  154. public void test4(){
  155. ResponseEntity<List<ErpMaterial>> response = restTemplate.exchange(
  156. "http://127.0.0.1:9200/erp-bd-org/getReagent",
  157. HttpMethod.GET,
  158. null,
  159. new ParameterizedTypeReference<List<ErpMaterial>>() {}
  160. );
  161. List<ErpMaterial> forObjects = response.getBody();
  162. for (ErpMaterial erpMaterial : forObjects) {
  163. ErpBdOrg forgid = erpBdOrgMapper.selectOne(new QueryWrapper<ErpBdOrg>().eq("forgid", erpMaterial.getFacctorgid()));
  164. if (ObjectUtil.isEmpty(forgid))
  165. continue;
  166. QualityReagentStock qualityReagentStock = new QualityReagentStock();
  167. qualityReagentStock.setFnumber(erpMaterial.getFnumber());
  168. qualityReagentStock.setFspecification(erpMaterial.getFspecification());
  169. qualityReagentStock.setOrgId(forgid.getOrgId());
  170. qualityReagentStock.setOrgName(forgid.getFname());
  171. qualityReagentStock.setReagent(erpMaterial.getFname());
  172. // qualityReagentStock.setStock();
  173. qualityReagentStockMapper.insert(qualityReagentStock);
  174. }
  175. }
  176. @Test
  177. public void test1(){
  178. ResponseEntity<List<ErpMaterial>> response = restTemplate.exchange(
  179. "http://127.0.0.1:9200/erp-bd-org/getMaterial",
  180. HttpMethod.GET,
  181. null,
  182. new ParameterizedTypeReference<List<ErpMaterial>>() {}
  183. );
  184. List<ErpMaterial> forObjects = response.getBody();
  185. System.out.println(forObjects);
  186. for (ErpMaterial forObject : forObjects) {
  187. ResponseEntity<List<ErpMaterial>> response2 = restTemplate.exchange(
  188. "http://127.0.0.1:9200/erp-bd-org/getMaterialDetail?fnumber="+forObject.getFnumber(),
  189. HttpMethod.GET,
  190. null,
  191. new ParameterizedTypeReference<List<ErpMaterial>>() {}
  192. );
  193. //二
  194. List<ErpMaterial> forObjects2 = response2.getBody();
  195. System.out.println(forObjects2);
  196. boolean b = false;
  197. //判断有没有下级
  198. for (ErpMaterial erpMaterial : forObjects2) {
  199. if(erpMaterial.getFnumber().contains("0000")){
  200. ErpBdOrg forgid = erpBdOrgMapper.selectOne(new QueryWrapper<ErpBdOrg>().eq("forgid", erpMaterial.getFacctorgid()));
  201. if (ObjectUtil.isEmpty(forgid))
  202. continue;
  203. if (erpBdMaterialMapper.exists(new QueryWrapper<ErpBdMaterial>().eq("erp_fnumber", erpMaterial.getFnumber()).eq("org_id",forgid.getOrgId()))){
  204. continue;
  205. }
  206. ErpBdMaterial erpBaseMaterial = new ErpBdMaterial();
  207. erpBaseMaterial.setErpFnumber(erpMaterial.getFnumber());
  208. erpBaseMaterial.setOrgId(forgid.getOrgId());
  209. erpBaseMaterial.setFname(erpMaterial.getFname());
  210. erpBaseMaterial.setFspecification(erpMaterial.getFspecification());
  211. erpBaseMaterial.setUnit("kg");
  212. erpBaseMaterial.setConver("1");
  213. erpBaseMaterial.setParent(0);
  214. erpBdMaterialMapper.insert(erpBaseMaterial);
  215. b =true;
  216. }
  217. }
  218. //有下级
  219. if (b){
  220. for (ErpMaterial erpMaterial : forObjects2) {
  221. if(!erpMaterial.getFnumber().contains("0000")){
  222. ErpBdOrg forgid = erpBdOrgMapper.selectOne(new QueryWrapper<ErpBdOrg>().eq("forgid", erpMaterial.getFacctorgid()));
  223. if (ObjectUtil.isEmpty(forgid))
  224. continue;
  225. if (erpBdMaterialMapper.exists(new QueryWrapper<ErpBdMaterial>().eq("erp_fnumber", erpMaterial.getFnumber()).eq("org_id",forgid.getOrgId()))){
  226. continue;
  227. }
  228. ErpBdMaterial erpBaseMaterial = new ErpBdMaterial();
  229. erpBaseMaterial.setErpFnumber(erpMaterial.getFnumber());
  230. erpBaseMaterial.setOrgId(forgid.getOrgId());
  231. erpBaseMaterial.setFname(erpMaterial.getFname());
  232. erpBaseMaterial.setFspecification(erpMaterial.getFspecification());
  233. erpBaseMaterial.setUnit("kg");
  234. erpBaseMaterial.setConver("1");
  235. ErpBdMaterial erpBdMaterial = erpBdMaterialMapper.selectOne(new QueryWrapper<ErpBdMaterial>().
  236. eq("erp_fnumber", forObject.getFnumber() + "0000").eq("org_id", forgid.getOrgId()));
  237. if (ObjectUtil.isEmpty(erpBdMaterial)){
  238. continue;
  239. }
  240. erpBaseMaterial.setParent(erpBdMaterial.getId());
  241. erpBdMaterialMapper.insert(erpBaseMaterial);
  242. }
  243. }
  244. } else {
  245. for (ErpMaterial erpMaterial : forObjects2) {
  246. ErpBdOrg forgid = erpBdOrgMapper.selectOne(new QueryWrapper<ErpBdOrg>().eq("forgid", erpMaterial.getFacctorgid()));
  247. if (ObjectUtil.isEmpty(forgid))
  248. continue;
  249. if (erpBdMaterialMapper.exists(new QueryWrapper<ErpBdMaterial>().eq("erp_fnumber", erpMaterial.getFnumber()).eq("org_id",forgid.getOrgId()))){
  250. continue;
  251. }
  252. ErpBdMaterial erpBaseMaterial = new ErpBdMaterial();
  253. erpBaseMaterial.setErpFnumber(erpMaterial.getFnumber());
  254. erpBaseMaterial.setOrgId(forgid.getOrgId());
  255. erpBaseMaterial.setFname(erpMaterial.getFname());
  256. erpBaseMaterial.setFspecification(erpMaterial.getFspecification());
  257. erpBaseMaterial.setParent(0);
  258. erpBaseMaterial.setUnit("kg");
  259. erpBaseMaterial.setConver("1");
  260. erpBdMaterialMapper.insert(erpBaseMaterial);
  261. ErpBdMaterial erpBaseMaterial1 = new ErpBdMaterial();
  262. erpBaseMaterial1.setErpFnumber(erpMaterial.getFnumber());
  263. erpBaseMaterial1.setOrgId(forgid.getOrgId());
  264. erpBaseMaterial1.setFname(erpMaterial.getFname());
  265. erpBaseMaterial1.setFspecification(erpMaterial.getFspecification());
  266. erpBaseMaterial1.setParent(erpBaseMaterial.getId());
  267. erpBaseMaterial1.setUnit("kg");
  268. erpBaseMaterial1.setConver("1");
  269. erpBdMaterialMapper.insert(erpBaseMaterial1);
  270. }
  271. }
  272. }
  273. }
  274. //获取原材料 等
  275. @Test
  276. public void test7(){
  277. ResponseEntity<List<ErpMaterial>> response = restTemplate.exchange(
  278. "http://127.0.0.1:9200/erp-bd-org/getMaterialRaw",
  279. HttpMethod.GET,
  280. null,
  281. new ParameterizedTypeReference<List<ErpMaterial>>() {}
  282. );
  283. List<ErpMaterial> forObjects = response.getBody();
  284. System.out.println(forObjects);
  285. for (ErpMaterial erpMaterial : forObjects) {
  286. ErpBdOrg forgid = erpBdOrgMapper.selectOne(new QueryWrapper<ErpBdOrg>().eq("forgid", erpMaterial.getFacctorgid()));
  287. if (ObjectUtil.isEmpty(forgid))
  288. continue;
  289. ErpBdRawMaterial erpBdRawMaterial = new ErpBdRawMaterial();
  290. erpBdRawMaterial.setFspecification(erpMaterial.getFspecification());
  291. erpBdRawMaterial.setOrgId(forgid.getOrgId());
  292. erpBdRawMaterial.setErpFnumber(erpMaterial.getFnumber());
  293. erpBdRawMaterial.setFname(erpMaterial.getFname());
  294. erpBdRawMaterial.setMaterialType(getType(erpMaterial.getFnumber()));
  295. erpBdRawMaterial.setMateralId(erpMaterial.getFMATERIALID());
  296. erpBdRawMaterialMapper.insert(erpBdRawMaterial);
  297. }
  298. }
  299. private Integer getType(String erpFunmber) {
  300. if (erpFunmber.startsWith("01"))
  301. return 1;
  302. else if (erpFunmber.startsWith("10"))
  303. return 0;
  304. else if (erpFunmber.startsWith("11"))
  305. return 3;
  306. else if (erpFunmber.startsWith("15"))
  307. return 2;
  308. else
  309. return 4;
  310. }
  311. }