|
|
@@ -7,6 +7,8 @@ import com.uas.eis.entity.ErrorMessage;
|
|
|
import com.uas.eis.entity.HelperType;
|
|
|
import com.uas.eis.exception.ApiSystemException;
|
|
|
import com.uas.eis.sdk.entity.ApiResult;
|
|
|
+import com.uas.eis.sdk.entity.Result;
|
|
|
+import com.uas.eis.sdk.resp.ApiResponse;
|
|
|
import com.uas.eis.service.MESDataService;
|
|
|
import com.uas.eis.service.MESHelperService;
|
|
|
import com.uas.eis.utils.*;
|
|
|
@@ -2023,6 +2025,131 @@ public class MESHelperServiceImpl implements MESHelperService {
|
|
|
}
|
|
|
return map;
|
|
|
}
|
|
|
+ /**
|
|
|
+ * 微浦MES获取镭雕序列号
|
|
|
+ * @param
|
|
|
+ * macode 工单号
|
|
|
+ * combineqty 拼版数
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Result<Map<String,Object>> getRadiumSN(String macode ,int combineqty) {
|
|
|
+ Map<String,Object> remap = new HashMap<>();
|
|
|
+ if(!StringUtil.hasText(macode)){
|
|
|
+ return ApiResponse.failRspResult("输入参数macode(工单号)不能为空!");
|
|
|
+ }
|
|
|
+ if(combineqty<=0){
|
|
|
+ return ApiResponse.failRspResult("输入参数combineqty(拼版数):"+combineqty+"不能小于等于0!");
|
|
|
+ }
|
|
|
+ /*if(combineqty>20){
|
|
|
+ return ApiResponse.failRspResult("输入参数combineqty(拼版数):"+combineqty+"值不合理!");
|
|
|
+ }*/
|
|
|
+ //判断工单号是否存在
|
|
|
+ SqlRowList rs = baseDao.queryForRowSet("select * from make where ma_code=?",macode);
|
|
|
+ if(rs.next()){
|
|
|
+ int cn = baseDao.getJdbcTemplate().queryForObject("select count(1) from MAKESNRULEDETAIL where msd_makecode=? and msd_type='before'",Integer.class,macode);
|
|
|
+ if(cn == 0){
|
|
|
+ return ApiResponse.failRspResult("工单号:"+macode+",未生成镭雕条码!");
|
|
|
+ }
|
|
|
+ List<String> sqls = new ArrayList<>();
|
|
|
+ rs = baseDao.queryForRowSet("select * from (select MSD_SNCODE sncode from MAKESNRULEDETAIL where nvl(msd_isget,0)=0 " +
|
|
|
+ " and msd_makecode=? and msd_type='before' order by msd_id) where rownum<=?",macode,combineqty);
|
|
|
+ if(rs.next()){
|
|
|
+ if(rs.getResultList().size()<combineqty){
|
|
|
+ return ApiResponse.failRspResult("工单号:"+macode+",剩余可获取镭雕条码数为:"+rs.getResultList().size()+",不足拼版数:"+combineqty+"!");
|
|
|
+ }
|
|
|
+ remap.put("macode",macode);
|
|
|
+ remap.put("combineqty",combineqty);
|
|
|
+ List<Map<String, Object>> list = new ArrayList<>();
|
|
|
+ for(Map<String, Object> m : rs.getResultList()){
|
|
|
+ Map<String, Object> mm = new HashMap<>();
|
|
|
+ mm.put("sncode",m.get("sncode"));
|
|
|
+ list.add(mm);
|
|
|
+ sqls.add("update MAKESNRULEDETAIL set msd_isget=-1,msd_getdate=sysdate where msd_makecode='" + macode + "' and msd_sncode='"+m.get("sncode")+"' and msd_type='before'");
|
|
|
+ }
|
|
|
+ baseDao.execute(sqls);
|
|
|
+ remap.put("detail",list);
|
|
|
+ return ApiResponse.successRspResult("获取成功",remap);
|
|
|
+ }else {
|
|
|
+ return ApiResponse.failRspResult("工单号:"+macode+",镭雕条码无剩余可获取数据!");
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ return ApiResponse.failRspResult("工单号:"+macode+",不存在!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 微浦MES确认镭雕序列号
|
|
|
+ * @param json
|
|
|
+ * {
|
|
|
+ * macode:
|
|
|
+ * combineqty:
|
|
|
+ * detail:[
|
|
|
+ * {sncode:},
|
|
|
+ * {sncode:},
|
|
|
+ * {sncode:},
|
|
|
+ * {sncode:}
|
|
|
+ * ]
|
|
|
+ * }
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Result<Map<String,Object>> confirmRadiumSN(String json) {
|
|
|
+ Map<Object, Object> map = BaseUtil.parseFormStoreToMap(json);
|
|
|
+ Object macode = map.get("macode");
|
|
|
+ Object combineqty = map.get("combineqty");
|
|
|
+ if(!StringUtil.hasText(macode)){
|
|
|
+ return ApiResponse.failRspResult("输入参数macode(工单号)不能为空!");
|
|
|
+ }
|
|
|
+ if(!StringUtil.hasText(combineqty) ){
|
|
|
+ return ApiResponse.failRspResult("输入参数combineqty(拼版数)不能为空");
|
|
|
+ }
|
|
|
+ if(!(combineqty instanceof Integer) || (Integer) combineqty<=0){
|
|
|
+ return ApiResponse.failRspResult("输入参数combineqty(拼版数):"+combineqty+",必须是正整数!");
|
|
|
+ }
|
|
|
+ if(!StringUtil.hasText(map.get("detail")) ){
|
|
|
+ return ApiResponse.failRspResult("输入参数detail(镭雕条码后)不能为空");
|
|
|
+ }
|
|
|
+ List<Map<Object, Object>> list = BaseUtil.parseGridStoreToMaps(map.get("detail").toString());
|
|
|
+ if(list.size() != (Integer) combineqty){
|
|
|
+ return ApiResponse.failRspResult("条码数量:"+list.size()+"与拼版数:"+combineqty+",不一致!");
|
|
|
+ }
|
|
|
+ //判断工单号是否存在
|
|
|
+ SqlRowList rs = baseDao.queryForRowSet("select ma_id,ma_code,ma_prodcode from make where ma_code=?",macode);
|
|
|
+ if(rs.next()) {
|
|
|
+ String codes = CollectionUtil.pluckSqlString(list, "sncode");
|
|
|
+ String err = baseDao.getJdbcTemplate().queryForObject("select wm_concat('序列号:'||sb_barcode||',已经绑定工单:'||SB_MAKECODE) " +
|
|
|
+ " from (select SB_MAKECODE,wm_concat(sb_barcode)sb_barcode" +
|
|
|
+ " from smtbind where SB_BARCODE in (" + codes + ") group by SB_MAKECODE)", String.class);
|
|
|
+ if (null != err) {
|
|
|
+ return ApiResponse.failRspResult(err);
|
|
|
+ }
|
|
|
+ err = null;
|
|
|
+ //条码不在维护范围内
|
|
|
+ List<String> sqls = new ArrayList<>();
|
|
|
+ Object maincode = list.get(0).get("sncode");
|
|
|
+ for (Map<Object, Object> m : list) {
|
|
|
+ SqlRowList rs1 = baseDao.queryForRowSet("select * from MAKESNRULEDETAIL where msd_makecode=? and msd_sncode=? and msd_type='before'", macode, m.get("sncode"));
|
|
|
+ if (!rs1.next()) {
|
|
|
+ err += m.get("sncode") + ",";
|
|
|
+ }
|
|
|
+ if(null == err) {
|
|
|
+ sqls.add("insert into smtbind(SB_ID, SB_MAINCODE, SB_BARCODE, SB_PRODCODE, SB_INMAN, SB_INDATE, SB_STATUS, SB_MAKECODE)" +
|
|
|
+ " values (smtbind_seq.nextval,'" + maincode + "','" + m.get("sncode") + "','" + rs.getString("ma_prodcode") + "','接口',sysdate,0,'" + macode + "')");
|
|
|
+ sqls.add("update MAKESNRULEDETAIL set msd_isget=-1,msd_getdate=sysdate where msd_makecode='" + macode + "' and msd_sncode='"+m.get("sncode")+"' and nvl(msd_isget,0)=0 and msd_type='before'");
|
|
|
+ sqls.add("update MAKESNRULEDETAIL set msd_isconfirm=-1,msd_confirmdate=sysdate where msd_makecode='" + macode + "' and msd_sncode='"+m.get("sncode")+"' and msd_type='before' ");;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (null != err) {
|
|
|
+ return ApiResponse.failRspResult("条码:"+err.substring(0, err.length() - 1)+",不在工单维护的镭雕条码范围内!");
|
|
|
+ }else{
|
|
|
+ baseDao.execute(sqls);
|
|
|
+ }
|
|
|
+ return ApiResponse.successRspResult("确认成功", null);
|
|
|
+ }else{
|
|
|
+ return ApiResponse.failRspResult("工单号:"+macode+",不存在!");
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
|
|
|
private Map<Object,Object> SetBpMaterial(JSONObject map)
|