| | |
| | | {field: 'breakageReason', width: 100,title: t('reportingWorks.breakageReason'), sortable: true,showOverflow:"ellipsis"}, |
| | | {field: 'breakageQuantity', width: 100,title: t('reportingWorks.quantityBroken'), sortable: true}, |
| | | {field: 'responsiblePersonnel', width: 120,title: t('rework.responsibilityInformation'), sortable: true,showOverflow:"ellipsis",filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'childWidth', width: 100, title: t('order.width'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'childHeight', width: 100, title: t('order.height'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'thickness',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, width: 90, title: t('order.totalThickness')}, |
| | | {field: 'area',width: 100, title: t('reportingWorks.wornArea'), sortable: true}, |
| | | {field: 'creator',width: 120, title: t('product.creator'), sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'project', width: 120,title: t('order.project'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | |
| | | {field: 'creator',width: 120, title: t('product.creator'), sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'childWidth', width: 100, title: t('order.width'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'childHeight', width: 100, title: t('order.height'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'thickness',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, width: 90, title: t('order.totalThickness')}, |
| | | {field: 'breakageQuantity', width: 120, title: t('reportingWorks.quantityBroken')}, |
| | | {field: 'area', width: 120, title: t('reportingWorks.wornArea')}, |
| | | {field: 'personnel', width: 120, title: t('reportingWorks.responsiblePersonnel')}, |
| | |
| | | data:[],//表格数据 |
| | | url :'/report/damageReport', |
| | | exportUrl :'/report/exportDamageReport', |
| | | exportName:t('report.crossProcessBreakdown'), |
| | | exportName:t('report.secondaryBrokenTotal'), |
| | | footList:['breakageQuantity','area'] |
| | | }) |
| | | |
| | |
| | | {field: 'breakageReason', width: 100,title: t('reportingWorks.breakageReason'), sortable: true,showOverflow:"ellipsis"}, |
| | | {field: 'breakageQuantity', width: 100,title: t('reportingWorks.quantityBroken'), sortable: true}, |
| | | {field: 'responsiblePersonnel', width: 120,title: t('rework.responsibilityInformation'), sortable: true,showOverflow:"ellipsis",filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'childWidth', width: 100, title: t('order.width'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'childHeight', width: 100, title: t('order.height'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'thickness',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, width: 90, title: t('order.totalThickness')}, |
| | | {field: 'area',width: 100, title: t('reportingWorks.wornArea'), sortable: true}, |
| | | {field: 'creator',width: 120, title: t('product.creator'), sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'project', width: 120,title: t('order.project'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | |
| | | data:[],//表格数据 |
| | | url :'/report/notCrossProcessBreaking', |
| | | exportUrl :'/report/exportNotCrossProcessBreaking', |
| | | exportName:t('report.crossProcessBreakdown'), |
| | | exportName:t('report.notCrossProcessBreakdown'), |
| | | footList:['breakageQuantity','area'] |
| | | }) |
| | | |
| | |
| | | } |
| | | @ApiOperation("跨工序次破报表导出") |
| | | @PostMapping("/exportCrossProcessBreaking") |
| | | public void exportCrossProcessBreaking(HttpServletResponse response, @RequestBody List<LocalDate> dates) throws IOException, IllegalAccessException, InstantiationException { |
| | | public void exportCrossProcessBreaking(HttpServletResponse response, @RequestBody List<String> dates) throws IOException, IllegalAccessException, InstantiationException { |
| | | //参数:相应的数据,实体类信息,相应的方法(数据获取),生成的excel名字 |
| | | DownExcel.download(response, CrossProcessBreakingDTO.class, reportService.exportCrossProcessBreakingSv(dates), "CrossProcessBreaking"); |
| | | } |
| | | |
| | | @ApiOperation("非跨工序次破报表导出") |
| | | @PostMapping("/exportNotCrossProcessBreaking") |
| | | public void exportNotCrossProcessBreaking(HttpServletResponse response, @RequestBody List<LocalDate> dates) throws IOException, IllegalAccessException, InstantiationException { |
| | | public void exportNotCrossProcessBreaking(HttpServletResponse response, @RequestBody List<String> dates) throws IOException, IllegalAccessException, InstantiationException { |
| | | //参数:相应的数据,实体类信息,相应的方法(数据获取),生成的excel名字 |
| | | DownExcel.download(response, CrossProcessBreakingDTO.class, reportService.exportNotCrossProcessBreakingSv(dates), "CrossProcessBreaking"); |
| | | } |
| | | |
| | | @ApiOperation("次破明细报表导出") |
| | | @PostMapping("/exportDamageReport") |
| | | public void exportDamageReport(HttpServletResponse response, @RequestBody Map<String, Object> dates) throws IOException, IllegalAccessException, InstantiationException { |
| | | public void exportDamageReport(HttpServletResponse response, @RequestBody List<String> dates) throws IOException, IllegalAccessException, InstantiationException { |
| | | //参数:相应的数据,实体类信息,相应的方法(数据获取),生成的excel名字 |
| | | DownExcel.download(response, DamageReportDTO.class, reportService.exportDamageReportSv(dates), "DamageReport"); |
| | | } |
| | |
| | | private String creator; |
| | | @ExcelProperty("报工编号") |
| | | private String reportingWorkId; |
| | | @ExcelProperty("厚度") |
| | | private String thickness; |
| | | @ExcelProperty("宽") |
| | | private Double childWidth; |
| | | @ExcelProperty("高") |
| | | private Double childHeight; |
| | | } |
| | |
| | | private String creator; |
| | | @ExcelProperty("报工编号") |
| | | private String reportingWorkId; |
| | | @ExcelProperty("厚度") |
| | | private String thickness; |
| | | } |
| | |
| | | private Double incompleteArea; |
| | | @ExcelProperty("成品名称") |
| | | private String productName; |
| | | @ExcelProperty("厚度") |
| | | private String thickness; |
| | | } |
| | |
| | | |
| | | import java.sql.Date; |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | |
| | | |
| | | List<Map<String, String>> rawMaterialRequisitionMp(Date selectTime1, Date selectTime2, Report report); |
| | | |
| | | List<CrossProcessBreakingDTO> exportCrossProcessBreakingMp(List<LocalDate> dates); |
| | | List<CrossProcessBreakingDTO> exportCrossProcessBreakingMp(List<String> dates); |
| | | |
| | | List<CrossProcessBreakingDTO> exportNotCrossProcessBreakingMp(List<LocalDate> dates); |
| | | List<CrossProcessBreakingDTO> exportNotCrossProcessBreakingMp(List<LocalDateTime> dates); |
| | | |
| | | Map<String, Integer> getDamageReportPageTotal(Integer offset, Integer pageSize, String selectTime1, String selectTime2, DamageReportDTO damageReportDTO); |
| | | |
| | | List<DamageReportDTO> exportDamageReportMp(List<LocalDate> dates); |
| | | List<DamageReportDTO> exportDamageReportMp(List<LocalDateTime> dates); |
| | | |
| | | List<OrderPlanDecompositionDTO> exportOrderPlanDecompositionMp(List<LocalDate> dates); |
| | | |
| | |
| | | import com.example.erp.entity.pp.Report; |
| | | import com.example.erp.mapper.pp.*; |
| | | import com.example.erp.mapper.sd.*; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.StringUtils; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | |
| | | import javax.annotation.PreDestroy; |
| | | import javax.annotation.Resource; |
| | |
| | | return map; |
| | | } |
| | | |
| | | public List exportCrossProcessBreakingSv(List<LocalDate> dates) { |
| | | public List exportCrossProcessBreakingSv(List<String> dates) { |
| | | DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); |
| | | |
| | | List<LocalDateTime> dateTimeList = dates.stream() |
| | | .map(s -> LocalDateTime.parse(s, formatter)) |
| | | .collect(Collectors.toList()); |
| | | return reportMapper.exportCrossProcessBreakingMp(dates); |
| | | } |
| | | |
| | | public List exportNotCrossProcessBreakingSv(List<LocalDate> dates) { |
| | | return reportMapper.exportNotCrossProcessBreakingMp(dates); |
| | | public List exportNotCrossProcessBreakingSv(List<String> dates) { |
| | | DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); |
| | | |
| | | List<LocalDateTime> dateTimeList = dates.stream() |
| | | .map(s -> LocalDateTime.parse(s, formatter)) |
| | | .collect(Collectors.toList()); |
| | | return reportMapper.exportNotCrossProcessBreakingMp(dateTimeList); |
| | | } |
| | | |
| | | // public List exportTeamOutputSv(Map<String, Object> dates) { |
| | |
| | | // String laminating = reportMapper.getLaminating(process); |
| | | // return reportMapper.exportTeamOutputMp(date,process,laminating); |
| | | // } |
| | | public List exportDamageReportSv(Map<String, Object> dates) { |
| | | List<LocalDate> date= (List<LocalDate>) dates.get("date"); |
| | | return reportMapper.exportDamageReportMp(date); |
| | | public List exportDamageReportSv(List<String> dates) { |
| | | DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); |
| | | |
| | | List<LocalDateTime> dateTimeList = dates.stream() |
| | | .map(s -> LocalDateTime.parse(s, formatter)) |
| | | .collect(Collectors.toList()); |
| | | |
| | | // 这里用 LocalDateTime 去调用 mapper |
| | | return reportMapper.exportDamageReportMp(dateTimeList); |
| | | } |
| | | |
| | | public List exportOrderPlanDecompositionSv(List<LocalDate> dates) { |
| | |
| | | JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S01' )) AS code, |
| | | CONCAT(rw.process_id,'/',GROUP_CONCAT(distinct dd.technology_number SEPARATOR '')) as process_id, |
| | | rw.creator, |
| | | rw.reporting_work_id |
| | | rw.reporting_work_id, |
| | | ogd.child_width, |
| | | ogd.child_height, |
| | | JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) as thickness |
| | | from |
| | | sd.`order` as o left join sd.order_detail as od on o.order_id=od.order_id |
| | | left join sd.order_glass_detail as ogd on ogd.order_id=od.order_id and ogd.order_number=od.order_number |
| | | left join pp.reporting_work as rw on rw.order_id=o.order_id |
| | | left join pp.damage_details as dd on dd.reporting_work_id=rw.reporting_work_id and dd.order_number=ogd.order_number |
| | | and dd.technology_number=ogd.technology_number |
| | | left join sd.product_detail as pd on pd.prod_id=od.product_id |
| | | where (rw.reporting_work_time) >= #{startDate} |
| | | and (rw.reporting_work_time) <= #{endDate} |
| | | and rw.this_worn_quantity > 0 |
| | |
| | | <if test="crossProcessBreakingDTO.reportingWorkId != null and crossProcessBreakingDTO.reportingWorkId != ''"> |
| | | and rw.reporting_work_id like concat('%', #{crossProcessBreakingDTO.reportingWorkId}, '%') |
| | | </if> |
| | | <if test="crossProcessBreakingDTO.childWidth != null and crossProcessBreakingDTO.childWidth != ''"> |
| | | and ogd.child_width regexp REGEXP_REPLACE(#{crossProcessBreakingDTO.childWidth},'\\.0+$','') |
| | | </if> |
| | | <if test="crossProcessBreakingDTO.childHeight != null and crossProcessBreakingDTO.childHeight != ''"> |
| | | and ogd.child_height regexp REGEXP_REPLACE(#{crossProcessBreakingDTO.childHeight},'\\.0+$','') |
| | | </if> |
| | | <if test="crossProcessBreakingDTO.thickness != null and crossProcessBreakingDTO.thickness != ''"> |
| | | and JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) like concat('%', #{crossProcessBreakingDTO.thickness}, '%') |
| | | </if> |
| | | GROUP BY dd.id |
| | | order by dd.id desc |
| | | limit #{offset},#{pageSize} |
| | |
| | | JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S01' )) AS code, |
| | | CONCAT(rw.process_id,'/',GROUP_CONCAT(distinct dd.technology_number SEPARATOR '')) as process_id, |
| | | rw.creator, |
| | | rw.reporting_work_id |
| | | rw.reporting_work_id, |
| | | ogd.child_width, |
| | | ogd.child_height, |
| | | JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) as thickness |
| | | from |
| | | sd.`order` as o left join sd.order_detail as od on o.order_id=od.order_id |
| | | left join sd.order_glass_detail as ogd on ogd.order_id=od.order_id and ogd.order_number=od.order_number |
| | | left join pp.reporting_work as rw on rw.order_id=o.order_id |
| | | left join pp.damage_details as dd on dd.reporting_work_id=rw.reporting_work_id and dd.order_number=ogd.order_number |
| | | and dd.technology_number=ogd.technology_number |
| | | left join sd.product_detail as pd on pd.prod_id=od.product_id |
| | | where (rw.reporting_work_time) >= #{startDate} |
| | | and (rw.reporting_work_time) <= #{endDate} |
| | | and rw.this_worn_quantity > 0 |
| | |
| | | </if> |
| | | <if test="crossProcessBreakingDTO.reportingWorkId != null and crossProcessBreakingDTO.reportingWorkId != ''"> |
| | | and rw.reporting_work_id like concat('%', #{crossProcessBreakingDTO.reportingWorkId}, '%') |
| | | </if> |
| | | <if test="crossProcessBreakingDTO.childWidth != null and crossProcessBreakingDTO.childWidth != ''"> |
| | | and ogd.child_width regexp REGEXP_REPLACE(#{crossProcessBreakingDTO.childWidth},'\\.0+$','') |
| | | </if> |
| | | <if test="crossProcessBreakingDTO.childHeight != null and crossProcessBreakingDTO.childHeight != ''"> |
| | | and ogd.child_height regexp REGEXP_REPLACE(#{crossProcessBreakingDTO.childHeight},'\\.0+$','') |
| | | </if> |
| | | <if test="crossProcessBreakingDTO.thickness != null and crossProcessBreakingDTO.thickness != ''"> |
| | | and JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) like concat('%', #{crossProcessBreakingDTO.thickness}, '%') |
| | | </if> |
| | | GROUP BY dd.id |
| | | order by dd.id desc |
| | |
| | | <if test="crossProcessBreakingDTO.reportingWorkId != null and crossProcessBreakingDTO.reportingWorkId != ''"> |
| | | and rw.reporting_work_id like concat('%', #{crossProcessBreakingDTO.reportingWorkId}, '%') |
| | | </if> |
| | | <if test="crossProcessBreakingDTO.childWidth != null and crossProcessBreakingDTO.childWidth != ''"> |
| | | and ogd.child_width regexp REGEXP_REPLACE(#{crossProcessBreakingDTO.childWidth},'\\.0+$','') |
| | | </if> |
| | | <if test="crossProcessBreakingDTO.childHeight != null and crossProcessBreakingDTO.childHeight != ''"> |
| | | and ogd.child_height regexp REGEXP_REPLACE(#{crossProcessBreakingDTO.childHeight},'\\.0+$','') |
| | | </if> |
| | | <if test="crossProcessBreakingDTO.thickness != null and crossProcessBreakingDTO.thickness != ''"> |
| | | and JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) like concat('%', #{crossProcessBreakingDTO.thickness}, '%') |
| | | </if> |
| | | order by dd.id desc |
| | | </select> |
| | | |
| | |
| | | </if> |
| | | <if test="crossProcessBreakingDTO.reportingWorkId != null and crossProcessBreakingDTO.reportingWorkId != ''"> |
| | | and rw.reporting_work_id like concat('%', #{crossProcessBreakingDTO.reportingWorkId}, '%') |
| | | </if> |
| | | <if test="crossProcessBreakingDTO.childWidth != null and crossProcessBreakingDTO.childWidth != ''"> |
| | | and ogd.child_width regexp REGEXP_REPLACE(#{crossProcessBreakingDTO.childWidth},'\\.0+$','') |
| | | </if> |
| | | <if test="crossProcessBreakingDTO.childHeight != null and crossProcessBreakingDTO.childHeight != ''"> |
| | | and ogd.child_height regexp REGEXP_REPLACE(#{crossProcessBreakingDTO.childHeight},'\\.0+$','') |
| | | </if> |
| | | <if test="crossProcessBreakingDTO.thickness != null and crossProcessBreakingDTO.thickness != ''"> |
| | | and JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) like concat('%', #{crossProcessBreakingDTO.thickness}, '%') |
| | | </if> |
| | | order by dd.id desc |
| | | </select> |
| | |
| | | ifnull(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')),'') AS glassNumber, |
| | | rw.this_process, |
| | | rw.creator, |
| | | rw.reporting_work_id |
| | | rw.reporting_work_id, |
| | | JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) AS thickness |
| | | FROM |
| | | sd.ORDER AS o |
| | | LEFT JOIN sd.order_glass_detail AS ogd ON ogd.order_id = o.order_id |
| | |
| | | AND dd.order_number = ogd.order_number |
| | | AND dd.technology_number = ogd.technology_number |
| | | left join sd.order_detail as od on o.order_id = od.order_id and od.order_number=ogd.order_number |
| | | left join sd.product_detail as pd on pd.prod_id=od.product_id |
| | | WHERE |
| | | rw.reporting_work_time >= #{selectTime1} |
| | | AND rw.reporting_work_time <= #{selectTime2} |
| | |
| | | </if> |
| | | <if test="damageReportDTO.childHeight != null and damageReportDTO.childHeight != ''"> |
| | | and ogd.child_height regexp REGEXP_REPLACE(#{damageReportDTO.childHeight},'\\.0+$','') |
| | | </if> |
| | | <if test="damageReportDTO.thickness != null and damageReportDTO.thickness != ''"> |
| | | and JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) like concat('%', #{damageReportDTO.thickness}, '%') |
| | | </if> |
| | | GROUP BY |
| | | dd.id |
| | |
| | | AND dd.order_number = ogd.order_number |
| | | AND dd.technology_number = ogd.technology_number |
| | | left join sd.order_detail as od on o.order_id = od.order_id and od.order_number=ogd.order_number |
| | | left join sd.product_detail as pd on pd.prod_id=od.product_id |
| | | WHERE |
| | | rw.reporting_work_time >= #{selectTime1} |
| | | AND rw.reporting_work_time <= #{selectTime2} |
| | |
| | | </if> |
| | | <if test="damageReportDTO.childHeight != null and damageReportDTO.childHeight != ''"> |
| | | and ogd.child_height regexp REGEXP_REPLACE(#{damageReportDTO.childHeight},'\\.0+$','') |
| | | </if> |
| | | <if test="damageReportDTO.thickness != null and damageReportDTO.thickness != ''"> |
| | | and JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) like concat('%', #{damageReportDTO.thickness}, '%') |
| | | </if> |
| | | limit #{offset},#{pageSize}; |
| | | </select> |
| | |
| | | JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S01' )) AS code, |
| | | CONCAT(rw.process_id,'/',GROUP_CONCAT(distinct dd.technology_number SEPARATOR '')) as process_id, |
| | | rw.creator, |
| | | rw.reporting_work_id |
| | | rw.reporting_work_id, |
| | | ogd.child_width, |
| | | ogd.child_height, |
| | | JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) as thickness |
| | | from damage_details as dd |
| | | left join reporting_work as rw |
| | | on rw.reporting_work_id = dd.reporting_work_id |
| | |
| | | JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S01' )) AS code, |
| | | CONCAT(rw.process_id,'/',GROUP_CONCAT(distinct dd.technology_number SEPARATOR '')) as process_id, |
| | | rw.creator, |
| | | rw.reporting_work_id |
| | | rw.reporting_work_id, |
| | | ogd.child_width, |
| | | ogd.child_height, |
| | | JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) as thickness |
| | | from damage_details as dd |
| | | left join reporting_work as rw |
| | | on rw.reporting_work_id = dd.reporting_work_id |
| | |
| | | ifnull(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')),'') AS glassNumber, |
| | | rw.this_process, |
| | | rw.creator, |
| | | rw.reporting_work_id |
| | | rw.reporting_work_id, |
| | | JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) AS thickness |
| | | FROM sd.ORDER AS o |
| | | LEFT JOIN sd.order_glass_detail AS ogd ON ogd.order_id = o.order_id |
| | | LEFT JOIN reporting_work AS rw ON rw.order_id = o.order_id |
| | |
| | | AND dd.order_number = ogd.order_number |
| | | AND dd.technology_number = ogd.technology_number |
| | | left join sd.order_detail as od on o.order_id = od.order_id and od.order_number=ogd.order_number |
| | | left join sd.product_detail as pd on pd.prod_id=od.product_id |
| | | WHERE rw.reporting_work_time >= #{dates[0]} |
| | | and rw.reporting_work_time <= #{dates[1]} |
| | | AND dd.available = 0 and rw.reviewed_state>=0 |
| | |
| | | od.quantity - odpd.reporting_work_num as incompleteNum, |
| | | ROUND(ogd.child_width * ogd.child_height * (od.quantity - odpd.reporting_work_num) / 1000000, |
| | | 2) as incompleteArea, |
| | | od.product_name |
| | | od.product_name, |
| | | JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) AS thickness |
| | | |
| | | from sd.order_detail AS od |
| | | LEFT JOIN sd.order_glass_detail AS ogd |
| | |
| | | and odpd.process_id = fc.process_id |
| | | left join sd.`order` as o |
| | | on o.order_id = od.order_id |
| | | left join sd.product_detail as pd on pd.prod_id=od.product_id |
| | | where o.create_order>0 |
| | | and odpd.process = #{process} |
| | | and date(o.create_time) >= #{date[0]} |
| | |
| | | AND dd.technology_number = ogd.technology_number |
| | | LEFT JOIN sd.order_detail AS od ON o.order_id = od.order_id |
| | | AND od.order_number = ogd.order_number |
| | | left join sd.product_detail as pd on pd.prod_id=od.product_id |
| | | WHERE |
| | | rw.reporting_work_time >= #{selectTime1} |
| | | AND rw.reporting_work_time <= #{selectTime2} |
| | |
| | | <if test="damageReportDTO.childHeight != null and damageReportDTO.childHeight != ''"> |
| | | and ogd.child_height regexp REGEXP_REPLACE(#{damageReportDTO.childHeight},'\\.0+$','') |
| | | </if> |
| | | <if test="damageReportDTO.thickness != null and damageReportDTO.thickness != ''"> |
| | | and JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) like concat('%', #{damageReportDTO.thickness}, '%') |
| | | </if> |
| | | </select> |
| | | |
| | | <select id="teamOutputFootSum"> |