diff --git a/src/main/java/com/utopiaindustries/controller/JobCardController.java b/src/main/java/com/utopiaindustries/controller/JobCardController.java index 5e3dfa8..23c5175 100644 --- a/src/main/java/com/utopiaindustries/controller/JobCardController.java +++ b/src/main/java/com/utopiaindustries/controller/JobCardController.java @@ -144,7 +144,6 @@ public class JobCardController { @PathVariable long id, RedirectAttributes redirectAttributes, Model model ){ - try { jobCard.setStatus(JobCard.Status.POSTED.name() ); jobCardService.save( jobCard ); @@ -160,13 +159,18 @@ public class JobCardController { Model model ){ List jobCardItems = jobCardService.findJobCardItemByJobCardId(id); List jobCardItemIds = jobCardItems.stream() + .map(JobCardItem::getItemId) + .collect(Collectors.toList()); + List itemIds = jobCardItems.stream() .map(JobCardItem::getId) .collect(Collectors.toList()); model.addAttribute( "card", jobCardService.findByID(id)); model.addAttribute("jobCardItems", jobCardItems); - model.addAttribute("cutPiece",jobCardService.findCutPieceByJobCardItemIds(jobCardItemIds)); + model.addAttribute("cutPiece",jobCardService.findCutPieceByJobCardItemIds(itemIds)); model.addAttribute("finishItem",jobCardService.findFinishItemByJobCardId(id)); model.addAttribute("stitchingItem",jobCardService.findStitchItemByJobCardId(id)); + model.addAttribute("totalFinishItem",jobCardService.totalFinishItem(jobCardItemIds, id)); + model.addAttribute("totalStitchingItem",jobCardService.totalStitchingItem(jobCardItemIds, id)); return "job-card-view"; } diff --git a/src/main/java/com/utopiaindustries/dao/ctp/FinishedItemDAO.java b/src/main/java/com/utopiaindustries/dao/ctp/FinishedItemDAO.java index 56c489c..7142c09 100644 --- a/src/main/java/com/utopiaindustries/dao/ctp/FinishedItemDAO.java +++ b/src/main/java/com/utopiaindustries/dao/ctp/FinishedItemDAO.java @@ -10,6 +10,7 @@ import org.springframework.jdbc.support.KeyHolder; import org.springframework.stereotype.Repository; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; @Repository @@ -25,6 +26,7 @@ public class FinishedItemDAO { private final String INSERT_QUERY = String.format( "INSERT INTO %s (id, item_id, sku, barcode, created_at, created_by, job_card_id, is_qa, stitched_item_id, is_segregated, qa_status) VALUES (:id, :item_id, :sku, :barcode, :created_at, :created_by, :job_card_id, :is_qa, :stitched_item_id, :is_segregated, :qa_status) ON DUPLICATE KEY UPDATE item_id = VALUES(item_id), sku = VALUES(sku), barcode = VALUES(barcode), created_at = VALUES(created_at), created_by = VALUES(created_by), job_card_id = VALUES(job_card_id), is_qa = VALUES(is_qa), stitched_item_id = VALUES(stitched_item_id), is_segregated = VALUES(is_segregated), qa_status = VALUES(qa_status)", TABLE_NAME ); private final String SELECT_BY_LIMIT = String.format("SELECT * FROM %s ORDER BY id DESC LIMIT :limit", TABLE_NAME ); private final String SELECT_BY_IDS = String.format( "SELECT * FROM %s WHERE id IN (:ids)", TABLE_NAME ); + private final String FIND_TOTAL_COUNT = String.format("SELECT COUNT(*) FROM %s where job_card_id = :job_card_id And item_id = :item_id", TABLE_NAME ); private final String SELECT_BY_TERM = String.format( "SELECT * FROM %s WHERE barcode LIKE :term AND is_segregated = :is_segregated ORDER BY ID DESC", TABLE_NAME ); private final String SELECT_BY_STITCHED_ITEM_ID = String.format( "SELECT * FROM %s WHERE stitched_item_id = :stitched_item_id", TABLE_NAME ); private final String SELECT_BY_STITCHED_ITEM_IDS = String.format( "SELECT * FROM %s WHERE stitched_item_id IN (:stitched_item_ids)", TABLE_NAME ); @@ -135,6 +137,20 @@ public class FinishedItemDAO { } + public HashMap findTotalCount(List itemIds, long jobCardId) { + HashMap totalCounts = new HashMap<>(); + MapSqlParameterSource params = new MapSqlParameterSource(); + for (long id : itemIds) { + params.addValue("job_card_id", jobCardId); + params.addValue("item_id", id); + Long total = namedParameterJdbcTemplate.queryForObject(FIND_TOTAL_COUNT, params, Long.class); + if (total != null) { + totalCounts.put(id, total); + } + } + return totalCounts; + } + public List findByStitchedItemIds( List stitchedItemIds ){ if( stitchedItemIds == null || stitchedItemIds.isEmpty() ) return new ArrayList<>(); MapSqlParameterSource params = new MapSqlParameterSource(); diff --git a/src/main/java/com/utopiaindustries/dao/ctp/StitchingOfflineItemDAO.java b/src/main/java/com/utopiaindustries/dao/ctp/StitchingOfflineItemDAO.java index b8887b4..a5c8c5d 100644 --- a/src/main/java/com/utopiaindustries/dao/ctp/StitchingOfflineItemDAO.java +++ b/src/main/java/com/utopiaindustries/dao/ctp/StitchingOfflineItemDAO.java @@ -9,6 +9,7 @@ import org.springframework.jdbc.support.KeyHolder; import org.springframework.stereotype.Repository; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; @Repository @@ -23,6 +24,7 @@ public class StitchingOfflineItemDAO { private final String DELETE_QUERY = String.format( "DELETE FROM %s WHERE id = :id", TABLE_NAME ); private final String INSERT_QUERY = String.format( "INSERT INTO %s (id, item_id, sku, barcode, created_at, created_by, job_card_id, is_qa, qa_remarks, qa_status) VALUES (:id, :item_id, :sku, :barcode, :created_at, :created_by, :job_card_id, :is_qa, :qa_remarks, :qa_status) ON DUPLICATE KEY UPDATE item_id = VALUES(item_id), sku = VALUES(sku), barcode = VALUES(barcode), created_at = VALUES(created_at), created_by = VALUES(created_by), job_card_id = VALUES(job_card_id), is_qa = VALUES(is_qa), qa_remarks = VALUES(qa_remarks), qa_status = VALUES(qa_status)", TABLE_NAME ); private final String SELECT_BY_LIMIT = String.format("SELECT * FROM %s ORDER BY id DESC LIMIT :limit", TABLE_NAME ); + private final String FIND_TOTAL_COUNT = String.format("SELECT COUNT(*) FROM %s where job_card_id = :job_card_id And item_id = :item_id", TABLE_NAME ); private final String SELECT_BY_IDS = String.format( "SELECT * FROM %s WHERE id IN (:ids)", TABLE_NAME ); private final String SELECT_BY_TERM = String.format( "SELECT * FROM %s WHERE barcode LIKE :term ORDER BY ID DESC", TABLE_NAME ); private final String SELECT_BY_MASTER_ID = String.format( "SELECT * FROM %s WHERE job_card_id = :job_card_id", TABLE_NAME ); @@ -122,4 +124,20 @@ public class StitchingOfflineItemDAO { params.addValue("job_card_id", masterId ); return namedParameterJdbcTemplate.query( SELECT_BY_MASTER_ID , params, new StitchingOfflineItemRowMapper() ); } + + public HashMap findTotalCount(List itemIds, long jobCardId) { + HashMap totalCounts = new HashMap<>(); + MapSqlParameterSource params = new MapSqlParameterSource(); + for (long id : itemIds) { + params.addValue("job_card_id", jobCardId); + params.addValue("item_id", id); + Long total = namedParameterJdbcTemplate.queryForObject(FIND_TOTAL_COUNT, params, Long.class); + + if (total != null) { + totalCounts.put(id, total); + } + } + return totalCounts; + } + } diff --git a/src/main/java/com/utopiaindustries/service/JobCardService.java b/src/main/java/com/utopiaindustries/service/JobCardService.java index 171adb1..aa50ab6 100644 --- a/src/main/java/com/utopiaindustries/service/JobCardService.java +++ b/src/main/java/com/utopiaindustries/service/JobCardService.java @@ -16,6 +16,7 @@ import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.function.Function; @@ -277,7 +278,16 @@ public class JobCardService { public List findFinishItemByJobCardId( long jobCardId ){ return finishedItemDAO.findByJobCardId( jobCardId ); } + public List findStitchItemByJobCardId( long jobCardId ){ return stitchingOfflineItemDAO.findByJobCardId( jobCardId ); } + + public HashMap totalStitchingItem(List itemIds, long jobCardId ){ + return stitchingOfflineItemDAO.findTotalCount( itemIds, jobCardId ); + } + + public HashMap totalFinishItem(List itemIds, long jobCardId ){ + return finishedItemDAO.findTotalCount( itemIds, jobCardId ); + } } diff --git a/src/main/resources/templates/job-card-view.html b/src/main/resources/templates/job-card-view.html index 19b9b70..0575e6f 100644 --- a/src/main/resources/templates/job-card-view.html +++ b/src/main/resources/templates/job-card-view.html @@ -1,6 +1,6 @@ - +
@@ -69,6 +69,8 @@ Expected Production Actual Production Total Production + Total Stitching Item + Total Finish Item Cut Piece Items @@ -80,6 +82,8 @@ + + @@ -97,9 +101,9 @@ - -
Stitching Offline Items + - +
@@ -118,20 +122,23 @@ - + - +
IDad + + +
+ No Data Available
Finish Items - - + diff --git a/src/main/resources/templates/quality-control/qc-items-form.html b/src/main/resources/templates/quality-control/qc-items-form.html index e2f116e..38a0249 100644 --- a/src/main/resources/templates/quality-control/qc-items-form.html +++ b/src/main/resources/templates/quality-control/qc-items-form.html @@ -23,7 +23,7 @@
+ @@ -149,12 +156,17 @@ - - + +
IDad + + + +
+ No Data Available