package com.erp.service; import com.erp.common.BaseService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.*; @Service @RequiredArgsConstructor @Slf4j public class ProcessWorkStandardService extends BaseService { private final CommonService commonService; private static final String NS = "processWorkStandard."; public Map getProcessWorkStandardItemList(Map params) { commonService.applyCompanyCodeFilter(params); commonService.applyPagination(params); Integer totalObj = sqlSession.selectOne(NS + "getProcessWorkStandardItemListCnt", params); int totalCount = totalObj != null ? totalObj : 0; List> list = sqlSession.selectList(NS + "getProcessWorkStandardItemList", params); return commonService.buildListResponse(list, totalCount, params); } public List> getProcessWorkStandardRoutingList(Map params) { commonService.applyCompanyCodeFilter(params); return sqlSession.selectList(NS + "getProcessWorkStandardRoutingList", params); } @Transactional public Map setProcessWorkStandardDefaultVersion(Map params) { commonService.applyCompanyCodeFilter(params); sqlSession.update(NS + "setProcessWorkStandardDefaultVersion", params); return params; } @Transactional public Map unsetProcessWorkStandardDefaultVersion(Map params) { commonService.applyCompanyCodeFilter(params); sqlSession.update(NS + "unsetProcessWorkStandardDefaultVersion", params); return params; } public List> getProcessWorkStandardWorkItemList(Map params) { commonService.applyCompanyCodeFilter(params); return sqlSession.selectList(NS + "getProcessWorkStandardWorkItemList", params); } @Transactional public Map insertProcessWorkStandardWorkItem(Map params) { commonService.applyCompanyCodeFilter(params); sqlSession.insert(NS + "insertProcessWorkStandardWorkItem", params); return params; } @Transactional public Map updateProcessWorkStandardWorkItem(Map params) { commonService.applyCompanyCodeFilter(params); sqlSession.update(NS + "updateProcessWorkStandardWorkItem", params); return params; } @Transactional public Map deleteProcessWorkStandardWorkItem(Map params) { commonService.applyCompanyCodeFilter(params); sqlSession.delete(NS + "deleteProcessWorkStandardWorkItem", params); return params; } public List> getProcessWorkStandardWorkItemDetailList(Map params) { commonService.applyCompanyCodeFilter(params); return sqlSession.selectList(NS + "getProcessWorkStandardWorkItemDetailList", params); } @Transactional public Map insertProcessWorkStandardWorkItemDetail(Map params) { commonService.applyCompanyCodeFilter(params); sqlSession.insert(NS + "insertProcessWorkStandardWorkItemDetail", params); return params; } @Transactional public Map updateProcessWorkStandardWorkItemDetail(Map params) { commonService.applyCompanyCodeFilter(params); sqlSession.update(NS + "updateProcessWorkStandardWorkItemDetail", params); return params; } @Transactional public Map deleteProcessWorkStandardWorkItemDetail(Map params) { commonService.applyCompanyCodeFilter(params); sqlSession.delete(NS + "deleteProcessWorkStandardWorkItemDetail", params); return params; } @Transactional @SuppressWarnings("unchecked") public Map saveAllProcessWorkStandard(Map params) { commonService.applyCompanyCodeFilter(params); List> workItems = (List>) params.get("work_items"); if (workItems != null) { for (Map workItem : workItems) { workItem.put("company_code", params.get("company_code")); if (workItem.get("id") != null) { sqlSession.update(NS + "updateProcessWorkStandardWorkItem", workItem); } else { sqlSession.insert(NS + "insertProcessWorkStandardWorkItem", workItem); } List> details = (List>) workItem.get("details"); if (details != null) { for (Map detail : details) { detail.put("company_code", params.get("company_code")); detail.put("work_item_id", workItem.get("id")); if (detail.get("id") != null) { sqlSession.update(NS + "updateProcessWorkStandardWorkItemDetail", detail); } else { sqlSession.insert(NS + "insertProcessWorkStandardWorkItemDetail", detail); } } } } } return params; } public List> getProcessWorkStandardRegisteredItemList(Map params) { commonService.applyCompanyCodeFilter(params); return sqlSession.selectList(NS + "getProcessWorkStandardRegisteredItemList", params); } @Transactional public Map insertProcessWorkStandardRegisteredItem(Map params) { commonService.applyCompanyCodeFilter(params); sqlSession.insert(NS + "insertProcessWorkStandardRegisteredItem", params); return params; } @Transactional @SuppressWarnings("unchecked") public Map insertProcessWorkStandardRegisteredItemBatch(Map params) { commonService.applyCompanyCodeFilter(params); List> items = (List>) params.get("items"); if (items != null) { for (Map item : items) { item.put("company_code", params.get("company_code")); } } sqlSession.insert(NS + "insertProcessWorkStandardRegisteredItemBatch", params); return params; } @Transactional public Map deleteProcessWorkStandardRegisteredItem(Map params) { commonService.applyCompanyCodeFilter(params); sqlSession.delete(NS + "deleteProcessWorkStandardRegisteredItem", params); return params; } }