TWarehouseServiceImpl.java 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258
  1. package com.ruoyi.basicData.service.impl;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.ruoyi.basicData.domain.TWarehouse;
  5. import com.ruoyi.basicData.domain.TWarehouseArea;
  6. import com.ruoyi.basicData.mapper.TWarehouseAreaMapper;
  7. import com.ruoyi.basicData.mapper.TWarehouseMapper;
  8. import com.ruoyi.basicData.service.ITWarehouseService;
  9. import com.ruoyi.common.constant.UserConstants;
  10. import com.ruoyi.common.core.domain.AjaxResult;
  11. import com.ruoyi.common.core.domain.model.LoginUser;
  12. import com.ruoyi.common.utils.DateUtils;
  13. import com.ruoyi.common.utils.StringUtils;
  14. import com.ruoyi.warehouseBusiness.domain.TWarehouseBills;
  15. import com.ruoyi.warehouseBusiness.mapper.TWarehouseBillsMapper;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.stereotype.Service;
  18. import org.springframework.transaction.annotation.Transactional;
  19. import org.springframework.transaction.interceptor.TransactionAspectSupport;
  20. import java.util.Date;
  21. import java.util.HashMap;
  22. import java.util.List;
  23. import java.util.Map;
  24. /**
  25. * 仓库Service业务层处理
  26. *
  27. * @author ruoyi
  28. * @date 2020-12-11
  29. */
  30. @Service
  31. public class TWarehouseServiceImpl implements ITWarehouseService {
  32. @Autowired
  33. private TWarehouseMapper tWarehouseMapper;
  34. @Autowired
  35. private TWarehouseAreaMapper tWarehouseAreaMapper;
  36. @Autowired
  37. private TWarehouseBillsMapper tWarehouseBillsMapper;
  38. /**
  39. * 查询仓库
  40. *
  41. * @param fId 仓库ID
  42. * @return 仓库
  43. */
  44. @Override
  45. public TWarehouse selectTWarehouseById(Long fId) {
  46. return tWarehouseMapper.selectTWarehouseById(fId);
  47. }
  48. @Override
  49. public Map<String, Object> selectTWarehouseById1(Long fId) {
  50. Map<String, Object> map = new HashMap<>();
  51. TWarehouse tWarehouse = tWarehouseMapper.selectTWarehouseById(fId);
  52. if (StringUtils.isNotNull(tWarehouse)) {
  53. map.put("tWarehouse", tWarehouse);
  54. }
  55. TWarehouseArea tWarehouseArea= new TWarehouseArea();
  56. tWarehouseArea.setfWarehouseid(fId);
  57. List<TWarehouseArea> tWarehouseAreaList =tWarehouseAreaMapper.selectTWarehouseAreaList(tWarehouseArea);
  58. if (StringUtils.isNotEmpty(tWarehouseAreaList)) {
  59. map.put("tWarehouseArea", tWarehouseAreaList);
  60. }
  61. return map;
  62. }
  63. /**
  64. * 查询仓库列表
  65. *
  66. * @param tWarehouse 仓库
  67. * @return 仓库
  68. */
  69. @Override
  70. public List<TWarehouse> selectTWarehouseList(TWarehouse tWarehouse) {
  71. return tWarehouseMapper.selectTWarehouseList(tWarehouse);
  72. }
  73. /**
  74. * 新增仓库
  75. *
  76. * @param tWarehouse 仓库
  77. * @return 结果
  78. */
  79. @Override
  80. @Transactional
  81. public int insertTWarehouse(TWarehouse tWarehouse) {
  82. tWarehouse.setCreateTime(DateUtils.getNowDate());
  83. return tWarehouseMapper.insertTWarehouse(tWarehouse);
  84. }
  85. @Override
  86. @Transactional
  87. public AjaxResult insertTWarehouse1(String tWarehouse, String tWarehouseArea, LoginUser loginUser) {
  88. if (StringUtils.isEmpty(tWarehouse)) {
  89. return AjaxResult.error("提交失败:仓库信息为空");
  90. }
  91. if ( StringUtils.isEmpty(tWarehouseArea) && !"[{}]".equals(tWarehouseArea) ) {
  92. return AjaxResult.error("提交失败:库区为空");
  93. }
  94. Long fPid = null;
  95. TWarehouse tWarehouses = JSONArray.parseObject(tWarehouse, TWarehouse.class);
  96. JSONArray jsonArray = JSONArray.parseArray(tWarehouseArea);
  97. List<TWarehouseArea> tWarehouseAreaList = JSONObject.parseArray(jsonArray.toJSONString(), TWarehouseArea.class);
  98. if (StringUtils.isNull(tWarehouses.getfId())) {
  99. tWarehouses.setCreateBy(loginUser.getUser().getUserName());
  100. tWarehouses.setCreateTime(new Date());
  101. tWarehouses.setfStatus("0");
  102. tWarehouseMapper.insertTWarehouse(tWarehouses);
  103. fPid=tWarehouses.getfId();
  104. } else {
  105. fPid=tWarehouses.getfId();
  106. tWarehouses.setUpdateBy(loginUser.getUser().getUserName());
  107. tWarehouses.setUpdateTime(new Date());
  108. if(tWarehouses.getfStatus()!=null && tWarehouses.getfStatus().equals("1") ){
  109. TWarehouseBills tWarehouseBill =new TWarehouseBills();
  110. tWarehouseBill.setfWarehouseid(tWarehouses.getfId());
  111. List<TWarehouseBills> tWarehouseBillList=tWarehouseBillsMapper.selectTWarehousebillsList(tWarehouseBill);
  112. if(tWarehouseBillList!=null && !tWarehouseBillList.isEmpty()){
  113. return AjaxResult.error("仓库在库存总账有记录不可变更状态");
  114. }
  115. }
  116. tWarehouseMapper.updateTWarehouse(tWarehouses);
  117. // tWarehouseAreaMapper.deleteTWarehouseAreaByTWarehoused(fPid);
  118. }
  119. for (TWarehouseArea cc : tWarehouseAreaList) {
  120. if( StringUtils.isNull(cc.getfNo()) ||
  121. StringUtils.isNull(cc.getfName()) ||
  122. StringUtils.isNull(cc.getfAddr()) ){
  123. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  124. return AjaxResult.error("请完善库区明细信息");
  125. }
  126. if(cc.getfId()!=null){
  127. cc.setUpdateBy(loginUser.getUser().getUserName());
  128. cc.setUpdateTime(new Date());
  129. tWarehouseAreaMapper.updateTWarehouseArea(cc);
  130. } else {
  131. cc.setfWarehouseid(fPid);
  132. cc.setfStatus("0");
  133. cc.setCreateBy(loginUser.getUser().getUserName());
  134. cc.setCreateTime(new Date());
  135. tWarehouseAreaMapper.insertTWarehouseArea(cc);
  136. }
  137. }
  138. return AjaxResult.success();
  139. }
  140. /**
  141. * 修改仓库
  142. *
  143. * @param tWarehouse 仓库
  144. * @return 结果
  145. */
  146. @Override
  147. @Transactional
  148. public AjaxResult updateTWarehouse(TWarehouse tWarehouse) {
  149. if(tWarehouse.getfStatus()!=null && tWarehouse.getfStatus().equals("1") ){
  150. TWarehouseBills tWarehouseBill =new TWarehouseBills();
  151. tWarehouseBill.setfWarehouseid(tWarehouse.getfId());
  152. List<TWarehouseBills> tWarehouseBillList=tWarehouseBillsMapper.selectTWarehousebillsList(tWarehouseBill);
  153. if(tWarehouseBillList!=null && !tWarehouseBillList.isEmpty()){
  154. return AjaxResult.error("仓库在库存总账有记录不可变更状态");
  155. }
  156. }
  157. tWarehouse.setUpdateTime(DateUtils.getNowDate());
  158. tWarehouseMapper.updateTWarehouse(tWarehouse);
  159. return AjaxResult.success();
  160. }
  161. /**
  162. * 批量删除仓库
  163. *
  164. * @param fIds 需要删除的仓库ID
  165. * @return 结果
  166. */
  167. @Override
  168. @Transactional
  169. public AjaxResult deleteTWarehouseByIds(Long[] fIds) {
  170. // 查询仓库主表 是否有仓库在使用
  171. int i = 1;
  172. for(Long id:fIds){
  173. TWarehouseBills tWarehouseBill =new TWarehouseBills();
  174. tWarehouseBill.setfWarehouseid(id);
  175. List<TWarehouseBills> tWarehouseBillList=tWarehouseBillsMapper.selectTWarehousebillsList(tWarehouseBill);
  176. if(tWarehouseBillList!=null && !tWarehouseBillList.isEmpty()){
  177. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  178. return AjaxResult.error("仓库第" + i + "行仓库有货物不可删除");
  179. }
  180. tWarehouseMapper.deleteTWarehouseById(id);
  181. i++;
  182. }
  183. // tWarehouseMapper.deleteTWarehouseByIds(fIds);
  184. return AjaxResult.success();
  185. }
  186. /**
  187. * 删除仓库信息
  188. *
  189. * @param fId 仓库ID
  190. * @return 结果
  191. */
  192. @Override
  193. @Transactional
  194. public int deleteTWarehouseById(Long fId) {
  195. return tWarehouseMapper.deleteTWarehouseById(fId);
  196. }
  197. @Override
  198. public String checkUFNoUnique(TWarehouse tWarehouse) {
  199. TWarehouse tWarehouse1 = tWarehouseMapper.checkFNoUnique(tWarehouse.getfNo());
  200. if (StringUtils.isNotNull(tWarehouse1) && tWarehouse1.getfId()!=tWarehouse.getfId()) {
  201. return UserConstants.NOT_UNIQUE;
  202. }
  203. return UserConstants.UNIQUE;
  204. }
  205. @Override
  206. public String checkUFNnameUnique(TWarehouse tWarehouse) {
  207. TWarehouse tWarehouse1 = tWarehouseMapper.checkUFNnameUnique(tWarehouse.getfName());
  208. if (StringUtils.isNotNull(tWarehouse1) && tWarehouse1.getfId()!=tWarehouse.getfId()) {
  209. return UserConstants.NOT_UNIQUE;
  210. }
  211. return UserConstants.UNIQUE;
  212. }
  213. @Override
  214. public String checkUFAaddrUnique(TWarehouse tWarehouse) {
  215. TWarehouse tWarehouse1 = tWarehouseMapper.checkUFAaddrUnique(tWarehouse.getfAddr());
  216. if (StringUtils.isNotNull(tWarehouse1) && tWarehouse1.getfId()!=tWarehouse.getfId()) {
  217. return UserConstants.NOT_UNIQUE;
  218. }
  219. return UserConstants.UNIQUE;
  220. }
  221. @Override
  222. public String checkUFTWarehouseAreaNoUnique(TWarehouseArea tWarehouseAreas) {
  223. TWarehouseArea tWarehouseAreas1 = tWarehouseAreaMapper.checkFNoUnique(tWarehouseAreas.getfNo(),tWarehouseAreas.getfWarehouseid());
  224. if (StringUtils.isNotNull(tWarehouseAreas1) && tWarehouseAreas1.getfId()!=tWarehouseAreas.getfId()) {
  225. return UserConstants.NOT_UNIQUE;
  226. }
  227. return UserConstants.UNIQUE;
  228. }
  229. @Override
  230. public String checkUTWarehouseAreaFNnameUnique(TWarehouseArea tWarehouseAreas) {
  231. TWarehouseArea tWarehouseAreas1 = tWarehouseAreaMapper.checkUFNnameUnique(tWarehouseAreas.getfName(),tWarehouseAreas.getfWarehouseid());
  232. if (StringUtils.isNotNull(tWarehouseAreas1) && tWarehouseAreas1.getfId()!=tWarehouseAreas.getfId()) {
  233. return UserConstants.NOT_UNIQUE;
  234. }
  235. return UserConstants.UNIQUE;
  236. }
  237. }