|
|
@@ -13,16 +13,14 @@ import com.qlm.annotation.RequestUrl;
|
|
|
import com.qlm.common.ApiResponse;
|
|
|
import com.qlm.common.PageResult;
|
|
|
import com.qlm.controller.common.CommonController;
|
|
|
-import com.qlm.dto.DeviceMonitorRecordDto;
|
|
|
-import com.qlm.dto.ItemModifyRecordDto;
|
|
|
-import com.qlm.dto.ItemModifyRecordVO;
|
|
|
-import com.qlm.dto.ProdTaskUploadRecordDto;
|
|
|
+import com.qlm.dto.*;
|
|
|
import com.qlm.netty.constant.CommandType;
|
|
|
import com.qlm.netty.manager.DeviceSessionManager;
|
|
|
import com.qlm.netty.util.WhitelistValidator;
|
|
|
import com.qlm.tools.WxUtil;
|
|
|
import com.qlm.view.core.AdminView;
|
|
|
import io.netty.channel.ChannelHandlerContext;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
|
@@ -72,17 +70,21 @@ public class ProdBatchController extends CommonController {
|
|
|
whereSql.append(" and upload_time = ?");
|
|
|
params.add(createTime);
|
|
|
}
|
|
|
-// if(StrKit.notBlank(factoryId)){
|
|
|
-// whereSql.append(" and factory_id = ?");
|
|
|
-// params.add(factoryId);
|
|
|
-// }
|
|
|
+ if(StrKit.notBlank(factoryId)){
|
|
|
+ whereSql.append(" and device_no in (select device_no from t_jz_device where factory_id = ?)");
|
|
|
+ params.add(factoryId);
|
|
|
+ }
|
|
|
if(StrKit.notBlank(productName)){
|
|
|
whereSql.append(" and pinxiang like ?");
|
|
|
params.add("%" + productName + "%");
|
|
|
}
|
|
|
-// if(StrKit.notBlank(wmsStatus)){
|
|
|
-// whereSql.append(" and wms_status = ?");
|
|
|
-// }
|
|
|
+ if(StrKit.notBlank(wmsStatus)){
|
|
|
+ if("1".equals(wmsStatus)){
|
|
|
+ whereSql.append(" and upload_time is not null");
|
|
|
+ }else if("2".equals(wmsStatus)){
|
|
|
+ whereSql.append(" and upload_time is null");
|
|
|
+ }
|
|
|
+ }
|
|
|
whereSql.append(" order by create_time desc");
|
|
|
Page<Record> paginate = Db.paginate(pageNumber, pageSize, "select *", whereSql.toString(), params.toArray());
|
|
|
if(paginate == null){
|
|
|
@@ -90,9 +92,28 @@ public class ProdBatchController extends CommonController {
|
|
|
return;
|
|
|
}
|
|
|
List<Record> list = paginate.getList();
|
|
|
+
|
|
|
+ Map<String,Record> recordMap = new HashMap<>();
|
|
|
+ String sql = "select a.device_no, b.factory_name, c.workshop_name from t_jz_device a left join t_factory b on a.factory_id = b.id left join t_workshop c on a.workshop_id = c.id";
|
|
|
+ List<Record> records = Db.find(sql);
|
|
|
+ if(CollUtil.isNotEmpty(records)){
|
|
|
+ recordMap = records.stream().collect(Collectors.toMap(record -> record.getStr("device_no"), record -> record));
|
|
|
+ }
|
|
|
List<ProdTaskUploadRecordDto> prodTaskUploadRecordDtoList = new ArrayList<>();
|
|
|
for (Record record : list) {
|
|
|
- prodTaskUploadRecordDtoList.add(convertRecordToDto(record));
|
|
|
+ ProdTaskUploadRecordDto prodTaskUploadRecordDto = convertRecordToDto(record);
|
|
|
+ String factoryName = "";
|
|
|
+ String workshopName = "";
|
|
|
+ if(recordMap.containsKey(record.getStr("device_no"))){
|
|
|
+ Record recordDetail = recordMap.get(record.getStr("device_no"));
|
|
|
+ if(recordDetail != null){
|
|
|
+ factoryName = recordDetail.getStr("factory_name");
|
|
|
+ workshopName = recordDetail.getStr("workshop_name");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ prodTaskUploadRecordDto.setFactoryName(factoryName);
|
|
|
+ prodTaskUploadRecordDto.setLineName(workshopName);
|
|
|
+ prodTaskUploadRecordDtoList.add(prodTaskUploadRecordDto);
|
|
|
}
|
|
|
renderJson(new PageResult<>(paginate.getTotalRow(), pageNumber, pageSize, prodTaskUploadRecordDtoList));
|
|
|
}catch (Exception e){
|
|
|
@@ -108,6 +129,76 @@ public class ProdBatchController extends CommonController {
|
|
|
renderJsp("/page/jinzai/reprint_record.jsp");
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+ public void getReprintRecord() {
|
|
|
+ // 1. 获取前端分页和查询参数
|
|
|
+ int pageNumber = getParaToInt("pageNumber", 1);
|
|
|
+ int pageSize = getParaToInt("pageSize", 10);
|
|
|
+ // 查询参数
|
|
|
+ String reprintTime = getPara("reprintTime");
|
|
|
+ String factoryId = getPara("factoryId");
|
|
|
+ String sku = getPara("sku");
|
|
|
+
|
|
|
+ String selectSql = "select b.task_no as taskOrderNo, b.device_no,d.id as deviceId, b.sku, a.box_code as boxCode, b.duo_code as palletCode, a.reprint_time as reprintTime, e.workshop_name as workshopName, f.factory_name as factoryName,d.`desc` as lineName";
|
|
|
+ StringBuilder fromSql = new StringBuilder("FROM t_reprint_record a ");
|
|
|
+ fromSql.append(" inner join jinzai_upload_master b on a.box_code = b.id");
|
|
|
+ fromSql.append(" left join t_jz_device d on b.device_no = d.device_no");
|
|
|
+ fromSql.append(" left join t_workshop e on d.workshop_id = e.id");
|
|
|
+ fromSql.append(" left join t_factory f on e.factory_id = f.id");
|
|
|
+
|
|
|
+ // WHERE 条件和参数
|
|
|
+ fromSql.append(" WHERE 1=1");
|
|
|
+ List<Object> params = new ArrayList<>();
|
|
|
+
|
|
|
+ // 补打时间查询
|
|
|
+ if (StringUtils.isNotBlank(reprintTime)) {
|
|
|
+ fromSql.append(" AND DATE(a.reprint_time) = ? ");
|
|
|
+ params.add(reprintTime);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 工厂名称查询
|
|
|
+ if (StringUtils.isNotBlank(factoryId)) {
|
|
|
+ fromSql.append(" AND d.factory_id = ? ");
|
|
|
+ params.add(factoryId);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 产品名称查询
|
|
|
+ if (StringUtils.isNotBlank(sku)) {
|
|
|
+ fromSql.append(" AND b.sku = ? ");
|
|
|
+ params.add(sku);
|
|
|
+ }
|
|
|
+
|
|
|
+ fromSql.append(" ORDER BY a.reprint_time DESC ");
|
|
|
+
|
|
|
+ // 3. 执行分页查询
|
|
|
+ Page<Record> page = Db.paginate(pageNumber, pageSize, selectSql, fromSql.toString(), params.toArray());
|
|
|
+ if (page == null) {
|
|
|
+ renderJson(new PageResult<>(0, pageNumber, pageSize, new ArrayList<>()));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ List<Record> list = page.getList();
|
|
|
+ try {
|
|
|
+ for (Record record : list) {
|
|
|
+ StringBuilder productSql = new StringBuilder("select b.*");
|
|
|
+ productSql.append(" from t_line_product a");
|
|
|
+ productSql.append(" inner join t_jz_product b on a.product_id = b.id");
|
|
|
+ productSql.append(" inner join t_jz_item c on b.id = c.product_id");
|
|
|
+ productSql.append(" where a.line_id = ? and c.sku = ?");
|
|
|
+ Record item = Db.findFirst(productSql.toString(), WxUtil.getInt("deviceId", record), record.getStr("sku"));
|
|
|
+ String productName = "";
|
|
|
+ if(item != null){
|
|
|
+ productName = item.getStr("product_name");
|
|
|
+ }
|
|
|
+ record.set("productName", productName);
|
|
|
+ }
|
|
|
+ }catch (Exception e){
|
|
|
+ logger.error("查询补打信息记录异常:", e);
|
|
|
+ }
|
|
|
+ renderJson(new PageResult<>(page.getTotalRow(), pageNumber, pageSize, list));
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 工控机监控记录路由
|
|
|
*/
|
|
|
@@ -128,13 +219,12 @@ public class ProdBatchController extends CommonController {
|
|
|
fromSql.append(" inner join t_jz_device tjd on tdd.device_id = tjd.id");
|
|
|
fromSql.append(" left join t_factory tf on tjd.factory_id = tf.id");
|
|
|
fromSql.append(" left join t_workshop tw on tjd.workshop_id = tw.id");
|
|
|
- fromSql.append(" left join t_jz_item tjp on tdd.product_sku = tjp.sku");
|
|
|
List<Object> params = new ArrayList<>();
|
|
|
if (deviceId != null) {
|
|
|
fromSql.append(" where tdd.device_id = ?");
|
|
|
params.add(deviceId);
|
|
|
}
|
|
|
- Page<Record> paginate = Db.paginate(pageNumber, pageSize, "select tdd.*,tjd.id as deviceId, tjd.device_no as deviceNo,tjd.desc as device_name, tf.factory_name, tw.workshop_name, tjp.item_name as product_name", fromSql.toString(), params.toArray());
|
|
|
+ Page<Record> paginate = Db.paginate(pageNumber, pageSize, "select tdd.*,tjd.id as deviceId, tjd.device_no as deviceNo,tjd.desc as device_name, tf.factory_name, tw.workshop_name", fromSql.toString(), params.toArray());
|
|
|
if (paginate == null) {
|
|
|
renderJson(ApiResponse.success(new PageResult<>(0, pageNumber, pageSize, new ArrayList<>())));
|
|
|
return;
|
|
|
@@ -142,7 +232,8 @@ public class ProdBatchController extends CommonController {
|
|
|
List<Record> list = paginate.getList();
|
|
|
List<DeviceMonitorRecordDto> deviceMonitorRecordDtoList = new ArrayList<>();
|
|
|
for (Record record : list) {
|
|
|
- deviceMonitorRecordDtoList.add(convertRecordToDeviceMonitorRecordDto(record));
|
|
|
+ DeviceMonitorRecordDto deviceMonitorRecordDto = convertRecordToDeviceMonitorRecordDto(record);
|
|
|
+ deviceMonitorRecordDtoList.add(deviceMonitorRecordDto);
|
|
|
}
|
|
|
renderJson(new PageResult<>(paginate.getTotalRow(), pageNumber, pageSize, deviceMonitorRecordDtoList));
|
|
|
} catch (Exception e) {
|
|
|
@@ -169,15 +260,15 @@ public class ProdBatchController extends CommonController {
|
|
|
if (result) {
|
|
|
apiResponse.setMsg("刷新成功");
|
|
|
apiResponse.setCode(0);
|
|
|
- StringBuilder sql = new StringBuilder("select tjd.*,tdd.id as deviceId,tdd.device_no as deviceNo, tdd.desc as device_name, tf.factory_name, tw.workshop_name, tjp.item_name as product_name");
|
|
|
+ StringBuilder sql = new StringBuilder("select tjd.*,tdd.id as deviceId,tdd.device_no as deviceNo, tdd.desc as device_name, tf.factory_name, tw.workshop_name");
|
|
|
sql.append(" from t_jz_device tdd");
|
|
|
sql.append(" inner join t_device_detail tjd on tdd.id = tjd.device_id");
|
|
|
sql.append(" left join t_factory tf on tdd.factory_id = tf.id");
|
|
|
sql.append(" left join t_workshop tw on tdd.workshop_id = tw.id");
|
|
|
- sql.append(" left join t_jz_item tjp on tjd.product_sku = tjp.sku");
|
|
|
sql.append(" where tdd.id = ?");
|
|
|
record = Db.findFirst(sql.toString(), deviceId);
|
|
|
DeviceMonitorRecordDto deviceMonitorRecordDto = convertRecordToDeviceMonitorRecordDto(record);
|
|
|
+
|
|
|
apiResponse.setData(deviceMonitorRecordDto);
|
|
|
} else {
|
|
|
apiResponse.setCode(500);
|
|
|
@@ -330,9 +421,6 @@ public class ProdBatchController extends CommonController {
|
|
|
.map(code -> "'" + code + "'")
|
|
|
.collect(Collectors.joining(","));
|
|
|
List<Record> masterRecords = Db.find("select * from jinzai_upload_master where id in(" + codeList + ")");
|
|
|
- if(masterRecords.size() != referenceCodes.size()){
|
|
|
- return ApiResponse.error("有箱码不存在");
|
|
|
- }
|
|
|
masterRecords.forEach(record -> {
|
|
|
referenceCodeAndSku.put(record.getStr("id"),record.getStr("sku"));
|
|
|
referenceCodeAndDeviceNo.put(record.getStr("id"),record.getStr("device_no"));
|
|
|
@@ -341,9 +429,13 @@ public class ProdBatchController extends CommonController {
|
|
|
String codeList = referenceCodes.stream()
|
|
|
.map(code -> "'" + code + "'")
|
|
|
.collect(Collectors.joining(","));
|
|
|
- List<Record> duoRecords = Db.find("select * from jinzai_upload_master where duo_code in(" + codeList + ")");
|
|
|
- if(duoRecords.size() != referenceCodes.size()){
|
|
|
- return ApiResponse.error("有托码不存在");
|
|
|
+ List<Record> duoRecords = Db.find("select * from jinzai_upload_master1 where duo_code in(" + codeList + ")");
|
|
|
+ Map<String,List<Record>> duoMap = duoRecords.parallelStream()
|
|
|
+ .collect(Collectors.groupingBy(r->r.getStr("duo_code")));
|
|
|
+ for(String duoCode:referenceCodes){
|
|
|
+ if(!duoMap.containsKey(duoCode)){
|
|
|
+ return ApiResponse.error("有托码不存在");
|
|
|
+ }
|
|
|
}
|
|
|
duoRecords.forEach(record -> {
|
|
|
referenceCodeAndSku.put(record.getStr("duo_code"),record.getStr("sku"));
|
|
|
@@ -427,7 +519,7 @@ public class ProdBatchController extends CommonController {
|
|
|
} else if (modifyType.compareTo(2) == 0) {
|
|
|
Db.update("update jinzai_upload_master set upload_time = null,pinxiang = ?,kouwei = ?,sku = ? where id in(" + addReferenceCode + ")", itemName, itemKouWei,sku);
|
|
|
} else if (modifyType.compareTo(3) == 0) {
|
|
|
- Db.update("update jinzai_upload_master set upload_time = null,pinxiang = ?,kouwei = ?,sku = ? where duo_code in(" + addReferenceCode + ")", itemName, itemKouWei,sku);
|
|
|
+ Db.update("update jinzai_upload_master1 set upload_time = null,pinxiang = ?,kouwei = ?,sku = ? where duo_code in(" + addReferenceCode + ")", itemName, itemKouWei,sku);
|
|
|
}
|
|
|
return true;
|
|
|
} catch (Exception e) {
|
|
|
@@ -452,6 +544,33 @@ public class ProdBatchController extends CommonController {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @Clear
|
|
|
+ public void reprint(){
|
|
|
+ ApiResponse apiResponse = new ApiResponse();
|
|
|
+ try {
|
|
|
+ String bodyData = HttpKit.readData(getRequest());
|
|
|
+ ReprintDto reprintDto = JSON.parseObject(bodyData, ReprintDto.class);
|
|
|
+ Record record = new Record();
|
|
|
+ record.set("box_code",reprintDto.getBoxCode());
|
|
|
+ if(StringUtils.isNotBlank(reprintDto.getReprintTime())){
|
|
|
+ record.set("reprint_time", DateUtil.parse(reprintDto.getReprintTime()));
|
|
|
+ }
|
|
|
+ boolean save = Db.save("t_reprint_record", record);
|
|
|
+ if(save){
|
|
|
+ apiResponse.setCode(200);
|
|
|
+ apiResponse.setMsg("补打成功");
|
|
|
+ }else{
|
|
|
+ apiResponse.setCode(500);
|
|
|
+ apiResponse.setMsg("补打失败");
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error("补打异常:", e);
|
|
|
+ apiResponse.setCode(500);
|
|
|
+ apiResponse.setMsg("系统异常:" + e.getMessage());
|
|
|
+ }
|
|
|
+ renderJson(apiResponse);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
|
|
|
private ProdTaskUploadRecordDto convertRecordToDto(Record record) {
|
|
|
@@ -480,7 +599,6 @@ public class ProdBatchController extends CommonController {
|
|
|
deviceMonitorRecordDto.setFactory(record.getStr("factory_name"));
|
|
|
deviceMonitorRecordDto.setWorkshop(record.getStr("workshop_name"));
|
|
|
deviceMonitorRecordDto.setLine(record.getStr("device_name"));
|
|
|
- deviceMonitorRecordDto.setProduct(record.getStr("product_name"));
|
|
|
deviceMonitorRecordDto.setProductionNum(record.getInt("current_quantity").toString());
|
|
|
deviceMonitorRecordDto.setTotalNum(record.getInt("total_quantity").toString());
|
|
|
deviceMonitorRecordDto.setPlatformNum(record.getInt("uploaded_quantity").toString());
|
|
|
@@ -496,6 +614,22 @@ public class ProdBatchController extends CommonController {
|
|
|
if(deviceNo != null){
|
|
|
deviceMonitorRecordDto.setOnline(1);
|
|
|
}
|
|
|
+
|
|
|
+ try {
|
|
|
+ StringBuilder productSql = new StringBuilder("select b.*");
|
|
|
+ productSql.append(" from t_line_product a");
|
|
|
+ productSql.append(" inner join t_jz_product b on a.product_id = b.id");
|
|
|
+ productSql.append(" inner join t_jz_item c on b.id = c.product_id");
|
|
|
+ productSql.append(" where a.line_id = ? and c.sku = ?");
|
|
|
+ Record item = Db.findFirst(productSql.toString(), WxUtil.getInt("deviceId", record), record.getStr("product_sku"));
|
|
|
+ String productName = "";
|
|
|
+ if(item != null){
|
|
|
+ productName = item.getStr("product_name");
|
|
|
+ }
|
|
|
+ deviceMonitorRecordDto.setProduct(productName);
|
|
|
+ }catch (Exception e){
|
|
|
+ logger.error("工控机记录查询获取品相异常:", e);
|
|
|
+ }
|
|
|
return deviceMonitorRecordDto;
|
|
|
}
|
|
|
}
|