Commit 46379390 by lijingjing

调整铝成品发送处理逻辑;

添加铝成品班次、报告发放人传递字段,去除非必要传递字段;
parent 8704a2a5
......@@ -10,6 +10,8 @@ import java.util.List;
public class DateKit {
public static final String FORMAT_DEFAULT = "yyyy-MM-dd HH:mm:ss";
public static LocalDate date2Local(Date date) {
if (null == date) {
return null;
......@@ -25,6 +27,22 @@ public class DateKit {
return Date.from(zonedDateTime.toInstant());
}
public static LocalDateTime date2LocalDateTime(Date date) {
if (null == date) {
return null;
}
Instant instant = date.toInstant();
ZoneId zone = ZoneId.systemDefault();
return LocalDateTime.ofInstant(instant, zone);
}
public static LocalTime date2LocalTime(Date date) {
LocalDateTime localDateTime = date2LocalDateTime(date);
return localDateTime.toLocalTime();
}
public static Integer monthsBetweenTwoDates(Date start, Date end) {
if (null == start || null == end) {
return null;
......@@ -96,7 +114,20 @@ public class DateKit {
*/
public static String getShiftByNow() {
// 根据当前系统时间获取班次
LocalTime now = LocalTime.now();
return getShiftByDate(new Date());
}
/**
* 根据时间获取班次
*
* @param date
* @return
*/
public static String getShiftByDate(Date date) {
if (null == date) {
return null;
}
LocalTime now = date2LocalTime(date);
LocalTime zero = LocalTime.parse("00:00:00");
LocalTime eight = LocalTime.parse("08:00:00");
LocalTime sixth = LocalTime.parse("16:00:00");
......
......@@ -14,7 +14,9 @@ import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* 项目指标表 前端控制器
......@@ -95,4 +97,10 @@ public class EntrustSampleItemIndexController extends ServiceController {
public RestResult<Page<EntrustSampleItemIndexVO>> pageIndexWithItem(EntrustSampleItemIndexVO entrustSampleItemIndexVO) {
return success(entrustSampleItemIndexService.pageIndexWithItem(getPage(), entrustSampleItemIndexVO));
}
@ApiOperation("获取成品指标信息列表")
@PostMapping("/list_cp_item_index")
public RestResult<List<Map<String, Object>>> listCpSampleItemIndex(Long entrustId, Long[] sampleIds) {
return success(entrustSampleItemIndexService.getCpSampleItemIndexList(entrustId, sampleIds));
}
}
......@@ -60,4 +60,6 @@ public interface IEntrustSampleItemIndexService extends IBaseService<EntrustSamp
boolean physicalDeleteByItemIds(List<Long> itemIds);
List<EntrustSampleItemIndexVO> getInReportItemIndexBySampleIds(List<Long> sampleIds);
List<Map<String, Object>> getCpSampleItemIndexList(Long entrustId, Long[] sampleIds);
}
......@@ -4,22 +4,23 @@ import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.toolkit.ArrayUtils;
import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.commons.toolkit.DateUtils;
import com.patzn.cloud.service.hmhj.entity.EntrustSampleItem;
import com.patzn.cloud.service.hmhj.entity.EntrustSampleItemIndex;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemIndexVO;
import com.patzn.cloud.service.lims.common.BeanUtils;
import com.patzn.cloud.service.lims.common.DateKit;
import com.patzn.cloud.service.lims.hmhj.mapper.EntrustSampleItemIndexMapper;
import com.patzn.cloud.service.lims.hmhj.service.IEntrustSampleItemIndexService;
import com.patzn.cloud.service.lims.hmhj.service.IEntrustSampleItemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* 服务实现类
......@@ -79,6 +80,27 @@ public class EntrustSampleItemIndexServiceImpl extends BaseServiceImpl<EntrustSa
}
@Override
public List<Map<String, Object>> getCpSampleItemIndexList(Long entrustId, Long[] sids) {
RestAssert.fail(Objects.isNull(entrustId) && ArrayUtils.isEmpty(sids), "委托ID和样品编号不能全为空!");
List<Long> entrustIds = null, sampleIds = null;
if (Objects.nonNull(entrustId)) {
entrustIds = Arrays.asList(entrustId);
}
if (ArrayUtils.isNotEmpty(sids)) {
sampleIds = Arrays.asList(sids);
}
List<Map<String, Object>> list = listCpSampleItemIndex(entrustIds, sampleIds);
Optional.ofNullable(list).orElse(new ArrayList<>()).forEach(m -> {
String testTimeStr = m.get("test_time").toString();
Date testTime = null;
if (Objects.nonNull(testTimeStr) && null != (testTime = DateUtils.dateStringtoDate(testTimeStr, DateKit.FORMAT_DEFAULT))) {
m.put("shift", DateKit.getShiftByDate(testTime));
}
});
return list;
}
@Override
public boolean removeByIds(List<Long> ids) {
return baseMapper.deleteBatchIds(ids) > 0;
}
......
......@@ -34,6 +34,7 @@ import com.patzn.cloud.service.lims.base.enums.FlowTypeEnum;
import com.patzn.cloud.service.lims.base.vo.LmsUserRelGroupVO;
import com.patzn.cloud.service.lims.collection.entity.LmsOriginalRecordInfo;
import com.patzn.cloud.service.lims.common.CompareUtils;
import com.patzn.cloud.service.lims.common.DateKit;
import com.patzn.cloud.service.lims.common.StringHandleUtils;
import com.patzn.cloud.service.lims.common.service.IExportService;
import com.patzn.cloud.service.lims.hmhj.common.HSSFWorkbookUtil;
......@@ -1536,9 +1537,19 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
RestAssert.fail(CollectionUtils.isEmpty(dataList), String.format("【%s】要发送的数据为空!", sampleName));
// == search data loop
dataList.forEach(t -> {
Long sampleId = Long.valueOf(t.get("id").toString());
// 根据有无ID判断是属于哪一种数据来源
Object oid = t.get("id");
if (Objects.nonNull(oid)) {
Long sampleId = Long.valueOf(oid.toString());
t.put("brand", sampleBrandMap.get(sampleId));
t.remove("id");
} else {
String testTimeStr = t.get("test_time").toString();
Date testTime = null;
if (Objects.nonNull(testTimeStr) && null != (testTime = DateUtils.dateStringtoDate(testTimeStr, DateKit.FORMAT_DEFAULT))) {
t.put("shift", DateKit.getShiftByDate(testTime));
}
}
});
try {
log("准备发送数据");
......
......@@ -170,25 +170,21 @@
<!--查询铝成品要发送ERP数据-->
<select id="selectCpSampleItemIndex" resultType="java.util.Map">
SELECT
s.id,
s.code "sample_code",
s.name "sample_name",
s.sample_from,
s.sample_grading "brand",
max(i.tester) "tester",
to_char(max(i.test_time), 'YYYY-MM-DD HH24:MI:SS') "test_time",
max(r.report_checker) "report_checker",
max(r.report_issuer) "report_issuer",
max(r.quality_inspector) "quality_inspector",
max(case when ii.name = '原铝Fe' then trim(ii.test_value) end) "fe",
max(case when ii.name = '原铝Si' then trim(ii.test_value) end) "si",
max(case when ii.name = '原铝Cu' then trim(ii.test_value) end) "cu",
max(case when ii.name = '原铝Ga' then trim(ii.test_value) end) "ga",
max(case when ii.name = '原铝Mg' then trim(ii.test_value) end) "mg",
max(case when ii.name = '原铝Zn' then trim(ii.test_value) end) "zn",
max(case when ii.name = '原铝Mn' then trim(ii.test_value) end) "mn",
max(case when ii.name = '原铝Ni' then trim(ii.test_value) end) "ni",
max(case when ii.name = '原铝V' then trim(ii.test_value) end) "v"
split_part( s.code, '-', 1 ) "sample_code",
MAX ( s.NAME ) "sample_name",
MAX ( s.sample_from ) "sample_from",
MAX ( i.tester ) "tester",
to_char( MAX ( i.test_time ), 'YYYY-MM-DD HH24:MI:SS' ) "test_time",
MAX ( r.report_sender ) "report_sender",
MAX ( CASE WHEN ii.NAME = '原铝Fe' THEN TRIM ( ii.test_value ) END ) "fe",
MAX ( CASE WHEN ii.NAME = '原铝Si' THEN TRIM ( ii.test_value ) END ) "si",
MAX ( CASE WHEN ii.NAME = '原铝Cu' THEN TRIM ( ii.test_value ) END ) "cu",
MAX ( CASE WHEN ii.NAME = '原铝Ga' THEN TRIM ( ii.test_value ) END ) "ga",
MAX ( CASE WHEN ii.NAME = '原铝Mg' THEN TRIM ( ii.test_value ) END ) "mg",
MAX ( CASE WHEN ii.NAME = '原铝Zn' THEN TRIM ( ii.test_value ) END ) "zn",
MAX ( CASE WHEN ii.NAME = '原铝Mn' THEN TRIM ( ii.test_value ) END ) "mn",
MAX ( CASE WHEN ii.NAME = '原铝Ni' THEN TRIM ( ii.test_value ) END ) "ni",
MAX ( CASE WHEN ii.NAME = '原铝V' THEN TRIM ( ii.test_value ) END ) "v"
FROM entrust_sample_item_index ii
JOIN entrust_sample_item i on i.id = ii.entrust_sample_item_id and i.deleted = 0
JOIN entrust_sample s on s.id = i.entrust_sample_id and s.deleted = 0
......@@ -206,7 +202,7 @@
</foreach>
</if>
group by
s.id,s.code,s.name,s.sample_from,s.sample_grading
"sample_code"
</select>
<delete id="physicalDeleteByItemIds">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment