ProduceServiceImpl.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300
  1. package com.iamberry.rst.service.pts;
  2. import com.iamberry.rst.core.pts.ProcessNode;
  3. import com.iamberry.rst.core.pts.Produce;
  4. import com.iamberry.rst.core.pts.ProduceProcess;
  5. import com.iamberry.rst.core.pts.WechatMp;
  6. import com.iamberry.rst.faces.pts.ProduceService;
  7. import com.iamberry.rst.service.pts.mapper.ProduceMapper;
  8. import com.iamberry.rst.util.ProduceNoUtil;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.stereotype.Service;
  11. import org.springframework.transaction.annotation.Transactional;
  12. import java.util.ArrayList;
  13. import java.util.List;
  14. /**
  15. * 生产产品管理
  16. * Created by wangxiaoming on 2017/8/28.
  17. */
  18. @Service
  19. public class ProduceServiceImpl implements ProduceService {
  20. @Autowired
  21. public ProduceMapper produceMapper;
  22. //获取生产产品列表
  23. public List<Produce> getProduceList() {
  24. Produce produce = new Produce();
  25. return produceMapper.getProduceList(produce);
  26. }
  27. // @Override
  28. // public List<Produce> getAllProduceListToRam() {
  29. // return produceMapper.getAllProduceListToRam();
  30. // }
  31. //获取生产产品列表
  32. public List<Produce> getProduceList(Produce produce) {
  33. return produceMapper.getProduceList(produce);
  34. }
  35. //获取生产产品,产品工序,工序节点
  36. public List<Produce> getAllProduceList(Integer employeeId) {
  37. return produceMapper.getAllProduceList(employeeId);
  38. }
  39. @Override
  40. public Produce getProduce(String produceNo) {
  41. return produceMapper.getProduce(produceNo);
  42. }
  43. //获取单个产品
  44. public Produce getProduce(Produce produce) {
  45. return produceMapper.getProduceByPro(produce);
  46. }
  47. @Override
  48. public ProduceProcess getProduceProcess(Integer produceId, String processNo) {
  49. ProduceProcess produceProcess = new ProduceProcess();
  50. produceProcess.setProduceId(produceId);
  51. produceProcess.setProcessNo(processNo);
  52. return produceMapper.getProduceProcess(produceProcess);
  53. }
  54. @Override
  55. public ProcessNode getprocessNode(Integer ProcessId, String nodeNo) {
  56. ProcessNode processNode = new ProcessNode();
  57. processNode.setProcessId(ProcessId);
  58. processNode.setNodeNo(nodeNo);
  59. return produceMapper.getprocessNode(processNode);
  60. }
  61. @Override
  62. public List<ProduceProcess> listProduceProcess(ProduceProcess produceProcess) {
  63. return produceMapper.selectProcessList(produceProcess);
  64. }
  65. //获取所有的节点操作
  66. public List<ProcessNode> listProcessNode(ProcessNode processNode) {
  67. return produceMapper.listProcessNode(processNode);
  68. }
  69. //添加产品
  70. @Transactional
  71. public Integer saveProduce(Produce produce) {
  72. if (0 == produce.getProduceStatus()) {
  73. produce.setProduceNo(ProduceNoUtil.NO_NUMBER);
  74. } else {
  75. produce.setProduceNo(ProduceNoUtil.getProduceNo(produceMapper));
  76. }
  77. int flag = produceMapper.saveProduce(produce);
  78. Integer produceId = produce.getProduceId(); // 获取产品主键
  79. int sort = 1; //专用排序字段
  80. for (int i = 0; i < produce.getProcess().size(); i++) {
  81. produce.getProcess().get(i).setProduceId(produceId); //产品id
  82. produce.getProcess().get(i).setProcessNo(ProduceNoUtil.getProcessNo(i)); //工序编号
  83. produce.getProcess().get(i).setProcessStatus(1); //状态
  84. if (produce.getProcess().get(i).getProcessType() == 2) { //修理工序的排序字段为99
  85. produce.getProcess().get(i).setProcessSort(99); //排序字段
  86. } else {
  87. produce.getProcess().get(i).setProcessSort(sort); //排序字段
  88. sort++;
  89. }
  90. ProduceProcess produceProcess = produce.getProcess().get(i);
  91. this.saveProduceProcess(produceProcess);
  92. Integer processId = produceProcess.getProcessId(); //获取工序主键
  93. for (int j = 0; j < produceProcess.getNodes().size(); j++) {
  94. produceProcess.getNodes().get(j).setProduceId(produceId);
  95. produceProcess.getNodes().get(j).setProcessId(processId);
  96. produceProcess.getNodes().get(j).setNodeNo(ProduceNoUtil.getNodeNo(j)); //节点编号
  97. }
  98. this.saveProcessNodeList(produceProcess.getNodes());
  99. }
  100. return flag;
  101. }
  102. //添加产品工序
  103. public Integer saveProduceProcess(ProduceProcess produceProcesses) {
  104. int flag = produceMapper.saveProduceProcess(produceProcesses);
  105. return flag;
  106. }
  107. //添加产品工序操作
  108. public Integer saveProcessNodeList(List<ProcessNode> processNodeList) {
  109. int flag = 0;
  110. if (processNodeList.size() > 0)
  111. flag = produceMapper.saveProcessNodeList(processNodeList);
  112. return flag;
  113. }
  114. /**
  115. * 修改产品
  116. *
  117. * @param produce
  118. * @return
  119. */
  120. @Transactional
  121. public Integer updateProduce(Produce produce, String delProcessIds, String delNodeIds) {
  122. if (0 == produce.getProduceStatus()) {
  123. produce.setProduceNo(ProduceNoUtil.NO_NUMBER);
  124. } else {
  125. produce.setProduceNo(ProduceNoUtil.getProduceNo(produceMapper));
  126. }
  127. //修改产品
  128. int flag = produceMapper.updateProduce(produce);
  129. //删除的工序
  130. if (delProcessIds != null && !"".equals(delProcessIds)) {
  131. String delProcessId[] = delProcessIds.split(",");
  132. this.delProcess(delProcessId);
  133. }
  134. //删除节点操作
  135. if (delNodeIds != null && !"".equals(delNodeIds)) {
  136. String delNodeId[] = delNodeIds.split(",");
  137. this.delNode(delNodeId);
  138. }
  139. Integer produceId = produce.getProduceId();
  140. int sort = 1; //专用排序字段
  141. List<ProduceProcess> updateProcessList = new ArrayList<ProduceProcess>();
  142. List<ProcessNode> updateNodeList = new ArrayList<ProcessNode>();
  143. List<ProcessNode> addNodeList = new ArrayList<ProcessNode>();
  144. for (int i = 0; i < produce.getProcess().size(); i++) {
  145. ProduceProcess produceProcess = produce.getProcess().get(i);
  146. produceProcess.setProcessNo(ProduceNoUtil.getProcessNo(i)); //工序编号
  147. if (produce.getProcess().get(i).getProcessType() == 2) { //修理工序的排序字段为99
  148. produce.getProcess().get(i).setProcessSort(99); //排序字段
  149. } else {
  150. produce.getProcess().get(i).setProcessSort(sort); //排序字段
  151. sort++;
  152. }
  153. // 新增的工序/操作的id值都为 0 ;
  154. if (0 == produceProcess.getProcessId()) { //新增的节点
  155. produce.getProcess().get(i).setProduceId(produceId); //产品id
  156. produce.getProcess().get(i).setProcessStatus(1); //状态
  157. this.saveProduceProcess(produceProcess);
  158. Integer processId = produceProcess.getProcessId(); //获取工序主键
  159. for (int j = 0; j < produceProcess.getNodes().size(); j++) {
  160. produceProcess.getNodes().get(j).setProduceId(produceId);
  161. produceProcess.getNodes().get(j).setProcessId(processId);
  162. produceProcess.getNodes().get(j).setNodeNo(ProduceNoUtil.getNodeNo(j)); //节点编号
  163. addNodeList.add(produceProcess.getNodes().get(j));
  164. }
  165. } else { //修改节点
  166. Integer processId = produceProcess.getProcessId();
  167. updateProcessList.add(produceProcess);
  168. for (int j = 0; j < produceProcess.getNodes().size(); j++) {
  169. ProcessNode processNode = produceProcess.getNodes().get(j);
  170. if (0 == processNode.getNodeId()) { //新增节点操作1
  171. processNode.setProduceId(produceId);
  172. processNode.setProcessId(processId);
  173. processNode.setNodeNo(ProduceNoUtil.getNodeNo(j));
  174. addNodeList.add(processNode);
  175. } else { //修改节点操作1
  176. processNode.setNodeNo(ProduceNoUtil.getNodeNo(j));
  177. updateNodeList.add(processNode);
  178. }
  179. }
  180. }
  181. }
  182. this.saveProcessNodeList(addNodeList); //添加节点操作
  183. this.updateProcessNodeList(updateNodeList); //修改节点操作
  184. this.updateProcessList(updateProcessList); //修改工序
  185. return flag;
  186. }
  187. /**
  188. * 删除工序
  189. *
  190. * @return
  191. */
  192. public Integer delProcess(String delProcess[]) {
  193. List<ProduceProcess> produceProcessesList = new ArrayList<ProduceProcess>();
  194. for (String processId : delProcess) {
  195. ProduceProcess produceProcess = new ProduceProcess();
  196. produceProcess.setProcessId(Integer.valueOf(processId));
  197. produceProcess.setProcessNo("#"); //删除的工序 编号为#
  198. produceProcess.setProcessStatus(0);
  199. produceProcessesList.add(produceProcess);
  200. }
  201. Integer flag = this.updateProcessList(produceProcessesList);
  202. return flag;
  203. }
  204. /**
  205. * 删除节点操作
  206. *
  207. * @param delNodeId
  208. * @return
  209. */
  210. public Integer delNode(String delNodeId[]) {
  211. Integer flag = produceMapper.delNode(delNodeId);
  212. return flag;
  213. }
  214. /**
  215. * 修改工序
  216. *
  217. * @return
  218. */
  219. public Integer updateProcessList(List<ProduceProcess> produceProcessesList) {
  220. Integer flag = 0;
  221. if (produceProcessesList.size() > 0)
  222. flag = produceMapper.updateProcessList(produceProcessesList);
  223. return flag;
  224. }
  225. /**
  226. * 修改节点操作
  227. *
  228. * @return
  229. */
  230. public Integer updateProcessNodeList(List<ProcessNode> updateNodeList) {
  231. Integer flag = 0;
  232. if (updateNodeList.size() > 0)
  233. flag = produceMapper.updateProcessNodeList(updateNodeList);
  234. return flag;
  235. }
  236. @Override
  237. public List<Produce> listSelectProduct(Produce produce) {
  238. return produceMapper.listSelectProduct(produce);
  239. }
  240. @Override
  241. public Produce getProduceByOne() {
  242. return produceMapper.getProduceByOne();
  243. }
  244. @Override
  245. public ProduceProcess getProduceProcessAndNode(Integer produceId, String processNo) {
  246. return produceMapper.getProduceProcessAndNode(produceId,processNo);
  247. }
  248. @Override
  249. public WechatMp getWechatMpById(Integer wechatMpId) {
  250. return produceMapper.getWechatMpById(wechatMpId);
  251. }
  252. @Override
  253. public List<WechatMp> listWechatMp() {
  254. return produceMapper.listWechatMp();
  255. }
  256. @Override
  257. public List<Produce> listToothInfo() {
  258. return produceMapper.listToothInfo();
  259. }
  260. }